diff --git a/src/Makefile.am b/src/Makefile.am index ca77b5ee8..539657855 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -28,19 +28,11 @@ $(LIBLEVELDB) $(LIBMEMENV): OPT="$(AM_CXXFLAGS) $(PIE_FLAGS) $(CXXFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -D__STDC_LIMIT_MACROS" endif -LIBBOTAN = $(builddir)/botan/libbotan-1.10.a -BOTANHEADERS = $(srcdir)/botan/build/include - -$(BOTANHEADERS)/botan/keccak.h $(LIBBOTAN): - ( cd $(srcdir)/botan && python2.7 configure.py && $(MAKE) static) -BUILT_SOURCES= $(BOTANHEADERS)/botan/keccak.h - BITCOIN_CONFIG_INCLUDES=-I$(builddir)/config BITCOIN_INCLUDES=-I$(builddir) -I$(builddir)/obj $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS) $(CRYPTO_CFLAGS) $(SSL_CFLAGS) BITCOIN_INCLUDES += -I$(srcdir)/secp256k1/include BITCOIN_INCLUDES += $(UNIVALUE_CFLAGS) -BITCOIN_INCLUDES += -I$(BOTANHEADERS) LIBBITCOIN_SERVER=libbitcoin_server.a LIBBITCOIN_WALLET=libbitcoin_wallet.a @@ -276,7 +268,6 @@ libbitcoin_consensus_a_SOURCES = \ consensus/params.h \ consensus/validation.h \ hash.cpp \ - $(BOTANHEADERS)/botan/skein_512.h \ hash.h \ prevector.h \ primitives/block.cpp \ @@ -376,7 +367,6 @@ lbrycrdd_LDADD = \ $(LIBBITCOIN_CRYPTO) \ $(LIBLEVELDB) \ $(LIBMEMENV) \ - $(LIBBOTAN) \ $(LIBSECP256K1) if ENABLE_ZMQ @@ -423,7 +413,6 @@ lbrycrd_tx_LDADD = \ $(LIBBITCOIN_UTIL) \ $(LIBBITCOIN_CONSENSUS) \ $(LIBBITCOIN_CRYPTO) \ - $(LIBBOTAN) \ $(LIBSECP256K1) lbrycrd_tx_LDADD += $(BOOST_LIBS) $(CRYPTO_LIBS) @@ -440,7 +429,7 @@ endif libbitcoinconsensus_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(RELDFLAGS) libbitcoinconsensus_la_LIBADD = $(LIBSECP256K1) -libbitcoinconsensus_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include -I$(BOTANHEADERS) -DBUILD_BITCOIN_INTERNAL +libbitcoinconsensus_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include -DBUILD_BITCOIN_INTERNAL libbitcoinconsensus_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) endif @@ -460,7 +449,6 @@ CLEANFILES += univalue/*.gcda univalue/*.gcno CLEANFILES += wallet/*.gcda wallet/*.gcno CLEANFILES += wallet/test/*.gcda wallet/test/*.gcno CLEANFILES += zmq/*.gcda zmq/*.gcno -CLEANFILES += botan/libbotan-1.10.a DISTCLEANFILES = obj/build.h @@ -470,7 +458,6 @@ clean-local: -$(MAKE) -C leveldb clean -$(MAKE) -C secp256k1 clean -$(MAKE) -C univalue clean - -$(MAKE) -C botan distclean -rm -f leveldb/*/*.gcda leveldb/*/*.gcno leveldb/helpers/memenv/*.gcda leveldb/helpers/memenv/*.gcno -rm -f config.h diff --git a/src/Makefile.bench.include b/src/Makefile.bench.include index ad951cf80..8e7b59b46 100644 --- a/src/Makefile.bench.include +++ b/src/Makefile.bench.include @@ -19,7 +19,6 @@ bench_bench_bitcoin_LDADD = \ $(LIBBITCOIN_CRYPTO) \ $(LIBLEVELDB) \ $(LIBMEMENV) \ - $(LIBBOTAN) \ $(LIBSECP256K1) \ $(LIBUNIVALUE) diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include index 48f737358..922305d3c 100644 --- a/src/Makefile.qt.include +++ b/src/Makefile.qt.include @@ -379,7 +379,7 @@ endif if ENABLE_ZMQ qt_lbrycrd_qt_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) endif -qt_lbrycrd_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) $(LIBBOTAN) \ +qt_lbrycrd_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) \ $(BOOST_LIBS) $(QT_LIBS) $(QT_DBUS_LIBS) $(QR_LIBS) $(PROTOBUF_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(LIBSECP256K1) \ $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) qt_lbrycrd_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) diff --git a/src/Makefile.qttest.include b/src/Makefile.qttest.include index c554bb436..6f36b2720 100644 --- a/src/Makefile.qttest.include +++ b/src/Makefile.qttest.include @@ -34,7 +34,7 @@ if ENABLE_ZMQ qt_test_test_lbrycrd_qt_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) endif qt_test_test_lbrycrd_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) \ - $(LIBMEMENV) $(LIBBOTAN) $(BOOST_LIBS) $(QT_DBUS_LIBS) $(QT_TEST_LIBS) $(QT_LIBS) \ + $(LIBMEMENV) $(BOOST_LIBS) $(QT_DBUS_LIBS) $(QT_TEST_LIBS) $(QT_LIBS) \ $(QR_LIBS) $(PROTOBUF_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(LIBSECP256K1) \ $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) qt_test_test_lbrycrd_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) diff --git a/src/Makefile.test.include b/src/Makefile.test.include index 23d9685b2..06baee1d2 100644 --- a/src/Makefile.test.include +++ b/src/Makefile.test.include @@ -64,7 +64,6 @@ BITCOIN_TESTS =\ test/pmt_tests.cpp \ test/policyestimator_tests.cpp \ test/pow_tests.cpp \ - test/powhash_tests.cpp \ test/prevector_tests.cpp \ test/reverselock_tests.cpp \ test/rpc_tests.cpp \ @@ -99,7 +98,7 @@ endif test_test_lbrycrd_SOURCES = $(BITCOIN_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES) test_test_lbrycrd_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -I$(builddir)/test/ $(TESTDEFS) -test_test_lbrycrd_LDADD = $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) $(LIBBOTAN) \ +test_test_lbrycrd_LDADD = $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) \ $(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB) $(LIBSECP256K1) test_test_lbrycrd_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) if ENABLE_WALLET diff --git a/src/botan/botan_version.py b/src/botan/botan_version.py deleted file mode 100644 index dc5398e01..000000000 --- a/src/botan/botan_version.py +++ /dev/null @@ -1,11 +0,0 @@ - -release_major = 1 -release_minor = 10 -release_patch = 10 - -release_so_abi_rev = 1 - -# These are set by the distribution script -release_vc_rev = 'git:077c55bac2503fa3c9f8f8b13204f41af1b5c6e6' -release_datestamp = 20150803 -release_type = 'released' diff --git a/src/botan/checks/bench.cpp b/src/botan/checks/bench.cpp deleted file mode 100644 index a4c04f44c..000000000 --- a/src/botan/checks/bench.cpp +++ /dev/null @@ -1,256 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "common.h" -#include "bench.h" - -namespace { - -const std::string algos[] = { - - /* Block ciphers */ - "AES-128", - "AES-192", - "AES-256", - "Blowfish", - "CAST-128", - "CAST-256", - "DES", - "DESX", - "GOST", - "IDEA", - "KASUMI", - "MARS", - "MISTY1", - "Noekeon", - "RC2", - "RC5(12)", - "RC5(16)", - "RC6", - "SAFER-SK(10)", - "SEED", - "Serpent", - "Skipjack", - "Square", - "TEA", - "TripleDES", - "Twofish", - "XTEA", - - /* Cipher constructions */ - "Cascade(Serpent,AES-128)", - "Lion(SHA-256,Salsa20,8192)", - "Luby-Rackoff(SHA-512)", - - /* Cipher modes */ - "TripleDES/CBC/PKCS7", - "TripleDES/CBC/CTS", - "TripleDES/CTR-BE", - "TripleDES/EAX", - "TripleDES/OFB", - "TripleDES/CFB(64)", - "TripleDES/CFB(32)", - "TripleDES/CFB(16)", - "TripleDES/CFB(8)", - - "AES-128/CBC/PKCS7", - "AES-128/CBC/CTS", - "AES-128/CTR-BE", - "AES-128/EAX", - "AES-128/OFB", - "AES-128/XTS", - "AES-128/CFB(128)", - "AES-128/CFB(64)", - "AES-128/CFB(32)", - "AES-128/CFB(16)", - "AES-128/CFB(8)", - - "Serpent/CBC/PKCS7", - "Serpent/CBC/CTS", - "Serpent/CTR-BE", - "Serpent/EAX", - "Serpent/OFB", - "Serpent/XTS", - "Serpent/CFB(128)", - "Serpent/CFB(64)", - "Serpent/CFB(32)", - "Serpent/CFB(16)", - "Serpent/CFB(8)", - - /* Stream ciphers */ - "ARC4", - "Salsa20", - "Turing", - "WiderWake4+1-BE", - - /* Checksums */ - "Adler32", - "CRC24", - "CRC32", - - /* Hashes */ - "BMW-512", - "GOST-34.11", - "HAS-160", - "Keccak-1600(224)", - "Keccak-1600(256)", - "Keccak-1600(384)", - "Keccak-1600(512)", - "MD2", - "MD4", - "MD5", - "RIPEMD-128", - "RIPEMD-160", - "SHA-160", - "SHA-256", - "SHA-384", - "SHA-512", - "Skein-512", - "Tiger", - "Whirlpool", - - /* MACs */ - "CMAC(AES-128)", - "HMAC(SHA-1)", - "X9.19-MAC", - "", -}; - -void report_results(const std::string& algo, - const std::map& speeds) - { - // invert, showing fastest impl first - std::map results; - - for(std::map::const_iterator i = speeds.begin(); - i != speeds.end(); ++i) - { - // Speeds might collide, tweak slightly to handle this - if(results[i->second] == "") - results[i->second] = i->first; - else - results[i->second - .01] = i->first; - } - - std::cout << algo; - -#if (defined(__GNUC__) && __GNUC__ <= 3) || defined(__SUNPRO_CC) || defined(__ANDROID__) - // Work around bug in various compilers where map rev iterators don't work - for(std::map::const_iterator i = results.begin(); i != results.end(); ++i) -#else - for(std::map::const_reverse_iterator i = results.rbegin(); i != results.rend(); ++i) -#endif - { - std::cout << " [" << i->second << "] " - << std::fixed << std::setprecision(2) << i->first; - } - std::cout << std::endl; - } - -} - -bool bench_algo(const std::string& algo, - Botan::RandomNumberGenerator& rng, - double seconds, - u32bit buf_size) - { - Botan::Algorithm_Factory& af = Botan::global_state().algorithm_factory(); - - u32bit milliseconds = static_cast(seconds * 1000); - - std::map speeds = - algorithm_benchmark(algo, af, rng, milliseconds, buf_size); - - if(speeds.empty()) // maybe a cipher mode, then? - { - Botan::Algorithm_Factory::Engine_Iterator i(af); - - std::vector algo_parts = Botan::split_on(algo, '/'); - - if(algo_parts.size() < 2) // not a cipher mode - return false; - - std::string cipher = algo_parts[0]; - - const Botan::BlockCipher* proto_cipher = - af.prototype_block_cipher(cipher); - - if(!proto_cipher) - { - std::cout << "Unknown algorithm " << cipher << "\n"; - return false; - } - - size_t cipher_keylen = proto_cipher->maximum_keylength(); - const size_t cipher_ivlen = proto_cipher->block_size(); - - if(algo_parts[1] == "XTS") - cipher_keylen *= 2; // hack! - - std::vector buf(16 * 1024); - rng.randomize(&buf[0], buf.size()); - - while(Botan::Engine* engine = i.next()) - { - u64bit nanoseconds_max = static_cast(seconds * 1000000000.0); - - Botan::Keyed_Filter* filt = - engine->get_cipher(algo, Botan::ENCRYPTION, af); - - if(!filt) - continue; - - filt->set_key(Botan::SymmetricKey(&buf[0], cipher_keylen)); - - if(filt->valid_iv_length(cipher_ivlen / 2)) - filt->set_iv(Botan::InitializationVector(&buf[0], cipher_ivlen)); - - Botan::Pipe pipe(filt, new Botan::BitBucket); - pipe.start_msg(); - - const u64bit start = Botan::get_nanoseconds_clock(); - u64bit nanoseconds_used = 0; - u64bit reps = 0; - - while(nanoseconds_used < nanoseconds_max) - { - pipe.write(&buf[0], buf.size()); - ++reps; - nanoseconds_used = Botan::get_nanoseconds_clock() - start; - } - - double mbytes_per_second = - (953.67 * (buf.size() * reps)) / nanoseconds_used; - - speeds[engine->provider_name()] = mbytes_per_second; - } - } - - if(!speeds.empty()) - report_results(algo, speeds); - - return !speeds.empty(); - } - -void benchmark(Botan::RandomNumberGenerator& rng, - double seconds, u32bit buf_size) - { - for(u32bit i = 0; algos[i] != ""; ++i) - bench_algo(algos[i], rng, seconds, buf_size); - } diff --git a/src/botan/checks/bench.h b/src/botan/checks/bench.h deleted file mode 100644 index b423a2215..000000000 --- a/src/botan/checks/bench.h +++ /dev/null @@ -1,20 +0,0 @@ - -#ifndef BOTAN_CHECK_BENCHMARK_H__ -#define BOTAN_CHECK_BENCHMARK_H__ - -#include -#include - -void benchmark(Botan::RandomNumberGenerator& rng, - double seconds, - u32bit buf_size); - -bool bench_algo(const std::string& algo_name, - Botan::RandomNumberGenerator& rng, - double seconds, - u32bit buf_size); - -void bench_pk(Botan::RandomNumberGenerator&, - const std::string&, double seconds); - -#endif diff --git a/src/botan/checks/bigint.cpp b/src/botan/checks/bigint.cpp deleted file mode 100644 index 86e37cd7b..000000000 --- a/src/botan/checks/bigint.cpp +++ /dev/null @@ -1,359 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include - -#include -#include -#include -using namespace Botan; - -#include "common.h" -#include "validate.h" - -#define DEBUG 0 - -u32bit check_add(const std::vector&); -u32bit check_sub(const std::vector&); -u32bit check_mul(const std::vector&); -u32bit check_sqr(const std::vector&); -u32bit check_div(const std::vector&); -u32bit check_mod(const std::vector&, - Botan::RandomNumberGenerator& rng); -u32bit check_shr(const std::vector&); -u32bit check_shl(const std::vector&); - -u32bit check_powmod(const std::vector&); -u32bit check_primetest(const std::vector&, - Botan::RandomNumberGenerator&); - -u32bit do_bigint_tests(const std::string& filename, - Botan::RandomNumberGenerator& rng) - { - std::ifstream test_data(filename.c_str()); - - if(!test_data) - throw Botan::Stream_IO_Error("Couldn't open test file " + filename); - - u32bit errors = 0, alg_count = 0; - std::string algorithm; - bool first = true; - u32bit counter = 0; - - while(!test_data.eof()) - { - if(test_data.bad() || test_data.fail()) - throw Botan::Stream_IO_Error("File I/O error reading from " + - filename); - - std::string line; - std::getline(test_data, line); - - strip(line); - if(line.size() == 0) continue; - - // Do line continuation - while(line[line.size()-1] == '\\' && !test_data.eof()) - { - line.replace(line.size()-1, 1, ""); - std::string nextline; - std::getline(test_data, nextline); - strip(nextline); - if(nextline.size() == 0) continue; - line += nextline; - } - - if(line[0] == '[' && line[line.size() - 1] == ']') - { - algorithm = line.substr(1, line.size() - 2); - alg_count = 0; - counter = 0; - - if(!first) - std::cout << std::endl; - std::cout << "Testing BigInt " << algorithm << ": "; - std::cout.flush(); - first = false; - continue; - } - - std::vector substr = parse(line); - -#if DEBUG - std::cout << "Testing: " << algorithm << std::endl; -#endif - - u32bit new_errors = 0; - if(algorithm.find("Addition") != std::string::npos) - new_errors = check_add(substr); - else if(algorithm.find("Subtraction") != std::string::npos) - new_errors = check_sub(substr); - else if(algorithm.find("Multiplication") != std::string::npos) - new_errors = check_mul(substr); - else if(algorithm.find("Square") != std::string::npos) - new_errors = check_sqr(substr); - else if(algorithm.find("Division") != std::string::npos) - new_errors = check_div(substr); - else if(algorithm.find("Modulo") != std::string::npos) - new_errors = check_mod(substr, rng); - else if(algorithm.find("LeftShift") != std::string::npos) - new_errors = check_shl(substr); - else if(algorithm.find("RightShift") != std::string::npos) - new_errors = check_shr(substr); - else if(algorithm.find("ModExp") != std::string::npos) - new_errors = check_powmod(substr); - else if(algorithm.find("PrimeTest") != std::string::npos) - new_errors = check_primetest(substr, rng); - else - std::cout << "Unknown MPI test " << algorithm << std::endl; - - if(counter % 3 == 0) - { - std::cout << '.'; - std::cout.flush(); - } - counter++; - alg_count++; - errors += new_errors; - - if(new_errors) - std::cout << "ERROR: BigInt " << algorithm << " failed test #" - << std::dec << alg_count << std::endl; - } - std::cout << std::endl; - return errors; - } - -namespace { - -// c==expected, d==a op b, e==a op= b -u32bit results(std::string op, - const BigInt& a, const BigInt& b, - const BigInt& c, const BigInt& d, const BigInt& e) - { - std::string op1 = "operator" + op; - std::string op2 = op1 + "="; - - if(c == d && d == e) - return 0; - else - { - std::cout << std::endl; - - std::cout << "ERROR: " << op1 << std::endl; - - std::cout << "a = " << std::hex << a << std::endl; - std::cout << "b = " << std::hex << b << std::endl; - - std::cout << "c = " << std::hex << c << std::endl; - std::cout << "d = " << std::hex << d << std::endl; - std::cout << "e = " << std::hex << e << std::endl; - - if(d != e) - { - std::cout << "ERROR: " << op1 << " | " << op2 - << " mismatch" << std::endl; - } - return 1; - } - } - -} - -u32bit check_add(const std::vector& args) - { - BigInt a(args[0]); - BigInt b(args[1]); - BigInt c(args[2]); - - BigInt d = a + b; - BigInt e = a; - e += b; - - if(results("+", a, b, c, d, e)) - return 1; - - d = b + a; - e = b; - e += a; - - return results("+", a, b, c, d, e); - } - -u32bit check_sub(const std::vector& args) - { - BigInt a(args[0]); - BigInt b(args[1]); - BigInt c(args[2]); - - BigInt d = a - b; - BigInt e = a; - e -= b; - - return results("-", a, b, c, d, e); - } - -u32bit check_mul(const std::vector& args) - { - BigInt a(args[0]); - BigInt b(args[1]); - BigInt c(args[2]); - - /* - std::cout << "a = " << args[0] << "\n" - << "b = " << args[1] << std::endl; - */ - /* This makes it more likely the fast multiply algorithms will be usable, - which is what we really want to test here (the simple n^2 multiply is - pretty well tested at this point). - */ - a.grow_reg(32); - b.grow_reg(32); - - BigInt d = a * b; - BigInt e = a; - e *= b; - - if(results("*", a, b, c, d, e)) - return 1; - - d = b * a; - e = b; - e *= a; - - return results("*", a, b, c, d, e); - } - -u32bit check_sqr(const std::vector& args) - { - BigInt a(args[0]); - BigInt b(args[1]); - - a.grow_reg(16); - b.grow_reg(16); - - BigInt c = square(a); - BigInt d = a * a; - - return results("sqr", a, a, b, c, d); - } - -u32bit check_div(const std::vector& args) - { - BigInt a(args[0]); - BigInt b(args[1]); - BigInt c(args[2]); - - BigInt d = a / b; - BigInt e = a; - e /= b; - - return results("/", a, b, c, d, e); - } - -u32bit check_mod(const std::vector& args, - Botan::RandomNumberGenerator& rng) - { - BigInt a(args[0]); - BigInt b(args[1]); - BigInt c(args[2]); - - BigInt d = a % b; - BigInt e = a; - e %= b; - - u32bit got = results("%", a, b, c, d, e); - - if(got) return got; - - word b_word = b.word_at(0); - - /* Won't work for us, just pick one at random */ - while(b_word == 0) - for(u32bit j = 0; j != 2*sizeof(word); j++) - b_word = (b_word << 4) ^ rng.next_byte(); - - b = b_word; - - c = a % b; /* we declare the BigInt % BigInt version to be correct here */ - - word d2 = a % b_word; - e = a; - e %= b_word; - - return results("%(word)", a, b, c, d2, e); - } - -u32bit check_shl(const std::vector& args) - { - BigInt a(args[0]); - u32bit b = std::atoi(args[1].c_str()); - BigInt c(args[2]); - - BigInt d = a << b; - BigInt e = a; - e <<= b; - - return results("<<", a, b, c, d, e); - } - -u32bit check_shr(const std::vector& args) - { - BigInt a(args[0]); - u32bit b = std::atoi(args[1].c_str()); - BigInt c(args[2]); - - BigInt d = a >> b; - BigInt e = a; - e >>= b; - - return results(">>", a, b, c, d, e); - } - -/* Make sure that (a^b)%m == r */ -u32bit check_powmod(const std::vector& args) - { - BigInt a(args[0]); - BigInt b(args[1]); - BigInt m(args[2]); - BigInt c(args[3]); - - BigInt r = power_mod(a, b, m); - - if(c != r) - { - std::cout << "ERROR: power_mod" << std::endl; - std::cout << "a = " << std::hex << a << std::endl; - std::cout << "b = " << std::hex << b << std::endl; - std::cout << "m = " << std::hex << m << std::endl; - std::cout << "c = " << std::hex << c << std::endl; - std::cout << "r = " << std::hex << r << std::endl; - return 1; - } - return 0; - } - -/* Make sure that n is prime or not prime, according to should_be_prime */ -u32bit check_primetest(const std::vector& args, - Botan::RandomNumberGenerator& rng) - { - BigInt n(args[0]); - bool should_be_prime = (args[1] == "1"); - - bool is_prime = Botan::verify_prime(n, rng); - - if(is_prime != should_be_prime) - { - std::cout << "ERROR: verify_prime" << std::endl; - std::cout << "n = " << n << std::endl; - std::cout << is_prime << " != " << should_be_prime << std::endl; - } - return 0; - } diff --git a/src/botan/checks/check.cpp b/src/botan/checks/check.cpp deleted file mode 100644 index a530377c1..000000000 --- a/src/botan/checks/check.cpp +++ /dev/null @@ -1,254 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -/* - * Test Driver for Botan - */ - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include -#include - -#if defined(BOTAN_HAS_DYNAMICALLY_LOADED_ENGINE) - #include -#endif - -using namespace Botan; - -#include "getopt.h" -#include "bench.h" -#include "validate.h" -#include "common.h" - -const std::string VALIDATION_FILE = "checks/validate.dat"; -const std::string BIGINT_VALIDATION_FILE = "checks/mp_valid.dat"; -const std::string PK_VALIDATION_FILE = "checks/pk_valid.dat"; -const std::string EXPECTED_FAIL_FILE = "checks/fail.dat"; - -int run_test_suite(RandomNumberGenerator& rng); - -namespace { - -template -bool test(const char* type, int digits, bool is_signed) - { - if(std::numeric_limits::is_specialized == false) - { - std::cout << "Warning: Could not check parameters of " << type - << " in std::numeric_limits" << std::endl; - - // assume it's OK (full tests will catch it later) - return true; - } - - // continue checking after failures - bool passed = true; - - if(std::numeric_limits::is_integer == false) - { - std::cout << "Warning: std::numeric_limits<> says " << type - << " is not an integer" << std::endl; - passed = false; - } - - if(std::numeric_limits::is_signed != is_signed) - { - std::cout << "Warning: numeric_limits<" << type << ">::is_signed == " - << std::boolalpha << std::numeric_limits::is_signed - << std::endl; - passed = false; - } - - if(std::numeric_limits::digits != digits && digits != 0) - { - std::cout << "Warning: numeric_limits<" << type << ">::digits == " - << std::numeric_limits::digits - << " expected " << digits << std::endl; - passed = false; - } - - return passed; - } - -void test_types() - { - bool passed = true; - - passed = passed && test("byte", 8, false); - passed = passed && test("u16bit", 16, false); - passed = passed && test("u32bit", 32, false); - passed = passed && test("u64bit", 64, false); - passed = passed && test("s32bit", 31, true); - - if(!passed) - std::cout << "Typedefs in include/types.h may be incorrect!\n"; - } - -} - -int main(int argc, char* argv[]) - { - if(BOTAN_VERSION_MAJOR != version_major() || - BOTAN_VERSION_MINOR != version_minor() || - BOTAN_VERSION_PATCH != version_patch()) - { - std::cout << "Warning: linked version (" - << version_major() << '.' - << version_minor() << '.' - << version_patch() - << ") does not match version built against (" - << BOTAN_VERSION_MAJOR << '.' - << BOTAN_VERSION_MINOR << '.' - << BOTAN_VERSION_PATCH << ")\n"; - } - - try - { - OptionParser opts("help|test|validate|dyn-load=|" - "benchmark|bench-type=|bench-algo=|" - "seconds=|buf-size="); - opts.parse(argv); - - test_types(); // do this always - - Botan::LibraryInitializer init("thread_safe=no"); - - if(opts.is_set("dyn-load")) - { - const std::string lib = opts.value("dyn-load"); - -#if defined(BOTAN_HAS_DYNAMICALLY_LOADED_ENGINE) - global_state().algorithm_factory().add_engine( - new Dynamically_Loaded_Engine(lib)); -#else - std::cout << "Can't load " << lib - << "; DLL engines not supported in build\n"; -#endif - } - - Botan::AutoSeeded_RNG rng; - - if(opts.is_set("help") || argc <= 1) - { - std::cerr << "Test driver for " - << Botan::version_string() << "\n" - << "Options:\n" - << " --test || --validate: Run tests (do this at least once)\n" - << " --benchmark: Benchmark everything\n" - << " --seconds=n: Benchmark for n seconds\n" - << " --init=: Pass to the library\n" - << " --help: Print this message\n"; - return 1; - } - - if(opts.is_set("validate") || opts.is_set("test")) - { - return run_test_suite(rng); - } - if(opts.is_set("bench-algo") || - opts.is_set("benchmark") || - opts.is_set("bench-type")) - { - double seconds = 5; - - u32bit buf_size = 16; - - if(opts.is_set("seconds")) - { - seconds = std::atof(opts.value("seconds").c_str()); - if(seconds < 0.1 || seconds > (5 * 60)) - { - std::cout << "Invalid argument to --seconds\n"; - return 2; - } - } - - if(opts.is_set("buf-size")) - { - buf_size = std::atoi(opts.value("buf-size").c_str()); - if(buf_size == 0 || buf_size > 1024) - { - std::cout << "Invalid argument to --buf-size\n"; - return 2; - } - } - - if(opts.is_set("benchmark")) - { - benchmark(rng, seconds, buf_size); - } - else if(opts.is_set("bench-algo")) - { - std::vector algs = - Botan::split_on(opts.value("bench-algo"), ','); - - for(u32bit j = 0; j != algs.size(); j++) - { - const std::string alg = algs[j]; - if(!bench_algo(alg, rng, seconds, buf_size)) - bench_pk(rng, alg, seconds); - } - } - } - } - catch(std::exception& e) - { - std::cerr << "Exception: " << e.what() << std::endl; - return 1; - } - catch(...) - { - std::cerr << "Unknown (...) exception caught" << std::endl; - return 1; - } - - return 0; - } - -int run_test_suite(RandomNumberGenerator& rng) - { - std::cout << "Beginning tests..." << std::endl; - - u32bit errors = 0; - try - { - errors += do_validation_tests(VALIDATION_FILE, rng); - errors += do_validation_tests(EXPECTED_FAIL_FILE, rng, false); - errors += do_bigint_tests(BIGINT_VALIDATION_FILE, rng); - errors += do_pk_validation_tests(PK_VALIDATION_FILE, rng); - do_x509_tests(rng); - //errors += do_cvc_tests(rng); - } - catch(std::exception& e) - { - std::cout << "Exception: " << e.what() << std::endl; - return 1; - } - catch(...) - { - std::cout << "Unknown exception caught." << std::endl; - return 1; - } - - if(errors) - { - std::cout << errors << " test" << ((errors == 1) ? "" : "s") - << " failed." << std::endl; - return 1; - } - - std::cout << "All tests passed!" << std::endl; - return 0; - } diff --git a/src/botan/checks/common.h b/src/botan/checks/common.h deleted file mode 100644 index 33499a99d..000000000 --- a/src/botan/checks/common.h +++ /dev/null @@ -1,73 +0,0 @@ -// common code for the validation and benchmark code - -#ifndef BOTAN_CHECK_COMMON_H__ -#define BOTAN_CHECK_COMMON_H__ - -#include -#include -#include -#include - -#include -#include -#include -#include - -using Botan::byte; -using Botan::u32bit; -using Botan::u64bit; - -void strip_comments(std::string& line); -void strip_newlines(std::string& line); -void strip(std::string& line); -std::vector parse(const std::string& line); - -Botan::Filter* lookup(const std::string& algname, - const std::vector& params); - -class Fixed_Output_RNG : public Botan::RandomNumberGenerator - { - public: - bool is_seeded() const { return !buf.empty(); } - - byte random() - { - if(buf.empty()) - throw std::runtime_error("Out of bytes"); - - byte out = buf.front(); - buf.pop_front(); - return out; - } - - void reseed(size_t) {} - - void randomize(byte out[], size_t len) - { - for(size_t j = 0; j != len; j++) - out[j] = random(); - } - - std::string name() const { return "Fixed_Output_RNG"; } - - void add_entropy_source(Botan::EntropySource* src) { delete src; } - void add_entropy(const byte[], size_t) {}; - - void clear() throw() {} - - Fixed_Output_RNG(const Botan::SecureVector& in) - { - buf.insert(buf.end(), in.begin(), in.end()); - } - Fixed_Output_RNG(const std::string& in_str) - { - Botan::SecureVector in = Botan::hex_decode(in_str); - buf.insert(buf.end(), in.begin(), in.end()); - } - - Fixed_Output_RNG() {} - private: - std::deque buf; - }; - -#endif diff --git a/src/botan/checks/cvc_tests.cpp b/src/botan/checks/cvc_tests.cpp deleted file mode 100644 index 334fb8581..000000000 --- a/src/botan/checks/cvc_tests.cpp +++ /dev/null @@ -1,602 +0,0 @@ -/* -* CVC EAC1.1 tests -* -* (C) 2008 Falko Strenzke (strenzke@flexsecure.de) -* 2008 Jack Lloyd -*/ - -#include "validate.h" -#include - -#if defined(BOTAN_HAS_CARD_VERIFIABLE_CERTIFICATES) - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#define TEST_DATA_DIR "checks/ecc_testdata" - -using namespace Botan; - -#define CHECK_MESSAGE(expr, print) try { if(!(expr)) std::cout << print << "\n"; } catch(std::exception& e) { std::cout << __FUNCTION__ << ": " << e.what() << "\n"; } -#define CHECK(expr) try { if(!(expr)) std::cout << #expr << "\n"; } catch(std::exception& e) { std::cout << __FUNCTION__ << ": " << e.what() << "\n"; } - -namespace { - -// helper functions -void helper_write_file(EAC_Signed_Object const& to_write, std::string const& file_path) - { - SecureVector sv = to_write.BER_encode(); - std::ofstream cert_file(file_path.c_str(), std::ios::binary); - cert_file.write((char*)&sv[0], sv.size()); - cert_file.close(); - } - -bool helper_files_equal(std::string const& file_path1, std::string const& file_path2) - { - std::ifstream cert_1_in(file_path1.c_str()); - std::ifstream cert_2_in(file_path2.c_str()); - SecureVector sv1; - SecureVector sv2; - if (!cert_1_in || !cert_2_in) - { - return false; - } - while (!cert_1_in.eof()) - { - char now; - cert_1_in.read(&now, 1); - sv1.push_back(now); - } - while (!cert_2_in.eof()) - { - char now; - cert_2_in.read(&now, 1); - sv2.push_back(now); - } - if (sv1.size() == 0) - { - return false; - } - return sv1 == sv2; - } - -void test_enc_gen_selfsigned(RandomNumberGenerator& rng) - { - std::cout << '.' << std::flush; - - EAC1_1_CVC_Options opts; - //opts.cpi = 0; - opts.chr = ASN1_Chr("my_opt_chr"); // not used - opts.car = ASN1_Car("my_opt_car"); - opts.cex = ASN1_Cex("2010 08 13"); - opts.ced = ASN1_Ced("2010 07 27"); - opts.holder_auth_templ = 0xC1; - opts.hash_alg = "SHA-256"; - - // creating a non sense selfsigned cert w/o dom pars - EC_Group dom_pars(OID("1.3.36.3.3.2.8.1.1.11")); - ECDSA_PrivateKey key(rng, dom_pars); - key.set_parameter_encoding(EC_DOMPAR_ENC_IMPLICITCA); - EAC1_1_CVC cert = CVC_EAC::create_self_signed_cert(key, opts, rng); - - SecureVector der(cert.BER_encode()); - std::ofstream cert_file; - cert_file.open(TEST_DATA_DIR "/my_cv_cert.ber", std::ios::binary); - //cert_file << der; // this is bad !!! - cert_file.write((char*)&der[0], der.size()); - cert_file.close(); - - EAC1_1_CVC cert_in(TEST_DATA_DIR "/my_cv_cert.ber"); - CHECK(cert == cert_in); - // encoding it again while it has no dp - SecureVector der2(cert_in.BER_encode()); - std::ofstream cert_file2(TEST_DATA_DIR "/my_cv_cert2.ber", std::ios::binary); - cert_file2.write((char*)&der2[0], der2.size()); - cert_file2.close(); - // read both and compare them - std::ifstream cert_1_in(TEST_DATA_DIR "/my_cv_cert.ber"); - std::ifstream cert_2_in(TEST_DATA_DIR "/my_cv_cert2.ber"); - SecureVector sv1; - SecureVector sv2; - if (!cert_1_in || !cert_2_in) - { - CHECK_MESSAGE(false, "could not read certificate files"); - } - while (!cert_1_in.eof()) - { - char now; - - cert_1_in.read(&now, 1); - sv1.push_back(now); - } - while (!cert_2_in.eof()) - { - char now; - cert_2_in.read(&now, 1); - sv2.push_back(now); - } - CHECK(sv1.size() > 10); - CHECK_MESSAGE(sv1 == sv2, "reencoded file of cert without domain parameters is different from original"); - - //cout << "reading cert again\n"; - CHECK(cert_in.get_car().value() == "my_opt_car"); - CHECK(cert_in.get_chr().value() == "my_opt_car"); - CHECK(cert_in.get_ced().as_string() == "20100727"); - CHECK(cert_in.get_ced().readable_string() == "2010/07/27 "); - - bool ill_date_exc = false; - try - { - ASN1_Ced("1999 01 01"); - } - catch (...) - { - ill_date_exc = true; - } - CHECK(ill_date_exc); - - bool ill_date_exc2 = false; - try - { - ASN1_Ced("2100 01 01"); - } - catch (...) - { - ill_date_exc2 = true; - } - CHECK(ill_date_exc2); - //cout << "readable = '" << cert_in.get_ced().readable_string() << "'\n"; - std::auto_ptr p_pk(cert_in.subject_public_key()); - //auto_ptr ecdsa_pk(dynamic_cast >(p_pk)); - ECDSA_PublicKey* p_ecdsa_pk = dynamic_cast(p_pk.get()); - // let´s see if encoding is truely implicitca, because this is what the key should have - // been set to when decoding (see above)(because it has no domain params): - //cout << "encoding = " << p_ecdsa_pk->get_parameter_encoding() << std::endl; - CHECK(p_ecdsa_pk->domain_format() == EC_DOMPAR_ENC_IMPLICITCA); - bool exc = false; - try - { - std::cout << "order = " << p_ecdsa_pk->domain().get_order() << std::endl; - } - catch (Invalid_State) - { - exc = true; - } - CHECK(exc); - // set them and try again - //cert_in.set_domain_parameters(dom_pars); - std::auto_ptr p_pk2(cert_in.subject_public_key()); - ECDSA_PublicKey* p_ecdsa_pk2 = dynamic_cast(p_pk2.get()); - //p_ecdsa_pk2->set_domain_parameters(dom_pars); - CHECK(p_ecdsa_pk2->domain().get_order() == dom_pars.get_order()); - bool ver_ec = cert_in.check_signature(*p_pk2); - CHECK_MESSAGE(ver_ec, "could not positively verify correct selfsigned cvc certificate"); - } - -void test_enc_gen_req(RandomNumberGenerator& rng) - { - std::cout << "." << std::flush; - - EAC1_1_CVC_Options opts; - - //opts.cpi = 0; - opts.chr = ASN1_Chr("my_opt_chr"); - opts.hash_alg = "SHA-160"; - - // creating a non sense selfsigned cert w/o dom pars - EC_Group dom_pars(OID("1.3.132.0.8")); - ECDSA_PrivateKey key(rng, dom_pars); - key.set_parameter_encoding(EC_DOMPAR_ENC_IMPLICITCA); - EAC1_1_Req req = CVC_EAC::create_cvc_req(key, opts.chr, opts.hash_alg, rng); - SecureVector der(req.BER_encode()); - std::ofstream req_file(TEST_DATA_DIR "/my_cv_req.ber", std::ios::binary); - req_file.write((char*)&der[0], der.size()); - req_file.close(); - - // read and check signature... - EAC1_1_Req req_in(TEST_DATA_DIR "/my_cv_req.ber"); - //req_in.set_domain_parameters(dom_pars); - std::auto_ptr p_pk(req_in.subject_public_key()); - ECDSA_PublicKey* p_ecdsa_pk = dynamic_cast(p_pk.get()); - //p_ecdsa_pk->set_domain_parameters(dom_pars); - CHECK(p_ecdsa_pk->domain().get_order() == dom_pars.get_order()); - bool ver_ec = req_in.check_signature(*p_pk); - CHECK_MESSAGE(ver_ec, "could not positively verify correct selfsigned (created by myself) cvc request"); - } - -void test_cvc_req_ext(RandomNumberGenerator&) - { - std::cout << "." << std::flush; - - EAC1_1_Req req_in(TEST_DATA_DIR "/DE1_flen_chars_cvcRequest_ECDSA.der"); - EC_Group dom_pars(OID("1.3.36.3.3.2.8.1.1.5")); // "german curve" - //req_in.set_domain_parameters(dom_pars); - std::auto_ptr p_pk(req_in.subject_public_key()); - ECDSA_PublicKey* p_ecdsa_pk = dynamic_cast(p_pk.get()); - //p_ecdsa_pk->set_domain_parameters(dom_pars); - CHECK(p_ecdsa_pk->domain().get_order() == dom_pars.get_order()); - bool ver_ec = req_in.check_signature(*p_pk); - CHECK_MESSAGE(ver_ec, "could not positively verify correct selfsigned (external testdata) cvc request"); - } - -void test_cvc_ado_ext(RandomNumberGenerator&) - { - std::cout << "." << std::flush; - - EAC1_1_ADO req_in(TEST_DATA_DIR "/ado.cvcreq"); - EC_Group dom_pars(OID("1.3.36.3.3.2.8.1.1.5")); // "german curve" - //cout << "car = " << req_in.get_car().value() << std::endl; - //req_in.set_domain_parameters(dom_pars); - } - -void test_cvc_ado_creation(RandomNumberGenerator& rng) - { - std::cout << "." << std::flush; - - EAC1_1_CVC_Options opts; - //opts.cpi = 0; - opts.chr = ASN1_Chr("my_opt_chr"); - opts.hash_alg = "SHA-256"; - - // creating a non sense selfsigned cert w/o dom pars - EC_Group dom_pars(OID("1.3.36.3.3.2.8.1.1.11")); - //cout << "mod = " << hex << dom_pars.get_curve().get_p() << std::endl; - ECDSA_PrivateKey req_key(rng, dom_pars); - req_key.set_parameter_encoding(EC_DOMPAR_ENC_IMPLICITCA); - //EAC1_1_Req req = CVC_EAC::create_cvc_req(req_key, opts); - EAC1_1_Req req = CVC_EAC::create_cvc_req(req_key, opts.chr, opts.hash_alg, rng); - SecureVector der(req.BER_encode()); - std::ofstream req_file(TEST_DATA_DIR "/my_cv_req.ber", std::ios::binary); - req_file.write((char*)&der[0], der.size()); - req_file.close(); - - // create an ado with that req - ECDSA_PrivateKey ado_key(rng, dom_pars); - EAC1_1_CVC_Options ado_opts; - ado_opts.car = ASN1_Car("my_ado_car"); - ado_opts.hash_alg = "SHA-256"; // must be equal to req´s hash alg, because ado takes his sig_algo from it´s request - - //EAC1_1_ADO ado = CVC_EAC::create_ado_req(ado_key, req, ado_opts); - EAC1_1_ADO ado = CVC_EAC::create_ado_req(ado_key, req, ado_opts.car, rng); - CHECK_MESSAGE(ado.check_signature(ado_key), "failure of ado verification after creation"); - - std::ofstream ado_file(TEST_DATA_DIR "/ado", std::ios::binary); - SecureVector ado_der(ado.BER_encode()); - ado_file.write((char*)&ado_der[0], ado_der.size()); - ado_file.close(); - // read it again and check the signature - EAC1_1_ADO ado2(TEST_DATA_DIR "/ado"); - CHECK(ado == ado2); - //ECDSA_PublicKey* p_ado_pk = dynamic_cast(&ado_key); - //bool ver = ado2.check_signature(*p_ado_pk); - bool ver = ado2.check_signature(ado_key); - CHECK_MESSAGE(ver, "failure of ado verification after reloading"); - } - -void test_cvc_ado_comparison(RandomNumberGenerator& rng) - { - std::cout << "." << std::flush; - - EAC1_1_CVC_Options opts; - //opts.cpi = 0; - opts.chr = ASN1_Chr("my_opt_chr"); - opts.hash_alg = "SHA-224"; - - // creating a non sense selfsigned cert w/o dom pars - EC_Group dom_pars(OID("1.3.36.3.3.2.8.1.1.11")); - ECDSA_PrivateKey req_key(rng, dom_pars); - req_key.set_parameter_encoding(EC_DOMPAR_ENC_IMPLICITCA); - //EAC1_1_Req req = CVC_EAC::create_cvc_req(req_key, opts); - EAC1_1_Req req = CVC_EAC::create_cvc_req(req_key, opts.chr, opts.hash_alg, rng); - - - // create an ado with that req - ECDSA_PrivateKey ado_key(rng, dom_pars); - EAC1_1_CVC_Options ado_opts; - ado_opts.car = ASN1_Car("my_ado_car1"); - ado_opts.hash_alg = "SHA-224"; // must be equal to req's hash alg, because ado takes his sig_algo from it's request - //EAC1_1_ADO ado = CVC_EAC::create_ado_req(ado_key, req, ado_opts); - EAC1_1_ADO ado = CVC_EAC::create_ado_req(ado_key, req, ado_opts.car, rng); - CHECK_MESSAGE(ado.check_signature(ado_key), "failure of ado verification after creation"); - // make a second one for comparison - EAC1_1_CVC_Options opts2; - //opts2.cpi = 0; - opts2.chr = ASN1_Chr("my_opt_chr"); - opts2.hash_alg = "SHA-160"; // this is the only difference - ECDSA_PrivateKey req_key2(rng, dom_pars); - req_key.set_parameter_encoding(EC_DOMPAR_ENC_IMPLICITCA); - //EAC1_1_Req req2 = CVC_EAC::create_cvc_req(req_key2, opts2, rng); - EAC1_1_Req req2 = CVC_EAC::create_cvc_req(req_key2, opts2.chr, opts2.hash_alg, rng); - ECDSA_PrivateKey ado_key2(rng, dom_pars); - EAC1_1_CVC_Options ado_opts2; - ado_opts2.car = ASN1_Car("my_ado_car1"); - ado_opts2.hash_alg = "SHA-160"; // must be equal to req's hash alg, because ado takes his sig_algo from it's request - - EAC1_1_ADO ado2 = CVC_EAC::create_ado_req(ado_key2, req2, ado_opts2.car, rng); - CHECK_MESSAGE(ado2.check_signature(ado_key2), "failure of ado verification after creation"); - - CHECK_MESSAGE(ado != ado2, "ado's found to be equal where they are not"); - // std::ofstream ado_file(TEST_DATA_DIR "/ado"); - // SecureVector ado_der(ado.BER_encode()); - // ado_file.write((char*)&ado_der[0], ado_der.size()); - // ado_file.close(); - // read it again and check the signature - - // EAC1_1_ADO ado2(TEST_DATA_DIR "/ado"); - // ECDSA_PublicKey* p_ado_pk = dynamic_cast(&ado_key); - // //bool ver = ado2.check_signature(*p_ado_pk); - // bool ver = ado2.check_signature(ado_key); - // CHECK_MESSAGE(ver, "failure of ado verification after reloading"); - } - -void test_eac_time(RandomNumberGenerator&) - { - std::cout << "." << std::flush; - - const u64bit current_time = system_time(); - EAC_Time time(current_time); - // std::cout << "time as std::string = " << time.as_string() << std::endl; - EAC_Time sooner("", ASN1_Tag(99)); - //X509_Time sooner("", ASN1_Tag(99)); - sooner.set_to("2007 12 12"); - // std::cout << "sooner as std::string = " << sooner.as_string() << std::endl; - EAC_Time later("2007 12 13"); - //X509_Time later("2007 12 13"); - // std::cout << "later as std::string = " << later.as_string() << std::endl; - CHECK(sooner <= later); - CHECK(sooner == sooner); - - ASN1_Cex my_cex("2007 08 01"); - my_cex.add_months(12); - CHECK(my_cex.get_year() == 2008); - CHECK_MESSAGE(my_cex.get_month() == 8, "shoult be 8, was " << my_cex.get_month()); - - my_cex.add_months(4); - CHECK(my_cex.get_year() == 2008); - CHECK(my_cex.get_month() == 12); - - my_cex.add_months(4); - CHECK(my_cex.get_year() == 2009); - CHECK(my_cex.get_month() == 4); - - my_cex.add_months(41); - CHECK(my_cex.get_year() == 2012); - CHECK(my_cex.get_month() == 9); - - - - } - -void test_ver_cvca(RandomNumberGenerator&) - { - std::cout << "." << std::flush; - - EAC1_1_CVC req_in(TEST_DATA_DIR "/cvca01.cv.crt"); - - //auto_ptr ecdsa_pk(dynamic_cast >(p_pk)); - //ECDSA_PublicKey* p_ecdsa_pk = dynamic_cast(p_pk.get()); - bool exc = false; - - std::auto_ptr p_pk2(req_in.subject_public_key()); - ECDSA_PublicKey* p_ecdsa_pk2 = dynamic_cast(p_pk2.get()); - bool ver_ec = req_in.check_signature(*p_pk2); - CHECK_MESSAGE(ver_ec, "could not positively verify correct selfsigned cvca certificate"); - - try - { - p_ecdsa_pk2->domain().get_order(); - } - catch (Invalid_State) - { - exc = true; - } - CHECK(!exc); - } - -void test_copy_and_assignment(RandomNumberGenerator&) - { - std::cout << "." << std::flush; - - EAC1_1_CVC cert_in(TEST_DATA_DIR "/cvca01.cv.crt"); - EAC1_1_CVC cert_cp(cert_in); - EAC1_1_CVC cert_ass = cert_in; - CHECK(cert_in == cert_cp); - CHECK(cert_in == cert_ass); - - EAC1_1_ADO ado_in(TEST_DATA_DIR "/ado.cvcreq"); - //EC_Group dom_pars(OID("1.3.36.3.3.2.8.1.1.5")); // "german curve" - EAC1_1_ADO ado_cp(ado_in); - EAC1_1_ADO ado_ass = ado_in; - CHECK(ado_in == ado_cp); - CHECK(ado_in == ado_ass); - - EAC1_1_Req req_in(TEST_DATA_DIR "/DE1_flen_chars_cvcRequest_ECDSA.der"); - //EC_Group dom_pars(OID("1.3.36.3.3.2.8.1.1.5")); // "german curve" - EAC1_1_Req req_cp(req_in); - EAC1_1_Req req_ass = req_in; - CHECK(req_in == req_cp); - CHECK(req_in == req_ass); - } - -void test_eac_str_illegal_values(RandomNumberGenerator&) - { - std::cout << "." << std::flush; - - bool exc = false; - try - { - EAC1_1_CVC(TEST_DATA_DIR "/cvca_illegal_chars.cv.crt"); - - } - catch (Decoding_Error) - { - exc = true; - } - CHECK(exc); - - bool exc2 = false; - try - { - EAC1_1_CVC(TEST_DATA_DIR "/cvca_illegal_chars2.cv.crt"); - - } - catch (Decoding_Error) - { - exc2 = true; - } - CHECK(exc2); - } - -void test_tmp_eac_str_enc(RandomNumberGenerator&) - { - std::cout << "." << std::flush; - - bool exc = false; - try - { - ASN1_Car("abc!+-µ\n"); - } - catch (Invalid_Argument) - { - exc = true; - } - CHECK(exc); - // std::string val = car.iso_8859(); - // std::cout << "car 8859 = " << val << std::endl; - // std::cout << hex <<(unsigned char)val[1] << std::endl; - - - } - -void test_cvc_chain(RandomNumberGenerator& rng) - { - std::cout << "." << std::flush; - - EC_Group dom_pars(OID("1.3.36.3.3.2.8.1.1.5")); // "german curve" - ECDSA_PrivateKey cvca_privk(rng, dom_pars); - std::string hash("SHA-224"); - ASN1_Car car("DECVCA00001"); - EAC1_1_CVC cvca_cert = DE_EAC::create_cvca(cvca_privk, hash, car, true, true, 12, rng); - std::ofstream cvca_file(TEST_DATA_DIR "/cvc_chain_cvca.cer", std::ios::binary); - SecureVector cvca_sv = cvca_cert.BER_encode(); - cvca_file.write((char*)&cvca_sv[0], cvca_sv.size()); - cvca_file.close(); - - ECDSA_PrivateKey cvca_privk2(rng, dom_pars); - ASN1_Car car2("DECVCA00002"); - EAC1_1_CVC cvca_cert2 = DE_EAC::create_cvca(cvca_privk2, hash, car2, true, true, 12, rng); - EAC1_1_CVC link12 = DE_EAC::link_cvca(cvca_cert, cvca_privk, cvca_cert2, rng); - SecureVector link12_sv = link12.BER_encode(); - std::ofstream link12_file(TEST_DATA_DIR "/cvc_chain_link12.cer", std::ios::binary); - link12_file.write((char*)&link12_sv[0], link12_sv.size()); - link12_file.close(); - - // verify the link - CHECK(link12.check_signature(cvca_privk)); - EAC1_1_CVC link12_reloaded(TEST_DATA_DIR "/cvc_chain_link12.cer"); - EAC1_1_CVC cvca1_reloaded(TEST_DATA_DIR "/cvc_chain_cvca.cer"); - std::auto_ptr cvca1_rel_pk(cvca1_reloaded.subject_public_key()); - CHECK(link12_reloaded.check_signature(*cvca1_rel_pk)); - - // create first round dvca-req - ECDSA_PrivateKey dvca_priv_key(rng, dom_pars); - EAC1_1_Req dvca_req = DE_EAC::create_cvc_req(dvca_priv_key, ASN1_Chr("DEDVCAEPASS"), hash, rng); - std::ofstream dvca_file(TEST_DATA_DIR "/cvc_chain_dvca_req.cer", std::ios::binary); - SecureVector dvca_sv = dvca_req.BER_encode(); - dvca_file.write((char*)&dvca_sv[0], dvca_sv.size()); - dvca_file.close(); - - // sign the dvca_request - EAC1_1_CVC dvca_cert1 = DE_EAC::sign_request(cvca_cert, cvca_privk, dvca_req, 1, 5, true, 3, 1, rng); - CHECK(dvca_cert1.get_car().iso_8859() == "DECVCA00001"); - CHECK(dvca_cert1.get_chr().iso_8859() == "DEDVCAEPASS00001"); - helper_write_file(dvca_cert1, TEST_DATA_DIR "/cvc_chain_dvca_cert1.cer"); - - // make a second round dvca ado request - ECDSA_PrivateKey dvca_priv_key2(rng, dom_pars); - EAC1_1_Req dvca_req2 = DE_EAC::create_cvc_req(dvca_priv_key2, ASN1_Chr("DEDVCAEPASS"), hash, rng); - std::ofstream dvca_file2(TEST_DATA_DIR "/cvc_chain_dvca_req2.cer", std::ios::binary); - SecureVector dvca_sv2 = dvca_req2.BER_encode(); - dvca_file2.write((char*)&dvca_sv2[0], dvca_sv2.size()); - dvca_file2.close(); - EAC1_1_ADO dvca_ado2 = CVC_EAC::create_ado_req(dvca_priv_key, dvca_req2, - ASN1_Car(dvca_cert1.get_chr().iso_8859()), rng); - helper_write_file(dvca_ado2, TEST_DATA_DIR "/cvc_chain_dvca_ado2.cer"); - - // verify the ado and sign the request too - - std::auto_ptr ap_pk(dvca_cert1.subject_public_key()); - ECDSA_PublicKey* cert_pk = dynamic_cast(ap_pk.get()); - - //cert_pk->set_domain_parameters(dom_pars); - //std::cout << "dvca_cert.public_point.size() = " << ec::EC2OSP(cert_pk->get_public_point(), ec::PointGFp::COMPRESSED).size() << std::endl; - EAC1_1_CVC dvca_cert1_reread(TEST_DATA_DIR "/cvc_chain_cvca.cer"); - CHECK(dvca_ado2.check_signature(*cert_pk)); - - CHECK(dvca_ado2.check_signature(dvca_priv_key)); // must also work - - EAC1_1_Req dvca_req2b = dvca_ado2.get_request(); - helper_write_file(dvca_req2b, TEST_DATA_DIR "/cvc_chain_dvca_req2b.cer"); - CHECK(helper_files_equal(TEST_DATA_DIR "/cvc_chain_dvca_req2b.cer", TEST_DATA_DIR "/cvc_chain_dvca_req2.cer")); - EAC1_1_CVC dvca_cert2 = DE_EAC::sign_request(cvca_cert, cvca_privk, dvca_req2b, 2, 5, true, 3, 1, rng); - CHECK(dvca_cert2.get_car().iso_8859() == "DECVCA00001"); - CHECK_MESSAGE(dvca_cert2.get_chr().iso_8859() == "DEDVCAEPASS00002", - "chr = " << dvca_cert2.get_chr().iso_8859()); - - // make a first round IS request - ECDSA_PrivateKey is_priv_key(rng, dom_pars); - EAC1_1_Req is_req = DE_EAC::create_cvc_req(is_priv_key, ASN1_Chr("DEIS"), hash, rng); - helper_write_file(is_req, TEST_DATA_DIR "/cvc_chain_is_req.cer"); - - // sign the IS request - //dvca_cert1.set_domain_parameters(dom_pars); - EAC1_1_CVC is_cert1 = DE_EAC::sign_request(dvca_cert1, dvca_priv_key, is_req, 1, 5, true, 3, 1, rng); - CHECK_MESSAGE(is_cert1.get_car().iso_8859() == "DEDVCAEPASS00001", "car = " << is_cert1.get_car().iso_8859()); - CHECK(is_cert1.get_chr().iso_8859() == "DEIS00001"); - helper_write_file(is_cert1, TEST_DATA_DIR "/cvc_chain_is_cert.cer"); - - // verify the signature of the certificate - CHECK(is_cert1.check_signature(dvca_priv_key)); - } - -} - -u32bit do_cvc_tests(Botan::RandomNumberGenerator& rng) - { - std::cout << "Testing CVC: " << std::flush; - - test_enc_gen_selfsigned(rng); - test_enc_gen_req(rng); - test_cvc_req_ext(rng); - test_cvc_ado_ext(rng); - test_cvc_ado_creation(rng); - test_cvc_ado_comparison(rng); - test_eac_time(rng); - test_ver_cvca(rng); - test_copy_and_assignment(rng); - test_eac_str_illegal_values(rng); - test_tmp_eac_str_enc(rng); - test_cvc_chain(rng); - std::cout << std::endl; - - return 0; - } -#else -u32bit do_cvc_tests(Botan::RandomNumberGenerator&) { return 0; } -#endif diff --git a/src/botan/checks/dolook.cpp b/src/botan/checks/dolook.cpp deleted file mode 100644 index a8e08a96b..000000000 --- a/src/botan/checks/dolook.cpp +++ /dev/null @@ -1,309 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#ifdef BOTAN_HAS_COMPRESSOR_BZIP2 -#include -#endif - -#ifdef BOTAN_HAS_COMPRESSOR_GZIP -#include -#endif - -#ifdef BOTAN_HAS_COMPRESSOR_ZLIB -#include -#endif - -#if defined(BOTAN_HAS_RANDPOOL) - #include -#endif - -#if defined(BOTAN_HAS_HMAC_RNG) - #include -#endif - -#if defined(BOTAN_HAS_AES) - #include -#endif - -#if defined(BOTAN_HAS_DES) - #include -#endif - -#if defined(BOTAN_HAS_X931_RNG) - #include -#endif - -#if defined(BOTAN_HAS_AUTO_SEEDING_RNG) - #include -#endif - -using namespace Botan; - -#include "common.h" - -namespace { - -/* A weird little hack to fit PBKDF algorithms into the validation -* suite You probably wouldn't ever want to actually use the PBKDF -* algorithms like this, the raw PBKDF interface is more convenient -* for actually using them -*/ -class PBKDF_Filter : public Filter - { - public: - std::string name() const { return pbkdf->name(); } - - void write(const byte in[], size_t len) - { passphrase += std::string(reinterpret_cast(in), len); } - - void end_msg() - { - SymmetricKey x = pbkdf->derive_key(outlen, passphrase, - &salt[0], salt.size(), - iterations); - send(x.bits_of()); - } - - PBKDF_Filter(PBKDF* algo, const SymmetricKey& s, u32bit o, u32bit i) - { - pbkdf = algo; - outlen = o; - iterations = i; - salt = s.bits_of(); - } - - ~PBKDF_Filter() { delete pbkdf; } - private: - std::string passphrase; - PBKDF* pbkdf; - SecureVector salt; - u32bit outlen, iterations; - }; - -/* Not too useful generally; just dumps random bits for benchmarking */ -class RNG_Filter : public Filter - { - public: - std::string name() const { return rng->name(); } - - void write(const byte[], size_t); - - RNG_Filter(RandomNumberGenerator* r) : rng(r) {} - ~RNG_Filter() { delete rng; } - private: - RandomNumberGenerator* rng; - }; - -class KDF_Filter : public Filter - { - public: - std::string name() const { return "KDF_Filter"; } - - void write(const byte in[], size_t len) - { secret += std::make_pair(in, len); } - - void end_msg() - { - SymmetricKey x = kdf->derive_key(outlen, secret, salt); - send(x.bits_of(), x.length()); - } - - KDF_Filter(KDF* algo, const SymmetricKey& s, u32bit o) - { - kdf = algo; - outlen = o; - salt = s.bits_of(); - } - ~KDF_Filter() { delete kdf; } - private: - SecureVector secret; - SecureVector salt; - KDF* kdf; - u32bit outlen; - }; - -Filter* lookup_pbkdf(const std::string& algname, - const std::vector& params) - { - PBKDF* pbkdf = 0; - - try { - pbkdf = get_pbkdf(algname); - } - catch(...) { } - - if(pbkdf) - return new PBKDF_Filter(pbkdf, params[0], to_u32bit(params[1]), - to_u32bit(params[2])); - return 0; - } - -void RNG_Filter::write(const byte[], size_t length) - { - if(length) - { - send(rng->random_vec(length)); - } - } - -Filter* lookup_rng(const std::string& algname, - const std::string& key) - { - RandomNumberGenerator* prng = 0; - -#if defined(BOTAN_HAS_AUTO_SEEDING_RNG) - if(algname == "AutoSeeded") - prng = new AutoSeeded_RNG; -#endif - -#if defined(BOTAN_HAS_X931_RNG) - -#if defined(BOTAN_HAS_DES) - if(algname == "X9.31-RNG(TripleDES)") - prng = new ANSI_X931_RNG(new TripleDES, - new Fixed_Output_RNG(hex_decode(key))); -#endif - -#if defined(BOTAN_HAS_AES) - if(algname == "X9.31-RNG(AES-128)") - prng = new ANSI_X931_RNG(new AES_128, - new Fixed_Output_RNG(hex_decode(key))); - else if(algname == "X9.31-RNG(AES-192)") - prng = new ANSI_X931_RNG(new AES_192, - new Fixed_Output_RNG(hex_decode(key))); - else if(algname == "X9.31-RNG(AES-256)") - prng = new ANSI_X931_RNG(new AES_256, - new Fixed_Output_RNG(hex_decode(key))); -#endif - -#endif - -#if defined(BOTAN_HAS_RANDPOOL) && defined(BOTAN_HAS_AES) - if(algname == "Randpool") - { - prng = new Randpool(new AES_256, new HMAC(new SHA_256)); - - prng->add_entropy(reinterpret_cast(key.c_str()), - key.length()); - } -#endif - -#if defined(BOTAN_HAS_X931_RNG) - // these are used for benchmarking: AES-256/SHA-256 matches library - // defaults, so benchmark reflects real-world performance (maybe) - if(algname == "X9.31-RNG") - { - RandomNumberGenerator* rng = -#if defined(BOTAN_HAS_HMAC_RNG) - new HMAC_RNG(new HMAC(new SHA_512), new HMAC(new SHA_256)); -#elif defined(BOTAN_HAS_RANDPOOL) - new Randpool(new AES_256, new HMAC(new SHA_256)); -#endif - - prng = new ANSI_X931_RNG(new AES_256, rng); - - } -#endif - -#if defined(BOTAN_HAS_HMAC_RNG) - if(algname == "HMAC_RNG") - { - prng = new HMAC_RNG(new HMAC(new SHA_512), new HMAC(new SHA_256)); - } -#endif - - if(prng) - { - prng->add_entropy(reinterpret_cast(key.c_str()), - key.length()); - return new RNG_Filter(prng); - } - - return 0; - } - -Filter* lookup_kdf(const std::string& algname, const std::string& salt, - const std::string& params) - { - KDF* kdf = 0; - try { - kdf = get_kdf(algname); - } - catch(...) { return 0; } - - if(kdf) - return new KDF_Filter(kdf, salt, to_u32bit(params)); - return 0; - } - -Filter* lookup_encoder(const std::string& algname) - { - if(algname == "Base64_Encode") - return new Base64_Encoder; - if(algname == "Base64_Decode") - return new Base64_Decoder; - -#ifdef BOTAN_HAS_COMPRESSOR_BZIP2 - if(algname == "Bzip_Compression") - return new Bzip_Compression(9); - if(algname == "Bzip_Decompression") - return new Bzip_Decompression; -#endif - -#ifdef BOTAN_HAS_COMPRESSOR_GZIP - if(algname == "Gzip_Compression") - return new Gzip_Compression(9); - if(algname == "Gzip_Decompression") - return new Gzip_Decompression; -#endif - -#ifdef BOTAN_HAS_COMPRESSOR_ZLIB - if(algname == "Zlib_Compression") - return new Zlib_Compression(9); - if(algname == "Zlib_Decompression") - return new Zlib_Decompression; -#endif - - return 0; - } - -} - -Filter* lookup(const std::string& algname, - const std::vector& params) - { - std::string key = params[0]; - std::string iv = params[1]; - Filter* filter = 0; - - // The order of the lookup has to change based on how the names are - // formatted and parsed. - filter = lookup_kdf(algname, key, iv); - if(filter) return filter; - - filter = lookup_rng(algname, key); - if(filter) return filter; - - filter = lookup_encoder(algname); - if(filter) return filter; - - filter = lookup_pbkdf(algname, params); - if(filter) return filter; - - return 0; - } - diff --git a/src/botan/checks/ec_tests.cpp b/src/botan/checks/ec_tests.cpp deleted file mode 100644 index 8ed975603..000000000 --- a/src/botan/checks/ec_tests.cpp +++ /dev/null @@ -1,827 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - - -#include - -#if defined(BOTAN_HAS_ECC_GROUP) - -#include -#include -#include -#include -#include -#include -#include - -using namespace Botan; - -#include -#include - -#include "getopt.h" -#include "validate.h" -#include "common.h" - - -#define CHECK_MESSAGE(expr, print) try { if(!(expr)) std::cout << print << "\n"; } catch(std::exception& e) { std::cout << __FUNCTION__ << ": " << e.what() << "\n"; } -#define CHECK(expr) try { if(!(expr)) std::cout << #expr << "\n"; } catch(std::exception& e) { std::cout << __FUNCTION__ << ": " << e.what() << "\n"; } - -namespace { - -std::ostream& operator<<(std::ostream& out, const PointGFp& point) - { - out << "(" << point.get_affine_x() << " " << point.get_affine_y() << ")"; - return out; - } - -PointGFp create_random_point(RandomNumberGenerator& rng, - const CurveGFp& curve) - { - const BigInt& p = curve.get_p(); - - Modular_Reducer mod_p(p); - - while(true) - { - BigInt x(rng, p.bits()); - - BigInt x3 = mod_p.multiply(x, mod_p.square(x)); - - BigInt ax = mod_p.multiply(curve.get_a(), x); - - BigInt bx3 = mod_p.multiply(curve.get_b(), x3); - - BigInt y = mod_p.reduce(ax + bx3); - - if(ressol(y, p) > 0) - return PointGFp(curve, x, y); - } - } - -void test_point_turn_on_sp_red_mul() - { - std::cout << "." << std::flush; - - // setting up expected values - BigInt exp_Qx(std::string("466448783855397898016055842232266600516272889280")); - BigInt exp_Qy(std::string("1110706324081757720403272427311003102474457754220")); - BigInt exp_Qz(1); - - // performing calculation to test - std::string p_secp = "ffffffffffffffffffffffffffffffff7fffffff"; - std::string a_secp = "ffffffffffffffffffffffffffffffff7ffffffc"; - std::string b_secp = "1c97befc54bd7a8b65acf89f81d4d4adc565fa45"; - std::string G_secp_comp = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector sv_p_secp = hex_decode(p_secp); - SecureVector sv_a_secp = hex_decode(a_secp); - SecureVector sv_b_secp = hex_decode(b_secp); - SecureVector sv_G_secp_comp = hex_decode(G_secp_comp); - BigInt bi_p_secp = BigInt::decode(&sv_p_secp[0], sv_p_secp.size()); - BigInt bi_a_secp = BigInt::decode(&sv_a_secp[0], sv_a_secp.size()); - BigInt bi_b_secp = BigInt::decode(&sv_b_secp[0], sv_b_secp.size()); - CurveGFp secp160r1(bi_p_secp, bi_a_secp, bi_b_secp); - PointGFp p_G = OS2ECP(sv_G_secp_comp, secp160r1); - - BigInt d("459183204582304"); - - PointGFp r1 = d * p_G; - CHECK(r1.get_affine_x() != 0); - - PointGFp p_G2(p_G); - - PointGFp r2 = d * p_G2; - CHECK_MESSAGE(r1 == r2, "error with point mul after extra turn on sp red mul"); - CHECK(r1.get_affine_x() != 0); - - PointGFp p_r1 = r1; - PointGFp p_r2 = r2; - - p_r1 *= 2; - p_r2 *= 2; - CHECK_MESSAGE(p_r1.get_affine_x() == p_r2.get_affine_x(), "error with mult2 after extra turn on sp red mul"); - CHECK(p_r1.get_affine_x() != 0); - CHECK(p_r2.get_affine_x() != 0); - r1 *= 2; - - r2 *= 2; - - CHECK_MESSAGE(r1 == r2, "error with mult2 after extra turn on sp red mul"); - CHECK_MESSAGE(r1.get_affine_x() == r2.get_affine_x(), "error with mult2 after extra turn on sp red mul"); - CHECK(r1.get_affine_x() != 0); - r1 += p_G; - r2 += p_G2; - - CHECK_MESSAGE(r1 == r2, "error with op+= after extra turn on sp red mul"); - - r1 += p_G; - r2 += p_G2; - - CHECK_MESSAGE(r1 == r2, "error with op+= after extra turn on sp red mul for both operands"); - r1 += p_G; - r2 += p_G2; - - CHECK_MESSAGE(r1 == r2, "error with op+= after extra turn on sp red mul for both operands"); - } - -void test_coordinates() - { - std::cout << "." << std::flush; - - BigInt exp_affine_x(std::string("16984103820118642236896513183038186009872590470")); - BigInt exp_affine_y(std::string("1373093393927139016463695321221277758035357890939")); - - // precalculation - std::string p_secp = "ffffffffffffffffffffffffffffffff7fffffff"; - std::string a_secp = "ffffffffffffffffffffffffffffffff7ffffffc"; - std::string b_secp = "1c97befc54bd7a8b65acf89f81d4d4adc565fa45"; - std::string G_secp_comp = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector sv_p_secp = hex_decode ( p_secp ); - SecureVector sv_a_secp = hex_decode ( a_secp ); - SecureVector sv_b_secp = hex_decode ( b_secp ); - SecureVector sv_G_secp_comp = hex_decode ( G_secp_comp ); - - BigInt bi_p_secp = BigInt::decode ( &sv_p_secp[0], sv_p_secp.size() ); - BigInt bi_a_secp = BigInt::decode ( &sv_a_secp[0], sv_a_secp.size() ); - BigInt bi_b_secp = BigInt::decode ( &sv_b_secp[0], sv_b_secp.size() ); - CurveGFp secp160r1 (bi_p_secp, bi_a_secp, bi_b_secp); - PointGFp p_G = OS2ECP ( sv_G_secp_comp, secp160r1 ); - PointGFp p0 = p_G; - PointGFp p1 = p_G * 2; - PointGFp point_exp(secp160r1, exp_affine_x, exp_affine_y); - if(!point_exp.on_the_curve()) - throw Internal_Error("Point not on the curve"); - - CHECK_MESSAGE( p1.get_affine_x() == exp_affine_x, " p1_x = " << p1.get_affine_x() << "\n" << "exp_x = " << exp_affine_x << "\n"); - CHECK_MESSAGE( p1.get_affine_y() == exp_affine_y, " p1_y = " << p1.get_affine_y() << "\n" << "exp_y = " << exp_affine_y << "\n"); - } - - -/** -Test point multiplication according to --------- -SEC 2: Test Vectors for SEC 1 -Certicom Research -Working Draft -September, 1999 -Version 0.3; -Section 2.1.2 --------- -*/ - -void test_point_transformation () - { - std::cout << "." << std::flush; - - // get a vailid point - EC_Group dom_pars(OID("1.3.132.0.8")); - PointGFp p = dom_pars.get_base_point(); - - // get a copy - PointGFp q = p; - - CHECK_MESSAGE( p.get_affine_x() == q.get_affine_x(), "affine_x changed during copy"); - CHECK_MESSAGE( p.get_affine_y() == q.get_affine_y(), "affine_y changed during copy"); - } - -void test_point_mult () - { - std::cout << "." << std::flush; - - EC_Group secp160r1(OIDS::lookup("secp160r1")); - - const CurveGFp& curve = secp160r1.get_curve(); - - std::string G_secp_comp = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector sv_G_secp_comp = hex_decode(G_secp_comp); - PointGFp p_G = OS2ECP(sv_G_secp_comp, curve); - - BigInt d_U("0xaa374ffc3ce144e6b073307972cb6d57b2a4e982"); - PointGFp Q_U = d_U * p_G; - - CHECK(Q_U.get_affine_x() == BigInt("466448783855397898016055842232266600516272889280")); - CHECK(Q_U.get_affine_y() == BigInt("1110706324081757720403272427311003102474457754220")); - } - -void test_point_negative() - { - std::cout << "." << std::flush; - - // performing calculation to test - std::string p_secp = "ffffffffffffffffffffffffffffffff7fffffff"; - std::string a_secp = "ffffffffffffffffffffffffffffffff7ffffffc"; - std::string b_secp = "1c97befc54bd7a8b65acf89f81d4d4adc565fa45"; - std::string G_secp_comp = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector sv_p_secp = hex_decode ( p_secp ); - SecureVector sv_a_secp = hex_decode ( a_secp ); - SecureVector sv_b_secp = hex_decode ( b_secp ); - SecureVector sv_G_secp_comp = hex_decode ( G_secp_comp ); - BigInt bi_p_secp = BigInt::decode ( &sv_p_secp[0], sv_p_secp.size() ); - BigInt bi_a_secp = BigInt::decode ( &sv_a_secp[0], sv_a_secp.size() ); - BigInt bi_b_secp = BigInt::decode ( &sv_b_secp[0], sv_b_secp.size() ); - CurveGFp secp160r1(bi_p_secp, bi_a_secp, bi_b_secp); - PointGFp p_G = OS2ECP ( sv_G_secp_comp, secp160r1 ); - - PointGFp p1 = p_G *= 2; - - CHECK(p1.get_affine_x() == BigInt("16984103820118642236896513183038186009872590470")); - CHECK(p1.get_affine_y() == BigInt("1373093393927139016463695321221277758035357890939")); - - PointGFp p1_neg = p1.negate(); - - CHECK(p1_neg.get_affine_x() == BigInt("16984103820118642236896513183038186009872590470")); - CHECK(p1_neg.get_affine_y() == BigInt("88408243403763901739989511495005261618427168388")); - } - -void test_zeropoint() - { - std::cout << "." << std::flush; - - - std::string G_secp_comp = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector sv_G_secp_comp = hex_decode ( G_secp_comp ); - BigInt bi_p_secp("0xffffffffffffffffffffffffffffffff7fffffff"); - BigInt bi_a_secp("0xffffffffffffffffffffffffffffffff7ffffffc"); - BigInt bi_b_secp("0x1c97befc54bd7a8b65acf89f81d4d4adc565fa45"); - CurveGFp secp160r1(bi_p_secp, bi_a_secp, bi_b_secp); - - PointGFp p1(secp160r1, - BigInt("16984103820118642236896513183038186009872590470"), - BigInt("1373093393927139016463695321221277758035357890939")); - - if(!p1.on_the_curve()) - throw Internal_Error("Point not on the curve"); - p1 -= p1; - - CHECK_MESSAGE( p1.is_zero(), "p - q with q = p is not zero!"); - } - -void test_zeropoint_enc_dec() - { - std::cout << "." << std::flush; - - - BigInt bi_p_secp("0xffffffffffffffffffffffffffffffff7fffffff"); - BigInt bi_a_secp("0xffffffffffffffffffffffffffffffff7ffffffc"); - BigInt bi_b_secp("0x1c97befc54bd7a8b65acf89f81d4d4adc565fa45"); - CurveGFp curve(bi_p_secp, bi_a_secp, bi_b_secp); - - PointGFp p(curve); - CHECK_MESSAGE( p.is_zero(), "by constructor created zeropoint is no zeropoint!"); - - - SecureVector sv_p = EC2OSP(p, PointGFp::UNCOMPRESSED); - PointGFp p_encdec = OS2ECP(sv_p, curve); - CHECK_MESSAGE( p == p_encdec, "encoded-decoded (uncompressed) point is not equal the original!"); - - sv_p = EC2OSP(p, PointGFp::UNCOMPRESSED); - p_encdec = OS2ECP(sv_p, curve); - CHECK_MESSAGE( p == p_encdec, "encoded-decoded (compressed) point is not equal the original!"); - - sv_p = EC2OSP(p, PointGFp::HYBRID); - p_encdec = OS2ECP(sv_p, curve); - CHECK_MESSAGE( p == p_encdec, "encoded-decoded (hybrid) point is not equal the original!"); - } - -void test_calc_with_zeropoint() - { - std::cout << "." << std::flush; - - std::string G_secp_comp = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector sv_G_secp_comp = hex_decode ( G_secp_comp ); - BigInt bi_p_secp("0xffffffffffffffffffffffffffffffff7fffffff"); - BigInt bi_a_secp("0xffffffffffffffffffffffffffffffff7ffffffc"); - BigInt bi_b_secp("0x1c97befc54bd7a8b65acf89f81d4d4adc565fa45"); - CurveGFp curve(bi_p_secp, bi_a_secp, bi_b_secp); - - PointGFp p(curve, - BigInt("16984103820118642236896513183038186009872590470"), - BigInt("1373093393927139016463695321221277758035357890939")); - - if(!p.on_the_curve()) - throw Internal_Error("Point not on the curve"); - CHECK_MESSAGE( !p.is_zero(), "created is zeropoint, shouldn't be!"); - - PointGFp zero(curve); - CHECK_MESSAGE( zero.is_zero(), "by constructor created zeropoint is no zeropoint!"); - - PointGFp res = p + zero; - CHECK_MESSAGE( res == p, "point + zeropoint is not equal the point"); - - res = p - zero; - CHECK_MESSAGE( res == p, "point - zeropoint is not equal the point"); - - res = zero * 32432243; - CHECK_MESSAGE( res.is_zero(), "zeropoint * skalar is not a zero-point!"); - } - -void test_add_point() - { - std::cout << "." << std::flush; - - // precalculation - std::string p_secp = "ffffffffffffffffffffffffffffffff7fffffff"; - std::string a_secp = "ffffffffffffffffffffffffffffffff7ffffffc"; - std::string b_secp = "1c97befc54bd7a8b65acf89f81d4d4adc565fa45"; - std::string G_secp_comp = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector sv_p_secp = hex_decode ( p_secp ); - SecureVector sv_a_secp = hex_decode ( a_secp ); - SecureVector sv_b_secp = hex_decode ( b_secp ); - SecureVector sv_G_secp_comp = hex_decode ( G_secp_comp ); - BigInt bi_p_secp = BigInt::decode ( &sv_p_secp[0], sv_p_secp.size() ); - BigInt bi_a_secp = BigInt::decode ( &sv_a_secp[0], sv_a_secp.size() ); - BigInt bi_b_secp = BigInt::decode ( &sv_b_secp[0], sv_b_secp.size() ); - CurveGFp secp160r1(bi_p_secp, bi_a_secp, bi_b_secp); - PointGFp p_G = OS2ECP ( sv_G_secp_comp, secp160r1 ); - - PointGFp p0 = p_G; - PointGFp p1 = p_G *= 2; - - p1 += p0; - - PointGFp expected(secp160r1, - BigInt("704859595002530890444080436569091156047721708633"), - BigInt("1147993098458695153857594941635310323215433166682")); - - CHECK(p1 == expected); - } - -void test_sub_point() - { - std::cout << "." << std::flush; - - //Setting up expected values - BigInt exp_sub_x(std::string("112913490230515010376958384252467223283065196552")); - BigInt exp_sub_y(std::string("143464803917389475471159193867377888720776527730")); - BigInt exp_sub_z(std::string("562006223742588575209908669014372619804457947208")); - - // precalculation - std::string p_secp = "ffffffffffffffffffffffffffffffff7fffffff"; - std::string a_secp = "ffffffffffffffffffffffffffffffff7ffffffc"; - std::string b_secp = "1c97befc54bd7a8b65acf89f81d4d4adc565fa45"; - std::string G_secp_comp = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector sv_p_secp = hex_decode ( p_secp ); - SecureVector sv_a_secp = hex_decode ( a_secp ); - SecureVector sv_b_secp = hex_decode ( b_secp ); - SecureVector sv_G_secp_comp = hex_decode ( G_secp_comp ); - BigInt bi_p_secp = BigInt::decode ( &sv_p_secp[0], sv_p_secp.size() ); - BigInt bi_a_secp = BigInt::decode ( &sv_a_secp[0], sv_a_secp.size() ); - BigInt bi_b_secp = BigInt::decode ( &sv_b_secp[0], sv_b_secp.size() ); - CurveGFp secp160r1(bi_p_secp, bi_a_secp, bi_b_secp); - PointGFp p_G = OS2ECP ( sv_G_secp_comp, secp160r1 ); - - PointGFp p0 = p_G; - PointGFp p1 = p_G *= 2; - - p1 -= p0; - - PointGFp expected(secp160r1, - BigInt("425826231723888350446541592701409065913635568770"), - BigInt("203520114162904107873991457957346892027982641970")); - - CHECK(p1 == expected); - } - -void test_mult_point() - { - std::cout << "." << std::flush; - - //Setting up expected values - BigInt exp_mult_x(std::string("967697346845926834906555988570157345422864716250")); - BigInt exp_mult_y(std::string("512319768365374654866290830075237814703869061656")); - - // precalculation - std::string p_secp = "ffffffffffffffffffffffffffffffff7fffffff"; - std::string a_secp = "ffffffffffffffffffffffffffffffff7ffffffc"; - std::string b_secp = "1c97befc54bd7a8b65acf89f81d4d4adc565fa45"; - std::string G_secp_comp = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector sv_p_secp = hex_decode ( p_secp ); - SecureVector sv_a_secp = hex_decode ( a_secp ); - SecureVector sv_b_secp = hex_decode ( b_secp ); - SecureVector sv_G_secp_comp = hex_decode ( G_secp_comp ); - BigInt bi_p_secp = BigInt::decode ( &sv_p_secp[0], sv_p_secp.size() ); - BigInt bi_a_secp = BigInt::decode ( &sv_a_secp[0], sv_a_secp.size() ); - BigInt bi_b_secp = BigInt::decode ( &sv_b_secp[0], sv_b_secp.size() ); - CurveGFp secp160r1(bi_p_secp, bi_a_secp, bi_b_secp); - PointGFp p_G = OS2ECP ( sv_G_secp_comp, secp160r1 ); - - PointGFp p0 = p_G; - PointGFp p1 = p_G *= 2; - - p1 *= p0.get_affine_x(); - - PointGFp expected(secp160r1, exp_mult_x, exp_mult_y); - - CHECK(p1 == expected); - } - -void test_basic_operations() - { - std::cout << "." << std::flush; - - // precalculation - std::string p_secp = "ffffffffffffffffffffffffffffffff7fffffff"; - std::string a_secp = "ffffffffffffffffffffffffffffffff7ffffffc"; - std::string b_secp = "1c97befc54bd7a8b65acf89f81d4d4adc565fa45"; - std::string G_secp_comp = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector sv_p_secp = hex_decode ( p_secp ); - SecureVector sv_a_secp = hex_decode ( a_secp ); - SecureVector sv_b_secp = hex_decode ( b_secp ); - SecureVector sv_G_secp_comp = hex_decode ( G_secp_comp ); - BigInt bi_p_secp = BigInt::decode ( &sv_p_secp[0], sv_p_secp.size() ); - BigInt bi_a_secp = BigInt::decode ( &sv_a_secp[0], sv_a_secp.size() ); - BigInt bi_b_secp = BigInt::decode ( &sv_b_secp[0], sv_b_secp.size() ); - CurveGFp secp160r1(bi_p_secp, bi_a_secp, bi_b_secp); - - PointGFp p_G = OS2ECP ( sv_G_secp_comp, secp160r1 ); - - PointGFp p0 = p_G; - - PointGFp expected(secp160r1, - BigInt("425826231723888350446541592701409065913635568770"), - BigInt("203520114162904107873991457957346892027982641970")); - - CHECK(p0 == expected); - - PointGFp p1 = p_G *= 2; - - CHECK(p1.get_affine_x() == BigInt("16984103820118642236896513183038186009872590470")); - CHECK(p1.get_affine_y() == BigInt("1373093393927139016463695321221277758035357890939")); - - PointGFp simplePlus= p1 + p0; - PointGFp exp_simplePlus(secp160r1, - BigInt("704859595002530890444080436569091156047721708633"), - BigInt("1147993098458695153857594941635310323215433166682")); - if(simplePlus != exp_simplePlus) - std::cout << simplePlus << " != " << exp_simplePlus << "\n"; - - PointGFp simpleMinus= p1 - p0; - PointGFp exp_simpleMinus(secp160r1, - BigInt("425826231723888350446541592701409065913635568770"), - BigInt("203520114162904107873991457957346892027982641970")); - - CHECK(simpleMinus == exp_simpleMinus); - - PointGFp simpleMult= p1 * 123456789; - - CHECK(simpleMult.get_affine_x() == BigInt("43638877777452195295055270548491599621118743290")); - CHECK(simpleMult.get_affine_y() == BigInt("56841378500012376527163928510402662349220202981")); - - // check that all initial points hasn't changed - CHECK(p1.get_affine_x() == BigInt("16984103820118642236896513183038186009872590470")); - CHECK(p1.get_affine_y() == BigInt("1373093393927139016463695321221277758035357890939")); - - CHECK(p0.get_affine_x() == BigInt("425826231723888350446541592701409065913635568770")); - CHECK(p0.get_affine_y() == BigInt("203520114162904107873991457957346892027982641970")); - } - -void test_enc_dec_compressed_160() - { - std::cout << "." << std::flush; - - - // Test for compressed conversion (02/03) 160bit - std::string p_secp = "ffffffffffffffffffffffffffffffff7fffffff"; - std::string a_secp = "ffffffffffffffffffffffffffffffff7ffffffC"; - std::string b_secp = "1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45"; - std::string G_secp_comp = "024A96B5688EF573284664698968C38BB913CBFC82"; - std::string G_order_secp_comp = "0100000000000000000001F4C8F927AED3CA752257"; - - SecureVector sv_p_secp = hex_decode ( p_secp ); - SecureVector sv_a_secp = hex_decode ( a_secp ); - SecureVector sv_b_secp = hex_decode ( b_secp ); - SecureVector sv_G_secp_comp = hex_decode ( G_secp_comp ); - - BigInt bi_p_secp = BigInt::decode ( &sv_p_secp[0], sv_p_secp.size() ); - BigInt bi_a_secp = BigInt::decode ( &sv_a_secp[0], sv_a_secp.size() ); - BigInt bi_b_secp = BigInt::decode ( &sv_b_secp[0], sv_b_secp.size() ); - - CurveGFp secp160r1(bi_p_secp, bi_a_secp, bi_b_secp); - - PointGFp p_G = OS2ECP ( sv_G_secp_comp, secp160r1 ); - SecureVector sv_result = EC2OSP(p_G, PointGFp::COMPRESSED); - - CHECK( sv_result == sv_G_secp_comp); - } - -void test_enc_dec_compressed_256() - { - std::cout << "." << std::flush; - - - // Test for compressed conversion (02/03) 256bit - std::string p_secp = "ffffffff00000001000000000000000000000000ffffffffffffffffffffffff"; - std::string a_secp = "ffffffff00000001000000000000000000000000ffffffffffffffffffffffFC"; - std::string b_secp = "5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B"; - std::string G_secp_comp = "036B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296"; - std::string G_order_secp_comp = "ffffffff00000000ffffffffffffffffBCE6FAADA7179E84F3B9CAC2FC632551"; - - SecureVector sv_p_secp = hex_decode ( p_secp ); - SecureVector sv_a_secp = hex_decode ( a_secp ); - SecureVector sv_b_secp = hex_decode ( b_secp ); - SecureVector sv_G_secp_comp = hex_decode ( G_secp_comp ); - - BigInt bi_p_secp = BigInt::decode ( &sv_p_secp[0], sv_p_secp.size() ); - BigInt bi_a_secp = BigInt::decode ( &sv_a_secp[0], sv_a_secp.size() ); - BigInt bi_b_secp = BigInt::decode ( &sv_b_secp[0], sv_b_secp.size() ); - - CurveGFp secp160r1(bi_p_secp, bi_a_secp, bi_b_secp); - - PointGFp p_G = OS2ECP ( sv_G_secp_comp, secp160r1 ); - SecureVector sv_result = EC2OSP(p_G, PointGFp::COMPRESSED); - - CHECK( sv_result == sv_G_secp_comp); - } - - -void test_enc_dec_uncompressed_112() - { - std::cout << "." << std::flush; - - - // Test for uncompressed conversion (04) 112bit - - std::string p_secp = "db7c2abf62e35e668076bead208b"; - std::string a_secp = "6127C24C05F38A0AAAF65C0EF02C"; - std::string b_secp = "51DEF1815DB5ED74FCC34C85D709"; - std::string G_secp_uncomp = "044BA30AB5E892B4E1649DD0928643ADCD46F5882E3747DEF36E956E97"; - std::string G_order_secp_uncomp = "36DF0AAFD8B8D7597CA10520D04B"; - - SecureVector sv_p_secp = hex_decode ( p_secp ); - SecureVector sv_a_secp = hex_decode ( a_secp ); - SecureVector sv_b_secp = hex_decode ( b_secp ); - SecureVector sv_G_secp_uncomp = hex_decode ( G_secp_uncomp ); - - BigInt bi_p_secp = BigInt::decode ( &sv_p_secp[0], sv_p_secp.size() ); - BigInt bi_a_secp = BigInt::decode ( &sv_a_secp[0], sv_a_secp.size() ); - BigInt bi_b_secp = BigInt::decode ( &sv_b_secp[0], sv_b_secp.size() ); - - CurveGFp secp160r1(bi_p_secp, bi_a_secp, bi_b_secp); - - PointGFp p_G = OS2ECP ( sv_G_secp_uncomp, secp160r1 ); - SecureVector sv_result = EC2OSP(p_G, PointGFp::UNCOMPRESSED); - - CHECK( sv_result == sv_G_secp_uncomp); - } - -void test_enc_dec_uncompressed_521() - { - std::cout << "." << std::flush; - - - // Test for uncompressed conversion(04) with big values(521 bit) - std::string p_secp = "01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"; - std::string a_secp = "01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffFC"; - std::string b_secp = "0051953EB9618E1C9A1F929A21A0B68540EEA2DA725B99B315F3B8B489918EF109E156193951EC7E937B1652C0BD3BB1BF073573DF883D2C34F1EF451FD46B503F00"; - std::string G_secp_uncomp = "0400C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127A2ffA8DE3348B3C1856A429BF97E7E31C2E5BD66011839296A789A3BC0045C8A5FB42C7D1BD998F54449579B446817AFBD17273E662C97EE72995EF42640C550B9013FAD0761353C7086A272C24088BE94769FD16650"; - std::string G_order_secp_uncomp = "01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409"; - - SecureVector sv_p_secp = hex_decode ( p_secp ); - SecureVector sv_a_secp = hex_decode ( a_secp ); - SecureVector sv_b_secp = hex_decode ( b_secp ); - SecureVector sv_G_secp_uncomp = hex_decode ( G_secp_uncomp ); - - BigInt bi_p_secp = BigInt::decode ( &sv_p_secp[0], sv_p_secp.size() ); - BigInt bi_a_secp = BigInt::decode ( &sv_a_secp[0], sv_a_secp.size() ); - BigInt bi_b_secp = BigInt::decode ( &sv_b_secp[0], sv_b_secp.size() ); - - CurveGFp secp160r1(bi_p_secp, bi_a_secp, bi_b_secp); - - PointGFp p_G = OS2ECP ( sv_G_secp_uncomp, secp160r1 ); - - SecureVector sv_result = EC2OSP(p_G, PointGFp::UNCOMPRESSED); - std::string result = hex_encode(&sv_result[0], sv_result.size()); - std::string exp_result = hex_encode(&sv_G_secp_uncomp[0], sv_G_secp_uncomp.size()); - - CHECK_MESSAGE( sv_result == sv_G_secp_uncomp, "\ncalc. result = " << result << "\nexp. result = " << exp_result << "\n"); - } - -void test_enc_dec_uncompressed_521_prime_too_large() - { - std::cout << "." << std::flush; - - - // Test for uncompressed conversion(04) with big values(521 bit) - std::string p_secp = "01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"; // length increased by "ff" - std::string a_secp = "01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffFC"; - std::string b_secp = "0051953EB9618E1C9A1F929A21A0B68540EEA2DA725B99B315F3B8B489918EF109E156193951EC7E937B1652C0BD3BB1BF073573DF883D2C34F1EF451FD46B503F00"; - std::string G_secp_uncomp = "0400C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127A2ffA8DE3348B3C1856A429BF97E7E31C2E5BD66011839296A789A3BC0045C8A5FB42C7D1BD998F54449579B446817AFBD17273E662C97EE72995EF42640C550B9013FAD0761353C7086A272C24088BE94769FD16650"; - std::string G_order_secp_uncomp = "01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409"; - - SecureVector sv_p_secp = hex_decode ( p_secp ); - SecureVector sv_a_secp = hex_decode ( a_secp ); - SecureVector sv_b_secp = hex_decode ( b_secp ); - SecureVector sv_G_secp_uncomp = hex_decode ( G_secp_uncomp ); - - BigInt bi_p_secp = BigInt::decode ( &sv_p_secp[0], sv_p_secp.size() ); - BigInt bi_a_secp = BigInt::decode ( &sv_a_secp[0], sv_a_secp.size() ); - BigInt bi_b_secp = BigInt::decode ( &sv_b_secp[0], sv_b_secp.size() ); - - CurveGFp secp521r1 (bi_p_secp, bi_a_secp, bi_b_secp); - std::auto_ptr p_G; - bool exc = false; - try - { - p_G = std::auto_ptr(new PointGFp(OS2ECP ( sv_G_secp_uncomp, secp521r1))); - if(!p_G->on_the_curve()) - throw Internal_Error("Point not on the curve"); - } - catch (std::exception e) - { - exc = true; - } - - CHECK_MESSAGE(exc, "attempt of creation of point on curve with too high prime did not throw an exception"); - } - -void test_gfp_store_restore() - { - std::cout << "." << std::flush; - - // generate point - //EC_Group dom_pars = global_config().get_ec_dompar("1.3.132.0.8"); - //EC_Group dom_pars("1.3.132.0.8"); - EC_Group dom_pars(OID("1.3.132.0.8")); - PointGFp p = dom_pars.get_base_point(); - - //store point (to std::string) - SecureVector sv_mes = EC2OSP(p, PointGFp::COMPRESSED); - PointGFp new_p = OS2ECP(sv_mes, dom_pars.get_curve()); - - CHECK_MESSAGE( p == new_p, "original and restored point are different!"); - } - - -// maybe move this test -void test_cdc_curve_33() - { - std::cout << "." << std::flush; - - std::string G_secp_uncomp = "04081523d03d4f12cd02879dea4bf6a4f3a7df26ed888f10c5b2235a1274c386a2f218300dee6ed217841164533bcdc903f07a096f9fbf4ee95bac098a111f296f5830fe5c35b3e344d5df3a2256985f64fbe6d0edcc4c61d18bef681dd399df3d0194c5a4315e012e0245ecea56365baa9e8be1f7"; - - SecureVector sv_G_uncomp = hex_decode ( G_secp_uncomp ); - - BigInt bi_p_secp = BigInt("2117607112719756483104013348936480976596328609518055062007450442679169492999007105354629105748524349829824407773719892437896937279095106809"); - BigInt bi_a_secp("0xa377dede6b523333d36c78e9b0eaa3bf48ce93041f6d4fc34014d08f6833807498deedd4290101c5866e8dfb589485d13357b9e78c2d7fbe9fe"); - BigInt bi_b_secp("0xa9acf8c8ba617777e248509bcb4717d4db346202bf9e352cd5633731dd92a51b72a4dc3b3d17c823fcc8fbda4da08f25dea89046087342595a7"); - - CurveGFp curve(bi_p_secp, bi_a_secp, bi_b_secp); - PointGFp p_G = OS2ECP ( sv_G_uncomp, curve); - bool exc = false; - try - { - if(!p_G.on_the_curve()) - throw Internal_Error("Point not on the curve"); - } - catch (std::exception) - { - exc = true; - } - CHECK(!exc); - } - -void test_more_zeropoint() - { - std::cout << "." << std::flush; - // by Falko - - std::string G = "024a96b5688ef573284664698968c38bb913cbfc82"; - SecureVector sv_G_secp_comp = hex_decode ( G ); - BigInt bi_p("0xffffffffffffffffffffffffffffffff7fffffff"); - BigInt bi_a("0xffffffffffffffffffffffffffffffff7ffffffc"); - BigInt bi_b("0x1c97befc54bd7a8b65acf89f81d4d4adc565fa45"); - CurveGFp curve(bi_p, bi_a, bi_b); - - PointGFp p1(curve, - BigInt("16984103820118642236896513183038186009872590470"), - BigInt("1373093393927139016463695321221277758035357890939")); - - if(!p1.on_the_curve()) - throw Internal_Error("Point not on the curve"); - PointGFp minus_p1 = -p1; - if(!minus_p1.on_the_curve()) - throw Internal_Error("Point not on the curve"); - PointGFp shouldBeZero = p1 + minus_p1; - if(!shouldBeZero.on_the_curve()) - throw Internal_Error("Point not on the curve"); - - BigInt y1 = p1.get_affine_y(); - y1 = curve.get_p() - y1; - - CHECK_MESSAGE(p1.get_affine_x() == minus_p1.get_affine_x(), - "problem with minus_p1 : x"); - CHECK_MESSAGE(minus_p1.get_affine_y() == y1, - "problem with minus_p1 : y"); - - PointGFp zero(curve); - if(!zero.on_the_curve()) - throw Internal_Error("Point not on the curve"); - CHECK_MESSAGE(p1 + zero == p1, "addition of zero modified point"); - - CHECK_MESSAGE( shouldBeZero.is_zero(), "p - q with q = p is not zero!"); - } - -void test_mult_by_order() - { - std::cout << "." << std::flush; - - // generate point - EC_Group dom_pars(OID("1.3.132.0.8")); - PointGFp p = dom_pars.get_base_point(); - PointGFp shouldBeZero = p * dom_pars.get_order(); - - CHECK_MESSAGE(shouldBeZero.is_zero(), "G * order != O"); - } - -void test_point_swap(RandomNumberGenerator& rng) - { - std::cout << "." << std::flush; - - EC_Group dom_pars(OID("1.3.132.0.8")); - - PointGFp a(create_random_point(rng, dom_pars.get_curve())); - PointGFp b(create_random_point(rng, dom_pars.get_curve())); - b *= BigInt(20); - - PointGFp c(a); - PointGFp d(b); - - d.swap(c); - CHECK(a == d); - CHECK(b == c); - } - -/** -* This test verifies that the side channel attack resistant multiplication function -* yields the same result as the normal (insecure) multiplication via operator*= -*/ -void test_mult_sec_mass(RandomNumberGenerator& rng) - { - - EC_Group dom_pars(OID("1.3.132.0.8")); - for(int i = 0; i<50; i++) - { - std::cout << "." << std::flush; - std::cout.flush(); - PointGFp a(create_random_point(rng, dom_pars.get_curve())); - BigInt scal(BigInt(rng, 40)); - PointGFp b = a * scal; - PointGFp c(a); - - c *= scal; - CHECK(b == c); - } - } - -void test_curve_cp_ctor() - { - std::cout << "." << std::flush; - - EC_Group dom_pars(OID("1.3.132.0.8")); - CurveGFp curve(dom_pars.get_curve()); - } - -} - -void do_ec_tests(RandomNumberGenerator& rng) - { - std::cout << "Testing ECC: " << std::flush; - - test_point_turn_on_sp_red_mul(); - test_coordinates(); - test_point_transformation (); - test_point_mult (); - test_point_negative(); - test_zeropoint(); - test_zeropoint_enc_dec(); - test_calc_with_zeropoint(); - test_add_point(); - test_sub_point(); - test_mult_point(); - test_basic_operations(); - test_enc_dec_compressed_160(); - test_enc_dec_compressed_256(); - test_enc_dec_uncompressed_112(); - test_enc_dec_uncompressed_521(); - test_enc_dec_uncompressed_521_prime_too_large(); - test_gfp_store_restore(); - test_cdc_curve_33(); - test_more_zeropoint(); - test_mult_by_order(); - test_point_swap(rng); - test_mult_sec_mass(rng); - test_curve_cp_ctor(); - - std::cout << std::endl; - } - -#else - -void do_ec_tests(Botan::RandomNumberGenerator& rng) - { - } - -#endif diff --git a/src/botan/checks/ecc_testdata/CSCA.CSCA.csca-germany.1.crt b/src/botan/checks/ecc_testdata/CSCA.CSCA.csca-germany.1.crt deleted file mode 100644 index 8653f961a..000000000 Binary files a/src/botan/checks/ecc_testdata/CSCA.CSCA.csca-germany.1.crt and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/CSCA.CSCA.csca-germany.1.pem b/src/botan/checks/ecc_testdata/CSCA.CSCA.csca-germany.1.pem deleted file mode 100644 index 725e1634e..000000000 --- a/src/botan/checks/ecc_testdata/CSCA.CSCA.csca-germany.1.pem +++ /dev/null @@ -1,20 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDWjCCAwWgAwIBAgIBATAMBggqhkjOPQQDAQUAMFAxCzAJBgNVBAYTAkRFMQ0w -CwYDVQQKDARidW5kMQwwCgYDVQQLDANic2kxDTALBgNVBAUTBDQ1NjcxFTATBgNV -BAMMDGNzY2EtZ2VybWFueTAeFw0wNzA3MTkxNTI3MThaFw0yODAxMTkxNTE4MDBa -MFAxCzAJBgNVBAYTAkRFMQ0wCwYDVQQKDARidW5kMQwwCgYDVQQLDANic2kxDTAL -BgNVBAUTBDQ1NjcxFTATBgNVBAMMDGNzY2EtZ2VybWFueTCCARMwgdQGByqGSM49 -AgEwgcgCAQEwKAYHKoZIzj0BAQIdANfBNKomQ2aGKhgwJXXR14ewnwdXl9qJ9X7I -wP8wPAQcaKXmLKnObBwpmAOmwVMLUU4YKtiwBCpZytKfQwQcJYD2PM/kQTiHBxOx -qSNp4z4hNdJm27NyOGxACwQ5BA2QKa0sflz0NAgjsqh9xoyeTOMXTB5u/e4SwH1Y -qlb3csBybyTGuJ5OzawkNUuemcqj9tN2FALNAh0A18E0qiZDZoYqGDAlddD7mNEW -vEtt3ryjpaeTnwIBAQM6AAQBNkpLDwEC6VAqudxoVdkLBlpvXl5IOV+DCdV8Eauv -8hdWYH72dX7JiGyiItg8oEsamfpDxam84aOCARAwggEMMDYGA1UdEQQvMC2BGGNz -Y2EtZ2VybWFueUBic2kuYnVuZC5kZYYRZmF4Ois0OTIyODk1ODI3MjIwDgYDVR0P -AQH/BAQDAgEGMB0GA1UdDgQWBBQAlkUt5Yj5ZsTM3xYd0fP1NBtx5zAfBgNVHSME -GDAWgBQAlkUt5Yj5ZsTM3xYd0fP1NBtx5zBBBgNVHSAEOjA4MDYGCQQAfwAHAwEB -ATApMCcGCCsGAQUFBwIBFhtodHRwOi8vd3d3LmJzaS5idW5kLmRlL2NzY2EwEgYD -VR0TAQH/BAgwBgEB/wIBADArBgNVHRAEJDAigA8yMDA3MDcxOTE1MjcxOFqBDzIw -MjcxMTE5MTUxODAwWjAMBggqhkjOPQQDAQUAA0EAMD4CHQDGtB6DAhf9TJO1np4r -E3NOCcGC+mP67kEVqO3VAh0A0nk42gG4lRqQZKG2lq7fGBt0logpwTjw6y9iOw== ------END CERTIFICATE----- diff --git a/src/botan/checks/ecc_testdata/DE1_flen_chars_cvcRequest_ECDSA.der b/src/botan/checks/ecc_testdata/DE1_flen_chars_cvcRequest_ECDSA.der deleted file mode 100644 index 358ca8f34..000000000 Binary files a/src/botan/checks/ecc_testdata/DE1_flen_chars_cvcRequest_ECDSA.der and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/Lidia.cer b/src/botan/checks/ecc_testdata/Lidia.cer deleted file mode 100644 index 58c55689b..000000000 Binary files a/src/botan/checks/ecc_testdata/Lidia.cer and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/Lidia.pem b/src/botan/checks/ecc_testdata/Lidia.pem deleted file mode 100644 index c0612d9ca..000000000 --- a/src/botan/checks/ecc_testdata/Lidia.pem +++ /dev/null @@ -1,23 +0,0 @@ ------BEGIN CERTIFICATE----- -MIID1TCCAz6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJERTEV -MBMGA1UECgwMVFUgRGFybXN0YWR0MQwwCgYDVQQLDANDREMxFjAUBgNVBAMMDUxp -RElBIENBIDE6UE4wHhcNMDQwNzA1MTQzNDM1WhcNMDkwNzA1MTQzMDM0WjBKMQsw -CQYDVQQGEwJERTEVMBMGA1UECgwMVFUgRGFybXN0YWR0MQwwCgYDVQQLDANDREMx -FjAUBgNVBAMMDUxpRElBIENBIDE6UE4wgaAwDQYJKoZIhvcNAQEBBQADgY4AMIGK -AoGBAJI+ARML7sZAYYGcmjhxAGCi7Iohg6/dWSP/WWv2dEtRQ1k0GOa7HV2j9aD5 -myVRfNCs/9uFggTLuWGreDHE6+gAIpmGjbohQPopPwK8p0C4Lk+lPwOkXnoC3sQS -AMpfiIZ9URfkHQ4IdQCBkOtRBLiYN5PKycC4nVXUmf+hjUMNAgRAAACBo4IByDCC -AcQwDgYDVR0PAQH/BAQDAgIEMHEGA1UdIARqMGgwZgYLKwYBBAHAbQMEAgEwVzBV -BggrBgEFBQcCARZJaHR0cHM6Ly93d3cubGlkaWEtY2EuY2RjLmluZm9ybWF0aWsu -dHUtZGFybXN0YWR0LmRlL0FubWVsZHVuZy94NTA5djMuaHRtbDCB6gYDVR0fBIHi -MIHfMIHcoIHZoIHWhoHTbGRhcDovL2xpZGlhLWNhLmNkYy5pbmZvcm1hdGlrLnR1 -LWRhcm1zdGFkdC5kZTozODkvY249TGlESUEtQ0ElMjBDUkwtU2lnbmVyJTIwMTpQ -TixvdT1DREMsbz1UVSUyMERhcm1zdGFkdCxjPURFLGRjPUxpRElBLUNBLGRjPWxp -ZGlhLWNhLGRjPWNkYyxkYz1pbmZvcm1hdGlrLGRjPXR1LWRhcm1zdGFkdCxkYz1k -ZT9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0O2JpbmFyeTASBgNVHRMBAf8ECDAG -AQH/AgEAMB8GA1UdIwQYMBaAFN8gbG59DBnAHra5WZDGLDT9Hd2PMB0GA1UdDgQW -BBTfIGxufQwZwB62uVmQxiw0/R3djzANBgkqhkiG9w0BAQUFAAOBgQA87i/oRFnF -2wvZjFOGozRQjXEK1BLqhJEz+atbQzuY0aBdg95zTC/xJR8MuV2PjHuvSnpwf7nt -Ff5qsD0ewYk41VIlymWDprX6QAAze4oHDmK05Da6E4IzeKFl+/fXF7qNhLNN/Qld -ETaAOM6MIA5WZtjwQPl1jZphtwm3F5ALwg== ------END CERTIFICATE----- diff --git a/src/botan/checks/ecc_testdata/ado b/src/botan/checks/ecc_testdata/ado deleted file mode 100644 index baa79177c..000000000 Binary files a/src/botan/checks/ecc_testdata/ado and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/ado.cvcreq b/src/botan/checks/ecc_testdata/ado.cvcreq deleted file mode 100644 index 09a14bbb4..000000000 Binary files a/src/botan/checks/ecc_testdata/ado.cvcreq and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/cvc_chain_cvca.cer b/src/botan/checks/ecc_testdata/cvc_chain_cvca.cer deleted file mode 100644 index 4a7281aa6..000000000 Binary files a/src/botan/checks/ecc_testdata/cvc_chain_cvca.cer and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/cvc_chain_dvca_ado2.cer b/src/botan/checks/ecc_testdata/cvc_chain_dvca_ado2.cer deleted file mode 100644 index 1d6f7c173..000000000 Binary files a/src/botan/checks/ecc_testdata/cvc_chain_dvca_ado2.cer and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/cvc_chain_dvca_cert1.cer b/src/botan/checks/ecc_testdata/cvc_chain_dvca_cert1.cer deleted file mode 100644 index c16c2d279..000000000 Binary files a/src/botan/checks/ecc_testdata/cvc_chain_dvca_cert1.cer and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/cvc_chain_dvca_req.cer b/src/botan/checks/ecc_testdata/cvc_chain_dvca_req.cer deleted file mode 100644 index 382351d6a..000000000 Binary files a/src/botan/checks/ecc_testdata/cvc_chain_dvca_req.cer and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/cvc_chain_dvca_req2.cer b/src/botan/checks/ecc_testdata/cvc_chain_dvca_req2.cer deleted file mode 100644 index 1b39cee00..000000000 Binary files a/src/botan/checks/ecc_testdata/cvc_chain_dvca_req2.cer and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/cvc_chain_dvca_req2b.cer b/src/botan/checks/ecc_testdata/cvc_chain_dvca_req2b.cer deleted file mode 100644 index 1b39cee00..000000000 Binary files a/src/botan/checks/ecc_testdata/cvc_chain_dvca_req2b.cer and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/cvc_chain_is_cert.cer b/src/botan/checks/ecc_testdata/cvc_chain_is_cert.cer deleted file mode 100644 index f9ee2d20f..000000000 Binary files a/src/botan/checks/ecc_testdata/cvc_chain_is_cert.cer and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/cvc_chain_is_req.cer b/src/botan/checks/ecc_testdata/cvc_chain_is_req.cer deleted file mode 100644 index 144495f8b..000000000 Binary files a/src/botan/checks/ecc_testdata/cvc_chain_is_req.cer and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/cvc_chain_link12.cer b/src/botan/checks/ecc_testdata/cvc_chain_link12.cer deleted file mode 100644 index 27df92d9d..000000000 Binary files a/src/botan/checks/ecc_testdata/cvc_chain_link12.cer and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/cvca01.cv.crt b/src/botan/checks/ecc_testdata/cvca01.cv.crt deleted file mode 100644 index 8f278167c..000000000 Binary files a/src/botan/checks/ecc_testdata/cvca01.cv.crt and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/cvca_illegal_chars.cv.crt b/src/botan/checks/ecc_testdata/cvca_illegal_chars.cv.crt deleted file mode 100644 index b1a3d266c..000000000 Binary files a/src/botan/checks/ecc_testdata/cvca_illegal_chars.cv.crt and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/cvca_illegal_chars2.cv.crt b/src/botan/checks/ecc_testdata/cvca_illegal_chars2.cv.crt deleted file mode 100644 index 00f09b618..000000000 Binary files a/src/botan/checks/ecc_testdata/cvca_illegal_chars2.cv.crt and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/ec_for_flex_mes.sig b/src/botan/checks/ecc_testdata/ec_for_flex_mes.sig deleted file mode 100644 index 6d9983b67..000000000 --- a/src/botan/checks/ecc_testdata/ec_for_flex_mes.sig +++ /dev/null @@ -1 +0,0 @@ -MGQCMG+ULXRAhLe+GESTVKd+aT3tn46209cLl9LTxDoj1lz/G9Xlw4QpwuCP1TJnRwNySgIwUu+8u32frzcZ2EhNMRrFcyH9t/8GGdvAlszc4k4TSvMK+Rz+5eZ+6hYX3lEsusCY diff --git a/src/botan/checks/ecc_testdata/ec_oid_not_in_reg_private_2.pkcs8.pem b/src/botan/checks/ecc_testdata/ec_oid_not_in_reg_private_2.pkcs8.pem deleted file mode 100644 index 7a1707971..000000000 --- a/src/botan/checks/ecc_testdata/ec_oid_not_in_reg_private_2.pkcs8.pem +++ /dev/null @@ -1,7 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIHaAgEAMIG0BgcqhkjOPQIBMIGoAgEBMCIGByqGSM49AQECFw4aFhluYAAAAAC8 -d5mvQORfIMKCpz8jMDIEFwpp6Dq3yY/XFMent6k68ZVN0TLoYuwCBBcF27ytezfC -QvUCsMLrgpmKMPgl7QmshQQvBAegDesPaZK6sjNlLdtcbzMdfScPlwnsBYlNHz+Z -VzzAHH+at1C946ahHkssjp4CFw4aFhluYAAAAAC8fxYY2GexW7hkdEGPAgEBBB4w -HAIBAQQXBJJ/aqWyXJt0gblb7AjQYjSqWnHULjY= ------END PRIVATE KEY----- diff --git a/src/botan/checks/ecc_testdata/flex_cert.crt b/src/botan/checks/ecc_testdata/flex_cert.crt deleted file mode 100644 index 0b9015cb2..000000000 Binary files a/src/botan/checks/ecc_testdata/flex_cert.crt and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/flex_mes b/src/botan/checks/ecc_testdata/flex_mes deleted file mode 100644 index 52a91be5e..000000000 --- a/src/botan/checks/ecc_testdata/flex_mes +++ /dev/null @@ -1 +0,0 @@ -!aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa! \ No newline at end of file diff --git a/src/botan/checks/ecc_testdata/flex_mes.sig b/src/botan/checks/ecc_testdata/flex_mes.sig deleted file mode 100644 index fde33473a..000000000 Binary files a/src/botan/checks/ecc_testdata/flex_mes.sig and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/insito_expl_ec.pem b/src/botan/checks/ecc_testdata/insito_expl_ec.pem deleted file mode 100644 index e8e57848f..000000000 --- a/src/botan/checks/ecc_testdata/insito_expl_ec.pem +++ /dev/null @@ -1,19 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDJDCCAqmgAwIBAgIRAMIJXZsHSYcafmLTmEPf5m8wDAYIKoZIzj0EAwEFADA7 -MQswCQYDVQQGEwJERTETMBEGA1UEChMKRmxleFNlY3VyZTEXMBUGA1UEAxMOSW5T -aVRvIFRlc3QgQ0EwHhcNMDgxMDA5MTg1MzUyWhcNMDkxMDA5MTg1MzUyWjA7MQsw -CQYDVQQGEwJERTETMBEGA1UEChMKRmxleFNlY3VyZTEXMBUGA1UEAxMOSW5TaVRv -IFRlc3QgQ0EwggGFMIIBTQYHKoZIzj0CATCCAUACAQEwPAYHKoZIzj0BAQIxAIy5 -HoKjOG0oD11vflDmQd8VL3EJ7VRWtBKx2hl/txEjrNOnKZAdGnGHRwATMQfsUzBk -BDB7w4LGPYwVDDxyCArOBa+gwr6ijk+yJ4cTkWXvupH5D4qlgUpQOtTrBKjH3SLO -KCYEMASox90izigmizm1VBbwRHwvt33hB9zSpi6IDqU+62LVfLQ5ApXbyZQ6t4aW -+lBMEQRhBB0cZPBoz0X/oqY6gbfBP2uIR6PnfvFP49t/yv4MvRDo6CbgNDbWRqrv -h7LiR9SvHoq+HXUg+cKkXLHrjpXP1VJitwsp/uxYZOGcBU/5kSkoDkZGIXeRgRFC -ggNBJjxTFQIxAIy5HoKjOG0oD11vflDmQd8VL3EJ7VRWsx8WbmysBCWnzzq2r2t/ -wxA7iDIC6QRlZQIBAQMyAAM3OveZo7xFgTJqYZ2C1nydlMMZ6d2KuHgS7Q3+SkbS -QGy4k7p87QwpLNRhjSPU/qejXjBcMB0GA1UdDgQWBBTLFJODc8gnNtBMOi5lf9qi -bQoStjAOBgNVHQ8BAf8EBAMCAQYwFwYDVR0RBBAwDoEMdGVzdEB0ZXN0LmRlMBIG -A1UdEwEB/wQIMAYBAf8CAQgwDAYIKoZIzj0EAwEFAANnADBkAjAIqO6/nN20oxQx -maPvFCBdPXgTEfsZt8hc3GPO7nCiRGcdn877NNyO+vPGuffE47QCME3P8WHvuUU8 -dcrs9ZP/dAX8rRWZ2pTatGjufkwRThYRanM5UMVycsJ6l5Miw1KCyA== ------END CERTIFICATE----- diff --git a/src/botan/checks/ecc_testdata/insito_oid_ec.pem b/src/botan/checks/ecc_testdata/insito_oid_ec.pem deleted file mode 100644 index 2e0517187..000000000 --- a/src/botan/checks/ecc_testdata/insito_oid_ec.pem +++ /dev/null @@ -1,13 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIB5zCCAWygAwIBAgIRAKiVxgiRp/wH4oOF+uzoC/EwDAYIKoZIzj0EAwEFADA7 -MQswCQYDVQQGEwJERTETMBEGA1UEChMKRmxleFNlY3VyZTEXMBUGA1UEAxMOSW5T -aVRvIFRlc3QgQ0EwHhcNMDgxMDA5MTg1MzUyWhcNMDkxMDA5MTg1MzUyWjA7MQsw -CQYDVQQGEwJERTETMBEGA1UEChMKRmxleFNlY3VyZTEXMBUGA1UEAxMOSW5TaVRv -IFRlc3QgQ0EwSjAUBgcqhkjOPQIBBgkrJAMDAggBAQsDMgACE6zPzVimCycfprq0 -rfuJY1kBLJBvClZUkRP0qRBIU9c1pnZcJdoC4Nks3Mwf/QZoo14wXDAdBgNVHQ4E -FgQUJBauyO+U5gtgw2LqHCG40qle4+owDgYDVR0PAQH/BAQDAgEGMBcGA1UdEQQQ -MA6BDHRlc3RAdGVzdC5kZTASBgNVHRMBAf8ECDAGAQH/AgEIMAwGCCqGSM49BAMB -BQADZwAwZAIwMtaUw+Hqnm5hB1T1zIc9OEb3VvUAuWFhppbRO87Yo2UZBc/mSVf2 -7KHGSRBBJBZ3AjB9KJIaRCacFYOb8aENOgDHlwwtAdQKrjPH1bEVdotmQePS2hIv -DNGNLlqllCnQWvU= ------END CERTIFICATE----- diff --git a/src/botan/checks/ecc_testdata/link_SHA1.166.crt b/src/botan/checks/ecc_testdata/link_SHA1.166.crt deleted file mode 100644 index 8f76b3203..000000000 Binary files a/src/botan/checks/ecc_testdata/link_SHA1.166.crt and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/link_SHA256.cer b/src/botan/checks/ecc_testdata/link_SHA256.cer deleted file mode 100644 index add40f738..000000000 Binary files a/src/botan/checks/ecc_testdata/link_SHA256.cer and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/my_cv_cert.ber b/src/botan/checks/ecc_testdata/my_cv_cert.ber deleted file mode 100644 index 7a14fd3eb..000000000 Binary files a/src/botan/checks/ecc_testdata/my_cv_cert.ber and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/my_cv_cert2.ber b/src/botan/checks/ecc_testdata/my_cv_cert2.ber deleted file mode 100644 index 7a14fd3eb..000000000 Binary files a/src/botan/checks/ecc_testdata/my_cv_cert2.ber and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/my_cv_req.ber b/src/botan/checks/ecc_testdata/my_cv_req.ber deleted file mode 100644 index 4e121eee7..000000000 Binary files a/src/botan/checks/ecc_testdata/my_cv_req.ber and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/nodompar_private.pkcs8.pem b/src/botan/checks/ecc_testdata/nodompar_private.pkcs8.pem deleted file mode 100644 index a2c64ec53..000000000 --- a/src/botan/checks/ecc_testdata/nodompar_private.pkcs8.pem +++ /dev/null @@ -1,12 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIB0QIBADCCAYcGByqGSM49AgEwggF6AgEBMEUGByqGSM49AQECOgthcsnViAAA -AAAAAAAAAAAAAAAAAAAAAAAAAEdshQ7mkmMLkJZUVU4Ol915g3uKHPNUo9AwD+x4 -7PkweAQ6Cjd97ea1IzM9NseOmw6qO/SM6TBB9tT8NAFNCPaDOAdJje7dQpAQHFhm -6N+1iUhdEzV7nnjC1/vp/gQ6CprPjIumF3d+JIUJvLRxfU2zRiAr+eNSzVYzcx3Z -KlG3Kk3Ds9F8gj/Mj72k2gjyXeqJBGCHNCWVpwR1BAgVI9A9TxLNAoed6kv2pPOn -3ybtiI8QxbIjWhJ0w4ai8hgwDe5u0heEEWRTO83JA/B6CW+fv07pW6wJihEfKW9Y -MP5cNbPjRNXfOiJWmF9k++bQ7cxMYdGL72gd05nfPQGUxaQxXgEuAkXs6lY2W6qe -i+H3AjoLYXLJ1YgAAAAAAAAAAAAAAAAAAAAAAAAAAABHbIeQSOXYXqco7S6hwduS -xOT5ZSNk/c26d1X6bDYvAgEBBEEwPwIBAQQ6CQZ+cOjNmFKHK7JoXGdAPByb7XfI -kTIoUEiQxOiDRUH9pUqf0lpcCHhjtTb9hQZ1RGYrjqsccdL6ng== ------END PRIVATE KEY----- diff --git a/src/botan/checks/ecc_testdata/private.pem b/src/botan/checks/ecc_testdata/private.pem deleted file mode 100644 index 4465da669..000000000 --- a/src/botan/checks/ecc_testdata/private.pem +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIBjQIBADCCAU0GByqGSM49AgEwggFAAgEBMDwGByqGSM49AQECMQCMuR6Cozht -KA9db35Q5kHfFS9xCe1UVrQSsdoZf7cRI6zTpymQHRpxh0cAEzEH7FMwZAQwe8OC -xj2MFQw8cggKzgWvoMK+oo5PsieHE5Fl77qR+Q+KpYFKUDrU6wSox90izigmBDAE -qMfdIs4oJos5tVQW8ER8L7d94Qfc0qYuiA6lPuti1Xy0OQKV28mUOreGlvpQTBEE -YQQdHGTwaM9F/6KmOoG3wT9riEej537xT+Pbf8r+DL0Q6Ogm4DQ21kaq74ey4kfU -rx6Kvh11IPnCpFyx646Vz9VSYrcLKf7sWGThnAVP+ZEpKA5GRiF3kYERQoIDQSY8 -UxUCMQCMuR6CozhtKA9db35Q5kHfFS9xCe1UVrMfFm5srAQlp886tq9rf8MQO4gy -AukEZWUCAQEENzA1AgEBBDB5HVMmAiyXDGqBKoKEHNIk02EMVKKdHqXG6kDInWC/ -R4ZVuXK3T8DqJrRX7RHxndk= ------END PRIVATE KEY----- diff --git a/src/botan/checks/ecc_testdata/root1_SHA256.cer b/src/botan/checks/ecc_testdata/root1_SHA256.cer deleted file mode 100644 index 021afe530..000000000 Binary files a/src/botan/checks/ecc_testdata/root1_SHA256.cer and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/root2_SHA256.cer b/src/botan/checks/ecc_testdata/root2_SHA256.cer deleted file mode 100644 index a2ecfed22..000000000 Binary files a/src/botan/checks/ecc_testdata/root2_SHA256.cer and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/root_SHA1.163.crt b/src/botan/checks/ecc_testdata/root_SHA1.163.crt deleted file mode 100644 index e1bf39f9a..000000000 Binary files a/src/botan/checks/ecc_testdata/root_SHA1.163.crt and /dev/null differ diff --git a/src/botan/checks/ecc_testdata/withdompar_private.pkcs8.pem b/src/botan/checks/ecc_testdata/withdompar_private.pkcs8.pem deleted file mode 100644 index 85d7b575e..000000000 --- a/src/botan/checks/ecc_testdata/withdompar_private.pkcs8.pem +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MGACAQAwGAYHKoZIzj0CAQYNKwYBBAHAbQMBAgkAIQRBMD8CAQEEOgG97/hDkXbJ -tgF36JmM7NliJIlDFzTm69KYouwhjPOsh6hKo5NPTtsmHafplOqpUf0TyAhB1Q88 -3xA= ------END PRIVATE KEY----- diff --git a/src/botan/checks/ecc_testdata/x509_req_test_expl.pem b/src/botan/checks/ecc_testdata/x509_req_test_expl.pem deleted file mode 100644 index e4ae1a9b3..000000000 --- a/src/botan/checks/ecc_testdata/x509_req_test_expl.pem +++ /dev/null @@ -1,19 +0,0 @@ ------BEGIN CERTIFICATE REQUEST----- -MIIDFDCCApgCAQAwaTELMAkGA1UEBhMCREUxCzAJBgNVBAgTAk1EMRIwEAYDVQQH -EwlCYWx0aW1vcmUxEzARBgNVBAoTCkZsZXhTZWN1cmUxEDAOBgNVBAsTB1Rlc3Rp -bmcxEjAQBgNVBAMUCXRlc3RfemVydDCCAYUwggFNBgcqhkjOPQIBMIIBQAIBATA8 -BgcqhkjOPQEBAjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFa0ErHaGX+3ESOs06cp -kB0acYdHABMxB+xTMGQEMHvDgsY9jBUMPHIICs4Fr6DCvqKOT7InhxORZe+6kfkP -iqWBSlA61OsEqMfdIs4oJgQwBKjH3SLOKCaLObVUFvBEfC+3feEH3NKmLogOpT7r -YtV8tDkCldvJlDq3hpb6UEwRBGEEHRxk8GjPRf+ipjqBt8E/a4hHo+d+8U/j23/K -/gy9EOjoJuA0NtZGqu+HsuJH1K8eir4ddSD5wqRcseuOlc/VUmK3Cyn+7Fhk4ZwF -T/mRKSgORkYhd5GBEUKCA0EmPFMVAjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFaz -HxZubKwEJafPOrava3/DEDuIMgLpBGVlAgEBAzIAAjv2NeapXSWoiFe/2KBvFS8x -lDmexNgl0TK6vgVCDoI2AOVkkJQ9wjqpFsrKG67YlqCBnjArBgkqhkiG9w0BCQcx -HhMcYSBmaXhlZCBjaGFsbGVuZ2UgcGFzc3BocmFzZTBvBgkqhkiG9w0BCQ4xYjBg -MAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgbAMCcGA1UdJQQgMB4GCCsGAQUF -BwMCBggrBgEFBQcDBwYIKwYBBQUHAwQwFwYDVR0RBBAwDoEMdGVzdEB0ZXN0LmRl -MAwGCCqGSM49BAMBBQADaAAwZQIxAIOkl6jVpL8C2V6zpUqnLQEMC+T8ocxKGxnm -+0ZKEgwMCqfD9WJo2C1hZ/1iZPcQmgIwKNMUgDbn16AZZqJCk/2sU0JvqkR0D/Ue -FksrSdAxjpnauRDOXMTbzpdsnzAnDNIU ------END CERTIFICATE REQUEST----- diff --git a/src/botan/checks/ecc_testdata/x509_req_test_oid.pem b/src/botan/checks/ecc_testdata/x509_req_test_oid.pem deleted file mode 100644 index 2ae0c2ea5..000000000 --- a/src/botan/checks/ecc_testdata/x509_req_test_oid.pem +++ /dev/null @@ -1,12 +0,0 @@ ------BEGIN CERTIFICATE REQUEST----- -MIIB1jCCAVsCAQAwaTELMAkGA1UEBhMCREUxCzAJBgNVBAgTAk1EMRIwEAYDVQQH -EwlCYWx0aW1vcmUxEzARBgNVBAoTCkZsZXhTZWN1cmUxEDAOBgNVBAsTB1Rlc3Rp -bmcxEjAQBgNVBAMUCXRlc3RfemVydDBKMBQGByqGSM49AgEGCSskAwMCCAEBCwMy -AAMLt+cMOPYmbgVHwaUFmEJIfYCNpgPyWkIyYHPiY4SF2UC0nTQv7el1+Dpt4Ueo -mQGggZ4wKwYJKoZIhvcNAQkHMR4THGEgZml4ZWQgY2hhbGxlbmdlIHBhc3NwaHJh -c2UwbwYJKoZIhvcNAQkOMWIwYDAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIG -wDAnBgNVHSUEIDAeBggrBgEFBQcDAgYIKwYBBQUHAwcGCCsGAQUFBwMEMBcGA1Ud -EQQQMA6BDHRlc3RAdGVzdC5kZTAMBggqhkjOPQQDAQUAA2cAMGQCMC4uFJYZ7CUN -rqQrCAxJAqWIuZrKvvlHyu+Q6VibIUjwh2guPNJDmbW/iorXcu3yAwIwbOjPSSMD -5XvumhMwuV6kHmn+5DjCPLUQLuLQhNeU06bExcCuutz5DMVix05w7gox ------END CERTIFICATE REQUEST----- diff --git a/src/botan/checks/ecc_testdata/x509_test_privkey_expl_pw123456.pem b/src/botan/checks/ecc_testdata/x509_test_privkey_expl_pw123456.pem deleted file mode 100644 index 20f17130c..000000000 --- a/src/botan/checks/ecc_testdata/x509_test_privkey_expl_pw123456.pem +++ /dev/null @@ -1,13 +0,0 @@ ------BEGIN ENCRYPTED PRIVATE KEY----- -MIIB4TBDBgkqhkiG9w0BBQ0wNjAeBgkqhkiG9w0BBQwwEQQIS+GhX0d3oQkCAggA -AgEYMBQGCCqGSIb3DQMHBAjSmLY2CqIVlgSCAZicGlQqDD2ZC8Tmnp43tqUnFnMc -ZU6RdY5ys1WQ2Blvn5eKhK0n9yz3b9LvIzs9U6shbBPN/GePeOFFZQi0M9+SIrjj -NjpjqaJtUvhPt3tDn0B3o0raWLsJ2TvXxO0UNRZYk1YniGEecCUY/shMPpop6Tns -079QXRNuAqGeEcouKIQcJjGR3GbPbccBUUbkAjrK7f4tMTHOzoei3SJ50IcSh1hh -vYbyKFBmxi30gYc95T9VO+XsrDLP4QZXrM6S6o8xkbx1o9hHuGeiSiSOpQ/6iVUt -nRMR1GW1MZGQeJazdnccx+8C4iuW9LOfyvA7HEC8F0LLZ6mCGtLcMt8Vk+en24nJ -od4W0EqJmcasfbF+VNPNuFzwIPvEzgeyYTp5P6wfc81cqlBMfl1AGKFR8u9372UW -PWPcsqrGR3OggRcXvRc+9UKtsLoALel8esZrJzNurqkU10XePUR9Vup3Ke7kvT/o -g+uA5vboio3Jy2FoJE/YF0jKDJfbzMWJeSetJwLfrKEvsmdpUf9jeUoaze0S4LzB -JHJ+NMg= ------END ENCRYPTED PRIVATE KEY----- diff --git a/src/botan/checks/ecc_testdata/x509_test_privkey_oid_pw123456.pem b/src/botan/checks/ecc_testdata/x509_test_privkey_oid_pw123456.pem deleted file mode 100644 index ecd188a5d..000000000 --- a/src/botan/checks/ecc_testdata/x509_test_privkey_oid_pw123456.pem +++ /dev/null @@ -1,13 +0,0 @@ ------BEGIN ENCRYPTED PRIVATE KEY----- -MIIB4TBDBgkqhkiG9w0BBQ0wNjAeBgkqhkiG9w0BBQwwEQQIJ7F/jO3zVxQCAggA -AgEYMBQGCCqGSIb3DQMHBAjBY6p0ZIHowASCAZg/JGcpBr2lh1x9WUI7J/1jCdwn -HvJu+aes3+I57MdI75ca7Z5wixO50pYUWkfexfdkm5k11HVz7ETJuNvVw+p937kI -EJtX0ukBsdsgcGcoKFCZG1JIhClqyCnx38CIdE1C8TE/7Yyk5YFMeNP9LbMH9jC5 -gAJV9+YSpw1F9q6OOXv61s9uKIHq7VWza77CJKjFNLpn1/5FqTISmDXV3V2Rs8eI -j7hFMRBpRnEAA+DOgjuEkTMgF7UR39YTTBooUSzUB4kSlRQxeP7HrulboLB0ukO3 -CT5qa/kA9lHJgHYZXNjzS5NzsoZeZcU934AEBm7J2vr/voHYU8zPrgRAmz8D25Gf -UH4kaQLZ3LDGlbcba8yjlOYd+x5Rl9H6vKORoqAGN0sLPLAryjzs+vS486SUlRiy -LsNqcrSOYoW1MyOYAJajxvUsUDqZyxp64TMegZlyLZGIu2ngFOd1gZsh+T2X3g8C -Murum3ynFx+H3HF1JwpZB/gImz+BI8JigUnd4fG2gqvx7wu6cqoaRGJQayilj64O -AZU+x5c= ------END ENCRYPTED PRIVATE KEY----- diff --git a/src/botan/checks/ecdh.cpp b/src/botan/checks/ecdh.cpp deleted file mode 100644 index c641796d6..000000000 --- a/src/botan/checks/ecdh.cpp +++ /dev/null @@ -1,130 +0,0 @@ -/* -* ECDH tests -* -* (C) 2007 Manuel Hartl (hartl@flexsecure.de) -* 2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include - -#include "validate.h" -#include "common.h" - -#if defined(BOTAN_HAS_ECDH) - -#include -#include - -#include -#include -#include -#include - -using namespace Botan; - -#define CHECK_MESSAGE(expr, print) try { if(!(expr)) std::cout << print << "\n"; } catch(std::exception& e) { std::cout << __FUNCTION__ << ": " << e.what() << "\n"; } -#define CHECK(expr) try { if(!(expr)) std::cout << #expr << "\n"; } catch(std::exception& e) { std::cout << __FUNCTION__ << ": " << e.what() << "\n"; } - -namespace { - -void test_ecdh_normal_derivation(RandomNumberGenerator& rng) - { - std::cout << "." << std::flush; - - EC_Group dom_pars(OID("1.3.132.0.8")); - - ECDH_PrivateKey private_a(rng, dom_pars); - - ECDH_PrivateKey private_b(rng, dom_pars); //public_a.getCurve() - - PK_Key_Agreement ka(private_a, "KDF2(SHA-1)"); - PK_Key_Agreement kb(private_b, "KDF2(SHA-1)"); - - SymmetricKey alice_key = ka.derive_key(32, private_b.public_value()); - SymmetricKey bob_key = kb.derive_key(32, private_a.public_value()); - - if(alice_key != bob_key) - { - std::cout << "The two keys didn't match!\n"; - std::cout << "Alice's key was: " << alice_key.as_string() << "\n"; - std::cout << "Bob's key was: " << bob_key.as_string() << "\n"; - } - } - -void test_ecdh_some_dp(RandomNumberGenerator& rng) - { - std::vector oids; - oids.push_back("1.2.840.10045.3.1.7"); - oids.push_back("1.3.132.0.8"); - oids.push_back("1.2.840.10045.3.1.1"); - - for(u32bit i = 0; i< oids.size(); i++) - { - std::cout << "." << std::flush; - - OID oid(oids[i]); - EC_Group dom_pars(oid); - - ECDH_PrivateKey private_a(rng, dom_pars); - ECDH_PrivateKey private_b(rng, dom_pars); - - PK_Key_Agreement ka(private_a, "KDF2(SHA-1)"); - PK_Key_Agreement kb(private_b, "KDF2(SHA-1)"); - - SymmetricKey alice_key = ka.derive_key(32, private_b.public_value()); - SymmetricKey bob_key = kb.derive_key(32, private_a.public_value()); - - CHECK_MESSAGE(alice_key == bob_key, "different keys - " << "Alice's key was: " << alice_key.as_string() << ", Bob's key was: " << bob_key.as_string()); - } - - } - -void test_ecdh_der_derivation(RandomNumberGenerator& rng) - { - std::vector oids; - oids.push_back("1.2.840.10045.3.1.7"); - oids.push_back("1.3.132.0.8"); - oids.push_back("1.2.840.10045.3.1.1"); - - for(u32bit i = 0; i< oids.size(); i++) - { - OID oid(oids[i]); - EC_Group dom_pars(oid); - - ECDH_PrivateKey private_a(rng, dom_pars); - ECDH_PrivateKey private_b(rng, dom_pars); - - MemoryVector key_a = private_a.public_value(); - MemoryVector key_b = private_b.public_value(); - - PK_Key_Agreement ka(private_a, "KDF2(SHA-1)"); - PK_Key_Agreement kb(private_b, "KDF2(SHA-1)"); - - SymmetricKey alice_key = ka.derive_key(32, key_b); - SymmetricKey bob_key = kb.derive_key(32, key_a); - - CHECK_MESSAGE(alice_key == bob_key, "different keys - " << "Alice's key was: " << alice_key.as_string() << ", Bob's key was: " << bob_key.as_string()); - //cout << "key: " << alice_key.as_string() << endl; - } - } - -} - -u32bit do_ecdh_tests(RandomNumberGenerator& rng) - { - std::cout << "Testing ECDH (InSiTo unit tests): "; - - test_ecdh_normal_derivation(rng); - test_ecdh_some_dp(rng); - test_ecdh_der_derivation(rng); - - std::cout << std::endl; - - return 0; - } - -#else -u32bit do_ecdh_tests(RandomNumberGenerator&) { return 0; } -#endif diff --git a/src/botan/checks/ecdsa.cpp b/src/botan/checks/ecdsa.cpp deleted file mode 100644 index 5cf353e58..000000000 --- a/src/botan/checks/ecdsa.cpp +++ /dev/null @@ -1,439 +0,0 @@ -/****************************************************** -* ECDSA tests * -* * -* (C) 2007 Falko Strenzke * -* Manuel Hartl * -* 2008 Jack Lloyd * -******************************************************/ - -#include "validate.h" - -#if defined(BOTAN_HAS_ECDSA) - -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "common.h" - -using namespace Botan; - -#define TEST_DATA_DIR "checks/ecc_testdata" - -#define CHECK_MESSAGE(expr, print) try { if(!(expr)) std::cout << print << "\n"; } catch(std::exception& e) { std::cout << __FUNCTION__ << ": " << e.what() << "\n"; } -#define CHECK(expr) try { if(!(expr)) std::cout << #expr << "\n"; } catch(std::exception& e) { std::cout << __FUNCTION__ << ": " << e.what() << "\n"; } - -namespace { - -std::string to_hex(const SecureVector& bin) - { - return hex_encode(&bin[0], bin.size()); - } - -/** - -* Tests whether the the signing routine will work correctly in case -* the integer e that is constructed from the message (thus the hash -* value) is larger than n, the order of the base point. Tests the -* signing function of the pk signer object */ - -void test_hash_larger_than_n(RandomNumberGenerator& rng) - { - std::cout << "." << std::flush; - - EC_Group dom_pars(OID("1.3.132.0.8")); // secp160r1 - // n = 0x0100000000000000000001f4c8f927aed3ca752257 (21 bytes) - // -> shouldn't work with SHA224 which outputs 28 bytes - - ECDSA_PrivateKey priv_key(rng, dom_pars); - - SecureVector message(20); - for(size_t i = 0; i != message.size(); ++i) - message[i] = i; - - PK_Signer pk_signer_160(priv_key, "EMSA1_BSI(SHA-1)"); - PK_Verifier pk_verifier_160(priv_key, "EMSA1_BSI(SHA-1)"); - - PK_Signer pk_signer_224(priv_key, "EMSA1_BSI(SHA-224)"); - - // Verify we can sign and verify with SHA-160 - SecureVector signature_160 = pk_signer_160.sign_message(message, rng); - - CHECK(pk_verifier_160.verify_message(message, signature_160)); - - bool signature_failed = false; - try - { - SecureVector signature_224 = pk_signer_224.sign_message(message, rng); - } - catch(Encoding_Error) - { - signature_failed = true; - } - - CHECK(signature_failed); - - // now check that verification alone fails - - // sign it with the normal EMSA1 - PK_Signer pk_signer(priv_key, "EMSA1(SHA-224)"); - SecureVector signature = pk_signer.sign_message(message, rng); - - PK_Verifier pk_verifier(priv_key, "EMSA1_BSI(SHA-224)"); - - // verify against EMSA1_BSI - if(pk_verifier.verify_message(message, signature)) - std::cout << "Corrupt ECDSA signature verified, should not have\n"; - } - -void test_decode_ecdsa_X509() - { - std::cout << "." << std::flush; - - X509_Certificate cert(TEST_DATA_DIR "/CSCA.CSCA.csca-germany.1.crt"); - CHECK_MESSAGE(OIDS::lookup(cert.signature_algorithm().oid) == "ECDSA/EMSA1(SHA-224)", "error reading signature algorithm from x509 ecdsa certificate"); - - CHECK_MESSAGE(to_hex(cert.serial_number()) == "01", "error reading serial from x509 ecdsa certificate"); - CHECK_MESSAGE(to_hex(cert.authority_key_id()) == "0096452DE588F966C4CCDF161DD1F3F5341B71E7", "error reading authority key id from x509 ecdsa certificate"); - CHECK_MESSAGE(to_hex(cert.subject_key_id()) == "0096452DE588F966C4CCDF161DD1F3F5341B71E7", "error reading Subject key id from x509 ecdsa certificate"); - - std::auto_ptr pubkey(cert.subject_public_key()); - bool ver_ec = cert.check_signature(*pubkey); - CHECK_MESSAGE(ver_ec, "could not positively verify correct selfsigned x509-ecdsa certificate"); - } - -void test_decode_ver_link_SHA256() - { - std::cout << "." << std::flush; - - X509_Certificate root_cert(TEST_DATA_DIR "/root2_SHA256.cer"); - X509_Certificate link_cert(TEST_DATA_DIR "/link_SHA256.cer"); - - std::auto_ptr pubkey(root_cert.subject_public_key()); - bool ver_ec = link_cert.check_signature(*pubkey); - CHECK_MESSAGE(ver_ec, "could not positively verify correct SHA256 link x509-ecdsa certificate"); - - } -void test_decode_ver_link_SHA1() - { - std::cout << "." << std::flush; - - X509_Certificate root_cert(TEST_DATA_DIR "/root_SHA1.163.crt"); - X509_Certificate link_cert(TEST_DATA_DIR "/link_SHA1.166.crt"); - - std::auto_ptr pubkey(root_cert.subject_public_key()); - bool ver_ec = link_cert.check_signature(*pubkey); - CHECK_MESSAGE(ver_ec, "could not positively verify correct SHA1 link x509-ecdsa certificate"); - } - -void test_sign_then_ver(RandomNumberGenerator& rng) - { - std::cout << '.' << std::flush; - - EC_Group dom_pars(OID("1.3.132.0.8")); - ECDSA_PrivateKey ecdsa(rng, dom_pars); - - PK_Signer signer(ecdsa, "EMSA1(SHA-1)"); - - SecureVector msg = hex_decode("12345678901234567890abcdef12"); - SecureVector sig = signer.sign_message(msg, rng); - - PK_Verifier verifier(ecdsa, "EMSA1(SHA-1)"); - - bool ok = verifier.verify_message(msg, sig); - - if(!ok) - std::cout << "ERROR: Could not verify ECDSA signature\n"; - - sig[0]++; - ok = verifier.verify_message(msg, sig); - - if(ok) - std::cout << "ERROR: Bogus ECDSA signature verified anyway\n"; - } - -bool test_ec_sign(RandomNumberGenerator& rng) - { - std::cout << "." << std::flush; - - try - { - EC_Group dom_pars(OID("1.3.132.0.8")); - ECDSA_PrivateKey priv_key(rng, dom_pars); - std::string pem_encoded_key = PKCS8::PEM_encode(priv_key); - - PK_Signer signer(priv_key, "EMSA1(SHA-224)"); - PK_Verifier verifier(priv_key, "EMSA1(SHA-224)"); - - for(size_t i = 0; i != 256; ++i) - signer.update(static_cast(i)); - SecureVector sig = signer.signature(rng); - - for(u32bit i = 0; i != 256; ++i) - verifier.update(static_cast(i)); - if(!verifier.check_signature(sig)) - { - std::cout << "ECDSA self-test failed!"; - return false; - } - - // now check valid signature, different input - for(u32bit i = 1; i != 256; ++i) //starting from 1 - verifier.update(static_cast(i)); - - if(verifier.check_signature(sig)) - { - std::cout << "ECDSA with bad input passed validation"; - return false; - } - - // now check with original input, modified signature - - sig[sig.size()/2]++; - for(u32bit i = 0; i != 256; ++i) - verifier.update(static_cast(i)); - - if(verifier.check_signature(sig)) - { - std::cout << "ECDSA with bad signature passed validation"; - return false; - } - } - catch (std::exception& e) - { - std::cout << "Exception in test_ec_sign - " << e.what() << "\n"; - return false; - } - return true; - } - - -void test_create_pkcs8(RandomNumberGenerator& rng) - { - std::cout << "." << std::flush; - - try - { - RSA_PrivateKey rsa_key(rng, 1024); - //RSA_PrivateKey rsa_key2(1024); - //cout << "\nequal: " << (rsa_key == rsa_key2) << "\n"; - //DSA_PrivateKey key(DL_Group("dsa/jce/1024")); - - std::ofstream rsa_priv_key(TEST_DATA_DIR "/rsa_private.pkcs8.pem"); - rsa_priv_key << PKCS8::PEM_encode(rsa_key); - - EC_Group dom_pars(OID("1.3.132.0.8")); - ECDSA_PrivateKey key(rng, dom_pars); - - // later used by other tests :( - std::ofstream priv_key(TEST_DATA_DIR "/wo_dompar_private.pkcs8.pem"); - priv_key << PKCS8::PEM_encode(key); - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << std::endl; - } - } - -void test_create_and_verify(RandomNumberGenerator& rng) - { - std::cout << "." << std::flush; - - EC_Group dom_pars(OID("1.3.132.0.8")); - ECDSA_PrivateKey key(rng, dom_pars); - std::ofstream priv_key(TEST_DATA_DIR "/dompar_private.pkcs8.pem"); - priv_key << PKCS8::PEM_encode(key); - - std::auto_ptr loaded_key(PKCS8::load_key(TEST_DATA_DIR "/wo_dompar_private.pkcs8.pem", rng)); - ECDSA_PrivateKey* loaded_ec_key = dynamic_cast(loaded_key.get()); - CHECK_MESSAGE(loaded_ec_key, "the loaded key could not be converted into an ECDSA_PrivateKey"); - - std::auto_ptr loaded_key_1(PKCS8::load_key(TEST_DATA_DIR "/rsa_private.pkcs8.pem", rng)); - ECDSA_PrivateKey* loaded_rsa_key = dynamic_cast(loaded_key_1.get()); - CHECK_MESSAGE(!loaded_rsa_key, "the loaded key is ECDSA_PrivateKey -> shouldn't be, is a RSA-Key"); - - //calc a curve which is not in the registry - - // string p_secp = "2117607112719756483104013348936480976596328609518055062007450442679169492999007105354629105748524349829824407773719892437896937279095106809"; - std::string a_secp = "0a377dede6b523333d36c78e9b0eaa3bf48ce93041f6d4fc34014d08f6833807498deedd4290101c5866e8dfb589485d13357b9e78c2d7fbe9fe"; - std::string b_secp = "0a9acf8c8ba617777e248509bcb4717d4db346202bf9e352cd5633731dd92a51b72a4dc3b3d17c823fcc8fbda4da08f25dea89046087342595a7"; - std::string G_secp_comp = "04081523d03d4f12cd02879dea4bf6a4f3a7df26ed888f10c5b2235a1274c386a2f218300dee6ed217841164533bcdc903f07a096f9fbf4ee95bac098a111f296f5830fe5c35b3e344d5df3a2256985f64fbe6d0edcc4c61d18bef681dd399df3d0194c5a4315e012e0245ecea56365baa9e8be1f7"; - std::string order_g = "0e1a16196e6000000000bc7f1618d867b15bb86474418f"; - - // ::SecureVector sv_p_secp = hex_decode ( p_secp ); - SecureVector sv_a_secp = hex_decode ( a_secp ); - SecureVector sv_b_secp = hex_decode ( b_secp ); - SecureVector sv_G_secp_comp = hex_decode ( G_secp_comp ); - SecureVector sv_order_g = hex_decode ( order_g ); - - // BigInt bi_p_secp = BigInt::decode ( &sv_p_secp[0], sv_p_secp.size() ); - BigInt bi_p_secp("2117607112719756483104013348936480976596328609518055062007450442679169492999007105354629105748524349829824407773719892437896937279095106809"); - BigInt bi_a_secp = BigInt::decode ( &sv_a_secp[0], sv_a_secp.size() ); - BigInt bi_b_secp = BigInt::decode ( &sv_b_secp[0], sv_b_secp.size() ); - BigInt bi_order_g = BigInt::decode ( &sv_order_g[0], sv_order_g.size() ); - CurveGFp curve(bi_p_secp, bi_a_secp, bi_b_secp); - PointGFp p_G = OS2ECP ( sv_G_secp_comp, curve ); - - EC_Group dom_params(curve, p_G, bi_order_g, BigInt(1)); - if(!p_G.on_the_curve()) - throw Internal_Error("Point not on the curve"); - - ECDSA_PrivateKey key_odd_oid(rng, dom_params); - std::string key_odd_oid_str = PKCS8::PEM_encode(key_odd_oid); - - DataSource_Memory key_data_src(key_odd_oid_str); - std::auto_ptr loaded_key2(PKCS8::load_key(key_data_src, rng)); - - if(!dynamic_cast(loaded_key.get())) - { - std::cout << "Failed to reload an ECDSA key with unusual parameter set\n"; - } - } - -void test_curve_registry(RandomNumberGenerator& rng) - { - std::vector oids; - oids.push_back("1.3.132.0.8"); - oids.push_back("1.2.840.10045.3.1.1"); - oids.push_back("1.2.840.10045.3.1.2"); - oids.push_back("1.2.840.10045.3.1.3"); - oids.push_back("1.2.840.10045.3.1.4"); - oids.push_back("1.2.840.10045.3.1.5"); - oids.push_back("1.2.840.10045.3.1.6"); - oids.push_back("1.2.840.10045.3.1.7"); - oids.push_back("1.3.132.0.6"); - oids.push_back("1.3.132.0.7"); - oids.push_back("1.3.132.0.28"); - oids.push_back("1.3.132.0.29"); - oids.push_back("1.3.132.0.9"); - oids.push_back("1.3.132.0.30"); - oids.push_back("1.3.132.0.31"); - oids.push_back("1.3.132.0.32"); - oids.push_back("1.3.132.0.33"); - oids.push_back("1.3.132.0.10"); - oids.push_back("1.3.132.0.34"); - oids.push_back("1.3.132.0.35"); - oids.push_back("1.3.6.1.4.1.8301.3.1.2.9.0.38"); - oids.push_back("1.3.36.3.3.2.8.1.1.1"); - oids.push_back("1.3.36.3.3.2.8.1.1.3"); - oids.push_back("1.3.36.3.3.2.8.1.1.5"); - oids.push_back("1.3.36.3.3.2.8.1.1.7"); - oids.push_back("1.3.36.3.3.2.8.1.1.9"); - oids.push_back("1.3.36.3.3.2.8.1.1.11"); - oids.push_back("1.3.36.3.3.2.8.1.1.13"); - - unsigned int i; - for (i = 0; i < oids.size(); i++) - { - std::cout << "." << std::flush; - - try - { - OID oid(oids[i]); - EC_Group dom_pars(oid); - ECDSA_PrivateKey ecdsa(rng, dom_pars); - - PK_Signer signer(ecdsa, "EMSA1(SHA-1)"); - PK_Verifier verifier(ecdsa, "EMSA1(SHA-1)"); - - SecureVector msg = hex_decode("12345678901234567890abcdef12"); - SecureVector sig = signer.sign_message(msg, rng); - - if(!verifier.verify_message(msg, sig)) - std::cout << "Failed testing ECDSA sig for curve " << oids[i] << "\n"; - } - catch(Invalid_Argument& e) - { - std::cout << "Error testing curve " << oids[i] << " - " << e.what() << "\n"; - } - } - // std::cout << "test_curve_registry finished" << endl; - } - -void test_read_pkcs8(RandomNumberGenerator& rng) - { - std::cout << "." << std::flush; - - SecureVector msg = hex_decode("12345678901234567890abcdef12"); - - try - { - std::auto_ptr loaded_key(PKCS8::load_key(TEST_DATA_DIR "/wo_dompar_private.pkcs8.pem", rng)); - ECDSA_PrivateKey* ecdsa = dynamic_cast(loaded_key.get()); - CHECK_MESSAGE(ecdsa, "the loaded key could not be converted into an ECDSA_PrivateKey"); - - PK_Signer signer(*ecdsa, "EMSA1(SHA-1)"); - - SecureVector sig = signer.sign_message(msg, rng); - - PK_Verifier verifier(*ecdsa, "EMSA1(SHA-1)"); - - CHECK_MESSAGE(verifier.verify_message(msg, sig), - "generated sig could not be verified positively"); - } - catch (std::exception& e) - { - std::cout << "Exception in test_read_pkcs8 - " << e.what() << "\n"; - } - - try - { - std::auto_ptr loaded_key_nodp(PKCS8::load_key(TEST_DATA_DIR "/nodompar_private.pkcs8.pem", rng)); - // anew in each test with unregistered domain-parameters - ECDSA_PrivateKey* ecdsa_nodp = dynamic_cast(loaded_key_nodp.get()); - CHECK_MESSAGE(ecdsa_nodp, "the loaded key could not be converted into an ECDSA_PrivateKey"); - - PK_Signer signer(*ecdsa_nodp, "EMSA1(SHA-1)"); - PK_Verifier verifier(*ecdsa_nodp, "EMSA1(SHA-1)"); - - SecureVector signature_nodp = signer.sign_message(msg, rng); - - CHECK_MESSAGE(verifier.verify_message(msg, signature_nodp), - "generated signature could not be verified positively (no_dom)"); - - try - { - std::auto_ptr loaded_key_withdp( - PKCS8::load_key(TEST_DATA_DIR "/withdompar_private.pkcs8.pem", rng)); - - std::cout << "Unexpected success: loaded key with unknown OID\n"; - } - catch (std::exception) { /* OK */ } - } - catch (std::exception& e) - { - std::cout << "Exception in test_read_pkcs8 - " << e.what() << "\n"; - } - } - -} - -u32bit do_ecdsa_tests(Botan::RandomNumberGenerator& rng) - { - std::cout << "Testing ECDSA (InSiTo unit tests): "; - - test_hash_larger_than_n(rng); - test_decode_ecdsa_X509(); - test_decode_ver_link_SHA256(); - test_decode_ver_link_SHA1(); - test_sign_then_ver(rng); - test_ec_sign(rng); - test_create_pkcs8(rng); - test_create_and_verify(rng); - test_curve_registry(rng); - test_read_pkcs8(rng); - - std::cout << std::endl; - - return 0; - } -#else -u32bit do_ecdsa_tests(Botan::RandomNumberGenerator&) { return 0; } -#endif diff --git a/src/botan/checks/fail.dat b/src/botan/checks/fail.dat deleted file mode 100644 index e7be16f86..000000000 --- a/src/botan/checks/fail.dat +++ /dev/null @@ -1,100 +0,0 @@ -# Botan validation file: expected failures - -# Each sequence in here should induce an exception on the part of the -# filter, or produce the wrong output, or something like that. - -# This needs a lot more work - -# MARKER: Block Ciphers - -[Blowfish] -0000000000000000:245946885754369B: -0000000000000000:245946885754369B:AA -0000000000000000:24594688575436:AA - -00000000000000:24594688575436: - -0000000000000000:245946885754369B:\ -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - -0000000000000000:245946885754369B:\ -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - -[CAST5] -0123456789ABCDEF:238B4FE5847E44B2:0123456712 - -# MARKER: Hash Functions - -[SHA-1] -A9:19DA91F2603889267DFD77786E07A5B8F067D6 -A8:19DA91F2603889267DFD77786E07A5B8F067D62A - -# MARKER: Cipher Modes (Encryption) - -[DES/CBC/CTS] -9F8789F30E3ED728:48C597491E0C3C1706:9076D5A743FC9721:A9A6C2AD38E682C1 - -9F8789F30E3ED72800:48C597491E0C3C1706:9076D5A743FC9721:A9A6C2AD38E682 - -9F8789F30E3ED72800:48C597491E0C3C1706:76D5A743FC9721:A9A6C2AD38E682 - -# MARKER: Cipher Modes (Decryption) - -[DES/CBC/PKCS7] -E5C7CDDE872BF27C43E934008C389C0F683788499A7C05F662C16A27E4FCF276:\ -4E6F77206973207468652074696D6520666F7220616C6C20:\ -0123456789ABCDEF:1234567890ABCDEF - -E5C7CDDE872BF27C43E934008C389C0788499A7C05F662C16A27E4FCF276:\ -4E6F77206973207468652074696D6520666F7220616C6C20:\ -0123456789ABCDEF:1234567890ABCDEF - -E5C7CDDE872BF27C43E934008C389C0F683788499A7C05F662C16A27E4FCF276:\ -4E6F77206973207468652074696D6520666F7220616C6C20:\ -1123456789ABCDEF:1234567890ABCDEF - -E5C7CDDE872BF27C43E934008C389C0F683788499A7C05F662C16A27E4FCF276:\ -4E6F77206973207468652074696D6520666F7220616C6C20:\ -0123456789ABCDEF:1234567890ABCDEE - -1D2FECD6F0F733F1:AA:DC3A72A9BA8138EC:67E51C4F8403BF6F - -D90246C39C191E98:AA:45AAF3A76E729062:53C1F28656B05986 - -[DES/CBC/OneAndZeros] -28582FD8797D3DB5:AA:D404FD15970CB207:88269176E292DE0A -A2C23F6A496C7BE9:AA:829E7BE8C8A9B326:106E9D2E19FE874D - -[DES/CBC/CTS] -1F807F8FB9678124B8:9E1CA14BE6538A35DB:88B23AFD0683D337:BAC170D943D262CE - -[DES/CFB(1)] -105EFAA6251E7659:C5A1343F4AC4DD7B:C42B0F47482DABA0:48848E073CF89946 -105EFAA6251E7659:C5A1343F4AC4DD7B:C42B0F47482DABA0:48848E073CF899 - -[Base64_Decode] -3D514D3E:31 - -[Bzip_Compress ] -64484953204953204120425A49503220544553540A:\ -525A6839314159265359FDAED210000009DE0000104000100032604C1020\ -0021A4D1EA0FD2840D03401E19B4D4B254EE89F177245385090FDAED2105 - -[Bzip_Decompress ] -523A683917724538509000000110: - -425A6839314159265359FDAED210000009DE0000104000100032604C1020\ -0021A4D1EA0FD2840D03401E19B4D4B254EE89F167245385090FDAED2100:\ -54484953204953204120425A49503220544553540A - -123A6839314159265359FDAED210000009DE0000104000100032604C1020\ -0121A4D1EA0FD2840D03401E19B4D4B254EE89F166245385090FDAED2100:\ -54484953204953204120425A49503220544553540A - -[Zlib_Decompress ] -68DA734C4A76042247C7A4A4246710D3392D3F3F29B1880B106C380868:\ -416263416263414141626262436341626343666F6F6261720A - -78DA73742416700100E0260AB5:\ -3141414141414141414141414141414141414141414141414141414141414141\ -414141414141414141410A diff --git a/src/botan/checks/getopt.h b/src/botan/checks/getopt.h deleted file mode 100644 index 67cf979f9..000000000 --- a/src/botan/checks/getopt.h +++ /dev/null @@ -1,129 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_CHECK_GETOPT_H__ -#define BOTAN_CHECK_GETOPT_H__ - -#include -#include -#include -#include - -#include - -class OptionParser - { - public: - std::vector leftovers() const { return leftover; } - - bool is_set(const std::string& key) const - { - return (options.find(key) != options.end()); - } - - std::string value(const std::string& key) const - { - std::map::const_iterator i = options.find(key); - if(i == options.end()) - throw std::runtime_error("Option " + key + " not found"); - return i->second; - } - - std::string value_if_set(const std::string& key) const - { - return value_or_else(key, ""); - } - - std::string value_or_else(const std::string& key, - const std::string& or_else) const - { - return is_set(key) ? value(key) : or_else; - } - - void parse(char* argv[]) - { - std::vector args; - for(int j = 1; argv[j]; j++) - args.push_back(argv[j]); - - for(size_t j = 0; j != args.size(); j++) - { - std::string arg = args[j]; - - if(arg.size() > 2 && arg[0] == '-' && arg[1] == '-') - { - const std::string opt_name = arg.substr(0, arg.find('=')); - - arg = arg.substr(2); - - std::string::size_type mark = arg.find('='); - OptionFlag opt = find_option(arg.substr(0, mark)); - - if(opt.takes_arg()) - { - if(mark == std::string::npos) - throw std::runtime_error("Option " + opt_name + - " requires an argument"); - - std::string name = arg.substr(0, mark); - std::string value = arg.substr(mark+1); - - options[name] = value; - } - else - { - if(mark != std::string::npos) - throw std::runtime_error("Option " + opt_name + - " does not take an argument"); - - options[arg] = ""; - } - } - else - leftover.push_back(arg); - } - } - - OptionParser(const std::string& opt_string) - { - std::vector opts = Botan::split_on(opt_string, '|'); - - for(size_t j = 0; j != opts.size(); j++) - flags.push_back(OptionFlag(opts[j])); - } - - private: - class OptionFlag - { - public: - std::string name() const { return opt_name; } - bool takes_arg() const { return opt_takes_arg; } - - OptionFlag(const std::string& opt_string) - { - std::string::size_type mark = opt_string.find('='); - opt_name = opt_string.substr(0, mark); - opt_takes_arg = (mark != std::string::npos); - } - private: - std::string opt_name; - bool opt_takes_arg; - }; - - OptionFlag find_option(const std::string& name) const - { - for(size_t j = 0; j != flags.size(); j++) - if(flags[j].name() == name) - return flags[j]; - throw std::runtime_error("Unknown option " + name); - } - - std::vector flags; - std::map options; - std::vector leftover; - }; - -#endif diff --git a/src/botan/checks/misc.cpp b/src/botan/checks/misc.cpp deleted file mode 100644 index 31bc60435..000000000 --- a/src/botan/checks/misc.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -#include "common.h" - -void strip_comments(std::string& line) - { - if(line.find('#') != std::string::npos) - line = line.erase(line.find('#'), std::string::npos); - } - -void strip_newlines(std::string& line) - { - while(line.find('\n') != std::string::npos) - line = line.erase(line.find('\n'), 1); - } - -/* Strip comments, whitespace, etc */ -void strip(std::string& line) - { - strip_comments(line); - -#if 0 - while(line.find(' ') != std::string::npos) - line = line.erase(line.find(' '), 1); -#endif - - while(line.find('\t') != std::string::npos) - line = line.erase(line.find('\t'), 1); - } - -std::vector parse(const std::string& line) - { - const char DELIMITER = ':'; - std::vector substr; - std::string::size_type start = 0, end = line.find(DELIMITER); - while(end != std::string::npos) - { - substr.push_back(line.substr(start, end-start)); - start = end+1; - end = line.find(DELIMITER, start); - } - if(line.size() > start) - substr.push_back(line.substr(start)); - while(substr.size() <= 4) // at least 5 substr, some possibly empty - substr.push_back(""); - return substr; - } - diff --git a/src/botan/checks/mp_valid.dat b/src/botan/checks/mp_valid.dat deleted file mode 100644 index 88ec2df5a..000000000 --- a/src/botan/checks/mp_valid.dat +++ /dev/null @@ -1,2983 +0,0 @@ -# BigInt validation file - -# These are all in decimal, mostly to help make sure the I/O and decimal -# conversion stuff is working. We test the hex conversion in the PK tests -# anyway... - -# Some of the numbers have very simple binary representations (such as -# 2^256-2^192-1) while others are chosen 'randomly', mostly by me hitting -# random keys into 'bc'. Some where also machine generated with a strong PRNG. - -[Addition] -0:0:0 -0:1:1 -1:0:1 -1:1:2 -1:-1:0 - -5:-0:5 --5:-0:-5 --0:5:5 - -255:1:256 - -65535:1:65536 - -4294967295:1:4294967296 - -18446744073709551615:1:18446744073709551616 - -124536363637272472:124536363637272472:249072727274544944 - -9223372036854775807:281474976710655:9223653511831486462 - -9223372036854775807:137438953471:9223372174293729278 - -# Carry tests -340282366920938463463374607431768211455:\ -340282366920938463463374607431768211455:\ -680564733841876926926749214863536422910 - -340282366920938463463374607431768211455:\ -340282366920938463463374607431768211450:\ -680564733841876926926749214863536422905 - -11579208923731619542357098500868790785326998466564056403945758400791\ -3129639935:\ -11579208923731619542357098500868790785326998466564056403945758400791\ -3129639935:\ -23158417847463239084714197001737581570653996933128112807891516801582\ -6259279870 - -11579208923731619542357098500868790785326998466564056403945758400791\ -3129639935:\ -11579208923731619542357098500868790785326998466564056403945758400791\ -3129639919:\ -23158417847463239084714197001737581570653996933128112807891516801582\ -6259279854 - -13407807929942597099574024998205846127479365820592393377723561443721\ -76403007354697680187429816690342769003185818648605085375388281194656\ -9946433649006084095:\ -18446744073709551616:\ -13407807929942597099574024998205846127479365820592393377723561443721\ -76403007354697680187429816690342769003185818648605085375388281194658\ -8393177722715635711 - -13407807929942597099574024998205846127479365820592393377723561443721\ -76403007354697680187429816690342769003185818648605085375388281194656\ -9946433649006084095:1:\ -13407807929942597099574024998205846127479365820592393377723561443721\ -76403007354697680187429816690342769003185818648605085375388281194656\ -9946433649006084096 - --397942700139194066108348269604271467697661897648384734165029652\ -9192053560111268857919862747528477749805933030612876334500852832\ -5994574657552726381901:\ --342238655038:\ --397942700139194066108348269604271467697661897648384734165029652\ -9192053560111268857919862747528477749805933030612876334500852832\ -5994574657894965036939 - -2511029185349894083125189792298767815734633609329237357694542628\ -9097725034326735312448621015537884914:\ --365510811543986457345339657399796975273732516080550566276869562\ -81114038842935173436543461:\ -2511029185346238975009749927725314419160635639576500032533737123\ -2470038078045621273605685842101341453 - -27802650352:\ -660736146705288303126411072388564329913778942:\ -660736146705288303126411072388564357716429294 - --134824589995504186480095446370988146623149603821668360871542456\ -6397833766910915722793041224478985289:\ -1151714952286618235856515264359526625702022859705853911311473221\ -8008332987904361457299261161227276764386173666571334749062651694\ -592291882972:\ -1151714952286618235856515264359526625701888035115858407124993126\ -3544623106438129961261044477618561339819775832804423833339858653\ -367812897683 - --175405304416816169628682516351336019150390262549968865836182439\ -14226325157426408929602625346567256761818:\ -8652004279835272452069018101603566414024194616420826231795446815\ -19016990:\ --175405304416816169628682516351327367146110427277516796818080835\ -57584922737964766846979445801885737744828 - -1288447760742982615563987140969486034581770182750513292185554983\ -74:\ -4438163138291508763620522351346106032205489281076979612299536118\ -73695276391917150913346479060246759720475193648:\ -4438163138291508763620522351346106032205489282365427373042518734\ -30093990488865754371523497335298088939030692022 - -1709484189262457846620911889502097055085989595277300243221975568\ -275935717696463:\ --1646592344139809206374540620411514484579951199941360:\ -1709484189262457846620911887855504710946180388902759622810461083\ -695984517755103 - -3201758654296371761657093415761871025401806278064180152049287711\ -7023353895132395250905592913967322327352806288308303059519915387\ -7335714942842:\ --282824169696073608987996588238668793593857085654548122761949764\ -0844399275054327390050478930503975773972:\ -3201758654296371761657093415761871025373523861094572791150488052\ -8784685101538538165251044791205372563268366360802870320514867494\ -6831739168870 - --403539836054218172590829531210749614210541501474425943996337720\ -4111754181625695349185753326709217:\ -85450213703789913646546187382091037800:\ --403539836054218172590829531210749614210541501474425943996329175\ -3898050391712048802998371235671417 - --129216644607347987680152236338235788743165763918415128477552538\ -7363973852756087726243671676713861533673009088319851:\ -8045388958745181755374994252823750582362455317985903504033438417\ -6695557207064326714194569562489510933024274993575473943439469171\ -4971:\ -8045388958745181742453329792088951814347231684162324629716862025\ -8280428729511787977797184286880738308657107322189320576138560339\ -5120 - --451986588700926309459451756852005697379481014956007968529234251\ -884946522682901215022086432597024324062240835564200177389:\ -15762983479:\ --451986588700926309459451756852005697379481014956007968529234251\ -884946522682901215022086432597024324062240835548437193910 - --390747541211572881697456702205527837411679402562428747433403883\ -1885743634200801846649105209920908153587891040882946582394429615\ -396962188674594744360388466:\ -1938936112365378546948796774781062371570792073982831173929981754\ -54362643521031390:\ --390747541211572881697456702205527837411679402562428747433403883\ -1885743634006908235412567355226028476109784803725867374996146498\ -003964013220232100839357076 - --72603710637966201224690926289:\ --136184426422985332615812550349236126405125071507280171067688615\ -06299813289801666559564532:\ --136184426422985332615812550349236126405125071507280171067689341\ -10010451256002891250490821 - -5607796083571305683140294840679074710788944676935750975947220760\ -3483968107693997028111823994257399379783658853302692762256851623\ -103019589392739:\ --427057313888431079237360487703561848638868677065083968842:\ -5607796083571305683140294840679074710788944676935750975947220760\ -3483968107693997028111396936943510948704421492814989200408212754\ -425954505423897 - --220980083850850444349478376253480033771210140515678470878219758\ -0824527899758308:\ -4284407650303949586450021392583759850781770841835415277411207859\ -6443089606598570396235816327987463393971710495985285591895096794\ -994387176281079:\ -4284407650303949586450021392583759850781770841835415277411207859\ -4233288768090065952741032565452663056259609090828500883112899214\ -169859276522771 - -3388776730880982684241784117615223232127223178833840452685901937\ -0507113927387984766381329515371768224976188337692:\ -349484339542971517481628970179002500341:\ -3388776730880982684241784117615223232127223178833840452685901937\ -0507113927737469105924301032853397195155190838033 - -8574808963985866072258732162153629808269070752641242695163010155\ -1228144063151688592419555048867068162:\ --383634567691961960211191292397062452265352651123492760493087381\ -707279:\ -8574808963985866072258732162153591444812301556445221576033770448\ -8775878710500565099659061961485360883 - -23889807888563742283608049816129153552608399262924421832404872043475:\ -995:\ -23889807888563742283608049816129153552608399262924421832404872044470 - --654786925833474864669230962582694222611472680701859262466465606\ -239654996048306783957549697781271829257774329538985:\ --276137507159648540503039013089014674747:\ --654786925833474864669230962582694222611472680701859262466465606\ -239654996048582921464709346321774868270863344213732 - -50463316268089933:\ --140591583463431806921000349498135287589005423318927850947894242\ -9953101385694731575213124136524392343244191305277028999171613076\ -57443381774866237429:\ --140591583463431806921000349498135287589005423318927850947894242\ -9953101385694731575213124136524392343244191305277028999171613076\ -57392918458598147496 - -1339015021665554488163337105187026760232395594198925052890859936\ -418304234254229440059229155546157793544192:\ -6294037420283433712414743361937677483761554699961644450461297486\ -2247932788230044871756877711635975905661325925915992499702811257\ -81761944353272:\ -6294037420283433712414743361937677485100569721627198938624634591\ -4118200390554000813746128240544575269844368268458286900295102813\ -27919737897464 - --241446683:\ --282671163032866994488211995758272717472259277760825940523445628\ -442206062910449311538519756165635175664610569214430918184214:\ --282671163032866994488211995758272717472259277760825940523445628\ -442206062910449311538519756165635175664610569214431159630897 - -2358605503303452637996081421902056515951744611718383128442445119\ -505739707550326378912342448355046239066896995563581:\ --383043722914532516527336452555126144064884579194968166126094695\ -6860463720730123941973615:\ -2358605503303452637996081418071619286806419446445018602891183678\ -856893915600644717651395491494582518336773053589966 - -1860794367587960058388097846258490:\ --237344494507203983863096991896035366478949095337787603280:\ --237344494507203983863095131101667778518890707239941344790 - --286399096802321907543674770412181810379003627366516307780436082\ -546:\ -6433131620680089024037442172197761714707480582555136398379812339\ -597187475099646442833150194:\ -6433131620680089024037441885798664912385573038880365986198001960\ -593560108583338662397067648 - -1811803390771023695595378175836278947833228041818597295747524425\ -7214680056902377349016498752054120312533829578576324428322456925\ -9250011493:\ --119912766577350317025030707802803587547945939765717835695952624\ -5067549497129923023348187933280753018204983010837846725666878521\ -137637491:\ -1799812114113288663892875105055998589078433447842025512177929163\ -2707925107189385046681679958726045010713331277492539755755769073\ -8112374002 - --641402013955555338114086428916201846520512758110759261762820321\ -4491558550345077676836677565241902214951203461131114985869530775\ -0874152:\ -174441039:\ --641402013955555338114086428916201846520512758110759261762820321\ -4491558550345077676836677565241902214951203461131114985869530757\ -6433113 - -1272757944308835857208037878018507337530557445422230495561634616\ -5037244198775127175123602392596401935136013522028214622088960493\ -31599624285621:\ -7326562354017884140300121264633612334070903165496641915889499701\ -38457507491850467631029977010:\ -1272757944308835857208037878018507337530557445422963151797036404\ -9177544320039760787457673295761898577051903021729599197163878997\ -99230654262631 - --296171972628230:\ --829576609912184321900082369936222286517382010256973151771639172\ -7126741710202086962877467940292139:\ --829576609912184321900082369936222286517382010256973151771639172\ -7126741710202086963173639912920369 - -7469859140681995100248436821088394448284142227691915206159676323\ -62127522466922882591:\ --20487191102299831461877807785745372724903547246374023:\ -7469859140681995100248436821088189576373119229377296428081818869\ -89402618919676508568 - --4:\ --234439009075326480604323496098115161312227136676259000693031887\ -6906455201397017135:\ --234439009075326480604323496098115161312227136676259000693031887\ -6906455201397017139 - --448761802739957373377693318750581411296787367117499463888322757\ -67882143882764:\ -20982187786:\ --448761802739957373377693318750581411296787367117499463888322757\ -67861161694978 - --601944008264824351134005823298148744369561537910415436895793990\ -7896782179207195666302228625496897271988494:\ -5325663024991554160033166078015937845836527207540797603647364222\ -91735917382015688217276924340984564880:\ --601890751634574435592405491637368584991103172638340028919757517\ -1474490443289813650614011348572556287423614 - --737554715636160268477263493571675308338509596629210590529282292\ -3781472871944886871927821129478599825311797681268315326408823018\ -2865250970217610487:\ --30100016097092378349958946184353117306134810372681:\ --737554715636160268477263493571675308338509596629210590529282292\ -3781472871944886871927821129478602835313407390506150322303441453\ -5982557105027983168 - --221117706668970434568685275663894630667495895204444708028536428\ -3965878599873864667094550865713828159912:\ --536556043937245689200756579876160678199726920153847573681478030\ -0517383963455858081652308237033460360040921820049494698892905680\ -307378540208:\ --536556043937245689200756579876160678420844626822818008250163305\ -7156330270130817033696755317318824644006800419923359365987456546\ -021206700120 - -6074122512337108841968521649035076841633691574254417104144285970\ -8190687151580370231498672521465704184848502349798380642493738161\ -63440:\ -301843614094506325875637699:\ -6074122512337108841968521649035076841633691574254417104144285970\ -8190687151580370231498672521465704184848505368234521587556996918\ -01139 - --518214776931158149908771340564348982010543985108065053479219152\ -7346598920424997741288096547136515478330872068932567407374262007\ -15673766732196603988:\ --298351725577476937261155258873861370046745453114225573456588840\ -38760353928226157702249175218280718951979:\ --518214776931158149908771340564348982010544014943237611226912878\ -8501857794286367788033549661362088934919712456536106689635839029\ -64848985012915555967 - -15937412249227240968245047444122:\ -1862146803761694261088224507009788278865690534402542585855766455\ -30381613666540347032550716844628275956253:\ -1862146803761694261088224507009788278865690534402542585855766455\ -30381613682477759281777957812873323400375 - --125280101162586858550475042529281076239231054587017617079119695\ -27003855713485846140551107967495813584097081777160:\ --539986280927242338236008809854961759996986302156061552378097160\ -849129372827386927545686899193598721998757419572890:\ --552514291043501024091056314107889867620909407614763314086009130\ -376133228540872773686238007161094535582854501350050 - --2454746908:\ --382295712788939478005524215636037018707559207865555237605060467\ -9934415014573879513870030211860839641756441626913419699098985245\ -833920954444218:\ --382295712788939478005524215636037018707559207865555237605060467\ -9934415014573879513870030211860839641756441626913419699098985245\ -833923409191126 - --54288706131860071583318409080596095357980447323635:\ --425339410556015631098973742993327323051438456819027069606294261\ -157940297643297240559452124432779202181589763874:\ --425339410556015631098973742993327323051438456819027069606294315\ -446646429503368823877861205028874560162037087509 - -1418766894051319870818496026367686195459604395660119754151922014\ -257535705077512233275240217434104:\ --111987390206074845527:\ -1418766894051319870818496026367686195459604395660119754151922014\ -257535705077400245885034142588577 - --690410131860410477456103857594543515409677479242833618634809302\ -4529626004763532868225501682312348541164651530788457447229874477\ -19420052500874721214723:\ --258469037743394674731135699243278836145549479106673938483740960\ -9897387109736539600623155880918146331681272708396146283818299:\ --690410131860410477456103860179233892843624226554190611067597663\ -9084573915430926716599597781286219638530047537020016256411337794\ -00692760897021005033022 - --2326153002179462643778624079324592172489363679671158:\ --109819757548464054181938329012610459679:\ --2326153002179572463536172543378774110818376290130837 - --442875225056652548835385770919494174299378557880791141401695920\ -6453045495320705299466107784149485981354180907411034982168391:\ --392477782593742153255217680053880075265812358324465405897205608\ -55741992694947322437679214611686905696:\ --442875225056652548835389695697320111720911110057591680202448578\ -7688877941861295020026963526142180928676618586625646669074087 - -3047:\ --735645878503131535237769321637196107334337768903902046180401737\ -9719600010085607082927794304834315616579528230750813527764131521\ -4:\ --735645878503131535237769321637196107334337768903902046180401737\ -9719600010085607082927794304834315616579528230750813527764131216\ -7 - --89094716573076464980713547115099137014719483620102078148320806773871\ -083148864:\ -89094716573076464980713547115099137014719483620102078148320806773871\ -083148864:0 - --89094716573076464980713547115099137014719483620102078148320806773871\ -083148864:\ --89094716573076464980713547115099137014719483620102078148320806773871\ -083148864:\ --17818943314615292996142709423019827402943896724020415629664161354774\ -2166297728 - -7139718976538104911036273126224339498939049952371944598728684359\ -8407339615555456955143712741779487184644001767776382991377987516\ -772847242986:\ --5821969555717973232123574849275726788359152255219972775831:\ -7139718976538104911036273126224339498939049952371944598728684359\ -8407339615555456949321743186061513952520426918500656203018835261\ -552874467155 - --181409752656613138777964092635909379021826360390960647186726991\ -165227400176766831466541160049935205507919070233410228328274:\ --523301382154855044703947051892202646490840761177533623732372519\ -6899184207698424247726764075013505280967149049152973476842478027\ -73107355881667545916901:\ --523301382154855044703947052073612399147453899955497716368281898\ -7117447811608030719594033986665779282734817363818385077341830082\ -81026426115077774245175 - -6858961373707073067:\ --334051508933893061433844279764271107181974906283364991309903077\ -649971606436918071327072869826471946094594594115614990907:\ --334051508933893061433844279764271107181974906283364991309903077\ -649971606436918071327072869826471946087735632741907917840 - --236350989303745694071719069604296168709084242815199446584909401\ -09956689534874971218650241680916564611:\ --189589178757795228335995891331428279524485393011427187469792714\ -4384667023598274379343968662673642819854164720298367788750543006\ -0922528525205:\ --189589178757795228335995891331428279524721744000730933163864433\ -5080709985285365221772120657139491913865160389251855285872408030\ -2603445089816 - -[Subtraction] -0:0:0 - -0:1:-1 - -1:-1:2 - -100:-100:200 - -0:-1:1 - -0:4294967296:-4294967296 - -4294967296:-4294967296:8589934592 -4294967295:-4294967295:8589934590 - -13407807929942597099574024998205846127479365820592393377723561443721\ -76403007354697680187429816690342769003185818648605085375388281194656\ -9946433649006084095:\ -13407807929942597099574024998205846127479365820592393377723561443721\ -76403007354697680187429816690342769003185818648605085375388281194656\ -9946433649006084095:0 - -13407807929942597099574024998205846127479365820592393377723561443721\ -76403007354697680187429816690342769003185818648605085375388281194656\ -9946433649006084095:\ --13407807929942597099574024998205846127479365820592393377723561443721\ -76403007354697680187429816690342769003185818648605085375388281194656\ -9946433649006084095:\ -26815615859885194199148049996411692254958731641184786755447122887443\ -52806014709395360374859633380685538006371637297210170750776562389313\ -9892867298012168190 - -17976931348623159077293051907890247336179769789423065727343008115773\ -26758055009631327084773224075360211201138798713933576587897688144166\ -22492847430639474124377767893424865485276302219601246094119453082952\ -08500576883815068234246288147391311054082723716335051068458629823994\ -7245938479716304835356329624224137215:\ --17976931348623159077293051907890247336179769789423065727343008115773\ -26758055009631327084773224075360211201138798713933576587897688144166\ -22492847430639474124377767893424865485276302219601246094119453082952\ -08500576883815068234246288147391311054082723716335051068458629823994\ -7245938479716304835356329624224137215:\ -35953862697246318154586103815780494672359539578846131454686016231546\ -53516110019262654169546448150720422402277597427867153175795376288332\ -44985694861278948248755535786849730970552604439202492188238906165904\ -17001153767630136468492576294782622108165447432670102136917259647989\ -4491876959432609670712659248448274430 - -# 2^512 - 1 -13407807929942597099574024998205846127479365820592393377723561443721\ -76403007354697680187429816690342769003185818648605085375388281194656\ -9946433649006084095:1:\ -13407807929942597099574024998205846127479365820592393377723561443721\ -76403007354697680187429816690342769003185818648605085375388281194656\ -9946433649006084094 - -89094716573076464980713547115099137014719483620102078148320806773871\ -083148864:\ -49505213825110728957828173754776257356620450607893971553289366249708\ -672306581:\ -39589502747965736022885373360322879658099033012208106595031440524162\ -410842283 - -65894747009896006767807716946835412110318548717263922395390971078905\ -789585431:\ -38842697419255082259907154168620472841946037999026507486310396086843\ -67281358:\ -62010477267970498541817001529973364826123944917361271646759931470221\ -422304073 - -5950196396451977566902121301707054218364717196893101360011491777\ -7619522537369647091659626133477106071641786829877837558948110242\ -88429224592316636383:\ -8750653273562160761286422180115618621879821429145276197424652349\ -306577311499807887070429373153777028581165316131683348567:\ -5950196396451977566902121292956400944802556435606679179895873155\ -8821308245916885117413102640411332956643707959173543827410339957\ -07263908460633287816 - -9815262808265519920770782360080149146267723690:\ -1406700576889160928136491935811529134135218991825578039756006074\ -8765650205261663193732434161580120817:\ --140670057688916092813649193581152913413521899182557803877447979\ -40500130284490880833652285015312397127 - --390149102941948621568479722346940666704376013734485343840154221\ -6058534125031549938788864908670209347775308945934163371753998650\ -65870417717658815158195790:\ -1456031684988128870809574635750149625240648487837308:\ --390149102941948621568479722346940666704376013734485343840154221\ -6058534125031549938788864908670209347789869262784044660462094397\ -01620567342899463646033098 - -7473774301764883450943:\ --262563698593678907551573728200523874834027237901855629084919338\ -12453:\ -2625636985936789075515737282005238748340272379765933721025681726\ -3396 - -3624634325121492202413918675700914884929548559339795200323734966\ -0142296147421019916619944353877490544706223768684758263065399016\ -597969:\ -2574427901445527995149185461475228850098549655325125750771680756\ -4031046245695227927925972232181431549249881995623555170649626659\ -54307425375180:\ --257442786519918474393426343733604209308940080602964015737372875\ -3165754964427226645371577306598198801047497654856131748380204402\ -888908408777211 - -30129746266682790628283889040897642317014108334116727:\ --158048052389539876256372171547438090363007387136214391586439872\ -4834897608423:\ -1580480523895398762563751845220647586420702155251184813506715738\ -943231725150 - --4614735863800137951667138933166372061:\ -87175694379075561307234146162193190462135078700346746992273:\ --87175694379075561307238760898056990600086745839279913364334 - --3753904:\ --11269137783745339515071988205310702154422777729974:\ -11269137783745339515071988205310702154422773976070 - -5925239484953794400820212797381700884029188584554700501406527871\ -71830058864932939900794505955437856926902975870288:\ --205854658295495452479104108497931263758143158076949293929661651\ -111:\ -5925239484953794400820212797381700884029188584556759047989482826\ -24309162973430871164552649113514806220832637521399 - --33993701617495591491176844355:\ -3438065097398894672826284379125235190693300918673662774192379185\ -002391232383325160416036963599856704698280:\ --343806509739889467282628437912523519069330091867366277419237918\ -5002391232383359154117654459191347881542635 - -26876428790838270949718735111909136008255051776703:\ --178112811296681037328619200883114927554699563526876724185996760\ -9117529616872536681035700534316457543887601645022:\ -1781128112966810373286192008831149275546995635268767241859967635\ -993958407710807630754435646225593552142653421725 - -2059771092932179758019770618974659367350250375647433386639519387\ -69317693429941871882153770641334267205446421916220398066553188:\ -3342500267594994347156312297990633112620923791590960237694328174\ -171473763026:\ -2059771092932179758019770618974659367350250375647399961636843437\ -74970537117643881249041149717542676245208727588046226592790162 - -5545520403000578843599072515870982842927227412121917598877293331\ -575380404618111609:\ -5991287327241003718821424770352575362437680738923552868139860461\ -945460339860477495902:\ --598574180683800313997782569783670437959475351151143095054098316\ -8613884959455859384293 - -248039029608125071340:\ -3664608673:\ -248039029604460462667 - -15425705711415937103627:\ --143550406551774570344004527686898291075408140547412300376755421\ -1132837427846963435621523810229738262235546179779885824:\ -1435504065517745703440045276868982910754081405474123003767554211\ -132837427846963435621523810229753687941257595716989451 - -5088284720510864560728156892268365268867173823603073291434760082\ -1086:\ -12176160963158:\ -5088284720510864560728156892268365268867173823603073290217143985\ -7928 - --354265185659858189476700478770330228855421724619735662285097710\ -5341631254320181588119095376220762923216041205830017303882425678\ -3171761132:\ --486486260736646884318469435312383053458853801109381241820880813\ -5799:\ --354265185659858189476700478770330228855421724619735662285097710\ -5341630767833920851472211057751327610832987746976216194501183857\ -4363625333 - --142859621471226831038214482817138481252017914160812187001355640\ -2879770424002218157546599921571184:\ --4054101:\ --142859621471226831038214482817138481252017914160812187001355640\ -2879770424002218157546599917517083 - --200931:\ --445588024601304957594828329131607177911517867255705194754496076\ -5970517168228311149083493083504573514296684748300915751495017756\ -5952218520297258834187372:\ -4455880246013049575948283291316071779115178672557051947544960765\ -9705171682283111490834930835045735142966847483009157514950177565\ -952218520297258833986441 - -105704314890799915321259:\ -8279235459450764155749124384991698144145630668774941008316577611\ -9049069747385436947778487411878749535140554980332961534712093812\ -3226038208:\ --827923545945076415574912438499169814414563066877494100831657761\ -1904906974738543694777848741187874953514055498033295096428060473\ -23310716949 - -1448979433940064018828919290452280235308901982649341:\ -303926827425887072291878308433008512899006711759770318009:\ --303925378446453132227859479513718060618771402857787668668 - --243237595290235750457450892290434789864:\ -1981770207633427640298127306741732109846753330094746386538370200\ -5126562800253466403934608765512316565811954342319565128573969:\ --198177020763342764029812730674173210984675333009474638653837020\ -05126562800253466403934852003107606801562411793211855563363833 - -294037338365659932242802023634:\ -4401245995535867764294876849802142926077599828776505639975554254\ -356763769548465:\ --440124599553586776429487684980214292607759982877621160263718859\ -4424520967524831 - -7303853946195223307036710881687367004566538357189824031021831088\ -365362:\ -119286025999378935715794641163321741:\ -7303853946195223307036710881687366885280512357810888315227189925\ -043621 - -5711673553432872356876026107141104160674262893635054129088049406\ -96550592413192300554016875:\ -15872188842802631759540597:\ -5711673553432872356876026107141104160674262893635054129088049406\ -80678403570389668794476278 - -1002240129784524388754179399598974973256811336031329881209395070\ -412702275169416754240:\ -5942948247886059134314539354042003351647830595287234900671578947\ -7946474753657206800070515207967709079933420746952:\ --594294824788605913431453935394177933866937815641181696071168145\ -04689663417625876918861120137555006804764003992712 - -1370431648825444838359719050380239722263203134555431526491525074\ -601463042144798545817957389:\ -3473869878:\ -1370431648825444838359719050380239722263203134555431526491525074\ -601463042144798542344087511 - -8548280229254726209:\ -3306612503526990498184932043401689273494314593558214198996828084\ -6973981913056248918:\ --330661250352699049818493204340168927349431459355821419899682808\ -38425701683801522709 - --190235588326875064895081507959663321759901299630299289585841701\ -1175963029327693964733408210016910253836443785984639809506517193\ -6899503:\ -2489927112752354534228346876280965340763863196622012469575197689\ -4193103779443050843040771191227522843088079031762445684377195650\ -493065096847292797:\ --248992711275425689011161562692991615584345982983961148257150068\ -2315168794955481047333404813087485692518824813430081012223704204\ -8588130268784192300 - --180035357552270638928830562379719669053087020435672292804206122\ -8497437075035917720399302198953687023:\ --118756682615304660537085387309407764121711064830726245327571774\ -71384128016458332544642788404765469924496127460164:\ -1187566826152866570013301602455148810654730928638209366255282074\ -8456085955229835107567752487045070622297173773141 - --29861551039945217879:\ -1113473025916855642353456146647542930581669082348409639697282960\ -8778892265003199963808382325823762328728689476247937892128298859\ -34:\ --111347302591685564235345614664754293058166908234840963969728296\ -0877889226500319996380838232582376232872868947654655340252775103\ -813 - -5655329636567611538382182775649579176587072976497579206763033016\ -55328103665512287797108510139837643506491641987188791892506290:\ --2188105671531473889939411772533707:\ -5655329636567611538382182775649579176587072976497579206763033016\ -55328103665512287797108510142025749178023115877128203665039997 - --349535960680522202843083381184496349093812380954435872337802226:\ --1829600726218222026679938:\ --349535960680522202843083381184496349091982780228217650311122288\ - --1:-6726974989587128275:6726974989587128274 - --107142709838121196902389095205618516687047338619382145236348309\ -762148611647954748824:42484103615491:\ --107142709838121196902389095205618516687047338619382145236348309\ -762148654132058364315 - --905466304300857697648396075281161213818488784945743608120275996\ -40018921358040178215575723:\ --118922408531468986902800063237122125617455464103913195171141030\ -774109638861272017660698580914239435114280434761425243:\ -1189224085314689869028000631465754951873696943390735876430249093\ -92260760366697656848670981274220513756240256545849520 - --554504466708242712880172641672765736000158843011357818285065757\ -3063241939882570324573086267287272360432363387213743735507218270\ -373633222520429:\ --151423255459028627628896755237194376177115:\ --554504466708242712880172641672765736000158843011357818285065757\ -3063241939882570324573086267287272360280940131754715107878321515\ -136438846343314 - --5247636471953421659649611318164848102069:\ --4024324110573096565232590473170599175885004:\ -4019076474101143143572940861852434327782935 - -3941289260601504332248485425387937172318645783859022479504017847\ -2832:\ --503832132195745214503468781543289068482546657912347492184846539\ -3400312:\ -5077734214563467188357172669686770056548653036962065146643505571\ -873144 - --559794145880092270356836245052087667531874697277996402772042742\ -07843317583292736333912783829528270272642583004969175230274821:\ --109633110576212669339535976775635762395927171313557427036242111\ -4760163985793453669084013340255712657141281083080320737794421813\ -69365924213118258269679:\ -1096331105762126693395359207962211743867001356299329218274753582\ -8854667077970508970412712618225368242139177439524824425117190872\ -6782919243943027994858 - --387523538981733893474792162857729999063252864213028668543507370\ -50533204094183249691110:\ -2428819407377764342156426895396654728835493564788997075896393065\ -230009911546390816091652653701035085361:\ --242881940737776438090878079357004407631470985056199698222167948\ -6532876765897127866624856747884284776471 - --2784579005241382005249492720344:\ --164204542616919252351131740123094674:\ -164201758037914010969126490630374330 - -2009488574208715447478080609723750390524012808225058048517328681\ -00:\ --795957177479360455258269298038670876462147576765875895105714:\ -2009496533780490241082633192416730777232777429700825707276279738\ -14 - -217570540819:\ -1219550835977204209833842821666933073941855304313684768349807483\ -02158718406063500763434561937200696970170700:\ --121955083597720420983384282166693307394185530431368476834980748\ -302158718406063500763434561937200479399629881 - -2335319252198456765380587281374076367944:\ --4500271:\ -2335319252198456765380587281374080868215 - --393694614027544181700073367147249369966344727230221941008713805\ -434207925307052598:\ --153972676737062409261153899615588515236137907791841623991260363\ -8406802955653131579724891681323455217806580074596028231257978067\ -70:\ -1539726767370624092611538996155885152361379077914479293772328196\ -5898022219816590860252282340511529983964929365416861520049075417\ -2 - -114832549702862263167:\ -1292186490722995955874527641883028787538667360089228102228659716\ -5773569473039953984775959232814911435097412913078625:\ --129218649072299595587452764188302878753866736008922810222865971\ -65773569473039953984775959232814796602547710050815458 - -6489502346837936889305337487724547956628371915228387374094443896\ -2663621059310651530729834259117675802940765940789328350084947778\ -66083:\ -1099205476533612407829257935144627350486541654788267826664706620\ -630745291371323154513322608446957760026881954001581:\ -6489502346837936888206132011190935548799113980083760023607902241\ -4780942792663585324422381345404444257807539856319750749816128238\ -64502 - -1699911441239587542538013131736629773378508702733583789516405216\ -01077152994474340806917796870911557233689087716056557:\ --15409167:\ -1699911441239587542538013131736629773378508702733583789516405216\ -01077152994474340806917796870911557233689087731465724 - -[Multiplication] -0:0:0 -0:1:0 -1:0:0 -1:-1:-1 --1:1:-1 --1:-1:1 - --0:5:0 -5:-0:0 --5:-0:0 --0:-5:0 - -4294967296:4294967295:18446744069414584320 - -# Tests on sign handling and linear mul -15928512:20395958369873946873946873498674938762987:\ -324877267646037601269025261886125746185503585344 - --15928512:20395958369873946873946873498674938762987:\ --324877267646037601269025261886125746185503585344 - -15928512:-20395958369873946873946873498674938762987:\ --324877267646037601269025261886125746185503585344 - --15928512:-20395958369873946873946873498674938762987:\ -324877267646037601269025261886125746185503585344 - -20395958369873946873946873498674938762987:15928512:\ -324877267646037601269025261886125746185503585344 - --20395958369873946873946873498674938762987:15928512:\ --324877267646037601269025261886125746185503585344 - -20395958369873946873946873498674938762987:-15928512:\ --324877267646037601269025261886125746185503585344 - --20395958369873946873946873498674938762987:-15928512:\ -324877267646037601269025261886125746185503585344 - -# Some tests for comba4 -340282366920938463444927863358058067579:\ -340282366920938463463374325956791500548:\ -11579208923731619541729378749232972134965448161202875719419539386122\ -8599533292 - -340282366920938463463374607431768211455:\ -170141183460469231731687303715884105728:\ -57896044618658097711785492504343953926464851149359812787997104700240\ -680714240 - -170141183460469231731687303715884697989:\ -255211775190703847597530955573823923340:\ -43422033463993573283839119378257736288536818090295526758568867574118\ -988163260 - -297747071055821155530452781502797180927:\ -170141183460468022805867689086709264301:\ -50659039041325475543690391927479197318639397862390185708883012434796\ -959187027 - -14601326942920387013816701832353570086:\ -24264364577528921915881695974297771845:\ -35429192025871610141024926748879851702222338457773664017578783702084\ -5028670 - -146013269429203870138167018323535700860:\ -242643645775289219158816959742977718450:\ -35429192025871610141024926748879851702222338457773664017578783702084\ -502867000 - -14601326942920387013816701832353570086:\ -242643645775289219158816959742977718450:\ -35429192025871610141024926748879851702222338457773664017578783702084\ -50286700 - -146013269429203870138167018323535700860:\ -24264364577528921915881695974297771845:\ -35429192025871610141024926748879851702222338457773664017578783702084\ -50286700 - -# This one triggered an internal error in the Karatsuba routines pre-1.5.1 -84464209123861960605955522581978104887597821936897255830387847065955\ -8899906113628751877643450961:\ -98736951733086678034646082696089517704609210537259909243889983275639\ -1381482452634765035178337262:\ -83397385394360978145497699467080869269009479990938738462835142243431\ -68965095514489024855209740810586369398339972616667107927536797156602\ -16305715905081674268833475056324309733116240691616008782 - -# Bunch of random tests -65391683115015322641882045438465620784076516421367563767344998373464\ -211053082289513139:\ -14690551177765498638640685224012137037306962019402563878738998365076\ -1050984890:\ -96063986740135661881270234408778414507112892608292678410994214305223\ -58175678639192181958429173932035325313118014847793404794351246657465\ -400198770681540554545469710 - -1459164589787755339073553407089181299573246969:\ -4955710571301004201072727045590614350659542263:\ -72311973828792724517911747511119452992590495960205135450079047249531\ -44018123225390192150847 - -3793974577745786452436021977649815501504431203:\ -2923303082707524288431115654231878223978230055:\ -11090937578838235312365399492067271746660860774658228109409108903923\ -640884753924587454406165 - -101303541515453867913135264584014138619190734343846977507421629791:\ -36729564208551355196057918758932548366821793131129547653209379728:\ -37208349326455106997710672468998674976019345812041319483326955314975\ -51053692760634209776285429196890853333966465984989349956276848 - -44895767034162990997987303986882660674722497505237491649296190658571\ -47197906588923414435381184370662953551284823547380833018151742197013\ -59303201872276975123159197578062043415450227149917179130060317248184\ -61724742069401359454784533576615919680949125073761586043027941204059\ -690093447093117249681641020785611986:\ -16696330082433130739210985196630214321753266552182432027772967004925\ -52487573743509832387533060375698218277114850491112782115377202073776\ -62825100480410971654051009789510884031202872930809935194297665183801\ -70736075740497155051843194560584923206479837331572253151736065154330\ -02181215131563438851752144164132708:\ -74959454570640520505374182178324326203870806497691482733643463532317\ -75442982425470080130736910895976501997512084030656668411349679742847\ -21690931312000529989464756559726986788294230843854125058213935382088\ -33087270201941766663613578038620398830216648062658181759195126557523\ -37555785758593956590738976578724612143644830770362020115624628734003\ -14793973405636949715493148568894826023486325367366577289710265462268\ -93078189596361078496041841642207401666400444087608269521582499768080\ -07159362627730642339199533209051979652974085966347840098279340160090\ -19527545420793815544675402025957881285966830564213200530247666994380\ -88 - -31239732497959818638292779200667312725332984706050265703512759466859\ -84736003183931208107094690791134882086398364414246612787541657212152\ -296954515345861259:\ -44486010269203082806521604993132013139417339215738521529001729101974\ -65470989031351517957857643691181436996411785695418178273749379126148\ -152297344989418668:\ -13897310607113977660431400418487955410781290158603183057898927941454\ -42790371799023389229350908578189623154651948470463734628718228022175\ -37160459735416212605027206307627525795256098590275806474422724678539\ -64782315844000916960349331847619603498272594899577643345409426860228\ -282896290162148120168283702192583012 - -91271582:\ -1044096341139516502862794205655492738851558322471722173871372437\ -43310942332:\ -952963248162153539313947560906101692644945912572602330737192268\ -7571591624552409224 - --91271582:\ -1044096341139516502862794205655492738851558322471722173871372437\ -43310942332:\ --952963248162153539313947560906101692644945912572602330737192268\ -7571591624552409224 - -91271582:\ --1044096341139516502862794205655492738851558322471722173871372437\ -43310942332:\ --952963248162153539313947560906101692644945912572602330737192268\ -7571591624552409224 - --91271582:\ --1044096341139516502862794205655492738851558322471722173871372437\ -43310942332:\ -952963248162153539313947560906101692644945912572602330737192268\ -7571591624552409224 - --9007685545468534598743641658049346286545924671394080257:\ -2708960019652616340610787776914583117699836940876415749938089814\ -6081690884713840035653793589401490015282276:\ --244014600122770296285710957465763428914667734328300934010213909\ -4856883353826536741655516010662407431799548978798414309377210905\ -45677125226465989158836569253624932 - -428475864:\ -1642909320501970182957064144199510240834448195404018829560344234\ -44879791407290995292738391711524351126135935031044584272585059146:\ -7039469905757345878447661340893057388183882714889777970681372359\ -9286724999378785107476015314565835105810467743874695068716694731\ -073452144 - -3804585298456788532803090036944486:\ -9742592765295469751314273699067197683737589672961737725951028020\ -8013084557451228262241241203602290304633025697300826898557186337\ -686135242:\ -3706652520369461349681131925078860959899355051485269139180490532\ -0467536020217182138330427311026318308608257076867490449833762996\ -8681057630927906028048393947534475842175612 - --35149344750729324695898480464299390828429941822615:\ -1752615203067497391770113249494248437526672507748487522889401580\ -803582387921659886646983402010731854517398777968222841997058767:\ --616032759879889488930577794740723910260183908336496340745761376\ -2386195653397211971686493794958963315038864032857733526167220510\ -1088470032335610958791871921057479688753244615705 - -2224887148112689653000916580023252657898661078193469990759133236\ -362617772742210818665763748892926451655031017362736825860:\ --2254472752938568904593125981795197834529:\ --501594745378325694157035263090451802038729306146676277613732491\ -0318865702652093235942446178330845500337957245272966813848791221\ -008304843258214793080794968119940 - --326328701700361893997973482656600190641887240518503116265346556\ -55295515493003511016396059566561:\ --21680483:\ -7074963869626767136670866125187215271008195405978317997637869508\ -45488283622299239531287490699813128963 - -4389513377810870521262475775128351860157070070803223156864617016\ -76781196153736168934878334587194620411888:\ -1591402338122279449286758479905480147444383058415555680119818315\ -:\ -6985481852667243947827954917503754523391596798272663056116832798\ -8639257425760121941859610354487659319836581325691828420744517855\ -7475650610301655551351877918657026128720 - --5742879080477972131875:-117203:\ -673082656869259767772145625 - --41663152776865616597841653055290004804009193:\ -5835026797641751552624640633869101411165325469966866477145:\ --243105612927253227498125135247022492715711849036333775420426222\ -096834839368617968764219011608104393985 - -4173221:-226716880742:-946139647767009982 - --2:-419149616949225277707956479498985786267693664978807:\ -838299233898450555415912958997971572535387329957614 - --7465837654969091645574504830799010297689933581098938996:\ --202766795624052324242807175739440132217946363911505883055059139\ -6802793334274781900133686867487904621446567316359570842284699541\ -23774859572282855983153:\ -1513823977947471878037349023375096499530047411943626417913495002\ -9266163268789802231784935230530990513196596039364219349962480236\ -2882318096853516252518151818670572226535777283574688903592768015\ -9878750734388 - -3279753735679960497081857312:\ --120409079507914667933587089469886612743428895521786295640815348\ -9755449324053336110735728979481112654778080841040146337772577107\ -9932:\ --394912128325868511771837525267263805962903118191080245346895278\ -2101319174909498798792301813784053942666817514010081546325334905\ -4670131212205861739934570662784 - -4087017444924453990694625061188553846924665921421375573052029701\ -043709060984050262732827338392612774866740696110490073121:\ -3201354694306000008850909268274836475189060544721638298393454399\ -7010152870984867537367271090975150700374414635283625090662581086\ -8464508777654674:\ -1308399248301941463281797376424136020032561422146839113205163993\ -0095140051921364225220153999482159067766281848161373837807682105\ -9323529563247238502827327776282135135915279474234713191582888777\ -1511404594446973439104298431438185694530043948690757478249515261\ -147417554 - --179313367402631288677862721876578030440889951889929042528322527\ -8085266134713795430545312954193172520148465554221323897345577960\ -264434757547077538451:\ --33744480794260115381826015778:\ -6050836482472199350882052360070598557985968830769735487227048700\ -2553193437634540742425617610465933528817398184780529934951394335\ -131691780368690568505046871430214639380927679878 - -3180313045123330718974011402998828102633:\ --395949120505103380356259679899143757026704962287504981215815665\ -380:\ --125924215314748995932963128833366357734780900635789980947564937\ -2075592673896477843481666129302983824945540 - -78394433139310872652394899769973779113149326061838893498:\ --506317937717:\ --396925077155891232039161994526220415197346559686986697686085602\ -64066 - -6992304690095528264306828961300165566845561346363146805401105701\ -874655545973774463962200355744318214727682521358902:\ --133619017321721689986267587295828262450483752049648766344634742\ -91685037600448415:\ --934304881504630204568833073073911400366279420013023235031438382\ -2934806501904607000964107025275607243164225972618594885288739045\ -8800341193419320569112624739820560918330202201239246722530352040\ -330 - --279747165826180670739009508896477442612565831634509:\ -1001070223323787961662547493417138134890156942660669560843733241\ -4633638061364752177870909932683912027813180522891316:\ --280046557767811427898723527174997897592562433513837063010261215\ -7561198396498373067781895023542952270308263849208412127831845586\ -715174925803969788307318868622842023844 - --152342817045381492055715979459468344477216937481934776490228525\ -31778605803188114866165739904589756975:\ --2212835903613879894390831209261230372573882516571420663066:\ -3371096552157007383916181066595556807779212082757370662982557178\ -6303181325061530061815766217946054712863588378057790411549645679\ -971413325974723607366298385350 - --6494091656668836641394369738257289569440116499061905611026:\ -1112275782840317521987084233672591688806254182453409490318139855\ -2744964172429976273740793816660934415725201105937791700128767940\ -628761787374194934304:\ --722322088125810479882613158179027486065378866899909715094586413\ -7631103621500568007359634288605863429230875357724233639767911115\ -2068815511020712301669909478881408853498125187530355741482610911\ -208923048035904 - -1259075970239705718009909682383850925181613342972607875664276820\ -78026:\ --318663749166949940724436640747496455489904112200179629829091439\ -2694468149048117282961429675979014117768927070124265356881836359\ -049426402836926666527884852:\ --401221869162599711356856060105595763645472859526212982202400149\ -5177647664741074762667141421159412849263518723551697751858002053\ -7542672075930439535906386249755965714824568354356750289932068520\ -3787316784029369163777807462152 - -2209196064019679034549708549203671427517764511470713969280084552\ -75125503453318134640933653347485145888239438775112197321859:\ -124322370280092642752:\ -2746524910923777881431201305680978264281158564024544236980377993\ -0636867162970792373254349391903852439413048040893096230035640839\ -019184047515968 - -3082058203728546610432890576347992072668373530737159518097003484\ -3125203068791784796435721368414598060677372556794113220896530315\ -739449185455779351233:\ --552090427013053554588518469958636851397777719282856055637956259\ -9226137:\ --170157482977557810525065897604283065952067566293743982849411731\ -4057452157313429551986153220866320527892664570619020242072409661\ -0134368039649413644973455415575096896642638467426667020714240674\ -6077334196123944909716776921 - --750276999830609236437180125267494301299136351451377419221886149\ -8911986254315057380891206497595590249266192106292303419043717156\ -81219472681905129612:\ -4205355271908551:\ --315518133662938357806548055254433388492269241826339016138263604\ -4618312099336135707474248962067915083570475597285597855437079628\ -850888491804577876260379972266112212 - --891480538085009501272618223055661423871310460861205688650041631\ -6753749755092306432442174291514301244257968406437077389253407330\ -1027650622821713282798669:\ -1823891225274156993815141670030683418070006803521364429343774264\ -50339496570500278332821206013754250417471107492:\ --162596353091593275777884582766611115972439819895849702568800957\ -2367685595981932088283461337162038543383704114341129033405716497\ -0880798827330185683075499346562579922155299739327439570345879557\ -1617840239191503928488539315719099552021212289189718073280973406\ -93528148 - -2124681182585249920847800665256356364758375848619965937406893722\ -55899052138313727858090571132568351249080019:\ -166675024913973810158544:\ -3541312890416478684229072496000778308444354108581194567659019593\ -9857314201986899403459218685673527418723464730927296640736532532\ -336 - -1821270812209449323858422000208483696090755511739052940949819411\ -630382944845340233359392421633:\ -2128599324432790723202832411330404647604668944765842006449683716\ -50019:\ -3876755820478193889141631692181181045914395285524928078325690250\ -7363257606428059488182369494828732792776883797717522047063810333\ -3437096328016399478420072360461027 - --335011184237031303208123967960797661123087083840830392886248022\ -143119440501379:\ --230989343999262588479185165706529031246884375719671837094628940\ -050182325:\ -7738401367932796012865144293474273194190542200590231371857014534\ -2578579884777706655220887725142189714172038628849075667359933189\ -054779585318363926175 - -9198355732743233736216530024186914753135748283508055875656089812\ -193:\ -5265840759145098384429490542373787636725124845354712989635142593\ -95934459401303991397630:\ -4843707653459529764586164414557294257741706853681297466140467212\ -4298268715305496704100180574245676306441226124334746402488026433\ -56143901511622354285302590 - -8714296327732867082392471731937188058841333771145620157971112718\ -8495045603213379592320067530490555856585188563018570084376435672\ -250185088374873:\ -4210349889307237465841484620878589644044295847340349009991385858\ -7615774626884639631625125100679586906920885988199787927848195684\ -62193938751049439136295957:\ -3669023657886054286232729883213956427553614823342184148988934625\ -8269564694550999939890817870432701814483867503196358666291080568\ -3307419798404926447543906006174853340917944983123029252530968474\ -2688682844881192340842766518335434033712938061191158275417587681\ -07991512024470998588265108393429890288461 - -2981019:\ -4433245119720584557487584549690245587480169135936518003445698498\ -9177614053957189552768994493672410015:\ -1321558793354433725697708180673306621094454631744034296211369269\ -35453261869513407243405875196532834030505285 - -3371841482115264548260749392909612923666167033836512042138667346\ -1110922005108438730679287361069225:\ --1224839645782921647445211493292528894:\ --412996512659022216647456819920862349778936230990047619735626685\ -9000246454258876625428723876322584511859911068016361053904468404\ -6687150 - --339290341643379646242121130133274175571738607527:\ -3271401581452035936363564486098243173858343994842704626634540604\ -0333753792872314861533886742557607640566446319092917014148799834\ -8498182361629081026057:\ --110995496022355374018357458920157866276843573465657648989031507\ -1492983893793639677118229990155541637204519376994267321550212870\ -3024690173524970745190362239190804266551097416929422331908148558\ -3331039 - --302193108025958893465396831014238400181355654244499365872812914\ -0671578942520441667218976086488594667623103779245243552871642908\ -5538517727995241:\ -2017851085218627867440914776334445037676170997318580940821659303\ -5046997219650546605682041506090881913886238203842281306969809595\ -246163485422064601589012:\ --609780690975771196107607785560739006824539433569270870499177868\ -0127071341610096112489032765719159734331084718676312427284431166\ -3160752183891441001416955478885614399224358737795082762053960238\ -3642229098982445564368202356432336746046757695325766162758445391\ -517573101567916271503836326565773891892 - --35188123484838216734793425643059054080:\ -9000600267361446370368675857998:\ --316714233645582443508665110125938608546684298371094101256326282\ -531840 - --287546392987328273673797823271747266125547785306672698267720774\ -608232552065:-724:\ -2081835885228256701398296240487450206748965965620310335458298408\ -16360367695060 - -7239719440345013275638025455463886572537307213436218405718641390\ -921197615256801869733473418374:\ -1273855558831670011845427584052189147328498974982056877978612327\ -370857472534105245496452412950690926717874:\ -9222356853465202151464594272999727525831895475287638674380433334\ -6933374970835844231896759667044442575039030759210684473734626375\ -4867082551600245844507805177238750672856996150996602083141097106\ -5816876 - --467193764317015751447832154618223252689085556761857235622959651\ -6527745:\ -4062614168720459964554950353412675872692580185950353528672485067\ -66348747462819:\ --189802800645215543819126042173342480893460145936335827236015901\ -5836446083789360925533289958276050415814781716398053517857780132\ -893397801668369413155 - --256291521346916076469577753590332243088939322304016068224382551\ -5025546499325406138:\ --605053480861014149406513375530972230393655979785947325614347032\ -55672033601321733124376224905086861012031956149097:\ -1550700771061164855884803447589885127420417575088485989466750817\ -5220547092689946197222125349076097067231864772732377382975294424\ -7005994565440548405623573916996459703805738162154040744466006957\ -386 - -37657585687987148872355696565539718:\ --1434800894234388160687:\ --54031137619832058507887448613713814837731429449464666266 - -4393856668836163872660314169038850961070596126492582636740923958\ -869429568049592915508:\ --725654263195468754856026662040358630736857297829750596111795962\ -7542041685201743870533093436197634453:\ --318842082361080325483580016771866191199973311649234286812044253\ -9591641099237099919800666371105550379907533870255064162462208188\ -3994207992073068621770789270796474452792924978217098797124 - --22262682191673391309862211106958012450603677337242458360760:\ -220733215635032249425562508910063071532478728405839033930940264210:\ --491411342882883504420371271016231681619217410641501118113820080\ -3099803240779721785281408106422401055283687004275837896399600 - --1943809061953917342683052893090:\ -7700827546161027851150293971073751401383411867756623153657156490\ -3719544057834222201379883202137441380031452353172493763083243:\ --149689383687721546514336832201365455374120959277626078690972108\ -3971845846592875060793450410610935237925773161603531529842259112\ -43685728191984096169649490870 - -3786170367178724834730573252874138148565139634940161475730134462\ -072806346795721773969696184:\ -5642009735645474144794852846572624514752624565190901861011302937\ -5113755663421195546:\ -2136161007243476508223846179651669079978058344237194176489154392\ -7622668375501304536598877419397709190638503067245194075783305398\ -2326877049744197485569753314370744763673996464 - -13489797398057489738508057443:\ --39829491566872094526554950598431919339453350924955014031891083289:\ --537291771704743910798219370322043426391226290103531988511540464\ -278547553363892492512309370027 - --323325112374943657482631147177688351925959386858544487312506089\ -86289604167358883842577746321363893167908786:\ --246925431746938028131175064627088867042153744157154625487424933\ -24630571161151476958595194:\ -7983719296781021810724607567340308787943618592037051108694438338\ -2489270621359904712938918152105643713875728369108646194020367483\ -4484438934808794593359943127130153265367987222230213154933289974\ -484 - --435100258456539648627052287294649432161393329378094060187883773\ -2690708495675481854054541928447945875268:\ --10155417715410577307402999881053155099930501238885853034128275227:\ -4418624872709263597834477604499556163338660202529113122166495103\ -6300436212506625541915615934966052700868562630468721925914800339\ -297995368984918582710621377945716385836 - -# comba8 tests (256x256->512) -11579208923731619541729388327330122708943419524243289762333678181937\ -5385575424:\ -74179307167655687693225162271190690968501083926425986337482366849894\ -604086426:\ -85893769551194762664489787067237470111583081643887491027483108939248\ -54152414995879834924747381994424629165311199542893443807287227310529\ -677629685837594624 - -11574114654373435432769681547953871289980961721498085841658839565237\ -8326940031:\ -10711660777805634592035489333768778748163480146501669697332609614056\ -735426801:\ -12397798998107734697368913960056304565756856899698066529320990905885\ -80174831683647898327881664370985256756518936891247178025618131778049\ -267698975117170831 - -27006267526871349343129256945225699676622244016828866963870625652221\ -609619338:\ -10706691322561929820710026337093404691680917641214496572907959829962\ -995350055:\ -28914777018473950489193423936996699498718323255670979720398132582868\ -12326099575727022500582226148289338093647474428048875439902371078972\ -17011952607363590 - -# Karatsuba tests (512x512->1024) -67039039649712985497870124991029230637396829102961966888617807218608\ -82015036773488400937149083451713845015929093243025426876941405973284\ -973216824503042048:\ -67039039649712985497870124991029230637396829102961966888617807218608\ -82015036773488400937149083451713845015929093243025426876941405973284\ -973216824503042048:\ -44942328371557897693232629769725618340449424473557664318357520289433\ -16895137524078317711933060188400528002846996784833941469744220360415\ -56232118576598685310944419733562163713190755549003115235298632707380\ -21251442209537670585615720368478277635206809290837627671146574559986\ -811484619929076208839082406056034304 - -67039039649712985497870124991029230637396829102961966888617807218608\ -82015036773488400937149083451713845015929093243025426876941405973284\ -973216824503042048:\ -67039039649712985497870124991029230637396829102961966888617807218608\ -82015036773488400937149083451713845015929093243025426876941405973284\ -973216824503042049:\ -44942328371557897693232629769725618340449424473557664318357520289433\ -16895137524078317711933060188400528002846996784833941469744220360415\ -56232118576598685377983459383275149211060880540032345872695461810342\ -17940303990259531467630757141966678572355892742551472687075667803012\ -238361561335049493812299230559076352 - -67039039649712985497870124991029230637396829102961966888617807218608\ -82015036773488400937149085058651889274919368784987519218104008495487\ -966999617338343424:\ -67039039649712985497870124991029230637396829102961966888617807218608\ -82015036773488400937149085058651889274919368784987519218104008495487\ -966999617338343423:\ -44942328371557897693232629769725618340449424473557664318357520289433\ -16895137524078317711933062342952193277060785350743397497444921769834\ -74555755777883734829695075352889186645794406339299840443362841695908\ -49124479353346416074683250011190629511478487550142982175186156043821\ -992372090244262099992413871225700352 - -13407807929942597099574024998205846127479365820592393377723561443721\ -76403007354697680187429816690342769003185818648605085375388281194656\ -9946433649006084095:\ -13407807929942597099574024998205846127479365820592393377723561443721\ -76403007354697680187429816690342769003185818648605085375388281194656\ -9946433649006084095:\ -17976931348623159077293051907890247336179769789423065727343008115773\ -26758055009631327084773224075360211201138798713933576587897688144166\ -22492847430639474097562152033539671286128252223189553839160721441767\ -29825032171526323881440273437995950679223090335649513062086992526784\ -5538430714092411695463462326211969025 - -67039039649712985497870124991029230637396829102961966888617807218608\ -82015036773488400937149083451713845015929093243365709243862344436748\ -347824256271253504:\ -67039039649712985497870124991029230637396829102961966888617807218608\ -82015036773488400937149083451713845015929093243365709243862344436748\ -347824256271253504:\ -44942328371557897693232629769725618340449424473557664318357520289433\ -16895137524078317711933060188400528002846996785290185531506439882279\ -67948175579511934243229492219161469505115934541754787322072497766508\ -32568813609316312895189314891581055577244380152406865341154204627445\ -048144934853380616505964511432278016 - -67039039649712985497870124991029230637396829102961966888617807218608\ -82015036773488400937149083451713845015929093243365709243862344436748\ -347824256271253504:\ -67039039649712985497870124991029230637396829102961966888617807218608\ -82015036773488400937149083451713845015929093243025426876941405973303\ -419960898212593664:\ -44942328371557897693232629769725618340449424473557664318357520289433\ -16895137524078317711933060188400528002846996785062063500625330121359\ -98742154443577980079599561074597766784810090551438150849000845701430\ -39463393843012149940933139094628420823280505085783531419710269806521\ -710678242326571370194267352288198656 - -13407807929942597099574024998205846127479365820592393377723561443372\ -67729797885965581514188847955651931542202341709841678538338597448558\ -6698740166243034228:\ -13407807929942597099574024998205846127479365820592393377723557015178\ -15690541073572989474743035547506906776301480077261237516040494971968\ -7212579269664735026:\ -17976931348623159077293051907890247336179769789423065727343002177599\ -00942480367760499251857295455939596154105772404450931317906536826768\ -15455762278256937871060873932808316066099592555454681197347421682785\ -09568862593066461743520871555375522976812396705343420538862100685795\ -3308142564518141627105027011868469928 - -13407807929942597099574024998205846127479365820592393377723557015178\ -15690541073572989474743035547506906776301480077261237516040494971968\ -7212579269664735026:\ -13407807929942597099574024998205846127479365820592393377723561443372\ -67729797885965581514188847955651931542202341709841678538338597448558\ -6698740166243034228:\ -17976931348623159077293051907890247336179769789423065727343002177599\ -00942480367760499251857295455939596154105772404450931317906536826768\ -15455762278256937871060873932808316066099592555454681197347421682785\ -09568862593066461743520871555375522976812396705343420538862100685795\ -3308142564518141627105027011868469928 - -# 1024x1024->2048 -17976931348623159077293051907890247336179769789423065727343008115773\ -26758055009631327084773224075360211201138798713933576587897688144166\ -22492847430639474137785575823367462584850327217807092221598818903544\ -47838349239959440410649295502088991241512540406677820071644448472599\ -8099692362528251405302763273230221311:\ -17976931348623159077293051907890247336179769789423065727343008115773\ -26758055009631327084773224075360211201138798713933576587897688144166\ -22492847430639474124377767893424865485276302219601246094119453082952\ -08500576883815068234246288158970519977814343258692149569327420609321\ -7230604120280344292940337537353777151:\ -32317006071311007300714876688669951960444102669715484032130345427524\ -65513886789089319720141152291346368871796092189801949411955915049092\ -10950881523864482855309433042883335846718668037787037650188893055840\ -73018927951831283900011347985854627812829075980481789955530757008122\ -88824849145421420410206954413439564292684600051414432901225421532791\ -01381942730678481306279979329106412319570512109276383150572147028830\ -25199880085119057947572011024091985929007350883874353448844224836795\ -78442377318748543006187648103374862164234771293283689764786919194438\ -37888284136626985706746129572759980426766233612587290367814732695050\ -64961 - -17976931348623159077293051907890247336179769789423065727343008115773\ -26758055009631327084773224075360211201138798713933576587897688144166\ -22492847430639474124377767893424865485276302219601246094119453082952\ -08500576883815068234246288147391311054082723716335051068458629823994\ -7245938479716304835356329624224137247:\ -10112023883600526980977341698188264126601120506550474471630442065122\ -46301405942917621485184938542390118800640574276587636830692449581093\ -50152226679734704194962494440051486835467919998525700927942192359160\ -54781574497145975881763537082907612467921532090438466226007979275997\ -0325840394840421469887935413626077183:\ -18178315915112441606652118137376847977749807751714959768073319302982\ -61851561318862742342579398163882332490385301856763596544225202215114\ -31159870857173771592553548685191068103016094862345941793100727824215\ -91038007155695622986473612841033928065392845889702175791770421586624\ -26143899184951734174822450721084185903177062211837438496534372480202\ -97467411486790074725866007726424039330919514310082034160544731735015\ -05505148992020823080165429348056649053453259548580079987024817945821\ -06278219961860441688154154020423122651667491374047530445279534822367\ -96606089062121158502205590789299321244993290459201196063373244192071\ -35201 - -17976931348623159077293051907890247336179769789423065727343008115773\ -26758055009616165775278099964665396948321782087417396060386782903823\ -07012341545824090641587839835926419363551226096078071585202389405050\ -15136893796472153753067084907045685619026471680211462175364329863209\ -0971267582066228875273648785630167039:\ -16853373139334211634962236163647106877668534177584124119384070108537\ -43835676571529369141974897570650198001067623794312728051154082635155\ -83587044466224506991604157400085811392446533330876168213236987265267\ -57969290828576626469605895138179354113202553484064110376679965459995\ -054306732473403578314655902271012864:\ -30297193191854069344420196895628079962916346252858266280122198838304\ -36419268864745685317012104530668242911371513575805609806190451951607\ -10557715881476395538121318622342054920551385626039497775648111929192\ -11010149235353314669473560070738635821344900819492979642122564308821\ -93832836355009007808239907501987022158846860226885245037291654118972\ -21789040347542992939815493420694907963244430325400081905612531817013\ -53434121697017777687388707760265950247661467236793723639977817395453\ -05333658727917987431471148302830409557728284992844256725143219605511\ -19105089461515317003555642348174884134868178964134073119096779203778\ -9696 - -# a1 = random 512 bit integer -# b1 = (17*a1) mod 2^512 -# a = (a1 * 2^512) + a1 -# b = (b1 * 2^512) + b1 -17930121528120518743193890185292405362795914617726312913105692310966\ -79834089760159821608571760102261884739604751290203318392915809389705\ -18533152042879507565469760620770664602498091326659618430896499562864\ -33097556186753511259807783990999180942484334496111552855551238437298\ -5931442517394084353378720570213259961:\ -17181164400078273397607302623726933788654231870578267885308639434063\ -29050645768615733989348336532688661355059992510519187273205749318328\ -55178025838720042408416717379221896884862317068300037779659390111981\ -97244867335458644846343599813562216158033039927051277398059877872479\ -1239444995247411522594037321941878345:\ -30806036568802130707161344222425760549041581576622091565254201628592\ -14385467809668014385184785152271193843047948236592285206889142604429\ -75839733409984928244101830825691058271214860952936075111998155431716\ -66320122704699248615782786577874030694743967942269571299270175479177\ -49821546067026790701696727687868585663474591471567191830596615534450\ -88805296433793120856742255208087463783715754626092601017174650889346\ -66486074650833697034162201049220647206717383818466106882937622653918\ -76822429098414628373727606690842310063586870064304131814649299854186\ -12692628024925259230119912648154125622594020560204924767989260701214\ -44545 - -# 4096x4096->8192 -46230924351836247700632620916046176424079105466354534064042561034208\ -87179012808190823424753309565308557946849439937602914646826017759588\ -34308955397574010098112170264341488598373518621050984822173335661543\ -05503155484221582314725443772226962279179435429752927046418702379683\ -85046488722729558633796252405133615796333361764094300077585699651413\ -87522520295445886581348613967739679507144536630498779984858498466466\ -53949495585121328172175753765616536867610443894070462179968529055982\ -76558996753670646519698363689763792814553110716478538561711411517385\ -25392668340231371551312445292385216029091676115617060930552232679124\ -82696223439453451825724430911002048100764625928528148630937654751536\ -06304398468385126736497735857773379804983839043683211519322520305495\ -88047388177062785807692948814175519084337222913843071456581602029935\ -54683753460812611659451099340378672619627415242236591287093912255783\ -13140160231289453522976275483766396153309206695863277854402154450459\ -37546852895213179224578947936523539421852140479791200605839865108481\ -29541228564089187837510575385124529321309276742969232912010920107981\ -03957776659416089212281297890809164014975660550116306748020139153256\ -22848023511467181919573893647538869361729907908714966872881945389100\ -86101428:\ -54530990288249437719619266581633527950202167725686915722413802215908\ -13898808427693785305297340466057132347876044193194335670208491816947\ -45347065813804383143878587001488929429088856726119741100265880818083\ -08072469093027021085621909472228082331188302646328041787611120322548\ -39496025029182050271578730610401719162676648561607998168984589242763\ -61184308631479552158835170369552925804999967396481740557274002486324\ -19060734996166150772822594482483029608131347141723539465860333111879\ -99028176225288916692803103016047215834727819406429598388635703974625\ -46062134344556400079860063468483319482068487707023772004276424916600\ -70752394601181923057555584615258415106502514105268940487020754841912\ -85424335310397208518018385485167186844809177247714124187041081497708\ -96511319230068019588583992177882717832582994338933822583078086805742\ -83390233167682320436242724359199417834794808081825191377785708613777\ -86102596609226847851937748841875768625507263876321447582064560528748\ -35920609680394258473797857062463125872573573911021820161622994930998\ -20654635987081600595958107506315942531393518613570935900767436989518\ -52479980745679719049556332080920670567304319030704337342023640878866\ -09889825375285512294624431826722345023789066121979651546281497741903\ -392437648:\ -25210180868467768546757726362059843626852926905412382608676629170550\ -13500472614635251047265443464861022066815047034258382305517605789179\ -87828662358961696066164456254433404354134132444755460484661087112315\ -33092792254341786823634449794876609511305489030701548587221933119990\ -83152382137766693945997257582640307701836825909703642483047169261811\ -29415178374784201058252543144281486261236848516767550523665279551861\ -74465512384172617149107052187550658300617578084736260341723260747161\ -99876271562142167533309479325645255667176279131317552047451026692967\ -20839234037422676688042090117497405271103578405099807691583810119265\ -54336379063605406653618342419878681737223923065560012276952760198274\ -01935961653423534734281217002142980219703525915889622098752381243251\ -51337680928833690966007811584949672395686773570000393884061584225434\ -46095563213259068817841045213587660574716357554630835216272902060443\ -34556862089899310391156917797805143517814316196396914215338901147216\ -79277404380234128913536426196746405226500140030500544578565101666905\ -45355602687691883828602277709718492121846971571916556642975486330113\ -36222756064112088369190359637323581593192113210931211230367909305308\ -34626706120315368242528268242337577529275810260388371559227416421225\ -18288153930546296286935770867979820870699234878779491860155905073232\ -51502558862837164130223049756749662881084284616449485647823253076640\ -97817765026456231979422968578849627137552880186111486959114938973490\ -88961199014636207851962534069247724700485273408823799958467863418841\ -50462661461823344684758580652604422779162692518313890388399982545703\ -35206898267568862459046844795531325319249988156277069565297520226091\ -64600766297485223302985129710063725127737025349700933151412377658954\ -23709434501778907216692625235665266668930171909330255035266777372724\ -58877961350127654808072552639834541127026665379146043251830475968219\ -15018615283403488179263459581211497821758602281724174575392739616669\ -25703910463568680165861589391919447127830393426572990195899393637221\ -86477741974371802750413668808535147675421719142045765725335254381364\ -41785131009861024178374832421597792578801840696203626157231517656464\ -14052894526701810933176118179541201020906393719709492349877490392992\ -00696634018140352649412293680281970033556175696751860800582932013588\ -35349743517428143168973670929259662004881928288066741418602389631277\ -36600832956552929991925721216698487543280154312867126099744478225237\ -72707253967514116707979742986501040393426058104944823682176865543029\ -42410605893761344 - -# Tests for the asymetric Karatsuba. Historically this code has had -# more bugs in it. Getting good test cases can be hard for this stuff - -14092703816360934475287812379721584643540920654551533543420378905278\ -43263869087702953436962300677113653357118503684241080095903812797217\ -981771103880205148628392675409404139:\ -85196387648463903836201075338727419426772257423386800834159433024105\ -22722534550698330414221220484658429569965031071685565584585568273727\ -521831711430243837:\ -12006474573536728376030033121297441343323401321882664768043719554452\ -72355962084445501636044192472676171283378029237295859040510289867684\ -42082336586473179649397097120830906529744851914004493486594202273964\ -92849411579105282151504500626551480203959164076691081552725026900241\ -832342905034386191256909160400547992155689411647041343 - -57586096570152913699974892898380567793532123114264532903689671329431\ -52103259504474008372078212980297151898765610906745757706580551032703\ -6019308994315074097345724415:\ -14396524142538228424993723224595141948383030778566133225922417832357\ -88025814876118502093019553245074287974691402726686439426645137758175\ -9004827248578768524336431105:\ -82903962954674429277182094016068528967498403743392611678986796248035\ -46708705089408694697316410864619322862709322416615890526565883322100\ -81247286886157264936638535413026388243763541729092783487919143933560\ -11669949922966041936103836718052579102251260556254458882685015932709\ -9748064577321171189330220691056136254107213091963928575 - -# Got this one wrong in early versions of the asymetric Karatsuba code -69328033643988284668153554428298153814569184083886776453465872993395\ -29710746972404168269687728407520676676052832464833364865313305188652\ -27796258747613771385136143521786728820782913230366107236761071531140\ -69858079626875179117509513890923817643832927518504150773412897517798\ -24069151513573630274310883822191771430575394116104021217164852793487\ -74039487132887730707079890109620203394040795732717864706534187311456\ -47616397480632810489298476433897092835849191354914181079718876936239\ -96759799034047278741267946259806379049845381337965241128934112089387\ -26387200493807084368512264417392541693498708056601725438254379619500\ -04878549999476514473638562844231061393907117784824855718620742441873\ -33707730767137725282689693949863277338600908221830652962675544003225\ -784824252054526036890965:\ -69328033643988284668153554428298153814569184083886776453465872993395\ -29710746972404168269687728407520676676052832464833364865313305188652\ -27796258747613771385136143521786728820782913230366107236761071531140\ -69858079626875179117509513890923817643832927518504150773412897517798\ -24069151513573630274310883822191771430575394116104021217164852793487\ -74039487132887730707079890109620203394040795732717864706534187311456\ -47616397480632810489298476433897092835849191354914181079718876936239\ -96759799034047278741267946259806379049845381337965241128934112089387\ -26387200493807084368512264417392541693498708056601725438254379619500\ -04878549999476514473638562844231061393907117784824855718620742441873\ -33707730767137725282689693949863277338600908221830652962675544003225\ -784824252054526036890965:\ -48063762489419715168951981307754794589808870758952639965091476616647\ -54056167932393419567481296681069246248216008267853889839320423981745\ -60479443107279226057663425943342008520701374986979347783572983701184\ -85422697584729139817700527441440371002219958422883649678565900879400\ -20025210106297773515746894906726443036026187076658079744151459354129\ -76880294234848336533442648147663722096199825871118396947178334215521\ -76943880892409643115274415151713386236948639022804530054018234460138\ -65934020545172727964007195157289495135921213561302426988267171336165\ -92297396800884174510773976233843978906677436838567701962214997325767\ -17494685809458185719292759364630203908885946118898336175097083972837\ -89342035200573700398720235821406614593531258231227043379738167751614\ -68684582976839207443768269161778663395778873870774323940683360928515\ -48027194465603770338336645857674917792255648723659298382428421752797\ -57375177034382470966583814365325881784225896969066012430257742547184\ -72418596829523189950619686978201887223055028706607853375875849336866\ -58034693741263352377027728101357005623322435070019152178347117503006\ -68898867912930645058149633650634442077017541758124699937775536013889\ -00090985949751232201541388041823183135436540422469067343022614303960\ -55855903221443598575395492738166423176780792097697804248465562838489\ -55947563036566122615600202990367217608222400507033340848053927107788\ -50110168698504066173013701126736282373942179302874896060705586003228\ -79037941627812442489494360833298836822298442280730034168111230609093\ -310545565906004082962175112065394876123298631225 - -[Square] -0:0 - --1:1 - -1:1 - -549755813888:302231454903657293676544 - -18140671814051116644:329083973865108631122076757343293822736 - -18446744073709551615:340282366920938463426481119284349108225 - -85070591670813493966310340604280700927:\ -72370055672222822149686532165239924548184855554193955235705358728264\ -18659329 - -85070591670813493966310340603475394559:\ -72370055672222822149686532163869766764144178225565969340654319581407\ -26804481 - -85070591670813493970922026622708088831:\ -72370055672222822157532909328992644361925323993014681825303471075565\ -86946561 - -85070591670813493980145398659562864639:\ -72370055672222822173225663656498083990682319746609654242487350548038\ -36600321 - -340282366920938463463374607431768211455:\ -11579208923731619542357098500868790785258941993179868711253083479304\ -9593217025 - -3138550867693340381917894711603833208069318394046068373092:\ -98505015490986198030697600250359034513838056601414221774853647899383\ -99716620339203600092485547982803495343709640464 - -3291009114642412084309938365114701009965471749407831540748334692:\ -10830740992659433045228180406808920716548582445089016068317535718032\ -308295472658277178853031537853949474393196307576171250734864 - -# These set off the bug in word3_muladd_2 with sizeof(word) == 1 -251232322172118783022840239225457019863:\ -63117679703995287066909540140557654581113950055128878944628202319505\ -176538769 - -273689842353342519508740475928754711696:\ -74906129807397480797309133044676004424334564639782656684007505697520\ -079196416 - -271302823667110475639266093952890097614:\ -73605222129747240032647628582852465568122948805929122728180342334818\ -448492996 - -319387279021025860024422185475130973014:\ -10200823400045462544411223752203740218511249559589398235010527269723\ -0396244196 - -293643199753680203052743123832843662352:\ -86226328761579733262787961688682814116999624225084316052032576511892\ -182171904 - -# word3_muladd_2 bug with sizeof(word) == 2 -202324725318880963191371356135299852624:\ -40935294475360631472543732691759944656086403346062162368816126408076\ -119685376 - -309321842385349400717946354447033364075:\ -95680002176666937035836738263162897574421497416350873907840493696211\ -500605625 - -233489517300128090786970749707229607527:\ -54517354689046815002040771363970021549478312409815296261172173208794\ -455055729 - -[LeftShift] -2121258017766159160754962465958381577677890208124499494536189186\ -869637798499791383037162061664492554205374097:204:\ -5453968336700566799508983726051663849667997549076624612345231282\ -8439638899716201006845993775936915589934028192020733447985075402\ -867441526514914927633382250278301101719552 - -9127815530925814339720645654057304030995143310324020188491605652\ -0167383202307739291645752386748299386607033417580789665740910548\ -485496057884342754125:116:\ -7583092465041842489806678334004575989684288504372713429243106807\ -3821340263788338036051275796540123856480834349684104861172576642\ -18512263948855799232636502228939840695954790558990336000 - -2720447254558553014578566972012963115777446398846598038146885883\ -1866886314261120634838361392523025566783357944737665:164:\ -6361500986895495805616781332881685455158868774711923425935172754\ -6665493357037199343516238602124200135772591677608344475613159685\ -2488399997844504678061831690534256640 - -2346814922039931311567833556790864002896525919808081028569793383\ -4008825609596357974972673276604:112:\ -1218535974727059175894407931694205043690238717758619344357411498\ -0976423842428997921600747804778709388243970226872640908420343398\ -4 - -136766652934857914:106:\ -11095829099781028284216214312551702886842940522496 - --401051144733532769909045041716441134958154294462987253741112236\ -561026903932355958855274471955131:63:\ --369904391368386363775763871932535866765470702774151965641848084\ -2144652587998489299622223077809753503943936440270848 - -2620878467008554581948549874850974711547561914123735587938770041\ -8388598339275821514904454964587607270922729716663659446422771149\ -9620476383257:195:\ -1316121661879758521098806625253965626323323320500789427869263340\ -6367324456851018233189899650111735222276905756611447392283605658\ -6424209018483795579529997393099798973115070359293039187878410704\ -39858176 - -4986386024639314608574963909430738820138995826850354329027683283\ -7084148930520285795218001501791951858649714264370213994065039723\ -183:24:\ -8365767539475510328001762170072394222505708301016699425463251243\ -0365357678350782716810417828388796339416772455162018414465188948\ -4421398528 - --455552309543147716127587827277903635248610246950391821050011180\ -4998378889619941436810075030388024035287640271262080871447338739:\ -87:\ --704933054965487499017626788420861259932661059464379088499410099\ -2559199084336675766400427127749751321008643932765664940335284556\ -99667386383995835821064192 - -1037757592587696398725288196824188929011363632075879222442626801\ -16359163984447531185310046467135652319371987503:95:\ -4110981359797486520990313529905064933484217701344426282406713957\ -3073026585644903347542613235747258250235327631427113860134353360\ -95122325504 - -1078541466278039800083311:111:\ -2800053733577506391526406073538574747169164913752227708928 - --458929098580755:143:\ --5117230445820379540747782782105603341274706553475212247040 - --122928855329072870073433015110819526943336867562196620340919010\ -07272608951275193:11:\ --251758295713941237910390814946958391179953904767378678458202132\ -62894303132211595264 - -2253797880121520663606973674330182144804901367932449178312384948\ -1031054670305841291542789729087450336886747413803342773383544037\ -2581272420142035100:211:\ -7417269366041670925252065169199359207792625796677651698479867559\ -0580700643261572311187905593603949279149066613049589728766147448\ -5040626948461011388280995781694782614846527093302465736147768556\ -526048195169484800 - -6442142951860149863781434107200105215105005142361888584824558528\ -2484597164156116892847036815:107:\ -1045297456599241794709977613787275378715930460342137602357284620\ -3705135174457613106078796927549665575893358403516669173432320 - -5097783526093860243839154243285093453167843731134916160503060680\ -6809190520533632436146045688586:126:\ -4336714610774466073591769540544761879648163769201204653675081413\ -2084346529112353622016096796405522770364375296300671020674092934\ -10304 - --331899363008322441533569955164860025843805741291332922663910367\ -2943065616917605415617171113991360901486760154578289560762927508\ -7724:91:\ --821743020962630744101604179924332933222787625033777030204941339\ -2423604240087684356284281911697948345840642580768340681886419299\ -0501324963749459198616746852352 - --184253938912501307159324447512804721862709269931381112790263931\ -81321750494139191589459903767473167677816275893773523:152:\ --105190403673940947755727602264308003613546006738759564870362217\ -0667469418523232027185126832293519850235443686300723583174147136\ -58107043639016550258714106195345408 - -4027173611709683208685144938635076643642081573452904517803697826\ -5275420130:216:\ -4241108819962870257795832303288513204199186270237663098986852370\ -8839925819263809342179370062199525789246961806149451534207820475\ -33392199680 - -1654910280148247058930466878701929681980555724947453908536393353\ -732583647848670616170583254506:78:\ -5001659417042237892080348861898586734617398707583112481824590338\ -23652150179951382510963323144882735068533089594507264 - --353256518864739539912727355980967022578755727546889874982122719\ -759:107:\ --573191472861980058226433447553366186933814120008015485620963412\ -26306829015345625594865954588721152 - -3358622889967376849369646308014887582255587127977426994425421674\ -4686208321633331897065809513496651:69:\ -1982581020522590603474492135975397792733918369926415317084561070\ -3822831264254057644126980676514200036423975856884416512 - --8326918561933317515897484042242279813635:222:\ --561233200828572354853379214799650393202723352144809535912742619\ -21980589457786088539861748815344432096215040 - -1738239605092625935802720509793:210:\ -2860281191896129448328585042777498571666530315075635885634512550\ -142285038644212151822720172032 - -1541590531164046827151493969434074217996086405826244177284191842\ -623229626655598394491064824017724575585890968239654882203827:130:\ -2098304299069634414151232805637412871131277307615398366601971342\ -9665834217942888720462643703124214574302721592303513592056859315\ -13427518479162077139334989713768448 - -1822414219485473007729455052579570934353421556802754634400780753\ -581487672806631709:25:\ -6115007400355837902569347395883763750593834759507216779268585854\ -2958784576028372828684288 - -5336246625295048457347325312327723275413189882766845079019668950\ -23491709759645168524198853958247909:145:\ -2380045526144475863333782125314997581392105067362688736487270903\ -5095219526391819075074039117499741190364575496806391148745118026\ -089345253900288 - --276651306081170196285504936260680311592104354245874357656134941\ -6718897362629511494172851413903784541053958724076679151843367695\ -9748070409785949098743856:225:\ --149170089146918319214991272148007797149650392266859882932532072\ -0896314266755406819672840795334582356690986796948912969229786129\ -8759392443252182124719967927140260518022196506128222178285661500\ -32303899305525355025417633792 - --103357876921000174182112715460846616262383449332882137139998255\ -68582685162004410585410474998733490779307256347656936844453628:\ -128:\ --351708629986009787155639181729583046307639877673123732501848524\ -3559886115426724541117518475093181639785217728536729396711614403\ -275792414126622561825487435090362368 - -1094708276267187017583512230031436979221999105657255772315062187\ -0590945418853726695999585645264076550:76:\ -8271381875782668577777728720058787519656348054693237381352477271\ -29815039067706300744940289871871309203285264026829638860800 - --815525457724752321603940535029563571154068567797107498491974746\ -2624523816971433695155984655769263875263814891:185:\ --399932520776254684164524385851380762766645298639846935216904114\ -2896647055743804753583601279854374681737834012702515619494942793\ -50304095670986950350223830081561690112 - -4052679849880044255138459864411550773099421944874654179650065311\ -7857061613513287290910396020606030441122363087181232793161493035:1:\ -8105359699760088510276919728823101546198843889749308359300130623\ -5714123227026574581820792041212060882244726174362465586322986070\ - --248399491197694456686506789360892375748400795979825040399299010\ -53517808438265883:176:\ --237919445383638978127975473390525029152877274034190677596480116\ -8519869938343860007136898454280955008871656020990685920874468986\ -585088 - --341602794141123390057384653491582990307091266762526194256752907\ -742814:102:\ --173213194813054140534683117609830955377834183581805190021073324\ -3591496880056169249935512491320672256 - --958393530005648757477093349096350288904499954214052393312348399\ -2770943667934610603880158622319612235433869275282625539708353046\ -09:167:\ --179288795303756735253272048111864507295054051907270903858033299\ -1984105913251800521090082264035457471680922762784248326006303327\ -80357892372568802535086338017562314555143800752177152 - --244934270799654899396979330417224591920216069659327770883960842\ -308099872348715409398096:24:\ --410931516700830297264139197394514709915731976734558842691872198\ -6944930107966825746000286580736 - --2106457461641547906609473458:69:\ --1243433014305839647767580171740431469025056260096 - -135142685675091:202:\ -8686636920585527698499063657324055240285043487766458873488405392\ -44004900864 - --116790541221558472322206451254911347381714818839018118383610841\ -510309754344586351337420036400717803838650415501291198800754587:74:\ --220611094952357360270322465694065886169870282492555195903063877\ -7058528470895456709658637256734101042181231965942902938524566534\ -006236702950668894208 - --113662437497188191611046105180147670725123405622356749057822533\ -9374200354866981925638532649150827622554422704805900523233811186\ -7804339566343416115467056:164:\ --265788541608259131511323286352380846617232004964000794820926894\ -1982659118064626109656559724002147778215968030048122363389101341\ -4916257633270717425007538758533769604203658211543099937688495500\ -8515178496 - -3139835124875473212694109318074161136799592793072048253708819570\ -6031251397956934770541559259048189239569502903816890554914148616\ -8710074892985168204104697:95:\ -1243816837708147260845084661039007547826018395188591656306366764\ -7513402868999491043335036172230767347465042406686594960568733454\ -486595586019513727045751542829562936306306793756164096 - -5599994070119518146348:199:\ -4499421759449900671784284327121118030698801585196299978528243915\ -527017858726887424 - -10270683209834825258725306919273690176679518030925177258309490:43:\ -9034188491533697033850866046124648731048958323889347163636163337\ -5107153920 - -4578000383070746273307:184:\ -1122522427702119950972128384343669227408405080033193267723578847\ -06832894656512 - -4806080526717717017641435948049790217951184540837962383194474375\ -4177372178226:213:\ -6326741927653364567544399799665952033829979000600292660407440869\ -8862171634248299057579558184663298119372699195026451647955448240\ -7792959291392 - --213240753886670778938493896779297584390212374893239014196784169\ -31016786722016582:85:\ --824935210136591658197356601203169660873055716952680926144487605\ -063939313393392322678258809253441593933824 - --187286407031666462047035483383441327248520717346072223723620843\ -4454125887374738735368124928725176429609366:134:\ --407873676011864041904214443478531790285593140265704678916369737\ -8659007443902659865299628228125085923760625746613398039989747449\ -2137333668230201344 - -8621689714197434562630867265841464865623072938828506100870809463\ -96744539349725331277869713700313427547966:97:\ -1366161267647991190642664883853673418069284183801958399635868396\ -0937205383180691314472971265906730508050012658612328503341173152\ -3633152 - -16955933412697913917032678757506722466737685:229:\ -1462819393593898553961710324275156357656459346902684987437691843\ -5481519688706703310919911715271056730027164958720 - -2180018258288311836232601230248111131649953969135839015779353659\ -8104321725586576274057148974991731503239472085567581116:165:\ -1019552081247881910408108587819850135603932052219933414781931958\ -7658929796456697439849089055853009742845594506749609005029155283\ -87206223717397886377023326519137153318912 - -[RightShift] -3163645694280286863843274284995813000413750703767888062060371447\ -2548769377833432476732199026703457620511:71:\ -1339856068247304299517035929669762064048406302964464795193542030\ -8616778680708128951 - --14453551017278988424486997167045:183:0 - --14453551017278988424486997167045:184:0 - --14453551017278988424486997167045:250:0 - --243110742861195501591733619507439366721710893401851315001032874\ -934976816617401149916967847829528780962:77:\ --160877194558516235935268045675608004834374082748681492335699377\ -1554731869523279 - -1578511491667772739870432690812184603408439934845400990951391424\ -2042606791815444346835351458430330984370157647950174636188696067\ -901582998887813:172:\ -2636868630877883693962671763727310843333678410156464570287439347\ -867714845687034115945072876 - --369990587551414900909444219626623817296602594145580698921004093\ -03886523992221862362854753622740275252526720452:175:\ --772576394901327014846975657022405166419128733678436351046 - -664523869708591456637358847652496607157050130461836524747531314:\ -191:211729 - --424946102426960838249158490450106473832054726611725352096551869\ -301633439915:132:-78050272313569003846694186065678698 - --2477488754280410161548750939069:92:-500 - -3885576822798328723491155206700259517121985332303318810671479550\ -5721679465077987975131032494226814645578292798864088316633495241\ -72281732561:116:\ -4677092971402698635823599561404354384957452158155534044221842927\ -8654700322373721814974862542990905781201 - --7784136527805956:72:0 - -173:199:0 - -4615578569620677656625:149:0 - -4905579994733063495470152932606524195238444602458194107223829134\ -6548096468622028014016518915362921381743841987304665341504653820\ -77:36:\ -7138558422932784735851095949483750439304923351240277562790767311\ -0236786987839191008266816665655527877597839669476765763 - -6860659646513892651503913841872495917865372347379124495074404003\ -48669:86:\ -8867194763939375066201545129950170866662337 - -4932993580763155556722299514:18:18817877123882887102975 - --278747767898647506540238310041925406724691634519605101611983422\ -6204966588409142854005261436295569885823506142825506136904961441\ -137712103262466261:104:\ --137433260320539729826934608254525294966481185197904919592889909\ -661839883445042061361887992911622135941137977531125 - -1882169262671501641122532021045100553271183358274828402533612516\ -4:215:0 - --113308045504297792964762442633165425691924733661899127245385800\ -0508491250659909229734510933018929528943605300925959716095482095\ -0781551497986883190460:29:\ --211052681327420832523633619087125036291637893136402829075950756\ -7637583707757125105214325586369129883020381072398200102328289477\ -3001878518586 - -57567025533800:64:0 - --132072785244069918116388563501248470774742728409639846537789812\ -5119402223003876981196535555849118422274367340745545:47:\ --938433581467776307621794014588434654731534070106419040781914109\ -4019259860231421876594989980795833320 - -332:218:0 - --559822315679298304410139625796782279674102061246050482023351416\ -534297836795811816038579409314284017985789979551604:185:\ --11415659555585642743745444064957984965053472879394546525917 - --165370654266946240954843198912509990578949570887804349975976624\ -7848:193:-131725325 - --194216125550322203453264566553636693381698:190:0 - --574918037852237888178117788291362893480850545560575590351360319\ -3555180688115045992424767676514653030256481410814556185745502407\ -367635738697301:25:\ --171338927105736103110944565621424583637967868316345092758941745\ -5659860577617599365837802790556744644122267189864682014508695127\ -77556053 - -22512966965683176238772169284:210:0 - --571304627859240495908938310435848221105034147099897333911621990\ -2429210200375110530363596454364595974303366523715867605148466947\ -82:64:\ --309704859338005592964733519326108195603366962254800737268694205\ -05469907491401631445860907279418326766038568169 - --309596777436591740355404153813541201302898762127036944631572788\ -15893302883997570045883151320905855931366:104:\ --152642996313836176964502120620181580006920013080253805054740742\ -4297460034 - -29089712758204609787443669188235835:57:201850430524318292 - -3772893855139299527739062333307773429569483215869291954483303258\ -8826307095346005890226120725877767624562307811438348806708086825\ -272884:33:\ -4392226523649063342878434729422178852336345258948034553885580109\ -062873187398771509787314655943513804180816259635420144385202 - --107286131603440054982169113843212878238243177589333571934531:\ -220:0 - --171860798431436300064006491940938069877937918743982288348494291\ -9605122825021394820452085254301230580701:35:\ --500180753970740770641733228522754710510890927235544334248681238\ -27185564005671616773239955489 - --736899297617589968040433744284158522983339306401749767611116884\ -1084063920382957413309258573768392475688901297388389668250828837:10:\ --719628220329677703164486078402498557600917291407958757432731332\ -1371156172248981848934822825945695777039942673230849285401200 - -6494520002849829489554410861273180035603713191696971145227421658\ -53859125361930352324226:199:808309944002185489853551692 - --8811428348398:35:-256 - --472961757341800595001320983673882525933533190954393100297169797\ -9931906653571844489680727773893833490556432129528242730860714016\ -19:32:\ --110119990385556732071871166972881771142951490114068868639219970\ -906430544647663936244340794484453124239957708155928243204 - --950911712685005613285113124954832473131420819362306322439787774\ -9569705:103:-937671343067445278042307956226145570513 - --879814295274183624334539929331740552569451467718612745386330333\ -5306363907959342879342226672:194:\ --350406259275000216456910916623341 - -5510885178270303556262037168746873477241029300667748255749519664\ -7790961278402228092443936180348351958592120159109985931085584854\ -072:127:\ -3239007197543508321556333059695431531874740086907067131644479312\ -48944861718637164159925014157 - --532599980357955121299969897485530088860096014928320106613667412\ -7658734:197:-26515022518 - --751201308625232459519354741343046361775777470541080710058601279\ -4485802280356383896946090:190:-4786930913611882742357623031549 - -3399159309738603281217586458627167057868700201720622195013008494\ -5155275705802319966198750893042523074386045050458079803807735428\ -3187:206:\ -3305159424435509522890985455639702285024494664087298807252559331\ -827343 - --163860953109333686549278104073264560158695392823410089526219985\ -3597217435977552163706193289327636667043413089396300868558342495\ -10158:28:\ --610429618914923394282453149830045402641204717842527067386433427\ -630818425110560716579181436198814461768944967313222910671808 - -1169677491246850751212:155:0 - -1636926214665128743997698266803409352776056144809201:28:\ -6098025346789988666764267782879655632287473 - -32036789:197:0 - --179819529231495425818261190658137469439875298005446780128564386\ -431:217:0 - --13881:96:0 - --201081314010698664682270171218698566959371060867314287561113777\ -01129681335253:40:\ --182882389718268918552230544463508128464464844789576352524012488\ -18 - -[Division] -31082702275611665134711390509176302506278509424834232340028998555822\ -468563283335970816:\ -12141680576410806693246636917646993166515042744075872007823827560868\ -1517825325531136:256 - -31082702275611665134711390509176302506278509424834232340028998555822\ -468563283335970816:\ -12947964052188086825220046400459488806478932301299660383343378609832\ -0524868413554688:240 - -44966555772413807289969128318278041600000000000000000000000000000000\ -00000000000000000000000000000000000000000000000000000000000:\ -10000000000000000000000000000000000000000000000000000000000000000:\ -449665557724138072899691283182780416000000000000000000000000000 - -21098512396730698729871269182769821769128761892761987:3:\ -7032837465576899576623756394256607256376253964253995 - -105492561983653493649356345913849108845643809463809935:13:\ -8114812460281037973027411224142239141972600727985379 - -60281463990659139228203626236485205054653605407891394:5:\ -12056292798131827845640725247297041010930721081578278 - -105210958105812350283560987:65536:\ -1605391816800115208184 - -29614251982539440611171209425825912338459:524288:\ -56484703030661469671575945712711167 - -56978246562469415670177504927986945371616100345225344293332816228560\ -0752167:2147483648:\ -265325636428172773077047918587862259576172103850288988525666372052 - -37676726270241192487393385601963645387543268661126:\ -3162948793160806:11911898906396771271361947212182077 - -5381521826168870805682913114359466560841856996681731280221235281\ -1509347982906963231033117814383486428722076978472087592957820313\ -6046584241121779503933:\ -9668544070174123246320200737076440955801117408066349193856053605\ -114866903799592820480948520645947171624952907359157045540:\ -55660105462724064753070630466 - -1723834528325652138144287068293892732593026664886852512770150633\ -2776744620689:880523393623328:\ -19577384778297865485961051332688212998820791370774585297291841 - -1515496213019297763233177841945187397678421298227998213327928627\ -88716894139006899352549523462891658:\ -2837504714791238631293154232954335398939684196417059468771514311\ -350:53409469422883270966457345156344 - -9404536008735908917791097512770771428224998938693723982728653696\ -7624988457783138098124870580583091:142622867370:\ -6593988875807797411127801190252266506668676674421094260691453448\ -48811732719710346250661 - -1392866713189645633121390285073523887805815484659191269343858827\ -8526805205835017180928664701580352738609190657216273081064279937\ -78000446364:\ -3994371100075737516464195988347917583672726362309747721542773781\ -23623981222779902598092910701666748270156408025264:\ -3487073880449504057292395 - -2676049916504901888523537181437273561212503:\ -9341913943837642277221766393692439892564:286 - -2596351449981306834637204601381844425730435831169992187762230868\ -9984974618995828593891933726738665906555705360752479986:\ -1206034745333560481629722627489368003481730232554297338790:\ -21527998758138745589857127563572880142324265819094147184332850 - -5972458816709701659388787816816316579897252032508674599704692592\ -7058649324526265892715874715058327035883363955854176049442032564\ -309441091155243908284:363119954882801248387416067701593:\ -1644761940620239975738766021378227306491031556802927687823754679\ -29691855045229469191916674982018556672788351294907277 - -1179031947959075688529396972036519234258725785851394295456390535\ -71085372280587925290861953121759382460651235055866819:\ -6944577951175401788316018705171160466581578649464599557174064469\ -156454663085245879135170220436247473693597253951:\ -16977 - -2026650664981190253207120825245989396597395032888279675327874031\ -6428571783495257002384926183573616802093352971457675644937672443\ -66086144671180173:\ -11631153560785819891286797700491247192758386954476186081000494851:\ -1742433073718499161789694097861808628892528194276009183278062135\ -44214369556426533 - -2839636837334372650605745847855168203149142969651746071725807516\ -5633540988132586349575016474518431300299708784295829212402097919\ -78638935225269061241787155:\ -1906569338917937819117576221675263213381604280817243982366441014\ -3748504584308116848567559666016129206267348790454121809997280576\ -258634989:\ -148939604732445334 - -6371345663036222144347827991463755679970672243967017350001151581\ -3149043621560543503748545334895102360498672050891243434943238417\ -147807583195634840:\ -2803012481163625225461909183974367795369310930636762769680881703\ -4432088350353366279882990440057382400481292913134:\ -2273035067040180000190499573423209 - -3448761565369806483093631443732798385337886837688124530151199904\ -35214907404151562329499651293972622329230621111836:\ -1154398728297611607347339889796530761810873173035278653857672812\ -71070669711745252818396963830424218:\ -2987495984559585 - -3939766758764969916635508714517181254109527059899723535687606136\ -704576526260284945948460575945132796870670558656976658696699246:\ -2039193601576864286342975169071164596968234:\ -1932021930491755924504494733348282114697992509296048596879364255\ -013992177897790479689 - -2599570067192469214877296440421668709321992436666111483543544040\ -9558626508316404576861534763496892008536679796682457407142:\ -9865947223638288117488793858111648559036360190603549966937638974\ -384878768890886202494341034:\ -2634891519553273835810191600375 - -9953582546881861626054758979348156073957328868768555275026281270\ -3558132981561279486898511993570779719758639416109225470113031476\ -11758278075817:\ -72753887765933437843645860013004267290394240181603205482549:\ -1368116928528260130222427481511416637491457702447115334585560552\ -89688431510521935105 - -2777707354230450548824097922478859820718131575494711827631509815\ -849966141849784996342423141941423856370057172664302140424005921:\ -9887732931045287681192967993534615207992429003750153183843126191\ -7060602813748941:\ -28092459349393082079339190162534632411372212185 - -135175390055754599158926343035891673287590:4587240067074273761847622538022:\ -29467694753 - -1474508901852067097539817612956066371267340106475397703336120311\ -3477874932185558462473899178369214022436285310129280494436591650245178:\ -4880369721764333040209711516636996332699096293749849371410907103\ -371872025659064629729192743174282304112524555885248623478:\ -3021305732793 - -2458344447588213641014490759478425477739674803315383837923650388\ -1993781110774393121943801110702528757067967698929051580978401073\ -21258908424060287326045:\ -4220549808710022650484813532790907621975000231990739804525754365\ -8980362:\ -5824701896693376525879103155093475976637389780048291339267026554\ -0931549290645770 - -2235359829795993754168620762055024950392775900247276637443301544\ -6834872612125728471199341647165418100481804191461888838714869412\ -86190239242546459829:\ -1079446102417965701004684159063911518960227791488787275338443605\ -347380965151141469660172384738541132220010177148:\ -2070839687862853380670878474716925600 - -2261859020237326202277047516915478440734386573562935959890434522\ -4642995494057840711903761496596915458217743732578579075270459080\ -0633340:14203382288913876345794743990430:\ -1592479153365299674692434597912939527498958604158881610792107099\ -0007263922267553892387895651241383531760 - -1627272730547121895847771240538443456605751355188756262440532414\ -6146087377529161595400371637008556124469065:\ -4556444082143966348635739253264:\ -3571365523663868043578518888635769405026391569324510140958668270\ -949379670607 - -7053322761929289086579214480771179517943045501137109771651701088\ -637150889882789201445500740549670389506:\ -5820761818383944703677222410067006495183070681923349620668953689\ -735114782073218950052335558230765131355225215024903803474:0 - -72782874795717830428761392759834069051935680000647471818367555:\ -676006789231214575171585611498648177407768:\ -107665893235317651024 - -2678488124982838045802785770118519145558475116428679203089749164\ -976612334859762291787998110260325948674165281:\ -7944336793457702698467826157627761976858612495202494286895968701\ -65:3371569200324712887203021916554964731360476 - -[Modulo] -9:7:2 - -7:9:7 - -36049713:3409630:1953413 - --5:7:2 - --14:7:0 - -0:512568576:0 --0:512568576:0 - --512568576:512568576:0 - --10062526826820804:29:0 - --5:199461981:199461976 - --8:7:6 --7:7:0 --6:7:1 --5:7:2 --4:7:3 --3:7:4 --2:7:5 --1:7:6 -0:7:0 - -8254156815303331281824478486972822803470138521315156647307553049\ -3310587284245750487869183215107304761500042605982935676360476706\ -01141527698603403:\ -3106222408827874796097424168822651228359402578430811:\ -595826521675090943156444889338281014934863303289705 - -136863920521571139850391995526246731:\ -271472461994419020251392394864015015809448271748774:\ -136863920521571139850391995526246731 - -1828810863480002099820314884714568551379787631093473955109129851\ -510111922379100046301719263372:567966528088927995495333:\ -385016512426968327768361 - -861:7863900424362475800352483828371:861 - -31298056599359036104:\ -6834101648969675037772759079916190769657938079502342632053787936\ -8365474573457851465113672049521142215618176993202488827600681:\ -31298056599359036104 - -301132649529789235293089719211083808148317022029687377:\ -8985923799959631221206612:\ -174445061721403490019281 - -2281346996471575399039236209159382841371310520671504115347726755\ -6405318252398792419321309385257790020895332595371743866761791127\ -088953387770:\ -9148250100428904287337426958133211831148659494946573378694903126\ -9368755379167072338:\ -5712279541400722125363135520469561121058328307700157395773665287\ -3288007253222581108 - -18204134548129881201198951067056774604374867858971160:\ -2073934172352760752130567032660041512076751995427049488228564629\ -5445506418304709424209443465714405592187482184410284216568297836\ -202471453:\ -18204134548129881201198951067056774604374867858971160 - -1965719248782007406536742098914361273948365800827075363669455004\ -986089949754002988457038216772776062129273:55:8 - -242013738395129963274394550113335771936345:\ -5855690525992972254238170169720083764160159959672754491605994128\ -073126517:242013738395129963274394550113335771936345 - -25207834098049778316063817949139583672551899941064748428641:\ -2394034335403109766635463364608199166358381072109847929528549615\ -46998:25207834098049778316063817949139583672551899941064748428641 - -2806019740162818318268355414902530432876592478224294545991479160\ -4283116668034698476687974823971:\ -1582972323756438784786521922113831032463998151772165:\ -1502639578247286068956607674581436779911413521925746 - -7646186835577905185055298334837136208896759894169440852778842148\ -501161592245256816858212924947738806827200173857627:\ -52896776132731697503809705:\ -24742696196904988498029477 - -173957948128989810779090250062796172580059019371598891820856745013:\ -1799947313993959943024637237734385080822192208938376976998702929\ -3875551371653028911096579734599831769935491738680281300932262194\ -4984764:\ -173957948128989810779090250062796172580059019371598891820856745013 - -1013844499640750066199242350792839164:\ -19498430190523094593606790431509419:\ -19424559924072241925296038785858795 - -8622490124309718848844541942762:\ -2809153572052317438723547427922294488297174937286864313874241961\ -8679887592231751654390695362494978870866660168195696176431350266\ -533:\ -8622490124309718848844541942762 - -1072609375974667769429773421465107051839877399085576311546582931\ -2311070154546061306145007166868107111741792231898435921633768385:\ -1463259917133913245195500729566820615925140728085869641490936807\ -875627045359340:\ -1136336627131206018599354228978585378999102832169870507738700505\ -866665661308205 - -434178716356826614868022910336:\ -6634862369769044245968610325063754582:\ -434178716356826614868022910336 - -1415406337306642091120413528271804224015406023026499:\ -7034899662310880590118948531539534220057245091097123989790225455\ -718320598907482500:\ -1415406337306642091120413528271804224015406023026499 - -2119242142523650184634691519911880425707508853468661410230000555\ -581608937:\ -2008383355777044545530942339055540267683709901883165870378113231\ -22625039264578687:\ -2119242142523650184634691519911880425707508853468661410230000555\ -581608937 - -69585923602069681658329224976930117468163915197373271065425178:\ -2020927964630024370658097798162044021281840678272412358937742685\ -874564410640015186840535854739937:\ -69585923602069681658329224976930117468163915197373271065425178 - -96975588332536394385315130323058:\ -1315802351305852717882890944093568207768868622073415386004618717\ -2175427025633631880306918912341930581398571945990395254404556930\ -1546423248306886079218006:\ -96975588332536394385315130323058 - -1005028458858291820643604063469013555486792420347821851888080697\ -7432670023176937393067923:\ -9828498588177084544380049:\ -2075442833247971646995411 - -1189727226195844529530585:\ -6538657640728177165013773329092206385482700449306247249506942167\ -8887069241318642226489470387127398972818622366:\ -1189727226195844529530585 - -9913890361391387217552509180:38186248654:26592864996 - -7734726198125785627433577053431512633637067455428717621996818752\ -2575060294193475687274421372950273116057529131026941243649403546\ -7830323368528007:\ -5416039783030069273660577195279406145075794925910316773014188695\ -424126525007469657167631593847463121496915435500645:\ -4964806369541933457271704487044498217022879054817785578812091084\ -454769612571500637156272668116039380758996484864172 - -71080186231578425712419354407360937437540:\ -1176980859009014803857106593068944458701173958687578469120934483\ -659139465526500936333672752:\ -71080186231578425712419354407360937437540 - -6766067674766915237012186799976734148500111990982325235714483836\ -083584935230592805199170249391665243373021274113:\ -324423691845570163374834:\ -252059054229526041391927 - -2823188323141882531578618333354253113311374951152404070296742852\ -061375867436124935489341:\ -1728156565766891281495579170663414558716728498925558384066168759\ -527625796619507427264134231896939288551956874380:\ -2823188323141882531578618333354253113311374951152404070296742852\ -061375867436124935489341 - -262779290090979866282191640705312933450751046001:\ -1089280788909080319090197382760567576418992525818853374350259176\ -94325561016010292207663524094967470016917014:\ -262779290090979866282191640705312933450751046001 - -8360271732029582503734310894572886727078012043023629221111060787\ -7138104216267918615216895281636771:555311145:120907711 - -2366610337862898747408792992366342895990689944827378360469117410:\ -76427322404335731456359122655716444433:\ -30544640615708299605352469363039636872 - -97771381685586783382636393:2:1 - -435337671693078154773623349696989:834970971193485102214182395:\ -506732218892181192932591889 - -2322513198662380013738103320830701289301787295559139301156091472\ -554729188662496855277024270062871128249398241623259939409120778:\ -2:0 - -4680113793844806249835648380663376025372596959777178380:\ -2904997032241569138092132512949608009650334804336242983698449850\ -529852963482246181:\ -4680113793844806249835648380663376025372596959777178380 - -2117036483187135:\ -2956811587252136030883436487547510285350147695210005035315279431\ -098717006229487861087796324851514192381549211074032:\ -2117036483187135 - -5405482742629299751643548818366182062777872542836164736969326959\ -5853544020603118041671461286137567987302593373027659716:\ -4573526887169513117846642791864935937856091980821696964895032993\ -8:16470976317121249525195764490105435306011497015289420117425749982 - -4359239142132654586747373757743417755349625230737312986309991827\ -8424863374421135266551983:64803544028311:37353941578659 - -6890135792819098747339200650197811212669835729907537732727533511\ -643927448939258863466836536126445044614:1696179960288:\ -1324995865638 - -4586314642595210536059912268094819407838151440257177384187072112:\ -2948676315159331003320418147316303300898329201084534802048646109\ -2015178004559585679:\ -4586314642595210536059912268094819407838151440257177384187072112\ - -1295408061166295007189929428327291997766033572889635238933149973:\ -1972670797419796219560042479665734511348274052918937432115112357\ -6010380851770692946791:\ -1295408061166295007189929428327291997766033572889635238933149973\ - -3293867584681053035957322938418784576730188582989206165304195433\ -9408357109851822801814954109216343414383237957096721562712712888\ -0653015247183660828064748:\ -8765772621072630220689785618513364012217258182568420497034708789\ -586373847828131714253297705781538931737255620107899492006608937806:\ -8601837373552535609108321170415754873427613358207755850219844413\ -541399748799344512722771514163410191291986915042108883348141430988 - -1377746154164779665651413126473853834067870962817490604919589355\ -6407321117598745222627688834382600647541603271142562521784054:6:2 - -1667979945553031384209256450228364963479415272610809793730506411\ -9303788198076909155676052962187532066482528524026964557345352216\ -5283446668047080:\ -1259826323514238805985170200301657600905328450695745758777562588\ -7186049156983679189477135784008594900590887239:\ -8186664560221138319073860758641161066866118482696737858152118048\ -749012625273296415253954330502016523386663032 - -1604558310259870720456999045309843418780215517:\ -2314764593137129686707089727262818413583267016192300531282204770\ -7680963809189153750977995631646696992678572235424774049002424266\ -88494047914464727456:\ -1604558310259870720456999045309843418780215517 - -1409736422781005655489884086727910650059319122250699179352885575\ -1322893090584507459430329601684018675016713:\ -3037097985924054837918:2373301421797167262781 - -6701198625704:\ -3208271584698650102424018685293737567361186784549354155908725982\ -8050085877527140878207342707:6701198625704 - -6570726263552141736792215188836614380398234183174708281848591553\ -9115168019938378584836876558466414158281554497244823448201181:\ -1502182222571155013035645850314652637622098563760970718145694442\ -1198813038883709721878584487611894267955370991921368152768464674\ -7953186479:\ -6570726263552141736792215188836614380398234183174708281848591553\ -9115168019938378584836876558466414158281554497244823448201181 - -334479763778167:\ -2620180822092752558176129834916304534899606970427451061631144668\ -8169619730877675269585659135601795114355310342255614595194757773\ -7880241235214292696563:334479763778167 - -# Some that exposed old bugs --19182011317708747655415793663840398231387658659684921854518950675010744\ -798088074160106794721561977563494710663654383617982647307741145787165689\ -415568325855995687160688325738126476982782410876428471011884289880631644\ -788665773228578260075978399410972382915954067959276715042755056729572829\ -093851913104244223672:\ -110589902576771067285674161059371867150853087104563757926013065022800986\ -359888876672387170062905874195180770816843413908369113777424570833424320\ -42777093021:\ -109391537162363400163656468557497811793910234020743027803411478222848317\ -478652922638466903221971706458039541796317994671218746507915453121571156\ -99186806428 - --12729002947374921813333325067985579104471306056810166870370214872461518\ -835258302087462325432188644174454003894356884235513517741560628902891180\ -85736535643:\ -857393771208094202104259627990318636601332086981:\ -347124740076798815206019311966363093945724145995 - --33561455954313714494272438259200225781962996013006223887793125858291980\ -416548560804296564715491363651855619074936805970007723556609659667595500\ -71261003601:\ -857393771208094202104259627990318636601332086981:\ -69829137374876952908916033728673445025 - -[ModExp] -# Sanity tests - -# 1:0:1:0 ??? - -1:0:2:1 - -2:103:150:8 - -3923:380:4033:1 - -6208938:141338444:179403587:74845992 - -# Random small test cases -35541290007:27861071413:54405498455:18392163817 - -33810311815:21623687837:67955609697:6168450286 - -390846234986723490867:258069:77811797476286981199753:388669864014945308514 - -# g=2 is a special case in pow_mod.cpp; make sure it's well tested -2:1024:159387639486734986734896734289672398467:\ -101251470522689220420018278313264853126 - -2:4096:4634968374896:302457470528 - -2:8190:46349683748963469823749683276389476398467349287:\ -22477714489988909289079275821119423277588139290 - -2:65537:4634968374896346982374968327638947639846734928734603867934764974\ -978569847636666666666663948673967394673496739673496739486739467:\ -39545100683930137608837226660935619825254176150139370772680647311426\ -83367133155871655171332348089412143539565993577352969480643 - -# A very big test case. bitsizes: (2624^2395)%2565 -79929780860261081309977632552711610540802328270286009268787208946266\ -52959801126270181797858326539991808408501955736107211154089990880864\ -13303849208224219100591662616178697815457369194539353353497852835501\ -41050889822915371610531527622477756791100346237932148802218221147910\ -83764160121545158487346802968250797762918640822953726116267698324397\ -97218709812746716531207101626249641544666652454598936868588048379676\ -16272912941048200311549530333983535276332190445765429717475889329196\ -82723327383286444096495073061099816572815545646462399372759381873394\ -86919484956198277784202729520512749754342112052047850740549446316888\ -78036856294503455545058266059097463500482961705306677988487417742491\ -15342399979893391684184998084322821589461452070845054017545885544579\ -571298686351226398527864005606439403913215:\ -57905475544917604320471424647112496473975795682168523689996102576776\ -26237088778306631051069455546703439634818835586436374397201459270953\ -73320224593906109498830519623033054321336538157343986271182875008898\ -46400895285646814945099135578078712638653971354390893897513549226862\ -42288943235147182911794944000641930092937330351756206882625430975695\ -44517498509112574132890275024912111320852904074917394291149467803521\ -35858911321807178002982306495559510988786798025982798386952917933172\ -94803214105228859170942097230151211488601051217081893388443911838163\ -36005486029723368697022501011466335322002083542926898677979222112122\ -26602746563675308094794277325137581108077975533806822750634437146271\ -95586058676179645844985231821190979452929:\ -10399205046598242703229657351883132701652276964362108506952937688714\ -32748288996020332036899375414937330955428206666889017559888570519250\ -50646752050470991826964779958550793771265289251619085920928563751890\ -69887180372385733236214632572059802975058104127044922162389962101924\ -84687865663461891419811205882677932740064370564080283318891658075996\ -58544432626283448453420230409266259464245167575870377225089095472270\ -35936225873319683727097162939426767650247431692626091054378261933883\ -04444592844359283277150336016415487591544524543727803303478523219741\ -67585351918391390323730198435093034895278122139553159165456287861721\ -05733915744785361299323192153909893286267220726431407206795271107384\ -11115626646378829487932946663804144605711055044827184543371896600950\ -5066861013496859002404865:\ -76383126271403199465553629505580460064061138700480822311446783865005\ -94033351331759734478813350785616549057262115034183484701333480536277\ -68750392900860337148760236002293999903452043982157916536463831543329\ -81510716218290076553514718078562286562453573978032941974718159086704\ -26254141182888039292181731039710070744775875012183282365743418038436\ -68118132938651461047089720835645326444415743163725663534054526664632\ -63369477979502118345322416804826584935088694928774075019074758940531\ -93696779256795084313220287359244619510038817488191412143951928835003\ -09516216069636385063459729195557820282023577637677540172121768705892\ -64355863735811421469235193223472628311338081133201771681274202506343\ -43861119601917402017293095701055272115112783553081034528116130152891\ -276971073856411987253305 - -958568327191:\ -10820434407851188405104973511902906513518224342681350271810370438073617412:\ -385412694768521967592874726457715560537359750887572236310781387057217187291:\ -124514485573662879135724475226939854111051534076732305767767212261825204773 - -993:\ -158082274092371197688912481356696199899964270448955828125938845871237934609:\ -195335598174576479907825469879133749630277214529613044392254617116806465841:\ -76319125426811367239700120840606231265432388418754186363393007030575232763 - -5837:5387594231:\ -52910803894426776035608204231136092295842162542576147924991587830017346711785:\ -41256038256951041015975957103736087906734912779021641091323861709915393683478 - -11820:\ -349248154095284306437849303504509069624812572044321414531019412890823663:\ -11695070112125499434524238623571455233638695379976237857792518028967433696813:\ -4877591936163920485322716677654737966141266950607206024720481980778956876733 - -1279509:\ -228828116455132585158359573618073983726467809680019810077325482377363026:\ -596955405275729008892203759914236488647769846458724773926971979942130809:\ -548455744959985761919173432531376978888129348803576565818991241228678799 - -1169325226204036541181168587818457846915410492286163370049583817559172758:583:\ -1347789004686354026667591408699204029024258192368477695588810277715014901:\ -986753196897611638420753041983500285520492197918271348656818055904410861 - -39684855714221597676995827906679339738237777820353232844682939092337386955:\ -79808721821529030962053171978817611068275131312667370272216709366985607610:\ -168218000729293476661981768796405354274622797227127241788417326533874081227:\ -10243904434954110191313565832244070050272803217812912164431747671168317597 - -473396006114590115230521230276516897096:\ -387145532418575837430469368595868663742:\ -554862946848974049157489689418354631387:\ -448855900130388136390865414336576134923 - -383239913102526615892890047333017777270:\ -5212692713946112175761972297467118924556477:\ -9600330398725582192064124044651400063154809:\ -553434761331054066751131351244038395387413 - -17023533902565202029648472226171284665775885307:\ -172062909283726569049023770937247425801:\ -2803129820108668499802071463467295777012106623420016438138627500\ -520764503324471534463345465793841061510744977815:\ -1087221030676278725112163308497001956646825599606083907052530601\ -511129847691028000053571012933461738616679305207 - -6861608600119069162748766903320668621565184418412102985517914652\ -495806067714718757017641467375130420763543:\ -6090170638405015131997058617056249184350028938641981546887188901\ -427704577888167364319592127129279546370159:\ -9244137284483765901488318500741614548852246750950515340492572279\ -249663219793564958021372197661101436416951:\ -4357639256086891490742558173162011739263189633058589469209912059\ -837628983627026566654010174880786564650028 - -1708391349301269900029298214389921761264445766152620652843393219\ -358035361114524948237829535432550149898389816132:\ -2879295558693495162441272767383253789140301947026867788739382060\ -6202058461437115060253107180150356177029255392:\ -4562451461011443048616592993727831094905333529601929282014937177\ -804484518010765376407040702135536959480150175881:\ -4780971485381051463987885157471185516431563444901967941411376359\ -86642717690683975282976174121121834972342669810 - -10517206412589906914919094336031596865011:\ -76918459253520716071622848977323758816926:\ -1505994032870020776188597437379504956214103601873594169817828353\ -64671206273170823011738702809865490437980268482169:\ -6782959072847327960243512935142614796318322133888530532951869324\ -5770409979689571346380672589348570036123781607470 - -11150372599265311570767859136324180752990207:\ -242724485078592151169084549880604092836:\ -5335081937310201228237642071226891497098426337909703107583644285\ -670654712470768061820964879543360755501155583507:\ -5289945663803755598608137950548888139591380435852466790487033227\ -703935262787324650046364967638572584406632742426 - -931466513478626427306310727788682496419061:\ -217994111091681034507066335081667319859874:\ -961964829688733829104056632507823404588589:\ -833173750092106303567501575871102318441517 - -33561455954313714494272438259200225781962996013006223887793125858291\ -98041654856080429656471549136365185561907493680597000772355660965966\ -759550071261003601:2:857393771208094202104259627990318636601332086981:\ -466300477512220407817532870461493708182430162598 - -# Format number:is_prime, where is_prime is 0 or 1 -[PrimeTest] -0:0 -1:0 -2:1 -3:1 -4:0 -65537:1 - -# This one passes Miller-Rabin with a base of 2, but not with most others -4294967297:0 - -# Random ones -10416536965533130067:1 - -62073521899194104903553565787:1 - -170585900781008069215236465296032411499:1 - -1443993313735051633697456797423139085424112074517:1 - -10771372029656662585340604592252023412983364818055143344382694346546\ -2298290643:1 - -11771372029656662585340604592252023412983364818055143344382694346546\ -2298290643:0 - -42588518477191145729:0 - -# The following are of the form p1*p2*p3*...*pn + 1 where px is the x'th prime -# This is to make sure the number gets past any checks for small prime factors, -# and tests the Miller-Rabin routines. It would be nice to look up or search -# for some Carmichael numbers to help this testing some. -32589158477190044731:0 - -4014476939333036189094441199026045136645885247731:0 - -1907826688958019501360189182099275775721983966835701205590751690\ -4309700014933909014729740191:0 - -4445236185272185438169240794291312557432222642727183809026451438\ -704160103479600800432029464271:0 - -6107692946593319609927894338899785515035614388823837148866549657\ -4810764573680243467182799164806563626522181311132959748531230211:0 - -6989612506894284794136067796445539076219364950255126280242854713\ -9923075880112964253713561700013194221462347575861905534037645370\ -21369947456703810795390696338067840821591:0 - -2577426147548683169379880845613862450845254401055092509543183257\ -2701791887072337189992932234179329410389241899414841054215169960\ -1546741832617953638436279944072980418788682453341495300190580109\ -0622787969540076319408964006231:0 diff --git a/src/botan/checks/nist_tests/failure.txt b/src/botan/checks/nist_tests/failure.txt deleted file mode 100644 index 0166e0ee6..000000000 --- a/src/botan/checks/nist_tests/failure.txt +++ /dev/null @@ -1,12 +0,0 @@ -Known Failures/Problems - -Policy extensions are not implemented, so we skip tests #34-#53. - -Tests #75 and #76 are skipped as they make use of relatively obscure CRL -extensions which are not supported. - -In addition, please note that some of the tests have their results altered from -what the test result should be according to NIST's documentation. The changes -are clearly marked (see x509test.cpp; search for "CHANGE OF TEST RESULT") and -there are comments explaining why the results where changed. Currently, tests -#19, #65, and #67 have had their results changed from the official results. diff --git a/src/botan/checks/nist_tests/readme.txt b/src/botan/checks/nist_tests/readme.txt deleted file mode 100644 index b992a5b30..000000000 --- a/src/botan/checks/nist_tests/readme.txt +++ /dev/null @@ -1,26 +0,0 @@ - -This package contains a program to exercise Botan's path validation -algorithm, as contained in the X509_Store object. The data used is -NIST's X.509v3 certificate path validation testing data, as found on -NIST's web site (version 1.0.7 of the testing data is currently -used). The PKCS #7 and PKCS #12 data files have been removed, as they -are not used in this test. - -Currently, some tests fail or are not be run for various reasons (in -particular, we don't have support policy extensions yet, so that -excludes running a good number of the tests). Even if all of the tests -DO pass, that does not imply that Botan's path validation and -certificate processing code is bug free, as there are many (*very -many*) possible options in X.509 which this testing data does not make -use of at all. However, it is helpful for implementation testing and -assurance (I have found a good number of bugs using these tests). - -Currently, we do not make use of the S/MIME or PKCS #12 testing data -contained in these tests, because Botan does not support either of -these standards. - -To use this, compile x509test.cpp, and run the resulting -executable. The results are written to standard output. Your system -must have a POSIX.1 dirent.h, and the code assumes Unix-style paths. - -Email me with any questions or comments about these tests. diff --git a/src/botan/checks/nist_tests/tests/test01/end.crt b/src/botan/checks/nist_tests/tests/test01/end.crt deleted file mode 100644 index d7e64d6de..000000000 Binary files a/src/botan/checks/nist_tests/tests/test01/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test01/root.crl b/src/botan/checks/nist_tests/tests/test01/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test01/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test01/root.crt b/src/botan/checks/nist_tests/tests/test01/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test01/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test02/end.crt b/src/botan/checks/nist_tests/tests/test02/end.crt deleted file mode 100644 index f97da0509..000000000 Binary files a/src/botan/checks/nist_tests/tests/test02/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test02/int.crl b/src/botan/checks/nist_tests/tests/test02/int.crl deleted file mode 100644 index e7dfa96ee..000000000 Binary files a/src/botan/checks/nist_tests/tests/test02/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test02/int.crt b/src/botan/checks/nist_tests/tests/test02/int.crt deleted file mode 100644 index 0aba75048..000000000 Binary files a/src/botan/checks/nist_tests/tests/test02/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test02/root.crl b/src/botan/checks/nist_tests/tests/test02/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test02/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test02/root.crt b/src/botan/checks/nist_tests/tests/test02/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test02/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test03/end.crt b/src/botan/checks/nist_tests/tests/test03/end.crt deleted file mode 100644 index 9b0463a67..000000000 Binary files a/src/botan/checks/nist_tests/tests/test03/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test03/int.crl b/src/botan/checks/nist_tests/tests/test03/int.crl deleted file mode 100644 index 528f3237c..000000000 Binary files a/src/botan/checks/nist_tests/tests/test03/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test03/int.crt b/src/botan/checks/nist_tests/tests/test03/int.crt deleted file mode 100644 index c8cfc0550..000000000 Binary files a/src/botan/checks/nist_tests/tests/test03/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test03/root.crl b/src/botan/checks/nist_tests/tests/test03/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test03/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test03/root.crt b/src/botan/checks/nist_tests/tests/test03/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test03/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test04/end.crt b/src/botan/checks/nist_tests/tests/test04/end.crt deleted file mode 100644 index 75d2fd50e..000000000 Binary files a/src/botan/checks/nist_tests/tests/test04/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test04/int1.crl b/src/botan/checks/nist_tests/tests/test04/int1.crl deleted file mode 100644 index 2f30c77b5..000000000 Binary files a/src/botan/checks/nist_tests/tests/test04/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test04/int1.crt b/src/botan/checks/nist_tests/tests/test04/int1.crt deleted file mode 100644 index f4e88d58c..000000000 Binary files a/src/botan/checks/nist_tests/tests/test04/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test04/int2.crl b/src/botan/checks/nist_tests/tests/test04/int2.crl deleted file mode 100644 index e8596c314..000000000 Binary files a/src/botan/checks/nist_tests/tests/test04/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test04/int2.crt b/src/botan/checks/nist_tests/tests/test04/int2.crt deleted file mode 100644 index 727035b6c..000000000 Binary files a/src/botan/checks/nist_tests/tests/test04/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test04/root.crl b/src/botan/checks/nist_tests/tests/test04/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test04/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test04/root.crt b/src/botan/checks/nist_tests/tests/test04/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test04/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test05/end.crt b/src/botan/checks/nist_tests/tests/test05/end.crt deleted file mode 100644 index a3a658923..000000000 Binary files a/src/botan/checks/nist_tests/tests/test05/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test05/int.crl b/src/botan/checks/nist_tests/tests/test05/int.crl deleted file mode 100644 index a34ef279b..000000000 Binary files a/src/botan/checks/nist_tests/tests/test05/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test05/int.crt b/src/botan/checks/nist_tests/tests/test05/int.crt deleted file mode 100644 index 610df750e..000000000 Binary files a/src/botan/checks/nist_tests/tests/test05/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test05/root.crl b/src/botan/checks/nist_tests/tests/test05/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test05/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test05/root.crt b/src/botan/checks/nist_tests/tests/test05/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test05/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test06/end.crt b/src/botan/checks/nist_tests/tests/test06/end.crt deleted file mode 100644 index 1e68f0de1..000000000 Binary files a/src/botan/checks/nist_tests/tests/test06/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test06/int.crl b/src/botan/checks/nist_tests/tests/test06/int.crl deleted file mode 100644 index d87cd7e26..000000000 Binary files a/src/botan/checks/nist_tests/tests/test06/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test06/int.crt b/src/botan/checks/nist_tests/tests/test06/int.crt deleted file mode 100644 index 5bb74d259..000000000 Binary files a/src/botan/checks/nist_tests/tests/test06/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test06/root.crl b/src/botan/checks/nist_tests/tests/test06/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test06/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test06/root.crt b/src/botan/checks/nist_tests/tests/test06/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test06/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test07/end.crt b/src/botan/checks/nist_tests/tests/test07/end.crt deleted file mode 100644 index 0f97e6f5a..000000000 Binary files a/src/botan/checks/nist_tests/tests/test07/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test07/int.crl b/src/botan/checks/nist_tests/tests/test07/int.crl deleted file mode 100644 index 8064e91bc..000000000 Binary files a/src/botan/checks/nist_tests/tests/test07/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test07/int.crt b/src/botan/checks/nist_tests/tests/test07/int.crt deleted file mode 100644 index 5c1ddd3e3..000000000 Binary files a/src/botan/checks/nist_tests/tests/test07/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test07/root.crl b/src/botan/checks/nist_tests/tests/test07/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test07/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test07/root.crt b/src/botan/checks/nist_tests/tests/test07/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test07/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test08/end.crt b/src/botan/checks/nist_tests/tests/test08/end.crt deleted file mode 100644 index cb99c2ac5..000000000 Binary files a/src/botan/checks/nist_tests/tests/test08/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test08/int.crl b/src/botan/checks/nist_tests/tests/test08/int.crl deleted file mode 100644 index d5ee3c3ce..000000000 Binary files a/src/botan/checks/nist_tests/tests/test08/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test08/int.crt b/src/botan/checks/nist_tests/tests/test08/int.crt deleted file mode 100644 index d26979cdd..000000000 Binary files a/src/botan/checks/nist_tests/tests/test08/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test08/root.crl b/src/botan/checks/nist_tests/tests/test08/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test08/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test08/root.crt b/src/botan/checks/nist_tests/tests/test08/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test08/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test09/end.crt b/src/botan/checks/nist_tests/tests/test09/end.crt deleted file mode 100644 index 4dd2352b4..000000000 Binary files a/src/botan/checks/nist_tests/tests/test09/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test09/int.crl b/src/botan/checks/nist_tests/tests/test09/int.crl deleted file mode 100644 index fbd85145c..000000000 Binary files a/src/botan/checks/nist_tests/tests/test09/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test09/int.crt b/src/botan/checks/nist_tests/tests/test09/int.crt deleted file mode 100644 index c107dd756..000000000 Binary files a/src/botan/checks/nist_tests/tests/test09/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test09/root.crl b/src/botan/checks/nist_tests/tests/test09/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test09/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test09/root.crt b/src/botan/checks/nist_tests/tests/test09/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test09/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test10/end.crt b/src/botan/checks/nist_tests/tests/test10/end.crt deleted file mode 100644 index de3924003..000000000 Binary files a/src/botan/checks/nist_tests/tests/test10/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test10/int.crl b/src/botan/checks/nist_tests/tests/test10/int.crl deleted file mode 100644 index daefd50c8..000000000 Binary files a/src/botan/checks/nist_tests/tests/test10/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test10/int.crt b/src/botan/checks/nist_tests/tests/test10/int.crt deleted file mode 100644 index 2d691abce..000000000 Binary files a/src/botan/checks/nist_tests/tests/test10/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test10/root.crl b/src/botan/checks/nist_tests/tests/test10/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test10/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test10/root.crt b/src/botan/checks/nist_tests/tests/test10/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test10/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test11/end.crt b/src/botan/checks/nist_tests/tests/test11/end.crt deleted file mode 100644 index 6e14527d2..000000000 Binary files a/src/botan/checks/nist_tests/tests/test11/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test11/int.crl b/src/botan/checks/nist_tests/tests/test11/int.crl deleted file mode 100644 index cc91ad51d..000000000 Binary files a/src/botan/checks/nist_tests/tests/test11/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test11/int.crt b/src/botan/checks/nist_tests/tests/test11/int.crt deleted file mode 100644 index 87fa07962..000000000 Binary files a/src/botan/checks/nist_tests/tests/test11/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test11/root.crl b/src/botan/checks/nist_tests/tests/test11/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test11/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test11/root.crt b/src/botan/checks/nist_tests/tests/test11/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test11/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test12/end.crt b/src/botan/checks/nist_tests/tests/test12/end.crt deleted file mode 100644 index 158c6ae01..000000000 Binary files a/src/botan/checks/nist_tests/tests/test12/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test12/int.crl b/src/botan/checks/nist_tests/tests/test12/int.crl deleted file mode 100644 index 7ce6928bb..000000000 Binary files a/src/botan/checks/nist_tests/tests/test12/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test12/int.crt b/src/botan/checks/nist_tests/tests/test12/int.crt deleted file mode 100644 index a55333b63..000000000 Binary files a/src/botan/checks/nist_tests/tests/test12/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test12/root.crl b/src/botan/checks/nist_tests/tests/test12/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test12/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test12/root.crt b/src/botan/checks/nist_tests/tests/test12/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test12/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test13/end.crt b/src/botan/checks/nist_tests/tests/test13/end.crt deleted file mode 100644 index d1ddf4b44..000000000 Binary files a/src/botan/checks/nist_tests/tests/test13/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test13/int.crl b/src/botan/checks/nist_tests/tests/test13/int.crl deleted file mode 100644 index df86506d8..000000000 Binary files a/src/botan/checks/nist_tests/tests/test13/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test13/int.crt b/src/botan/checks/nist_tests/tests/test13/int.crt deleted file mode 100644 index abc6fe537..000000000 Binary files a/src/botan/checks/nist_tests/tests/test13/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test13/root.crl b/src/botan/checks/nist_tests/tests/test13/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test13/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test13/root.crt b/src/botan/checks/nist_tests/tests/test13/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test13/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test14/end.crt b/src/botan/checks/nist_tests/tests/test14/end.crt deleted file mode 100644 index f43e03826..000000000 Binary files a/src/botan/checks/nist_tests/tests/test14/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test14/int.crl b/src/botan/checks/nist_tests/tests/test14/int.crl deleted file mode 100644 index ae372f38b..000000000 Binary files a/src/botan/checks/nist_tests/tests/test14/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test14/int.crt b/src/botan/checks/nist_tests/tests/test14/int.crt deleted file mode 100644 index 6e97ee2b8..000000000 Binary files a/src/botan/checks/nist_tests/tests/test14/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test14/root.crl b/src/botan/checks/nist_tests/tests/test14/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test14/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test14/root.crt b/src/botan/checks/nist_tests/tests/test14/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test14/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test15/end.crt b/src/botan/checks/nist_tests/tests/test15/end.crt deleted file mode 100644 index a2408315c..000000000 Binary files a/src/botan/checks/nist_tests/tests/test15/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test15/int.crl b/src/botan/checks/nist_tests/tests/test15/int.crl deleted file mode 100644 index 626049aaf..000000000 Binary files a/src/botan/checks/nist_tests/tests/test15/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test15/int.crt b/src/botan/checks/nist_tests/tests/test15/int.crt deleted file mode 100644 index 23fb78c0f..000000000 Binary files a/src/botan/checks/nist_tests/tests/test15/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test15/root.crl b/src/botan/checks/nist_tests/tests/test15/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test15/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test15/root.crt b/src/botan/checks/nist_tests/tests/test15/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test15/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test16/end.crt b/src/botan/checks/nist_tests/tests/test16/end.crt deleted file mode 100644 index 108a75d73..000000000 Binary files a/src/botan/checks/nist_tests/tests/test16/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test16/int.crl b/src/botan/checks/nist_tests/tests/test16/int.crl deleted file mode 100644 index d345a338e..000000000 Binary files a/src/botan/checks/nist_tests/tests/test16/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test16/int.crt b/src/botan/checks/nist_tests/tests/test16/int.crt deleted file mode 100644 index 6f2a332ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test16/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test16/root.crl b/src/botan/checks/nist_tests/tests/test16/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test16/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test16/root.crt b/src/botan/checks/nist_tests/tests/test16/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test16/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test17/end.crt b/src/botan/checks/nist_tests/tests/test17/end.crt deleted file mode 100644 index b90340872..000000000 Binary files a/src/botan/checks/nist_tests/tests/test17/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test17/int.crl b/src/botan/checks/nist_tests/tests/test17/int.crl deleted file mode 100644 index 0b1ba6fda..000000000 Binary files a/src/botan/checks/nist_tests/tests/test17/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test17/int.crt b/src/botan/checks/nist_tests/tests/test17/int.crt deleted file mode 100644 index 25e7b48e5..000000000 Binary files a/src/botan/checks/nist_tests/tests/test17/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test17/root.crl b/src/botan/checks/nist_tests/tests/test17/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test17/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test17/root.crt b/src/botan/checks/nist_tests/tests/test17/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test17/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test18/end.crt b/src/botan/checks/nist_tests/tests/test18/end.crt deleted file mode 100644 index 2edb51394..000000000 Binary files a/src/botan/checks/nist_tests/tests/test18/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test18/int.crl b/src/botan/checks/nist_tests/tests/test18/int.crl deleted file mode 100644 index 2948246d7..000000000 Binary files a/src/botan/checks/nist_tests/tests/test18/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test18/int.crt b/src/botan/checks/nist_tests/tests/test18/int.crt deleted file mode 100644 index eac3e8693..000000000 Binary files a/src/botan/checks/nist_tests/tests/test18/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test18/root.crl b/src/botan/checks/nist_tests/tests/test18/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test18/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test18/root.crt b/src/botan/checks/nist_tests/tests/test18/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test18/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test19/end.crt b/src/botan/checks/nist_tests/tests/test19/end.crt deleted file mode 100644 index a9c7a1fc6..000000000 Binary files a/src/botan/checks/nist_tests/tests/test19/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test19/int.crt b/src/botan/checks/nist_tests/tests/test19/int.crt deleted file mode 100644 index eff60dd15..000000000 Binary files a/src/botan/checks/nist_tests/tests/test19/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test19/root.crl b/src/botan/checks/nist_tests/tests/test19/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test19/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test19/root.crt b/src/botan/checks/nist_tests/tests/test19/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test19/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test20/end.crt b/src/botan/checks/nist_tests/tests/test20/end.crt deleted file mode 100644 index b26e77c19..000000000 Binary files a/src/botan/checks/nist_tests/tests/test20/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test20/int.crl b/src/botan/checks/nist_tests/tests/test20/int.crl deleted file mode 100644 index 5755a2eae..000000000 Binary files a/src/botan/checks/nist_tests/tests/test20/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test20/int.crt b/src/botan/checks/nist_tests/tests/test20/int.crt deleted file mode 100644 index d7daa69ef..000000000 Binary files a/src/botan/checks/nist_tests/tests/test20/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test20/root.crl b/src/botan/checks/nist_tests/tests/test20/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test20/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test20/root.crt b/src/botan/checks/nist_tests/tests/test20/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test20/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test21/end.crt b/src/botan/checks/nist_tests/tests/test21/end.crt deleted file mode 100644 index 798e5cf17..000000000 Binary files a/src/botan/checks/nist_tests/tests/test21/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test21/int.crl b/src/botan/checks/nist_tests/tests/test21/int.crl deleted file mode 100644 index ea3cbb9d8..000000000 Binary files a/src/botan/checks/nist_tests/tests/test21/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test21/int.crt b/src/botan/checks/nist_tests/tests/test21/int.crt deleted file mode 100644 index 9082c4d77..000000000 Binary files a/src/botan/checks/nist_tests/tests/test21/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test21/root.crl b/src/botan/checks/nist_tests/tests/test21/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test21/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test21/root.crt b/src/botan/checks/nist_tests/tests/test21/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test21/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test22/end.crt b/src/botan/checks/nist_tests/tests/test22/end.crt deleted file mode 100644 index d130c7506..000000000 Binary files a/src/botan/checks/nist_tests/tests/test22/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test22/int.crl b/src/botan/checks/nist_tests/tests/test22/int.crl deleted file mode 100644 index 07e18398d..000000000 Binary files a/src/botan/checks/nist_tests/tests/test22/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test22/int.crt b/src/botan/checks/nist_tests/tests/test22/int.crt deleted file mode 100644 index d0f401bae..000000000 Binary files a/src/botan/checks/nist_tests/tests/test22/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test22/root.crl b/src/botan/checks/nist_tests/tests/test22/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test22/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test22/root.crt b/src/botan/checks/nist_tests/tests/test22/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test22/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test23/end.crt b/src/botan/checks/nist_tests/tests/test23/end.crt deleted file mode 100644 index 787941b16..000000000 Binary files a/src/botan/checks/nist_tests/tests/test23/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test23/int.crl b/src/botan/checks/nist_tests/tests/test23/int.crl deleted file mode 100644 index 2841be769..000000000 Binary files a/src/botan/checks/nist_tests/tests/test23/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test23/int.crt b/src/botan/checks/nist_tests/tests/test23/int.crt deleted file mode 100644 index 2890b3967..000000000 Binary files a/src/botan/checks/nist_tests/tests/test23/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test23/root.crl b/src/botan/checks/nist_tests/tests/test23/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test23/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test23/root.crt b/src/botan/checks/nist_tests/tests/test23/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test23/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test24/end.crt b/src/botan/checks/nist_tests/tests/test24/end.crt deleted file mode 100644 index 0d145b2fa..000000000 Binary files a/src/botan/checks/nist_tests/tests/test24/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test24/int.crl b/src/botan/checks/nist_tests/tests/test24/int.crl deleted file mode 100644 index f608de6bb..000000000 Binary files a/src/botan/checks/nist_tests/tests/test24/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test24/int.crt b/src/botan/checks/nist_tests/tests/test24/int.crt deleted file mode 100644 index a4633ee9a..000000000 Binary files a/src/botan/checks/nist_tests/tests/test24/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test24/root.crl b/src/botan/checks/nist_tests/tests/test24/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test24/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test24/root.crt b/src/botan/checks/nist_tests/tests/test24/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test24/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test25/end.crt b/src/botan/checks/nist_tests/tests/test25/end.crt deleted file mode 100644 index d12670188..000000000 Binary files a/src/botan/checks/nist_tests/tests/test25/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test25/int.crl b/src/botan/checks/nist_tests/tests/test25/int.crl deleted file mode 100644 index 553e1bbd1..000000000 Binary files a/src/botan/checks/nist_tests/tests/test25/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test25/int.crt b/src/botan/checks/nist_tests/tests/test25/int.crt deleted file mode 100644 index 5d06aac4a..000000000 Binary files a/src/botan/checks/nist_tests/tests/test25/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test25/root.crl b/src/botan/checks/nist_tests/tests/test25/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test25/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test25/root.crt b/src/botan/checks/nist_tests/tests/test25/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test25/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test26/end.crt b/src/botan/checks/nist_tests/tests/test26/end.crt deleted file mode 100644 index 5abc96600..000000000 Binary files a/src/botan/checks/nist_tests/tests/test26/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test26/int.crl b/src/botan/checks/nist_tests/tests/test26/int.crl deleted file mode 100644 index 9f2f1b0a8..000000000 Binary files a/src/botan/checks/nist_tests/tests/test26/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test26/int.crt b/src/botan/checks/nist_tests/tests/test26/int.crt deleted file mode 100644 index e9c273a05..000000000 Binary files a/src/botan/checks/nist_tests/tests/test26/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test26/root.crl b/src/botan/checks/nist_tests/tests/test26/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test26/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test26/root.crt b/src/botan/checks/nist_tests/tests/test26/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test26/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test27/end.crt b/src/botan/checks/nist_tests/tests/test27/end.crt deleted file mode 100644 index 2147dbd3a..000000000 Binary files a/src/botan/checks/nist_tests/tests/test27/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test27/int.crl b/src/botan/checks/nist_tests/tests/test27/int.crl deleted file mode 100644 index fd769e5f3..000000000 Binary files a/src/botan/checks/nist_tests/tests/test27/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test27/int.crt b/src/botan/checks/nist_tests/tests/test27/int.crt deleted file mode 100644 index 4de4a9f51..000000000 Binary files a/src/botan/checks/nist_tests/tests/test27/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test27/root.crl b/src/botan/checks/nist_tests/tests/test27/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test27/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test27/root.crt b/src/botan/checks/nist_tests/tests/test27/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test27/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test28/end.crt b/src/botan/checks/nist_tests/tests/test28/end.crt deleted file mode 100644 index c72c97b81..000000000 Binary files a/src/botan/checks/nist_tests/tests/test28/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test28/int.crl b/src/botan/checks/nist_tests/tests/test28/int.crl deleted file mode 100644 index 35e87eb0b..000000000 Binary files a/src/botan/checks/nist_tests/tests/test28/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test28/int.crt b/src/botan/checks/nist_tests/tests/test28/int.crt deleted file mode 100644 index fee01f21e..000000000 Binary files a/src/botan/checks/nist_tests/tests/test28/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test28/root.crl b/src/botan/checks/nist_tests/tests/test28/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test28/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test28/root.crt b/src/botan/checks/nist_tests/tests/test28/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test28/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test29/end.crt b/src/botan/checks/nist_tests/tests/test29/end.crt deleted file mode 100644 index e4e2dd072..000000000 Binary files a/src/botan/checks/nist_tests/tests/test29/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test29/int.crl b/src/botan/checks/nist_tests/tests/test29/int.crl deleted file mode 100644 index 2739bd933..000000000 Binary files a/src/botan/checks/nist_tests/tests/test29/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test29/int.crt b/src/botan/checks/nist_tests/tests/test29/int.crt deleted file mode 100644 index e830043fd..000000000 Binary files a/src/botan/checks/nist_tests/tests/test29/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test29/root.crl b/src/botan/checks/nist_tests/tests/test29/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test29/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test29/root.crt b/src/botan/checks/nist_tests/tests/test29/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test29/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test30/end.crt b/src/botan/checks/nist_tests/tests/test30/end.crt deleted file mode 100644 index abdc0381f..000000000 Binary files a/src/botan/checks/nist_tests/tests/test30/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test30/int.crl b/src/botan/checks/nist_tests/tests/test30/int.crl deleted file mode 100644 index fed695a3b..000000000 Binary files a/src/botan/checks/nist_tests/tests/test30/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test30/int.crt b/src/botan/checks/nist_tests/tests/test30/int.crt deleted file mode 100644 index 26fd2cb6a..000000000 Binary files a/src/botan/checks/nist_tests/tests/test30/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test30/root.crl b/src/botan/checks/nist_tests/tests/test30/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test30/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test30/root.crt b/src/botan/checks/nist_tests/tests/test30/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test30/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test31/end.crt b/src/botan/checks/nist_tests/tests/test31/end.crt deleted file mode 100644 index cd766ef7f..000000000 Binary files a/src/botan/checks/nist_tests/tests/test31/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test31/int.crl b/src/botan/checks/nist_tests/tests/test31/int.crl deleted file mode 100644 index 9014141f9..000000000 Binary files a/src/botan/checks/nist_tests/tests/test31/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test31/int.crt b/src/botan/checks/nist_tests/tests/test31/int.crt deleted file mode 100644 index 396947b15..000000000 Binary files a/src/botan/checks/nist_tests/tests/test31/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test31/root.crl b/src/botan/checks/nist_tests/tests/test31/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test31/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test31/root.crt b/src/botan/checks/nist_tests/tests/test31/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test31/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test32/end.crt b/src/botan/checks/nist_tests/tests/test32/end.crt deleted file mode 100644 index 3804a27b4..000000000 Binary files a/src/botan/checks/nist_tests/tests/test32/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test32/int.crl b/src/botan/checks/nist_tests/tests/test32/int.crl deleted file mode 100644 index 2e2e505a0..000000000 Binary files a/src/botan/checks/nist_tests/tests/test32/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test32/int.crt b/src/botan/checks/nist_tests/tests/test32/int.crt deleted file mode 100644 index 6df3396b7..000000000 Binary files a/src/botan/checks/nist_tests/tests/test32/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test32/root.crl b/src/botan/checks/nist_tests/tests/test32/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test32/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test32/root.crt b/src/botan/checks/nist_tests/tests/test32/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test32/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test33/end.crt b/src/botan/checks/nist_tests/tests/test33/end.crt deleted file mode 100644 index 6ef1d03a8..000000000 Binary files a/src/botan/checks/nist_tests/tests/test33/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test33/int.crl b/src/botan/checks/nist_tests/tests/test33/int.crl deleted file mode 100644 index 4008e3d46..000000000 Binary files a/src/botan/checks/nist_tests/tests/test33/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test33/int.crt b/src/botan/checks/nist_tests/tests/test33/int.crt deleted file mode 100644 index ba183696e..000000000 Binary files a/src/botan/checks/nist_tests/tests/test33/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test33/root.crl b/src/botan/checks/nist_tests/tests/test33/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test33/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test33/root.crt b/src/botan/checks/nist_tests/tests/test33/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test33/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test34/end.crt b/src/botan/checks/nist_tests/tests/test34/end.crt deleted file mode 100644 index 695de1cb4..000000000 Binary files a/src/botan/checks/nist_tests/tests/test34/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test34/int.crl b/src/botan/checks/nist_tests/tests/test34/int.crl deleted file mode 100644 index a8d11e788..000000000 Binary files a/src/botan/checks/nist_tests/tests/test34/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test34/int.crt b/src/botan/checks/nist_tests/tests/test34/int.crt deleted file mode 100644 index 5657ddaf6..000000000 Binary files a/src/botan/checks/nist_tests/tests/test34/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test34/root.crl b/src/botan/checks/nist_tests/tests/test34/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test34/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test34/root.crt b/src/botan/checks/nist_tests/tests/test34/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test34/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test35/end.crt b/src/botan/checks/nist_tests/tests/test35/end.crt deleted file mode 100644 index 26846be18..000000000 Binary files a/src/botan/checks/nist_tests/tests/test35/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test35/int.crl b/src/botan/checks/nist_tests/tests/test35/int.crl deleted file mode 100644 index f7021d32c..000000000 Binary files a/src/botan/checks/nist_tests/tests/test35/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test35/int.crt b/src/botan/checks/nist_tests/tests/test35/int.crt deleted file mode 100644 index 6a6641823..000000000 Binary files a/src/botan/checks/nist_tests/tests/test35/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test35/root.crl b/src/botan/checks/nist_tests/tests/test35/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test35/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test35/root.crt b/src/botan/checks/nist_tests/tests/test35/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test35/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test36/end.crt b/src/botan/checks/nist_tests/tests/test36/end.crt deleted file mode 100644 index ee6ec5f4b..000000000 Binary files a/src/botan/checks/nist_tests/tests/test36/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test36/int1.crl b/src/botan/checks/nist_tests/tests/test36/int1.crl deleted file mode 100644 index d4ad1013d..000000000 Binary files a/src/botan/checks/nist_tests/tests/test36/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test36/int1.crt b/src/botan/checks/nist_tests/tests/test36/int1.crt deleted file mode 100644 index a300e8d67..000000000 Binary files a/src/botan/checks/nist_tests/tests/test36/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test36/int2.crl b/src/botan/checks/nist_tests/tests/test36/int2.crl deleted file mode 100644 index d45cedcee..000000000 Binary files a/src/botan/checks/nist_tests/tests/test36/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test36/int2.crt b/src/botan/checks/nist_tests/tests/test36/int2.crt deleted file mode 100644 index 87c8253c3..000000000 Binary files a/src/botan/checks/nist_tests/tests/test36/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test36/root.crl b/src/botan/checks/nist_tests/tests/test36/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test36/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test36/root.crt b/src/botan/checks/nist_tests/tests/test36/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test36/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test37/end.crt b/src/botan/checks/nist_tests/tests/test37/end.crt deleted file mode 100644 index e5c5ae8c7..000000000 Binary files a/src/botan/checks/nist_tests/tests/test37/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test37/int1.crl b/src/botan/checks/nist_tests/tests/test37/int1.crl deleted file mode 100644 index 6b488fdb8..000000000 Binary files a/src/botan/checks/nist_tests/tests/test37/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test37/int1.crt b/src/botan/checks/nist_tests/tests/test37/int1.crt deleted file mode 100644 index 26b6b9605..000000000 Binary files a/src/botan/checks/nist_tests/tests/test37/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test37/int2.crl b/src/botan/checks/nist_tests/tests/test37/int2.crl deleted file mode 100644 index 724051124..000000000 Binary files a/src/botan/checks/nist_tests/tests/test37/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test37/int2.crt b/src/botan/checks/nist_tests/tests/test37/int2.crt deleted file mode 100644 index c0e986a08..000000000 Binary files a/src/botan/checks/nist_tests/tests/test37/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test37/root.crl b/src/botan/checks/nist_tests/tests/test37/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test37/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test37/root.crt b/src/botan/checks/nist_tests/tests/test37/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test37/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test38/end.crt b/src/botan/checks/nist_tests/tests/test38/end.crt deleted file mode 100644 index 9331b90a2..000000000 Binary files a/src/botan/checks/nist_tests/tests/test38/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test38/int1.crl b/src/botan/checks/nist_tests/tests/test38/int1.crl deleted file mode 100644 index 81f75d4e5..000000000 Binary files a/src/botan/checks/nist_tests/tests/test38/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test38/int1.crt b/src/botan/checks/nist_tests/tests/test38/int1.crt deleted file mode 100644 index c8ee614f4..000000000 Binary files a/src/botan/checks/nist_tests/tests/test38/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test38/int2.crl b/src/botan/checks/nist_tests/tests/test38/int2.crl deleted file mode 100644 index ae1d7d5e8..000000000 Binary files a/src/botan/checks/nist_tests/tests/test38/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test38/int2.crt b/src/botan/checks/nist_tests/tests/test38/int2.crt deleted file mode 100644 index 8d2834294..000000000 Binary files a/src/botan/checks/nist_tests/tests/test38/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test38/root.crl b/src/botan/checks/nist_tests/tests/test38/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test38/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test38/root.crt b/src/botan/checks/nist_tests/tests/test38/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test38/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test39/end.crt b/src/botan/checks/nist_tests/tests/test39/end.crt deleted file mode 100644 index 57263d4cb..000000000 Binary files a/src/botan/checks/nist_tests/tests/test39/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test39/int1.crl b/src/botan/checks/nist_tests/tests/test39/int1.crl deleted file mode 100644 index f2a01385e..000000000 Binary files a/src/botan/checks/nist_tests/tests/test39/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test39/int1.crt b/src/botan/checks/nist_tests/tests/test39/int1.crt deleted file mode 100644 index b7003f7eb..000000000 Binary files a/src/botan/checks/nist_tests/tests/test39/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test39/int2.crl b/src/botan/checks/nist_tests/tests/test39/int2.crl deleted file mode 100644 index b6672d85a..000000000 Binary files a/src/botan/checks/nist_tests/tests/test39/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test39/int2.crt b/src/botan/checks/nist_tests/tests/test39/int2.crt deleted file mode 100644 index c56ce57f0..000000000 Binary files a/src/botan/checks/nist_tests/tests/test39/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test39/int3.crl b/src/botan/checks/nist_tests/tests/test39/int3.crl deleted file mode 100644 index 453420be8..000000000 Binary files a/src/botan/checks/nist_tests/tests/test39/int3.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test39/int3.crt b/src/botan/checks/nist_tests/tests/test39/int3.crt deleted file mode 100644 index ce1224ada..000000000 Binary files a/src/botan/checks/nist_tests/tests/test39/int3.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test39/root.crl b/src/botan/checks/nist_tests/tests/test39/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test39/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test39/root.crt b/src/botan/checks/nist_tests/tests/test39/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test39/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test40/end.crt b/src/botan/checks/nist_tests/tests/test40/end.crt deleted file mode 100644 index 24ce9e4d8..000000000 Binary files a/src/botan/checks/nist_tests/tests/test40/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test40/int1.crl b/src/botan/checks/nist_tests/tests/test40/int1.crl deleted file mode 100644 index 5bd6a9f83..000000000 Binary files a/src/botan/checks/nist_tests/tests/test40/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test40/int1.crt b/src/botan/checks/nist_tests/tests/test40/int1.crt deleted file mode 100644 index 5a8ac5006..000000000 Binary files a/src/botan/checks/nist_tests/tests/test40/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test40/int2.crl b/src/botan/checks/nist_tests/tests/test40/int2.crl deleted file mode 100644 index dde5a124c..000000000 Binary files a/src/botan/checks/nist_tests/tests/test40/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test40/int2.crt b/src/botan/checks/nist_tests/tests/test40/int2.crt deleted file mode 100644 index 70e4d9092..000000000 Binary files a/src/botan/checks/nist_tests/tests/test40/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test40/int3.crl b/src/botan/checks/nist_tests/tests/test40/int3.crl deleted file mode 100644 index 713fa4bbf..000000000 Binary files a/src/botan/checks/nist_tests/tests/test40/int3.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test40/int3.crt b/src/botan/checks/nist_tests/tests/test40/int3.crt deleted file mode 100644 index a0c673453..000000000 Binary files a/src/botan/checks/nist_tests/tests/test40/int3.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test40/root.crl b/src/botan/checks/nist_tests/tests/test40/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test40/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test40/root.crt b/src/botan/checks/nist_tests/tests/test40/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test40/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test41/end.crt b/src/botan/checks/nist_tests/tests/test41/end.crt deleted file mode 100644 index b88e38eb9..000000000 Binary files a/src/botan/checks/nist_tests/tests/test41/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test41/int1.crl b/src/botan/checks/nist_tests/tests/test41/int1.crl deleted file mode 100644 index 2d4c41521..000000000 Binary files a/src/botan/checks/nist_tests/tests/test41/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test41/int1.crt b/src/botan/checks/nist_tests/tests/test41/int1.crt deleted file mode 100644 index 4b96b2afb..000000000 Binary files a/src/botan/checks/nist_tests/tests/test41/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test41/int2.crl b/src/botan/checks/nist_tests/tests/test41/int2.crl deleted file mode 100644 index e389a7fd9..000000000 Binary files a/src/botan/checks/nist_tests/tests/test41/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test41/int2.crt b/src/botan/checks/nist_tests/tests/test41/int2.crt deleted file mode 100644 index 4b1edc710..000000000 Binary files a/src/botan/checks/nist_tests/tests/test41/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test41/int3.crl b/src/botan/checks/nist_tests/tests/test41/int3.crl deleted file mode 100644 index d26dc1b75..000000000 Binary files a/src/botan/checks/nist_tests/tests/test41/int3.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test41/int3.crt b/src/botan/checks/nist_tests/tests/test41/int3.crt deleted file mode 100644 index 6012a3a5b..000000000 Binary files a/src/botan/checks/nist_tests/tests/test41/int3.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test41/root.crl b/src/botan/checks/nist_tests/tests/test41/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test41/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test41/root.crt b/src/botan/checks/nist_tests/tests/test41/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test41/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test42/end.crt b/src/botan/checks/nist_tests/tests/test42/end.crt deleted file mode 100644 index 9815c5d5c..000000000 Binary files a/src/botan/checks/nist_tests/tests/test42/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test42/int1.crl b/src/botan/checks/nist_tests/tests/test42/int1.crl deleted file mode 100644 index d4f21dbe3..000000000 Binary files a/src/botan/checks/nist_tests/tests/test42/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test42/int1.crt b/src/botan/checks/nist_tests/tests/test42/int1.crt deleted file mode 100644 index f344a9f27..000000000 Binary files a/src/botan/checks/nist_tests/tests/test42/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test42/int2.crl b/src/botan/checks/nist_tests/tests/test42/int2.crl deleted file mode 100644 index 32906057a..000000000 Binary files a/src/botan/checks/nist_tests/tests/test42/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test42/int2.crt b/src/botan/checks/nist_tests/tests/test42/int2.crt deleted file mode 100644 index a2fd05ccb..000000000 Binary files a/src/botan/checks/nist_tests/tests/test42/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test42/int3.crl b/src/botan/checks/nist_tests/tests/test42/int3.crl deleted file mode 100644 index ee2b2b18c..000000000 Binary files a/src/botan/checks/nist_tests/tests/test42/int3.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test42/int3.crt b/src/botan/checks/nist_tests/tests/test42/int3.crt deleted file mode 100644 index 8104a65f8..000000000 Binary files a/src/botan/checks/nist_tests/tests/test42/int3.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test42/int4.crl b/src/botan/checks/nist_tests/tests/test42/int4.crl deleted file mode 100644 index 7602160fa..000000000 Binary files a/src/botan/checks/nist_tests/tests/test42/int4.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test42/int4.crt b/src/botan/checks/nist_tests/tests/test42/int4.crt deleted file mode 100644 index 5b6ffbd4e..000000000 Binary files a/src/botan/checks/nist_tests/tests/test42/int4.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test42/root.crl b/src/botan/checks/nist_tests/tests/test42/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test42/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test42/root.crt b/src/botan/checks/nist_tests/tests/test42/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test42/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test43/end.crt b/src/botan/checks/nist_tests/tests/test43/end.crt deleted file mode 100644 index 9465ea5bf..000000000 Binary files a/src/botan/checks/nist_tests/tests/test43/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test43/int1.crl b/src/botan/checks/nist_tests/tests/test43/int1.crl deleted file mode 100644 index 4ce26fdb9..000000000 Binary files a/src/botan/checks/nist_tests/tests/test43/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test43/int1.crt b/src/botan/checks/nist_tests/tests/test43/int1.crt deleted file mode 100644 index e18a4e168..000000000 Binary files a/src/botan/checks/nist_tests/tests/test43/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test43/int2.crl b/src/botan/checks/nist_tests/tests/test43/int2.crl deleted file mode 100644 index 9820bc6f6..000000000 Binary files a/src/botan/checks/nist_tests/tests/test43/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test43/int2.crt b/src/botan/checks/nist_tests/tests/test43/int2.crt deleted file mode 100644 index 1521fce98..000000000 Binary files a/src/botan/checks/nist_tests/tests/test43/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test43/int3.crl b/src/botan/checks/nist_tests/tests/test43/int3.crl deleted file mode 100644 index b8dfd8dfd..000000000 Binary files a/src/botan/checks/nist_tests/tests/test43/int3.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test43/int3.crt b/src/botan/checks/nist_tests/tests/test43/int3.crt deleted file mode 100644 index 30b9706d8..000000000 Binary files a/src/botan/checks/nist_tests/tests/test43/int3.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test43/int4.crl b/src/botan/checks/nist_tests/tests/test43/int4.crl deleted file mode 100644 index 4b4136209..000000000 Binary files a/src/botan/checks/nist_tests/tests/test43/int4.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test43/int4.crt b/src/botan/checks/nist_tests/tests/test43/int4.crt deleted file mode 100644 index 949562273..000000000 Binary files a/src/botan/checks/nist_tests/tests/test43/int4.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test43/root.crl b/src/botan/checks/nist_tests/tests/test43/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test43/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test43/root.crt b/src/botan/checks/nist_tests/tests/test43/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test43/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test44/end.crt b/src/botan/checks/nist_tests/tests/test44/end.crt deleted file mode 100644 index 5fc9bec78..000000000 Binary files a/src/botan/checks/nist_tests/tests/test44/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test44/int1.crl b/src/botan/checks/nist_tests/tests/test44/int1.crl deleted file mode 100644 index 2d4478cfc..000000000 Binary files a/src/botan/checks/nist_tests/tests/test44/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test44/int1.crt b/src/botan/checks/nist_tests/tests/test44/int1.crt deleted file mode 100644 index fbfd2a4d0..000000000 Binary files a/src/botan/checks/nist_tests/tests/test44/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test44/int2.crl b/src/botan/checks/nist_tests/tests/test44/int2.crl deleted file mode 100644 index 780ef7c0f..000000000 Binary files a/src/botan/checks/nist_tests/tests/test44/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test44/int2.crt b/src/botan/checks/nist_tests/tests/test44/int2.crt deleted file mode 100644 index 26f319399..000000000 Binary files a/src/botan/checks/nist_tests/tests/test44/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test44/int3.crl b/src/botan/checks/nist_tests/tests/test44/int3.crl deleted file mode 100644 index 5e5267ed9..000000000 Binary files a/src/botan/checks/nist_tests/tests/test44/int3.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test44/int3.crt b/src/botan/checks/nist_tests/tests/test44/int3.crt deleted file mode 100644 index 7f62ef6ef..000000000 Binary files a/src/botan/checks/nist_tests/tests/test44/int3.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test44/int4.crl b/src/botan/checks/nist_tests/tests/test44/int4.crl deleted file mode 100644 index 5d775f551..000000000 Binary files a/src/botan/checks/nist_tests/tests/test44/int4.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test44/int4.crt b/src/botan/checks/nist_tests/tests/test44/int4.crt deleted file mode 100644 index 76d6111ec..000000000 Binary files a/src/botan/checks/nist_tests/tests/test44/int4.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test44/root.crl b/src/botan/checks/nist_tests/tests/test44/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test44/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test44/root.crt b/src/botan/checks/nist_tests/tests/test44/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test44/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test45/end.crt b/src/botan/checks/nist_tests/tests/test45/end.crt deleted file mode 100644 index a2ddb0430..000000000 Binary files a/src/botan/checks/nist_tests/tests/test45/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test45/int1.crl b/src/botan/checks/nist_tests/tests/test45/int1.crl deleted file mode 100644 index 079062c14..000000000 Binary files a/src/botan/checks/nist_tests/tests/test45/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test45/int1.crt b/src/botan/checks/nist_tests/tests/test45/int1.crt deleted file mode 100644 index 90ee8e3fe..000000000 Binary files a/src/botan/checks/nist_tests/tests/test45/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test45/int2.crl b/src/botan/checks/nist_tests/tests/test45/int2.crl deleted file mode 100644 index 7c12bd0c3..000000000 Binary files a/src/botan/checks/nist_tests/tests/test45/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test45/int2.crt b/src/botan/checks/nist_tests/tests/test45/int2.crt deleted file mode 100644 index 7fc0467ca..000000000 Binary files a/src/botan/checks/nist_tests/tests/test45/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test45/int3.crl b/src/botan/checks/nist_tests/tests/test45/int3.crl deleted file mode 100644 index f81b5042f..000000000 Binary files a/src/botan/checks/nist_tests/tests/test45/int3.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test45/int3.crt b/src/botan/checks/nist_tests/tests/test45/int3.crt deleted file mode 100644 index fb9500f12..000000000 Binary files a/src/botan/checks/nist_tests/tests/test45/int3.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test45/int4.crl b/src/botan/checks/nist_tests/tests/test45/int4.crl deleted file mode 100644 index 9e67a4a91..000000000 Binary files a/src/botan/checks/nist_tests/tests/test45/int4.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test45/int4.crt b/src/botan/checks/nist_tests/tests/test45/int4.crt deleted file mode 100644 index 60b6c9133..000000000 Binary files a/src/botan/checks/nist_tests/tests/test45/int4.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test45/root.crl b/src/botan/checks/nist_tests/tests/test45/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test45/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test45/root.crt b/src/botan/checks/nist_tests/tests/test45/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test45/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test46/end.crt b/src/botan/checks/nist_tests/tests/test46/end.crt deleted file mode 100644 index 39ebf20a3..000000000 Binary files a/src/botan/checks/nist_tests/tests/test46/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test46/int1.crl b/src/botan/checks/nist_tests/tests/test46/int1.crl deleted file mode 100644 index f9a2236bc..000000000 Binary files a/src/botan/checks/nist_tests/tests/test46/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test46/int1.crt b/src/botan/checks/nist_tests/tests/test46/int1.crt deleted file mode 100644 index 985a5d575..000000000 Binary files a/src/botan/checks/nist_tests/tests/test46/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test46/int2.crl b/src/botan/checks/nist_tests/tests/test46/int2.crl deleted file mode 100644 index 02e82c48a..000000000 Binary files a/src/botan/checks/nist_tests/tests/test46/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test46/int2.crt b/src/botan/checks/nist_tests/tests/test46/int2.crt deleted file mode 100644 index ade64339c..000000000 Binary files a/src/botan/checks/nist_tests/tests/test46/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test46/int3.crl b/src/botan/checks/nist_tests/tests/test46/int3.crl deleted file mode 100644 index ddd59a80c..000000000 Binary files a/src/botan/checks/nist_tests/tests/test46/int3.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test46/int3.crt b/src/botan/checks/nist_tests/tests/test46/int3.crt deleted file mode 100644 index 6e33faaaa..000000000 Binary files a/src/botan/checks/nist_tests/tests/test46/int3.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test46/int4.crl b/src/botan/checks/nist_tests/tests/test46/int4.crl deleted file mode 100644 index 3dedfb11e..000000000 Binary files a/src/botan/checks/nist_tests/tests/test46/int4.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test46/int4.crt b/src/botan/checks/nist_tests/tests/test46/int4.crt deleted file mode 100644 index 1b3fc5726..000000000 Binary files a/src/botan/checks/nist_tests/tests/test46/int4.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test46/root.crl b/src/botan/checks/nist_tests/tests/test46/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test46/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test46/root.crt b/src/botan/checks/nist_tests/tests/test46/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test46/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test47/end.crt b/src/botan/checks/nist_tests/tests/test47/end.crt deleted file mode 100644 index 7337bc5b5..000000000 Binary files a/src/botan/checks/nist_tests/tests/test47/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test47/int1.crl b/src/botan/checks/nist_tests/tests/test47/int1.crl deleted file mode 100644 index 938e3f412..000000000 Binary files a/src/botan/checks/nist_tests/tests/test47/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test47/int1.crt b/src/botan/checks/nist_tests/tests/test47/int1.crt deleted file mode 100644 index bf3e22239..000000000 Binary files a/src/botan/checks/nist_tests/tests/test47/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test47/int2.crl b/src/botan/checks/nist_tests/tests/test47/int2.crl deleted file mode 100644 index f715c112d..000000000 Binary files a/src/botan/checks/nist_tests/tests/test47/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test47/int2.crt b/src/botan/checks/nist_tests/tests/test47/int2.crt deleted file mode 100644 index 1b7854e33..000000000 Binary files a/src/botan/checks/nist_tests/tests/test47/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test47/int3.crl b/src/botan/checks/nist_tests/tests/test47/int3.crl deleted file mode 100644 index 786aa5032..000000000 Binary files a/src/botan/checks/nist_tests/tests/test47/int3.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test47/int3.crt b/src/botan/checks/nist_tests/tests/test47/int3.crt deleted file mode 100644 index 62eb3b220..000000000 Binary files a/src/botan/checks/nist_tests/tests/test47/int3.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test47/int4.crl b/src/botan/checks/nist_tests/tests/test47/int4.crl deleted file mode 100644 index 925b78324..000000000 Binary files a/src/botan/checks/nist_tests/tests/test47/int4.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test47/int4.crt b/src/botan/checks/nist_tests/tests/test47/int4.crt deleted file mode 100644 index 1c9a14344..000000000 Binary files a/src/botan/checks/nist_tests/tests/test47/int4.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test47/root.crl b/src/botan/checks/nist_tests/tests/test47/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test47/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test47/root.crt b/src/botan/checks/nist_tests/tests/test47/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test47/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test48/end.crt b/src/botan/checks/nist_tests/tests/test48/end.crt deleted file mode 100644 index 933f27912..000000000 Binary files a/src/botan/checks/nist_tests/tests/test48/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test48/int.crl b/src/botan/checks/nist_tests/tests/test48/int.crl deleted file mode 100644 index 89ad99cd1..000000000 Binary files a/src/botan/checks/nist_tests/tests/test48/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test48/int.crt b/src/botan/checks/nist_tests/tests/test48/int.crt deleted file mode 100644 index b2eefc4ae..000000000 Binary files a/src/botan/checks/nist_tests/tests/test48/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test48/root.crl b/src/botan/checks/nist_tests/tests/test48/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test48/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test48/root.crt b/src/botan/checks/nist_tests/tests/test48/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test48/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test49/end.crt b/src/botan/checks/nist_tests/tests/test49/end.crt deleted file mode 100644 index d0e4a26e6..000000000 Binary files a/src/botan/checks/nist_tests/tests/test49/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test49/int.crl b/src/botan/checks/nist_tests/tests/test49/int.crl deleted file mode 100644 index 1defb1ef5..000000000 Binary files a/src/botan/checks/nist_tests/tests/test49/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test49/int.crt b/src/botan/checks/nist_tests/tests/test49/int.crt deleted file mode 100644 index 037f68d8b..000000000 Binary files a/src/botan/checks/nist_tests/tests/test49/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test49/root.crl b/src/botan/checks/nist_tests/tests/test49/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test49/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test49/root.crt b/src/botan/checks/nist_tests/tests/test49/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test49/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test50/end.crt b/src/botan/checks/nist_tests/tests/test50/end.crt deleted file mode 100644 index ed9b0a3ce..000000000 Binary files a/src/botan/checks/nist_tests/tests/test50/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test50/int.crl b/src/botan/checks/nist_tests/tests/test50/int.crl deleted file mode 100644 index 0c7cdfee5..000000000 Binary files a/src/botan/checks/nist_tests/tests/test50/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test50/int.crt b/src/botan/checks/nist_tests/tests/test50/int.crt deleted file mode 100644 index 74c41f021..000000000 Binary files a/src/botan/checks/nist_tests/tests/test50/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test50/root.crl b/src/botan/checks/nist_tests/tests/test50/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test50/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test50/root.crt b/src/botan/checks/nist_tests/tests/test50/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test50/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test51/end.crt b/src/botan/checks/nist_tests/tests/test51/end.crt deleted file mode 100644 index 12ebc74c7..000000000 Binary files a/src/botan/checks/nist_tests/tests/test51/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test51/int.crl b/src/botan/checks/nist_tests/tests/test51/int.crl deleted file mode 100644 index c887c9a2c..000000000 Binary files a/src/botan/checks/nist_tests/tests/test51/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test51/int.crt b/src/botan/checks/nist_tests/tests/test51/int.crt deleted file mode 100644 index def7e90d1..000000000 Binary files a/src/botan/checks/nist_tests/tests/test51/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test51/root.crl b/src/botan/checks/nist_tests/tests/test51/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test51/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test51/root.crt b/src/botan/checks/nist_tests/tests/test51/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test51/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test52/end.crt b/src/botan/checks/nist_tests/tests/test52/end.crt deleted file mode 100644 index 0bd19185f..000000000 Binary files a/src/botan/checks/nist_tests/tests/test52/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test52/int.crl b/src/botan/checks/nist_tests/tests/test52/int.crl deleted file mode 100644 index ec220874c..000000000 Binary files a/src/botan/checks/nist_tests/tests/test52/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test52/int.crt b/src/botan/checks/nist_tests/tests/test52/int.crt deleted file mode 100644 index 3429d7cf7..000000000 Binary files a/src/botan/checks/nist_tests/tests/test52/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test52/root.crl b/src/botan/checks/nist_tests/tests/test52/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test52/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test52/root.crt b/src/botan/checks/nist_tests/tests/test52/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test52/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test53/end.crt b/src/botan/checks/nist_tests/tests/test53/end.crt deleted file mode 100644 index 9b99dc562..000000000 Binary files a/src/botan/checks/nist_tests/tests/test53/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test53/int.crl b/src/botan/checks/nist_tests/tests/test53/int.crl deleted file mode 100644 index 79fed242a..000000000 Binary files a/src/botan/checks/nist_tests/tests/test53/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test53/int.crt b/src/botan/checks/nist_tests/tests/test53/int.crt deleted file mode 100644 index 72eac943f..000000000 Binary files a/src/botan/checks/nist_tests/tests/test53/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test53/root.crl b/src/botan/checks/nist_tests/tests/test53/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test53/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test53/root.crt b/src/botan/checks/nist_tests/tests/test53/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test53/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test54/end.crt b/src/botan/checks/nist_tests/tests/test54/end.crt deleted file mode 100644 index 185f019cf..000000000 Binary files a/src/botan/checks/nist_tests/tests/test54/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test54/int1.crl b/src/botan/checks/nist_tests/tests/test54/int1.crl deleted file mode 100644 index 5b1c4439c..000000000 Binary files a/src/botan/checks/nist_tests/tests/test54/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test54/int1.crt b/src/botan/checks/nist_tests/tests/test54/int1.crt deleted file mode 100644 index 140ef0669..000000000 Binary files a/src/botan/checks/nist_tests/tests/test54/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test54/int2.crl b/src/botan/checks/nist_tests/tests/test54/int2.crl deleted file mode 100644 index c531566a9..000000000 Binary files a/src/botan/checks/nist_tests/tests/test54/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test54/int2.crt b/src/botan/checks/nist_tests/tests/test54/int2.crt deleted file mode 100644 index 506761d71..000000000 Binary files a/src/botan/checks/nist_tests/tests/test54/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test54/root.crl b/src/botan/checks/nist_tests/tests/test54/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test54/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test54/root.crt b/src/botan/checks/nist_tests/tests/test54/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test54/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test55/end.crt b/src/botan/checks/nist_tests/tests/test55/end.crt deleted file mode 100644 index 923d4c5a8..000000000 Binary files a/src/botan/checks/nist_tests/tests/test55/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test55/int1.crl b/src/botan/checks/nist_tests/tests/test55/int1.crl deleted file mode 100644 index 371821e5e..000000000 Binary files a/src/botan/checks/nist_tests/tests/test55/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test55/int1.crt b/src/botan/checks/nist_tests/tests/test55/int1.crt deleted file mode 100644 index 7597faf7f..000000000 Binary files a/src/botan/checks/nist_tests/tests/test55/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test55/int2.crl b/src/botan/checks/nist_tests/tests/test55/int2.crl deleted file mode 100644 index 9a242916e..000000000 Binary files a/src/botan/checks/nist_tests/tests/test55/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test55/int2.crt b/src/botan/checks/nist_tests/tests/test55/int2.crt deleted file mode 100644 index 982235a21..000000000 Binary files a/src/botan/checks/nist_tests/tests/test55/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test55/root.crl b/src/botan/checks/nist_tests/tests/test55/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test55/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test55/root.crt b/src/botan/checks/nist_tests/tests/test55/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test55/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test56/end.crt b/src/botan/checks/nist_tests/tests/test56/end.crt deleted file mode 100644 index d1dc82186..000000000 Binary files a/src/botan/checks/nist_tests/tests/test56/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test56/int.crl b/src/botan/checks/nist_tests/tests/test56/int.crl deleted file mode 100644 index 840b209e0..000000000 Binary files a/src/botan/checks/nist_tests/tests/test56/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test56/int.crt b/src/botan/checks/nist_tests/tests/test56/int.crt deleted file mode 100644 index 9b622cabd..000000000 Binary files a/src/botan/checks/nist_tests/tests/test56/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test56/root.crl b/src/botan/checks/nist_tests/tests/test56/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test56/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test56/root.crt b/src/botan/checks/nist_tests/tests/test56/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test56/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test57/end.crt b/src/botan/checks/nist_tests/tests/test57/end.crt deleted file mode 100644 index 2f939384a..000000000 Binary files a/src/botan/checks/nist_tests/tests/test57/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test57/int.crl b/src/botan/checks/nist_tests/tests/test57/int.crl deleted file mode 100644 index a0be908ae..000000000 Binary files a/src/botan/checks/nist_tests/tests/test57/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test57/int.crt b/src/botan/checks/nist_tests/tests/test57/int.crt deleted file mode 100644 index 79f6d6b8a..000000000 Binary files a/src/botan/checks/nist_tests/tests/test57/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test57/root.crl b/src/botan/checks/nist_tests/tests/test57/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test57/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test57/root.crt b/src/botan/checks/nist_tests/tests/test57/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test57/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test58/end.crt b/src/botan/checks/nist_tests/tests/test58/end.crt deleted file mode 100644 index 674009c83..000000000 Binary files a/src/botan/checks/nist_tests/tests/test58/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test58/int1.crl b/src/botan/checks/nist_tests/tests/test58/int1.crl deleted file mode 100644 index aa9dc9d7f..000000000 Binary files a/src/botan/checks/nist_tests/tests/test58/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test58/int1.crt b/src/botan/checks/nist_tests/tests/test58/int1.crt deleted file mode 100644 index 42e983122..000000000 Binary files a/src/botan/checks/nist_tests/tests/test58/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test58/int2.crl b/src/botan/checks/nist_tests/tests/test58/int2.crl deleted file mode 100644 index 7dec9c1eb..000000000 Binary files a/src/botan/checks/nist_tests/tests/test58/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test58/int2.crt b/src/botan/checks/nist_tests/tests/test58/int2.crt deleted file mode 100644 index 08eb808c4..000000000 Binary files a/src/botan/checks/nist_tests/tests/test58/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test58/int3.crl b/src/botan/checks/nist_tests/tests/test58/int3.crl deleted file mode 100644 index bec634480..000000000 Binary files a/src/botan/checks/nist_tests/tests/test58/int3.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test58/int3.crt b/src/botan/checks/nist_tests/tests/test58/int3.crt deleted file mode 100644 index 6c5e6efae..000000000 Binary files a/src/botan/checks/nist_tests/tests/test58/int3.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test58/root.crl b/src/botan/checks/nist_tests/tests/test58/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test58/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test58/root.crt b/src/botan/checks/nist_tests/tests/test58/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test58/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test59/end.crt b/src/botan/checks/nist_tests/tests/test59/end.crt deleted file mode 100644 index da5ee9e69..000000000 Binary files a/src/botan/checks/nist_tests/tests/test59/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test59/int1.crl b/src/botan/checks/nist_tests/tests/test59/int1.crl deleted file mode 100644 index eb7f0e883..000000000 Binary files a/src/botan/checks/nist_tests/tests/test59/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test59/int1.crt b/src/botan/checks/nist_tests/tests/test59/int1.crt deleted file mode 100644 index be0ee21f2..000000000 Binary files a/src/botan/checks/nist_tests/tests/test59/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test59/int2.crl b/src/botan/checks/nist_tests/tests/test59/int2.crl deleted file mode 100644 index 2b2fe9ced..000000000 Binary files a/src/botan/checks/nist_tests/tests/test59/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test59/int2.crt b/src/botan/checks/nist_tests/tests/test59/int2.crt deleted file mode 100644 index a84a7ba5e..000000000 Binary files a/src/botan/checks/nist_tests/tests/test59/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test59/int3.crl b/src/botan/checks/nist_tests/tests/test59/int3.crl deleted file mode 100644 index cb7885c17..000000000 Binary files a/src/botan/checks/nist_tests/tests/test59/int3.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test59/int3.crt b/src/botan/checks/nist_tests/tests/test59/int3.crt deleted file mode 100644 index 0b13f9f9b..000000000 Binary files a/src/botan/checks/nist_tests/tests/test59/int3.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test59/root.crl b/src/botan/checks/nist_tests/tests/test59/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test59/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test59/root.crt b/src/botan/checks/nist_tests/tests/test59/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test59/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test60/end.crt b/src/botan/checks/nist_tests/tests/test60/end.crt deleted file mode 100644 index 8741105ea..000000000 Binary files a/src/botan/checks/nist_tests/tests/test60/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test60/int1.crl b/src/botan/checks/nist_tests/tests/test60/int1.crl deleted file mode 100644 index e778e911d..000000000 Binary files a/src/botan/checks/nist_tests/tests/test60/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test60/int1.crt b/src/botan/checks/nist_tests/tests/test60/int1.crt deleted file mode 100644 index 01d844201..000000000 Binary files a/src/botan/checks/nist_tests/tests/test60/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test60/int2.crl b/src/botan/checks/nist_tests/tests/test60/int2.crl deleted file mode 100644 index 4f4ac6bc0..000000000 Binary files a/src/botan/checks/nist_tests/tests/test60/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test60/int2.crt b/src/botan/checks/nist_tests/tests/test60/int2.crt deleted file mode 100644 index 0054dc622..000000000 Binary files a/src/botan/checks/nist_tests/tests/test60/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test60/int3.crl b/src/botan/checks/nist_tests/tests/test60/int3.crl deleted file mode 100644 index 0b568e7cc..000000000 Binary files a/src/botan/checks/nist_tests/tests/test60/int3.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test60/int3.crt b/src/botan/checks/nist_tests/tests/test60/int3.crt deleted file mode 100644 index 6fff65cc7..000000000 Binary files a/src/botan/checks/nist_tests/tests/test60/int3.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test60/int4.crl b/src/botan/checks/nist_tests/tests/test60/int4.crl deleted file mode 100644 index 4cf694a98..000000000 Binary files a/src/botan/checks/nist_tests/tests/test60/int4.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test60/int4.crt b/src/botan/checks/nist_tests/tests/test60/int4.crt deleted file mode 100644 index c5eebca96..000000000 Binary files a/src/botan/checks/nist_tests/tests/test60/int4.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test60/root.crl b/src/botan/checks/nist_tests/tests/test60/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test60/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test60/root.crt b/src/botan/checks/nist_tests/tests/test60/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test60/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test61/end.crt b/src/botan/checks/nist_tests/tests/test61/end.crt deleted file mode 100644 index 7be023caf..000000000 Binary files a/src/botan/checks/nist_tests/tests/test61/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test61/int1.crl b/src/botan/checks/nist_tests/tests/test61/int1.crl deleted file mode 100644 index 05c2809aa..000000000 Binary files a/src/botan/checks/nist_tests/tests/test61/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test61/int1.crt b/src/botan/checks/nist_tests/tests/test61/int1.crt deleted file mode 100644 index ba03f6c24..000000000 Binary files a/src/botan/checks/nist_tests/tests/test61/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test61/int2.crl b/src/botan/checks/nist_tests/tests/test61/int2.crl deleted file mode 100644 index d74b9168c..000000000 Binary files a/src/botan/checks/nist_tests/tests/test61/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test61/int2.crt b/src/botan/checks/nist_tests/tests/test61/int2.crt deleted file mode 100644 index bd4e40ea3..000000000 Binary files a/src/botan/checks/nist_tests/tests/test61/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test61/int3.crl b/src/botan/checks/nist_tests/tests/test61/int3.crl deleted file mode 100644 index 7e6e83fb2..000000000 Binary files a/src/botan/checks/nist_tests/tests/test61/int3.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test61/int3.crt b/src/botan/checks/nist_tests/tests/test61/int3.crt deleted file mode 100644 index 4f9342b20..000000000 Binary files a/src/botan/checks/nist_tests/tests/test61/int3.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test61/int4.crl b/src/botan/checks/nist_tests/tests/test61/int4.crl deleted file mode 100644 index 7161f4192..000000000 Binary files a/src/botan/checks/nist_tests/tests/test61/int4.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test61/int4.crt b/src/botan/checks/nist_tests/tests/test61/int4.crt deleted file mode 100644 index 5962eedfa..000000000 Binary files a/src/botan/checks/nist_tests/tests/test61/int4.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test61/root.crl b/src/botan/checks/nist_tests/tests/test61/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test61/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test61/root.crt b/src/botan/checks/nist_tests/tests/test61/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test61/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test62/end.crt b/src/botan/checks/nist_tests/tests/test62/end.crt deleted file mode 100644 index bff8ea4cb..000000000 Binary files a/src/botan/checks/nist_tests/tests/test62/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test62/int1.crl b/src/botan/checks/nist_tests/tests/test62/int1.crl deleted file mode 100644 index aa26a419a..000000000 Binary files a/src/botan/checks/nist_tests/tests/test62/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test62/int1.crt b/src/botan/checks/nist_tests/tests/test62/int1.crt deleted file mode 100644 index aee257d7e..000000000 Binary files a/src/botan/checks/nist_tests/tests/test62/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test62/int2.crl b/src/botan/checks/nist_tests/tests/test62/int2.crl deleted file mode 100644 index 61e712f0d..000000000 Binary files a/src/botan/checks/nist_tests/tests/test62/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test62/int2.crt b/src/botan/checks/nist_tests/tests/test62/int2.crt deleted file mode 100644 index a62d9a026..000000000 Binary files a/src/botan/checks/nist_tests/tests/test62/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test62/int3.crl b/src/botan/checks/nist_tests/tests/test62/int3.crl deleted file mode 100644 index 09707fd7b..000000000 Binary files a/src/botan/checks/nist_tests/tests/test62/int3.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test62/int3.crt b/src/botan/checks/nist_tests/tests/test62/int3.crt deleted file mode 100644 index aa91f3427..000000000 Binary files a/src/botan/checks/nist_tests/tests/test62/int3.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test62/int4.crl b/src/botan/checks/nist_tests/tests/test62/int4.crl deleted file mode 100644 index 997a057f2..000000000 Binary files a/src/botan/checks/nist_tests/tests/test62/int4.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test62/int4.crt b/src/botan/checks/nist_tests/tests/test62/int4.crt deleted file mode 100644 index 744603003..000000000 Binary files a/src/botan/checks/nist_tests/tests/test62/int4.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test62/root.crl b/src/botan/checks/nist_tests/tests/test62/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test62/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test62/root.crt b/src/botan/checks/nist_tests/tests/test62/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test62/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test63/end.crt b/src/botan/checks/nist_tests/tests/test63/end.crt deleted file mode 100644 index 16c1c687d..000000000 Binary files a/src/botan/checks/nist_tests/tests/test63/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test63/int1.crl b/src/botan/checks/nist_tests/tests/test63/int1.crl deleted file mode 100644 index 40c4afc45..000000000 Binary files a/src/botan/checks/nist_tests/tests/test63/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test63/int1.crt b/src/botan/checks/nist_tests/tests/test63/int1.crt deleted file mode 100644 index 6b3f6eb4b..000000000 Binary files a/src/botan/checks/nist_tests/tests/test63/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test63/int2.crl b/src/botan/checks/nist_tests/tests/test63/int2.crl deleted file mode 100644 index 7bffd4661..000000000 Binary files a/src/botan/checks/nist_tests/tests/test63/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test63/int2.crt b/src/botan/checks/nist_tests/tests/test63/int2.crt deleted file mode 100644 index f2e88f9fe..000000000 Binary files a/src/botan/checks/nist_tests/tests/test63/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test63/int3.crl b/src/botan/checks/nist_tests/tests/test63/int3.crl deleted file mode 100644 index 20f503c6b..000000000 Binary files a/src/botan/checks/nist_tests/tests/test63/int3.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test63/int3.crt b/src/botan/checks/nist_tests/tests/test63/int3.crt deleted file mode 100644 index 2d636dd43..000000000 Binary files a/src/botan/checks/nist_tests/tests/test63/int3.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test63/int4.crl b/src/botan/checks/nist_tests/tests/test63/int4.crl deleted file mode 100644 index 71e622907..000000000 Binary files a/src/botan/checks/nist_tests/tests/test63/int4.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test63/int4.crt b/src/botan/checks/nist_tests/tests/test63/int4.crt deleted file mode 100644 index a0ed3a167..000000000 Binary files a/src/botan/checks/nist_tests/tests/test63/int4.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test63/root.crl b/src/botan/checks/nist_tests/tests/test63/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test63/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test63/root.crt b/src/botan/checks/nist_tests/tests/test63/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test63/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test64/end.crt b/src/botan/checks/nist_tests/tests/test64/end.crt deleted file mode 100644 index 771423eca..000000000 Binary files a/src/botan/checks/nist_tests/tests/test64/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test64/int.crl b/src/botan/checks/nist_tests/tests/test64/int.crl deleted file mode 100644 index 0e3e2bd95..000000000 Binary files a/src/botan/checks/nist_tests/tests/test64/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test64/int.crt b/src/botan/checks/nist_tests/tests/test64/int.crt deleted file mode 100644 index 1ae82584e..000000000 Binary files a/src/botan/checks/nist_tests/tests/test64/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test64/root.crl b/src/botan/checks/nist_tests/tests/test64/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test64/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test64/root.crt b/src/botan/checks/nist_tests/tests/test64/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test64/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test65/end.crt b/src/botan/checks/nist_tests/tests/test65/end.crt deleted file mode 100644 index 29d51a7f9..000000000 Binary files a/src/botan/checks/nist_tests/tests/test65/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test65/int.crl b/src/botan/checks/nist_tests/tests/test65/int.crl deleted file mode 100644 index bd2d906ff..000000000 Binary files a/src/botan/checks/nist_tests/tests/test65/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test65/int1.crt b/src/botan/checks/nist_tests/tests/test65/int1.crt deleted file mode 100644 index 214c839fe..000000000 Binary files a/src/botan/checks/nist_tests/tests/test65/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test65/int2.crt b/src/botan/checks/nist_tests/tests/test65/int2.crt deleted file mode 100644 index 57c2e5914..000000000 Binary files a/src/botan/checks/nist_tests/tests/test65/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test65/root.crl b/src/botan/checks/nist_tests/tests/test65/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test65/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test65/root.crt b/src/botan/checks/nist_tests/tests/test65/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test65/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test66/end.crt b/src/botan/checks/nist_tests/tests/test66/end.crt deleted file mode 100644 index ccdb0e086..000000000 Binary files a/src/botan/checks/nist_tests/tests/test66/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test66/int.crl b/src/botan/checks/nist_tests/tests/test66/int.crl deleted file mode 100644 index f80b444e2..000000000 Binary files a/src/botan/checks/nist_tests/tests/test66/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test66/int.crt b/src/botan/checks/nist_tests/tests/test66/int.crt deleted file mode 100644 index 23f8b17c2..000000000 Binary files a/src/botan/checks/nist_tests/tests/test66/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test66/root.crl b/src/botan/checks/nist_tests/tests/test66/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test66/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test66/root.crt b/src/botan/checks/nist_tests/tests/test66/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test66/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test67/end.crt b/src/botan/checks/nist_tests/tests/test67/end.crt deleted file mode 100644 index 85d5508db..000000000 Binary files a/src/botan/checks/nist_tests/tests/test67/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test67/int.crt b/src/botan/checks/nist_tests/tests/test67/int.crt deleted file mode 100644 index 92a4b3a95..000000000 Binary files a/src/botan/checks/nist_tests/tests/test67/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test67/int1.crl b/src/botan/checks/nist_tests/tests/test67/int1.crl deleted file mode 100644 index 3fe834938..000000000 Binary files a/src/botan/checks/nist_tests/tests/test67/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test67/int2.crl b/src/botan/checks/nist_tests/tests/test67/int2.crl deleted file mode 100644 index 15593fa84..000000000 Binary files a/src/botan/checks/nist_tests/tests/test67/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test67/root.crl b/src/botan/checks/nist_tests/tests/test67/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test67/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test67/root.crt b/src/botan/checks/nist_tests/tests/test67/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test67/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test68/end.crt b/src/botan/checks/nist_tests/tests/test68/end.crt deleted file mode 100644 index bddd72da6..000000000 Binary files a/src/botan/checks/nist_tests/tests/test68/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test68/int1.crl b/src/botan/checks/nist_tests/tests/test68/int1.crl deleted file mode 100644 index fdbf8ea0c..000000000 Binary files a/src/botan/checks/nist_tests/tests/test68/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test68/int1.crt b/src/botan/checks/nist_tests/tests/test68/int1.crt deleted file mode 100644 index 4bc8127b3..000000000 Binary files a/src/botan/checks/nist_tests/tests/test68/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test68/int2.crl b/src/botan/checks/nist_tests/tests/test68/int2.crl deleted file mode 100644 index 33b764094..000000000 Binary files a/src/botan/checks/nist_tests/tests/test68/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test68/int2.crt b/src/botan/checks/nist_tests/tests/test68/int2.crt deleted file mode 100644 index 1ca8d5c32..000000000 Binary files a/src/botan/checks/nist_tests/tests/test68/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test68/root.crl b/src/botan/checks/nist_tests/tests/test68/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test68/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test68/root.crt b/src/botan/checks/nist_tests/tests/test68/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test68/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test69/end.crt b/src/botan/checks/nist_tests/tests/test69/end.crt deleted file mode 100644 index 00fc716dc..000000000 Binary files a/src/botan/checks/nist_tests/tests/test69/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test69/int.crl b/src/botan/checks/nist_tests/tests/test69/int.crl deleted file mode 100644 index fc09d351a..000000000 Binary files a/src/botan/checks/nist_tests/tests/test69/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test69/int.crt b/src/botan/checks/nist_tests/tests/test69/int.crt deleted file mode 100644 index 6c19ee09e..000000000 Binary files a/src/botan/checks/nist_tests/tests/test69/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test69/root.crl b/src/botan/checks/nist_tests/tests/test69/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test69/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test69/root.crt b/src/botan/checks/nist_tests/tests/test69/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test69/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test70/end.crt b/src/botan/checks/nist_tests/tests/test70/end.crt deleted file mode 100644 index c576960be..000000000 Binary files a/src/botan/checks/nist_tests/tests/test70/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test70/int1.crl b/src/botan/checks/nist_tests/tests/test70/int1.crl deleted file mode 100644 index 77dafb909..000000000 Binary files a/src/botan/checks/nist_tests/tests/test70/int1.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test70/int1.crt b/src/botan/checks/nist_tests/tests/test70/int1.crt deleted file mode 100644 index 5509c5438..000000000 Binary files a/src/botan/checks/nist_tests/tests/test70/int1.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test70/int2.crl b/src/botan/checks/nist_tests/tests/test70/int2.crl deleted file mode 100644 index 4e22f3966..000000000 Binary files a/src/botan/checks/nist_tests/tests/test70/int2.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test70/int2.crt b/src/botan/checks/nist_tests/tests/test70/int2.crt deleted file mode 100644 index 9af80b8e4..000000000 Binary files a/src/botan/checks/nist_tests/tests/test70/int2.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test70/root.crl b/src/botan/checks/nist_tests/tests/test70/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test70/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test70/root.crt b/src/botan/checks/nist_tests/tests/test70/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test70/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test71/end.crt b/src/botan/checks/nist_tests/tests/test71/end.crt deleted file mode 100644 index 0cc1718ee..000000000 Binary files a/src/botan/checks/nist_tests/tests/test71/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test71/int.crl b/src/botan/checks/nist_tests/tests/test71/int.crl deleted file mode 100644 index c34a95df1..000000000 Binary files a/src/botan/checks/nist_tests/tests/test71/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test71/int.crt b/src/botan/checks/nist_tests/tests/test71/int.crt deleted file mode 100644 index 07076019c..000000000 Binary files a/src/botan/checks/nist_tests/tests/test71/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test71/root.crl b/src/botan/checks/nist_tests/tests/test71/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test71/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test71/root.crt b/src/botan/checks/nist_tests/tests/test71/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test71/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test72/end.crt b/src/botan/checks/nist_tests/tests/test72/end.crt deleted file mode 100644 index 6c61375d8..000000000 Binary files a/src/botan/checks/nist_tests/tests/test72/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test72/int.crl b/src/botan/checks/nist_tests/tests/test72/int.crl deleted file mode 100644 index 643141b37..000000000 Binary files a/src/botan/checks/nist_tests/tests/test72/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test72/int.crt b/src/botan/checks/nist_tests/tests/test72/int.crt deleted file mode 100644 index 36b1f2052..000000000 Binary files a/src/botan/checks/nist_tests/tests/test72/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test72/root.crl b/src/botan/checks/nist_tests/tests/test72/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test72/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test72/root.crt b/src/botan/checks/nist_tests/tests/test72/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test72/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test73/end.crt b/src/botan/checks/nist_tests/tests/test73/end.crt deleted file mode 100644 index 9bae5325f..000000000 Binary files a/src/botan/checks/nist_tests/tests/test73/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test73/int.crl b/src/botan/checks/nist_tests/tests/test73/int.crl deleted file mode 100644 index 6b76dc0b8..000000000 Binary files a/src/botan/checks/nist_tests/tests/test73/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test73/int.crt b/src/botan/checks/nist_tests/tests/test73/int.crt deleted file mode 100644 index ff6df2598..000000000 Binary files a/src/botan/checks/nist_tests/tests/test73/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test73/root.crl b/src/botan/checks/nist_tests/tests/test73/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test73/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test73/root.crt b/src/botan/checks/nist_tests/tests/test73/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test73/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test74/end.crt b/src/botan/checks/nist_tests/tests/test74/end.crt deleted file mode 100644 index 93e05bd1e..000000000 Binary files a/src/botan/checks/nist_tests/tests/test74/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test74/int.crl b/src/botan/checks/nist_tests/tests/test74/int.crl deleted file mode 100644 index 8733b183c..000000000 Binary files a/src/botan/checks/nist_tests/tests/test74/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test74/int.crt b/src/botan/checks/nist_tests/tests/test74/int.crt deleted file mode 100644 index c9258148d..000000000 Binary files a/src/botan/checks/nist_tests/tests/test74/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test74/root.crl b/src/botan/checks/nist_tests/tests/test74/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test74/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test74/root.crt b/src/botan/checks/nist_tests/tests/test74/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test74/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test75/end.crt b/src/botan/checks/nist_tests/tests/test75/end.crt deleted file mode 100644 index 7d8179be0..000000000 Binary files a/src/botan/checks/nist_tests/tests/test75/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test75/int.crl b/src/botan/checks/nist_tests/tests/test75/int.crl deleted file mode 100644 index 19f472c7f..000000000 Binary files a/src/botan/checks/nist_tests/tests/test75/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test75/int.crt b/src/botan/checks/nist_tests/tests/test75/int.crt deleted file mode 100644 index 4a4c27e8c..000000000 Binary files a/src/botan/checks/nist_tests/tests/test75/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test75/root.crl b/src/botan/checks/nist_tests/tests/test75/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test75/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test75/root.crt b/src/botan/checks/nist_tests/tests/test75/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test75/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test76/end.crt b/src/botan/checks/nist_tests/tests/test76/end.crt deleted file mode 100644 index bde477d89..000000000 Binary files a/src/botan/checks/nist_tests/tests/test76/end.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test76/int.crl b/src/botan/checks/nist_tests/tests/test76/int.crl deleted file mode 100644 index dbbbd43be..000000000 Binary files a/src/botan/checks/nist_tests/tests/test76/int.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test76/int.crt b/src/botan/checks/nist_tests/tests/test76/int.crt deleted file mode 100644 index ab1c64390..000000000 Binary files a/src/botan/checks/nist_tests/tests/test76/int.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test76/root.crl b/src/botan/checks/nist_tests/tests/test76/root.crl deleted file mode 100644 index de65024ad..000000000 Binary files a/src/botan/checks/nist_tests/tests/test76/root.crl and /dev/null differ diff --git a/src/botan/checks/nist_tests/tests/test76/root.crt b/src/botan/checks/nist_tests/tests/test76/root.crt deleted file mode 100644 index d7dfd9d48..000000000 Binary files a/src/botan/checks/nist_tests/tests/test76/root.crt and /dev/null differ diff --git a/src/botan/checks/nist_tests/x509test.cpp b/src/botan/checks/nist_tests/x509test.cpp deleted file mode 100644 index 0c4c04029..000000000 --- a/src/botan/checks/nist_tests/x509test.cpp +++ /dev/null @@ -1,348 +0,0 @@ -/* - Code to run the X.509v3 processing tests described in "Conformance - Testing of Relying Party Client Certificate Path Proccessing Logic", - which is available on NIST's web site. -*/ - -#include -#include -using namespace Botan; - -#include -#include -#include -#include -#include -#include -#include - -#include - -std::vector dir_listing(const std::string&); - -void run_one_test(u32bit, X509_Code, - std::string, std::string, - std::vector, - std::vector); - -std::map expected_results; - -u32bit unexp_failure, unexp_success, wrong_error, skipped; - -void populate_expected_results(); - -int main() - { - const std::string root_test_dir = "tests/"; - unexp_failure = unexp_success = wrong_error = skipped = 0; - - try { - - LibraryInitializer init; - - populate_expected_results(); - - std::vector test_dirs = dir_listing(root_test_dir); - std::sort(test_dirs.begin(), test_dirs.end()); - - for(size_t j = 0; j != test_dirs.size(); j++) - { - const std::string test_dir = root_test_dir + test_dirs[j] + "/"; - std::vector all_files = dir_listing(test_dir); - - std::vector certs, crls; - std::string root_cert, to_verify; - - for(size_t k = 0; k != all_files.size(); k++) - { - const std::string current = all_files[k]; - if(current.find("int") != std::string::npos && - current.find(".crt") != std::string::npos) - certs.push_back(test_dir + current); - else if(current.find("root.crt") != std::string::npos) - root_cert = test_dir + current; - else if(current.find("end.crt") != std::string::npos) - to_verify = test_dir + current; - else if(current.find(".crl") != std::string::npos) - crls.push_back(test_dir + current); - } - - if(expected_results.find(j+1) == expected_results.end()) - { -#if 0 - std::cout << "Testing disabled for test #" << j+1 - << " " << std::endl; -#endif - skipped++; - continue; - } - - run_one_test(j+1, expected_results[j+1], - root_cert, to_verify, certs, crls); - } - - } - catch(std::exception& e) - { - std::cout << e.what() << std::endl; - return 1; - } - - std::cout << "Total unexpected failures: " << unexp_failure << std::endl; - std::cout << "Total unexpected successes: " << unexp_success << std::endl; - std::cout << "Total incorrect failures: " << wrong_error << std::endl; - std::cout << "Tests skipped: " << skipped << std::endl; - - return 0; - } - -void run_one_test(u32bit test_no, X509_Code expected, - std::string root_cert, std::string to_verify, - std::vector certs, - std::vector crls) - { - std::cout << "Processing test #" << test_no << "... "; - std::cout.flush(); - - X509_Code result = VERIFIED; - - X509_Store store; - - store.add_cert(X509_Certificate(root_cert), true); - - X509_Certificate end_user(to_verify); - - for(size_t j = 0; j != certs.size(); j++) - store.add_cert(X509_Certificate(certs[j])); - - for(size_t j = 0; j != crls.size(); j++) - { - DataSource_Stream in(crls[j]); - - X509_CRL crl(in); - /* - std::vector crl_entries = crl.get_revoked(); - for(u32bit k = 0; k != crl_entries.size(); k++) - { - std::cout << "Revoked: " << std::flush; - for(u32bit l = 0; l != crl_entries[k].serial.size(); l++) - printf("%02X", crl_entries[k].serial[l]); - std::cout << std::endl; - } - */ - result = store.add_crl(crl); - if(result != VERIFIED) - break; - } - - /* if everything has gone well up until now */ - - if(result == VERIFIED) - { - result = store.validate_cert(end_user); - - X509_Code result2 = store.validate_cert(end_user); - - if(result != result2) - std::cout << "Two runs, two answers: " << result << " " - << result2 << std::endl; - } - - if(result == expected) - { - std::cout << "passed" << std::endl; - return; - } - - if(expected == VERIFIED) - { - std::cout << "unexpected failure: " << result << std::endl; - unexp_failure++; - } - else if(result == VERIFIED) - { - std::cout << "unexpected success: " << expected << std::endl; - unexp_success++; - } - else - { - std::cout << "wrong error: " << result << "/" << expected << std::endl; - wrong_error++; - } - } - -std::vector dir_listing(const std::string& dir_name) - { - DIR* dir = opendir(dir_name.c_str()); - if(!dir) - { - std::cout << "Error, couldn't open dir " << dir_name << std::endl; - std::exit(1); - } - - std::vector listing; - - while(true) - { - struct dirent* dir_ent = readdir(dir); - - if(dir_ent == 0) - break; - const std::string entry = dir_ent->d_name; - if(entry == "." || entry == "..") - continue; - - listing.push_back(entry); - } - closedir(dir); - - return listing; - } - -/* - The expected results are essentially the error codes that best coorespond - to the problem described in the testing documentation. - - There are a few cases where the tests say there should or should not be an - error, and I disagree. A few of the tests have test results different from - what they "should" be: these changes are marked as such, and have comments - explaining the problem at hand. -*/ -void populate_expected_results() - { - /* OK, not a super great way of doing this... */ - expected_results[1] = VERIFIED; - expected_results[2] = SIGNATURE_ERROR; - expected_results[3] = SIGNATURE_ERROR; - expected_results[4] = VERIFIED; - expected_results[5] = CERT_NOT_YET_VALID; - expected_results[6] = CERT_NOT_YET_VALID; - expected_results[7] = VERIFIED; - expected_results[8] = CERT_NOT_YET_VALID; - expected_results[9] = CERT_HAS_EXPIRED; - expected_results[10] = CERT_HAS_EXPIRED; - expected_results[11] = CERT_HAS_EXPIRED; - expected_results[12] = VERIFIED; - expected_results[13] = CERT_ISSUER_NOT_FOUND; - - // FIXME: we get the answer right for the wrong reason - // ummm... I don't know if that is still true. I wish I had thought to - // write down exactly what this 'wrong reason' was in the first place. - expected_results[14] = CERT_ISSUER_NOT_FOUND; - expected_results[15] = VERIFIED; - expected_results[16] = VERIFIED; - expected_results[17] = VERIFIED; - expected_results[18] = VERIFIED; - - /************* CHANGE OF TEST RESULT FOR TEST #19 ************************ - One of the certificates has no attached CRL. By strict X.509 rules, if - there is no good CRL in hand, then the certificate shouldn't be used for - CA stuff. But while this is usually a good idea, it interferes with simple - uses of certificates which shouldn't (IMO) force the use of CRLs. There is - no assigned error code for this scenario because I don't consider it to be - an error (probably would be something like NO_REVOCATION_DATA_AVAILABLE) - **************************************************************************/ - expected_results[19] = VERIFIED; - expected_results[20] = CERT_IS_REVOKED; - expected_results[21] = CERT_IS_REVOKED; - - expected_results[22] = CA_CERT_NOT_FOR_CERT_ISSUER; - expected_results[23] = CA_CERT_NOT_FOR_CERT_ISSUER; - expected_results[24] = VERIFIED; - expected_results[25] = CA_CERT_NOT_FOR_CERT_ISSUER; - expected_results[26] = VERIFIED; - expected_results[27] = VERIFIED; - expected_results[28] = CA_CERT_NOT_FOR_CERT_ISSUER; - expected_results[29] = CA_CERT_NOT_FOR_CERT_ISSUER; - expected_results[30] = VERIFIED; - - expected_results[31] = CA_CERT_NOT_FOR_CRL_ISSUER; - expected_results[32] = CA_CERT_NOT_FOR_CRL_ISSUER; - expected_results[33] = VERIFIED; - - /* - Policy tests: a little trickier because there are other inputs - which affect the result. - - In the case of the tests currently in the suite, the default - method (with acceptable policy being "any-policy" and with no - explict policy required), will almost always result in a verified - status. This is not particularly helpful. So, we should do several - different tests for each test set: - - 1) With the user policy as any-policy and no explicit policy - 2) With the user policy as any-policy and an explicit policy required - 3) With the user policy as test-policy-1 (2.16.840.1.101.3.1.48.1) and - an explict policy required - 4) With the user policy as either test-policy-1 or test-policy-2 and an - explicit policy required - - This provides reasonably good coverage of the possible outcomes. - */ - - expected_results[34] = VERIFIED; - expected_results[35] = VERIFIED; - expected_results[36] = VERIFIED; - expected_results[37] = VERIFIED; - expected_results[38] = VERIFIED; - expected_results[39] = VERIFIED; - expected_results[40] = VERIFIED; - expected_results[41] = VERIFIED; - expected_results[42] = VERIFIED; - expected_results[43] = VERIFIED; - expected_results[44] = VERIFIED; - - //expected_results[45] = EXPLICT_POLICY_REQUIRED; - //expected_results[46] = ACCEPT; - //expected_results[47] = EXPLICT_POLICY_REQUIRED; - - expected_results[48] = VERIFIED; - expected_results[49] = VERIFIED; - expected_results[50] = VERIFIED; - expected_results[51] = VERIFIED; - expected_results[52] = VERIFIED; - expected_results[53] = VERIFIED; - - expected_results[54] = CERT_CHAIN_TOO_LONG; - expected_results[55] = CERT_CHAIN_TOO_LONG; - expected_results[56] = VERIFIED; - expected_results[57] = VERIFIED; - expected_results[58] = CERT_CHAIN_TOO_LONG; - expected_results[59] = CERT_CHAIN_TOO_LONG; - expected_results[60] = CERT_CHAIN_TOO_LONG; - expected_results[61] = CERT_CHAIN_TOO_LONG; - expected_results[62] = VERIFIED; - expected_results[63] = VERIFIED; - - expected_results[64] = SIGNATURE_ERROR; - - /************ CHANGE OF TEST RESULT FOR TEST #65 ************************* - I cannot figure out what exactly the problem here is supposed to be; - looking at it by hand, everything seems fine. If someone can explain I - would be happy to listen. - ************************************************************************/ - expected_results[65] = VERIFIED; - expected_results[66] = CRL_ISSUER_NOT_FOUND; - - /************ CHANGE OF TEST RESULT FOR TEST #67 ************************* - The test docs say this should be verified. However, the problem being that - there is an extra CRL with an unknown issuer. Returning VERIFIED in this - case is obviously bad, since the user may well want to know that the CRL - in question has no known issuer. So we return CRL_ISSUER_NOT_FOUND instead - of VERIFIED. The actual certificate path of course still verifies, but - it's kind of an all-or-nothing testing procedure. - ************************************************************************/ - expected_results[67] = CRL_ISSUER_NOT_FOUND; - - expected_results[68] = CERT_IS_REVOKED; - expected_results[69] = CERT_IS_REVOKED; - expected_results[70] = CERT_IS_REVOKED; - expected_results[71] = CERT_IS_REVOKED; - expected_results[72] = CRL_HAS_EXPIRED; - expected_results[73] = CRL_HAS_EXPIRED; - expected_results[74] = VERIFIED; - - /* These tests use weird CRL extensions which aren't supported yet */ - //expected_results[75] = ; - //expected_results[76] = ; - } diff --git a/src/botan/checks/pk.cpp b/src/botan/checks/pk.cpp deleted file mode 100644 index d45fc59fe..000000000 --- a/src/botan/checks/pk.cpp +++ /dev/null @@ -1,929 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include - -#include -#include - -#if defined(BOTAN_HAS_PUBLIC_KEY_CRYPTO) - #include - #include - #include -#endif - -#if defined(BOTAN_HAS_RSA) - #include -#endif - -#if defined(BOTAN_HAS_DSA) - #include -#endif - -#if defined(BOTAN_HAS_DIFFIE_HELLMAN) - #include -#endif - -#if defined(BOTAN_HAS_NYBERG_RUEPPEL) - #include -#endif - -#if defined(BOTAN_HAS_RW) - #include -#endif - -#if defined(BOTAN_HAS_ELGAMAL) - #include -#endif - -#if defined(BOTAN_HAS_ECDSA) - #include -#endif - -#if defined(BOTAN_HAS_ECDH) - #include -#endif - -#if defined(BOTAN_HAS_GOST_34_10_2001) - #include -#endif - -#if defined(BOTAN_HAS_DLIES) - #include - #include -#endif - -#include -#include -using namespace Botan; - -#include "common.h" -#include "validate.h" - -namespace { - -BigInt to_bigint(std::string input) - { - while(input.find(' ') != std::string::npos) - input = input.erase(input.find(' '), 1); - - while(input.find('\t') != std::string::npos) - input = input.erase(input.find('\t'), 1); - - while(input.find('\n') != std::string::npos) - input = input.erase(input.find('\n'), 1); - - return BigInt::decode(reinterpret_cast(input.data()), - input.length(), BigInt::Hexadecimal); - } - -void dump_data(const SecureVector& out, - const SecureVector& expected) - { - Pipe pipe(new Hex_Encoder); - - pipe.process_msg(out); - pipe.process_msg(expected); - std::cout << "Got: " << pipe.read_all_as_string(0) << std::endl; - std::cout << "Exp: " << pipe.read_all_as_string(1) << std::endl; - } - -void validate_save_and_load(const Private_Key* priv_key, - RandomNumberGenerator& rng) - { - std::string name = priv_key->algo_name(); - - std::string pub_pem = X509::PEM_encode(*priv_key); - - try - { - DataSource_Memory input_pub(pub_pem); - std::auto_ptr restored_pub(X509::load_key(input_pub)); - - if(restored_pub.get() == 0) - std::cout << "Could not recover " << name << " public key\n"; - else if(restored_pub->check_key(rng, true) == false) - std::cout << "Restored pubkey failed self tests " << name << "\n"; - } - catch(std::exception& e) - { - std::cout << "Exception during load of " << name - << " key: " << e.what() << "\n"; - std::cout << "PEM for pubkey was:\n" << pub_pem << "\n"; - } - - std::string priv_pem = PKCS8::PEM_encode(*priv_key); - - try - { - DataSource_Memory input_priv(priv_pem); - std::auto_ptr restored_priv( - PKCS8::load_key(input_priv, rng)); - - if(restored_priv.get() == 0) - std::cout << "Could not recover " << name << " privlic key\n"; - else if(restored_priv->check_key(rng, true) == false) - std::cout << "Restored privkey failed self tests " << name << "\n"; - } - catch(std::exception& e) - { - std::cout << "Exception during load of " << name - << " key: " << e.what() << "\n"; - std::cout << "PEM for privkey was:\n" << priv_pem << "\n"; - } - } - -void validate_decryption(PK_Decryptor& d, const std::string& algo, - const SecureVector ctext, - const SecureVector ptext, - bool& failure) - { - SecureVector decrypted = d.decrypt(ctext); - if(decrypted != ptext) - { - std::cout << "FAILED (decrypt): " << algo << std::endl; - dump_data(decrypted, ptext); - failure = true; - } - } - -void validate_encryption(PK_Encryptor& e, PK_Decryptor& d, - const std::string& algo, const std::string& input, - const std::string& random, const std::string& exp, - bool& failure) - { - SecureVector message = hex_decode(input); - SecureVector expected = hex_decode(exp); - Fixed_Output_RNG rng(hex_decode(random)); - - SecureVector out = e.encrypt(message, rng); - if(out != expected) - { - std::cout << "FAILED (encrypt): " << algo << std::endl; - dump_data(out, expected); - failure = true; - } - - validate_decryption(d, algo, out, message, failure); - } - -void validate_signature(PK_Verifier& v, PK_Signer& s, const std::string& algo, - const std::string& input, - RandomNumberGenerator& rng, - const std::string& exp, bool& failure) - { - SecureVector message = hex_decode(input); - - SecureVector expected = hex_decode(exp); - - SecureVector sig = s.sign_message(message, rng); - - if(sig != expected) - { - std::cout << "FAILED (sign): " << algo << std::endl; - dump_data(sig, expected); - failure = true; - } - - if(!v.verify_message(message, sig)) - { - std::cout << "FAILED (verify): " << algo << std::endl; - failure = true; - } - - /* This isn't a very thorough testing method, but it will hopefully - catch any really horrible errors */ - sig[0]++; - if(v.verify_message(message, sig)) - { - std::cout << "FAILED (accepted bad sig): " << algo << std::endl; - failure = true; - } - } - -void validate_signature(PK_Verifier& v, PK_Signer& s, const std::string& algo, - const std::string& input, - const std::string& random, - const std::string& exp, bool& failure) - { - Fixed_Output_RNG rng(hex_decode(random)); - - validate_signature(v, s, algo, input, rng, exp, failure); - } - -void validate_kas(PK_Key_Agreement& kas, const std::string& algo, - const SecureVector& pubkey, const std::string& output, - u32bit keylen, bool& failure) - { - SecureVector expected = hex_decode(output); - - SecureVector got = kas.derive_key(keylen, - pubkey).bits_of(); - - if(got != expected) - { - std::cout << "FAILED: " << algo << std::endl; - dump_data(got, expected); - failure = true; - } - } - -u32bit validate_rsa_enc_pkcs8(const std::string& algo, - const std::vector& str, - RandomNumberGenerator& rng) - { - if(str.size() != 4 && str.size() != 5) - throw std::runtime_error("Invalid input from pk_valid.dat"); - - -#if defined(BOTAN_HAS_RSA) - std::string pass; - if(str.size() == 5) pass = str[4]; - strip_newlines(pass); /* it will have a newline thanks to the messy - decoding method we use */ - - DataSource_Memory keysource(reinterpret_cast(str[0].c_str()), - str[0].length()); - - std::auto_ptr privkey(PKCS8::load_key(keysource, rng, pass)); - - RSA_PrivateKey* rsapriv = dynamic_cast(privkey.get()); - if(!rsapriv) - throw Invalid_Argument("Bad key load for RSA key"); - - RSA_PublicKey* rsapub = dynamic_cast(rsapriv); - - std::string eme = algo.substr(12, std::string::npos); - - PK_Encryptor_EME e(*rsapub, eme); - PK_Decryptor_EME d(*rsapriv, eme); - - bool failure = false; - validate_encryption(e, d, algo, str[1], str[2], str[3], failure); - return (failure ? 1 : 0); -#endif - - return 2; - } - -u32bit validate_rsa_enc(const std::string& algo, - const std::vector& str, - RandomNumberGenerator& rng) - { - if(str.size() != 6) - throw std::runtime_error("Invalid input from pk_valid.dat"); - -#if defined(BOTAN_HAS_RSA) - RSA_PrivateKey privkey(rng, - to_bigint(str[1]), to_bigint(str[2]), - to_bigint(str[0])); - - RSA_PublicKey pubkey = privkey; - - std::string eme = algo.substr(6, std::string::npos); - - PK_Encryptor_EME e(pubkey, eme); - PK_Decryptor_EME d(privkey, eme); - - bool failure = false; - validate_encryption(e, d, algo, str[3], str[4], str[5], failure); - return (failure ? 1 : 0); -#endif - - return 2; - } - -u32bit validate_elg_enc(const std::string& algo, - const std::vector& str, - RandomNumberGenerator& rng) - { - if(str.size() != 6 && str.size() != 7) - throw std::runtime_error("Invalid input from pk_valid.dat"); - - -#if defined(BOTAN_HAS_ELGAMAL) - DL_Group domain(to_bigint(str[0]), to_bigint(str[1])); - ElGamal_PrivateKey privkey(rng, domain, to_bigint(str[2])); - ElGamal_PublicKey pubkey = privkey; - - std::string eme = algo.substr(8, std::string::npos); - - PK_Decryptor_EME d(privkey, eme); - - bool failure = false; - if(str.size() == 7) - { - PK_Encryptor_EME e(pubkey, eme); - validate_encryption(e, d, algo, str[4], str[5], str[6], failure); - } - else - validate_decryption(d, algo, hex_decode(str[5]), - hex_decode(str[4]), failure); - return (failure ? 1 : 0); -#endif - - return 2; - } - -u32bit validate_rsa_sig(const std::string& algo, - const std::vector& str, - RandomNumberGenerator& rng) - { - if(str.size() != 6) - throw std::runtime_error("Invalid input from pk_valid.dat"); - - -#if defined(BOTAN_HAS_RSA) - RSA_PrivateKey privkey(rng, - to_bigint(str[1]), to_bigint(str[2]), - to_bigint(str[0])); - - RSA_PublicKey pubkey = privkey; - - std::string emsa = algo.substr(7, std::string::npos); - - PK_Verifier v(pubkey, emsa); - PK_Signer s(privkey, emsa); - bool failure = false; - validate_signature(v, s, algo, str[3], str[4], str[5], failure); - return (failure ? 1 : 0); -#endif - - return 2; - } - -u32bit validate_rsa_ver(const std::string& algo, - const std::vector& str) - { - if(str.size() != 5) /* is actually 4, parse() adds an extra empty one */ - throw std::runtime_error("Invalid input from pk_valid.dat"); - -#if defined(BOTAN_HAS_RSA) - RSA_PublicKey key(to_bigint(str[1]), to_bigint(str[0])); - - std::string emsa = algo.substr(6, std::string::npos); - - PK_Verifier v(key, emsa); - - SecureVector msg = hex_decode(str[2]); - SecureVector sig = hex_decode(str[3]); - - bool passed = true; - passed = v.verify_message(msg, sig); - return (passed ? 0 : 1); -#endif - - return 2; - } - -u32bit validate_rsa_ver_x509(const std::string& algo, - const std::vector& str) - { - if(str.size() != 5) /* is actually 3, parse() adds extra empty ones */ - throw std::runtime_error("Invalid input from pk_valid.dat"); - -#if defined(BOTAN_HAS_RSA) - DataSource_Memory keysource(reinterpret_cast(str[0].c_str()), - str[0].length()); - - std::auto_ptr key(X509::load_key(keysource)); - - RSA_PublicKey* rsakey = dynamic_cast(key.get()); - - if(!rsakey) - throw Invalid_Argument("Bad key load for RSA public key"); - - std::string emsa = algo.substr(11, std::string::npos); - - PK_Verifier v(*rsakey, emsa); - - SecureVector msg = hex_decode(str[1]); - SecureVector sig = hex_decode(str[2]); - - bool passed = v.verify_message(msg, sig); - return (passed ? 0 : 1); - -#endif - - return 2; - } - -u32bit validate_rw_ver(const std::string& algo, - const std::vector& str) - { - if(str.size() != 5) - throw std::runtime_error("Invalid input from pk_valid.dat"); - -#if defined(BOTAN_HAS_RW) - RW_PublicKey key(to_bigint(str[1]), to_bigint(str[0])); - - std::string emsa = algo.substr(5, std::string::npos); - - PK_Verifier v(key, emsa); - - SecureVector msg = hex_decode(str[2]); - SecureVector sig = hex_decode(str[3]); - - bool passed = true; - passed = v.verify_message(msg, sig); - return (passed ? 0 : 1); -#endif - - return 2; - } - -u32bit validate_rw_sig(const std::string& algo, - const std::vector& str, - RandomNumberGenerator& rng) - { - if(str.size() != 5) - throw std::runtime_error("Invalid input from pk_valid.dat"); - -#if defined(BOTAN_HAS_RW) - RW_PrivateKey privkey(rng, to_bigint(str[1]), to_bigint(str[2]), - to_bigint(str[0])); - RW_PublicKey pubkey = privkey; - - std::string emsa = algo.substr(3, std::string::npos); - - PK_Verifier v(pubkey, emsa); - PK_Signer s(privkey, emsa); - - bool failure = false; - validate_signature(v, s, algo, str[3], rng, str[4], failure); - return (failure ? 1 : 0); -#endif - - return 2; - } - -u32bit validate_dsa_sig(const std::string& algo, - const std::vector& str, - RandomNumberGenerator& rng) - { - if(str.size() != 4 && str.size() != 5) - throw std::runtime_error("Invalid input from pk_valid.dat"); - - std::string pass; - if(str.size() == 5) pass = str[4]; - strip_newlines(pass); /* it will have a newline thanks to the messy - decoding method we use */ - -#if defined(BOTAN_HAS_DSA) - - DataSource_Memory keysource(reinterpret_cast(str[0].c_str()), - str[0].length()); - - std::auto_ptr privkey(PKCS8::load_key(keysource, rng, pass)); - - DSA_PrivateKey* dsapriv = dynamic_cast(privkey.get()); - if(!dsapriv) - throw Invalid_Argument("Bad key load for DSA private key"); - - DSA_PublicKey* dsapub = dynamic_cast(dsapriv); - - std::string emsa = algo.substr(4, std::string::npos); - - PK_Verifier v(*dsapub, emsa); - PK_Signer s(*dsapriv, emsa); - - bool failure = false; - validate_signature(v, s, algo, str[1], str[2], str[3], failure); - return (failure ? 1 : 0); -#endif - - return 2; - } - -u32bit validate_ecdsa_sig(const std::string& algo, - const std::vector& str, - RandomNumberGenerator& rng) - { - if(str.size() != 5) - throw std::runtime_error("Invalid input from pk_valid.dat"); - -#if defined(BOTAN_HAS_ECDSA) - - EC_Group group(OIDS::lookup(str[0])); - ECDSA_PrivateKey ecdsa(rng, group, to_bigint(str[1])); - - std::string emsa = algo.substr(6, std::string::npos); - - PK_Verifier v(ecdsa, emsa); - PK_Signer s(ecdsa, emsa); - - bool failure = false; - validate_signature(v, s, algo, str[2], str[3], str[4], failure); - return (failure ? 1 : 0); -#endif - - return 2; - } - -u32bit validate_gost_ver(const std::string& algo, - const std::vector& str) - { - if(str.size() != 5) - throw std::runtime_error("Invalid input from pk_valid.dat"); - -#if defined(BOTAN_HAS_GOST_34_10_2001) - - EC_Group group(OIDS::lookup(str[0])); - - PointGFp public_point = OS2ECP(hex_decode(str[1]), group.get_curve()); - - GOST_3410_PublicKey gost(group, public_point); - - std::string emsa = algo.substr(13, std::string::npos); - - PK_Verifier v(gost, emsa); - - SecureVector msg = hex_decode(str[2]); - SecureVector sig = hex_decode(str[3]); - - bool passed = v.verify_message(msg, sig); - return (passed ? 0 : 1); -#endif - - return 2; - } - -u32bit validate_dsa_ver(const std::string& algo, - const std::vector& str) - { - if(str.size() != 5) /* is actually 3, parse() adds extra empty ones */ - throw std::runtime_error("Invalid input from pk_valid.dat"); - - DataSource_Memory keysource(reinterpret_cast(str[0].c_str()), - str[0].length()); - - -#if defined(BOTAN_HAS_DSA) - std::auto_ptr key(X509::load_key(keysource)); - - DSA_PublicKey* dsakey = dynamic_cast(key.get()); - - if(!dsakey) - throw Invalid_Argument("Bad key load for DSA public key"); - - std::string emsa = algo.substr(7, std::string::npos); - - PK_Verifier v(*dsakey, emsa); - - SecureVector msg = hex_decode(str[1]); - SecureVector sig = hex_decode(str[2]); - - v.set_input_format(DER_SEQUENCE); - bool passed = v.verify_message(msg, sig); - return (passed ? 0 : 1); -#endif - - return 2; - } - -u32bit validate_nr_sig(const std::string& algo, - const std::vector& str, - RandomNumberGenerator& rng) - { - if(str.size() != 8) - throw std::runtime_error("Invalid input from pk_valid.dat"); - - -#if defined(BOTAN_HAS_NYBERG_RUEPPEL) - - DL_Group domain(to_bigint(str[0]), to_bigint(str[1]), to_bigint(str[2])); - NR_PrivateKey privkey(rng, domain, to_bigint(str[4])); - NR_PublicKey pubkey = privkey; - - std::string emsa = algo.substr(3, std::string::npos); - - PK_Verifier v(pubkey, emsa); - PK_Signer s(privkey, emsa); - - bool failure = false; - validate_signature(v, s, algo, str[5], str[6], str[7], failure); - return (failure ? 1 : 0); -#endif - - return 2; - } - -u32bit validate_dh(const std::string& algo, - const std::vector& str, - RandomNumberGenerator& rng) - { - if(str.size() != 5 && str.size() != 6) - throw std::runtime_error("Invalid input from pk_valid.dat"); - - -#if defined(BOTAN_HAS_DIFFIE_HELLMAN) - DL_Group domain(to_bigint(str[0]), to_bigint(str[1])); - - DH_PrivateKey mykey(rng, domain, to_bigint(str[2])); - DH_PublicKey otherkey(domain, to_bigint(str[3])); - - std::string kdf = algo.substr(3, std::string::npos); - - u32bit keylen = 0; - if(str.size() == 6) - keylen = to_u32bit(str[5]); - - PK_Key_Agreement kas(mykey, kdf); - - bool failure = false; - validate_kas(kas, algo, otherkey.public_value(), - str[4], keylen, failure); - return (failure ? 1 : 0); -#endif - - return 2; - } - -u32bit validate_dlies(const std::string& algo, - const std::vector& str, - RandomNumberGenerator& rng) - { - if(str.size() != 6) - throw std::runtime_error("Invalid input from pk_valid.dat"); - -#if defined(BOTAN_HAS_DLIES) - DL_Group domain(to_bigint(str[0]), to_bigint(str[1])); - - DH_PrivateKey from(rng, domain, to_bigint(str[2])); - DH_PrivateKey to(rng, domain, to_bigint(str[3])); - - const std::string opt_str = algo.substr(6, std::string::npos); - - std::vector options = split_on(opt_str, '/'); - - if(options.size() != 3) - throw std::runtime_error("DLIES needs three options: " + opt_str); - - MessageAuthenticationCode* mac = get_mac(options[1]); - u32bit mac_key_len = to_u32bit(options[2]); - - DLIES_Encryptor e(from, - get_kdf(options[0]), - mac, mac_key_len); - - DLIES_Decryptor d(to, - get_kdf(options[0]), - mac->clone(), mac_key_len); - - e.set_other_key(to.public_value()); - - std::string empty = ""; - bool failure = false; - validate_encryption(e, d, algo, str[4], empty, str[5], failure); - return (failure ? 1 : 0); -#else - return 2; -#endif - } - -void do_pk_keygen_tests(RandomNumberGenerator& rng) - { - std::cout << "Testing PK key generation: " << std::flush; - -#define DL_KEY(TYPE, GROUP) \ - { \ - TYPE key(rng, DL_Group(GROUP)); \ - key.check_key(rng, true); \ - validate_save_and_load(&key, rng); \ - std::cout << '.' << std::flush; \ - } - -#define EC_KEY(TYPE, GROUP) \ - { \ - TYPE key(rng, EC_Group(OIDS::lookup(GROUP))); \ - key.check_key(rng, true); \ - validate_save_and_load(&key, rng); \ - std::cout << '.' << std::flush; \ - } - -#if defined(BOTAN_HAS_RSA) - { - RSA_PrivateKey rsa1024(rng, 1024); - rsa1024.check_key(rng, true); - validate_save_and_load(&rsa1024, rng); - std::cout << '.' << std::flush; - } -#endif - -#if defined(BOTAN_HAS_RW) - { - RW_PrivateKey rw1024(rng, 1024); - rw1024.check_key(rng, true); - validate_save_and_load(&rw1024, rng); - std::cout << '.' << std::flush; - } -#endif - -#if defined(BOTAN_HAS_DSA) - DL_KEY(DSA_PrivateKey, "dsa/jce/512"); - DL_KEY(DSA_PrivateKey, "dsa/jce/768"); - DL_KEY(DSA_PrivateKey, "dsa/jce/1024"); - DL_KEY(DSA_PrivateKey, "dsa/botan/2048"); - DL_KEY(DSA_PrivateKey, "dsa/botan/3072"); -#endif - -#if defined(BOTAN_HAS_DIFFIE_HELLMAN) - DL_KEY(DH_PrivateKey, "modp/ietf/768"); - DL_KEY(DH_PrivateKey, "modp/ietf/1024"); - DL_KEY(DH_PrivateKey, "modp/ietf/2048"); - DL_KEY(DH_PrivateKey, "modp/ietf/4096"); - DL_KEY(DH_PrivateKey, "dsa/jce/1024"); -#endif - -#if defined(BOTAN_HAS_NYBERG_RUEPPEL) - DL_KEY(NR_PrivateKey, "dsa/jce/512"); - DL_KEY(NR_PrivateKey, "dsa/jce/768"); - DL_KEY(NR_PrivateKey, "dsa/jce/1024"); - DL_KEY(NR_PrivateKey, "dsa/botan/2048"); - DL_KEY(NR_PrivateKey, "dsa/botan/3072"); -#endif - -#if defined(BOTAN_HAS_ELGAMAL) - DL_KEY(ElGamal_PrivateKey, "modp/ietf/768"); - DL_KEY(ElGamal_PrivateKey, "modp/ietf/1024"); - DL_KEY(ElGamal_PrivateKey, "dsa/jce/1024"); - DL_KEY(ElGamal_PrivateKey, "dsa/botan/2048"); - DL_KEY(ElGamal_PrivateKey, "dsa/botan/3072"); -#endif - -#if defined(BOTAN_HAS_ECDSA) - EC_KEY(ECDSA_PrivateKey, "secp112r1"); - EC_KEY(ECDSA_PrivateKey, "secp128r1"); - EC_KEY(ECDSA_PrivateKey, "secp160r1"); - EC_KEY(ECDSA_PrivateKey, "secp192r1"); - EC_KEY(ECDSA_PrivateKey, "secp224r1"); - EC_KEY(ECDSA_PrivateKey, "secp256r1"); - EC_KEY(ECDSA_PrivateKey, "secp384r1"); - EC_KEY(ECDSA_PrivateKey, "secp521r1"); -#endif - -#if defined(BOTAN_HAS_GOST_34_10_2001) - EC_KEY(GOST_3410_PrivateKey, "gost_256A"); - EC_KEY(GOST_3410_PrivateKey, "secp112r1"); - EC_KEY(GOST_3410_PrivateKey, "secp128r1"); - EC_KEY(GOST_3410_PrivateKey, "secp160r1"); - EC_KEY(GOST_3410_PrivateKey, "secp192r1"); - EC_KEY(GOST_3410_PrivateKey, "secp224r1"); - EC_KEY(GOST_3410_PrivateKey, "secp256r1"); - EC_KEY(GOST_3410_PrivateKey, "secp384r1"); - EC_KEY(GOST_3410_PrivateKey, "secp521r1"); -#endif - - std::cout << std::endl; - } - -} - -u32bit do_pk_validation_tests(const std::string& filename, - RandomNumberGenerator& rng) - { - std::ifstream test_data(filename.c_str()); - - if(!test_data) - throw Botan::Stream_IO_Error("Couldn't open test file " + filename); - - u32bit errors = 0, alg_count = 0; - std::string algorithm, print_algorithm; - - while(!test_data.eof()) - { - if(test_data.bad() || test_data.fail()) - throw Botan::Stream_IO_Error("File I/O error reading from " + - filename); - - std::string line; - std::getline(test_data, line); - - strip_comments(line); - if(line.size() == 0) continue; - - // Do line continuation - while(line[line.size()-1] == '\\' && !test_data.eof()) - { - line.replace(line.size()-1, 1, ""); - std::string nextline; - std::getline(test_data, nextline); - strip_comments(nextline); - if(nextline.size() == 0) continue; - line.push_back('\n'); - line += nextline; - } - - if(line[0] == '[' && line[line.size() - 1] == ']') - { - std::string old_algo = print_algorithm; - algorithm = line.substr(1, line.size() - 2); - print_algorithm = algorithm; - if(print_algorithm.find("_PKCS8") != std::string::npos) - print_algorithm.replace(print_algorithm.find("_PKCS8"), 6, ""); - if(print_algorithm.find("_X509") != std::string::npos) - print_algorithm.replace(print_algorithm.find("_X509"), 5, ""); - if(print_algorithm.find("_VA") != std::string::npos) - print_algorithm.replace(print_algorithm.find("_VA"), 3, ""); - - if(old_algo != print_algorithm && old_algo != "") - { - std::cout << std::endl; - alg_count = 0; - } - - if(old_algo != print_algorithm) - std::cout << "Testing " << print_algorithm << ": "; - continue; - } - - std::vector substr = parse(line); - -#if 0 - std::cout << "Testing: " << print_algorithm << std::endl; -#endif - - u32bit new_errors = 0; - - try - { - - if(algorithm.find("DSA/") == 0) - new_errors = validate_dsa_sig(algorithm, substr, rng); - else if(algorithm.find("DSA_VA/") == 0) - new_errors = validate_dsa_ver(algorithm, substr); - - else if(algorithm.find("ECDSA/") == 0) - new_errors = validate_ecdsa_sig(algorithm, substr, rng); - - else if(algorithm.find("GOST_3410_VA/") == 0) - new_errors = validate_gost_ver(algorithm, substr); - - else if(algorithm.find("RSAES_PKCS8/") == 0) - new_errors = validate_rsa_enc_pkcs8(algorithm, substr, rng); - else if(algorithm.find("RSAVA_X509/") == 0) - new_errors = validate_rsa_ver_x509(algorithm, substr); - - else if(algorithm.find("RSAES/") == 0) - new_errors = validate_rsa_enc(algorithm, substr, rng); - else if(algorithm.find("RSASSA/") == 0) - new_errors = validate_rsa_sig(algorithm, substr, rng); - else if(algorithm.find("RSAVA/") == 0) - new_errors = validate_rsa_ver(algorithm, substr); - else if(algorithm.find("RWVA/") == 0) - new_errors = validate_rw_ver(algorithm, substr); - else if(algorithm.find("RW/") == 0) - new_errors = validate_rw_sig(algorithm, substr, rng); - else if(algorithm.find("NR/") == 0) - new_errors = validate_nr_sig(algorithm, substr, rng); - else if(algorithm.find("ElGamal/") == 0) - new_errors = validate_elg_enc(algorithm, substr, rng); - else if(algorithm.find("DH/") == 0) - new_errors = validate_dh(algorithm, substr, rng); - else if(algorithm.find("DLIES/") == 0) - new_errors = validate_dlies(algorithm, substr, rng); - else - std::cout << "WARNING: Unknown PK algorithm " - << algorithm << std::endl; - - if(new_errors == 0) // OK - std::cout << '.'; - else if(new_errors == 1) // test failed - std::cout << 'X'; - else if(new_errors == 2) // unknown algo - std::cout << '?'; - - std::cout.flush(); - - alg_count++; - if(new_errors == 1) - errors += new_errors; - } - catch(std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - if(new_errors == 1) - std::cout << "ERROR: \"" << algorithm << "\" failed test #" - << std::dec << alg_count << std::endl; - } - - std::cout << std::endl; - - do_ec_tests(rng); - errors += do_ecdsa_tests(rng); - errors += do_ecdh_tests(rng); - do_pk_keygen_tests(rng); - - return errors; - } - diff --git a/src/botan/checks/pk_bench.cpp b/src/botan/checks/pk_bench.cpp deleted file mode 100644 index 682efc043..000000000 --- a/src/botan/checks/pk_bench.cpp +++ /dev/null @@ -1,756 +0,0 @@ -/* -* (C) 2009-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include - -#if defined(BOTAN_HAS_PUBLIC_KEY_CRYPTO) - #include - #include - #include -#endif - -#if defined(BOTAN_HAS_RSA) - #include -#endif - -#if defined(BOTAN_HAS_DSA) - #include -#endif - -#if defined(BOTAN_HAS_DIFFIE_HELLMAN) - #include -#endif - -#if defined(BOTAN_HAS_NYBERG_RUEPPEL) - #include -#endif - -#if defined(BOTAN_HAS_RW) - #include -#endif - -#if defined(BOTAN_HAS_ELGAMAL) - #include -#endif - -#if defined(BOTAN_HAS_DLIES) - #include - #include - #include - #include -#endif - -#if defined(BOTAN_HAS_ECDSA) - #include -#endif - -#if defined(BOTAN_HAS_ECDH) - #include -#endif - -#if defined(BOTAN_HAS_GOST_34_10_2001) - #include -#endif - -using namespace Botan; - -#include "common.h" -#include "timer.h" -#include "bench.h" - -#include -#include -#include -#include -#include - -#define BENCH_FAULT_PROT DISABLE_FAULT_PROTECTION -//#define BENCH_FAULT_PROT ENABLE_FAULT_PROTECTION - -namespace { - -const char* ec_domains[] = { - "secp160r2", - "secp192r1", - "secp224r1", - "secp256r1", - "secp384r1", - "secp521r1", - 0 -}; - -class Benchmark_Report - { - public: - void report(const std::string& name, Timer timer) - { - std::cout << name << " " << timer << std::endl; - data[name].insert(timer); - } - - private: - std::map > data; - }; - -void benchmark_enc_dec(PK_Encryptor& enc, PK_Decryptor& dec, - Timer& enc_timer, Timer& dec_timer, - RandomNumberGenerator& rng, - u32bit runs, double seconds) - { - SecureVector plaintext, ciphertext; - - for(u32bit i = 0; i != runs; ++i) - { - if(enc_timer.seconds() < seconds || ciphertext.size() == 0) - { - plaintext.resize(enc.maximum_input_size()); - - // Ensure for Raw, etc, it stays large - if((i % 100) == 0) - { - rng.randomize(&plaintext[0], plaintext.size()); - plaintext[0] |= 0x80; - } - - enc_timer.start(); - ciphertext = enc.encrypt(plaintext, rng); - enc_timer.stop(); - } - - if(dec_timer.seconds() < seconds) - { - dec_timer.start(); - SecureVector plaintext_out = dec.decrypt(ciphertext); - dec_timer.stop(); - - if(plaintext_out != plaintext) - { // has never happened... - std::cerr << "Contents mismatched on decryption during benchmark!\n"; - } - } - } - } - -void benchmark_sig_ver(PK_Verifier& ver, PK_Signer& sig, - Timer& verify_timer, Timer& sig_timer, - RandomNumberGenerator& rng, - u32bit runs, double seconds) - { - SecureVector message, signature, sig_random; - - for(u32bit i = 0; i != runs; ++i) - { - if(sig_timer.seconds() < seconds || signature.size() == 0) - { - if((i % 100) == 0) - { - message.resize(48); - rng.randomize(&message[0], message.size()); - } - - sig_timer.start(); - signature = sig.sign_message(message, rng); - sig_timer.stop(); - } - - if(verify_timer.seconds() < seconds) - { - verify_timer.start(); - const bool verified = ver.verify_message(message, signature); - verify_timer.stop(); - - if(!verified) - std::cerr << "Signature verification failure\n"; - - if((i % 100) == 0) - { - sig_random = rng.random_vec(signature.size()); - - verify_timer.start(); - const bool verified_bad = ver.verify_message(message, sig_random); - verify_timer.stop(); - - if(verified_bad) - std::cerr << "Signature verification failure (bad sig OK)\n"; - } - } - } - } - -/* - Between benchmark_rsa_rw + benchmark_dsa_nr: - Type of the key - Arguments to the constructor (A list of some arbitrary type?) - Type of padding -*/ - -#if defined(BOTAN_HAS_RSA) -void benchmark_rsa(RandomNumberGenerator& rng, - double seconds, - Benchmark_Report& report) - { - - size_t keylens[] = { 1024, 2048, 4096, 6144, 0 }; - - for(size_t i = 0; keylens[i]; ++i) - { - size_t keylen = keylens[i]; - - //const std::string sig_padding = "EMSA4(SHA-1)"; - //const std::string enc_padding = "EME1(SHA-1)"; - const std::string sig_padding = "EMSA-PKCS1-v1_5(SHA-1)"; - const std::string enc_padding = "EME-PKCS1-v1_5"; - - Timer keygen_timer("keygen"); - Timer verify_timer(sig_padding + " verify"); - Timer sig_timer(sig_padding + " signature"); - Timer enc_timer(enc_padding + " encrypt"); - Timer dec_timer(enc_padding + " decrypt"); - - try - { - -#if 0 - // for profiling - PKCS8_PrivateKey* pkcs8_key = - PKCS8::load_key("rsa/" + to_string(keylen) + ".pem", rng); - RSA_PrivateKey* key_ptr = dynamic_cast(pkcs8_key); - - RSA_PrivateKey key = *key_ptr; -#else - keygen_timer.start(); - RSA_PrivateKey key(rng, keylen); - keygen_timer.stop(); -#endif - - while(verify_timer.seconds() < seconds || - sig_timer.seconds() < seconds) - { - PK_Encryptor_EME enc(key, enc_padding); - PK_Decryptor_EME dec(key, enc_padding); - - benchmark_enc_dec(enc, dec, enc_timer, dec_timer, - rng, 10000, seconds); - - PK_Signer sig(key, sig_padding); - PK_Verifier ver(key, sig_padding); - - benchmark_sig_ver(ver, sig, verify_timer, - sig_timer, rng, 10000, seconds); - } - - const std::string rsa_keylen = "RSA-" + to_string(keylen); - - report.report(rsa_keylen, keygen_timer); - report.report(rsa_keylen, verify_timer); - report.report(rsa_keylen, sig_timer); - report.report(rsa_keylen, enc_timer); - report.report(rsa_keylen, dec_timer); - } - catch(Stream_IO_Error) - { - } - catch(Exception& e) - { - std::cout << e.what() << "\n"; - } - } - - } -#endif - -#if defined(BOTAN_HAS_RW) -void benchmark_rw(RandomNumberGenerator& rng, - double seconds, - Benchmark_Report& report) - { - - const u32bit keylens[] = { 1024, 2048, 4096, 6144, 0 }; - - for(size_t j = 0; keylens[j]; j++) - { - u32bit keylen = keylens[j]; - - std::string padding = "EMSA2(SHA-256)"; - - Timer keygen_timer("keygen"); - Timer verify_timer(padding + " verify"); - Timer sig_timer(padding + " signature"); - - while(verify_timer.seconds() < seconds || - sig_timer.seconds() < seconds) - { - keygen_timer.start(); - RW_PrivateKey key(rng, keylen); - keygen_timer.stop(); - - PK_Signer sig(key, padding); - PK_Verifier ver(key, padding); - - benchmark_sig_ver(ver, sig, verify_timer, sig_timer, - rng, 10000, seconds); - } - - const std::string nm = "RW-" + to_string(keylen); - report.report(nm, keygen_timer); - report.report(nm, verify_timer); - report.report(nm, sig_timer); - } - } -#endif - -#if defined(BOTAN_HAS_ECDSA) - -void benchmark_ecdsa(RandomNumberGenerator& rng, - double seconds, - Benchmark_Report& report) - { - for(size_t j = 0; ec_domains[j]; j++) - { - EC_Group params(ec_domains[j]); - - const size_t pbits = params.get_curve().get_p().bits(); - - size_t hashbits = pbits; - - if(hashbits <= 192) - hashbits = 160; - if(hashbits == 521) - hashbits = 512; - - const std::string padding = "EMSA1(SHA-" + to_string(hashbits) + ")"; - - Timer keygen_timer("keygen"); - Timer verify_timer(padding + " verify"); - Timer sig_timer(padding + " signature"); - - while(verify_timer.seconds() < seconds || - sig_timer.seconds() < seconds) - { - keygen_timer.start(); - ECDSA_PrivateKey key(rng, params); - keygen_timer.stop(); - - PK_Signer sig(key, padding, IEEE_1363, BENCH_FAULT_PROT); - PK_Verifier ver(key, padding); - - benchmark_sig_ver(ver, sig, verify_timer, - sig_timer, rng, 1000, seconds); - } - - const std::string nm = "ECDSA-" + to_string(pbits); - - report.report(nm, keygen_timer); - report.report(nm, verify_timer); - report.report(nm, sig_timer); - } - } - -#endif - -#if defined(BOTAN_HAS_GOST_34_10_2001) - -void benchmark_gost_3410(RandomNumberGenerator& rng, - double seconds, - Benchmark_Report& report) - { - for(size_t j = 0; ec_domains[j]; j++) - { - EC_Group params(ec_domains[j]); - - const size_t pbits = params.get_curve().get_p().bits(); - - const std::string padding = "EMSA1(GOST-34.11)"; - - Timer keygen_timer("keygen"); - Timer verify_timer(padding + " verify"); - Timer sig_timer(padding + " signature"); - - while(verify_timer.seconds() < seconds || - sig_timer.seconds() < seconds) - { - keygen_timer.start(); - GOST_3410_PrivateKey key(rng, params); - keygen_timer.stop(); - - PK_Signer sig(key, padding, IEEE_1363, BENCH_FAULT_PROT); - PK_Verifier ver(key, padding); - - benchmark_sig_ver(ver, sig, verify_timer, - sig_timer, rng, 1000, seconds); - } - - const std::string nm = "GOST-34.10-" + to_string(pbits); - - report.report(nm, keygen_timer); - report.report(nm, verify_timer); - report.report(nm, sig_timer); - } - } - -#endif - -#if defined(BOTAN_HAS_ECDH) - -void benchmark_ecdh(RandomNumberGenerator& rng, - double seconds, - Benchmark_Report& report) - { - for(size_t j = 0; ec_domains[j]; j++) - { - EC_Group params(ec_domains[j]); - - size_t pbits = params.get_curve().get_p().bits(); - - Timer keygen_timer("keygen"); - Timer kex_timer("key exchange"); - - while(kex_timer.seconds() < seconds) - { - keygen_timer.start(); - ECDH_PrivateKey ecdh1(rng, params); - keygen_timer.stop(); - - keygen_timer.start(); - ECDH_PrivateKey ecdh2(rng, params); - keygen_timer.stop(); - - PK_Key_Agreement ka1(ecdh1, "KDF2(SHA-1)"); - PK_Key_Agreement ka2(ecdh2, "KDF2(SHA-1)"); - - SymmetricKey secret1, secret2; - - for(size_t i = 0; i != 1000; ++i) - { - if(kex_timer.seconds() > seconds) - break; - - kex_timer.start(); - secret1 = ka1.derive_key(32, ecdh2.public_value()); - kex_timer.stop(); - - kex_timer.start(); - secret2 = ka2.derive_key(32, ecdh1.public_value()); - kex_timer.stop(); - - if(secret1 != secret2) - std::cerr << "ECDH secrets did not match\n"; - } - } - - const std::string nm = "ECDH-" + to_string(pbits); - report.report(nm, keygen_timer); - report.report(nm, kex_timer); - } - } - -#endif - -template -void benchmark_dsa_nr(RandomNumberGenerator& rng, - double seconds, - Benchmark_Report& report) - { -#if defined(BOTAN_HAS_NYBERG_RUEPPEL) || defined(BOTAN_HAS_DSA) - const char* domains[] = { "dsa/jce/1024", - "dsa/botan/2048", - "dsa/botan/3072", - NULL }; - - std::string algo_name; - - for(size_t j = 0; domains[j]; j++) - { - size_t pbits = to_u32bit(split_on(domains[j], '/')[2]); - size_t qbits = (pbits <= 1024) ? 160 : 256; - - const std::string padding = "EMSA1(SHA-" + to_string(qbits) + ")"; - - Timer keygen_timer("keygen"); - Timer verify_timer(padding + " verify"); - Timer sig_timer(padding + " signature"); - - while(verify_timer.seconds() < seconds || - sig_timer.seconds() < seconds) - { - DL_Group group(domains[j]); - - keygen_timer.start(); - PRIV_KEY_TYPE key(rng, group); - algo_name = key.algo_name(); - keygen_timer.stop(); - - PK_Signer sig(key, padding, IEEE_1363, BENCH_FAULT_PROT); - PK_Verifier ver(key, padding); - - benchmark_sig_ver(ver, sig, verify_timer, - sig_timer, rng, 1000, seconds); - } - - const std::string nm = algo_name + "-" + to_string(pbits); - report.report(nm, keygen_timer); - report.report(nm, verify_timer); - report.report(nm, sig_timer); - } -#endif - } - -#ifdef BOTAN_HAS_DIFFIE_HELLMAN -void benchmark_dh(RandomNumberGenerator& rng, - double seconds, - Benchmark_Report& report) - { - const char* domains[] = { "modp/ietf/1024", - "modp/ietf/2048", - "modp/ietf/3072", - "modp/ietf/4096", - "modp/ietf/6144", - "modp/ietf/8192", - NULL }; - - for(size_t j = 0; domains[j]; j++) - { - Timer keygen_timer("keygen"); - Timer kex_timer("key exchange"); - - while(kex_timer.seconds() < seconds) - { - DL_Group group(domains[j]); - - keygen_timer.start(); - DH_PrivateKey dh1(rng, group); - keygen_timer.stop(); - - keygen_timer.start(); - DH_PrivateKey dh2(rng, group); - keygen_timer.stop(); - - PK_Key_Agreement ka1(dh1, "KDF2(SHA-1)"); - PK_Key_Agreement ka2(dh2, "KDF2(SHA-1)"); - - SymmetricKey secret1, secret2; - - for(size_t i = 0; i != 1000; ++i) - { - if(kex_timer.seconds() > seconds) - break; - - kex_timer.start(); - secret1 = ka1.derive_key(32, dh2.public_value()); - kex_timer.stop(); - - kex_timer.start(); - secret2 = ka2.derive_key(32, dh1.public_value()); - kex_timer.stop(); - - if(secret1 != secret2) - std::cerr << "DH secrets did not match\n"; - } - } - - const std::string nm = "DH-" + split_on(domains[j], '/')[2]; - report.report(nm, keygen_timer); - report.report(nm, kex_timer); - } - } -#endif - -#if defined(BOTAN_HAS_DIFFIE_HELLMAN) && defined(BOTAN_HAS_DLIES) -void benchmark_dlies(RandomNumberGenerator& rng, - double seconds, - Benchmark_Report& report) - { - const char* domains[] = { "modp/ietf/768", - "modp/ietf/1024", - "modp/ietf/2048", - "modp/ietf/3072", - "modp/ietf/4096", - "modp/ietf/6144", - "modp/ietf/8192", - NULL }; - - for(size_t j = 0; domains[j]; j++) - { - Timer keygen_timer("keygen"); - Timer kex_timer("key exchange"); - - Timer enc_timer("encrypt"); - Timer dec_timer("decrypt"); - - while(enc_timer.seconds() < seconds || dec_timer.seconds() < seconds) - { - DL_Group group(domains[j]); - - keygen_timer.start(); - DH_PrivateKey dh1_priv(rng, group); - keygen_timer.stop(); - - keygen_timer.start(); - DH_PrivateKey dh2_priv(rng, group); - keygen_timer.stop(); - - DH_PublicKey dh2_pub(dh2_priv); - - DLIES_Encryptor dlies_enc(dh1_priv, - new KDF2(new SHA_160), - new HMAC(new SHA_160)); - - dlies_enc.set_other_key(dh2_pub.public_value()); - - DLIES_Decryptor dlies_dec(dh2_priv, - new KDF2(new SHA_160), - new HMAC(new SHA_160)); - - benchmark_enc_dec(dlies_enc, dlies_dec, - enc_timer, dec_timer, rng, - 1000, seconds); - } - - const std::string nm = "DLIES-" + split_on(domains[j], '/')[2]; - report.report(nm, keygen_timer); - report.report(nm, enc_timer); - report.report(nm, dec_timer); - } - } -#endif - -#ifdef BOTAN_HAS_ELGAMAL -void benchmark_elg(RandomNumberGenerator& rng, - double seconds, - Benchmark_Report& report) - { - const char* domains[] = { "modp/ietf/768", - "modp/ietf/1024", - "modp/ietf/2048", - "modp/ietf/3072", - "modp/ietf/4096", - "modp/ietf/6144", - "modp/ietf/8192", - NULL }; - - const std::string algo_name = "ElGamal"; - - for(size_t j = 0; domains[j]; j++) - { - size_t pbits = to_u32bit(split_on(domains[j], '/')[2]); - - const std::string padding = "EME1(SHA-1)"; - - Timer keygen_timer("keygen"); - Timer enc_timer(padding + " encrypt"); - Timer dec_timer(padding + " decrypt"); - - while(enc_timer.seconds() < seconds || - dec_timer.seconds() < seconds) - { - DL_Group group(domains[j]); - - keygen_timer.start(); - ElGamal_PrivateKey key(rng, group); - keygen_timer.stop(); - - PK_Decryptor_EME dec(key, padding); - PK_Encryptor_EME enc(key, padding); - - benchmark_enc_dec(enc, dec, enc_timer, dec_timer, - rng, 1000, seconds); - } - - const std::string nm = algo_name + "-" + to_string(pbits); - report.report(nm, keygen_timer); - report.report(nm, enc_timer); - report.report(nm, dec_timer); - } - } -#endif - -} - -void bench_pk(RandomNumberGenerator& rng, - const std::string& algo, double seconds) - { - /* - There is some strangeness going on here. It looks like algorithms - at the end take some kind of penalty. For example, running the RW tests - first got a result of: - RW-1024: 148.14 ms / private operation - but running them last output: - RW-1024: 363.54 ms / private operation - - I think it's from memory fragmentation in the allocators, but I'm - not really sure. Need to investigate. - - Until then, I've basically ordered the tests in order of most important - algorithms (RSA, DSA) to least important (NR, RW). - - This strange behaviour does not seem to occur with DH (?) - - To get more accurate runs, use --bench-algo (RSA|DSA|DH|ELG|NR); in this - case the distortion is less than 5%, which is good enough. - - We do random keys with the DL schemes, since it's so easy and fast to - generate keys for them. For RSA and RW, we load the keys from a file. The - RSA keys are stored in a PKCS #8 structure, while RW is stored in a more - ad-hoc format (the RW algorithm has no assigned OID that I know of, so - there is no way to encode a RW key into a PKCS #8 structure). - */ - - Benchmark_Report report; - -#if defined(BOTAN_HAS_RSA) - if(algo == "All" || algo == "RSA") - benchmark_rsa(rng, seconds, report); -#endif - -#if defined(BOTAN_HAS_DSA) - if(algo == "All" || algo == "DSA") - benchmark_dsa_nr(rng, seconds, report); -#endif - -#if defined(BOTAN_HAS_ECDSA) - if(algo == "All" || algo == "ECDSA") - benchmark_ecdsa(rng, seconds, report); -#endif - -#if defined(BOTAN_HAS_ECDH) - if(algo == "All" || algo == "ECDH") - benchmark_ecdh(rng, seconds, report); -#endif - -#if defined(BOTAN_HAS_GOST_34_10_2001) - if(algo == "All" || algo == "GOST-34.10") - benchmark_gost_3410(rng, seconds, report); -#endif - -#if defined(BOTAN_HAS_DIFFIE_HELLMAN) - if(algo == "All" || algo == "DH") - benchmark_dh(rng, seconds, report); -#endif - -#if defined(BOTAN_HAS_DIFFIE_HELLMAN) && defined(BOTAN_HAS_DLIES) - if(algo == "All" || algo == "DLIES") - benchmark_dlies(rng, seconds, report); -#endif - -#if defined(BOTAN_HAS_ELGAMAL) - if(algo == "All" || algo == "ELG" || algo == "ElGamal") - benchmark_elg(rng, seconds, report); -#endif - -#if defined(BOTAN_HAS_NYBERG_RUEPPEL) - if(algo == "All" || algo == "NR") - benchmark_dsa_nr(rng, seconds, report); -#endif - -#if defined(BOTAN_HAS_RW) - if(algo == "All" || algo == "RW") - benchmark_rw(rng, seconds, report); -#endif - } diff --git a/src/botan/checks/pk_valid.dat b/src/botan/checks/pk_valid.dat deleted file mode 100644 index 7298b3730..000000000 --- a/src/botan/checks/pk_valid.dat +++ /dev/null @@ -1,5021 +0,0 @@ -# Validation File for Public Key Algorithms -# Not as comprehensive as it should be - -# RSA Format: exponent:p:q:message:nonce:output -[RSAES/Raw] -# Tests for keys 512,520,...,1016,1024 bits, and random messages -3ED19:\ -D987D71CC924C479D30CD88570A626E15F0862A9A138874F7016684216984215:\ -C5660F33AB35E41CB10A30D3A58354ADB5CC3243342C22E1A5BCCB79C391A533:\ -098825DEC8B4DAB5765348CEE92C4C6A527A172E4A4311399B0B02914E75822F1789B583180AD\ -EADE98C200B7B7670D7B9FBA19946F3D8A7FC8322F80CF67C::\ -A54A45C5F534A6C727212802CD4B2A0B9D0069EFE32B1D239D3B13958BC49711E1CA5BB499FBF\ -7402B6006E654C719C5FB7614C7C00699866B38445228EC7663 - -3ED19:\ -C5660F33AB35E41CB10A30D3A58354ADB5CC3243342C22E1A5BCCB79C391A533:\ -D987D71CC924C479D30CD88570A626E15F0862A9A138874F7016684216984215:\ -098825DEC8B4DAB5765348CEE92C4C6A527A172E4A4311399B0B02914E75822F1789B583180AD\ -EADE98C200B7B7670D7B9FBA19946F3D8A7FC8322F80CF67C::\ -A54A45C5F534A6C727212802CD4B2A0B9D0069EFE32B1D239D3B13958BC49711E1CA5BB499FBF\ -7402B6006E654C719C5FB7614C7C00699866B38445228EC7663 - -1F1DD:\ -DA78C89EBDDB277831DC1591C26AAB1C11CE9721DBB3AAFAE8F73178BC2D60055:\ -CDA647FE7D18AE11DB26331116DD7F0C22D1E79E524D6886768260156827C6E9D:\ -CC11049A69951999393D2F48CF7DD27F99C735BC424E538F60EDB512815F88F17B71C27C875D0\ -5BD3DDE4B1573C61F8C91AE22D50BC2AC32422C87C34F2B8A40::\ -946F392678443684494FA6AEC5A862C2825CB3B27B6FB6EA5E9654A9C18503F41E8D6FD34AF40\ -76B5A703E14287F133E6A2B0222FF812309DEBE733543FCE97792 - -35AF7:\ -B6B91AC270B7F066374A83555D690D67F0122398B3BFE69EE955F385A87C7736DF:\ -FF43B5A334ED37C059E693C68B9567C41E7EC17A3BFD922EDF50CC000902846A7D:\ -C1BDC66E04769D8D104B4FAC19AA8756FEAB153BF57E3FE305F2A6DA718EA7A140D8C4B5A8FC2\ -05E327DCC13554A378F1D19ACEAF5DB3D06266F90EC4C72ED6B5B::\ -73604C1C3F699A56053A627A46502A67D0B604009F811D2E3A296830F5DE6DB0820EF1288A37A\ -3DD47974D339FD06DDBDCA44C53F3A88765F4532A26DAC97BFF7F3A - -1EFB3:\ -DB08ED25044A98F91CDCD7A92FC81C376A51FF58329E2D2EC54AE71C25C17B639EF:\ -B99DBF6E1FD6D5A2986FBB818B6887AA41BADE5761C333EE98B095E7D551CC70865:\ -6BBB92A591C6A9B612EA82FD766100E7B37D8DE8FACDECE322B20E18D7932B854A5594FA67972\ -B13D79AA9D37CDE29386644D9FCA609A7717C55EBF568687015A2E0::\ -50825633A36B199F23931AD09DB38DBC8548AACC6A37F1923ABC6F94CE7256427E98E5A433A7F\ -0FDC6DC8C8519B0DFD94A5A98C8AE80D1B502C0EC3592173DCBBC8E5A - -22E79:\ -FC0A336E6CA2935826038319B45E921F77E4917D978B3177D162FB0CF75058B6EE2B:\ -B8551618F76501F4518336A579117533AB27866B44A4D15A4C0999D919024F1C558D:\ -483E61678CFF7AF78306C5E538D0AE750F1B172BA0BECAF561EF7D9C6369F713AD0FDD7C75F56\ -F1D4570B668D45563CE7801BD97C6EBB7C9909A9C454369DEAFB57E97::\ -ADE77710A5E9C390151CF6E7226E63692367567D1C02A7E5C1554ABE84E487B48EB18BFA20A8B\ -F42180BF0AD5A6E1A6FFC7EC45A4CFCFEEF1E3F3333B85C98101FE8E339 - -EAF1:\ -FFE0213AED2397C0663C26A85DC88DD4C95AA61345C4B68492C3FB1F63B61B1AB1CE3:\ -FD1DCC4D3B4B474BF2269DB028091B4A4C8AA244D2F2D9C5F55FE449ECF5D2F2DB491:\ -BE889EC220BEBD6F542B5FE8E670453333BBBD438EA2DAB4718E72872189FB74E1D1D677C1D45\ -8D769C82D8CE7FE163E2384DFE458C39FB5E8ABB78E5D5D3454CEF0AA74::\ -4213C1FBF227222B30F20340E345ACD86F90656034F3B318E43D3BC1A46A0FCFFA2E0E6998826\ -97025096D999290CC80801E10F5CB9FC0BC52A2170A16B52B9AEEFF6C5FBD - -6B7D:\ -CEDD0A94A36B76B858DDC6936C74AD06FFDB4924DB40A67A92E1E04B2D8C40F79C323D:\ -B78925E051D7502B08DF6E08CCE50079CD135C4E598A0C4401AE7300580ABC4E8EBE03:\ -98F60C8C957EE09B5AA93A4F1260143AD426B5C4A3704DBF02006766910247D2629F867B50DB7\ -00C4BE6BE97571D00BB201B2B3F3A4D663DF47C0F54BC48556E5EBC34AD82::\ -7CB497661BE76C5DF706EB0C0501946ACDC5F29FAEE801A77F8977663C1428136DCBE39A27146\ -272635C3F793546D1EE26850612D784D57C5F3F3F1C14A2DD58E07B06C2773A - -3F5DF:\ -CFDB1855F00EF13CE24453CA18C30292853D7E67AFE568F0C03E1AFBB68A0FC957559EF:\ -BD6E7EDAC9168F48C0B79E5C8DEBFEE0344AFD7DF63632C9F10084605EA7EA2C37DAAEB:\ -F34B51F68AE00AB209B178FA4ABA876F1DCF438016CF7054A4E979B1D239C6FE087E492AD69C4\ -7C5F4574DA5C506AB9CE37E6088FC82BCFA7ECAAEC4C14F2C8C7D9144C351D0::\ -94450AA696DB0715A5EB2B4FBE5A9CD4B1396A6DD8748359947C809061E13122C5266368415EA\ -7D4AB343B7981229CAC73BBE2233B3DF2F706DC26F32AA428377A0172AC58C662 - -17577:\ -C3DFA0C60823C8F5355CA1768BABB4A33C3FFC55CE89FD372F5D9B2B2B49DDD23C669A77:\ -EF50ED5CD6B6BF898586F8DAACBCBD5FEE637F56936C2535F4F5E30B35B9F5DD8B8D6D61:\ -FE19C87AA946B87FB8CA1C274DAC3D67F5E2D67EF2518BA3C1C6779D42E90FADC96C849065908\ -D836E74F5932536C2CA8F6B65ADCA245F78C6D4F3230D50264E804B460D6C50B7::\ -13AF743D2FE2542AE28DB8BC52119F3B563C8D800D88ACCBF66EEDF6C418D9919D21A7B4AEB02\ -882CD8BC201CB66DD81953E27BBC29584148CAD99A4AADB5864B403326A56B19F18 - -3967B:\ -EA749A2B3E172EDD565949DFF7C6D6862CD6C0926221E02E48A4C57169DB99058F1AA0B1F:\ -FBCE4C37F70845A76B894DA16FE38ABA97AC9BB41502DDBB3B8A324D49ED6BCFE424AEECF:\ -2C6BD8FEDCB431F2F5C4EC93841BC7C96E5AF33CD0A92C40D552F18F27D1021122F1841402059\ -41BCD9943C17FB14EAB112BD0298BBD73280611DD873EDB7F8431840D01618564F7::\ -06D86CBFCCCD3053F2280DF34E2EE6CFD7C8F9A2C2E1F610918C160BEB3D96C677A44B0F26BF73\ -8AE8A94764ECD03AF8F450761CC58698C2D4D62C8357A97EF09811E5AD7272888398 - -2B62B:\ -B9C09DF3CFC53D3C72EA055D8F4C10E4D477CD657D37F0ABAF4EEA736AC1B2628B00726F0D:\ -FE01AC6F0BBE2BA6C593FB96A0C24829183D1D99F5CF39909BEF7B2F0D8859D325689CF93F:\ -DEAEE8D8F4D64EB0D88BC82DCBF7883558A44886105BEAAA2E193ED843C956521F155A750BEA3\ -76E179B54465574C75E817B38BC51C2451739DCC8F6A55193076E4654CCED925DFDB4::\ -AD285E351DF685D52E53BECFF44B24288C323F1E3ECD960D0773D530A7D4D622473222BA35F50\ -78ECD49D2234FEBE178AC099BCAF0C6D11D6309099BEA61DB86AAC27AFC2452034CCD5D - -A57D:\ -EE13F2AF183D15108C8A537E0FE9B39B3ECAF21B3E29995F121C6C0234FAF590102E90B46BD:\ -F369E93A0B0B6F459077A41C4548218D32CB0C2F7E3227EB61E06A2D77D5A638DE0DCAFE987:\ -BC46B68B8D7CDA2EE172E33D3D4B0A0C3A6174C69920BDDFF99795F36178BE629970182EFF3D3\ -A1D796AB6EEEA3FCCA7AC719436718619D86D8BD6F8F4415464899CCC852E104CC5841B::\ -5F85961809D44F4D5FA6161F1F69DCEEF6B4D9B1EAC9378595A329761480B9658CC5C5A2E0AA4\ -F63B96E7961AC450C0C37B57BE0956BFB8B4613C9B4FF88C0849E02CFD586AA03847482DA - -13B57:\ -F7B57711898D0CD9F7A01F3089748199E36657205D9886C225BF2CB2E592745F139B1C4EEFCB:\ -BFAA7B146C59824446B21716A991A09742D9A84B94F7F0A16BF0717B2D9C1A4665C3E8C17E35:\ -913167F67F74B1AC7D534A9A6C5DE71227B7F53BCB806897284666E147AF50CB263433F938DD0\ -7B5609DA8E0BE690220B57D99F4051AC8D5D67E86ADE626F1EEB0771C62DAB8F4452A637E::\ -97A5809F41C9AF2CE06CB4E43D96D0762B5317D3DA5B56F38493D4D8A75CB3C7361801887C921\ -0D39B5772BA7F32D302F91CD622CDD9FAB50C3A14AD95824692660D1631AC601C310DB91D61 - -2FF3F:\ -F6F1763D1518036D58CA36D95E429BB9B47B2C064227B8C8875E0B16326A09E8397EA805DA825:\ -FF0ADACC5EE6B8D4E5E94985C9DFCC826A650A1AE1CE888ACD44D474483873E855FEC4EE7C235:\ -92D02535AB6B255F85546AB69CE4223E63F4355ECB57DC8DF1F0E56505721A78233A9D94A5B60\ -1537CBEAD6E092F1ED4441B32510883B2CA7C2211D04785E78E5A1AB4EA07E4983DACC4DA1C::\ -E131DB04F4578910C3DB88C909BF429D29D02541219925CB4447493CE13BA756D5EAC4D68EBBD\ -3AE853844EBD5E3914F3001A5B722D4EFE0C1203D89B9045440145966B61D3BA1CED4AD32C773\ - -22E97:\ -E420CB77F5D12BA62595E0472843C39756E9CB097992EE1CD06F96EFA9AC\ -C96D664764A674C953:\ -E65E2465225710AF7467023D6E9546BFCD04BBFEEEF6A29302B584ED6C9F\ -E4ED4E0680ACB9A79F:\ -B2D4480F64C8E6D357A260031C3940D93380AAA828FC80171DE482B4788A\ -F1373EA3833F2D547\ -B5AC63279BFB8E68A2BF5C9721352F650E0F00E1932D9106235B2A99D74D\ -133374CFB08D9FBD0::\ -072FB6A4F6B90C43226E0ED5A5233BE19529055EC3005D161AE60506A98DDD5B5E60C48FFA2DEE\ -0CCD2B4F3F39938D52A5FFD3C48496232C4FD6C05D05E72BACC87087908FEFC6849BD196686D7F - -3EF9B:\ -F6F758693253F88229EE11BB55982A8D27B424032BDB3FB47DBEE09ED159D54D2B4F3D9B3E540\ -97:\ -D3C1DBA4606571FD58FF9CAE5B0B74CA2F496F444C37BBC0672AE5CC22547EC5CA90837A68654\ -77:\ -26B0E340A506CF587FE2AEAA4BBFF8E8A721C5DD9F96823274EC3050C3AE7C04ED8D102044AAA\ -86F4AE7BCDB8D53FB0129B152E4CBEE7C176A7945BDFA561D03554EC6135205A0B0D7FB79B98C\ -63::\ -6D48A0CA04F5E1B1CB5C8C58A14A3F79AE1FE20583D6A22BAAD4BE1F9CDE028935E7246C2DEF2\ -BF591BAB9AB2974AC6EE226031207754FF6E0FA032CED158AD41B9183FE13087C5C07624B4192\ -B1F1 - -15465:\ -D005A4FCE046350601ACFF864B0D2B2A09E38D5E96F2CCD6AFD0A1C52270FCE297219A52EB10BD\ -AD:\ -DFDF0E254343E651DD4EB4B04B881B8274565CCCE054DEA6CF2E24B18B1B124B9C455A898C6D98\ -9B:\ -105D43C035EA626D0474851CA5EDCBA0C4848737F0C24653AC2C0025D0076A7164DFC6BE2F383\ -3D34CC52773C4A9E5C29D18CF02558D3A3A0BA45BC142221933923066F745386E4FFCB12600AC\ -DEDB::\ -5AD148B4FD171F7CF6D44F69A5A90D96097D20C2119A88692490D9D86F1CF3D00DD0D0D84D71D\ -3634EFD7EADCF1052161608355D1FB00DA6C36679C51BCF079348A62C1D6BD5E094F9CD9095EB\ -828057 - -1D9AD:\ -E2698781666556447427B2E3956F7A8A9C089021158415144C4C48555C4B8AD95862C275C7D31\ -9FDF:\ -E7588730EDF12A42C40BF58E0E32E0FEA473D683577C7901F46B26793DD002B6EBA0F9E72D79B\ -1B97:\ -B31908872EB8E97BDF94B976F04F24546FEDDD4E20D91B6555DD4B4B8E33EABE577AD922C5EEB\ -3EFE8E060EB69763D9D9072F121DD26097B262A765C1556BBA32AC3D80FF23538ED50CD759480\ -5D8165::\ -94A809E73195D7EB2155623CC8B383C28B971920A4399787809EC0CC2E6B41AC9027C0B939157\ -AC45936DE7CA116F625C01EE6419010061B8CD2D0A9047F89FB5B5DB630AC86AA5572A81C326B\ -6906355D - -32623:\ -C83A47D71C360BC385D1A52A792F209596F5B71A0E1743B7AE19ADEB0C84E3A74288884786AC5\ -F5B4D:\ -E72046AFE6C5478EC868F602A71316FBED2FDC8D872D48A5EAAA05235EBFC42A4DFB599C13BC6\ -1D8A3:\ -5C5CE3F7AE9AF68B16F451F67057F8C041398A53C6FD194BEC1CBBF0F074C2A45C5C88ED48E4A\ -215E32CDFABDA45C92F24F94CED95E8C2DBCFEFF9506181BAAFB8EB6F5688ACFB42C0AA0DD1DA\ -8CF4B760::\ -1D7BCBCA46326BB722340D45EAD0825F5FB1D6C9FF3C7841C749815500A227990592D599BD210\ -4F53C9D2DE460CE8078222A3FF34218F89FE0065E4FB852E623024987FAC1AD0A12EF239BFFB8\ -781B38A86B - -1F471:\ -FD762F93472C2FC5B3198306AC6E4D18088B0A65AD4975EE26FDC78C52C4B7CE3E754532E95A5\ -B548BF:\ -F15450F4E38CB8DAFC3153725CC289DA9F0F218CFC65F6D62BCE770F4D42763CFFADFD26DD236\ -82F419:\ -C4BD415792D696D83CAD82285A0E7A06CD7F05455653F13F56DC4D463CEE6753B6237B301A511\ -2D7C8995815650C38113272BD0F6AF0D5D51D7E5EFC82B9DA66242B5A71FC6A6C0436DCBEB86A\ -3C1CCDB75B::\ -EBE9C9D258C09B1F708235D5CDC2751923A993A9176241A5554356C752C62F081AEBFF2E13300\ -2B1E70F5902CBE6C8DE8B12080FB9CFE04C1E7EF7036D0A6D07CA091DA3B085FB9159BC5107C7\ -28F55FAA25A2 - -2DF8F:\ -C3362EF39B78C21469D23C2FEC1642D3EB7A7B72695A14FD07A0E6D616B0C50884540BCE16597\ -1AD3833:\ -DF631F65CDC45053FDDBA18E67E47F45F14D876E4D89101E531303735B38C883621A2CB7C16AF\ -DCBF26B:\ -50F14DFFF4F8B138F12159A52BD7B22BCB6979062C8EFDA7E9923A7EF43996C954EF15524745D\ -3A3E5BE1A57D416B02F11D9F7BE36BBF56CA3CC22DC27DAADB3423B4788B5DC72BD0E6D3083F3\ -303AD92AAD72::\ -5F5BA5370BCD31B61BA12DFACE38C80A3941C76091E3CD629DB5B6BA90415D83EDDE9C640D84D\ -8D671F13974DB70A85ED0956EE53ACBCE54EBC328729630AED05321A2FF3C3FD7F1DCCEE8968F\ -9317FE00FE3244 - -33801:\ -ED0A07AAA76BE91DE67ED0EB199779B16FCA57E376724DDE07B11C538ECA422B15E20D2668E6E\ -76E6023F:\ -F053CA61904163A5AD824276A97ADD3153B473CC1A45C401EA87DF2CC9150B2B8BF817499A2A0\ -E2EF7C3D:\ -585918DAE91862F4B8AA6F15273D1CDB9FE2ED4D7F0AAE8AB18D2568BB844B37297FD3B7AF38C\ -A29C3FD944DF17C62258CB0A4774FCFCF3D46C1D8A96EC87E935D38D9069F337998C7960DE1BF\ -808940E2E5ADD7::\ -978782932C74CE5E40602583D3A3F4C18444692C62F13B571C2FBB0BC3512F5305A90298EE626\ -C3E32AFAED17BC3CD85EA6C05A8F84E8262160AD9486EC5706560769494E0B3E90CA6B752DCF2\ -75FEEEBAEB1C78AA - -28F63:\ -F69378CC655534C08A24FF41A6984AA981AA71574EFBBC565ABC63320F1CB5A20CB599FEDFD12\ -559C884A9:\ -C954A6E1207C0C36D39ECA530B5496D91A12175E2BD9FDD2DD897542694DF50292D9313625249\ -3F5FDF347:\ -6D63D56180ACB06BA7DBE50E01F9D50424B9545CD054AFE4BFD6BD4B14B718014F2A9E712B3EB\ -EEEC83B1209F895C709186E9D898CC9CED462168B129534CB241D6C06FB2CE1984D04C2434153\ -AAC472994AA6D3B3::\ -4A2046DBC2C49E68FB37D77CFF89E2883610F0076AC081FCB9684A4962BF8A21829EB10E94C35\ -C5816FADD1F1CFC4405FE9833F79CD363A512DBACC6517D98305FB38F17F5F04CBB3C8E944845\ -C3727295CD5A097824 - -3C283:\ -D9E9285C4E77272100900893E78AFF01DE4C6CF03EB8B7B62B4615DC09B58DF98ACCA559DE476\ -255363DB7B:\ -E756DE8333A525E410D4E896B4E8C4404B55C919BA168F97B6E0B6D1922CC56EF3BCA5991A3D9\ -822EF04725:\ -3134FD350325ECBC1E8E1E702C1CB3EFA940122410B2A31BF90B7578D8B5370AE8C961CF2824C\ -5D5A8B298F84CA31F57353C432A22C17C9CCA6501250A6B930E4C043E634CD0308057C0E719E2\ -20478022C4A13D27B4::\ -3BF6E6EC491B9615E640A19A9C50AA27AB57E3493F96C4271CAE56C377815CCF2A65867CF9327\ -7948D6ADBDAECFA629E41E72E20974735AC615692DB76EB7CB83F9388FC86C86C615E13CFDBEA\ -9567A95E2D6B61FE6077 - -E505:\ -F0D1129E96239792FF1B59BE8D2B755018BD8CB83DE5D825C04685917762185A62A080DCE9D98\ -D389AF0040F:\ -F4227E1F8DE368420D5D6069E03709168A8BFAED59C8E85C8294317C6FFB98332D736540CF888\ -EEF6C0C5CA7:\ -72D86399CF78FC56C6E3FCFEB75AD0399692D3864AA1060E5D92473E82BC9950D037D478D2130\ -994A2ED377D8ECF987048E0014A1227D818C5913CC1F8646B0EE10961A3189A031073867D7632\ -62BBCCA2FD04AB7DA443::\ -AEDA2E28A4DBD01A7F288202D1D3D83BECD2DDAC7E6CB38261CAC58F5DB02916DFF53A9FE8EF5\ -70CC804209081D465560CFE9563C8A217581DF8FAB4E1F7FC22AB8D89A9D1BD9A78C1AFCA5197\ -BCF6BC9A8D84AF53A5EBAA - -3DEB:\ -C09753C0621B13376CECE340B0B0048DA5F4BAA4C8DA1F0E7EA92ED44E5DE757971F155A6AECE\ -BE751E485A9B:\ -CA4B0930AB38FF92E10A4AAC631797ACAD2924219FBF36E4AF18DC918BB40574B072F23ACC1CC\ -2C4B5ED15187:\ -C82FA6530BBF74AB38EAB8C116F5AD50AB007BD36E2BF91B9E14AE69CA2639E6FD928FCDBA3B0\ -AE7A1E58142B37167B41885DC2B6E07DB003944BE7D1815F3EC442B47FD4518BF3B31909DAD3D\ -950ADF4FBB212B31C9B62F::\ -03B2926F1560ED49557BA17D127C669D4DA2B37809F14C0ACEE845F6AEA36EAA118125D94F9D9D\ -017C9EFAC9AFB2EBA7C4DA17B95833CE1EDBD846761E0F7872247C23EFE8B2451CD4F5F84C6888\ -159705A9C4AAFC3489C2AB - -F4E7:\ -D8658E89C4E85DD9EB45D4584265686E8D19E9AA823D5C37532C6F9EAE8BE236713DCD3DB23F4\ -14C55D8B6D867:\ -DC3A02867F7A3BE96A167491BA202175E8902776A9F3D9A852929F27DEE0FF99F5C321A8D5663\ -F7CF074D7AF01:\ -A77BC6D9F770F51BAC0612C4939F10AC9F336B61EA6D87E3C5E25B053792D9A90F990A18CFB82\ -08D027D7C63E14FD4076243803D4EF226C4E17C801EAA3265AF361B8434EC8AAC8144777FC005\ -41898C637A7681353C99CD7C::\ -3CD72CDEA001A4F815D1634599DC6BE03371FD68D30D2AD40FB38E1ADD92057E4481822E5977A\ -94EA02F9DEAE1D59DEC6F9158D45D0841A981D4D9FAC7C766A8F9E92BA06B67AE058CF022FE39\ -FD7373230B831AF141C3CA721F - -10C8F:\ -D946C37A4DA5F1D01ECE1ABCCA98DF361D2AE47BD1AF421464106FDCEA6DCBECFF3B91163FF9C\ -0AF06EF9FE368F:\ -E3D6B43DDFAD06AAA4941129A4FAB542C41BC55834B4D9BA01C5A4BDEBA010B0EA2D125C23396\ -B669B8CDFA5651:\ -FCCB925AC2AD6E6E5855455E84E266CAF5E6A397AEA993003E80F3F7D3A1B83E3A1DF9F87233C\ -BC3F2969152057EE85254B84260EB6D156DAF844C994F03EEFC0B4446B25D6C1B4C464238871A\ -5EEFB45DC37794DD64E4A8C175::\ -3026BC29CE98BE196930D34F12C2DA7702373BF4B15860DDD5FD61DAE4EF0DBDB353DAAD8091B\ -D89723BFAD2AEC3CA127594A9A8F2E7244AD821483EB73B014DB00806A8C5BECAFC92FD79609E\ -7F9469EEA28F21BF4CB1AD468E4D - -D89D:\ -D65E29ADBAD552696C44154EA2C80C23F49A604DF256730AB1BDEE5FCB9D9C2480CB1EBC78830\ -DCA559F40ED42F3:\ -EEA2E85BCCEB57BA0730F0D01940F79A55B91D2CAFF54B709E7616364B020FF9F640C4AB1884B\ -8EF031523855693:\ -702D36984EFF9FDD16A879C177768B4C497E384E657CCE78C9DB496F0898FC3DE110E46A96798\ -38900A5177027E9AF0907A8074BF553019327FE47DCD86E11E4C545D80AC4275FADD2E0909236\ -E55C6846317BED4D286A8B9D5122::\ -3A3E20F621512BA40CBFA6CECA990404275CFD2D6465DF62EC70A3CF0AFAA337D6968EBFE5E66\ -B6FF9666BCC800E80F4BCEC9DD33076DEA1033A391AB220DBEEFE6257505F8DA1F61EA0219BE7\ -B93A89CEDD5EB1E6895EE81DF52DCD - -96B7:\ -BA0A5FCBF606CCA93394B2874ACD6B27E8A56B358ADAABE8FE70577C37B13EB508278ABFA5C3D\ -055419150FA77145:\ -B8399927DAD237158D4385C3D52A5237BAB2FDE90A50CA601CF8C9A91316D69E8AF3A66DC400F\ -884FFFCCA4B4D6E3:\ -1BDAAE1316925E851F9A25903F3551D8EB7DD69B81A63D9574C961CB8A3F2ADAE7341C82D8C60\ -DD6F28D947A40D48063FBDCF4AF69D5B355C0C931850129EB8384CA5B805692EDAD9D5A26C0C9\ -D2A02B195BD8617DC39ACA0F349B7E::\ -7660C59184EE406D35A4B6909A5711B2F7053F948DE92C3D75947191406959434B529C035AAB7\ -785DDA4B14D9D741085AE1ACC5113AA0A3E93A26845F0E6A25DC88C4865CA046F35A1EC6E8E4D\ -AB59055DC49955021EDF85A50FF3D08D - -1CDB:\ -DFADFD5EF2FFE2F823AA107FAB9388C6E4614833F697701882301A874CF2D2CC8C5E8D881DE3B\ -1C86D043B0EAEEE87:\ -D5483867A334313530C629B9B6386CC1A385716FEF988EA995DE8987380FDC1F2518388107C93\ -9DA0E1F3D869A66FD:\ -E1B889BB7FE5A95A69CEFB78A20C748F3F44E9734F7ABCD7D241E9831DCD3B33A36622F21EE32\ -FF85FFBB1C56A379D8ED3A0CFF791E61BD6E4822AFC05F22E356CB10899DF3B2D5119BD9350FB\ -901A261995D616FBC5F851D0C787E31A::\ -04D5337CD443A196514E2FF4A3C264481DA91FD1A01C8C819BD376222A824CA6527F7C4884936\ -45808577F17E896A6D9A39B6A3E9CDFDCEAC46A2160752D4F30223FBEC4ACA5A01C3AE3CAFC34\ -ADABDF661BF198C7A0EB4C696C60D590E9 - -FE1D:\ -FC7C6FE9C0AEB5586DAD9FE052587B0174899B7BA9336E1F43AA74DA97B6A51C1095255F88F25\ -18070C79CD3D1753E3:\ -BA97ED086E482E723CF61B68685946173D5E3E18E08755EDF817671144D752D388C6CFFE89E0A\ -A1B0C204E9BDD749DB:\ -ACCD4BA9136BDF04D0DE4EEA9DF329AD891D115E2426A3AAAC41F69F2AE156D01BA34B5B2515A\ -7CE7191A0266A7EB280798D6BEE627B65AD3A8D7A5E94603C79DE429D9EF8BC9C4DCCDAD768D0\ -BE24E89AD29FDE7978651ED712D17F4269::\ -66F0DA8E2D30844A391FA9320732CB75AB1ECC4D6694B0775DA41D029A8A8FDD0CC7AB74E52D2\ -E2D522AE7F336D3A7C21BEAA708C933AFF48BF117C99062D899052B2F9CC5C7C86DB7F2A5CF91\ -95A1CC8E73B82ED6F3B4C7AAFC9760843E15 - -2F99:\ -E2AF62AD078155F452BCDD17DD1F37F73F22652E4D341AE558A261FD958E7304FB6A7DAA6F1D9\ -4F670F2A6163ECCCFD7:\ -E716A2EEE122C98651180F8AFB865C6617389489B69462D9A18570A4DA0A1006AFCDE60DE41F3\ -33908DCFD82C31C39EB:\ -1350D7DD6D558BF7B2CC13628D12E6DA39F925D6F966103BF00529005E6B0A90A63FD58A67446\ -7468B065EA3E48636B9B409EB4167443699A47B435ADB68847D1EF00C90BB890AEDC6EB57BC3E\ -8DB01CC990F14E6076AB5E7DFE5B7C5246DC::\ -46DE5E9C22FBBB39C33457C66F4C447E922EA5B4D822BAFA60FA072B83628D34B27316B8FC418\ -AEA2FA0C6E495C474BC205DC35F32BE6FADAC38D2BE7E0CD1AF1A548908F0D5C1F97ABBC1A3AB\ -C30664E46579E12CC9624DFA7D431D44ED4809 - -E3D:\ -E7D355D9F62F6E79567C02305D34EBE95852FD5E77123BD392ED843E3D28C22FAFF3390E7A1FF\ -42E453730ADDB98598BD:\ -D6AF51AA7C89556E79A491895000665242EE272FE3E18E79A6CDD9B7BA694784BF1A9611C9FB1\ -0183105DF0535DA57207:\ -8B7800B682AD7562D7677DF8AE845D1A67582F5400D32CF51B044DC7DD9507C5074BE468AAAE7\ -A6C862E7C5267389A93D365CED7E60D70E0FCBCCAEE2ED4CF549B7FE6BB2A3D561AFE19B9EE0D\ -094082921FBF7DA194B884189A659E72989DB2::\ -815912EA98FAD3D186E4E778617398B99482FD96B642B5D97C76B401FD028C0925017DA2938DD\ -756289DA08F8409F73E0D382AC7709AD0924AFABC918380C2A5B00804BDEB99B249FDA0AAC227\ -083861D9961EBDE7A64935E2B71271B9558CACB8 - -37337:\ -C3335C0E3243BB8172670A390A4C6F1D51CC249F8AAFDC77B53CA05912808CB2A7AEFF1A8CF56\ -129D45C80256C6760E9F1:\ -C8978DAD5BC81B1DCE811A010274BB838F641C996AE49B186018BFE91EA04A54E8488CF31D9E1\ -DD1ED2486CD817CB7F05F:\ -7EE901DD41DF722A51579A4499C02E981D73664634BD6A032BCECC326E1CE5C7247ABF9E62358\ -77312D282F3D3F6613D3B7BB97F963B4437C69C6EDFB6DDEDD519F72BB99E155406A7577AEBA8\ -5390AC7EDC18046D639C70D5EBE3EBD73466DF68::\ -4B2E3B069A2B0559A1BA2E50170C0DC28930B7D2F6954DD02D4FBD2D97975D8FF1E2CA851640E\ -D8522DEAC48A7FBCF85DFB18D698F9D3DEFCDDACD99AEBE52651CB2456420497507D3CE55CC4C\ -E411249840D776AC2952FA5011C68DF7353F832FEA - -4935:\ -CFEE1A3877BEEC28653154CC1E158B7DF10BB6BC046A0DA3A4BCBB9545964D34BCDB256508D47\ -7B4C2DAF0C3A15BF602487:\ -FB2AD04D99FFA45B66A5A60F1F674107A384D121C5B463177FBEE5964A1B3713BFD37CD051713\ -2B74F85B792DE1EE71E7CB:\ -8E90BB43D3CF22F8A7893F4B36C746259DA901FABECFA8F4667798AB74DAE54C9B2539DFE6B25\ -211EB9A1E169B609B3F84C212B4A568CE1B86157780612E41E90D20B6A1F71507D16992FA88A1\ -1D9C897C8E98CBCFE6B265E31A1B242670E23B5AD4::\ -54F84FCBF1573D4B08E67172693B2BA017EA34E8D27ACB16C9A43B0CFCD0C7CEC122C1B8ABEE8\ -FD58CF82F98FED112A31FB4DED936143BB442F947BACED07555041DAF78785C63D3B323347F45\ -BA800E78E545FC115D873BEEDEE9AA14D281439141FE - -DBC5:\ -F75E869AD89EC4CF9BB028E3A67A40533FB4BDF8E663DC038E70A19C23B37D49ADE4CFD219C3D\ -F67DD18A0CD6869494EC05D:\ -C921AA94CC7653F9D02548B5DB56A46FC5304A9308CC0232773537EA52E03D5A2E6CAB5061B5C\ -788B357BFB34C4CA782FCEF:\ -7B766FAA923F1925F89D91707735570A0E856AEF65FB5232A1EAEAFB1966BCADB826120DE38D4\ -6513368A864290B36A5708F970AC9C114743964ACCC95E100AA2AC1A0A4993B34A70BA336968A\ -9C7CCDC264A06BCEA69D47092856FE451BE7892B17F1::\ -5DCBA27ED4BA89D25550AE6587846322D73483F60EE2F128B025C496A0440680FB49B49A57CAC\ -9479ED3210A27BC31F06257878FE3278D79DE65C14083DAD0B29ABC32C4C1DF53019267C69843\ -8FEE0609C3E2492009F2E28B39A04553F6D6B18D16D867 - -20B7B:\ -EE50E2D3362D0950E6A79003E342238AD710D03737EBAE5BAAB7A0A4FD7A7F6AFA814E768D9F1\ -2B16C52A5294A8652E4BD44D:\ -C9977D38FACE5D6003FA12B76880D2545BC15A78FBB19DA19FBDBCB5C5916DFF18A35E10E0479\ -FF9F5C5D807D219F2A10D64F:\ -A298A470C3B161484FC89CB9CCF39F6ED2E141447DF74EF559CB049F2DDBF1DB354864814E961\ -37E790390AF567253B3461D3FE0FD359D8C59268B0E6BB401A17F849414D6B33FB43DB254ED55\ -7CF14A97FBC72CE7F13D1B0F607381D009C88C64889BB7::\ -6C777A801C39D3E984289AA21D01456AFE5946DA4C236373B3FCE7DCF15621DA90871AF969CBC\ -06E671DFA7105892C89BE8649B3F27E28461D1C02C071C7D319F8F5A3D5A53B1A66D033057980\ -7B7F6AE0C897A71367207A7BD3263B10F4C3824BFD11B8C5 - -C31:\ -BFD406DD82D7EB42637387460A82E2948FCBF40F9CBD8025F1B02499ECF9B84D5777C596F3004\ -814F746360BD6F599526E4099:\ -EC593281958D49E5E4D8CA8EC3C68A00A19CB520255E19E1A6813E724A0B7A8C7ED9ACD221997\ -E2CC915570F702A58CB9B4B1B:\ -06FC724F11105899E12F70570719F342CF56476A1631C7391196F856012032C97B94C10865CE4\ -BBBD6D524316B0A6DD4796F56B62FCF585F83DA7D138EAEA0FBD7E9E7074C5F1D835C267D2DFA\ -369EFE75C2D1AB473A29B035750AB3E048A5CAE8CBB7CB7C::\ -A34426C6435AAAE6C0A176881E4EC4FA6DCF1963761C36144B109F01BAC3ECC7FCCD63591C708\ -6BE2BF77EEEE7B707CB13D19533FB82AF97F80E430552BA461DB9E6DFB37B573C0B8875C86C90\ -60342235A2727EE1B291F9B8F89A84CDE67FD48BDD923AC1D1 - -3165:\ -E13F572C3892DE9E82619F265EF1D0E028AB2112A9F6B855883837C930AF6C50DE5958B8EF9E7\ -06E8A5BF1FD041FA89D4E1A66F:\ -E255C42A2B88D2E4B1FC51167ED335964D980670B30B9EEFC8E896A52DCFFBE8AB5C15D465C06\ -9040312DB7B9D9C62D990A78B5:\ -62505EB7C1E4AB70E230CF8B9974CC32845FCDC37174DFF0CEFF7BB28FB44D4DC9C326393C4B1\ -85E8B2F5E306CD56D33DCDA16DBB33832F3FCB437AD3A31D7205C87BECAFBF42C81CFFB14D430\ -9B1503604015480BA539AA79653455E481A34FD24D6086C04F::\ -00B5D962C18B90010043C6B3B73DAB6644EBDC9BEA758C890F60B8F5694DB3419C29968AA245C\ -AFCD6784E91608670E50F6C9E726200ACBA8C776438C2D35E6E0CCD52E2B73EC9F50DF0BC864B\ -F45909AFB80AB9CD3DD2C2C1246E7AE78FC759669C43A1D69A5D - -139B3:\ -E87416D7D28BF6370DBF37061938D4098CE25E503F6974CBB36494B21FE81AE18DA11C25C0077\ -E8F147115B259B2663733CA24FF:\ -BDE29B664ED4544404CFB420E81CCC2875CC6088A82D193167CCE66EFA4D6E30790D882F4DE4F\ -D6852568E8A81B52769C8D4E039:\ -5B514F002EEE84D142DB23D38386460AF5EFDAA7FBDE017347A3AE359573338DE196215D4935A\ -E0F8EFD5929FCFF748FEF07FD42C9614635B249130F291DAF70F8193991EB2D7D2B77096395A1\ -12C0E792F76B4049BA7037D4CBC4D2964DE324FD456B52E4D153::\ -662807DC23C41CA24C64A2E5502C389314EBC3C9949E93DA2D2BDF7FB1C1EEC21619C373948A7\ -C62F2B902F77B7B5BD5823ABA38991CFE6A60C12FAF6C1FDFAB2AF539CACBCA7F805C33875D89\ -85B3C7642CE9551738C214BAF9F465309CF94F91C2029D5900823C - -BB4D:\ -CF8454329613DFADA528D9556A346FD8566F5B1B42A5EE1E972F0A7B8D03DB800C9A04D93DE07\ -ECBF14CD67A11BE27F8909F603B9:\ -F67C6ED7DDAD52B15215D9A1798A099BCF20B7D65434CCA74A279BD63CDDF9D27F381410167C6\ -7294535784F860BF22CFB9E90501:\ -ABD2BD2EF35FF7CAB549E375FCDD9396CCC9F6D51F390DBB06AFCDFA2690BCF4E7B4EB8FD3470\ -2CF7C272ECB64A8D3EC50F551FE8548DF5D58455D8113940E65D8D32864BFB36CD641410B6013\ -7DA69EDDA58A45EA19834031E788204E4C57B7CCB300F8264F2150::\ -26AB09BA08816E7EE65791E8B5539DD6D19A60A4559315969EF3ECB299334F6A9838502555FC7\ -449D80B3434C4C824805BD1F4BA3537D7C0C8DFE56792AF5664B8337031C393498AAA558FA892\ -78988D33ED4DD0BB896F44ADF623A78F385E135085288BCFDF5E31DD - -2EC05:\ -C5BBAA73868BB968A5A3693AE84E7FFC58D7B77AFF05BED1B6D2CFBB62207F95CA33CA7BD2900\ -0A1592C9895CA60175C4E8EC9F7F3:\ -FEFA4B1CE3D3A3A00FDA17D05E0A95D4AADC7118801B54C04E06A6D6F417D07322EDA0EB9E867\ -2C3CD2C40D90D50D8AEBD61ECA747:\ -F294399D778469FDE1D6062DDA214686C51069A8F4EE2DD4056D68E3CAA76FFB149AB5B3F2D09\ -51190411B4795CA893A87CE2832FD728FCBB865491349EF9091BEC02FB4611AEFF9B88E7C5D5E\ -3CB2F26D6311FE4742DC234F12A15DCBFBC09DB18ED8D663EDDF3801::\ -6A01851AB2C0F15AEB5F3C0F7C4ED4B80D0DB1075B25352DBDB2DB7BA6DFBD07AF4C262AD0C61\ -5E8885EDE377738406391BF6402C3A7EE8BEFCF26C91DA0F4D9FABD4A6F06E76047B87B8EE0A5\ -D9C8A04B174504F1E3C4E6A4DDFEED36FA4F5E78F63ABF4838A89DB8EA - -1B30D:\ -D0E3CCBAEEF5BA9BAFAD06D5B5C6727D5AB85B23D1C231BC0A18EE4F166D4EDDAD542BFDDFF0A\ -9185F3EC41216768774239400D7567:\ -C55B49B03706EF2293963E81A301DF8856C42FC2C2CB10E1CD36E1F91100C87718D06D20A1C7B\ -0DC125D0029104A6B957513DD1926D:\ -881A8AF4FC9C7F9C48102D904F44829E80A5F8879B8E65792E36B8F15AE189DD36AC9E976BE57\ -A69CE59BD455116C3E281C4371CE0A89A4B59B12CEB51948FD3CEB67B8682B966B9874A67AA61\ -C497E72AB8516F595B582BB828C94AADCCABB51C00498CF7D5BD8CF005::\ -25816413403B2DC77D9345ECF1B02C9A95F715AA3A46E8EB9DAE5E7953FC30BA601F22CD28DE3\ -C0397699C004631FF297CD48985B13629FF9E8527FFDDDEE18E6D371DC0CD75353590C8DF50C0\ -9032D16C3CBDBFB72C0272D4816349B07459C2F7020955B6A88FC03A0DC4 - -349F1:\ -FD6F20281B82FA202413D8E4C9A6873AC3387FF46DEED6E320F80430A1B8B6BD8509FCC0AD982\ -DDCB2583CFA2EE092838881C8F292B9:\ -D46FC162BE2FEA78106D7111E94AA9CE05067D4577E32400FCFB80085976F75DAD9EC175532B0\ -C2E3DB59CEE5F00B02B361754F27A77:\ -0BFEDB7551AD05FA01CBCCD7EFDA1FFE2BEF0959D0707B74047F7CB64A165AFE80737F259D741\ -1D5C0BB7713470325EC4C282D7B4F5CEEDFD9C57383AD0409A76BFA7D9F391BE001F3A3CB535A\ -DE0D2726EF9F7D33D805E6A607B19AA83A7457F3911DAE74145E2FE732A0::\ -4685DAE11C6F04EAC0BA5FC5017CAC0F398B0290D128C857D0F791A9D5B0E19329C86461C1D04\ -F08EA31FA7B64B899AF5414C3B9183338AFE87278D74A1E7B2B40A7B2973D2C4F13D848A9F81A\ -F279622E1CC097296CF370634B0DBE6FD31B6763B6D9F22A5CC1E85A9655AA - -38D9F:\ -F4F791961203FD4D4015567EC4CE6C4C281900A0E73EC013C766D0211F20CD369B698208EBC76\ -F9573942A8FED30CEB201E4508776D31:\ -DEEF6180D28D8B4DBADD5274DE22A249FF83E8A3E77F381B01A455FB3BC461BCCED640A6CF399\ -B48DCC2B35B5250BF82212F49BF0101B:\ -B52F8BF8BF76798AA7F876E0D76D4EB5821186244A5570D26029F2E720B966A610D4275BA74D1\ -C369990F6174F6DFB4090F3C6E98E3A0363019FD98C1EB913F0F5AE47095224064FA01EE862DD\ -089A6A16B6AB78719927F571BC04A2D1CCF90906D93C3AB5BBE89FA368385F::\ -455F2109456B04D35ADB476EBD40DE17B5843DFB011872A444B14DBB3EF1EDC9508C16DFEC97B\ -29047F46E5837284AF8A5EF12B28CBF61BAB7EE7B92ED5D60B121FA8EC4B8027FE9A63E24E85E\ -4E7E01817073AA40AEA874710452C3C5067106BFF3F2DA855AB7DF04787D0711 - -26B67:\ -F160B54868F1B3FF0AD90572170B554F75E7F49A579783BD6338F55AD88678DE5AFF6BAEA9F51\ -159CCC80B84B196C357B0B89F58EAFC55:\ -CF68CCDA550EB334438AF72DE86D8CF18B0D218E1A15B2061E1EA663083905762427533CE71B4\ -04B965D37124DB8391638C62F5F747E41:\ -41C35AD24402B4D134126B140B75150CA4192AB757E03F243150FFF9B69B721C51DC09716782B\ -494948522185A1EEAF642492DE7B4523896B4A73B264FE8A5739754DE7FD1261047F0446C9B44\ -D85EC72262A03EFE848EF19E471BD110D380C0E555D0E8B8377DBFE07B38A8E8::\ -B4702064042C93F7B2BE232DC34B8F8EB59554DB7B68B98F1B642A91F1AFA89F6D33BE1DD8B61\ -62767D444B3D8207C578DC83A69F85BDF8E4784A266C9F474A556C1423C54C9940EF602F1063D\ -BC0D6CAF08E05D628A2426DA8CF6978A41D4EA0611FA43BC5C6BB92C39F2486468 - -238D3:\ -C607A2D95AB46A416CC4694E087C93E73EBCAFD1738D7B5CFEBC322FE0A1632099A129596C3AE\ -955C77A6171A7BE65E0B9610842556B7AB:\ -EDD4D4CA2759A11B0D256830C17CE7DE58E7152B971246CCBB7E52F3863173C1819F633F3AD7D\ -5EE1217F747169718EB8EC14B68DBE6D31:\ -EB8006B8C13866902B142447B8A360719CDBFB017B1A9473565648B9940A61B495412881BEC7E\ -023B410186C8F57F555EABB860469C22C155546F78C9DFB957707EA6F4E51E79E1CCFC3A8C7CD\ -8B560EF11C28509F034832DD095F3B378BF2AEAA6ECB1813E0462955825A3EC14B::\ -6ADEE0AECBED2E017022BA21FC0B369E1CA9D7C9A3359A53FDE22A817E0C8A8E4853433CF4C96\ -E20B72F0AE6102065C6401C31B87A7CA48EE75494EF31BE7AB42C7B127E558716CC57E9AFF019\ -AF32FD0CC1C7A09922A46B3DF31C8094D4F996C87C980AAA49A50FB4F6B97AEA4530 - -FC65:\ -E51741CAD444F02E7F689DEE1AFDAA02C6F7BD29847F3535C988E7284F6434C4CD8FAE24E04AD\ -8AD605155D264DA6DD31AEC0919B3FBCF27:\ -EB66E3C33FF2BD0F27072C71455B8CD72B732345FA06B94C2F4A3D799C2E12DDC3BF2EDD59B4D\ -4B29DBBB96C3346DCDE5EC1E3B2030C5565:\ -7C06B972ECB5E6457E7BC929E2095469A724A641F93DA43EF9C2AAE756D2A5558C7F21EE47612\ -B57DB9104F90C52567DA8E68208D487AFEDD30F2EFFC3642FF010591075AD1B03D543B1E3E025\ -D4529A1D3970BE040AC8CFDA9C5B5B41F2E6E28C7FFE8C2A17123D5CEC05BFA3DBA9::\ -4CCE57B3471D119AB5D0D8EDB148B38C48CCEC514E11E6A00C023448374F011C78E2D1ABDE688\ -C3BB2B48733FF9B9523A7AB3B01F6FE116293D8E36080672E4A726E2796ADE6097A2000097350\ -C99E36B584B652880930942A6918BB0DE28DB94C846AEEF8151BEE6A3E96D423B32097 - -C407:\ -BE39B346B02ACDF3F067D1CC0689ACA4811AFE9509B1513E9E4B52E6BF648F219253824105114\ -E749DF1857758C5A0C54830B1ED96B15E301:\ -C1C2031D5F29D74B4ACCAB0C211A1FB29A7087BE34A800AB601363662CD998574314F6A60F76E\ -A153DCCE7FE75BC7D13C859B45BED8CFB259:\ -E2C9221D1C5B3C297E54881C4A484DC88E229A1F89CB9E03A7A836C0478696ED1448636BE98E0\ -6A549BAF0BE30DA4AC1552B17211662DA4D945F0849900EA02CCAF1215EE1B631D795BE58F572\ -CA1B498961780B2C50A88C67A3EDAA950BA986193BF10B3DFF1EE9E0F6D8814F4EA821::\ -0F19E9BEA836057F18CBC1C1A7ED08DAD6D58FE84864755FDAD69BEC2BD1AD9D\ -DF0097D21B05268737898F852643F3DAE32FB5097D95B4AD70A74EF2E7AC1E77\ -14FA57436A904AE361EDF9451EC406C9B726DABD0269EA5BB9F92A74BA4808A9\ -51204A92C6EC3AAC9466F2086CDC4EB279 - -1DB8B:\ -E1677D97157A28E686A6DA2327E0DB9B1BB00C0A286D2939348B44B14A1484F5C32F1281D9250\ -3DDEE248145FAB855F41959C7372AED2D7647:\ -F86F396FB930A154377F68536927C5EE34F9A948AB1887AF13D296505F4762F459015CA892E5D\ -92F44938E3E4F855130A624322F2D0D5698A5:\ -6F1FBD316F2B02DD8917432A5E941C511C482F93CB179AC4C7DFC34C334932976A1D8FE9D7057\ -1CB02BD8A34125FAF0E0F136E6C3EDB74F3B0F2D8188AB73FB25DA5A3B1D6472B4009A6F53AAE\ -0B58FADDD971B808118230C88AFC628B3DCF85A238053642BCD1F1478BE2B05514A56ACA::\ -B3D24948C2D3BFF08B9B3B11818E0517890DE8FFCB40AB7DD40AC1B0FBDA19E2678C67C53C6C3\ -F921CC4AAF05CAC7DA47B5CBF6EC5731561CF5F42FAA0A394D1CF7FA4874AE7E344883D3982FF\ -B91175E56AC49D21B01859D93787AAC3AC1C24A03D73C93E1E43981D860C7DC4C84D307A53 - -3CAD5:\ -BAF9A508017229DEDAAAC51B93F8E12A8C10E489AD9CF90CEB127EF503C1F56158F92972A3748\ -DD4CD20AC162DDC4DA061626176525E9A80365:\ -C8504C3E93C15C6241850609EEAED406F18E0E5B9EFB9FD6BFC0D474D35D7BDAA63CA925B3A1F\ -4EDAE9F9A99C1366D6EF5432188EB672EE86A3:\ -6BEB86F20DC86874BC052DC6C032E40E2E555D563D6002A6C269FF9C335680C0BCD901D02583E\ -F30A3FC3E68AB218CC47228EF9E6CC14930CF78CA67F5618323C95605D73BEC5389017B77C300\ -D0361AFEAB7E97D7215A8B826F91B9BE823D2467032EC6A58A9DF42766CD912F6D3EFE2AE9::\ -765765BCEAEF80D33430417318FD4775357D8DFFFBB4147B60EC0BB7704E5801A6E329B2D7A39\ -587DE75AE2143671AF854213664583C69CDE7A26BF7F108513B9F0BA6CDF81B28A65C7E2AA541\ -F4BE5817761F146AB1ECAC76EB2EF1D1FC42A5F4D10C93CC2F3D2556CCA71A0215B96257BCA7 - -203B3:\ -C9336B9F9A8D36E22D93739B8EF9506C3A9A6BB976ADC8777BD29747FF186681B5E77A5ECF525\ -3B1E9AE531EF7B32EB86FEC641AA718916C64CB:\ -BC37BB3C56AF232171EE83DE4113C79CF78E675B7E4E1F4F6771384949382CED626507FA5F489\ -B3CCFD69E18191C21AFDECE4D9A17BC7EACE0E9:\ -2C4B930C9ADEBCD1E36957E1817989B56304B53B03C9BA009875825CCCF5B0D77A7F7F76164EB\ -0B35DD262817D8E1EB5C498ACF16F4D4CDB0AF8918E54E7F5EFF050283D533598E4E6CD128E58\ -CDF5417F520F0980671FEF7CE77E75E64EF2261F27BD50ACA5C68D8FE96F33B85A76337556FF::\ -1327DCEBED97BCEFA5EC0D6F4BFCD98B28AB14C555D31480C81F31E1E0FECC2DC4608E8BED5F2\ -AB89237B3B44C46443C4169E25AEEDE620C7625B18B862614DE26DABACCC21901218D667D27C8\ -A676EAA261E575579E06532DFFA1EC9E18F23D8A94B6DF6DFB5C52A30F9AFD22B6590081DF745\ -3 - -2487F:\ -DF3FF505147F8C7CD7352E57F5CCC3661B4DA5B003BF7D3DE39761EE8CAD575B64BEB5332DDD4\ -C3ED6BA64162633A0453FE4FBF33AF34329C5759:\ -BBA02FF73B4C0ED4F774C4A878D696658CACEB13F56C9A936193C28F3FA20A4056213B8A7E710\ -23806DB7C0D49161C59E2F88B00604E442AFB909:\ -A527A2D970C829A7C3E0FD2BFFE9590B3A3C8E05C3DF8EA923AF156DDC30222BB304CFFFEFA4D\ -F81A63B597FF983052C556E69D6CEDEA86518F9A5A301D03E6686D19E346780EDB5DB589C9047\ -C18E6CC6216D4A0C2E14505E744E3DED365DA0F1B1FF00EAD5FEC05E6BC9F7EBE8408AD89757C\ -A::\ -57FF544A0A4E5E892217382BE63F656D0CB49582414DA7AD5257C09AAC803D60CBCFAFCCC00E8\ -DA84D02AC0059CA11868996F8E163C226FDF23C7C7F7550AF30AADD03A484EA81DE3D6411BA9B\ -0642532A22A57D01953BA8D21814B72AF28EA499070938224BB8F98A0569F00BA55D7D4FE6813\ -D43 - -35AE7:\ -CC072B3228FDB247BBCD39BE7CDE954BF98133426E79C6416E8658BE8DF09269BA3E5A5AC0784\ -065895D3E03355DD1DFD7EFF7F0859F317F8A32DF:\ -C78470AE335A28BB07ACF2DE39A1C180481C0F5DB37C0B60B97F68D584B24A3C39A4C315D2D20\ -04105D774D966892BB0659DAB963C298FBC7720E7:\ -6B18E5D6236AEB054CDE9DBCCC8710E2F8505F7836AD84B4F90BA5E1F96361871DD99AC16913E\ -8168A74A1B39E607B6FC0E47799A5E55970D53A9D5B0708D7BF7FFF88CB9EFBAA18F6A0101093\ -AD2272A1829594206B329783D299DD139F1EBF85C7FDB18330D91223ADAA6EDB317F6C54854D0\ -02F::\ -42F95CD54C8F50ECCE32D08DD5C66A8D2B5D20B3E3A5FF70CB772CB6706120D666EAE0C608E42\ -FBFFBB3C064D7810B424A640EC7E01930A76B2EFD6618A8C967F126CFECDC61476C7BD0981A0C\ -86A0A50B5F04166FBDE23479CBFF6430A6C5D433AD4BD7F0F0C9A47D060D795191FD49D8B71DB\ -F8111 - -4813:\ -D55EB495A0EDD8784C918DB2C9905CADB34AA873865B61F959CC39F3944444E4E411CA490B323\ -FF92A47E780BF90FD861EB630ADA012F4B17C8FB19:\ -DF5304947138D4539E8D0DF7F5A521DA90D0A79468FBCE67108DAC5D904ED820444C84FE09C09\ -93DF8CA649AED14E7B77A8C8E96F3EBBDF6FEE063F:\ -407D8F49B0A0162D162DB9E89547FCA67DF28597E3EDF4024225A815CD16C113EBC2406DD8D5A\ -57C7828E80C81F87F6AAC25E69382C4F23B6DAD015EB4A373D48025188A3861E6DD5B6430CD21\ -EFBC0DD48B80225810831F23F75E4BE2FB5AE9A6191C633F073463FEC87B33C5B03D6ABC3DF82\ -5EDCE::\ -A9FD95925F1EB6A3D6D1396DDD8F459FE31135A07BE71DD9449596F457DF174124B2D9A4993D1\ -15055EFB664EDAFB73D51992E366D6010299E0CA65EA40CA76AF496EF024F72706C04AC618A50\ -823FC4647868F607B6CC6BB489AD6D2041970074452B8A0826D4BB0E9463D296C0DC54D241736\ -F59B506 - -1E497:\ -F9DA4CF8C42981521AE47857D0A58BAA9B0D7EB223646D19E3D1F418B980FA9BE962AFB73619A\ -09D3B308E7E42AA3899FB9194C6325C3AA423CEC03B:\ -D6E7608CB975895E638794C140060A7B19794890E373274D24D29B786D1510B923CDD83EE844B\ -78035219E4ADFD085A91752B4A0DEFC8CC3411904C9:\ -677C0ABB673F029F63CDC4854CECC572EB8FD3AE9EC5B254CD64803CD853B8AFBB958399D077F\ -8F0F8DF0F109C780B89D317D293953D3C814F8F9EC1E4AAC029B6B895453D951090558DA2614F\ -94DB90ED3E62164D12E2A5ECA60234E153274154B82181FD3B060E84EFB9718F643ADCA016EED\ -2C89D40::\ -21E9AACA4B288AD3843FEA09406E17D94599BB610FFB02C86EA9843076DA91ED2CF55EE3D32C1\ -F6C53B5777DDA632D05403DFD77AED342521B988ABED48ADCA7FC1F4E3599949F257A5CC27102\ -18FE6F7E18554C9C26383198808C32B41A4600C19FF249291B788B8C438C999B2872F8CBA86FA\ -FE8838E96 - -12B8D:\ -C6C04E18BA8EEA6AD830FE2652FF3547F4F693F41B681B516B2F397BE89C2562D259C0FC3698B\ -326290366331582F687C0DE212C30D1F573A5494DDA9:\ -D4D610D560F7AF67828C7602E12EC69F6665DADE3E339619DCCD53518009DA9EB019D4DF7D14D\ -29B1CAEB46AB04A414C50C1073E61BC85310144730F9:\ -F55E6FEA0FFF7EE032AD7C94208C337EE80B2AA0F4F2E0D066A05DC8FB528EA638539DB948203\ -33CA86D759086CF2E78E9695BED9B1DBF8DBF3E362801C685F688E36D7C41D37BF4B4DECAE181\ -6070518246FF9B73E807BB91B7057DBC74B8991E0B7E1C79FC1C1F87C780D7221FC476494D1F4\ -AB666DB3D::\ -27B21E28A286DD57100FCFD98CCE8C2ED2F1E2D2108E5A02BF96A0125AF563DA0EED6AF54BB8D\ -0D993BA772079EA644A2884E7160776F31F5F11D7BB47495611B30441F990FC107667F740C08B\ -660232EDD4A83484AE029E34326AD69E01EDE3461B54733580773B1DFE807CB54926980213896\ -7F59F59826C - -52D9:\ -ED557EA9DB53E4E24795FAA88F8414BC67C6354111CA244E2AC0C99C48A0BEF2FA69E69AECC74\ -F5E6DC79B0E2EF849C95E881CE9BD5B60516408D8A8D5:\ -D08480C28C9228B2E196E5F672272551E456E80086EA3A0300D5440978F35420211823516D2D1\ -30D444602DBEF4E68EAD7AF41F06E970BC95D9E90BA8B:\ -EA763D61DFA0624CFE25EEA744FF0AC80C5C85C4ED6A7E8C2303A1CAC4010931EF4D9B9414A98\ -ECB5300CAFF1AAFEE877813545EE56F7DD26A6005F142F771F4D3D1A97CA5995F91FEF25B1BB7\ -72B12AFC6A1D37A1CDA7175E5CE22571A3F8CB88664A06FC907FFCBFD5E6BF3FD2BFA98D5993B\ -D5D949EE887::\ -BC9AC00C07CB8BAB375AC69C14556D39DA85D019BA1D776CBC4857546AD44E857E616EC312839\ -E2A9AB55C3432373682255A1CC06BEB9CE7C3973E8B4FC02C1729B992AC40C0B371195E0A5CAF\ -80F074D0608CA75885F63C340C96A1E29237C64AA3D60F9EE59D425D757ECF8CC9009DE2B2AAE\ -8AC3786F639B3 - -17549:\ -E60CA06397622C744F64ECF95F3264F1C8C819FE0D596877859DC7DA2EAF6CFE25907E4D018D8\ -FE457EE7113B09AE7E2D14B54A7AD7C1F294FAEA719A2B:\ -E3FE78DD4001FC135E4185121D5E8F6BD766DFE45B818DFCC1C2DC9F1E1CD4D1E9F5F7D42582F\ -36A918E7787D446E93DF1CA90AE6A52220D9A1D2683F89:\ -C0D448DE6D8C704B5AFBA03AFD8DCFE4CDCA0493A9D64D095B0A19320861E5F42B0EC566B82B1\ -BBEB4198815AE19238EBCEDF59FE26E4283E5942CF77CD1B23C5B901A542648D28051B5F99416\ -3C877D57FE27BB3D3B54CB929F9F4C24FC1B05F9EE7BCB7E1414DA3843032657FCE85787A1185\ -F2BE2C025D100::\ -C9E14845932307783E85CF97F3D9FCAB04C3872E5767E04AE1F954E7A45956CC7FBA483DB7891\ -36702B48446B177F8D36917674732972990053F5896D35D563C975962C4C405F522DD44E5D007\ -2AE7A403AAA1C8DB53E47E87534148B55CCC38896A8105A583D363D3C5EBBCA3076729F69E127\ -2B24F12AB7DC983 - -189F9:\ -C630CD0B8D86A93343EEDDA96B43122C8DC58318F5664950CF34CECDC9EF3796F71675712EDD7\ -D08E675F491EFA99383EF1DDECBA36CFB4F2CEABF3BBD4B:\ -F9012CA0D0A2C91BC317819EA8EC23127357B84FF6F4B4995BD3DC6EBFDFFE8A7809C42B4C4D6\ -4267CDC77D29FEBAF99355F00B4D64872C7B4A466C7195F:\ -C42CF8F1ABF85A849137F421EE51F3B2237D052E89F62D2F8576EDFBAC6D926285096C4F5AB82\ -10D467F2ABC0A8C99FD39EF76EF51CD479B9DA20F082ED598E006E0EFE884D33B59D5F52E969B\ -D42F7997447BB052F70AE020E7E1FB6E8BDB90E5B8E53AE483CD29970184BA4BE51747BDC1D75\ -2B214497705D75F::\ -A2BFCB298708CC1D0F0E5B3817F669757CA02AF173BD04B6C77ABFD7446331E4E7E2526DA90D2\ -E79B60ADC06284F72FF053854CE1EF8E449FFB70333450887EFBEDB4BB833696105AF4109ECE8\ -E24FF9AAC5B16C3D3467B081967C1534782C29205706E199ED51D2FC87832C2ED5568EAD28F66\ -8009908AD66834A24 - -26175:\ -BD3E5ED73F6D8751F6B7F6A9791AFB12A42AFC6BD4E2F73C14146945ABFD1073BFA87778B6805\ -891860A636884618ABB924E681C26C44D08A6A2354351EA5:\ -D14A005FB2E1CE65F51F36F10C23211BDA04159AA1E25510CC1A7BD643A76B923BA0ED4754516\ -1B50AE0E137EAC684D9064E258D0389818695715431B6695:\ -01224CC754FC5E4922AAE8D64BCF2EE50D13765F80317818CB3973B187BF3C17DED4B3AF27C93\ -8BD0E36F875A6D953808B590444A1B0C161189A93938063C80A78DB5DB689BC4AAC587F0DF6EA\ -119DFFE6CA9B67549005FA4FF451354174175D2AB236B3D6A1E604DF2D5ACAF956AA42B82A5F0\ -3DED91DA07039C464::\ -466BBAB71EF00D9436CDBDC02DA1C7CFD3D59AB48D60E82A87C39097BCF8DFF3D6807D6DD73CA\ -D16101245515ACD333DC808C9A894B9BD754F6921C518C5E9E16F71B6009B078E15F53CA3400F\ -0BD927D2416BE129DEE6035BFA74E3D8630A70055C229BA3B0AEA304D8F77A8407DD8998E124B\ -93DBD1EAB29CE11B558 - -32C0D:\ -BFD70BCEA35FB6BC5C4C753CAD49FB6E86985D6F3687AAD9CACA49753676D121AADD87D175D17\ -EE5D80B9D6659B00289EC4475BF003D7D400177012ACCB72F:\ -EA764CF0C0D3583F0C4B4F9D096E1E4668439343F9A937EFFCC1A0E589BD3B64F4F14D745FF1E\ -38D720E581A64A3045F70B92A6BF2031E67EFF656749EA1D9:\ -A4F527A26115BC6402C7DACC1D8925A28D5AB036B56677634DEAE7560EE6F79DF87293564556E\ -155C8CBB934ABE781313AF7DBA88D65D0DEF4975AD6284A5077CA35CE49F1DE12FB46ABBB3072\ -C2B17FDDD93D010408F9790A9D1896FFA362C43FE3B61B6065A09F715E97B353BB471F2AD94F1\ -15CAF8A5FDE6B91826E::\ -80C7B635AD6C6499764DE4AD8F9EE1654FC83763B4097E4AFF6713EF1B3C7D627B291CDAF41D9\ -D8567758D6F9107AF7ECD0021DA4F54FBF979F1C1AF24993B46347008F51BA00F3AE1386B5C9A\ -D29B378FE434CC6B620CB2239CE94D5C2755FEE67621649B526505A49451F4469B29003DF8396\ -C2213475FE7CC671CF0D7 - -D6A9:\ -DD24EA4BA93BCCEA6C7676405EA6F04F13838390AFC51713DAFE299D36362C525F6C2D1CD4DB1\ -5DA08B743005F46E243BF34F285A9458575DD61C31F12A2DE5:\ -C152185775ADD140C1FF045BCADC81A81DB36BDFB61B6581F78B29B9130F8B7F3D31C508524E0\ -B487F441F01BA831D8C05F23CF47D14B35DFA5402F0A9C003F:\ -14815E63D355877FF38F110A6B5BBDC86633936B9B28669E66E6DAEBC85A213D40C63080C5DDA\ -21237D04602C02DD480E753E4230206DC216263E56E129566D094D5B574ADAD461C04D3D20145\ -855F94E02ADD5854E89C48EF18330C5F9BBF7D1EC9638E4ABD835755DB84ADE864E3AD2DF04D6\ -26E91ABD952EF451292CB::\ -2A432208D0CC726487A772598BE3DA4799B484D4C28ADF06E2A914BDF7ACF826080BD56DFCBC9\ -C1E8DB37AD3D57E2EB42CC5589E4DFB2AAC63B7F61A05FF744CDF6D68441694947B2EE1003D33\ -E25F706C4EA70EF39DE831B520B39FB7DC02EF7A9427ABF86900053DD316BDE944ED001CAD53F\ -4C6E68C336B3050AF52B081 - -34213:\ -E35B81A5A1B6199B689C0484C332C4E9CF8237BA3B3215A3C50B9FA9704BEE13BBF8D96B8FCB7\ -16390A4A52D9E0D8066F4C171DE3007C0E3CCAF7E7ED0A3974D:\ -BBBDE5B062860702D894E1B70C555330E8CAC1688484C94DD8C9029487E181FD32B3E4A263789\ -43B5AA33DA24676E240973076712FFD89A66A9B58C5BA83C69D:\ -96BA67D8ACBE483DB6CADA644C2D8A30710395047775A43D5DEC9F2C1E81D2B5D3D926B27DE20\ -7A7000189AC87F10ED06DE57793C301A9B05958537C9E5D486B3769BF41E9B18904C5D1EFF9B5\ -A90C040E1E5FF21E872A06FFA9C5F0BE274A346F425D46BD3B666CE2C0D9843DC4067C04CE019\ -FE447131D78A610A5BD648C::\ -7A7667774523649C72636F1A0599A0D1865B32A14E9C50201849A6DAD8AB96D1CBCE55054BAF7\ -31947DDF6645937C9C39D9F11ACB9D2A3DBC7C16EC7CD5CE13AC82C85DDE8213E769A6440B67C\ -1A78A1A8BE142D50A9CF127EA9BE1BA252B21460A4C8A196B50D7DF022E289B6C0977D13C2D57\ -FD0F4F90675C7E8F018EC780F - -# RSA PKCS8 format: KEY:message:nonce:output:password - -# If password is not specified, the key had better either be an unencrypted -# PKCS #8 key, or encrypted using the empty string as a password. - -[RSAES_PKCS8/Raw] ------BEGIN PRIVATE KEY-----\ -MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEArpub5dL9a8aZji3a\ -w3205ODGa/HgXylGNDWCanG5V6smkqiDZfpr2Ldh+HL4hZCIe5NOBf3DsTCocit4\ -BMyBxwIBAwJAdGe9Q+H+R9m7tB6R16kjQ0CER/aVlMYuzXkBnEvQ5RuqUIthLugh\ -lUEHgzdj+vd8magYEJnkatQ3v43GeIYYuwIhANrmAnvA+cpZoFav67qxSSn8jSZl\ -A2QMncJquHvLvBRNAiEAzDPU9d6kbx81gAO0J9vUI5iKA4gTiQRUkmgeUoRHSGMC\ -IQCR7qxSgKaG5mrkdUfRy4Yb/bNu7gJCsxPW8dBSh9K4MwIhAIgijfk/GEoUzlVX\ -zW/n4sJlsVewDQYC4wxFaYxYL4WXAiAxtWZl8m1fSBhTkhLJJ7ZZqAojlyTkPYJZ\ -q3JR3z0fZg==\ ------END PRIVATE KEY-----:\ -01B40EAED76EC2A26C41DF58CC23516E7974537ADDB1D3ECD0DCBAA4F09458AC\ -49675A20D51CC2415DA2992AC5EA983E5EEBB83B9C8C276C68E11158756904BE::\ -32E6A9BFF82BF351E96292947AC218E977AEEB069D09CF438DA0B96478DF7A18\ -53EB8BA770C16B5024D31B6C2D2F83E867AA37C9AD42E7F13369F171BDF2308D - ------BEGIN PRIVATE KEY-----\ -MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAxYJRkiu+shjNapT3\ -ra+jaefGrLY6mH96JR9cbnBCZhNktqLa8Cn0y4rJVGuScwtqYKpmy46jS3d+AEqy\ -MOf2fQIBAwJBAIOsNmFyfyFl3kcN+nPKbPFFLx3O0br/psNqPZ71gZlhFzvXDpH2\ -pis8mkPPCn15KPe81S9vjaZVYzxiAZLpVWsCIQDmkmjzvCF/8Eq8ReiBlWjA1b0H\ -FV+IcMbHs4RzBDv2KQIhANtKd1FZFnuaZSWozIEhbOwXUh/vB8ZhMKFyMzzQTgA1\ -AiEAmbbwon1rqqAx0tlFq7jwgI5+BLjqWvXZ2netogLSpBsCIQCSMaTg5g79EZjD\ -xd2ra53yuja/9K/ZliBroXd94DQAIwIgZjnLdn9+HnIRhfrix52NDS5nY9yaisGu\ -kQlWG2ag2AY=\ ------END PRIVATE KEY-----:\ -01453FBFA6B146374602261D86822493E2CCC960B75D2A124B182EC70F22FFBF\ -673F7E0EF0C54536C76B534DED77E1D044AA30FB075A0D52733C19825E1941C6::\ -AAADBBBEA2716C35EAD89736AA97A8FFF0078A07F48A9888294929B8917297CC\ -53AA9CBA9FA9D80791F24F749BB1133D0A48C2117572DB73C5813881F4B5087A - ------BEGIN PRIVATE KEY-----\ -MIIB4wIBADANBgkqhkiG9w0BAQEFAASCAc0wggHJAgEAAmEAotk6TE/qf3yBOcQL\ -jo0t6KVeOgtNLwCwP2dR7wp4bFTWUpMOx/Y4dQ+2izzRl5neyEHxIaUc11jMuua1\ -s+HW58L3WifM04yT9BQ5gkxxZuqA3+UjKeD9fs/qP+y0CDULAgMBAAECYGCO4xVa\ -kVWUMl9ZEe0tYto+K3fJObOz+c0uaxOMpsi9KPN/RNVl9iXa8kbvAeudDNx8FfI7\ -1u9FDLFfmZsSqDR/VVAvkMwXu4zg5uc9xmwhefdY+URTdt9IshAdlgMiaQIxANJ+\ -YtpDxwL1ROjnNEWKnrCd4gVsMBSsn+zRw0pUw3iVDt0kVllxXVMhbR+NNNNRTwIx\ -AMYN9PgfUr07e5p/3xE5rXJJpBTKktVB0APHORafHsauhs2rBd7F62ZWMfdTdb3Z\ -hQIwG9557hYNMloQ7pk19YMd8Zplw3wIfaRBZFR9e8jvPHbXyfW2rQ7yYUBKt2O1\ -u8jHAjAd7uQUUB+gLApNWoArSU1WlZyv68Hva0f2GjkdmyT6oEwNb4iul7kxOVvJ\ -5ppH/EUCMF13TTGrTH9qiNUHOoS8RLZmPoNwjePw02BYUBcLEwhUw+AbR12FlNf2\ -O3iiv1ounw==\ ------END PRIVATE KEY-----:\ -010E1F619D8F90D37563050B014DEB3FA3E9B735F8D28D625682D6A4663E6B33\ -4C8B94E91A24BD8F88C29A890F85C9B36F80E8675275C9A8F79F4D5DDDB89129\ -4325125D4ACFECD291875BA10C24547BA43CE2F7B1AB9FA84AEC0627A59750E8::\ -296F935C38845C940F820C379F8032101EA4003CED8BEEE212F2C6F72EB430C0\ -ADF48B7ECDDB296544D8FAE80E2FFF084671E88A88334EB8E718FE8B2524358C\ -CF9EC32CEDF93087CBD39E784FA66B3BD32A427D69EEC93607A8352955C774E1 - ------BEGIN ENCRYPTED PRIVATE KEY-----\ -MIICETAbBgkqhkiG9w0BBQMwDgQI164w6OtruCcCAggABIIB8HCD8Ae9Zia6ppjK\ -OgZTy4I85VqUgHT1lcOjveqRTtnKeexhbhwR+M8kN4p4wiCHoLu+kNp2lX56Id7+\ -wt+PnN4HofDGkepxS7bve4emEIJN3TLMS1ux17Ste7cJMs4KAKLbtwh5E/slQeAz\ -/uEpTpKnyfDXbI21GxRdiJtHQuw7z+RpX1uuOIZB9t4dE5QSASdbtDJsrvekcNaV\ -tDxzWkZ1BoXcf2otaEW9yzFWlVCuerzc+IcsAtyt3GUuOkLAoY82TQ5XuJFpc2XX\ -J1GVtncjReFdzLyb1gZePiEyE9TZDtbzR2Q/iJkJE61hgNIptCwhe4nvHzMs+fGV\ -8zsudkfzvsgwb05qHt9CJVSs6Hd0frCJsqahpQSsiNUoV3SD2EsH44T5gJrTg3Ke\ -DJu46uIpMyM8VbFc5Ra6CSOuD5udSx2yV1klx7bMHWONzTOCLZnaZVT9cKC/4og/\ -em3A9OdPrfAZouqZsQ3j8u7ZS9Qun9WOZApjRxD1vObuz2VPHglIxp/ckvDJ8BJt\ -Sb4QEqFwe+Vd6tBiBTmK7Is8Fji5Ummbx0tLMSd/Xtw6jBtrrzyf85ywnFAAoTyZ\ -Or4ey/Mf5KDp4LscmXVgkAauBn/Q/wWjK+rdjTBMUW8eQFiLsQnv6087sLSdEUSm\ -jg3w4Mg=\ ------END ENCRYPTED PRIVATE KEY-----:\ -012E1CD97DB414715594E404B8B0BA9C3928CDC2CCF5F71C712C462B7BC44B90\ -F36869701C7DE17111C575CA752F66AE583371242868409A9486C5104B10A03E\ -780AAE94878F0599547A63C9AAC97802FCE926255167BFE5ED84F5389496760D::\ -3ACD3EC198014D833BBF4DF281C82C96777C9534584CC926F9DEC42E7C1F846B\ -582A267B95EE4CDAAEA7AA953330BE584BDAF75089FCAF66D386AFAE39C9BF70\ -B9D21C0E4C6590C67302AAC0A8917A3F33A39F7F921820E8DF6E6DF85CD6B6E2:\ -password - ------BEGIN ENCRYPTED PRIVATE KEY-----\ -MIICoTAbBgkqhkiG9w0BBQMwDgQIXbcBBmYh+DoCAggABIICgFFUCKS9lRmjJR33\ -Gndp+hSXD7IHV1kpR6ayZcbGGfYlqsDc63yaWcLiROTQzZ+DMYxaFxePhd8tKtLP\ -38iw/MyXa6IRAYA/C6JHPsXATrKRc+Og8cD5pCxc4STCrt0Wg/SCWl7V6nbnnWco\ -vfOBUHXmflnvQYMEUahsu6lZkR0wJeSyK8G5dMKb4IZ6vOffADQ0U8UuYYK+ymfJ\ -bv5XKXhfje0Iesg6eReLdQMxLI1CURCg4oio1aQsfTosa0wJ9deSry0cjXk7K4c+\ -7MROei4UWXT0Otv1CFYR6zbmBrFbds+CY7EaqoVzgsBcNPLmWWdFlrKebquGc8xy\ -HoIvJ9e/YSnE+YU+C/LapQpmyXoqcQB/Gr4Zdrb3+5ED5WYzgVY+jw8z2f2DAGJt\ -bdzzL9JvFuEG4iZ1vNi9TSy9CyEgoqTyxfcLlHZY9BG2iIhu8pajkjnYmrxodSQB\ -uRyYNJ/T9vFOJGUWHbe9Zii82TedNUBnF0G0e/aRMxBT6wQUrsB4Q2P6ntIIHuaW\ -8q0lhOG7MRnC1FtQ+qSrzpMTX9i/01F0YXegnzeiww4ROMTcO4vUtIRmF55LZv0v\ -8YOjZClzYQP6nNhpHX/+jDpZy+4GFXPVmiOhqjnqJtRbclu+CcDZG6NRFH2V9vrg\ -P+leIuPeA4hV20lbkG3xxrlnxEUAqMNCC+uwj1zTVdNKY8AlWK7umsdWiAPIIITY\ -GQCn/D/Jom7PzbMSVa4HmvsGntPxXP4PxrwErWbCNOZpE2fe0y+tiZidaoQZqmUj\ -UDvM5gYsamu9O5UcEes6QneMr6+NakYwWNl14V3jNB480sI5z8R5bmJW+tGRmYr7\ -/+MveWY=\ ------END ENCRYPTED PRIVATE KEY-----:\ -01C4B6CAAFF5ABF4FA027C945EE26974E77DAF3FDE5F51899CD64DD7DDDCAE09\ -A164D350597E445481C1E8DFA352538ACF03C9AD621A37FEF184D5CE6083D701\ -E8AB5141299695AA577E89FAD0DD849FE04E4C4268834159071628689AFF6982\ -AABBC3D451597EA8D708A2A7E52646C5749207DD1648361D5F5E85F95EEF7B08::\ -8095B914D477DE2AE3F2AC7648B32EB497B7C1F4FF298D4B82F0A77298574E94\ -530DD9FF57A205499100D5920999182E1CED1F25971B27C0C3BCB06F0507305E\ -E90AD35A00469341B47A6E2E1BB7DD792F6543F74D1FDC2CDBD433DC7C9728F5\ -58DA656E5134FC174723012151360E0310B31D4112FF5CC5829B0709F8EE7303:\ -alt.alien.vampire.die.die.die - ------BEGIN ENCRYPTED PRIVATE KEY-----\ -MIICoTAbBgkqhkiG9w0BBQMwDgQIfbv0EM4sRhcCAggABIICgIOfgSDzsjOhLX+b\ -1h3lXZiIw4nhiyV9q88CDEyB0x5y+aNkWipVetWoRPqZ6oAD6qE4yGQRhJuSa0o7\ -SzHQlZ7aqBAjtiNXw3Q7yeAP9lagXLolhnIovOKbhyj9iyblgKQgzTerbevaDgp/\ -jYTWXutKLhvjZeYVH1lRBgQYw3z1jIQQDRxw5ok4sYwD0/fpv9WtQ0Rr7XvdDRDB\ -PUhDqEu8GelR+qO7yH3M8Q5qhnTxHRpDWRU+K7f3XRNwJQTdiwWJtSJtUdrSpqYV\ -cqhDzejL3BJZRTcMbjsmq/uABwL5X9prXG2M6j2+9SrQQTWFQrLsyRIGXfKbKN8i\ -wFXaUNzGFKMskk7N6ywkiLMvAIhcaDO2ATm1bHunAcTeuIfdJfdpSWcQ6oz9x9Re\ -ACnWiQ0CRRYQlSYib/u0tt28rwOvCj4F/dSSUMyXegVz0gq3koGNwk3pbHEVvvUm\ -1bqiGQSr2d7DJ+ffe5IoIWB9cUgLeTFP4BBC1hegjDfTsaGEYPVFv5Qxi6W0BaN8\ -cq/HVWofFqu9jXeGgFq1W0IjYU7zftoVc9DyKor6ffDoDzYbNcivd8OcDydLnRVI\ -aofPN+fBAREXHuSz3cYr+arBe5PLbaHTz0iCi4zZUCWU83Usz8oLAtwkK/Ta4rDR\ -KLdv8RB3C3z4r811tWuTrgvoZeG2a4Xa94rb6okHWqOXbSHV00Z2eaqqLIuc89eX\ -JDu1iJrfARsaCN/Xu9unUnJWBRcqGzWgDRMSjnOoUhTCtjKqF3WDTsOfS1n8RSQs\ -F0zMsrXMiHXrWfcN4gDB8q/uz/laLapd8BTp6IZ0oygsHc9J5OHy36TLfoPhObo5\ -HcVJbxc=\ ------END ENCRYPTED PRIVATE KEY-----:\ -01C84780E9F341C7AC81703D1E1727D134E08DE7F80636F38284BC4EE3D55F95\ -9DA715879A564E46D8BF83F6D6AAC70B8A55F2825B2875DDAC312B90068B25A4\ -323A2BCC9079126838965F0F40261ACB7B0C4DD634C3B3E1F4DF71FB6A969F9C\ -D0CA6860437AC97C10288B514EA51CCAB169A0E52C54C62133371C9DCDBB399D::\ -A22AF2E3FDC9AD8215510CF6B55118A720DE36C84DE8CE00FA769325E03BB0CA\ -81BBD2960E834543443472E58754F9ECDE84D32B4F7CB2C2A5A14A60CA91C908\ -0D3AA675E56E53B2198627938C9B00ADAC3F07A50AB0622833F2DAD34C73D0EC\ -5717613E02A58936EEA60928C1A894C589FE4995607B1AF62C2BE8FD3E8ABB83:\ -foofoofoo_bar - -# PBES2 encrypted (DES-EDE) ------BEGIN ENCRYPTED PRIVATE KEY-----\ -MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIzgSAjcnspfUCAggA\ -MBQGCCqGSIb3DQMHBAiupWhsYLF7rQSCAoC8ySMPx/GEUvnlb4pj/KjYaeyUJ7En\ -9jzyLKNhfP2L+aCLao3FRSXEz3UL/Bzqx15XW96xfADw+LOXbVfM+HDyDwTm8W33\ -XQbjSyTCf+4hG+XZdzCppTo5jlGLv+3St6Tx/V4D4GbN7mZnO9tSHKim2qPzITE4\ -PCiV1pzDkOFDz/BtOEqL4AQaelBHldyyTrsSBuBVk5iN20mZ5SiEA7bhSuyBxIYW\ -QAqo2/M1JSvqXzXfgcLUNWG02ROmEc1hEvGIdZZAnjVHRUaC8oecTZlROCGyQ0ec\ -5HJt+hSVTtjVvVYRyR9k0Qn+E2tz1VBLFTxXdL2bD+vbGXhHUKLG0NM1Ks9Xea7s\ -YHTGb1wvwxAGh9MoK4bWeEl14fDRIlDlEnHtt6CpF+hXhOcI1UU9MHDQhXqA6E5w\ -+0FtnGMdxd/RgSkOvkvmMzTlbBGnA2W93R3Vv66iiDVIUO4DMAxOSlH4lZmn4kiG\ -gXHIu2BpYiR/CaeKCGDW1L5Ii/T5gnxYz6rKE1NJihRlrCplGe3ip9Ra7K4h+yA4\ -S3P2OuTjImCwBI1uL65vwnPLvdKuA6exGtI6eTyoyL3XN8Wt8LAXQwn1ijVNMXej\ -f/9zQnrdkhgYwQU5yvCi5yi5ewGi+Lqfo4rxJV2lt2b2wDfHoUULFVpIHlpUsWnR\ -aVIwa0t7S5gq/lFRxbnhsHBREJgZWP9kN1XHv8hrEcyedFO4aFj2J6I9GX1vvqrp\ -F5o4a38RBjfmR8FDsH9Au7IvuuH/TUipBybgCbIUyvQADexibuthq5MI2lpmS53c\ -vo6QOp6bwusFSPUE/qbDoW4lX9SWi3vF/RcQs1j7opsDbhqQk+G05h0R\ ------END ENCRYPTED PRIVATE KEY-----:\ -3BA94D8CC1749902F4599D63A527DACA74870714BC794813247D000DCF31BC57\ -E285CE5A1236EFD1956723B800C3C19094185EAAD7C744DA4917E34D3DCE5FCE\ -F4E6D797510B7A5BA67087ABBFB69FCEE5D8A98AD9A3D3B2AEE9876B9358562F\ -460A0D6C4B5D98E3D305D6B944832859CFB01072C6FCEB5D0558BA7D101458BD::\ -1185126E43C7B5F8D15523E65DAEEB6526CDCF2C8901DC7A1EC836C22CD4C344\ -1C24B16AC8ABC3E00A95C6BD03EBEC74DCA1EBD0DA6E61395452587B36DCD734\ -7184C9005177839FEDA5273007DD0AAC0E8C87A3EEA71F7DBEDDC7FDDD637A2D\ -FCA2FA1215DE8C332ED4BA093B6443C65B32AF294D8A56A1BF8702C1B9086E36:\ -foo - -# PBES2 encrypted (DES-EDE) ------BEGIN ENCRYPTED PRIVATE KEY-----\ -MIIBoTBDBgkqhkiG9w0BBQ0wNjAeBgkqhkiG9w0BBQwwEQQItEsDvV486kcCAggA\ -AgEYMBQGCCqGSIb3DQMHBAgzfU6L9FUlJgSCAViXz0OqV1SBvbiF0sEH8GsMQJwB\ -Q1RVEjyO8uncdbujalyVCeLukh/H0W0unlgceVMSdN7/nQBitkGkvLSoWRv9hYc/\ -UlkCMcq4R3Fx2hLF6Yquq/DyBgF57LVyOpomRa/Kj8TYjfZkx3JXJnRsqjoLhTbH\ -USzwv3DkKV5gljZqLTXdPAYFyWw28GAb+3iNfzwhudblH5JXaZ3X0GWSJEium0UC\ -WPpvBGlNOUyoMFo44q100ywORYAWl/Cc7UNXWMFLQT773FypPsx+bcWpA6Lmx665\ -POrVFb4rTh+AGX9f6Kp/yfgY1VJxuju55imTaHIHZUf6phAnwoTDI+UIZTw1IwHT\ -JdYbYaxjEZglCx0u9wZT5J9IwQVKT7/eLjowV4GS8zDr/tlssDMixQboJ/dRmUYp\ -jcwhnv36cThFx6GoqWMA7ShTVT//QDpvBbebuDOnlSmqq+5qmw==\ ------END ENCRYPTED PRIVATE KEY-----:\ -35489193F2E4B7B7FC7A52CB4A3AE2F7F97C02CBF43A60934CBD8AC221592666\ -92767C6C587BAE7B73E63EA470A07EA67927923FEC2ACDDB1ADDDAC75E8FFA15::\ -29772BC15B6095A66060CC76884B3E4C77A2330A880D9FE64B007C1DF792CBA5\ -B3422F9BDDF51C48E567F114776566653A7F7DDDB8686BFCEBC94B224D7CB0B3:\ -i_am_very_poor - -# PBES2 encrypted (DES) ------BEGIN ENCRYPTED PRIVATE KEY-----\ -MIIBnjBABgkqhkiG9w0BBQ0wMzAeBgkqhkiG9w0BBQwwEQQI9uqEGDMT/W0CAggA\ -AgEIMBEGBSsOAwIHBAiMfWZMW3qofASCAVgcAhB3yW1aNLIQaoo+WlTe6IRLjKWF\ -itkCW4/m6qJRvR0Yy5BTyDy5mD4QyOcVwvPGUPs6q5R+tjfbBb1orWttBDXvQn38\ -OMD8qV7voCVlDgljidAtSLmHOHy1jq7gCeyKdyC3XEMX1RZa9NIS5/fyJtrcQKxd\ -ktclLolFkiujbGH5i+LiRHWJBE8+9StxBdO+v0PE0FYR7vwxj05xKieg4UiKAVfp\ -C3+iX5XpVqMI+FTqtz/+4sm51ZgGRpz3vmNRJWqh3VqDWiwN8/w53qceDfjmNm5T\ -SfyA0K0dfSkaylprLFd666567HjDXGJlxtA4nM8N1yahRWMz/ufSd1u70dfN9l2L\ -mjghOP+WWverl+Td1cNHRE7/rvkOuhwLJpC4rnZHA4rnIxzwcQmsapk8rsu0S3I4\ -tdZEBhRZsoswIVQo030K6x9DZHMSIpghSc6BlMmu2Jbnew==\ ------END ENCRYPTED PRIVATE KEY-----:\ -35068206D5C287A47F95BD8ECD11E557D86EDDC993FCAD94F03D86C1BC97E2B2\ -68E637ED1A6B0EE459214E0F61099B74469AD36A3A37217182C42B0C48A4B413::\ -261D5A9298BE592400EE703BC27C2A16761F6C855607D9AA62A9B36307FC5100\ -6EEE06E59C55C9606FFBCF8DF74A98B5C9FBD17F0D7ABB867B4A7CB8DD5DC15D:\ -give_me_$$$ - -# The first bunch are from an RSA DSI document -[RSAES/EME1(SHA-1)] -10001:\ -D32737E7267FFE1341B2D5C0D150A81B586FB3132BED2F8D5262864A9CB9F30A\ -F38BE448598D413A172EFB802C21ACF1C11C520C2F26A471DCAD212EAC7CA39D:\ -CC8853D1D54DA630FAC004F471F281C7B8982D8224A490EDBEB33D3E3D5CC93C\ -4765703D1DD791642F1F116A0DD852BE2419B2AF72BFE9A030E860B0288B5D77:\ -6628194E12073DB03BA94CDA9EF9532397D50DBA79B987004AFEFE34:\ -18B776EA21069D69776A33E96BAD48E1DDA0A5EF:\ -354FE67B4A126D5D35FE36C777791A3F7BA13DEF484E2D3908AFF722FAD468FB\ -21696DE95D0BE911C2D3174F8AFCC201035F7B6D8E69402DE5451618C21A535F\ -A9D7BFC5B8DD9FC243F8CF927DB31322D6E881EAA91A996170E657A05A266426\ -D98C88003F8477C1227094A0D9FA1E8C4024309CE1ECCCB5210035D47AC72E8A - -10001:\ -D32737E7267FFE1341B2D5C0D150A81B586FB3132BED2F8D5262864A9CB9F30A\ -F38BE448598D413A172EFB802C21ACF1C11C520C2F26A471DCAD212EAC7CA39D:\ -CC8853D1D54DA630FAC004F471F281C7B8982D8224A490EDBEB33D3E3D5CC93C\ -4765703D1DD791642F1F116A0DD852BE2419B2AF72BFE9A030E860B0288B5D77:\ -D94AE0832E6445CE42331CB06D531A82B1DB4BAAD30F746DC916DF24D4E3C245\ -1FFF59A6423EB0E1D02D4FE646CF699DFD818C6E97B051:\ -2514DF4695755A67B288EAF4905C36EEC66FD2FD:\ -423736ED035F6026AF276C35C0B3741B365E5F76CA091B4E8C29E2F0BEFEE603\ -595AA8322D602D2E625E95EB81B2F1C9724E822ECA76DB8618CF09C5343503A4\ -360835B5903BC637E3879FB05E0EF32685D5AEC5067CD7CC96FE4B2670B6EAC3\ -066B1FCF5686B68589AAFB7D629B02D8F8625CA3833624D4800FB081B1CF94EB - -10001:\ -D32737E7267FFE1341B2D5C0D150A81B586FB3132BED2F8D5262864A9CB9F30A\ -F38BE448598D413A172EFB802C21ACF1C11C520C2F26A471DCAD212EAC7CA39D:\ -CC8853D1D54DA630FAC004F471F281C7B8982D8224A490EDBEB33D3E3D5CC93C\ -4765703D1DD791642F1F116A0DD852BE2419B2AF72BFE9A030E860B0288B5D77:\ -26521050844271:\ -E4EC0982C2336F3A677F6A356174EB0CE887ABC2:\ -42CEE2617B1ECEA4DB3F4829386FBD61DAFBF038E180D837C96366DF24C097B4\ -AB0FAC6BDF590D821C9F10642E681AD05B8D78B378C0F46CE2FAD63F74E0AD3D\ -F06B075D7EB5F5636F8D403B9059CA761B5C62BB52AA45002EA70BAACE08DED2\ -43B9D8CBD62A68ADE265832B56564E43A6FA42ED199A099769742DF1539E8255 - -10001:\ -0159DBDE04A33EF06FB608B80B190F4D3E22BCC13AC8E4A081033ABFA416EDB0B3\ -38AA08B57309EA5A5240E7DC6E54378C69414C31D97DDB1F406DB3769CC41A43:\ -012B652F30403B38B40995FD6FF41A1ACC8ADA70373236B7202D39B2EE30CFB46D\ -B09511F6F307CC61CC21606C18A75B8A62F822DF031BA0DF0DAFD5506F568BD7:\ -8FF00CAA605C702830634D9A6C3D42C652B58CF1D92FEC570BEEE7:\ -8C407B5EC2899E5099C53E8CE793BF94E71B1782:\ -0181AF8922B9FCB4D79D92EBE19815992FC0C1439D8BCD491398A0F4AD3A329A\ -5BD9385560DB532683C8B7DA04E4B12AED6AACDF471C34C9CDA891ADDCC2DF34\ -56653AA6382E9AE59B54455257EB099D562BBE10453F2B6D13C59C02E10F1F8A\ -BB5DA0D0570932DACF2D0901DB729D0FEFCC054E70968EA540C81B04BCAEFE720E - -10001:\ -0159DBDE04A33EF06FB608B80B190F4D3E22BCC13AC8E4A081033ABFA416EDB0B3\ -38AA08B57309EA5A5240E7DC6E54378C69414C31D97DDB1F406DB3769CC41A43:\ -012B652F30403B38B40995FD6FF41A1ACC8ADA70373236B7202D39B2EE30CFB46D\ -B09511F6F307CC61CC21606C18A75B8A62F822DF031BA0DF0DAFD5506F568BD7:\ -A7EB2A5036931D27D4E891326D99692FFADDA9BF7EFD3E34E622C4ADC085F721\ -DFE885072C78A203B151739BE540FA8C153A10F00A:\ -9A7B3B0E708BD96F8190ECAB4FB9B2B3805A8156:\ -00A4578CBC176318A638FBA7D01DF15746AF44D4F6CD96D7E7C495CBF425B09C\ -649D32BF886DA48FBAF989A2117187CAFB1FB580317690E3CCD446920B7AF82B\ -31DB5804D87D01514ACBFA9156E782F867F6BED9449E0E9A2C09BCECC6AA0876\ -36965E34B3EC766F2FE2E43018A2FDDEB140616A0E9D82E5331024EE0652FC7641 - -10001:\ -0159DBDE04A33EF06FB608B80B190F4D3E22BCC13AC8E4A081033ABFA416EDB0B3\ -38AA08B57309EA5A5240E7DC6E54378C69414C31D97DDB1F406DB3769CC41A43:\ -012B652F30403B38B40995FD6FF41A1ACC8ADA70373236B7202D39B2EE30CFB46D\ -B09511F6F307CC61CC21606C18A75B8A62F822DF031BA0DF0DAFD5506F568BD7:\ -2EF2B066F854C33F3BDCBB5994A435E73D6C6C:\ -EB3CEBBC4ADC16BB48E88C8AEC0E34AF7F427FD3:\ -00EBC5F5FDA77CFDAD3C83641A9025E77D72D8A6FB33A810F5950F8D74C73E8D\ -931E8634D86AB1246256AE07B6005B71B7F2FB98351218331CE69B8FFBDC9DA0\ -8BBC9C704F876DEB9DF9FC2EC065CAD87F9090B07ACC17AA7F997B27ACA48806\ -E897F771D95141FE4526D8A5301B678627EFAB707FD40FBEBD6E792A25613E7AEC - -10001:\ -0159DBDE04A33EF06FB608B80B190F4D3E22BCC13AC8E4A081033ABFA416EDB0B3\ -38AA08B57309EA5A5240E7DC6E54378C69414C31D97DDB1F406DB3769CC41A43:\ -012B652F30403B38B40995FD6FF41A1ACC8ADA70373236B7202D39B2EE30CFB46D\ -B09511F6F307CC61CC21606C18A75B8A62F822DF031BA0DF0DAFD5506F568BD7:\ -2D:B600CF3C2E506D7F16778C910D3A8B003EEE61D5:\ -018759FF1DF63B2792410562314416A8AEAF2AC634B46F940AB82D64DBF165EE\ -E33011DA749D4BAB6E2FCD18129C9E49277D8453112B429A222A8471B0709939\ -98E758861C4D3F6D749D91C4290D332C7A4AB3F7EA35FF3A07D497C955FF0FFC\ -95006B62C6D296810D9BFAB024196C7934012C2DF978EF299ABA239940CBA10245 - -10001:\ -01BF01D216D73595CF0270C2BEB78D40A0D8447D31DA919A983F7EEA781B77D85F\ -E371B3E9373E7B69217D3150A02D8958DE7FAD9D555160958B4454127E0E7EAF:\ -018D3399658166DB3829816D7B295416759E9C91987F5B2D8AECD63B04B48BD7B2\ -FCF229BB7F8A6DC88BA13DD2E39AD55B6D1A06160708F9700BE80B8FD3744CE7:\ -087820B569E8FA8D:\ -8CED6B196290805790E909074015E6A20B0C4894:\ -026A0485D96AEBD96B4382085099B962E6A2BDEC3D90C8DB625E14372DE85E2D5B\ -7BAAB65C8FAF91BB5504FB495AFCE5C988B3F6A52E20E1D6CBD3566C5CD1F2B831\ -8BB542CC0EA25C4AAB9932AFA20760EADDEC784396A07EA0EF24D4E6F4D37E5052\ -A7A31E146AA480A111BBE926401307E00F410033842B6D82FE5CE4DFAE80 - -10001:\ -01BF01D216D73595CF0270C2BEB78D40A0D8447D31DA919A983F7EEA781B77D85F\ -E371B3E9373E7B69217D3150A02D8958DE7FAD9D555160958B4454127E0E7EAF:\ -018D3399658166DB3829816D7B295416759E9C91987F5B2D8AECD63B04B48BD7B2\ -FCF229BB7F8A6DC88BA13DD2E39AD55B6D1A06160708F9700BE80B8FD3744CE7:\ -6CC641B6B61E6F963974DAD23A9013284EF1:\ -6E2979F52D6814A57D83B090054888F119A5B9A3:\ -02994C62AFD76F498BA1FD2CF642857FCA81F4373CB08F1CBAEE6F025C3B512B42\ -C3E8779113476648039DBE0493F9246292FAC28950600E7C0F32EDF9C81B9DEC45\ -C3BDE0CC8D8847590169907B7DC5991CEB29BB0714D613D96DF0F12EC5D8D3507C\ -8EE7AE78DD83F216FA61DE100363ACA48A7E914AE9F42DDFBE943B09D9A0 - -10001:\ -027458C19EC1636919E736C9AF25D609A51B8F561D19C6BF6943DD1EE1AB8A4A3F\ -232100BD40B88DECC6BA235548B6EF792A11C9DE823D0A7922C7095B6EBA5701:\ -0210EE9B33AB61716E27D251BD465F4B35A1A232E2DA00901C294BF22350CE490D\ -099F642B5375612DB63BA1F20386492BF04D34B3C22BCEB909D13441B53B5139:\ -4A86609534EE434A6CBCA3F7E962E76D455E3264C19F605F6E5FF6137C65C56D\ -7FB344CD52BC93374F3D166C9F0C6F9C506BAD19330972D2:\ -1CAC19CE993DEF55F98203F6852896C95CCCA1F3:\ -04CCE19614845E094152A3FE18E54E3330C44E5EFBC64AE16886CB1869014CC578\ -1B1F8F9E045384D0112A135CA0D12E9C88A8E4063416DEAAE3844F60D6E96FE155\ -145F4525B9A34431CA3766180F70E15A5E5D8E8B1A516FF870609F13F896935CED\ -188279A58ED13D07114277D75C6568607E0AB092FD803A223E4A8EE0B1A8 - -10001:\ -027458C19EC1636919E736C9AF25D609A51B8F561D19C6BF6943DD1EE1AB8A4A3F\ -232100BD40B88DECC6BA235548B6EF792A11C9DE823D0A7922C7095B6EBA5701:\ -0210EE9B33AB61716E27D251BD465F4B35A1A232E2DA00901C294BF22350CE490D\ -099F642B5375612DB63BA1F20386492BF04D34B3C22BCEB909D13441B53B5139:\ -B0ADC4F3FE11DA59CE992773D9059943C03046497EE9D9F9A06DF1166DB46D98\ -F58D27EC074C02EEE6CBE2449C8B9FC5080C5C3F4433092512EC46AA793743C8:\ -F545D5897585E3DB71AA0CB8DA76C51D032AE963:\ -0097B698C6165645B303486FBF5A2A4479C0EE85889B541A6F0B858D6B6597B13B\ -854EB4F839AF03399A80D79BDA6578C841F90D645715B280D37143992DD186C80B\ -949B775CAE97370E4EC97443136C6DA484E970FFDB1323A20847821D3B18381DE1\ -3BB49AAEA66530C4A4B8271F3EAE172CD366E07E6636F1019D2A28AED15E - -10001:\ -03B0D3962F6D17549CBFCA11294348DCF0E7E39F8C2BC6824F2164B606D687860D\ -AE1E632393CFEDF513228229069E2F60E4ACD7E633A436063F82385F48993707:\ -02E4C32E2F517269B7072309F00C0E31365F7CE28B236B82912DF239ABF39572CF\ -0ED604B02982E53564C52D6A05397DE5C052A2FDDC141EF7189836346AEB331F:\ -AF71A901E3A61D3132F0FC1FDB474F9EA6579257FFC24D164170145B3DBDE8:\ -44C92E283F77B9499C603D963660C87D2F939461:\ -036046A4A47D9ED3BA9A89139C105038EB7492B05A5D68BFD53ACCFF4597F7A686\ -51B47B4A4627D927E485EED7B4566420E8B409879E5D606EAE251D22A5DF799F79\ -20BFC117B992572A53B1263146BCEA03385CC5E853C9A101C8C3E1BDA31A519807\ -496C6CB5E5EFB408823A352B8FA0661FB664EFADD593DEB99FFF5ED000E5 - -10001:\ -03B0D3962F6D17549CBFCA11294348DCF0E7E39F8C2BC6824F2164B606D687860D\ -AE1E632393CFEDF513228229069E2F60E4ACD7E633A436063F82385F48993707:\ -02E4C32E2F517269B7072309F00C0E31365F7CE28B236B82912DF239ABF39572CF\ -0ED604B02982E53564C52D6A05397DE5C052A2FDDC141EF7189836346AEB331F:\ -15C5B9EE1185:49FA45D3A78DD10DFD577399D1EB00AF7EED5513:\ -0812B76768EBCB642D040258E5F4441A018521BD96687E6C5E899FCD6C17588FF5\ -9A82CC8AE03A4B45B31299AF1788C329F7DCD285F8CF4CED82606B97612671A45B\ -EDCA133442144D1617D114F802857F0F9D739751C57A3F9EE400912C61E2E6992B\ -E031A43DD48FA6BA14EEF7C422B5EDC4E7AFA04FDD38F402D1C8BB719ABF - -10001:\ -04A6CE8B7358DFA69BDCF742617005AFB5385F5F3A58A24EF74A22A8C05CB7CC38\ -EBD4CC9D9A9D789A62CD0F60F0CB941D3423C9692EFA4FE3ADFF290C4749A38B:\ -0404C9A803371FEDB4C5BE39F3C00B009E5E08A63BE1E40035CDACA5011CC701CF\ -7EEBCB99F0FFE17CFD0A4BF7BEFD2DD536AC946DB797FDBC4ABE8F29349B91ED:\ -684E3038C5C041F7:\ -3BBC3BD6637DFE12846901029BF5B0C07103439C:\ -008E7A67CACFB5C4E24BEC7DEE149117F19598CE8C45808FEF88C608FF9CD6E6\ -95263B9A3C0AD4B8BA4C95238E96A8422B8535629C8D5382374479AD13FA3997\ -4B242F9A759EEAF9C83AD5A8CA18940A0162BA755876DF263F4BD50C6525C560\ -90267C1F0E09CE0899A0CF359E88120ABD9BF893445B3CAE77D3607359AE9A52F8 - -10001:\ -04A6CE8B7358DFA69BDCF742617005AFB5385F5F3A58A24EF74A22A8C05CB7CC38\ -EBD4CC9D9A9D789A62CD0F60F0CB941D3423C9692EFA4FE3ADFF290C4749A38B:\ -0404C9A803371FEDB4C5BE39F3C00B009E5E08A63BE1E40035CDACA5011CC701CF\ -7EEBCB99F0FFE17CFD0A4BF7BEFD2DD536AC946DB797FDBC4ABE8F29349B91ED:\ -4046CA8BAA3347CA27F49E0D81F9CC1D71BE9BA517D4:\ -DD0F6CFE415E88E5A469A51FBBA6DFD40ADB4384:\ -0630EEBCD2856C24F798806E41F9E67345EDA9CEDA386ACC9FACAEA1EEED06ACE5\ -83709718D9D169FADF414D5C76F92996833EF305B75B1E4B95F662A20FAEDC3BAE\ -0C4827A8BF8A88EDBD57EC203A27A841F02E43A615BAB1A8CAC0701DE34DEBDEF6\ -2A088089B55EC36EA7522FD3EC8D06B6A073E6DF833153BC0AEFD93BD1A3 - -10001:\ -0749262C111CD470EC2566E6B3732FC09329469AA19071D3B9C01906514C6F1D26\ -BAA14BEAB0971C8B7E611A4F79009D6FEA776928CA25285B0DE3643D1A3F8C71:\ -06BC1E50E96C02BF636E9EEA8B899BBEBF7651DE77DD474C3E9BC23BAD8182B619\ -04C7D97DFBEBFB1E00108878B6E67E415391D67942C2B2BF9B4435F88B0CB023:\ -47AAE909:43DD09A07FF4CAC71CAA4632EE5E1C1DAEE4CD8F:\ -1688E4CE7794BBA6CB7014169ECD559CEDE2A30B56A52B68D9FE18CF1973EF97B2\ -A03153951C755F6294AA49ADBDB55845AB6875FB3986C93ECF927962840D282F9E\ -54CE8B690F7C0CB8BBD73440D9571D1B16CD9260F9EAB4783CC482E5223DC60973\ -871783EC27B0AE0FD47732CBC286A173FC92B00FB4BA6824647CD93C85C1 - -10001:\ -0749262C111CD470EC2566E6B3732FC09329469AA19071D3B9C01906514C6F1D26\ -BAA14BEAB0971C8B7E611A4F79009D6FEA776928CA25285B0DE3643D1A3F8C71:\ -06BC1E50E96C02BF636E9EEA8B899BBEBF7651DE77DD474C3E9BC23BAD8182B619\ -04C7D97DFBEBFB1E00108878B6E67E415391D67942C2B2BF9B4435F88B0CB023:\ -D4738623DF223AA43843DF8467534C41D013E0C803C624E263666B239BDE40A5\ -F29AEB8DE79E3DAA61DD0370F49BD4B013834B98212AEF6B1C5EE373B3CB:\ -7866314A6AD6F2B250A35941DB28F5864B585859:\ -0AB14C373AEB7D4328D0AAAD8C094D88B9EB098B95F21054A29082522BE7C27A31\ -2878B637917E3D819E6C3C568DB5D843802B06D51D9E98A2BE0BF40C031423B00E\ -DFBFF8320EFB9171BD2044653A4CB9C5122F6C65E83CDA2EC3C126027A9C1A56BA\ -874D0FEA23F380B82CF240B8CF540004758C4C77D934157A74F3FC12BFAC - -10001:\ -0A02EF8448D9FAD8BBD0D004C8C2AA9751EF9721C1B0D03236A54B0DF947CBAED5\ -A255EE9E8E20D491EA1723FE094704A9762E88AFD16EBB5994412CA966DC4F9F:\ -092D362E7ED3A0BFD9E9FD0E6C0301B6DF29159CF50CC83B9B0CF4D6EEA71A61E0\ -02B46E0AE9F2DE62D25B5D7452D498B81C9AC6FC58593D4C3FB4F5D72DFBB0A9:\ -050B755E5E6880F7B9E9D692A74C37AAE449B31BFEA6DEFF83747A897F6C2C82\ -5BB1ADBF850A3C96994B5DE5B33CBC7D4A17913A7967:\ -7706FFCA1ECFB1EBEE2A55E5C6E24CD2797A4125:\ -09B3683D8A2EB0FB295B62ED1FB9290B714457B7825319F4647872AF889B304094\ -72020AD12912BF19B11D4819F49614824FFD84D09C0A17E7D17309D12919790410\ -AA2995699F6A86DBE3242B5ACC23AF45691080D6B1AE810FB3E3057087F0970092\ -CE00BE9562FF4053B6262CE0CAA93E13723D2E3A5BA075D45F0D61B54B61 - -10001:\ -0A02EF8448D9FAD8BBD0D004C8C2AA9751EF9721C1B0D03236A54B0DF947CBAED5\ -A255EE9E8E20D491EA1723FE094704A9762E88AFD16EBB5994412CA966DC4F9F:\ -092D362E7ED3A0BFD9E9FD0E6C0301B6DF29159CF50CC83B9B0CF4D6EEA71A61E0\ -02B46E0AE9F2DE62D25B5D7452D498B81C9AC6FC58593D4C3FB4F5D72DFBB0A9:\ -8604AC56328C1AB5AD917861:EE06209073CCA026BB264E5185BF8C68B7739F86:\ -4BC89130A5B2DABB7C2FCF90EB5D0EAF9E681B7146A38F3173A3D9CFEC52EA9E0A\ -41932E648A9D69344C50DA763F51A03C95762131E8052254DCD2248CBA40FD3166\ -7786CE05A2B7B531AC9DAC9ED584A59B677C1A8AED8C5D15D68C05569E2BE780BF\ -7DB638FD2BFD2A85AB276860F3777338FCA989FFD743D13EE08E0CA9893F - -10001:\ -FC8D6C04BEC4EB9A8192CA7900CBE536E2E8B519DECF33B2459798C6909DF4F1\ -76DB7D23190FC72B8865A718AF895F1BCD9145298027423B605E70A47CF58390\ -A8C3E88FC8C48E8B32E3DA210DFBE3E881EA5674B6A348C21E93F9E55EA65EFD:\ -D200D45E788AACEA606A401D0460F87DD5C1027E12DC1A0D7586E8939D9CF789\ -B40F51AC0442961DE7D21CC21E05C83155C1F2AA9193387CFDF956CB48D153BA\ -270406F9BBBA537D4987D9E2F9942D7A14CBFFFEA74FECDDA928D23E259F5EE1:\ -F735FD55BA92592C3B52B8F9C4F69AAA1CBEF8FE88ADD095595412467F9CF4EC\ -0B896C59EDA16210E7549C8ABB10CDBC21A12EC9B6B5B8FD2F10399EB6:\ -8EC965F134A3EC9931E92A1CA0DC8169D5EA705C:\ -267BCD118ACAB1FC8BA81C85D73003CB8610FA55C1D97DA8D48A7C7F06896A4D\ -B751AA284255B9D36AD65F37653D829F1B37F97B8001942545B2FC2C55A7376C\ -A7A1BE4B1760C8E05A33E5AA2526B8D98E317088E7834C755B2A59B12631A182\ -C05D5D43AB1779264F8456F515CE57DFDF512D5493DAB7B7338DC4B7D78DB9C0\ -91AC3BAF537A69FC7F549D979F0EFF9A94FDA4169BD4D1D19A69C99E33C3B554\ -90D501B39B1EDAE118FF6793A153261584D3A5F39F6E682E3D17C8CD1261FA72 - -10001:\ -FC8D6C04BEC4EB9A8192CA7900CBE536E2E8B519DECF33B2459798C6909DF4F1\ -76DB7D23190FC72B8865A718AF895F1BCD9145298027423B605E70A47CF58390\ -A8C3E88FC8C48E8B32E3DA210DFBE3E881EA5674B6A348C21E93F9E55EA65EFD:\ -D200D45E788AACEA606A401D0460F87DD5C1027E12DC1A0D7586E8939D9CF789\ -B40F51AC0442961DE7D21CC21E05C83155C1F2AA9193387CFDF956CB48D153BA\ -270406F9BBBA537D4987D9E2F9942D7A14CBFFFEA74FECDDA928D23E259F5EE1:\ -53E6E8C729D6F9C319DD317E74B0DB8E4CCCA25F3C8305746E137AC63A63EF37\ -39E7B595ABB96E8D55E54F7BD41AB433378FFB911D:\ -FCBC421402E9ECABC6082AFA40BA5F26522C840E:\ -232AFBC927FA08C2F6A27B87D4A5CB09C07DC26FAE73D73A90558839F4FD66D2\ -81B87EC734BCE237BA166698ED829106A7DE6942CD6CDCE78FED8D2E4D81428E\ -66490D036264CEF92AF941D3E35055FE3981E14D29CBB9A4F67473063BAEC79A\ -1179F5A17C9C1832F2838FD7D5E59BB9659D56DCE8A019EDEF1BB3ACCC697CC6\ -CC7A778F60A064C7F6F5D529C6210262E003DE583E81E3167B89971FB8C0E15D\ -44FFFEF89B53D8D64DD797D159B56D2B08EA5307EA12C241BD58D4EE278A1F2E - -10001:\ -ECF5AECD1E5515FFFACBD75A2816C6EBF49018CDFB4638E185D66A7396B6F809\ -0F8018C7FD95CC34B857DC17F0CC6516BB1346AB4D582CADAD7B4103352387B7\ -0338D084047C9D9539B6496204B3DD6EA442499207BEC01F964287FF6336C398\ -4658336846F56E46861881C10233D2176BF15A5E96DDC780BC868AA77D3CE769:\ -BC46C464FC6AC4CA783B0EB08A3C841B772F7E9B2F28BABD588AE885E1A0C61E\ -4858A0FB25AC299990F35BE85164C259BA1175CDD7192707135184992B6C29B7\ -46DD0D2CABE142835F7D148CC161524B4A09946D48B828473F1CE76B6CB6886C\ -345C03E05F41D51B5C3A90A3F24073C7D74A4FE25D9CF21C75960F3FC3863183:\ -BCDD190DA3B7D300DF9A06E22CAAE2A75F10C91FF667B7C16BDE8B53064A2649\ -A94045C9:\ -5CACA6A0F764161A9684F85D92B6E0EF37CA8B65:\ -6318E9FB5C0D05E5307E1683436E903293AC4642358AAA223D7163013ABA87E2\ -DFDA8E60C6860E29A1E92686163EA0B9175F329CA3B131A1EDD3A77759A8B97B\ -AD6A4F8F4396F28CF6F39CA58112E48160D6E203DAA5856F3ACA5FFED577AF49\ -9408E3DFD233E3E604DBE34A9C4C9082DE65527CAC6331D29DC80E0508A0FA71\ -22E7F329F6CCA5CFA34D4D1DA417805457E008BEC549E478FF9E12A763C477D1\ -5BBB78F5B69BD57830FC2C4ED686D79BC72A95D85F88134C6B0AFE56A8CCFBC8\ -55828BB339BD17909CF1D70DE3335AE07039093E606D655365DE6550B872CD6D\ -E1D440EE031B61945F629AD8A353B0D40939E96A3C450D2A8D5EEE9F678093C8 - -5:\ -C7FBA2CB9FB24C6034C9E239E9350080AC8B9CB2DC8D428C5A1DA72767179679\ -1021093809F5F79052ACACA1EC1ED7E019818D8B2D417E8FC60812EE1A67992B:\ -FD06033468C106ADBCAA26AC4B6BD24CF4919EA5EEB99458D6E3C758ED606D63\ -9AA3D3B0BC36CFCAEC3507AD0280BF6E9F9C3EBCF41A0B33A95CC6EEBBDD57EF:\ -7730307421:67C6697351FF4AEC29CDBAABF2FBE3467CC254F8:\ -1A025CC4A2C1B8488760786162C62EC677F6546F329D84E6EE0DA11379573D17\ -92526104BF637DE57807C4394C492919021DD81ADECE3530D8D2BC1802EC2E88\ -A46C9C5E8FF11E34D7476530B7E11DE0236992DE293355494471223263664199\ -01CA2F27E4A996512BDC650D76280A54D1DE2BE17D6E59EE1D156745036D8DC5 - -11:\ -EECFAE81B1B9B3C908810B10A1B5600199EB9F44AEF4FDA493B81A9E3D84F632\ -124EF0236E5D1E3B7E28FAE7AA040A2D5B252176459D1F397541BA2A58FB6599:\ -C97FB1F027F453F6341233EAAAD1D9353F6C42D08866B1D05A0F2035028B9D86\ -9840B41666B42E92EA0DA3B43204B5CFCE3352524D0416A5A441E700AF461503:\ -D436E99569FD32A7C8A05BBC90D32C49:\ -AAFD12F659CAE63489B479E5076DDEC2F06CB58F:\ -1253E04DC0A5397BB44A7AB87E9BF2A039A33D1E996FC82A94CCD30074C95DF7\ -63722017069E5268DA5D1C0B4F872CF653C11DF82314A67968DFEAE28DEF04BB\ -6D84B1C31D654A1970E5783BD6EB96A024C2CA2F4A90FE9F2EF5C9C140E5BB48\ -DA9536AD8700C84FC9130ADEA74E558D51A74DDF85D8B50DE96838D6063E0955 - -11:\ -C078DF95FFF0FC15570627120760AE74601094E47D0C879075B1F1A3EC33B255\ -3490AB1484E588C18A62A166876C5FD1F9790C265CD5ECB5ADA8BE03D5ACE4DF:\ -CDECBA049D6379CAF66158D85E5A1CA40ECFB849E832109B6E018DBE5F2DC8D8\ -63DDC8DF00D93BBAD5AA1EEEF896AEF694D253C11B806547D8F3621F6C0B7041:\ -7730307421:67C6697351FF4AEC29CDBAABF2FBE3467CC254F8:\ -40BD2CCDFEB88BDBF6AE80EE37045142EEBA60D51063335F6145BD30223A1635\ -D18C4E67FAD80D158BFA711A6BBCCCE8980A171027083D2D4E6B7DA2C465ADDB\ -D1F44350C51A9E03D808EB5784F0A3602B7E23903CE4530DF3D45829375E1113\ -7FCD639874F71E68742B9C145D21ADF4C4C8416B54AC4A01B25AB4CF1570CFBD - -13:\ -C975657B7786E7335EA9B72E0DFE6FA895F5F7CE9E559CED9E6C9960ECECFCC1\ -EC9D515BD14849E798B4D699F7C2898B6C256A63EA5F33D2FD77A51232B722A3:\ -D502E40CEA5B850C45E3BDE7E05EF0B13F4AE0DE9D93FCE969E5A119191785A6\ -3E5C181BD0CB3F440A1B519B3961B2FB519A8526BF29A3DA6DAC68261F70149B:\ -7730307421:67C6697351FF4AEC29CDBAABF2FBE3467CC254F8:\ -4B4B2F855CE4E8D5675589DE93335E31C1EC3ADA263855252DF49BD4836DBF29\ -3E07BE72C537B9C7685B38F7C838E067BC9172DF032C1F7AE337310A41A5F103\ -B00E662E3F78E04C234825A3DA6D31CC84D591EF5E8FE970ECC2C0B23E280463\ -25D88534EC256FED8C501034F8017C771983A07EB60E396F97418AD903282B59 - -67:\ -BEDC7B14D1A21178D999DAAF657792371C8E55D29DA042030BBCAF411D36FDD2\ -F2A1F79DBEF6B61AF19A750562ED9C7A73386929951C9D330789504FB322C99B:\ -DA9ACA1C011181903DD4C24863408D49E4E134283CE92C65C842B753FBFBA463\ -4024837D6C1C17C18254BD8CA696F85BFCEB2578BD41B2584F2F47D6B12C18F7:\ -7730307421:67C6697351FF4AEC29CDBAABF2FBE3467CC254F8:\ -11C86DA2269774A6F24161A81B25D913B1A8C9F7332D066F96AE896221BF0B30\ -63C2254FF1B082721C18BE2BC3F0B1E0CEC028D8CEF7C762E985A6C327ECEE03\ -6070B9BCA0E6E41EF72B8404C7874CBA08E2D05612D69D11DD14C1EA42E605A2\ -92AB1C5A19C2F0EF39441225C783BC573775A28857F8AEFFF4C7748C164C8A79 - -FFFB:\ -C7479D7196291025D82523AC1840AAF09C3FF8844A444A9FED1C63996FD34566\ -B75FB997746D175CB1B253C470AF4CBC5A0EB9969A85EF32A12C75053B8D7681:\ -EC73649E669157A56375BEC8AA903491543605C6A55AA7E4C804A0A8854C1363\ -56485CF4595B5922FF408E2A364F19F8BA82D658CD179118227BAC50046802B1:\ -4920414D20534F20475245415421204920414D20534F20475245415421:\ -67C6697351FF4AEC29CDBAABF2FBE3467CC254F8:\ -B73D7477B95133222DF24ECE7F6FC3E183DC7378503F2DB0E95CCBCAD9134CB4\ -7F5CEBDBE94AB4063E473A5168CB7402E75B2423E5774FB328D2D463AB79D62D\ -46DBC2AE11382F90AB2D63CC061816991062C17B08FF6D29DB1F646C57BF122A\ -1F23017207DF6630B739134995B250260907096971F530E8006B06534A333974 - -11:\ -FAEC2B060722051B29D1A7E1D3E060CE3CCBCB29CCFC68819F26BB7566B7C5BB\ -D02C16C5A99E7F8EC22AA7050175DEA2C6C8939A24FBFD9015DA5C33C9E13985\ -F6E788E3BB02771A4B273B4C9D376E8204E469EE1433CE4ADEE78FF6B0B96445\ -673D5A0CB10156647B5F0418CC47A3469C6D0027D6AAEBC402D2DDBA1DA5B693:\ -D4795D21407AB236151E75957B45907F27BCFCDC38A0D9E322B1F2810FADA359\ -61527F1834B1909BDAFDD8D6B779C60694E36380BA45CFC786FD28C8310AEE62\ -30432FBA0996E87D22F7792D101EA4C171AAE38956762E3EDB2DCC8919BA0269\ -F9CDE6B3D95F6D9EC93D22D118FCC837B2EE5990D6E84CB181D3416FCFFA9A23:\ -7730307421:67C6697351FF4AEC29CDBAABF2FBE3467CC254F8:\ -67114A6F725F764D578FFB44F36CEB3A2B51CDEB1183AEA7201337DF4D2F9A0E\ -7DADE80202AD35BE2C5A209E493D31437189B95C86B53EE4B849536F94782E03\ -35E1501978588A525192001D2D1B1C521A31F94ADC1A3119D50E07318246D352\ -61F44EB0C2677F0E358E486A82E2B971996C926474F3199A4686ABAE7AFE130F\ -BF419FDB7B92CB69D8FCB7FD1536234C9B82409474F9968BF16CFBDFBB57EA34\ -C01436A684B8C521A435462CB6A6EBDB5DA4D97AAD2662738810DBC40C2616D3\ -241D47085D53D92518BB24D26B2D7E8404ABE334E6C4848DEE793F0EB6B61ACA\ -D0BAAFB220CB2C9ECBCF9667ACA41661B21E0A68E187DCBB39C3D7C5C31A7771 - -# These catch a bug in versions before 0.8.7 -10001:\ -D32737E7267FFE1341B2D5C0D150A81B586FB3132BED2F8D5262864A9CB9F30A\ -F38BE448598D413A172EFB802C21ACF1C11C520C2F26A471DCAD212EAC7CA39D:\ -CC8853D1D54DA630FAC004F471F281C7B8982D8224A490EDBEB33D3E3D5CC93C\ -4765703D1DD791642F1F116A0DD852BE2419B2AF72BFE9A030E860B0288B5D77:\ -54657374206F6620454D453120286F75745B305D3D3D6F75745B315D3D3D3029:\ -55BF28124E5DCC8B92E4419464AAD74B9D489259:\ -21154AF8EAAB2063615CE16397CB0AE8FA55C94D8DB6A1738F90CE17B1F2B77C\ -57A5E2B7D892FCE8715B950070C2AEDCC6972A5B06BB20607D948FE755E24EBC\ -408456375121DB3A0205F45030DC840EBFF0ED359449B670B3AB77B9E8167658\ -DD73AE971C6B131F77C3A5143974393A2121F2F457146C7AA22DD56A7EEE86EB - -10001:\ -D32737E7267FFE1341B2D5C0D150A81B586FB3132BED2F8D5262864A9CB9F30A\ -F38BE448598D413A172EFB802C21ACF1C11C520C2F26A471DCAD212EAC7CA39D:\ -CC8853D1D54DA630FAC004F471F281C7B8982D8224A490EDBEB33D3E3D5CC93C\ -4765703D1DD791642F1F116A0DD852BE2419B2AF72BFE9A030E860B0288B5D77:\ -454D45313A20286F75745B302C312C325D3D3D3029:\ -825B0D7E7CCA6E1DE021437268D678C0CB8427D2:\ -039FB7DCBC3ED3DC57BF06055A269E47C00119FBF1F55FEF6E4174F9859C1BBE\ -FC40B0A73E128FC5DF5DC6DA3C292BD13E428CB90A181983FA2383B092375B1B\ -66FB2263174CD75266AD03B1DA49FC5BF69ED911017ACB87FA405DC118E8EE69\ -26C7ADE4392802C8CBD26D7534B8347F9C6C40F7CB776857F45EFF31D6D17CA5 - -10001:\ -D32737E7267FFE1341B2D5C0D150A81B586FB3132BED2F8D5262864A9CB9F30A\ -F38BE448598D413A172EFB802C21ACF1C11C520C2F26A471DCAD212EAC7CA39D:\ -CC8853D1D54DA630FAC004F471F281C7B8982D8224A490EDBEB33D3E3D5CC93C\ -4765703D1DD791642F1F116A0DD852BE2419B2AF72BFE9A030E860B0288B5D77:\ -454D45313A20286F75745B302C312C325D3D3D3029:\ -20A708C1E55F288CFAE84EE6A521D3268234673B:\ -80960E4DF6DBD44A685EF7175BDCC12A53EC5DB0C8CD2866D72C120274D0F525\ -88A71E97B449B65A9E0D36AF3A6C3437440163444EA9CC03C26FC52596576B54\ -67CAFB8F171A2156135FD8CE93F7BA2E1418A4646E977DE60B19F1E7140B28EF\ -C241AB3068FD4F0B70332962F253D67B6FC41D60806D0E6B62A81C759C24F405 - -[RSAES_PKCS8/EME1(SHA-1)] ------BEGIN ENCRYPTED PRIVATE KEY-----\ -MIICoTAbBgkqhkiG9w0BBQMwDgQIvr4d1PWvUvsCAggABIICgHacnCUtLfHl6orN\ -3TlqanvKYD4NVYiXpM4lhPbOk43UDH4iR+uEXmoGbt6HCjDJuFLt8HNcxMO0jrrZ\ -fjD14doLd5Byv8oldAKBHz4GHP2wGxb0l5vPqHE9WgDN/NKke35TJLuzkrV104K+\ -hir+LhhwDsDCV71jqsVL7ld2+AxCKF8+1uC+uSOoD91tFAXPLt2BApqByMJ59OMQ\ -MK5LKsTQJivywXSyQHVXVTCkJyx0jiChpr/ns+ABsZ7BVD8B+C2QTY4j9w4F80ms\ -dJkdEmmiRtIIPZoHrLKisPjLWE2oBgMxwfgE0twL6LgjMPAKaXPX5z9rmD+is0D7\ -BovbmCVNDLNvIB0z3ehP/EzP9V2WtPfpjwnKL746+Hy4h5bdt7pVUYjWiTxXpiAr\ -twjm8R5OUseNYrsVf2mitm8VRF97egF9BTQ74kUDQPKvwDSfVxkaOPttfo7xB0j2\ -GYRgXOsO/fosiafakBs3ARLJ7U8vjq2JtkTbKBtWvlJQmc3VHALZ64Ukt7epOlV3\ -W+hE1Hd6YnAuzCQIgPW8TtJkcSeUbH2NtR1ZCY7hUnLmqbiLAVqNezmYg5HIKZIQ\ -/IWMonvvrJimIRzz9F+EUIGM1JjgMrIIQ2zHIB8Hp0IhLNel+pWtSAZ/CDSTbOkP\ -An63u+Btp0CNGaIYPBNkW3rN9rKSRn85QFAU54LKRrtY3agVJs8VCH/jU1nBNl+P\ -pti1MKjJGAa8yCjn15jLBmS/PSRmLT04XwlDEuxBrfsAy8zScQkvMYLlVUj0JXJj\ -uEsBmm2wi8aCsD7cylqyflyePKOSAlig88cmFGWR37nq2HP8Gfi6IrzSFcLFyeOi\ -SJjGj3U=\ ------END ENCRYPTED PRIVATE KEY-----:\ -B2207519BAFEA1FFA5561CE47F903CE59DA9FE82DA7D4C867A92F28F180D:\ -FC0DBB14EEF2D2FBD6D75C7D920D96F5057C45DA:\ -C1659606D25D6D3274B0380373D8F0F740EECFBE0E7C5AF20F22ADFE54063E0D\ -B5AA23737992C216A66550E8B0D1730684588B1CA0FEAC63680A7EAC2EB6DD73\ -EA5B2DFDFE2A41C47D28027E9400FD71A2A8109271993C629A39A9B006AA11AB\ -E798FCB1297BCA3B42CE1BFCE817928DC3BDD7661BFB2CFEA5B1C2D02B48B821:\ -ilikepie - ------BEGIN ENCRYPTED PRIVATE KEY-----\ -MIIBgTAbBgkqhkiG9w0BBQMwDgQIeNQ67v0/C1QCAggABIIBYDTbkO1cl0ur+Osz\ -kTIQYqsi+YChtwLeTE0HipSPbuvlsFI5eoQvKjaEZjSMjsZwT6hX9zVbaclDFu7o\ -fOzrEwGSGXoquFzS0GfbtynnUhk1IAPviLRdesPFCrRWFByaTRC4y2G3zT0bopo+\ -Q6as/Tk28V88dpN7qC0Q5GlAaPTzc2PAy9FGc4lnu71WGQQOVByZ4LFomBPez2F8\ -S95H85Q0OZADlp+7gGUjUtlhZqlmn0b1OGNIsU9Ua4VntOFODr2AWMhoKpmZ2nNd\ -9Nc97uwP4jx1F8hfQP3/eRlG/FgYPX9FtVPAmKV8NA1QoBIIrfW0T8/JDnOYsxA1\ -/EwyNoamD1UJ3xq0kHS9a6c1zU00l7fgc1Cn+qECu93FxAffVN/cpA/+QwQwNXhs\ -ypmHWNSJuTUwx+MvjO/aEUAaGFN5HNwiwjOgoPecnSbHyPeyc7Fy6fVp6bjYuCJH\ -gjnIOR4=\ ------END ENCRYPTED PRIVATE KEY-----:\ -A3208DF23DFB014D257B4C3D7238A857AD:\ -0E151CD5DD9014F9BCE7BB3500D1E3A7EF3F36F8:\ -374FCFFE225903D58CE988FC469AF9B6D660A90A48FFB7DCE207888D871587D5\ -0494260231664CB03C18A427B04BED666770B503B6EF08632A00D9D03888B1A0:\ -unguessable_password - ------BEGIN ENCRYPTED PRIVATE KEY-----\ -MIIBgTAbBgkqhkiG9w0BBQMwDgQIfovX98csqwwCAggABIIBYA3nZapMLCVG6H+1\ -GVg9ThDA2RPjb5bI24AU8UcRV08Tw81SMQmZ3BCFgcbUlcEAM8BlGfc3g4KbxSt0\ -P8o0/ImCsZG4tcjQqw10CjQkG7Wg4WrKJ7wVUoKenR+9vPkzDtAFLctNqfWgbtmX\ -hD/O0twe0NT3puypunDReKq0HRu4LnMnXBzSNg9FHFvW95KU3JX6Lk0Yt77Lb0nk\ -663We9Tdr5kQnONjai5Q9gPst8suI6K9miInimPWgPSyCVy8Yp9Epl660QOpS3P4\ -mSg5ZPCT3pzcyKdSK/I1HfFSuXfP8+XYixjNHGjX3TZWl/x0g0EACowNlKQi63s2\ -9MRpBpMxu5Y/AhrpZ2GwUPQnFxmJXKOIXoSaTSzAW15QwfBGybB9F2goM3KM+xEY\ -g177HF0JWHexJGbMurT8shUjwrxFb190hoHIUYsmVN2qRT4tFNsUYAGjDAE287SW\ -YX8pFFg=\ ------END ENCRYPTED PRIVATE KEY-----:\ -8F6B78A9F0D0F35BEFD38B:25D6DBAA5DEA01099646C5DD25589A10C414B6AE:\ -0091AA69E80C2690C78B99D5BB71002BDF019B12CC6ED5F7ADB0D2AF7284D1E2F\ -E14E372C71FEBBCE91309D7D18EC979DACCFE11799E31BEFF9B4D25D2B9DEF8DD:\ -akira - ------BEGIN ENCRYPTED PRIVATE KEY-----\ -MIIBgTAbBgkqhkiG9w0BBQMwDgQI4boeHBzsmTgCAggABIIBYNQg9WdcjfVuPIof\ -D5/vhwOE3m3fxFqPmEeGf1m6729KiaVGuICWos3o0+rca6zGwulfUe++yARG4TW4\ -Ug/kjQhYVBZ6C+0cU8HmkpyO7mNcOrIGLJVgYmfcZbIm5DKS4g8vdLLF+mC7ic3n\ -ccBmbAN7JpPUjUiPVLlmNU691TajXdf0H14oKvmagjW9revy6KPrp9Hm0DkA5k9m\ -eMc6CyVk5IUijwEQyl5kwgCZMvR1N5ojum+FS5/+m4oOOPlowypEWPJYIIrH8vqv\ -bL/ZrBN1BsNKo2vkFvgs2AUJWhtuCdOI30HpVuI9t8crCZ2jHD1N+UdPQK474xhj\ -7/kTvM+LxAJm5ZKbcTJ8IlwVvEKvjN3+NPHpOIhThNI7IuBiLbljf5Q2hO68fUrL\ -D+6blox9MfSfpObyHzAk1sz9TnglnwgszUnnQDnF0akbR0sjmAntr2J0SPQ04Ore\ -GMrVEDI=\ ------END ENCRYPTED PRIVATE KEY-----:\ -E729D4D596553F96AF:36FBC9529B999745EF9F19DF5A7C4E783013C661:\ -02A9176EF95FD74880B641C1E67367F3780B59456EBBDC05A4B6EEC3D3F8B8ED\ -E063DD1E2300E24CFABF475C8F3BCCF987C043A9A839976ED7B3995752EB3A746B:\ -It's my hobby, Sakura-chan - ------BEGIN ENCRYPTED PRIVATE KEY-----\ -MIIBgTAbBgkqhkiG9w0BBQMwDgQIikN0UUeS0WcCAggABIIBYB5e4OfogtTUEoKL\ -N1xxteoWJirrMjzmXFVbief3OhiPTrLLAHZxQFdvnljURvY3UTUCDAJsBwgVfQlt\ -v0sYNdgxCv3seyb4f+MmDQKppHcaoPUfoE6R7J35lwE8eZs7S7sQIhA2loBuYrGf\ -V7GJ1nr0zWzb+JfRoOypMWbt0f06PMfJGdjd9dWaiR01L8PAHwwNNNREtbobrGcc\ -9jrw3bUDwMW/hkJIIrrPbQ41OqIJsQ09x+1VVBqaqcS/dy9wnB6FmUT8xvGY8YMx\ -ru23dTzd7ONBVWmhOq3Sov6o0i2eaFG8U656/L64qlw74lAUgJOVlZ8YNUEgaegc\ -rOSDDAe04/Piddbq8wpgpkB3pqJzFkleNVSBfduZaQ5azdtgpNKahIneAPbltnKm\ -hJVZ9OZImRKQaVOVZfqM5dJoohTrvTee+rT4n9O6/YcBgoP3QtTscPLSHyaQB8+A\ -X2ppo4M=\ ------END ENCRYPTED PRIVATE KEY-----:\ -45A04558B8:6587ECBA1C8A7BA7C2A8B4DAE9D4076D85CAA2FE:\ -011F8E0F8A7FAF157D2C5938B137AE3A8A2158F9784E1F09E205A7C7C71505E7\ -D50DB8E967B1CC637EDB766B12570328B7C7832DAE3F79C25D14F26DF0729F72\ -6C80:qwerty - ------BEGIN PRIVATE KEY-----\ -MIIB4QIBADANBgkqhkiG9w0BAQEFAASCAcswggHHAgEAAmEAsgsx0714GvWOspp9\ -CrFOjZ+rSKi2q1nt22CJM/vGvtVr3wfCvaszroOths+vl8OzNFWJWXLQjYx6vsiX\ -n5lcQyzeXW7Qd9VCRGoTwgd6aVvhHjfqEBttQVDJmFf+R1wrAgELAmBAvkCqFlo4\ -WUsprIqPhkscOg+9VJ+EILOVl3e1z+suHw/0AtJzhBLLGJwxBbQ3L+N3a0aQYOwP\ -uiYXuJbt7KzaKWnFP0XHzme+6X3zOGai7+2xM0CkIiAzNqdHJ49xneMCMQDkL4WP\ -uwc4vo4biGjfjqqdb29RLR3JLZ+b3C9c0LZYlW7oA/L4zeaWs1TvobkCuWMCMQDH\ -vwG8rUApjgPiBI+xv9ZNy4wt07LJMAVbi8oIW6nQsqSO5wVT764dxyilCXrMMJkC\ -MHx3AwiUj5NQqpqnfwWTouGCmc8v4bONP8lg1AQUwI1oyCF2hIe2IK9Ki2tvfDAI\ -BwIwNnnpM3URf7JeJl5VvB0L5qvgaZbTqzukXskIjep0IaUVm1ZHRW/pqwfFREhn\ -TvX7AjA/Z/CkJNDAkHNUTW67+VzPRulGiW4+Lzs0f+laa/ZL9SizJ1nS+HtUeREG\ -Ya7AO/g=\ ------END PRIVATE KEY-----:\ -F5BF1834145D40D0A09D6331204035F76EB7DC981734E09CD1D755B46484675A\ -447F8E58DDCE287D6B8CAE8BCCE3833A9A5F:\ -C91DFAC04EBDD389B0A172520B3D189C6E19FDFB:\ -75CBD6ABBDDA5A8DF4470955E212778FD872B0816E659C42F9D796A48ED86EAE\ -FFAE39EB4D25A218A5EB6252DAC6A73DA23B35D967286C673FC9A603AC9B2803\ -A8F75BAA72A22A3601FC0A1AD9923CF8A75B749126E2C98BD3AEB4EE2FE3452F - -# The actual (internal) name is PKCS1v15, so test out the aliasing code. -[RSAES/EME-PKCS1-v1_5] -5:\ -DA8D6D0AE1B959B8A446CE3807F195BC6737491490206535AC8F85E5D6E5C18F:\ -F74FE3F3CFC5BDF517A50A887676E7CC2D20C509758B7657ACAB73DFDD581D07:\ -426C696E672D426C696E672E:\ -C66FF974AC57FF20D15AADF04D472ECF48F945F50945822FDA962591C160072A\ -AFAC9AB61302ABAD458A2528D610C73DCD:\ -11F10A948BAE2ED28555EE8B36028C8AE3001E8AE76DA4567A59DD59EE8B490E\ -54617009CF6E346360BE39E22B432DD7B50F0C41BEB1A6DF655E486FD5D822AA - -C3E9:\ -B90114E3BA96AD3076C08F63255E07A6BA0F46C0EC9332EB9081EA81100FFF2E\ -D3F886DB2DE1CE4F01ABD44D477DA8E61B66C65A9FB666B1CA8F79FC7B3EF25F:\ -E67921A8F5C8C04169E8CCEDE6EE147CB3B1E139BFA6CB6789E24238CBBA10AD\ -522B4BBA6F3B3138C7B038856F01C3735B2B61FDB18A47DB57D5B4B5B52B6E77:\ -426C696E672D426C696E672E:\ -8D4557C36F53ECB344131ADE3F85684BD10DCE1B84BB9B95A8AAF565D73283C4\ -46251D7FAFAF6C84FB216C627EEBEBD0F38C0E4C2849BB5FD95E453C9F4729E8\ -B54E0AA5700EA7ED197A0A64DA43AA33A0D232ED403F2DD5C519FD070242DBA4\ -6FAA023D4FCA255AABB85A9AEC28DB83A6:\ -9642171747FA6A731DF3D17AE28EC0AA0FB8E4046CDC0170335610B1FEBA9673\ -8E4A7FB6BD7761A035B41161696A2270AD429C09980005307A6F154B65F6CCAE\ -0C7C9CC1FC2E61BB52B5AE4AB41618023B673201D14C83DFADFDCB21BC7EF65F\ -CB497A7625E324F1ABE70B045D465051C4668A02B5F38F25606FACFAF62296FD - -11:\ -F233C84BB80BD0BCA772A629AFAE474650A81C10B863747364DF21776B1ED919\ -39FE9011E45B6C317F7C913F1A2E9395797C2E778FB97A0B1F57AEF663213557:\ -FB5B0E26BDD59E3494998727361831FDEC1715C0DB65E0FFF318A2BE9B33993B\ -76984F868CA9179807F29C1DE6C5489C1D43C76BBB7959BBF85922016BCECC43:\ -4C65742773206F7665727468726F772074686520676F7665726E6D656E742120\ -286D616B65207375726520746F20656E6372797074207374756666206C696B65\ -207468617429:\ -2D76481668E437FBFD3DF446DF2BC5F7F0EAA857CB913E739D5CDB6042D32ACD\ -BD332E5A99EDD3B4B210FC2937440EF8EDA3EEDE33D7B7:\ -7B8F8AAC5BBC997CD4A1DE682FBB96AC8E80C6FC2102B1E7926D9AAD97BC10A4\ -6F981BE12F8F1B51F9A9E1F8D8B7AED9CC42F2AC0420368341D994D942071766\ -79B5F2187FB6BD8F962B678CC379009D0A82ABB9933093371B71C6CDECEED957\ -EE08962B0A94C7DCF40325E5CE38C61C81D327AAE5E140F345597EE7774B8A11 - -11:\ -C768A0691EA020997054C37D371440D61BBE79DA842AB00DB0FED730D00BEFB7\ -A466BEFED1BD928211E7E3F56B59A275135C80EF31B6F7348EAA7887E798FE41:\ -E12F3186A97838D1D57671508F249E538C85DCFD34CFEC3A98DF3A16C9559408\ -5A7F706FBAD2ABB69D654BDF2EF64C11A0B20CF70BA9AF62E416031C090F6D8B:\ -57616E7465643A20437574652063727970746F2067726F757069652E20507265\ -66657261626C792066656D616C652E:\ -22FA636CF24BFC2DAA1ED4FFA8D8D65370A45AD16A24454A2132ABA993A935B6\ -EAF3932BF7AFCC89CCE080CC4AD06914148C164C659A24468DAC947B73BE7B5B\ -09FC516E16EF7E89AE02F590EC23:\ -A0DF6D9AB85D31C7AF2E9748005C10E245A25987BA91990046FAD410E9640CE9\ -DDB51D11E8A05423D80CA8AEA69AA08A42D58AC8609B0D1390F4FBB6E48EE8D4\ -FB031A13CBA1050240E1CB5C03793CA0ECBCD543718B3DF51F6ED411512ACE95\ -FACCEF2A127D731AC0E25A47722C07FFD1A1DD5DFE0B1EEF6EDEB3C8C654AAD4 - -1300D:\ -E8E314B7ECD4CEDE513D6E229A3A3A0E1D0DAF974ABDA9997E1978972FD0863A\ -FFD6259861CFC26F136DEBD1ED9CB227E091823C21DD79B57E8ECF67B9293113:\ -CE47F1506E6DDA70A95A6EC56E34B9F3F929D15C92DD4AC537162C6E3BD6C4EB\ -FD3C51D08BA61216685A333062EBABA4B5E647C81550C7FBE132A1D48D7EF00D:\ -486F7720646F2049206C6F766520746865653F20204D7920616363756D756C61\ -746F72206F766572666C6F77732E:\ -25B8D6560A33737B64EE77A02D5A3BA53F0F165468CCB98E7DBC6DFFA4C29033\ -A209E8B6821A3A7CF9EE89C02B42CD25F62FAFCE56B80E703897A3299F78520B\ -A251DAC421CC5A0B52E0E4B15FBB1E:\ -5A188A2132B9331B1072BCEA281DAE53070C0AAB0722D583BC7FE767BC85443B\ -5E36286AC568246781792CE04FCEA86D26124F14F3E8ADB69CF1E8A0A1D86E3E\ -0AC0F141C18CCA5F1B8228AC2996E81938B6593F37A603A41128D4CC0D453610\ -42B5F86539BDBAC1B1867E4FE351F599E955B452F675B0945093FE8310A70C9F - -13271:\ -D4AA40364C695FC262073498EAE363EAE585720A8AA211D37CC2BB74ABDAE7A8\ -B6D9C55D5D8E3A0E4D3B39D57D543E8A17F697FBBD45E32EC53B9240188F7EF5:\ -D4420A0041902AFD838833F2EF3AD89AFCF3EF66CA5B20036692BDC45FF861B2\ -0BE756CE35DCEC97A7BDD28DBBC09315E5B7E0249E61772436CA728C7639A8B5:\ -5768617465766572206F63637572732066726F6D206C6F766520697320616C77\ -617973206265796F6E6420676F6F6420616E64206576696C2E:\ -25C23B57F9C9E9A3A2C08F3320214F5365B1A70417F5A6AFDAEFDCF76D4CCA56\ -3D9F9625E2BA783733DE9691108973AF66BDE07A7E8854035B972387BEEA4DBD\ -4A2081CF:\ -985B3B945917B229B8274441C174B1748627F6A83986AAE295745694174928AF\ -8D6E3D309A8FDEB57F3BFB73AF2B776D13278028E7A7CFDD3F489AD3A46B2045\ -409683AABDD1C01CDF60ED850D4C918608ABC5B58C9BE3A438DB0D6D6B9C1019\ -C9498E17233D5092165471B0A1DAECE0A68104539FB85C51648176E8B7AEC1B4 - -1A11:\ -32A4716E0F397B9340565530800F691F9E457C2C5F8ABF0A8F62971B89B43584\ -EFCD7EF66765E8BF6B84163D914364F855DF8F6C82DD49BEF76EDB1397257215:\ -360C8C90CA0B2216B342A9681EEF05BB8CF8DE2AB8F0997C97738AA32B88B956\ -D94515E35FE96238974AE8A8F0164E0FBE25C1161D7A1E9D170B821FEAD5A3CD:\ -4772617669746174696F6E2063616E6E6F742062652068656C6420726573706F\ -6E7369626C6520666F722070656F706C652066616C6C696E6720696E206C6F76\ -652E20202D2D20416C626572742045696E737465696E:\ -DADE975E4B9FCE8E3010EB1568FFDF1BCDED9A454796A0DFA6F793093A2FBE25\ -813FC6EADC4225:\ -06DE6646853E49A067C85492FCA580E49D286981CCFDC4E13B5642489CC19E80\ -3A69116BC2D75CD005B768F3FE7AA780BF7E5A2A3EA53085619946DB4B3E9DB7\ -592A8D060CDF185B3AB2C1BD551587EA8AC3745FEF60D945387B27C2001CF7A9\ -EAE9A086AA58B769A59CC4D09BCF9E100ED630EE44889F341C8DCCF52F003CF1 - -[RSAES_PKCS8/EME-PKCS1-v1_5] ------BEGIN PRIVATE KEY-----\ -MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAt1wZLCQfj0PUKyhr\ -fWhKMm1DnCH+sT6xKHwPiyH1UTbaMaXjoKLKdfwK42UwDgJHGcSfQ9/ZYjj97o8P\ -8YiBSwIBAwJAej1mHW1qX4KNchryU5rcIZ4tEsFUdinLcFK1B2v44M4Z6+AwBTtS\ -Kb4KbbDsY3vruqonUnKa/wxxIhzZdero+wIhAO59Gs349up2k0gUJhwl+ght6JOs\ -cjb84p4QGQfob0EvAiEAxNK6zZ/S5MDLsyq1sVLOXRPc0JvBuebDtitKwdg44qUC\ -IQCe/hHepfnxpGIwDW69bqawSUW3yEwkqJcUCrtamvTWHwIhAIM3JzO/4e3V3SIc\ -eSDh3ui36IsSgSaZ187Hhyvle0HDAiEAmIKQMDlgg/7bJV+gm28s7qMpWyFfT+HI\ -oGFH/wROJlI=\ ------END PRIVATE KEY-----:\ -A7AAF7FC80A74D35A163A575173A094DB366949207150DBFFF1D0B9DB01A43:\ -77BA577E606EF4A69F7C66726923ECDAB4EFF065BCAB972AD9EEF7478C09:\ -AF1F80B3057046EDE4EB139FE4954141350325E0D8291D1431F73FB601F57DA6\ -05D986965EC3B141E7BD467108EC29003C7F56315E11FA89708588B7A562A738 - ------BEGIN ENCRYPTED PRIVATE KEY-----\ -MIIBgTAbBgkqhkiG9w0BBQMwDgQIndH0S5IM+YwCAggABIIBYPxUf3adJCBZMSwg\ -whFKB9mFbB++xWg9UxkyZwpUsqReJMloMmtyYqGhAVvR753CWAkSi/l4cUK9hwnO\ -zs0vbQcU8MfwihHed61SwDqVHN2gp76KwdFtXKAsPlQ2WHBp2azO4VySxIYu8yMr\ -zpl5o6dnKqX9p0m38OcuMOvWiWjUbPdtNKPP9/t9xUY2dYdxoOJ02h2dWRH1bYth\ -jXFD5Zf0dgv958tcsUvCd6Omn6zyYvm0k0j8XFr3btJN6msWALYadCN7QrrJDsZL\ -eKD+a5eu3AYHA7Kk4or3AAKGH4LfDN/JsFe+Z9PO1xdxwwEf75mJbOyG4LQWkDP9\ -+pUPkPY311fcblEOx9Vin5c3is/+QnackDvnKjwU7JhP7mLHk5sRwDVswN1DPA+c\ -mlC3M8/Bib94M3ts/U6EjE4r+JW3/bVsVslKelJ2zOEiqt9HK+wZBb38NgGWwrBZ\ -7Ik3umA=\ ------END ENCRYPTED PRIVATE KEY-----:\ -6ECA65B7FDB0986062B70E8C68171DCAF736:A83BC3A6BA075EDE453B7338CEE\ -83BB8F5AE8B5968E3A99462181DC4E73F943B66E433F43D0E8E6F08DA14:\ -1346A7E48F0ED39B333041451A0A293DBD8E1C906B21200A1AAC228DB8C9FC0A\ -9A24DD2B434E2279051106BD625AE24DD1554704E57EC48D659AA3E9515D2B41:\ -password - ------BEGIN ENCRYPTED PRIVATE KEY-----\ -MIIBgTAbBgkqhkiG9w0BBQMwDgQIjb2KJZiMO9cCAggABIIBYHQXbyKPzgfuHZYm\ -b81zMQ7Kk4w5O+3XrNpFjSiRppkx3stZphGJ6vtI6NwDKb7mCf7arfeCzMIiF+gg\ -n4j27huU1KRl8SRSD9qaLaqrYrHOCpxnG3owavB8LtWacGQq3tD1/pyw/DXM/H3F\ -bdOd4q2ByvvltRAREy+0PjAwRaGBCdF3bEUP+ikIZ1zUUAhGalil1H8pPTf+8W04\ -/4NvlCyhWPqNwUEZJhFzzO1IRrAWSvn0PZAg0CHsNGHVwCRGB5/MfdEvvn6D31V2\ -wDFR/BzgNmPo7jFo7x83C/RRP/HCHHMhfTg3LHxehf1oCGI65Pj04PyHkYSNmyXz\ -QbQoP/Z6cTcbC250Q/2AT0xPamF9eAnhAcvu8QRq7M7wQQtW1z2+B/kvA5mf2020\ -4mGslEX3Iz08lZcdMwghw0xwVBZW+VCB1y07JXE8KxAhlsEj6aIbwg0KBM+d+npX\ -Ddyijnc=\ ------END ENCRYPTED PRIVATE KEY-----:\ -64E8425A6B898502A081B6B78A0546F4BF2DEB85E187ED:57893B2A6A4AA7863\ -785AB8FFA68E81F3239BDA659E704833319DF5E3377AEC911AA90F205B1:\ -871A94A51ED756EAD36EE976354D2D6DE467CA5B8C9D198FAFA6D5B24BFA674A\ -20F89CF53B85F75F7E17481E212F2BF543AEC428B841C79E3E36CFD75BB7CA8D:\ -pkcsv15_isnt_very_secure - ------BEGIN ENCRYPTED PRIVATE KEY-----\ -MIIBgTAbBgkqhkiG9w0BBQMwDgQIbcPIyX5hozwCAggABIIBYIL0VCCWjld4Zk1N\ -0s3+Uec+axsZm1cuOEm6KKqiSDUPA5bIwWJFTksEWqEfspq6VkQVGGD95hQY4a7u\ -PflXcQ2PcFeTe5vvKNcQ/5lnSY56gidhFIHYEUQMPXjzkruxzbnLMBN5Cc4oFf15\ -YnF4B3uZjsb9e0k7hb1h7lSbf1/Y2du1xdbhvXhF3q/uoCsrnxeGnjKIwesA9skS\ -U8gdojj96STbZl78HZ9vbS+RP9Dtg73qCQkeWnMz4pES9GZ1u9HJ7Q/D4sU/NaOq\ -Gg5y/WW1oNqI6Q8hTtat6oWE0pBnD5q8xuovlycEk9PJbh/b4waGh5Lc/CFUV75b\ -gxAbqn9OIzeXVZsKnHU+JQpgX3x/3+dGHKGd54w1N/0a+N8YUNyYXxyDlU7f4zNp\ -fuc2uwzfxFm4spigfxTTul+E90SMMZOIVHSp58cakq+ibeprcp2zMJcxO2EpXfas\ -GfgFhK0=\ ------END ENCRYPTED PRIVATE KEY-----:\ -1548C7CEC500A26A59D493176E3B6ECECDC23FFBC485D75E4E20C978AD14F9C2\ -5CC19021C1328B1A061E317559A04326628222:66832C587BB0FC43A7380A:\ -022092438BAB2CF4A6C50D71EE39419E2E11C9E9644E0B9C2221EF81098FE318\ -8E9BE0E6E27C02A742571C0BD757C6B7F2160DCFA9A734AB6E90BDB0EF27DCD567:\ -whereismymind - -[RSASSA/EMSA1(SHA-1)] -5:\ -BE88E0EF4EC64120FBD9E0CC62E931D0DCB02D7FBC59FC6B\ -3E919777E5178DA0E1C83696670F02DF3166D8ACB5B09A15:\ -EC1C473C7D3ED0B090C7DEC82343B1E3C5E6018947DC6820\ -17941BA4754715A8599D779A340FD85FC6613A1757D5B51B:\ -4920686F70652049276C6C2062652061626C6520746F2066\ -696E6420776F726B20746869732073756D6D6572::\ -9F35898F6508FB66FBF266C8D057F4FA9FB875213FA62051AFC62ABA177D42F4\ -B37FBC6F7236B01F27C1A856EA2F8CBDF88AD9FB4FEFDE0065BB7FE6F8978225\ -074A8F220C3D328C50070A953BB4E852B3F56E84594CD289A14F8F8717F5A4D1 - -4F:\ -F1066D3E8128C009B795BBC5AC0988D73A981C108E631AC43424D63E6C964FDE\ -6B0E331D4A1FE6CEF3B744607723F4BDB1F9683D69651813AC03C757ED2412A1:\ -C00F576BC6CD63F75ECA04FB7FA5CABCC3287CBCBF99EC456CB75E9F56E2D20A\ -7F8C99BE857FA9E819BFE02C08D0405CC5045BB97C3F766F734390D881B27DEB:\ -447564652C2077686572652773206D79206361723F::\ -AD50D554C24FDE2B4D312C64D17B25F471C32CF76E54430BE37CAD31E6C961C3\ -4957AB1B4D1D2AC6782B4A979118CF7FE58BA40FB0900C2C2F5BFF26134C9489\ -136EC16EFA0E82A9B01F1C6AE744E4D4C4D126FC6466AEBA86353E83D69065AB\ -A220F460AD4AE3AB3083732290FED091D4675864EBA47B0DCB7C858264574360 - -[RSASSA/EMSA2(SHA-1)] -11:\ -BEFBF638255034EFF995CF15A610243A48784CEFB89CF10A11982F5ADFA0C5F2\ -49B373E33900A1A4A957F38A1EBFD49C4C74A2D7E74EEF2168F18424C6B6A843:\ -E538D5D8FE4A5800F16398B7732FCDCBBA9D397A8E77A67204458F0A89F13BEC\ -8AADE35E2346F489FF7005398596BA8A496D48D114BDBCC6D9CE292EE6ED7C93:\ -447564652C2077686572652773206D79206361723F::\ -4B9BE36BE0AAACC62FFA857A34D8032BE865C0D757C7A7827AD5D5C6DF6C5FD6\ -FD32A2EB0E851A0D04258FDBB94849CA2AD78FFA2CCC56070219B8AC198D0F98\ -165956D027A6D0325619B8C1458F01EC6A34DA517D89F3F3046AED0F169A2797\ -442FB6E586C6099B7CBE4F07682ACF751E291123AC5DF312088A9D84A54A7D54 - -# An official IEEE 1363 test vector, sort of. The vector in question is using -# the RSA2 signing primitives, where the output is "modulus - signature" if -# signature is greater than modulus/2. So we just use the intermediate result, -# since Botan doesn't support the RSA2 scheme -3:\ -D8CD81F035EC57EFE822955149D3BFF70C53520D769D6D76646C7A792E16EBD8\ -9FE6FC5B606B56F63EB11317A8DCCDF203650EF28D0CB9A6D2B2619C52480F51:\ -CC1092495D867E64065DEE3E7955F2EBC7D47A2D7C9953388F97DDDC3E1CA19C\ -35CA659EDC3D6C08F64068EAFEDBD91127F9CB7EDC1748711B624E30B857CAAD:\ -616263::\ -A6B496F4A802AF9092F1F561931D84DBD0B943EF34C102B94DD51AB01E1054BC\ -0E0572A1FB2DB034569883F382B74E449F6C80C4060FBC0FFBD3A9CA9D66685B\ -90873007D207C1D64C692D0111157BB976A4551E72DDC83C767A9D75A4746C51\ -9B73CE52C2BFBD1C3C431D254FE8BB4308FEA486787F239FD2944390DA49DE45 - -[RSASSA/EMSA2(SHA-224)] -10001:\ -FBB75326D3DC76F89BB46C6D66A8CE0F0E2167309750D5CA6158BF7306DA8C6ED2D0E9D62524\ -8977ED06900A5C23CC1F:\ -D92E794F850892F13B6CBBCE1C67E1C670ACF8DCF8DEEA2DF958529C1CF5D89E30D5D05787A2\ -5602AAFFA5B5007800B3:\ -7072696F6E636F7270::\ -0EEA6057C2FE9892BE77B7A7E38E00EF2537D4E8EE7F2B856CBD4B29C7B5E38299D02B2A8459\ -91C2A8F4AC6BFA5E58A34139716B20CDD27471F549037D07DB76A02C3372AE2FAFDA3BF1414E\ -9BFF71C0DFA03AA0409D62CC9D5FEEAA7B42D52A - -10001:\ -D620C17FD01B4B8986B2C4934F2B78CF9EA43B862D70AB88763E2B133D7398E4E6633D8DD408\ -05D02EC5F2E59C0EB19A85B87D2F2EBFEB2E8189B2E21C71368D:\ -E0B20464041EC9EC74FE86CC00D7191A1F6730E05C80ECE6B7714CE158ED72BDF3215D96E3E8\ -ADDB4D8123B6006509362BE8B2EFC853C959AAB0D21C09A2B835:\ -7072696F6E636F7270::\ -A10AD2439FA7F9638298CAD2E8BD18830A580555F0D0A71CB2DAAB2392ED61FB6C3659FA706D\ -434C7F373761165580D9E3B4B72423AE3C27F71C53DE3DD812BB064C3F52A86C2C5E42BA10BA\ -F4C90E2064D988B56C59186B48D16B151FFDA0859FE41C585D388884EBF6B2E570A69F5EF5B5\ -D96E005BF353076662F7697DEA3A - -10001:\ -E3BAAE58893F9DEE6CFF0F0551AE0C95B1E8EC0F3F7C9E271C6DB3D84A24EB37FF785425FE90\ -6D9B9A4905CCAAA6CB95658635FB58BAA6691383DBFC3B05E403:\ -CEE7816F245FE20C99EB54A067340ED98A2003958186E78E2F9BAC8242E6F894FAA2726374E8\ -86CB3B718399BF5DA67B2558E086993897BEF2F6C580C7E04201:\ -7072696F6E636F7270::\ -85EFECF3B1EEB4386A61AA4AB0D0A4335F64C56C24C258AECEE4CA8547638F52858FFB7842EA\ -399E3EC97C882891E9B52A76D3A4B76BBB843D6165EF06181BC887B342900C0EDFD42EC35596\ -7AD052A76A760EF2130499A24FD9A059C79C334C586AB44C400278C5DEA17BFA9CC5127CBF39\ -2DC74B65458627A34437A8AE9FDE - -10001:\ -FA1CAC0BF58B08369A927D3B2FDE1C1F926A2EA31F26C2AA49EBA42DFBB8661E79660928D476\ -D5F82D0C370BD6514F492A8D4AA95039B0E5D1E5512E257532A0AC6BE1C294F75253A2B2255C\ -7B7A84EC7D0E0A34BD67CED0E9BCC1897B3D4897:\ -F6366AEBC742DA02A8B5884B0AF4A0DC24F8A7652D1F30E5A176C8ABEE3AC5527429EC62A3C1\ -6715A782D4BE9B8C40721909F4B5D466836050C637479DAE39528DC284ADADEB0471FFAB90F2\ -368784977B8F21F53BFFBD4D065DBDC19CBED061:\ -7072696F6E636F7270::\ -7F721D5DD07950287F217BC11C130E32567BD45E538A1FAD278CF25A66150448B486BCDBFC4A\ -D3FB81A4EFC7E6081DC6613982940D1149C514AF67351B9E096C8977B5F9776BFEC7CD70C56C\ -666C49BFE9618F4ACF281F6CFC3B2F5B91BD7CE3DBBE643EF0B5BE9CB133CD3C22A2355CE87B\ -10E538A4AD3A098CC7E7125409765F22B5D78D5F3F0603EE6721C68C2D5F22C84B7714067BDF\ -28B82091CD1B9943F9D619F501F5C0D418425B63AB2BE2DB5A43BF8455E6ADB7B60C86C606699D69 - -[RSASSA/EMSA2(SHA-256)] -10001:\ -EFBF3A50D1165B053F78FF95134BA3AE221F7ED5E7037675B633557899978B154F1E4A505E3A\ -3A10247FD4FC3F8698B7:\ -CA052EDE74D1308CE00551FD8E9DE9BC5F9DAD3ABFB6EDF14820480D3FB9E468A02DFF23B6D0\ -C0E009544091CEC9108B:\ -7072696F6E636F7270::\ -38FBB52FF41301D176F11DD6A536AEC2161DD783C455556CCFD51468292C8C68AEE955EE4947\ -DFCE5D090A5DC81A7ED925623DE7C52A4872303002CD89A7A63798F29D13337274AE0F59886A\ -62EE58FDF73CFA29DD7B1BF4CA8A23B803B68E67 - -10001:\ -CCEAD3D62F90C7E9F3E8E59F8989C4FFDD4921D7B6A2309B967CADB0B844362D4FC9A23A8ED2\ -8DFBF908A87FB04D880D7C1B68B8AA0B7CB5CD46656328189AFF:\ -CD9F8E596AF2C90F2811086F8D3AD8EB35E83593CCC09ECD57874DC98EF5120CA2F8EEE1FE73\ -1220578CDFD5CB31D019825904D8FB7811CA99C017C1963E1D4B:\ -7072696F6E636F7270::\ -1891F9604BC85FCE085AEC5C8221D0E06119A5B1E1D399764CEF9BC732F01A3C4A29D31FEA49\ -72EFCFA749A900CC8FD1238EAA90B7B04F0A092BBC90E5C01B5B6F7022193290CD2237F6509F\ -84150D542842BA98157D1C69C067DB357F52013632F6961533D7672D05394E76C219EF532ED1\ -BBAD1A5AC7AF5A0CE36C1173A8E1 - -10001:\ -CC1D8027CE1F5163B3D5DC6DCC63DD14E5685894437A1A8734CC4AA4EE5CC8BFF96298D4FCBD\ -2208C17C3A069D0B4E1EE6B43A553DDBECB2ABCAB7F0CFA9CE01:\ -EDFFF64FC3E0CBAD1F36B472E868B0317DEEF27854D40179FC875DCE1C5CE3D3BADE0AFD191E\ -4661B5931844C56C53E53409B824DE0EC24E2C7C04508F022A6D:\ -7072696F6E636F7270::\ -86E1AAF65A3C352A514148D8C3B8CBB77E7C59CF001E2AA7850CBBB703D2684160A362ACE398\ -71EA60207044F9E266FF9BEC03E647E0A30B74CF24B45161619F1DBDDE0FEF6B491337EE2D66\ -BF2E9E5B5BB8E4C568D580C8584DBD4F758194523A34218631978DAF8BF8364D6C4399063DCB\ -E866029E6418F4D0BE384B66AF19 - -10001:\ -E92BE18C86C96D98C8C47C9C279C42EC136D8CAB91F74DBD383611DEE72977411CDA0188146C8\ -9CEAF6AF4674CBDC56D0045F94033868EA7AD2871C349EC885FC832F394425A70BFFE5652A569\ -8AB3884A0780162A4B9E6DEBF3D091E1D7BE29:\ -D18F7F50ECEDE65887B004C7A9D715F1DE87D8FE37A14302848AD1C93A0502267A6A0E446F480\ -9F6F8FE43B934A456BD10975E819B7F2037EAB3BAFD5E699354B8B7384467CE25D80F8FB6F231\ -CBE28D39E55D2ABEF2107D719D0A758676D7B7:\ -7072696F6E636F7270::\ -AB183E642A3A50775FE8F158DE2085CF02C1F78A55DAD193D1F0F68DE45BCF8AE6812CCB81D47\ -6C27D4ECF63D9F1D9E9C5EEFA269CE214AF5A8FF24D933DABAEC2080491DA4BBB9654473C06A6\ -BAE99095C247515611B5A45D0E02E8AED9D708D20E823288D5761ECF80AC72D307260B9443747\ -4923AA53D34058147709CA35105B98C7039D1ADD75F0E38FEAE7E3121331937C0A01399177698\ -7522E43AC1072182C98BFA3D28940D03B0CF0533E41A42DC574A835BC57D77396B43D4A007A4 - -[RSASSA/EMSA2(SHA-384)] -10001:\ -DEC98FD436DE44985FDC398C4EDDD4356AE3D95A2A7CD0DDF5CCBC47C35405F85F05599C59A3C\ -CD143E5B663C4435F29:\ -D2556E2A05CEBC6D61F7485D1F8D4CA410D2EFB65055D461AD1D28031B4478261C5DC5C9B58AD\ -C7C4C609C7CA0A30F15:\ -7072696F6E636F7270::\ -36495268E4297C9F416915F3F9057C1B772FE6ED204995A2C30FBBDADEF3CDCF38420E3A11014\ -1BCC8BDD06F688B139E6D8BE97CF3201E48585B4391CE9CF2ADB91B5C20991B2AFC5C6A6F5E84\ -5E055971631E066391D962FB265FF3D90F3530 - -10001:\ -FC488F1438DA425D701C068382AB37E85798CA4D7A6A151A20C7ECCA84CDAE3EDD3AC22F6ABF0\ -01107DA6188382F0CD8B5B591EEF45DF60C016FD22B6AB91F97:\ -E8A7CD9F6BE666AF5F10A81EBA40BE26B69A20A6F090C43035268B65AB7742D1410FC28F16D18\ -090F776E7162771765A757F754A8EFD75FAA83BC9258ACD9999:\ -7072696F6E636F7270::\ -09EFAA53EBF1FA0A23B84EA68DC7292F235C7F2A2EB555FC85F73A11A7A3785AF4284BE98840A\ -4F6D289647B04FAC1D867EE0EFD1E95E060FE4D2D766D11B03E678607E474621A0F5212139146\ -00977E8F3F31FB0E678D1C79079ECF39F5EC6FD2F62480C0C3F1DCEE06139ED661B33A32CCD1B\ -213F7557F6CF87A0425BBE88C - -10001:\ -F74FAFF1F8533804A2ED81EA92E9872505551954DF623503615B558EFCA368D32C7CC10B39679\ -160E0FDABEB0DDB874469677C2DDF45E369FAC599F4EBBCD5C5:\ -BBB2824D01BF3A3820C349D77CB6761081590767A8BD5753AAF71893C9220080ADF01D89D5217\ -FE714FCAD68AFEAD388F103DA7273AE2A67414198CE7022DD29:\ -7072696F6E636F7270::\ -858691CD4D14CD74841AEA3CF1564734D939CB7D8B4341BA1F74D88FDA993761AA5D850B258BD\ -BEB228BECCC0F6B6C0EF96A3DEDC43A7078BF05D9FF4EA0224184572DEB43D77F0C9162CE6919\ -2EE3E50402579317B56838AEAC091369F216F19D271E7141149F1A5760071A65F08515D722633\ -6C9C5EA6CF35691B1C92451C4 - -10001:\ -F6B23AAC1C0FD29065D68C3DE26B5868E7ECEB7CCB2AA9A2DAD4497678E77547AD8BA78BFED51\ -3D2C303355B7850184A3C6DA974322ACA6CC553393BD532B8ABCFD02B961A5CDF81ADBC9F5A6F\ -A36D55652428788BA133741055635911595947:\ -F2C5190C41D49FAD95CE70CF1CD086F32F9C154E856156DC95007215B2D1C01F485370AB4A091\ -C919168732C99FA57BCF44A6041EDFC878EEC65EC54C0360A6320AFFEE19EFE7A4A0F62137A29\ -98BACFD7D364320FA178C8724EEBAC65D0E7DF:\ -7072696F6E636F7270::\ -9A399CE7D50ECA7184290BE01D43FF7D570F0A2232D385182AA068EA0FB097691C197B25ADF90\ -9397CC0648AE74029DA3477DB95CA4F3328E5E4CDA4A4BC67BF1D34020C8D9AA24B56861B0365\ -92D207026CFE4AA04B0B2ABDEF3911320D948776304FA648B60A18F7D07018804476E904213D0\ -9B1E99C31E66A8F37B4BBC1A57A753069BF9024C3636AD3690CC1FC1E6DEA4211F5E49F7F1DBE\ -2B94C31C19B0DFFDF41949D1AA6337BDFF1336486FFEF1369C3770C837FA2E1526B93A64CBB2 - -[RSASSA/EMSA2(SHA-512)] -10001:\ -F37DB2223CC3E4FB8D7FB028992B01A553CBDBCC700386BFA1A21422F1D15BE3E6E0CAAB5A7EB\ -5F0A58E4FDDEF70AEDD:\ -C490D201792C50C9840EB241B736093E647E27159EBEB336295985847E866FD5C44103ABCA57E\ -BA86AD3E6159D485755:\ -7072696F6E636F7270::\ -7F175F5E66601757E1B0ABC051602FDAE2B652B69B551BB35F8C6B295F580DD0D27360E91B8D5\ -3184D3E1C1606690ED84EFB9C2A5122936BB94C4ED7FA49D40195508499FB87249BC1FE07DAB2\ -17970EAAB46809BC6925D3AE54ECF6F62E76A9 - -10001:\ -DF3B69AB64C8CB728CAFCC27A18233789AF1423A6D916860A4FCEF21FBA4DEEC43DE4A8E7BBB3\ -272F55FEE50565BB18A1B944B73EE20F13DAD9444BF9225505D:\ -FE7079379535E7BAB62DA87263F089364FAAA27796DACA16C7C82D29FED8FFC93C1E8B3B65431\ -4D336AF98932708EA37BDC150BA749A28DB4F12492966B51FFD:\ -7072696F6E636F7270::\ -786C58FA17D5A5A5B411B0A85F3306062D27978B84C9ACCFA79665E1C951AFB2746CD0FF03616\ -0BCCCBAAB15E7848E8E8582168804B0520867AA15F44456B018051AB290C9FE72AA121E5A1CF8\ -8B761C9F73B81F329B76DD2A4FF2A7F7905418B3343136C524089D368948CB9223A2FBD35C14A\ -3B994BAA333F5CFD60BCF47B8 - -10001:\ -FC3439077A50A7A006CD1077683A5A5BE8E4B9B66CA0AB80AE5DEB4315D746DE493F354A3E172\ -D080132BEEB7F17B80CDC10E7301289CBEEA18A80D20F0387FD:\ -F20A00C5C12DB0F8E57C98DF1F69F76F14BA9E2137FFD7AC228DB02D2EFC1D574B9DA545A331E\ -0D906D57075FA15B7CD6ABC58362703DB9E9670709D33C9C1B1:\ -7072696F6E636F7270::\ -8DC903239378EA69E965121FD519C85D1D136D67126626EA93A31EA3706410E420984A6443AC8\ -731AEC98BA412CF4E2B39F2BE7308065F7BABAA15D25E126C996D7244D499C5E907B58441426A\ -407F001F62AAEC4274EF84AAD979FE504B05E277CD1B06A74DBB838EB7A20DC34D19B2CAB5206\ -351AF53BB968651CA4116F54B - -10001:\ -DCA8E48536240777EFE1290C0C89DB9492B33BD5767F7B8C12BC9659D21D35D253C054469FFC2\ -574EEED15509093B7606C59EB108A4F4EF4576BD84D2B61922A4CD3587E0A92D3A95AB3CDEE4F\ -31410CB1270F369E9E395524E22AD261609A05:\ -CAF14E53927C9C38D0EEE7DDA60162B9FD3A270EC0B8B301BAA41F880527FBF015BABE0413DFC\ -FF22338E8E1FED4F2026FAF720373F2ED955EE5252F486B13BAE0930E5012D0149B1780053029\ -96D967370C272513E20CAD5721F49A46869E4F:\ -7072696F6E636F7270::\ -3697C05A657A8904C792E750515BCB11751D2D4C4C1460FA6055A10A2C5F2320CFF2D82C0CF08\ -6E2E213CF5C4A4BE890F5C0A9F98789710646A500DA83333AE1CC6A24E99167B97B7E7EC06FDC\ -789037DF23F6FD1608695643C7D7C6462A0B37AD926FCA364A826DE539CC89419C99397C7FA1F\ -1CD244B0C7D3C27E77B6A4D4806E749B1291A23F8F3E6873BC8DE349F871530AE11CF4EC42E27\ -B6E3BACAA3DD6A40AE51463EDE39B510E94F0A177328F868C91B5C35F13AF0FEF0AA4AD88B4D - -[RSASSA/EMSA2(RIPEMD-128)] -10001:\ -C6C21C5648183B9EF1AD5A7FEBD163C247F324CC8E4D1D57604B1CBF2E7FD20E501ED4E23C984\ -A19D67B006A46131597:\ -CCD27CFDADBD21DFE2E63324DA85389CC9DC4EEBEA55505E271A8BEFA966ABBD9AD57B714B09F\ -580B9E87C6BAE1FC2C3:\ -7072696F6E636F7270::\ -63F9A46002EEDF74A3B21A58AF360C78A0389A6FA469CC6C7F3F37B9298CB666C59CF993CD3EE\ -741C8D6896F61135D2223C3D02B0AE001DF8EC270968F8E999FFD7575F437747E2C0B4181EB3A\ -CFE51ADAD24924D75E86EFA2DF4531FFD1A718 - -10001:\ -D9111254AD4B5B0403A9E3DD027F9C121A48A4B2ED5AB5F47E3F9C7EFC7CD1956AF1079EF2D78\ -B80034E9AF2455FEAEE955D718964E89C7588992B1E6D1022D5:\ -B8E8CA6745A849EC7F3471C1C83EFAD8AE65A8D5551A6924B45869D40ECCAE5B784A353F84301\ -EDC6A8365CDB25768B4BCEE67382E05E15367DF3F4274F06599:\ -7072696F6E636F7270::\ -38CDF4F149F7CAE46ECC24C32F98F30A73DA6B57F0281009493CBCCEE2B902F66DCCCFDEBB142\ -2992BBB4D62030D24FF6674C27163CE4015A3BC899CFE6A01ACC06A7E0CC36754ABFAD8D19F5E\ -7372747557FC9B2F5F8F19563F33AFD0D4E3CAF639657922468457E44032E72E865517E095B72\ -8E8ED3169D37B45374E53D692 - -10001:\ -D130C34C595669CA5711EEEFE6176671DAE51D8841D0571A70C9F0B0A3DC9A7409B0AAEC4BE23\ -37B45163FC8A41AD5A16AF72462E0FDE6224D15082AEFFB5BB7:\ -E4DE294D95CD57AED2F82B8487FC20FBBD3A8E5C6A35D9BAF5C7DE67AE8FEC8BA82634A5654B9\ -3340D447F62367A861F10D1ED976D2B9CB0C856336F514BC301:\ -7072696F6E636F7270::\ -9CC6743EA34FB010B0B64975E37CF4C90BEDC063B9CA90F543CCA616C67D16A8EA0883DCAE11F\ -BA595CA8D42F45DA84532E8173149A55196D01E45588FF372A1D95DEBC58353B3892810F43F58\ -A935E85AFF87B46BCB77C6176422E887BA3671F44BD6112DB0E4A56B44BBED76EFDB01B079C43\ -FE9AD593E65162C9FDB92B42A - -10001:\ -F63306C54246545F8A552CA5E15BA425F1B2E096D8FFA17E8E2DB786FBB50D2D3EDC94D676955\ -E69B98A87674B4CBAD9651A99BA4D53B78B60F3A9ED4C871102D0E3A3576009439D55FA412191\ -D55F93EDBF0239DA1F60B5B68F270A629642B1:\ -EC9F3A07B1783A510793763A9D1B8F190E4ECA35165AF643E9C8365897D9803C3DE5BBAB35C37\ -D43475A9E4062C1B8A2FBA574C4C44778D75BA3706B4242ECB976EC0F58D0D04CE4D9B9E2465C\ -0723B3F0970F04C8E8236A9FAED6797CD87401:\ -7072696F6E636F7270::\ -3D2E76A438D4B927C4578B27EAAD666CC041D4495A14A462A530BC81AF115D961C4CF840E9B14\ -6C83BE619E9D7730ACC4589DC17665CB4B10A19E021BF4E5BD0F7A1CAF720BC4677B809F6E2BD\ -6A15B94590A5DA3F03E83D819B1A429F22D595D2D042468EF602944508915C88480AAE928ABA3\ -2B4CC8FB4C7125496623912FCEBFF28D8DB33CAF008AB6B7195019DF8BAC96E23238EA8EC60D1\ -C9527D91EC4018AA23A50B8B3998BB70006EC441334C1301D0A47C160FCE995A14831A737681 - -[RSASSA/EMSA2(RIPEMD-160)] -10001:\ -DC6B9418363C6D83813A2588C0C4DFE5105F3A7305D5A0539E157379DFA832D7F9C59FD8FAD36\ -2A716D111A374D6865F:\ -CF72057C7ACAC7F030000803AE1EEFB72C3812727FF304FAC9B086C2248BB36936AC9200C4605\ -BD7142BC3C17EB144E5:\ -7072696F6E636F7270::\ -3D2F44712403CAD3F07AC10278811EF59DE6441522F323CB3CD1C287B233B5FAC7EC2A3398383\ -FCD4A0AF6E404392707C72B22CA1C503C6FAEE3F3E992AE9D02C38564173CB492C9ED2EAA9664\ -859A06EBCAC73836DC80F7282D604A43B41BDE - -10001:\ -CBF2B084B2F9A826A2A1E1C6C3889E5B43A906B6A773AC56F44CC06E92F36EB5F624BDC0E550E\ -25DF80B9720988819FA79675DC4A9D28E86BFE0D95EE2A8B851:\ -E56C1DB39B5B2DC6893D4383433C33FD78B1260660B7FC2313B9ED808126D685AD9F2EA7DCAD6\ -5B8FF78F2D9F2BEBCE9A3EA33D68C2D4A2995DA2DBD50E32951:\ -7072696F6E636F7270::\ -A10E2A0C3743B0C8E9C4BA0AC71A60A368E98F0BE67623A22FBBE958FB590A31E2E07B016E55F\ -EDFCC8472F9CA002BC6F0A107FD77E839D77D24E65B48AE6688AA1309C3E8727C62337792DD43\ -0FBA8ACBB1B3F730C8D316F66683E13D892EA35E57E145E1F54AA0B786E19561BBB910C4D7997\ -D88852923C5D84DFFC9EF8644 - -10001:\ -EBD673DDF90D8CBA51137B6F81EE230365F912C58B4D4792914C7FC8FFF9618CF494A59F31B8B\ -0DEC407F28FABF6F95360C8F42D2C1B4D8D485BE42A25646CE5:\ -E0AB6EA0A78039FED1A9192B22E0E3131717B79824DB21EC6013C34C63F60D1AD7E73DF2BA71B\ -F29279995EAA8C4116EB783199E3A0ADE2E1F597BC3A011C1FF:\ -7072696F6E636F7270::\ -2AAF175A74264765198AFE9556BA61BE30069B909D8D13C31B7EB5051ACCC2BCD80D51C0D0407\ -0A7C0BDA0E9C2F88E531D2CD0B27DABA850AD37F7B7390914AB1E40EA4C27F700D91C6F17D177\ -FACBD439A98CA75CD8B4D1DEC88A975A03C9727A75815A47909D490920CD9C9A7C7E1FBE63F7B\ -A724F4985B84C283176E0A28E - -10001:\ -F74DA54D764C5C4A5FA36661C976F579BD857ECB969B94078A16179B109D92021BFD8D09EFC05\ -B889874489E631F1132194FB5B7970A74ACEB17984C6AA2132BDE2C2C8770F63E36A85DCFA080\ -7DE2FA3DCF16CB34A2AC9A95078613193ADE47:\ -C71F05592CBA0FCA8879FE18C8A251C49386C45BE0A0BB96A60AA434E369050660293A61A56AD\ -B2D2B14A5DEC650539151A30007C2E5313298B240CD8C4DC83E93B1C8F9D74D622587C4FDC080\ -0D14C5900413DA7BCAE98C41E8731486D9D2D3:\ -7072696F6E636F7270::\ -86BC93AF170E1C26E10914E9D403FBC6B5CCD3F2B5EF2E2D94118E4DD024A82095EC8B6F71BFF\ -2CF91F0528CF7ACA12F2C74DCBC01D1DBD52A87A369AABE406F62F3FCC975826EAC8F56D3482E\ -2FD396D06F5BB1CFED3EC5B3C08AB318FDE17A7807054BDBE44EB0BDABCCFE3A627569B58EF91\ -FD8BC9E06B2EA40AE55E3C124418D6CD469F8F9552176B0229240660325E452802CEB3A01D726\ -9460AD098FB25A8ABB98F122F3ACB84B7158954DDFFC6FB3EEAF3615877D7BDE533CE8A6A8BA - -[RSASSA/EMSA2(Whirlpool)] -10001:\ -C29370B3C4A445B4E638BA903092A7E6110DC8B5317FCD1E0729110C2324FC266CD6F2AE787EF\ -67CB219AA8CC382C3FB:\ -F5489C8111D841E2D4FBCF7FA2A06ABBC451B730835D41786D3CC4AAA3B31CA63A6E7D3FD2C26\ -79272A682D1BA40565B:\ -7072696F6E636F7270::\ -79C185314A87A5518D05B68A26889DA466A04D66497704D8FD0566B263F9FF4250D214B1A27EF\ -D557D79C9EBADF08A6715183D0225D45CA81A643898572B24DAF7FCCA7856F36D0168EE480A89\ -E15836B7235ACF83E75A83628424E7B058A61B - -10001:\ -C249C71113E5E469BA2689A821439024EDBFF7E1C01378BA65E4E8FD0ED377D6ED03F4935C4F0\ -F203CCD9F9CDDE6B59D313A7F76760C680E9DAF0FB2C6A30593:\ -B9C9A9BDC0FFB402EA1996E46C51E654AA7CA62400FE0441E8DA7F78E4A70D00348B54F5B664D\ -C0DF24DD760888D65A81D4380D3BDFCD2241EDAA777F8A4EC89:\ -7072696F6E636F7270::\ -2B7BB8B433BB6696562290BFE540BAEA1EF89D22DEAE1B5EAC8EE950772D0AADC6234CB598CFA\ -9FB2179AF94D320A177A8468C5AB8EA7AD71A14552001FC4FC578E0A1D1BB5D862B35EFC075E4\ -9FB085F3195CB1D332CD07881978BA4729B1B3C180D8D2FDF63D3F7E0E9C6A93B1AB70323BFD3\ -203520F28AF06E1CEE43D6C54 - -10001:\ -DE2341F362821590F880B50B5AC864447DE5AF850BAF4D1B9FE89887DB107C9C94F4B978F6556\ -DE0D976E640F40590EA06557BA9FD53834AB3084A8717F9B91D:\ -CF5B9021453ABE9351007DC6F8B325F2A4FEAE0FDBB1AC667BC6CABCF9EC296D7230C2988ECF7\ -0425917718CB60B1397A40E5368CB68CB8B4C216FE7B4A1B6D7:\ -7072696F6E636F7270::\ -2402FDCA5051000AAB63E930AEDB1DFF71D8EB1BD0AEF2E9038D62E90849B9890BD5460C8A4B3\ -611C05F967E53F4E789DCDB0A1855BDA841C4DC92056B8B49F8056C5FD2651AD2ABAB6FE85493\ -31912CF0C0142590357964879E5C875143D589B5D7FD5BB210A51EE77F3447092ED2C6BF16FD8\ -935E9A509371CBB790B1AEE32 - -10001:\ -CE1C752C02B795269599B060A5B88B6D1736B0B61534F841C316FEDDA6F429BF517821C21F924\ -CA115A3CFC902F35080354D036026717A720AFF85B4F1BBDA360A2D98207E6A6933659DB50B51\ -CF213F71908E0841417650DB80B5FE776CB885:\ -D6B9456FE2A050A0795BFA09025866CEDF378D2124FAC433B07366E0B16390A2C1463333136B9\ -79C2DB9006681185B3ED23223BD0B96BAE8F1F3CE173F7D405CE79FCAC09C4151A012D84B775C\ -445B6BD8C836F06005FC8994961B57B62C8C9D:\ -7072696F6E636F7270::\ -7748BFC3043893FCFBF4CBDD3F9BA00F995DB6183C39777D4545CA57287EDC6D5D6B620AD26EA\ -EA1FE60F4B809831614CC4D78A209BCE6CD712D4D3CC71623962F4EC7FC8519E861206E26AA9B\ -0B6FB1E16D0816E19B00F63E0701189688214FC063CE6835D1007794AE86E23A515C261B54E5F\ -963FC519FD8F4FE26FBBF7A445CA379857CD037753788E1A278F12BE61EB62AB7099FED68E8CA\ -78F2A5D35E873CBEC10B612FCB5A11084AF8D99A85EBB8685D54FA4E4EF5362A421D760346F0 - -[RSASSA/EMSA3(Raw)] - -10001:\ -EC52390A18D0746B6CEED07F19FEA4C259BD24828E864DA60B13E6E125B21AC62B8FCA7EAFC98\ -E1FFF88909C250317C790254EEE922535C45A1D6CFAF3A73BBB:\ -B855A27256300A0DFAF83F8FF98FAC15112EE4A1498C2F70277529A4A968250321834347B5244\ -BC0E019934742993FCAA113DB15F6B24B74AA134600E127C8F7:\ -3021300906052B0E03021A05000414C26EDACE80B947FCFF75EC4CEC1AF0D1872674A9::\ -0E5FEDDAABCAC45E40ED484C89742408A1225204246EF04BF0F5FC87CF97EBB68EB3911E54824\ -0B5528FDA1E1C6D1DFFC2A70480466900FA7524ADEBA694B291CDCDF2560D9D6F70364AECF20F\ -504876AA1DDB8C69897E52DE92A13FD9E4684AD9EB8256A5723B1CCD34D4E552D9E2A5FA8B48F\ -AE13AF7CAE023450D65731DE8 - -10001:\ -1C136DA3E140F55A5F07C1F314FBE3D97E4A69DF7456E95E4E06405375071405\ -426D81261E4D1D089754D50C4C4AF42BF4D:\ -1F7303CD6DC61CC6833563E83C3AF5706E20BC7651257C0F890F2C8B1CB78554\ -EE43715EBC1D026908CD78F56B489B33F03:\ -3021300906052B0E03021A05000414C26EDACE80B947FCFF75EC4CEC1AF0D1872674A9::\ -01E6EF82D25EE46471883D373869C553A54E0C256968958FBAC41D79C571940E523B96494360E\ -EEEC45DA943F94CE44DDBDFBF141E8F7B251E44EC47B64DDEEE2873C4B78A849242F3377F135E\ -EFC9AD4658061F575516C7B19321A3120D0BB3B11BC7 - -10001:\ -C0E2F8859C52B2455C02E64F14D55CA27D91E802586702E028093D623153C63EBD03EBFB0C891\ -563C893E3DD5A7DF4DF7EB29FF7D4E7C14A3002FDDCF3B8617F:\ -FD058A73BB8BA46BB8F23BDA37BA33706BCA2E8B648DA3FB5D76A3C46DED8A2438A43A3E84D3B\ -5CA22C4DC30B0A607557032C53F6D95B825F18BDF1DC188EA27:\ -3021300906052B0E03021A05000414C26EDACE80B947FCFF75EC4CEC1AF0D1872674A9::\ -B2D322A392288D260F4D0AF6A3412A3F11B97A141367559FE3F2BDEEF208E14F2987E63B5C6A8\ -56190B37BE98A36A217AB8E49862427851A2C0E3FBFB8B1A2845A14DF7170B045833A8B2CC663\ -F481432E9B4B72E1AF141ACFF368C8DEEFECDBB35598BD5B815C3B26BB496BCEFE5CA308D56AF\ -870F3D92CCBCC9D3642FEDAD5 - -10001:\ -E283F14941AC5DCFFA0A7C20B057885F75846966D15A88A02DC9837ED39EAB7D493CEA91D54F1\ -8EDCB0F8574CA257635663DD92B8881F0BCA3DDBEF415A8801B:\ -BB743C0E63157B359737BA7615DEEDF953B79CFB99A266BFAA05253F5E04051647450CEF0F7E7\ -15E6CA7A09A907B8F80EE99A4269E02714B9854C9B4D192941D:\ -3021300906052B0E03021A05000414C26EDACE80B947FCFF75EC4CEC1AF0D1872674A9::\ -5D71634BD519BF992AC97451C3BD856735498D963A37FD4E5F36E4611EAC7002CE762607EFAA8\ -A50FE0A054084E5DA46B99AC242733444087F94D7EF0FE1B0297EAFE035D13B4AE75BEF37B5BC\ -DB2F38C2216320351E09D277B3D6AAE701236550EA44B8AFB6A75B21721CA5C780DEE26244072\ -8A245036385CF917310DA42D6 - -10001:\ -EA7D376F36A655748DBC105361285D9E2DD5A90F7087380EE6EA1EC931BEFCC76BD8FF1C0E9C2\ -05A4271FA5CFF3260BFE92319737CFEBCA0AFD56C0EF5A5DC404416F642E188A9574700687A71\ -937C2EBD6B4A047C4D35C901C6E28BAEC7EE03:\ -D6770E9C288C807D4E0BF8A4BAC4AA70E7A83E2E394BC448F0874B909C061392F4FBF51DB10F2\ -C87E117F242B222A31B74A9BD72522062AD87BEDE477D47A96A2D74477E7A9936E14F3488D3CF\ -620024A8EE42133ADBC7C49526D74804CD15A7:\ -3021300906052B0E03021A05000414C26EDACE80B947FCFF75EC4CEC1AF0D1872674A9::\ -5559398D21B7EF94223BB1BFFC8BB230640737A3F6D1E780DC59CF23A188206C1BF85EF086FBC\ -9D44B76B70F09E86C464AE53301CA8F31C704F5BA0CA4348B505FAB3B0940FFD831EDEBD22F8D\ -1215FA1CD0EB8ED678A3C7D4C713EBC8EC613F5D9B4BBC2E4AC47E403207E43C79E8F6EA12E7D\ -B8FA08D723864EA8D9580A274E84E2FFC3C57F366ED0CAEC9790F4B7E82B3E8419CE0F6143965\ -74F95CA498DDB75EB23AEC063C2B81251895F4A119A3B579D56011DCD412EF2B24FA4725D5FD - - -[RSASSA/EMSA3(MD2)] -10001:\ -33D48445C859E52340DE704BCDDA065FBB4058D740BD1D67D29E9C146C11CF61:\ -335E8408866B0FD38DC7002D3F972C67389A65D5D8306566D5C4F2A5AA52628B:\ -45766572796F6E65206765747320467269646179206F66662E::\ -05FA6A812FC7DF8BF4F2542509E03E846E11B9C620BE2009EFB440EFBCC66921\ -6994AC04F341B57D05202D428FB2A27B5C77DFD9B15BFC3D559353503410C1E1 - -[RSASSA/EMSA3(MD5)] -11:\ -F8C72F6AD1A116B15688E6DDB4458E1CD69A21E4330AAB1F1024CA09AEA20C57\ -C1A1D3DFB612928E7FEEE51987D5898A24817F9A389A39A0E5A7C43CF30A16D9:\ -DDA05F490F538B6F09B2C1D14D85E66DC724D8B77D3218958A8AD6D1E9DC62D3\ -05A1FD010251CF0AD2BE511464CF33E5D8F7108E4E6E0FDBE0ED524A95DBF027:\ -556E7265717569746564206C6F7665207375636B732E::\ -7B558B0763B621830BDAF0AF9BD183A026041051579C303F351DCBC9DC168444\ -75D54EF5CCCEF59467015C4E4F8E17FF233BDE1D69B01DE46837884DFC265664\ -C5384E734555E5811259A206A05126EE70C2C1ED36A7EC2FD4F71F4F637EEF5C\ -833F92FAC30062434C43788DFB75B85BAF05227F5B1258CBC9EFF3F1D7BB9916 - -10003:\ -D53E981F3D9AE9628B5038C8E48CBB944534522E8293145A3A98B855C4BB091E\ -67493348454DFDE02FF3C7148E313B917A199415937407B4856A98E50A570BDF:\ -CE8671329A80756167093EEFDB10D2E0E0906BDBC58C4A1A8E8FF1CD2AD25086\ -8C79F360A357B7EDC1A7220CF698D0565385ECCC9FFBB89EE76EFAA6B70E8881:\ -426C696E672D426C696E672E2053686F75746F75747320746F20744F332D6833\ -723320616E64206C306E2E20416E64207468652052656E64657A766F75732E::\ -319F7DA1448E5BA7EDAC7A5FB422A401481E895E0508D1C0FDEDA2AC51DE1D39\ -913F0D412E6E6D9313141992A202FBEFF3BD333542C88F626457046190AEB16F\ -F2A499DF5820240A5248074445B2D54DDF0C298F57B61D89EEABE7ABC728D4BD\ -E82834BA594C2231F2757A7FCD047039D3A3FE220571F30C41B5C25FDDE4FE87 - -5:\ -314C5009A2E3B5B5C7C2E1C2A44AD98921F8005CD2C2AAB617F4DE5932FD5599\ -391584977B46ACB1020DE1E106E6B2861C2A6E0C980C151860967E51372E19F09:\ -331C1FA43BF7B78EEC60EB3627954A971FC50357F1ABDA7EFBF758793A75D601\ -6154DD9F5F878CFFDA6C5DD4F88BB5958C4D6EF4633DB0F3E578382BD69B2D567:\ -2831303238206269742074657374206F6620504B4353233129::\ -0484FEA19814279782BD0732A7A7E29738B2B2DF0D0D2928253921990B4F3908\ -F69B968FAF934C227FAF39BD35DBFD82F1C9BEAE66C4977E3AF69E0567635E18\ -A7D831D5C66A75AD8D80A6BC994EDBBE7D6F7FEC327A1E2055AA81720B336530\ -05C2CE87DF23E4A286D5A3CFF376643B969134C49E6929CC69A23E4137CE9AC719 - -7:\ -436D230A470CA8401CA047FF1AEBAFF72FECC04A3D085576866701D5B2108D7B\ -355E8AFBEF3A687EEB6FBFF7C1152769E100EC77D72D000D6460E99C68BE30065:\ -57CDC664033ACB369AD87F6624A1342CD57E95F1CA0B44386AABD1664B511690\ -10AD4D724A900DBA16A8F10411800C15A91BE59D10ABF7147B4C291B0B0DE3AFB:\ -2831303239206269742074657374206F6620504B4353233129205075752120::\ -13AB41A8252B19A23ECC3781A7AA969ABF929AA562418750B9347F140F2C6DEE\ -BD760C27F650D403D4BC692B1BB9C99B0A8CB20D75502C3B451AEFE81BB1278E\ -23A4B7F5C3C438064CFC25890F68ED689EC7815F015C018BDCE766EE3A4A1535\ -19020BEAEC16F56F5559B8413BF0C4240645D2D8EF69B023639B336F1A2BD2A622 - -3:\ -77757FAB85AED403810500EC7FF71C2D702A2681F4152757A6F553B3BFE264D8\ -78800D4D8021F95A425FF61153BBB9536BC67E92B5DA6FF752EC17B7F812A3DE9:\ -686C51FF0113EE267F13E63615215EF4988EF8EE5D519B41BCE5F405CFA73E7F\ -FD01E8B16727733A9F09F9E8114FDE3E6E40E93CB6B0D6DBAEBA9CE2368BBAFD3:\ -2831303330206269742074657374206F6620504B4353233129205075752120::\ -0F017BEC0E1206F2F7BD50500898EA57A1E798FBE0D8C66594F85064E1CD7FF6\ -FD528D562667C9B1D75492B83131CB1262906ABD657B3B15871CDE20F871D81D\ -E98CDF6FD87C5753A0A9E8C223BA1F1761273B9BF8756ACBDC0BD7E6E1CDCFAB\ -3C1722F1B3053ED85CE3CAA15A843112788E779E463BBF51BE3B51243CB14E6FF1 - -B:\ -800CE163A96B6457B06761B5D3869E44137E7213E39ADE143127E9A539E1B0D8\ -1B28C3B950E90F437EF6ED8B983C0EDCA9A63B0B995A06230769069576CE144C3:\ -92A8C827CFD05C51EFA0BE5C958ED88B9813948B99A20042E3F54A8FF71F2FD3\ -5BC83DE9A242CBB3760071EDD6980C3BA7204B5CFB625FAC1367CB2DC83200CB7:\ -2831303330206269742074657374206F6620504B4353233129205075752120::\ -38DE0D39AECE20C3DA94E1B869C09F04BD22C072B1DB012E986DEEA9E254A5DD\ -5E6A946901EFC92A5EBABE010603125B60FD594A3D974986F58F6FC714473334\ -27B1FDC960512C121E8C81F0354EB956698EEE49A4F989390950B679E03A0B6D\ -964EBA3829C52C989A1ADDAE430D600188F1A215BB306EDFDE6E512E23F113C52C - -5:\ -A9E8F0A318CB66175E30DA2291CD2EDCD9A48DBDE30CC6D4AE4E479452DCB873\ -370599E4417350FA1F70E2F9B918C2284DF773680950983BBE35743010439A9F1:\ -83BAD868C9AD825C6C6CADE47F55F4D89974B2056293DA9C3D867EC11147720D\ -F048357E3331384C0EE2F6AFD28B9B8746BCA799C8896190C6879C1F59BD1B363:\ -2831303331206269742074657374206F6620504B4353233129205075752120::\ -192283FBAF7B9018D464D30A428689046AE3E25A499F8E437096800E09F4883B\ -E72626B9C0B50E982C5D53B6C733CECB6FF5C3CC2958BCE854BE89AA1D166361\ -ADFC0CA4B23D7A5D404B0F75ADE3FB134C965E427233F743925AB36DD45564F0\ -7FEC46F424A61977645E0C4D275A2BFB65A403FE14B20210B0CD3ED319C9D31420 - -723B:\ -D7AFE0CDE0A05A44FEA97C7710960C3F1D7341279C025CBE16D4038C8EEF49BD\ -A81F1149AD31B33DE594C97431C52AF0F2D52198E3847CCE0AD02C5D6BFFE39D\ -52824BD671CE867AC0E219612A2AB769D82DCEA187E8AAA02428FCDE8ACCBDEF:\ -BA36A3D8F1F8AFFC57251452119236A532516ECBE4CF5AA6AC44533F4CA9995A\ -DA0FD9B0A742941AACA7FF0B12F2D317B046F5C3BC0609B519C4F564604D2969\ -19F677D590AF519ED70DE189ADEC8E024286D4C2E8866F7056E2333AF584E847:\ -47697665206D652073747566662E::\ -5C9417A66AE951AFD8900FF15463CBEC5D01DB8D771BE4BC35FBB2416D2D4D1D\ -89151E3CE6AFBC4F676627B538511C40EA1361FC2AE34DA5DE06C6507EF6FE27\ -E362830230F3B990AE26221960B459CAF308246EB6183FBB75A38A89A1A34A2D\ -D4466F18832917AC3A68AE63A8920FFC7F3353802D8E18F760F00B3BC62D5981\ -0F7F132CCB8C4A5EE2F2ABD6EC2A8FE03911F1336D70A4BBA00DDE153683CA0A\ -F730619C15AF48AC2021DF431C675874BD10B42432260EC07FAF5C2E93DE868F - -7205:\ -DEFB5C1A68C464B3190677215DD4D5098673AC1B510684135E5BF2AA8EF07395\ -6F29BE13C058AFD613308000261A2C90D8A8328AC2DCFBD65AD132B5D32FEDA8\ -FDF4601AA0BBCE72B56B1C01C65E6B2F3F1DAB6975574B70160BC2DA2F72F658\ -9FB9C35A8DEC519F7E4759CA4E71EB27C3CE37BF6152134B477CD8E9F5656D23:\ -EF363BC1C200BA863315BE1EBB8D0FBD5445D168BD8802D9E0DA108D4ABA276F\ -64C54006D180B53DDB655692740BE6FFAFE82565526E45626683C5CEFB768E64\ -6CA0348F5D70F435247775C5DCDFF681D955480EE5C41A2E739DDF27F321F24D\ -A4022998624D43FD566453C4603F2207A4CE906660D0D6EEFDCBC6B0585A633B:\ -47697665206D652073747566662E::\ -693E0EB1075D852FC14E4C3E54CC180F9B215A663C53AA85FE3F8777F25EF089\ -8871C922DE5508B7CD068559DEAAF1BB2C8FF590CDA7586BB8D8CD2FED31122F\ -E09A858ACE8BE7CDBD7DCEB1FB6E80ED4D1E203EA60DA5B4FC4127D3B649FE4E\ -F4991394F4B28AE8D2FF33A4B89FF8E18B9656137C43F4F950FB013882C1CCAB\ -486289B162256038F882AECFA6A5FC0B377A1B61F95B34ABCE4562805E614859\ -22B36B10C1DABAB069BDFE0EFBA0C44587CCB4FEB6839E6B2F7F07B2E90EFC1F\ -C8FA953FD56D603AE54458AFDEBDBDB99BCC29733194E1DF5DB9E7E63E993756\ -A043443A254CF4E41A171A65BE4DD3CF5AA4079F3AA69D220615B0BF935134E0 - -71BB:\ -EED87D797D13FDD31AAD41AC7F88FED35F6483D4AC6989FDDCB540C04E69E2B5\ -085FF650613BDF8B8BCFF09E328176B8C6E5E8608A6B0BC6EA2C6461BC060FD7\ -B884A9155FB7DA583F95EA9EC896AE8C678454D9D9337C9E21F658E6B5B2EAE9\ -A8477E7D2A3F9115625A1D429087C3DA4DC71E7C9A08A44C91697B564A8ECE7C\ -E7BFF1C626F6C2D898E512CEED855A64090648FF5B71B385B551658B04F29D81\ -A00C6DA0600375D7BCB26AAE5E211EFA97AB806DABB4D783C5F8FE61BEE81565:\ -E9E6B997D92FB0DB4162D4412326D008CEA106665DEEBFC9B819E5B044A7B98B\ -3E628887BAE89C86066FFDBADFD0A52715DADCE0F4A2CCCBCCCBB095A2DD0014\ -FD8BEE4FEDEB95F19C1B7CF694E2C505BD614D06E18F362713A3DCAA41DA398D\ -29D507698D4B3FB1D8C070285A4B8A4808BE4BF60299D4E6912BA4C43CAB65D9\ -5B06F96FF50838E13B4938084C4D736FFB28477B30E4FBCD4C6826D1250B3A85\ -68DC0A7A0997CB2669DA44D925FCBD248ACDED9F5930DC805F019014AA806781:\ -47697665206D652073747566662E::\ -D0C2D44B72627C4CDF868393F38BA331742F7C553F930DBD85C2F52E8C57CEB5\ -08C31D7284DFCAD0EE161F298AB52D0B3E04FB0A6D1785F7EF0AD2B527F1DB04\ -50831A832F3F1D46357F042970DFEA8F81BBEC44B2B99272D15D6ED9587F116D\ -97E572B6534B4ED107BF43AA3DE758C074B4EB391B9AE3BDFE6D4A4FB2180A60\ -A1EC259E22825FDEADD6A13B19F011045EE8DDEF14EB404A0063DE0D953E9245\ -EF022943AF6476118600E6A726994C94309571C47B2155C9459D8BC757CB226C\ -057820443E593B4A78023F5D8BAA64BB48DD46C4AA77CE39E256A6388E2FC59C\ -E2B453AF687DA37A2C6D7E10D8328D25FF1CDE51926BB27C6200A590C8BA4BF4\ -274CC8E72CCD10271F14018573A1F41F9F1C582FC102D7621C2AC5078A14DAAB\ -36D26E055B3AA6DFBE6BE1C463C4415891086DECA173D99495188FA21F497E9D\ -270FDEB830B3F9D62F15CC843AE19F490717E9A7979139175BB7240F706851A0\ -F56BAD12970F2E0F031C313F93C9DAD4AAD0A26592D5E618B9E73566E68DCF72 - -6FC1:\ -F34CAEA3D0B3D9BBEA6519414CDBAAF20A44AB2014D51545961B5917FF2D8F40\ -ADB5971ACB2116B7C5600DB30D8F80D54F54DDDE605A4AB5C7A4269A5678508A\ -545BB9EC585EA877EDC4C23C2370F44DB68A2FCEB73C09307CF22468CC4F51A4\ -2C1EF139FCE1867598F909931E7C364AFF8B5C1B60FAD396A641FE949888C6A0\ -C2FFF84FD7EB476B1292FACFF2DFB7F8B48934ED0352615E1AD701491C47098A\ -49920DCA9C9BE01C1C70F4AFC9BCFE869362816E21C552BBB918F521FD57688C\ -018969C6C48308D18589C2EC486A8C84E41263F594BC35993F15BD23BCE1EAB3\ -185D0828F441064D38D84148367DA2F6FFC9C29510ABABEBC33F6E525090C7B3:\ -FF433D0B39AE58722F5A84FBF7A09D31AC8D7A8A78C30E00EDB3B062C635C6DB\ -29472989F3039DB7319AC5F806E02BFAD02BFE61C01BDAD786DEFA6445E6F36E\ -CB3773B5A509E14BD414491DF694D4C5E798A33B1E4A0D371DA83B4C7B8D8D9C\ -7C8AAD77FE9ADC5CC67CFA0C9DC0772435EC455A6BC7F65D43E1B5653A80064A\ -E4EA6D910F509E16BBA32C3949BE9037F52A9A96AE49ACE787BEB0FF28E6061D\ -DB8004F4B34F65FB96DB8173AC72ACD89CFAA3428944612D4509546A3CBD0AB1\ -5B8C9CCCECF2D634CEF7D7DBB2DB35C107E7E3E6AAD6C8C73FF22166FADF2C6B\ -4F788889B7720A43EA2DA69203BE545C5A7897A8B9971E5EED87C3D57072A985:\ -426C696E672D426C696E672E2053686F75746F75747320746F20744F332D6833\ -723320616E64206C306E2E20416E64207468652052656E64657A766F75732E::\ -C4F7914A7930FF55A16083CCF84D72F03C900374BF60145EDEF156AF48ADCBCC\ -51AD3912EF0F27A84AACE8CF7DB7EDFC2133BE617EDA7AD5C69C82C2BC1532CC\ -04B005CE6349EC5F4951BDECCA0D65AA5A07923570A23F51A30C972B0966B2C7\ -FC3D0821D14555A2A2EF281AB0D533F5C37FA6B3A683B794C8770CCD41BBE418\ -262D1D6EFB98108BEFA271BA5441FCF68FDFAA450E02AEB78AAE5FBE8FE02D37\ -EFF8D7D250503F6BD5E6805BEDF3177FBBF8DEEEE4D2A36BEC34106B7E2FA7ED\ -1874C9023B6B71CBA87ED2954D0B0F52C1C51D8242B4012AA22689F9FCCA74C4\ -C1BEB23DA240C6FA183A2AFC494615382D3AB7C3A96601C2097B381C5EB5F530\ -AF1DA74FB05BDBC52B5F08030CB8C3518D8B9AE17A6164A781493FA7827E1E95\ -7EE09D0277019DE3304C03FA8071F8A4C720290DCF4ADEBA54C93BA3B71F886C\ -D20D959424599480BC35D7F6D6A3B0A112BCB5CD99F16DEF87B08816497E9B6A\ -6FA9D28049239776B0266AA28557D3B811B48FEB601E6CA16951CB899D6F56C7\ -828E37201420A9A51360750698BAD1DB0567BE0A3CE32CFEF34566FCEAC272FF\ -944FB8990C29A3430A5CFE9048D8F595B47AFA93CD910FEB471139FC9D992EEC\ -BDC0DD304AD20F551D2AC1AF97AA7C2F058DEDD9302BB7EAA3210748B49BBA81\ -95BC3B83719656AC55773D0A49A9F74F0DA0FFFA76BAF700F430EFCE96DF961C - -[RSASSA/EMSA3(SHA-1)] -10001:\ -33D48445C859E52340DE704BCDDA065FBB4058D740BD1D67D29E9C146C11CF61:\ -335E8408866B0FD38DC7002D3F972C67389A65D5D8306566D5C4F2A5AA52628B:\ -45766572796F6E65206765747320467269646179206F66662E::\ -0610761F95FFD1B8F29DA34212947EC2AA0E358866A722F03CC3C41487ADC604\ -A48FF54F5C6BEDB9FB7BD59F82D6E55D8F3174BA361B2214B2D74E8825E04E81 - -10001:\ -D7103CD676E39824E2BE50B8E6533FE7CB7484348E283802AD2B8D00C80D19DF:\ -C89996DC169CEB3F227958275968804D4BE9FC4012C3219662F1A438C9950BB3:\ -74657374::\ -A7E00CE4391F914D82158D9B732759808E25A1C6383FE87A5199157650D4296C\ -F612E9FF809E686A0AF328238306E79965F6D0138138829D9A1A22764306F6CE - -11:\ -D255E2DEC6F7B4A61424CCDBAA356FAC0D29CA7912EC755AD4C72D8F4C4ADA5B\ -51790C518C074098C5CF97CF651AD8F5D2D3926BC16872D69DF533ADCF71251D:\ -DAF30344A35FE911419B2BFB9C8B461B57A1FAB11DA8451391357AEA6B81348F\ -5CCC4E23B38D3DBA82603CC52AA5F1BDC6F37015246F33CD02C3027F557A265D:\ -7730307421::\ -A372D1D551F9260896C2513932A0828748086C5AAE2E8B5DFADEA3250E9A8748\ -3C9DBA5D6F3513202510C2970624C1EFDE858C432DE7E50ADCDC7D639C30AE8D\ -9D3B6E521AAC286D8613223066559148E6B06EFCEF9799541447C468D6B49ABD\ -E9B51B14B34E475B3D04A6747DEB2CCAC5400D1032DD977C0A98D79A74EB38AE - -11:\ -BFE1C1173207E6E33F699074865B0C285CDB92A7973DD2DE1E10F525E845DDA0\ -2A2145CE553BC039DFEE68AA6826855F9DD8398820536BCF83EF422E2E75A93F:\ -C542F0BF4CB661A6D3B0FBC3952BC85BF7C8A13F81F3D66A78A39A1A4480A172\ -26B913A53D0AF44775D76E611030782BEFFD979C74BF3483A709FF1A58F140A7:\ -556E7265717569746564206C6F7665207375636B732E::\ -0B43E57A2A216D15795C2538ADFE794FF0D4342CE4F61D0D0A5E7F38A2968F9D\ -6A032DF4B772DC7E0AEE89B5BC829D3F0BBB05758F0B95A10CF8B26677862737\ -CC3277443E4B5D162182B326723E210A3E2D8E6E9BFDC7C935CA2BF4E57036A5\ -A83661AC1EACC4033E79FD2B9EC525623B1EBA9F13BD70822EEFD0EF443B0993 - -10003:\ -C739CEC54F45D25B3B4D69D70CAE94F2B5299A406F4F045076ACD84687A59E8A\ -1AFBE7DBE229186EC588D12397E401CE51A42BEA67CB6B10C984C117E2CB876B:\ -D549FD1428B28FBFC7CFE760D16AD9E4BD6129AB407AD79D4B964F6362B78DDF\ -AF20C8EA51471CD49A5E329F49420571F3A6E30E781BEB80CEB1CD7E07F57D61:\ -49742773206D7920626972746864617920746F646179212053656E64206D6520\ -736F6D657468696E6721::\ -1EE0E873EE0EBF9DCFD452596D731936F8115BD3EFDFA2D1383CDCF04B97DCE6\ -ED35853C19ECBCADAE81E431BD31ACBF9E4CD709D2490E552853FD523D6C680E\ -C59A0E6E51DC0BBDC4E783608BACF3B6648931B5DCC2979D932652A42D9F0EFC\ -6B1E6AAA85C97BF5DF88736BBDAF33139B729FB0340C89CED70AD556097EBA0F - -10003:\ -BAE8E1ECE4B7E06903A894BCDB1E4B576D8C7719D23343814D6EA2B65E26EA06\ -ED68DAA07048917EA74B8A75B6DF6BB68060BE68F3C0594EF99DAD5CAF9C2A75:\ -F1C1AF40EBC0BBD628E105246AC61FBDFE7C926156D8A644F6297C758500DC4E\ -943B392014068978BEBB3ACDEB73358D1E1F035DB73D01BDCF0536928EBDE885:\ -49206D65616E206974212053656E64206D6520736F6D657468696E6721204E4F\ -5721203A29::\ -4D0AC8B75C4338C456533A431596339617955F786998BA05BFE41A4BE24AEBAD\ -DF92201340E076E7384BB8E211FBEC7662573C1F63915E3033CD6C351D7CDAB8\ -AED5F3458AFFEBEFAB21612BF742EE012674D04AAD37C592775A55D6F78C6674\ -DFC0F927303F486E82AFDAFE28A55660E91687FEC0CA2AEDDC83512BEADA05B2 - -11:\ -FBBB490DE6F5F485B0A25B71394A393488AF8131B5391C8D3F99ADAB2B5B1F89\ -87B9556C5FBF2F85DD56BA0F9507C500787E07C88726476F56A07491CC4FB97F:\ -E1C5F70CC3DA03313682723C22241CEC93AAE0455B59501F4E6603E790A06083\ -3710E9CFBD2D8472E193C0B9433B2290CF303389B3CEED97CD1F5C934AFDCAF3:\ -57687920646F204920616C7761797320656E64207570206C696B696E67206769\ -726C7320696E206C6F6E672D7465726D2072656C6174696F6E73686970733F::\ -4AE5B5600003871EDF01BC589DBDE5F5F8B558AF6F286D09572555FB4D34F640\ -173F0D17AEB67E18D05CD598595C78AA4E1246DDB0D311F38E3E21C02241F4F5\ -542B872DA50ADFE17407DC115C14DCB35847C3AFF8914967D8714B89CECC5745\ -C353D9831AE5B2C666A3077D5AC1131160AA59113193278587308D3E5BAED895 - -3:\ -B6E4B50A4B61F147CC30C319CCEBEA1BB8151EE3012BFD2C80E8B13DBAE1657E\ -7AED914E80A26A4D1FCAFED54BF4457D609A33C6AE7631DE9A310E3EFD4353F1:\ -B841BF00069AE6F05A68CB11FF5E6389ED0C8AC9D2DBDD24CF0E0076B05FC226\ -E771C0D06C220908A559E5BF6626537B265B8D9C50E05E214724155F1C14A7E1:\ -4920616D20736F20677265617421204920616D20736F2067726561742120::\ -24D98B51D0419DD3D987D7E51528F571790AC78D2C80F36F64C7B4E05D90239E\ -8A5D9D7F46D636741B9F9A1DA58E58002D268A814528A4BF6B0AEE3B8EFEF0BD\ -72C956E4895FAA28E3EBD13E7EFD46A7BDFC3872D220EF4A2455E6CCCC407411\ -C2274D7F2BEDF4A727B569BFAE999F910BF69F5689DB7686328F97DED76C64E5 - -7:\ -1343E65E7C11BE13536BB8BB569AAF091119ADE46FDCA9AE627910A39F9F909B\ -F921EDD9AB862813AA5AA5969620FD97ABD051352C89A336E420D1BCFB37A9CDF:\ -10A76D6261BE5FB018492566D9819028CA13B55A982C8A2A7CA31520124AB832\ -0F583BD5003F0E800775664DE2718481C15C841888350BF980D8F3EC017B9D851:\ -4920616D20736F20677265617421204920616D20736F20677265617421202831\ -3032352062697429::\ -0069212B4D49B93D56DBFD35534686BC4CE5EF057D3E5EB08E38C0CAC44A33C8\ -1ACF7E54ACB2F7D7029F63778B55D63C31E0FEBED8AF57050EC46E7C6B857112\ -B8A1FA0B4D5C11F976D01B5F56EBF55C678393CECFC801E51D6040A3631A0E77\ -56F9E81E2FF7A03E1B8A20F7DFAE90CF631043029AFFE3F615A54EA68ED470B393 - -3:\ -1F16A49C815B9878A399B22419F0D948B33E8D7367A9F5928ED63146FEA7C69F\ -6C8A0EACA711970E370FB87CA3CCCDA71E1DBA9A12DBC003ED79F545876BFDA7D:\ -1F5C7840900C1C2E18340C156F8BE4EE70A4A0603412E689602C93B09FDD205E\ -23A775E7E1EAD3078EF9D5487D8A2EA5BABE8EE94AA0536CBA268B3BE7AD4B519:\ -4920616D20736F20677265617421204920616D20736F20677265617421202831\ -3032362062697429::\ -030551DE7296296876189AC2155EA4F80B3A68EF2A51F926494821E038A52548\ -4BDCA8CC4525D4BD04BEE373313D79DFEC59E22F21FB853C688FF9DA4CDCF6D1\ -2255BECED6DF3EFDED6046D4381D69B89EF17B892685707AE7B49E2205D95F73\ -0A1A003638FBCDDE5F4A5AEB028252F46195DB3CA1C708AAE22ACA7687B0DD2401 - -7:\ -2037B35FDD14FACFA8B6DC8F48EC575F43CE8E2B5B89375A6FDDE1CFB66DACB9\ -8D7C57CE0F025BC7DD15533233AFCCBF392C0CB9DD79F49334D31F1FC0D17465D:\ -21265626E63E26739C0D086C3F19D7C8DA5B2FCD1452CE5290FF16F80AE6CDC3\ -49722661765B5AE418F23FBDAE4048C4FBB845822B2264C012ED6A8A257365F69:\ -4920616D20736F20677265617421204920616D20736F20677265617421202831\ -3032372062697429::\ -0090FD2E6B167F5B8E68AD965C170F87E2DDC69BA9312DE03B79018C90A80BF1\ -67704999C1A1B8AD31041428DBFE74FD89B398F5682F252DE85E19F33830CA2B\ -B775966C01EFCD6F95A5334DCEF07A0DF1F1114C21FEAA03D619EBCA60010F47\ -F671C35D754BD63DD5045E45CA21F7CB15FE2731AB27D91162D52320A540B17AE1 - -# Following were genererated by Crypto++ 5.5.2 -11:\ -B7B1C37488F9585ABEE4F6C1255E70726F9FEC2532D86321:\ -C22463589E6BFBF3D9ACEC3D29F978BA3CD80D48478F40ED:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20\ -64617461206D696E696E672C206578706572742073797374656D732C2063727970746F\ -6772617068792C2073746567616E6F6772617068792C20646563656E7472616C697A65\ -64207472757374206D616E6167656D656E742C206661756C7420746F6C6572616E6365\ -2C207265706C69636174696F6E20616E642063616368696E672C2073656C662D686561\ -6C696E6720736F6674776172652C20776972656C65737320636F6D6D756E6963617469\ -6F6E732C20656D6265646465642073797374656D732C206D6963726F6B65726E656C20\ -617263686974656374757265732C206D7574616E74732C206379626F726765722E0A0A\ -776520646F6E277420746F79::\ -7019481E38A7ECA4D6E865FA22BFECBEE46963D4582419C3C79A272ED88630B4152AD9\ -336B08DE71B5C45FCE6C45B925 - -11:\ -D83C1647F81DF86BD9F30E06C54CB22CDFB1BAA3224FBEE7:\ -E57DB05FC990CFDE83B59433D37C69CA6079AB4EBC103C59:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20\ -64617461206D696E696E672C206578706572742073797374656D732C2063727970746F\ -6772617068792C2073746567616E6F6772617068792C20646563656E7472616C697A65\ -64207472757374206D616E6167656D656E742C206661756C7420746F6C6572616E6365\ -2C207265706C69636174696F6E20616E642063616368696E672C2073656C662D686561\ -6C696E6720736F6674776172652C20776972656C65737320636F6D6D756E6963617469\ -6F6E732C20656D6265646465642073797374656D732C206D6963726F6B65726E656C20\ -617263686974656374757265732C206D7574616E74732C206379626F726765722E0A0A\ -776520646F6E277420746F79::\ -340E91C744AB8748E6891202979BDDFBA6003FFDAE83584359BF6FA5CAAFC8E811598C\ -5985CAFBC679417B64F6F42B02 - -11:\ -CC1416D18974D023AF2D6FCA7BEEE85FCE5F036739E2AD8D89032C591C3B50498971F4FC2E25\ -384B789001D6526F4733963F2D98BCE1BA53121D15CE51C0C237:\ -EB2CB9DEAA582AEA4B7322C77308CADABCB824A2E511B93CBCF60A0DD6AFDA456A7FCEC6F7DE\ -F2F7CD3EE32C36BBD2A4445F2C6DDE86BD3881B25CFA6B4EE279:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -3B2CB445D8A533B0C3CF4C05EA87C266902EDB4CDF9BCB0289340253DD3110753D0712AA51FE\ -91CD0E59B73226BE63673FEABFE472BBF136B0C8F4A803284FE3DAD892233A8E81C97406E065\ -C5AADC4DA86746EA88E7E107FCFE1C925AEF5E5E4C13E76BE2129F114527A467A6227FE22BB0\ -2B6866ADBA5F6B11E8F85DFB4A8E - -# Generated by Crypto++ 5.5.2 -[RSASSA/EMSA3(SHA-224)] -11:\ -BA54D5BBCC6D8E5A4DB29FF530C38DFBA7F970DDD062B74AB768F4E44353CA6DD790F4ADD677\ -38BAFE49D30ECDF22C55A856440F43D718433D5A508BF6A77183:\ -F08BDCEE74246EDD61D1FFCECE322630219FC68EFB5337AC80AA88630D2332654397759B18BD\ -F709004AFC150F2EE339B60F72E16C1BA3B6EEF910F698C2EDA1:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -9B3E6BA1DC0AF7133861A0EA2B956BE516918292AB708FF762548DCFBB02B1742AA3331DEF07\ -7504718F827C13E27F9102EE7B93D36E601C5A3E687F2F7289A20BDA7BDD1463BC2BED074AB9\ -8E7A4F3A0ECD579E8F40679D877DA0A8A7B97115A1CB965FD0B3BB65C84F62E5BE38E6C2E328\ -D8940DA14522E53075386712B8A4 - -11:\ -EB5C08446CE56F03AB2B0AE7A4D9E4EF1FE2D706FB226577B03CEF9F004B3FD258814319F586\ -BFBAC234DBB5E9ADA33F638DB333FA948824C0C5F917E05201B03CAB20558F7D7CDB0DE42549\ -D51EBA4CF93068433F02727472C2559626D47A8E071B0AD848FD5B35965FB8E06DB4F65995CA\ -E876227DDD8A34C401ABE5BCB11D:\ -F4833CD56CEF4C9DACE2039CA3FB287172CF37C899D1D3267EC0D14EB967E42859A001CFA440\ -9DC1D8BA4952C5EA13D12FC4C016617F9062778E5B9F3BF0FB79C2870BE355F39BACC4B6178F\ -FD0B7A1C8B545A3FC781C1A2D54A962A93F7E41CE144B6C6E22AD3CF61DDB05A8F27508DD5AB\ -6725D8D0579732E621C33360ED7B:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -D685C80FB40EC09FC602880E6E55BCBA96332964505BA8BDFB8A181DC6700C2CBCDE6BD35E13\ -32E56FC5F6E2F80AAD046F9CCBBA36A6E3CB115969A2AF661CBAD42AC0D3C22662CFDE9C8544\ -E41018E88D5BD173AA59D0FE5FD0731730C44261E792F7958C76D7587CDDDF9AF0B99D70BFB7\ -4D6DCA952ADDCBBBAA711E6226E2568E532AE8DBF2BA2AE80F35DFCE1EFCC11BF68C100B32B4\ -8B2D4E22D782B42C97DF8B18164B3E73CC6A129F99E11AF30830A54376C9A5BE4A7F7B3C0115\ -F2B595EC5A4D841D55048E6BB226FC53D5998079E5F38D51BD1281B77E9E69E44DF8F1ED0F6A\ -BC10D2E11B941ABE6238ECEEFDC277EE6719B43F54317E98029AB437 - -10001:\ -F75306FB8700184C998959EB1D271B3DBAB883726D270E21B91CA78C1BD148D1D428533853A8\ -8E4AB4E4CB033CF27E2A8A6C1A12880206D6B4D74A9373F35B5F:\ -E615C504FD127394B4522FF5BC0143C93A07636D184B9B40DF6461E3BAACC23AA1937C52B06E\ -95849692465060D092713D36B9E49FD76CA86D2389CF1B0F1A73:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -04C401283813191B750C8F6CEE6C41C1C9ADB7CBE26685E568D046D7F073775F19F9ACA0A43A\ -B9A6C200C07174C6AC6A67E89B6367DBA7135DC5C2236218BE42B7DEC0A40C1E165BF24F9B33\ -E69AB196B8FAADBDCAA657512B1641AF7D0DBBB9BE1BFD8895C6B79EA30C104A5DF1380182D3\ -D2C9B553D59F564DB82D7940E18A - -# Generated by Crypto++ 5.5.2 -[RSASSA/EMSA3(SHA-256)] -10001:\ -B6661EB38B9C75A91E65FE5E6743C6949D6415D57CC4BCE84ED81E39EB8B4A77A867A15A3415\ -5B7E1CCCF972D6A06D73:\ -B85D9FA07D4F7CE1CF05150256FCE15BF7E647CDA350DDC574E72104DBDAF1F1F87930D1FAD8\ -C8E3094746ABE9E8C46B:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -275AB9846DD6999FDF4FC46F0E454B3CFF8C125096C0880DA957D65766A6298EDB41AE0F33DB\ -9FB15F9369E98B2738B37FF7165175E529B2349961C48B9459432FD58795052ADC2506D0B5F8\ -37879E771C66F59880F1371D78290B03F86454F9 - -10001:\ -EF97A42D03FAA9A42A22D161B7819A932C4C5FAF5338A6E57C4379AE8C0A32C924B1398A53E1\ -37409B322A0E793090361417290C159D7B34A6A62A0D2E84D997:\ -DAA28E8CB6CCBF9A4EA5884AF7C791DC08BAEFEAB75F23EADE53A7D29D26B35CBE806C65886C\ -70597A03007949F556924E7D60E5298689E4D5F4E46311E48BAB:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -23223B652D5D0A17866DE55C77ECDA94A3B69ABB8CE335E5ACC03FE33A7D2D8257FF4227036D\ -CAAD05820C135E2E5F332A01D77BE4FB3013529F6B1B9255669FFB64C134DBF01995CBF24C17\ -35AE0028381B40A657E5C28D983478632C7975CD0C776CD8CFC3796DE7D8FDA86A0112ECE359\ -361B35EB6DBDC7F5E44D469AED13 - -10001:\ -D3B065134310F6A02A68E78829DBE58C5AFB148D95B30C7E54D8F463F0A66DFD3A78E2A15A26\ -18D5C6C972AD2BB14785E524CAFBA3B652C94D8F2579FA9C1F05:\ -F2CD098B9EBBD2B5AD589C30FD963EACD78D559190EB4D06880C8BA12EB55404D43AD51562D4\ -BC9B61B304AE664D22290AC6F4E20601A4DB97FE16A5DD0ACA5F:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -382C32D8EED4F7364BF68925FBE83338957605B064109AFF275457A3EE9BE4FD1EC1EBFBB3A4\ -72C3395F44DDBF378FEFEFC2B64CBFBC9C557B315DF6E8016FE3BBACB56A7DD3505F16A5F4A2\ -469250C77CEAFD2DE55D2FE96250E50CE813D529A909B8262456FFEF298D7472A8F5264CE667\ -24ABDB9F65C64C3747227804BCD1 - -10001:\ -C24FBEA1E9F303117CF19C1EAC7721AF5DC228E39007336E48B1462CB5E7D2C9E61A69E8F501\ -FD26E71F5D881398A5FDE56FF565EED8715AA2CC0B46D78DB74F083253649A22E0C99DAABC26\ -3E87FE3F713A1270FBE3843FA596F35D43E577FB:\ -E346A9F2672A70264D5F2EAC6F17FEFA50457ACF92F30F4E849ADDDE6F3B95FDB6E17F55B939\ -D50FEE1D2F6114B0F7FB74AE8B4AACDD491FB085B2ED7D125A32121DFA87F2319F8357BEE127\ -F103EB1B31D98A52403498476A1E34F18B6CBAFB:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -8F4A78545DD1F10329A692EC66DBAE0B5D3302FCF6AA2561DF2CC73FA16C71EA947C919BA326\ -50A7C1F7938BDCF75C4E77CFEA7BAB8A083EDB531F95B4A67CF93CB5EDFE6B4BA07CEF887CA6\ -10C9A917C374399BE8CCD4B84BD15295C02028502348278E50A64D4B990E9F754C64FD55B8C4\ -E6E7EF8A2A2182864159A1BA012F325B3BF7F1B23D44593B749E51F382C290FBC6AD65EF5011\ -47F3A9A5A92AC5EBE4C82E259A212E52C95F94BA91CDFA88DF26BED55E4305EB08675A430CAC5B04 - -# Generated by Crypto++ 5.5.2 -[RSASSA/EMSA3(SHA-384)] -10001:\ -D6392D7E84F9A7233FAEE9B2F386C7921BC9974393EB3581EAFA66D8E7DDFB75BC2F0AF8A674\ -6563FF9C80A420B56BD1:\ -D6D02FCFD0CEBEC15844AB927C37BAE12E8EFD552FF706B3B632A30E5FC14C39BC0ACF423C73\ -C412BC8AF0A473276283:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -8CF24497F9C2DDB9183822444F2074CA22C5D51B52E3F513919EA69BDA0082B9C40680EB813B\ -E914E95EB9DACD3A3A238AAA675FB7DEFD55D2F981D5B3D6B9467DB8060081AE6F56EC7C0FC6\ -E6E078D614497ECF896DE4DAA4F679F683FE0A2D - -10001:\ -E39E5402011ED488B404C162C767046DFF79619DBA222F7EBF8B0FF0525F1213DA8316DCFB6B\ -35E22987CDF373EBD91F9467491391345DB4F15DE2D1928563A5:\ -D1B9E418890830E84D570E5209BFE6BC5A619C01F27E7EEDC1DD8FF0153B5891FEBC94A1843B\ -FFE8F8D3CEB9351CA75EE208AE2A9EC08DD52445AB3194489553:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -64A89B5FFD98351CEFC750C278B2E4A8808EFD83EA57FE6752AE245E058A2BB821DF2AE980F1\ -9618C2C6201CE72FE46F9E9CD0502B12EEE6A9E180B3FF61C97640CC82DB7D583FB17A78BA88\ -86884FEDB1D4F27929A203069B142FC314D27E4342AAFFC5100F7BDFF8162CAA98DC3A8A1F5C\ -5DD7B7234F67F1AEB34D911E7CD6 - -10001:\ -C773EB83CEAF603D4C2D187CCE60A2564C7358C318E8817E183BDFA03BFBDE7EAB98A3A42E97\ -30F5E9D6F0849B438C7AB00E3B3032DEE05CBF32888BD63245CD:\ -BE95654D6DB5FDEFA2D3CB805687BD08D859982896071C433CA0C5051A44D8F49F1311BD35C4\ -9C8B6CA0CA746BE1ECF2126302758A5423BC0926AF4E96517931:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -519A0A554D5C8B4E749CDD92C21DCD8CBD5BB4494E9F15C91876F073756A896EE5A983A9AB72\ -6CCC6BDC0AA093B6643D683BFAAFE5BCD1A637ACBCA2B14C652C4926671A12275D4B3BEAA8A9\ -D5C57182B7AD6F8C89FE6A2555C8B8057A431FFF5BF1902E52183FFAD4D916563EA765809E92\ -6C626505FBDCE74ECD70F1EADEDD - -10001:\ -F914636EBBB1EBF51B642B8B8DE6BBB43390119D517139C9C6072C60A16E9E4CBD0598F929FF\ -D6B25C904CEFF6A434FD101B095E3AB5D454D07D813DF7823CEE33F638519BD2103E014DE215\ -0B6D8BAFAA698BB5619930FB39C64C3C1C31E72D:\ -F06C3A4F26E3144A3030B8424C41A7709812EEDABF37FB919DECA5554EF2AA2AFB4DB9A0986D\ -10ECFBA5897F43A7709FE7D3526C57A6EFAEFC116E26ECE0C577A63CF83638EB24911FAF54E0\ -C468215BAA4151178ACF872D2E5B3399A97C31F7:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -3577C7731A6D1E436F66F4367AE53EC80A3B632A8755DA97CA1DC7B5B7D6A946CA0D6AD0BA2B\ -B6C0EB8E2BC74725B606C00D6E96C87B75E73FD80F68DA2C829C57963855A85A66FD857FBF2C\ -7BF584501E5ED58BA06D5CE73FAA45BBE2F5C806409507A7F403E95FBC2971E0B7F399603F5E\ -EC3A67F4C912369A9FE03467AF0139CAF9D92A1364ECA159FBA485A73A10B9AA33667810707F\ -E8061F3632C43178BBA3C5113734F50A6360347A6119F87AD6A7A2308C9E42FA5FE096558586AC0D - -# Generated by Crypto++ 5.5.2 -[RSASSA/EMSA3(SHA-512)] -10001:\ -FF1414834AF27B94F7818DC435D95D756FCC9F4F4DD9B25FFDC23BDACB511DAA9F76E39B411D\ -AD20D543AF198F8CC867:\ -F025AE2AC9135A5E23B1D90E17DEEAA872D45E6700CF011015E949429D320142EC0A802B7863\ -C8BDF99313FDAF2BF5CF:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -0C98A091C5B53A71F0BA4FD4CE5F58B0773070C05DB916B4FCFE5298267F28C457322A3AB262\ -E44079CE440DB56997AFCF30AF33E13DE774D066F07B92CBB8B6321F2DD967A94524DF050A1C\ -67AAA05D28C232472FAB214CE819792DD1147750 - -10001:\ -B876A61A8F19113F9D5396BDDB5F54FFCCF8A35D1255979C797246F96D94D99A5B000B2DE9AB\ -81D1BBD16FFAAA092029500472F1FAAEADDC9E8D077F2E694B81:\ -DB86AB91CF13E90943B0D18016DADF2C4702AC4D6989299CF8338C3AB1620C8532D5297929D0\ -C1A0F76AA4D4DFC78D5D407399EEF35483BA6C8ACCC0A0C09C05:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -84E79B96AA2A3C43EA41FA415ECBF88D3DF93C15D8378EBC51CE114B6FAB16A8B07A3DD9148E\ -D1018A0E0385B19BE2AAEF0CB7603E3493DAA92C1ADB18EC5489BBCEAB9FDBEC41B423109A74\ -551425DBEA6A52A61530ACB8F955D102EBDCD15F2C96F01461DC1F196A87ED25F0B61DEB24B9\ -B7A02324B095219D3EB01855A40F - -10001:\ -D37A85110EE0F0CF8843EDFA1480F3CA4798798B5B592AD80F40C9E42BD21B162979F6002F64\ -EDDAC84E1D6DF41E02ABBC85D862B9ABE6B38FA9193701826CC9:\ -F3DA6327A3276EC647E5B1B9E8846314C2F7B5E84D3DA78E1EF18714158CAA3D700F438A03A4\ -D45A8B7422943F64ADCD582271BC30A687F6FF73A26263E89621:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -C18FF41DB165E740B5BE6D649E9C5F01E4C84862FA453DBD12485975F4BA802A460AC263AB1F\ -BCB53ABD46CA057C195A70381A83707515B154E2B5DA3529C8986034C47F6AE706D06B96D5A2\ -4B9A370276CF93129DB3519C15BCB2A35150C7EFE1B06CAFDD7DAA0B111E10DEBCCF53C04CF7\ -5D86DCD03F9B2C20336EC3FCD1C8 - -10001:\ -C1CC91EFC0B3EA7938897E5675CE09E44A531492742770EA9C2AF96F7614F6ED4B6A17E85DBE\ -F6A24652CAACEA68E4E0F4100BAABE78F744668A973727B3B188194190F67D6E4E152E1498F9\ -45E7714CAAE6C37E215E2511596720C7B9DE49AD:\ -EB4D1A619C6E3947B9E3B07C84DD87244E130251B3F9C5D22B0162DBDA3BDFFED664C14848E9\ -9B02523B3D382D15546F8414888E4D3F95DD542F48C46CEFE19A85F36D98DBFC4BBBF3B5A1E6\ -0BCE38DC5DFC787C5D4C3B72011CAB73912A41F3:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -0437766509CEEFEA9ABC433289884E578D65BA463C572ED61BF3A48AE34769E8DDA73F2F4898\ -431068D518C16B7057467D7402796A0665A7FC7C4D8FD30077D4ABC08CB1E5207D78F130843D\ -42928F1968F49A87481B1B40B441E6E1135025BB23F8A9EA1F43F27EDF03FCF36EDFBE418A89\ -F7C11184571D8D80AFCEDF41A4F93FCFBD73A39D7BFAC2E263FCF91D4264E8571D044B1D568B\ -BA6F228FD47324132B2274EBF26CD4BC7520A2DBFFFBEE41A5DF72A5D8FD2C6647E62C28F04995AB - - -[RSASSA/EMSA3(RIPEMD-160)] -# Generated by Crypto++ 5.5.2 -10001:\ -BB305054066BEE5B66E9C651583F6B5F4005D3CE970520CDF277EF463EF1EF1B10E9428C6BCA\ -4254F42E40F0040C7577:\ -BE54384C3A200BBB597B8A59F8165D553B24B2A9F96236521580AB79924EBC6095E0905E58A7\ -C1BB302DFDA4FE489395:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -05C9082DAF39A7A706F6AE5CC1FE1A26F820301257DCDDB7B4DD91DB01B472E4C855E1AE6108\ -C32967659C69169197949BA58A194FFDE8449911FD5A8E7751A4E15CCED118DF2FF677D89827\ -99A76B59409BC76A31E696B26FEA324EC2CB6558 - -10001:\ -D59E1378C1E752ACA0454839C11AA792AB2F0064920CABC3697A1701671DE4178103D8C619BA\ -12B453B3575BAD2E61CDD02C4509F188FF01B052121E2EB8634F:\ -F9761A2C67B685690846BD6746F0741FEACF188808B441CC66A54FA21B68C9CCA6F1BE26BD3C\ -CD67C11C0B6CD048CA5904A56F368D16843EE1E086B4A8461C6B:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -50971DC72D885146BCD0AE6D48271A71FEA3EFBD2B23F94F07333F421939F44DF8CA92CE88C0\ -10A65540F904D6FF9E2C4A4A0755CB21D6181581BB77FC58042A1A6F9993B24BC048B06F1985\ -A08CF902C06B0DAEB3997DB94398FC26C7E3EAF0D0787BFA3370C1E5E186F2064B803679B05E\ -481F0363895240FF54FF88E03C59 - -10001:\ -EA0E165F4F81A6A6ED0FC49F26DE95FB7C42ACE29E650EBFFA2B1093389C987EC43B601B02E0\ -D3596D9718062CB071576D31BECB98E53570187CA122F3E20A83:\ -B731579363899B63B6E8857F983E0AFB56CD07EA8D3225A7A182BA2EAB6D3BDE2CC43620447E\ -A2D76947A7BD83439213271002261749F3E9F31E30209106F945:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -5A7A06EAA128549977CD5C0CDD8E1E4689EBEEB06B6EDDC2E39FEBE7BCF4D0068CB14CA8FF11\ -853C00A868F3B520F6503EED8055E9801AF20A277232C037079ECF06AEFD91CFAF387E4EC0C1\ -2C8D4635C5FA5FEFAD2F67E770FD7FD4115FF98A9B4883FC9D2BBD236126AB45EA3A05BF9F0A\ -355BD5F2AEA9158C4D70DF4A83FD - -10001:\ -DBB4D78472CE88FD41DAF8F0A6AE2D147BF34EDFFCD14B3855F5CE7C2ADA8AD08569BEA843B1\ -B568BE73BC7A567175114F8F493BBA87E777426828CDF044E08D1DB7E54231221FC64DE7A993\ -EF4281687EBC11E654E58BDAB125E289CFECC779:\ -D8CD194A4EA3650C927355B187BFE4367604F4BCE10D7633529455A6D11B8AE2745F9A3F0C99\ -D85853D0D645F25D7C9D03AAE28AA85FA3F434D72BBDCDB74AF5B2910B1BDBA9618FB5ADDA0F\ -34E201003E832764A55E6B625F2BB66DC124ECB1:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -85A0774004DF91004DF8A118EEB46EBEFFE690C964BC2F4D1429C76FB19B44969BA80C492FAD\ -BCAC6E36A1F118C3AB8E9BBE0DCE93E7B938E97177B3621CAAB19F1CBDC0AE9261B774782FDC\ -D2DB62AEB93F2EFB16386C5D1439A5CA6545D59FA11BD330BC0F49336FADF0A7EBF2636F6037\ -364DAFAEA4FEC9C290D34CF68FB1D9698E36385E56058CE62C0D25B98F95DA416AE9A5697CD2\ -6305D8DA193C7BA1AB9F66EDAC9087C9495B4B40B50D9812F2F2F6FB9FBDAD19B243FAFDCA7CEF2A - - -[RSASSA/EMSA3(Tiger)] -10001:\ -D402D64E23A5EA4FE4A256B14BBDF89832C814E0400B3C9673774073AE5D6EEE039C0744D486\ -3A0492DE49D402066A69:\ -FE7202E1A686745A0576A21FF1603090EA5CE042BBC943ED9BD4E931271542C77A12E6E1B5E5\ -FEEC5B90B5EA27D90237:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -908DD085BB0A924EECEA7F3DBDCDEFB8989A1F6971DE434F227289733F24D3F66AFF294BBF9D\ -23E80CCA352F232076397D5A862D4AE32DDC901C67416FECEAD311714105FF46044B0996CCC3\ -2938CE2EB5A95EC8E0631516BCA3855C82A712B7 - -10001:\ -E826441E9CEDB949A69AE8C15C088F507B3095CAF8BDADF49F317DEABF45113F70E90910C182\ -EC1A2C433FCFF181CECC9211BAF3943517FCB32383F4CCBE526B:\ -C3B08505952722C91C384AA7962FDB3F96B27EDA6D7C65D081D924BCF8CF8AC6B8BECD12AA81\ -BD8D0B6CC8CA4646240A66A3718F89DC324C5E315D40F90AA51B:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -0F41FBA33B6E3A11EF94F8FD736431288C277B2E00DEE94B447FECD215E61E19B383687911BF\ -B2F46C0A9EF1AA3A787487C88A8C43006BC7D4D6C1D6137939B6B815D532EACFE05FEA6BC3A7\ -57E2A625F4188CE30792D6C75F205EB2C6515FC639780A86E1ED56C32CB223C7FBA8479682AC\ -24FCCC993F32EF55F818DC2F018E - -10001:\ -E493B0520556D6D50DACBF90EC41772CAE3873000EF163A94CE9F52BEF1F7962D7933E727ED3\ -EB4F03633CB3868F59BEC993B7DDF28FAA315456CA381D6650D5:\ -B996BB66BDF65F2FFDE68C156848DEC56BECEFBB6604CB0FE04A404D592CD13EC44DC0C5511B\ -25B7D5AB808B3FC16873BFF19210AD7245FC806062A6C72F3A47:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -0AF90FE65CB6FCB7BE90C5090943DC697534F9ED3A384FCE6F85AD5FDA36644D4BD68A0EC363\ -98E7F704796244B4793DF320F6D034D62AA4ECC579474D4EEA0E5F91C82F729B5A62A8314022\ -9C5DA882A6EB0D7DBC3436B73D1B493BFD7ECD32E11716A424A5FB2195A7865D1DCB05FCB95C\ -BED76FC52A85DE2AA9A9C2AA29D2 - -10001:\ -C0800968E0C6E46099141267F195911D4EE36876E7D79DC6CB679FB1FE7C18387100CA9702F8\ -3E373EDB3799CBD97BBE966FE8B4A344BA4CCE3FEF86275ED0C42A1089B90C63010A135064EC\ -79769D2FC2B44ACC280AA7601329C8EB6E9C1AEB:\ -D939658B1F8C590B3A190CBCDFB9CAD087033FBCD775D18EA9EE5461EBFDB3286A488D196F03\ -426A939BC387A864E1657FFFD1C31651D8A7CBD6E57190C98590EE97BAE08CC29FB9822B4949\ -321BBEE59E9F8E5CBA8A62A1F3BE75E8F24DAFD1:\ -7072696F6E636F7270202D20676C6F62616C20696E6672617374727563747572652C20646174\ -61206D696E696E672C206578706572742073797374656D732C2063727970746F677261706879\ -2C2073746567616E6F6772617068792C20646563656E7472616C697A6564207472757374206D\ -616E6167656D656E742C206661756C7420746F6C6572616E63652C207265706C69636174696F\ -6E20616E642063616368696E672C2073656C662D6865616C696E6720736F6674776172652C20\ -776972656C65737320636F6D6D756E69636174696F6E732C20656D6265646465642073797374\ -656D732C206D6963726F6B65726E656C20617263686974656374757265732C206D7574616E74\ -732C206379626F726765722E0A0A776520646F6E277420746F79::\ -05C402CB39615771565E3F6E2C2CBC81B7528EFB38D19CB493E6F3525198D7B2604706811FC8\ -A28D9AE028C31326E5C43D1EF9F02FA74D12C9D8EB3639520BD190F2084E34DAFD70E761C9EB\ -1D410034A90A8475410E5DA5DDC5B5628060B1CEDE86E8C86D1ABFF24F2EFD725BEAB66957E2\ -464B57379308556D2E93F28743F4A652785B29247A5DB2A3D913C3B5C19ECC8F46FEB3C3C41A\ -4360D557BDE14022897F312FEE1F964508DE44A4B5CA23AF1D2A2D00C2183D0D5733E3CC3EF76A7D - -# These are (some of) the official RSADSI PSS test vectors, -# plus a few specially constructed ones at the end -[RSASSA/EMSA4(SHA-1)] -10001:\ -E7E8942720A877517273A356053EA2A1BC0C94AA72D55C6E86296B2DFC967948\ -C0A72CBCCCA7EACB35706E09A1DF55A1535BD9B3CC34160B3B6DCD3EDA8E6443:\ -B69DCA1CF7D4D7EC81E75B90FCCA874ABCDE123FD2700180AA90479B6E48DE8D\ -67ED24F9F19D85BA275874F542CD20DC723E6963364A1F9425452B269A6799FD:\ -10AAE9A0AB0B595D0841207B700D48D75FAEDDE3B775CD6B4CC88AE06E4694EC\ -74BA18F8520D4F5EA69CBBE7CC2BEBA43EFDC10215AC4EB32DC302A1F53DC6C4\ -352267E7936CFEBF7C8D67035784A3909FA859C7B7B59B8E39C5C2349F1886B7\ -05A30267D402F7486AB4F58CAD5D69ADB17AB8CD0CE1CAF5025AF4AE24B1FB87\ -94C6070CC09A51E2F9911311E3877D0044C71C57A993395008806B723AC38373\ -D395481818528C1E7053739282053529510E935CD0FA77B8FA53CC2D474BD4FB\ -3CC5C672D6FFDC90A00F9848712C4BCFE46C60573659B11E6457E861F0F604B6\ -138D144F8CE4E2DA73:A8AB69DD801F0074C2A1FC60649836C616D99681:\ -2A34F6125E1F6B0BF971E84FBD41C632BE8F2C2ACE7DE8B6926E31FF93E9AF98\ -7FBC06E51E9BE14F5198F91F3F953BD67DA60A9DF59764C3DC0FE08E1CBEF0B7\ -5F868D10AD3FBA749FEF59FB6DAC46A0D6E504369331586F58E4628F39AA2789\ -82543BC0EEB537DC61958019B394FB273F215858A0A01AC4D650B955C67F4C58 - -10001:\ -D17F655BF27C8B16D35462C905CC04A26F37E2A67FA9C0CE0DCED472394A0DF7\ -43FE7F929E378EFDB368EDDFF453CF007AF6D948E0ADE757371F8A711E278F6B:\ -C6D92B6FEE7414D1358CE1546FB62987530B90BD15E0F14963A5E2635ADB6934\ -7EC0C01B2AB1763FD8AC1A592FB22757463A982425BB97A3A437C5BF86D03F2F:\ -859EEF2FD78ACA00308BDC471193BF55BF9D78DB8F8A672B484634F3C9C26E6478AE1026\ -0FE0DD8C082E53A5293AF2173CD50C6D5D354FEBF78B26021C25C02712E78CD4694C9F46\ -9777E451E7F8E9E04CD3739C6BBFEDAE487FB55644E9CA74FF77A53CB729802F6ED4A5FF\ -A8BA159890FC:E3B5D5D002C1BCE50C2B65EF88A188D83BCE7E61:\ -8DAA627D3DE7595D63056C7EC659E54406F10610128BAAE821C8B2A0F3936D54DC3BDCE4\ -6689F6B7951BB18E840542769718D5715D210D85EFBB596192032C42BE4C29972C856275\ -EB6D5A45F05F51876FC6743DEDDD28CAEC9BB30EA99E02C3488269604FE497F74CCD7C7F\ -CA1671897123CBD30DEF5D54A2B5536AD90A747E - -10001:\ -E7E8942720A877517273A356053EA2A1BC0C94AA72D55C6E86296B2DFC967948\ -C0A72CBCCCA7EACB35706E09A1DF55A1535BD9B3CC34160B3B6DCD3EDA8E6443:\ -B69DCA1CF7D4D7EC81E75B90FCCA874ABCDE123FD2700180AA90479B6E48DE8D\ -67ED24F9F19D85BA275874F542CD20DC723E6963364A1F9425452B269A6799FD:\ -BC656747FA9EAFB3F0:056F00985DE14D8EF5CEA9E82F8C27BEF720335E:\ -4609793B23E9D09362DC21BB47DA0B4F3A7622649A47D464019B9AEAFE53359C\ -178C91CD58BA6BCB78BE0346A7BC637F4B873D4BAB38EE661F199634C547A1AD\ -8442E03DA015B136E543F7AB07C0C13E4225B8DE8CCE25D4F6EB8400F81F7E18\ -33B7EE6E334D370964CA79FDB872B4D75223B5EEB08101591FB532D155A6DE87 - -10001:\ -016601E926A0F8C9E26ECAB769EA65A5E7C52CC9E080EF519457C644DA6891C5A1\ -04D3EA7955929A22E7C68A7AF9FCAD777C3CCC2B9E3D3650BCE404399B7E59D1:\ -014EAFA1D4D0184DA7E31F877D1281DDDA625664869E8379E67AD3B75EAE74A580\ -E9827ABD6EB7A002CB5411F5266797768FB8E95AE40E3E8A01F35FF89E56C079:\ -DABA032066263FAEDB659848115278A52C44FAA3A76F37515ED336321072C40A\ -9D9B53BC05014078ADF520875146AAE70FF060226DCB7B1F1FC27E9360:\ -57BF160BCB02BB1DC7280CF0458530B7D2832FF7:\ -014C5BA5338328CCC6E7A90BF1C0AB3FD606FF4796D3C12E4B639ED9136A5FEC\ -6C16D8884BDD99CFDC521456B0742B736868CF90DE099ADB8D5FFD1DEFF39BA4\ -007AB746CEFDB22D7DF0E225F54627DC65466131721B90AF445363A8358B9F60\ -7642F78FAB0AB0F43B7168D64BAE70D8827848D8EF1E421C5754DDF42C2589B5B3 - -10001:\ -016601E926A0F8C9E26ECAB769EA65A5E7C52CC9E080EF519457C644DA6891C5A1\ -04D3EA7955929A22E7C68A7AF9FCAD777C3CCC2B9E3D3650BCE404399B7E59D1:\ -014EAFA1D4D0184DA7E31F877D1281DDDA625664869E8379E67AD3B75EAE74A580\ -E9827ABD6EB7A002CB5411F5266797768FB8E95AE40E3E8A01F35FF89E56C079:\ -52A1D96C8AC39E41E455809801B927A5B445C10D902A0DCD3850D22A66D2BB07\ -03E67D5867114595AABF5A7AEB5A8F87034BBB30E13CFD4817A9BE7623002360\ -6D0286A3FAF8A4D22B728EC518079F9E64526E3A0CC7941AA338C437997C680C\ -CAC67C66BFA1:FCA862068BCE2246724B708A0519DA17E648688C:\ -007F0030018F53CDC71F23D03659FDE54D4241F758A750B42F185F87578520C3\ -0742AFD84359B6E6E8D3ED959DC6FE486BEDC8E2CF001F63A7ABE16256A1B84D\ -F0D249FC05D3194CE5F0912742DBBF80DD174F6C51F6BAD7F16CF3364EBA095A\ -06267DC3793803AC7526AEBE0A475D38B8C2247AB51C4898DF7047DC6ADF52C6C4 - -10001:\ -01BD36E18ECE4B0FDB2E9C9D548BD1A7D6E2C21C6FDC35074A1D05B1C6C8B3D5\ -58EA2639C9A9A421680169317252558BD148AD215AAC550E2DCF12A82D0EBFE853:\ -01B1B656AD86D8E19D5DC86292B3A192FDF6E0DD37877BAD14822FA00190CAB2\ -65F90D3F02057B6F54D6ECB14491E5ADEACEBC48BF0EBD2A2AD26D402E54F61651:\ -594B37333BBB2C84524A87C1A01F75FCEC0E3256F108E38DCA36D70D0057:\ -F31AD6C8CF89DF78ED77FEACBCC2F8B0A8E4CFAA:\ -0088B135FB1794B6B96C4A3E678197F8CAC52B64B2FE907D6F27DE761124964A\ -99A01A882740ECFAED6C01A47464BB05182313C01338A8CD097214CD68CA103B\ -D57D3BC9E816213E61D784F182467ABF8A01CF253E99A156EAA8E3E1F90E3C6E\ -4E3AA2D83ED0345B89FAFC9C26077C14B6AC51454FA26E446E3A2F153B2B16797F - -10001:\ -01BD36E18ECE4B0FDB2E9C9D548BD1A7D6E2C21C6FDC35074A1D05B1C6C8B3D5\ -58EA2639C9A9A421680169317252558BD148AD215AAC550E2DCF12A82D0EBFE853:\ -01B1B656AD86D8E19D5DC86292B3A192FDF6E0DD37877BAD14822FA00190CAB2\ -65F90D3F02057B6F54D6ECB14491E5ADEACEBC48BF0EBD2A2AD26D402E54F61651:\ -8B769528884A0D1FFD090CF102993E796DADCFBDDD38E44FF6324CA451:\ -FCF9F0E1F199A3D1D0DA681C5B8606FC642939F7:\ -02A5F0A858A0864A4F65017A7D69454F3F973A2999839B7BBC48BF7864116917\ -9556F595FA41F6FF18E286C2783079BC0910EE9CC34F49BA681124F923DFA88F\ -426141A368A5F5A930C628C2C3C200E18A7644721A0CBEC6DD3F6279BDE3E8F2\ -BE5E2D4EE56F97E7CEAF33054BE7042BD91A63BB09F897BD41E81197DEE99B11AF - -10001:\ -01BD36E18ECE4B0FDB2E9C9D548BD1A7D6E2C21C6FDC35074A1D05B1C6C8B3D5\ -58EA2639C9A9A421680169317252558BD148AD215AAC550E2DCF12A82D0EBFE853:\ -01B1B656AD86D8E19D5DC86292B3A192FDF6E0DD37877BAD14822FA00190CAB2\ -65F90D3F02057B6F54D6ECB14491E5ADEACEBC48BF0EBD2A2AD26D402E54F61651:\ -1ABDBA489C5ADA2F995ED16F19D5A94D9E6EC34A8D84F84557D26E5EF9B02B22\ -887E3F9A4B690AD1149209C20C61431F0C017C36C2657B35D7B07D3F5AD87085\ -07A9C1B831DF835A56F831071814EA5D3D8D8F6ADE40CBA38B42DB7A2D3D7A29\ -C8F0A79A7838CF58A9757FA2FE4C40DF9BAA193BFC6F92B123AD57B07ACE3E6A\ -C068C9F106AFD9EEB03B4F37C25DBFBCFB3071F6F9771766D072F3BB070AF660\ -5532973AE25051:986E7C43DBB671BD41B9A7F4B6AFC80E805F2423:\ -0244BCD1C8C16955736C803BE401272E18CB990811B14F72DB964124D5FA7606\ -49CBB57AFB8755DBB62BF51F466CF23A0A1607576E983D778FCEFFA92DF7548A\ -EA8EA4ECAD2C29DD9F95BC07FE91ECF8BEE255BFE8762FD7690AA9BFA4FA0849\ -EF728C2C42C4532364522DF2AB7F9F8A03B63F7A499175828668F5EF5A29E3802C - -10001:\ -01BD36E18ECE4B0FDB2E9C9D548BD1A7D6E2C21C6FDC35074A1D05B1C6C8B3D5\ -58EA2639C9A9A421680169317252558BD148AD215AAC550E2DCF12A82D0EBFE853:\ -01B1B656AD86D8E19D5DC86292B3A192FDF6E0DD37877BAD14822FA00190CAB2\ -65F90D3F02057B6F54D6ECB14491E5ADEACEBC48BF0EBD2A2AD26D402E54F61651:\ -8FB431F5EE792B6C2AC7DB53CC428655AEB32D03F4E889C5C25DE683C461B53A\ -CF89F9F8D3AABDF6B9F0C2A1DE12E15B49EDB3919A652FE9491C25A7FCE1F722\ -C2543608B69DC375EC:F8312D9C8EEA13EC0A4C7B98120C87509087C478:\ -0196F12A005B98129C8DF13C4CB16F8AA887D3C40D96DF3A88E7532EF39CD992\ -F273ABC370BC1BE6F097CFEBBF0118FD9EF4B927155F3DF22B904D90702D1F7B\ -A7A52BED8B8942F412CD7BD676C9D18E170391DCD345C06A730964B3F30BCCE0\ -BB20BA106F9AB0EEB39CF8A6607F75C0347F0AF79F16AFA081D2C92D1EE6F836B8 - -10001:\ -01BD36E18ECE4B0FDB2E9C9D548BD1A7D6E2C21C6FDC35074A1D05B1C6C8B3D5\ -58EA2639C9A9A421680169317252558BD148AD215AAC550E2DCF12A82D0EBFE853:\ -01B1B656AD86D8E19D5DC86292B3A192FDF6E0DD37877BAD14822FA00190CAB2\ -65F90D3F02057B6F54D6ECB14491E5ADEACEBC48BF0EBD2A2AD26D402E54F61651:\ -FEF4161DFAAF9C5295051DFC1FF3810C8C9EC2E866F7075422C8EC4216A9C4FF\ -49427D483CAE10C8534A41B2FD15FEE06960EC6FB3F7A7E94A2F8A2E3E43DC4A\ -40576C3097AC953B1DE86F0B4ED36D644F23AE14425529622464CA0CBF0B1741\ -347238157FAB59E4DE5524096D62BAEC63AC64:\ -50327EFEC6292F98019FC67A2A6638563E9B6E2D:\ -021ECA3AB4892264EC22411A752D92221076D4E01C0E6F0DDE9AFD26BA5ACF6D\ -739EF987545D16683E5674C9E70F1DE649D7E61D48D0CAEB4FB4D8B24FBA84A6\ -E3108FEE7D0705973266AC524B4AD280F7AE17DC59D96D3351586B5A3BDB895D\ -1E1F7820AC6135D8753480998382BA32B7349559608C38745290A85EF4E9F9BD83 - -10001:\ -01BD36E18ECE4B0FDB2E9C9D548BD1A7D6E2C21C6FDC35074A1D05B1C6C8B3D5\ -58EA2639C9A9A421680169317252558BD148AD215AAC550E2DCF12A82D0EBFE853:\ -01B1B656AD86D8E19D5DC86292B3A192FDF6E0DD37877BAD14822FA00190CAB2\ -65F90D3F02057B6F54D6ECB14491E5ADEACEBC48BF0EBD2A2AD26D402E54F61651:\ -EFD237BB098A443AEEB2BF6C3F8C81B8C01B7FCB3FEB:\ -B0DE3FC25B65F5AF96B1D5CC3B27D0C6053087B3:\ -012FAFEC862F56E9E92F60AB0C77824F4299A0CA734ED26E0644D5D222C7F0BD\ -E03964F8E70A5CB65ED44E44D56AE0EDF1FF86CA032CC5DD4404DBB76AB85458\ -6C44EED8336D08D457CE6C03693B45C0F1EFEF93624B95B8EC169C616D20E553\ -8EBC0B6737A6F82B4BC0570924FC6B35759A3348426279F8B3D7744E2D222426CE - -10001:\ -029232336D2838945DBA9DD7723F4E624A05F7375B927A87ABE6A893A1658FD4\ -9F47F6C7B0FA596C65FA68A23F0AB432962D18D4343BD6FD671A5EA8D148413995:\ -020EF5EFE7C5394AED2272F7E81A74F4C02D145894CB1B3CAB23A9A0710A2AFC\ -7E3329ACBB743D01F680C4D02AFB4C8FDE7E20930811BB2B995788B5E872C20BB1:\ -9FB03B827C8217D9:ED7C98C95F30974FBE4FBDDCF0F28D6021C0E91D:\ -0323D5B7BF20BA4539289AE452AE4297080FEFF4518423FF4811A817837E7D82\ -F1836CDFAB54514FF0887BDDEEBF40BF99B047ABC3ECFA6A37A3EF00F4A0C4A8\ -8AAE0904B745C846C4107E8797723E8AC810D9E3D95DFA30FF4966F4D75D1376\ -8D20857F2B1406F264CFE75E27D7652F4B5ED3575F28A702F8C4ED9CF9B2D44948 - -10001:\ -029232336D2838945DBA9DD7723F4E624A05F7375B927A87ABE6A893A1658FD4\ -9F47F6C7B0FA596C65FA68A23F0AB432962D18D4343BD6FD671A5EA8D148413995:\ -020EF5EFE7C5394AED2272F7E81A74F4C02D145894CB1B3CAB23A9A0710A2AFC\ -7E3329ACBB743D01F680C4D02AFB4C8FDE7E20930811BB2B995788B5E872C20BB1:\ -0CA2AD77797ECE86DE5BF768750DDB5ED6A3116AD99BBD17EDF7F782F0DB1CD0\ -5B0F677468C5EA420DC116B10E80D110DE2B0461EA14A38BE68620392E7E893C\ -B4EA9393FB886C20FF790642305BF302003892E54DF9F667509DC53920DF583F\ -50A3DD61ABB6FAB75D600377E383E6ACA6710EEEA27156E06752C94CE25AE99F\ -CBF8592DBE2D7E27453CB44DE07100EBB1A2A19811A478ADBEAB270F94E8FE36\ -9D90B3CA612F9F:22D71D54363A4217AA55113F059B3384E3E57E44:\ -049D0185845A264D28FEB1E69EDAEC090609E8E46D93ABB38371CE51F4AA65A5\ -99BDAAA81D24FBA66A08A116CB644F3F1E653D95C89DB8BBD5DAAC2709C89840\ -00178410A7C6AA8667DDC38C741F710EC8665AA9052BE929D4E3B16782C16621\ -14C5414BB0353455C392FC28F3DB59054B5F365C49E1D156F876EE10CB4FD70598 - -10001:\ -029232336D2838945DBA9DD7723F4E624A05F7375B927A87ABE6A893A1658FD4\ -9F47F6C7B0FA596C65FA68A23F0AB432962D18D4343BD6FD671A5EA8D148413995:\ -020EF5EFE7C5394AED2272F7E81A74F4C02D145894CB1B3CAB23A9A0710A2AFC\ -7E3329ACBB743D01F680C4D02AFB4C8FDE7E20930811BB2B995788B5E872C20BB1:\ -288062AFC08FCDB7C5F8650B29837300461DD5676C17A20A3C8FB5148949E3F7\ -3D66B3AE82C7240E27C5B3EC4328EE7D6DDF6A6A0C9B5B15BCDA196A9D0C76B1\ -19D534D85ABD123962D583B76CE9D180BCE1CA:\ -4AF870FBC6516012CA916C70BA862AC7E8243617:\ -03FBC410A2CED59500FB99F9E2AF2781ADA74E13145624602782E2994813EEFC\ -A0519ECD253B855FB626A90D771EAE028B0C47A199CBD9F8E3269734AF416359\ -9090713A3FA910FA0960652721432B971036A7181A2BC0CAB43B0B598BC62174\ -61D7DB305FF7E954C5B5BB231C39E791AF6BCFA76B147B081321F72641482A2AAD - -10001:\ -029232336D2838945DBA9DD7723F4E624A05F7375B927A87ABE6A893A1658FD4\ -9F47F6C7B0FA596C65FA68A23F0AB432962D18D4343BD6FD671A5EA8D148413995:\ -020EF5EFE7C5394AED2272F7E81A74F4C02D145894CB1B3CAB23A9A0710A2AFC\ -7E3329ACBB743D01F680C4D02AFB4C8FDE7E20930811BB2B995788B5E872C20BB1:\ -6F4F9AB9501199CEF55C6CF408FE7B36C557C49D420A4763D2463C8AD44B3CFC\ -5BE2742C0E7D9B0F6608F08C7F47B693EE:\ -40D2E180FAE1EAC439C190B56C2C0E14DDF9A226:\ -0486644BC66BF75D28335A6179B10851F43F09BDED9FAC1AF33252BB9953BA42\ -98CD6466B27539A70ADAA3F89B3DB3C74AB635D122F4EE7CE557A61E59B82FFB\ -786630E5F9DB53C77D9A0C12FAB5958D4C2CE7DAA807CD89BA2CC7FCD02FF470\ -CA67B229FCCE814C852C73CC93BEA35BE68459CE478E9D4655D121C8472F371D4F - -10001:\ -029232336D2838945DBA9DD7723F4E624A05F7375B927A87ABE6A893A1658FD4\ -9F47F6C7B0FA596C65FA68A23F0AB432962D18D4343BD6FD671A5EA8D148413995:\ -020EF5EFE7C5394AED2272F7E81A74F4C02D145894CB1B3CAB23A9A0710A2AFC\ -7E3329ACBB743D01F680C4D02AFB4C8FDE7E20930811BB2B995788B5E872C20BB1:\ -E17D20385D501955823C3F666254C1D3DD36AD5168B8F18D286FDCF67A7DAD94\ -097085FAB7ED86FE2142A28771717997EF1A7A08884EFC39356D76077AAF8245\ -9A7FAD45848875F2819B098937FE923BCC9DC442D72D754D812025090C9BC03D\ -B3080C138DD63B355D0B4B85D6688AC19F4DE15084A0BA4E373B93EF4A555096\ -691915DC23C00E954CDEB20A47CD55D16C3D8681D46ED7F2ED5EA42795BE17BA\ -ED25F0F4D113B3636ADDD585F16A8B5AEC0C8FA9C5F03CBF3B9B73:\ -2497DC2B4615DFAE5A663D49FFD56BF7EFC11304:\ -022A80045353904CB30CBB542D7D4990421A6EEC16A8029A8422ADFD22D6AFF8\ -C4CC0294AF110A0C067EC86A7D364134459BB1AE8FF836D5A8A2579840996B32\ -0B19F13A13FAD378D931A65625DAE2739F0C53670B35D9D3CBAC08E733E4EC2B\ -83AF4B9196D63E7C4FF1DDEAE2A122791A125BFEA8DEB0DE8CCF1F4FFAF6E6FB0A - -10001:\ -029232336D2838945DBA9DD7723F4E624A05F7375B927A87ABE6A893A1658FD4\ -9F47F6C7B0FA596C65FA68A23F0AB432962D18D4343BD6FD671A5EA8D148413995:\ -020EF5EFE7C5394AED2272F7E81A74F4C02D145894CB1B3CAB23A9A0710A2AFC\ -7E3329ACBB743D01F680C4D02AFB4C8FDE7E20930811BB2B995788B5E872C20BB1:\ -AFBC19D479249018FDF4E09F618726440495DE11DDEEE38872D775FCEA74A238\ -96B5343C9C38D46AF0DBA224D047580CC60A65E9391CF9B59B36A860598D4E82\ -16722F993B91CFAE87BC255AF89A6A199BCA4A391EADBC3A24903C0BD667368F\ -6BE78E3FEABFB4FFD463122763740FFBBEFEAB9A25564BC5D1C24C93E422F750\ -73E2AD72BF45B10DF00B52A147128E73FEE33FA3F0577D77F80FBC2DF1BED313\ -290C12777F50:A334DB6FAEBF11081A04F87C2D621CDEC7930B9B:\ -00938DCB6D583046065F69C78DA7A1F1757066A7FA75125A9D2929F0B79A60B6\ -27B082F11F5B196F28EB9DAA6F21C05E5140F6AEF1737D2023075C05ECF04A02\ -8C686A2AB3E7D5A0664F295CE12995E890908B6AD21F0839EB65B70393A7B5AF\ -D9871DE0CAA0CEDEC5B819626756209D13AB1E7BB9546A26FF37E9A51AF9FD562E - -10001:\ -03F2F331F4142D4F24B43AA10279A89652D4E7537221A1A7B2A25DEB551E5DE9\ -AC497411C227A94E45F91C2D1C13CC046CF4CE14E32D058734210D44A87EE1B73F:\ -034F090D73B55803030CF0361A5D8081BFB79F851523FEAC0A2124D08D4013FF\ -08487771A870D0479DC0686C62F7718DFECF024B17C9267678059171339CC00839:\ -30C7D557458B436DECFDC14D06CB7B96B06718C48D7DE57482A868AE7F065870\ -A6216506D11B779323DFDF046CF5775129134B4D5689E4D9C0CE1E12D7D4B06C\ -B5FC5820DECFA41BAF59BF257B32F025B7679B445B9499C92555145885992F1B\ -76F84891EE4D3BE0F5150FD5901E3A4C8ED43FD36B61D022E65AD5008DBF3329\ -3C22BFBFD07321F0F1D5FA9FDF0014C2FCB0358AAD0E354B0D29:\ -081B233B43567750BD6E78F396A88B9F6A445151:\ -0BA373F76E0921B70A8FBFE622F0BF77B28A3DB98E361051C3D7CB92AD045291\ -5A4DE9C01722F6823EEB6ADF7E0CA8290F5DE3E549890AC2A3C5950AB217BA58\ -590894952DE96F8DF111B2575215DA6C161590C745BE612476EE578ED384AB33\ -E3ECE97481A252F5C79A98B5532AE00CDD62F2ECC0CD1BAEFE80D80B962193EC1D - -10001:\ -03F2F331F4142D4F24B43AA10279A89652D4E7537221A1A7B2A25DEB551E5DE9\ -AC497411C227A94E45F91C2D1C13CC046CF4CE14E32D058734210D44A87EE1B73F:\ -034F090D73B55803030CF0361A5D8081BFB79F851523FEAC0A2124D08D4013FF\ -08487771A870D0479DC0686C62F7718DFECF024B17C9267678059171339CC00839:\ -328C659E0A6437433CCEB73C14:\ -9AEC4A7480D5BBC42920D7CA235DB674989C9AAC:\ -0BC989853BC2EA86873271CE183A923AB65E8A53100E6DF5D87A24C4194EB797\ -813EE2A187C097DD872D591DA60C568605DD7E742D5AF4E33B11678CCB639032\ -04A3D080B0902C89ABA8868F009C0F1C0CB85810BBDD29121ABB8471FF2D39E4\ -9FD92D56C655C8E037AD18FAFBDC92C95863F7F61EA9EFA28FEA401369D19DAEA1 - -10001:\ -04F0548C9626AB1EBF1244934741D99A06220EFA2A5856AA0E75730B2EC96ADC\ -86BE894FA2803B53A5E85D276ACBD29AB823F80A7391BB54A5051672FB04EEB543:\ -0483E0AE47915587743FF345362B555D3962D98BB6F15F848B4C92B1771CA8ED\ -107D8D3EE65EC44517DD0FAA481A387E902F7A2E747C269E7EA44480BC538B8E5B:\ -0F6195D04A6E6FC7E2C9600DBF840C39EA8D4D624FD53507016B0E26858A5E0A\ -ECD7ADA543AE5C0AB3A62599CBA0A54E6BF446E262F989978F9DDF5E9A41:\ -A87B8AED07D7B8E2DAF14DDCA4AC68C4D0AABFF8:\ -086DF6B500098C120F24FF8423F727D9C61A5C9007D3B6A31CE7CF8F3CBEC1A2\ -6BB20E2BD4A046793299E03E37A21B40194FB045F90B18BF20A47992CCD799CF\ -9C059C299C0526854954AADE8A6AD9D97EC91A1145383F42468B231F4D72F237\ -06D9853C3FA43CE8ACE8BFE7484987A1EC6A16C8DAF81F7C8BF42774707A9DF456 - -10001:\ -04F0548C9626AB1EBF1244934741D99A06220EFA2A5856AA0E75730B2EC96ADC\ -86BE894FA2803B53A5E85D276ACBD29AB823F80A7391BB54A5051672FB04EEB543:\ -0483E0AE47915587743FF345362B555D3962D98BB6F15F848B4C92B1771CA8ED\ -107D8D3EE65EC44517DD0FAA481A387E902F7A2E747C269E7EA44480BC538B8E5B:\ -9906D89F97A9FDEDD3CCD824DB687326F30F00AA25A7FCA2AFCB3B0F86CD41E7\ -3F0E8FF7D2D83F59E28ED31A5A0D551523374DE22E4C7E8FF568B386EE3DC411\ -63F10BF67BB006261C9082F9AF90BF1D9049A6B9FAE71C7F84FBE6E55F02789D\ -E774F230F115026A4B4E96C55B04A95DA3AACBB2CECE8F81764A1F1C99515411\ -087CF7D34AEDED0932C183:FBBE059025B69B89FB14AE2289E7AAAFE60C0FCD:\ -0A40A16E2FE2B38D1DF90546167CF9469C9E3C3681A3442B4B2C2F581DEB385C\ -E99FC6188BB02A841D56E76D301891E24560550FCC2A26B55F4CCB26D837D350\ -A154BCACA8392D98FA67959E9727B78CAD03269F56968FC56B68BD679926D83C\ -C9CB215550645CCDA31C760FF35888943D2D8A1D351E81E5D07B86182E751081EF - -10001:\ -07EEFB424B0E3A40E4208EE5AFB280B22317308114DDE0B4B64F730184EC68DA\ -6CE2867A9F48ED7726D5E2614ED04A5410736C8C714EE702474298C6292AF07535:\ -070830DBF947EAC0228DE26314B59B66994CC60E8360E75D3876298F8F8A7D14\ -1DA064E5CA026A973E28F254738CEE669C721B034CB5F8E244DADD7CD1E159D547:\ -8D80D2D08DBD19C154DF3F14673A14BD03735231F24E86BF153D0E69E74CBFF7\ -B1836E664DE83F680124370FC0F96C9B65C07A366B644C4AB3:\ -0C09582266DF086310821BA7E18DF64DFEE6DE09:\ -10FD89768A60A67788ABB5856A787C8561F3EDCF9A83E898F7DC87AB8CCE7942\ -9B43E56906941A886194F137E591FE7C339555361FBBE1F24FEB2D4BCDB80601\ -F3096BC9132DEEA60AE13082F44F9AD41CD628936A4D51176E42FC59CB76DB81\ -5CE5AB4DB99A104AAFEA68F5D330329EBF258D4EDE16064BD1D00393D5E1570EB8 - -10001:\ -07EEFB424B0E3A40E4208EE5AFB280B22317308114DDE0B4B64F730184EC68DA\ -6CE2867A9F48ED7726D5E2614ED04A5410736C8C714EE702474298C6292AF07535:\ -070830DBF947EAC0228DE26314B59B66994CC60E8360E75D3876298F8F8A7D14\ -1DA064E5CA026A973E28F254738CEE669C721B034CB5F8E244DADD7CD1E159D547:\ -45013CEBAFD960B255476A8E2598B9AA32EFBE6DC1F34F4A498D8CF5A2B4548D\ -08C55D5F95F7BCC9619163056F2D58B52FA032:\ -9D5AD8EB452134B65DC3A98B6A73B5F741609CD6:\ -07EB651D75F1B52BC263B2E198336E99FBEBC4F332049A922A10815607EE2D98\ -9DB3A4495B7DCCD38F58A211FB7E193171A3D891132437EBCA44F318B280509E\ -52B5FA98FCCE8205D9697C8EE4B7FF59D4C59C79038A1970BD2A0D451ECDC5EF\ -11D9979C9D35F8C70A6163717607890D586A7C6DC01C79F86A8F28E85235F8C2F1 - -10001:\ -08DAD7F11363FAA623D5D6D5E8A319328D82190D7127D2846C439B0AB72619B0\ -A43A95320E4EC34FC3A9CEA876422305BD76C5BA7BE9E2F410C8060645A1D29EDB:\ -0847E732376FC7900F898EA82EB2B0FC418565FDAE62F7D9EC4CE2217B97990D\ -D272DB157F99F63C0DCBB9FBACDBD4C4DADB6DF67756358CA4174825B48F49706D:\ -E2F96EAF0E05E7BA326ECCA0BA7FD2F7C02356F3CEDE9D0FAABF4FCC8E60A973\ -E5595FD9EA08:435C098AA9909EB2377F1248B091B68987FF1838:\ -2707B9AD5115C58C94E932E8EC0A280F56339E44A1B58D4DDCFF2F312E5F34DC\ -FE39E89C6A94DCEE86DBBDAE5B79BA4E0819A9E7BFD9D982E7EE6C86EE68396E\ -8B3A14C9C8F34B178EB741F9D3F121109BF5C8172FADA2E768F9EA1433032C00\ -4A8AA07EB990000A48DC94C8BAC8AABE2B09B1AA46C0A2AA0E12F63FBBA775BA7E - -10001:\ -08DAD7F11363FAA623D5D6D5E8A319328D82190D7127D2846C439B0AB72619B0\ -A43A95320E4EC34FC3A9CEA876422305BD76C5BA7BE9E2F410C8060645A1D29EDB:\ -0847E732376FC7900F898EA82EB2B0FC418565FDAE62F7D9EC4CE2217B97990D\ -D272DB157F99F63C0DCBB9FBACDBD4C4DADB6DF67756358CA4174825B48F49706D:\ -04DC251BE72E88E5723485B6383A637E2FEFE07660C519A560B8BC18BDEDB86E\ -AE2364EA53BA9DCA6EB3D2E7D6B806AF42B3E87F291B4A8881D5BF572CC9A85E\ -19C86ACB28F098F9DA0383C566D3C0F58CFD8F395DCF602E5CD40E8C7183F714\ -996E2297EF:C558D7167CBB4508ADA042971E71B1377EEA4269:\ -33341BA3576A130A50E2A5CF8679224388D5693F5ACCC235AC95ADD68E5EB1EE\ -C31666D0CA7A1CDA6F70A1AA762C05752A51950CDB8AF3C5379F18CFE6B5BC55\ -A4648226A15E912EF19AD77ADEEA911D67CFEFD69BA43FA4119135FF642117BA\ -985A7E0100325E9519F1CA6A9216BDA055B5785015291125E90DCD07A2CA9673EE - -10001:\ -CFD50283FEEEB97F6F08D73CBC7B3836F82BBCD499479F5E6F76FDFCB8B38C4F\ -71DC9E88BD6A6F76371AFD65D2AF1862B32AFB34A95F71B8B132043FFEBE3A95\ -2BAF7592448148C03F9C69B1D68E4CE5CF32C86BAF46FED301CA1AB403069B32\ -F456B91F71898AB081CD8C4252EF5271915C9794B8F295851DA7510F99CB73EB:\ -CC4E90D2A1B3A065D3B2D1F5A8FCE31B544475664EAB561D2971B99FB7BEF844\ -E8EC1F360B8C2AC8359692971EA6A38F723FCC211F5DBCB177A0FDAC5164A1D4\ -FF7FBB4E829986353CB983659A148CDD420C7D31BA3822EA90A32BE46C030E8C\ -17E1FA0AD37859E06B0AA6FA3B216D9CBE6C0E22339769C0A615913E5DA719CF:\ -883177E5126B9BE2D9A9680327D5370C6F26861F5820C43DA67A3AD609:\ -04E215EE6FF934B9DA70D7730C8734ABFCECDE89:\ -82C2B160093B8AA3C0F7522B19F87354066C77847ABF2A9FCE542D0E84E920C5\ -AFB49FFDFDACE16560EE94A1369601148EBAD7A0E151CF16331791A5727D05F2\ -1E74E7EB811440206935D744765A15E79F015CB66C532C87A6A05961C8BFAD74\ -1A9A6657022894393E7223739796C02A77455D0F555B0EC01DDF259B6207FD0F\ -D57614CEF1A5573BAAFF4EC00069951659B85F24300A25160CA8522DC6E6727E\ -57D019D7E63629B8FE5E89E25CC15BEB3A647577559299280B9B28F79B040900\ -0BE25BBD96408BA3B43CC486184DD1C8E62553FA1AF4040F60663DE7F5E49C04\ -388E257F1CE89C95DAB48A315D9B66B1B7628233876FF2385230D070D07E1666 - -# These have specially constructed seeds that result in leading -# bytes of the output being 0 (this was a problem in version prior -# to 0.8.7) -10001:\ -D32737E7267FFE1341B2D5C0D150A81B586FB3132BED2F8D5262864A9CB9F30A\ -F38BE448598D413A172EFB802C21ACF1C11C520C2F26A471DCAD212EAC7CA39D:\ -CC8853D1D54DA630FAC004F471F281C7B8982D8224A490EDBEB33D3E3D5CC93C\ -4765703D1DD791642F1F116A0DD852BE2419B2AF72BFE9A030E860B0288B5D77:\ -454D5341342074657374206F66206C656164696E67203073:\ -5C7F7F0932FC4FF8555C3875CE3A0F86BF5B744E:\ -049C40560875766E164A89B2D19D91EF2AABAB4AC182657CAD93680319D8CDBE\ -3CABCF3E87BF41C16013AC4E3D2DEBFB8F89E9E057012B8EDFD0310E24E2BBF4\ -3D54B2664DF3AC82D7E8913ABE29D0A022277EB74D2E0C8C5F4C3F46FABB35D9\ -32A4A713A82FC9464581D9B1F43A2AFB9AB8177DEE8C38CC9F15A7E8F3F9B4D3 - -10001:\ -D32737E7267FFE1341B2D5C0D150A81B586FB3132BED2F8D5262864A9CB9F30A\ -F38BE448598D413A172EFB802C21ACF1C11C520C2F26A471DCAD212EAC7CA39D:\ -CC8853D1D54DA630FAC004F471F281C7B8982D8224A490EDBEB33D3E3D5CC93C\ -4765703D1DD791642F1F116A0DD852BE2419B2AF72BFE9A030E860B0288B5D77:\ -454D5341342074657374206F66206C656164696E67203073:\ -B0E37FD9119056FBC17F9C726B0AE7829350F93D:\ -82E54D1CD28D562D85DD3774636C65313CF26628076FC16A4D25AACCB566FCC8\ -77401BB44DFCB8ADBC6E595D515146D227E9AE6D4D585759F435642DFF2BB1EA\ -3AC72E633C05FB3DC0D8E63395099D5A535DF6EA89341E36D73808D5116299EE\ -C827BB2B6C3141AC0A5698DCDC252B7EDC3A5C24DE75287EEB60F45A37DFBEA3 - -10001:\ -D32737E7267FFE1341B2D5C0D150A81B586FB3132BED2F8D5262864A9CB9F30A\ -F38BE448598D413A172EFB802C21ACF1C11C520C2F26A471DCAD212EAC7CA39D:\ -CC8853D1D54DA630FAC004F471F281C7B8982D8224A490EDBEB33D3E3D5CC93C\ -4765703D1DD791642F1F116A0DD852BE2419B2AF72BFE9A030E860B0288B5D77:\ -454D5341342074657374206F66206C656164696E67203073:\ -E4AE5BB1DD6DF73F8F75E441DA531F0E493AC0A7:\ -8A64E30AEC76B278B08FF3BF61B7FF439DC2B0F6B789459F1386C0FBF24AF863\ -EFC5A58C5E9CB841EA08D2E22E40293B1876BBB976947038AEEAA36B1751FF97\ -13B9F7BD306D9360CC8D78B7A607F9CA7B4C18C308D85330E534337998D97D6F\ -70F828D6AD1C9C7F6916476127993E4E6F7D596BA6C246F0EB7312A02D09BFB3 - -[RSAVA/Raw] -# The key that generated this signature isn't valid by PKCS #1 rules, -# because the private exponent was set to (p-1)*(q-1) instead of -# lcm(p-1,q-1). So if we generated a key with similiar exponent and -# modulus, we'd use a different private exponent and thus generate a -# different signature here. But it still will verify, so test that. - -10001:\ -A8AE5BF022EE5183FCD4C4DC3E2BE75F0641308FF7A066597A89CB55B2975AA1\ -4CAC475FEF9EC736186BA28E4B5D7B8F7CFA605B9A53DA5C1584F07663678940\ -1CC0D0CD65CC85962C228DC5E89CC496067859FB5EA9F579EC9F5643444A28A7\ -9000F9ADD1F9B7849EAA3FD3FC5DC002BCA413D7EBF8E6C9392AB5E40C09470D\ -21A9C705732EB027075836692FA90A997B4939799085C5E6E896BC35D58B857B\ -9A9D0CF32D9C0E4B7AF6ABCF501E5D6D55E2987E22586CDB964BF11F3F54740B\ -E31337E539D48780D9192B22CBCEBCE2228CA9668ACD6292207E02AE7A77E576\ -BC811E3DB0FA56D5FFE53EE6C715F2973A70C29AF72AA6BFFC985F2DC5E9369D:\ -0001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0068656C6C6F20776F726C64:\ -A88A260DF63E7241BFB42C05F50B5FF470CEB7B4E47353C94C0EBF620309841F\ -CD84FFA08B164411CA9D2066FA02D8223AC19250212409E241446C22C9B85B23\ -38E6C8545E722427FB6798EAD8488106B01F15EE3E8574C85DCCFD407FAAD4F7\ -05D397551E4BF32CE484DE76514DBF805B5361CB3B1B221FE3AD12734E8542D4\ -B4D53962D0B0A80B11DC789EC08B050F28CB75363B8BD1F545839953271DB734\ -0C749C3B979C0A11C46E9D590446C8D3B75907B3F0B3F164A8F72D302B383B2B\ -D1248E9D86EAEBEBCB0623FAEA616CDE51CFFE5BE3D0BF140F053B05B6A17B6A\ -4F7B733F0042DC9AF4EA737031DB170EB5F691859B5EDA13C82B8EE69D7B2732 - -# These test verification with various seed sizes. Botan cannot actually create -# such a signature, since seed sizes != size of hash are not allowed. These -# were created by some RSA PSS test code, with various salt sizes. This is not -# an exhautive test (obviously), but from this, and a careful reading of -# emsa4.cpp, it looks like Botan's EMSA4 will accept any valid EMSA4 message -# representative. - -# Format for verification: e:n:message:signature -[RSAVA/EMSA4(SHA-1)] -# No salt -10001:\ -AABBFB1E4E6F15D4D59E50C25998870956ED9E822D3DD899CAB0FA597B4D1C0E\ -61997501FD1C6E9D756BDCBE9BF49C7FA32926F3FDB387D83296BE35EF360872\ -350AE98C934D760BE7A933CFE85DFB99621D32105AC89496C9F001FE9CEAB097\ -C8DD55D6FD3D913496106BB04F265ED12F8ACD5F4B3FD7129809CA8D80E2E1D3:\ -B841D0374D3C86E67B67BDF00B:\ -1060A74E3EF067A9B17754500B16B8C9F6B3B453FB290C71FCAE779DD37A6B9A\ -24A45D1560DF5E4BC31143E6197AB15684236D8FE578E022495897F70451FD90\ -2BFA5703947EDFF0B63BF1140C63AE1C8D369A87B192E8BF6A3D486E909C3979\ -703806010367CA0E0026F8920EA766B7E3759E23954D0EC2F746E6046FC14758 - -# No salt -10001:\ -AABBFB1E4E6F15D4D59E50C25998870956ED9E822D3DD899CAB0FA597B4D1C0E\ -61997501FD1C6E9D756BDCBE9BF49C7FA32926F3FDB387D83296BE35EF360872\ -350AE98C934D760BE7A933CFE85DFB99621D32105AC89496C9F001FE9CEAB097\ -C8DD55D6FD3D913496106BB04F265ED12F8ACD5F4B3FD7129809CA8D80E2E1D3:\ -0F1D14F9:\ -7D4F2EE63FF4B46A09EBB8F9E2F58B4634234B890F7270FDF3454CD2EEAF1BAC\ -AC3516BB5D0F678365E5226034032D6AD49069ED9C7B8BE471BFC6D9BBE3327C\ -BA545675212A5552948524E52567FCE84D9D211191AAB864153C08DFC7576703\ -C21FB9315578A0F1C167FF4D2B810578DC98FBC1235A4CD62ED89BD092C31C00 - -# 1 byte salt -10001:\ -A7DB819EAAF3E6876B927ED6EEA94B97E20D06753C7555A7440631216FF4E943\ -720DE7BE6364B8DE17E663705549051F04141D8612214BC269CC09FBDF1F561E\ -474A2ECA28ADDE3530CA339015F23CEE63750C508A1416FE5D1AEF5AA09BBA7F\ -36CFC02874B15DCA913E35B52B281D32B1CEBD22EAF3C629123988FE78FD0561:\ -AEAD5A03023E17D894226CB2C7C77D5D4341E8BF7F1453140D58B427B40B0B18A9:\ -27ABB6E27D9DBA0F9E5DB3607BF04E20112150A779EAF67D4AA76D50A6060F70\ -03BB33BE5A580789E567C3768AF938BDBADE712F7344B72655118636095EA8D6\ -97888B9382BF3030D56A685079980A992A9BED3AF0DC81AE4316AF31681A3BDD\ -78CC4E83FD3C227A9984C261ADF36D201AA417243A28BA47488BD81CB1DA63A4 - -# 2 byte salt -10001:\ -AABBFB1E4E6F15D4D59E50C25998870956ED9E822D3DD899CAB0FA597B4D1C0E\ -61997501FD1C6E9D756BDCBE9BF49C7FA32926F3FDB387D83296BE35EF360872\ -350AE98C934D760BE7A933CFE85DFB99621D32105AC89496C9F001FE9CEAB097\ -C8DD55D6FD3D913496106BB04F265ED12F8ACD5F4B3FD7129809CA8D80E2E1D3:\ -6A4BAEE539612920ECB3075EF6C31BD7EEA01F43:\ -36F7211C290577ED0CF54007551BA65943C388BF2AE58F12E8BF7B6E7339348F\ -2534E7515232D0AD72AD8F6EA173FA3D21DE13D392DE10C457DDA7C569AAAE17\ -0C8806A3ACA457461EFBAA7EC870947ABE2D5A91821B9254EA34A74E95E7648E\ -D98A7ACD2300D4FC88C8B968E0AE68DF9BFF849E53AF03A2E12965C1453AAFC4 - -# 3 byte salt -10001:\ -CB6484FE402A7E96E3E43AC26CBF3FED47FBDF6921D40072FC27FA110CFF8D94\ -EDAC5E119D0801CEC89875BBB6FBD838BD0FB7F7F7FA62FAEA798CC6975F43ED\ -CADA7947BABA41DBDEB321E273C870973A9E741791380886B4B131165EDDFCF4\ -F162E17AD36E8D7A763502920527DFA9CDFF0D1046914195D2924D4075DEA235:\ -0F50:\ -707E1B680D4D7E2CD102ED7AF2B63AE63CAD9266476418F330FB739FD052A777\ -4A0182624E81C3AD14C12BA5BA1D99315217D84EA1FAABF4A90E7CFF19875351\ -46D4944AE27E2C84F313E5E5A22C5B86A88333DBBC4D17425F180C6B0F4BFD3E\ -9F03DE21B422EC125DA6FF2835A93CEBED8C1283568E04BB634CAC410D144B91 - -# 4 byte salt -10001:\ -A7DB819EAAF3E6876B927ED6EEA94B97E20D06753C7555A7440631216FF4E943\ -720DE7BE6364B8DE17E663705549051F04141D8612214BC269CC09FBDF1F561E\ -474A2ECA28ADDE3530CA339015F23CEE63750C508A1416FE5D1AEF5AA09BBA7F\ -36CFC02874B15DCA913E35B52B281D32B1CEBD22EAF3C629123988FE78FD0561:\ -5C3DB99915C8F7EEACB045ECBB7C35C06D4ED5A96AA9025A49093B70D7C2EDD4\ -85930D18DEB57C0282563F2B07FBA63245FDC773CF851985475DFB4F6FA335BE\ -1B4C2C28A294E84E50172AA585B382BE1E1038FBD02F2BD37691D85A18346AD0\ -4CC81948698FF248CFAF33E222EA8B5FCAEC0E5AA8F753521EC47BCB756E05CF\ -95E4365E06A69BB6C99A34A62939B478AC1209FFACC49BA4027749801D4A9F58\ -3395B34340:\ -9705B191BE8BD52D3E6CA1743DACDA5EDC1C7665B6EBC769A5983BB74D2F52C7\ -9F94954DC8CAB9A44FB3B387A0FF2843311CDA640DC39BA975518B511DF87064\ -B17709804D707DA08A315F14D24CF6385310A62D7F6C47689B66C4A12F449FC9\ -5796F1821EA6838DE2941D0725B55EC860CB553B36878C2BA3994DCD0A8992FF - -# 5 byte salt -10001:\ -CB6484FE402A7E96E3E43AC26CBF3FED47FBDF6921D40072FC27FA110CFF8D94\ -EDAC5E119D0801CEC89875BBB6FBD838BD0FB7F7F7FA62FAEA798CC6975F43ED\ -CADA7947BABA41DBDEB321E273C870973A9E741791380886B4B131165EDDFCF4\ -F162E17AD36E8D7A763502920527DFA9CDFF0D1046914195D2924D4075DEA235:\ -F1FE75913B7A152626C287B1287B6ED4A04EB546950C0414B2D7AAF82DF8F255\ -E08E20A2CACD2399C4304FD9F77B9CF8B2A244C15ABC25DCFE1B144F2B125AF7\ -91B05877E11BEAF3ECC75FC9:\ -87337D2D71F36C4452216459D55586634D755C84D9D8F80D058E029A1CB61A6D\ -4819E3993B623AF90FF915AC585AE6088DF7565A2A205D6282252EA0863A7F12\ -F07A06189F2E2C4EC6B27EBDF3955ADC7C85B803C612D44B9EA5D5FC0B7F15D8\ -AC704D83DEC3D8F84808C2AA5F984FD06D1456B4EF875C33A7346051514DCECC - -# 6 byte salt -10001:\ -CB6484FE402A7E96E3E43AC26CBF3FED47FBDF6921D40072FC27FA110CFF8D94\ -EDAC5E119D0801CEC89875BBB6FBD838BD0FB7F7F7FA62FAEA798CC6975F43ED\ -CADA7947BABA41DBDEB321E273C870973A9E741791380886B4B131165EDDFCF4\ -F162E17AD36E8D7A763502920527DFA9CDFF0D1046914195D2924D4075DEA235:\ -04F7B2C9BEEE7F00FD42C651A3492E6F61816AB3B0903477CFB49B2DDE8AB64D\ -898019C6C937FE653A92C1BD992A3304F357:\ -14949A71A7AF9EC4364DDF90E5A7C4283F8FEF7DD3A544FFA4B1BCEC5FEA6C21\ -4FE7C9105393E72D308CA0994F6F900479219439B8FDC850E15404C024AB757B\ -F7DDF35B0CEC668AEAAAB5039EC81F739C160DD57B26ACDECE905F608AB0396F\ -9DE8F99A53F765D37FB625C8E90C68B4E5B32AEF48C0FDA39B7314FCE942A9E9 - -# 7 byte salt -10001:\ -A7DB819EAAF3E6876B927ED6EEA94B97E20D06753C7555A7440631216FF4E943\ -720DE7BE6364B8DE17E663705549051F04141D8612214BC269CC09FBDF1F561E\ -474A2ECA28ADDE3530CA339015F23CEE63750C508A1416FE5D1AEF5AA09BBA7F\ -36CFC02874B15DCA913E35B52B281D32B1CEBD22EAF3C629123988FE78FD0561:\ -71D2C0843ACA68C291953E66:\ -4C22BC81446B062A561D9A922E959036E7763B0803DD84168C48AC51DBE79A12\ -9D017E22BF9DA19996C09BE7369C4F0808ACC2E708DFF48AA2AD41EF78F5F97B\ -914FFE079BE9F9D30E67049BA28BEE714FE622A18A3524FC7E58ED7C451714F1\ -4718F4475814B6D9A6590845D9CF6FEA2DCD313CFD580B47D5BEF6960CB0E463 - -# 9 byte salt -10001:\ -A8802DFF63A68E53D5B4AEFDF9BFBDDC2F3FF809D248CBC4AA250AE710830671\ -4ECD4BA4C465298C7E7EFAAD9ED969BDD23D851D31BAD61FA942B24A60D34469\ -F2774133D488E82E66B01FE4C7C8CDF95CB194D721FBE3B98FFC61D31F07D8CE\ -E32318EFF73E374755CBCB3785D93772A414DA3C25B240B16F40C83723448861:\ -9D5116B54CBA7970742B66BE6924D122A1D7E570F037DA06B29A2B34175C8F94\ -28D1E8E908EF492892AFD6B08019EED0123F32B74D04324DDB98171ADE66347C\ -1FFB56BD1B05E1CECE2ADD838BD95CDEB74E36A51B69F2602322593462182437\ -AF357BB63EF748F45CDDB66BE5357E9701C8B21C6613857432CB99C91CDFCB72\ -54D087B361CCF05E77AF961F023E83416D9FF539A572A5C89117FE1506AF6633\ -5321A0CB7BF096DA0590D2E79FA60DD7A38B9DF2D352673F5A31A873111E3C8D:\ -A73BC3BD89ADF92FF2B8EE3B5430849301C322074696BD58FCA3D0C113BC9CD7\ -9D6D822FCE31ABF1C276C1272D045E5FD92BAE9FBC07EE54742D3342A2B03E85\ -47B1DC94E86C5D08A13708780952498CE3EF3B07710E5777683C9630821248A9\ -D38BEC8AB7C77DF1CA6E695F0289443C13A8A4834D97CE6DCBB6782A70F866B1 - -# 10 byte salt -10001:\ -A7DB819EAAF3E6876B927ED6EEA94B97E20D06753C7555A7440631216FF4E943\ -720DE7BE6364B8DE17E663705549051F04141D8612214BC269CC09FBDF1F561E\ -474A2ECA28ADDE3530CA339015F23CEE63750C508A1416FE5D1AEF5AA09BBA7F\ -36CFC02874B15DCA913E35B52B281D32B1CEBD22EAF3C629123988FE78FD0561:\ -75352B85B47E73B18E8CD9608354ACCA4DF8E2B73313C681A8119D6578CAF8F9\ -A52EB4710B97D334D2CD49C365BC0E0BB89D63CEBE3EC62055E7948C9DF696B4\ -06EAB60881B0371F5AE092D0A43ED9AD307D026B2CB6477AF5ACC32919D470C3\ -9C9BAA71B0FA78F8687BF762C399407BB39C59727AF3B61DF3EA486E473D4CC8\ -D67805E8810F:\ -7F51B49FA57C4EC7AC72A90C9EBB51F6E21E3B6EE67E6DE32119AC9FCF97FB19\ -09F74491CDE182ECBED994B66EEC44AC817A8F620444BB6520A3A223BE4AFA78\ -B50F11C057FA4F4835D55283157F5C8AE60A2A46D0CB9D4BE3411FD3505F0FAC\ -5202ED1C0629575B59001488B30E9F12E738F2B388C7EF8A82684CBA43115010 - -# 11 byte salt -10001:\ -A7DB819EAAF3E6876B927ED6EEA94B97E20D06753C7555A7440631216FF4E943\ -720DE7BE6364B8DE17E663705549051F04141D8612214BC269CC09FBDF1F561E\ -474A2ECA28ADDE3530CA339015F23CEE63750C508A1416FE5D1AEF5AA09BBA7F\ -36CFC02874B15DCA913E35B52B281D32B1CEBD22EAF3C629123988FE78FD0561:\ -DA40B3B401DEED4DBCC3848CC729C8B5FD169A140914C40FEB752E2D3F2F7EFA\ -A97CE26BABE4099BDBBAA522BB09DB37A1D06CB53A3BF7D621:\ -328E325D4F95D0013019B97F5936EBB347F1E5B01A559560518C1C47DC044343\ -92BD2168DA08668E4EEA9A06A5CED7C9076BF7CAC667503FE6B7903953958BAB\ -B31EE9B29E356274F7136F35F5224A1BF50F3663D002B6220C3EA8572C1368D1\ -1D3C6DD6E1F3D700811257EF8B46246C2A6A975C08DEA782003F5CD45703FD22 - -# 16 byte salt -10001:\ -AABBFB1E4E6F15D4D59E50C25998870956ED9E822D3DD899CAB0FA597B4D1C0E\ -61997501FD1C6E9D756BDCBE9BF49C7FA32926F3FDB387D83296BE35EF360872\ -350AE98C934D760BE7A933CFE85DFB99621D32105AC89496C9F001FE9CEAB097\ -C8DD55D6FD3D913496106BB04F265ED12F8ACD5F4B3FD7129809CA8D80E2E1D3:\ -1C79CF64CCAA6C913ABAA5A555558BC251:\ -0C9485139F787BB6EFBF23783CEC74A53DFF16937FA6E76BF120D15ACF87D848\ -0B7EACED7B44ACD2A87C92A3F5AB185B81664AE248C7557C2766656C05A5D206\ -DD110E0E97F4F63364BB396F8431ECA2352FF84B4DB5F54FFAB155768624489F\ -D6E7C40282D1F9D85674D21E01571FD24423461F3D04D9595C43BFEB8EC586E3 - -# 19 byte salt -10001:\ -A7DB819EAAF3E6876B927ED6EEA94B97E20D06753C7555A7440631216FF4E943\ -720DE7BE6364B8DE17E663705549051F04141D8612214BC269CC09FBDF1F561E\ -474A2ECA28ADDE3530CA339015F23CEE63750C508A1416FE5D1AEF5AA09BBA7F\ -36CFC02874B15DCA913E35B52B281D32B1CEBD22EAF3C629123988FE78FD0561:\ -3096922A62DABF6B98A4480D2F86629D1992FFE1545869DCE5E69F810EB793C5\ -ABFFAEE2EEB846644C8BE8E31942BA16FE51B7988F355999CFFBA28CFB9DDB1B\ -5F4919790B7E63E37F00289C6CD42F56F7520A2DDA73AEA4BCB2D10053AB9720\ -B201D52AAE450BF22AF2C4E3AC:\ -43F583905ED6D2D53045C60E472FC1FED12EBD88C190EE810F9576E262F3881F\ -BF006211DD5943A48BAC7FF21C4317BC28E4968C98FF6E0F94C055FB104555C1\ -E7B533F9DDC49D200CAA8C2F62C5EDC6A9E9E76290DDEBF38BAEC88EEF8B32B3\ -DE804FF19627C04B13261CE2EF2101619CA1D6BDF3C5C7DEDCF21E18726081CE - - -# Format: KEY:message:signature -# These tests are copies of a couple above. The only reason they exist -# is to test parsing of RSA public keys in X.509 format. -[RSAVA_X509/EMSA4(SHA-1)] ------BEGIN PUBLIC KEY-----\ -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqu/seTm8V1NWeUMJZmIcJVu2e\ -gi092JnKsPpZe00cDmGZdQH9HG6ddWvcvpv0nH+jKSbz/bOH2DKWvjXvNghyNQrp\ -jJNNdgvnqTPP6F37mWIdMhBayJSWyfAB/pzqsJfI3VXW/T2RNJYQa7BPJl7RL4rN\ -X0s/1xKYCcqNgOLh0wIDAQAB\ ------END PUBLIC KEY-----:\ -B841D0374D3C86E67B67BDF00B:\ -1060A74E3EF067A9B17754500B16B8C9F6B3B453FB290C71FCAE779DD37A6B9A\ -24A45D1560DF5E4BC31143E6197AB15684236D8FE578E022495897F70451FD90\ -2BFA5703947EDFF0B63BF1140C63AE1C8D369A87B192E8BF6A3D486E909C3979\ -703806010367CA0E0026F8920EA766B7E3759E23954D0EC2F746E6046FC14758 - ------BEGIN PUBLIC KEY-----\ -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCn24GeqvPmh2uSftbuqUuX4g0G\ -dTx1VadEBjEhb/TpQ3IN575jZLjeF+ZjcFVJBR8EFB2GEiFLwmnMCfvfH1YeR0ou\ -yiit3jUwyjOQFfI87mN1DFCKFBb+XRrvWqCbun82z8AodLFdypE+NbUrKB0ysc69\ -IurzxikSOYj+eP0FYQIDAQAB\ ------END PUBLIC KEY-----:\ -5C3DB99915C8F7EEACB045ECBB7C35C06D4ED5A96AA9025A49093B70D7C2EDD4\ -85930D18DEB57C0282563F2B07FBA63245FDC773CF851985475DFB4F6FA335BE\ -1B4C2C28A294E84E50172AA585B382BE1E1038FBD02F2BD37691D85A18346AD0\ -4CC81948698FF248CFAF33E222EA8B5FCAEC0E5AA8F753521EC47BCB756E05CF\ -95E4365E06A69BB6C99A34A62939B478AC1209FFACC49BA4027749801D4A9F58\ -3395B34340:\ -9705B191BE8BD52D3E6CA1743DACDA5EDC1C7665B6EBC769A5983BB74D2F52C7\ -9F94954DC8CAB9A44FB3B387A0FF2843311CDA640DC39BA975518B511DF87064\ -B17709804D707DA08A315F14D24CF6385310A62D7F6C47689B66C4A12F449FC9\ -5796F1821EA6838DE2941D0725B55EC860CB553B36878C2BA3994DCD0A8992FF - -[RSAVA/EMSA4(SHA-224)] -10001:\ -B8961C3F4D6A9DC27FAE6C30229E1DA910AF796C4EFB2E97DB11E636A7D6ED94672BE33FD7771\ -75CD0D879D805D06F1C9B2A064DCCFB38A63BD768BC092A0AC3740FE390452492A4BB1C2ECD38\ -C771264D0B2FF0496AF5CD6D139287ED3200A9:\ -7072696F6E636F7270:\ -B7530DA7632263B5AA4B0DC9FCBC3BCDF8B44EE2B4BECFD90BDEC108F50EBE325BE6F4EC8900B\ -A1C345F2B6F59FB625C3D99BC6F04D99704144B05C2ACDD61927D3EBD886650E933774DF72EED\ -0A5A3AA2810C17B56F877D989AF3A469950D0B - -10001:\ -CA76759F53C1F5F771C00A7C6E09E20754132CEE14C671ACAF687DD4006CCC54F34018C554601\ -18DA1036951EF27EB3211138369D9C3C5EB1C3960A9F6DE7794798E2B33856EB0120CA6771CAA\ -824F1F00FFB4596604700676A6C117C87E12EAEFB6476CD4D83A08C6A6A2EAB3ABC3B71FAF967\ -9EA09735DCC8849ACF80F3705:\ -7072696F6E636F7270:\ -B4816EA318CD92A64FBCF77C4E42E283534B2C500652DF6D88FF24130EB5C84350E9F52E4822B\ -F60D7C4AE4FA11C811A7A0B4DF93C0215BC9B3D04337BC044E1994959D67E0E33121C9CDE1C50\ -699B6C00966160F51C606334E15EBF60FBB8C76EFBBBA51460C75D30DE0F47863A1020885F5A4\ -DF8AAA397C03AA409833380B1 - -10001:\ -EA70F789F0117223878E296C191838EC52A63918C0B47E02430331182938F8590CB3295FEE645\ -9A90C9923A888F0FCCEF8D422D75B60DCA3ADD01D6C738472211CECE779420FD4BD381C04C572\ -F9AFF554CABB6532C6361F78EE0AAB4FF5A1FA33C5FE7EF3AFE1C5F6CFEA0BA25B0CC4C6FC396\ -BF30535D69928282B6E20371B:\ -7072696F6E636F7270:\ -4FAF0FB7EEBB26B9BA778D092B42CEECBBA36B4DBBBE35C6B383439F23F2062642CB3D091BA77\ -C4E1C46280E85C8C40A24FCEF5CDC9F4E383A54B19BB3BCD8B5DC28070CD5FFCA1525F6A655CE\ -672EF96438F375E6483ACEB338180B24FAD3E4F67B58E246D0BCE09DFEDF5249F30517DA52FDE\ -9340EE69B1B1316B81C2E2E1E - -10001:\ -FA294359ECC80FF6077B2BC558710A384A24A72CBF61FBDFF3820BA2DE987906A93FD7591BB0D\ -CCB7FA287343876FEB5CF5ABAE579D01A5626C7924FDA429BEADB924CA9E49F99074A850F7084\ -F7E8747E9A7531BAF576524994AEEDA1CFF1D561B3D16793310280626A2FD0A942324FD04E6B9\ -B80AE0A9CBFC3D8E0D5CA12CE5D04C3C49ABF871D62366A8657342690EA73CE1EC68F65A1835D\ -48B4008346E8EECBCC4FA48C7D62E8844C149AAA4E75717DDE3F38F72FE37CE1269B3C2BF7A7:\ -7072696F6E636F7270:\ -EB6106EBBC6F7F29B503E7AED4CF9FD01F75F2C11433DE73188AC19A9A41D59F995107AD9F8B6\ -57B0718226245A4C149E352BF5D129F53971E30A4DE702876528EA67A8EBFD096396B7229BA9D\ -6DA710DB37613F5FB1F3993B391741CE8E11EE0C324E3F33CFBEB78DB0F270B0C0CC7D3497F85\ -94EC262D88EF9E03EBFD9E26ECE0921006C521A4B1B41D75BD79B5534B183893A18FE183DCCD1\ -506B22E0E7FEF53E56B74870B62EDD262AA45F3FA9CBFC18045A549D5E202D2D20E08322799D - -[RSAVA/EMSA4(SHA-256)] -10001:\ -9E244363D137F1E002C5071CD7E7B7F59823770FADDF1D3D8AF934438C9B6A97258BD5FC0390F29\ -971DDEB394E7D2A6E1C8422368D6A5EB7E1F51E6472546EED2CAF1AD242AFD03C1A4FDD8894B305\ -EE31EEA8F8A36C099A00478EC29D11E17F:\ -7072696F6E636F7270:\ -73F68238B7F19889120893C903258DBE620171982CAD9D155892CDEFECB3C153224D8A94BFD13B4\ -691A4D51175756186AE4F689B6A1A1432EA255C0E8DD844E9C055397090C110C632EB6E24BA5ACA\ -380239D399BF010E1451293DB948D4274C - -10001:\ -C34649A69B6C468C51A93B54B7FC54BA7287C14563867406FC87FD98E0B70B307811FD2A7EC2646\ -4D50B5A0213A04C4567CD22B22F2DB162DD464E617A7445A8ECA9DDF71BE38AA32F44181E20922A\ -7AE9851282478741FF69B24158EED69568B0B27AE54FA043F778DC54DD2B23E3D5E0C00113181CC\ -DAD35E04573018155AF:\ -7072696F6E636F7270:\ -3CFA8F2D410D5BE87DA2B644BD6615CE3588C7E4B261F05C18673F24CB570355A7F5D41BBF62F85\ -9BC0CDD5300CCA3DBF2B2AF13DDF455DD6D919811836B22BD4280EFAD24DF30EA185D7357C89599\ -CF0C08A22F4D03162295379E842215DEBEA0DA0AE985F355AF392DD0F9F8A6A1F2827AF781630C5\ -D2A2B917C5544B3206C - -10001:\ -B3705A2FBAEB5B8A311150C3EC5315B29C7FB17F9A0680B0CC0A6E463113D9DB68FBD8CEB8C12FB\ -833639F29C76136B70320D0C9A5C4F191ED419598FD4D876ABFD815C1D4E0AA594C1C5D08EB56D3\ -707263CD1F9A09C12F5E9717177E39986F82EA2F65780D2121C537D9D14BA7BED64B46365A898B4\ -5FC1D5386BA954B613B:\ -7072696F6E636F7270:\ -417D26DAAC12A39FEDA2C17EA2ED932AF9544DA11E6BB84B0E9D4758A57FBD9878457171DE72B88\ -8EF7AF40183EE7FDF81044512232D7199C11CF52A53CDE62022352EA747292FB3187EE51B2A17E9\ -AF8DABA658DB6C4A5E4F07A5CF2E9203295E59B1916F526C1EF8F84F72CBA70065EFF5D4BA0467C\ -B77165BAC3ACE21462D - -10001:\ -A323715CEF7F9FB81BDA579ADD3CB75FFF4051DD5D7ED2B0D3A48DE237A003831042C44A7E9FBD5\ -55F791C350B1C8424384D1E005E54ACFD67C8747EDC8DD8DC9A5AA48D0EFE5CC127CA706E1E7670\ -8A0130519572A1FCB35CBEBC8575454EF6A72DC2F2A6394E1FB593FD60AA9BDB84C99523B91F371\ -7E263793301685BD380357134BB56AC499AA80B887A28596C2208BD4CA7910CAFDDDB565A788F02\ -1C295F3C3DDB064271D917D986D72BAE38C1BC8A6644320F61C84E71FC5BA378D681:\ -7072696F6E636F7270:\ -7BBB18C1CA207CE639E323DF26B14475CD407995EC612F6D53ECEE977D4400E4BFC198ADF8B40BF\ -E27363241A1F9541F01677AAD98F87E93998935146A8F77E7FFBD3DE59A2E22E5766409733F06EA\ -2993620A27122B71C4D9DE755E70C703B4EC6AF5F314E0F720B656FDA93E2B3EE9A1688D711174E\ -0D72D0D486DE36DCE1F9DA031EA46FBD6156B1E7A65A25B42696C9ACCD453D8E467313DA76F70DB\ -225D3C44E133E65E8BCC177D065F53BB81AF13076AB0695AD2205040CD9B4DF851FD - -[RSAVA/EMSA4(RIPEMD-160)] -10001:\ -BB3066B7BA3873399F0B957B6993E7E4AE7D97E1D3579F2AD45F48ABDA8730C74B09A4DBFB5F6A9\ -0769BA261D5FE0F7290A06F91FB8C9B45AEA37EF61CC7F5C407960F89C0699890C2C49C10E18BB6\ -42FA27FB8B38E9A1E406114027F914E587:\ -7072696F6E636F7270:\ -B24136372B7716310F83846719F61CB4F86B11855BE752E85AE6DE9CAAD99746693B255666DFEB8\ -C4A709C93A9DD1B2A08A9BE75831DA000AFA7D6230212C40F0DA59AB8B6291D1CC1DBA24D86D92F\ -C318F764E905E0BE2CCE73E074498A7DC6 - -10001:\ -86BC0A053525DD69C5D827DD664A07063C6099565D3AF545DEC168BA5FDDA7E355D426266D7D6CC\ -FE204E53390D2287347593201D5798F937A9A06B853FDCD3516526EC3F697B3F519611B9D124286\ -54A5C7A6EC1872067B308DB2EC172963160FB17DEC45D27792A39CB3F398D48282B6536A0B1E6A9\ -911005DDBE73EA8787D:\ -7072696F6E636F7270:\ -0795B1835ED3412E4EF2DA7DF692D04E959D5204331C6CA3D978F48F319A79B3A1A51CB584E56B0\ -572853527B1C2F99CA3390C91E006466AAD7628A0FA48887397A865F864D6921575CCF186D3FA56\ -9EAF9137EB626A9FB920466FC042AE9B6FB6B8D7EEB4F8193E7DC175B9093FA3E49FBE4D6D472F3\ -F38289A755933234C46 - -10001:\ -ED1782D5C4807EA628D68A733D736B5438B1A9D9340537576FCC55BDF0121AA423659B67576DA2A\ -3FB8B06009CBB1A009B5010C7A76FA8F1A50BEA540E9A6AFC0E48A95A2FE849F41075E94494E11E\ -459B8AD5D0311900C6DD0FD9215B0A5B33DB0B49B9BE67597D57F636AA3B3E4677AEC213E419EB2\ -777D752A1613334AB15:\ -7072696F6E636F7270:\ -375AC6A2B3CC508CDE09109C1FA52980098EA989C2021CC19D74097A7D67B07F599F3FA0C65B02B\ -DA6FCCBA9219D33A1F07219B616C30B1D455311726FE2470F63B86A02DE283391272D85B77C6D83\ -4ACE4246B692E1B4B512D5E72F3192142E765E38553CD3FCA435D129C7543F777997D8715A2CBE2\ -B15A5659CDC67DA72F5 - -10001:\ -B4B8E2EC2E25925A087F2731D8FBE4D180681A229D190B58F829099E3781F1A850D564999EBD14B\ -0FC4D8BAC48642FD38B7DC9E2DE709FE8C14FDB2477B72BBC58EC0F5FA6A810E44B2C84E207CBDB\ -1BC7A0358AD6F60CF9061EFCD40A3CF665FC976BF167F8A610D747A1075B7C3753131E78967106A\ -D2F20D5BB1E28D6A0D3D722B2F044670B20530FD1F7983513D7F3527A662571A3AE98E1DAFF9403\ -04B2BA6481B766DB0812AC4BBCD1B87E2A29A74565A5C82A2821F6F1E1B5C764690B:\ -7072696F6E636F7270:\ -32631E346368C620BAF6FA5475F04B56FB60BA5CA67D1E3E22805ED5910ECEE71777FE198279831\ -51E88AA1F9E57E96FDC536CE2F927AA3B34A94441E72FB498A649864488D976A0A4AB7B6490451A\ -4F4712A3AF3587579A791CF8CB18EA4AD388B5C34F6BF54E9CB0F4AC5EA21EA2AA42A2266EA755D\ -5EFFC02FD41C583E1CBDA53C1821BB79FB392D68A4524B0F65EBB64FF6656C52BF54D5774DF2D91\ -6C9B793E206E0D5351D7B4D18DE3CA4CCFA8F7A3ABFB36048C9297F7512B3FDA70F7 - -# RW Format: exponent:p:q:message:output -[RW/EMSA2(SHA-1)] -2:\ -F21624A28732743BBE9B1A2B320CA31EF4A127456547ACDF5C523995E25A990B:\ -BC6EDE730E7CEC8993A6E6296EA8DFBBC7D46615122F23F635FF988E284E31CF:\ -5075752E:\ -44CB3C6CD992A656AC2D8C92E044FCCC60FAA1B47FE153E7BA4B647136DA4A42\ -88BD50FB0935E3B9180AF477F8B88E1EA1106569CCAB8D354E0A7E3AC92D70B3 - -2:\ -F2E5CDF6CA7387C132242CE031CEC8FE2CEAFA8530EC9795F16605B1CBD97BCB:\ -DA330E4440FE5CD00A37A738DDFBDD5623A31FAE273AD98E41DA0D3DB937CEBF:\ -4C6F7665207375636B732E20556E7265717569746564206C6F7665207375636B\ -73206D6F72652E:\ -5AB035B8E6415D691951DBCEACC6A61987599000A590A414363BF52FB95C5BAB\ -C12812152C5BCBC6A443C68B971EE0AA5E864C9FF9ABE0A85BB86FA544239958 - -2:\ -13CE5CDF6CA7387C132242CE031CEC8FE2CEAFA8530EC9795F16605B1CBD978A3:\ -14FE360AA550965F93CE76E4B01F55FBFDD7A049B2761817505CB6959A73A4C07:\ -4C6F7665207375636B732E20556E7265717569746564206C6F7665207375636B7\ -3206D6F72652E:\ -0085AC363AEA57F36E348936599A77167BAF17194D250787F347C710019558A9F\ -773DDC25A2216DA694D38E03CAA4F7423BDF03DB0E75161221906222FC9E0F23D - -2:\ -1947A060ECFEFA3F8DDED8AE580D45B02D82DE108496AFC322FFD14EA02B7BFE3:\ -1E1384A66A21500DEE4DC2B36F43EF398B1C50BDEE7600CD4340B663471F0F16F:\ -4A65737369652048616E68616D20697320612064616D6E2063757465206769726C:\ -00BE5B2A5EE3CB613ABE4548C856F6C8F8B4B9EAD3795675E59E4DDC4A015D019\ -2F29B6352CDD913C289961BE57F84005F0BBD3AE7E2BBE73DABC50B2201923CC0 - -2:\ -1AA83F51426F2BDA398221C48E8D322EF66D59098D0418E0C2B06DE6EA2F97D33:\ -1E4C7924C9E6D7ABDB372B112601D4C091FAE6C8FEB518595DF436FE9B354E26F:\ -492077616E742061206472696E6B2E204E6F772E:\ -010E8838216B05B4C2739B65AB2A7ABC114A046E3CD37CF1E97815ECA53750B1B\ -F486A9BA684B9FE2D983BBA5F9D97565F0DCF6A5176C169EC67B6BB6C9616CEA6 - -2:\ -22C9D42C6803B9AC87F641E9465D300DE8898694427D138761C4A5B121B0632DB:\ -25DA5C05701C99EDDF0FBAA61DCDBA404C05D860DD539E06B0AECA7E56354DEA7:\ -54657374696E6720766172696F7573206B657973697A657320666F72205257207\ -369676E6174757265733A2035313220746F203531392C20616E642031303234:\ -0191F1BA45BC571445612D8C1A7818B52DFF78566E6CCFF7AB55B2F35FA21210C\ -951F171E27A2921032718AE01BB4F209164BA0B21A5842D1925B35D09C7538050 - -2:\ -388F732F05B06F5BA10816242E8F75A000E235C97174F57931E8D845442147F8B:\ -2F3758EBE44182841FB1743D3BA6AEEC0AEC5758660E1DB37C818199B90A1A307:\ -54657374696E6720766172696F7573206B657973697A657320666F72205257207\ -369676E6174757265733A2035313220746F203531392C20616E642031303234:\ -046C31E4EA320DF130FE1F361184DDC03713BBAC169E08266B91655B42A01F39E\ -1E3FF781B04B2F44B2504F37ACC9688C1ADD7EB94A998779EFCDFBEB9FAFFC82D - -2:\ -4AE4F716610D77E35A6FA2FEAAAC3E92706B996414C012EF72BCBE86E3F1A97BB:\ -5145D9E08DA9021E87080C437BE1835B06E5C9ECCDA8E7CF7E30F682D0CB1A9F7:\ -54657374696E6720766172696F7573206B657973697A657320666F72205257207\ -369676E6174757265733A2035313220746F203531392C20616E642031303234:\ -01BF0E20BF646E5E427B8D28CBAF696D7AA6B6DE878BB91C295D5559B1FA9A94F\ -114FF61C11C0BC97066C2FC919815B0FD150CE70F63D696CEA4D5D1D7BDEDC035 - -2:\ -6AA3DB8710567A30D7E9E61956962D4E4D50BC0510C2238D9136A93CC5DC3A73B:\ -6CAC9FF49F1035D179668B399927A610608788A8C884B76A94A6DDBCA94A52327:\ -57414E5445443A2043757465204A6170616E657365206769726C667269656E64:\ -1695A91578EBC67ED86C20EC4886B2E3895E11A7647D22FFB41091E1C7A3CA0DC\ -E091A1FCBACB859C4A5C8B3B841C0F0F7039BEFEA790A423114F35F9D809DBCD2 - -2:\ -9EADA4F7D1BEC405BC2BFB4F836E19A488E079030F8C09DE76810B9E63FB41873:\ -AD5DEBCF83372200B106812A6A7CF3A702C35BAF4FC095617794314EBCAC4DE47:\ -476F6C642073747564733F213F204576656E20746865204D544120756E6465727\ -374616E647320746865206E65656420666F722074686520424C494E472D424C494E4721:\ -203FCE80570CA0DA3C2D50634A33BAACEA6D397618F36620EE10DE4E6A51018C0\ -BADE98DF220E47DBA140AEAE910A28F3177D4349740EC05A5EB7BA280D7BF8F34 - -2:\ -E39815FB87BACBCCF779BC66EA0AE9784FC95E0DA094E9BEDE99FB45F73E2078\ -3038AE0488539A2CE982B4F180FC71858F2E5759E61E2C5A5FAFA435BA3A62A3:\ -CDC7D5FE3805572EA3FF554C086C7DD4020A3CE48DF5A09A5CEB75E6AABCD338\ -F800F362448E87CE7E1A55331ADF2BBF3A22B3E6134035FDA52D9578FD3F72F7:\ -57687920696E20746865206E616D65206F6620616C6C20746861742069732067\ -6F6F6420616E6420686F6C792061726520796F752072656164696E6720746869\ -733F213F21:\ -05BDC911B3F19F2201EDF6CCC792A68BCEC40506F00112A6DCAEEAA2D7A62192\ -931D8968F7312EBFE7F7646CED6A8948E58327862527EFD960F15CD8EC74D1DF\ -1FDC37F369A4A844D15DB7ACC6DB5ADA884B119148929439D5305B6916D0A081\ -1D395E6A28042F83D1154FF45DA6A79A3801858031A2C91EA699C02DD6055CC2 - -2:\ -EF86DD7AF3F32CDE8A9F6564E43A559A0C9F8BAD36CC25330548B347AC158A34\ -5631FA90F7B873C36EFFAE2F7823227A3F580B5DD18304D5932751E743E9281B:\ -F5BB4289C389D9019C36F96C6B81FFFBF20BE0620C6343E2B800AEFB1B55A330\ -8CC1402DA7A2A558579A2A5146B30CB08E3F20B501081248F2F1DE36CDFCE9DF:\ -2CA039854B55688740E3:\ -1AF029CBEC9C692CE5096E73E4E9A52EC9A28D207A5511CCEC7681E5E3D867A4\ -AE2E22DE4909D89196A272F1B50DE6FA3248BCA334D46E0D57171A790B6F4697\ -E7BA7047DB79DECD47BD21995243DEBBF25915DDBC93C45875C14DE953792257\ -C5C6825C905AFF40109C8CC7E793123D47AC1B5B6304A436CFA9BEEC8E0054E7 - -2:\ -EF86DD7AF3F32CDE8A9F6564E43A559A0C9F8BAD36CC25330548B347AC158A34\ -5631FA90F7B873C36EFFAE2F7823227A3F580B5DD18304D5932751E743E9281B:\ -F5BB4289C389D9019C36F96C6B81FFFBF20BE0620C6343E2B800AEFB1B55A330\ -8CC1402DA7A2A558579A2A5146B30CB08E3F20B501081248F2F1DE36CDFCE9DF:\ -2119A954F1AC0F3DCDB2:\ -60C3CCF4F086B15B7F850B445F384333F7AE5A4B5EDE2820C7233239E1B86D6E\ -4B4FCA4F50B087CE1DF17DA5D62672A17F2CF87A2875BBD9B138CAF6863821D6\ -A4D553E9EB64C9254A8F9A6B960E57E39069D65E3F561AA1FA91643D42FEEFB9\ -270D34AB0861DEA1E234EA587F580503D46A1989D413DAC2FFE0FC4CA663CE68 - -2:\ -EF86DD7AF3F32CDE8A9F6564E43A559A0C9F8BAD36CC25330548B347AC158A34\ -5631FA90F7B873C36EFFAE2F7823227A3F580B5DD18304D5932751E743E9281B:\ -F5BB4289C389D9019C36F96C6B81FFFBF20BE0620C6343E2B800AEFB1B55A330\ -8CC1402DA7A2A558579A2A5146B30CB08E3F20B501081248F2F1DE36CDFCE9DF:\ -7A4C634DE6F16315BD5F:\ -308A5D65224201BED626CC83FB901EC84874EE03B2E7AB4E752EDBDE024C754E\ -3CC9841CA062100A8843DE9183354B4E0596E8C68F1605828287884F0F9BA696\ -8FC7A9F0CA09418A8485B90465E5D3F96CE4995A5FC7A6E5ABD9CC06BB8A2C3C\ -8109F72EAE67FB4C108852C881CA645B3C5586F27F12FF3028ADE56E32AD9434 - -02:\ -0BC31C063F43B3ADE2CD633D554913339071D6EBED5FD665FC5DD7D47B80721A\ -976C3B14FBD253F0F988C354725289F2897D7FB62C5C74AF7D597A1E22AAFBA1D3:\ -0F816BF0ADD559AFDA38B008E4087F6A38B575C56FFF453056EAAAB3381C9552\ -0969546F954D458D48E44850938B1DB471CF4B40AFC47E067FB5BCE67BA98BE8D7:\ -EF0F1D56F4E5D587C212:\ -3E544FEBB6623F5D392003B729FE2BFC20E2CB3ECAC22734DFCA55150254E616\ -A41C5E54CE3B50FBC2FE2363EE9AF9B15C70615497B0A458F8AB6D850992EEEB\ -56D65F87EA1BD6E2B4B7E40A0F5E1635C7DDB17110C61039CF712D3524C9C2C1\ -F35D9163BE5C70276F46634514BE16EC09602782E88FE74EAEB2F50CBB0E3B5C4A - -02:\ -0BC31C063F43B3ADE2CD633D554913339071D6EBED5FD665FC5DD7D47B80721A\ -976C3B14FBD253F0F988C354725289F2897D7FB62C5C74AF7D597A1E22AAFBA1D3:\ -0F816BF0ADD559AFDA38B008E4087F6A38B575C56FFF453056EAAAB3381C9552\ -0969546F954D458D48E44850938B1DB471CF4B40AFC47E067FB5BCE67BA98BE8D7:\ -EC5CC4228C3C70EE8F35:\ -228BAA85062F10DCC9D99A23D340BC4B9E463D8AB86A6781A6D2143564303E2D\ -C78772BF68449BE1E2711A68D5A15CF04A23573FB3870454308F583BBB5F2467\ -069EF1395431E70F91BD56D846DC8DB2E88AB3D26A9770660B87A76D6C3575DE\ -512BAFA8A0B901AD15B7D8E8BE2F176A182D16A9609F19A4298416245873175805 - -02:\ -0BC31C063F43B3ADE2CD633D554913339071D6EBED5FD665FC5DD7D47B80721A\ -976C3B14FBD253F0F988C354725289F2897D7FB62C5C74AF7D597A1E22AAFBA1D3:\ -0F816BF0ADD559AFDA38B008E4087F6A38B575C56FFF453056EAAAB3381C9552\ -0969546F954D458D48E44850938B1DB471CF4B40AFC47E067FB5BCE67BA98BE8D7:\ -FEF5EE07C74118DA30B9:\ -2637E16E2599B6EC2F4728C73D3B29F483C2B881F1E1969C426027605EF080E9\ -B17D258D5E1EBC6472A2501E04CF19C144537FCB38A1DA00D948EBD39FA11322\ -D9230B62E2C12AEDB366BD85A2089588A8D52E941FD986D89828A342B83438A9\ -60B6FD87E9AD025AD75A692AA9DFEA873A9467B42D84879E85C5D11EFAB347FBED - -02:\ -FA880A456F9C205A26E02C3357536531DEC150BE0EF8747F69EA30D987FF7DD8\ -9E9A1075EBD39F04FA495BD26D8408A8DE69113A9FBB52F20713D1D046A76B47\ -8CF77C46454A7AFDA2EF418F63FAF67C947D898BCA109F3275999E8F2E60E2C0\ -EEC133FF69E71A2D396632670B52D8EA03F7589D8144AB580B1D3E60EFA1280B:\ -BADCC718DD2D761C4893C4831D56ADA30FC5C7C148D473BEDF7615B7E821B92F\ -319676CE278349F1309FB3D264C1A22BDE71B221354C7A4D31117B3EC3C9D480\ -2E0A26BD8EC05D28B6502C65F35C687AF7F8396B963ED029A2C5AE38DD7C5C96\ -2A953C113C0F590957AB19A6E2AFDA6DB84F22C0C31AE243DEBD2920FBE9FBDF:\ -15E7B7B7ED0F176B6799:\ -39FF4B5FA50AE498F3C91A655E6865840D1FC401EE02DBC8460A59DEB8816E66\ -80F712B7BAF8D4DC11A3B54BF906BE698306F0449BB43F3F223B944D930A1A3C\ -718E8A9E2EEDEC5A07AB817C26A80CC2A2EE2846A597EAB8A999D38DB9849016\ -6F2574524038BBDF24B4E4622C843210C6B94987638C6976562EA9727385B152\ -614C18349BD54AD95DE33D5354954B505E5259CCDA47E3CECEF3154F6E5481E5\ -36BAB568146A0BFCB66573714A7BA7ABE0385115720687F33D9C6EF6BB60272F\ -1272CF349990E3A2FBCCE180B730792101089B164AE5A001F5263F7493AF148D\ -6E0953E311AD12E4202D35F96DD30885663B5101F9B05675FCD2FCC4FCC4DDFF - -02:\ -FA880A456F9C205A26E02C3357536531DEC150BE0EF8747F69EA30D987FF7DD8\ -9E9A1075EBD39F04FA495BD26D8408A8DE69113A9FBB52F20713D1D046A76B47\ -8CF77C46454A7AFDA2EF418F63FAF67C947D898BCA109F3275999E8F2E60E2C0\ -EEC133FF69E71A2D396632670B52D8EA03F7589D8144AB580B1D3E60EFA1280B:\ -BADCC718DD2D761C4893C4831D56ADA30FC5C7C148D473BEDF7615B7E821B92F\ -319676CE278349F1309FB3D264C1A22BDE71B221354C7A4D31117B3EC3C9D480\ -2E0A26BD8EC05D28B6502C65F35C687AF7F8396B963ED029A2C5AE38DD7C5C96\ -2A953C113C0F590957AB19A6E2AFDA6DB84F22C0C31AE243DEBD2920FBE9FBDF:\ -B36724C92954C38D0288:\ -3C8CD3614555568BBECA99174B7B203D0BC6FABE9E6FFE0C41EB4D9A2C601D23\ -93CA1E01B7D7E99337758AC914C9F151311E5AE6708DAF1D8C825DA471652C6E\ -13A8FE5802D7AE097BFC899A4EC8CA235B5982B9058C53AAD52823ACF692290E\ -B8823C126635AB0BBF101C2B3149AB16183FA2DBB049DDB99C5E83723E4D4693\ -CA3A08588AA868C677D42ABDAA6586EF192391D276C5E5AF0763ACCA6293F062\ -50C51FDC2AD369CD44EB5F654E98761C881DDEC08E795FFB229B20522349B071\ -4059E18B7B23A48875EAB12ED3F0A011D3A985DD7384B0046F39FA6C1A331F3D\ -4C5125100BA58666935C68A7A10849D9C74850BAB82AE15EC950A283F3E7DAD8 - -# Format: e:n:message:signature -[RWVA/EMSA2(SHA-1)] -02:\ -E5EB47BC1F82DB3001FAAEABC5BBE71B7D307B431889AC10255262281EC5F5AF\ -8A790BD7BBEC5EFFFA442CF2C3FD5CA4778763B9D15AEAC0B9B71BDB13DA8272\ -7F4967AC685975F8FF05A763C864D100B7CC1142102AA2DD343EA1A0AB530255\ -195C3A6400ECAB7B27EFF9B01EF6D37381FA6FB5401347F195354396772E8285:\ -2A51DF4AF88613D91A37:\ -6FF18F4471E1A8F850C910A181A9F28E69AACD8E8126969605E000A853197541\ -AF9047E5D17315BF062B9CD8DF91196F0343285D9E31D5C72560C156782B6D0E\ -5AF8F06D7DCDD8CABEC01B2438C168C40C21F6A8794648361BD2AEE13573A49E\ -CA07A7EED97C0B9C5B1E508869E4CFD5FE1771924B1CF5A4BFF7D4379E5CD59F - -02:\ -E5EB47BC1F82DB3001FAAEABC5BBE71B7D307B431889AC10255262281EC5F5AF\ -8A790BD7BBEC5EFFFA442CF2C3FD5CA4778763B9D15AEAC0B9B71BDB13DA8272\ -7F4967AC685975F8FF05A763C864D100B7CC1142102AA2DD343EA1A0AB530255\ -195C3A6400ECAB7B27EFF9B01EF6D37381FA6FB5401347F195354396772E8285:\ -1CF8DDD95D780A89D7CF:\ -539C266B0313E0E256ED98EEF13E6AE64CED90C160A4999B3D47CBDA5285DAB0\ -E0678C0E079CE9B8EB23E10EDFACFC19A80EEBB8F38ED5B5D6C8A988AB8CEC40\ -A5A5BA102F75586167EAB6D5BF0CE8FF30C656895800F6F1B37D69FBBAF9055F\ -7505DBEB537C0F986A1B5F0270DC12A640FFCB626F9763FDCFEFA1208C104003 - -02:\ -E5EB47BC1F82DB3001FAAEABC5BBE71B7D307B431889AC10255262281EC5F5AF\ -8A790BD7BBEC5EFFFA442CF2C3FD5CA4778763B9D15AEAC0B9B71BDB13DA8272\ -7F4967AC685975F8FF05A763C864D100B7CC1142102AA2DD343EA1A0AB530255\ -195C3A6400ECAB7B27EFF9B01EF6D37381FA6FB5401347F195354396772E8285:\ -F6959926E6D9D37D8BC0:\ -249E1066542618CE0D236A7174708F801E7AB257931E9967A65C483ED66FB585\ -98F99B6664AF0EAE221E2A6B271D7D17875ED02BF7FE35AA0786023858521CB7\ -9FEE0D134D9DDA609B0270FC9804BB6BF74AD90AE11EB339353533DC0D5A69E6\ -B8758212B86024ED563767EA5D9B59655E0B8CC21244F720BA4ED663BF668E3A - -02:\ -B660EB18786256C993EBC6DCB5892EAC342F6D91229B73DC5D04F1AFB9BB0DD4\ -EB0B48895F514B4C9AFEAF86E91226F2299126D37528CE374E89CC312C06F47C\ -81112BF5CA60FFC33B98318E04A17627269F1AF461B6CB40F3BE03B0113FB2D8\ -404E154C7191306B36FD3EFA73C784AD9189115D0BB1BD82B850D000E7CC8D2035:\ -2C9EA313EACF2C5DA43A:\ -1FEFF88814BB53E447E1E955AC8F1AF597C15C3866033E337AFBAB8627306F2E\ -C1276621FF2176C89323CE32EA20F6AEC2CC271F1ED749408B2A3E43A23A44D6\ -A3F38DCDDCAB696B239110AA7ECF12C6681B0E97E6FFF1B72F4F6D796BF82B94\ -50AB8B3D28CA9D220BDF84ACCEA1DA5EDA0B470C3A82BBDD77B4C2723297608BD4 - -02:\ -B660EB18786256C993EBC6DCB5892EAC342F6D91229B73DC5D04F1AFB9BB0DD4\ -EB0B48895F514B4C9AFEAF86E91226F2299126D37528CE374E89CC312C06F47C\ -81112BF5CA60FFC33B98318E04A17627269F1AF461B6CB40F3BE03B0113FB2D8\ -404E154C7191306B36FD3EFA73C784AD9189115D0BB1BD82B850D000E7CC8D2035:\ -0B9554FFE4F6ADAB2C76:\ -095952F24D9FBEF3A93A932865F4BDBB522CF24EBE153CE4BBB24CF301A1C7B5\ -1FE47B94F8F8B211CBC5A926FF6BAF9A6BBF7E15975D2DCCB95EF01AB7E64168\ -7870B0D01FC18B6B16FE17D3FC82931FBBCD4FD18C7F9588CEE8491876D72F98\ -F2E7EEA90C12907210D6859053ADC7178B87BF8B4826954D6986FE761E71E1B7EA - -02:\ -B6DEE7375BF4385043B3CC2AC5CACBC14AD11A17574738DD2BD84D2D1E6C74E1\ -6066C2A5C35BC3B87839858AFB5EE5E8ABFAB408F38772866F6F833F39FAB248\ -3A2C34ED55AD7098F9F63D4EC70B7950F02DAAAAB10781A0008F993C4027E381\ -6BFD45C52F59452A7B28873513DCE415A84FC8BC06601567F91EC41647DA2304\ -5B6E01E24516724ACC02947AD5AA2DBA4D952BC4F49D18ADA0B0F7CC5D488814\ -B921C0BC2B33D8828D80130DF7D79B0992CEC40D3BC7217D4A4DFF3699345E44\ -DAC968575194845AA7B60DCF3C712D9B0A384824C3579B40DBA265457D50F69F\ -02A140884D89B7FDEE9F0A787E76A37C58C92CF2D3818C72097D41B3FAA7AA95:\ -00AA5515CDAE5CD0F0DC:\ -30EECA6B48D796552F5A6A3C11F28D730FA077422CAAB34FDEB879AE0F71DF21\ -330E2F3BE5BF3A8CA372EBCD3DFA7C81B3398C31B0972D0B857926CB39732351\ -AACEB8276D52B9D82F9C245FA0F1CF49E785A2BC00FF27FBCF777F84D05BEF17\ -FCC0505820B029AC8F0CE17D2469372CE47E1428BB941004FE170EF87163E072\ -98EFFCC1BFA7E7CB1F572C340CAA075A5962A15B69CE937BC7EFB492F501FC88\ -CBF0119C351C8498782091EF6EFB19120195E5FF51DF86F90E90FAEB225AA2EE\ -43AB4E8358101C0348C7E3859B9DEBA19464C74B74AC48A0B73FC8D2E7F8033E\ -86208F0792B6E5B6DE36C99DEF604949811D1671EF6B0A4781B4E7A0A72AD855 - -02:\ -B6DEE7375BF4385043B3CC2AC5CACBC14AD11A17574738DD2BD84D2D1E6C74E1\ -6066C2A5C35BC3B87839858AFB5EE5E8ABFAB408F38772866F6F833F39FAB248\ -3A2C34ED55AD7098F9F63D4EC70B7950F02DAAAAB10781A0008F993C4027E381\ -6BFD45C52F59452A7B28873513DCE415A84FC8BC06601567F91EC41647DA2304\ -5B6E01E24516724ACC02947AD5AA2DBA4D952BC4F49D18ADA0B0F7CC5D488814\ -B921C0BC2B33D8828D80130DF7D79B0992CEC40D3BC7217D4A4DFF3699345E44\ -DAC968575194845AA7B60DCF3C712D9B0A384824C3579B40DBA265457D50F69F\ -02A140884D89B7FDEE9F0A787E76A37C58C92CF2D3818C72097D41B3FAA7AA95:\ -B8E2FB9EAE22FB2C0021:\ -416D33F8C213CF81F805F54FC1D4E7C6A588A0965F1C9CAEEA1D41452E20935A\ -AF2D30F957584B56621035430212A428E27A2F687CA9DBB596C19864AE692EF7\ -BBA730F3D70CC2DDE15AB71E1E350C0C316EFA1A831ACD1441598B112482487D\ -F72F58ED318182C7CD0906FE39C5655BF1313F29A15D60A6178CBF600C7FBFF8\ -994840ED649C3C4026A463B3EA39C692B7D112B128BE49E1E32D4A7FF8D45132\ -83D8DCD9CCB8FB7300BE0BDD4C44DAA2F7049B3AD83437093E623442AC69B489\ -11CDA21E95E0775041F67F6E6AE01DCE646AEC20908E7C1B693600FE41ABA85A\ -C0C778641E46C419083E41773C749DB3E1BD8FD764E271860D2D7F8E11BD6AB3 - -02:\ -B6DEE7375BF4385043B3CC2AC5CACBC14AD11A17574738DD2BD84D2D1E6C74E1\ -6066C2A5C35BC3B87839858AFB5EE5E8ABFAB408F38772866F6F833F39FAB248\ -3A2C34ED55AD7098F9F63D4EC70B7950F02DAAAAB10781A0008F993C4027E381\ -6BFD45C52F59452A7B28873513DCE415A84FC8BC06601567F91EC41647DA2304\ -5B6E01E24516724ACC02947AD5AA2DBA4D952BC4F49D18ADA0B0F7CC5D488814\ -B921C0BC2B33D8828D80130DF7D79B0992CEC40D3BC7217D4A4DFF3699345E44\ -DAC968575194845AA7B60DCF3C712D9B0A384824C3579B40DBA265457D50F69F\ -02A140884D89B7FDEE9F0A787E76A37C58C92CF2D3818C72097D41B3FAA7AA95:\ -8C8C306A629373BAE647:\ -0E9A00045FFD399D9DA9D0D7E543CF9FFD098BC23E72DD7763A64F22C7F0479C\ -E866E31438B8F7DE31A18F35AF419BED6C67BE1540614D3310DD24F019E14FCC\ -3AF73743F4C143D4B79CDF35C752A300F0A8251CCFF4AAF18785C533A7DF1A20\ -AFE6770DEBD1B8BA2C83B2E345A04F833CD173E998FF9840C2F8A370FFDCFF5F\ -D95CBD71B25FC9972192470FD145975344F64C2F6D68CB3513F48F9FC070021B\ -EE8F6A4282D098C44DF655CE415E89B97994AE3ABE85986C7EE0AC348EF2A4F5\ -2D102EA80836E77E81AD3678803E53C83CF2F30D2D4950FB6B038CCB3F2690A9\ -381EB34D6C09E88C090AB05E28047DC490EB8A1282FEB38E82FB0B18309284C4 - -02:\ -B6DEE7375BF4385043B3CC2AC5CACBC14AD11A17574738DD2BD84D2D1E6C74E1\ -6066C2A5C35BC3B87839858AFB5EE5E8ABFAB408F38772866F6F833F39FAB248\ -3A2C34ED55AD7098F9F63D4EC70B7950F02DAAAAB10781A0008F993C4027E381\ -6BFD45C52F59452A7B28873513DCE415A84FC8BC06601567F91EC41647DA2304\ -5B6E01E24516724ACC02947AD5AA2DBA4D952BC4F49D18ADA0B0F7CC5D488814\ -B921C0BC2B33D8828D80130DF7D79B0992CEC40D3BC7217D4A4DFF3699345E44\ -DAC968575194845AA7B60DCF3C712D9B0A384824C3579B40DBA265457D50F69F\ -02A140884D89B7FDEE9F0A787E76A37C58C92CF2D3818C72097D41B3FAA7AA95:\ -FA95400C2B14E064F76A:\ -3F67F9DBEB88E6AD057BEDC3D97030555A908867EC578A6CA572137CB61C2103\ -6AADE6DDC5592EC7CCB6B263E51B4C886A51904C858040E493D64B9ACE5BAA50\ -C4A66D04ACCDFE0039D8541C4363DEFFCF93BDF5F5CC1FB64855D956B5EFD42D\ -4C9B96B9CBAA97A32F02AAB307674E53404E6836DB5C96B59572ADBFD1113B87\ -608ACE6D0898CB02E35575CC28D38A9FF8C1C4AD36BAA991DEFAB533F0A6C9C2\ -F0F0815F1D659ED576E5DB18494A54B6817D9E34A134F3B9A0F1E8C77FC204B6\ -EE087C0445A7036C935117E338D092F6E1FF4DF7605525C409456A5195233A17\ -6B29B2FD8FB2808D0412FCA0541B2BB6800BD8BB9DC9DC25230166071E8D961E - -# Format: KEY:message:k:sig:passphrase -[DSA/EMSA1(SHA-1)] ------BEGIN ENCRYPTED PRIVATE KEY-----\ -MIIBGDBDBgkqhkiG9w0BBQ0wNjAeBgkqhkiG9w0BBQwwEQQIKioqKioqKioCAggA\ -AgEYMBQGCCqGSIb3DQMHBAgqKioqKioqKgSB0C1Q0dDyQ+/aB6Rid4iU+Kytf/dl\ -y0cmCXyXGWwZhoc0fqq9FwUyoxDFkZgpdYCgInJvW52O5kkgAAYYZdBSziQU4E7n\ -I6KUeZDYDqJU6VgkK9V1k4JoBKS13L68NwLawvXS+iDcSUoV3C591ynOVMeGsMgv\ -FLhGimZW7KaqaUVnqfcHuKp8UfboW6aqrjknltDeHixpTOduOsTzJUrxGMM/o/iV\ -BKSYqmkNrJmNIq0kqOyYBvxgwsfYO3cBPkB5gVBK1qtlg/gwsAA/sDOqyLU=\ ------END ENCRYPTED PRIVATE KEY-----:\ -426C696E672D426C696E672E2053686F75746F75747320746F20744F332D6833\ -723320616E64206C306E2E20416E64207468652052656E64657A766F75732E:\ -868788898A8B8C8D8E8F9091929394959697989A:\ -19F24178D7369B619E566C5256C49EA648B68CC22C1999EFC24BD22471563EC1\ -5435356577466CAD:lrbbmq - ------BEGIN ENCRYPTED PRIVATE KEY-----\ -MIIBmTBDBgkqhkiG9w0BBQ0wNjAeBgkqhkiG9w0BBQwwEQQIhoeIiYqLjI0CAggA\ -AgEYMBQGCCqGSIb3DQMHBAiOj5CRkpOUlQSCAVCe8zFeu43ErHj8bV0SwfCflqCh\ -WsKecYnHronPutGoumfIOc3vAOsm+H7MdBv7RI8VYcoSd7ccVKCrbrxT7sYpHw7H\ -2gxq4I3IUDjDRr/IcuDCzztP5fm5dcuIgs5qDZdqphYo4L1BNs4XLphK4E1RqW6T\ -UfNHUzrY1Rh26x8HRgd1Zr7O+J1A2ZvlopHIpwT6Byb1SQBiwvI2S3P63yPeqDZy\ -s8wDfcL8+xbpKu8qVN4/D33vQh4F6Ptmdv0xXJuQUij820h+LcFhj+0xRmUae9PB\ -dp8ykyAS5QB+29j2R5YXR93ANtH9q6uAWeRPv08XryEl9WBQy2h6vPOM2NNJJAhw\ -V5rx1HHa+NLJHPaSsTtgiXEC4/9HeMRNIRpwm/aaYyUtx8Y8zamXNf5sfs/RIp5Z\ -n2XIqLzaahgk+xm5C+pqqMAclBkLhT4iX4GvcE0=\ ------END ENCRYPTED PRIVATE KEY-----:\ -426C696E672D426C696E672E2053686F75746F75747320746F20744F332D6833\ -723320616E64206C306E2E20416E64207468652052656E64657A766F75732E:\ -DBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEF:\ -4B4471C82B030F2C2115B65309DF23A8B6AE1EEAE0C4AF91DAD7CFA7D3DFC6B2\ -5D5FE99E7FE4BF62:cdarzowkkyhid - ------BEGIN ENCRYPTED PRIVATE KEY-----\ -MIIBmTBDBgkqhkiG9w0BBQ0wNjAeBgkqhkiG9w0BBQwwEQQI29zd3t/g4eICAggA\ -AgEYMBQGCCqGSIb3DQMHBAjj5OXm5+jp6gSCAVA3igMQIZIcNy49pBMJeSd/a6q0\ -oICNlYtfNlACbx6K23do+QjlwjgUzUkhpBWzVVNzSxNI7mUgqcFOF7OrBNQWldl3\ -F940k5OrNU0GZCPhZLIT3cIpkiyXSN+DGpMTH5pis+g5f2IG2TKgTz+fVyZ39qUC\ -Be+9sbTVElrF5eYjpMsGzgZW8t33hHH5hvpiXjCqKl49IApI/56EoATwYV/JHJRI\ -sC4m4M+8zYyXHJRiUMnLFgEZK+8M9S8jQf/tXtmT7Ua4ddc3XAhhSJ5zeRupLSI1\ -KEyKjq9T0uf3snhslzw7Vk6XRiUQS9I+QGnfXfW2ZLLji2gA54K/C+yC+UaM2yrV\ -HipE6cWA7f/uWQH/Hn9Al5vjWnY/Vb0WHx54lYVps9Mlaga5vIQcFsxrTS1ZQvHw\ -bygjEqFWhZNCSDQjvvFnelOqKOoq6cYcWmfwSeQ=\ ------END ENCRYPTED PRIVATE KEY-----:\ -426C696E672D426C696E672E2053686F75746F75747320746F20744F332D6833\ -723320616E64206C306E2E20416E64207468652052656E64657A766F75732E:\ -A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B8:\ -76EC77EFBCE0F6B01C1AA676ADC3AC6409950FB79EC0DD25E6A76CE85447715F\ -91AB563454FE3242:scdxrj - ------BEGIN PRIVATE KEY-----\ -MIIBSwIBADCCASsGByqGSM44BAEwggEeAoGBAP795cm2680csLqzJLxt8vzriDGR\ -5cPejI7Sa3BtZNF9JkBLExBeClf891HGVhmc59HI7CSkVwKycD/HXXmNE6VCm4Ju\ -FmT5ENfw3OERv7Wac7sI9PenVT8qc3vfVi0lRcSvx9vXlfqNEEJBWIPV+s03NZLv\ -AAOKv0WQF0B6TtIRAhUA1wYYSyBGcR6bjdb2mt7KjxgCNtMCgYBO9ZCSK5GnL8Lo\ -Mz2/fQnl+/Gtu8REi6ZiwPDrMhjS/7DsLq9eL8OFzZAh85q0rGzVe0d2tow0bm6d\ -DYINiLcmiuH1TwRqYYvOecg2Ek3K/+w76b4An8IY/vtvg/9nx1izTuhyEhG7RZr3\ -yV9bc6caqfPjcIppb6FZ5ikOeTBR0wQXAhUAwi5MTj9OW+mLNUQQUTiUFOy+ZMs=\ ------END PRIVATE KEY-----:\ -426C696E672D426C696E672E2053686F75746F75747320746F20744F332D6833\ -723320616E64206C306E2E20416E64207468652052656E64657A766F75732E:\ -A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B9:\ -22E16319CB7FCC90CA03D66B1550FBEB6121AB426E1AE3618A3F8A65C0457A91\ -E1E80D6EB35C8277: - ------BEGIN PRIVATE KEY-----\ -MIIBSwIBADCCASwGByqGSM44BAEwggEfAoGBANsWdaItyazuSLhac0WrnmYSEKcO\ -ydCRzbSxSvp/QNn46SVucs4UdyCm+YqGchYVdL4MGLNu4H/VXW4D5vU/206YEPm5\ -sqLj0zba9/hohpwb+vHTg9Ak/EX/E+mr8z28TeHkg3LRX18EclzHjKe/zl7r0WlS\ -MbOz27LP4f5uKBUTAhUAyr5cJPSqLKo/EFDJsuzXb1KFgg0CgYEAxY953m2fa6IF\ -vcOJtSpk8KLe/8ZsGbugnFHBaHz+QWt+2sJauf/eTh2hyi48wEmWsAmyI2Jz64u5\ -WrXdJG6Y0DhcwJhbKts5wbztDIL3NAWxuppyGd89dJubaWElqyat81bQtIf7IuLB\ -KgXoL1Ci6BznryfA7cuv3ZPe5aefsgoEFgIUM6rqDcBQGunu3douZ54MG5I7Ve0=\ ------END PRIVATE KEY-----:\ -426C696E672D426C696E672E2053686F75746F75747320746F20744F332D6833\ -723320616E64206C306E2E20416E64207468652052656E64657A766F75732E:\ -9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB1:\ -033A7684B382E2D2DE424111A110A7A326BA2158AED4BAC034815B8D3CDE92B2\ -D71A5CE03092079C: - ------BEGIN PRIVATE KEY-----\ -MIIBOQIBADCCARoGByqGSM44BAEwggENAnkAwD9dAnTwxHobWWmnm8IVsVZuKY8w\ -cjg4YwWmib0iv+wvwhiKon2XNhbtErdg9uqnTPXJJ5dYAVf1cq11jKidgW37g0P+\ -J046VzuAdGjtWaxqcP8KuqBPIu72NK8c6Q2q59LYYS023XY/pvEf5JRSkmk38bgY\ -CK0pAhUAsPZ+YCHrRD4mQrzJXv3dtmWJumcCeQCwP26D/4ElPV4uQ9QilY5wcprT\ -ZzTGSzXTb8WAFHTT89dJjlwqQpAdIiBKrJmyKfWTEpqWtVMr8ugcGhdA1HjOzYTD\ -hsD2kOIYFfuKXmP68902Mpak+WbjsnLaJF4KfC9PrzUL/6ZGF+YSFexN0KvP1rCo\ -eno7RrEEFgIUHmzIejm5tPDB8oEZD9WD+5zm7Hs=\ ------END PRIVATE KEY-----:\ -49206F6674656E20646F207468696E6773204920656E6A6F7920617420746865\ -2074696D652C20627574206C61746572206665656C2064697367757374656420\ -77697468206D7973656C6620666F7220656E6A6F79696E67:\ -8788898A8B8C8D8E8F909192939495969798999B:\ -4AF54C9F782C3B4B1D5000985F684B64D5EF030F7952FEEFA06475487BAA979D\ -AF382E53BE6C4D5A:rcby - ------BEGIN ENCRYPTED PRIVATE KEY-----\ -MIIBiTBDBgkqhkiG9w0BBQ0wNjAeBgkqhkiG9w0BBQwwEQQIh4iJiouMjY4CAggA\ -AgEYMBQGCCqGSIb3DQMHBAiPkJGSk5SVlgSCAUC8VXV4fX+c+kMB1JpVinAEo/XN\ -U9LzjtAS6C4hUUV5VZQHKNKp8HiOdc65BWrpLOPc72kuNAgb+KjYunVWSCD6k7pX\ -Tm1XHIhbm54dsLynwY/F5jiNcSVKP0115E+WuJ5A4ps6sO0mk/UMzmH6IMmmNeK/\ -pmqK+Gcw63tYchYNXoY6gYAlEHlxF0QijPw2mV93Jl+pxWEwFvkttGmtPCBwCXLx\ -AdNRy9B4RSeaNaAMcALM0X/IrEx3owhoV9LAs8fUViJlVlI3BuVNofXCXeMU2vxv\ -Ax8d3H+CECKAMbtyGL8tBmVE0HKd5ubpjGQpHBW9egaagwSNvQFiXJKAUm9ST1uA\ -4iZgRW0sOEOyNNgWUbxUoI+OYmcDiMbGBzv2JeO/yVFQolmgzflqlE6L3JJ6yqc6\ -y6wZBPcO7I4uLnzuIQ==\ ------END ENCRYPTED PRIVATE KEY-----:\ -49206F6674656E20646F207468696E6773204920656E6A6F7920617420746865\ -2074696D652C20627574206C61746572206665656C2064697367757374656420\ -77697468206D7973656C6620666F7220656E6A6F79696E67:\ -9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B2:\ -00F04C3A7E9D31CC7C76BAA9246F5A0BFC3B552BC3593C856C5AF7E7E7B2224C\ -05445802A7D726C6:cdyg - ------BEGIN PRIVATE KEY-----\ -MIIBOQIBADCCARkGByqGSM44BAEwggEMAnkAtqJA6Mv/8I9ZVRd/288VFQUCcTPA\ -qkAfIn9ZP0aUqDJfRuchnUFrOWkzp0QUTA0eFVMwt3T+R2iL7Rp7HwFbAXLictS1\ -SzGX2CSCgOS4xGDYb8H7s6n/U4twEdQQfRsqKu4Z+gSdpfZStfFKZ0dYA9skEhI8\ -m7NPAhUAnoE2PuOpzxxrKPJtMLBvcW3m46cCeB6j1vT7dpPk4RV8L79QL7S5aJsn\ -5uK9HR3mIdntB2OXTm67qD+pHbVZuYfhrtrM97e72jopd/diGOlwZ0h0iL9xklxq\ -NvSlcuvRWCrlXk4NsJnUGm+fY6YUnWWuyhVVW/rLdD8xwkqP/us3TBdzN6Hhwk1J\ -oB9JKAQXAhUAlmo1ft2RX6ivJhmvitzUcFwvvOQ=\ ------END PRIVATE KEY-----:\ -49206F6674656E20646F207468696E6773204920656E6A6F7920617420746865\ -2074696D652C20627574206C61746572206665656C2064697367757374656420\ -77697468206D7973656C6620666F7220656E6A6F79696E67:\ -838485868788898A8B8C8D8E8F90919293949597:\ -01224EAC2D585D92840280C76FB57306222E42800075D2AB872F08A8709651A2\ -219B1E7FAF242103: - -# Format: KEY:message:DER_sig -[DSA_VA/EMSA1(SHA-1)] ------BEGIN PUBLIC KEY-----\ -MIHwMIGoBgcqhkjOOAQBMIGcAkEAp7fQiSIN41Jmp5D6sTiK5uZqM+NRrtZHVPwP\ -gicmBY7jLGKeSK7CNlaPTVkgKeQ04p7YCyLfMWk33vMYiAndOwIVAOoV8IwGiIXb\ -Rcm44dWRfdsOJI8BAkBUtk78F7Kf8X7/5eapEczOy4i8h8F0QkYQp7CZVONaPi3T\ -i2HA64tp3zM/z1WEEmO6wC4I5UrY9a84ckwLIwp8A0MAAkAS1f/NjG3z1z7Fhx7x\ -koG5Oitf7m9ER3YzYJEe/vQ1mtDcgiNnAV33SOCz02jfaFr7+H3AdI5KzDXTB8HB\ -2sQw\ ------END PUBLIC KEY-----:\ -00BF86875B7DE45A29680AD78B41CF13BA70DA1DFB8500:\ -302C02147FF68E7723C6D6718D4B5BFD04069D4F86F48A1402147E78482F2BF0\ -37283BDE610C957E75CCFB5E1785 - ------BEGIN PUBLIC KEY-----\ -MIIBUTCB6AYHKoZIzjgEATCB3AJhANh0wGx4pOKnBg64l80gNBxTm0ql7BlotR9A\ -jFdGqVBK9BZTU7sqGRSgQx4WLiLvJZB9VRmYo0pBWd7/YKS/yufwytojoirhXhz/\ -IG5KkKbUZI+uWnFUFD+8YBiJo7hYtwIVANVZFYUPbGdHhTuhnGII8o33i3yHAmAr\ -nFyiH8nbC3hVOFq/ba0ftJ1HD/gRIKIhdjJP+BmDb9epR/45W8dgvPwZr8NCix4G\ -iJhaDt3B5ozEsFVtG2Wguk9tONZocCQByx48+tP0ELWhfHvsSv+gMrd+AeVzg34D\ -ZAACYQCmvNmEahHpA348XBaXHK9qVJIm7JIS9v1Zx7w10UUSe9fha2BKH+DCirfL\ -HVD5L1Ll3mJVJH/j+uO1PMZu5Sbuw7SDN/fNSMnpU/0krR8eZ65B3Strd3tM/vQ3\ -fS083Gc=\ ------END PUBLIC KEY-----:\ -E58DEDE156818EFCDDC72022EEB5D457CF25032BC6:\ -302E0215009BB427CCD68D7269D3692A29489026F9AFA71745021500AAC0B52E\ -5C8BDEFD0E7B3F81189C50CA8C46A3E1 - ------BEGIN PUBLIC KEY-----\ -MIIBtjCCASsGByqGSM44BAEwggEeAoGBAMtC1tIjltuwKtWprTwYrEpO5ClbyUvd\ -BTIvUuYLrAaai7mGCSXbGRBXAHPS4hLQjUPZ7JuWYiLA2/WEttUP0Ai8P+oGsMKX\ -DIP31KifdwNHa3jckrPS1mMgA2xVDm/nIM07HxquQ3mXuM3YJ8Di47yqvlAoOeZP\ -e8fgPLe76zPJAhUAwy/14/bLpyDtp3898V+kSbHKb+ECgYBHUenqYLWd/ZNUXWCo\ -hihbT2FmS8kxCjiVsqhAd1YfXe+KyPKR+N5r2qfwoN87L/7jNO6Mm90T+OxEsfKu\ -HZMBAwwOXN54eGBjiJhQYAAryMQuwFV8KICbgOG8FyJDUjo9P6qaqmezV1ibqqsr\ -SVqHE6BjEgqU7T7ee6JbhdHWyQOBhAACgYAJDkq1oVGgIE+HdMGjj1LPclk51Euk\ -Fd1GMt+RLxB7Yt6Ism0txDoBE/aTbIi/b2bNCShn0y+Sr8+KT/6kYElwIfN9y1ZZ\ -mFlp+idxV25J7VpcMnSwlkaFuP+gmPkesXImQafs1NAgMvbLtAqmARO8OX3bO3o6\ -fz7eifelYX+8dQ==\ ------END PUBLIC KEY-----:\ -EAD985D13D2A1217AD620068A2CF985F031F37BD22:\ -302D02144CEAA8139F1A477CB91B77B9B20CD66F13291B0402150082191AD5BC\ -88067D833F7DB0629527B1A19EF36F - -# The reason for these tests it to make sure that EMSA1 shifts the hash over -# properly (because the 192-bit Tiger hash is bigger than the smaller q). -[DSA/EMSA1(Tiger)] ------BEGIN ENCRYPTED PRIVATE KEY-----\ -MIIBCDBDBgkqhkiG9w0BBQ0wNjAeBgkqhkiG9w0BBQwwEQQIg4SFhoeIiYoCAggA\ -AgEYMBQGCCqGSIb3DQMHBAiLjI2Oj5CRkgSBwErzYywRqfwW9IxzqzsovFjnZK0Z\ -KNpUiGOk4CJxENZd0/qt6ap3AaspM9u9xsfhO6WOK5eDimQDpN+lBsqhrKbmErWK\ -9ngRAE3/vj6DlO5RHn01E57fr+aQE1kigjhHaNPwAYZXEKlBqS1SxSYd26LlwcjT\ -JrRqblCY4cBjCBGtzvVJK3escwTELNTZGgTr4X0A3sX4jCs/b/+MRt67cfb1SYOI\ -hmojiK/EqJ978yCZu8YPtQFo68Vq/RTuaHvUEA==\ ------END ENCRYPTED PRIVATE KEY-----:\ -54686973206973206D6F73746C792061207465737420666F7220454D5341312028736563\ -6F6E64207465737429:C40DA376ACBB379890ACDFB021E02A:\ -041A7C1033F50A295DA0C4D436BD612466FB65ECE1357D4770BF93413F2F:\ -lorellnmpapq - ------BEGIN ENCRYPTED PRIVATE KEY-----\ -MIIBEDBDBgkqhkiG9w0BBQ0wNjAeBgkqhkiG9w0BBQwwEQQIxA2jdqy7N5gCAggA\ -AgEYMBQGCCqGSIb3DQMHBAiQrN+wIeAqKgSByLDSSPDO/Ck1yLY91WOlFZzkM+jZ\ -P4jSwPOiJljd7+2i7+zBAe2LCkVyQZ+WMsScjNVvmYvmP9wucmMnj98XdpZuXScd\ -1GLkFurNB6MFJqW/jKUURrHWEwkIZiUlKVObnDyMdAk6PS/xpfRkDdQfqIvCTsyf\ -X5uscHniJlAfqUMAsiMUGUgyunrZj63DVpoP89mj4E6Ep6WuSmjF48QwbAHuYPBs\ -gwCpLRTCgr8EBF0WtZT+V4RzTmAG1qYyYEV0wdpiG0d5Pn7M\ ------END ENCRYPTED PRIVATE KEY-----:\ -492077616E7420736F6D65207069652E:8182838485868788898A8B8C8D8E90:\ -6DD27F32F0012698CECB2D8BE550ED662111608A6586A481CC7E2E4C5CB4:\ -khopkmcoqh - ------BEGIN PRIVATE KEY-----\ -MIG6AgEAMIGhBgcqhkjOOAQBMIGVAkAA8HR2W1fHj8t8G9/BzpO5z1Ea5YnMTwMS\ -/ozvaNrdRuRf+RuNGAEer1deRluO3BrQlknECrK+0BxpzfPT51qPAg8m1F08NAua\ -+OtE3W4FMysCQAC+p3SjytVnkwVRSkxKcdSsbBv9NbW+TGQrxWE6KqfRoxN/Tov8\ -+iZbtXywoSMLpPjP+oi/LQQtJTV7B07mRwQEEQIPJIiuAFmX4/IH2oOwMoAZ\ ------END PRIVATE KEY-----:\ -54686973206973206D6F73746C792061207465737420666F7220454D534131:\ -25ECC0ED4CE7118A72D133704D002A:\ -14593FBF63EAC64976987524044D8B11AB9A95B4B75A760FE22C45A3EFD6: - -# ECDSA format is group name:private key:message:nonce:signature -[ECDSA/EMSA1(SHA-1)] - -# From ANSI X9.62 -secp192r1:\ -1A8D598FC15BF0FD89030B5CB1111AEB92AE8BAF5EA475FB:\ -616263:\ -FA6DE29746BBEB7F8BB1E761F85F7DFB2983169D82FA2F4E:\ -885052380FF147B734C330C43D39B2C4A89F29B0F749FEAD\ -E9ECC78106DEF82BF1070CF1D4D804C3CB390046951DF686 - -x962_p239v1:\ -7EF7C6FABEFFFDEA864206E80B0B08A9331ED93E698561B64CA0F7777F3D:\ -616263:\ -656C7196BF87DCC5D1F1020906DF2782360D36B2DE7A17ECE37D503784AF:\ -2CB7F36803EBB9C427C58D8265F11FC5084747133078FC279DE874FBECB0\ -2EEAE988104E9C2234A3C2BEB1F53BFA5DC11FF36A875D1E3CCB1F7E45CF - -brainpool160r1:\ -1CA8A0ACE60292D2813D992C4EC7A4BCDF611C0:\ -43727970746F2B2B20352E362E312045434453412074657374206D7367:\ -9CB692B33F02179D1A6F2A0669FD8DAAF17E4FC4:\ -672EAFD043D30BAE7CA826828333FA70F10A14C7\ -0F49C076BB26178277D8E490D0C77F7A9649DE31 - -[ECDSA/EMSA1(SHA-224)] -secp224r1:\ -42D126D0E51F3D6AA9B4D60BD1290853AA964A9C8698D5D5BDBAADEB:\ -45434453412074657374206D657373616765203230313130323135:\ -E1F6B207B4FC896879A51F65E85DB94CEB633FEC765739E689847D64:\ -A4C80AAF3D7B61200E66D6F41EC66D3D65E9E38DC06A88FE3B7F6C4C\ -8A5CEE4E04FE240464EA2DBB52489D3FAC1CDE6DA24A0E4C6598BCD2 - -brainpool224r1:\ -47B5CCE9EED463CED28666DA57DA9D0A8BDD3F000CCFC0AE6054F1AD:\ -43727970746F2B2B20352E362E312045434453412074657374206D7367:\ -9E9D0C9E67FF5785C3AD89195567CD3990D54C628788F26DB926F5B6:\ -40369F41BD0D15C92DFB855779DBF439376FB6EDC4153E9B99019B79\ -40FEF076FC8D610EC12AFC9CC43A150BD0190E507622E6623906D6B8 - -[ECDSA/EMSA1(SHA-256)] -secp256r1:\ -368E89CC30AE7A3B4B4903C30C238C010257FE97DB85AF35982A7960A0DBD2F3:\ -43727970746F2B2B20352E362E312045434453412074657374206D7367:\ -E2AAB3BD3AB1999651CD903F5385B8EC2EDA84C43B7801F08608C179DD373369:\ -CBED1CE0D581020D2F89174EC2DE450C1D547BAC3DCEECCDD476A6AADF46D24F\ -C456F43F351605CC40FC2A000B4D291042B5AEEA7A783DF89FC86666D832DACF - -secp256r1:\ -6CC691616D2C996A8F00A31C2EBF4E35C5EFFEAAFA2266F800768D5BF8EA2C1B:\ -45434453412074657374206D657373616765203230313130323135:\ -C1DDAA59A4E0B5D95EB873C33BC465C6782EBF7BC43DB18058C9EC4816AD2A11:\ -A8369164EF54A67303760B77AA62C4DE8122396908EA5B06DBCC2BC48264C832\ -ADB3A8855019D5AFF789EC1F276AD38A03AAF41F88593B74E5CB9DF7E4BD4922 - -brainpool256r1:\ -4EC702404A8047A08206721DE33F02E1F06B14E09A5582171EA9BB8AB3C9BC14:\ -43727970746F2B2B20352E362E312045434453412074657374206D7367:\ -A9952A1B896FB2C2AEA88EA578E2A5323114978A765E03E397969DC0F282708C:\ -54F843E89B084EEE1CFFED09F222DF041CD46DB0C48833667BA0790ECD603089\ -5304039A927714E79E5FCDB1D043E093FD85C8DD98B835CD6C7BB492C05357E5 - -brainpool256r1:\ -416D7FCEB966DF966CAE7BE2608C5C4D8939A7B5B3CF6D3E441A64886AC5FAD7:\ -43727970746F2B2B20352E362E312045434453412074657374206D7367:\ -A07978494C1B301C1E44467853CD367624549E0E9F5092C0100A53F877AD2EF6:\ -93935B733CCC6A8702191664346135D1D6320D86A2346DFCA41AEDFBC4260435\ -A4A9C66485C02BC2DCC858364173FAE00EA02529BA21B56BBBB2EAA4B811416D - -[ECDSA/EMSA1(SHA-384)] -secp384r1:\ -100CC52F0263DCB12FDB9E50D44A4C84831A98756265DF0CBFD092D27A739821\ -043BFE282E2C8FAD46948C1F0365DD0C:\ -45434453412074657374206D657373616765203230313130323135:\ -C27CC4947F7CA7AF386AF5BEA88582685A043BB3C83C0C8B2A4BB1E53A3971FA\ -8161168E332B2F3735A50BB3E8694F43:\ -C8B93B3C4B97B87A918522F423E26194F1AEA2B83FE890893C15928B79BCAC75\ -F66AB47309378A54771ED46AF6AA453BFD2404EECFCCE19ACE11E5D5883EE40A\ -300A42BD9AC79E77E507DE9EAE0B54034DB17355EE2111990ED226701D4ED7EC - -secp384r1:\ -4AF67D00B7A8D964B38CC52CBC808D4693595A5B330E0B3EA52BDCD619D41B85\ -6961BDAC571D9BC93D16A9B1C4D5CC2F:\ -45434453412074657374206D657373616765203230313130323135:\ -8C5D8DDCF8AF127174577A60F9B5512813E33EA8E45B471F343806FBF68663E9\ -915B81A33F6AD22007D57818023AF982:\ -FF83C10E8D84777D17B724957B83E1500F578F1096C48BE2BCACE73E6681CDD6\ -A34F66CA2AF31241FAF85AEE2528438DA6BED934D75ACCF2E41176D8B661AB58\ -B7B867D802C38B39E8227F9CF0865072D381948FFFF637D8FB9B37BEC6AE0772 - -brainpool384r1:\ -19AD48ECFB30F115AEF41CAFD29B265A586399C0F95166017AA7DB894413A2AE\ -821B7BE4F4E7B6BBC22A4E2EB1CC0865:\ -43727970746F2B2B20352E362E312045434453412074657374206D7367:\ -83928FD1219F1C6D5B128C0ECD2E39A83399CE609382D41890D43FD476318E0C\ -26264E98E0D5A0DBCC28A8C01C2D63D7:\ -4B800A206ED7807C0F15798509164709E94ED73B5E02B10D65F45B6C2B7FD694\ -37F3B5D1342DAF0988CA100B8875C739\ -2CFA819E10B76CFE12B2C6485D8326B66E6256CD2F4A6DFEB9B2B7BDD732EA9E\ -9D5398DDECCBEAAF3FD53D554AA1FADD - -[ECDSA/EMSA1(SHA-512)] - -secp521r1:\ -1511908E830069DAD59E8BA8F1BD4045612A4844805F61F7ECD92A1DEE1877B7\ -E62A57860314820C97FFC972732E3C4C0AE837103692E85B3A11B49EB3E20EF1599:\ -45434453412F53484128353132292074657374206D6573736167652032303131\ -30323135:\ -01C352020AAA6D14B6FC2B78FD46209A9EEF6A357CD8B5D53738E3D655FE7A80\ -8396E1DC5742058D05F2D76C8CBF4832BE0580A6FD7B4C7426656D17680DEAAEEEC2:\ -0138A515C79EECAAB50139FB5D9EF5A771CC1C0999F2E54B5A1A9370EA8ADCFD\ -DDD6E9933A39EDA0862F3ECAEBD49EA5ED58D93DA8F72B1CFB11E52A1528AEC8\ -63870060D717B29AD6D36DE953A4753FAC58629429EF4DD8F98B5A4F5504C5B2\ -29C23C609905632CD8D839DC472693698D7A149E8F3F17462F86BA0A7A895D80\ -583A46E9 - -brainpool512r1:\ -1433AE89858BE7DD9346AF015FEC69F0556982FFEB9CCEF7FB1CE71155F7620C\ -ED4A6ACD0F35461A17C8370C4E600BECBACC0F7C1D2D1A2C00203A0E6626C21C:\ -43727970746F2B2B20352E362E312045434453412074657374206D7367:\ -AA72BC70ABD9E078DDE47F5440E75A93F136F6EAA5267F591E0D3F562DE48BD8\ -FED21B9E3F6F5560250566A00C7AAE7E57770BFC7D18A3E7750DC6C7083CC5B0:\ -A058CD406C7F2D87FBBDDDD1870C67D1ACBD222D45A929565101842EDFAEFB89\ -3CF07AD22CAC0F3350A7D1300741AB5ECE38498F196690CBCEDBF8C866995E5C\ -17F48EA66EB70ADE68F6C16103BE54DD004230270E1F8CAC2D6BD47F717C0D1B\ -1E335FA4AAA5212321EE93E55FED129D781912A0D87B78A5B569DA272B3C9469 - -brainpool512r1:\ -83DBEFECAF8CFF78C575BE9659C1A104767979497AD9B589B1B13705C71F1DEF\ -AF5CA76C8700236CE2392268E0133CAADE358E3D4F2E64CB4AB8517079E3EFA0:\ -43727970746F2B2B20352E362E312045434453412074657374206D7367:\ -A110CC7BEF64F5C0349344025B97B151C735408BD2BC0D0CC4E54642EA0DF33E\ -829E85916086B51624B830BB2CDF53DAD9003A6D194115051139DBC3E81DF197:\ -3254388208915E0EEB99DA89AA198C6FDB1A31B21D3B69EF8EFE4848AE78C32A\ -4C489347510A9DD04125BBE95F847E14A2DF3267A0A6D1B5EC442B130C9B5DD1\ -924FCD9F365897570329BFEC41FBAF42961210F3FF850DE5736FFBAAB09C5C03\ -E0058BD51C8A8EF0FF221F31CF93FE59572ADA3CFEC7016085258A45D1E8544C - -# ECC verification format is group name:public key:message:signature -[GOST_3410_VA/EMSA1(GOST-34.11)] -gost_256A:\ -0400B6F1D75EF48902B0C2302F52CCC71233EC55B903061673AAA586A2B5\ -864048EA2675E8FD8DB1FEDFC7DD40E3CF3A319EE3130E0BE9FDF994B625\ -BC1885F271:\ -:\ -FE406F383A54127453AED406FA9A3B610B28F89FC918C07A5A75289E97B3A991\ -AA3CB0563295A3E281BA368DF8471DE0A4150B3CFCEA575D8A9CC9779035EC36 - -gost_256A:\ -04BFE0BA366BE575E45C5BBA339C51ACD75D517008A9D3169E3CCEA6EF08\ -046DA74312382D835BEEA1C561A75AFCAFDA0F75A4E5D9787F9DB2870A03\ -2AC1D90465:\ -:\ -F3AFCBE1398DDC01F0A9E4B45397F3ACD8F343399BD2805FB6293E9CB871123A\ -B7AB61F33E0B70166C355963BB80B8F6DF54F7F6A43872295CD42B6ACF7DF678 - -# From RFC 5933 (via Bert Hubert) -gost_256A:\ -03773DC3F032886D56439A9F17490B680570043F757252C1F60819D6C30DBF1469:\ -00010C0300000E1070DBD880386D4380E954076578616D706C65036E657400\ -03777777076578616D706C65036E6574000001000100000E100004C0000201:\ -66ED09C0A6C97E22CB4E66BCA61D2082FDF6924F3A717C43B531B2D43FEE76DB\ -B0F490A7901B009CCDF87252EBE1790A9AB1A6A444DBACA3E264AF21D18B5E83 - -# NR Format: p:q:g:y:x:message:k:output -[NR/EMSA1(SHA-1)] -# Trickiness: in some of these, we put a leading 0 digit on the nonce (k). This -# is to work around iteractions between the way we generate the random numbers -# inside the particular algorithms, the way that we 'fix' the RNG so it -# produces the output we want, and the sizes of some of the numbers (usually -# off bit sizes, eg not a multiple of 8). It's a horrible hack. I wish I could -# figure out a better way of doing this... -FCA682CE8E12CABA26EFCCF7110E526DB078B05EDECBCD1EB4A208F3AE1617AE\ -01F35B91A47E6DF63413C5E12ED0899BCD132ACD50D99151BDC43EE737592E17:\ -962EDDCC369CBA8EBB260EE6B6A126D9346E38C5:\ -DE0B54EFABF297087EE623D5CA5588C64828EF4FDE4FFBAE1ECD2006776B05B1\ -1B81EA3CDE9BC3964C1687C5325BF43D7CCEFA0D0A86BE5DFFDDD0D1143DCD75:\ -D057B29DA96809BDC761F3210E467BBA5931B3C406581B268121FA5625C2F850\ -8B95ABC87CB061A8C32FA04E67397762F69A23ED42ABE051BD761DED4BD61582:\ -78E2D47D180E4EADD866235F5CFE0E487E862226:\ -FCABA2CF434AC8DCFCEC:\ -91F1D3A9C129D91120EA3F6486A079AA695AB632:\ -44EC399FAA3853B7F7313FCCB3A30B82B20A18C45E53188FC58B0E3C141A0851\ -BAEA0A7723C71A94 - -DC523995E25A96ABE93502691F3411D3A6C19AAC218404B476913794A81EA8E7\ -8C3F8A60E6A05C151C61430743C19B4F1BA140EAAFB0235F93E83CF2995FF0F3:\ -BC1624A28732743BBE9B1A2B320CA31EF4A127456547ACFF:\ -829D8EE7A7221DC83F22F85FB5FC955E4D1E30563151D87AA82F1466E379A991\ -3351026B996C05413B01AB6E1AA83A8B3A30F0BFF50E118F0806A59209B3DB91:\ -8F8340D8E87FCFDE0BA81B45003DA97B7FDD21B4C1F256463507E56CA0F0FD25\ -FBA142C93E23AACAA89289379B953FA55B3E143164A035E470104A9A984B083A:\ -4CCBC8427B955CE5D0263D682AC2B8BF7861ED6226B848F8:\ -5075752E:A876034938F576056B00569E4706963C8B28D23E03AEABE2:\ -3097CCDF824E2BB33089DAA042551335625D9802A2BDE54C10810881157C8DC3\ -7E2ADC8195251FBE040B919D56512F57 - -19A61288F2865F83256E77DBD8D651E6481A3DBFFD5F76777ACFC8C7F7F67BBF\ -112ABE08CF39A751295EAE6D388DA7D469CD312DA63C024304948A6C6AEC9732D:\ -1ACDF5C523995E25A96ABE93502691F3411D3A6CB:\ -50438F2395561269EE8DB64D7AB5602F3BA1544BB997A33CC5090B24B0911872\ -377669726D11BFCA63922CC669DB9D4B87D031079D10990012FFCFC54BBC8068:\ -DF49BE748682A13BC2EDB80D5E4C793E429F6F5F1F042A18ED8515529AB2F1B2\ -1E0F9E824C3F6C65FA04DB99E3D8C6A1DE6E052EEBFDF98F5655A58680A964F7:\ -16226B848F79E4E38E49D072AEEAE3AF4C3E1CF6B:\ -5075752E:019E4706963C8B28D23E03AEABE27C7B294EEC2337:\ -006AAA75DD2B3A7AE867D2DA3581D04AE2AAA5905C0074F8C1507136682A93A2\ -3A89504DC0FEA5603946 - -2AC218404B476913794A81EA8E78C3F8A60E6A05B71066EDE730E7CEC8993A6E\ -6296EA8DFBBC7D46615122FB2F836005517F32C1DF25ABCE53CAC404E95E72675:\ -1ACDF5C523995E25A96ABE93502691F3411D3A6CB:\ -65052FC9728732E830ABDDC1AF7F1DAFB410BF1FB02A5414D718DDF0A867B8F1\ -C22EF2654B66C4EC538F34A4BAEE73981F86D07366EB672D2EEECFC347EA4674:\ -29F696C36E3BDF9B3945A031481EA7CF153ACAB0B689CAB7B799FFA9B5042929\ -234AE9C64D72690FDA8932E7C9AA808ED242E5E06AC68279544CA0B0BDC21F7F:\ -120FEB207F73754A9A42CD019FD2AC263476AF3CE:\ -5075752E:019540EEBCCFFBC202BB81AD78F1E046F4D4597F53:\ -013D9A09041BA0E9DD2ECE20C5042F5442DD14C8F00113A3C080CB2B8FCC156D\ -33E7FB8966032FE1570D - -C7ACDF5C523995E25A96ABE93502691F3411D3A6C19AAC218404B476913794A8\ -1EA8E78C3F8A60E6A05B71066EDE730E7CEC8993A6E6296EA8DFBBC7D4661512\ -2F23F635FF988E284E3018C2C5347734940F7A0B045A5C9A61288F2865F83256\ -E77DBD8D651E6481A3DC0CE0373D9A1EC8FC785D39DBF228112FB58056F7B0E9:\ -C1624A28732743BBE9B1A2B320CA31EF4A127459D:\ -92EC521C2E2C415DF4DE9675A934648149CB0DB1BDC2B11A59D276B1408DA81E\ -D2070E5A311EFD6D7A01B1D327331A7D5C830B781B9CC08D385EAB22AECFC558\ -3052C387ADD3F5FBEC04C1240BD3F48CC2482334F58606C0EC62DEAEEBFF0AC3\ -BC4ED688EA0E27DCE1FCA166CF67741D1FC0EBD7F19E10554C5218C0A5FA7BB0:\ -C0F8288391AC019CC4CFD7DEB3D85ECBCEE4386A4655E9FE68AB66B30098C7B4\ -8601B106B3EEA4F5D71995BB0FDFA27870B83ECF6F7EE4842B2C623367AF864E\ -0439A3D1125D7E697B085ED98AB85981D4C72BF10B2E2DDE9FD6D53D29D68AB2\ -DD87122F58EB8C8E9C52E2C1E346A192F12CCB472CD54DAF600E0E93EE06DA19:\ -64E6970384247DDE2C94701DEE2BD4255785BCA10:\ -5075752E:0AF20FE4162B721067160E55F9BC980AAC8A51BFCC:\ -05B325CB3BAC1A189B132F8F88DB1389958604305104AB71A2C77D8A9C902655\ -9C2E1765D44A81A1178B - -1ACDF5C523995E25A96ABE93502691F3411D3A6C19AAC218404B476913794A81E\ -A8E78C3F8A60E6A05B71066EDE730E7CEC8993A6E6296EA8DFBBC7D46615122F2\ -3F635FF988E284E3018C2C5347734940F7A0B045A5C9A61288F2865F83256E77D\ -BD8D651E6481A3DBFFEC15AEB9410B3CB207A15FB0737509DFACD160A39DC3:\ -C1624A28732743BBE9B1A2B320CA31EF4A127459D:\ -9C78F55BBBF7C3B8AC9EE5F94F3DD9A20A521F933FB57A035CF27659EC01BC859\ -D1DE6F187791E92DD4F6F547707B7DB7586678E7DCC58F08897E3E552F2BB2ECC\ -61F4F06F4685F382DB34EB23ED93BF22FC7FC2E9C0A4151344CD22AD014B0ABFD\ -C715A199E4EE599F09967E07282624F6F520FE79752B94FD6B32A1BEA8D6D:\ -4C9421E17B605A89976C7274DA20BD5BB94DEAEBF07CB926B4D33C9B9C1E5939E\ -4BC1DB1BDA3CD1CD7828F17456666D243CB05DF5C02B430B25D41EB5E6CC466E6\ -7A5AC7D89EE3830690E3590588EA0CAD1883E299D2B9984B9234C6A49194BE1BA\ -31D5CD8F744177064622E696318B4C15AC1C94854F63473F695F2F517807F:\ -69E4706963C8B28D23E03AEABE27C7B294EEC2338:\ -47656E6B696B656E67617220466C61726521:\ -0A9A8513912E5A2AA2375A50A53E505C0F8D4D0A7F:\ -082B6655BB32ED12D90CA95B8DDCBE36DA1DF3C96F009F88917FCB93F04D6198D\ -438A1EF1FB732914332 - -3ACDF5C523995E25A96ABE93502691F3411D3A6C19AAC218404B476913794A81EA\ -8E78C3F8A60E6A05B71066EDE730E7CEC8993A6E6296EA8DFBBC7D46615122F23F\ -635FF988E284E3018C2C5347734940F7A0B045A5C9A61288F2865F83256E77DBD8\ -D651E6481A3DC0091CB01E4ECF2CE88F83F8CE4E39290A544519A92FAFF:\ -3C1624A28732743BBE9B1A2B320CA31EF4A1274569:\ -1CC1C87EDAF647CBD7356D6B162BC027C549063734D50446C9FD5DF04EE59547BC\ -B4022D7BD4784DDD0C890B3D17357E1C679BF2BF5688B647982816D63E1CE6254D\ -551211B03D7547B72D734152499257C0E8D45C33B192B62280D365B921881E644A\ -A31C11888EBAAF02791415F433C5635AF09A8FAC366797F40D18365576B:\ -E43E4F1FDD4D7C26D80916ED6A8E5748A4F900B2F6042E1FD2A42B55240258BEAC\ -FD494DFD669CEACD659F8DBBC7649ECBBF1B2DECDD1BE41142BC8A420E05F7A92E\ -3E23DCF021E8363E7027A0B896A456FE087A4CF5AFEBF5702FC8E64B82AE9369CF\ -BEBB174A7080F6911D4D03677671A7011DFB18B1E2B807FF1ECDACE6B9:\ -169E4706963C8B28D23E03AEABE27C7B294EEC2338:\ -47656E6B696B656E67617220466C61726521:\ -2A9A8513912E5A2AA2375A50A53E505C0F8D4D0A7F:\ -34CD8EEF38DE00C87C2281ADEA5A597E85AFB8BDB42F59C80618D6EDB7361EF766\ -74C0D535B31BDA3A9A - -7ACDF5C523995E25A96ABE93502691F3411D3A6C19AAC218404B476913794A81EA\ -8E78C3F8A60E6A05B71066EDE730E7CEC8993A6E6296EA8DFBBC7D46615122F23F\ -635FF988E284E3018C2C5347734940F7A0B045A5C9A61288F2865F83256E77DBD8\ -D651E6481A3DC00A927480187FDEA61E094D4DBCCD2A60F4B5E9F613829:\ -3C1624A28732743BBE9B1A2B320CA31EF4A1274569:\ -74C4E94AFFBFD290B2F15EF802B81F51A1F4C872687FE373BC410C9CAC231F8AE6\ -9F0D48921AB3497334E5D692E6DCF5F8A7A64C571E1DFFE0D4361CD3EE6B74FED9\ -5AFF2C67C616B1D6C9A072973B33510D86CD64080388D757ECE5DF8BAD1D4DA42F\ -021A35C5A7225591470AC32F8699772AE9562FDAD76F811F3131FAF9259:\ -3C9A8741FBBF7AC5A245F138922CD64EE798B62AA99931D050A71650D12B3FFBEF\ -E1AA95450A6DCFD526D9BE866089BD400FD2D6F4921533F5BB10FDC559C67FAEE8\ -4C75A8A611A57D83E69E26991E2B3F9B1224B61BECAB77D249F5F83DF42B284E3C\ -89565EB5D875573A61066275D3A8D2C90897CDA7DC4D02CA0AFF4A14DB5:\ -169E4706963C8B28D23E03AEABE27C7B294EEC2338:\ -47656E6B696B656E67617220466C61726521:\ -2A9A8513912E5A2AA2375A50A53E505C0F8D4D0A7F:\ -3255F933B90A659F32A2CEBDAD6C3465A494A87D350255D303139C95B0B60D3258\ -A060B4510B0F26B22A - -C537448C630CDBA7C285B31E420F2BEA827EC72309E3D707251350BAFA3DB9FAAA\ -889769A43A2B48A08B46D18842BDA591EE3FDF95A3E3D6A2137BB273E2FB7632C5\ -D7F620122DBED2574A5C9F6F34123132A3A1A6F7C5E105C129375A3733245580C3\ -659A11D4FBA7D50C116FE2D9BA950D6E03A0D20FA083056B38B3A3000C3:\ -2C0094AEAA23065124FC9C8ED04E1006D9403F4BB9:\ -834E982235B6DB4EF6EC52025C56C3A5BB4533BBB83F99C2BD12A200A0FCEC8840\ -94075F74F9D7BD5E4C1F4FA719E082EAC7F4C8A7AC5799F9F614C974E4C84A0487\ -AACA50CB2D7ED3A1FDE75D5147D8EA9654BB2E0D19C807188A64A5B4FAF05A52DD\ -AE1EAFA74146E28A1BC61B8C57192CC404D139F760DD3943E94B547930C:\ -470421750B0C8EF53949D4474F8DE8ADE8CCBF57FB1BB29238968074D9D703286A\ -E7BB845F8BAF54C865FCBF89AC0668F7941A2EEF751D9E477543133CB5BA4FEAE1\ -59A877ADC3D590ED0AD0EBA0D0AC1134B7B1BBCCCAE4B26E1452C0A9308B476DAC\ -D13B3BBAF3B7764BE5C2D9805DBD0640CF2D82FAABB58A4C4F1322E11D9:\ -2B9C9338848ACEB05F7C4F412F401C769616D48324:\ -49276D206A757374206C656164696E67206D79206C696665206F66207175696574\ -206465737065726174696F6E2E:\ -2B51BC665CF466B2CEC3DCA92F6D8F0F02F6A4F05E:\ -26DA0260F10D5C283D85A29399B341384B295B01EE2B2BF011377942FE9DA24B07\ -1B87D83E4167B0B5C8 - -1E9FFA630130BC80BC709C3FCA6F819848DA96CC300AE868236F4AE5F93ED150B3\ -7FF1DF910C28996364F2E737E574811F85DCEC79AFF30B76C4415E742A2519D596\ -ED1227EF561CEBCE6BC029A10B71BE3C88DA1486774B985F5AE5CA97B3ABF3CBDE\ -F7C35402BE0029AC89BEEB2E3BAA596D913B046168E38F02291023BAE525:\ -2BE48B895976B2E8C34B129EB01DD76697C0C16829:\ -C4AB3CB5A673050E19379A28C6A044AD1E85FB66C4D52DFB640B1ACC103D31242D\ -68B19E11F0058F6507E9582094393B43160EF231CF73588CB6B02C4884898EA886\ -DC2EBF9C85E0FA567464D649C17562A15E5CA5A6E8E2F93CC30454AB3DA0D5DEAF\ -833F78B734ED3374AB5FFB9A110DA42C27AD87762EFEB112EBC88B103E3:\ -14707CF4838E01CD359472ACDA71737D51D0BEBC61D0F825275265E42EACA744D4\ -587249D54F901C0BD4F64B0879D4035EC9EDB40C222A15C7113701F8096D6E5CAA\ -3288CA411C7C8DB6B923E933CB297760ECE68EAD0A9CF22CCA855448717399A8E5\ -94DA9925D0CE334BC8434C32CAA225026F03443FD0B74499F3D82127E830:\ -1902ECD8813827AE27FA8033C1DE6A65093BBA1469:\ -49276D206A757374206C656164696E67206D79206C696665206F66207175696574\ -206465737065726174696F6E2E:\ -260FE1BF1BC190EB4014A860AD06DAACF0E62B5C2D:\ -073B5E19E15868A062940B6904BC19083869FECF5E0FAA319A9FD3D414F405D16F\ -11D8EC0EE01B489277 - -33752A90D9CB3CE0672B72DDC545B97314D990EA3B6B86BB493F1256737CC3EEE6\ -1B1390F29E5E6A733998ED28B04527E05A19EE0994795318587ADDD8FC45C6A0E3\ -B8D83FE78BBDDE6C8BF74BF1A11A1785CB13F894B99E536AB152F5CC6DDBE4DF0A\ -E0B3323085AD6C851D18AC2C6C7A5D9F6F5F6297049C9943F9A9C050DD4B:\ -3B67337DCC5D5318D237B3CC48D05E60B7CFBA17CB:\ -4085148908A5902F01579635FE4BA536F3C5FA00B458A178A2A487D8ADDB0BB4F0\ -6DB1D740975F937FDF4D368444F85E210FD2576242DD0FCA58B3EE0595AA85BBB3\ -73D72B5E03C2C26B6C9AAB1C2D29669AE586347649A011F7428E05F727DB6AF5F2\ -5DF9338D668866E48014F0AE18B84675DB2A1BC9358D1613EB1DBFE2263:\ -24C4791E394B5A015AF827BB0638ED99C394AE67A913A21A04EDD2DEC49166BE7D\ -15CB82DBC0A64AF31C0EDA89B1E7FCEA26F421931AC663215B71516E406EB2677B\ -A4C48C759EC28623833ECE3B2836EBE4FD2405A93695C6C15D8D87ADC8F34162BE\ -B0C2030D59417C8B7275076C1DD64B278051A4813DCF815CFF3325D0BC5A:\ -15DFFDB80E7F4698D43771C5F4ADE8C9CD4DFA9832:\ -49276D206A757374206C656164696E67206D79206C696665206F66207175696574\ -206465737065726174696F6E2E:\ -2C6C5DDC20577082E4711D5F1327B0A8EEAA166617:\ -2AB302E2CFF9D76ADF6B8B348621D5E9A3D8D68F982DF65DFC1E84A31C40C1501C\ -367752E42743FD967A - -6A4F538DD1BDFB47B448BB75B0B01837973251C2F2CE4D0C9075685333998DA6A2\ -07B9E5F6624B3F80009877842D334A8D23422AF7D74465A98608BF34390B66C1ED\ -36C83D3EB047DEFCBC62679BBE7D966CB9801CEA54BCA7D88D8511CC4B16A2BF4C\ -9724AA861AD69737FC86ACBAD6D7B3CA756C2C3BD07001741071F60C367F:\ -380DC2F4A7A781B34B0182939CCFAA95F837AAE5FD:\ -4EF29DC07DAEB84A86C077853672D2B37BC8B068923861685ABD55A95BAF109443\ -EFF1B8B14A3B8713E095DB5CCEB6BB52D90EB136699CD017A98F77DB536410B447\ -C70CA8AF4B940D957E68EC0BBE3415C496CB70DD95CBF1F4E63C789EB06DB4548F\ -0B073C95DFFABAE82FDBFDB740D188FC94298857D2EEA9BE482ECF228C51:\ -339533E7F3414DE16F4F01A63E2E8705956A63921433B6D01CBF87D2CB7FE174FE\ -AC1C11856344B017BD123642CFC91EF3B7403F79E88F1CA8EE5B4CCE4C6FD18F89\ -03849C722407D7B864AFC6D81D04A40A9578D004D3E9E4A8BC0DAE6D7BA15EA57D\ -60F486AEBC187343F299DB3CCD1602D70291EE1836C08D28723B9F0AF472:\ -13ABB2B93794CB0F4058A4FDB9B266E5AC74681017:\ -44616D6E20697420776F6D616E21204D616B65206D6520612070696521:\ -23AEAF18FB8F0D808218A587F86C16B16AA5DFA48E:\ -07D6C64CF9FF00D7B8D9191C160ABF50D61E3B90281C06D436B4CBDB6CB380E84A\ -0D0AAB183A11E527BD - -# ElGamal format: p:g:x:y:message:nonce:ciphertext -[ElGamal/Raw] -C2742F0AB4664BDDE65B66471C32BBD5A383491C1C8FE71A7525B5C301B1CAE7\ -A48317D2ABE8C078CEE424899FEC4D876891BCF3E401E4BF339E27C1ACB97E39\ -83ECFB81E1C74093E8206CC794DD180E5B646EB1D195455092859F981FDB3C39\ -47B179FD9DA4C96A1F716570149B0E5E91AFE7168F4B5B92797B1E374AED6097:\ -D:3571A939ADCC0E0A61F8FE6720372DA9FB130C33757B101BED87CF677B77F94:\ -380BF24E9D162C61E95E2E84EDC0F9E56EADF564F5BE33D7A46BC4E0BBCF9151\ -5129E2A547583E576154A216AC035C11523111F877A4B56EE4C459ED645C63DC\ -52D4131D865DD4BA8D057F9FC1EB77352A13037CA23BC2BDE49794B3AB5A611F\ -D106ADC74D9F48FEC91DB1EC77AE70EC9408EA0E750D1CA4B2E437E4233F3E32:\ -02AD1D776D591520E4D8BEF8B21CC2F54FB4EB788E52ECEBE13564435DA66284\ -D51A6A6696E615EF599786CE4CBEFAFF066E0A1CD8868454EB5CE0CA99241B29\ -E1D1492CF2712C2C101B3F3779034683AD8271098C2E3FBAA83901A97D9645FA\ -5815AF79F4F638ECBE09020003F434D708914899C668F34830E70F4CAF0803:\ -0A5842A8D0C1B07E5DE6FD3E0C6B1108523D4D35417F:\ -5B99F58B48F3D473327075F2FF4EEA3C8C1FEB0B241F042864610D6FC512A81F\ -431A965724195DB71C3B84B6B9F1DFAE0DAE60E7CDA957703D10FCCDA45CDD0E\ -F8C8F76AA4F51F3EDAD8E5085B97D69523A3EAC89D67CDFDDCF0A30491A98BE2\ -FD6C5E69C3A2C95300B9DB4EDF2111E7613EF7B2CA430D0CFFBDECF6A7BE592A\ -853B404B6910C48A0204ED3430691E766FBAF21A428B9F833C5932C053C616EE\ -B59850150A22331A8FB5AF2065B595E4F08881B1DB7CB85A28A33F4449890739\ -679CCAA431A9205210995BEA68759B475BE4183A975C9D042FBBEDF589AB6AF0\ -17D7523B2CC90CD63526BC584F1E9EF42ABAAA9238987D7F73B94E323C6AADFD - -FE25EB971E3488A92A4BE75E51050B0824E69B18AC433B5AE7DE98EBCCE8AAA6\ -301237489ABD17A52EA9759AEC87D0E90F7766D64096A49CA99EFBEC82049898\ -06F5C49479FCB6CE8B881BC28F19732F0325786E7DAC54F8C216B6C84562C88F:\ -5:CC4D3B878DB91C340CEBA8495CB5F703ED90AB24BD793E4470125CC:\ -4B722A9E2DC991CEEA1D596586D245EB9B8129515AD66688CEFDBF84FDFF8C19\ -4A2D2BCB2AA82C47CA9FBB3FFB86BFC5CB4676B4DC4A2FF006AC3D578010C9FA\ -E140822DBF9DC26CCCE1701B8CF08740ADEBA1CB94056FB33FA2E88DE84CD477:\ -02C1ED6A171875F055809F12BC61829961CC740935C6DCC468FA663E8D1A7DE9\ -E0555E3EA99476436743FC5C76D3E041055FAEB7641907F8E2F1F94061B22E72\ -B7CD39EDD7A6367828CCDC000301CEA7D91CB1E8A3E20DC85FAA23EF6D08E6:\ -F42F854C10C9DD14A6712594A31326A1FD2CF5:\ -9E47FB001BDDB12F2D8E0FA5501A7EAC1B185FDFC7D2FF3E4461B0D75D626F51\ -56DEDD4D25F13C6C1F5F9A1F916058045705F5E82F748E9B6F0DC95D572B8DC2\ -770159092EECA13946F0522FE2A859705009B615818A1B4F98E8DD38CF00DE74\ -6ABD5F3852D93F8D9299DE18EB763F11E41A8B9660C5F056538EED431BB8E219\ -9D9012F50C7FBEF5AAD35ECCD7F141CD9AC6553315A2699D6718F50EBDCEAE62\ -A11ACC466E8533EDBAF13C15B5532B323EBF283B108F892DBFCEA21231DFD548 - -FCA682CE8E12CABA26EFCCF7110E526DB078B05EDECBCD1EB4A208F3AE1617AE\ -01F35B91A47E6DF63413C5E12ED0899BCD132ACD50D99151BDC43EE737592E17:\ -DE0B54EFABF297087EE623D5CA5588C64828EF4FDE4FFBAE1ECD2006776B05B1\ -1B81EA3CDE9BC3964C1687C5325BF43D7CCEFA0D0A86BE5DFFDDD0D1143DCD75:\ -841CBF70BC6E95C7E5ABAE60DC6538EE:\ -12C0A0D25B072D8698FD929B8EA219874E4EB6A7FB7D7EB5857A246235D70F6C\ -950118914598E62ACC2EE8E061B560A1FE272B9CA163A7C134E1D6767910ECD:\ -47E586A7E7D98C116A6F553F652E57BF:\ -BEF5E7EFAA76C52A8ECEE604EDAFD31B:\ -CD70DE085B0C586B4E64097EA3AB4CE0B60A71B0F640FE4468F4F940412EDBD\ -D9035EEC602530CFF81B2CDC35805264A866E4689DDBADC3438575B6337118B\ -B23A5AB7710F85F2A4E1E0DBEC5652FEF73C868747ECB7043BA08241A0879A2\ -DC588D3EC14ED552E62B1B111646FF4DFA9050754240A46A840EA5EB1D97712F2BB - -FCA682CE8E12CABA26EFCCF7110E526DB078B05EDECBCD1EB4A208F3AE1617AE\ -01F35B91A47E6DF63413C5E12ED0899BCD132ACD50D99151BDC43EE737592E17:\ -DE0B54EFABF297087EE623D5CA5588C64828EF4FDE4FFBAE1ECD2006776B05B1\ -1B81EA3CDE9BC3964C1687C5325BF43D7CCEFA0D0A86BE5DFFDDD0D1143DCD75:\ -AA3837AF7A7ECF6DB7E0B702A054363C:\ -74349C465B92635C1692BB6F2932E06C1BDF3FC81E78DEBD661BB1DBF1FAC1DC\ -C24EA052A119CFD272CCA2BE1E6BDF4579A7D69C739E8A412D4AACDDFE9EDFB5:\ -74BC8D009250F4CD2E08BC556EE01449:\ -A2951BE393736E39E9D209FE978C7546:\ -6D6ED1C6E519C628CACC7981A5BBE487F6E013B26448D711911698CEEAA4F746\ -182A716602183A746FC35B022BD7B27EF079F7164309653D148D0CE91907FF6C\ -4A9001A0CCA2A0A163F3F93200C2E40A957919CB84AC35B928E026F1827E6D4A\ -9B986B592BE39861538414D5EA6980248FD3C3C0CDEE372F392D5AC46DB8EEFB - -FCA682CE8E12CABA26EFCCF7110E526DB078B05EDECBCD1EB4A208F3AE1617AE\ -01F35B91A47E6DF63413C5E12ED0899BCD132ACD50D99151BDC43EE737592E17:\ -DE0B54EFABF297087EE623D5CA5588C64828EF4FDE4FFBAE1ECD2006776B05B1\ -1B81EA3CDE9BC3964C1687C5325BF43D7CCEFA0D0A86BE5DFFDDD0D1143DCD75:\ -8FAF3D43EA4C7EEEFB9C08807D90B160:\ -F9AD56F050A9FBF969A0A7D2A56BE409BA0EFCF23CCED06980E5A8965EBC6C30\ -08858AA845370F56C1BAB31177C2BB76DBFA9E04FE89DCCEA67BCED6C55ADD8F:\ -01AFE1A93EDB9CD3E3715523C952478D:\ -9500DDCD404618F64A2063BC19941A6E:\ -0636C3F1C63C54CAB4B48B6EF0ECBFF00BA6AB70DF4DB6266D0785351B37279D\ -41D957D16CAB48C64035DCB2A1CD75BAC298C8ECAE8057D87071EADAA5DA6E2B\ -69B5F353B5753F7E24DA81ABAD40059CD73CFA6E78CAB1C7DA418D55E5DBD42F\ -A4F2B876A25B4AF63588C80E0DB11E8BAB1531960E951C08C1A68C8FAE0DA87C - -E9E642599D355F37C97FFD3567120B8E25C9CD43E927B3A9670FBEC5D8901419\ -22D2C3B3AD2480093799869D1E846AAB49FAB0AD26D2CE6A22219D470BCE7D77\ -7D4A21FBE9C270B57F607002F3CEF8393694CF45EE3688C11A8C56AB127A3DAF:\ -DEEE9EF5ED1516CE7E695E672B8CEE45E6CD7B36E0E6385F894BA86163F6F3E6\ -C6D4E8A81146D4017DEFDD71CBD90FA0247659B88B7CC1C894F48269FD4F1AAC\ -0A30538DFF6B3FC76CFB131C9E7965B58858AB0A43B557335912A8AA547F9568:\ -FF4FD921EDD9618570ADA5C59C2A01ABBB9A51:\ -BDF5D785E7621256CAEB307A92AED0BCBC34B6ABCC568C200D413585AEF1E686\ -9C60E87001A664A8FF8645C3F79E1667BC2769D82605C3B1AB1A0DC2734AE831\ -32652544275F5C59CCA355BAA02D9DB3796A6B6CCECC14BD85B02A2C18EC7EC8:\ -58E72BD0F04B11:\ -EF07721FF6B28A8A3B4EBC95C16B13A83649B7:\ -C7B6ACADBBCFD3A34EDA31CE9CA7F7889FBB2DF5C6C25793EB974591BF0EDE93\ -637B6A95E8075BDB2A987039D92487665465C98AAD0C123FA00BB9736170E780\ -69AA32DFBEB07099A0B7D439AA807A2D3D6F9F913EBC673F9F8CD5D3C0E9DD0D\ -988EAC4D8204928C2DA8ECD1FA3A598FCBFFEF5017DB8542D123CF69E8C92EB9\ -56F10DC995AE6B6564967D5C12A07BA35607C54CC3F10A36FF3603DD7CC14906\ -64610002977CE8C4A4EFFBD1421C902D4D8DFF81D014E1AB55F239E0F2FD28AB - -E9E642599D355F37C97FFD3567120B8E25C9CD43E927B3A9670FBEC5D8901419\ -22D2C3B3AD2480093799869D1E846AAB49FAB0AD26D2CE6A22219D470BCE7D77\ -7D4A21FBE9C270B57F607002F3CEF8393694CF45EE3688C11A8C56AB127A3DAF:\ -DEEE9EF5ED1516CE7E695E672B8CEE45E6CD7B36E0E6385F894BA86163F6F3E6\ -C6D4E8A81146D4017DEFDD71CBD90FA0247659B88B7CC1C894F48269FD4F1AAC\ -0A30538DFF6B3FC76CFB131C9E7965B58858AB0A43B557335912A8AA547F9568:\ -B3BF90978FB3EF96E40F2AE8260F42B908EE1E:\ -578C33240691D5351BCDF2C727BEDF8C4B956EB32520ED93DB034D00EF69C44E\ -523639DCE55E09631D8EB6C6D6760CE10C510AA68847B7CEED43A3749F653B5B\ -2BAE4B07F95F85DA8F058F8DA2A0D07A2F0C5B009E63C06B638FA1B43CE7F7A9:\ -C37AA41207A357DBCCFBE93DC45C5BD91D29FD29CBA29B26AC437A9B560C3BEA:\ -A36338E4D7815E6A4B178E951BEF073C6D5A7F:\ -D824C94623313298600CC20203F8A40006CAFCFC8F883C99AC09DBAE4B95E6DB\ -9FB5737E24D9D7E39B603893076BC81A2BC0C0D608B32B353972B57066535DAA\ -C49E3F7F2A0E243618EEE01C5AB3AFAE1D55E3A1DB33CF713E5187AD51D55144\ -B1A108354ECA651E55F85F253FE73C1C15FA5EDDDA47467BD0425F09E3C41565\ -48E71896659C618B84FD72BA176E2DEEECD8B15F2C05F870697EA464B8827374\ -2BD6ECBA5164424F34EBB9E13E31683A16712901818C7E5F502720FBCB075EA1 - -E9E642599D355F37C97FFD3567120B8E25C9CD43E927B3A9670FBEC5D8901419\ -22D2C3B3AD2480093799869D1E846AAB49FAB0AD26D2CE6A22219D470BCE7D77\ -7D4A21FBE9C270B57F607002F3CEF8393694CF45EE3688C11A8C56AB127A3DAF:\ -DEEE9EF5ED1516CE7E695E672B8CEE45E6CD7B36E0E6385F894BA86163F6F3E6\ -C6D4E8A81146D4017DEFDD71CBD90FA0247659B88B7CC1C894F48269FD4F1AAC\ -0A30538DFF6B3FC76CFB131C9E7965B58858AB0A43B557335912A8AA547F9568:\ -EE639A2B80F4FBBB96B82A0DA6ACF23124A1A1:\ -5D13E05491C00E0FAE1245BFE0E374F2753CBF1926352FB4180F11D740A2F6BC\ -8486C0E0F52D2990773ACFE01CD4AE6F428D55092FF33144C2D9F37692BC1230\ -89D9E77ED393C495ACBEAE7A9E927F4AF1D0E845D2EE93E733BCD0D50268A47:\ -36FDC0501B44AF:\ -832BC01DB63F958D47B6962AEAA74C0831A6AB:\ -62E46CDF100BADF4419215256BEC8427DD0388D1B60B5A8675532C0934351BA0\ -036AF58032AB6C4DB829F1A0C8217FBF2CB9C10A5C60FF285919BCAF238E89FB\ -AA4771CAD13D4A69AB2C1FFF0A44D2F9287F1E70D58210AE859074B3969EE800\ -A9D1507BA48582BD1E03CC234B0CB11408BE0932763EDC99CA4BEC6E496A4522\ -37F920972C629714EA2F1FF212460C23B66DB56BC73E94743D32D2CD3536A17A\ -136F56D7F7C24E3B8F102F48BBB21633279D3E584E71DC37B436104CA69A6BB3 - -FD7F53811D75122952DF4A9C2EECE4E7F611B7523CEF4400C31E3F80B6512669\ -455D402251FB593D8D58FABFC5F5BA30F6CB9B556CD7813B801D346FF26660B7\ -6B9950A5A49F9FE8047B1022C24FBBA9D7FEB7C61BF83B57E7C6A8A6150F04FB\ -83F6D3C51EC3023554135A169132F675F3AE2B61D72AEFF22203199DD14801C7:\ -469603512E30278CD3947595DB22EEC9826A6322ADC97344F41D740C325724C8\ -F9EFBAA7D4D803FF8C609DCD100EBC5BDFCFAD7C6A425FAEA786EA2050EBE983\ -51EA1FDA1FDF24D6947AA6B9AA23766953802F4D7D4A8ECBA06D19768A2491FF\ -B16D0EF9C43A99B5F71672FF6F0A24B444D0736D04D38A1A1322DAF6CDD88C9D:\ -A0A2CF6E5C2C3157078FE232D88778DD7A864507FEF:\ -23020176F56436414B28AA4246433075433AC50C81C803275AB4BFB132D8A42A\ -27B69E40D9A219F36546801348E0191E7CEA23AA70B7EDBD52A44D0FA48946F9\ -0211186E58DAD6C7D2E9207379F31FEF083224FDE665576AC0A1EF193CE23FE0\ -8DB42715CE27A6E00DE4F373F92A221759C1E318161302ADC3CE9F1229290D46:\ -DF72B687F62AFEA3A51195EE876E4C87708F7ABB8D2D5DD72B68256DAC6D:\ -0B333C9C486C5F3A96F37D00133ADD18113376C9BE76:\ -4156CF437A39C415B212AAA34C9AACAFA3F3113F53BB75E0BD3D759089E21754\ -EF89B4BA1A8B37E5EDA13F8A2F87D16F03F3B6FE19A5CF799B17D83F7B5E9A22\ -5F324AAD7D46E80A1DAFCA337A3F500930A7831D1F3785763EB9A6994063CED0\ -33177E1CA2770B751B3053C1445ADFEAED790E49E4685A05B9563D1EF32BD321\ -971D541B525D648EA7C8741D8FA7E46293D46A0F4345BE73EA4FAF1E4C16BCBE\ -11C53BA0FCBA2975BD37F11FE5ADA8731CAED3C403EA6E43AE47ADAA7E284334\ -04AD3ADE6AA8E12BFC374BADAAFB167F3AAF91DC6F8398003E5F8528E8D4773F\ -800D48C8EDDAEDD72A3870E97679F946CE27FB692BC11677757A28F3899A3DA8 - -FD7F53811D75122952DF4A9C2EECE4E7F611B7523CEF4400C31E3F80B6512669\ -455D402251FB593D8D58FABFC5F5BA30F6CB9B556CD7813B801D346FF26660B7\ -6B9950A5A49F9FE8047B1022C24FBBA9D7FEB7C61BF83B57E7C6A8A6150F04FB\ -83F6D3C51EC3023554135A169132F675F3AE2B61D72AEFF22203199DD14801C7:\ -469603512E30278CD3947595DB22EEC9826A6322ADC97344F41D740C325724C8\ -F9EFBAA7D4D803FF8C609DCD100EBC5BDFCFAD7C6A425FAEA786EA2050EBE983\ -51EA1FDA1FDF24D6947AA6B9AA23766953802F4D7D4A8ECBA06D19768A2491FF\ -B16D0EF9C43A99B5F71672FF6F0A24B444D0736D04D38A1A1322DAF6CDD88C9D:\ -B81133CD81461728FBE2D40682850CBC1176BBF24D9:\ -650BDDC18070CC54F0DC4DFBBF4B3144749D7D219E4122E27092FB005F82612D\ -39B652486DFF5B628FBE626B54D70FC5F3C11E5E4C7CCB5CBC78E528AC70E740\ -302FA043581A55A93EBB7143E807C056748702353A65715E39A86F3F1F90FD00\ -FBBB817D7C48A465A1DBC8DE5D8CDCE259D129D02EB673A4181B9CC88B7636A6:\ -F73BB7E5C8A5619380:\ -0AD9527B09EAD1E59B4A1CAF58C861B69A856AB8AA80:\ -C9881464A37749949D66D75CD9B7A8ACAD33DD1FAC7561F684E9CB5343D2ED15\ -969D7EDB4135518B50F0FEC9A9559C1D5E44DAB42C14BBDE2D2711EA4D02D7F2\ -7D1A9BCFEC9E8B73FA64BA3C54707FDDE7D5BE695E17FB9D259FB576FD4E57D6\ -6C8F727DC236E2A6E9FD01709D34B8D09F7DD3890F003EBE616042B4E0A8A00F\ -6C3F34DE7E002FE72A84AF8D014D64E8CD08B9B56CC3A6BBE6F966B92105A92C\ -5ABF4F2BF735670622F6213FE9739FAD65692E1C0EBF708A47E18600A22972A5\ -A3DA0F22D11C581D46F734151A083FF757E961351EB183B467A859FBB9ED1DAC\ -396FA405701FD6E3A62EB126E93648C3C6DFA9C4DBF3C005880F4799F66B310E - -# DH format: p:g:privkey:pubkey:finalkey:keylen -# where privkey is our private key, pubkey is the other users public key, and -# keylen is the output size we want (often this is ignored; if it's not there, -# keylen=0 is assumed) - -# Raw: Use the straight output of DH as the key (bad idea in practice) -[DH/Raw] -813E0E814BEE676DBD3D9D28ED73D36735D21FF6457236F68D3D6145560C0FAB:02:\ -66277A816EEEF66675319C2AEBF2E8D6154EE359370E8E1B194AAA1B9A20FABC:\ -3B4C5FEFBA6AC0A402C6AE132540B7312C93DCB3259530F3A45F7A2C408C920D:\ -5D9A64F9E54B011381308CF462C207CB0DB7630EAB026E06E5B893041207DBD8 - -8732EC631F04F7AE57F66AD4A481AB4462AE26400348AC764D679311C41C5EF6\ -5BF618A6E0742A27D59A18868FC7A131DFF158C83ADA310EFA493CB86CC2966B:02:\ -0AAA1D96792CE097CD533208550433ECDAECF557F1DB669A5A0ADE4284B5272C\ -12D46FEA0E9A549B28130CBBB76C36C9122BBD0AA3D3D1C055731DA91F28A99E:\ -675F1A653994E03B986BA4FA13A2B51C4493B310EBFA5EDE77D493CD243FEDCF\ -FFBE9731D3E50A4586EB405FBAFE446E71EB7DF638C1ED43EE3DE69A7363BB61:\ -65F79BCC47862E02DDE775B8FC7B1D0CBA094B753E502D49A446868768\ -1F178CEE98016210E136E80255FC8FDECC4D38D91EBC82C94B17652BDC7569AC383F39 - -FAD40DCD165ACBDA7D4BB0FA4830F5B27A27D9A01A66A60BB177CC31CED51DBE\ -9B269227BED5BCDD18E217A98D9BE4E55D0498717AB21A4BC1A32BD32D7BB6B3:02:\ -8A2264FE1D57CE13B9D16448C25626CB4A5E254A9A158DEC352C2CF36864F986\ -2021AFAAFDB8F5FBB51282A19A2251C91AF08173E71EED2B2BA7BD3378F3355F:\ -2B86E1EBADFBB7F10C9807602F90EB2BBFE9D77FDFA743777B8CC212892E54DB\ -D01CA7F4023EEF2A56BA9277778A80BC27EC86298E22030469A0EF3D49B57C3E:\ -290BF0265BAAD40A5853BAF3CC18B315982FF282C82D7332DA6A8826E789330D\ -875F29F57D9A622DB7DDF156CF4440EDB8455BC32859FA2A178D42528FA64136 - -95A2F3D72B3D394EFDE4C055EF6C6E4E7A598242D0F2D2F9F31A2BB5191D7CB4\ -7FDFBDE16BC277BEEBBE02079632F2374CFCF4F9719C154DF8A9BAE52A8D7127:05:\ -2B600D6C9CF358D21D41E0DEE2B3C81520FC617420F63B2ADD9E64D2B13954B1\ -AB117B40B6A1EDA56237DA1ED34DF9643FA471C2B4AFB5A00455DE9A0FBAF399:\ -6A097559AEA851EB6DB23A0D45A5060F32F50961BBBEF3D22A01B4EC229E651C\ -932958088814DFF54E9647FAAABEB555EA966542C24F28980B2A47A902798B55:\ -4ED3B2ED6B3E8446D8E1C3D2BCA00FB939464874BB6750BDE5F5DACFE9F81959\ -7E96F6B1DBA27C785553383AE87188019734A160B6BA5396760B88EC1F2A0E92 - -86B7815320710E1415DC26FC566F64866BD5AE7FD8DA39F42CFD3533C80B4E37\ -402557B45D027EBDB8BBBFE66769942408E2FB00A9433597BB20B9312A9F84A7\ -F767F7A5851A35F1A4C2A89AD1DC977F45689183C9836C96AA5DA075CFF03419\ -B45B885D83DCC4C0E3FEE66E76212CCCA1382FE314E4846EA0BEB29772FA625B:02:\ -21716E2202D31407E8471E0575465FAC1D309A30C90C9FA498F1718BA4047E7A\ -831E85E0E358C847CA4DC9DE47F007279D4BB22107889E5B7BE0D02F8519D585\ -2A1DCFD54F0AED08906797D9382BBD6F7B4712850F8981E855D6A6769807722B\ -7D93FEF6B822533C2A51CEF857AB9359A36AE6A3B7035AB6C0B7B4660953DAB9:\ -07BC618157B3FD72B2D80494B73AA7A5E5F40BF4A5537E4FD878D3CB6C9B0D70\ -D6A3CB3B35BE49259E7BFCFCBE9FE133B0133924A8CAFB4317005165416F7343\ -42F1593C71854B696ABFEA7E3AABBE99F1ABC745AF0E56AF283DEB81CDD91F26\ -B1FAF1EDE40D97B1E3370339841AA28A99A638DCA7958631BD6ED0BE6A470525:\ -2B6D9504C1D7ACAD9652CF79A6A0630EA9D19C197E908E992BC318BE2867FAE3\ -C1AD5BE83E6E4AA1CBE0347774038F20ACD790DEA82B2A5862BF21FA4A1AB464\ -AE985CA8AC4E5076AD0843E144C1305759BA047446A3A7F2426BE0C724F26900\ -9B54447B6A970876E5E4C613356805014D6060039C081AFB046863CA9BE9C848 - -# The primes and generators in the next three are from RFC 2412: "The OAKLEY -# Key Determination Protocol" -FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74\ -020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F1437\ -4FE1356D6D51C245E485B576625E7EC6F44C42E9A63A3620FFFFFFFFFFFFFFFF:02:\ -70F70628FC92FFAB93039B31EFC65E760121EA6632F9D37189767CE01D4A7C5F\ -782022DB71857281E270A7AAAD68467C2825635FC198208F749A5BF25C444D12\ -74F6F760E068FE11A7B7FAADC154EBE77DFBD2F9A399BF1710C75291E6B33E53:\ -35F4FE8E20A94672FECC2F8C24597541E7A1EDBF76C0D0A92FDC6E99CA016F4A\ -3F315E42A5CFAF0A50541E420F2ABB632A2609336077CB8E0320CAAD94796478\ -8B26954B847E08B1AE08FC3D2D0F9DCD449A890B2E4448E4B2D106DFA887FB61:\ -1835BAAC22790A32874BAD6465BBFA22BEA8A8FFF9847814273311E715FFED51\ -5AFEFAFBDB88F5F6059A874B8ECA325553D2399B36BDAF703E23D9BA426B440A\ -B9B3232319E82F60651B5D9610FF5F62D9676AB0CC691DAD9373E14407515B06 - -FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74\ -020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F1437\ -4FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED\ -EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF:02:\ -A71FB45046F3E7058521C35F08200AF51A0193D68776BABC6F5571BCF092A77D\ -D44E7B4E5AA450A7C4FD142DF648C03BA1C6944941B3A5C2F2515177B23CFC01\ -09825B85029798C6D3EF8C46D9C85A71558AF8CAA411B270EA3FDDD7D3586784\ -DF92CCFAD908096A0FB647B18A62D7E4AEDAA26D9F4E1247BB208232FA9EFB9C:\ -51F0590A0593A41182A1E132E68E33D28F67CE0BF42C6BEFF057EB10255BB78D\ -0BA2517603700FFBEE570EA1591F56468EA7AEAFBE03B10D3B7A04271B94F819\ -0031DADD2D852F8778D9A88486C89EF3C5FF4F478D4E21660A0B1542FB58FE82\ -FF89FD8E10334A455C937EA11FBE28A8188C1DA05B014FAC2A28A273AA517082:\ -78E5A35AEBE11E2A6EE2AC7CF250BB6D14D4194E4B4F863388B403A6D4F77179\ -2399B005B60876A2B54F38B10E80D7FABD5CA0260DA7F49D3C8BC319EAB0DCE9\ -8DB256D55A3D286FB4A92D426908121A48FBE08BCAFBB2CCBD79CF2422ADC0BF\ -7FD6D32BBD7179CC92C5B6F3A0A66F75521119B054C9C890A5508FB82DFCF947 - -FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74\ -020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F1437\ -4FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED\ -EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF05\ -98DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB\ -9ED529077096966D670C354E4ABC9804F1746C08CA237327FFFFFFFFFFFFFFFF:02:\ -4E83BC69DEB2E98884E5BEACD0331AD07869BC0CB3025B4882670A9AF4FF1F62\ -8FE59526733B16B43D90D976EF55BE00A95C7846F447374451565D6470373096\ -C93448F390EBE47E63F22F1840AD1E006F09A85B75EB69DCA9D3D823F9D3F32D\ -81A03DB69CE3A9D35B7999B3F1F692F795805411762570D247B55F02EB64A3C9\ -CDE4EDF05BB008BE68863FA5A01E7BAC582B189A6C5D845E1216C91F2152B708\ -DAB6F985EF5E220C86D2B5CD50739F6A8F6E86527072777EB3940E8F12FDB8FF:\ -3F11982BD3DFBFFCDB49F3B4E401A004C42DB40DB314990413064C5B63D6E0D1\ -E1A5178FAB51AF92AE6B7184DDD06F76B6EF9366247A8CD5ABBE13C61468BFCD\ -BA7CD147EA543D567433E691EFBE80DDBBED90CD2F606EE4C36E568AA00EFDC7\ -8CC2D6F8F98C09E781B120421BF98A8EEB2A1064D93085105307A46CAC09B27B\ -4D1FDD6E3000574FA348D2632865D7958BF64A3A858A8605370F73DD82A1D79F\ -66071E312328BFB4D965BC51044DB4F981C00E23128AA00ABC3F908A2690E0:\ -142195F7212A66E8E79E6CBCBB092107C38051B998A46110A759B2DD35DB9371\ -68AB11CE2AF35F8C9263C585FAE7FFF37B9080F65B6AF33A983D8177455F9D90\ -5ACADB57DBFF67A27D4947C999A2B5CAD13BEDAF05BB2A197654740F54C932D8\ -4580F6B954F57C0A42317CC77036346CB8FB3BB07A72497C74BE7A454AA98BCD\ -458F85B323119565C650AE6F884BAD489BFE34B4A7116412E5FA6920355DCA65\ -24110068A5BFA93E1CACB6A9A3B4FF47A760107AE212279D86C1A333AAC0E7BE - -[DH/KDF2(SHA-1)] -B842DBEC0BBC87979604EA9E14FEA8FB0DCB4BB09653621A7363A54A9DE9332B\ -1D878344D9D98BB06FD14C79315C7B097A7CEAAF4B0F66A422ADDFFF200CA78B:3:\ -7036B197651B364DFF16DCABAE5C6D:\ -9AA69B0066B495822A5586AF3FC19933E5EBF46B715B90DFBBD5393F58926AB3\ -8D02834A54E06798315558C7E274A193D5D9360AC855DA792BFCFE7FC635E213:\ -EDE06CF771:05 - -C5344A976F327A107D669D4835946362AC3CC1B1198770826CE684958E70B288\ -E5FD065BD2368CB172391B8D046DB93FB1C3ACC0103435EBE8A75C706F63B8E3:3:\ -EFF15251EAB928852C16CA1517E1DC:\ -4772265D1FDB3FC3F2FFB5DFE863FE8D93E871D5B20D697A49BE130DB9B0561E\ -B118B8E8513CC9A6C07CA9647363CEDBF5C0AFDEF41AF7D6BC0F0E6BFAD50672:\ -02F0A9B8677D7874494627C1AE8B1507:16 - -B9E01426AE646FF40980427636195AAA04DB2D9FC12ECDB4398812D1AE99B885\ -0396A2D6B0CFCFED532DA21A6DC58A491B75833985AF38D97727F44EFC8B2DB7:2:\ -E0E9E13CEE9C43CAE541A8ECD0FDAE:\ -9E549B7F385537D7CE2E0F332D6F98E5865DCA0E6C633B110CFAAB832B4EF75A\ -62617B58C33F9F4D0D957FB0218CB9363C2C6CC4C8DFCD9FDC35D401A69382E1:\ -6F6B153DC35648A59C2A43398318F90CC1015C:19 - -6591F4A4899EE64DCADDE9E5ABF3A9BC409857F4F7372435F4A45C27E5B0C2CE\ -3E6E35D9FE555B49B80BC978D1B4E7EAFAF7C93A08FB3D9A48C59C9BC596C720B:3:\ -BAF42B613C37B6FB6409D33D9B89DB:\ -C275194FE458D0ED562103E3FE7765AF9639B1C826BD329A60028013B8EE48245\ -487A91EE6B221D29DD30D17FF0C35B55C3CA435BE482EED716A60D266D350A7:\ -5A70601B0668BA303F8FBFC90FBA82B9D589BD586C576B414A6AF17F9B386C7020:33 - -# DLIES format is p:g:priv1:priv2:message:ciphertext - -# p and g are DH parameters -# priv1 is the private key of the party encrypting the message -# priv2 is the private key of the party decrypting the message - -# The underlying SVDP is Diffie-Hellman -[DLIES/KDF2(SHA-1)/HMAC(SHA-1)/16] -FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74\ -020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F1437\ -4FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED\ -EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF:2:\ -A6963780ACB9D2C5C410D502AE60F027A807AB5BBE5:\ -88EF9E0354C67E9EB781A8BE95DD281A215CA1DCFD3:\ -AB5BBE0D:\ -538F9C9CAC3EEB460B6D40B4AC331EBD3E2F3065E515177F47A083D1AC71533B\ -F3B2931F52D71A99CA0804A633E1948F3B286453EA6CF0DD83C6DD1D2BD93B20\ -F4942D9679CFDE5856DD81E152E1E5ADD023324B945CE68425B025AE5D0CF86C\ -0D33244A60AF6045BD57018FFE5F84A9BF82193242FF32A64691586AAA298FE5\ -31CF06A56412DFEC3AD1F50FF8CD296310E5BB4D06E15AB0 - -FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74\ -020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F1437\ -4FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED\ -EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF:2:\ -C2D89AA7566998A9E90E22F9244C84F68B55473594C:\ -AF719F4ACF99CD35BB3B71F0DCBF27F6A4268D91264:\ -C43BB390:\ -C04F6BD6D1BFBDE74E775FB391A29B2D6FB7EE84C13D2061291DBA8708E406B0\ -A6788F69F7DFEBE4CA35B31917EACD7D36CDBEBDCC51567ADF3F287F57592A0F\ -73E1C990B807E0A67ACAE3F07361DF123C59E0A95CFCA9DEB3C7CCDC47C925F9\ -75AF0948B3DE9EC1E34EED30391FD4080D77DD07F091E3D5D89BC158A96485B2\ -8477AA95D62EFB9FA1D2B44A38A698F81C9518355BAE8B74 - -FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74\ -020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F1437\ -4FE1356D6D51C245E485B576625E7EC6F44C42E9A63A3620FFFFFFFFFFFFFFFF:2:\ -B8BBACE15066DF21FC2ADF8F2FB47776D98716F5:\ -EB2EDB317A29CE6BD580D1BBDBDA5585450D9B7B:\ -3B06E0705DC9DBA971AA624393984D5B:\ -2AB9B180CEF08E761EDB4D7B7C538FBA0FD37BACE9416789A0DD6551F2DDC602\ -5C76A663F1AAD5000EC03418A6220ABA6D3DC5EA82D7340E2FFCB5665AD3A222\ -3CDFF9C39889CBE31E44CD31BCFDCEFCF2A9916FD39E2720A7B826F7E6998F73\ -4F251C71DC970AF3FB12949C14AA759966733BFC976CAD0BE71FC5DBE285200E\ -75647C62 - -FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74\ -020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F1437\ -4FE1356D6D51C245E485B576625E7EC6F44C42E9A63A3620FFFFFFFFFFFFFFFF:2:\ -B2A1040661E071F702CB2190ACAF3CC532FE1DC2:\ -8A9B563FD9A12356EC7851943CF453AF7236A596:\ -DD92A05E19BBAD4A33CEFFA0FA2727E9:\ -3F0300C53C0BB02A3EF2EFCC751EE5D98AE991730C1C2FE39D11A74D32D892AD\ -63A9EECA09BBBE606FB426E03BBD480FD224E09712BB85FE649D543CBC23113A\ -39F9102C65D31DF330ADF233735C1D60D1BCDE22744392D2D9DE50393984F276\ -A33DD85F763ED1226B88DF1662554AD27820F66A995FE1481189A2B8C3071D0C\ -32EE9960 - -FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74\ -020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F1437\ -4FE1356D6D51C245E485B576625E7EC6F44C42E9A63A3620FFFFFFFFFFFFFFFF:2:\ -C56BAF8FAC2AB023B2995F5958D5E929C7501555:\ -9F48260F8B6FF09E0F71B97EFA50E2469F316C3D:\ -174E756AF8FFB51990BF3C69688D3A7F0B388F2BCE62A095BC12CD6DA2C2AD65:\ -B99BBBC64F6320060200E6FFE7D1FE6E5EEA79DF142111AF88D377037BD91863\ -41B7A7A27F2AE8BB77282B8EA13D821DD77186412CA3B9B5E1650A0D20687B1C\ -8D556FD7D547D475F71BBD7D6417311F535A9A6D95CEA8AFD1146B1A1741828E\ -8AD46B058507A67111CB62132350EEAC1212D90535677855E17B1DA9DC4CE790\ -C4B917B1359123226FE62DCCE5475721F09CEA23 - -FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74\ -020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F1437\ -4FE1356D6D51C245E485B576625E7EC6F44C42E9A63A3620FFFFFFFFFFFFFFFF:2:\ -F54BB009FFFFD728677F76CFF2B1BDF05F24226C:\ -F6F5DFFCEA9F09A784C15BEACBDE88C0F58D19F7:\ -75DAD921764736E389C4224DAF7B278EC291E682044742E2E9C7A025B54DD62F:\ -C591E27A2C12742A959652F5F341F558CA0C7DAF2E6B5ACE32DCAAF459553BA2\ -3EF0235EAFD86A7F2D70587239D858484E5CD36122C2B9F6E410C7A9C307B2A2\ -A084BB1B634A15AC9F09E38EAF421D14C5A07B6EB5EDE6915E8DE9D3D9D01DBD\ -8822FBD79BA7FF3DF921B5451BBD9A12AB41FD4DAB829599BC2736B23753063C\ -0C5FFCBA7DB06DE26D3C441D126FC1A46531F593 diff --git a/src/botan/checks/timer.cpp b/src/botan/checks/timer.cpp deleted file mode 100644 index 3736a4779..000000000 --- a/src/botan/checks/timer.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include "timer.h" -#include -#include - -Timer::Timer(const std::string& n, u32bit e_mul) : - name(n), event_mult(e_mul) - { - time_used = 0; - timer_start = 0; - event_count = 0; - } - -void Timer::start() - { - stop(); - timer_start = get_clock(); - } - -void Timer::stop() - { - if(timer_start) - { - u64bit now = get_clock(); - - if(now > timer_start) - time_used += (now - timer_start); - - timer_start = 0; - ++event_count; - } - } - -u64bit Timer::get_clock() - { - return Botan::get_nanoseconds_clock(); - } - -std::ostream& operator<<(std::ostream& out, Timer& timer) - { - //out << timer.value() << " "; - - double events_per_second_fl = - static_cast(timer.events() / timer.seconds()); - - u64bit events_per_second = static_cast(events_per_second_fl); - - out << events_per_second << " " << timer.get_name() << " per second; "; - - std::string op_or_ops = (timer.events() == 1) ? "op" : "ops"; - - out << std::setprecision(2) << std::fixed - << timer.ms_per_event() << " ms/op" - << " (" << timer.events() << " " << op_or_ops << " in " - << timer.milliseconds() << " ms)"; - - return out; - } diff --git a/src/botan/checks/timer.h b/src/botan/checks/timer.h deleted file mode 100644 index 48d6b6805..000000000 --- a/src/botan/checks/timer.h +++ /dev/null @@ -1,50 +0,0 @@ - -#ifndef BOTAN_BENCHMARK_TIMER_H__ -#define BOTAN_BENCHMARK_TIMER_H__ - -#include -#include -#include - -using Botan::u64bit; -using Botan::u32bit; - -class Timer - { - public: - static u64bit get_clock(); - - Timer(const std::string& name, u32bit event_mult = 1); - - void start(); - - void stop(); - - u64bit value() { stop(); return time_used; } - double seconds() { return milliseconds() / 1000.0; } - double milliseconds() { return value() / 1000000.0; } - - double ms_per_event() { return milliseconds() / events(); } - double seconds_per_event() { return seconds() / events(); } - - u64bit events() const { return event_count * event_mult; } - std::string get_name() const { return name; } - private: - std::string name; - u64bit time_used, timer_start; - u64bit event_count, event_mult; - }; - -inline bool operator<(const Timer& x, const Timer& y) - { - return (x.get_name() < y.get_name()); - } - -inline bool operator==(const Timer& x, const Timer& y) - { - return (x.get_name() == y.get_name()); - } - -std::ostream& operator<<(std::ostream&, Timer&); - -#endif diff --git a/src/botan/checks/validate.cpp b/src/botan/checks/validate.cpp deleted file mode 100644 index 7384f118d..000000000 --- a/src/botan/checks/validate.cpp +++ /dev/null @@ -1,573 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -/* - Validation routines -*/ - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#if defined(BOTAN_HAS_PASSHASH9) - #include -#endif - -#if defined(BOTAN_HAS_BCRYPT) - #include -#endif - -#if defined(BOTAN_HAS_CRYPTO_BOX) - #include -#endif - -#if defined(BOTAN_HAS_RFC3394_KEYWRAP) - #include -#endif - -using namespace Botan; - -#include "validate.h" -#include "common.h" - -#define EXTRA_TESTS 0 -#define DEBUG 0 - -namespace { - -u32bit random_word(Botan::RandomNumberGenerator& rng, - u32bit max) - { -#if DEBUG - /* deterministic version for tracking down buffering bugs */ - static bool first = true; - if(first) { srand(5); first = false; } - - u32bit r = 0; - for(u32bit j = 0; j != 4; j++) - r = (r << 8) | std::rand(); - return ((r % max) + 1); // return between 1 and max inclusive -#else - /* normal version */ - u32bit r = 0; - for(u32bit j = 0; j != 4; j++) - r = (r << 8) | rng.next_byte(); - return ((r % max) + 1); // return between 1 and max inclusive -#endif - } - -bool test_cryptobox(RandomNumberGenerator& rng) - { -#if defined(BOTAN_HAS_CRYPTO_BOX) - - std::cout << "Testing CryptoBox: " << std::flush; - - const byte msg[] = { 0xAA, 0xBB, 0xCC }; - std::string ciphertext = CryptoBox::encrypt(msg, sizeof(msg), - "secret password", - rng); - - std::cout << "." << std::flush; - - try - { - std::string plaintext = CryptoBox::decrypt(ciphertext, - "secret password"); - - std::cout << "." << std::flush; - - if(plaintext.size() != sizeof(msg) || - !same_mem(reinterpret_cast(&plaintext[0]), msg, sizeof(msg))) - return false; - - std::cout << std::endl; - } - catch(std::exception& e) - { - std::cout << "Error during Cryptobox test " << e.what() << "\n"; - return false; - } -#endif - - return true; - } - -bool keywrap_test(const char* key_str, - const char* expected_str, - const char* kek_str) - { - std::cout << '.' << std::flush; - - bool ok = true; - -#if defined(BOTAN_HAS_RFC3394_KEYWRAP) - try - { - SymmetricKey key(key_str); - SymmetricKey expected(expected_str); - SymmetricKey kek(kek_str); - - Algorithm_Factory& af = global_state().algorithm_factory(); - - SecureVector enc = rfc3394_keywrap(key.bits_of(), kek, af); - - if(enc != expected.bits_of()) - { - std::cout << "NIST key wrap encryption failure: " - << hex_encode(enc) << " != " << hex_encode(expected.bits_of()) << "\n"; - ok = false; - } - - SecureVector dec = rfc3394_keyunwrap(expected.bits_of(), kek, af); - - if(dec != key.bits_of()) - { - std::cout << "NIST key wrap decryption failure: " - << hex_encode(dec) << " != " << hex_encode(key.bits_of()) << "\n"; - ok = false; - } - } - catch(std::exception& e) - { - std::cout << e.what() << "\n"; - } -#endif - - return ok; - } - -bool test_keywrap() - { - std::cout << "Testing NIST keywrap: " << std::flush; - - bool ok = true; - - ok &= keywrap_test("00112233445566778899AABBCCDDEEFF", - "1FA68B0A8112B447AEF34BD8FB5A7B829D3E862371D2CFE5", - "000102030405060708090A0B0C0D0E0F"); - - ok &= keywrap_test("00112233445566778899AABBCCDDEEFF", - "96778B25AE6CA435F92B5B97C050AED2468AB8A17AD84E5D", - "000102030405060708090A0B0C0D0E0F1011121314151617"); - - ok &= keywrap_test("00112233445566778899AABBCCDDEEFF", - "64E8C3F9CE0F5BA263E9777905818A2A93C8191E7D6E8AE7", - "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F"); - - ok &= keywrap_test("00112233445566778899AABBCCDDEEFF0001020304050607", - "031D33264E15D33268F24EC260743EDCE1C6C7DDEE725A936BA814915C6762D2", - "000102030405060708090A0B0C0D0E0F1011121314151617"); - - ok &= keywrap_test("00112233445566778899AABBCCDDEEFF0001020304050607", - "A8F9BC1612C68B3FF6E6F4FBE30E71E4769C8B80A32CB8958CD5D17D6B254DA1", - "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F"); - - ok &= keywrap_test("00112233445566778899AABBCCDDEEFF000102030405060708090A0B0C0D0E0F", - "28C9F404C4B810F4CBCCB35CFB87F8263F5786E2D80ED326CBC7F0E71A99F43BFB988B9B7A02DD21", - "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F"); - - std::cout << "\n"; - return ok; - } - -bool test_bcrypt(RandomNumberGenerator& rng) - { -#if defined(BOTAN_HAS_BCRYPT) - std::cout << "Testing Bcrypt: " << std::flush; - - bool ok = true; - - // Generated by jBCrypt 0.3 - if(!check_bcrypt("abc", - "$2a$05$DfPyLs.G6.To9fXEFgUL1O6HpYw3jIXgPcl/L3Qt3jESuWmhxtmpS")) - { - std::cout << "Fixed bcrypt test failed\n"; - ok = false; - } - - std::cout << "." << std::flush; - - // http://www.openwall.com/lists/john-dev/2011/06/19/2 - if(!check_bcrypt("\xA3", - "$2a$05$/OK.fbVrR/bpIqNJ5ianF.Sa7shbm4.OzKpvFnX1pQLmQW96oUlCq")) - { - std::cout << "Fixed bcrypt test 2 failed\n"; - ok = false; - } - - std::cout << "." << std::flush; - - for(u16bit level = 1; level != 5; ++level) - { - const std::string input = "some test passphrase 123"; - const std::string gen_hash = generate_bcrypt(input, rng, level); - - if(!check_bcrypt(input, gen_hash)) - { - std::cout << "Gen and check for bcrypt failed: " - << gen_hash << " not valid\n"; - ok = false; - } - - std::cout << "." << std::flush; - } - - std::cout << std::endl; - return ok; -#endif - } - -bool test_passhash(RandomNumberGenerator& rng) - { -#if defined(BOTAN_HAS_PASSHASH9) - - std::cout << "Testing Password Hashing: " << std::flush; - - const std::string input = "secret"; - const std::string fixed_hash = - "$9$AAAKhiHXTIUhNhbegwBXJvk03XXJdzFMy+i3GFMIBYKtthTTmXZA"; - - std::cout << "." << std::flush; - - if(!check_passhash9(input, fixed_hash)) - return false; - - std::cout << "." << std::flush; - - for(byte alg_id = 0; alg_id <= 2; ++alg_id) - { - std::string gen_hash = generate_passhash9(input, rng, 2, alg_id); - - if(!check_passhash9(input, gen_hash)) - return false; - - std::cout << "." << std::flush; - } - - std::cout << std::endl; - -#endif - - return true; - } - -} - -bool failed_test(const std::string&, std::vector, bool, bool, - std::string&, - Botan::RandomNumberGenerator& rng); - -std::vector parse(const std::string&); -void strip(std::string&); - -u32bit do_validation_tests(const std::string& filename, - RandomNumberGenerator& rng, - bool should_pass) - { - std::ifstream test_data(filename.c_str()); - bool first_mark = true; - - if(!test_data) - throw Botan::Stream_IO_Error("Couldn't open test file " + filename); - - u32bit errors = 0, alg_count = 0; - std::string algorithm; - std::string section; - std::string last_missing; - bool is_extension = false; - u32bit counter = 0; - - while(!test_data.eof()) - { - if(test_data.bad() || test_data.fail()) - throw Botan::Stream_IO_Error("File I/O error reading from " + - filename); - - std::string line; - std::getline(test_data, line); - - const std::string MARK = "# MARKER: "; - - if(line.find(MARK) != std::string::npos) - { - if(first_mark) - first_mark = false; - else if(should_pass) - std::cout << std::endl; - counter = 0; - section = line; - section.replace(section.find(MARK), MARK.size(), ""); - if(should_pass) - std::cout << "Testing " << section << ": "; - } - - strip(line); - if(line.size() == 0) continue; - - // Do line continuation - while(line[line.size()-1] == '\\' && !test_data.eof()) - { - line.replace(line.size()-1, 1, ""); - std::string nextline; - std::getline(test_data, nextline); - strip(nextline); - if(nextline.size() == 0) continue; - line += nextline; - } - - if(line[0] == '[' && line[line.size() - 1] == ']') - { - const std::string ext_mark = " "; - algorithm = line.substr(1, line.size() - 2); - is_extension = false; - if(algorithm.find(ext_mark) != std::string::npos) - { - is_extension = true; - algorithm.replace(algorithm.find(ext_mark), - ext_mark.length(), ""); - } - -#if DEBUG - if(should_pass) - std::cout << "Testing " << algorithm << "..." << std::endl; - else - std::cout << "Testing (expecting failure) " - << algorithm << "..." << std::endl; -#endif - alg_count = 0; - continue; - } - - std::vector substr = parse(line); - - alg_count++; - - if(should_pass && - (counter % 100 == 0 || (counter < 100 && counter % 10 == 0))) - { - std::cout << '.'; - std::cout.flush(); - } - counter++; - - bool failed = true; // until proven otherwise - - try - { - failed = failed_test(algorithm, substr, - is_extension, should_pass, - last_missing, rng); - } - catch(std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - if(failed && should_pass) - { - std::cout << "ERROR: \"" << algorithm << "\" failed test #" - << alg_count << std::endl; - errors++; - } - - if(!failed && !should_pass) - { - std::cout << "ERROR: \"" << algorithm << "\" passed test #" - << alg_count << " (unexpected pass)" << std::endl; - errors++; - } - - } - - if(should_pass) - std::cout << std::endl; - - if(should_pass && !test_passhash(rng)) - { - std::cout << "Passhash9 tests failed" << std::endl; - errors++; - } - - if(should_pass && !test_bcrypt(rng)) - { - std::cout << "BCrypt tests failed" << std::endl; - errors++; - } - - if(should_pass && !test_keywrap()) - { - std::cout << "NIST keywrap tests failed" << std::endl; - errors++; - } - - if(should_pass && !test_cryptobox(rng)) - { - std::cout << "Cryptobox tests failed" << std::endl; - errors++; - } - - return errors; - } - -bool failed_test(const std::string& algo, - std::vector params, - bool is_extension, bool exp_pass, - std::string& last_missing, - Botan::RandomNumberGenerator& rng) - { -#if !EXTRA_TESTS - if(!exp_pass) return true; -#endif - - std::map vars; - vars["input"] = params[0]; - vars["output"] = params[1]; - - if(params.size() > 2) - vars["key"] = params[2]; - - if(params.size() > 3) - vars["iv"] = params[3]; - - std::map results = - algorithm_kat(algo, vars, global_state().algorithm_factory()); - - if(results.size()) - { - for(std::map::const_iterator i = results.begin(); - i != results.end(); ++i) - { - if(i->second == false) - { - std::cout << algo << " test with provider " - << i->first << " failed\n"; - return true; - } - } - - return false; // OK - } - - const std::string in = params[0]; - const std::string expected = params[1]; - - params.erase(params.begin()); - params.erase(params.begin()); - - if(in.size() % 2 == 1) - { - std::cout << "Can't have an odd sized hex string!" << std::endl; - return true; - } - - Botan::Pipe pipe; - - try { - Botan::Filter* test = lookup(algo, params); - if(test == 0 && is_extension) return !exp_pass; - if(test == 0) - { - if(algo != last_missing) - { - std::cout << "WARNING: \"" + algo + "\" is not a known " - << "algorithm name." << std::endl; - last_missing = algo; - } - return 0; - } - - pipe.reset(); - pipe.append(test); - pipe.append(new Botan::Hex_Encoder); - - Botan::SecureVector data = Botan::hex_decode(in); - const byte* data_ptr = &data[0]; - - // this can help catch errors with buffering, etc - size_t len = data.size(); - pipe.start_msg(); - while(len) - { - u32bit how_much = random_word(rng, len); - pipe.write(data_ptr, how_much); - data_ptr += how_much; - len -= how_much; - } - pipe.end_msg(); - } - catch(Botan::Algorithm_Not_Found& e) - { - std::cout << "Algorithm not found: " << e.what() << std::endl; - return false; - } - catch(Botan::Exception& e) - { - if(exp_pass || DEBUG) - std::cout << "Exception caught: " << e.what() << std::endl; - return true; - } - catch(std::exception& e) - { - if(exp_pass || DEBUG) - std::cout << "Standard library exception caught: " - << e.what() << std::endl; - return true; - } - catch(...) - { - if(exp_pass || DEBUG) - std::cout << "Unknown exception caught." << std::endl; - return true; - } - - std::string output; - - if(pipe.remaining()) - { - /* Test peeking at an offset in Pipe/SecureQueue */ - size_t offset = random_word(rng, pipe.remaining() - 1); - size_t length = random_word(rng, pipe.remaining() - offset); - - Botan::SecureVector peekbuf(length); - pipe.peek(&peekbuf[0], peekbuf.size(), offset); - - output = pipe.read_all_as_string(); - - bool OK = true; - - for(size_t j = offset; j != offset+length; j++) - if(static_cast(output[j]) != peekbuf[j-offset]) - OK = false; - - if(!OK) - throw Botan::Self_Test_Failure("Peek testing failed in validate.cpp"); - } - - if(output == expected && !exp_pass) - { - std::cout << "FAILED: " << expected << " == " << std::endl - << " " << output << std::endl; - return false; - } - - if(output != expected && exp_pass) - { - std::cout << "\nFAILED: " << expected << " != " << std::endl - << " " << output << std::endl; - return true; - } - - if(output != expected && !exp_pass) return true; - - return false; - } diff --git a/src/botan/checks/validate.dat b/src/botan/checks/validate.dat deleted file mode 100644 index 3b700687f..000000000 --- a/src/botan/checks/validate.dat +++ /dev/null @@ -1,71398 +0,0 @@ -# Main Botan validation file - -# This has test vectors for block ciphers in ECB mode, stream ciphers, -# hash functions, MACs, KDFs, PBKDFs, encoders/decoders, and block -# cipher modes (CBC, CTS, CFB, OFB, CTR, XTS, and EAX) - -# MARKER: Block Ciphers - -# Block cipher format is plaintext:ciphertext:key - -[AES-128] -00112233445566778899AABBCCDDEEFF:69C4E0D86A7B0430D8CDB78070B4C55A:\ -000102030405060708090A0B0C0D0E0F - -506812A45F08C889B97F5980038B8359:D8F532538289EF7D06B506A4FD5BE9C9:\ -00010203050607080A0B0C0D0F101112 - -5C6D71CA30DE8B8B00549984D2EC7D4B:59AB30F4D4EE6E4FF9907EF65B1FB68C:\ -14151617191A1B1C1E1F202123242526 - -53F3F4C64F8616E4E7C56199F48F21F6:BF1ED2FCB2AF3FD41443B56D85025CB1:\ -28292A2B2D2E2F30323334353738393A - -A1EB65A3487165FB0F1C27FF9959F703:7316632D5C32233EDCB0780560EAE8B2:\ -3C3D3E3F41424344464748494B4C4D4E - -3553ECF0B1739558B08E350A98A39BFA:408C073E3E2538072B72625E68B8364B:\ -50515253555657585A5B5C5D5F606162 - -67429969490B9711AE2B01DC497AFDE8:E1F94DFA776597BEACA262F2F6366FEA:\ -64656667696A6B6C6E6F707173747576 - -93385C1F2AEC8BED192F5A8E161DD508:F29E986C6A1C27D7B29FFD7EE92B75F1:\ -78797A7B7D7E7F80828384858788898A - -B5BF946BE19BEB8DB3983B5F4C6E8DDB:131C886A57F8C2E713ABA6955E2B55B5:\ -8C8D8E8F91929394969798999B9C9D9E - -41321EE10E21BD907227C4450FF42324:D2AB7662DF9B8C740210E5EEB61C199D:\ -A0A1A2A3A5A6A7A8AAABACADAFB0B1B2 - -00A82F59C91C8486D12C0A80124F6089:14C10554B2859C484CAB5869BBE7C470:\ -B4B5B6B7B9BABBBCBEBFC0C1C3C4C5C6 - -7CE0FD076754691B4BBD9FAF8A1372FE:DB4D498F0A49CF55445D502C1F9AB3B5:\ -C8C9CACBCDCECFD0D2D3D4D5D7D8D9DA - -23605A8243D07764541BC5AD355B3129:6D96FEF7D66590A77A77BB2056667F7F:\ -DCDDDEDFE1E2E3E4E6E7E8E9EBECEDEE - -12A8CFA23EA764FD876232B4E842BC44:316FB68EDBA736C53E78477BF913725C:\ -F0F1F2F3F5F6F7F8FAFBFCFDFE010002 - -BCAF32415E8308B3723E5FDD853CCC80:6936F2B93AF8397FD3A771FC011C8C37:\ -04050607090A0B0C0E0F101113141516 - -89AFAE685D801AD747ACE91FC49ADDE0:F3F92F7A9C59179C1FCC2C2BA0B082CD:\ -2C2D2E2F31323334363738393B3C3D3E - -F521D07B484357C4A69E76124A634216:6A95EA659EE3889158E7A9152FF04EBC:\ -40414243454647484A4B4C4D4F505152 - -3E23B3BC065BCC152407E23896D77783:1959338344E945670678A5D432C90B93:\ -54555657595A5B5C5E5F606163646566 - -79F0FBA002BE1744670E7E99290D8F52:E49BDDD2369B83EE66E6C75A1161B394:\ -68696A6B6D6E6F70727374757778797A - -DA23FE9D5BD63E1D72E3DAFBE21A6C2A:D3388F19057FF704B70784164A74867D:\ -7C7D7E7F81828384868788898B8C8D8E - -E3F5698BA90B6A022EFD7DB2C7E6C823:23AA03E2D5E4CD24F3217E596480D1E1:\ -A4A5A6A7A9AAABACAEAFB0B1B3B4B5B6 - -BDC2691D4F1B73D2700679C3BCBF9C6E:C84113D68B666AB2A50A8BDB222E91B9:\ -E0E1E2E3E5E6E7E8EAEBECEDEFF0F1F2 - -BA74E02093217EE1BA1B42BD5624349A:AC02403981CD4340B507963DB65CB7B6:\ -08090A0B0D0E0F10121314151718191A - -B5C593B5851C57FBF8B3F57715E8F680:8D1299236223359474011F6BF5088414:\ -6C6D6E6F71727374767778797B7C7D7E - -3DA9BD9CEC072381788F9387C3BBF4EE:5A1D6AB8605505F7977E55B9A54D9B90:\ -80818283858687888A8B8C8D8F909192 - -4197F3051121702AB65D316B3C637374:72E9C2D519CF555E4208805AABE3B258:\ -94959697999A9B9C9E9FA0A1A3A4A5A6 - -9F46C62EC4F6EE3F6E8C62554BC48AB7:A8F3E81C4A23A39EF4D745DFFE026E80:\ -A8A9AAABADAEAFB0B2B3B4B5B7B8B9BA - -0220673FE9E699A4EBC8E0DBEB6979C8:546F646449D31458F9EB4EF5483AEE6C:\ -BCBDBEBFC1C2C3C4C6C7C8C9CBCCCDCE - -B2B99171337DED9BC8C2C23FF6F18867:4DBE4BC84AC797C0EE4EFB7F1A07401C:\ -D0D1D2D3D5D6D7D8DADBDCDDDFE0E1E2 - -A7FACF4E301E984E5EFEEFD645B23505:25E10BFB411BBD4D625AC8795C8CA3B3:\ -E4E5E6E7E9EAEBECEEEFF0F1F3F4F5F6 - -F7C762E4A9819160FD7ACFB6C4EEDCDD:315637405054EC803614E43DEF177579:\ -F8F9FAFBFDFEFE00020304050708090A - -9B64FC21EA08709F4915436FAA70F1BE:60C5BC8A1410247295C6386C59E572A8:\ -0C0D0E0F11121314161718191B1C1D1E - -52AF2C3DE07EE6777F55A4ABFC100B3F:01366FC8CA52DFE055D6A00A76471BA6:\ -20212223252627282A2B2C2D2F303132 - -2FCA001224386C57AA3F968CBE2C816F:ECC46595516EC612449C3F581E7D42FF:\ -34353637393A3B3C3E3F404143444546 - -4149C73658A4A9C564342755EE2C132F:6B7FFE4C602A154B06EE9C7DAB5331C9:\ -48494A4B4D4E4F50525354555758595A - -AF60005A00A1772F7C07A48A923C23D2:7DA234C14039A240DD02DD0FBF84EB67:\ -5C5D5E5F61626364666768696B6C6D6E - -6FCCBC28363759914B6F0280AFAF20C6:C7DC217D9E3604FFE7E91F080ECD5A3A:\ -70717273757677787A7B7C7D7F808182 - -7D82A43DDF4FEFA2FC5947499884D386:37785901863F5C81260EA41E7580CDA5:\ -84858687898A8B8C8E8F909193949596 - -5D5A990EAAB9093AFE4CE254DFA49EF9:A07B9338E92ED105E6AD720FCCCE9FE4:\ -98999A9B9D9E9FA0A2A3A4A5A7A8A9AA - -4CD1E2FD3F4434B553AAE453F0ED1A02:AE0FB9722418CC21A7DA816BBC61322C:\ -ACADAEAFB1B2B3B4B6B7B8B9BBBCBDBE - -5A2C9A9641D4299125FA1B9363104B5E:C826A193080FF91FFB21F71D3373C877:\ -C0C1C2C3C5C6C7C8CACBCCCDCFD0D1D2 - -B517FE34C0FA217D341740BFD4FE8DD4:1181B11B0E494E8D8B0AA6B1D5AC2C48:\ -D4D5D6D7D9DADBDCDEDFE0E1E3E4E5E6 - -014BAF2278A69D331D5180103643E99A:6743C3D1519AB4F2CD9A78AB09A511BD:\ -E8E9EAEBEDEEEFF0F2F3F4F5F7F8F9FA - -B529BD8164F20D0AA443D4932116841C:DC55C076D52BACDF2EEFD952946A439D:\ -FCFDFEFF01020304060708090B0C0D0E - -2E596DCBB2F33D4216A1176D5BD1E456:711B17B590FFC72B5C8E342B601E8003:\ -10111213151617181A1B1C1D1F202122 - -7274A1EA2B7EE2424E9A0E4673689143:19983BB0950783A537E1339F4AA21C75:\ -24252627292A2B2C2E2F303133343536 - -AE20020BD4F13E9D90140BEE3B5D26AF:3BA7762E15554169C0F4FA39164C410C:\ -38393A3B3D3E3F40424344454748494A - -BAAC065DA7AC26E855E79C8849D75A02:A0564C41245AFCA7AF8AA2E0E588EA89:\ -4C4D4E4F51525354565758595B5C5D5E - -7C917D8D1D45FAB9E2540E28832540CC:5E36A42A2E099F54AE85ECD92E2381ED:\ -60616263656667686A6B6C6D6F707172 - -BDE6F89E16DAADB0E847A2A614566A91:770036F878CD0F6CA2268172F106F2FE:\ -74757677797A7B7C7E7F808183848586 - -C9DE163725F1F5BE44EBB1DB51D07FBC:7E4E03908B716116443CCF7C94E7C259:\ -88898A8B8D8E8F90929394959798999A - -3AF57A58F0C07DFFA669572B521E2B92:482735A48C30613A242DD494C7F9185D:\ -9C9D9E9FA1A2A3A4A6A7A8A9ABACADAE - -3D5EBAC306DDE4604F1B4FBBBFCDAE55:B4C0F6C9D4D7079ADDF9369FC081061D:\ -B0B1B2B3B5B6B7B8BABBBCBDBFC0C1C2 - -C2DFA91BCEB76A1183C995020AC0B556:D5810FE0509AC53EDCD74F89962E6270:\ -C4C5C6C7C9CACBCCCECFD0D1D3D4D5D6 - -C70F54305885E9A0746D01EC56C8596B:03F17A16B3F91848269ECDD38EBB2165:\ -D8D9DADBDDDEDFE0E2E3E4E5E7E8E9EA - -C4F81B610E98012CE000182050C0C2B2:DA1248C3180348BAD4A93B4D9856C9DF:\ -ECEDEEEFF1F2F3F4F6F7F8F9FBFCFDFE - -EAAB86B1D02A95D7404EFF67489F97D4:3D10D7B63F3452C06CDF6CCE18BE0C2C:\ -00010203050607080A0B0C0D0F101112 - -7C55BDB40B88870B52BEC3738DE82886:4AB823E7477DFDDC0E6789018FCB6258:\ -14151617191A1B1C1E1F202123242526 - -BA6EAA88371FF0A3BD875E3F2A975CE0:E6478BA56A77E70CFDAA5C843ABDE30E:\ -28292A2B2D2E2F30323334353738393A - -08059130C4C24BD30CF0575E4E0373DC:1673064895FBEAF7F09C5429FF75772D:\ -3C3D3E3F41424344464748494B4C4D4E - -9A8EAB004EF53093DFCF96F57E7EDA82:4488033AE9F2EFD0CA9383BFCA1A94E9:\ -50515253555657585A5B5C5D5F606162 - -0745B589E2400C25F117B1D796C28129:978F3B8C8F9D6F46626CAC3C0BCB9217:\ -64656667696A6B6C6E6F707173747576 - -2F1777781216CEC3F044F134B1B92BBE:E08C8A7E582E15E5527F1D9E2EECB236:\ -78797A7B7D7E7F80828384858788898A - -353A779FFC541B3A3805D90CE17580FC:CEC155B76AC5FFDA4CF4F9CA91E49A7A:\ -8C8D8E8F91929394969798999B9C9D9E - -1A1EAE4415CEFCF08C4AC1C8F68BEA8F:D5AC7165763225DD2A38CDC6862C29AD:\ -A0A1A2A3A5A6A7A8AAABACADAFB0B1B2 - -E6E7E4E5B0B3B2B5D4D5AAAB16111013:03680FE19F7CE7275452020BE70E8204:\ -B4B5B6B7B9BABBBCBEBFC0C1C3C4C5C6 - -F8F9FAFBFBF8F9E677767170EFE0E1E2:461DF740C9781C388E94BB861CEB54F6:\ -C8C9CACBCDCECFD0D2D3D4D5D7D8D9DA - -63626160A1A2A3A445444B4A75727370:451BD60367F96483042742219786A074:\ -DCDDDEDFE1E2E3E4E6E7E8E9EBECEDEE - -717073720605040B2D2C2B2A05FAFBF9:E4DFA42671A02E57EF173B85C0EA9F2B:\ -F0F1F2F3F5F6F7F8FAFBFCFDFE010002 - -78797A7BEAE9E8EF3736292891969794:ED11B89E76274282227D854700A78B9E:\ -04050607090A0B0C0E0F101113141516 - -838281803231300FDDDCDBDAA0AFAEAD:433946EAA51EA47AF33895F2B90B3B75:\ -18191A1B1D1E1F20222324252728292A - -18191A1BBFBCBDBA75747B7A7F78797A:6BC6D616A5D7D0284A5910AB35022528:\ -2C2D2E2F31323334363738393B3C3D3E - -848586879B989996A3A2A5A4849B9A99:D2A920ECFE919D354B5F49EAE9719C98:\ -40414243454647484A4B4C4D4F505152 - -0001020322212027CACBF4F551565754:3A061B17F6A92885EFBD0676985B373D:\ -54555657595A5B5C5E5F606163646566 - -CECFCCCDAFACADB2515057564A454447:FADEEC16E33EA2F4688499D157E20D8F:\ -68696A6B6D6E6F70727374757778797A - -92939091CDCECFC813121D1C80878685:5CDEFEDE59601AA3C3CDA36FA6B1FA13:\ -7C7D7E7F81828384868788898B8C8D8E - -D2D3D0D16F6C6D6259585F5ED1EEEFEC:9574B00039844D92EBBA7EE8719265F8:\ -90919293959697989A9B9C9D9FA0A1A2 - -ACADAEAF878485820F0E1110D5D2D3D0:9A9CF33758671787E5006928188643FA:\ -A4A5A6A7A9AAABACAEAFB0B1B3B4B5B6 - -9091929364676619E6E7E0E1757A7B78:2CDDD634C846BA66BB46CBFEA4A674F9:\ -B8B9BABBBDBEBFC0C2C3C4C5C7C8C9CA - -BABBB8B98A89888F74757A7B92959497:D28BAE029393C3E7E26E9FAFBBB4B98F:\ -CCCDCECFD1D2D3D4D6D7D8D9DBDCDDDE - -8D8C8F8E6E6D6C633B3A3D3CCAD5D4D7:EC27529B1BEE0A9AB6A0D73EBC82E9B7:\ -E0E1E2E3E5E6E7E8EAEBECEDEFF0F1F2 - -86878485010203040808F7F767606162:3CB25C09472AFF6EE7E2B47CCD7CCB17:\ -F4F5F6F7F9FAFBFCFEFE010103040506 - -8E8F8C8D656667788A8B8C8D010E0F0C:DEE33103A7283370D725E44CA38F8FE5:\ -08090A0B0D0E0F10121314151718191A - -C8C9CACB858687807A7B7475E7E0E1E2:27F9BCD1AAC64BFFC11E7815702C1A69:\ -1C1D1E1F21222324262728292B2C2D2E - -6D6C6F6E5053525D8C8D8A8BADD2D3D0:5DF534FFAD4ED0749A9988E9849D0021:\ -30313233353637383A3B3C3D3F404142 - -28292A2B393A3B3C0607181903040506:A48BEE75DB04FB60CA2B80F752A8421B:\ -44454647494A4B4C4E4F505153545556 - -A5A4A7A6B0B3B28DDBDADDDCBDB2B3B0:024C8CF70BC86EE5CE03678CB7AF45F9:\ -58595A5B5D5E5F60626364656768696A - -323330316467666130313E3F2C2B2A29:3C19AC0F8A3A3862CE577831301E166B:\ -6C6D6E6F71727374767778797B7C7D7E - -27262524080B0A05171611100B141516:C5E355B796A57421D59CA6BE82E73BCA:\ -80818283858687888A8B8C8D8F909192 - -040506074142434435340B0AA3A4A5A6:D94033276417ABFB05A69D15B6E386E2:\ -94959697999A9B9C9E9FA0A1A3A4A5A6 - -242526271112130C61606766BDB2B3B0:24B36559EA3A9B9B958FE6DA3E5B8D85:\ -A8A9AAABADAEAFB0B2B3B4B5B7B8B9BA - -4B4A4948252627209E9F9091CEC9C8CB:20FD4FEAA0E8BF0CCE7861D74EF4CB72:\ -BCBDBEBFC1C2C3C4C6C7C8C9CBCCCDCE - -68696A6B6665646B9F9E9998D9E6E7E4:350E20D5174277B9EC314C501570A11D:\ -D0D1D2D3D5D6D7D8DADBDCDDDFE0E1E2 - -34353637C5C6C7C0F0F1EEEF7C7B7A79:87A29D61B7C604D238FE73045A7EFD57:\ -E4E5E6E7E9EAEBECEEEFF0F1F3F4F5F6 - -32333031C2C1C13F0D0C0B0A050A0B08:2C3164C1CC7D0064816BDC0FAA362C52:\ -F8F9FAFBFDFEFE00020304050708090A - -CDCCCFCEBEBDBCBBABAAA5A4181F1E1D:195FE5E8A05A2ED594F6E4400EEE10B3:\ -0C0D0E0F11121314161718191B1C1D1E - -212023223635343BA0A1A6A7445B5A59:E4663DF19B9A21A5A284C2BD7F905025:\ -20212223252627282A2B2C2D2F303132 - -0E0F0C0DA8ABAAAD2F2E515002050407:21B88714CFB4E2A933BD281A2C4743FD:\ -34353637393A3B3C3E3F404143444546 - -070605042A2928378E8F8889BDB2B3B0:CBFC3980D704FD0FC54378AB84E17870:\ -48494A4B4D4E4F50525354555758595A - -CBCAC9C893909196A9A8A7A6A5A2A3A0:BC5144BAA48BDEB8B63E22E03DA418EF:\ -5C5D5E5F61626364666768696B6C6D6E - -80818283C1C2C3CC9C9D9A9B0CF3F2F1:5A1DBAEF1EE2984B8395DA3BDFFA3CCC:\ -70717273757677787A7B7C7D7F808182 - -1213101125262720FAFBE4E5B1B6B7B4:F0B11CD0729DFCC80CEC903D97159574:\ -84858687898A8B8C8E8F909193949596 - -7F7E7D7C3033320D97969190222D2C2F:9F95314ACFDDC6D1914B7F19A9CC8209:\ -98999A9B9D9E9FA0A2A3A4A5A7A8A9AA - -4E4F4C4D484B4A4D81808F8E53545556:595736F6F0F70914A94E9E007F022519:\ -ACADAEAFB1B2B3B4B6B7B8B9BBBCBDBE - -DCDDDEDFB0B3B2BD15141312A1BEBFBC:1F19F57892CAE586FCDFB4C694DEB183:\ -C0C1C2C3C5C6C7C8CACBCCCDCFD0D1D2 - -93929190282B2A2DC4C5FAFB92959497:540700EE1F6F3DAB0B3EDDF6CAEE1EF5:\ -D4D5D6D7D9DADBDCDEDFE0E1E3E4E5E6 - -F5F4F7F6C4C7C6D9373631307E717073:14A342A91019A331687A2254E6626CA2:\ -E8E9EAEBEDEEEFF0F2F3F4F5F7F8F9FA - -93929190B6B5B4B364656A6B05020300:7B25F3C3B2EEA18D743EF283140F29FF:\ -FCFDFEFF01020304060708090B0C0D0E - -BABBB8B90D0E0F00A4A5A2A3043B3A39:46C2587D66E5E6FA7F7CA6411AD28047:\ -10111213151617181A1B1C1D1F202122 - -D8D9DADB7F7C7D7A10110E0F787F7E7D:09470E72229D954ED5EE73886DFEEBA9:\ -24252627292A2B2C2E2F303133343536 - -FEFFFCFDEFECED923B3A3D3C6768696A:D77C03DE92D4D0D79EF8D4824EF365EB:\ -38393A3B3D3E3F40424344454748494A - -D6D7D4D58A89888F96979899A5A2A3A0:1D190219F290E0F1715D152D41A23593:\ -4C4D4E4F51525354565758595B5C5D5E - -18191A1BA8ABAAA5303136379B848586:A2CD332CE3A0818769616292E87F757B:\ -60616263656667686A6B6C6D6F707172 - -6B6A6968A4A7A6A1D6D72829B0B7B6B5:D54AFA6CE60FBF9341A3690E21385102:\ -74757677797A7B7C7E7F808183848586 - -000102038A89889755545352A6A9A8AB:06E5C364DED628A3F5E05E613E356F46:\ -88898A8B8D8E8F90929394959798999A - -2D2C2F2EB3B0B1B6B6B7B8B9F2F5F4F7:EAE63C0E62556DAC85D221099896355A:\ -9C9D9E9FA1A2A3A4A6A7A8A9ABACADAE - -979695943536373856575051E09F9E9D:1FED060E2C6FC93EE764403A889985A2:\ -B0B1B2B3B5B6B7B8BABBBCBDBFC0C1C2 - -A4A5A6A7989B9A9DB1B0AFAE7A7D7C7F:C25235C1A30FDEC1C7CB5C5737B2A588:\ -C4C5C6C7C9CACBCCCECFD0D1D3D4D5D6 - -C1C0C3C2686B6A55A8A9AEAFEAE5E4E7:796DBEF95147D4D30873AD8B7B92EFC0:\ -D8D9DADBDDDEDFE0E2E3E4E5E7E8E9EA - -C1C0C3C2141716118C8D828364636261:CBCF0FB34D98D0BD5C22CE37211A46BF:\ -ECEDEEEFF1F2F3F4F6F7F8F9FBFCFDFE - -93929190CCCFCEC196979091E0FFFEFD:94B44DA6466126CAFA7C7FD09063FC24:\ -00010203050607080A0B0C0D0F101112 - -B4B5B6B7F9FAFBFC25241B1A6E69686B:D78C5B5EBF9B4DBDA6AE506C5074C8FE:\ -14151617191A1B1C1E1F202123242526 - -868784850704051AC7C6C1C08788898A:6C27444C27204B043812CF8CF95F9769:\ -28292A2B2D2E2F30323334353738393A - -F4F5F6F7AAA9A8AFFDFCF3F277707172:BE94524EE5A2AA50BBA8B75F4C0AEBCF:\ -3C3D3E3F41424344464748494B4C4D4E - -D3D2D1D00605040BC3C2C5C43E010003:A0AEAAE91BA9F31F51AEB3588CF3A39E:\ -50515253555657585A5B5C5D5F606162 - -73727170424140476A6B74750D0A0B08:275297779C28266EF9FE4C6A13C08488:\ -64656667696A6B6C6E6F707173747576 - -C2C3C0C10A0908F754555253A1AEAFAC:86523D92BB8672CB01CF4A77FD725882:\ -78797A7B7D7E7F80828384858788898A - -6D6C6F6EF8FBFAFD82838C8DF8FFFEFD:4B8327640E9F33322A04DD96FCBF9A36:\ -8C8D8E8F91929394969798999B9C9D9E - -F5F4F7F684878689A6A7A0A1D2CDCCCF:CE52AF650D088CA559425223F4D32694:\ -A0A1A2A3A5A6A7A8AAABACADAFB0B1B2 - -00000000000000000000000000000000:0EDD33D3C621E546455BD8BA1418BEC8:\ -80000000000000000000000000000000 - -00000000000000000000000000000000:C0CC0C5DA5BD63ACD44A80774FAD5222:\ -40000000000000000000000000000000 - -00000000000000000000000000000000:2F0B4B71BC77851B9CA56D42EB8FF080:\ -20000000000000000000000000000000 - -00000000000000000000000000000000:6B1E2FFFE8A114009D8FE22F6DB5F876:\ -10000000000000000000000000000000 - -00000000000000000000000000000000:9AA042C315F94CBB97B62202F83358F5:\ -08000000000000000000000000000000 - -00000000000000000000000000000000:DBE01DE67E346A800C4C4B4880311DE4:\ -04000000000000000000000000000000 - -00000000000000000000000000000000:C117D2238D53836ACD92DDCDB85D6A21:\ -02000000000000000000000000000000 - -00000000000000000000000000000000:DC0ED85DF9611ABB7249CDD168C5467E:\ -01000000000000000000000000000000 - -00000000000000000000000000000000:807D678FFF1F56FA92DE3381904842F2:\ -00800000000000000000000000000000 - -00000000000000000000000000000000:0E53B3FCAD8E4B130EF73AEB957FB402:\ -00400000000000000000000000000000 - -00000000000000000000000000000000:969FFD3B7C35439417E7BDE923035D65:\ -00200000000000000000000000000000 - -00000000000000000000000000000000:A99B512C19CA56070491166A1503BF15:\ -00100000000000000000000000000000 - -00000000000000000000000000000000:6E9985252126EE344D26AE369D2327E3:\ -00080000000000000000000000000000 - -00000000000000000000000000000000:B85F4809F904C275491FCDCD1610387E:\ -00040000000000000000000000000000 - -00000000000000000000000000000000:ED365B8D7D20C1F5D53FB94DD211DF7B:\ -00020000000000000000000000000000 - -00000000000000000000000000000000:B3A575E86A8DB4A7135D604C43304896:\ -00010000000000000000000000000000 - -00000000000000000000000000000000:89704BCB8E69F846259EB0ACCBC7F8A2:\ -00008000000000000000000000000000 - -00000000000000000000000000000000:C56EE7C92197861F10D7A92B90882055:\ -00004000000000000000000000000000 - -00000000000000000000000000000000:92F296F6846E0EAF9422A5A24A08B069:\ -00002000000000000000000000000000 - -00000000000000000000000000000000:E67E32BB8F11DEB8699318BEE9E91A60:\ -00001000000000000000000000000000 - -00000000000000000000000000000000:B08EEF85EAF626DD91B65C4C3A97D92B:\ -00000800000000000000000000000000 - -00000000000000000000000000000000:661083A6ADDCE79BB4E0859AB5538013:\ -00000400000000000000000000000000 - -00000000000000000000000000000000:55DFE2941E0EB10AFC0B333BD34DE1FE:\ -00000200000000000000000000000000 - -00000000000000000000000000000000:6BFE5945E715C9662609770F8846087A:\ -00000100000000000000000000000000 - -00000000000000000000000000000000:79848E9C30C2F8CDA8B325F7FED2B139:\ -00000080000000000000000000000000 - -00000000000000000000000000000000:7A713A53B99FEF34AC04DEEF80965BD0:\ -00000040000000000000000000000000 - -00000000000000000000000000000000:18144A2B46620D32C3C32CE52D49257F:\ -00000020000000000000000000000000 - -00000000000000000000000000000000:872E827C70887C80749F7B8BB1847C7E:\ -00000010000000000000000000000000 - -00000000000000000000000000000000:6B86C6A4FE6A60C59B1A3102F8DE49F3:\ -00000008000000000000000000000000 - -00000000000000000000000000000000:9848BB3DFDF6F532F094679A4C231A20:\ -00000004000000000000000000000000 - -00000000000000000000000000000000:925AD528E852E329B2091CD3F1C2BCEE:\ -00000002000000000000000000000000 - -00000000000000000000000000000000:80DF436544B0DD596722E46792A40CD8:\ -00000001000000000000000000000000 - -00000000000000000000000000000000:525DAF18F93E83E1E74BBBDDE4263BBA:\ -00000000800000000000000000000000 - -00000000000000000000000000000000:F65C9D2EE485D24701FFA3313B9D5BE6:\ -00000000400000000000000000000000 - -00000000000000000000000000000000:E4FC8D8BCA06425BDF94AFA40FCC14BA:\ -00000000200000000000000000000000 - -00000000000000000000000000000000:A53F0A5CA1E4E6440BB975FF320DE6F8:\ -00000000100000000000000000000000 - -00000000000000000000000000000000:D55313B9394080462E87E02899B553F0:\ -00000000080000000000000000000000 - -00000000000000000000000000000000:34A71D761F71BCD344384C7F97D27906:\ -00000000040000000000000000000000 - -00000000000000000000000000000000:233F3D819599612EBC89580245C996A8:\ -00000000020000000000000000000000 - -00000000000000000000000000000000:B4F1374E5268DBCB676E447529E53F89:\ -00000000010000000000000000000000 - -00000000000000000000000000000000:0816BD27861D2BA891D1044E39951E96:\ -00000000008000000000000000000000 - -00000000000000000000000000000000:F3BE9EA3F10C73CA64FDE5DB13A951D1:\ -00000000004000000000000000000000 - -00000000000000000000000000000000:2448086A8106FBD03048DDF857D3F1C8:\ -00000000002000000000000000000000 - -00000000000000000000000000000000:670756E65BEC8B68F03D77CDCDCE7B91:\ -00000000001000000000000000000000 - -00000000000000000000000000000000:EF968CF0D36FD6C6EFFD225F6FB44CA9:\ -00000000000800000000000000000000 - -00000000000000000000000000000000:2E8767157922E3826DDCEC1B0CC1E105:\ -00000000000400000000000000000000 - -00000000000000000000000000000000:78CE7EEC670E45A967BAB17E26A1AD36:\ -00000000000200000000000000000000 - -00000000000000000000000000000000:3C5CEE825655F098F6E81A2F417DA3FB:\ -00000000000100000000000000000000 - -00000000000000000000000000000000:67BFDB431DCE1292200BC6F5207ADB12:\ -00000000000080000000000000000000 - -00000000000000000000000000000000:7540FD38E447C0779228548747843A6F:\ -00000000000040000000000000000000 - -00000000000000000000000000000000:B85E513301F8A936EA9EC8A21A85B5E6:\ -00000000000020000000000000000000 - -00000000000000000000000000000000:04C67DBF16C11427D507A455DE2C9BC5:\ -00000000000010000000000000000000 - -00000000000000000000000000000000:03F75EB8959E55079CFFB4FF149A37B6:\ -00000000000008000000000000000000 - -00000000000000000000000000000000:74550287F666C63BB9BC7838433434B0:\ -00000000000004000000000000000000 - -00000000000000000000000000000000:7D537200195EBC3AEFD1EAAB1C385221:\ -00000000000002000000000000000000 - -00000000000000000000000000000000:CE24E4D40C68A82B535CBD3C8E21652A:\ -00000000000001000000000000000000 - -00000000000000000000000000000000:AB20072405AA8FC40265C6F1F3DC8BC0:\ -00000000000000800000000000000000 - -00000000000000000000000000000000:6CFD2CF688F566B093F67B9B3839E80A:\ -00000000000000400000000000000000 - -00000000000000000000000000000000:BD95977E6B7239D407A012C5544BF584:\ -00000000000000200000000000000000 - -00000000000000000000000000000000:DF9C0130AC77E7C72C997F587B46DBE0:\ -00000000000000100000000000000000 - -00000000000000000000000000000000:E7F1B82CADC53A648798945B34EFEFF2:\ -00000000000000080000000000000000 - -00000000000000000000000000000000:932C6DBF69255CF13EDCDB72233ACEA3:\ -00000000000000040000000000000000 - -00000000000000000000000000000000:5C76002BC7206560EFE550C80B8F12CC:\ -00000000000000020000000000000000 - -00000000000000000000000000000000:F6B7BDD1CAEEBAB574683893C4475484:\ -00000000000000010000000000000000 - -00000000000000000000000000000000:A920E37CC6DC6B31DA8C0169569F5034:\ -00000000000000008000000000000000 - -00000000000000000000000000000000:919380ECD9C778BC513148B0C28D65FD:\ -00000000000000004000000000000000 - -00000000000000000000000000000000:EE67308DD3F2D9E6C2170755E5784BE1:\ -00000000000000002000000000000000 - -00000000000000000000000000000000:3CC73E53B85609023A05E149B223AE09:\ -00000000000000001000000000000000 - -00000000000000000000000000000000:983E8AF7CF05EBB28D71EB841C9406E6:\ -00000000000000000800000000000000 - -00000000000000000000000000000000:0F3099B2D31FA5299EE5BF43193287FC:\ -00000000000000000400000000000000 - -00000000000000000000000000000000:B763D84F38C27FE6931DCEB6715D4DB6:\ -00000000000000000200000000000000 - -00000000000000000000000000000000:5AE3C9B0E3CC29C0C61565CD01F8A248:\ -00000000000000000100000000000000 - -00000000000000000000000000000000:F58083572CD90981958565D48D2DEE25:\ -00000000000000000080000000000000 - -00000000000000000000000000000000:7E6255EEF8F70C0EF10337AAB1CCCEF8:\ -00000000000000000040000000000000 - -00000000000000000000000000000000:AAD4BAC34DB22821841CE2F631961902:\ -00000000000000000020000000000000 - -00000000000000000000000000000000:D7431C0409BB1441BA9C6858DC7D4E81:\ -00000000000000000010000000000000 - -00000000000000000000000000000000:EF9298C65E339F6E801A59C626456993:\ -00000000000000000008000000000000 - -00000000000000000000000000000000:53FE29F68FF541ABC3F0EF3350B72F7E:\ -00000000000000000004000000000000 - -00000000000000000000000000000000:F6BBA5C10DB02529E2C2DA3FB582CC14:\ -00000000000000000002000000000000 - -00000000000000000000000000000000:E4239AA37FC531A386DAD1126FC0E9CD:\ -00000000000000000001000000000000 - -00000000000000000000000000000000:8F7758F857D15BBE7BFD0E416404C365:\ -00000000000000000000800000000000 - -00000000000000000000000000000000:D273EB57C687BCD1B4EA7218A509E7B8:\ -00000000000000000000400000000000 - -00000000000000000000000000000000:65D64F8D76E8B3423FA25C4EB58A210A:\ -00000000000000000000200000000000 - -00000000000000000000000000000000:623D802B4EC450D66A16625702FCDBE0:\ -00000000000000000000100000000000 - -00000000000000000000000000000000:7496460CB28E5791BAEAF9B68FB00022:\ -00000000000000000000080000000000 - -00000000000000000000000000000000:34EA600F18BB0694B41681A49D510C1D:\ -00000000000000000000040000000000 - -00000000000000000000000000000000:5F8FF0D47D5766D29B5D6E8F46423BD8:\ -00000000000000000000020000000000 - -00000000000000000000000000000000:225F9286C5928BF09F84D3F93F541959:\ -00000000000000000000010000000000 - -00000000000000000000000000000000:B21E90D25DF383416A5F072CEBEB1FFB:\ -00000000000000000000008000000000 - -00000000000000000000000000000000:4AEFCDA089318125453EB9E8EB5E492E:\ -00000000000000000000004000000000 - -00000000000000000000000000000000:4D3E75C6CD40EC4869BC85158591ADB8:\ -00000000000000000000002000000000 - -00000000000000000000000000000000:63A8B904405436A1B99D7751866771B7:\ -00000000000000000000001000000000 - -00000000000000000000000000000000:64F0DAAE47529199792EAE172BA53293:\ -00000000000000000000000800000000 - -00000000000000000000000000000000:C3EEF84BEA18225D515A8C852A9047EE:\ -00000000000000000000000400000000 - -00000000000000000000000000000000:A44AC422B47D47B81AF73B3E9AC9596E:\ -00000000000000000000000200000000 - -00000000000000000000000000000000:D16E04A8FBC435094F8D53ADF25F5084:\ -00000000000000000000000100000000 - -00000000000000000000000000000000:EF13DC34BAB03E124EEAD8B6BF44B532:\ -00000000000000000000000080000000 - -00000000000000000000000000000000:D94799075C24DCC067AF0D392049250D:\ -00000000000000000000000040000000 - -00000000000000000000000000000000:14F431771EDDCE4764C21A2254B5E3C8:\ -00000000000000000000000020000000 - -00000000000000000000000000000000:7039329F36F2ED682B02991F28D64679:\ -00000000000000000000000010000000 - -00000000000000000000000000000000:124EE24EDE5551639DB8B8B941F6141D:\ -00000000000000000000000008000000 - -00000000000000000000000000000000:C2852879A34D5184E478EC918B993FEE:\ -00000000000000000000000004000000 - -00000000000000000000000000000000:86A806A3525B93E432053C9AB5ABBEDF:\ -00000000000000000000000002000000 - -00000000000000000000000000000000:C1609BF5A4F07E37C17A36366EC23ECC:\ -00000000000000000000000001000000 - -00000000000000000000000000000000:7E81E7CB92159A51FFCEA331B1E8EA53:\ -00000000000000000000000000800000 - -00000000000000000000000000000000:37A7BE002856C5A59A6E03EAFCE7729A:\ -00000000000000000000000000400000 - -00000000000000000000000000000000:BDF98A5A4F91E890C9A1D1E5FAAB138F:\ -00000000000000000000000000200000 - -00000000000000000000000000000000:4E96ACB66E051F2BC739CC3D3E34A26B:\ -00000000000000000000000000100000 - -00000000000000000000000000000000:EE996CDD120EB86E21ECFA49E8E1FCF1:\ -00000000000000000000000000080000 - -00000000000000000000000000000000:61B9E6B579DBF6070C351A1440DD85FF:\ -00000000000000000000000000040000 - -00000000000000000000000000000000:AC369E484316440B40DFC83AA96E28E7:\ -00000000000000000000000000020000 - -00000000000000000000000000000000:0A2D16DE985C76D45C579C1159413BBE:\ -00000000000000000000000000010000 - -00000000000000000000000000000000:DA3FDC38DA1D374FA4802CDA1A1C6B0F:\ -00000000000000000000000000008000 - -00000000000000000000000000000000:B842523D4C41C2211AFE43A5800ADCE3:\ -00000000000000000000000000004000 - -00000000000000000000000000000000:9E2CDA90D8E992DBA6C73D8229567192:\ -00000000000000000000000000002000 - -00000000000000000000000000000000:D49583B781D9E20F5BE101415957FC49:\ -00000000000000000000000000001000 - -00000000000000000000000000000000:EF09DA5C12B376E458B9B8670032498E:\ -00000000000000000000000000000800 - -00000000000000000000000000000000:A96BE0463DA774461A5E1D5A9DD1AC10:\ -00000000000000000000000000000400 - -00000000000000000000000000000000:32CEE3341060790D2D4B1362EF397090:\ -00000000000000000000000000000200 - -00000000000000000000000000000000:21CEA416A3D3359D2C4D58FB6A035F06:\ -00000000000000000000000000000100 - -00000000000000000000000000000000:172AEAB3D507678ECAF455C12587ADB7:\ -00000000000000000000000000000080 - -00000000000000000000000000000000:B6F897941EF8EBFF9FE80A567EF38478:\ -00000000000000000000000000000040 - -00000000000000000000000000000000:A9723259D94A7DC662FB0C782CA3F1DD:\ -00000000000000000000000000000020 - -00000000000000000000000000000000:2F91C984B9A4839F30001B9F430493B4:\ -00000000000000000000000000000010 - -00000000000000000000000000000000:0472406345A610B048CB99EE0EF3FA0F:\ -00000000000000000000000000000008 - -00000000000000000000000000000000:F5F39086646F8C05ED16EFA4B617957C:\ -00000000000000000000000000000004 - -00000000000000000000000000000000:26D50F485A30408D5AF47A5736292450:\ -00000000000000000000000000000002 - -00000000000000000000000000000000:0545AAD56DA2A97C3663D1432A3D1C84:\ -00000000000000000000000000000001 - -80000000000000000000000000000000:3AD78E726C1EC02B7EBFE92B23D9EC34:\ -00000000000000000000000000000000 - -40000000000000000000000000000000:45BC707D29E8204D88DFBA2F0B0CAD9B:\ -00000000000000000000000000000000 - -20000000000000000000000000000000:161556838018F52805CDBD6202002E3F:\ -00000000000000000000000000000000 - -10000000000000000000000000000000:F5569B3AB6A6D11EFDE1BF0A64C6854A:\ -00000000000000000000000000000000 - -08000000000000000000000000000000:64E82B50E501FBD7DD4116921159B83E:\ -00000000000000000000000000000000 - -04000000000000000000000000000000:BAAC12FB613A7DE11450375C74034041:\ -00000000000000000000000000000000 - -02000000000000000000000000000000:BCF176A7EAAD8085EBACEA362462A281:\ -00000000000000000000000000000000 - -01000000000000000000000000000000:47711816E91D6FF059BBBF2BF58E0FD3:\ -00000000000000000000000000000000 - -00800000000000000000000000000000:B970DFBE40698AF1638FE38BD3DF3B2F:\ -00000000000000000000000000000000 - -00400000000000000000000000000000:F95B59A44F391E14CF20B74BDC32FCFF:\ -00000000000000000000000000000000 - -00200000000000000000000000000000:720F74AE04A2A435B9A7256E49378F5B:\ -00000000000000000000000000000000 - -00100000000000000000000000000000:2A0445F61D36BFA7E277070730CF76DA:\ -00000000000000000000000000000000 - -00080000000000000000000000000000:8D0536B997AEFEC1D94011BAB6699A03:\ -00000000000000000000000000000000 - -00040000000000000000000000000000:674F002E19F6ED47EFF319E51FAD4498:\ -00000000000000000000000000000000 - -00020000000000000000000000000000:292C02C5CB9163C80AC0F6CF1DD8E92D:\ -00000000000000000000000000000000 - -00010000000000000000000000000000:FA321CF18EF5FE727DD82A5C1E945141:\ -00000000000000000000000000000000 - -00008000000000000000000000000000:A5A7AFE1034C39CCCEBE3C584BC0BE05:\ -00000000000000000000000000000000 - -00004000000000000000000000000000:4FF5A52E697E77D081205DBDB21CEA39:\ -00000000000000000000000000000000 - -00002000000000000000000000000000:209E88DC94C9003000CE0769AF7B7166:\ -00000000000000000000000000000000 - -00001000000000000000000000000000:5DEE41AF864CB4B650E5F51551824D38:\ -00000000000000000000000000000000 - -00000800000000000000000000000000:A79A63FA7E4503AE6D6E09F5F9053030:\ -00000000000000000000000000000000 - -00000400000000000000000000000000:A48316749FAE7FAC7002031A6AFD8BA7:\ -00000000000000000000000000000000 - -00000200000000000000000000000000:D6EEE8A7357A0E1D64262CA9C337AC42:\ -00000000000000000000000000000000 - -00000100000000000000000000000000:B013CA8A62A858053E9FB667ED39829E:\ -00000000000000000000000000000000 - -00000080000000000000000000000000:DF6EA9E4538A45A52D5C1A43C88F4B55:\ -00000000000000000000000000000000 - -00000040000000000000000000000000:7D03BA451371591D3FD5547D9165C73B:\ -00000000000000000000000000000000 - -00000020000000000000000000000000:0E0426281A6277E186499D365D5F49FF:\ -00000000000000000000000000000000 - -00000010000000000000000000000000:DBC02169DD2059E6CC4C57C1FEDF5AB4:\ -00000000000000000000000000000000 - -00000008000000000000000000000000:826590E05D167DA6F00DCC75E22788EB:\ -00000000000000000000000000000000 - -00000004000000000000000000000000:34A73F21A04421D9786335FAAB49423A:\ -00000000000000000000000000000000 - -00000002000000000000000000000000:ED347D0E0128EE1A7392A1D36AB78AA9:\ -00000000000000000000000000000000 - -00000001000000000000000000000000:EE944B2FE6E9FC888042608DA9615F75:\ -00000000000000000000000000000000 - -00000000800000000000000000000000:9E7C85A909EF7218BA7947CFB4718F46:\ -00000000000000000000000000000000 - -00000000400000000000000000000000:811AE07A0B2B1F816587FA73699AE77D:\ -00000000000000000000000000000000 - -00000000200000000000000000000000:68466FBF43C2FE13D4B18F7EC5EA745F:\ -00000000000000000000000000000000 - -00000000100000000000000000000000:D20B015C7191B219780956E6101F9354:\ -00000000000000000000000000000000 - -00000000080000000000000000000000:5939D5C1BBF54EE1B3E326D757BDDE25:\ -00000000000000000000000000000000 - -00000000040000000000000000000000:B1FDAFE9A0240E8FFEA19CE94B5105D3:\ -00000000000000000000000000000000 - -00000000020000000000000000000000:D62962ECE02CDD68C06BDFEFB2F9495B:\ -00000000000000000000000000000000 - -00000000010000000000000000000000:B3BB2DE6F3C26587BA8BAC4F7AD9499A:\ -00000000000000000000000000000000 - -00000000008000000000000000000000:E0B1072D6D9FF703D6FBEF77852B0A6B:\ -00000000000000000000000000000000 - -00000000004000000000000000000000:D8DD51C907F478DE0228E83E61FD1758:\ -00000000000000000000000000000000 - -00000000002000000000000000000000:A42DFFE6E7C1671C06A25236FDD10017:\ -00000000000000000000000000000000 - -00000000001000000000000000000000:25ACF141550BFAB9EF451B6C6A5B2163:\ -00000000000000000000000000000000 - -00000000000800000000000000000000:4DA7FCA3949B16E821DBC84F19581018:\ -00000000000000000000000000000000 - -00000000000400000000000000000000:7D49B6347CBCC8919C7FA96A37A7A215:\ -00000000000000000000000000000000 - -00000000000200000000000000000000:900024B29A08C6721B95BA3B753DDB4D:\ -00000000000000000000000000000000 - -00000000000100000000000000000000:6D2182FB283B6934D90BA7848CAB5E66:\ -00000000000000000000000000000000 - -00000000000080000000000000000000:F73EF01B448D23A4D90DE8B2F9666E7A:\ -00000000000000000000000000000000 - -00000000000040000000000000000000:4AD9CDA2418643E9A3D926AF5E6B0412:\ -00000000000000000000000000000000 - -00000000000020000000000000000000:7CAEC8E7E5953997D545B033201C8C5B:\ -00000000000000000000000000000000 - -00000000000010000000000000000000:3C43CA1F6B6864503E27B48D88230CF5:\ -00000000000000000000000000000000 - -00000000000008000000000000000000:44F779B93108FE9FEEC880D79BA74488:\ -00000000000000000000000000000000 - -00000000000004000000000000000000:9E50E8D9CFD3A682A78E527C9072A1CF:\ -00000000000000000000000000000000 - -00000000000002000000000000000000:68D000CBC838BBE3C505D6F814C01F28:\ -00000000000000000000000000000000 - -00000000000001000000000000000000:2CB2A9FEC1ACD1D9B0FA05205E304F57:\ -00000000000000000000000000000000 - -00000000000000800000000000000000:01EB2806606E46444520A5CC6180CD4B:\ -00000000000000000000000000000000 - -00000000000000400000000000000000:DAA9B25168CC702326F217F1A0C0B162:\ -00000000000000000000000000000000 - -00000000000000200000000000000000:3E07E648975D9578D03555B1755807ED:\ -00000000000000000000000000000000 - -00000000000000100000000000000000:0B45F52E802C8B8DE09579425B80B711:\ -00000000000000000000000000000000 - -00000000000000080000000000000000:659595DA0B68F6DF0DD6CA77202986E1:\ -00000000000000000000000000000000 - -00000000000000040000000000000000:05FF42873893536E58C8FA98A45C73C4:\ -00000000000000000000000000000000 - -00000000000000020000000000000000:B5B03421DE8BBFFC4EADEC767339A9BD:\ -00000000000000000000000000000000 - -00000000000000010000000000000000:788BCD111ECF73D4E78D2E21BEF55460:\ -00000000000000000000000000000000 - -00000000000000008000000000000000:909CD9EC6790359F982DC6F2393D5315:\ -00000000000000000000000000000000 - -00000000000000004000000000000000:332950F361535FF24EFAC8C76293F12C:\ -00000000000000000000000000000000 - -00000000000000002000000000000000:A68CCD4E330FFDA9D576DA436DB53D75:\ -00000000000000000000000000000000 - -00000000000000001000000000000000:27C8A1CCFDB0B015D1ED5B3E77143791:\ -00000000000000000000000000000000 - -00000000000000000800000000000000:D76A4B95887A77DF610DD3E1D3B20325:\ -00000000000000000000000000000000 - -00000000000000000400000000000000:C068AB0DE71C66DAE83C361EF4B2D989:\ -00000000000000000000000000000000 - -00000000000000000200000000000000:C2120BCD49EDA9A288B3B4BE79AC8158:\ -00000000000000000000000000000000 - -00000000000000000100000000000000:0C546F62BF2773CD0F564FCECA7BA688:\ -00000000000000000000000000000000 - -00000000000000000080000000000000:18F3462BEDE4920213CCB66DAB1640AA:\ -00000000000000000000000000000000 - -00000000000000000040000000000000:FE42F245EDD0E24B216AEBD8B392D690:\ -00000000000000000000000000000000 - -00000000000000000020000000000000:3D3EEBC8D3D1558A194C2D00C337FF2B:\ -00000000000000000000000000000000 - -00000000000000000010000000000000:29AAEDF043E785DB42836F79BE6CBA28:\ -00000000000000000000000000000000 - -00000000000000000008000000000000:215F90C6744E2944358E78619159A611:\ -00000000000000000000000000000000 - -00000000000000000004000000000000:8606B1AA9E1D548E5442B06551E2C6DC:\ -00000000000000000000000000000000 - -00000000000000000002000000000000:987BB4B8740EC0EDE7FEA97DF033B5B1:\ -00000000000000000000000000000000 - -00000000000000000001000000000000:C0A3500DA5B0AE07D2F450930BEEDF1B:\ -00000000000000000000000000000000 - -00000000000000000000800000000000:525FDF8312FE8F32C781481A8DAAAE37:\ -00000000000000000000000000000000 - -00000000000000000000400000000000:BFD2C56AE5FB9C9DE33A6944572A6487:\ -00000000000000000000000000000000 - -00000000000000000000200000000000:7975A57A425CDF5AA1FA929101F650B0:\ -00000000000000000000000000000000 - -00000000000000000000100000000000:BF174BC49609A8709B2CD8366DAA79FE:\ -00000000000000000000000000000000 - -00000000000000000000080000000000:06C50C43222F56C874B1704E9F44BF7D:\ -00000000000000000000000000000000 - -00000000000000000000040000000000:0CEC48CD34043EA29CA3B8ED5278721E:\ -00000000000000000000000000000000 - -00000000000000000000020000000000:9548EA34A1560197B304D0ACB8A1698D:\ -00000000000000000000000000000000 - -00000000000000000000010000000000:22F9E9B1BD73B6B5B7D3062C986272F3:\ -00000000000000000000000000000000 - -00000000000000000000008000000000:FEE8E934BD0873295059002230E298D4:\ -00000000000000000000000000000000 - -00000000000000000000004000000000:1B08E2E3EB820D139CB4ABBDBE81D00D:\ -00000000000000000000000000000000 - -00000000000000000000002000000000:0021177681E4D90CEAF69DCED0145125:\ -00000000000000000000000000000000 - -00000000000000000000001000000000:4A8E314452CA8A8A3619FC54BC423643:\ -00000000000000000000000000000000 - -00000000000000000000000800000000:65047474F7222C94C6965425FF1BFD0A:\ -00000000000000000000000000000000 - -00000000000000000000000400000000:E123F551A9C4A8489622B16F961A9AA4:\ -00000000000000000000000000000000 - -00000000000000000000000200000000:EF05530948B80915028BB2B6FE429380:\ -00000000000000000000000000000000 - -00000000000000000000000100000000:72535B7FE0F0F777CEDCD55CD77E2DDF:\ -00000000000000000000000000000000 - -00000000000000000000000080000000:3423D8EFC31FA2F4C365C77D8F3B5C63:\ -00000000000000000000000000000000 - -00000000000000000000000040000000:DE0E51C264663F3C5DBC59580A98D8E4:\ -00000000000000000000000000000000 - -00000000000000000000000020000000:B2D9391166680947AB09264156719679:\ -00000000000000000000000000000000 - -00000000000000000000000010000000:10DB79F23B06D263835C424AF749ADB7:\ -00000000000000000000000000000000 - -00000000000000000000000008000000:DDF72D27E6B01EC107EA3E005B59563B:\ -00000000000000000000000000000000 - -00000000000000000000000004000000:8266B57485A5954A4236751DE07F6694:\ -00000000000000000000000000000000 - -00000000000000000000000002000000:669A501E1F1ADE6E5523DE01D6DBC987:\ -00000000000000000000000000000000 - -00000000000000000000000001000000:C20C48F2989725D461D1DB589DC0896E:\ -00000000000000000000000000000000 - -00000000000000000000000000800000:DE35158E7810ED1191825D2AA98FA97D:\ -00000000000000000000000000000000 - -00000000000000000000000000400000:4FE294F2C0F34D0671B693A237EBDDC8:\ -00000000000000000000000000000000 - -00000000000000000000000000200000:087AE74B10CCBFDF6739FEB9559C01A4:\ -00000000000000000000000000000000 - -00000000000000000000000000100000:5DC278970B7DEF77A5536C77AB59C207:\ -00000000000000000000000000000000 - -00000000000000000000000000080000:7607F078C77085184EAA9B060C1FBFFF:\ -00000000000000000000000000000000 - -00000000000000000000000000040000:9DB841531BCBE7998DAD19993FB3CC00:\ -00000000000000000000000000000000 - -00000000000000000000000000020000:D6A089B654854A94560BAE13298835B8:\ -00000000000000000000000000000000 - -00000000000000000000000000010000:E1E223C4CF90CC5D195B370D65114622:\ -00000000000000000000000000000000 - -00000000000000000000000000008000:1CBED73C50D053BDAD372CEEE54836A1:\ -00000000000000000000000000000000 - -00000000000000000000000000004000:D309E69376D257ADF2BFDA152B26555F:\ -00000000000000000000000000000000 - -00000000000000000000000000002000:740F7649117F0DEE6EAA7789A9994C36:\ -00000000000000000000000000000000 - -00000000000000000000000000001000:76AE64417C297184D668C5FD908B3CE5:\ -00000000000000000000000000000000 - -00000000000000000000000000000800:6095FEA4AA8035591F1787A819C48787:\ -00000000000000000000000000000000 - -00000000000000000000000000000400:D1FF4E7ACD1C79967FEBAB0F7465D450:\ -00000000000000000000000000000000 - -00000000000000000000000000000200:5F5AD3C42B9489557BB63BF49ECF5F8A:\ -00000000000000000000000000000000 - -00000000000000000000000000000100:FB56CC09B680B1D07C5A52149E29F07C:\ -00000000000000000000000000000000 - -00000000000000000000000000000080:FF49B8DF4A97CBE03833E66197620DAD:\ -00000000000000000000000000000000 - -00000000000000000000000000000040:5E070ADE533D2E090ED0F5BE13BC0983:\ -00000000000000000000000000000000 - -00000000000000000000000000000020:3AB4FB1D2B7BA376590A2C241D1F508D:\ -00000000000000000000000000000000 - -00000000000000000000000000000010:58B2431BC0BEDE02550F40238969EC78:\ -00000000000000000000000000000000 - -00000000000000000000000000000008:0253786E126504F0DAB90C48A30321DE:\ -00000000000000000000000000000000 - -00000000000000000000000000000004:200211214E7394DA2089B6ACD093ABE0:\ -00000000000000000000000000000000 - -00000000000000000000000000000002:0388DACE60B6A392F328C2B971B2FE78:\ -00000000000000000000000000000000 - -00000000000000000000000000000001:58E2FCCEFA7E3061367F1D57A4E7455A:\ -00000000000000000000000000000000 - -[AES-192] -00112233445566778899AABBCCDDEEFF:DDA97CA4864CDFE06EAF70A0EC0D7191:\ -000102030405060708090A0B0C0D0E0F1011121314151617 - -2D33EEF2C0430A8A9EBF45E809C40BB6:DFF4945E0336DF4C1C56BC700EFF837F:\ -00010203050607080A0B0C0D0F10111214151617191A1B1C - -6AA375D1FA155A61FB72353E0A5A8756:B6FDDEF4752765E347D5D2DC196D1252:\ -1E1F20212324252628292A2B2D2E2F30323334353738393A - -BC3736518B9490DCB8ED60EB26758ED4:D23684E3D963B3AFCF1A114ACA90CBD6:\ -3C3D3E3F41424344464748494B4C4D4E5051525355565758 - -AA214402B46CFFB9F761EC11263A311E:3A7AC027753E2A18C2CEAB9E17C11FD0:\ -5A5B5C5D5F60616264656667696A6B6C6E6F707173747576 - -02AEA86E572EEAB66B2C3AF5E9A46FD6:8F6786BD007528BA26603C1601CDD0D8:\ -78797A7B7D7E7F80828384858788898A8C8D8E8F91929394 - -E2AEF6ACC33B965C4FA1F91C75FF6F36:D17D073B01E71502E28B47AB551168B3:\ -969798999B9C9D9EA0A1A2A3A5A6A7A8AAABACADAFB0B1B2 - -0659DF46427162B9434865DD9499F91D:A469DA517119FAB95876F41D06D40FFA:\ -B4B5B6B7B9BABBBCBEBFC0C1C3C4C5C6C8C9CACBCDCECFD0 - -49A44239C748FEB456F59C276A5658DF:6091AA3B695C11F5C0B6AD26D3D862FF:\ -D2D3D4D5D7D8D9DADCDDDEDFE1E2E3E4E6E7E8E9EBECEDEE - -66208F6E9D04525BDEDB2733B6A6BE37:70F9E67F9F8DF1294131662DC6E69364:\ -F0F1F2F3F5F6F7F8FAFBFCFDFE01000204050607090A0B0C - -3393F8DFC729C97F5480B950BC9666B0:D154DCAFAD8B207FA5CBC95E9996B559:\ -0E0F10111314151618191A1B1D1E1F20222324252728292A - -606834C8CE063F3234CF1145325DBD71:4934D541E8B46FA339C805A7AEB9E5DA:\ -2C2D2E2F31323334363738393B3C3D3E4041424345464748 - -FEC1C04F529BBD17D8CECFCC4718B17F:62564C738F3EFE186E1A127A0C4D3C61:\ -4A4B4C4D4F50515254555657595A5B5C5E5F606163646566 - -32DF99B431ED5DC5ACF8CAF6DC6CE475:07805AA043986EB23693E23BEF8F3438:\ -68696A6B6D6E6F70727374757778797A7C7D7E7F81828384 - -7FDC2B746F3F665296943B83710D1F82:DF0B4931038BADE848DEE3B4B85AA44B:\ -868788898B8C8D8E90919293959697989A9B9C9D9FA0A1A2 - -8FBA1510A3C5B87E2EAA3F7A91455CA2:592D5FDED76582E4143C65099309477C:\ -A4A5A6A7A9AAABACAEAFB0B1B3B4B5B6B8B9BABBBDBEBFC0 - -2C9B468B1C2EED92578D41B0716B223B:C9B8D6545580D3DFBCDD09B954ED4E92:\ -C2C3C4C5C7C8C9CACCCDCECFD1D2D3D4D6D7D8D9DBDCDDDE - -0A2BBF0EFC6BC0034F8A03433FCA1B1A:5DCCD5D6EB7C1B42ACB008201DF707A0:\ -E0E1E2E3E5E6E7E8EAEBECEDEFF0F1F2F4F5F6F7F9FAFBFC - -25260E1F31F4104D387222E70632504B:A2A91682FFEB6ED1D34340946829E6F9:\ -FEFE01010304050608090A0B0D0E0F10121314151718191A - -C527D25A49F08A5228D338642AE65137:E45D185B797000348D9267960A68435D:\ -1C1D1E1F21222324262728292B2C2D2E3031323335363738 - -3B49FC081432F5890D0E3D87E884A69E:45E060DAE5901CDA8089E10D4F4C246B:\ -3A3B3C3D3F40414244454647494A4B4C4E4F505153545556 - -D173F9ED1E57597E166931DF2754A083:F6951AFACC0079A369C71FDCFF45DF50:\ -58595A5B5D5E5F60626364656768696A6C6D6E6F71727374 - -8C2B7CAFA5AFE7F13562DAEAE1ADEDE0:9E95E00F351D5B3AC3D0E22E626DDAD6:\ -767778797B7C7D7E80818283858687888A8B8C8D8F909192 - -AAF4EC8C1A815AEB826CAB741339532C:9CB566FF26D92DAD083B51FDC18C173C:\ -94959697999A9B9C9E9FA0A1A3A4A5A6A8A9AAABADAEAFB0 - -40BE8C5D9108E663F38F1A2395279ECF:C9C82766176A9B228EB9A974A010B4FB:\ -D0D1D2D3D5D6D7D8DADBDCDDDFE0E1E2E4E5E6E7E9EAEBEC - -0C8AD9BC32D43E04716753AA4CFBE351:D8E26AA02945881D5137F1C1E1386E88:\ -2A2B2C2D2F30313234353637393A3B3C3E3F404143444546 - -1407B1D5F87D63357C8DC7EBBAEBBFEE:C0E024CCD68FF5FFA4D139C355A77C55:\ -48494A4B4D4E4F50525354555758595A5C5D5E5F61626364 - -E62734D1AE3378C4549E939E6F123416:0B18B3D16F491619DA338640DF391D43:\ -84858687898A8B8C8E8F90919394959698999A9B9D9E9FA0 - -5A752CFF2A176DB1A1DE77F2D2CDEE41:DBE09AC8F66027BF20CB6E434F252EFC:\ -A2A3A4A5A7A8A9AAACADAEAFB1B2B3B4B6B7B8B9BBBCBDBE - -A9C8C3A4EABEDC80C64730DDD018CD88:6D04E5E43C5B9CBE05FEB9606B6480FE:\ -C0C1C2C3C5C6C7C8CACBCCCDCFD0D1D2D4D5D6D7D9DADBDC - -EE9B3DBBDB86180072130834D305999A:DD1D6553B96BE526D9FEE0FBD7176866:\ -1A1B1C1D1F20212224252627292A2B2C2E2F303133343536 - -A7FA8C3586B8EBDE7568EAD6F634A879:0260CA7E3F979FD015B0DD4690E16D2A:\ -38393A3B3D3E3F40424344454748494A4C4D4E4F51525354 - -37E0F4A87F127D45AC936FE7AD88C10A:9893734DE10EDCC8A67C3B110B8B8CC6:\ -929394959798999A9C9D9E9FA1A2A3A4A6A7A8A9ABACADAE - -3F77D8B5D92BAC148E4E46F697A535C5:93B30B750516B2D18808D710C2EE84EF:\ -464748494B4C4D4E50515253555657585A5B5C5D5F606162 - -D25EBB686C40F7E2C4DA1014936571CA:16F65FA47BE3CB5E6DFE7C6C37016C0E:\ -828384858788898A8C8D8E8F91929394969798999B9C9D9E - -4F1C769D1E5B0552C7ECA84DEA26A549:F3847210D5391E2360608E5ACB560581:\ -A0A1A2A3A5A6A7A8AAABACADAFB0B1B2B4B5B6B7B9BABBBC - -8548E2F882D7584D0FAFC54372B6633A:8754462CD223366D0753913E6AF2643D:\ -BEBFC0C1C3C4C5C6C8C9CACBCDCECFD0D2D3D4D5D7D8D9DA - -87D7A336CB476F177CD2A51AF2A62CDF:1EA20617468D1B806A1FD58145462017:\ -DCDDDEDFE1E2E3E4E6E7E8E9EBECEDEEF0F1F2F3F5F6F7F8 - -03B1FEAC668C4E485C1065DFC22B44EE:3B155D927355D737C6BE9DDA60136E2E:\ -FAFBFCFDFE01000204050607090A0B0C0E0F101113141516 - -BDA15E66819FA72D653A6866AA287962:26144F7B66DAA91B6333DBD3850502B3:\ -18191A1B1D1E1F20222324252728292A2C2D2E2F31323334 - -4D0C7A0D2505B80BF8B62CEB12467F0A:E4F9A4AB52CED8134C649BF319EBCC90:\ -363738393B3C3D3E40414243454647484A4B4C4D4F505152 - -626D34C9429B37211330986466B94E5F:B9DDD29AC6128A6CAB121E34A4C62B36:\ -54555657595A5B5C5E5F60616364656668696A6B6D6E6F70 - -333C3E6BF00656B088A17E5FF0E7F60A:6FCDDAD898F2CE4EFF51294F5EAAF5C9:\ -727374757778797A7C7D7E7F81828384868788898B8C8D8E - -687ED0CDC0D2A2BC8C466D05EF9D2891:C9A6FE2BF4028080BEA6F7FC417BD7E3:\ -90919293959697989A9B9C9D9FA0A1A2A4A5A6A7A9AAABAC - -487830E78CC56C1693E64B2A6660C7B6:6A2026846D8609D60F298A9C0673127F:\ -AEAFB0B1B3B4B5B6B8B9BABBBDBEBFC0C2C3C4C5C7C8C9CA - -7A48D6B7B52B29392AA2072A32B66160:2CB25C005E26EFEA44336C4C97A4240B:\ -CCCDCECFD1D2D3D4D6D7D8D9DBDCDDDEE0E1E2E3E5E6E7E8 - -907320E64C8C5314D10F8D7A11C8618D:496967AB8680DDD73D09A0E4C7DCC8AA:\ -EAEBECEDEFF0F1F2F4F5F6F7F9FAFBFCFEFE010103040506 - -B561F2CA2D6E65A4A98341F3ED9FF533:D5AF94DE93487D1F3A8C577CB84A66A4:\ -08090A0B0D0E0F10121314151718191A1C1D1E1F21222324 - -DF769380D212792D026F049E2E3E48EF:84BDAC569CAE2828705F267CC8376E90:\ -262728292B2C2D2E30313233353637383A3B3C3D3F404142 - -79F374BC445BDABF8FCCB8843D6054C6:F7401DDA5AD5AB712B7EB5D10C6F99B6:\ -44454647494A4B4C4E4F50515354555658595A5B5D5E5F60 - -4E02F1242FA56B05C68DBAE8FE44C9D6:1C9D54318539EBD4C3B5B7E37BF119F0:\ -626364656768696A6C6D6E6F71727374767778797B7C7D7E - -CF73C93CBFF57AC635A6F4AD2A4A1545:ACA572D65FB2764CFFD4A6ECA090EA0D:\ -80818283858687888A8B8C8D8F90919294959697999A9B9C - -9923548E2875750725B886566784C625:36D9C627B8C2A886A10CCB36EAE3DFBB:\ -9E9FA0A1A3A4A5A6A8A9AAABADAEAFB0B2B3B4B5B7B8B9BA - -4888336B723A022C9545320F836A4207:010EDBF5981E143A81D646E597A4A568:\ -BCBDBEBFC1C2C3C4C6C7C8C9CBCCCDCED0D1D2D3D5D6D7D8 - -F84D9A5561B0608B1160DEE000C41BA8:8DB44D538DC20CC2F40F3067FD298E60:\ -DADBDCDDDFE0E1E2E4E5E6E7E9EAEBECEEEFF0F1F3F4F5F6 - -C23192A0418E30A19B45AE3E3625BF22:930EB53BC71E6AC4B82972BDCD5AAFB3:\ -F8F9FAFBFDFEFE00020304050708090A0C0D0E0F11121314 - -B84E0690B28B0025381AD82A15E501A7:6C42A81EDCBC9517CCD89C30C95597B4:\ -161718191B1C1D1E20212223252627282A2B2C2D2F303132 - -ACEF5E5C108876C4F06269F865B8F0B0:DA389847AD06DF19D76EE119C71E1DD3:\ -34353637393A3B3C3E3F40414344454648494A4B4D4E4F50 - -0F1B3603E0F5DDEA4548246153A5E064:E018FDAE13D3118F9A5D1A647A3F0462:\ -525354555758595A5C5D5E5F61626364666768696B6C6D6E - -FBB63893450D42B58C6D88CD3C1809E3:2AA65DB36264239D3846180FABDFAD20:\ -70717273757677787A7B7C7D7F80818284858687898A8B8C - -4BEF736DF150259DAE0C91354E8A5F92:1472163E9A4F780F1CEB44B07ECF4FDB:\ -8E8F90919394959698999A9B9D9E9FA0A2A3A4A5A7A8A9AA - -7D2D46242056EF13D3C3FC93C128F4C7:C8273FDC8F3A9F72E91097614B62397C:\ -ACADAEAFB1B2B3B4B6B7B8B9BBBCBDBEC0C1C2C3C5C6C7C8 - -E9C1BA2DF415657A256EDB33934680FD:66C8427DCD733AAF7B3470CB7D976E3F:\ -CACBCCCDCFD0D1D2D4D5D6D7D9DADBDCDEDFE0E1E3E4E5E6 - -E23EE277B0AA0A1DFB81F7527C3514F1:146131CB17F1424D4F8DA91E6F80C1D0:\ -E8E9EAEBEDEEEFF0F2F3F4F5F7F8F9FAFCFDFEFF01020304 - -3E7445B0B63CAAF75E4A911E12106B4C:2610D0AD83659081AE085266A88770DC:\ -060708090B0C0D0E10111213151617181A1B1C1D1F202122 - -767774752023222544455A5BE6E1E0E3:38A2B5A974B0575C5D733917FB0D4570:\ -24252627292A2B2C2E2F30313334353638393A3B3D3E3F40 - -72737475717E7F7CE9E8EBEA696A6B6C:E21D401EBC60DE20D6C486E4F39A588B:\ -424344454748494A4C4D4E4F51525354565758595B5C5D5E - -DFDEDDDC25262728C9C8CFCEF1EEEFEC:E51D5F88C670B079C0CA1F0C2C4405A2:\ -60616263656667686A6B6C6D6F70717274757677797A7B7C - -FFFE0100707776755F5E5D5C7675746B:246A94788A642FB3D1B823C8762380C8:\ -7E7F80818384858688898A8B8D8E8F90929394959798999A - -E0E1E2E3424140479F9E9190292E2F2C:B80C391C5C41A4C3B30C68E0E3D7550F:\ -9C9D9E9FA1A2A3A4A6A7A8A9ABACADAEB0B1B2B3B5B6B7B8 - -2120272690EFEEED3B3A39384E4D4C4B:B77C4754FC64EB9A1154A9AF0BB1F21C:\ -BABBBCBDBFC0C1C2C4C5C6C7C9CACBCCCECFD0D1D3D4D5D6 - -ECEDEEEF5350516EA1A0A7A6A3ACADAE:FB554DE520D159A06BF219FC7F34A02F:\ -D8D9DADBDDDEDFE0E2E3E4E5E7E8E9EAECEDEEEFF1F2F3F4 - -32333C3D25222320E9E8EBEACECDCCC3:A89FBA152D76B4927BEED160DDB76C57:\ -F6F7F8F9FBFCFDFE00010203050607080A0B0C0D0F101112 - -40414243626160678A8BB4B511161714:5676EAB4A98D2E8473B3F3D46424247C:\ -14151617191A1B1C1E1F20212324252628292A2B2D2E2F30 - -94959293F5FAFBF81F1E1D1C7C7F7E79:4E8F068BD7EDE52A639036EC86C33568:\ -323334353738393A3C3D3E3F41424344464748494B4C4D4E - -BEBFBCBD191A1B14CFCEC9C8546B6A69:F0193C4D7AFF1791EE4C07EB4A1824FC:\ -50515253555657585A5B5C5D5F60616264656667696A6B6C - -2C2D3233898E8F8CBBBAB9B8333031CE:AC8686EECA9BA761AFE82D67B928C33F:\ -6E6F70717374757678797A7B7D7E7F80828384858788898A - -84858687BFBCBDBA37363938FDFAFBF8:5FAF8573E33B145B6A369CD3606AB2C9:\ -8C8D8E8F91929394969798999B9C9D9EA0A1A2A3A5A6A7A8 - -828384857669686B909192930B08090E:31587E9944AB1C16B844ECAD0DF2E7DA:\ -AAABACADAFB0B1B2B4B5B6B7B9BABBBCBEBFC0C1C3C4C5C6 - -BEBFBCBD9695948B707176779E919093:D017FECD91148ABA37F6F3068AA67D8A:\ -C8C9CACBCDCECFD0D2D3D4D5D7D8D9DADCDDDEDFE1E2E3E4 - -8B8A85846067666521202322D0D3D2DD:788EF2F021A73CBA2794B616078A8500:\ -E6E7E8E9EBECEDEEF0F1F2F3F5F6F7F8FAFBFCFDFE010002 - -76777475F1F2F3F4F8F9E6E777707172:5D1EF20DCED6BCBC12131AC7C54788AA:\ -04050607090A0B0C0E0F10111314151618191A1B1D1E1F20 - -A4A5A2A34F404142B4B5B6B727242522:B3C8CF961FAF9EA05FDDE6D1E4D8F663:\ -222324252728292A2C2D2E2F31323334363738393B3C3D3E - -94959697E1E2E3EC16171011839C9D9E:143075C70605861C7FAC6526199E459F:\ -40414243454647484A4B4C4D4F50515254555657595A5B5C - -03023D3C06010003DEDFDCDDFFFCFDE2:A5AE12EADE9A87268D898BFC8FC0252A:\ -5E5F60616364656668696A6B6D6E6F70727374757778797A - -10111213F1F2F3F4CECFC0C1DBDCDDDE:0924F7CF2E877A4819F5244A360DCEA9:\ -7C7D7E7F81828384868788898B8C8D8E9091929395969798 - -67666160724D4C4F1D1C1F1E73707176:3D9E9635AFCC3E291CC7AB3F27D1C99A:\ -9A9B9C9D9FA0A1A2A4A5A6A7A9AAABACAEAFB0B1B3B4B5B6 - -E6E7E4E5A8ABAAD584858283909F9E9D:9D80FEEBF87510E2B8FB98BB54FD788C:\ -B8B9BABBBDBEBFC0C2C3C4C5C7C8C9CACCCDCECFD1D2D3D4 - -71707F7E565150537D7C7F7E6162636C:5F9D1A082A1A37985F174002ECA01309:\ -D6D7D8D9DBDCDDDEE0E1E2E3E5E6E7E8EAEBECEDEFF0F1F2 - -64656667212223245555AAAA03040506:A390EBB1D1403930184A44B4876646E4:\ -F4F5F6F7F9FAFBFCFEFE01010304050608090A0B0D0E0F10 - -9E9F9899ABA4A5A6CFCECDCC2B28292E:700FE918981C3195BB6C4BCB46B74E29:\ -121314151718191A1C1D1E1F21222324262728292B2C2D2E - -C7C6C5C4D1D2D3DC626364653A454447:907984406F7BF2D17FB1EB15B673D747:\ -30313233353637383A3B3C3D3F40414244454647494A4B4C - -F6F7E8E9E0E7E6E51D1C1F1E5B585966:C32A956DCFC875C2AC7C7CC8B8CC26E1:\ -4E4F50515354555658595A5B5D5E5F60626364656768696A - -BCBDBEBF5D5E5F5868696667F4F3F2F1:02646E2EBFA9B820CF8424E9B9B6EB51:\ -6C6D6E6F71727374767778797B7C7D7E8081828385868788 - -40414647B0AFAEAD9B9A99989B98999E:621FDA3A5BBD54C6D3C685816BD4EAD8:\ -8A8B8C8D8F90919294959697999A9B9C9E9FA0A1A3A4A5A6 - -69686B6A0201001F0F0E0908B4BBBAB9:D4E216040426DFAF18B152469BC5AC2F:\ -A8A9AAABADAEAFB0B2B3B4B5B7B8B9BABCBDBEBFC1C2C3C4 - -C7C6C9C8D8DFDEDD5A5B5859BEBDBCB3:9D0635B9D33B6CDBD71F5D246EA17CC8:\ -C6C7C8C9CBCCCDCED0D1D2D3D5D6D7D8DADBDCDDDFE0E1E2 - -DEDFDCDD787B7A7DFFFEE1E0B2B5B4B7:10ABAD1BD9BAE5448808765583A2CC1A:\ -E4E5E6E7E9EAEBECEEEFF0F1F3F4F5F6F8F9FAFBFDFEFE00 - -4D4C4B4A606F6E6DD0D1D2D3FBF8F9FE:6891889E16544E355FF65A793C39C9A8:\ -020304050708090A0C0D0E0F11121314161718191B1C1D1E - -B7B6B5B4D7D4D5DAE5E4E3E2E1FEFFFC:CC735582E68072C163CD9DDF46B91279:\ -20212223252627282A2B2C2D2F30313234353637393A3B3C - -CECFB0B1F7F0F1F2AEAFACAD3E3D3C23:C5C68B9AEEB7F878DF578EFA562F9574:\ -3E3F40414344454648494A4B4D4E4F50525354555758595A - -CACBC8C9CDCECFC812131C1D494E4F4C:5F4764395A667A47D73452955D0D2CE8:\ -5C5D5E5F61626364666768696B6C6D6E7071727375767778 - -9D9C9B9AD22D2C2FB1B0B3B20C0F0E09:701448331F66106CEFDDF1EB8267C357:\ -7A7B7C7D7F80818284858687898A8B8C8E8F909193949596 - -7A7B787964676659959493924F404142:CB3EE56D2E14B4E1941666F13379D657:\ -98999A9B9D9E9FA0A2A3A4A5A7A8A9AAACADAEAFB1B2B3B4 - -AAABA4A5CEC9C8CB1F1E1D1CABA8A9A6:9FE16EFD18AB6E1981191851FEDB0764:\ -B6B7B8B9BBBCBDBEC0C1C2C3C5C6C7C8CACBCCCDCFD0D1D2 - -93929190282B2A2DC4C5FAFB92959497:3DC9BA24E1B223589B147ADCEB4C8E48:\ -D4D5D6D7D9DADBDCDEDFE0E1E3E4E5E6E8E9EAEBEDEEEFF0 - -EFEEE9E8DED1D0D339383B3A888B8A8D:1C333032682E7D4DE5E5AFC05C3E483C:\ -F2F3F4F5F7F8F9FAFCFDFEFF01020304060708090B0C0D0E - -7F7E7D7CA2A1A0AF78797E7F112E2F2C:D593CC99A95AFEF7E92038E05A59D00A:\ -10111213151617181A1B1C1D1F20212224252627292A2B2C - -84859A9B2B2C2D2E868784852625245B:51E7F96F53B4353923452C222134E1EC:\ -2E2F30313334353638393A3B3D3E3F40424344454748494A - -B0B1B2B3070405026869666710171615:4075B357A1A2B473400C3B25F32F81A4:\ -4C4D4E4F51525354565758595B5C5D5E6061626365666768 - -ACADAAABBDA2A3A00D0C0F0E595A5B5C:302E341A3EBCD74F0D55F61714570284:\ -6A6B6C6D6F70717274757677797A7B7C7E7F808183848586 - -121310115655544B5253545569666764:57ABDD8231280DA01C5042B78CF76522:\ -88898A8B8D8E8F90929394959798999A9C9D9E9FA1A2A3A4 - -DEDFD0D166616063EAEBE8E94142434C:17F9EA7EEA17AC1ADF0E190FEF799E92:\ -A6A7A8A9ABACADAEB0B1B2B3B5B6B7B8BABBBCBDBFC0C1C2 - -DBDAD9D81417161166677879E0E7E6E5:2E1BDD563DD87EE5C338DD6D098D0A7A:\ -C4C5C6C7C9CACBCCCECFD0D1D3D4D5D6D8D9DADBDDDEDFE0 - -6A6B6C6DE0EFEEED2B2A2928C0C3C2C5:EB869996E6F8BFB2BFDD9E0C4504DBB2:\ -E2E3E4E5E7E8E9EAECEDEEEFF1F2F3F4F6F7F8F9FBFCFDFE - -B1B0B3B21714151A1A1B1C1D5649484B:C2E01549E9DECF317468B3E018C61BA8:\ -00010203050607080A0B0C0D0F10111214151617191A1B1C - -39380706A3A4A5A6C4C5C6C77271706F:8DA875D033C01DD463B244A1770F4A22:\ -1E1F20212324252628292A2B2D2E2F30323334353738393A - -5C5D5E5F1013121539383736E2E5E4E7:8BA0DCF3A186844F026D022F8839D696:\ -3C3D3E3F41424344464748494B4C4D4E5051525355565758 - -43424544EAD5D4D72E2F2C2D64676661:E9691FF9A6CC6970E51670A0FD5B88C1:\ -5A5B5C5D5F60616264656667696A6B6C6E6F707173747576 - -55545756989B9A65F8F9FEFF18171615:F2BAEC06FAEED30F88EE63BA081A6E5B:\ -78797A7B7D7E7F80828384858788898A8C8D8E8F91929394 - -05040B0A525554573C3D3E3F4A494847:9C39D4C459AE5753394D6094ADC21E78:\ -969798999B9C9D9EA0A1A2A3A5A6A7A8AAABACADAFB0B1B2 - -14151617595A5B5C8584FBFA8E89888B:6345B532A11904502EA43BA99C6BD2B2:\ -B4B5B6B7B9BABBBCBEBFC0C1C3C4C5C6C8C9CACBCDCECFD0 - -7C7D7A7BFDF2F3F029282B2A51525354:5FFAE3061A95172E4070CEDCE1E428C8:\ -D2D3D4D5D7D8D9DADCDDDEDFE1E2E3E4E6E7E8E9EBECEDEE - -38393A3B1E1D1C1341404746C23D3C3E:0A4566BE4CDF9ADCE5DEC865B5AB34CD:\ -F0F1F2F3F5F6F7F8FAFBFCFDFE01000204050607090A0B0C - -8D8C939240474645818083827C7F7E41:CA17FCCE79B7404F2559B22928F126FB:\ -0E0F10111314151618191A1B1D1E1F20222324252728292A - -3B3A39381A19181F32333C3D45424340:97CA39B849ED73A6470A97C821D82F58:\ -2C2D2E2F31323334363738393B3C3D3E4041424345464748 - -F0F1F6F738272625828380817F7C7D7A:8198CB06BC684C6D3E9B7989428DCF7A:\ -4A4B4C4D4F50515254555657595A5B5C5E5F606163646566 - -89888B8A0407061966676061141B1A19:F53C464C705EE0F28D9A4C59374928BD:\ -68696A6B6D6E6F70727374757778797A7C7D7E7F81828384 - -D3D2DDDCAAADACAF9C9D9E9FE8EBEAE5:9ADB3D4CCA559BB98C3E2ED73DBF1154:\ -868788898B8C8D8E90919293959697989A9B9C9D9FA0A1A2 - -00000000000000000000000000000000:DE885DC87F5A92594082D02CC1E1B42C:\ -800000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C749194F94673F9DD2AA1932849630C1:\ -400000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:0CEF643313912934D310297B90F56ECC:\ -200000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C4495D39D4A553B225FBA02A7B1B87E1:\ -100000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:636D10B1A0BCAB541D680A7970ADC830:\ -080000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:07CF045786BD6AFCC147D99E45A901A7:\ -040000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:6A8E3F425A7599348F95398448827976:\ -020000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5518276836148A00D91089A20D8BFF57:\ -010000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F267E07B5E87E3BC20B969C61D4FCB06:\ -008000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5A1CDE69571D401BFCD20DEBADA2212C:\ -004000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:70A9057263254701D12ADD7D74CD509E:\ -002000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:35713A7E108031279388A33A0FE2E190:\ -001000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E74EDE82B1254714F0C7B4B243108655:\ -000800000000000000000000000000000000000000000000 - -00000000000000000000000000000000:39272E3100FAA37B55B862320D1B3EB3:\ -000400000000000000000000000000000000000000000000 - -00000000000000000000000000000000:6D6E24C659FC5AEF712F77BCA19C9DD0:\ -000200000000000000000000000000000000000000000000 - -00000000000000000000000000000000:76D18212F972370D3CC2C6C372C6CF2F:\ -000100000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B21A1F0BAE39E55C7594ED570A7783EA:\ -000080000000000000000000000000000000000000000000 - -00000000000000000000000000000000:77DE202111895AC48DD1C974B358B458:\ -000040000000000000000000000000000000000000000000 - -00000000000000000000000000000000:67810B311969012AAF7B504FFAF39FD1:\ -000020000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C22EA2344D3E9417A6BA07843E713AEA:\ -000010000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C79CAF4B97BEE0BD0630AB354539D653:\ -000008000000000000000000000000000000000000000000 - -00000000000000000000000000000000:135FD1AF761D9AE23DF4AA6B86760DB4:\ -000004000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D4659D0B06ACD4D56AB8D11A16FD83B9:\ -000002000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F7D270028FC188E4E4F35A4AAA25D4D4:\ -000001000000000000000000000000000000000000000000 - -00000000000000000000000000000000:345CAE5A8C9620A9913D5473985852FF:\ -000000800000000000000000000000000000000000000000 - -00000000000000000000000000000000:4E8980ADDE60B0E42C0B287FEA41E729:\ -000000400000000000000000000000000000000000000000 - -00000000000000000000000000000000:F11B6D74E1F15155633DC39743C1A527:\ -000000200000000000000000000000000000000000000000 - -00000000000000000000000000000000:9C87916C0180064F9D3179C6F5DD8C35:\ -000000100000000000000000000000000000000000000000 - -00000000000000000000000000000000:71AB186BCAEA518E461D4F7FAD230E6A:\ -000000080000000000000000000000000000000000000000 - -00000000000000000000000000000000:C4A31BBC3DAAF742F9141C2A5001A49C:\ -000000040000000000000000000000000000000000000000 - -00000000000000000000000000000000:E7C47B7B1D40F182A8928C8A55671D07:\ -000000020000000000000000000000000000000000000000 - -00000000000000000000000000000000:8E17F294B28FA373C6249538868A7EEF:\ -000000010000000000000000000000000000000000000000 - -00000000000000000000000000000000:754404096A5CBC08AF09491BE249141A:\ -000000008000000000000000000000000000000000000000 - -00000000000000000000000000000000:101CB56E55F05D86369B6D1069204F0A:\ -000000004000000000000000000000000000000000000000 - -00000000000000000000000000000000:73F19BB6604205C6EE227B9759791E41:\ -000000002000000000000000000000000000000000000000 - -00000000000000000000000000000000:6270C0028F0D136C37A56B2CB64D24D6:\ -000000001000000000000000000000000000000000000000 - -00000000000000000000000000000000:A3BF7C2C38D1114A087ECF212E694346:\ -000000000800000000000000000000000000000000000000 - -00000000000000000000000000000000:49CABFF2CEF7D9F95F5EFB1F7A1A7DDE:\ -000000000400000000000000000000000000000000000000 - -00000000000000000000000000000000:EC7F8A47CC59B849469255AD49F62752:\ -000000000200000000000000000000000000000000000000 - -00000000000000000000000000000000:68FAE55A13EFAF9B07B3552A8A0DC9D1:\ -000000000100000000000000000000000000000000000000 - -00000000000000000000000000000000:211E6B19C69FAEF481F64F24099CDA65:\ -000000000080000000000000000000000000000000000000 - -00000000000000000000000000000000:DBB918C75BC5732416F79FB0C8EE4C5C:\ -000000000040000000000000000000000000000000000000 - -00000000000000000000000000000000:98D494E5D963A6C8B92536D3EC35E3FD:\ -000000000020000000000000000000000000000000000000 - -00000000000000000000000000000000:C9A873404D403D6F074190851D67781A:\ -000000000010000000000000000000000000000000000000 - -00000000000000000000000000000000:073AEF4A7C77D921928CB0DD9D27CAE7:\ -000000000008000000000000000000000000000000000000 - -00000000000000000000000000000000:89BDE25CEE36FDE769A10E52298CF90F:\ -000000000004000000000000000000000000000000000000 - -00000000000000000000000000000000:26D0842D37EAD38557C65E0A5E5F122E:\ -000000000002000000000000000000000000000000000000 - -00000000000000000000000000000000:F8294BA375AF46B3F22905BBAFFAB107:\ -000000000001000000000000000000000000000000000000 - -00000000000000000000000000000000:2AD63EB4D0D43813B979CF72B35BDB94:\ -000000000000800000000000000000000000000000000000 - -00000000000000000000000000000000:7710C171EE0F4EFA39BE4C995180181D:\ -000000000000400000000000000000000000000000000000 - -00000000000000000000000000000000:C0CB2B40DBA7BE8C0698FAE1E4B80FF8:\ -000000000000200000000000000000000000000000000000 - -00000000000000000000000000000000:97970E505194622FD955CA1B80B784E9:\ -000000000000100000000000000000000000000000000000 - -00000000000000000000000000000000:7CB1824B29F850900DF2CAD9CF04C1CF:\ -000000000000080000000000000000000000000000000000 - -00000000000000000000000000000000:FDF4F036BB988E42F2F62DE63FE19A64:\ -000000000000040000000000000000000000000000000000 - -00000000000000000000000000000000:08908CFE2C82606B2C15DF61B75CF3E2:\ -000000000000020000000000000000000000000000000000 - -00000000000000000000000000000000:B3AA689EF2D07FF365ACB9ADBA2AF07A:\ -000000000000010000000000000000000000000000000000 - -00000000000000000000000000000000:F2672CD8EAA3B98776660D0263656F5C:\ -000000000000008000000000000000000000000000000000 - -00000000000000000000000000000000:5BDEAC00E986687B9E1D94A0DA7BF452:\ -000000000000004000000000000000000000000000000000 - -00000000000000000000000000000000:E6D57BD66EA1627363EE0C4B711B0B21:\ -000000000000002000000000000000000000000000000000 - -00000000000000000000000000000000:03730DD6ACB4AD9996A63BE7765EC06F:\ -000000000000001000000000000000000000000000000000 - -00000000000000000000000000000000:A470E361AA5437B2BE8586D2F78DE582:\ -000000000000000800000000000000000000000000000000 - -00000000000000000000000000000000:7567FEEFA559911FD479670246B484E3:\ -000000000000000400000000000000000000000000000000 - -00000000000000000000000000000000:29829DEA15A4E7A4C049045E7B106E29:\ -000000000000000200000000000000000000000000000000 - -00000000000000000000000000000000:A407834C3D89D48A2CB7A152208FA4ED:\ -000000000000000100000000000000000000000000000000 - -00000000000000000000000000000000:68F948053F78FEF0D8F9FE7EF3A89819:\ -000000000000000080000000000000000000000000000000 - -00000000000000000000000000000000:B605174CAB13AD8FE3B20DA3AE7B0234:\ -000000000000000040000000000000000000000000000000 - -00000000000000000000000000000000:CCAB8F0AEBFF032893996D383CBFDBFA:\ -000000000000000020000000000000000000000000000000 - -00000000000000000000000000000000:AF14BB8428C9730B7DC17B6C1CBEBCC8:\ -000000000000000010000000000000000000000000000000 - -00000000000000000000000000000000:5A41A21332040877EB7B89E8E80D19FE:\ -000000000000000008000000000000000000000000000000 - -00000000000000000000000000000000:AC1BA52EFCDDE368B1596F2F0AD893A0:\ -000000000000000004000000000000000000000000000000 - -00000000000000000000000000000000:41B890E31B9045E6ECDC1BC3F2DB9BCC:\ -000000000000000002000000000000000000000000000000 - -00000000000000000000000000000000:4D54A549728E55B19A23660424A0F146:\ -000000000000000001000000000000000000000000000000 - -00000000000000000000000000000000:A917581F41C47C7DDCFFD5285E2D6A61:\ -000000000000000000800000000000000000000000000000 - -00000000000000000000000000000000:604DF24BA6099B93A7405A524D764FCB:\ -000000000000000000400000000000000000000000000000 - -00000000000000000000000000000000:78D9D156F28B190E232D1B7AE7FC730A:\ -000000000000000000200000000000000000000000000000 - -00000000000000000000000000000000:5A12C39E442CD7F27B3CD77F5D029582:\ -000000000000000000100000000000000000000000000000 - -00000000000000000000000000000000:FF2BF2F47CF7B0F28EE25AF95DBF790D:\ -000000000000000000080000000000000000000000000000 - -00000000000000000000000000000000:1863BB7D193BDA39DF090659EB8AE48B:\ -000000000000000000040000000000000000000000000000 - -00000000000000000000000000000000:38178F2FB4CFCF31E87E1ABCDC023EB5:\ -000000000000000000020000000000000000000000000000 - -00000000000000000000000000000000:F5B13DC690CC0D541C6BA533023DC8C9:\ -000000000000000000010000000000000000000000000000 - -00000000000000000000000000000000:48EC05238D7375D126DC9D08884D4827:\ -000000000000000000008000000000000000000000000000 - -00000000000000000000000000000000:ACD0D81139691B310B92A6E377BACC87:\ -000000000000000000004000000000000000000000000000 - -00000000000000000000000000000000:9A4AA43578B55CE9CC178F0D2E162C79:\ -000000000000000000002000000000000000000000000000 - -00000000000000000000000000000000:08AD94BC737DB3C87D49B9E01B720D81:\ -000000000000000000001000000000000000000000000000 - -00000000000000000000000000000000:3BCFB2D5D210E8332900C5991D551A2A:\ -000000000000000000000800000000000000000000000000 - -00000000000000000000000000000000:C5F0C6B9397ACB29635CE1A0DA2D8D96:\ -000000000000000000000400000000000000000000000000 - -00000000000000000000000000000000:844A29EFC693E2FA9900F87FBF5DCD5F:\ -000000000000000000000200000000000000000000000000 - -00000000000000000000000000000000:5126A1C41051FEA158BE41200E1EA59D:\ -000000000000000000000100000000000000000000000000 - -00000000000000000000000000000000:302123CA7B4F46D667FFFB0EB6AA7703:\ -000000000000000000000080000000000000000000000000 - -00000000000000000000000000000000:A9D16BCE7DB5C024277709EE2A88D91A:\ -000000000000000000000040000000000000000000000000 - -00000000000000000000000000000000:F013C5EC123A26CFC34B598C992A996B:\ -000000000000000000000020000000000000000000000000 - -00000000000000000000000000000000:E38A825CD971A1D2E56FB1DBA248F2A8:\ -000000000000000000000010000000000000000000000000 - -00000000000000000000000000000000:6E701773C0311E0BD4C5A097406D22B3:\ -000000000000000000000008000000000000000000000000 - -00000000000000000000000000000000:754262CEF0C64BE4C3E67C35ABE439F7:\ -000000000000000000000004000000000000000000000000 - -00000000000000000000000000000000:C9C2D4C47DF7D55CFA0EE5F1FE5070F4:\ -000000000000000000000002000000000000000000000000 - -00000000000000000000000000000000:6AB4BEA85B172573D8BD2D5F4329F13D:\ -000000000000000000000001000000000000000000000000 - -00000000000000000000000000000000:11F03EF28E2CC9AE5165C587F7396C8C:\ -000000000000000000000000800000000000000000000000 - -00000000000000000000000000000000:0682F2EB1A68BAC7949922C630DD27FA:\ -000000000000000000000000400000000000000000000000 - -00000000000000000000000000000000:ABB0FEC0413D659AFE8E3DCF6BA873BB:\ -000000000000000000000000200000000000000000000000 - -00000000000000000000000000000000:FE86A32E19F805D6569B2EFADD9C92AA:\ -000000000000000000000000100000000000000000000000 - -00000000000000000000000000000000:E434E472275D1837D3D717F2EECC88C3:\ -000000000000000000000000080000000000000000000000 - -00000000000000000000000000000000:74E57DCD12A21D26EF8ADAFA5E60469A:\ -000000000000000000000000040000000000000000000000 - -00000000000000000000000000000000:C275429D6DAD45DDD423FA63C816A9C1:\ -000000000000000000000000020000000000000000000000 - -00000000000000000000000000000000:7F6EC1A9AE729E86F7744AED4B8F4F07:\ -000000000000000000000000010000000000000000000000 - -00000000000000000000000000000000:48B5A71AB9292BD4F9E608EF102636B2:\ -000000000000000000000000008000000000000000000000 - -00000000000000000000000000000000:076FB95D5F536C78CBED3181BCCF3CF1:\ -000000000000000000000000004000000000000000000000 - -00000000000000000000000000000000:BFA76BEA1E684FD3BF9256119EE0BC0F:\ -000000000000000000000000002000000000000000000000 - -00000000000000000000000000000000:7D395923D56577F3FF8670998F8C4A71:\ -000000000000000000000000001000000000000000000000 - -00000000000000000000000000000000:BA02C986E529AC18A882C34BA389625F:\ -000000000000000000000000000800000000000000000000 - -00000000000000000000000000000000:3DFCF2D882AFE75D3A191193013A84B5:\ -000000000000000000000000000400000000000000000000 - -00000000000000000000000000000000:FAD1FDE1D0241784B63080D2C74D236C:\ -000000000000000000000000000200000000000000000000 - -00000000000000000000000000000000:7D6C80D39E41F007A14FB9CD2B2C15CD:\ -000000000000000000000000000100000000000000000000 - -00000000000000000000000000000000:7975F401FC10637BB33EA2DB058FF6EC:\ -000000000000000000000000000080000000000000000000 - -00000000000000000000000000000000:657983865C55A818F02B7FCD52ED7E99:\ -000000000000000000000000000040000000000000000000 - -00000000000000000000000000000000:B32BEB1776F9827FF4C3AC9997E84B20:\ -000000000000000000000000000020000000000000000000 - -00000000000000000000000000000000:2AE2C7C374F0A41E3D46DBC3E66BB59F:\ -000000000000000000000000000010000000000000000000 - -00000000000000000000000000000000:4D835E4ABDD4BDC6B88316A6E931A07F:\ -000000000000000000000000000008000000000000000000 - -00000000000000000000000000000000:E07EFABFF1C353F7384EBB87B435A3F3:\ -000000000000000000000000000004000000000000000000 - -00000000000000000000000000000000:ED3088DC3FAF89AD87B4356FF1BB09C2:\ -000000000000000000000000000002000000000000000000 - -00000000000000000000000000000000:4324D01140C156FC898C2E32BA03FB05:\ -000000000000000000000000000001000000000000000000 - -00000000000000000000000000000000:BE15D016FACB5BAFBC24FA9289132166:\ -000000000000000000000000000000800000000000000000 - -00000000000000000000000000000000:AC9B7048EDB1ACF4D97A5B0B3F50884B:\ -000000000000000000000000000000400000000000000000 - -00000000000000000000000000000000:448BECE1F86C7845DFA9A4BB2A016FB3:\ -000000000000000000000000000000200000000000000000 - -00000000000000000000000000000000:10DD445E87686EB46EA9B1ABC49257F0:\ -000000000000000000000000000000100000000000000000 - -00000000000000000000000000000000:B7FCCF7659FA756D4B7303EEA6C07458:\ -000000000000000000000000000000080000000000000000 - -00000000000000000000000000000000:289117115CA3513BAA7640B1004872C2:\ -000000000000000000000000000000040000000000000000 - -00000000000000000000000000000000:57CB42F7EE7186051F50B93FFA7B35BF:\ -000000000000000000000000000000020000000000000000 - -00000000000000000000000000000000:F2741BFBFB81663B9136802FB9C3126A:\ -000000000000000000000000000000010000000000000000 - -00000000000000000000000000000000:E32DDDC5C7398C096E3BD535B31DB5CE:\ -000000000000000000000000000000008000000000000000 - -00000000000000000000000000000000:81D3C204E608AF9CC713EAEBCB72433F:\ -000000000000000000000000000000004000000000000000 - -00000000000000000000000000000000:D4DEEF4BFC36AAA579496E6935F8F98E:\ -000000000000000000000000000000002000000000000000 - -00000000000000000000000000000000:C356DB082B97802B038571C392C5C8F6:\ -000000000000000000000000000000001000000000000000 - -00000000000000000000000000000000:A3919ECD4861845F2527B77F06AC6A4E:\ -000000000000000000000000000000000800000000000000 - -00000000000000000000000000000000:A53858E17A2F802A20E40D44494FFDA0:\ -000000000000000000000000000000000400000000000000 - -00000000000000000000000000000000:5D989E122B78C758921EDBEEB827F0C0:\ -000000000000000000000000000000000200000000000000 - -00000000000000000000000000000000:4B1C0C8F9E7830CC3C4BE7BD226FA8DE:\ -000000000000000000000000000000000100000000000000 - -00000000000000000000000000000000:82C40C5FD897FBCA7B899C70713573A1:\ -000000000000000000000000000000000080000000000000 - -00000000000000000000000000000000:ED13EE2D45E00F75CCDB51EA8E3E36AD:\ -000000000000000000000000000000000040000000000000 - -00000000000000000000000000000000:F121799EEFE8432423176A3CCF6462BB:\ -000000000000000000000000000000000020000000000000 - -00000000000000000000000000000000:4FA0C06F07997E98271DD86F7B355C50:\ -000000000000000000000000000000000010000000000000 - -00000000000000000000000000000000:849EB364B4E81D058649DC5B1BF029B9:\ -000000000000000000000000000000000008000000000000 - -00000000000000000000000000000000:F48F9E0DE8DE7AD944A207809335D9B1:\ -000000000000000000000000000000000004000000000000 - -00000000000000000000000000000000:E59E9205B5A81A4FD26DFCF308966022:\ -000000000000000000000000000000000002000000000000 - -00000000000000000000000000000000:3A91A1BE14AAE9ED700BDF9D70018804:\ -000000000000000000000000000000000001000000000000 - -00000000000000000000000000000000:8ABAD78DCB79A48D79070E7DA89664EC:\ -000000000000000000000000000000000000800000000000 - -00000000000000000000000000000000:B68377D98AAE6044938A7457F6C649D9:\ -000000000000000000000000000000000000400000000000 - -00000000000000000000000000000000:E4E1275C42F5F1B63D662C099D6CE33D:\ -000000000000000000000000000000000000200000000000 - -00000000000000000000000000000000:7DEF32A34C6BE668F17DA1BB193B06EF:\ -000000000000000000000000000000000000100000000000 - -00000000000000000000000000000000:78B6000CC3D30CB3A74B68D0EDBD2B53:\ -000000000000000000000000000000000000080000000000 - -00000000000000000000000000000000:0A47531DE88DD8AE5C23EAE4F7D1F2D5:\ -000000000000000000000000000000000000040000000000 - -00000000000000000000000000000000:667B24E8000CF68231EC484581D922E5:\ -000000000000000000000000000000000000020000000000 - -00000000000000000000000000000000:39DAA5EBD4AACAE130E9C33236C52024:\ -000000000000000000000000000000000000010000000000 - -00000000000000000000000000000000:E3C88760B3CB21360668A63E55BB45D1:\ -000000000000000000000000000000000000008000000000 - -00000000000000000000000000000000:F131EE903C1CDB49D416866FD5D8DE51:\ -000000000000000000000000000000000000004000000000 - -00000000000000000000000000000000:7A1916135B0447CF4033FC13047A583A:\ -000000000000000000000000000000000000002000000000 - -00000000000000000000000000000000:F7D55FB27991143DCDFA90DDF0424FCB:\ -000000000000000000000000000000000000001000000000 - -00000000000000000000000000000000:EA93E7D1CA1111DBD8F7EC111A848C0C:\ -000000000000000000000000000000000000000800000000 - -00000000000000000000000000000000:2A689E39DFD3CBCBE221326E95888779:\ -000000000000000000000000000000000000000400000000 - -00000000000000000000000000000000:C1CE399CA762318AC2C40D1928B4C57D:\ -000000000000000000000000000000000000000200000000 - -00000000000000000000000000000000:D43FB6F2B2879C8BFAF0092DA2CA63ED:\ -000000000000000000000000000000000000000100000000 - -00000000000000000000000000000000:224563E617158DF97650AF5D130E78A5:\ -000000000000000000000000000000000000000080000000 - -00000000000000000000000000000000:6562FDF6833B7C4F7484AE6EBCC243DD:\ -000000000000000000000000000000000000000040000000 - -00000000000000000000000000000000:93D58BA7BED22615D661D002885A7457:\ -000000000000000000000000000000000000000020000000 - -00000000000000000000000000000000:9A0EF559003AD9E52D3E09ED3C1D3320:\ -000000000000000000000000000000000000000010000000 - -00000000000000000000000000000000:96BAF5A7DC6F3DD27EB4C717A85D261C:\ -000000000000000000000000000000000000000008000000 - -00000000000000000000000000000000:B8762E06884900E8452293190E19CCDB:\ -000000000000000000000000000000000000000004000000 - -00000000000000000000000000000000:785416A22BD63CBABF4B1789355197D3:\ -000000000000000000000000000000000000000002000000 - -00000000000000000000000000000000:A0D20CE1489BAA69A3612DCE90F7ABF6:\ -000000000000000000000000000000000000000001000000 - -00000000000000000000000000000000:700244E93DC94230CC607FFBA0E48F32:\ -000000000000000000000000000000000000000000800000 - -00000000000000000000000000000000:85329E476829F872A2B4A7E59F91FF2D:\ -000000000000000000000000000000000000000000400000 - -00000000000000000000000000000000:E4219B4935D988DB719B8B8B2B53D247:\ -000000000000000000000000000000000000000000200000 - -00000000000000000000000000000000:6ACDD04FD13D4DB4409FE8DD13FD737B:\ -000000000000000000000000000000000000000000100000 - -00000000000000000000000000000000:9EB7A670AB59E15BE582378701C1EC14:\ -000000000000000000000000000000000000000000080000 - -00000000000000000000000000000000:29DF2D6935FE657763BC7A9F22D3D492:\ -000000000000000000000000000000000000000000040000 - -00000000000000000000000000000000:99303359D4A13AFDBE6C784028CE533A:\ -000000000000000000000000000000000000000000020000 - -00000000000000000000000000000000:FF5C70A6334545F33B9DBF7BEA0417CA:\ -000000000000000000000000000000000000000000010000 - -00000000000000000000000000000000:289F58A17E4C50EDA4269EFB3DF55815:\ -000000000000000000000000000000000000000000008000 - -00000000000000000000000000000000:EA35DCB416E9E1C2861D1682F062B5EB:\ -000000000000000000000000000000000000000000004000 - -00000000000000000000000000000000:3A47BF354BE775383C50B0C0A83E3A58:\ -000000000000000000000000000000000000000000002000 - -00000000000000000000000000000000:BF6C1DC069FB95D05D43B01D8206D66B:\ -000000000000000000000000000000000000000000001000 - -00000000000000000000000000000000:046D1D580D5898DA6595F32FD1F0C33D:\ -000000000000000000000000000000000000000000000800 - -00000000000000000000000000000000:5F57803B7B82A110F7E9855D6A546082:\ -000000000000000000000000000000000000000000000400 - -00000000000000000000000000000000:25336ECF34E7BE97862CDFF715FF05A8:\ -000000000000000000000000000000000000000000000200 - -00000000000000000000000000000000:ACBAA2A943D8078022D693890E8C4FEF:\ -000000000000000000000000000000000000000000000100 - -00000000000000000000000000000000:3947597879F6B58E4E2F0DF825A83A38:\ -000000000000000000000000000000000000000000000080 - -00000000000000000000000000000000:4EB8CC3335496130655BF3CA570A4FC0:\ -000000000000000000000000000000000000000000000040 - -00000000000000000000000000000000:BBDA7769AD1FDA425E18332D97868824:\ -000000000000000000000000000000000000000000000020 - -00000000000000000000000000000000:5E7532D22DDB0829A29C868198397154:\ -000000000000000000000000000000000000000000000010 - -00000000000000000000000000000000:E66DA67B630AB7AE3E682855E1A1698E:\ -000000000000000000000000000000000000000000000008 - -00000000000000000000000000000000:4D93800F671B48559A64D1EA030A590A:\ -000000000000000000000000000000000000000000000004 - -00000000000000000000000000000000:F33159FCC7D9AE30C062CD3B322AC764:\ -000000000000000000000000000000000000000000000002 - -00000000000000000000000000000000:8BAE4EFB70D33A9792EEA9BE70889D72:\ -000000000000000000000000000000000000000000000001 - -80000000000000000000000000000000:6CD02513E8D4DC986B4AFE087A60BD0C:\ -000000000000000000000000000000000000000000000000 - -40000000000000000000000000000000:423D2772A0CA56DAABB48D2129062987:\ -000000000000000000000000000000000000000000000000 - -20000000000000000000000000000000:1021F2A8DA70EB2219DC16804445FF98:\ -000000000000000000000000000000000000000000000000 - -10000000000000000000000000000000:C636E35B402577F96974D8804295EBB8:\ -000000000000000000000000000000000000000000000000 - -08000000000000000000000000000000:1566D2E57E8393C19E29F892EA28A9A7:\ -000000000000000000000000000000000000000000000000 - -04000000000000000000000000000000:883C878FED70B36CC09D040F9619DD19:\ -000000000000000000000000000000000000000000000000 - -02000000000000000000000000000000:06734593A974965790E715594FC34AA9:\ -000000000000000000000000000000000000000000000000 - -01000000000000000000000000000000:F19B389948D9A45534E5BD36C984134A:\ -000000000000000000000000000000000000000000000000 - -00800000000000000000000000000000:D8410DFC14FA6D175EC968EA8CAC514C:\ -000000000000000000000000000000000000000000000000 - -00400000000000000000000000000000:7E6C6EBB4029A177CF7B2FDD9AC6BB7A:\ -000000000000000000000000000000000000000000000000 - -00200000000000000000000000000000:4B51DD4850DC0A6C3A46D924003D2C27:\ -000000000000000000000000000000000000000000000000 - -00100000000000000000000000000000:2E510A9D917B15BE32A192B12A668F23:\ -000000000000000000000000000000000000000000000000 - -00080000000000000000000000000000:88F6F79962B0FB77FEA8E7C632D3108E:\ -000000000000000000000000000000000000000000000000 - -00040000000000000000000000000000:A3A35AB1D88DAF07B52794A0F065383A:\ -000000000000000000000000000000000000000000000000 - -00020000000000000000000000000000:DC6CC878433E2B3BB193049A4ECBFC53:\ -000000000000000000000000000000000000000000000000 - -00010000000000000000000000000000:EFCD3763EB7B1A415938248A9A5B4FD5:\ -000000000000000000000000000000000000000000000000 - -00008000000000000000000000000000:AB7E9FB9A66DBE5BB44854F07D9015EE:\ -000000000000000000000000000000000000000000000000 - -00004000000000000000000000000000:8B8E9D3365F8F6743ECF7E33E99255A4:\ -000000000000000000000000000000000000000000000000 - -00002000000000000000000000000000:54D37B4F176FF3D8F6AFC866066D8572:\ -000000000000000000000000000000000000000000000000 - -00001000000000000000000000000000:E83310889480FBF3C00342E3126D0D02:\ -000000000000000000000000000000000000000000000000 - -00000800000000000000000000000000:D321AB2511F92F098174AA2DE6E85DA2:\ -000000000000000000000000000000000000000000000000 - -00000400000000000000000000000000:D8E3F40B1112D5149D58C481DFA9983F:\ -000000000000000000000000000000000000000000000000 - -00000200000000000000000000000000:2454C4E0806639DDF19854D6C68054AD:\ -000000000000000000000000000000000000000000000000 - -00000100000000000000000000000000:A5506D410F7CA32F3955DD79D9D09418:\ -000000000000000000000000000000000000000000000000 - -00000080000000000000000000000000:7908EE40677699568A7DC1AA317C7E4E:\ -000000000000000000000000000000000000000000000000 - -00000040000000000000000000000000:B4B7B29DD43B2F5CF765E25192273982:\ -000000000000000000000000000000000000000000000000 - -00000020000000000000000000000000:92AFE9668159BEFFE2A86F8503260164:\ -000000000000000000000000000000000000000000000000 - -00000010000000000000000000000000:5C36A232FBA6D187A84657AD4028B18F:\ -000000000000000000000000000000000000000000000000 - -00000008000000000000000000000000:A2E994DFAB3A798DF8F54F6DA87E58E2:\ -000000000000000000000000000000000000000000000000 - -00000004000000000000000000000000:6CDAB10A72ADF77D71D0765BAAE95631:\ -000000000000000000000000000000000000000000000000 - -00000002000000000000000000000000:9FE3C801BCAAF7BB800F2E6BF3278E21:\ -000000000000000000000000000000000000000000000000 - -00000001000000000000000000000000:B459D90D9A6C392E5493BC91CF5A0863:\ -000000000000000000000000000000000000000000000000 - -00000000800000000000000000000000:0518A9FA5007F6787E0FB4E5AC27D758:\ -000000000000000000000000000000000000000000000000 - -00000000400000000000000000000000:BED9795415D28599700ED7952384A963:\ -000000000000000000000000000000000000000000000000 - -00000000200000000000000000000000:F0140421173D60251EF6CAB0229B1B50:\ -000000000000000000000000000000000000000000000000 - -00000000100000000000000000000000:460EB4652B3F6779EA28CB11B37529ED:\ -000000000000000000000000000000000000000000000000 - -00000000080000000000000000000000:C4283D351C960A6AC13CD19CCF03AE38:\ -000000000000000000000000000000000000000000000000 - -00000000040000000000000000000000:6815A10047B2C834A798EBDCC6786C75:\ -000000000000000000000000000000000000000000000000 - -00000000020000000000000000000000:99BA19F0CDD5990D0386B32CE56C9C4C:\ -000000000000000000000000000000000000000000000000 - -00000000010000000000000000000000:DE76F62C61E07915162DA13E79679DEC:\ -000000000000000000000000000000000000000000000000 - -00000000008000000000000000000000:DD0325D6854803D06D1D2277D5FB8D67:\ -000000000000000000000000000000000000000000000000 - -00000000004000000000000000000000:580B71A41DE37D6FAC83CCB0B3BB1C97:\ -000000000000000000000000000000000000000000000000 - -00000000002000000000000000000000:E9B1AB470A1B02EF0FF5E6754A092C96:\ -000000000000000000000000000000000000000000000000 - -00000000001000000000000000000000:8590620F5AF5993B7410282F4126BC1F:\ -000000000000000000000000000000000000000000000000 - -00000000000800000000000000000000:8D4914D2F1B22B2E268E66E532D29D7C:\ -000000000000000000000000000000000000000000000000 - -00000000000400000000000000000000:FD826CE48E62C5E30867044B86BA4B56:\ -000000000000000000000000000000000000000000000000 - -00000000000200000000000000000000:100E7B831C9F35FA1271F5F1316C6FCF:\ -000000000000000000000000000000000000000000000000 - -00000000000100000000000000000000:0A2DD0C17F68B996AA96C007003D0B31:\ -000000000000000000000000000000000000000000000000 - -00000000000080000000000000000000:C95F68C57E06B0A2E1F623C83C5D80BF:\ -000000000000000000000000000000000000000000000000 - -00000000000040000000000000000000:571CAFC92C7C8A5EC54C0741E186905C:\ -000000000000000000000000000000000000000000000000 - -00000000000020000000000000000000:22514353E95312C112255E1EED0B2DF6:\ -000000000000000000000000000000000000000000000000 - -00000000000010000000000000000000:791A8BF462BD17580BD9152C6D11C6C5:\ -000000000000000000000000000000000000000000000000 - -00000000000008000000000000000000:5882A0178D548F84A165DB809C60DC28:\ -000000000000000000000000000000000000000000000000 - -00000000000004000000000000000000:3CE4A90EED4458CA6039E42DDADB71C3:\ -000000000000000000000000000000000000000000000000 - -00000000000002000000000000000000:D3CBAB261207A16BE2751E77044FD7C9:\ -000000000000000000000000000000000000000000000000 - -00000000000001000000000000000000:24E32B698A7B32217093628B01F424AB:\ -000000000000000000000000000000000000000000000000 - -00000000000000800000000000000000:9F6AFC0AF27CF565110C77E3C24F4F5B:\ -000000000000000000000000000000000000000000000000 - -00000000000000400000000000000000:E088AA5CDA20EF267BB039B00C72C45B:\ -000000000000000000000000000000000000000000000000 - -00000000000000200000000000000000:5CF1018B7E0BA1775601C2E279900360:\ -000000000000000000000000000000000000000000000000 - -00000000000000100000000000000000:3B1A7388B89FB9416AD8753CF5AF35D2:\ -000000000000000000000000000000000000000000000000 - -00000000000000080000000000000000:137FA4ED00AFCD9F5D8BC0D14BD5837A:\ -000000000000000000000000000000000000000000000000 - -00000000000000040000000000000000:806F5C9B663559BB56F234881E4A3E60:\ -000000000000000000000000000000000000000000000000 - -00000000000000020000000000000000:8069A449152292DF2DE8642992C632B6:\ -000000000000000000000000000000000000000000000000 - -00000000000000010000000000000000:37C6CF2A1ABD1B1F1922B46C7B4A280D:\ -000000000000000000000000000000000000000000000000 - -00000000000000008000000000000000:7A2835260E5A0AA2B5DC301800EC8438:\ -000000000000000000000000000000000000000000000000 - -00000000000000004000000000000000:EE81FAF2F9058213FFCACF281CB8509E:\ -000000000000000000000000000000000000000000000000 - -00000000000000002000000000000000:57F22D93C37129BA331FDBA38E005A1E:\ -000000000000000000000000000000000000000000000000 - -00000000000000001000000000000000:EC798782E87B7D9F780CC3C3A46519B5:\ -000000000000000000000000000000000000000000000000 - -00000000000000000800000000000000:43EA28497F5D40E3A4744FA2EDAA42DE:\ -000000000000000000000000000000000000000000000000 - -00000000000000000400000000000000:91F004E7DEBF41B3414DD8C5C317372C:\ -000000000000000000000000000000000000000000000000 - -00000000000000000200000000000000:C249EAE54E7B4DF43B938C1B4CC28314:\ -000000000000000000000000000000000000000000000000 - -00000000000000000100000000000000:32C289D7EEFB99D2F17AD7B7D45FE1EC:\ -000000000000000000000000000000000000000000000000 - -00000000000000000080000000000000:A675FB2E8DDBF810CEF01CF2B728CD2B:\ -000000000000000000000000000000000000000000000000 - -00000000000000000040000000000000:A418AAAB6E6921CC731AA8A349386080:\ -000000000000000000000000000000000000000000000000 - -00000000000000000020000000000000:2E2B0F44863E67D9B0215C4ABD60417F:\ -000000000000000000000000000000000000000000000000 - -00000000000000000010000000000000:F0AF7CB19E911D481F6426DAEFDD2240:\ -000000000000000000000000000000000000000000000000 - -00000000000000000008000000000000:CB1304DAAA2DF6878F56AC2E0F887E04:\ -000000000000000000000000000000000000000000000000 - -00000000000000000004000000000000:B1B70A7E6A0CD1916D9B78BEA19084AE:\ -000000000000000000000000000000000000000000000000 - -00000000000000000002000000000000:0CDE9F9BE646A5FCE3436B794A9CFC65:\ -000000000000000000000000000000000000000000000000 - -00000000000000000001000000000000:68C7946D476A0A36674B36AFD7E5DF33:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000800000000000:48770159A07DD8DFFF06C80105F8D57C:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000400000000000:665E62801B3260E3C45BD3BE34DFDEBE:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000200000000000:4159C1F686BFBE5B0E50BDB0DA532B69:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000100000000000:6333100A5A4AD917DC2D4E78A04869A3:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000080000000000:866A4519AB1D199F25886B89D0539ACC:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000040000000000:EC0CFD37E4CBC7E8BE385283F7AEA75A:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000020000000000:CA2F383AACCA0810AA13F3E710621422:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000010000000000:1D0EEF6870444F950937831EC0A55D98:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000008000000000:37839B35ED6801E7670496D479A95017:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000004000000000:02317C8C7098C4F94AB867AC7A49DD8D:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000002000000000:FFB4CB4E3F7F8BF3367EBD43236518B4:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000001000000000:36BEDEF1E4AA3E4A40A305741713FCBF:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000800000000:B2DFE3C4870269C1E3FEEC39161540D9:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000400000000:147EF2518AD45DA0026056ECBF6A3DFA:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000200000000:027A75E4DE635790E47ACE90D7928804:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000100000000:C4CF3CCB59BF87D0AFBD629F48CFBB7B:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000080000000:35165C93F564C97E1C32EF97E8151A87:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000040000000:449DE37F7D5A1BBD628ABBE7E061701D:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000020000000:B1D45EAF218F1799B149BAD677FE129F:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000010000000:BE08AC6DB6BD0583AA9D2ABC71C73DCD:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000008000000:BCC835BD3DF1A79E4C7C145B899A5C25:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000004000000:3D311EA611FF5AF371301C58A8E9912D:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000002000000:A5A1BEA594ACC7CA80F09EA5ADDB5C71:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000001000000:0F09492429FE7222D6CD8190D9F2FFBF:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000800000:816D2220A16B8AAEE71364FD43636C6F:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000400000:D7E8702408419ED73191B107EAF75A0B:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000200000:9B170EFB1E235B433C78E276BEA082F0:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000100000:03BBECC5598AE974430F29395522F096:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000080000:DB53517766C0E8CF42059607CBA89380:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000040000:2E2AF4B7931F0AEFFAC5471148A5BB97:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000020000:C872C0408266403B984F635FF5683DE4:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000010000:15DCF750B0E3A68AD1F4EFD07E8967B4:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000008000:B41092048E9E6A749F6FD8CE515A23A3:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000004000:4DA9267D62507994312BD5C99ADDE730:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000002000:9E2FCA6D1D626E9C6A924EBF7DBF618A:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000001000:E092E8D7EF2C2465AEFB2493C3063590:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000800:1C0E58DA37D1068378A88DBE2EDE4E10:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000400:19063F854232B8509A6A3A6D46809959:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000200:447FB09E54EFA285F7530F25C4EA0022:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000100:F6ABE86321BE40E1FBFDAFED37CC1D9B:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000080:4E8506CD006666341D6CF51F98B41F35:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000040:53995DE0009CA18BECAFB8307C54C14C:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000020:2006BF99F4C58B6CC2627856593FAEEA:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000010:2DA697D2737CB30B744A4644FA1CBC6E:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000008:47A22ACDB60C3A986A8F76ECD0EA3433:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000004:FDAA17C2CDE20268FE36E164EA532151:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000002:98E7247C07F0FE411C267E4384B0F600:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000001:CD33B28AC773F74BA00ED1F312572435:\ -000000000000000000000000000000000000000000000000 - -[AES-256] -00112233445566778899AABBCCDDEEFF:8EA2B7CA516745BFEAFC49904B496089:\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F - -834EADFCCAC7E1B30664B1ABA44815AB:1946DABF6A03A2A2C3D0B05080AED6FC:\ -00010203050607080A0B0C0D0F10111214151617191A1B1C1E1F202123242526 - -D9DC4DBA3021B05D67C0518F72B62BF1:5ED301D747D3CC715445EBDEC62F2FB4:\ -28292A2B2D2E2F30323334353738393A3C3D3E3F41424344464748494B4C4D4E - -A291D86301A4A739F7392173AA3C604C:6585C8F43D13A6BEAB6419FC5935B9D0:\ -50515253555657585A5B5C5D5F60616264656667696A6B6C6E6F707173747576 - -4264B2696498DE4DF79788A9F83E9390:2A5B56A596680FCC0E05F5E0F151ECAE:\ -78797A7B7D7E7F80828384858788898A8C8D8E8F91929394969798999B9C9D9E - -EE9932B3721804D5A83EF5949245B6F6:F5D6FF414FD2C6181494D20C37F2B8C4:\ -A0A1A2A3A5A6A7A8AAABACADAFB0B1B2B4B5B6B7B9BABBBCBEBFC0C1C3C4C5C6 - -E6248F55C5FDCBCA9CBBB01C88A2EA77:85399C01F59FFFB5204F19F8482F00B8:\ -C8C9CACBCDCECFD0D2D3D4D5D7D8D9DADCDDDEDFE1E2E3E4E6E7E8E9EBECEDEE - -B8358E41B9DFF65FD461D55A99266247:92097B4C88A041DDF98144BC8D22E8E7:\ -F0F1F2F3F5F6F7F8FAFBFCFDFE01000204050607090A0B0C0E0F101113141516 - -F0E2D72260AF58E21E015AB3A4C0D906:89BD5B73B356AB412AEF9F76CEA2D65C:\ -18191A1B1D1E1F20222324252728292A2C2D2E2F31323334363738393B3C3D3E - -475B8B823CE8893DB3C44A9F2A379FF7:2536969093C55FF9454692F2FAC2F530:\ -40414243454647484A4B4C4D4F50515254555657595A5B5C5E5F606163646566 - -688F5281945812862F5F3076CF80412F:07FC76A872843F3F6E0081EE9396D637:\ -68696A6B6D6E6F70727374757778797A7C7D7E7F81828384868788898B8C8D8E - -08D1D2BC750AF553365D35E75AFACEAA:E38BA8EC2AA741358DCC93E8F141C491:\ -90919293959697989A9B9C9D9FA0A1A2A4A5A6A7A9AAABACAEAFB0B1B3B4B5B6 - -8707121F47CC3EFCECA5F9A8474950A1:D028EE23E4A89075D0B03E868D7D3A42:\ -B8B9BABBBDBEBFC0C2C3C4C5C7C8C9CACCCDCECFD1D2D3D4D6D7D8D9DBDCDDDE - -E51AA0B135DBA566939C3B6359A980C5:8CD9423DFC459E547155C5D1D522E540:\ -E0E1E2E3E5E6E7E8EAEBECEDEFF0F1F2F4F5F6F7F9FAFBFCFEFE010103040506 - -069A007FC76A459F98BAF917FEDF9521:080E9517EB1677719ACF728086040AE3:\ -08090A0B0D0E0F10121314151718191A1C1D1E1F21222324262728292B2C2D2E - -726165C1723FBCF6C026D7D00B091027:7C1700211A3991FC0ECDED0AB3E576B0:\ -30313233353637383A3B3C3D3F40414244454647494A4B4C4E4F505153545556 - -D7C544DE91D55CFCDE1F84CA382200CE:DABCBCC855839251DB51E224FBE87435:\ -58595A5B5D5E5F60626364656768696A6C6D6E6F71727374767778797B7C7D7E - -FED3C9A161B9B5B2BD611B41DC9DA357:68D56FAD0406947A4DD27A7448C10F1D:\ -80818283858687888A8B8C8D8F90919294959697999A9B9C9E9FA0A1A3A4A5A6 - -4F634CDC6551043409F30B635832CF82:DA9A11479844D1FFEE24BBF3719A9925:\ -A8A9AAABADAEAFB0B2B3B4B5B7B8B9BABCBDBEBFC1C2C3C4C6C7C8C9CBCCCDCE - -109CE98DB0DFB36734D9F3394711B4E6:5E4BA572F8D23E738DA9B05BA24B8D81:\ -D0D1D2D3D5D6D7D8DADBDCDDDFE0E1E2E4E5E6E7E9EAEBECEEEFF0F1F3F4F5F6 - -4EA6DFABA2D8A02FFDFFA89835987242:A115A2065D667E3F0B883837A6E903F8:\ -70717273757677787A7B7C7D7F80818284858687898A8B8C8E8F909193949596 - -5AE094F54AF58E6E3CDBF976DAC6D9EF:3E9E90DC33EAC2437D86AD30B137E66E:\ -98999A9B9D9E9FA0A2A3A4A5A7A8A9AAACADAEAFB1B2B3B4B6B7B8B9BBBCBDBE - -764D8E8E0F29926DBE5122E66354FDBE:01CE82D8FBCDAE824CB3C48E495C3692:\ -C0C1C2C3C5C6C7C8CACBCCCDCFD0D1D2D4D5D6D7D9DADBDCDEDFE0E1E3E4E5E6 - -3F0418F888CDF29A982BF6B75410D6A9:0C9CFF163CE936FAAF083CFD3DEA3117:\ -E8E9EAEBEDEEEFF0F2F3F4F5F7F8F9FAFCFDFEFF01020304060708090B0C0D0E - -E4A3E7CB12CDD56AA4A75197A9530220:5131BA9BD48F2BBA85560680DF504B52:\ -10111213151617181A1B1C1D1F20212224252627292A2B2C2E2F303133343536 - -211677684AAC1EC1A160F44C4EBF3F26:9DC503BBF09823AEC8A977A5AD26CCB2:\ -38393A3B3D3E3F40424344454748494A4C4D4E4F51525354565758595B5C5D5E - -D21E439FF749AC8F18D6D4B105E03895:9A6DB0C0862E506A9E397225884041D7:\ -60616263656667686A6B6C6D6F70717274757677797A7B7C7E7F808183848586 - -D9F6FF44646C4725BD4C0103FF5552A7:430BF9570804185E1AB6365FC6A6860C:\ -88898A8B8D8E8F90929394959798999A9C9D9E9FA1A2A3A4A6A7A8A9ABACADAE - -0B1256C2A00B976250CFC5B0C37ED382:3525EBC02F4886E6A5A3762813E8CE8A:\ -B0B1B2B3B5B6B7B8BABBBCBDBFC0C1C2C4C5C6C7C9CACBCCCECFD0D1D3D4D5D6 - -B056447FFC6DC4523A36CC2E972A3A79:07FA265C763779CCE224C7BAD671027B:\ -D8D9DADBDDDEDFE0E2E3E4E5E7E8E9EAECEDEEEFF1F2F3F4F6F7F8F9FBFCFDFE - -5E25CA78F0DE55802524D38DA3FE4456:E8B72B4E8BE243438C9FFF1F0E205872:\ -00010203050607080A0B0C0D0F10111214151617191A1B1C1E1F202123242526 - -A5BCF4728FA5EAAD8567C0DC24675F83:109D4F999A0E11ACE1F05E6B22CBCB50:\ -28292A2B2D2E2F30323334353738393A3C3D3E3F41424344464748494B4C4D4E - -814E59F97ED84646B78B2CA022E9CA43:45A5E8D4C3ED58403FF08D68A0CC4029:\ -50515253555657585A5B5C5D5F60616264656667696A6B6C6E6F707173747576 - -15478BEEC58F4775C7A7F5D4395514D7:196865964DB3D417B6BD4D586BCB7634:\ -78797A7B7D7E7F80828384858788898A8C8D8E8F91929394969798999B9C9D9E - -253548FFCA461C67C8CBC78CD59F4756:60436AD45AC7D30D99195F815D98D2AE:\ -A0A1A2A3A5A6A7A8AAABACADAFB0B1B2B4B5B6B7B9BABBBCBEBFC0C1C3C4C5C6 - -FD7AD8D73B9B0F8CC41600640F503D65:BB07A23F0B61014B197620C185E2CD75:\ -C8C9CACBCDCECFD0D2D3D4D5D7D8D9DADCDDDEDFE1E2E3E4E6E7E8E9EBECEDEE - -06199DE52C6CBF8AF954CD65830BCD56:5BC0B2850129C854423AFF0751FE343B:\ -F0F1F2F3F5F6F7F8FAFBFCFDFE01000204050607090A0B0C0E0F101113141516 - -F17C4FFE48E44C61BD891E257E725794:7541A78F96738E6417D2A24BD2BECA40:\ -18191A1B1D1E1F20222324252728292A2C2D2E2F31323334363738393B3C3D3E - -9A5B4A402A3E8A59BE6BF5CD8154F029:B0A303054412882E464591F1546C5B9E:\ -40414243454647484A4B4C4D4F50515254555657595A5B5C5E5F606163646566 - -79BD40B91A7E07DC939D441782AE6B17:778C06D8A355EEEE214FCEA14B4E0EEF:\ -68696A6B6D6E6F70727374757778797A7C7D7E7F81828384868788898B8C8D8E - -D8CEAAF8976E5FBE1012D8C84F323799:09614206D15CBACE63227D06DB6BEEBB:\ -90919293959697989A9B9C9D9FA0A1A2A4A5A6A7A9AAABACAEAFB0B1B3B4B5B6 - -3316E2751E2E388B083DA23DD6AC3FBE:41B97FB20E427A9FDBBB358D9262255D:\ -B8B9BABBBDBEBFC0C2C3C4C5C7C8C9CACCCDCECFD1D2D3D4D6D7D8D9DBDCDDDE - -8B7CFBE37DE7DCA793521819242C5816:C1940F703D845F957652C2D64ABD7ADF:\ -E0E1E2E3E5E6E7E8EAEBECEDEFF0F1F2F4F5F6F7F9FAFBFCFEFE010103040506 - -F23F033C0EEBF8EC55752662FD58CE68:D2D44FCDAE5332343366DB297EFCF21B:\ -08090A0B0D0E0F10121314151718191A1C1D1E1F21222324262728292B2C2D2E - -59EB34F6C8BDBACC5FC6AD73A59A1301:EA8196B79DBE167B6AA9896E287EED2B:\ -30313233353637383A3B3C3D3F40414244454647494A4B4C4E4F505153545556 - -DCDE8B6BD5CF7CC22D9505E3CE81261A:D6B0B0C4BA6C7DBE5ED467A1E3F06C2D:\ -58595A5B5D5E5F60626364656768696A6C6D6E6F71727374767778797B7C7D7E - -E33CF7E524FED781E7042FF9F4B35DC7:EC51EB295250C22C2FB01816FB72BCAE:\ -80818283858687888A8B8C8D8F90919294959697999A9B9C9E9FA0A1A3A4A5A6 - -27963C8FACDF73062867D164DF6D064C:ADED6630A07CE9C7408A155D3BD0D36F:\ -A8A9AAABADAEAFB0B2B3B4B5B7B8B9BABCBDBEBFC1C2C3C4C6C7C8C9CBCCCDCE - -77B1CE386B551B995F2F2A1DA994EEF8:697C9245B9937F32F5D1C82319F0363A:\ -D0D1D2D3D5D6D7D8DADBDCDDDFE0E1E2E4E5E6E7E9EAEBECEEEFF0F1F3F4F5F6 - -F083388B013679EFCF0BB9B15D52AE5C:AAD5AD50C6262AAEC30541A1B7B5B19C:\ -F8F9FAFBFDFEFE00020304050708090A0C0D0E0F11121314161718191B1C1D1E - -C5009E0DAB55DB0ABDB636F2600290C8:7D34B893855341EC625BD6875AC18C0D:\ -20212223252627282A2B2C2D2F30313234353637393A3B3C3E3F404143444546 - -7804881E26CD532D8514D3683F00F1B9:7EF05105440F83862F5D780E88F02B41:\ -48494A4B4D4E4F50525354555758595A5C5D5E5F61626364666768696B6C6D6E - -46CDDCD73D1EB53E675CA012870A92A3:C377C06403382061AF2C9C93A8E70DF6:\ -70717273757677787A7B7C7D7F80818284858687898A8B8C8E8F909193949596 - -A9FB44062BB07FE130A8E8299EACB1AB:1DBDB3FFDC052DACC83318853ABC6DE5:\ -98999A9B9D9E9FA0A2A3A4A5A7A8A9AAACADAEAFB1B2B3B4B6B7B8B9BBBCBDBE - -2B6FF8D7A5CC3A28A22D5A6F221AF26B:69A6EAB00432517D0BF483C91C0963C7:\ -C0C1C2C3C5C6C7C8CACBCCCDCFD0D1D2D4D5D6D7D9DADBDCDEDFE0E1E3E4E5E6 - -1A9527C29B8ADD4B0E3E656DBB2AF8B4:0797F41DC217C80446E1D514BD6AB197:\ -E8E9EAEBEDEEEFF0F2F3F4F5F7F8F9FAFCFDFEFF01020304060708090B0C0D0E - -7F99CF2C75244DF015EB4B0C1050AEAE:9DFD76575902A637C01343C58E011A03:\ -10111213151617181A1B1C1D1F20212224252627292A2B2C2E2F303133343536 - -E84FF85B0D9454071909C1381646C4ED:ACF4328AE78F34B9FA9B459747CC2658:\ -38393A3B3D3E3F40424344454748494A4C4D4E4F51525354565758595B5C5D5E - -89AFD40F99521280D5399B12404F6DB4:B0479AEA12BAC4FE2384CF98995150C6:\ -60616263656667686A6B6C6D6F70717274757677797A7B7C7E7F808183848586 - -A09EF32DBC5119A35AB7FA38656F0329:9DD52789EFE3FFB99F33B3DA5030109A:\ -88898A8B8D8E8F90929394959798999A9C9D9E9FA1A2A3A4A6A7A8A9ABACADAE - -61773457F068C376C7829B93E696E716:ABBB755E4621EF8F1214C19F649FB9FD:\ -B0B1B2B3B5B6B7B8BABBBCBDBFC0C1C2C4C5C6C7C9CACBCCCECFD0D1D3D4D5D6 - -A34F0CAE726CCE41DD498747D891B967:DA27FB8174357BCE2BED0E7354F380F9:\ -D8D9DADBDDDEDFE0E2E3E4E5E7E8E9EAECEDEEEFF1F2F3F4F6F7F8F9FBFCFDFE - -856F59496C7388EE2D2B1A27B7697847:C59A0663F0993838F6E5856593BDC5EF:\ -00010203050607080A0B0C0D0F10111214151617191A1B1C1E1F202123242526 - -CB090C593EF7720BD95908FB93B49DF4:ED60B264B5213E831607A99C0CE5E57E:\ -28292A2B2D2E2F30323334353738393A3C3D3E3F41424344464748494B4C4D4E - -A0AC75CD2F1923D460FC4D457AD95BAF:E50548746846F3EB77B8C520640884ED:\ -50515253555657585A5B5C5D5F60616264656667696A6B6C6E6F707173747576 - -2A2B282974777689E8E9EEEF525D5C5F:28282CC7D21D6A2923641E52D188EF0C:\ -78797A7B7D7E7F80828384858788898A8C8D8E8F91929394969798999B9C9D9E - -909192939390919E0F0E09089788898A:0DFA5B02ABB18E5A815305216D6D4F8E:\ -A0A1A2A3A5A6A7A8AAABACADAFB0B1B2B4B5B6B7B9BABBBCBEBFC0C1C3C4C5C6 - -777675748D8E8F907170777649464744:7359635C0EECEFE31D673395FB46FB99:\ -C8C9CACBCDCECFD0D2D3D4D5D7D8D9DADCDDDEDFE1E2E3E4E6E7E8E9EBECEDEE - -717073720605040B2D2C2B2A05FAFBF9:73C679F7D5AEF2745C9737BB4C47FB36:\ -F0F1F2F3F5F6F7F8FAFBFCFDFE01000204050607090A0B0C0E0F101113141516 - -64656667FEFDFCC31B1A1D1CA5AAABA8:B192BD472A4D2EAFB786E97458967626:\ -18191A1B1D1E1F20222324252728292A2C2D2E2F31323334363738393B3C3D3E - -DBDAD9D86A696867B5B4B3B2C8D7D6D5:0EC327F6C8A2B147598CA3FDE61DC6A4:\ -40414243454647484A4B4C4D4F50515254555657595A5B5C5E5F606163646566 - -5C5D5E5FE3E0E1FE31303736333C3D3E:FC418EB3C41B859B38D4B6F646629729:\ -68696A6B6D6E6F70727374757778797A7C7D7E7F81828384868788898B8C8D8E - -545556574B48494673727574546B6A69:30249E5AC282B1C981EA64B609F3A154:\ -90919293959697989A9B9C9D9FA0A1A2A4A5A6A7A9AAABACAEAFB0B1B3B4B5B6 - -ECEDEEEFC6C5C4BB56575051F5FAFBF8:5E6E08646D12150776BB43C2D78A9703:\ -B8B9BABBBDBEBFC0C2C3C4C5C7C8C9CACCCDCECFD1D2D3D4D6D7D8D9DBDCDDDE - -464744452724252AC9C8CFCED2CDCCCF:FAEB3D5DE652CD3447DCEB343F30394A:\ -E0E1E2E3E5E6E7E8EAEBECEDEFF0F1F2F4F5F6F7F9FAFBFCFEFE010103040506 - -E6E7E4E54142435C878681801C131211:A8E88706823F6993EF80D05C1C7B2CF0:\ -08090A0B0D0E0F10121314151718191A1C1D1E1F21222324262728292B2C2D2E - -72737071CFCCCDC2F9F8FFFE710E0F0C:8CED86677E6E00A1A1B15968F2D3CCE6:\ -30313233353637383A3B3C3D3F40414244454647494A4B4C4E4F505153545556 - -505152537370714EC3C2C5C4010E0F0C:9FC7C23858BE03BDEBB84E90DB6786A9:\ -58595A5B5D5E5F60626364656768696A6C6D6E6F71727374767778797B7C7D7E - -A8A9AAAB5C5F5E51AEAFA8A93D222320:B4FBD65B33F70D8CF7F1111AC4649C36:\ -80818283858687888A8B8C8D8F90919294959697999A9B9C9E9FA0A1A3A4A5A6 - -DEDFDCDDF6F5F4EB10111617FEF1F0F3:C5C32D5ED03C4B53CC8C1BD0EF0DBBF6:\ -A8A9AAABADAEAFB0B2B3B4B5B7B8B9BABCBDBEBFC1C2C3C4C6C7C8C9CBCCCDCE - -BDBCBFBE5E5D5C530B0A0D0CFAC5C4C7:D1A7F03B773E5C212464B63709C6A891:\ -D0D1D2D3D5D6D7D8DADBDCDDDFE0E1E2E4E5E6E7E9EAEBECEEEFF0F1F3F4F5F6 - -8A8B8889050606F8F4F5F2F3636C6D6E:6B7161D8745947AC6950438EA138D028:\ -F8F9FAFBFDFEFE00020304050708090A0C0D0E0F11121314161718191B1C1D1E - -A6A7A4A54D4E4F40B2B3B4B539262724:FD47A9F7E366EE7A09BC508B00460661:\ -20212223252627282A2B2C2D2F30313234353637393A3B3C3E3F404143444546 - -9C9D9E9FE9EAEBF40E0F08099B949596:00D40B003DC3A0D9310B659B98C7E416:\ -48494A4B4D4E4F50525354555758595A5C5D5E5F61626364666768696B6C6D6E - -2D2C2F2E1013121DCCCDCACBED121310:EEA4C79DCC8E2BDA691F20AC48BE0717:\ -70717273757677787A7B7C7D7F80818284858687898A8B8C8E8F909193949596 - -F4F5F6F7EDEEEFD0EAEBECEDF7F8F9FA:E78F43B11C204403E5751F89D05A2509:\ -98999A9B9D9E9FA0A2A3A4A5A7A8A9AAACADAEAFB1B2B3B4B6B7B8B9BBBCBDBE - -3D3C3F3E282B2A2573727574150A0B08:D0F0E3D1F1244BB979931E38DD1786EF:\ -C0C1C2C3C5C6C7C8CACBCCCDCFD0D1D2D4D5D6D7D9DADBDCDEDFE0E1E3E4E5E6 - -B6B7B4B5F8FBFAE5B4B5B2B3A0AFAEAD:042E639DC4E1E4DDE7B75B749EA6F765:\ -E8E9EAEBEDEEEFF0F2F3F4F5F7F8F9FAFCFDFEFF01020304060708090B0C0D0E - -B7B6B5B4989B9A95878681809BA4A5A6:BC032FDD0EFE29503A980A7D07AB46A8:\ -10111213151617181A1B1C1D1F20212224252627292A2B2C2E2F303133343536 - -A8A9AAABE5E6E798E9E8EFEE4748494A:0C93AC949C0DA6446EFFB86183B6C910:\ -38393A3B3D3E3F40424344454748494A4C4D4E4F51525354565758595B5C5D5E - -ECEDEEEFD9DADBD4B9B8BFBE657A7B78:E0D343E14DA75C917B4A5CEC4810D7C2:\ -60616263656667686A6B6C6D6F70717274757677797A7B7C7E7F808183848586 - -7F7E7D7C696A6B74CACBCCCD929D9C9F:0EAFB821748408279B937B626792E619:\ -88898A8B8D8E8F90929394959798999A9C9D9E9FA1A2A3A4A6A7A8A9ABACADAE - -08090A0B0605040BFFFEF9F8B9C6C7C4:FA1AC6E02D23B106A1FEF18B274A553F:\ -B0B1B2B3B5B6B7B8BABBBCBDBFC0C1C2C4C5C6C7C9CACBCCCECFD0D1D3D4D5D6 - -08090A0BF1F2F3CCFCFDFAFB68676665:0DADFE019CD12368075507DF33C1A1E9:\ -D8D9DADBDDDEDFE0E2E3E4E5E7E8E9EAECEDEEEFF1F2F3F4F6F7F8F9FBFCFDFE - -CACBC8C93A393837050403020D121310:3A0879B414465D9FFBAF86B33A63A1B9:\ -00010203050607080A0B0C0D0F10111214151617191A1B1C1E1F202123242526 - -E9E8EBEA8281809F8F8E8988343B3A39:62199FADC76D0BE1805D3BA0B7D914BF:\ -28292A2B2D2E2F30323334353738393A3C3D3E3F41424344464748494B4C4D4E - -515053524645444BD0D1D6D7340B0A09:1B06D6C5D333E742730130CF78E719B4:\ -50515253555657585A5B5C5D5F60616264656667696A6B6C6E6F707173747576 - -42434041ECEFEE1193929594C6C9C8CB:F1F848824C32E9DCDCBF21580F069329:\ -78797A7B7D7E7F80828384858788898A8C8D8E8F91929394969798999B9C9D9E - -EFEEEDECC2C1C0CF76777071455A5B58:1A09050CBD684F784D8E965E0782F28A:\ -A0A1A2A3A5A6A7A8AAABACADAFB0B1B2B4B5B6B7B9BABBBCBEBFC0C1C3C4C5C6 - -5F5E5D5C3F3C3D221D1C1B1A19161714:79C2969E7DED2BA7D088F3F320692360:\ -C8C9CACBCDCECFD0D2D3D4D5D7D8D9DADCDDDEDFE1E2E3E4E6E7E8E9EBECEDEE - -000102034142434C1C1D1A1B8D727371:091A658A2F7444C16ACCB669450C7B63:\ -F0F1F2F3F5F6F7F8FAFBFCFDFE01000204050607090A0B0C0E0F101113141516 - -8E8F8C8DB1B2B38C56575051050A0B08:97C1E3A72CCA65FA977D5ED0E8A7BBFC:\ -18191A1B1D1E1F20222324252728292A2C2D2E2F31323334363738393B3C3D3E - -A7A6A5A4E8EBEAE57F7E7978CAD5D4D7:70C430C6DB9A17828937305A2DF91A2A:\ -40414243454647484A4B4C4D4F50515254555657595A5B5C5E5F606163646566 - -8A8B888994979689454443429F909192:629553457FBE2479098571C7C903FDE8:\ -68696A6B6D6E6F70727374757778797A7C7D7E7F81828384868788898B8C8D8E - -8C8D8E8FE0E3E2ED45444342F1CECFCC:A25B25A61F612669E7D91265C7D476BA:\ -90919293959697989A9B9C9D9FA0A1A2A4A5A6A7A9AAABACAEAFB0B1B3B4B5B6 - -FFFEFDFC4C4F4E31D8D9DEDFB6B9B8BB:EB7E4E49B8AE0F024570DDA293254FED:\ -B8B9BABBBDBEBFC0C2C3C4C5C7C8C9CACCCDCECFD1D2D3D4D6D7D8D9DBDCDDDE - -FDFCFFFECCCFCEC12F2E29286679787B:38FE15D61CCA84516E924ADCE5014F67:\ -E0E1E2E3E5E6E7E8EAEBECEDEFF0F1F2F4F5F6F7F9FAFBFCFEFE010103040506 - -67666564BAB9B8A77071767719161714:3AD208492249108C9F3EBEB167AD0583:\ -08090A0B0D0E0F10121314151718191A1C1D1E1F21222324262728292B2C2D2E - -9A9B98992D2E2F2084858283245B5A59:299BA9F9BF5AB05C3580FC26EDD1ED12:\ -30313233353637383A3B3C3D3F40414244454647494A4B4C4E4F505153545556 - -A4A5A6A70B0809365C5D5A5B2C232221:19DC705B857A60FB07717B2EA5717781:\ -58595A5B5D5E5F60626364656768696A6C6D6E6F71727374767778797B7C7D7E - -464744455754555AF3F2F5F4AFB0B1B2:FFC8AEB885B5EFCAD06B6DBEBF92E76B:\ -80818283858687888A8B8C8D8F90919294959697999A9B9C9E9FA0A1A3A4A5A6 - -323330317675746B7273747549464744:F58900C5E0B385253FF2546250A0142B:\ -A8A9AAABADAEAFB0B2B3B4B5B7B8B9BABCBDBEBFC1C2C3C4C6C7C8C9CBCCCDCE - -A8A9AAAB181B1A15808186872B141516:2EE67B56280BC462429CEE6E3370CBC1:\ -D0D1D2D3D5D6D7D8DADBDCDDDFE0E1E2E4E5E6E7E9EAEBECEEEFF0F1F3F4F5F6 - -E7E6E5E4202323DDAAABACAD343B3A39:20DB650A9C8E9A84AB4D25F7EDC8F03F:\ -F8F9FAFBFDFEFE00020304050708090A0C0D0E0F11121314161718191B1C1D1E - -A8A9AAAB2221202FEDECEBEA1E010003:3C36DA169525CF818843805F25B78AE5:\ -20212223252627282A2B2C2D2F30313234353637393A3B3C3E3F404143444546 - -F9F8FBFA5F5C5D42424344450E010003:9A781D960DB9E45E37779042FEA51922:\ -48494A4B4D4E4F50525354555758595A5C5D5E5F61626364666768696B6C6D6E - -57565554F5F6F7F89697909120DFDEDD:6560395EC269C672A3C288226EFDBA77:\ -70717273757677787A7B7C7D7F80818284858687898A8B8C8E8F909193949596 - -F8F9FAFBCCCFCEF1DDDCDBDA0E010003:8C772B7A189AC544453D5916EBB27B9A:\ -98999A9B9D9E9FA0A2A3A4A5A7A8A9AAACADAEAFB1B2B3B4B6B7B8B9BBBCBDBE - -D9D8DBDA7073727D80818687C2DDDCDF:77CA5468CC48E843D05F78EED9D6578F:\ -C0C1C2C3C5C6C7C8CACBCCCDCFD0D1D2D4D5D6D7D9DADBDCDEDFE0E1E3E4E5E6 - -C5C4C7C6080B0A1588898E8F68676665:72CDCC71DC82C60D4429C9E2D8195BAA:\ -E8E9EAEBEDEEEFF0F2F3F4F5F7F8F9FAFCFDFEFF01020304060708090B0C0D0E - -83828180DCDFDED186878081F0CFCECD:8080D68CE60E94B40B5B8B69EEB35AFA:\ -10111213151617181A1B1C1D1F20212224252627292A2B2C2E2F303133343536 - -98999A9BDDDEDFA079787F7E0A050407:44222D3CDE299C04369D58AC0EBA1E8E:\ -38393A3B3D3E3F40424344454748494A4C4D4E4F51525354565758595B5C5D5E - -CECFCCCD4F4C4D429F9E9998DFC0C1C2:9B8721B0A8DFC691C5BC5885DBFCB27A:\ -60616263656667686A6B6C6D6F70717274757677797A7B7C7E7F808183848586 - -404142436665647B29282F2EABA4A5A6:0DC015CE9A3A3414B5E62EC643384183:\ -88898A8B8D8E8F90929394959798999A9C9D9E9FA1A2A3A4A6A7A8A9ABACADAE - -33323130E6E5E4EB23222524DEA1A0A3:705715448A8DA412025CE38345C2A148:\ -B0B1B2B3B5B6B7B8BABBBCBDBFC0C1C2C4C5C6C7C9CACBCCCECFD0D1D3D4D5D6 - -CFCECDCCF6F5F4CBE6E7E0E199969794:C32B5B0B6FBAE165266C569F4B6ECF0B:\ -D8D9DADBDDDEDFE0E2E3E4E5E7E8E9EAECEDEEEFF1F2F3F4F6F7F8F9FBFCFDFE - -BABBB8B97271707FDCDDDADB29363734:4DCA6C75192A01DDCA9476AF2A521E87:\ -00010203050607080A0B0C0D0F10111214151617191A1B1C1E1F202123242526 - -C9C8CBCA4447465926272021545B5A59:058691E627ECBC36AC07B6DB423BD698:\ -28292A2B2D2E2F30323334353738393A3C3D3E3F41424344464748494B4C4D4E - -050407067477767956575051221D1C1F:7444527095838FE080FC2BCDD30847EB:\ -50515253555657585A5B5C5D5F60616264656667696A6B6C6E6F707173747576 - -00000000000000000000000000000000:E35A6DCB19B201A01EBCFA8AA22B5759:\ -8000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5075C2405B76F22F553488CAE47CE90B:\ -4000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:49DF95D844A0145A7DE01C91793302D3:\ -2000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E7396D778E940B8418A86120E5F421FE:\ -1000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:05F535C36FCEDE4657BE37F4087DB1EF:\ -0800000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D0C1DDDD10DA777C68AB36AF51F2C204:\ -0400000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:1C55FB811B5C6464C4E5DE1535A75514:\ -0200000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:52917F3AE957D5230D3A2AF57C7B5A71:\ -0100000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C6E3D5501752DD5E9AEF086D6B45D705:\ -0080000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:A24A9C7AF1D9B1E17E1C9A3E711B3FA7:\ -0040000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B881ECA724A6D43DBC6B96F6F59A0D20:\ -0020000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:EC524D9A24DFFF2A9639879B83B8E137:\ -0010000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:34C4F345F5466215A037F443635D6F75:\ -0008000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5BA5055BEDB8895F672E29F2EB5A355D:\ -0004000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B3F692AA3A435259EBBEF9B51AD1E08D:\ -0002000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:414FEB4376F2C64A5D2FBB2ED531BA7D:\ -0001000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:A20D519E3BCA3303F07E81719F61605E:\ -0000800000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:A08D10E520AF811F45BD60A2DC0DC4B1:\ -0000400000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B06893A8C563C430E6F3858826EFBBE4:\ -0000200000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:0FFEE26AE2D3929C6BD9C6BEDFF84409:\ -0000100000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:4D0F5E906ED77801FC0EF53EDC5F9E2B:\ -0000080000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:8B6EC00119AD8B026DCE56EA7DEFE930:\ -0000040000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:69026591D43363EE9D83B5007F0B484E:\ -0000020000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:27135D86950C6A2F86872706279A4761:\ -0000010000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:35E6DB8723F281DA410C3AC8535ED77C:\ -0000008000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:57427CF214B8C28E4BBF487CCB8D0E09:\ -0000004000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:6DF01BF56E5131AC87F96E99CAB86367:\ -0000002000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:3856C5B55790B768BBF7D43031579BCF:\ -0000001000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:1E6ED8FB7C15BC4D2F63BA7037ED44D0:\ -0000000800000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E1B2ED6CD8D93D455534E401156D4BCF:\ -0000000400000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:EFBCCA5BDFDAD10E875F02336212CE36:\ -0000000200000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:0B777F02FD18DCE2646DCFE868DFAFAD:\ -0000000100000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C8A104B5693D1B14F5BF1F10100BF508:\ -0000000080000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:4CCE6615244AFCB38408FECE219962EA:\ -0000000040000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F99E7845D3A255B394C9C050CBA258B1:\ -0000000020000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B4AFBB787F9BCFB7B55FDF447F611295:\ -0000000010000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:AE1C426A697FAF2808B7EF6ADDB5C020:\ -0000000008000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:7572F92811A85B9BDD38DEAD9945BCAE:\ -0000000004000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:71BC7AA46E43FB95A181527D9F6A360F:\ -0000000002000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5542EF2923066F1EC8F546DD0D8E7CA8:\ -0000000001000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:6B92317C7D623790B748FDD7EFC42422:\ -0000000000800000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:0FE7C097E899C71EF045360F8D6C25CF:\ -0000000000400000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:4ECE7EE107D0264D04693151C25B9DF6:\ -0000000000200000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:FD6AE687CBFCA9E301045888D3BB9605:\ -0000000000100000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:476B579C8556C7254424902CC1D6D36E:\ -0000000000080000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:4133CBCDFDD6B8860A1FC18665D6D71B:\ -0000000000040000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:3B36EC2664798C108B816812C65DFDC7:\ -0000000000020000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:364E20A234FEA385D48DC5A09C9E70CF:\ -0000000000010000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:4A4BA25969DE3F5EE5642C71AAD0EFD1:\ -0000000000008000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E42CBAAE43297F67A76C1C501BB79E36:\ -0000000000004000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:23CEDEDA4C15B4C037E8C61492217937:\ -0000000000002000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:A1719147A1F4A1A1180BD16E8593DCDE:\ -0000000000001000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:AB82337E9FB0EC60D1F25A1D0014192C:\ -0000000000000800000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:74BF2D8FC5A8388DF1A3A4D7D33FC164:\ -0000000000000400000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D5B493317E6FBC6FFFD664B3C491368A:\ -0000000000000200000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BA767381586DA56A2A8D503D5F7ADA0B:\ -0000000000000100000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E8E6BC57DFE9CCADB0DECABF4E5CF91F:\ -0000000000000080000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:3C8E5A5CDC9CEED90815D1F84BB2998C:\ -0000000000000040000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:283843020BA38F056001B2FD585F7CC9:\ -0000000000000020000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D8ADC7426F623ECE8741A70621D28870:\ -0000000000000010000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D7C5C215592D06F00E6A80DA69A28EA9:\ -0000000000000008000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:52CF6FA433C3C870CAC70190358F7F16:\ -0000000000000004000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F63D442A584DA71786ADEC9F3346DF75:\ -0000000000000002000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:549078F4B0CA7079B45F9A5ADAFAFD99:\ -0000000000000001000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F2A5986EE4E9984BE2BAFB79EA8152FA:\ -0000000000000000800000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:8A74535017B4DB2776668A1FAE64384C:\ -0000000000000000400000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E613342F57A97FD95DC088711A5D0ECD:\ -0000000000000000200000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:3FFAEBF6B22CF1DC82AE17CD48175B01:\ -0000000000000000100000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BAFD52EFA15C248CCBF9757735E6B1CE:\ -0000000000000000080000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:7AF94BC018D9DDD4539D2DD1C6F4000F:\ -0000000000000000040000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:FE177AD61CA0FDB281086FBA8FE76803:\ -0000000000000000020000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:74DBEA15E2E9285BAD163D7D534251B6:\ -0000000000000000010000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:23DD21331B3A92F200FE56FF050FFE74:\ -0000000000000000008000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:A69C5AA34AB20A858CAFA766EACED6D8:\ -0000000000000000004000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:3F72BB4DF2A4F941A4A09CB78F04B97A:\ -0000000000000000002000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:72CC43577E1FD5FD14622D24D97FCDCC:\ -0000000000000000001000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D83AF8EBE93E0B6B99CAFADE224937D1:\ -0000000000000000000800000000000000000000000000000000000000000000 - -00000000000000000000000000000000:44042329128D56CAA8D084C8BD769D1E:\ -0000000000000000000400000000000000000000000000000000000000000000 - -00000000000000000000000000000000:14102D72290DE4F2C430ADD1ED64BA1D:\ -0000000000000000000200000000000000000000000000000000000000000000 - -00000000000000000000000000000000:449124097B1ECD0AE7065206DF06F03C:\ -0000000000000000000100000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D060A99F8CC153A42E11E5F97BD7584A:\ -0000000000000000000080000000000000000000000000000000000000000000 - -00000000000000000000000000000000:65605B3EA9261488D53E48602ADEA299:\ -0000000000000000000040000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C5E5CAD7A208DE8EA6BE049EFE5C7346:\ -0000000000000000000020000000000000000000000000000000000000000000 - -00000000000000000000000000000000:4C280C46D2181646048DD5BC0C0831A5:\ -0000000000000000000010000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5DD65CF37F2A0929559AABAFDA08E730:\ -0000000000000000000008000000000000000000000000000000000000000000 - -00000000000000000000000000000000:31F2335CAAF264172F69A693225E6D22:\ -0000000000000000000004000000000000000000000000000000000000000000 - -00000000000000000000000000000000:3E28B35F99A72662590DA96426DD377F:\ -0000000000000000000002000000000000000000000000000000000000000000 - -00000000000000000000000000000000:570F40F5D7B20441486578ED344343BE:\ -0000000000000000000001000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C54308AD1C9E3B19F8B7417873045A8C:\ -0000000000000000000000800000000000000000000000000000000000000000 - -00000000000000000000000000000000:CBF335E39CE13ADE2B696179E8FD0CE1:\ -0000000000000000000000400000000000000000000000000000000000000000 - -00000000000000000000000000000000:9C2FBF422355D8293083D51F4A3C18A9:\ -0000000000000000000000200000000000000000000000000000000000000000 - -00000000000000000000000000000000:5ED8B5A31ECEFAB16C9AA6986DA67BCE:\ -0000000000000000000000100000000000000000000000000000000000000000 - -00000000000000000000000000000000:627815DCFC814ABC75900041B1DD7B59:\ -0000000000000000000000080000000000000000000000000000000000000000 - -00000000000000000000000000000000:9EF3E82A50A59F166260494F7A7F2CC3:\ -0000000000000000000000040000000000000000000000000000000000000000 - -00000000000000000000000000000000:878CD0D8D920888B5935D6C351128737:\ -0000000000000000000000020000000000000000000000000000000000000000 - -00000000000000000000000000000000:E44429474D6FC3084EB2A6B8B46AF754:\ -0000000000000000000000010000000000000000000000000000000000000000 - -00000000000000000000000000000000:EBAACF9641D54E1FB18D0A2BE4F19BE5:\ -0000000000000000000000008000000000000000000000000000000000000000 - -00000000000000000000000000000000:13B3BF497CEE780E123C7E193DEA3A01:\ -0000000000000000000000004000000000000000000000000000000000000000 - -00000000000000000000000000000000:6E8F381DE00A41161F0DF03B4155BFD4:\ -0000000000000000000000002000000000000000000000000000000000000000 - -00000000000000000000000000000000:35E4F29BBA2BAE01144910783C3FEF49:\ -0000000000000000000000001000000000000000000000000000000000000000 - -00000000000000000000000000000000:55B17BD66788CEAC366398A31F289FFB:\ -0000000000000000000000000800000000000000000000000000000000000000 - -00000000000000000000000000000000:11341F56C0D6D1008D28741DAA7679CE:\ -0000000000000000000000000400000000000000000000000000000000000000 - -00000000000000000000000000000000:4DF7253DF421D83358BDBE924745D98C:\ -0000000000000000000000000200000000000000000000000000000000000000 - -00000000000000000000000000000000:BAE2EE651116D93EDC8E83B5F3347BE1:\ -0000000000000000000000000100000000000000000000000000000000000000 - -00000000000000000000000000000000:F9721ABD06709157183AF3965A659D9D:\ -0000000000000000000000000080000000000000000000000000000000000000 - -00000000000000000000000000000000:19A1C252A613FE2860A4AE6D75CE6FA3:\ -0000000000000000000000000040000000000000000000000000000000000000 - -00000000000000000000000000000000:B5DDB2F5D9752C949FBDE3FFF5556C6E:\ -0000000000000000000000000020000000000000000000000000000000000000 - -00000000000000000000000000000000:81B044FCFFC78ECCFCD171AAD0405C66:\ -0000000000000000000000000010000000000000000000000000000000000000 - -00000000000000000000000000000000:C640566D3C06020EB2C42F1D62E56A9B:\ -0000000000000000000000000008000000000000000000000000000000000000 - -00000000000000000000000000000000:EA6C4BCF425291679FDFFD26A424FBCC:\ -0000000000000000000000000004000000000000000000000000000000000000 - -00000000000000000000000000000000:57F6901465D9440D9F15EE2CBA5A4090:\ -0000000000000000000000000002000000000000000000000000000000000000 - -00000000000000000000000000000000:FBCFA74CADC7406260F63D96C8AAB6B1:\ -0000000000000000000000000001000000000000000000000000000000000000 - -00000000000000000000000000000000:DFF4F096CEA211D4BBDACA033D0EC7D1:\ -0000000000000000000000000000800000000000000000000000000000000000 - -00000000000000000000000000000000:1EE5190D551F0F42F675227A381296A9:\ -0000000000000000000000000000400000000000000000000000000000000000 - -00000000000000000000000000000000:F98E1905012E580F097623C10B93054F:\ -0000000000000000000000000000200000000000000000000000000000000000 - -00000000000000000000000000000000:E7D43743D21DD3C9F168C86856558B9A:\ -0000000000000000000000000000100000000000000000000000000000000000 - -00000000000000000000000000000000:632A9DDA730DAB67593C5D08D8AC1059:\ -0000000000000000000000000000080000000000000000000000000000000000 - -00000000000000000000000000000000:E084317000715B9057BC9DE9F3AB6124:\ -0000000000000000000000000000040000000000000000000000000000000000 - -00000000000000000000000000000000:61F9EF33A0BB4E666C2ED99101919FAB:\ -0000000000000000000000000000020000000000000000000000000000000000 - -00000000000000000000000000000000:6DC1D68A11834657D46703C22578D59A:\ -0000000000000000000000000000010000000000000000000000000000000000 - -00000000000000000000000000000000:53AC1548863D3D16F1D4DC7242E05F2C:\ -0000000000000000000000000000008000000000000000000000000000000000 - -00000000000000000000000000000000:E82CD587A408306AD78CEAE0916B9F8C:\ -0000000000000000000000000000004000000000000000000000000000000000 - -00000000000000000000000000000000:0FD2D40EA6AD17A3A767F0A8600D6295:\ -0000000000000000000000000000002000000000000000000000000000000000 - -00000000000000000000000000000000:AD84CC8255ADB39DFCA23F92761AE7E9:\ -0000000000000000000000000000001000000000000000000000000000000000 - -00000000000000000000000000000000:F4F20CF7D51BEE7DA024A2B11A7ECA0B:\ -0000000000000000000000000000000800000000000000000000000000000000 - -00000000000000000000000000000000:5057691B85D9CE93A193214DB0A016B6:\ -0000000000000000000000000000000400000000000000000000000000000000 - -00000000000000000000000000000000:0F58C960876390BDEF4BB6BE95CAA1EE:\ -0000000000000000000000000000000200000000000000000000000000000000 - -00000000000000000000000000000000:9A3E66EEBC21BC0BD9430B341EF465FA:\ -0000000000000000000000000000000100000000000000000000000000000000 - -00000000000000000000000000000000:20415035F34B8BCBCB28ABF07F78F0D4:\ -0000000000000000000000000000000080000000000000000000000000000000 - -00000000000000000000000000000000:AC89FC7BA10479EBF10DE65BCEF89B3C:\ -0000000000000000000000000000000040000000000000000000000000000000 - -00000000000000000000000000000000:068FA75A30BE443171AF3F6FEB1A20D2:\ -0000000000000000000000000000000020000000000000000000000000000000 - -00000000000000000000000000000000:50E02F213246C525A8C27700CA34B502:\ -0000000000000000000000000000000010000000000000000000000000000000 - -00000000000000000000000000000000:227DA47D5A0906DB3AB042BB0A695FB6:\ -0000000000000000000000000000000008000000000000000000000000000000 - -00000000000000000000000000000000:8663AC30ED12514F1DE46777F4514BFC:\ -0000000000000000000000000000000004000000000000000000000000000000 - -00000000000000000000000000000000:A987D4BC12E1DE9F4B6DF43567C34A8B:\ -0000000000000000000000000000000002000000000000000000000000000000 - -00000000000000000000000000000000:6D5A0370F599ACA605F63B04E5143D0C:\ -0000000000000000000000000000000001000000000000000000000000000000 - -00000000000000000000000000000000:9809266E378B07B7AFDB3BAA97B7E442:\ -0000000000000000000000000000000000800000000000000000000000000000 - -00000000000000000000000000000000:8F753252B30CCCACE12D9A301F4D5090:\ -0000000000000000000000000000000000400000000000000000000000000000 - -00000000000000000000000000000000:032465F6C0CE34D41962F561692A1AFF:\ -0000000000000000000000000000000000200000000000000000000000000000 - -00000000000000000000000000000000:C50E9AD5BEB8F3B00821DD47FF8AC093:\ -0000000000000000000000000000000000100000000000000000000000000000 - -00000000000000000000000000000000:9C6FEA3D46268D54A6829B2AD25BB276:\ -0000000000000000000000000000000000080000000000000000000000000000 - -00000000000000000000000000000000:0FD8575E87706F561343D7B3A41E044A:\ -0000000000000000000000000000000000040000000000000000000000000000 - -00000000000000000000000000000000:BEE9BEB3739540D88CBCE77925F0A114:\ -0000000000000000000000000000000000020000000000000000000000000000 - -00000000000000000000000000000000:D24EAEE7FFFBAC3D6F26C2DCE0DCDE28:\ -0000000000000000000000000000000000010000000000000000000000000000 - -00000000000000000000000000000000:47771A90398FF0F7FA821C2F8F5E1398:\ -0000000000000000000000000000000000008000000000000000000000000000 - -00000000000000000000000000000000:4639741B6F84B135AD118C8249B64ED0:\ -0000000000000000000000000000000000004000000000000000000000000000 - -00000000000000000000000000000000:8EE5505EC85567697A3306F250A27720:\ -0000000000000000000000000000000000002000000000000000000000000000 - -00000000000000000000000000000000:7C8A19AC1AEFBC5E0119D91A5F05D4C2:\ -0000000000000000000000000000000000001000000000000000000000000000 - -00000000000000000000000000000000:5141B9B672E54773B672E3A6C424887B:\ -0000000000000000000000000000000000000800000000000000000000000000 - -00000000000000000000000000000000:B5A2D3CD206653C6402F34FB0AE3613D:\ -0000000000000000000000000000000000000400000000000000000000000000 - -00000000000000000000000000000000:0F5BD9408738231D114B0A82753279A3:\ -0000000000000000000000000000000000000200000000000000000000000000 - -00000000000000000000000000000000:FEF033FF4268EA487FC74C5E43A45338:\ -0000000000000000000000000000000000000100000000000000000000000000 - -00000000000000000000000000000000:A3EDC09DCD529B113910D904AD855581:\ -0000000000000000000000000000000000000080000000000000000000000000 - -00000000000000000000000000000000:AB8FBB6F27A0AC7C55B59FDD36B72F1C:\ -0000000000000000000000000000000000000040000000000000000000000000 - -00000000000000000000000000000000:EEA44D5ED4D769CC930CD83D8999EC46:\ -0000000000000000000000000000000000000020000000000000000000000000 - -00000000000000000000000000000000:6972276803AE9AA7C6F431AB10979C34:\ -0000000000000000000000000000000000000010000000000000000000000000 - -00000000000000000000000000000000:86DEAA9F39244101818178474D7DBDE9:\ -0000000000000000000000000000000000000008000000000000000000000000 - -00000000000000000000000000000000:88C6B466EA361D662D8D08CBF181F4FE:\ -0000000000000000000000000000000000000004000000000000000000000000 - -00000000000000000000000000000000:91AB2C6B7C63FF59F7CBEEBF91B20B95:\ -0000000000000000000000000000000000000002000000000000000000000000 - -00000000000000000000000000000000:2DFE6C146AD5B3D8C3C1718F13B48E01:\ -0000000000000000000000000000000000000001000000000000000000000000 - -00000000000000000000000000000000:C7CFF1623451711391A302EEC3584AAA:\ -0000000000000000000000000000000000000000800000000000000000000000 - -00000000000000000000000000000000:089FE845CC05011686C66019D18BE050:\ -0000000000000000000000000000000000000000400000000000000000000000 - -00000000000000000000000000000000:08C8410B9B427211A67124B0DCCEAD48:\ -0000000000000000000000000000000000000000200000000000000000000000 - -00000000000000000000000000000000:8D91592F5566085254784606334D7629:\ -0000000000000000000000000000000000000000100000000000000000000000 - -00000000000000000000000000000000:3298FEAAF2E1201D6299FF8846639C97:\ -0000000000000000000000000000000000000000080000000000000000000000 - -00000000000000000000000000000000:C497CB9F0BDFE0EFC8C2F3F90760AA72:\ -0000000000000000000000000000000000000000040000000000000000000000 - -00000000000000000000000000000000:2788AFD046E0309CBE4424690DA2AB89:\ -0000000000000000000000000000000000000000020000000000000000000000 - -00000000000000000000000000000000:E9891707F25EF29FEE372890D4258982:\ -0000000000000000000000000000000000000000010000000000000000000000 - -00000000000000000000000000000000:DB041D94A23D45D4D4DCED5A030CAF61:\ -0000000000000000000000000000000000000000008000000000000000000000 - -00000000000000000000000000000000:FFAFDBF0ECB18DF9EA02C27077448E6D:\ -0000000000000000000000000000000000000000004000000000000000000000 - -00000000000000000000000000000000:2DAAA42A7D0A1D3B0E4761D99CF2150A:\ -0000000000000000000000000000000000000000002000000000000000000000 - -00000000000000000000000000000000:3B7A54CB7CF30ABE263DD6ED5BFE8D63:\ -0000000000000000000000000000000000000000001000000000000000000000 - -00000000000000000000000000000000:EEFA090174C590C448A55D43648F534A:\ -0000000000000000000000000000000000000000000800000000000000000000 - -00000000000000000000000000000000:9E15798731ED42F43EA2740A691DA872:\ -0000000000000000000000000000000000000000000400000000000000000000 - -00000000000000000000000000000000:31FBD661540A5DEAAD1017CFD3909EC8:\ -0000000000000000000000000000000000000000000200000000000000000000 - -00000000000000000000000000000000:CDA9AE05F224140E28CB951721B44D6A:\ -0000000000000000000000000000000000000000000100000000000000000000 - -00000000000000000000000000000000:0C5BC512C60A1EAC3434EFB1A8FBB182:\ -0000000000000000000000000000000000000000000080000000000000000000 - -00000000000000000000000000000000:AA863610DEEEEB62D045E87EA30B59B5:\ -0000000000000000000000000000000000000000000040000000000000000000 - -00000000000000000000000000000000:6AC2448DE568D279C7EEBE1DF403920C:\ -0000000000000000000000000000000000000000000020000000000000000000 - -00000000000000000000000000000000:E2011E3D292B26888AE801215FD0CB40:\ -0000000000000000000000000000000000000000000010000000000000000000 - -00000000000000000000000000000000:E06F3E15EE3A61672D1C99BADE5B9DBE:\ -0000000000000000000000000000000000000000000008000000000000000000 - -00000000000000000000000000000000:BB7027F0548CF6712CEB4C7A4B28E178:\ -0000000000000000000000000000000000000000000004000000000000000000 - -00000000000000000000000000000000:061EC21FB70FADBDF87C3BD2AE23825B:\ -0000000000000000000000000000000000000000000002000000000000000000 - -00000000000000000000000000000000:4C21F26FE94ABBAC381352375314C3EB:\ -0000000000000000000000000000000000000000000001000000000000000000 - -00000000000000000000000000000000:F7CEE6DD99909C2B569EEDA61ED8942E:\ -0000000000000000000000000000000000000000000000800000000000000000 - -00000000000000000000000000000000:CE98C4A876C65E4CCB261EBB1D9DF7F5:\ -0000000000000000000000000000000000000000000000400000000000000000 - -00000000000000000000000000000000:A5491881CF833C3604ABC08044F402AC:\ -0000000000000000000000000000000000000000000000200000000000000000 - -00000000000000000000000000000000:A1BA16E64CCCB3087D57A768507B0BFC:\ -0000000000000000000000000000000000000000000000100000000000000000 - -00000000000000000000000000000000:D55951E202D2949EBD3BE43120C738BF:\ -0000000000000000000000000000000000000000000000080000000000000000 - -00000000000000000000000000000000:EBB8E43069E69F450EFEC65DCD52B7FD:\ -0000000000000000000000000000000000000000000000040000000000000000 - -00000000000000000000000000000000:2B292135663B4AA5ABFE9423D57E7EE9:\ -0000000000000000000000000000000000000000000000020000000000000000 - -00000000000000000000000000000000:E91BF974B3BE3AD966249D8655292A85:\ -0000000000000000000000000000000000000000000000010000000000000000 - -00000000000000000000000000000000:384365998EAA9562236CC58F6ADF9610:\ -0000000000000000000000000000000000000000000000008000000000000000 - -00000000000000000000000000000000:C2E997012AA3D4D8D359C9A947CBE69F:\ -0000000000000000000000000000000000000000000000004000000000000000 - -00000000000000000000000000000000:F49421204148BA213BE87E2D5C22B0BF:\ -0000000000000000000000000000000000000000000000002000000000000000 - -00000000000000000000000000000000:82ED0ED9953AA92E4DF30929CA65C00F:\ -0000000000000000000000000000000000000000000000001000000000000000 - -00000000000000000000000000000000:291EB1D11653C8479437C74A977F5106:\ -0000000000000000000000000000000000000000000000000800000000000000 - -00000000000000000000000000000000:BCB997B1939B8983ABD550D6025683E3:\ -0000000000000000000000000000000000000000000000000400000000000000 - -00000000000000000000000000000000:1FBA2592C6F489775CAADA71F9B983E9:\ -0000000000000000000000000000000000000000000000000200000000000000 - -00000000000000000000000000000000:969F66F217AF1A3DB9E41C1B29039824:\ -0000000000000000000000000000000000000000000000000100000000000000 - -00000000000000000000000000000000:A54BB7D6B17E423AC0A7744C19073CB8:\ -0000000000000000000000000000000000000000000000000080000000000000 - -00000000000000000000000000000000:B0AC6E6578D1021F47DCF9748A32EAD5:\ -0000000000000000000000000000000000000000000000000040000000000000 - -00000000000000000000000000000000:B87B361C3B7B194C77A4358D4669153E:\ -0000000000000000000000000000000000000000000000000020000000000000 - -00000000000000000000000000000000:46A133847F96EAA8282A799DC8899D58:\ -0000000000000000000000000000000000000000000000000010000000000000 - -00000000000000000000000000000000:2265EC3A9F2D5C9547A091CC8CFB18EA:\ -0000000000000000000000000000000000000000000000000008000000000000 - -00000000000000000000000000000000:54CBF3A6FC4FE56D426117AA1FFD1DDE:\ -0000000000000000000000000000000000000000000000000004000000000000 - -00000000000000000000000000000000:5312877CCEAB6CFB0905394A370A8003:\ -0000000000000000000000000000000000000000000000000002000000000000 - -00000000000000000000000000000000:7190BD6EC613FE38B84ECFE28F702FE4:\ -0000000000000000000000000000000000000000000000000001000000000000 - -00000000000000000000000000000000:D1FA5B9CA89A43B04C05F0EF29EF68CD:\ -0000000000000000000000000000000000000000000000000000800000000000 - -00000000000000000000000000000000:808285751548ED934FD1056D2D9AE8BA:\ -0000000000000000000000000000000000000000000000000000400000000000 - -00000000000000000000000000000000:2758DEF3E7B95A9AE89777BE64D5A6CF:\ -0000000000000000000000000000000000000000000000000000200000000000 - -00000000000000000000000000000000:07D81F87DB3E0ACC82B01E08FB22F3C1:\ -0000000000000000000000000000000000000000000000000000100000000000 - -00000000000000000000000000000000:8DA250E5553D650711A75EE1CB4FD1C7:\ -0000000000000000000000000000000000000000000000000000080000000000 - -00000000000000000000000000000000:A93D946BD0E87F32719DF5F158CEE669:\ -0000000000000000000000000000000000000000000000000000040000000000 - -00000000000000000000000000000000:03945236EC2A4D4EAF30B8ABEB54330D:\ -0000000000000000000000000000000000000000000000000000020000000000 - -00000000000000000000000000000000:11CC35301F24B79DDE31AEA2D1354F88:\ -0000000000000000000000000000000000000000000000000000010000000000 - -00000000000000000000000000000000:E73715B3E8D9A290F44AE6FFBF247E5D:\ -0000000000000000000000000000000000000000000000000000008000000000 - -00000000000000000000000000000000:7345E07732B71CB158BBF64CCA5C5B96:\ -0000000000000000000000000000000000000000000000000000004000000000 - -00000000000000000000000000000000:6E128F296D24705A1924FD9B70C4ED04:\ -0000000000000000000000000000000000000000000000000000002000000000 - -00000000000000000000000000000000:95A789776F036783FBD330947083F54F:\ -0000000000000000000000000000000000000000000000000000001000000000 - -00000000000000000000000000000000:360DEC2533EA4AA2E3E54FD3DE2906EB:\ -0000000000000000000000000000000000000000000000000000000800000000 - -00000000000000000000000000000000:E68EFD7FECF4D601EA22727BD764965B:\ -0000000000000000000000000000000000000000000000000000000400000000 - -00000000000000000000000000000000:9065C64A8BFF44AC33EDBB611CF83D7B:\ -0000000000000000000000000000000000000000000000000000000200000000 - -00000000000000000000000000000000:8F33C8DF2A7A51CE8090E8F123BC3723:\ -0000000000000000000000000000000000000000000000000000000100000000 - -00000000000000000000000000000000:807F391FFBA8291BA625623210F99018:\ -0000000000000000000000000000000000000000000000000000000080000000 - -00000000000000000000000000000000:5E8B3F3A701522CE5CAA761C929D6292:\ -0000000000000000000000000000000000000000000000000000000040000000 - -00000000000000000000000000000000:3BA404DC38735A78289E3809E8364835:\ -0000000000000000000000000000000000000000000000000000000020000000 - -00000000000000000000000000000000:D23BEDBAD229F8305DC425B6B759DCC9:\ -0000000000000000000000000000000000000000000000000000000010000000 - -00000000000000000000000000000000:44880F21CF5913040AE376AEE2A10AD8:\ -0000000000000000000000000000000000000000000000000000000008000000 - -00000000000000000000000000000000:9BC98E29D057C0E828C3B5CCE69256C1:\ -0000000000000000000000000000000000000000000000000000000004000000 - -00000000000000000000000000000000:B293CC7A975DA141A68279368057CC41:\ -0000000000000000000000000000000000000000000000000000000002000000 - -00000000000000000000000000000000:8D60FB87ACD91385B313BE5F1D7BD30F:\ -0000000000000000000000000000000000000000000000000000000001000000 - -00000000000000000000000000000000:2C8E56132D70291B303C48FDF75543CD:\ -0000000000000000000000000000000000000000000000000000000000800000 - -00000000000000000000000000000000:D1F80035B826791F6CE4E59B7DB1BB0D:\ -0000000000000000000000000000000000000000000000000000000000400000 - -00000000000000000000000000000000:42CE6224FC36469339A133DD08173BD4:\ -0000000000000000000000000000000000000000000000000000000000200000 - -00000000000000000000000000000000:61817155EA41BCBA2AF7F06AE7CBF585:\ -0000000000000000000000000000000000000000000000000000000000100000 - -00000000000000000000000000000000:D1923A9866068D2EF5FB77D57C3315B6:\ -0000000000000000000000000000000000000000000000000000000000080000 - -00000000000000000000000000000000:B37CBDB5D719F49691CA968EF2E84140:\ -0000000000000000000000000000000000000000000000000000000000040000 - -00000000000000000000000000000000:EC974E653A055D7F8F22171030F68E1D:\ -0000000000000000000000000000000000000000000000000000000000020000 - -00000000000000000000000000000000:DDE5D3B9AAD9C32213BB3675A822499C:\ -0000000000000000000000000000000000000000000000000000000000010000 - -00000000000000000000000000000000:D3B6E9216EA1AE57EB1C628A3C38AB78:\ -0000000000000000000000000000000000000000000000000000000000008000 - -00000000000000000000000000000000:82C99ECC69472B7E96324B042AE8B87A:\ -0000000000000000000000000000000000000000000000000000000000004000 - -00000000000000000000000000000000:97144DC5338C43600F84439C0AA0D147:\ -0000000000000000000000000000000000000000000000000000000000002000 - -00000000000000000000000000000000:400AC4A0BBADA1DB2121EB144C7E5209:\ -0000000000000000000000000000000000000000000000000000000000001000 - -00000000000000000000000000000000:EFD9D550EB419ED278F4885A490AB54C:\ -0000000000000000000000000000000000000000000000000000000000000800 - -00000000000000000000000000000000:2AB7816E149B7C0404C88A8857793670:\ -0000000000000000000000000000000000000000000000000000000000000400 - -00000000000000000000000000000000:5B591DFF9E8DEE15BAD24C025DBCA481:\ -0000000000000000000000000000000000000000000000000000000000000200 - -00000000000000000000000000000000:0C06633E30721C3749F49AD8CBF2B754:\ -0000000000000000000000000000000000000000000000000000000000000100 - -00000000000000000000000000000000:96D6D31A41B5123B2035FD91A921D4CA:\ -0000000000000000000000000000000000000000000000000000000000000080 - -00000000000000000000000000000000:E7F6C34D86668BC2805CA7793C5E86AD:\ -0000000000000000000000000000000000000000000000000000000000000040 - -00000000000000000000000000000000:F46DFF5FF500D6879C4D3E45CF0CF0F3:\ -0000000000000000000000000000000000000000000000000000000000000020 - -00000000000000000000000000000000:60D842D9C61DA7495C116197B7CECBBE:\ -0000000000000000000000000000000000000000000000000000000000000010 - -00000000000000000000000000000000:D45B24EDB673353EBDF248B8FA06B67A:\ -0000000000000000000000000000000000000000000000000000000000000008 - -00000000000000000000000000000000:119EAEBCC165D0BD02C0D35DC82EF992:\ -0000000000000000000000000000000000000000000000000000000000000004 - -00000000000000000000000000000000:E673143680414ADA301D0ED34626B9FE:\ -0000000000000000000000000000000000000000000000000000000000000002 - -00000000000000000000000000000000:6B6CFE160A6263631B292F879EEFF926:\ -0000000000000000000000000000000000000000000000000000000000000001 - -80000000000000000000000000000000:DDC6BF790C15760D8D9AEB6F9A75FD4E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -40000000000000000000000000000000:C7098C217C334D0C9BDF37EA13B0822C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -20000000000000000000000000000000:60F0FB0D4C56A8D4EEFEC5264204042D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -10000000000000000000000000000000:73376FBBF654D0686E0E84001477106B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -08000000000000000000000000000000:2F443B52BA5F0C6EA0602C7C4FD259B6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -04000000000000000000000000000000:75D11B0E3A68C4223D88DBF017977DD7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -02000000000000000000000000000000:779B38D15BFFB63D8D609D551A5CC98E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -01000000000000000000000000000000:5275F3D86B4FB8684593133EBFA53CD3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00800000000000000000000000000000:1CEF2074B336CEC62F12DEA2F6AB1481:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00400000000000000000000000000000:1AEF5ABBAD9D7160874578DCD8BAE172:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00200000000000000000000000000000:46C525DB17E72F26BF03216846B6F609:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00100000000000000000000000000000:E24411F941BBE08788781E3EC52CBAA4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00080000000000000000000000000000:83A3DEDD1DD27018F6A6477E40527581:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00040000000000000000000000000000:B68F8A2CDBAB0C923C67FC8F0F1087DE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00020000000000000000000000000000:649944A70C32BF87A7409E7AE128FDE8:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00010000000000000000000000000000:2846526D67387539C89314DE9E0C2D02:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00008000000000000000000000000000:A9A0B8402E53C70DD1688054BA58DDFD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00004000000000000000000000000000:4A72E6E1B79C83AC4BE3EBA5699EED48:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00002000000000000000000000000000:B0E36B867BA4FF2B77D0614B0E364E4C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00001000000000000000000000000000:49B57DE141F6418E3090F24DDD4014B6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000800000000000000000000000000:A6C0D5B9797258E1987AC5F6CD20146D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000400000000000000000000000000:426CF4BDCAA369175965D26E7C71EEA2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000200000000000000000000000000:E27F484CE54BC99BC1A52BDA3B518A26:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000100000000000000000000000000:D16D186284C7E6EE64B8104E0EF20BA5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000080000000000000000000000000:6431F8538AD54E1E044A9F71F8EF556B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000040000000000000000000000000:ECD57CEB451D27EB96C55B2042257E8E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000020000000000000000000000000:4F0F188DC911B1954AFBC734C9F68872:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000010000000000000000000000000:B54DEF0337626B65614E81EDFDE620F3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000008000000000000000000000000:6655D8074CAE0B90B0D3A3FE72D4D9DB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000004000000000000000000000000:C6B74B6B9EB4FC0C9A237DB1B616D09A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000002000000000000000000000000:D7B5D076EA56EC2B20791D7AD51CCF8F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000001000000000000000000000000:FE160C224BF003CE3BDDC90CB52ED22C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000800000000000000000000000:5E00DA9BA94B5EC0D258D8A8002E0F6A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000400000000000000000000000:09AC6DCFF4DACFF1651E2BA212A292A3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000200000000000000000000000:B283617E318D99AF83A05D9810BA89F7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000100000000000000000000000:0B5F70CCB40B0EF2538AE9B4A9770B35:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000080000000000000000000000:43282BF180248FB517839B37F4DDAAE4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000040000000000000000000000:DDBD534C8B2E6D30A268F88C55AD765B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000020000000000000000000000:A41A164E50EC2D9F175E752B755E0B5C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000010000000000000000000000:37BFF99FF2F7AA97779E4ADF6F13FB10:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000008000000000000000000000:9BA4F7BD298152903A683C4CEC669216:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000004000000000000000000000:5FB750C7CE10DE7B4504248914D0DA06:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000002000000000000000000000:3E748BFA108E086F51D56EC74A9E0FB9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000001000000000000000000000:31D4E56B99F5B73C1B8437DF332AFB98:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000800000000000000000000:9DC6717B84FC55D266E7B1D9B5C52A5F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000400000000000000000000:8EF8BA007F23C0A50FC120E07041BCCD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000200000000000000000000:C58F38E1839FC1918A12B8C9E88C66B6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000100000000000000000000:B695D72A3FCF508C4050E12E40061C2D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000080000000000000000000:5D2736AD478A50583BC8C11BEFF16D7A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000040000000000000000000:DF0EACA8F17847AD41F9578F14C7B56B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000020000000000000000000:E5AA14AD48AD0A3C47CC35D5F8020E51:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000010000000000000000000:11BE6C8F58EBD8CEF1A53F591A68E8CE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000008000000000000000000:ECFE7BAFCBF42C1FEE015488770B3053:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000004000000000000000000:E552649F8D8EC4A1E1CD6DF50B6E6777:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000002000000000000000000:521C0629DE93B9119CDB1DDC5809DDEA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000001000000000000000000:CB38A62A0BAB1784156BA038CBA99BF6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000800000000000000000:76CCEE8AAACD394DE1EEF3DDA10CB54B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000400000000000000000:6AFF910FA1D5673140E2DB59B8416049:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000200000000000000000:064A12C0EF73FB386801BF4F35F3120D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000100000000000000000:2240E374929D5B1BB8FF0FFDDDF640EC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000080000000000000000:D4BA15C904C7692185DE85C02052E180:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000040000000000000000:1714A315AB0166728A44CD91D4AE9018:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000020000000000000000:6C970BDD9F0E222722EA31A1D12DD0AD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000010000000000000000:F5956EDF02BD36A401BBB6CE77C3D3FB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000008000000000000000:0CA11F122CCD7C259DC597EED3DF9BC4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000004000000000000000:50109AB4912AD2560B206F331B62EB6C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000002000000000000000:DBE7C91A4175614889A2D4BEFD64845E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000001000000000000000:0D3322853A571A6B46B79C0228E0DD25:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000800000000000000:96E4EE0BB9A11C6FB8522F285BADDEB6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000400000000000000:96705C52D2CFCE82E630C93477C79C49:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000200000000000000:C50130AED6A126149D71F3888C83C232:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000100000000000000:4816EFE3DEB380566EBA0C17BF582090:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000080000000000000:0390857B4C8C98E4CF7A2B6F3394C507:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000040000000000000:422E73A02025EBE8B8B5D6E0FA24FCB2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000020000000000000:3271AA7F4BF1D7C38050A43076D4FF76:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000010000000000000:D2074946F0D37B8975607BFC2E70234C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000008000000000000:1A509194C1270AB92E5A42D3A9F8D98B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000004000000000000:512438946360CCC4A5C6D73F6EED7130:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000002000000000000:98CFCDEC46EBEA1A286B3004F2746A0D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000001000000000000:A1CF369949677A3AF3D58E3EABF2741B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000800000000000:D84C2E1A0E4A52166FA8FF6889D1E5E2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000400000000000:4AD91CCEEF60119B5078FD162D2735DE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000200000000000:2860793D818E97AAFF1D339D7702438D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000100000000000:6F9068BE73364AE250D89D78A6C9CE6F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000080000000000:024FC3FEF4883FEB1A8DD005305FECCE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000040000000000:08A61FE0816D75EA15EB3C9FB9CCDED6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000020000000000:449C86DFA13F260175CE39797686FFA4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000010000000000:4FFFFC29A59858E1133F2BFB1A8A4817:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000008000000000:19425D1F6480B25096561295697DC2B7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000004000000000:31974727ECDD2C77C3A428FC3A8CB3FC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000002000000000:A57CD704B3C95E744D08DF443458F2F5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000001000000000:486D8C193DB1ED73ACB17990442FC40B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000800000000:5E4DBF4E83AB3BC055B9FCC7A6B3A763:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000400000000:ACF2E0A693FBBCBA4D41B861E0D89E37:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000200000000:32A7CB2AE066A51D2B78FC4B4CFCB608:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000100000000:677D494DBB73CAF55C1990158DA12F14:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000080000000:082A0D2367512ADF0D75A151BFBE0A17:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000040000000:5E5BB7337923C482CE8CBA249E6A8C7D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000020000000:D3001BA7C7026EE3E5003179530AFCFC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000010000000:46EC44F8931E629FE8FD8961312EDDE1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000008000000:C5F8ECD79C7B30E81D17E32079969310:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000004000000:5B8AD6919E24CAEBCC55401AEE0C9802:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000002000000:C2302B7E701B5CC7F8B29E3516DBBFA6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000001000000:A1D04D6A76F9F7A94D49FAA64A87F244:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000800000:7FB6F92D35B5CB6C631600EDB9E860BA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000400000:B2EF7078BCFACE07AEEC3F9B48830EB3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000200000:F475A7493D24C7036E53390374C378B3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000100000:B36802AC987377A37BD8EADC97C57D60:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000080000:ADDCD3D19689C4DDC738CE5F69DC9505:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000040000:0DAF8CA22884915403C0F0BB1F4BD74F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000020000:4AF36BAE2660503B3248E4685059FD05:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000010000:7D5631814DD8E917D97A0D514C743971:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000008000:BC3352500FC0CBB9DB5B5F6B491C1BE8:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000004000:6A4A30BA87E87AF65C90AEB7AFEDC76B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000002000:77E6125897668AC8E73E8C79A6FF8336:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000001000:3FA9D39104EBB323C7AAAA248960DD1E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000800:FAD75AD76AB10ADC49036B250E229D39:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000400:2FACAA5FE35B228A16AC74088D702EC4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000200:88B6CBCFDFEF8AD91720A1BB69A1F33E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000100:C7E9D250998632D444356242EF04058D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000080:B14DAD8D3D9153F46C0D3A1AD63C7A05:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000040:60ABA678A506608D0845966D29B5F790:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000020:482DC43F2388EF25D24144E144BD834E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000010:1490A05A7CEE43BDE98B56E309DC0126:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000008:ABFA77CD6E85DA245FB0BDC5E52CFC29:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000004:DD4AB1284D4AE17B41E85924470C36F7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000002:CEA7403D4D606B6E074EC5D3BAF39D18:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000001:530F8AFBC74536B9A963B4F1C4CB738B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -# From the 'official' Blowfish vectors (mostly by SSLeay, aka OpenSSL) -[Blowfish] -0000000000000000:245946885754369A:0123456789ABCDEF -0000000000000000:4EF997456198DD78:0000000000000000 -0000000000000000:F21E9A77B71C49BC:FFFFFFFFFFFFFFFF -004BD6EF09176062:452031C1E4FADA8E:584023641ABA6176 -0123456789ABCDEF:0ACEAB0FC6A0A28D:FEDCBA9876543210 -0123456789ABCDEF:7D0CC630AFDA1EC7:1111111111111111 -0123456789ABCDEF:A790795108EA3CAE:1F1F1F1F0E0E0E0E -0123456789ABCDEF:C39E072D9FAC631D:E0FEE0FEF1FEF1FE -0123456789ABCDEF:FA34EC4847B268B2:0101010101010101 -01A1D6D039776742:59C68245EB05282B:7CA110454A1A6E57 -0248D43806F67172:1730E5778BEA1DA4:07A1133E4A0B2686 -02FE55778117F12A:CF9C5D7A4986ADB5:49E95D6D4CA229BF -059B5E0851CF143A:48F4D0884C379918:0113B970FD34F2CE -072D43A077075292:7A8E7BFA937E89A3:4FB05E1515AB73A7 -0756D8E0774761D2:432193B78951FC98:0170F175468FB5E6 -1000000000000001:7D856F9A613063F2:3000000000000000 -1111111111111111:2466DD878B963C9D:1111111111111111 -1111111111111111:61F9C3802281B096:0123456789ABCDEF -164D5E404F275232:5F99D04F5B163969:37D06BB516CB7546 -1D9D5C5018F728C2:D1ABB290658BC778:018310DC409B26D6 -26955F6835AF609A:D887E0393C2DA6E3:04689104C2FD3B2F -305532286D6F295A:55CB3774D13EF201:1C587F1C13924FEF -3BDD119049372802:2EEDDA93FFD39C79:07A7137045DA2A16 -42FD443059577FA2:353882B109CE8F1A:04B915BA43FEB5B6 -437540C8698F3CFA:53C55F9CB49FC019:49793EBC79B3258F -480D39006EE762F2:7555AE39F59B87BD:025816164629B007 -51454B582DDF440A:A25E7856CF2651EB:3849674C2602319E -5CD54CA83DEF57DA:B1B8CC0B250F09A0:0131D9619DC1376E -6B056E18759F5CCA:4A057A3B24D3977B:1F08260D1AC2465E -762514B829BF486A:13F04154D69D1AE5:43297FAD38E373FE -FFFFFFFFFFFFFFFF:014933E0CDAFF6E4:0000000000000000 -FFFFFFFFFFFFFFFF:51866FD5B85ECB8A:FFFFFFFFFFFFFFFF -FFFFFFFFFFFFFFFF:6B5C5A9C5D9E0A5A:FEDCBA9876543210 - -0123456789ABCDEF1111111111111111:7D0CC630AFDA1EC72466DD878B963C9D:\ -1111111111111111 - -FEDCBA9876543210:CC91732B8022F684:57686F206973204A6F686E2047616C743F - -424C4F5746495348:324ED0FEF413A203:\ -6162636465666768696A6B6C6D6E6F707172737475767778797A - -FEDCBA9876543210:F9AD597C49DB005E:F0 -FEDCBA9876543210:E91D21C1D961A6D6:F0E1 -FEDCBA9876543210:E9C2B70A1BC65CF3:F0E1D2 -FEDCBA9876543210:BE1E639408640F05:F0E1D2C3 -FEDCBA9876543210:B39E44481BDB1E6E:F0E1D2C3B4 -FEDCBA9876543210:9457AA83B1928C0D:F0E1D2C3B4A5 -FEDCBA9876543210:8BB77032F960629D:F0E1D2C3B4A596 -FEDCBA9876543210:E87A244E2CC85E82:F0E1D2C3B4A59687 -FEDCBA9876543210:15750E7A4F4EC577:F0E1D2C3B4A5968778 -FEDCBA9876543210:122BA70B3AB64AE0:F0E1D2C3B4A596877869 -FEDCBA9876543210:3A833C9AFFC537F6:F0E1D2C3B4A5968778695A -FEDCBA9876543210:9409DA87A90F6BF2:F0E1D2C3B4A5968778695A4B -FEDCBA9876543210:884F80625060B8B4:F0E1D2C3B4A5968778695A4B3C -FEDCBA9876543210:1F85031C19E11968:F0E1D2C3B4A5968778695A4B3C2D -FEDCBA9876543210:79D9373A714CA34F:F0E1D2C3B4A5968778695A4B3C2D1E -FEDCBA9876543210:93142887EE3BE15C:F0E1D2C3B4A5968778695A4B3C2D1E0F -FEDCBA9876543210:03429E838CE2D14B:F0E1D2C3B4A5968778695A4B3C2D1E0F00 -FEDCBA9876543210:A4299E27469FF67B:F0E1D2C3B4A5968778695A4B3C2D1E0F0011 -FEDCBA9876543210:AFD5AED1C1BC96A8:F0E1D2C3B4A5968778695A4B3C2D1E0F001122 -FEDCBA9876543210:10851C0E3858DA9F:F0E1D2C3B4A5968778695A4B3C2D1E0F00112233 -FEDCBA9876543210:E6F51ED79B9DB21F:F0E1D2C3B4A5968778695A4B3C2D1E0F0011223344 -FEDCBA9876543210:64A6E14AFD36B46F:F0E1D2C3B4A5968778695A4B3C2D1E0F001122334455 -FEDCBA9876543210:80C7D7D45A5479AD:\ -F0E1D2C3B4A5968778695A4B3C2D1E0F00112233445566 -FEDCBA9876543210:05044B62FA52D080:\ -F0E1D2C3B4A5968778695A4B3C2D1E0F0011223344556677 - -[Camellia-128] -# From RFC 3713 -0123456789ABCDEFFEDCBA9876543210:67673138549669730857065648EABE43:\ -0123456789ABCDEFFEDCBA9876543210 - -# Nessie -00000000000000000000000000000000:6C227F749319A3AA7DA235A9BBA05A2C:\ -80000000000000000000000000000000 - -00000000000000000000000000000000:F04D51E45E70FB6DEE0D16A204FBBA16:\ -40000000000000000000000000000000 - -00000000000000000000000000000000:ED44242E619F8C32EAA2D3641DA47EA4:\ -20000000000000000000000000000000 - -EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF:5CA8B8A4B8AF15A6184259831B18BBB5:\ -EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF - -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:25DD9EB9DD67FBC6E8431F56F4FBE651:\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - - -[Camellia-192] -# From RFC 3713 -0123456789ABCDEFFEDCBA9876543210:B4993401B3E996F84EE5CEE7D79B09B9:\ -0123456789ABCDEFFEDCBA98765432100011223344556677 - -# Nessie - -00000000000000000000000000000000:1B6220D365C2176C1D41A5826520FCA1:\ -800000000000000000000000000000000000000000000000 - -FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE:A2F5A98929658AF4A9700B9923DAF014:\ -FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE - -[Camellia-256] -# From RFC 3713 -0123456789ABCDEFFEDCBA9876543210:9ACC237DFF16D76C20EF7C919E3A7509:\ -0123456789ABCDEFFEDCBA987654321000112233445566778899AABBCCDDEEFF - -00000000000000000000000000000000:2136FABDA091DFB5171B94B8EFBB5D08:\ -8000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E18B0CB1980124504B46A46A6F4273F3:\ -0000000000000200000000000000000000000000000000000000000000000000 - -00000000000000000000000000000001:9CDB269B5D293BC5DB9C55B057D9B591:\ -0000000000000000000000000000000000000000000000000000000000000000 - -0000000000000000000000000000000000000000000000000000000000000001\ -0000000000000000000000000000000200000000000000000000000000000004\ -0000000000000000000000000000000800000000000000000000000000000010\ -0000000000000000000000000000002000000000000000000000000000000040:\ -396154111ADEFC500CF6E5C99038BC179CDB269B5D293BC5DB9C55B057D9B591\ -3D4B2CDE666761BA5DFB305178E667FB6A3F25AAB7E92D9CF378E5D9C040F26B\ -7C92854D801A1648F65CA81813DDBF83BA664AC39855518DFDEE10D1B3111FAE\ -7A6985778D3A66E97F23E01F0D0E45E78B1F247802E47C91BEE2AA34ECFD7A01:\ -0000000000000000000000000000000000000000000000000000000000000000 - -# First one is from RFC 2144. The rest were done with OpenSSL and bits taken -# from /dev/urandom -[CAST-128] -0123456789ABCDEF:238B4FE5847E44B2:0123456712345678234567893456789A -0D5ED4BF2C101A00:851769123481EEBD:51D35D2CFC978231CC8D404C05F20778 -D6AA8EAE1E559AAE:C7FAFAFC64204DDE:3148F2F7A5EC9832C918B3FCE3A882D4 -F2504FFBB8970532:6371C64A362D2A06:23CA10AC5007672EAAC2A652A1033051 -4B1E9D8F450B7342:9CC2B912173553F3:69698114EB6B0C7DA021394E8294BA81 -26D7BA5E58E367FC:A2D1FCB23EDBE861:E29067C7B82F2BB5787A95961C4B145B -960370DF205DF0C9:E1F5DCA58544FE69:724096996EA7E796847CC954DDB02F21 -3E16104523173535:EF4B1D186287F9E4:C44CD3B7C176A89B849AEC9D1A834D25 -6AB0B4F6FBDFE766:273B54BDF2B5588C:F5A1E7B8DF1852E0A12E150665812CE1 -76300E213C3F9D73:6C51876F5EA9CE03:1BCBC553F08BA5AE3DC87E3A08D720A5 -22A5191C0722F0D8:F1E19892EE7A4E51:0265563A752CB548404FEBA1C7231FA7 -D20430D1B98AE949:79E576FC40F1DC98:9C553CF85065EC9EFE0A6526070DF766 -1C7401D639A47971:BD2172A2ED5F5C02:1895E906311E100D6F189B0622248BC3 -B8591CA50C7E763D:573F3DB3C43731FA:616A2B2C30F26B1386CD8B1E9E15D77E -CDA3984E06CC637A:2525D6596ACE9CD1:14422858FA163B7C5267FF819773CE1D -5B5A603C9C090115:3729DAB86CB1CCF7:172E65C14E746EE6203025E94171D520 -9F9881CA42D7024C:9C3C573D7B958521:3E9FB858087C4E937A408EC1352482B1 -4A5C46FD61058258:2A1E5FD727F67F13:A32E8B1498839F6017802758076B0BFC -EBBB828350790FDA:78FC70F88D1622ED:E303C6052387C310524721A2E461E89A -5097EDFFDFC0CA5B:3ABDD3B9A69C7330:3B3DE3DA709304F69F1DD00F00A05064 -8F950AE00DD2F279:2C62AFD2C641CCE8:C36EC561C6E005B5FC5F03F2A90B097E -D23B8A5E996E263D:31A202CC0F9FB2B7:202F39862076420EA9DF9DECCDC507AB -8D953359228A4C76:AA454DE10B7A6863:CCD6F6AAEEB788E928CECF99440BBF07 -D2E9C19314726F4D:B744FAB9846F35E4:017779EA29084F30B867FDDFF56A2158 -F4C032C960A5B463:EDA7B0739A0638EE:CE44271A18D709DCC62648F709C1CBE2 -81A0FD9AA423ED36:C3CCCC1389F1D712:B9F0598CFA6D4F92294C4BA43ED360F2 -B7E0072AE1CBEE65:AEF33EEDCCC2E47F:5A6C06E02E3D5177D26F0D63DF839057 -F5810D9F1D639F82:A7A88EFA33ACF56E:547DF75C2FCFF20C1ED3A77AF1AD66E8 -984A16BE2CD649AC:444FC61F5CAB5A14:9CC9412E02C03D423E055D340BC74460 -8BC57E1C4D4DB959:6AAFD5AD02B48AAD:D2E4D28086A37BF2927C9477C8184907 -E79C0E003AE33C71:DCD139EFE59F5B1B:AFE83744D296834750A5AEC59C1FA546 -5E8EB11FF48AE593:947A1A1472AF838E:B933E959F7D492EACA22E7DF1C179C79 -FD9072FAB981B8AA:57A9C621EF5BE045:6DC4F66D0812A820134C3F61E398195E -53515B1ABC74C9FB:C87A6000F80DADAF:4FA0C134D50DDCAE2FA8828479149C61 -1086DE79B6DC0C18:102FFA93ECBB99CF:7A6ECA7EAAF393694A32AF561FF7E056 -351228904431D12A:DC8B4548DA69C92D:42400F970D5E6E38DE297B365C0704D3 -889F00F0EC62610F:3AEC2335A78EC8F9:50D77ED75F69D9FD89C0B58A5374CC8E -05CC553B50019A76:7A3F48D2954FB957:321E02B40C3F7D9D55A5135620685DC8 -D30DBA7A648B2CE9:242C1509768F5F9E:DA1CA8F596F04697592CE210752FD08D -1917132061B5B572:28FDDE7607EBE08D:9C56B69695DB96CEDBF1133386D13768 -8420D1986EBBABFC:EAACBF83A093CB44:9F79CA83F4FDCCACA166BF18BF1B0CC2 - -# From my AES CD, I'm guessing -[CAST-256] -00000000000000000000000000000000:66918B620F075819CDE620469D5F39B8:\ -80000000000000000000000000000000 -00000000000000000000000000000000:C842A08972B43D20836C91D1B7530F6B:\ -2342BB9EFA38542C0AF75647F29F615D -00000000000000000000000000000001:4DBF11C2CA26D5A712578A5C18E8487B:\ -00000000000000000000000000000000 -00000000000000000000000000000000:1B386C0210DCADCBDD0E41AA08A7A7E8:\ -2342BB9EFA38542CBED0AC83940AC298BAC77A7717942863 -80000000000000000000000000000000:D64AD4962DCF990CB9EB1BEF19A21B98:\ -000000000000000000000000000000000000000000000000 -00000000000040000000000000000000:0154FF22D769EB57AE14D7ECDD60C1D8:\ -000000000000000000000000000000000000000000000000 -80000000000000000000000000000000:D64AD4962DCF990CB9EB1BEF19A21B98:\ -0000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000001:4DBF11C2CA26D5A712578A5C18E8487B:\ -0000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000:41C30E3025A7E66F6AE733DFDC861341:\ -0000000000000000000000200000000000000000000000000000000000000000 -00000000000000000000000000000000:4F6A2038286897B9C9870136553317FA:\ -2342BB9EFA38542CBED0AC83940AC2988D7C47CE264908461CC1B5137AE6B604 - -0000000000000000000000000C9B2807:963A8A50CEB54D08E0DEE0F1D0413DCF:\ -2342BB9EFA38542C0AF75647F29F615D -000000000000000000000000EE356B0F:B25683CD9188DB9307F8A1236B53DE86:\ -2342BB9EFA38542CBED0AC83940AC298BAC77A7717942863 -000000000000000000000000B2E9D805:AAB348855CAC0DC7BDF2FA02757A2154:\ -2342BB9EFA38542CBED0AC83940AC2988D7C47CE264908461CC1B5137AE6B604 - -[DES] -059B5E0851CF143A:86A560F10EC6D85B:0113B970FD34F2CE -4E6F772069732074:3FA40E8A984D4815:0123456789ABCDEF -666F7220616C6C20:893D51EC4B563B53:0123456789ABCDEF -68652074696D6520:6A271787AB8883F9:0123456789ABCDEF -5CD54CA83DEF57DA:7A389D10354BD271:0131D9619DC1376E -0756D8E0774761D2:0CD3DA020021DC09:0170F175468FB5E6 -1D9D5C5018F728C2:5F4C038ED12B2E41:018310DC409B26D6 -480D39006EE762F2:A1F9915541020B56:025816164629B007 -26955F6835AF609A:5C513C9C4886C088:04689104C2FD3B2F -42FD443059577FA2:AF37FB421F8C4095:04B915BA43FEB5B6 -0248D43806F67172:868EBB51CAB4599A:07A1133E4A0B2686 -3BDD119049372802:DFD64A815CAF1A0F:07A7137045DA2A16 -16393BCDD6560506:9966ADCFC53BF968:0A3FDDC8350AFF39 -DC7FC6CF0358ECC0:A47A7485661F7085:10DD6DCD5C89E151 -305532286D6F295A:63FAC0D034D9F793:1C587F1C13924FEF -F786D02413C574FC:54C160D369F62AE3:1EB00767BDEE584E -6B056E18759F5CCA:EF1BF03E5DFA575A:1F08260D1AC2465E -905EA29AEEA26E07:2292E9AEBEE6A4B6:28EE445D8A21C534 -164D5E404F275232:0A2AEEAE3FF4AB77:37D06BB516CB7546 -51454B582DDF440A:7178876E01F19B2A:3849674C2602319E -68FF9D6068C71513:84595F5B9D046132:3CDE816EF9EF8EDB -762514B829BF486A:EA676B2CB7DB2B7A:43297FAD38E373FE -437540C8698F3CFA:6FBF1CAFCFFD0556:49793EBC79B3258F -02FE55778117F12A:5A6B612CC26CCE4A:49E95D6D4CA229BF -1F508A50ADB3D6E2:470204969876604A:4BB53ECFEFB38DDE -072D43A077075292:2F22E49BAB7CA1AC:4FB05E1515AB73A7 -004BD6EF09176062:88BF0DB6D70DEE56:584023641ABA6176 -5AA1D62806AE0EAD:6DB0F280FEF2B564:5F2B51F59E781D9C -7E1B1C6776833772:EB11CD3C72F7E90E:699C920D7CE1E0B1 -5DBFB47C5F471136:9C8B904D4D772BE7:7AC2FDEEE4C79746 -01A1D6D039776742:690F5B0D9A26939B:7CA110454A1A6E57 -4DE2F0926CF598D7:BA107655991DF529:7FC92C3098ECF14A -F45E6819E3108559:F0C76BA556283B2F:9AB645E268430854 -51D4EAAAC6D76553:BF3C6E8FD15BA861:A6B0AE88F980011A -6A89626EA8038511:1067B36913CBCC47:BAFEBAFAFEAEEAFF -7B0313C0D3A866F9:E49E15E4F46F10E9:BB2420B5FEE5A6A1 -9D4A44AEFCE79965:77B2ECC9278E9714:BEBAFBEABAFFEAAF -59BCDFC253424CB5:0A50ABBBCD07061A:C38C6F20230D9ED5 -D6C059A85EE2B13E:25977533635BEB5B:C6F974504D954C7E -F9E4821DFCAA5466:48EC3A79399E9A00:CB959B7FFD94F734 -35E8554BAD60FB29:993A3AF0BC0D77A4:CFB23034323CD19A -9F97210D75B7E6DF:4729E3396E57AE4E:D4D861035745F2C8 -FFFFFFFFFFFFFFFF:B5CE4F28FDEB21E8:E36972FC4BEC7587 -323837024123C918:7F28BF28ADFA1CF0:E91A71A7ED5EB0EF -37DFE527086AF0A0:5F53C6C87760256E:EBBBBAEBFBBEFABA -20678F45B5B8AC00:7CC8ECF2638CC808:EBBEEEAEBBBBFFFF -78481ED0C5A7C93E:4CA3A08300EA6AFC:FBEAFFEEFFEEABAB -E2CCD415AC25412A:BD85B3B659AB7276:FD8A675C0ED08301 -CCCC5BDFD9029507:DA57553D7D55775F:FFFFFFFFFFFFFFFF -0000000000000000:23083A3CA70DD027:D5D44FF720683D0D -0100000000000000:6F353E3388ABE2EF:D5D44FF720683D0D - -95F8A5E5DD31D900:8000000000000000:0101010101010101 -95F8A5E5DD31D900:8000000000000000:0000000000000000 -DD7F121CA5015619:4000000000000000:0101010101010101 -2E8653104F3834EA:2000000000000000:0101010101010101 -4BD388FF6CD81D4F:1000000000000000:0101010101010101 -20B9E767B2FB1456:0800000000000000:0101010101010101 -20B9E767B2FB1456:0800000000000000:0001010101010100 -55579380D77138EF:0400000000000000:0101010101010101 -6CC5DEFAAF04512F:0200000000000000:0101010101010101 -0D9F279BA5D87260:0100000000000000:0101010101010101 -D9031B0271BD5A0A:0080000000000000:0101010101010101 -424250B37C3DD951:0040000000000000:0101010101010101 -B8061B7ECD9A21E5:0020000000000000:0101010101010101 -F15D0F286B65BD28:0010000000000000:0101010101010101 -ADD0CC8D6E5DEBA1:0008000000000000:0101010101010101 -E6D5F82752AD63D1:0004000000000000:0101010101010101 -ECBFE3BD3F591A5E:0002000000000000:0101010101010101 -F356834379D165CD:0001000000000000:0101010101010101 -2B9F982F20037FA9:0000800000000000:0101010101010101 -889DE068A16F0BE6:0000400000000000:0101010101010101 -E19E275D846A1298:0000200000000000:0101010101010101 -329A8ED523D71AEC:0000100000000000:0101010101010101 -E7FCE22557D23C97:0000080000000000:0101010101010101 -12A9F5817FF2D65D:0000040000000000:0101010101010101 -A484C3AD38DC9C19:0000020000000000:0101010101010101 -FBE00A8A1EF8AD72:0000010000000000:0101010101010101 -750D079407521363:0000008000000000:0101010101010101 -64FEED9C724C2FAF:0000004000000000:0101010101010101 -F02B263B328E2B60:0000002000000000:0101010101010101 -9D64555A9A10B852:0000001000000000:0101010101010101 -D106FF0BED5255D7:0000000800000000:0101010101010101 -E1652C6B138C64A5:0000000400000000:0101010101010101 -E428581186EC8F46:0000000200000000:0101010101010101 -AEB5F5EDE22D1A36:0000000100000000:0101010101010101 -E943D7568AEC0C5C:0000000080000000:0101010101010101 -DF98C8276F54B04B:0000000040000000:0101010101010101 -B160E4680F6C696F:0000000020000000:0101010101010101 -FA0752B07D9C4AB8:0000000010000000:0101010101010101 -CA3A2B036DBC8502:0000000008000000:0101010101010101 -5E0905517BB59BCF:0000000004000000:0101010101010101 -814EEB3B91D90726:0000000002000000:0101010101010101 -4D49DB1532919C9F:0000000001000000:0101010101010101 -25EB5FC3F8CF0621:0000000000800000:0101010101010101 -AB6A20C0620D1C6F:0000000000400000:0101010101010101 -79E90DBC98F92CCA:0000000000200000:0101010101010101 -866ECEDD8072BB0E:0000000000100000:0101010101010101 -8B54536F2F3E64A8:0000000000080000:0101010101010101 -EA51D3975595B86B:0000000000040000:0101010101010101 -CAFFC6AC4542DE31:0000000000020000:0101010101010101 -8DD45A2DDF90796C:0000000000010000:0101010101010101 -1029D55E880EC2D0:0000000000008000:0101010101010101 -5D86CB23639DBEA9:0000000000004000:0101010101010101 -1D1CA853AE7C0C5F:0000000000002000:0101010101010101 -CE332329248F3228:0000000000001000:0101010101010101 -8405D1ABE24FB942:0000000000000800:0101010101010101 -E643D78090CA4207:0000000000000400:0101010101010101 -48221B9937748A23:0000000000000200:0101010101010101 -DD7C0BBD61FAFD54:0000000000000100:0101010101010101 -2FBC291A570DB5C4:0000000000000080:0101010101010101 -E07C30D7E4E26E12:0000000000000040:0101010101010101 -0953E2258E8E90A1:0000000000000020:0101010101010101 -5B711BC4CEEBF2EE:0000000000000010:0101010101010101 -CC083F1E6D9E85F6:0000000000000008:0101010101010101 -D2FD8867D50D2DFE:0000000000000004:0101010101010101 -06E7EA22CE92708F:0000000000000002:0101010101010101 -166B40B44ABA4BD6:0000000000000001:0101010101010101 -0000000000000000:95A8D72813DAA94D:8001010101010101 -0000000000000000:0EEC1487DD8C26D5:4001010101010101 -0000000000000000:7AD16FFB79C45926:2001010101010101 -0000000000000000:D3746294CA6A6CF3:1001010101010101 -0000000000000000:809F5F873C1FD761:0801010101010101 -0000000000000000:C02FAFFEC989D1FC:0401010101010101 -0000000000000000:4615AA1D33E72F10:0201010101010101 -0000000000000000:2055123350C00858:0180010101010101 -0000000000000000:DF3B99D6577397C8:0140010101010101 -0000000000000000:31FE17369B5288C9:0120010101010101 -0000000000000000:DFDD3CC64DAE1642:0110010101010101 -0000000000000000:178C83CE2B399D94:0108010101010101 -0000000000000000:50F636324A9B7F80:0104010101010101 -0000000000000000:A8468EE3BC18F06D:0102010101010101 -0000000000000000:A2DC9E92FD3CDE92:0101800101010101 -0000000000000000:CAC09F797D031287:0101400101010101 -0000000000000000:90BA680B22AEB525:0101200101010101 -0000000000000000:CE7A24F350E280B6:0101100101010101 -0000000000000000:882BFF0AA01A0B87:0101080101010101 -0000000000000000:25610288924511C2:0101040101010101 -0000000000000000:C71516C29C75D170:0101020101010101 -0000000000000000:5199C29A52C9F059:0101018001010101 -0000000000000000:C22F0A294A71F29F:0101014001010101 -0000000000000000:EE371483714C02EA:0101012001010101 -0000000000000000:A81FBD448F9E522F:0101011001010101 -0000000000000000:4F644C92E192DFED:0101010801010101 -0000000000000000:1AFA9A66A6DF92AE:0101010401010101 -0000000000000000:B3C1CC715CB879D8:0101010201010101 -0000000000000000:19D032E64AB0BD8B:0101010180010101 -0000000000000000:3CFAA7A7DC8720DC:0101010140010101 -0000000000000000:B7265F7F447AC6F3:0101010120010101 -0000000000000000:9DB73B3C0D163F54:0101010110010101 -0000000000000000:8181B65BABF4A975:0101010108010101 -0000000000000000:93C9B64042EAA240:0101010104010101 -0000000000000000:5570530829705592:0101010102010101 -0000000000000000:8638809E878787A0:0101010101800101 -0000000000000000:41B9A79AF79AC208:0101010101400101 -0000000000000000:7A9BE42F2009A892:0101010101200101 -0000000000000000:29038D56BA6D2745:0101010101100101 -0000000000000000:5495C6ABF1E5DF51:0101010101080101 -0000000000000000:AE13DBD561488933:0101010101040101 -0000000000000000:024D1FFA8904E389:0101010101020101 -0000000000000000:D1399712F99BF02E:0101010101018001 -0000000000000000:14C1D7C1CFFEC79E:0101010101014001 -0000000000000000:1DE5279DAE3BED6F:0101010101012001 -0000000000000000:E941A33F85501303:0101010101011001 -0000000000000000:DA99DBBC9A03F379:0101010101010801 -0000000000000000:B7FC92F91D8E92E9:0101010101010401 -0000000000000000:AE8E5CAA3CA04E85:0101010101010201 -0000000000000000:9CC62DF43B6EED74:0101010101010180 -0000000000000000:D863DBB5C59A91A0:0101010101010140 -0000000000000000:A1AB2190545B91D7:0101010101010120 -0000000000000000:0875041E64C570F7:0101010101010110 -0000000000000000:5A594528BEBEF1CC:0101010101010108 -0000000000000000:FCDB3291DE21F0C0:0101010101010104 -0000000000000000:869EFD7F9F265A09:0101010101010102 -0000000000000000:88D55E54F54C97B4:1046913489980131 -0000000000000000:0C0CC00C83EA48FD:1007103489988020 -0000000000000000:83BC8EF3A6570183:10071034C8980120 -0000000000000000:DF725DCAD94EA2E9:1046103489988020 -0000000000000000:E652B53B550BE8B0:1086911519190101 -0000000000000000:AF527120C485CBB0:1086911519580101 -0000000000000000:0F04CE393DB926D5:5107B01519580101 -0000000000000000:C9F00FFC74079067:1007B01519190101 -0000000000000000:7CFD82A593252B4E:3107915498080101 -0000000000000000:CB49A2F9E91363E3:3107919498080101 -0000000000000000:00B588BE70D23F56:10079115B9080140 -0000000000000000:406A9A6AB43399AE:3107911598090140 -0000000000000000:6CB773611DCA9ADA:1007D01589980101 -0000000000000000:67FD21C17DBB5D70:9107911589980101 -0000000000000000:9592CB4110430787:9107D01589190101 -0000000000000000:A6B7FF68A318DDD3:1007D01598980120 -0000000000000000:4D102196C914CA16:1007940498190101 -0000000000000000:2DFA9F4573594965:0107910491190401 -0000000000000000:B46604816C0E0774:0107910491190101 -0000000000000000:6E7E6221A4F34E87:0107940491190401 -0000000000000000:AA85E74643233199:19079210981A0101 -0000000000000000:2E5A19DB4D1962D6:1007911998190801 -0000000000000000:23A866A809D30894:10079119981A0801 -0000000000000000:D812D961F017D320:1007921098190101 -0000000000000000:055605816E58608F:100791159819010B -0000000000000000:ABD88E8B1B7716F1:1004801598190101 -0000000000000000:537AC95BE69DA1E1:1004801598190102 -0000000000000000:AED0F6AE3C25CDD8:1004801598190108 -0000000000000000:B3E35A5EE53E7B8D:1002911598100104 -0000000000000000:61C79C71921A2EF8:1002911598190104 -0000000000000000:E2F5728F0995013C:1002911598100201 -0000000000000000:1AEAC39A61F0A464:1002911698100101 - -# Tests all sboxes -01A1D6D039776742:690F5B0D9A26939B:7CA110454A1A6E57 -5CD54CA83DEF57DA:7A389D10354BD271:0131D9619DC1376E -0248D43806F67172:868EBB51CAB4599A:07A1133E4A0B2686 -51454B582DDF440A:7178876E01F19B2A:3849674C2602319E -42FD443059577FA2:AF37FB421F8C4095:04B915BA43FEB5B6 -059B5E0851CF143A:86A560F10EC6D85B:0113B970FD34F2CE -0756D8E0774761D2:0CD3DA020021DC09:0170F175468FB5E6 -762514B829BF486A:EA676B2CB7DB2B7A:43297FAD38E373FE -3BDD119049372802:DFD64A815CAF1A0F:07A7137045DA2A16 -26955F6835AF609A:5C513C9C4886C088:04689104C2FD3B2F -164D5E404F275232:0A2AEEAE3FF4AB77:37D06BB516CB7546 -6B056E18759F5CCA:EF1BF03E5DFA575A:1F08260D1AC2465E -004BD6EF09176062:88BF0DB6D70DEE56:584023641ABA6176 -480D39006EE762F2:A1F9915541020B56:025816164629B007 -437540C8698F3CFA:6FBF1CAFCFFD0556:49793EBC79B3258F -072D43A077075292:2F22E49BAB7CA1AC:4FB05E1515AB73A7 -02FE55778117F12A:5A6B612CC26CCE4A:49E95D6D4CA229BF -1D9D5C5018F728C2:5F4C038ED12B2E41:018310DC409B26D6 -305532286D6F295A:63FAC0D034D9F793:1C587F1C13924FEF - -# Tests the permutation -0000000000000000:88D55E54F54C97B4:1046913489980131 -0000000000000000:0C0CC00C83EA48FD:1007103489988020 -0000000000000000:83BC8EF3A6570183:10071034C8980120 -0000000000000000:DF725DCAD94EA2E9:1046103489988020 -0000000000000000:E652B53B550BE8B0:1086911519190101 -0000000000000000:AF527120C485CBB0:1086911519580101 -0000000000000000:0F04CE393DB926D5:5107B01519580101 -0000000000000000:C9F00FFC74079067:1007B01519190101 -0000000000000000:7CFD82A593252B4E:3107915498080101 -0000000000000000:CB49A2F9E91363E3:3107919498080101 -0000000000000000:00B588BE70D23F56:10079115B9080140 -0000000000000000:406A9A6AB43399AE:3107911598080140 -0000000000000000:6CB773611DCA9ADA:1007D01589980101 -0000000000000000:67FD21C17DBB5D70:9107911589980101 -0000000000000000:9592CB4110430787:9107D01589190101 -0000000000000000:A6B7FF68A318DDD3:1007D01598980120 -0000000000000000:4D102196C914CA16:1007940498190101 -0000000000000000:2DFA9F4573594965:0107910491190401 -0000000000000000:B46604816C0E0774:0107910491190101 -0000000000000000:6E7E6221A4F34E87:0107940491190401 -0000000000000000:AA85E74643233199:19079210981A0101 -0000000000000000:2E5A19DB4D1962D6:1007911998190801 -0000000000000000:23A866A809D30894:10079119981A0801 -0000000000000000:D812D961F017D320:1007921098190101 -0000000000000000:055605816E58608F:100791159819010B -0000000000000000:ABD88E8B1B7716F1:1004801598190101 -0000000000000000:537AC95BE69DA1E1:1004801598190102 -0000000000000000:AED0F6AE3C25CDD8:1004801598190108 -0000000000000000:B3E35A5EE53E7B8D:1002911598100104 -0000000000000000:61C79C71921A2EF8:1002911598190104 -0000000000000000:E2F5728F0995013C:1002911598100201 -0000000000000000:1AEAC39A61F0A464:1002911698100101 - -# Vectors randomly generated using OpenSSL - -0CEB1136A85AD37A:9CE3A1058A483F55:309A4B21A2067196 -9BBBD2F50EC248A8:7694CA89548B0A3B:CA61DEF25C51A5A0 -FF82E00A54C33870:ADF2C2D3F57C12EC:054F6AC2C779D51A -3E33A822C3C3573A:91481544C1349FD2:AB28E5763F23361A -8BB2EC62E042C9BF:62F0E53062A010B9:A9C631D31852201F -4844511C42049973:C7265CA05D9F3253:3D90CADF843BBA1B -38F11633A3766D10:66D55E36CCE18435:B6006A2C549DEA94 -746BC597A7501FF0:0032D9CA6E094980:070A848D67D7701C -FA5F22A6A7DDBB8B:91ECEFD28E217506:A12AE6006E8F8D37 -8D3D08E33FBB298D:CF132CE973D16AA3:9998A725FB90FDE4 -397CA570B07AF49E:4C2959260E6C27DC:F111F3AFD4602715 -6ACFBFF2962511A9:2D325409EF2CD744:EF97EA242CCBAC00 -EB5167B434A4595A:483EA80264F0DCF6:9080E3410BFCDB73 -E72EDA1F8AE27EB9:0E4AF25FBDD5A85E:8A37156BE5515D5D -B0F7D48AA74DD638:7F6747AEF2C9EAC9:DF09A6387CFE9A6B -334A69684C8B728A:6717F2AD848DEAF7:B4FCAFFB540653E5 -A78C724DA4DC969D:AC6A97ECE16A8892:183972A45732379A -4310191D687F40D6:C9B0C9CA84CFC141:979D352937F85083 -F630889FB4B5ED90:6166F3231EC1EAD9:5CEDCE103F7F73C4 -C9C7BFE95A2F77FD:B6C234EAF4A39B1F:4AD1B967A715F5A9 -43E2B87BB55A3038:B9BE452E0E4EA44D:F883F548F16E692A -42AA788D751F49A5:5302E3BA833E598A:D75198DF25CC1345 -63E22CDF499763C3:70E8BD70BCE301CB:7033D4C5D9B36096 -665976555719E76F:65769A95FB144DE9:76B7EAC1DB819238 -12DD07305BC143DE:A5E73B90A3E75586:76FC0A292121B094 -45A11A91EF86DDA6:6E2C2CC2A2333C88:B775628F1EC6520C -537FEBCB1219673B:D578B8AA85351F91:65BF73315A05061C -F5F17039BA37C1C0:3D6A8E5991C3AEBB:E772317D24F6D307 -D0530A774112DC14:307AE98F2B6864D0:461E02D82081CA3A -A46F062CBB7BFC33:A9D2B0940F0A7F58:08FF3D9BDE9EEA8E -A47F14BAA946FB7B:4E79EBEFD716D85F:4D92A8AE6F9C6A35 -692A27DA86F2E283:29961C5FD6744638:FB1C7BB97C7ED50C -74D5CD027725903C:B8A8076072E55000:C9B0558D7C353C5E -2311E3818223DFA9:17A4E5989E9C9A3D:60D82E111EEEDEA8 -984B849763274BD3:205C2B2AEDB6052D:76DB3E3505FD3A95 -9852C739E74737B7:525CBAD9C2D50EA0:558EF761EEE52DCF -6C4236CFAEFF63EC:E1AD916DED6850F4:AC340D97D96CF29E -1A95C43E9C7D5339:B60E5C4C76CE51C6:50F5C29F83C8F2BF -7DBE4645B2C169F4:285276D256091B2E:C7BF9EB44254ACA6 -841DEAE87A860986:799A5A58E5CE9D59:FE80AB20EAC7AD16 -1529ACE917CA5AB4:AAB07F8FDBDC494E:B012DE369D9B7436 -86462C0AD4003FEC:51310B7C123C64C4:61896A3271D3E2B2 -A67151571BE9AB07:3024667AFF88ADAB:8514D38254A5A55F -B314608B183F3329:AA966A7A395FFAE7:F607C0CD0FAFCC60 -84B322B129ABACDF:C50F0D6E439E8490:10EEC9E7F07A51D3 -E296E275356AA9A0:B3963851F7DEB2C3:32F4E03E3B10DB42 -4DF2292E321837F6:1D017CE1B3C03380:52205900EE0836E6 -88A2C60FB19E5983:77763644264C8FB8:A481D9B2C7FDA435 -06CA0C88A4347E12:F1FCAEAF30C63870:404025B368276238 -FEFD2DF531FE9112:8F49A08722BB14F0:657486656993AC7B - -# From http://people.csail.mit.edu/rivest/Destest.txt -9474B8E8C73BCA7D:8DA744E0C94E5E17:9474B8E8C73BCA7D -0CDB25E3BA3C6D79:8DA744E0C94E5E17:8DA744E0C94E5E17 -0CDB25E3BA3C6D79:4784C4BA5006081F:0CDB25E3BA3C6D79 -1CF1FC126F2EF842:4784C4BA5006081F:4784C4BA5006081F -1CF1FC126F2EF842:E4BE250042098D13:1CF1FC126F2EF842 -7BFC5DC6ADB5797C:E4BE250042098D13:E4BE250042098D13 -7BFC5DC6ADB5797C:1AB3B4D82082FB28:7BFC5DC6ADB5797C -C1576A14DE707097:1AB3B4D82082FB28:1AB3B4D82082FB28 -C1576A14DE707097:739B68CD2E26782A:C1576A14DE707097 -2A59F0C464506EDB:739B68CD2E26782A:739B68CD2E26782A -2A59F0C464506EDB:A5C39D4251F0A81E:2A59F0C464506EDB -7239AC9A6107DDB1:A5C39D4251F0A81E:A5C39D4251F0A81E -7239AC9A6107DDB1:070CAC8590241233:7239AC9A6107DDB1 -78F87B6E3DFECF61:070CAC8590241233:070CAC8590241233 -78F87B6E3DFECF61:95EC2578C2C433F0:78F87B6E3DFECF61 -1B1A2DDB4C642438:95EC2578C2C433F0:95EC2578C2C433F0 - -[DESX] -94DBE082549A14EF:9011121314151617:\ -0123456789ABCDEF01010101010101011011121314151617 -B83DF91F844FF695:FA942810AC8355C0:\ -E874076EF40EDA62908D12ADF2B7B9ECDA474BF3FEDCDA11 -4EF5D7337D420403:B2C3C73B303BE0D7:\ -2AF5602DA83F821A69C81B1B83EFA70A3B4E3C1D546BF825 -8D3C8F07A610FD51:5712559676CABA44:\ -BEB7DF4A710FACB364183EEBCA3EE934A5B470031CE64A03 -B39949A845EF61C1:3769F87FB393D49F:\ -46312600F8B5F05AFAA080D26672B9C44AF057D694702AB5 -B00E6572A847D27A:6B1C14571BC9EBCE:\ -25A3EAE6D9FB10E86E14032BB652262CD1D7ED74A2BFC75B -07608C7CB2B11972:CD627B22E13ECCD4:\ -3D5BEA2C2216E30CE961882A593608CB5BA96FC656AF7487 -C2B7BCC1EA18B54A:66EF45BEA20DDAAF:\ -5AD28C1D67C65E4D5F4A9DB38C32827BC6C4FE098996F017 -59004793279BBEFA:F0B6AC1318F01331:\ -8A94FCBF30415180EF79881D32C8C061E4527DE53BF5915D - -[TripleDES] -0123456789ABCDE7:7F1D0A77826B8AFF:0123456789ABCDEFFEDCBA9876543210 -4E6F772069732074:3FA40E8A984D4815:0123456789ABCDEF0123456789ABCDEF -42FD443059577FA2:AF37FB421F8C4095:04B915BA43FEB5B604B915BA43FEB5B6 -AFA4284FCCEAA61A:32527D5701D92B90:4BC59E2C68ACA60767A9A4B623BBBCCC -50B503A331D5B5CC:E46A59E18B0C41E3:B955BB7861FDE77E7DC6418475457FE1 -3404435D5DF2CB47:644DD68EA73053AE:C0557629EAA72ABD4C102C5DC9CE8B47 -C7D80E955D1B6627:9FE1C5A12CCE6DD9:9EAA94DA916F30092E79DACDCDCC45C0 -BDCBE8929CD0E12F:F2B6430450AB348B:A55279671807D9B71FE62A77341249F8 -4B7A96B7051C64FC:1555F08B2DE690A0:672E20826AD49C3DF7579FAB3752479E -902F4EDD44EAF3C1:3CE357EBA0FB3E26:0CE61EDE2659B413AB9F717AE4AFAD3E -39C0F8E4C85CD70D:882DE9B6D0209A58:E878020815AE517CD2808B6571EAC2B4 -F77A1947A921B209:E10DBEE5615F312E:D891CA20919F06A054BA3943C7DABA16 -06D0416E0F0DB7CE:0CEC5D1E59D7E347:4909AED1F94EB77B6CACBCAE2B25689A -F7BB3A396D73D8A8:F893B6B2A15D3FCE:8B9A5C13B0B118A1EE35EB912866FFA6 -BD35E3134B90CCBC:12A7AF172FD0CA7F:FA7911D664326074B42E2F38E599B288 -E046B7F5707DA4FC:32B6A3FC72C7C480:406903B340B8637928FDE8058BDD6710 -58EB1DC16C482213:A6C6234A8BBAA116:37A2B53E2AF8F6C9A73B39F919D969DE -4BD0F4854297FBDE:F4AB771861457DC6:711F2CECDB92B2E201DFEFA79FA7BA2F - -42FD443059577FA2:AF37FB421F8C4095:\ -04B915BA43FEB5B604B915BA43FEB5B604B915BA43FEB5B6 -736F6D6564617461:18D748E563620572:\ -0123456789ABCDEF5555555555555555FEDCBA9876543210 -7371756967676C65:C07D2A0FA566FA30:\ -0352020767208217860287665908219864056ABDFEA93457 -0123456789ABCDE7:DE0B7C06AE5E0ED5:\ -0123456789ABCDEFFEDCBA987654321089ABCDEF01234567 -0123456789ABCDE7:7F1D0A77826B8AFF:\ -0123456789ABCDEFFEDCBA98765432100123456789ABCDEF -4115E551299A5C4B:F7A0822FC310686C:\ -1EF743A68D629F68A5E3136C36AD7953A835CF849BB4EC3C -D5AB44E0FE46E1B5:02AED9BF72ECA222:\ -B7D560BE49C3936728EF0BF57B602D2EB7E5C631DD7F753E -B4077DFDB721D88C:F76ABA838B1C4372:\ -D2D98706E9AB867647D244BDCDBCD5EF8B4DBC9CF4F35493 -890E98AB385FA1A1:187087C77790C3B2:\ -153B963004101D12683E8F87116001B8C5526475510B5036 -02D5DA6D5F247CD2:89FC7DF1E7913163:\ -45E4275DCCC5D8B5A27993C16D9960CA939C023E2763216A -5AF9E5A3525E3F7D:8FCC7A8BC337E484:\ -F6C2474B33934EA76E6C841D9B1E86E37189095A895A3E5A -12864DDE8E694BD1:5B4DDE8F000A5A9B:\ -5B4F6D3185EFBAE97D58ED9CC75E2BAE655D2CEFB2DD09CD -0123456789ABCDE7:C95744256A5ED31D:\ -0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF -68652074696D6520:6A271787AB8883F9:\ -0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF -4E6F772069732074:3FA40E8A984D4815:\ -0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF - -94A8A0655AF71024:A427AA4C6234817E:\ -C9B6D82EF93DD4C7AC365AB2D9280EB39DD92C0CE3F72BDE -2881AE1EF7DC8DE2:5C009647DE419151:\ -704A6378B5C72C3F1617B97508777FACF8E2205C66D29279 -462EC3631C8C0DA9:52E8D6E3F54404C3:\ -9D5DF5B9222F4E04197A0E194AFBD4BA0225D1472F925076 -941F85F14CC3E9F8:3FE08C51BC513AD9:\ -8374C4173F715AA127877D3BEFB8C0B2FF5987E12B112FD9 -99A30F38CE575814:5C02AECC12404AB6:\ -CD5BCCEC928C04E91E4CFC715E10E029E01F870FB98E7B34 -69F80C7EAF46CBAD:9FF8BCB5707A0ED9:\ -59345A37BE821AA78E0BD97259C54BEBB1F644B78B1FD310 -62522184CE03EFF7:0E98911465E30E76:\ -E3C22C1AAAAF0FBF61A170BC24361F274B404E36C8F1794A -DED10258F58DAA03:2CD2D1F377C13A53:\ -C0E492C873EFE871E534A2A30600418D636C3FC76C4E9EA6 -AFC190AF21D37A39:E7B312CCC287374C:\ -DC80FA652BBB01186C6CFDDF55E109808F6CCEC99DEE3633 -8A206F645001553B:B824E9E801940B83:\ -276B5FC5C5255AE2484114EAC33CD228A7BEAA9487D9A729 -2095D9F03C7EC366:537201E0D3FFCECE:\ -70890F38A3A6744162356109589DC20ABF2D3AD8E989A77F -D51A8F5310D314DE:7EE4FEA9B78CB899:\ -86164AB6C13CA0AD6B35EEDDDE102428C822C22DB1326661 -B0317287CC8D536B:118293DE51E43D00:\ -98D2D51E2916D25237DAFC6B5CFBB5AED7CCD916BF243004 -A8BF0F3A57822AFE:9FD4F7B0500C0F53:\ -BBA72F7362A8E3BA6EE190C4E0AC25560BB0DF1097F94C13 -C16B7EAD2367C87D:9FE31F892EB7E617:\ -6F9DD25B6ACAB7019A548B6B0E1AA35AFEF95D89DB20FB11 -C5E3D11391C7875B:0B5BC8B430785004:\ -1670F96FC4D670CF3BEC580AE1735FE3DFB3E0377FEC16C8 -CCCBFFFAB48110DB:08E145136C8112C4:\ -3B55AC7156436FCA1D639BC33541F91AD0BE7525C3D0E823 -039391950AC5937C:5251FDDBD6E2E70D:\ -D24A2A7340C974E68265C4DFACE67041852889ADDF1216AF -41BD298935B10395:228EDD3DA5B00098:\ -777EAD928BFB661003A4E0F0920CD161A2C03963C816F1F3 -FFC524C0B0F48806:092D1465E01D9356:\ -6335EA2F228A811B7B70AE47BF13F8D456A717BC2AC1F301 -2E499BC53CFEB666:87B59F9BD6ADE17C:\ -EFACE1D2899E742C6A65EB523447B6001E2FE3DB1D6BD904 -8250B551ADAEE699:A286D77E36481FA8:\ -DA0BB6DD13B7707C674C72DD1A7C1B3FD03B13832C8CFC13 -F48717AE3466F0F5:403CB3AFDA050BFB:\ -0F6997BD4AFACC4E2228180FA60A683D13C6E237325BC671 -8308D7DDC9BE043C:08FF7FB8D322FE1E:\ -77790E57117F767476AE9E623A839D1B5B596623CB193C08 -DA0EDCDC26C81F71:5E54344C7E8CF8A0:\ -1A34BA494ADC8ED74B6AD1EDAF317DA506FBDA7A0D0DD40C - -[GOST-28147-89(R3411_94_TestParam)] - -# The test vectors included in Crypto++ 5.6.0 -0DF82802B741A292:07F9027DF7F7DF89:\ -BE5EC2006CFF9DCF52354959F1FF0CBFE95061B5A648C10387069C25997C0672 - -1354EE9C0A11CD4C:4FB50536F960A7B1:\ -B385272AC8D72A5A8B344BC80363AC4D09BF58F41F540624CBCB8FDCF55307D7 - -6693D492C4B0CC39:670034AC0FA811B5:\ -AEE02F609A35660E4097E546FD3026B032CD107C7D459977ADF489BEF2652262 - -99E2D13080928D79:8118FF9D3B3CFE7D:\ -320E9D8422165D58911DFC7D8BBB1F81B0ECD924023BF94D9DF7DCF7801240E0 - -D1E787749C72814C:A083826A790D3E0C:\ -C9F703BBBFC63691BFA3B7B87EA8FD5E8E8EF384EF733F1A61AEF68C8FFA265F - -D4C05323A4F7A7B5:4D1F2E6B0D9DE2CE:\ -728FEE32F04B4C654AD7F607D71C660C2C2670D7C999713233149A1C0C17A1F0 - -8742D9A05F6A3AF6:2F3BB84879D11E52:\ -35FC96402209500FCFDEF5352D1ABB038FE33FC0D9D58512E56370B22BAA133B - -F86506DA04E41CB8:96F0A5C77A04F5CE:\ -D416F630BE65B7FE150656183370E07018234EE5DA3D89C4CE9152A03E5BFB77 - -# Generated by OpenSSL's gost89.c and GostR3411_94_TestParamSet -# This implementation was written by CryptoCom who is a Russian -# company active in standardizing GOST usage in the IETF, etc - -66320DB73158A35A:4732FE56B7854AF7:\ -67C6697351FF4AEC29CDBAABF2FBE3467CC254F81BE8E78D765A2E63339FC99A - -3E017E97EADC6B96:4CDDBE526625E368:\ -255D051758E95ED4ABB2CDC69BB454110E827441213DDC8770E93EA141E1FC67 - -75D8BE6189F95CBB:4FD8C167F5C05C76:\ -8F385C2AECB03BFB32AF3C54EC18DB5C021AFE43FBFAAA3AFB29D1E6053C7C94 - -14735AC55E4B7963:DFCD9EFC3FA9BAFB:\ -A8990F95B1EBF1B305EFF700E9A13AE5CA0BCBD0484764BD1F231EA81C7B64C5 - -0BE11A1C7F23F829:E0BB12ECA3001350:\ -3B706424119E09DCAAD4ACF21B10AF3B33CDE3504847155CBB6F2219BA9B7DF5 - -167241EC4441196D:2361B9315757145A:\ -FA7F444FD5D2002D294B96C34DC57D297ED55FDA3214D99BD79F7A0EF8972DF2 - -2EDD19A28A1D950C:0B4CB6EE4CDBC46E:\ -8DAF30DA74AD04F28263CCB577A6504E45CB5C3D628A2F79FC706540B27EAD3F - -634BCA6A5D11B73A:990D426E1415B346:\ -8161C1F80712474CDDA3893F2DB8B829291D69DB9C161ACAF3336C7D51018AD2 - -E9E4E1E217ED0467:83F7B229D74D5068:\ -B5407AE2F9320C225075FDEC8C17B67F4A22FD9B24876D87D238F13049A86AFE - -40140A581D78BB49:D48ADCE9AE2DF9A7:\ -620153EE18096E622B6BFE4FF26BD6C4A3C8F4ED705FEB5943CC3B5AB93FC11C - -[GOST-28147-89(R3411_CryptoPro)] - -167241EC4441196D:A4BA7733087BF46B:\ -FA7F444FD5D2002D294B96C34DC57D297ED55FDA3214D99BD79F7A0EF8972DF2 - -2EDD19A28A1D950C:9F5F0C9271672126:\ -8DAF30DA74AD04F28263CCB577A6504E45CB5C3D628A2F79FC706540B27EAD3F - -634BCA6A5D11B73A:68E44CBA27E3B0C3:\ -8161C1F80712474CDDA3893F2DB8B829291D69DB9C161ACAF3336C7D51018AD2 - -E9E4E1E217ED0467:0B9B79E1AFE9D61F:\ -B5407AE2F9320C225075FDEC8C17B67F4A22FD9B24876D87D238F13049A86AFE - -40140A581D78BB49:5C960D01D404702D:\ -620153EE18096E622B6BFE4FF26BD6C4A3C8F4ED705FEB5943CC3B5AB93FC11C - -705616C1D3DE72D4:C934D4A3CDF6725C:\ -3AD1D828517CC8B001F0CA84010B3A0968AF11272336DE5A91A7AD69B49E7EEE - -EBEF9233826BE3C4:E29B5234B9903B4B:\ -CE3C58CF4893D9B042EAD76520B5C0B15C6D1A100B99FF7BEF153DC2F4AF96C2 - -87826FF76C95C3C3:ABDC9E8C2A556516:\ -55BA2A7570EA26CC5741DD62DADCDEC9F11B8CE5CA22A8B5113AE993A5CC58FA - -35FC60B2FFDA201E:391DD791413EAF33:\ -D6A025B07C037A6E1E0653E828FB9E3A3587CDDA5325D4DAA743D113D995D6AF - -3BE742AA8B844EB7:06798A7B621A4F7F:\ -E07306086FA442A42B107F7F355359DD972BF070C0C71FF5C37FA7C259C7E039 - -[IDEA] -7409000000000000:E18315C171B83765:ED1BCC9E9267925F3132BA3A8CF9B764 - -D53FABBF94FF8B5F:1D0CB2AF1654820A:729A27ED8F5C3E8BAF16560D14C90B43 -848F836780938169:D7E0468226D0FC56:729A27ED8F5C3E8BAF16560D14C90B43 -819440CA2065D112:264A8BBA66959075:729A27ED8F5C3E8BAF16560D14C90B43 -6C2E3617DA2BAC35:1569E0627007B12E:729A27ED8F5C3E8BAF16560D14C90B43 -0808080808080808:F5DB1AC45E5EF9F9:9D4075C103BC322AFB03E7BE6AB30006 -0102030405060708:97BCD8200780DA86:3A984E2000195DB32EE501C8C47CEA60 -05320A6414C819FA:65BE87E7A2538AED:006400C8012C019001F4025802BC0320 -0000000100020003:11FBED2B01986DE5:00010002000300040005000600070008 -0102030405060708:540E5FEA18C2F8B1:00010002000300040005000600070008 -0019324B647D96AF:9F0A0AB6E10CED78:00010002000300040005000600070008 -F5202D5B9C671B08:CF18FD7355E2C5C5:00010002000300040005000600070008 -FAE6D2BEAA96826E:85DF52005608193D:00010002000300040005000600070008 -0A141E28323C4650:2F7DE750212FB734:00010002000300040005000600070008 -050A0F14191E2328:7B7314925DE59C09:00010002000300040005000600070008 -0102030405060708:3EC04780BEFF6E20:0005000A000F00140019001E00230028 -0000000000000000:0001000100000000:00000000000000000000000000000000 -D5D5D5D5D5D5D5D5:75F7C7005EA47839:D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5 -4A4A4A4A4A4A4A4A:759A3CB94586706D:4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A -0000000000000000:AA553A5DEC50E4A4:00000000000000040000000000000000 -0000000000000001:0013FFF500120009:00000000000000000000000000000000 - -000000010002000301020304050607080019324B647D96AFF5202D5B9C671B08\ -FAE6D2BEAA96826E0A141E28323C4650050A0F14191E2328050A0F14191E2328:\ -11FBED2B01986DE5540E5FEA18C2F8B19F0A0AB6E10CED78CF18FD7355E2C5C5\ -85DF52005608193D2F7DE750212FB7347B7314925DE59C097B7314925DE59C09:\ -00010002000300040005000600070008 - -C309000000000000A02A000000000000B03D000000000000C942000000000000\ -2B4C000000000000A04E0000000000009857000000000000C860000000000000\ -0063000000000000F2660000000000008698000000000000729D000000000000\ -34A000000000000023A500000000000010AE00000000000025AE000000000000\ -30D600000000000064DB000000000000BCE1000000000000F6E7000000000000\ -4AEC00000000000080F9000000000000E0FE00000000000061FF000000000000:\ -9C3C4F44BB50DF7367DAD70E6FED04E0AEB0344116C6E41F66A1A304E822132D\ -8AFCC1727259D93DD6E742EAEF2FD8C03EAD7890DC4EFACBB8776F3439A3DB1B\ -55D47DC6BC4A43349BA9E85FE178CD1ADBDD4E9D19CA1E7659341251586E1386\ -4A8C4E93A2616A0C18890A622452AD9FD09CB1A9CDC83ABF2FCFA325FA011731\ -9C924852D426132D05DA82EEBC3C261A6036C6477FBE3F65C40B8B02C2F9D8C8\ -B3084034AB3873CF22F20759C145ECCE92CE6B557D6DB959DA0B8AD4E0DFBCEA:\ -F2022315280960F16FD09741D13F693A - -7CC254F81BE8E78D765A2E63339FC99A66320DB73158A35A255D051758E95ED4\ -ABB2CDC69BB454110E827441213DDC8770E93EA141E1FC673E017E97EADC6B96\ -8F385C2AECB03BFB32AF3C54EC18DB5C021AFE43FBFAAA3AFB29D1E6053C7C94\ -75D8BE6189F95CBBA8990F95B1EBF1B305EFF700E9A13AE5CA0BCBD0484764BD\ -1F231EA81C7B64C514735AC55E4B79633B706424119E09DCAAD4ACF21B10AF3B\ -33CDE3504847155CBB6F2219BA9B7DF50BE11A1C7F23F829F8A41B13B5CA4EE8\ -983238E0794D3D34BC5F4E77FACB6C05AC86212BAA1A55A2BE70B5733B045CD3\ -3694B3AFE2F0E49E4F321549FD824EA90870D4B28A2954489A0ABCD50E18A844\ -AC5BF38E4CD72D9B0942E506C433AFCDA3847F2DADD47647DE321CEC4AC430F6\ -2023856CFBB20704F4EC0BB920BA86C33E05F1ECD96733B79950A3E314D3D934\ -F75EA0F210A8F6059401BEB4BC4478FA4969E623D01ADA696A7E4C7E5125B348\ -84533A94FB319990325744EE9BBCE9E525CF08F5E9E25E5360AAD2B2D085FA54\ -D835E8D466826498D9A8877565705A8A3F62802944DE7CA5894E5759D351ADAC\ -869580EC17E485F18C0C66F17CC07CBB22FCE466DA610B63AF62BC83B4692F3A\ -FFAF271693AC071FB86D11342D8DEF4F89D4B66335C1C7E4248367D8ED9612EC\ -453902D8E50AF89D7709D1A596C1F41F95AA82CA6C49AE90CD1668BAAC7AA6F2\ -B4A8CA99B2C2372ACB08CF61C9C3805E6E0328DA4CD76A19EDD2D3994C798B00\ -22569AD418D1FEE4D9CD45A391C601FFC92AD91501432FEE150287617C13629E\ -69FC7281CD7165A63EAB49CF714BCE3A75A74F76EA7E64FF81EB61FDFEC39B67\ -BF0DE98C7E4E32BDF97C8C6AC75BA43C02F4B2ED7216ECF3014DF000108B67CF\ -99505B179F8ED4980A6103D1BCA70DBE9BBFAB0ED59801D6E5F2D6F67D3EC516\ -8E212E2DAF02C6B963C98A1F7097DE0C56891A2B211B01070DD8FD8B16C2A1A4\ -E3CFD292D2984B3561D555D16C33DDC2BCF7EDDE13EFE520C7E2ABDDA44D8188\ -1C531AEEEB66244C3B791EA8ACFB6A68F3584606472B260E0DD2EBB21F6C3A3B\ -C0542AABBA4EF8F6C7169E731108DB0460220AA74D31B55B03A00D220D475DCD\ -9B877856D5704C9C86EA0F98F2EB9C530DA7FA5AD8B0B5DB50C2FD5D095A2AA5\ -E2A3FBB71347549A316332234ECE765B7571B64D216B28712E25CF3780F9DC62\ -9CD719B01E6D4A4FD17C731F4AE97BC05A310D7B9C36EDCA5BBC02DBB5DE3D52\ -B65702D4C44C2495C897B5128030D2DB61E056FD1643C871FFCA4DB5A88A075E\ -E10933A655573B1DEEF02F6E20024981E2A07FF8E34769E311B698B9419F1822\ -A84BC8FDA2041A90F449FE154B48962DE81525CB5C8FAE6D45462786E53FA98D\ -8A718A2C75A4BC6AEEBA7F39021567EA2B8CB6871B64F561AB1CE7905B901EE5:\ -9C142A22EDF81444F47272B80A037C169E304393537CECE8003BD80F7B054406\ -3B4A141F9A99D3C6820BAD98BECD914804F389EB2A50E1E2CF22161FC78B9366\ -0E07E2686E70AC0715299C4796F3559FDA802E61CB4ABBF42BAE516BD09FA410\ -085A0A92C6F32A3797D19808D3B3D049B605852E970E5A1B8031D3DC34B5A273\ -F54ED35E21D780204F4B3C512596237153BE9FAF74A44E9A9DCBE96D628AA58B\ -1E3363A94DF540230B38A1ACA440432640E5387D92F1CC1A16F8628A4CB6229F\ -513AB926300668CF97B27643C9C9D0C3030D0CDFBBCB69C3DB199E5D392A97A5\ -1DE6C9881AE5612A69FA0EA026F2F254B929201AFB3AFC8D977C3ED6E12F0118\ -92037D0F49B0144E07A0F0556F0BAC9B3F829C233265439AF711E0B5DD6EC813\ -FD51281E8AA6F031B096C64EE8F03E041FE4DC6B5441141F2D4A308CE8EA77C6\ -483E3CF565EC49CF27A0B13F28D3C63AD7FB6B3A96579D30C9D65F7BA86E56DA\ -6D14AF3C7D170CB5BF5F21C70C1771354DA2850CFF8D9250273828C1FE60C4AC\ -086049404E3D63E04935F03B057B4783B13CF49757A8B5ABB3D2E37E54B881D2\ -36F7DF7FE80E4AE33E9125F54AA96D96BFB15607F0800B215CBF9BB0F7E29080\ -D8504E9BC1F78256593B9565E5AA5FA22032A47041B453D1B154A8D24CD59CF9\ -AA6A8E55363F3DF2B6307ABA5134D67B0DF0AE4FE77F23BF7DF8504FE9DC7F32\ -A8562E2DF585E639847DD624E55B0D0DCCDA72D0F1E072D82D4BC135DC5F7F91\ -30956D401FAB1456527FE087A436C1511CDFEA58202D200E1817E360E8400AAE\ -83B073A63596B033D7E83C6CAB7FDD7069C3B1718EAF60B937CD2458255E68FC\ -D9514FD14AA6E27EC76E75F95F0A678A0F64D49C1B9B8F8DA56DDB8CE640FF6E\ -7195F4A679165F9996F3DDF992E3CB4ED9E9084AFC0038E4BEFB467CC8170AF8\ -F004082BBCB137BBD45C124BE8CEDC89DD565A24830889CE4B9781FC18803BDA\ -1A0A4EB70DA35887B02F18CFF9329E2B7C31B0F5F0648E0508379B52C8FF91CE\ -F939A040A8C20F2F27ED65553680729A2181B3B3C4AA02BFF8DF0A9228A87BBF\ -52B48F473D0F9070C76E4DB6F09FFDFEB629BD0E1944B7016AF34187E2985AEA\ -E30D6480A58F649A0C858E1F1458388A9E822A306AC1AA7465882DE78F242EF7\ -B0CB45D68A057F00D8609587922C8FAD6F1A7FFA34BF2175FC516730A61CF82C\ -6F866C978CC292BCC1F91E6AF1785FCDAA9A43A01E6AEE91E222F8AF8C989F2A\ -4C50B7A1D45BC15E11E5E6E6EF720506B8DF564648BEBFE272C0A77D41295865\ -108150CDB3620970A37DB94F1CC35E434DC33434D99871F6141EB57C9E648AD1\ -BF70E2B7FCEB81EA871DD92F19C366EA532CA4A7BEF9242128B7ADDD308B58FF\ -F5594CB4156A03C6A6ED3F27E8DB20FB2F4208422B7E9E0A4E63A0122560CFBC:\ -67C6697351FF4AEC29CDBAABF2FBE346 - -# Randomly generated by OpenSSL -A1F4C5FC0AF894FB:1F88AD254A1653CB:69E2F555209FCA21ED36E0243F043537 -55E31A38B2C91116:8D57CB7AFB401E55:BC0ED7C4A90FE4760B3D971F0F2589F6 -6C63D3EFB9E767E2:5FECC51182CFA3EA:E0903EB04098B1193779E7837EF374D8 -07E16715F575C6AD:81EBE19020C63877:78A2E29FCFF77C6934B7C0D7F9460D65 -AF16AF335D1C53F0:6E7F0349BA9A2F99:53B644EADCA240EF4FB193A4FEAD3C7E -4BAF9D1CA9564352:1BC57C3D253EA065:AB33C28DBED80BE30F88F56BAF75F18D -2C03EB635242836C:45568161D2A6B3BC:1C878288A669E69F656E8B8D4FA60C1D -4645D6FD4B431D49:DA31365F4FE20B03:09F745F9D80E874001C4008995657B20 -65FD887479EF85E9:590F2F58016B29E0:5E5A441ADEBB77B5548150D65BA74DC0 -1B7503845C01C69B:0116653D1E4771ED:21986D04FED8F785438D4A7F0AD67E84 -B192B778DB10F094:FF4E8C609577BF85:1D2257B3AC17EF9A823D599097E634A4 -6538A21F7261A796:7AF53C7D0D2621C5:6E7A13AE1390E83C40803CB2D79B0C34 -374283BA8FED5710:20378450E2DDA9E8:21EFC7A3A3201371A48119DBA1C9660D -2CD068FD837909FC:EF3FFF871FE5E8CB:6EF803708E8E6403A994BCB639FF5A53 -F19905A6B0C7F1B0:42C993EADBC0F90D:772FCA0BE2265EFDE56A1995F458DEB1 -2FC8EB4404380042:259EDC1951191AB0:70BD64087B18BE3EC0559A2CFDA3E192 -4CA2060D4DE998E4:73C1905EF950BA3B:7ECF0B93035A2DE807F51E5B2E277379 -733BCA91EBB85351:B9F6B1C7F328552B:798F64226CDBD83728D75A43C7BB1AB0 -2ED93449D2D9AB3A:F06B2E9D94997C93:2DDD0BA7F3F7693679D55B98A22CCC3E -F1A2FBC4FDAC6F02:DEEFBBD448842BE7:F31BD19412BF7A97DEC264E90DD14E99 -CDAC1D020B9BB4EB:639B4D4EC1E3FC8F:226D0AD448F8E5079FEAB206179A38EB -0FC2061537F6CDB7:DEA26F56AB3D71E4:B023E8B5627738F655280AB14768569C -0AD0F7ECB7470F6B:11704E9F8D98D9FB:C6A319DCECC13FB4F22E9B9D60BD0EDD -281A1B2461363A64:DAC5D4E8E380B604:6FC37F80D03EC7FF1ABB39AD57FEEF34 -A323BFD529B106F2:C8B452EBA3EAC1F7:2E90E4BD3B0BC846CE40BCDA46B99B9F -7F707ED4B2317EFF:2B4FAEF56F09598A:AC2F2007D0263D4BC6D15CA76094CC1D -864EA8E4528FDEA6:DE47CD0ECE03A7AC:A14EEDEBCA1A938997A4E11137D6552F -4CF5E2391DA8C6BF:C44AB604C4DA9CA3:0075696D1F9554F6B10BABD8A04D90EB -3EC6651C50DDD961:FCE10C5093AFC8FD:354B4929963917272B53C79D33558C33 -06E48DB5ED0894C9:A3D93B6558B290E5:A5E048C95424FADFC5E5406585273662 -4A22DAE25C7878DA:A920F8208EE65ECE:75A944A0A97A7BDCE371BA0FA1665FAC -D9C0EBA7F6CE3065:9917CE029BB7A5DA:15227F375BA59F5E69BC2F6C668A98E4 -6FA8111B12652436:E605449753A66A1C:AFE2D0EF5F64861DA13BE5EC6CBCC70C -F4BC17D0578D7507:D22BC6485392A026:8881DD1044ECEDD9D4E7FC97FAD92FD0 -4BA7280181F4B3AB:12DD636191A47981:A0EA022FEF899E36435DF969F1F3E4B6 -9CC6F4CF3EBF7246:9BBF1E0D107A06F4:CC287CF7E36F70591D5E67FCD7BF4BC9 -98839DD58F08952E:9F928A91E928383F:A835B2A0502F5AABA3992C063B0E1C30 -6D6A06A129272985:864667E4DAC671E5:3DEF6557F2C753A5FC87A540F7A2557B -80CBC5085F87A69A:126748837E2FEDF5:E8409A5C304760EBC6B260C75C9EDEF2 -89F8C4D164BBBD01:AB8A227357D184BC:8C736D86BE799E87F1C1CC35E5EEF6AE -2B96920DD5A6F2C8:94E03FB08F83296B:E4A20A94B1E7068974CEE5E2580E15D9 -11D5722A2E1CF306:FA90183D4CDF8CB7:81CAC6E859BE54B8CE81ED7B07C271FA -41B3C351152390FA:3CE8A7D2232F93C6:7B0B045B44D79CB025DEDB0E85D160BE -D8F830B019895550:07DC1606AB5F8F4D:1422160720C9BD46404FEFB8EF4E2C4A -8D30F965EA9BFCAA:CCDC2F07B5DEA3E5:5CCD1802EA48F00211A1EFA909F30538 -C513A5932E08D791:BD668AC3EC4C47CE:2FFF4098384EE4546E93238C0F426668 -4D85463A62844915:5E2248C33CBFD913:4C4F6F82FE2518EE3A99F76E04C8499A -7726B39BD69776A3:6A8704EB3291EDA6:FC3D1A043ECABA559309E64B064B0446 -97EEA1C90CE93D1C:729BF317F46E2418:56ABF74AA472BF0CB06610D12A018877 -1A0CB89B6E03E337:7702BED5FBAF6E7B:8E5126BD9FE220ECBC2153CDEDA49FD9 -26B71F27904E140F:CDCC5F2849977C1D:2C18883E1F19A980AD4A58DB9F2D12D9 -BEB0D17F512C5730:BFCFA36E02B0B2BB:F6BB19FE9DD4A7719881A38625D1455D -F47B9D6A20D7B889:FB73C16CEB58CEB0:6A624B6FDC084DA5A509988B14436092 -31DC5A59C38C6CC9:A1EF35EAFD03DFD9:107DC93EC9E886F16FA922A3D82DC9DC -9E0D57C76D2BC40D:48B35198E0C58C36:6EDB60CBF889596C42DF6655C84B2DD1 -8A2A1818B39A6122:7FE7C18658678A8E:08327A955B100FF0A7FA52EFE78FDBF8 -AC0EA182D4D22207:E5377B9CB0EDCEFB:FA541FD32F11D73934B6E53309DB89FA -F4AA78E30D4375E5:1D29D101F192843C:36F11D98390A7EB5AA4C4EFD3AE9BB9E -B337AF7DB5339DA6:E6136A8BC04D20DE:DA1FF6FA235D6067AF99F3462A16BAD8 -867BEF1B45DBD114:B78595C1B5CB812A:B51BF3480873947E698F71D9EF21D75E -18CEA1A2B234320D:A6064120EDDC07D5:178BF50C7CE2A00C6AB48CE3569FDA58 -47F33BBEAF84E34A:F575D48B7CCCC578:28EA779EB6C91650B52102935DE37AAC -5FFC2BAB521A603F:37CBDE6E69F5AB5F:766D0648B278DF1C0C41698287162A03 -35B116F3F4481906:D001E3ACD70AF4BA:FEDF724C31DB14EB591C156C67EF6750 -281F4D0A68E4E87C:A54B8A84FDAFDF5C:801481FE995D9E75205D8A6D0D510E90 -8A2DE90960587781:F2BD898AFF28D968:505E0077E52C5729F73182ACDF34E9BC -50D31FB5A2F057CA:C85C933B348F1008:5057B6FF91D6B4C2375B2A6F4A2FBF7E -4EB2A5C16C4706DD:73EEECB5E25EC480:964818358CC500A2F781BCDC7AC66916 -64F00EA613578183:DC583C63E88943DC:D5765D05E10F5B7AD1FDAA2351AFF84C -25E266652BEEA0FE:294EF257ACA9A0DB:413A2CBED2D4D93C7B46E7AB5A43875C -AB3869040AEC6682:82035F37DBE794AC:EC2F93A4E069F36926E36FDB584A5637 -6DF6A322B10646EE:D0BC320330F3C642:A82DDD856546FD0634CD8BBF241864B6 -916202B8E932EECF:894C0ADA76AFDD24:A7BA17A0D592EED086A170100C9918E5 -71CA562E57FDF716:F070CD1AB26DBB0E:D701ED927D25B3A6DE2F017DF630F7EF -D7745FEA5883955E:E71065382556D351:FE0A9320AEE0B0510D84186EC805CC80 -B57ECB0D0AB5BE27:DB84A6443E85C873:BB330B162D990B33CE1E60583EF23225 -82724F9780EDE924:31D9744D66BFF613:FF7E72A5D193A35A2093717DAA3CD4EF -8307456C3AE8C4E8:02C4F752D9BEE3AC:B2BFD1313C129C13A35A4B59F608F930 -1A81AC5339D80170:FD6CF5D07C7A9A76:8D533208F3316C4CD216D42EB1BC5D0A -23F4D1448E8C2302:A6D4756A911311FC:403F55A1621DDD6F78A33893F0762D8E -15E5476B963232EA:39474EF9B640AC8B:5F319D855168FC8153E29633111794A9 -331A8615EE6239AE:7DA9F36C7BA77B5F:99C0AE0DEEF10CC2E6673D106DDA6871 -D2C818116B98D56A:0AAD3489968B1C6A:B24AA6EA353F9E7BFFF2DCB8BE9B7A52 -3299ED7461B4A3F2:94453FE1A0A1EDA7:8BEED6720296F7E9FBF7BD1B07ED9762 -4D042C1E63DA6200:188E679808DDDD46:815ECDF71E3996E437DF4C976B527862 -7102E6F388639C00:269AA83817DB1985:A6DD5F374508255677C19FC396E134CD -D4CB7FEC03126E6A:9789ED9BE3491CB1:BB6A08BAF6F14C33BBED0F775CDA3020 -DECC7ACF2A42B8EF:BC081CF6F5A629C0:6221926E9528A75155B2BF6ED12DB1F6 -A598473440C9A21F:24B0514DA6EDEA34:8A5D51CBBF6BE005F9878F3ED6B61729 -0A4202140AE807A6:1728AB88720894DC:FD6286C960579D105AD239774C91368F -F0920407531D711F:B41EBF00195D90AF:20B923BD442044E6A2BBF8F00D079B88 -5BD41996465764CB:BCEFFE91A2F6FE87:3E70468A0D26E01832F5A6E35D3FBD99 -E33A034F8014AF17:420C903E06671BA8:7500E220E0A3E58BEF63AA137D307794 -7B85CBB342D56D2B:147E04274EACF056:40FB6C1F452CE0611D34E73D73629B78 -5E74CE033490E610:4F910CEAB804E971:492C60D310221CBBAF3BFCC04E595225 -7ABC6034C9E6B95C:21CF5A0D1A5BA08C:F057A5BB95F19EED5ED31BA0C3B71121 -E7604AA5ACAF6E29:5A48559ACECEF95E:C658B4CB59FC9F9794B17DC994790797 -DC3B63395657191A:1FF2C84F7F1EF838:8FC30F8C24F6C644916C9E3460BA5289 -5C51EF1CAE759BA1:7D0B65F194116C8A:BA445EF71240F3AFFD91B79A5FA8AB81 -285CE845695AA8FE:8E7EC2D0D3A836BC:5D753304438FDC2D035BC07820076AD5 -DC977E1613710FA8:7667822C280FC236:72A06AAFD85DE66B9293B50E6AE8B28B -34841A026684E7C7:529003250F713079:0306706ABEF3D7225DFB146DE5EFB29B -F10FB61FE6EB85A0:E4A62E2C4775D5AB:FFDAB83F911295F1F99E684DD9FF0B18 -D4BA2913B79C5B8F:7886BB8D9FB046D4:DC5D319F729E73ED847FB468EDDCE977 -EABD3EB7B477D262:366D6CC9503798EB:C8B0948B2A5ED4812F1FBE21ABB609A1 -8FF4BFD40B22E74E:30C7A64C5C6861A5:09853AEE4B50B52B3086C3860B8BDF97 -0EF4B58DC8DB9AB7:98254A729AB2957B:F44422594AF65EEEA95CB013E8244A3F -69F168F103621CE2:6071635D378F7B72:6DD7F582664163682678561417A645BC -D16F65826AA18FE6:2226A7D8D6981F2E:7746A113E13987DBD18B394F67D1821E -E652CB782CB22176:995B99DC17FDC5EC:892C8B9C34C5FFBC75E15316F1585D7F -44EC60577E52EF53:DEADF8476A61ACB2:EB2140E309DF68D184A31E5853314488 -95C4BA55E48ACB41:23995FC714AA8A4F:1ABD37DF22EFAC175DF941CC0EDD29F0 -23EBEF88C86BC886:56E06DD1032256D9:D0C38AE628CCA13070A1633150381F91 -493C1E2E04FF04D2:7E042D9E5AC1F3EC:48AC07496841116306D48764C1E705F9 -C2B35E68716744E7:0B47ADA35271DD5E:66566C2E4449EC7A02A7C930F65940B0 -FFC6A8AD209956AB:7E64EC4D49B958F5:7AA0B380E4414CA991E141BD6231CC0C -0471B06CA4FCAADB:A6F22D9C1E923746:70354888F66B6C0AD28E682DE32C39E5 -C05931E79316A4F1:2998E9FE07ACCC1F:E4CCD004C11D238E3A03EDECEDD65988 -C8E7076836A52774:6D5C280418972012:DA829DE8347A0778DC215BF2540089D4 -C26400002E57C5A4:A08AD2CEB56A4B19:1E96A8A8BB01AA88FEB15712F0A6DA8D -5E5ED4AE448BCE09:AC419DC48C0E6E7D:87F756A77FEDBD8031B0086EA344AE6B -A755EF02795F7CBF:4E01D7A7B8689D99:81D79E0EC9D881149AB6D41DE9200F04 -C569F03D3FEC14AF:9CCBCE811D222ECB:6EEC3E96D32CA0BC967AF758FB6805EF -7AEB6D193C727CCE:981F83863C75A8AD:07B0FC3E6308EB4A5298163E80600120 -95B563DC5D7A4995:6F165E831FE132F1:C810A5C61CA63CCB8BE9E0590959CD90 -79AC1C7EC0745282:31FE39BCD41067C0:1E76304D445E8BB18117B1EA3E750EDB -DBED2CD9B003FD2F:BF698BF256DFAB35:E466F39C4B58269CF854A4221D2A5CEC -900D341BD28B335B:0858DB68F69BEFD0:59A6E62DB5E1F41DDB228D1CBD60D950 -6FD7FABEF3F68ADA:20E9497D9A98F12B:68A0AB43F383E1CA7E9B96B70E010016 -0B16023CA7F3320D:008127A50C977A3E:939A4D66FD3CABBE37DBE25F404D7FD3 -B91AF472920780F9:C5493F95C16A4953:00A20A1EE48FD2341B1F7F1DCE810755 -2DFBCF72932B1513:96465C98AE90B56D:C0808AC11EDFCE49EAC9A05B503C156C -8C83A23C871952CE:958433FEEF466F82:840492015802ED28322683A1B4FD3059 -1A24D2868B8229C2:B2A10B890DC9E641:ABC74042E5B79998889438020ACDA9FB -85563E107D1AC98E:D4448D4099E6D02A:4F19664B83FC466B03A936D6C3B6F522 -61AC5FD8DF0FA3DC:58EAFB1779142C2D:391AA3DF9ECE4160E0BB9AE663EB326B -2AEA3358CA197938:98EEDF26EFA4C614:505E946D9C6568E6DA133F9615AFC0B3 -57138F04DCF6AE31:716AD93EF3236735:8836B04E34F67B894D28C30DA60328F8 -B57776534391612D:5300738AB7F94CE0:0AD06D65EF01D64C0D8227AF7A7F4295 -8625E74BCDBFC00D:98C27F1B9A9ABAE7:6DBBEC86D97D7FC0DB27BF6423659E4E -14E2DD1CF23B2B0F:1814A2577534D5E8:FB924FC8A20249EF71C470ADCBB2AE13 -322E55BB623E0FC4:F219520BAF8B676B:467AED141F65682959BFD457939F23EB -931320B39312BF72:DC355192DC7B11E7:140B0407B8717834F2C0707102D67A41 -04F5E2A164655DB1:3B9A799A75792D85:F4FC422DDB7B0E13DFE5C92E5DB69BC3 -22B6A63021AE2763:5F1DC1759615BE32:72081E59495031A370FB1CCD08B61743 -729C1EBCB2E563B4:41CA6A52CAC6A9BC:3F8253356F0DFFDA9F7E961132D9B2CD -252AA0E1EF450353:DC44622F3A805838:9036A0142CBD1850E1CC093DB58AE579 -10A5F919718785BF:B3E6ED4A5C006A75:7A01C0B58B936543B8201D9AA9BC3163 -05C62E7F7FE4CF2C:1C939D9192E83462:E0B0427FE2C90210C1603F7C0C9474C5 -CB12A73FD1165172:67AA122DAFAC90D5:B85945DC5F787A3BCDCBABE014B7A573 -1A686808A77106E4:9D81B526A87880AA:2CED2179B30725A0E819AEA55CE68B61 -0AE5D2C3A631D879:020605D916B40B84:D6F034BD03CE80931D88EA75752EF08B -A7AA74C2607781EF:91D215BA6DBC21D5:F9C00FAF37163FF1FA5B8F433F685836 -FC2A91EB756D481E:60DA8ADD7547CBC0:1DFF21EDEBC139D7B7CBCDE6F4A34584 -A6BCDDEE18C6819E:9805E419C2F2BB3E:46A7578EFAD674A224FAC4E2BED579AC -D682589A7FB9AE31:3439865A758C9678:BC31A699CC327FD5E140C9A6C0211028 -E83BEA1B7970658A:1662B5047011D310:B527197C6B375AF0EE863BBD0759EB96 -E20D2FED40630E50:10F47ABBC320281F:FD990F2F4439E65D4FFEF0420D18CCB8 -63444C8712811AB2:994FE928C4321878:3869A36D42923E94724D1B05BB875AB0 -9A558554C9163EEE:555154F50F57CCF1:E64049A1F719AF0D499135129095C8FD -42F2A3FE0437BC5C:2BAA4CAD9FC4E082:F36AC6126F70DEB39DA8729D5B22ACA8 -862C924495BA12A7:4C3660678AF3AD0D:E1B6991593A5D361C08C3CB0812D6944 -8C67D089B29FA40D:4CDBF023BEEB2916:B2ADD4040673D0FE3ADA0B00E013194A -256BB416AFB1BB22:8F730A9BFE8A6D92:6A707425E5BC3011AD82574D5C6EA9F1 -AC3D85D4C4E32C77:65A0A4681E370092:D2E59FFE11A6EB98F9AC07AEA56238EC -ABA6D4DA0781086A:1D2305C43699ECCC:BE2217AA1919BC76A43F575E9C395525 -CB39BD9B648C27BC:F4BCD97D736E7143:B209ECCEBE3C1B39EE99D881213606E6 -77ABA9017A2F6678:6881CF5F4B920808:5062054F6D1C6261C3C1E4EC854BA49E -79740D3FDFA6CDBB:AE662AF4D41E106E:5ED1E657D8AB1A468B1C5B39A48BE0A5 -CDEF858FE5E0B0A4:F11AA4D6CC002412:AA224B767B062DE29709F4E10B777BE5 -B9B1EF495E954F66:F8A33058962BA146:DA32F95EEBB72A127F79122819234BFC -DB9C0ABFA81C0D80:9856D1DAF01C992E:3775682058F6BC094A96C4877A7F9657 -BE447A6EBA16A7A2:986C7B461B5102FC:E366C94CB0971CBA20791BD358EABCBB -CA564022587EC839:D3AAFF01F19DB316:07BB49AA8F9A13F2025E9DD758B1E764 -E2929C1DE30E4B15:EB1A484E5C81DEF9:9124A3C9DF4CED607FDCBAB5027B5B93 -35F3D96407C21EF9:C7244325B6DD77F6:39A2D8A3047C1DFACBEB37861E8B43D6 -1BAE4770DE602791:4E662AC45C3B2119:FB4502BA2C86D59FBF6FA8C5FAA87183 -2B1CEEF376A5E4B0:FBDDEE951ABB0314:DD010D18C37746B65AFF34083A4146A5 -3CBF8B60D71FB10A:9A8FBD56DC0EA257:72D53C88260E3566882813053E1AE5ED -47C4AC498293BF13:7E1398E65A69E038:C2C97338FBD29E50FD37205751B3C6A6 -120997CB681C2C4F:7968DB51E243F084:5F0E47261B6DEE64439879EDCD39E85B -DB1698876385005F:2AA4C93967E4F698:4ADC396F403CF5C12F850BB907A344D0 -AAA50519795B86B7:6A1096066173528C:8822968CE682CEB0DD9E913B77578C49 -2CA4D5AA24A0064B:EF4FF1117DEBB3B3:1F42C3C5D30F64964D86FD6F212E3EBC -637B3EFDC062ABB5:9AEC362D13402BF3:3863E37A03F33E5C010B10BD83F3D63A -E0C32EAAF6E27FE3:03FF41F08C2B4F85:34DE1C4A720E1C519FF9B3B5AF1FC23F -70DF29326A19F0AA:1EE92ABEC6D87204:E4B43787664CE36DD85A904AC8437EE3 -AA2623FEF71A6FF4:581D8645CF5C04F2:87472BF040EAC616FC3186A071E75472 -79397AEA3D9A815A:DE4315993AC9D4AB:7A34E8066CCD634F810CE2AA6916E9F5 -CC3E9F4728AC9653:5A359381C542D310:527D10ED0649948237D77BB836B90312 -12E1E88F656032FB:FEDD8EF190D4DCB2:3C89E04C0CFD726FC81158CFB3567C66 -7199333B8F1726EF:9ED8AA463A0DE876:781AD832234CA52B7DB7EF037CA6840F -FEE0782CFABE980B:2DA0DBB1BBB8FED3:AF3CDA80C37352B53A00290FFFE66EED -C5C8E3ED1C1B1B16:6EB4148C4BF47628:A7976FE071BC4C2C4EDC90669970AF6D -545164FC513490D5:39398B0CB44C30FC:9B8349BBB21480212BBA391113EE4251 -177992889360D533:C9E1D8EF29C5DD0E:AE08A1563F6CB18E5CC29DCFD94F9E50 -78CCE5F4022F5F38:986D99D2B90474F7:F9395E856A8C8712DB0E1D9BCF35F2C0 -8D89708C4486A4A9:C27F30929D508EA2:F83192CFDFFC02CAC0B109AE5CF28AEF -EF0CE502FE9F2E65:A5680B7651E10453:ADC0100230B5DAAB8F4C0D5C3A99A220 -43078217088A3B74:C81DAE4CE6588027:6642EFA393625B328A6D56806F97B06C -28A2DF1C597A04BE:7444940ED63BB2CA:2341CCBCFDBA06C1253111C60BE2EDDF -6C8BBC0168E7D0AE:7A8027A6DA52F0EC:78BBB2E2171B41352E11F39072B4E758 -30004B05206CDB1D:A46A041AFEEDBF40:CC8EAF044C0F14E0D3E55238E5B4998C -F912DC1D46120017:8159899680CFB85D:4C09C4DF6B6CB3A0518E75A3110C00A6 -0177139E2A42ECE3:54329CA36D7BB6A0:92C6277D7458B8829ABA3694C1E57023 -F91991F3D9344291:31CC16538CAD3B09:6C220265056BC8669851FA3F4CFDE20C -C3111EC8062BEE07:F1F5176541E23DA8:07D0B4472B194B6F45235002141B33C9 -8EAE7470FD58E40F:73407FEC8B5F9CEC:5BAF6F94066F39A8E17F81A88BCA2796 -919C2933E680FA63:F9CFFBE679B632AF:AFB398D08C965498A868DEAC783D8B80 -5A0C5CF55E5FB1AE:FF4FF500A7B1D85A:44E3E8AC53DA1946F65A48245A971929 -3B365723C86441BD:4575F4EC34C2003B:6F2716CC391B9F0C7549266C68342F17 -078E1AF25A6E3789:BE784416E9E60086:21E16892CEFF320DA6ABD1BE4DED257F -F5725A15102E12A5:DC5EF80C3DEF85DB:716B9680A132954B598DA6E5A8BB8FE5 -4892E6A118C98D0C:9DB54C62F330CD19:F226C53CA0B076A19A11B9AC778EA80B -075A3B54B6AE5238:9D91D515D7E76D18:B98400EACDD225EFAA3B29B6F72C022E -A0FDC39F4644E6FE:7629ADF27EE957A7:634EA1C85D5961B4064F79852A11895D -668BFBAE93632D2E:9C047ECD1D88CE54:03EE4BCBA4086C212CAF28CD82C1A761 -5E29070652D84B8B:AFAF619C3C3B3EA9:34243F927E529230DC4B5AA91D29B9A1 -AB8F3263F732EC68:E196D05DAA04340C:3BF57A19C8A578663AA2194B3DFC8D5E -BF5B8209F7E51A4C:A8E625E6F01A991F:718E5A9042D2002E803E7D8A95FF685B -3950FBC2A4D4B08F:54993FCAE1E3A2C9:9F791471044D714BE42BF1A8379BFC4E -440032587CCAEBBB:BAFCF4891F7B36ED:1BA3B781AD0C56BC2238657F9E0ECCAF -BF985E7D8CC0E9F6:150F02B73459DB7C:29564761914E2EB3B5C43D445A1FA586 -E3A691DBF1AA6542:8945528C8A6A7C42:1B97452D22DF6133A1065A0D6ACEF22F -20FCF337280FE0A1:2BBEE84B85AEE536:F5DA75F1C6D67254F00A1B526C97398B -28FDBF9CB423D8C0:FD07C80CCAE8AFDD:F5319B677CEAEF0DC3ED3171A821685B -627E00241301B398:8B3B0207D07C9E44:5E080A6AE298F8AC3D973F2290C476D0 -CD0A751D2A6AE1A3:02E6D0E6A8D8989F:990FB6F8400592914B84894BE4E21A10 -C4D06F926C611932:C8E6C4A166B0F504:904BFA4707A8EEE73D4576D5AB8D1A23 -96DABE49F56D7565:2915EDFF6F1517C6:3BC2F67E113C0DF4FE2C49B09A73E989 -9796DF8FF33629A6:C696AC43D47D184B:A30C3A933E1730816EF1D34518584B55 -ACA911063728C943:0E11408AAD0D31A9:8475D6C9961A26235244A253FA965A97 -0D445D5AD38DD6AF:FF6821F5BA54A2EF:438DC01CF937135B19F6046872B91E43 -5C42CE355071C8E1:74C716E95331967A:A62D9F85B36F780D2083C2EF8EF07ACD -2DA11D3A751C0205:FF14E8E0BD5EDA1B:ACF3AFEF6A098D23C702F057749B8910 -DC033BFDED9C70DF:E1328AC8450969A6:9C5AB450156A1C0128FE670A186ED675 -1D59C57CE84AEA8A:A5885ACE3498599A:657940713BA4A55E8F675814131833A4 -CF264D0BD49DF66E:27ABE5E153A4C3D2:C842C6F7692D4D35BB450E4E7C25D62B -1893406AE69D2DFC:AAD72C276D9E69D3:3EB0E4E5092BEBEBAEF96276F47CE468 -44B5AAF4D5D79A92:B28D5F8AA0A1C8D5:CD5C440B413C62D84A4C519636B9C0C6 -845D5EF1F9C1BFFA:90B3C70D906525E9:6AA1376D5ABB85B745D01A6D8A78C493 -3494ECC94DDAE854:A98639C5B52E3628:A049D4719E78ED18131B626CB9806840 -7915E2553D0581F7:DE0EC36C073CC537:0B5D4EE79C26227E934F4FD4A369BF73 -2BB7F7432BEB3411:530FE0CCFD2A8C4C:F0F851C1B5575A54A2D542590C492E2A -F34831E1A02E5A6A:3833E804F421A8EA:76CA1B648BA4C687BBE674BC55E55A9E -F1F2DB3BED1C265D:83D9F9ABFE402754:248A15A95F5EF2F53F7712FA6E9762B3 -F668409DEE092798:C0036965EED4C79F:39A675C7C8309641E75F42642F98539B -D9F33E0E10E47FF3:07065B582D4F41ED:77EDF425AB34448E2D207CFA63A7572B -6B21BD7F255183F0:8556839147C9C697:07988D4DCBDC5856D0B16ECED076FE89 -D92C1326029B5E9C:5F1BF1FC637CFEC4:CFFEE541307F3ABF60965DFB9851F638 -3417EB62AAA8F79D:15EE04C3C203FA24:C03CFEDB59CEB0FCC1C1A9C85B3F2DC1 -020A44BBDBFD626E:CDB9F1AF2717197B:F22FC0E8E591A93B781B967E17236F94 -F8541C9B31FFE235:116AF4FE8BDACAF7:7215ADA2904083156A49DFC72EA6B783 -3019034342F842ED:61B1176EC9E01187:7890F2AB2D5337CE85B8D52CC8A039E4 -CE00C04C6C8437AC:28525C77AD6FC0B8:1B97DA37CFD018E4D2C8A619FFC35F50 -68C4BCDDF19BAA36:A6E0CAF72EE75906:935332BD00F2DFE776C9662C8F4A0CC3 -4B323E423FF15160:AD3D825F885DC436:200E81A5D15A938ECEDD9ABEACBA1EF3 -73C78A6B18AA5763:ACF80ADEE2980877:FF9744CA77C270C1753B7BFBD16F2F0C -1EC549094DC418BB:0B660CCC9E2FD121:05CE1F98BAF5BF73A4DE0877DA21BA44 -E4B7EC33C430F7BE:109B7807CE1E146D:D90C92A972C201D184F0C85CD21B0C96 -32F022B9930C0D36:F8F4F8A2E16177B9:6E1985A8066D60CFC21FF3A620F9B376 - -00E7E77150176B72:63F6FDD518E8D982:0000B3569BE5A91E94BF6684443B1D5A -ED0020DB7F893F9E:DADB6760EF0C5D45:390000E7291B05E590F733F60FE32D6B -9E30007B23AE1904:6F80890BFFAB514E:4F2A0000F702A704238482F6DDE12624 -E41E5900820EDC94:2809809E29782F4F:CC301B0000C6E838CAC91B972CD843E8 -6CDF6488005C518F:D2E83193787C1A8B:C111A9EF00003832E8388A614D717759 -45086AD893004084:8D7DD8F46D2E21D8:64BE7002EE0000594EA205424036AC8D -7610D7883D750033:6377DF4C959B088E:B04BA96B0C2B00004414D2523B079870 -E036C15C24544100:045EB493788F0157:CF87BB9A6AB1CB0000BA666EC4BCC4D7 -00D5E98F37D74ECB:B0B861C2CC285A41:7A91ECA485D4A7A80000A7AA40E6C6CC -09000C87CFFBC0D5:F765ED0254553E8E:81956FF834D487A8810000084AEE7D1C -475A00BC0B2FF249:677FD2F453362DF4:EFB78A788A0E0C571DD80000E23558B3 -9851E4006BF265C8:15058A03573F3A4B:495F198853B2A602FF46B30000F71F2C -6353FEB6005C7715:72195116B5244D9E:DF597069EE83B6E29B0D298E0000ECB0 -E62D3D732A00854F:A9B997921FE91757:5F8334EBD1A4B51387B8BE6D5E000090 -D0796D8D7487009C:0A69FE9C2FDB99FE:4B9B76C00E4F2E431CD70A572EE20000 -0F7A885CBDD6B700:360B140CFE90F66B:00FB0FA1A19B42750C43F869251DA800 -0069D3A0691CF423:57930C18EBF855AC:00009F0A1C5F738C9A0067FFF353F7D2 -1900A63E56603D9A:A37093DA9BCAE8D1:5B0000794F371B08EB82008CADB108DD -8FAF0024EA437E2C:023D8A583DFDEB04:0016000047DACA0F7A1B3E45B2DE2903 -F8956000F44C9363:D8E6AD7DEFF79268:CE24E90000A13DF8ACA26B543552C6CC -81E55C21009FE23B:782E42ABEB69CEA4:4E4FC3CC000001A50FEC6AB8E9912502 -2F16443A8000DC47:5A3EF28BD1AA787F:FB9E06BA2800004F0980DDA5D4505784 -2676AC2DFC7900DA:7D181E6251E6A7B3:C809C47A6C2A0000BD5AAB3395DE471C -89967E5A8D04F500:F3DE18BF33466F72:D80272B7E308F60000D0D45553FA51DC -00A697D30C1CCFD6:D8BD6BEF7C28D098:1FC5705EF403560900006741E6AF1C50 -A200462288D91DEE:057F522F2457C7CB:6D40571DFB56841494000011F89FFAAE -083000BB9A0FFFE9:6A881071A5920D4B:5A11649D78F485A4C70A00009576B4EE -0BCF11006855317D:DFE70DEAE707F002:AF7A363699FAD5095F50EC0000A47EEC -9877931D00DA961B:6D44D2CE87076D60:4ECAF61E5C67E184CC5E70CF0000D5FC -EBC8BB40090003A7:8E06F01F564B0E3E:AF81444CC1ECFDB56D1225DF6700007D -B5B93F01E2E70047:5D941B605FA7426E:AF4D154BFE14606A91F96BF529FE0000 -A42551007EDA4C00:F0D12E7B0E7792F1:0096BB79FAF812308F905CC4B52ED800 -005D08AA73C9FB8A:43E76E1A3EFEB592:0000DCF81BF9E570FCECB62D215A75D4 -F8007FF8EDD8AFB9:9B7AD7CA57EF5DF1:330000563D5804F2140305F57D6EFE19 -F9A300633200B23F:487FE441C62B0423:AEB90000A3F2754576F2E81D014AB3B1 -0BB04400FE649D25:9202DD63C1113DE1:00BAF10000DAFF62549D46978E84578A -0E7DCDE700F8523B:05BF95F4AE49BD3C:23B1692100001EB81F704895BA6F89CF -418E5BAC2A006BF3:9357E91A3C3476D7:025B180C1400004DCF61FCC41D77507F -972EBBC6250D0009:39189DEA6E9D4B5B:88E2B14CF33000000896F148369ACC0A -E6B82D0009772100:F35ED1CE8C15594F:E77F27457BD13400006BA9C12435B21F -00096C31CA9679BD:3D1E54F215E69460:787B47B4BA5C7AE900000E3F96FFECDF -CB00931CC816A2E5:1A7F7AD46F16F9BB:44F07CDCD86B29F2780000E3908EC0D7 -B1A1004237BE2C18:A226C2A0F5D69DA7:5107A9E297BD6ED07574000055A5F0AF -EA9BB2009DAD4912:D2EA98B2940FB5E3:7A518CB4D637F7DFD41A5D0000345714 -F30367A7001B1005:EC80878CB6FE880F:9F331C8575022F9A0DAFE6080000C99A -854DF822B2006EBB:9B7BB2D159B2F37F:D40EBDA6FC5A7FAB29EEAF2AF5000071 -2A520D5857BB00FB:25F14A7C7E1E02B3:F324FAD327E9D959584E3862E13F0000 -03D2A2E706C6A900:433725BED51C4F54:009C9874395C88CF04C826EED65C4D00 -00B98EA1D39C6842:25DFA84D24B46CAA:0000C8F8D6BB801FDE22B197F1A6E5B4 -DA00E23270D329F5:719781009013272A:D7000081F51FAC169A6ED69956E456B7 -0F39006D63151F90:FF573BA8C9540D7E:18FC0000E21DA381CDC71C3DD15B97C5 -53121D00E40F624D:7CC255708A07395B:844061000076D6202283A9742E0BBD13 -CBF8147800190019:B51D90162BFA3B52:2E538ED40000A15D3FFFA23A617B347E -977B10EE1D003712:AD84DC81A5EA50A6:B513E999B3000082DB6F5801E9650D61 -F4D0A7BA7DB0000A:C5426D2C403ED09D:66DEE1483BD3000003917E8882D77BB0 -E544BB76CD2B5100:6C653919A1E0C084:7AE9F41279784900001B00232FBD1920 -004F3E11A0F560FF:FF17EDE487849114:CA1AB422157D74910000378557D44536 -E200F25C642D4289:41310F914A105C70:9425BDC0B2EBF4CDF50000A492AEEE77 -A2F2005D26A79D60:25C7FC5B80757200:FE310906BEEEDE55DEDE0000A061154F -849D1000A79DC401:DBAFFB54900B99CC:EACB3CB4D4A533BB66BE6A0000AB20B3 -EE0A880F00D1CC3C:1D45B4C072EC3893:F26EF5DB480C4569E0977A3D0000E88C -01BA9AECDB005371:35418199AF42D87A:E0CADEF2B7C8DA97EFC25140DA0000AC -D75932EE169300D0:F52B8E07CD95D128:D3CF5C2F4C97CCED75BE446ED6270000 -D183FC38324CDA00:ECBC71EB2E17DC5A:003F188C1904B6B7F6C14EA393599800 -00F63B1551CE3FB1:DCCDCE980B8F53FB:00008F330E389D6D8C759025A73B0F4D -73007315B631D42C:FEFB6E47E0913958:E80000B995B8B5B7012331DEB18B17E3 -918A00AC1FE3BEB7:96E18EBBBC84F820:E9470000D586B0B87E62B9F2AA0CEDCB -6C4BE70034417166:2233574BBFB37A47:0B722500005C3BF867275AE43912CB41 -579D81C500B37B08:284761ECA5AE4D8D:CBFC29E10000A00051235EDAA9B4E90C -B0632CA13B006D91:77A21967A910E4B0:47F3F9CEB300008A411860CA30676173 -110AB0B74835001F:A0C0B6A90315B41B:B49E9FB3667A00008D35B8302A2E3FE5 -FB631C5B0D8A6D00:3C21A854AD831504:BBC8596413675B00006897EF67EDD14D -00F05A000352CA7F:CB164FEF25E0D62A:8329212347EA2EB400001CBBD08CF5DE -780070AACA69878C:7F789323A50DDE56:A055853B4E0843152C00005F452804D4 -1DD700413C203186:CC355BD664B0A9C1:2BCBC21612DA339F979100007EBAB0E4 -2BB01100705AD581:AE453CCAEEDFABCE:DD6F4817817D8AABF9C3A90000668450 -5FB94F850063181F:03833C51E297D936:009ED73BC35BF76DD480342600001440 -46C17CAACB00A242:EC6EFF8167F35D74:762307A655DB2DED925F1AD5D5000090 -1F9C7CBA044000DB:E383EEFA935DCBFE:5762D3C970C7D7140CF5E1C6DDEE0000 -6658A1F0D70A2100:839F662509406DA2:003121CE9826F685AC5DCBD51FA81C00 -0084C508986E2762:C45D727344BCA366:0000BAFC3B6684E9CAE26E2A51B8D2B7 -49005892EA319D10:FB4D505B13FBBAED:2E00000EAAB656F92F0007965ABA6D6C -A8E7005578C53974:D0D4DD42CA42B8B7:92980000CBE225278A7B3C7A7DE69A35 -97756B00255781BE:CDE5C028BB80CEF4:F20D660000A5D7647224CE32F139ADEE -1E57BBF90019301C:6CBE3727B8B0C3A3:9102EEEC0000793BFD15C30AA5EAA94A -249B4EDA62005187:0E66EDEEC9093E1B:FF93238C670000B99C2E91E15939D6B1 -605BF46181D700F0:07D0EE1AB4F82F05:D005C51DE6700000D26AAE0442CAB9C4 -5999811287EFF300:A767C32D85CB0311:9E3A2695908A89000090E75D1AB81EDD -00B9486C88FA039F:49852C9BF77952A1:C4ABF59B7185DD460000E0EBEAEF136F -4700605F3130BE76:D04C0BD08DC431A4:0C235BEC758B4D46DE0000DDAFE816E2 -B17A00CB2A5C5EA0:E990AF9440CAA261:64DADE3DE21483B352F30000173BB8AD -3A75A600BE66B998:F79AAFDDBFB00ED7:9D3D66E09D5E5A11F67B940000031BC0 -D7FED4EC00AF9516:03641077F0CFC0D3:9ABB92CE570A884BF048E7180000B852 -BE22BC11AF002EB2:8E64899F1DCA1784:71E6A68A90875150CB9D110958000066 -D3137A569D910073:3EECE97BB80D548A:83207306634833B4F7592EC4CA7E0000 -5BF3EE3BF5E7DC00:15ED3B45209747A8:00C41B6795275751DB42AF77442F5700 -00A709FBF07436DF:3571E5635D0BF407:00004EF57C7E3A7BA01419C60C080F2D -06004AEB60290B42:4F21AFAD884330BB:5F000045014A6ECF98F421DD289C55E6 -7BDA00CD32B3B1FF:520937683AD5675C:12CE000033406D9AF884C84CD6DDCD21 -838374006643B143:47BB11AF631FFB5D:35C251000040AAC84B90B889D0A24D8B -77C34A1500E95667:88DB931F156F5445:370567E0000026DF3BB5BAB73207C749 -BE620F73AC0068BE:ABE4640EABBFE340:640455AE31000092B9386D9CFE4ADA20 -48CDF31F6C0A009B:084203C1BD3A658C:5B13FD6446290000CCA1F2F0D341C718 -23399EC96B9B4100:BE3E576D35FCA745:88B89A7EAD61670000D8C490A0C4FA36 -00DDACBA7C185AC9:52BD247982A561E2:0BB8A5C30B7ADF860000E55F515B2926 -B50045B0FEF1621E:763B83D026874BFE:96DCCA0A25EFD962960000AF7DD4254E -B6880059216DB5A9:E665B554ED12D8C6:6601F4C2AC654C1381BA000073447B02 -39521B00F3D72E95:60F3EA47071F5306:5D494C989D3665352EA74B0000CA342F -953CA28D00AD9898:0F2C05BA11B2B8F4:79FBED035100F698DDE99EEC00005DDD -FE4A28C143008952:6973F45BC603F9BA:EE04B71567F014F7F763F0ADE400005D -8890123697F5000C:A95049D6AC47E7AE:63597101B3A8336FE99E8A76875B0000 -95533AA66EB7CB00:391CF1D308C67292:0012B2CB4F003EF195BC1414D6540400 -003D8F50A0E537A1:22C19CF341DB7CE1:00002DB7D757486930606F2FC7045F64 -3D00863574901463:E5F948AC91493AD7:2900009BB26F083A61B0026163042AE7 -597300AE3E2440A3:2055962B4045F983:C6D60000E4538CF8C0456846DEF4F62D -4A4471000EB0F045:343F5A228725CB59:37DF430000F338B8995333A55F08241D -95E4A397007E0C98:9B7A68A66565BF92:21F6AC3200000AC6134F909B262ABF45 -49B954C71700B39B:4ED5370451EFE68F:85C5A3A2A5000092B1200B7A21026857 -F37CCCA968E600A2:19B7CF5AAA1B3982:978A0012E5D70000C4DD7951439D9075 -66826CD1026EB800:EB43FEF9EF68F5E8:08FEE636F11EE9000023E7C6E6391CE1 -0038F00D37D87617:B5FB0F31785A62E7:22FB9C48B908873D0000CC334F8ECAD4 -3E002551E14202FE:E60B4B8827C32C45:A6674F378AEA5615820000158D7F428F -D0FF0072DDBA174E:03FB49171B487274:58870F8E541EAA612B5700004E0CCFD3 -4AFBF200DC1CA63C:E86F1ED9B5F2BDE9:DD9E8B78F04A65AFCBF1AC0000EEB486 -C9ECD9EA00FD7324:3C929A746C599E13:C13A59987AEF8C4B4EC3A87700004629 -03738D499B001F95:A10BAC400EA235D3:EF39A0BBDDB2F976795853A6A70000A2 -5A5BC6AA243C001D:ABBF1B2A1B1C7EDB:EF70882E7E3B1286B1115DCB8B2E0000 -640598E874440000:FB5B53FFDA4AE2B1:00268897396591A96671BAE6835CEE00 -00F195A06A3A8DEE:21870177D8463B27:0000FA74B64B61582897AA5F85A580D0 -CF0095E2C5BB96A3:49FC16F142F6B04D:920000751D3E04FC3D70848FEE2C8A4A -EC5300EF494C40A0:53F5E36D9C42526F:9CF30000A0259B7A8CBCAA62D9326400 -A5A6E800A291949F:9C93982278A28B8F:3FF4A700001DE8887802A58848039E14 -7505A80B006EC907:CCC97DB1F9700494:8831C67B0000C629DE8F43A2842DCE45 -BFE978B8C900A7BA:8450C52D333152BC:3FABC6EA510000549F6EA0ABED81761A -2123D1105B2000C8:4F1DA3B7848F7A00:913F4029C2FD0000A0C526F4ADE6C876 -9517D1A98BFC6900:61B272A808305B45:A501B4B7AF5BF00000E38350CAE4AF92 -00101D45B3B4F245:5FA1D7209BAD5FD2:6ABFBD71ECE9D8120000C6ECB50EBBBF -8C005E7AD75D5D78:199B787CA91776D8:5B657D628773EBC999000077F8E75435 -2EEC00C410CC826F:278A95BF49240E42:2AF96D2E03087B4AF6000000BCF73EDA -4904D500D78A9F0E:397E12BE77633D76:2AFD4E989C9CC10D821FA4000002F95B -0614FC13005971AB:C1CC70E18E244A6A:4ED02D605500B6B98D5EC7180000F61F -B928318683002594:61F26AF133A64689:39685AB8B0B0787B5761F8477F0000E6 -427F4CBAB9C40023:DAB73E5C3E533D71:156652C914C9CABD835EAC0C02A50000 -B5AAF71A1D863200:4017699A8336070D:00B52760FF461B21EAD6D68F8B6E6100 -002B3D27CE1DEDEC:9567515235BAD0EC:00001B2B3DC232FA625F5542C16C59E0 -FC003F97BA171F07:273B74F309D5C6AB:230000CFA6068E57307ACCDA2B550748 -FFF60003BE4510BD:1EAE8EDC01F5FF11:8B210000D8C532EE1E016738D7AD1689 -1A05730041342D4B:B92F6C453B192ADB:A4959A00000326639A573B79C5857DA3 -AEB42C6900628B42:A7489C7D07147226:B28CC4130000F85DC68AE7A87C1DBE97 -5DB907497C008FEE:22F54C713A076B1D:76DE82835900000820D5DB67DB8E65B0 -7C2860EE183600A5:49892090BC7F0551:23E9FA3F7DFF0000904A028020985348 -0D5222ED6F816100:C1103CC4549AA574:DFA73EB8D9A6D9000049FC581CACFF59 -00E3F77B95074963:97D6FEC499DA8B04:F2CC3E9A54C972AF00001ED95A7136DC -EA0020AE7F1610A8:8F6589E66FD224CE:7623606A0EE1F8AFE900004AAFD16505 -B922006F9152E846:8A77F6831E030CBB:28A6BFA833FE45F96C7F00006364D2E8 -124FCF005D4B9516:5C5497CD35FAD71B:BD24A27EE9F5A9D7C070270000E375B7 -7BE5B07C0019E760:587AD202A11B3DC0:59B26F3A3D381643C6BF305E000017B9 -86EE9343E700BF3B:5B1A0B6C08AC87C6:6683A3DFD65AE3090DFDF4CC0F0000CF -849631C57F710077:656B5C536FB6CC79:532B823D801D590FC11588E1E9C00000 -4BB2914542E2FB00:CFC0815374FD0C1B:00EF36B04F6A32447C3436594E618B00 -00E5B6AE4E1F04BC:B889980FB94C6B43:000079E7BDFCB56E6CD2504326F7A05E -8000550EE1F4163B:F15C9759B51FE740:9D000090BBA22501CC3D289620344CFE -7B880038C192AF9D:43C2B447D3BA0C59:9E150000BD4147F02B1774E627B4B629 -5B35710020F18DF9:127D3522FECBA756:6BED1E00007411FEE04065CDFFFA6BCF -52223B3700E9D842:03B749CFF1E6C4C5:55EAF5DF000000BD649B386531093092 -77D33E252B00796E:CD4E93288046C1FE:BCDEB8A0AB0000BC2B61484D72F74261 -C201377F005800AC:35886B5494D1077F:C4E9F884CFF600006B2118DBD4C23172 -4203C3683617C700:AD4E16B645BD381C:111B4112EE4B430000EA7572062FE19B -00A925E6CDCA8787:C1874B1A18A25AD9:9B6AED103D1247820000B4F12B8A6570 -8100027ADFE381CB:9E1E67617BE12123:D31D1824E780FA7D1C000072040C4E4D -43AC007918BEC51E:8954A8628F6073A0:E766029C528400A81CF000006D4A819A -F1394C005E54D8C9:CA83AD379209D949:C755621F8B81EDA16C094C0000340D28 -921F09A5006C9C5D:E050650A0EFF64AE:1A5FACF05ED2356D3A5FD23D00004B8A -9C2DC2DB4D001297:A4CA5E9D472CFF6C:30AFD17D4AB9E6D148EA8A92E40000EF -E79FB1B4A49700F1:F75468D5CC3954BA:02322ACAE0B6700E7D82445B7AE60000 -D400A5AAC4BAB700:1AC41DA1F48BBEBC:000001D4F9600F91B2CD1975EAD58100 -00852E54441918B1:65185050DDE7C809:00009E8291898B9E961C3B2BEE43316F -01007EF2BB26A601:A866E8FE026031F7:57000019D59FB182721C98FA4C8E8159 -77E90016E2D57409:AD476E7180FC80F1:09B90000B8AA6CB18683542EB1E1FF4C -D73DD20032F3AD08:28F91CF76FA4DF45:F8031C00007891A8A240FCA992D0B913 -83DAF01E0006CB29:69143710EE5A8C73:87BD381600003DE9342FED8F961D979C -AE2CF2733B00D3B6:643546FE48876F41:ACA61121BE000027F1B6D102FD3961A6 -1F9A8F74B9B900EC:7C7DE0F4A345D90F:79368D955A5B0000541E1EDFD47D6032 -8B6248D2FD693F00:777B184E2D373FD2:3994D0035AB18E0000E14EBF062253DE -004383DA5687DD0F:2E33EE3C80B03AA3:CB05F743DDDDBB1800000CDABA6F7082 -4700DBB3C47A79D9:A9FEEC660D58F74F:7B8034C0387A15C2890000B8B7EE44AB -DC8A00992CB890BE:00768BB855022EB8:A7B9EEF171C2BD96193000002A452412 -CF6F0B00E8BE9CBB:50EF6E3D4C8186FA:4966648D0D24BD8A47137900000FF58F -8CEB523F00FEBD62:47A692CBB77E3094:D313A88DFC9919BC83A5F70C0000CBEE -DFE43077AF0046D2:C49D7ED471A33390:2C7334D72D28BD4991B27976F10000A3 -A80A61EA43ED00FF:71CD051906E9A827:6F8B3E9B3EE594685B1BAB08E81E0000 -3356F9540109D200:6477D5BF8948F942:0087A1D456585893EA218FFAB998F200 -0015F9BA89E0070E:E411797E5ACA7A34:00002BB85339EF5E5D18F0E8008F42FE -7400869928902188:591CDBE69845DECA:810000551FA49B6E0257DF16F60120DB -CA4400FB5B4F3CCD:F21BA22C66243D7F:56CF000016BB754C80DCF86B50E0BCE9 -079CC900CE8D9824:89D4843D4E496542:6EAF8800004AE2758A491A45F3A49F60 -7CD8815F00823DF1:294EFEE87CD9F6EA:4E7980B70000F3B9625F09D08DC9D536 -E993C60ABB0036CD:ED87467617F4715E:B24B949D0D00005E79CFB4C695CC7682 -F1116845981A0041:90D6DDF669F5A4AB:36990D8EB4CF0000A61D7AC92953D590 -1630B706F44C6B00:34B15DF951D3114E:310024F6D3C390000095EE57E871D83D -006352FFEEDFA3E0:ADEDB3A6C0472082:69627F5EF0294C160000051D531728BC -E600F2A11F1D60E9:546494BF27CF9BAD:535549708D93FFFAAE0000C47F66AD22 -12100060BB5A7C60:BAECA338CCA4A540:87C4B4C31EE8568D6EF40000D66986CF -2DADEF00AF8FFD13:58E3E38C6DFD23CE:D20E0C0EB3DD4C92A18806000028A92C -43263CD0005E45D2:A1CB693BB73C8282:7E660BF195FC3D651C927F8E000085BD -915C2A153900C3AE:2C324F7AD676DD01:A18B8DF4228195D6273289252A0000C7 -16973A764ED700CC:0042D6D810E51234:89F557F3DCC2478682F9A746B70B0000 -729FCEB1769F2700:3B8DD866347F3C12:004D652ACB1F74CD984174350CC88400 -00940B86CB15DBCC:91DF44E34428321B:0000F2708A6D18D1BAEEEF6C618C0EEC -1E009CACCE5E4B57:36A72C67FEA71DD6:3600005455F0F4BFEBE03E37F1A5D391 -DB630084270EEA71:5A75F5BCB581F078:EC70000086CA353F3F38784B440E7B2B -48A0C900DCCFFC53:FC779AFD4EE05356:D3D8C9000055C5FA0B09530819ECC2D0 -B2D763CB004D729A:39C55AC867CBBD0E:45F4D2B80000E78E7199F0F0B2E2A67B -E8C2AE5BE70052A9:7B842C4E1B4360CF:EA730C0680000039A13B4069D0718FA1 -38C71268B7150070:AEC3A0ED452221A1:DC340096A4CE000032B772BF3F706A0A -0CF17BC67C288900:19C197698A765E06:D58DD7A445FC2500007CC749B73823D4 -0054DE83BDFDDEAB:6E01249199FE3322:48EA721821935A9700006EA093FE21AF -6700F2050642E50B:CBE6CDFB6289FD7A:C6A697FD248B8476B300009DF15FBE5B -370F009211C51E13:F80008FCD23823A6:4E92C17C0552C32915AB00001488853C -E3D4FB006D7E2048:8E8F8CF995C71171:6E7B7F4D9C6E74297E93C30000AEC95A -266CCE370000B7D9:8392D507AEF1C999:7156D4AFAC1C2716D4C493FF0000E0A3 -89715DD84B00A877:DB319D867BE6F5EA:6BA79216829469E486A15E58BE0000AB -4D2DAAD3FA020031:7497F67FFE71486A:5ABF097E08456B3D2365C54D7AD80000 -2A9EC46663F40E00:DC9777DD2553296F:0086298EB766301EC6E64DF9BF3A1800 -00F1F54E9A6DC02F:DD3780BA7B16263E:00002F79F90D1DC67F047452CB95E1C4 -74000A0E9ACB88AF:E77A9B550D731164:7F0000FE37B43BAFC74D392E5FA06975 -94360078C737AAD7:04A17234628802E8:BE21000089A1840B71A5C68F4A4A32F1 -8BF4F800EE7BFF5D:F244EAEEC5072D9B:ED65970000BD224C0437DC9F010C44F1 -826837CD00BB0898:05DB95245B3B175F:51F7E6350000931538B48D6F0A8270CB -E4412B7327002012:989AF943448FF64D:25A16F78BD00003EDEAC10D86E59A0C3 -D71D7109FECB0072:A1389295EBAF0F72:E3701E3714A200000AB226A55C447407 -767EF7AEF3CAA900:ECE04FCCBFDA84DB:E4A0AC28EA269700009DAD6CD2E1F0C2 -0085CEC40E37DE72:D506ED9634352AF9:EA46F14603B3F1B3000089DB9A07A212 -7E00B573B2B56DB0:3C7D916C612D6C6D:EE042F10350A3F824100004759009A0B -409900D3F359A7AA:0402B0D166C562FB:6BF869D7953D476E3F7B0000E9A2F766 -8BEEB6000757F14A:803B9943069DE4CC:948986E810FED4CDC434270000887908 -85218E2800777319:5D4D710B47111D9E:DF75364489CE5CA5499C1E9900007956 -D4659B115000E6F5:F1535CDCD422F70F:7297F8C7A3E983D47CCA04098A000083 -2A0D9FBA320D009D:A830EC0A0C700181:43A74F8F64AE65BA6915D95EAC620000 -0EAFF9E79E22E400:E8C444A639C28AED:00224C24A7D084B77FC18ED3EA2E0B00 -008B322DF1816D52:0F810DA2BD5E2203:0000D712F43ADCFED1A9CBCB22CF4E2B -21006874A08B7DA9:D2E3EED16501E0F1:AC000016255D3D8E7F9DC60844C8E5EB -3D600001421332C9:5ADA46B4E6ED7396:31230000FDCE8D418A2AD59630E3B54A -1925E700BCBE480D:DD75CA1376BF4E43:87AD9B00002C142672046D7D1914832A -FE95691300B4B938:5EAF07F852F1335A:A0D2AE630000E673148BA974CACB74CF -4A51204D1D00A7BD:D369B44DE778C5AC:C29993616D0000F6B88C40426C971CB0 -010264DC3159009A:6050FFF2D7DE8517:AE011C7A16E8000094130EB7C82CD4B6 -54C23864C6E67100:C846131ECD974EAF:D1918B16DD54970000844052BCC2B288 -005CA93A9FA5CEA9:E225EC5890787888:40C3D98253E2C06F00005628F914678C -BA00792365BE88AE:6A8C12DA66EA9595:37B0B3CD389C875BBF000091411E61CA -DFEE00E54435255E:39CC7776BEC81C90:4DA603D49F6830E3B14F000001B18BFD -BE9BB6004AFDB5B1:E70AB60E29A55AA4:5A7CC2861C3989B5F09B9100000E03F2 -6C2C99C80044DBBC:DD165030CFB74177:9E93015F09085EB4FBFD352400006A3F -BAD143510100BBC6:847E7BAC90EF08A9:014C89D7790CE632665EB557B600008C -108B4CAD993300BE:949B5376E26551DA:94A2FA1B3BDABE5F4E4B6945AF9A0000 -C779A209E5254E00:030B0A813E7302E2:0098EC83BC69794459037F407F240900 - -# Test vectors taken from ARIB STD-T63-35.203 V6.0.0 -[KASUMI] -EA024714AD5C4D84:DF1F9B251C0BF45F:2BD6459F82C5B300952C49104881FF48 -D3C5D592327FB11C:DE551988CEB2F9B7:8CE33E2CC3C0B5FC1F3DE8A6DC66B1F3 -62A540981BA6F9B7:4592B0E78690F71B:4035C6680AF8C6D1A8FF8667B1714013 - -# Checked against Crypto++ 2.3, so we're compatible with somebody, at least. -[Luby-Rackoff(SHA1)] -1112131415161718191A1B1C1D1E1F2021222324\ -25262728292A2B2C2D2E2F303132333435363738:\ -2015B3DB2DC49529C2D26B1F1E86C65EC7B946AB\ -127503CB92F07C0DD4ECD3D7700F31FA0268D381:\ -00112233445566778899AABBCCDDEEFF - -00112233445566778899AABBCCDDEEFF10213243\ -5465768798A9BACBDCEDFE0F2031425364758697:\ -84ACC1578337453D0F94FE2A09EAAE844B2BDE24\ -0F6D6225A0AD87EB3773BC29C2B85B51FD068674:\ -00112233445566778899AABBCCDDEEFF0123456789ABCDEFFEDCBA9876543210 - -[MARS] -F94512A9B42D034EC4792204D708A69B:225DA2CB64B73F79069F21A5E3CB8522:\ -CB14A1776ABBC1CDAFE7243DEF2CEA02 - -4DF955AD5B398D66408D620A2B27E1A9:A4B737340AE6D2CAFD930BA97D86129F:\ -86EDF4DA31824CABEF6A4637C40B0BAB - -93A953A82C10411DD158860838874D95:4FA0E5F64893131712F01408D233E9F7:\ -D158860838874D9500000000000000000000000000000000 - -1344ABA4D3C44708A8A72116D4F49384:458335D95EA42A9F4DCCD41AECC2390D:\ -FBA167983E7AEF22317CE28C02AAE1A3E8E5CC3CEDBEA82A99DBC39AD65E7227 - -00000000000000000000000000000000:DCC07B8DFB0738D6E30A22DFCF27E886:\ -00000000000000000000000000000000 - -DCC07B8DFB0738D6E30A22DFCF27E886:33CAFFBDDC7F1DDA0F9C15FA2F30E2FF:\ -00000000000000000000000000000000 - -33CAFFBDDC7F1DDA0F9C15FA2F30E2FF:62D0D531FD18BAC77177CEB2395EF18F:\ -00000000000000000000000000000000 - -62D0D531FD18BAC77177CEB2395EF18F:FC444017478822797D800F790622D77B:\ -00000000000000000000000000000000 - -FC444017478822797D800F790622D77B:D584ED203C50582BCBF74B0469417EDC:\ -00000000000000000000000000000000 - -D584ED203C50582BCBF74B0469417EDC:7134D3EF595D573FE88E18CE5CB2E612:\ -00000000000000000000000000000000 - -7134D3EF595D573FE88E18CE5CB2E612:9172072F22CFC72234A7697D73412DB9:\ -00000000000000000000000000000000 - -9172072F22CFC72234A7697D73412DB9:06B0DDCAAE6EA44BD0C509CE2BC838AC:\ -00000000000000000000000000000000 - -06B0DDCAAE6EA44BD0C509CE2BC838AC:77512E7A4A90D6D5CD66637DEEF1FD52:\ -00000000000000000000000000000000 - -77512E7A4A90D6D5CD66637DEEF1FD52:8BC4E466ABE0E2F8FD76019B8237F36E:\ -00000000000000000000000000000000 - -8BC4E466ABE0E2F8FD76019B8237F36E:77D40822866C0DD51E0594AA81E5F1B5:\ -00000000000000000000000000000000 - -77D40822866C0DD51E0594AA81E5F1B5:B8AB0608C7976E1D8F57B2BA493C7503:\ -00000000000000000000000000000000 - -B8AB0608C7976E1D8F57B2BA493C7503:ED4AFE77CE3A2F8C00D0A5E4FDF23426:\ -00000000000000000000000000000000 - -ED4AFE77CE3A2F8C00D0A5E4FDF23426:1B52C34EDB3826E2BF564E4E3A8C9FA6:\ -00000000000000000000000000000000 - -1B52C34EDB3826E2BF564E4E3A8C9FA6:AE7E643A355B4847D4F1DBD126518993:\ -00000000000000000000000000000000 - -AE7E643A355B4847D4F1DBD126518993:3E144191008102E869184D9714BAE7CF:\ -00000000000000000000000000000000 - -3E144191008102E869184D9714BAE7CF:89ABFA208A52F85CA60F296CE99FC97A:\ -00000000000000000000000000000000 - -89ABFA208A52F85CA60F296CE99FC97A:FA092A3DD37EF94837715BBC72C9008F:\ -00000000000000000000000000000000 - -FA092A3DD37EF94837715BBC72C9008F:8A2288E53B2F0DD376ED385911BB4BB9:\ -00000000000000000000000000000000 - -8A2288E53B2F0DD376ED385911BB4BB9:0CD12B0AEC2BA1C57F06E268A4BF5966:\ -00000000000000000000000000000000 - -0CD12B0AEC2BA1C57F06E268A4BF5966:0B86524D05D0963C1BDF538290156686:\ -00000000000000000000000000000000 - -0B86524D05D0963C1BDF538290156686:79031361A2E423A7C4D1613C3873C0A0:\ -00000000000000000000000000000000 - -79031361A2E423A7C4D1613C3873C0A0:DD66BC447E835A9F426D0A2267850461:\ -00000000000000000000000000000000 - -DD66BC447E835A9F426D0A2267850461:4294DCCF31F54E693179449F25B514CC:\ -00000000000000000000000000000000 - -4294DCCF31F54E693179449F25B514CC:0A402C1A0F2EB568EDB7252AFDA4192B:\ -00000000000000000000000000000000 - -0A402C1A0F2EB568EDB7252AFDA4192B:FFACF106A37C74D17009E2566E611BE0:\ -00000000000000000000000000000000 - -FFACF106A37C74D17009E2566E611BE0:99E058DA9540E6B5C5A869CB9204010B:\ -00000000000000000000000000000000 - -99E058DA9540E6B5C5A869CB9204010B:8D616AB19B75842DC5EF102CE4BB2A51:\ -00000000000000000000000000000000 - -8D616AB19B75842DC5EF102CE4BB2A51:06C7C640672895C3CCFD52DB2CD9D51B:\ -00000000000000000000000000000000 - -06C7C640672895C3CCFD52DB2CD9D51B:EB2B67E27ABCB5C06DA3D3EECEC8A25B:\ -00000000000000000000000000000000 - -EB2B67E27ABCB5C06DA3D3EECEC8A25B:62EC35DC05A0BA40FE5D33A0B974C152:\ -00000000000000000000000000000000 - -62EC35DC05A0BA40FE5D33A0B974C152:A4CB55D7881ACC44F868C8BCFE098091:\ -00000000000000000000000000000000 - -A4CB55D7881ACC44F868C8BCFE098091:5CEE73CEBCAA22DF78C8C9FB8A47E5D3:\ -00000000000000000000000000000000 - -5CEE73CEBCAA22DF78C8C9FB8A47E5D3:62FCD19C3AC4370A4CC58AA619B0EA2F:\ -00000000000000000000000000000000 - -62FCD19C3AC4370A4CC58AA619B0EA2F:3583E618DAC3CE4347FD0E8AE6D6F5E9:\ -00000000000000000000000000000000 - -3583E618DAC3CE4347FD0E8AE6D6F5E9:2B307B42E0B9EF2D2EC3EEA07D339A87:\ -00000000000000000000000000000000 - -2B307B42E0B9EF2D2EC3EEA07D339A87:29A212AF4220054975D7C2AE9242AFA8:\ -00000000000000000000000000000000 - -29A212AF4220054975D7C2AE9242AFA8:67D5BD878FF66CDB33A4DD07EB634F91:\ -00000000000000000000000000000000 - -67D5BD878FF66CDB33A4DD07EB634F91:53944CA7C3BBBBE32C9BA9D8A8B765D6:\ -00000000000000000000000000000000 - -53944CA7C3BBBBE32C9BA9D8A8B765D6:9213B43D06D0AB7ECCC5CA751C5DBAA8:\ -00000000000000000000000000000000 - -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:97778747D60E425C2B4202599DB856FB:\ -000000000000000000000000000000000000000000000000 - -97778747D60E425C2B4202599DB856FB:885C6C280610DA436936E3C5AEEB9512:\ -000000000000000000000000000000000000000000000000 - -885C6C280610DA436936E3C5AEEB9512:749935A9971B7060043018F95329A530:\ -000000000000000000000000000000000000000000000000 - -749935A9971B7060043018F95329A530:05F0D089DE79801B3BE3D3D1361628DD:\ -000000000000000000000000000000000000000000000000 - -05F0D089DE79801B3BE3D3D1361628DD:35F8044736D1FF4142460E4E72610700:\ -000000000000000000000000000000000000000000000000 - -35F8044736D1FF4142460E4E72610700:B7028947854FE0C670E1E7416C2803DC:\ -000000000000000000000000000000000000000000000000 - -B7028947854FE0C670E1E7416C2803DC:D4F8A703F24F7E0AC5807EADADCA8CC9:\ -000000000000000000000000000000000000000000000000 - -D4F8A703F24F7E0AC5807EADADCA8CC9:77F1D30164CD2984C52ACEC02CAE2CD9:\ -000000000000000000000000000000000000000000000000 - -77F1D30164CD2984C52ACEC02CAE2CD9:CE509EEFF43FB5C22A9756B023573775:\ -000000000000000000000000000000000000000000000000 - -CE509EEFF43FB5C22A9756B023573775:B9D5ACCA79E9719979DA1E657C391F07:\ -000000000000000000000000000000000000000000000000 - -B9D5ACCA79E9719979DA1E657C391F07:9E3B2E46FC6E2D71D46AF0D5CF36B456:\ -000000000000000000000000000000000000000000000000 - -9E3B2E46FC6E2D71D46AF0D5CF36B456:D8104637E81C52CCEFB0AFE87F4BAF85:\ -000000000000000000000000000000000000000000000000 - -D8104637E81C52CCEFB0AFE87F4BAF85:C7F9AF5B41E9EB5387DB1D122E483F0E:\ -000000000000000000000000000000000000000000000000 - -C7F9AF5B41E9EB5387DB1D122E483F0E:D7ACF96A441BB267B591FBCEECB0494F:\ -000000000000000000000000000000000000000000000000 - -D7ACF96A441BB267B591FBCEECB0494F:DA2234B06D83F32064A78AD3C5303D73:\ -000000000000000000000000000000000000000000000000 - -DA2234B06D83F32064A78AD3C5303D73:70EF6DCDD349CD7F1D1A0EB3CB18C8C7:\ -000000000000000000000000000000000000000000000000 - -70EF6DCDD349CD7F1D1A0EB3CB18C8C7:DA093FB2C0F00258D8D9F216C91C0C9C:\ -000000000000000000000000000000000000000000000000 - -DA093FB2C0F00258D8D9F216C91C0C9C:26EAEEAE8FBE4835E5C43CBF3249CBB6:\ -000000000000000000000000000000000000000000000000 - -26EAEEAE8FBE4835E5C43CBF3249CBB6:35692A1CC8E9FBB99DEE2AD149EE7F33:\ -000000000000000000000000000000000000000000000000 - -35692A1CC8E9FBB99DEE2AD149EE7F33:6929CAD6052F809A2850D7E754C11C8D:\ -000000000000000000000000000000000000000000000000 - -6929CAD6052F809A2850D7E754C11C8D:5F4E499D26ED1D290D9A187FB7B7FB14:\ -000000000000000000000000000000000000000000000000 - -5F4E499D26ED1D290D9A187FB7B7FB14:BC5B30B2BAE077710A9DF5686794965F:\ -000000000000000000000000000000000000000000000000 - -BC5B30B2BAE077710A9DF5686794965F:41661F98160A6556815A15B1C1C2E080:\ -000000000000000000000000000000000000000000000000 - -41661F98160A6556815A15B1C1C2E080:EC2E71697E742ABDBB5FE516E50DBAD5:\ -000000000000000000000000000000000000000000000000 - -EC2E71697E742ABDBB5FE516E50DBAD5:CB104FF2203633E97573D308923C7AE9:\ -000000000000000000000000000000000000000000000000 - -CB104FF2203633E97573D308923C7AE9:C47B77D5FAD3535CFAE0BE60B48C741E:\ -000000000000000000000000000000000000000000000000 - -C47B77D5FAD3535CFAE0BE60B48C741E:BCA5C36E33821A60CAF6E2DA72956C5E:\ -000000000000000000000000000000000000000000000000 - -BCA5C36E33821A60CAF6E2DA72956C5E:B780AA350F6EFB3B805E505A2D32249F:\ -000000000000000000000000000000000000000000000000 - -B780AA350F6EFB3B805E505A2D32249F:8857D872D91FE8937E292C8948C0AF24:\ -000000000000000000000000000000000000000000000000 - -8857D872D91FE8937E292C8948C0AF24:4FCF851C845CBD7D7C528F55B8E84662:\ -000000000000000000000000000000000000000000000000 - -4FCF851C845CBD7D7C528F55B8E84662:BDDEE7D374D810E3658670F46054F99B:\ -000000000000000000000000000000000000000000000000 - -BDDEE7D374D810E3658670F46054F99B:16A4F2C3A95B296FBB7F8DEC6F70A9D0:\ -000000000000000000000000000000000000000000000000 - -16A4F2C3A95B296FBB7F8DEC6F70A9D0:2583F970ED6970C6D0963015D67217B6:\ -000000000000000000000000000000000000000000000000 - -2583F970ED6970C6D0963015D67217B6:0E7BB2CDF9CD553709D2BE4E9497D2F3:\ -000000000000000000000000000000000000000000000000 - -0E7BB2CDF9CD553709D2BE4E9497D2F3:A6D82EE721AAF1BA1BC3EBD8C75ABA9F:\ -000000000000000000000000000000000000000000000000 - -A6D82EE721AAF1BA1BC3EBD8C75ABA9F:C1211304A35315EC827DAE80B3F29BBB:\ -000000000000000000000000000000000000000000000000 - -C1211304A35315EC827DAE80B3F29BBB:4F0842F2D9EA5CD1AB743A8626DA6BE7:\ -000000000000000000000000000000000000000000000000 - -4F0842F2D9EA5CD1AB743A8626DA6BE7:BF39E62B863AFFFAD3DEE960962E03AE:\ -000000000000000000000000000000000000000000000000 - -BF39E62B863AFFFAD3DEE960962E03AE:147C3CB084958D3FBB9D4223D3126BF3:\ -000000000000000000000000000000000000000000000000 - -147C3CB084958D3FBB9D4223D3126BF3:6E76BEF9304B115EFC1C9002FBB848A0:\ -000000000000000000000000000000000000000000000000 - -62E45B4CF3477F1DD65063729D9ABA8F:0F4B897EA014D21FBC20F1054A42F719:\ -0000000000000000000000000000000000000000000000000000000000000000 - -0F4B897EA014D21FBC20F1054A42F719:9A4D42A7F27D42E542286ACF6650CF8A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -9A4D42A7F27D42E542286ACF6650CF8A:5E5F71257B5156C075FDC4BCBE996527:\ -0000000000000000000000000000000000000000000000000000000000000000 - -5E5F71257B5156C075FDC4BCBE996527:5A8112FB681B184766069A229BC0E1B6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -5A8112FB681B184766069A229BC0E1B6:2169853AD199721728B2F41FF6C3F316:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2169853AD199721728B2F41FF6C3F316:FD3954D96EF5B4078F5C301BAF15A3DE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -FD3954D96EF5B4078F5C301BAF15A3DE:DB1F3D03E0012505E354B2F4D7C7A255:\ -0000000000000000000000000000000000000000000000000000000000000000 - -DB1F3D03E0012505E354B2F4D7C7A255:375CECE4E897512373B86A82A6A660D5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -375CECE4E897512373B86A82A6A660D5:4CDA1DDDD8849D47609D7D9803FD67D6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -4CDA1DDDD8849D47609D7D9803FD67D6:20A6C90C54A118487C173AE3166EF219:\ -0000000000000000000000000000000000000000000000000000000000000000 - -20A6C90C54A118487C173AE3166EF219:F4A0164DFC1F38E967F3DDE74B7B0CAD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F4A0164DFC1F38E967F3DDE74B7B0CAD:638D1B47820C0FD0A1BFA5FB05AE9087:\ -0000000000000000000000000000000000000000000000000000000000000000 - -638D1B47820C0FD0A1BFA5FB05AE9087:CDE141CD9E784912B6BEFD62003FE253:\ -0000000000000000000000000000000000000000000000000000000000000000 - -CDE141CD9E784912B6BEFD62003FE253:84276E8EB17CB38307F3ACFE9480A771:\ -0000000000000000000000000000000000000000000000000000000000000000 - -84276E8EB17CB38307F3ACFE9480A771:27BA4090E1929A7E65D0C5078039A677:\ -0000000000000000000000000000000000000000000000000000000000000000 - -27BA4090E1929A7E65D0C5078039A677:264E4F150552D0D5F81583635189EED1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -264E4F150552D0D5F81583635189EED1:F052005B58BE2C8981575BA5C31D812C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F052005B58BE2C8981575BA5C31D812C:807E73C57A18CA88CA0F58C2FFD06394:\ -0000000000000000000000000000000000000000000000000000000000000000 - -807E73C57A18CA88CA0F58C2FFD06394:C317C6C0411947887DFCE0A9B2270B5F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C317C6C0411947887DFCE0A9B2270B5F:8ACD4164453A4C1C0DACBC8C2ED0896C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -8ACD4164453A4C1C0DACBC8C2ED0896C:2BA5D280D05FBAF78A8B55BF5FD8D343:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2BA5D280D05FBAF78A8B55BF5FD8D343:DDF70B8350ED845F6D875B0C85961D39:\ -0000000000000000000000000000000000000000000000000000000000000000 - -DDF70B8350ED845F6D875B0C85961D39:039FD445F0A6D65698D5146D498C8BDB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -039FD445F0A6D65698D5146D498C8BDB:22AE4D552D09558DEEEFC9518C01F4E2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -22AE4D552D09558DEEEFC9518C01F4E2:D5947EA67A7BD88DA577A28254EE44EF:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D5947EA67A7BD88DA577A28254EE44EF:22698C92691EE76CAD72880F577EFEC3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -22698C92691EE76CAD72880F577EFEC3:10ECA6E5E499742DDEC48434B767EBA1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -10ECA6E5E499742DDEC48434B767EBA1:3D97E93A44C2CB1CE9AF5770A4BD1A34:\ -0000000000000000000000000000000000000000000000000000000000000000 - -3D97E93A44C2CB1CE9AF5770A4BD1A34:F89C438D5311FC8235C632629CE1F3A0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F89C438D5311FC8235C632629CE1F3A0:4114C623ADF6DB0958FFA2DC27A2A828:\ -0000000000000000000000000000000000000000000000000000000000000000 - -4114C623ADF6DB0958FFA2DC27A2A828:980089430C89563A5510DF5196E07040:\ -0000000000000000000000000000000000000000000000000000000000000000 - -980089430C89563A5510DF5196E07040:1D1FEFBD55AA23487CD2DEC4D370302D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -1D1FEFBD55AA23487CD2DEC4D370302D:73A8AAE732EF445F3462353181168B23:\ -0000000000000000000000000000000000000000000000000000000000000000 - -73A8AAE732EF445F3462353181168B23:1D8116306AF7D70FE419226F35251687:\ -0000000000000000000000000000000000000000000000000000000000000000 - -1D8116306AF7D70FE419226F35251687:84EFA8A595B06C91A5A083440DAF5B50:\ -0000000000000000000000000000000000000000000000000000000000000000 - -84EFA8A595B06C91A5A083440DAF5B50:630EECD4A8A957A610765E01A1D07C45:\ -0000000000000000000000000000000000000000000000000000000000000000 - -630EECD4A8A957A610765E01A1D07C45:825A47AD6FCE09FEDB5D8F07DE6A2707:\ -0000000000000000000000000000000000000000000000000000000000000000 - -825A47AD6FCE09FEDB5D8F07DE6A2707:0C472D25510DD0592B5130FB4272DECA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -0C472D25510DD0592B5130FB4272DECA:3DA22A91B605A540E474383672C8D06C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -3DA22A91B605A540E474383672C8D06C:9A1C14309E4B246C9E7B485A7F41D046:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B3E2AD5608AC1B6733A7CB4FDF8F9952:\ -80000000000000000000000000000000 - -00000000000000000000000000000000:8655D5CCAF76A3A8AA09841F04689465:\ -40000000000000000000000000000000 - -00000000000000000000000000000000:F611F21A70C0AB5FB3D52AD5E8196E09:\ -20000000000000000000000000000000 - -00000000000000000000000000000000:6676D02EAE3EE58FA396BE40A3A6A234:\ -10000000000000000000000000000000 - -00000000000000000000000000000000:786E147E5D66764A16DFE1DCB10F3F13:\ -08000000000000000000000000000000 - -00000000000000000000000000000000:FDDBC84DA51496AD1CA2B7013B93FFA8:\ -04000000000000000000000000000000 - -00000000000000000000000000000000:B5A0BB3A8E7FEAC192B7BF8080E2CC81:\ -02000000000000000000000000000000 - -00000000000000000000000000000000:9A4802E8BF4426467617E9A44072EB76:\ -01000000000000000000000000000000 - -00000000000000000000000000000000:BE279F4EE696EC5B07820A1066F110CD:\ -00800000000000000000000000000000 - -00000000000000000000000000000000:4BBB919E52C258960549FAE9DD5FF524:\ -00400000000000000000000000000000 - -00000000000000000000000000000000:6B077B5DE4C9961DC6E11053662E3CFB:\ -00200000000000000000000000000000 - -00000000000000000000000000000000:755358499858F166C9DEAF2E79B3EDA3:\ -00100000000000000000000000000000 - -00000000000000000000000000000000:632644AA2ACB4FB3214E9E5BFF57D4D8:\ -00080000000000000000000000000000 - -00000000000000000000000000000000:DD3F06DD5A90BD7EA3F4B1BFB56E4ABB:\ -00040000000000000000000000000000 - -00000000000000000000000000000000:B2FB07551FD5B549C857020356B99D45:\ -00020000000000000000000000000000 - -00000000000000000000000000000000:5DE9EF4627A3EB6FD3920C322ECE9FAB:\ -00010000000000000000000000000000 - -00000000000000000000000000000000:A8D37D0254E1C908AAD02631B614A0C6:\ -00008000000000000000000000000000 - -00000000000000000000000000000000:91372C769C1E64DE0FDDC1C63436B623:\ -00004000000000000000000000000000 - -00000000000000000000000000000000:4F8FF5063FFF638497733E1526EE27BD:\ -00002000000000000000000000000000 - -00000000000000000000000000000000:5157ECB5597AC6A8D761E97517C65C0F:\ -00001000000000000000000000000000 - -00000000000000000000000000000000:117B9349CFFD2066452CC0FE204C18A5:\ -00000800000000000000000000000000 - -00000000000000000000000000000000:AE0AF51926529A3F354F7585578F6439:\ -00000400000000000000000000000000 - -00000000000000000000000000000000:B2723B8D2D61497DBF44FF9D70E48C0E:\ -00000200000000000000000000000000 - -00000000000000000000000000000000:464B3EB2A0F8A394DA239E0D0D62EDE2:\ -00000100000000000000000000000000 - -00000000000000000000000000000000:AA03D30E1CE0E91DC360B1E538017F05:\ -00000080000000000000000000000000 - -00000000000000000000000000000000:B1EDF5E18160BF8E16F386D999BF65BE:\ -00000040000000000000000000000000 - -00000000000000000000000000000000:85F1BDD358B23675328841103F1DCE65:\ -00000020000000000000000000000000 - -00000000000000000000000000000000:38DEA42C35E5758C7C5CCF451936DFCB:\ -00000010000000000000000000000000 - -00000000000000000000000000000000:E484E7CB2D35D5AE92939B06864A0E6B:\ -00000008000000000000000000000000 - -00000000000000000000000000000000:53B7E22F63F4D8AAC66D148619A7691D:\ -00000004000000000000000000000000 - -00000000000000000000000000000000:0042A8EDB756329533D82ED13386E648:\ -00000002000000000000000000000000 - -00000000000000000000000000000000:44BBDB223AFCC69EB69C5D07AF10E5D8:\ -00000001000000000000000000000000 - -00000000000000000000000000000000:C5B1739AF4C0AE459BF11144132D0979:\ -00000000800000000000000000000000 - -00000000000000000000000000000000:151BBFAECB027BAB90C8DA3E4743F033:\ -00000000400000000000000000000000 - -00000000000000000000000000000000:376786816F319B96A19B134143952FE5:\ -00000000200000000000000000000000 - -00000000000000000000000000000000:3E94AC897203461EFD9EED441F66AE9F:\ -00000000100000000000000000000000 - -00000000000000000000000000000000:61A93766162F0B01EDC84D47B1D4ECAA:\ -00000000080000000000000000000000 - -00000000000000000000000000000000:B21FA9D0AC731750F15B47FFF2BC4030:\ -00000000040000000000000000000000 - -00000000000000000000000000000000:BDE8813E0E4EAE6CECCBC4C6BD10C610:\ -00000000020000000000000000000000 - -00000000000000000000000000000000:50A5AE30DC3432F3060EE3628B274FFB:\ -00000000010000000000000000000000 - -00000000000000000000000000000000:E3DA95B76AD9E29F0B3F14DD33C670AC:\ -00000000008000000000000000000000 - -00000000000000000000000000000000:969DC8A583DED13E53042450FA4BE8FA:\ -00000000004000000000000000000000 - -00000000000000000000000000000000:D7CB0D2F9BFF048CBD8CBD8452361611:\ -00000000002000000000000000000000 - -00000000000000000000000000000000:E056677749114108153C6AC262EC0396:\ -00000000001000000000000000000000 - -00000000000000000000000000000000:E5572F1812044977D4309B8D675CAE48:\ -00000000000800000000000000000000 - -00000000000000000000000000000000:F00C1AB95B5CE3D3ACC2162E7A7F0262:\ -00000000000400000000000000000000 - -00000000000000000000000000000000:AB33C3682E0C1BFA627F4932AE4AAD94:\ -00000000000200000000000000000000 - -00000000000000000000000000000000:EE5B68820CB978CAACA22B1D590E31CF:\ -00000000000100000000000000000000 - -00000000000000000000000000000000:8ACACFB9E872873E315D84657613756B:\ -00000000000080000000000000000000 - -00000000000000000000000000000000:75CD1E528E5B6DB21BC8E44E70E5ECFA:\ -00000000000040000000000000000000 - -00000000000000000000000000000000:3195CE6F460654E6FC00672755A5B7C3:\ -00000000000020000000000000000000 - -00000000000000000000000000000000:8ACC17F3EDF59AA02DBBA93F27AD11D0:\ -00000000000010000000000000000000 - -00000000000000000000000000000000:DD82C41281BE711F7E5DCDCDC6CBBF6F:\ -00000000000008000000000000000000 - -00000000000000000000000000000000:971ABFC0649C9ABE7DE583799F31DD9D:\ -00000000000004000000000000000000 - -00000000000000000000000000000000:9CD8E45DE9909A8146956F2B581AE664:\ -00000000000002000000000000000000 - -00000000000000000000000000000000:095314A316B4DB9CE6F2CDDEC59ECE89:\ -00000000000001000000000000000000 - -00000000000000000000000000000000:B626E1C40D644E2E72370CA4A3528576:\ -00000000000000800000000000000000 - -00000000000000000000000000000000:002E4294BD6DDE3E3BFFB0CF5A5A7D4B:\ -00000000000000400000000000000000 - -00000000000000000000000000000000:DA89C327F041BEBDB09E835ED2A2DDBE:\ -00000000000000200000000000000000 - -00000000000000000000000000000000:9BC999880C14C9358CA89C435B1FDB00:\ -00000000000000100000000000000000 - -00000000000000000000000000000000:D0C92CFF98EB228C6C19B405E6EFEE77:\ -00000000000000080000000000000000 - -00000000000000000000000000000000:FAE5C83332BB176704F0E73B27442C0C:\ -00000000000000040000000000000000 - -00000000000000000000000000000000:DC9FB83F80E56CAF1DB807B5921927E8:\ -00000000000000020000000000000000 - -00000000000000000000000000000000:6FBB39934CC2627EE4F93343F50EB9D4:\ -00000000000000010000000000000000 - -00000000000000000000000000000000:02A31EDEF8DEA2DE3307748BF4DC1C54:\ -00000000000000008000000000000000 - -00000000000000000000000000000000:8C433C3D2005B30996ADA41F896436AC:\ -00000000000000004000000000000000 - -00000000000000000000000000000000:ED04C68D4D73C6EE193E0FC9E2CBD1B0:\ -00000000000000002000000000000000 - -00000000000000000000000000000000:515E01A6F25A4F1B2B57B27DECBFF195:\ -00000000000000001000000000000000 - -00000000000000000000000000000000:30A07996E5C40C41786FC75B9C56325B:\ -00000000000000000800000000000000 - -00000000000000000000000000000000:279C94707B0732D210DA7B619158825A:\ -00000000000000000400000000000000 - -00000000000000000000000000000000:07552A95AC44BB11CD34428C858FD19F:\ -00000000000000000200000000000000 - -00000000000000000000000000000000:BA67FC2E51DA92EA19079B237B42C9D8:\ -00000000000000000100000000000000 - -00000000000000000000000000000000:40387C974070B484E0DBAAFD5ADA0243:\ -00000000000000000080000000000000 - -00000000000000000000000000000000:3BF99A29B17D84BE5F8DC315616061F8:\ -00000000000000000040000000000000 - -00000000000000000000000000000000:D4EF00C794D337961FD9E3B5AF7A67A5:\ -00000000000000000020000000000000 - -00000000000000000000000000000000:1C77C28A6CBF3CBB24F2686ED3A408E2:\ -00000000000000000010000000000000 - -00000000000000000000000000000000:F93568CD7CBA7A6E9B9DD7144F1D4ABB:\ -00000000000000000008000000000000 - -00000000000000000000000000000000:C3BCD1F7F268E2806CCF0498C85D2E3E:\ -00000000000000000004000000000000 - -00000000000000000000000000000000:2FD2F0DEB5DBF7EB3B9050042E56A9A9:\ -00000000000000000002000000000000 - -00000000000000000000000000000000:2150DEB8C7C6327227A772031FF64047:\ -00000000000000000001000000000000 - -00000000000000000000000000000000:3E8B4B1CBB877B6F612BFB391043CFC3:\ -00000000000000000000800000000000 - -00000000000000000000000000000000:2376F56DFEB40C9348D758CA068C2127:\ -00000000000000000000400000000000 - -00000000000000000000000000000000:AABB351CA9BDCDACCD8E966766FF1C59:\ -00000000000000000000200000000000 - -00000000000000000000000000000000:212EF966B6CEECC65B5B0AE6A9DAA099:\ -00000000000000000000100000000000 - -00000000000000000000000000000000:99C95AC67935AE473E2EF3907DDCE5B3:\ -00000000000000000000080000000000 - -00000000000000000000000000000000:125DC68286DB1F81E6CD3D0C9EF8B922:\ -00000000000000000000040000000000 - -00000000000000000000000000000000:CC55D94C0102A12D87454DB8BA8E654C:\ -00000000000000000000020000000000 - -00000000000000000000000000000000:3F1E089ACAD719F7DB9292A770038475:\ -00000000000000000000010000000000 - -00000000000000000000000000000000:EC4D155D404F72B4BE88D1E17C345822:\ -00000000000000000000008000000000 - -00000000000000000000000000000000:276F8AECA95C7F65CD95B77680955548:\ -00000000000000000000004000000000 - -00000000000000000000000000000000:7D78CE850C26BB18B8631CDFF0A5E597:\ -00000000000000000000002000000000 - -00000000000000000000000000000000:6345692D62E879A058F342D5226A036D:\ -00000000000000000000001000000000 - -00000000000000000000000000000000:E19D5A2899061B7B5537EA6DF0390FE8:\ -00000000000000000000000800000000 - -00000000000000000000000000000000:4FAB8BB80E979853052BA0B19EF8521D:\ -00000000000000000000000400000000 - -00000000000000000000000000000000:E84EE11321AF1C0AE6430C4F600270B4:\ -00000000000000000000000200000000 - -00000000000000000000000000000000:73048F29C44F0953DFCC6B5380D36977:\ -00000000000000000000000100000000 - -00000000000000000000000000000000:16280B84B187AE90E25121AB297620FA:\ -00000000000000000000000080000000 - -00000000000000000000000000000000:FAAE881E9FA9DCA876B668CCAFA12B6A:\ -00000000000000000000000040000000 - -00000000000000000000000000000000:46A73C4A4516E1E0BE2140E175A7225F:\ -00000000000000000000000020000000 - -00000000000000000000000000000000:01C71A7B0BD6410894C9234A4250ABB4:\ -00000000000000000000000010000000 - -00000000000000000000000000000000:EA8CEF3C1E8EF94D4A17A4D4C1C28C32:\ -00000000000000000000000008000000 - -00000000000000000000000000000000:13BB356657B36C0D023047B324443468:\ -00000000000000000000000004000000 - -00000000000000000000000000000000:B14DCC5250036260131B3D92B1B26C18:\ -00000000000000000000000002000000 - -00000000000000000000000000000000:261E07BADC6E4BBB0EAD9ECCAE179821:\ -00000000000000000000000001000000 - -00000000000000000000000000000000:1D40D508EB8878251EC5C01D8E9949BB:\ -00000000000000000000000000800000 - -00000000000000000000000000000000:735BDCA8DF0C58679161E99BED3B8D3E:\ -00000000000000000000000000400000 - -00000000000000000000000000000000:49C907F757494623F8E8519F4A5D13A0:\ -00000000000000000000000000200000 - -00000000000000000000000000000000:AB858C224E5A3ADDF5A7549A98EEAF94:\ -00000000000000000000000000100000 - -00000000000000000000000000000000:7C7A62A1DBF206572A323682E0441458:\ -00000000000000000000000000080000 - -00000000000000000000000000000000:7461D6F4D609F8BCA9CAB4EB559C71C3:\ -00000000000000000000000000040000 - -00000000000000000000000000000000:2F646495150F4F9CA06B77281C1150FD:\ -00000000000000000000000000020000 - -00000000000000000000000000000000:A0C27498F797D6A9F513640AFE6CC316:\ -00000000000000000000000000010000 - -00000000000000000000000000000000:8D511A840453125335AB8DF8C64FA8E8:\ -00000000000000000000000000008000 - -00000000000000000000000000000000:9E64465740D81CCB74713A144F636985:\ -00000000000000000000000000004000 - -00000000000000000000000000000000:804499E6C6E8790988747009D3B3C66D:\ -00000000000000000000000000002000 - -00000000000000000000000000000000:59EBC223BAC60B13198C9AF47066274E:\ -00000000000000000000000000001000 - -00000000000000000000000000000000:CCA216CC095954AFD3DE594C91A26310:\ -00000000000000000000000000000800 - -00000000000000000000000000000000:06FF525F42EFF20A548DA1B7DCD1FFF8:\ -00000000000000000000000000000400 - -00000000000000000000000000000000:B2F1FD473FCA588111E6EB9DCE82CFA9:\ -00000000000000000000000000000200 - -00000000000000000000000000000000:557307573D2E5225AD6EDADDF1FCAB68:\ -00000000000000000000000000000100 - -00000000000000000000000000000000:CA159F81D155071BDCA701174C69184D:\ -00000000000000000000000000000080 - -00000000000000000000000000000000:41491AE31AB75E3ACA41B1A2CB75C1D9:\ -00000000000000000000000000000040 - -00000000000000000000000000000000:C3B4B9419C0E19D4A851C2DAD2954268:\ -00000000000000000000000000000020 - -00000000000000000000000000000000:6E3DD6DF183B80A0FF5D2D0A4B25A2C8:\ -00000000000000000000000000000010 - -00000000000000000000000000000000:EC69E1BD0815AE6C83876B75E58A7EB6:\ -00000000000000000000000000000008 - -00000000000000000000000000000000:8F5766DE11517F63A60459B1EDC32D44:\ -00000000000000000000000000000004 - -00000000000000000000000000000000:8A74C64985345925D8A6AB8E6A0D3589:\ -00000000000000000000000000000002 - -00000000000000000000000000000000:F65B8E5EAF04B33AD5FCF1B14874E059:\ -00000000000000000000000000000001 - -00000000000000000000000000000000:FD04E0B77403BBDC72A370240B45B92D:\ -800000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:CB0B4AC08E20385D31CF468B52B356E2:\ -400000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C39B63B4A8F7BF5C3CC61141584DE462:\ -200000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C63F433FF98BEE849D75D0F0402C9273:\ -100000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:9433992C094CDBEC06199B0517970B5D:\ -080000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:FA8B068AD3C2C32F99EF1A4F76C409AF:\ -040000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:014617D6109068C39137EE0CC522163E:\ -020000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:41B87685C649AD72C32D9390C23CF34B:\ -010000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:6836281F31AA9120DC144E26074491EC:\ -008000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C4163CB0CA1315C3D0115D495E0FF701:\ -004000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F0B8F3585636D2785FF619523C4365B9:\ -002000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:6E1740E818B450955C6B7612DBBA0DAE:\ -001000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:192A2FAAC85794EB20E43645E2E1B749:\ -000800000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5CA4011E7024A4978B58E1DFA9278625:\ -000400000000000000000000000000000000000000000000 - -00000000000000000000000000000000:498152C714A2CEFD692AC99DB90CDDBD:\ -000200000000000000000000000000000000000000000000 - -00000000000000000000000000000000:DEB3A9FEB22886C511A057AB858BB4DD:\ -000100000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D60466B1EA5C1C7A5DDFDA049A685B50:\ -000080000000000000000000000000000000000000000000 - -00000000000000000000000000000000:62A0EE49A6333815350E9C9CD7CB24D2:\ -000040000000000000000000000000000000000000000000 - -00000000000000000000000000000000:3AE70846AFDCC299B32EB9DE118070B8:\ -000020000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5118414720E424364E15B5EDC8E64559:\ -000010000000000000000000000000000000000000000000 - -00000000000000000000000000000000:42F9E38F7FB493D6048C63F804F5AD62:\ -000008000000000000000000000000000000000000000000 - -00000000000000000000000000000000:71043DAA3CF78997D9965DE84B150FA6:\ -000004000000000000000000000000000000000000000000 - -00000000000000000000000000000000:55B0DF5816DD16D2EB5CDDC5478D0652:\ -000002000000000000000000000000000000000000000000 - -00000000000000000000000000000000:CA853E905496251FF856259149FB5CCA:\ -000001000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BEF7C892708F0369378EA80C0EB9DD4A:\ -000000800000000000000000000000000000000000000000 - -00000000000000000000000000000000:3E7D986D91BEE75E597999C3E7372F06:\ -000000400000000000000000000000000000000000000000 - -00000000000000000000000000000000:8877D8DAF98680C7EC03C870BAFB66F9:\ -000000200000000000000000000000000000000000000000 - -00000000000000000000000000000000:493B8E5D02D01A6C98DDF4D016F4932D:\ -000000100000000000000000000000000000000000000000 - -00000000000000000000000000000000:E372455C9A44DCD5AEA803A276B2C5C3:\ -000000080000000000000000000000000000000000000000 - -00000000000000000000000000000000:92FCA63F71BCD0C950231E104D833246:\ -000000040000000000000000000000000000000000000000 - -00000000000000000000000000000000:1630F75A2F31B1998725D849CC2ADA9A:\ -000000020000000000000000000000000000000000000000 - -00000000000000000000000000000000:E3B636FC5BE0F05A036AEDF4DE7154BD:\ -000000010000000000000000000000000000000000000000 - -00000000000000000000000000000000:DBC8BD2D128A11715152306E19C9D1F9:\ -000000008000000000000000000000000000000000000000 - -00000000000000000000000000000000:AEFB45876EE3B0025A2D26A7A20E2A72:\ -000000004000000000000000000000000000000000000000 - -00000000000000000000000000000000:C7F1370CD98539026B8FD0968F7A8247:\ -000000002000000000000000000000000000000000000000 - -00000000000000000000000000000000:6D09CC037CDFD06ECAC142630A599C4F:\ -000000001000000000000000000000000000000000000000 - -00000000000000000000000000000000:94C29805153DB7FE4834BD261F0CA87E:\ -000000000800000000000000000000000000000000000000 - -00000000000000000000000000000000:B509BAF1EAB92764F8085764968CD111:\ -000000000400000000000000000000000000000000000000 - -00000000000000000000000000000000:E6ECD9CCAF93F302250A90E3C083C22E:\ -000000000200000000000000000000000000000000000000 - -00000000000000000000000000000000:1419D2C7A7A8F7AB5D78B327770EE8F7:\ -000000000100000000000000000000000000000000000000 - -00000000000000000000000000000000:984FA23C883200CFA802FCBF1DE752A2:\ -000000000080000000000000000000000000000000000000 - -00000000000000000000000000000000:003BFBA6334DEDFF7A3652DFDC73D04A:\ -000000000040000000000000000000000000000000000000 - -00000000000000000000000000000000:B21EC3CCD1303B81744348C64B5E5984:\ -000000000020000000000000000000000000000000000000 - -00000000000000000000000000000000:58557001247E8AFE91399042E723751B:\ -000000000010000000000000000000000000000000000000 - -00000000000000000000000000000000:0EF33C5A09600898D9FFE6AF5A06C2B6:\ -000000000008000000000000000000000000000000000000 - -00000000000000000000000000000000:AA0E866FEE8227BF6A8FDA4B318920AB:\ -000000000004000000000000000000000000000000000000 - -00000000000000000000000000000000:839A0DA3DB2718EEBB917B4CE37D23BF:\ -000000000002000000000000000000000000000000000000 - -00000000000000000000000000000000:BA3292A8130B2708EEBC5B2478B52C17:\ -000000000001000000000000000000000000000000000000 - -00000000000000000000000000000000:49B2A8F2FC9639B5918176993D96646A:\ -000000000000800000000000000000000000000000000000 - -00000000000000000000000000000000:21967CDE8F85ED1600F359F376CD18CA:\ -000000000000400000000000000000000000000000000000 - -00000000000000000000000000000000:6CCA94D43AB4B3A82FA4E514D928E644:\ -000000000000200000000000000000000000000000000000 - -00000000000000000000000000000000:3C76EAC404CF1E23B0A159C919A60206:\ -000000000000100000000000000000000000000000000000 - -00000000000000000000000000000000:F9DE0E78E8CC16D3A99D7642DEA13DB0:\ -000000000000080000000000000000000000000000000000 - -00000000000000000000000000000000:5B74643F1DEA8CA49078E4BF54B856CA:\ -000000000000040000000000000000000000000000000000 - -00000000000000000000000000000000:0E07FE27FBFAB005FF7EF334C3320736:\ -000000000000020000000000000000000000000000000000 - -00000000000000000000000000000000:477810CB11FC7E68144960AAD5372A64:\ -000000000000010000000000000000000000000000000000 - -00000000000000000000000000000000:A638D2171A231AFF384C97A7E9EFF6B6:\ -000000000000008000000000000000000000000000000000 - -00000000000000000000000000000000:9EA186F9AA6BE6D395E92474CCB9CAA3:\ -000000000000004000000000000000000000000000000000 - -00000000000000000000000000000000:7F6A295094E5512EDEA0B7206B977270:\ -000000000000002000000000000000000000000000000000 - -00000000000000000000000000000000:2DD07726A9333391A6EB41F4859A1627:\ -000000000000001000000000000000000000000000000000 - -00000000000000000000000000000000:515847FB17843E42C936A6201DF28563:\ -000000000000000800000000000000000000000000000000 - -00000000000000000000000000000000:35B29379EABD877B458FC4A4FB532931:\ -000000000000000400000000000000000000000000000000 - -00000000000000000000000000000000:B986149A6E871ACD8E3E1E5F5928C889:\ -000000000000000200000000000000000000000000000000 - -00000000000000000000000000000000:84D0A488FB56ADB915B553B2EDDBCC41:\ -000000000000000100000000000000000000000000000000 - -00000000000000000000000000000000:63B2B5A4D51E076D673044C71DC68B02:\ -000000000000000080000000000000000000000000000000 - -00000000000000000000000000000000:F388AD195E35B2892E586B830D728440:\ -000000000000000040000000000000000000000000000000 - -00000000000000000000000000000000:8FA923E8949678F76205CF4CBE07FF2F:\ -000000000000000020000000000000000000000000000000 - -00000000000000000000000000000000:ACCF2708E75B4CF48E45B641B81C1F41:\ -000000000000000010000000000000000000000000000000 - -00000000000000000000000000000000:0A7C295579AD4296447B7E56EB719ED3:\ -000000000000000008000000000000000000000000000000 - -00000000000000000000000000000000:06572AAB88739B2BDEE8E1E9CCA22883:\ -000000000000000004000000000000000000000000000000 - -00000000000000000000000000000000:2CF0CA3DB58CDC62890D386B07A4145F:\ -000000000000000002000000000000000000000000000000 - -00000000000000000000000000000000:CEFAEB3CEAA5959FAB15E884D46E9F09:\ -000000000000000001000000000000000000000000000000 - -00000000000000000000000000000000:57EB477F0573D6C75E45EE8606B5A2B6:\ -000000000000000000800000000000000000000000000000 - -00000000000000000000000000000000:C55F45149DE0FD18F2588B2B9F54CC22:\ -000000000000000000400000000000000000000000000000 - -00000000000000000000000000000000:ABCA7BE4CCC597AD8783C24EAB8BF17D:\ -000000000000000000200000000000000000000000000000 - -00000000000000000000000000000000:702F3D046E8651BF40D6A5914D8AC8B5:\ -000000000000000000100000000000000000000000000000 - -00000000000000000000000000000000:2C6424E1EF097C8FB44138C8A5160AE7:\ -000000000000000000080000000000000000000000000000 - -00000000000000000000000000000000:3F0E8296D93C233CBBE22623CCB66A52:\ -000000000000000000040000000000000000000000000000 - -00000000000000000000000000000000:D828348AFD520F98ED31F0B9FA4C48B1:\ -000000000000000000020000000000000000000000000000 - -00000000000000000000000000000000:BA7A4AA5F32D16DF08ABAA63E72F8BAD:\ -000000000000000000010000000000000000000000000000 - -00000000000000000000000000000000:9211FA0B1161E094BE702157D4CAFC73:\ -000000000000000000008000000000000000000000000000 - -00000000000000000000000000000000:1A4D5C52FDDEE81374295341F950055D:\ -000000000000000000004000000000000000000000000000 - -00000000000000000000000000000000:9544A653B635734B0FBC84E6C64B1AD5:\ -000000000000000000002000000000000000000000000000 - -00000000000000000000000000000000:8B7E7EE1A74570F35183E15D05114BD0:\ -000000000000000000001000000000000000000000000000 - -00000000000000000000000000000000:6567CE30F21EE879D60359CEE9AD3EC0:\ -000000000000000000000800000000000000000000000000 - -00000000000000000000000000000000:E5078C9B9B7572A60822A44150C6A4F4:\ -000000000000000000000400000000000000000000000000 - -00000000000000000000000000000000:51DFF3FE97481F08F6D5B66480AEE6D5:\ -000000000000000000000200000000000000000000000000 - -00000000000000000000000000000000:E84E478B15FB1BCD50E3CA9936FE9E01:\ -000000000000000000000100000000000000000000000000 - -00000000000000000000000000000000:FC614E54348A78E28ADB5DFB11130ADC:\ -000000000000000000000080000000000000000000000000 - -00000000000000000000000000000000:0F872CF9F54CE981ED17E41B23ED616C:\ -000000000000000000000040000000000000000000000000 - -00000000000000000000000000000000:AFCC9646ED78283BD19092853223F347:\ -000000000000000000000020000000000000000000000000 - -00000000000000000000000000000000:35D5A827B175D776F8F90F30F41A1C4B:\ -000000000000000000000010000000000000000000000000 - -00000000000000000000000000000000:B55980544140E694FCDFCE7C251C121C:\ -000000000000000000000008000000000000000000000000 - -00000000000000000000000000000000:244C4A55D5EEC8BD55C4F0D295ED2541:\ -000000000000000000000004000000000000000000000000 - -00000000000000000000000000000000:B3700314BD37894991C2FD4355B26845:\ -000000000000000000000002000000000000000000000000 - -00000000000000000000000000000000:43F3C6FFB517CD6E8EE1AEFCAA6FDE06:\ -000000000000000000000001000000000000000000000000 - -00000000000000000000000000000000:0F1A3E34821335E4EC22D404155192C2:\ -000000000000000000000000800000000000000000000000 - -00000000000000000000000000000000:22C59B22CC6A1E0EA313346F461324CD:\ -000000000000000000000000400000000000000000000000 - -00000000000000000000000000000000:2A90EF00D977A82EBDF6681F33D7DC1C:\ -000000000000000000000000200000000000000000000000 - -00000000000000000000000000000000:4B36176A8C174A635BF96A5B46BCF54C:\ -000000000000000000000000100000000000000000000000 - -00000000000000000000000000000000:E344C5213246712CAA2A056A6EE1868F:\ -000000000000000000000000080000000000000000000000 - -00000000000000000000000000000000:8F75D3C2ABBF84F3AA5E1734D6CC76A6:\ -000000000000000000000000040000000000000000000000 - -00000000000000000000000000000000:2258F75A5FC2B667DD0B28039CEA784C:\ -000000000000000000000000020000000000000000000000 - -00000000000000000000000000000000:D74F3EA90D02FC4908FDDCBE5849152E:\ -000000000000000000000000010000000000000000000000 - -00000000000000000000000000000000:0DCD8607E57390DD609717338591B205:\ -000000000000000000000000008000000000000000000000 - -00000000000000000000000000000000:594419C26F408B721F82ACCAC2DF1D5B:\ -000000000000000000000000004000000000000000000000 - -00000000000000000000000000000000:12D0F6A150858F64F0C88061CE592C11:\ -000000000000000000000000002000000000000000000000 - -00000000000000000000000000000000:5351E750DE5C9322AFA2885FB83C623B:\ -000000000000000000000000001000000000000000000000 - -00000000000000000000000000000000:7C120675A918C2C728149D332A196586:\ -000000000000000000000000000800000000000000000000 - -00000000000000000000000000000000:CDCA42B4E3ED64C2D37812847D7377CC:\ -000000000000000000000000000400000000000000000000 - -00000000000000000000000000000000:E4B73F8C0D9A40A67ACB9837CF8006DB:\ -000000000000000000000000000200000000000000000000 - -00000000000000000000000000000000:A863A13ED52E8BFD6652FEE291837B1D:\ -000000000000000000000000000100000000000000000000 - -00000000000000000000000000000000:64F9790C0BBD5C234FFADF0037485BB1:\ -000000000000000000000000000080000000000000000000 - -00000000000000000000000000000000:37A8AA3E38B937D92E1E41EC5E157FE0:\ -000000000000000000000000000040000000000000000000 - -00000000000000000000000000000000:F84D2A60A99BA9C17848BFBFBFEA0271:\ -000000000000000000000000000020000000000000000000 - -00000000000000000000000000000000:01AD547F2E1A713AC0B3D3E332A044A6:\ -000000000000000000000000000010000000000000000000 - -00000000000000000000000000000000:ED06A9B6EB5E24DF2CDA83564080AE93:\ -000000000000000000000000000008000000000000000000 - -00000000000000000000000000000000:3682650D35D3247471F3EB10A173479D:\ -000000000000000000000000000004000000000000000000 - -00000000000000000000000000000000:E3BD985B5B7C83F841F2F2A37A2974B3:\ -000000000000000000000000000002000000000000000000 - -00000000000000000000000000000000:EEA30254CF0FD6379A7203FC2328EEB6:\ -000000000000000000000000000001000000000000000000 - -00000000000000000000000000000000:4F2C052C360DA20FF826DFA98429AAA5:\ -000000000000000000000000000000800000000000000000 - -00000000000000000000000000000000:5F4CE32E4D55F0EB15799A3C46E1C40A:\ -000000000000000000000000000000400000000000000000 - -00000000000000000000000000000000:2EBE1C941F8247BBA3E85A04BA10B27C:\ -000000000000000000000000000000200000000000000000 - -00000000000000000000000000000000:9F41738ADB0CD8B4DD048527FCCFC23B:\ -000000000000000000000000000000100000000000000000 - -00000000000000000000000000000000:0E9F502FEE59A16CC5CEEDC82FD98E1A:\ -000000000000000000000000000000080000000000000000 - -00000000000000000000000000000000:56DC540BBAFB42B9817B4D464993DBCE:\ -000000000000000000000000000000040000000000000000 - -00000000000000000000000000000000:7421D3EB41769680565DD67683FE6737:\ -000000000000000000000000000000020000000000000000 - -00000000000000000000000000000000:777D08A4999E79A97CDBAFA5B6C33D12:\ -000000000000000000000000000000010000000000000000 - -00000000000000000000000000000000:4F3145690B092FAEDEBC672FE0ABC1EC:\ -000000000000000000000000000000008000000000000000 - -00000000000000000000000000000000:C221E4ABE2DD5ABA26DC29B6F3E421C6:\ -000000000000000000000000000000004000000000000000 - -00000000000000000000000000000000:EC48948223D3086FA730F6F81C103E8B:\ -000000000000000000000000000000002000000000000000 - -00000000000000000000000000000000:38B03357B1A0719A4E04FC3725B66400:\ -000000000000000000000000000000001000000000000000 - -00000000000000000000000000000000:A9458E67FD55DFB7F5D43344D7B8D994:\ -000000000000000000000000000000000800000000000000 - -00000000000000000000000000000000:C82BBCFE8E647A4915E578BB6BB410EC:\ -000000000000000000000000000000000400000000000000 - -00000000000000000000000000000000:27DA68521E57EFBC401640232896ABC7:\ -000000000000000000000000000000000200000000000000 - -00000000000000000000000000000000:DD6C4A6784C293F1D6B334731298C043:\ -000000000000000000000000000000000100000000000000 - -00000000000000000000000000000000:C2C4A691BD77C60869E6C030E357B7DF:\ -000000000000000000000000000000000080000000000000 - -00000000000000000000000000000000:EDA41EF6E7863F1A7D718E31A7D0AB0F:\ -000000000000000000000000000000000040000000000000 - -00000000000000000000000000000000:7915CF01D36808B875E1561FB88ECF2D:\ -000000000000000000000000000000000020000000000000 - -00000000000000000000000000000000:033826639ABFCBA709DEECD8F32306D5:\ -000000000000000000000000000000000010000000000000 - -00000000000000000000000000000000:B7CE1348B2832FABD58542A59319C947:\ -000000000000000000000000000000000008000000000000 - -00000000000000000000000000000000:479E3B195B3F9BE75AA2D0931F179495:\ -000000000000000000000000000000000004000000000000 - -00000000000000000000000000000000:6B9E7F0C5050E8CD232722C33261135D:\ -000000000000000000000000000000000002000000000000 - -00000000000000000000000000000000:063F64EDD05343702B76BE045A9D1DDD:\ -000000000000000000000000000000000001000000000000 - -00000000000000000000000000000000:E1AE2D5667E440C0A44EF9CC91AA10CC:\ -000000000000000000000000000000000000800000000000 - -00000000000000000000000000000000:A64A692A55AF5D1C99794707BA00E670:\ -000000000000000000000000000000000000400000000000 - -00000000000000000000000000000000:B975AC5AFA03D77D7361AACFF32E1B39:\ -000000000000000000000000000000000000200000000000 - -00000000000000000000000000000000:267A1379C257776BE4CA75C8B1A59EF6:\ -000000000000000000000000000000000000100000000000 - -00000000000000000000000000000000:ED392DDA2AD879B58405B41FAA7A56A1:\ -000000000000000000000000000000000000080000000000 - -00000000000000000000000000000000:4DECF57B85B75F1A78431A972CC873F6:\ -000000000000000000000000000000000000040000000000 - -00000000000000000000000000000000:5F9D95B7F415376A6665BDF645E5C6AC:\ -000000000000000000000000000000000000020000000000 - -00000000000000000000000000000000:5929FF53CC9876F923C6D19D3D101F18:\ -000000000000000000000000000000000000010000000000 - -00000000000000000000000000000000:D6CF5F18474D3A44D0BE029EE879E6FA:\ -000000000000000000000000000000000000008000000000 - -00000000000000000000000000000000:8860A98873A8DBFFDC4D7835F3D59BB7:\ -000000000000000000000000000000000000004000000000 - -00000000000000000000000000000000:4B506DF2FF9DA5672F55624AFE5374E8:\ -000000000000000000000000000000000000002000000000 - -00000000000000000000000000000000:B4D6692D5AAE39519C0AAB97597A5521:\ -000000000000000000000000000000000000001000000000 - -00000000000000000000000000000000:7185FA267D3926EA0804F07A91398C37:\ -000000000000000000000000000000000000000800000000 - -00000000000000000000000000000000:8C3BD232227C1C1B214186A603D85115:\ -000000000000000000000000000000000000000400000000 - -00000000000000000000000000000000:5300AFD8D507A60ACB0907B4D3E3D2B0:\ -000000000000000000000000000000000000000200000000 - -00000000000000000000000000000000:D8A16D32AE71F991EE2C1C19153B146D:\ -000000000000000000000000000000000000000100000000 - -00000000000000000000000000000000:32B3F26C1415BF7F82B6A637843F4C21:\ -000000000000000000000000000000000000000080000000 - -00000000000000000000000000000000:E416420B5F736F39328D36181992A720:\ -000000000000000000000000000000000000000040000000 - -00000000000000000000000000000000:619918287897135AD5516BA12A0FC6D7:\ -000000000000000000000000000000000000000020000000 - -00000000000000000000000000000000:69830C559F08DDCEEB6F83900DC14626:\ -000000000000000000000000000000000000000010000000 - -00000000000000000000000000000000:BB451FB76A7B1FE65E0332DE6E6712A3:\ -000000000000000000000000000000000000000008000000 - -00000000000000000000000000000000:AF2DE55E1EFFAF00EBF4EAEE45B29A4C:\ -000000000000000000000000000000000000000004000000 - -00000000000000000000000000000000:CA31B9A81450A198A073A299C7DF14C9:\ -000000000000000000000000000000000000000002000000 - -00000000000000000000000000000000:4FF7E9FADFCFFBB2DD3F23214B407180:\ -000000000000000000000000000000000000000001000000 - -00000000000000000000000000000000:B8BC9344751D34B0BFE353E5F3A9E309:\ -000000000000000000000000000000000000000000800000 - -00000000000000000000000000000000:4589951B936D1948299548D199E0612F:\ -000000000000000000000000000000000000000000400000 - -00000000000000000000000000000000:61B33E9A6A14F21B12D00832385F9BCA:\ -000000000000000000000000000000000000000000200000 - -00000000000000000000000000000000:652B66FBC2B192ACA177D4C16ACB1E3F:\ -000000000000000000000000000000000000000000100000 - -00000000000000000000000000000000:81A252288A18D4E4EC1F919FE34BD4C8:\ -000000000000000000000000000000000000000000080000 - -00000000000000000000000000000000:4D38323769C7AEFBF838F51A57E21C0E:\ -000000000000000000000000000000000000000000040000 - -00000000000000000000000000000000:C07D35D5788A04FEEBA6A337453DEFCA:\ -000000000000000000000000000000000000000000020000 - -00000000000000000000000000000000:6692591964FF5304D877DDE631E55AC2:\ -000000000000000000000000000000000000000000010000 - -00000000000000000000000000000000:1792F89A673DFE67A04BAC230317BFD3:\ -000000000000000000000000000000000000000000008000 - -00000000000000000000000000000000:0EC45273FAA59A4C6AA56C0BDF9DC1C4:\ -000000000000000000000000000000000000000000004000 - -00000000000000000000000000000000:273575F8DB870005ED51F0F1FB962A35:\ -000000000000000000000000000000000000000000002000 - -00000000000000000000000000000000:D9EDC0E324D69F3CAB465E3F63AC4CD3:\ -000000000000000000000000000000000000000000001000 - -00000000000000000000000000000000:647B9C834502295B5D46AE962ABD9059:\ -000000000000000000000000000000000000000000000800 - -00000000000000000000000000000000:3C8B932E1E8C1E9FD4629AF03D16D717:\ -000000000000000000000000000000000000000000000400 - -00000000000000000000000000000000:9FD433DAE0C3B5C35C7CA5468B4AF8DE:\ -000000000000000000000000000000000000000000000200 - -00000000000000000000000000000000:916E8226F1925A4C7E0056E8951B4609:\ -000000000000000000000000000000000000000000000100 - -00000000000000000000000000000000:A53FCF269CF194C323B2C2A5B82571E2:\ -000000000000000000000000000000000000000000000080 - -00000000000000000000000000000000:51C6D510F3053D502D141C99FBB28618:\ -000000000000000000000000000000000000000000000040 - -00000000000000000000000000000000:040E54E63CCF8E5D6EE6A27EEDCC02AB:\ -000000000000000000000000000000000000000000000020 - -00000000000000000000000000000000:DE90BD5F4C96E4F52EC9200D9E298DCD:\ -000000000000000000000000000000000000000000000010 - -00000000000000000000000000000000:87233EAEFC125F7C6E1FE329CC415520:\ -000000000000000000000000000000000000000000000008 - -00000000000000000000000000000000:71B61DD72D4FBD96542E73A5E5BD7CA5:\ -000000000000000000000000000000000000000000000004 - -00000000000000000000000000000000:F5F6E1B6215062A2547C1A7C84EB8E86:\ -000000000000000000000000000000000000000000000002 - -00000000000000000000000000000000:2DD740E5E0E0CBE72EBDF2808410D55F:\ -000000000000000000000000000000000000000000000001 - -00000000000000000000000000000000:EA4FCDBA1EB0C533938AA9FA32B740F3:\ -8000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B8E6D5134AB08E553AD5785B33D66111:\ -4000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:2D7805B2B86764E8FC3DD6E2EFB1532D:\ -2000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B9449A4D8C53639D0A6751DB3695B325:\ -1000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B2C6850F1AAAF7CD2E9B3FC1F5433FDC:\ -0800000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:7D124E20CE475B66BEA88399FF95C8C0:\ -0400000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D5F5ED2CDEC8D3043BD0C58238AF2820:\ -0200000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:051135A86EADA21353CB5FFD7A58408E:\ -0100000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:FEF406FC9C405AFB959C796E4ED0AF0D:\ -0080000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:52DA5222BB9974AE66CC9BB77E1F15E8:\ -0040000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F5DC2C5F98AF6CF4BCC23ECEEAF213AD:\ -0020000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:09DF90DE791250ACBE170DC643780CF2:\ -0010000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:3FA812132A21BEB83162C33B28CC242C:\ -0008000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:CEE571785850DD567A75D9E244660C66:\ -0004000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:642BB005B38790E518E53A53373C2474:\ -0002000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E3EBE5FA1C748BCB125602F8B7911FAE:\ -0001000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C863C98E1C09C28B4A05B5FBCE64DF28:\ -0000800000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B4BAB3A731F8CCD8A09A5D3AFF77BE60:\ -0000400000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:1A3FC4F1DE42F1AC5DA5F88701E6F292:\ -0000200000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:FF43862813E9F1CFEF044F4B8CFED265:\ -0000100000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:8F2785A7E28C1910580BBFD989A7F0D3:\ -0000080000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:26059027035B43615A7996D19FED9D42:\ -0000040000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:8CD8416F37E3BA1B5D6D0838F6B6E604:\ -0000020000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BB0BD60CD950DE5E0B9AAF78FF9A30DB:\ -0000010000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B99C1D4F98B68E8CD7495D16F3260D7D:\ -0000008000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:4F1A4F8D20456CFE0EF0E39DE6C71B9C:\ -0000004000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F453DB1AB45A6F5834F9908E1A15D4F7:\ -0000002000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:DA25287B7CD050E9B3E2074ED3B49FCF:\ -0000001000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BAB2AE0FF7C4902697DE88ED7F2FA06C:\ -0000000800000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:ABE6F6C9D29A58B985A91782EE28CF3E:\ -0000000400000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5C59FBE090DB3D75D7A5A8FD76F8A3DB:\ -0000000200000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:DCA806B1D0BAFCEAB015EC19A3E5C7FA:\ -0000000100000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:1BA870E6D62FEB16E6C2AA1128AE5ABA:\ -0000000080000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:0FE91367D4C178DD313C6AB7F3D5149A:\ -0000000040000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BFE27CB1B52150E0636A81473148B018:\ -0000000020000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F79BE17022979D01E3AFFB3499556DC4:\ -0000000010000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:A2F2B772060C53A539B5A3FE4C935171:\ -0000000008000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:DB97947A8B14B3E3859068A0288285F6:\ -0000000004000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:1FD086FE698C5E092A8E0C9EE527714A:\ -0000000002000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:8ADAB79B444DDDF86B8D53D2A9112881:\ -0000000001000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C36CEC9730A74CE94CF2EA5C7B0EC3ED:\ -0000000000800000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:033629A0675A45A11BE7924137D711EC:\ -0000000000400000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D5C22EF288E7D2D04BC04B57B702A03F:\ -0000000000200000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:1FD290A5EB2E278C6396625034EB268C:\ -0000000000100000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:05C35E0CB6D27E6E9D680368B2ABA9B5:\ -0000000000080000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B0194CDF7510FE98EDF9464259378FAF:\ -0000000000040000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:043729754E5B1F63408F62742E5F2765:\ -0000000000020000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:24A2746042EC7970E8AB59589AD63775:\ -0000000000010000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:7BDEF0A2EF8B637C4C3C5D001BAB5F85:\ -0000000000008000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:0221B515A1559D96E9C3CBFB929E96A9:\ -0000000000004000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:7E975026E5771D90EDA081B72C0BC77C:\ -0000000000002000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:7C7F9F98B4739C9774F84E75E5B30A95:\ -0000000000001000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:A4E176B7C98D76BC6662BBB3E606BA9C:\ -0000000000000800000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:7FDBDA5910B26D8D3FE42987B09430C0:\ -0000000000000400000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:7B134F40F8E10D8287B8E6FC0BDE45E8:\ -0000000000000200000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:CF3C98CC0CAFB2935385C0B5D8F07857:\ -0000000000000100000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:FB71BA47019735DA4082D68A1A587BDB:\ -0000000000000080000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E9D45576FC1A56DAFB48ABFB90A1DE4B:\ -0000000000000040000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:AE9408DC1A007CA9C13F2F9D12FC4F71:\ -0000000000000020000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B407201A6A44CB236468709B181BCA23:\ -0000000000000010000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:06E1A40D4F7534E24538D26802AF9E98:\ -0000000000000008000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:3468992A9D6F274286611D1E5DB327BA:\ -0000000000000004000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:635748DEDCB4E65B76E818D09994D19A:\ -0000000000000002000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C2A0DACC741E90029F16CDA81BEB8D0C:\ -0000000000000001000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D20B9853FC98ED3FCFA4C3B9781352D3:\ -0000000000000000800000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:869B106388046F6F5F9AE5ADC1F23BC2:\ -0000000000000000400000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:4F9BF7227D943B80C97B2FED132098FE:\ -0000000000000000200000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:7232A96D275C409349A0382BAE576274:\ -0000000000000000100000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:ADAF9B3E14B8CC101A2F143B373517B7:\ -0000000000000000080000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:813E38DF25E4356EAFC7ECEB75270FD4:\ -0000000000000000040000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:46D6957C76223046E232EEBB661CCE59:\ -0000000000000000020000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:1714E3EDD2A7BFE4FC35D4B6034E4184:\ -0000000000000000010000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:445ED35901D4608FAC3BCD59E685E77C:\ -0000000000000000008000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:236F86A3A59F563611C9A1A9C8DF045C:\ -0000000000000000004000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:FC0739E82EF130E533C77FA15BD85B57:\ -0000000000000000002000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:EDC81185A966066433F1B19BE7659080:\ -0000000000000000001000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:9D0ED59542D4851F7812B29640739765:\ -0000000000000000000800000000000000000000000000000000000000000000 - -00000000000000000000000000000000:4BA903B83FD4A443564723403BD7D431:\ -0000000000000000000400000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5DA2CD3D64EDCB29588F02BFED3D575B:\ -0000000000000000000200000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E66697B697E8881555F5B358A2EB7628:\ -0000000000000000000100000000000000000000000000000000000000000000 - -00000000000000000000000000000000:7DE9B3320A7872088B1417AAC4E841ED:\ -0000000000000000000080000000000000000000000000000000000000000000 - -00000000000000000000000000000000:236D82828CE9A9471B51DDCDA350C542:\ -0000000000000000000040000000000000000000000000000000000000000000 - -00000000000000000000000000000000:CF250F09887F0B9300FF865810A2E03F:\ -0000000000000000000020000000000000000000000000000000000000000000 - -00000000000000000000000000000000:0103157DB999DF64D6C6DACB16F15F78:\ -0000000000000000000010000000000000000000000000000000000000000000 - -00000000000000000000000000000000:EA918B3C7929C992E6F0D7B0DD6B8A59:\ -0000000000000000000008000000000000000000000000000000000000000000 - -00000000000000000000000000000000:FB853888B1D95F9C7BB7630231C9108E:\ -0000000000000000000004000000000000000000000000000000000000000000 - -00000000000000000000000000000000:46E63459DCC0514DD200BF82B6AEEA0B:\ -0000000000000000000002000000000000000000000000000000000000000000 - -00000000000000000000000000000000:19051C0A056D4B56DFF08C52FBBD4547:\ -0000000000000000000001000000000000000000000000000000000000000000 - -00000000000000000000000000000000:055240C320AC09978BE4EC0EE9E40123:\ -0000000000000000000000800000000000000000000000000000000000000000 - -00000000000000000000000000000000:E0D04118BAD95366416C6D715507646B:\ -0000000000000000000000400000000000000000000000000000000000000000 - -00000000000000000000000000000000:888C70E963419AA6446123CD9685252C:\ -0000000000000000000000200000000000000000000000000000000000000000 - -00000000000000000000000000000000:E060A32AF3CD8A525C60A8EB4BEB5B24:\ -0000000000000000000000100000000000000000000000000000000000000000 - -00000000000000000000000000000000:36A235722A72A5BD05896B74EBB39E35:\ -0000000000000000000000080000000000000000000000000000000000000000 - -00000000000000000000000000000000:665A781CF1F7839FA4E7EF66F5B47D45:\ -0000000000000000000000040000000000000000000000000000000000000000 - -00000000000000000000000000000000:8156E976338FB48ED3E469F1485EAA06:\ -0000000000000000000000020000000000000000000000000000000000000000 - -00000000000000000000000000000000:BA853DF1B7622D17A549624B234082F8:\ -0000000000000000000000010000000000000000000000000000000000000000 - -00000000000000000000000000000000:3A411EF75149822F0C4E998587BA0CAD:\ -0000000000000000000000008000000000000000000000000000000000000000 - -00000000000000000000000000000000:EA33525A7CC7C74340773389A764513E:\ -0000000000000000000000004000000000000000000000000000000000000000 - -00000000000000000000000000000000:E007DDE8158568CF80C470745E455EEE:\ -0000000000000000000000002000000000000000000000000000000000000000 - -00000000000000000000000000000000:C140AE31D6B8AB675539344B9D857A89:\ -0000000000000000000000001000000000000000000000000000000000000000 - -00000000000000000000000000000000:8C86266079ABCEE926A5EF6F80F50308:\ -0000000000000000000000000800000000000000000000000000000000000000 - -00000000000000000000000000000000:CD77B23315E31DF96FABD6E427184F9F:\ -0000000000000000000000000400000000000000000000000000000000000000 - -00000000000000000000000000000000:A72E93628614A603E59ECC5C766A639B:\ -0000000000000000000000000200000000000000000000000000000000000000 - -00000000000000000000000000000000:00EE192F18F06F5799B9593DE71B2FBE:\ -0000000000000000000000000100000000000000000000000000000000000000 - -00000000000000000000000000000000:A79378A27F39485A2A6757A953DE8D63:\ -0000000000000000000000000080000000000000000000000000000000000000 - -00000000000000000000000000000000:38353F1349680DF284CF7D59272D435B:\ -0000000000000000000000000040000000000000000000000000000000000000 - -00000000000000000000000000000000:0960EF878BE3F63CB8A25AFDEE9272F8:\ -0000000000000000000000000020000000000000000000000000000000000000 - -00000000000000000000000000000000:CB52EEC84DD320FB74A13DF2D4AF5B64:\ -0000000000000000000000000010000000000000000000000000000000000000 - -00000000000000000000000000000000:89525CFDCCC1A572987EEEC44507942D:\ -0000000000000000000000000008000000000000000000000000000000000000 - -00000000000000000000000000000000:894183826F3CD163F2BDCE8FD123BCBD:\ -0000000000000000000000000004000000000000000000000000000000000000 - -00000000000000000000000000000000:152FAB85782DD050EF29C8C7E95C5941:\ -0000000000000000000000000002000000000000000000000000000000000000 - -00000000000000000000000000000000:6C8CC544D1E6B9B8ACEB723A6E903710:\ -0000000000000000000000000001000000000000000000000000000000000000 - -00000000000000000000000000000000:9D1DCFEFD9CAEB5934AA93278F8E0988:\ -0000000000000000000000000000800000000000000000000000000000000000 - -00000000000000000000000000000000:86473616CFE39825E9F93B4A5D1518F0:\ -0000000000000000000000000000400000000000000000000000000000000000 - -00000000000000000000000000000000:3EC955C39DC4442411A578115482A331:\ -0000000000000000000000000000200000000000000000000000000000000000 - -00000000000000000000000000000000:117C11E5DAFA73A4CBA2E599582DF463:\ -0000000000000000000000000000100000000000000000000000000000000000 - -00000000000000000000000000000000:371B4F0F917CDC7F028CF90072EA6C0C:\ -0000000000000000000000000000080000000000000000000000000000000000 - -00000000000000000000000000000000:F6EAC5AC916431427022EE688D4E8248:\ -0000000000000000000000000000040000000000000000000000000000000000 - -00000000000000000000000000000000:5E7787153D1C5E94A860600D0FE0F695:\ -0000000000000000000000000000020000000000000000000000000000000000 - -00000000000000000000000000000000:44888E6DD958A843AF2143DA81986196:\ -0000000000000000000000000000010000000000000000000000000000000000 - -00000000000000000000000000000000:F3B940BFEFF393BFDAF0C435D262961C:\ -0000000000000000000000000000008000000000000000000000000000000000 - -00000000000000000000000000000000:40781DABC58A81B11FAA4039E6F73345:\ -0000000000000000000000000000004000000000000000000000000000000000 - -00000000000000000000000000000000:7685B120BD850BD6D7A618E023D42BA0:\ -0000000000000000000000000000002000000000000000000000000000000000 - -00000000000000000000000000000000:8088416E7FEDB30B1883DF50E29CD4D1:\ -0000000000000000000000000000001000000000000000000000000000000000 - -00000000000000000000000000000000:B0C9ED5257B103131AB5DBECC16D1547:\ -0000000000000000000000000000000800000000000000000000000000000000 - -00000000000000000000000000000000:01C8B821C4683B586CD8096A0DC4FDAA:\ -0000000000000000000000000000000400000000000000000000000000000000 - -00000000000000000000000000000000:4CA16F058B3AE1E2B3774E3DF99087CA:\ -0000000000000000000000000000000200000000000000000000000000000000 - -00000000000000000000000000000000:620D06B8EFBFDD1EE274D5EAE42B8F0E:\ -0000000000000000000000000000000100000000000000000000000000000000 - -00000000000000000000000000000000:34CF934F88C0D631B3D80BE0A5671B11:\ -0000000000000000000000000000000080000000000000000000000000000000 - -00000000000000000000000000000000:F8AB4045BD0CD95486B921B7430E74A0:\ -0000000000000000000000000000000040000000000000000000000000000000 - -00000000000000000000000000000000:96ECEC4088D81E2EF27D74A96E2614DC:\ -0000000000000000000000000000000020000000000000000000000000000000 - -00000000000000000000000000000000:EB0152474310B99F0F8F0DFD6D67962C:\ -0000000000000000000000000000000010000000000000000000000000000000 - -00000000000000000000000000000000:74DA68DA599D7DD37918F24F7654DC4D:\ -0000000000000000000000000000000008000000000000000000000000000000 - -00000000000000000000000000000000:F766AD686EB2BAF2950974F78968F510:\ -0000000000000000000000000000000004000000000000000000000000000000 - -00000000000000000000000000000000:A2D18CF5C770587E19DBD6FFEBD52FAE:\ -0000000000000000000000000000000002000000000000000000000000000000 - -00000000000000000000000000000000:DDADE16C2B9E78715FC281197149E4F0:\ -0000000000000000000000000000000001000000000000000000000000000000 - -00000000000000000000000000000000:79931CFAC3FD4F540E53905538B5E122:\ -0000000000000000000000000000000000800000000000000000000000000000 - -00000000000000000000000000000000:93F88DDDE5004BD8998CDB7A1BD1EE4D:\ -0000000000000000000000000000000000400000000000000000000000000000 - -00000000000000000000000000000000:011A413B2CC8E56A94A5C6D3932B3C3B:\ -0000000000000000000000000000000000200000000000000000000000000000 - -00000000000000000000000000000000:C509B737BBC749EE466ADF8142F52B28:\ -0000000000000000000000000000000000100000000000000000000000000000 - -00000000000000000000000000000000:514332276B9E9299F9F722B63752B0A8:\ -0000000000000000000000000000000000080000000000000000000000000000 - -00000000000000000000000000000000:D9F3A75F94986D0A1AB14258934C21D1:\ -0000000000000000000000000000000000040000000000000000000000000000 - -00000000000000000000000000000000:6FE84CDC49C9A8A55D85EA1A1D5C0DD9:\ -0000000000000000000000000000000000020000000000000000000000000000 - -00000000000000000000000000000000:0C85C65BD9DE393D2FEA3BE5AC7BAB67:\ -0000000000000000000000000000000000010000000000000000000000000000 - -00000000000000000000000000000000:904C7F2E8084FC10D59480C3DE1CB1A4:\ -0000000000000000000000000000000000008000000000000000000000000000 - -00000000000000000000000000000000:52C696236B4B7EE6B03B8876DEA8DD45:\ -0000000000000000000000000000000000004000000000000000000000000000 - -00000000000000000000000000000000:A0D46DAEA95CB4968F62BD9B3F8075A8:\ -0000000000000000000000000000000000002000000000000000000000000000 - -00000000000000000000000000000000:51BE75B32A05384D2A2E08CB1EAB5F63:\ -0000000000000000000000000000000000001000000000000000000000000000 - -00000000000000000000000000000000:1123151EB432831D2C65A90ED1D0A429:\ -0000000000000000000000000000000000000800000000000000000000000000 - -00000000000000000000000000000000:A26350A8FF6C10FCBA736D46FC26BF69:\ -0000000000000000000000000000000000000400000000000000000000000000 - -00000000000000000000000000000000:FF85BEF6CF6674FA5EE40EC9FB9052FF:\ -0000000000000000000000000000000000000200000000000000000000000000 - -00000000000000000000000000000000:6ED96DB33AB981AF27894AC436CB4D62:\ -0000000000000000000000000000000000000100000000000000000000000000 - -00000000000000000000000000000000:B38DE9B3C4D6D128101B02FDD05E3BF8:\ -0000000000000000000000000000000000000080000000000000000000000000 - -00000000000000000000000000000000:11E05766EBB66AB211E2D9653EF3144D:\ -0000000000000000000000000000000000000040000000000000000000000000 - -00000000000000000000000000000000:F6A196E085116E5BC21732A2EF9ACAF4:\ -0000000000000000000000000000000000000020000000000000000000000000 - -00000000000000000000000000000000:BC2A6753CA41E306A0500E97B38D8A9A:\ -0000000000000000000000000000000000000010000000000000000000000000 - -00000000000000000000000000000000:773A687B1FC97918943C1B66EF693354:\ -0000000000000000000000000000000000000008000000000000000000000000 - -00000000000000000000000000000000:C6E2112CCDBD821D2B9068B285C5192B:\ -0000000000000000000000000000000000000004000000000000000000000000 - -00000000000000000000000000000000:EA69C8E28021801EE9A14809848D781F:\ -0000000000000000000000000000000000000002000000000000000000000000 - -00000000000000000000000000000000:6290745CD4CB62DE172F8AB30966EB57:\ -0000000000000000000000000000000000000001000000000000000000000000 - -00000000000000000000000000000000:1051EE4C389B96B1365B417C74EFBF10:\ -0000000000000000000000000000000000000000800000000000000000000000 - -00000000000000000000000000000000:52B6F3EE6655128999EEE3831E708D76:\ -0000000000000000000000000000000000000000400000000000000000000000 - -00000000000000000000000000000000:5BDE19A1D741ECE40CE98CD02F02AD75:\ -0000000000000000000000000000000000000000200000000000000000000000 - -00000000000000000000000000000000:36EF5E803A68F6AC20D92FB14E2AFDF5:\ -0000000000000000000000000000000000000000100000000000000000000000 - -00000000000000000000000000000000:B3E1E30B78FBBCA07F065A422D33410B:\ -0000000000000000000000000000000000000000080000000000000000000000 - -00000000000000000000000000000000:5FA0E6C8E6C1FCD613975A18348484CB:\ -0000000000000000000000000000000000000000040000000000000000000000 - -00000000000000000000000000000000:B74E4A2406EEB2AB836AED857754A612:\ -0000000000000000000000000000000000000000020000000000000000000000 - -00000000000000000000000000000000:52EBF44DB69347A22DF8CA0ABAE3D668:\ -0000000000000000000000000000000000000000010000000000000000000000 - -00000000000000000000000000000000:986B7B05D1E9639779D034047FC3B780:\ -0000000000000000000000000000000000000000008000000000000000000000 - -00000000000000000000000000000000:1846AF7EB612C5C356DAF4FE42108444:\ -0000000000000000000000000000000000000000004000000000000000000000 - -00000000000000000000000000000000:22AD41F78567C6D5C2266486404168DC:\ -0000000000000000000000000000000000000000002000000000000000000000 - -00000000000000000000000000000000:73409A5B03D08BCEE496F7255417DEC5:\ -0000000000000000000000000000000000000000001000000000000000000000 - -00000000000000000000000000000000:32C47FAEB48DA7847B3C5B063153B049:\ -0000000000000000000000000000000000000000000800000000000000000000 - -00000000000000000000000000000000:5514F66B91C06AD15BE581AA99F5961B:\ -0000000000000000000000000000000000000000000400000000000000000000 - -00000000000000000000000000000000:38AF52E0648030498BA94D0BBF819B8A:\ -0000000000000000000000000000000000000000000200000000000000000000 - -00000000000000000000000000000000:91D48EEE9A769F0753C6A6DC1037405D:\ -0000000000000000000000000000000000000000000100000000000000000000 - -00000000000000000000000000000000:2CA3F3F2BB2332984A97E5274462E7AF:\ -0000000000000000000000000000000000000000000080000000000000000000 - -00000000000000000000000000000000:806EE4C1C6432102E40A21F03222B0E1:\ -0000000000000000000000000000000000000000000040000000000000000000 - -00000000000000000000000000000000:E8BBDC90505FE81AB2024274BB2FA258:\ -0000000000000000000000000000000000000000000020000000000000000000 - -00000000000000000000000000000000:307920977ADAD0EEDEBA2CB8AF83D3CE:\ -0000000000000000000000000000000000000000000010000000000000000000 - -00000000000000000000000000000000:6B0A17013DFAAD05442FA8B298043438:\ -0000000000000000000000000000000000000000000008000000000000000000 - -00000000000000000000000000000000:BA6EC60065FA6C9679D7E47FC1B85479:\ -0000000000000000000000000000000000000000000004000000000000000000 - -00000000000000000000000000000000:F1AA580B5E904BED235ACE85C0E009D0:\ -0000000000000000000000000000000000000000000002000000000000000000 - -00000000000000000000000000000000:9092A797F7024CC218B4A3575F4F7D63:\ -0000000000000000000000000000000000000000000001000000000000000000 - -00000000000000000000000000000000:CF404B154F2A8388DA9ED1E93AC78894:\ -0000000000000000000000000000000000000000000000800000000000000000 - -00000000000000000000000000000000:1B32215E25E3EB15FE4BED2F2F31281E:\ -0000000000000000000000000000000000000000000000400000000000000000 - -00000000000000000000000000000000:999B92E27EC161089F45DB53D036C8F0:\ -0000000000000000000000000000000000000000000000200000000000000000 - -00000000000000000000000000000000:B2F7DBFD67DBC260A7CFCD9C90FEF16F:\ -0000000000000000000000000000000000000000000000100000000000000000 - -00000000000000000000000000000000:7BD9AA3B08F103C796EE8023EF474F0A:\ -0000000000000000000000000000000000000000000000080000000000000000 - -00000000000000000000000000000000:483121AF85F36EA159BE2EB5802FBF21:\ -0000000000000000000000000000000000000000000000040000000000000000 - -00000000000000000000000000000000:AE2788C2115CB466713687AB06FE5E46:\ -0000000000000000000000000000000000000000000000020000000000000000 - -00000000000000000000000000000000:ADE758D100ABEEB7BA80BF257781494D:\ -0000000000000000000000000000000000000000000000010000000000000000 - -00000000000000000000000000000000:6DF30205652926EB339833F2EDD8472E:\ -0000000000000000000000000000000000000000000000008000000000000000 - -00000000000000000000000000000000:031E86B2AD4D83A4A19BCAF191F9B65A:\ -0000000000000000000000000000000000000000000000004000000000000000 - -00000000000000000000000000000000:F605CCC9E46B1792EA2F0B4124924F42:\ -0000000000000000000000000000000000000000000000002000000000000000 - -00000000000000000000000000000000:A70E3286C50B8DD8306109AB59119510:\ -0000000000000000000000000000000000000000000000001000000000000000 - -00000000000000000000000000000000:6922EEA4B8AE7BFECE899009848A33DA:\ -0000000000000000000000000000000000000000000000000800000000000000 - -00000000000000000000000000000000:1DD856F5453D1D61860E48035BFDADC7:\ -0000000000000000000000000000000000000000000000000400000000000000 - -00000000000000000000000000000000:9AE9BEC5D195B32BD52623EF21CF2AA3:\ -0000000000000000000000000000000000000000000000000200000000000000 - -00000000000000000000000000000000:C89ADA0E7DF448DE2155DB7C3E3EAAF2:\ -0000000000000000000000000000000000000000000000000100000000000000 - -00000000000000000000000000000000:0D176C6E373B2A3B3408AD24BE258365:\ -0000000000000000000000000000000000000000000000000080000000000000 - -00000000000000000000000000000000:8C2E48AF6FE6305B58EF5B950061E93C:\ -0000000000000000000000000000000000000000000000000040000000000000 - -00000000000000000000000000000000:2E81D19464919FFB1886E81C46AEDE37:\ -0000000000000000000000000000000000000000000000000020000000000000 - -00000000000000000000000000000000:7169BEE79D4DCC57F771A43AA0A80EF1:\ -0000000000000000000000000000000000000000000000000010000000000000 - -00000000000000000000000000000000:425223474892BA95538DAFF58F3DD0D3:\ -0000000000000000000000000000000000000000000000000008000000000000 - -00000000000000000000000000000000:B2650BF17E26E9A4F6484DD2992517D9:\ -0000000000000000000000000000000000000000000000000004000000000000 - -00000000000000000000000000000000:71936A21362F80ECCED8FC955FF159F3:\ -0000000000000000000000000000000000000000000000000002000000000000 - -00000000000000000000000000000000:E09665C274E582FFD6BCD0663BD6EA12:\ -0000000000000000000000000000000000000000000000000001000000000000 - -00000000000000000000000000000000:3E8D36D10E6AB4454154A226B7D6E50E:\ -0000000000000000000000000000000000000000000000000000800000000000 - -00000000000000000000000000000000:5D008338DDD66164591A9B98B23323CA:\ -0000000000000000000000000000000000000000000000000000400000000000 - -00000000000000000000000000000000:6BC5ACE2FA017CCC5CD0A8E88AF73B28:\ -0000000000000000000000000000000000000000000000000000200000000000 - -00000000000000000000000000000000:C115E4646FC054C50C2BBEC7C20C94F7:\ -0000000000000000000000000000000000000000000000000000100000000000 - -00000000000000000000000000000000:2CEB602F3C61BE94AF96FD012BB3190C:\ -0000000000000000000000000000000000000000000000000000080000000000 - -00000000000000000000000000000000:5A04F68F56580702891E4ECF6C600C92:\ -0000000000000000000000000000000000000000000000000000040000000000 - -00000000000000000000000000000000:D6A0DC0D5FB91B6478B9A1AAA586431B:\ -0000000000000000000000000000000000000000000000000000020000000000 - -00000000000000000000000000000000:E38BB33BF982D61BB2CD980BFCE4C2BF:\ -0000000000000000000000000000000000000000000000000000010000000000 - -00000000000000000000000000000000:B47BF164959077E378396A175020AC95:\ -0000000000000000000000000000000000000000000000000000008000000000 - -00000000000000000000000000000000:CC5CEE68ABBFDC2DFE32FD3A1E433932:\ -0000000000000000000000000000000000000000000000000000004000000000 - -00000000000000000000000000000000:A8180BBB689F29A560296FF24C785DC4:\ -0000000000000000000000000000000000000000000000000000002000000000 - -00000000000000000000000000000000:DCCBE0BB943D3B772010A08C11E82763:\ -0000000000000000000000000000000000000000000000000000001000000000 - -00000000000000000000000000000000:0439C5D8BB8BDD7FCB3A3281BD8A3A3F:\ -0000000000000000000000000000000000000000000000000000000800000000 - -00000000000000000000000000000000:2864CEAE94E09933190479BEA2515040:\ -0000000000000000000000000000000000000000000000000000000400000000 - -00000000000000000000000000000000:2AFF33A00C93057FE56EDCBBB65987BB:\ -0000000000000000000000000000000000000000000000000000000200000000 - -00000000000000000000000000000000:38C6B37E80EC873DE0A0ABEB9803438F:\ -0000000000000000000000000000000000000000000000000000000100000000 - -00000000000000000000000000000000:1D9428E92329672C0E902F6AA6AFC874:\ -0000000000000000000000000000000000000000000000000000000080000000 - -00000000000000000000000000000000:2AB8CC1998977DF208C97B2D0DC86C54:\ -0000000000000000000000000000000000000000000000000000000040000000 - -00000000000000000000000000000000:2E42C343E7E489916E2F2C0AD2AFFFB1:\ -0000000000000000000000000000000000000000000000000000000020000000 - -00000000000000000000000000000000:571C17477C9FB6C334718983E0B25859:\ -0000000000000000000000000000000000000000000000000000000010000000 - -00000000000000000000000000000000:3ABAD289F84A4B75412C82D8AD9BD739:\ -0000000000000000000000000000000000000000000000000000000008000000 - -00000000000000000000000000000000:E91C1A5E57DD295A7F4AC1687F6B8DB6:\ -0000000000000000000000000000000000000000000000000000000004000000 - -00000000000000000000000000000000:60CEAEC342165320652D7ED13FDAC05A:\ -0000000000000000000000000000000000000000000000000000000002000000 - -00000000000000000000000000000000:DA854CEC00C19BB97F7D8292ABAEB5BB:\ -0000000000000000000000000000000000000000000000000000000001000000 - -00000000000000000000000000000000:6BC45EBD7172512E5F6D51C60E271ACF:\ -0000000000000000000000000000000000000000000000000000000000800000 - -00000000000000000000000000000000:6604FAE8ECBC741D0F46D90AA235CAF6:\ -0000000000000000000000000000000000000000000000000000000000400000 - -00000000000000000000000000000000:5F95FA50CF7CDD4B619DCB8D6E0B7873:\ -0000000000000000000000000000000000000000000000000000000000200000 - -00000000000000000000000000000000:C98C198A5A988E2911302C22BFDC4890:\ -0000000000000000000000000000000000000000000000000000000000100000 - -00000000000000000000000000000000:4B5818505B80DA67A206BF3107DF2B4C:\ -0000000000000000000000000000000000000000000000000000000000080000 - -00000000000000000000000000000000:B2EA813634A26DC5894BFC4BB070E147:\ -0000000000000000000000000000000000000000000000000000000000040000 - -00000000000000000000000000000000:B6DDED10D2E8B13D7C758692C844017B:\ -0000000000000000000000000000000000000000000000000000000000020000 - -00000000000000000000000000000000:F2DC2468DF800E237C026F968CC3AAE2:\ -0000000000000000000000000000000000000000000000000000000000010000 - -00000000000000000000000000000000:EBCCE81109DCF1B9793AB60BD062F033:\ -0000000000000000000000000000000000000000000000000000000000008000 - -00000000000000000000000000000000:1BC015DC9E1B9DBB68293EB93D65088F:\ -0000000000000000000000000000000000000000000000000000000000004000 - -00000000000000000000000000000000:F718F0FC2A276D6CBB7A2BD59BBC3DB0:\ -0000000000000000000000000000000000000000000000000000000000002000 - -00000000000000000000000000000000:D89BE6BDD07222EF8297FDD246C3DA09:\ -0000000000000000000000000000000000000000000000000000000000001000 - -00000000000000000000000000000000:7013B55968A743157C4959DE2068AC57:\ -0000000000000000000000000000000000000000000000000000000000000800 - -00000000000000000000000000000000:758199FCB16B8ADF9B1350A02B10B735:\ -0000000000000000000000000000000000000000000000000000000000000400 - -00000000000000000000000000000000:29D38DC5215AA1F3CAEC044C8B472696:\ -0000000000000000000000000000000000000000000000000000000000000200 - -00000000000000000000000000000000:F5E1BCA4497ED2B1D871B5877C5BE3A8:\ -0000000000000000000000000000000000000000000000000000000000000100 - -00000000000000000000000000000000:C7388535D265CBFCEDE6423CC29F33A4:\ -0000000000000000000000000000000000000000000000000000000000000080 - -00000000000000000000000000000000:84992BD0280C4CDF8B1587D42AA63605:\ -0000000000000000000000000000000000000000000000000000000000000040 - -00000000000000000000000000000000:197E91D0F0261D975BA1F6FAA7983E51:\ -0000000000000000000000000000000000000000000000000000000000000020 - -00000000000000000000000000000000:644BDF2B1508CFF2E8D791DADC5D4BD6:\ -0000000000000000000000000000000000000000000000000000000000000010 - -00000000000000000000000000000000:D7BB8C6C07F21F648CE87A17A0589334:\ -0000000000000000000000000000000000000000000000000000000000000008 - -00000000000000000000000000000000:B6718CB65E557AF3C25D03770AD6B1FA:\ -0000000000000000000000000000000000000000000000000000000000000004 - -00000000000000000000000000000000:F32E30ADD384B71F7254A15B4042E1F6:\ -0000000000000000000000000000000000000000000000000000000000000002 - -00000000000000000000000000000000:B5C218F26198EE763B863EDA24446609:\ -0000000000000000000000000000000000000000000000000000000000000001 - -80000000000000000000000000000000:D962EFEBA75817BF6ED24BBBB5B7820D:\ -00000000000000000000000000000000 - -40000000000000000000000000000000:639B9F07305BCC1D2E64CE3D1671304A:\ -00000000000000000000000000000000 - -20000000000000000000000000000000:33ACF35AF3FF94B4C0A59C9035C99E79:\ -00000000000000000000000000000000 - -10000000000000000000000000000000:C18D6444EE8DEAECC4697D021B9694D2:\ -00000000000000000000000000000000 - -08000000000000000000000000000000:37DDA7DC913E6253679EB4A1906AE47C:\ -00000000000000000000000000000000 - -04000000000000000000000000000000:1DED0AB726E2358CCB57451EB5A1711A:\ -00000000000000000000000000000000 - -02000000000000000000000000000000:BFB43CD34EEC7C0A34CD77759E1396CE:\ -00000000000000000000000000000000 - -01000000000000000000000000000000:607C0F5FB6A489AED3D3238FB0C51D37:\ -00000000000000000000000000000000 - -00800000000000000000000000000000:0EBFB100FBBA1A66319743F846383323:\ -00000000000000000000000000000000 - -00400000000000000000000000000000:8ECA01741C7622FB9EB41FD9826EEA32:\ -00000000000000000000000000000000 - -00200000000000000000000000000000:BC7CABCFE201ECE01A42C2F4C49C1237:\ -00000000000000000000000000000000 - -00100000000000000000000000000000:6DD5E5FFF9A41C637553AC4873E118F6:\ -00000000000000000000000000000000 - -00080000000000000000000000000000:009DFBAA196DF5257E6F48F3310DDD58:\ -00000000000000000000000000000000 - -00040000000000000000000000000000:9A41BD1783AFB149865D341334D8DA3D:\ -00000000000000000000000000000000 - -00020000000000000000000000000000:9D3A9D9EA90505D970CA6C1FB39CBE11:\ -00000000000000000000000000000000 - -00010000000000000000000000000000:35495878D00360B50D980A6C7B193F2F:\ -00000000000000000000000000000000 - -00008000000000000000000000000000:81D74A81C7F5A5316314B02C6DB4BAA6:\ -00000000000000000000000000000000 - -00004000000000000000000000000000:4B0B95251D8737013E01F73B71DBEBFE:\ -00000000000000000000000000000000 - -00002000000000000000000000000000:8793996649604702198290E258A151DF:\ -00000000000000000000000000000000 - -00001000000000000000000000000000:99F161837DF7F24E3748C2BBCD71417F:\ -00000000000000000000000000000000 - -00000800000000000000000000000000:305049B5511EA8FBD5C36AB3E62E59EE:\ -00000000000000000000000000000000 - -00000400000000000000000000000000:89BF8940DD39B51B35E70F62137AE5EA:\ -00000000000000000000000000000000 - -00000200000000000000000000000000:301847CD9DA64B1BFD9E781056457761:\ -00000000000000000000000000000000 - -00000100000000000000000000000000:04B0F6A6C8BE9C4A771701DA1F2BD512:\ -00000000000000000000000000000000 - -00000080000000000000000000000000:91898CFEE3784B0299A655391057081E:\ -00000000000000000000000000000000 - -00000040000000000000000000000000:6515031342504BAC93832D74B18DE5F9:\ -00000000000000000000000000000000 - -00000020000000000000000000000000:D98ED2EEACB67C0FFDDA9724C309DF25:\ -00000000000000000000000000000000 - -00000010000000000000000000000000:4F963C1680E07CA4DD7C3759F848D2CC:\ -00000000000000000000000000000000 - -00000008000000000000000000000000:B51D85DC8C8F5A7EA15EFBEDBCBFC9E4:\ -00000000000000000000000000000000 - -00000004000000000000000000000000:F7C45BC3FA262A837C670776238C767E:\ -00000000000000000000000000000000 - -00000002000000000000000000000000:5E912791AC2F572389999FD369EC8E37:\ -00000000000000000000000000000000 - -00000001000000000000000000000000:7E8C9BA80ADC579747B1E4616D7EC9B3:\ -00000000000000000000000000000000 - -00000000800000000000000000000000:BF99640F187DB0C2944B959050B62F6D:\ -00000000000000000000000000000000 - -00000000400000000000000000000000:C5E61399609A0BE02A916D48A8A64C63:\ -00000000000000000000000000000000 - -00000000200000000000000000000000:07B4116F41B82767CB72E2E64CC046E3:\ -00000000000000000000000000000000 - -00000000100000000000000000000000:AB696B5F4E7ABDFCEC1D2DEDAC05E2A0:\ -00000000000000000000000000000000 - -00000000080000000000000000000000:50654EE25CF9E493B0B7138EE74BC166:\ -00000000000000000000000000000000 - -00000000040000000000000000000000:BDA01373F42BFC2B0F723366A46E1FF1:\ -00000000000000000000000000000000 - -00000000020000000000000000000000:AE25CD3DF7FC7BB8A2E645EBD79D2A29:\ -00000000000000000000000000000000 - -00000000010000000000000000000000:644664257BFAD3A0CF16D683A026A72A:\ -00000000000000000000000000000000 - -00000000008000000000000000000000:3AD0281E1F1225280383D5B7A3E90B04:\ -00000000000000000000000000000000 - -00000000004000000000000000000000:23F2882568F472EBC1B519122823441C:\ -00000000000000000000000000000000 - -00000000002000000000000000000000:8DE047245D62895A7E5852CEE8379A4F:\ -00000000000000000000000000000000 - -00000000001000000000000000000000:21ADF95994B6FEC5DA6FC40FEA782D79:\ -00000000000000000000000000000000 - -00000000000800000000000000000000:F2834B5587D63C382DBC397101EBB64F:\ -00000000000000000000000000000000 - -00000000000400000000000000000000:884C3D3850DC3EFFEAA0DB8785BEC5E5:\ -00000000000000000000000000000000 - -00000000000200000000000000000000:71AB2DB59AE3AAF781DAB5CAD1007975:\ -00000000000000000000000000000000 - -00000000000100000000000000000000:7793380505B20B6CDA1A2CEB6AF6D76D:\ -00000000000000000000000000000000 - -00000000000080000000000000000000:6A986D4B71CC337450CA165B110414AB:\ -00000000000000000000000000000000 - -00000000000040000000000000000000:EEC535764784A680C2852BD4B00ED6AC:\ -00000000000000000000000000000000 - -00000000000020000000000000000000:431A4B03918BD1A65D3523D63C7CBCA9:\ -00000000000000000000000000000000 - -00000000000010000000000000000000:6E657880D84A51B2241109E82B2A7EEE:\ -00000000000000000000000000000000 - -00000000000008000000000000000000:B4D163CFD4279B1F9DA0E1FC8616940C:\ -00000000000000000000000000000000 - -00000000000004000000000000000000:552143C6F2B0A0AB82B2AD487BD74DF4:\ -00000000000000000000000000000000 - -00000000000002000000000000000000:A8CED7B931A5AD407DDEF7F4510DBA70:\ -00000000000000000000000000000000 - -00000000000001000000000000000000:55BB234ED4164A9CC028C9C9DADA8A06:\ -00000000000000000000000000000000 - -00000000000000800000000000000000:0576F9792BA215C89BE0C86D8B3E84B6:\ -00000000000000000000000000000000 - -00000000000000400000000000000000:C117C7A4AF79DEECC8C18E8138BD4F78:\ -00000000000000000000000000000000 - -00000000000000200000000000000000:92FC2FDE8E99F5ECF5DFFB2B005C3790:\ -00000000000000000000000000000000 - -00000000000000100000000000000000:F3C94469F9B4166B76A7DA55FC45EE2B:\ -00000000000000000000000000000000 - -00000000000000080000000000000000:4C3A60421F79015B99A9B928477CC451:\ -00000000000000000000000000000000 - -00000000000000040000000000000000:ED6A1AF53574213F41812E8F5D41536B:\ -00000000000000000000000000000000 - -00000000000000020000000000000000:AF39A2A89D48B0A2F519B39F3DD4A7E9:\ -00000000000000000000000000000000 - -00000000000000010000000000000000:7F75ED2F965C9ED280CFA16B934E81D9:\ -00000000000000000000000000000000 - -00000000000000008000000000000000:B92C3EEB72B6BFD288E1F38D64248E93:\ -00000000000000000000000000000000 - -00000000000000004000000000000000:6FE1E1883D78ADF9FD415265A539D61C:\ -00000000000000000000000000000000 - -00000000000000002000000000000000:D5ABB34FC2D207FB0F8DF60DA81B9661:\ -00000000000000000000000000000000 - -00000000000000001000000000000000:751327283356553AF48AB6ED21DCE7C5:\ -00000000000000000000000000000000 - -00000000000000000800000000000000:B826F4F7B5C5DF743C87EE73119D71FF:\ -00000000000000000000000000000000 - -00000000000000000400000000000000:ACC2FA1CBD0FA5F8AAF147396AA72EF1:\ -00000000000000000000000000000000 - -00000000000000000200000000000000:F9F02491D78EA3B140D368CA71F0D6D4:\ -00000000000000000000000000000000 - -00000000000000000100000000000000:A414990595D6E5E3C657B3190A1AE3C6:\ -00000000000000000000000000000000 - -00000000000000000080000000000000:478FCFBDB52A6CDA402217483E26604F:\ -00000000000000000000000000000000 - -00000000000000000040000000000000:DE5E798198E306A2FF47F4F2DB7B3E2F:\ -00000000000000000000000000000000 - -00000000000000000020000000000000:B42E74D15CA26D9CC358A5E2B1F9DD70:\ -00000000000000000000000000000000 - -00000000000000000010000000000000:2800BCF67B76D76F7D0070950A85A20C:\ -00000000000000000000000000000000 - -00000000000000000008000000000000:808F9BE49A31AD5D0A62094A55372D64:\ -00000000000000000000000000000000 - -00000000000000000004000000000000:DAA7291D3A3289EAD026121F8CE16151:\ -00000000000000000000000000000000 - -00000000000000000002000000000000:93D7139BC6A67316FFAFEC2ACC89D245:\ -00000000000000000000000000000000 - -00000000000000000001000000000000:15D1444811E90AD554E50973F32B8AD6:\ -00000000000000000000000000000000 - -00000000000000000000800000000000:636FF061A2FCA2EAA8DFD3A195E8BA4F:\ -00000000000000000000000000000000 - -00000000000000000000400000000000:A2FBB57034BCF5E89E1495C216A44917:\ -00000000000000000000000000000000 - -00000000000000000000200000000000:7B370D533113C91233BBDC73B14B121F:\ -00000000000000000000000000000000 - -00000000000000000000100000000000:F21BC7D2EB7541EB3F0B40394FA064C7:\ -00000000000000000000000000000000 - -00000000000000000000080000000000:BAAD725D1BEBC934FEC792D158163DD5:\ -00000000000000000000000000000000 - -00000000000000000000040000000000:ED50A592E0D2DE126BC97FD8DAD20919:\ -00000000000000000000000000000000 - -00000000000000000000020000000000:11DB39B92B98A4719FE345FC44082787:\ -00000000000000000000000000000000 - -00000000000000000000010000000000:43B1AA58C190006D5EA3F6B708B90509:\ -00000000000000000000000000000000 - -00000000000000000000008000000000:8A19FB44B5962288640F48B27286904A:\ -00000000000000000000000000000000 - -00000000000000000000004000000000:C19B0558E72BABB1B9275EE8B48B9017:\ -00000000000000000000000000000000 - -00000000000000000000002000000000:587D8A04B1958388D69F26E4106D8232:\ -00000000000000000000000000000000 - -00000000000000000000001000000000:B53EB6177E1BC1C083E743878F476003:\ -00000000000000000000000000000000 - -00000000000000000000000800000000:A42E251AF82C03E4ADB9E5872AD8F7B2:\ -00000000000000000000000000000000 - -00000000000000000000000400000000:E2585AE29C6054CBDA85B6AA00D88C90:\ -00000000000000000000000000000000 - -00000000000000000000000200000000:3F6364A00BDCF925C6D62BA15DF56234:\ -00000000000000000000000000000000 - -00000000000000000000000100000000:6ECB0E56F218E4D1E790C34BBBCA06B8:\ -00000000000000000000000000000000 - -00000000000000000000000080000000:02ACC5470DD8D223ECB12339750D3BC0:\ -00000000000000000000000000000000 - -00000000000000000000000040000000:D67A590C0AB3B3E47406D19DB9F0A21F:\ -00000000000000000000000000000000 - -00000000000000000000000020000000:2B5CF7D06148DF6448016FB40FBF9F53:\ -00000000000000000000000000000000 - -00000000000000000000000010000000:4D635C044E9ACA243BA1F68268789D41:\ -00000000000000000000000000000000 - -00000000000000000000000008000000:0118FE9B311429CC06F01AA150D1FF08:\ -00000000000000000000000000000000 - -00000000000000000000000004000000:1E8AB1853E0D2F0E9FD49FE5285611AD:\ -00000000000000000000000000000000 - -00000000000000000000000002000000:E521BDB90371FAEC980E1EAC85C10137:\ -00000000000000000000000000000000 - -00000000000000000000000001000000:E2B8BB4A2EDF3DA04F6934EEF903DF17:\ -00000000000000000000000000000000 - -00000000000000000000000000800000:75528623E760DD71612DA5F9374EC616:\ -00000000000000000000000000000000 - -00000000000000000000000000400000:1FCEBEA2DDEDF905D645E1A03E2584EF:\ -00000000000000000000000000000000 - -00000000000000000000000000200000:4AC71EB7EBDA9AD47531FCAB0D34FA5A:\ -00000000000000000000000000000000 - -00000000000000000000000000100000:0458B8910A076F39CAAE517F5E3E4D59:\ -00000000000000000000000000000000 - -00000000000000000000000000080000:F5D01E6C7FA961F6AA1B94FFBFA59672:\ -00000000000000000000000000000000 - -00000000000000000000000000040000:652473292C5C5764658F8E1FF91B21F8:\ -00000000000000000000000000000000 - -00000000000000000000000000020000:05D5357FD61285F1B9FC19EB2BBF01C8:\ -00000000000000000000000000000000 - -00000000000000000000000000010000:2D379505C15DD6C1AD7544CB375720E1:\ -00000000000000000000000000000000 - -00000000000000000000000000008000:D5918DFA1A722206C89E7B5D518BB28D:\ -00000000000000000000000000000000 - -00000000000000000000000000004000:30C3BBEC945657A6EC5B9222BC36DB0B:\ -00000000000000000000000000000000 - -00000000000000000000000000002000:041305F2248F1FD0EC6181B4D6B619D3:\ -00000000000000000000000000000000 - -00000000000000000000000000001000:C275B6410A77513E4F33C21F9BC11924:\ -00000000000000000000000000000000 - -00000000000000000000000000000800:EECA71E0036A80BBAAAE62400EA1A237:\ -00000000000000000000000000000000 - -00000000000000000000000000000400:1025F24952D1691730DAD7CAF09C32C0:\ -00000000000000000000000000000000 - -00000000000000000000000000000200:FB7830146AC03E32BE6D03A4AE839E97:\ -00000000000000000000000000000000 - -00000000000000000000000000000100:A91E3D5B9DDC4F0315E718B4C190CBA9:\ -00000000000000000000000000000000 - -00000000000000000000000000000080:79FBBF61CB27651FBA333B9FFAF60F31:\ -00000000000000000000000000000000 - -00000000000000000000000000000040:FF598CBF22746883F86DAD6D679DC85E:\ -00000000000000000000000000000000 - -00000000000000000000000000000020:FA0ED9A5406FC13E532FDB74988A9554:\ -00000000000000000000000000000000 - -00000000000000000000000000000010:36DEA77F6832D3C81776801AFF839069:\ -00000000000000000000000000000000 - -00000000000000000000000000000008:262855946EE434D4F0DF924BAB0311BE:\ -00000000000000000000000000000000 - -00000000000000000000000000000004:01FF81B0107BEFA8427260954C7CD50C:\ -00000000000000000000000000000000 - -00000000000000000000000000000002:61DF2C54CDF545F8E774D50C8FF59752:\ -00000000000000000000000000000000 - -00000000000000000000000000000001:45F21B1FD1099CB36C64435337BAB3E3:\ -00000000000000000000000000000000 - -80000000000000000000000000000000:4433FCCBF2D4AA14783835D0968BB7A6:\ -000000000000000000000000000000000000000000000000 - -40000000000000000000000000000000:D565448D0753F08C6108B10CCEB4F213:\ -000000000000000000000000000000000000000000000000 - -20000000000000000000000000000000:1F2B7678DB0B0C33F2F5531FCB71D97E:\ -000000000000000000000000000000000000000000000000 - -10000000000000000000000000000000:8025160E9E0DF83CAC559816D3BA4AEA:\ -000000000000000000000000000000000000000000000000 - -08000000000000000000000000000000:A0F5D4524C743641214BD088EE9A4A0F:\ -000000000000000000000000000000000000000000000000 - -04000000000000000000000000000000:A2981925C529529B068FC1109A509836:\ -000000000000000000000000000000000000000000000000 - -02000000000000000000000000000000:AF60EDCB3C0FE50E4FE093509C1A87F6:\ -000000000000000000000000000000000000000000000000 - -01000000000000000000000000000000:6F475AF136CC10485515C95773A74AD2:\ -000000000000000000000000000000000000000000000000 - -00800000000000000000000000000000:6E09A8F5626CE2364668F8254F192E5A:\ -000000000000000000000000000000000000000000000000 - -00400000000000000000000000000000:5DE55C749F91D9392A87CA423F00FF95:\ -000000000000000000000000000000000000000000000000 - -00200000000000000000000000000000:4CD217660FCE3BD43999AC8353503118:\ -000000000000000000000000000000000000000000000000 - -00100000000000000000000000000000:94B45B0665BCB3FC486CFD980546E934:\ -000000000000000000000000000000000000000000000000 - -00080000000000000000000000000000:F924999F0213FE2DE932D1D072FBD38B:\ -000000000000000000000000000000000000000000000000 - -00040000000000000000000000000000:B64F96119ED3F9FD37A826E7A48C4F94:\ -000000000000000000000000000000000000000000000000 - -00020000000000000000000000000000:63E59879D0A422CD030E51727F379CC0:\ -000000000000000000000000000000000000000000000000 - -00010000000000000000000000000000:62B160854BBA6DB3EB960EDF53A60663:\ -000000000000000000000000000000000000000000000000 - -00008000000000000000000000000000:39A8147579540CC5A1F32F87768A4E3B:\ -000000000000000000000000000000000000000000000000 - -00004000000000000000000000000000:1B201066BC1D0173089BD0346C57630C:\ -000000000000000000000000000000000000000000000000 - -00002000000000000000000000000000:2818D6897E7AF26CF08409C1BBCDA8FC:\ -000000000000000000000000000000000000000000000000 - -00001000000000000000000000000000:8BCE5EE56402A19BB29979A05AB3EFF8:\ -000000000000000000000000000000000000000000000000 - -00000800000000000000000000000000:4F8B1F65E7CE872E514B53BE8DE8759A:\ -000000000000000000000000000000000000000000000000 - -00000400000000000000000000000000:3145B8EBF046F533D5378BBDF9C9E4F8:\ -000000000000000000000000000000000000000000000000 - -00000200000000000000000000000000:49E18ADC2929D19B61389C698DCEE532:\ -000000000000000000000000000000000000000000000000 - -00000100000000000000000000000000:BC7C0A8FDBEB8B63608F0BEF9C1E396F:\ -000000000000000000000000000000000000000000000000 - -00000080000000000000000000000000:89F15AD40BB43B2284B3563F2C974023:\ -000000000000000000000000000000000000000000000000 - -00000040000000000000000000000000:BB60A7897D5F438651EE13C02B5AA790:\ -000000000000000000000000000000000000000000000000 - -00000020000000000000000000000000:946FB4349CE2935BE1CCE99A2A01A6C9:\ -000000000000000000000000000000000000000000000000 - -00000010000000000000000000000000:90EA5937B4E393E34B4E60C787B33E2F:\ -000000000000000000000000000000000000000000000000 - -00000008000000000000000000000000:C5884097BC796E63B3046CB031919D15:\ -000000000000000000000000000000000000000000000000 - -00000004000000000000000000000000:06DC71C7CB99EF0B2EA4379CE5451E81:\ -000000000000000000000000000000000000000000000000 - -00000002000000000000000000000000:8A85BC61EAF50F065CB769B48243E51B:\ -000000000000000000000000000000000000000000000000 - -00000001000000000000000000000000:482E708D7AAA9637674AE923E2128BB5:\ -000000000000000000000000000000000000000000000000 - -00000000800000000000000000000000:1977127839A3FD886B5ACF2753A28D9F:\ -000000000000000000000000000000000000000000000000 - -00000000400000000000000000000000:39A993ED3ED7F4A1557FF18ADFE55CCD:\ -000000000000000000000000000000000000000000000000 - -00000000200000000000000000000000:8995CF677F032B100EF2FBA632AA4D67:\ -000000000000000000000000000000000000000000000000 - -00000000100000000000000000000000:B54C94BC29029F9DC78BAE0908B543C9:\ -000000000000000000000000000000000000000000000000 - -00000000080000000000000000000000:CD0A7D015E352D8B27687ED66B45C64D:\ -000000000000000000000000000000000000000000000000 - -00000000040000000000000000000000:F4E89BBAAA6DCB96952662F88DB0A60D:\ -000000000000000000000000000000000000000000000000 - -00000000020000000000000000000000:37FA1912B2636F3982A768C5208267B3:\ -000000000000000000000000000000000000000000000000 - -00000000010000000000000000000000:C5F27B0B8B93C4F693510EDAB0560073:\ -000000000000000000000000000000000000000000000000 - -00000000008000000000000000000000:EAD47638DF1D0AB1D3441D5B77A7459D:\ -000000000000000000000000000000000000000000000000 - -00000000004000000000000000000000:A9198F0441AAA6B84DB891AF859145E0:\ -000000000000000000000000000000000000000000000000 - -00000000002000000000000000000000:99604EEF14A27550AA1F58510BC6C745:\ -000000000000000000000000000000000000000000000000 - -00000000001000000000000000000000:133CE0B0F01E22DB16B51F6074A570E0:\ -000000000000000000000000000000000000000000000000 - -00000000000800000000000000000000:6E2503C056B37957BC00249175B6A829:\ -000000000000000000000000000000000000000000000000 - -00000000000400000000000000000000:8076A054B269283F5063CF9EDAFF721E:\ -000000000000000000000000000000000000000000000000 - -00000000000200000000000000000000:6ADC87C1A40ABF8DA9FF4DA863C4AAA1:\ -000000000000000000000000000000000000000000000000 - -00000000000100000000000000000000:676953B542456DDD155467F7F6E51C2A:\ -000000000000000000000000000000000000000000000000 - -00000000000080000000000000000000:441D72C0FB4A79E4451B9B0D3571E1E4:\ -000000000000000000000000000000000000000000000000 - -00000000000040000000000000000000:642DC2A4A84229406ADFE681FD1D2F51:\ -000000000000000000000000000000000000000000000000 - -00000000000020000000000000000000:CA1DF7DBF4163F601ED11216767E8C79:\ -000000000000000000000000000000000000000000000000 - -00000000000010000000000000000000:F8EBCE557E084052E74A5DEB45439D6A:\ -000000000000000000000000000000000000000000000000 - -00000000000008000000000000000000:589606504D2BBC4A85507D61AD1AE6E1:\ -000000000000000000000000000000000000000000000000 - -00000000000004000000000000000000:5627DFEFE159A8FEF32FDC29321CC705:\ -000000000000000000000000000000000000000000000000 - -00000000000002000000000000000000:BFC074B43DD81ED778082FB83AAB8D8D:\ -000000000000000000000000000000000000000000000000 - -00000000000001000000000000000000:6DF74B1434C13343CAE51F38BABDF4BF:\ -000000000000000000000000000000000000000000000000 - -00000000000000800000000000000000:1C9B11549C831CE68C7CE061F1CCFCEE:\ -000000000000000000000000000000000000000000000000 - -00000000000000400000000000000000:31D07F177D35A6EE067C75C5B1F3D728:\ -000000000000000000000000000000000000000000000000 - -00000000000000200000000000000000:D4B7FA191B9414FF3D293BC76C2E12A6:\ -000000000000000000000000000000000000000000000000 - -00000000000000100000000000000000:9D7AA5550DAE2B1B7D608147009DFE2B:\ -000000000000000000000000000000000000000000000000 - -00000000000000080000000000000000:5266FA9AB29440558FB71EDA1B43BFBA:\ -000000000000000000000000000000000000000000000000 - -00000000000000040000000000000000:2CF722D01CB1EAE802C78FB22AF095B2:\ -000000000000000000000000000000000000000000000000 - -00000000000000020000000000000000:B3C02698C56AB6D3EFCB90AC81CBD787:\ -000000000000000000000000000000000000000000000000 - -00000000000000010000000000000000:FBF4F2DC7FD1A9F6D4C8B8BFA3AA81FB:\ -000000000000000000000000000000000000000000000000 - -00000000000000008000000000000000:32D300D0B845E26F7A0505AAB453E0B2:\ -000000000000000000000000000000000000000000000000 - -00000000000000004000000000000000:EAA724538478C450FE5E893DFD206D5B:\ -000000000000000000000000000000000000000000000000 - -00000000000000002000000000000000:346E15BA10E1B15D2DE2A862C8BAB645:\ -000000000000000000000000000000000000000000000000 - -00000000000000001000000000000000:67E87A345284D00742FF8E0D6C67C677:\ -000000000000000000000000000000000000000000000000 - -00000000000000000800000000000000:D9FF605AF934D4EA36BB4D4678D250A5:\ -000000000000000000000000000000000000000000000000 - -00000000000000000400000000000000:C6BAAD911C8D06461FEB1C8FD73A1163:\ -000000000000000000000000000000000000000000000000 - -00000000000000000200000000000000:AFE155824F95065479A7326AF6FFAD5C:\ -000000000000000000000000000000000000000000000000 - -00000000000000000100000000000000:DAFA519AB33BC01A665BD43D7B578716:\ -000000000000000000000000000000000000000000000000 - -00000000000000000080000000000000:AB1A3C2AEA2AB0873FCE9B193AC3CE26:\ -000000000000000000000000000000000000000000000000 - -00000000000000000040000000000000:DB4E325C5F0C6A2A80A97FB53629CA42:\ -000000000000000000000000000000000000000000000000 - -00000000000000000020000000000000:AA0B63CE9363BCDC1840FE6DF3EEF598:\ -000000000000000000000000000000000000000000000000 - -00000000000000000010000000000000:564F6ED396958B6CD1C5156F30F12BD3:\ -000000000000000000000000000000000000000000000000 - -00000000000000000008000000000000:59CAEE5DD9D6D8A17DCD5761F285ACCD:\ -000000000000000000000000000000000000000000000000 - -00000000000000000004000000000000:4CAC1BC4EBF467854A15DDBC9410E30E:\ -000000000000000000000000000000000000000000000000 - -00000000000000000002000000000000:9D432A8BC205B2DAE6ED10E5D2573DB5:\ -000000000000000000000000000000000000000000000000 - -00000000000000000001000000000000:A1B2A6D98E8331CA5D2605C5053AE8D8:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000800000000000:CD3676661A44F4509EFBFFB4ED5AD60D:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000400000000000:0E367EE025F2FF821D5F0B89FCECFFA9:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000200000000000:5F60D9B6A93F1F1B531A9D26C7465114:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000100000000000:E5753FFD3DF072BCD07292484E9AF749:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000080000000000:25F43090C51DFE3C48DB6F391B489669:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000040000000000:AE817F28DEE664D2B9739BF93AA73B1E:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000020000000000:F1D08CAFE3F5E56C18237E777C731DDD:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000010000000000:6ECFB7B90D05650F97B5D6D7F677ECE9:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000008000000000:FEA1BF5FD0BCFA04E0D906B4C5F8C51A:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000004000000000:0739D17249C17E813B7716212E4E32F3:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000002000000000:81AA866868D538D53194B5B5D7014BD0:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000001000000000:E3CC87289C585148267231499BADA0F0:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000800000000:2016EF8808F2B5C38B0F790C5A81E9F7:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000400000000:7F06EC5E639B36CD7482E5D3568DD54E:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000200000000:9A066E0A89EDFF5F26F00F8CC76710B7:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000100000000:49A6ED8109D54E6628CD4F6418B788D4:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000080000000:4C3F149C3D7A196B8F61AFF5691950FB:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000040000000:85B54F82B4586B3396C2200DFF3B26CC:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000020000000:705B756847815F1D0DA8D55A45F91BF5:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000010000000:4C81CA819469B5A80EB6AF78BB91570D:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000008000000:5D057D02E17129A43E0B68D9425917CA:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000004000000:E472655E64E637CCD7D1FD3D46970F34:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000002000000:05B3391A2CABBED3F1AE0EBAEF6D61B3:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000001000000:96D1DAD8F5083314D8185517614E2E3B:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000800000:B4054DBFE0DB6487C90505273A5FF3B1:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000400000:4E766330F2C22059E59B5C8972AA2AFC:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000200000:78AB8FC7997E2B63B59DC80F4F560D95:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000100000:059181B7493B3D66B61CC663B58D7860:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000080000:4149CD202F19C2BBF631FC2BA8FFDF41:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000040000:6465A8757C3E9E5D9A98EEF1CEE37324:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000020000:06A7F1D391336FFBEA9986A82BAFFD02:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000010000:6204BFF718C247F7A909C4FD4CB6444D:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000008000:4B815F5F654E7C6E9B135D14773BF419:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000004000:D18FBE3FAACC1722641E66DB74220E98:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000002000:6E473DD470E74E9066FE07297434D8A4:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000001000:E6FD048EB622EE77A092E1818472C477:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000800:2DCD5664A1151BF563F25E86B69767E4:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000400:3455215DFA380B77C931C262A38B01EE:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000200:7470C0914B4AA37DB90DCDD87A253D94:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000100:CB15F18A9A66397EAC67FAC2BA875EE5:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000080:5F273D6F25D09AFE351CE02016E18218:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000040:CA995621063500658C47AAD5C89BE0FE:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000020:70724F68B3D09917AB7286449BCC71F3:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000010:10769D43746A1DBFB7CEEDD1EB9EBB0E:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000008:87F113ABDF184062224235392A20AF11:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000004:7D237E25D34FEC04FC635884B1342EC3:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000002:435B4DA29136AAA1275EF16F5394A235:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000001:70051777D259550440C9BB7884DFFBFA:\ -000000000000000000000000000000000000000000000000 - -80000000000000000000000000000000:7DEC45D013733A2FC3ACB05AC5EDCDA0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -40000000000000000000000000000000:A0CEAF180B51BFD4781D46CD10160457:\ -0000000000000000000000000000000000000000000000000000000000000000 - -20000000000000000000000000000000:498CEEDE242280926B1583FB4A2F9073:\ -0000000000000000000000000000000000000000000000000000000000000000 - -10000000000000000000000000000000:39E60B423F54786849C6E0BA2AF6BDD3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -08000000000000000000000000000000:CA6680EA57E0FE1628DC26EA79C948EA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -04000000000000000000000000000000:CA14A0AF4CF3D1C3615204EB95F216CC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -02000000000000000000000000000000:2D5A5029679E795D4F49CF1E7AA525FF:\ -0000000000000000000000000000000000000000000000000000000000000000 - -01000000000000000000000000000000:5AAD27C9EABDAAD2296718BB0118871E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00800000000000000000000000000000:80CA60282018A1DD71762D84750EB459:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00400000000000000000000000000000:E2250B330EC2C407295F2A1BC8B33330:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00200000000000000000000000000000:210CEBA6B53AC0DE78757CDC785C6A35:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00100000000000000000000000000000:053FC841A2E3D6037B34CB9C7CCC0CFB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00080000000000000000000000000000:DED4DA1EFC0FCF248E9DA7885CA54A32:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00040000000000000000000000000000:BAE5DF7B5CB001EFCB26C5AA2DD2588D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00020000000000000000000000000000:9DD5C8DC680CC10FAF75B19331ED9FCD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00010000000000000000000000000000:D348D0D2E64F7C6B3EBC0844EA93A77E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00008000000000000000000000000000:E3AEE8A29AD4A08D979F08F030650A24:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00004000000000000000000000000000:272797A77F83C01290E213B511A1659E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00002000000000000000000000000000:B2E84007CACDA6638F4391ACCC8DD245:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00001000000000000000000000000000:EAA21531B492A737DDCB7EF2D8D4022A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000800000000000000000000000000:0DCF4259CFB5D0DEFA7C1DD26C5AE728:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000400000000000000000000000000:1B3596ABDAB6FE10E574A0505AE5EC1F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000200000000000000000000000000:0B07CA48F49D189E2E343D83D54784A1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000100000000000000000000000000:BB4977183CE7D829F90C1A4A0C0AD921:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000080000000000000000000000000:A30AAD2751895E667AF64C24F127EE00:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000040000000000000000000000000:1D407E4971F586E8BAFD780411DAB446:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000020000000000000000000000000:287E1CBFA05A25B90B94B0D1769DB4BE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000010000000000000000000000000:FEEE919F6634BFDEFD6950CA84FE7DDE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000008000000000000000000000000:DEBC950100E5BDB2B972D96B110CAAFB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000004000000000000000000000000:7E2B207B3204FF65ABD0E286E8FCFD88:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000002000000000000000000000000:E46FA1ACDA975397F893DA874257B063:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000001000000000000000000000000:48B472378DDB8297A1E70DB24B3B5784:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000800000000000000000000000:51E73F78E9E3DF78C460BD1D1D6F9D02:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000400000000000000000000000:A140D05B56E36B690DE8E5CC7CA2DA96:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000200000000000000000000000:4775063A5B2DB92E0A97A975DFD161AD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000100000000000000000000000:AD6913069340B8B88A42F09975A03E96:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000080000000000000000000000:CE03AA97EC230AF5130F7B49CF11F749:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000040000000000000000000000:CE235004F77A37CA2405AB272AE1F278:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000020000000000000000000000:0207B9546C956A9B96FC6FF8D8B25FF9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000010000000000000000000000:72284643B100DFEDAB7243D372000289:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000008000000000000000000000:2B97D40D51A9C400AC8F72285CB9D947:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000004000000000000000000000:16DEF3EF31FB9E0A9E11FE5DBD10FF6D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000002000000000000000000000:B8C5BEAB5058E1F8F31AC2537DFC2A04:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000001000000000000000000000:96240AFD00164E5BA929C470CC2EDFCD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000800000000000000000000:8255F69C848F0601DFA944E7DAA07B03:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000400000000000000000000:31D19233EB697EC50C087C6761658C22:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000200000000000000000000:0E267CDC580C17C21F207BB6A14A2A61:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000100000000000000000000:84F60557F8302489621586BC45B52D1D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000080000000000000000000:C6D5B38F47BB5298C521E41B9B722B44:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000040000000000000000000:384D3E44D70F9FD1783D7B86DC7C0B79:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000020000000000000000000:542B27EBC9FA37FA8CECF14E73545CB6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000010000000000000000000:04B5915863477F621C976F47ED7A6242:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000008000000000000000000:571E6627E25993D157D7306937A0F62F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000004000000000000000000:A256299F34E93EBEC69E04CFFF3476A0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000002000000000000000000:F202A1227405A4CDFC9308819B189FCB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000001000000000000000000:F99B66FEB8E9FFA89164A8EC1B8F1C85:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000800000000000000000:3C70D7CD09111B15069F54809724F1B0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000400000000000000000:B88FDCFD41AD34AE92091D31E90C585C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000200000000000000000:2A80BE073D50FCF2B7FA44A39F777AE1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000100000000000000000:65F620832AD465A2AA6A14129F382DEE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000080000000000000000:A4518AD23FA96370D83BD3B2FBAA54C9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000040000000000000000:22AB117786B312AD84C9C2CAF1E2C2CF:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000020000000000000000:33C719DCCF25FCF76916B80C632ADD00:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000010000000000000000:7D95F59DB32ECC39D00DA9DF113AA2EF:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000008000000000000000:376278196B5EE68F2B57B51B4D07A849:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000004000000000000000:F6EBAD4990425CD9BBF97D5AC51D33DE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000002000000000000000:2C64F1A0EB9601E7B5A29E9237040E39:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000001000000000000000:0D6E4B7D38620761D65CCDDE9EDDB24F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000800000000000000:FB954442EDC07197FAE86E9A0D714903:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000400000000000000:4B2CC93726DEE48282FA27816FEDC5D6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000200000000000000:75EBA30DFEE4BE2CEFAF7D097D08BE4E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000100000000000000:90A9750293D227B3F75839A1B1B72A1D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000080000000000000:EA6A6BADD96680C06A0F3FF72A89A3B9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000040000000000000:027957EFFC5F8D54F5E31DEFA4EA5B1C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000020000000000000:689E796B7CA20D52ABCA6E02DFF2FA19:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000010000000000000:D0894BC5EC6BB6548C2DEF7D271C5A84:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000008000000000000:B3AD04752FE8B3CED3BC0C721CFFA017:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000004000000000000:75EBEAA918EE7713AB6B555911A8895B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000002000000000000:4507EAC65B6F8825147535212B810659:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000001000000000000:488887A888AD9C4208981298C32C8802:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000800000000000:8516A2448258784F9CE88A4DF07E12BB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000400000000000:34C35EAEF661E815B02FAE1D82A5C6FC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000200000000000:88927ABABC4DCDBE547729DC8486C912:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000100000000000:E3F2B4AD45A40E8F61A1A002EBB1A6B4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000080000000000:7B8C8A12DFFF1B31E9BBBC9AB1BF191E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000040000000000:12896559E9F9818A45895A850949641F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000020000000000:0ABC2B5B0BE224FCC494D1EF9930663E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000010000000000:1975B8F3DBFEF1B3F68150526EFDFD9A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000008000000000:531360071C6EDFCE4194DD34F282687A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000004000000000:D7D44699A83FAA21673C244155E57276:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000002000000000:1AECF6542049C8ADAE288158FAB8797B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000001000000000:EB40D7F5FADCE30126B34463B1FCFB43:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000800000000:FEFA8ED45925FD4F51AA06EADD1D08CE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000400000000:7E36A1A7FC162B85AAC263DCA957F534:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000200000000:E5C330087D678D159C00C27CBBDC9F61:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000100000000:8F56044BB6E9321DADC1F21A70F1E8C5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000080000000:8714D0D553AD80DDCABE3E9DB67CFE11:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000040000000:B72D92FFF02A78AC4682ABAF141D77C9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000020000000:9550FBBFD4A34816E2FD792AC339D49D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000010000000:84981AB5DFBE8422A2086D0E5E470254:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000008000000:7BD5A92C5957B09FA5AA9F1A34E17943:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000004000000:B603FAB9ED51424992A737BBC1E910D6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000002000000:2E396DFC0B28E28353C2F97BA982C13D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000001000000:D4CC605A1C64E8A98592A8CD05AAFED0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000800000:26C58B071D9116B0123CB99734CFAAF2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000400000:3C9D6B460A2364020F55A70E41B5B2E5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000200000:40569C782ACA0CB05042D0F54967545B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000100000:7340B7EB0B49722A28D0F06056D8878C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000080000:8FA7508A26413C633B77FC418AE0EE80:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000040000:4EA014A1F02840246644548A9C09629D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000020000:B44678D49E3F80D998A94CB542CFBF83:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000010000:756FEB41FE20E403C5C1715AB9D0E58A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000008000:F061519982CD7D2C1451CB2BCA567F21:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000004000:43B291C8A4BBF59612F896EF8DE8C801:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000002000:8512D67DA5F121630DF707E1B87901A3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000001000:1CE9CE4393434F7A0BCD3F4424B95575:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000800:8DEE20BD926E0AEA8F5163FCF8D594E5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000400:B504027202FA9A205A36ACFF47E22CB5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000200:3B88E059888E28B7E61F2602A5361A4D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000100:264BE9E31092B5F5FAE3C90A8544E036:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000080:82ED5DDBF256FB53432873A896699723:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000040:AE8D4DC3B948546E1F0DB6173A7DA5D2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000020:01CD700F9FAAD9182FADAA2E62B9814C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000010:000C12107A21E608CFCC1285E1057373:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000008:3FCD4604A02D1142032433FF551F0F23:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000004:D049B0BD078583621E4841BC9F53B11F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000002:BAAEF3F9A301A25EE35FE6D6C054E06C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000001:5A991DB3C1149C0C16A523B8FC413C8D:\ -0000000000000000000000000000000000000000000000000000000000000000 - - - -# First 2 vectors from an expired Internet Draft (which is what I used to -# implement the code). The rest are from NESSIE. -[MISTY1] -0123456789ABCDEF:8B1DA5F56AB3D07C:00112233445566778899AABBCCDDEEFF -FEDCBA9876543210:04B68240B13BE95D:00112233445566778899AABBCCDDEEFF - -0A0A0A0A0A0A0A0A:DAD2CFFB201C00DF:0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A -0B0B0B0B0B0B0B0B:EBCF435B23CFB4C9:0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B -0C0C0C0C0C0C0C0C:92E00981E5350015:0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C -0D0D0D0D0D0D0D0D:CD70199048ADB686:0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D -0E0E0E0E0E0E0E0E:ACAD6C19AE66EB41:0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E -0F0F0F0F0F0F0F0F:4ECFE751E0E6A16F:0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F -1010101010101010:C7A91953216F1B61:10101010101010101010101010101010 -1111111111111111:0227EB3422109682:11111111111111111111111111111111 -1212121212121212:5B88EB8714B2CE08:12121212121212121212121212121212 -1313131313131313:E325B133AB02C021:13131313131313131313131313131313 -1414141414141414:93A4074EE9C38AE3:14141414141414141414141414141414 -1515151515151515:15AB85B70F337868:15151515151515151515151515151515 -1616161616161616:7EFD6E05D384512F:16161616161616161616161616161616 -1717171717171717:C1E46E7B54BAD271:17171717171717171717171717171717 -1818181818181818:956504E0F372D380:18181818181818181818181818181818 -1919191919191919:667C8BB548330E81:19191919191919191919191919191919 -1A1A1A1A1A1A1A1A:1F8787DF7582DCD0:1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A -1B1B1B1B1B1B1B1B:47F4EAF5BA82C610:1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B -1C1C1C1C1C1C1C1C:0F772431C6E54F3C:1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C -1D1D1D1D1D1D1D1D:51CF4361B3EF3EAC:1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D -1E1E1E1E1E1E1E1E:7AC52498328C66BE:1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E -1F1F1F1F1F1F1F1F:9C4E0F782BBBD830:1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F - -8181818181818181:2FFAF44121E4F834:81818181818181818181818181818181 -8282828282828282:4EED79D6916AA112:82828282828282828282828282828282 -8383838383838383:12B62B3C7FCAA24B:83838383838383838383838383838383 -8484848484848484:F7FAF70C7E4ED8B7:84848484848484848484848484848484 -8585858585858585:C58EC8FEE9DD45CF:85858585858585858585858585858585 -8686868686868686:A6159BD7C1E24B82:86868686868686868686868686868686 - -FFFFFFFFFFFFFFFF:651F3092AFA551D0:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - -[Noekeon] -# From the Nessie reference code -00000000000000000000000000000000:BA6933819299C71699A99F08F678178B:\ -00000000000000000000000000000000 - -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000:\ -BA6933819299C71699A99F08F678178BBA6933819299C71699A99F08F678178B\ -BA6933819299C71699A99F08F678178BBA6933819299C71699A99F08F678178B\ -BA6933819299C71699A99F08F678178BBA6933819299C71699A99F08F678178B\ -BA6933819299C71699A99F08F678178BBA6933819299C71699A99F08F678178B:\ -00000000000000000000000000000000 - -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:52F88A7B283C1F7BDF7B6FAA5011C7D8:\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - -52F88A7B283C1F7BDF7B6FAA5011C7D8:5096F2BFC82AE6E2D9495515C277FA70:\ -BA6933819299C71699A99F08F678178B - -[RC2] -# First three came from RFC 2268, the rest were randomly generated by OpenSSL -FFFFFFFFFFFFFFFF:278B27E42E2F0D49:FFFFFFFFFFFFFFFF -1000000000000001:30649EDF9BE7D2C2:3000000000000000 -0000000000000000:2269552AB0F85CA6:88BCA90E90875A7F0F79C384627BAFB2 - -D8886B78E580404D:90748F6F07EF2836:1D -FE9C2CDD8C027870:EC184E6CEC40D9F5:5049 -A7E13BC9F22C595B:67A28EB51250764E:C4F82F -7177755D3F54A920:62A6F69BFE164A05:9190277A -D9DCB373FD4ABCB3:B80190D7B249614B:481B0F86EA -4B138DDE007975AD:7FD56A6AA67F6C83:499825B0D117 -971F30AF097B7350:5DFC9E205A2D14B8:4920D4274A62EA -F95DCF9157489637:4AC1643B949984EA:405F1C56CEFE4013 -1026140C4E7301D1:283EB71029EDE89A:AD6AF2DC8463BAB7C6 -36773B9B092E5FB1:FE60654754ADA82B:3BB04A71CB0D23A7DFCB -CBB90C2F7F42158C:30CFDEFED10675CC:0A6CC3F130AFD069222EEC -B07CDC0A13DD350A:3B050F6208CC43CE:6A9DB0629A46CA98E9F99450 -C0B69D0AD97D154E:BBA1918C34881835:200BCA0DCF0497C3DBF9A025D8 -649B5F71F3B3BDBA:349369793550565D:7C5DD0AC485AD056C57F4B15ABE7 -30B3ED77DBECDF2F:25174AD01E0BE2BC:65D6250D40CEDA1CB7A3CE29414ED4 -E5D64497786FB2D7:BAE8FA177F46151C:56B594BB2938E08B9504D189AD39EADB -2009AF9845F4D0E1:4508CBDEAC304883:48E5FB1C74186717F17C9B7EA8F40827 -8D7BF299E1DD2710:D5C504FF23ADE3A2:2E7C56B9A41B512817B702615EBA38A0 -66E588E1E54E69FA:FB599477D9EF7C14:68229077C5E04998A73CAC26265BC454 -3526264FB3AAD439:789C2F4906D4DD94:B2851A27F152B3B8D21FE19FE080DE93 -51F9D8B75E99850A:992215897C1C4D4E:A63FACCE8ED417ADDBE36262E334C934 -7643ADF384C7D876:280FBCA90127A9B7:68A2CD033B11F329BBF0E952FBDDADEF -61649CC1BB265F04:C04617D4C7F4688B:6562CAA391B7AD91F6F953860C142D53 -7027B6111FE67F27:526E8225707ED477:97FF0C4C1D58254DE89140EECFF8A15B -450500AFA05B83ED:5E55E20A0D0E3226:FDA85236CFEEFF046973CF46C182B41C -51E3A05332220E12:05B42A4CC45321EB:2F1810D1FCFC98C847DA1D21BCA75712 - -# Again, test vectors courtesy of our friends OpenSSL and /dev/urandom. -# Except the first few; I think they're from RFC 2040 -[RC5(12)] -0000000000000000:21A5DBEE154B8F6D:00000000000000000000000000000000 -21A5DBEE154B8F6D:F7C013AC5B2B8952:915F4619BE41B2516355A50110A9CE91 -F7C013AC5B2B8952:2F42B3B70369FC92:783348E75AEB0F2FD7B169BB8DC16787 -2F42B3B70369FC92:65C178B284D197CC:DC49DB1375A5584F6485B413B5F12BAF -65C178B284D197CC:EB44E415DA319824:5269F149D41BA0152497574D7F153125 - -9E1916F381491CCE:172A7A0BA70282E9:C0 -B97800C223082F9F:B5B1708AF59CCAD4:DBEC -F39054061481EB24:64CC1E0066FCA2AA:DA735B -7622BA5D3D51D560:FFCB9EA21917C3DE:0656F579 -A15418BC11B2F0E1:B52821179E5CB9B9:A59FB3DA35 -73B02BE42685EA56:308C21EFE81621EA:32594FCCFFEE -8CD5121F09DB7DFA:70921F59F5CD29AD:80E92B27999910 -532955C8EEBC75CF:CBFBB1E0A1A693F2:925498B73A9CAED6 -BC8B5CF722EEBCAC:F233FBDDC09D9561:3C379D8B11F23CC0F9 -EFABA1B87E0236FE:A573453E1BF7B74B:AED34B49E719D6157F93 -5248601C102C10C0:D96D76C05F5E4478:729B301AFAAB8FCADBEE25 -EF6671A5A29EDEF8:9EC6407003B827B1:982644C13B1AA070437C1144 -5EF9939F903D5AD3:8D9D5B5D12448231:3BADA3BBA56BF23EF64E0D208B -FEF8CD62F9DC8D1E:8FAF5F9D6A4A0A7B:BDD77CE81D8AF0B50ABE418F45F7 -C330D9BDC20D794D:0F74E03240C58D70:4AB4A9A4A31B700ECCB0FF23441F82 -502E1C61223F5522:86CC15281600FA7D:3668476363B42815FF575A65006DAC49 -62ECF065C5723856:5F8E3E9341B32B71:AEE7D59BFFC7FD4A2932C937C7277A2830 -CF8DDCB5035B3CC1:2D688A1A2A8DCA18:3A1CCFABC9F8C46F96FB8B58D02A1F9EC514 -D595EBBAFE479CCC:8AE450DB2A9A7C37:834BC680E250D2A3B5B2D5B03FF14F2F65E412 -9F24230CB25BC86E:EE922AA0AC2EB904:39A787D483A6E52FAEF9FBD2EC3CDF81A39495DA -EE68DE3FEEC31750:E71038E4AB9F475F:DD7ECA8D1145431F60F2B749FB576F82011BB65005 -9464C68A5E6FCE5C:54534C495295FEE4:51FEB601EDA05F5D3D903FA957E6E06B81E640E6DFBE -A91EACB2C38F78EC:997EBFE794F83F65:\ -0EF8C830DDE1838F1554195CAE006E69DD050C255B17FC -170D65C9396BFAE0:3B21E9B59F37FF96:\ -5C47BF0F8E6D0E7A445188E361E4A76A9C48CD9738791293 -D5961EA7B7C02063:15C33DA775B4154B:\ -44822C91949958ADAF7E938395113A4BCE343D39C30B3CBE70 -2C9A50C06A12E865:F060DD9CDBEA5738:\ -284FE5889A02AC1C83F9D1C62AC15AEAA08532EB478447B7A599 -780A3BD50CF78B15:D263CFB83966D499:\ -37F29AA9FDF4758489AD07C168965A73DB335049BDE60400BC19A7 -39EBCCE8CD770C35:BF040B7D806BEDA5:\ -8ED81E58E34274D0B72318A14812D1E50D117437B1F303AC72F75057 -E823EB34847F1551:489177CA2F6E7189:\ -AE591161BDC88AD08FF582EBEDB93A172C235E08E244AACA2F433CF1A5 -3C4DB181401E588C:E2CCD84073236831:\ -D1464349DB7C4D43777B3A44B4DC611C1F4DCCEF296D7A6E38443C773D60 -128787704DDA4240:6BE471CF49A4C1CE:\ -1234D3D3AFB98F7D24D63E3A829D7EBA96A16B516638B79F59F38FD6C75766 -28FE4812E9137CFB:18B5499EF0C1F9B4:\ -FAC10D2B235098D973E8E81997EC9189197DAFE989E4B3A18E6D3C0150BF48CE -725F91D74F3F3C66:F398FC47F4FEA520:\ -4780C11A3CD65D21435AAEC988609495A4DEF6C8FFF6AAE1B26C70BC6C336F73 - -4C706FD69646BA98:5B9A776AEAD6304A:\ -ED7E67F4D658C34693F0962687DB46628587EA2D35DB81C1129F00FA69833E1B -3361F4771047397D:DED25E1BD3872DD0:\ -5DB32571B70E3A66FEAD8ACC3F0C4F3A2A6E41A8ACF3D94E73EA0F91176FC3DB -D840360511EB9840:D95E6398EC528F68:\ -674C6060F45869214A7AA9BF0FA8F54AFCA92D06A0366EA8C4FEF4C8E79A53CB -DBBC3D4D45847930:74A00B919BE23D16:\ -FB0A5141B81EDEAC27DEA6D4789083AA487B7D830E0041E1E2D167A1355BD858 -5FF081C8F197D3ED:48305C0741ECBED9:\ -291FF645CA077953ECE2EF2AE8EA10A127E6D2A1DF4582A5A7B513227C8294C8 -30B8BAE80C26B18D:57F443D4060FAC4D:\ -A967EC9902F212F1D2D6645AB7C81F0DD1BF4439C131AABD7B8233836615F9F4 -E75EBB4AA43E6C45:A29B91450C2A637E:\ -0A30C331D6015E8A0F64E33994263741D996435CFBA3253CBD64B03A5E000310 -B53DD82028EBB35E:39718235AC88956E:\ -1B5E8C38D611847842ACE7CB7CCEDDF152F5043141B462E4704E729C57404D1D - -# All random OpenSSL-generated vectors; not one is in any way official. :) -[RC5(16)] -1CA702F26A04AF21:8105DD6EDD4051FB:2B -78195A51EF592AFF:89055B0265E67032:0957 -5BB2A022E7EDCCBF:94AD2F68A2D3E83C:698855 -3B8B7A2F20DA627F:CB4B25A4A493287F:F62251DF -C450CB97E69F2E94:77644E7454A72221:CB8CE363E0 -B7057F70F43A993B:E411E3023FCA87FC:1FE3BBD63969 -BE9976C68D70D0AA:FDBA816DB72A874C:F9EACED56552BD -6D340411F05E3B31:F58D02EEB481AFB6:BB0C6E15883513C7 -B3844D3B7CAF9F3D:21133B09AABC3C07:3312EEB8E2B619738A -2FBA65761241EAD7:99D16F970CF37B73:9CD7B7EAA3C7C0F2A962 -8B1DC2A2D8E02FC3:4643C45523471F25:347469C239C728FC135965 -A372047B4271030F:731303538F359918:3001E738EC0D082C1A80D84F -4E666F689DB1FF6E:AE11B65FD7E4AB67:7BFF831DE2C51FD9426AB7424A -5D440679051B3A6D:2B4BE8A815F9A35D:3DADAB349343D1CFA3009B49ABE1 -E461164D61914F95:32CF5B9FC95C48CA:D967EE11872B8C04EE0C4BCEE700EB -4AB29FEF7BB5FC5C:2518AA1C85B4600C:32F94338D7D70B4A5537FAEE03730745 -53D49E42AB3AC1FC:02419E4BFDBF550E:1D158F49A2D6878739C61FE6D2E37C11E9 -F99F9DD38CED0DB1:58E4BD6BBAE8565B:95EC4B43FC098B966E151F1B94EDC28D846A -4263C4FE2AB9B990:D267474CE38E6E9C:414326FF6F61C54E2932B56ABADB2496DEBB80 -375AEE48D204DEED:61600764332D10C0:B99CA2E96FB0C85A8633010AA6EC8C3DC6CC0EF8 -02B884BC12569B3F:86B0ED3E4CB4759F:1C4C076CA04C611316AA5D71659F163428479D929B -8AF5B9C53FDAE8B2:37091EFCD093D1D6:EA42742CF00A91F7CD9C63650EF450D20E34732A420C -9C42CAEEA47E2A06:BC1D42AFBE2CB8E5:\ -BEBE3CB5B711C83E150F2DA7A864AE63CF336D9E0EE282 -DD4B4CABDD5D5E35:31076D5D6EA4DE13:\ -3A0603293C5F5A1CCF9DB9337DCA010F243B29A6A2EB3455 -597699EDD1B4DD7D:95FA85725C0AE0DE:\ -00752D67E4E1CCC4ABC7C50B3188181FE664EABF7ED476BC3E -5E2DEED62635DB75:828E88B5D91A7DB4:\ -23B5163E359A7FE8BBD3704F1EA98B712A15FB6FA6D8BFC3AF0E -041BBDF41357E288:2FE24A38A1AE4D61:\ -041C609CFA10BAFD30D34D986B762A959146E7DEE3481DF8A8C70D -E8D46EFBAB44EF65:BA01FBBCF2FE39D6:\ -4CD0194425DF24845BABFB6895BAA18F45C395E8BADC196F36403C30 -0A382E03FB85CFCC:571B98B3E9710D58:\ -7D7CC7017CF9DA5A74E8A7F2D36E5CC016710C43A9CB3C0B9DFB771EED -A3D86E1D88602802:EBBB0C7614414D7C:\ -CBA9B751F404F861E1DA95FFC2D11C686F84D8508D9A1743E5B9A006DA8B -017E4B4EFEF05D71:3EE25FA34042CDE6:\ -28967E8AEBD065D3B5ED27158F953512035515ED3B388E2DA336E9705F16D4 - -9AD01B01AFEA67C0:249B074FC69E1042:\ -3257D40C6B4EBDF8CAEC563CFE94201E1A843B31F2C9B720FC58C8214B7E2C2B -1EE20108D1089F69:28FA504AB46349D7:\ -4120A9CA90A38A4E16E8323E6B9CB1D2CBA0594253AE578A1A64518B32ABCB20 -306786E25C18C9F0:76A525501E857BE5:\ -246F010FB9F2DDD99412824C602C7FB48C9F6A3B81688A4404E1F5EA21296599 -D0FCF3DC590D5A53:91A9699905107EEA:\ -754D9753401A56E2096D71C30102B885159CF5CE7305D93020ECE035869E0BC7 -83D2C97FFECD78A2:95FE3BD241FE9E5F:\ -534F366548F16D3825EDD61EAD00EF650DDC8E040B7955F68D240691AC34F840 -2D7F3F25DE4C0F05:31BD01CB7BA808E4:\ -3B2CCDDFC5371E5F2FF9E119E0E13B730193E563296865BADA20781A2E0FFE2D -140AF01EB286A1DE:098B274A3F2D50EA:\ -DED645862D8B88517F26EC729B8538BB6CE46D869E6D568A20DDC4D253E70749 -DB58306587587FFD:20E71B55168E5ACD:\ -D3C38159C3DB49A62E2369BF4BFEAF9EBDAF8E19B6FE9CB579E52C083FF70AB2 -0A55DD3E3A425245:1489079C596FB1BB:\ -2C15C8A0354DCA1FAF296FBF3FD8E64FD7B9C65EF2EA65B6E216943A551A2CFA -37EC03CAA189CBAE:99FB7B05635AB5AA:\ -8777192F49C195BAACCFF2096964683CFCF0009B2C57477B759F57B1C32C07F9 - -[RC6] -# From the RC6 AES submission package -80000000000000000000000000000000:F71F65E7B80C0C6966FEE607984B5CDF:\ -00000000000000000000000000000000 - -40000000000000000000000000000000:8CF4A482491CD207289D810C2BB29930:\ -00000000000000000000000000000000 - -20000000000000000000000000000000:80EF45D42327E3AED39CD45C4E3E6197:\ -00000000000000000000000000000000 - -10000000000000000000000000000000:F28D8DF12AC0837A0919254980B674F9:\ -00000000000000000000000000000000 - -08000000000000000000000000000000:9FB984DCBA5B0BDFFCFD97B02B648800:\ -00000000000000000000000000000000 - -04000000000000000000000000000000:46F7091CD30CCCF570AFC116F8446492:\ -00000000000000000000000000000000 - -02000000000000000000000000000000:77B517AA59EC7D3381188936BDEACCBD:\ -00000000000000000000000000000000 - -01000000000000000000000000000000:40D5D97CFFDC390AC35C2734F44CF9FF:\ -00000000000000000000000000000000 - -00800000000000000000000000000000:B5A6B7C92EFCB55D349B63066AC1E009:\ -00000000000000000000000000000000 - -00400000000000000000000000000000:152F0F5EA10FAFD0E63494C5FBDCC469:\ -00000000000000000000000000000000 - -00200000000000000000000000000000:61F669BF2B32CD27CF6278392C988510:\ -00000000000000000000000000000000 - -00100000000000000000000000000000:53A63CEE35DF00C73577B9255F55C855:\ -00000000000000000000000000000000 - -00080000000000000000000000000000:6E46B92E23344321A19321DF136CE9C5:\ -00000000000000000000000000000000 - -00040000000000000000000000000000:22F1261FAB993350F6ED41DA5D69B9B8:\ -00000000000000000000000000000000 - -00020000000000000000000000000000:0901BC0A1DB5CC87CDA91EF5F5FF46BC:\ -00000000000000000000000000000000 - -00010000000000000000000000000000:2EE65B377C16BE9517BA12F63189DE64:\ -00000000000000000000000000000000 - -00008000000000000000000000000000:74BD6FAA83668952E2D546A66B7A8243:\ -00000000000000000000000000000000 - -00004000000000000000000000000000:08FB4817F040B54E995B722C483C399E:\ -00000000000000000000000000000000 - -00002000000000000000000000000000:5630614200E248D1644B58E3694D8BA6:\ -00000000000000000000000000000000 - -00001000000000000000000000000000:659A3A27C9F3B0BBC65FC4C15D19051E:\ -00000000000000000000000000000000 - -00000800000000000000000000000000:FF3B39DCB459EE4FFAFCAC8C7331A6BE:\ -00000000000000000000000000000000 - -00000400000000000000000000000000:19F0727A66BD056DCB5541EDE14B4662:\ -00000000000000000000000000000000 - -00000200000000000000000000000000:D0DE4B5B30A294C8A3838B70387C93B6:\ -00000000000000000000000000000000 - -00000100000000000000000000000000:37BDB0A854686484E5EB52239D6C16C4:\ -00000000000000000000000000000000 - -00000080000000000000000000000000:3CC7113F6E6833C9BFB4EE07371488A5:\ -00000000000000000000000000000000 - -00000040000000000000000000000000:A56737C45AC4DBF2417243C2E3B40133:\ -00000000000000000000000000000000 - -00000020000000000000000000000000:B0A5C817B1E2C307A4BBF8258DF5F41B:\ -00000000000000000000000000000000 - -00000010000000000000000000000000:F2112329EFA070476BD515679C887FC6:\ -00000000000000000000000000000000 - -00000008000000000000000000000000:1AD2023CEC89B9436D03CCB9893C21C2:\ -00000000000000000000000000000000 - -00000004000000000000000000000000:6BA3E774FCDD02379C6CF2F7BF28B914:\ -00000000000000000000000000000000 - -00000002000000000000000000000000:A2F8638B0A4014F0641A3CB8A13B5ED9:\ -00000000000000000000000000000000 - -00000001000000000000000000000000:877FEDF7CACCBF0BD7BB5BB236BA96D5:\ -00000000000000000000000000000000 - -00000000800000000000000000000000:C9298A9A01C1F276E2E1E04226BF3D5C:\ -00000000000000000000000000000000 - -00000000400000000000000000000000:4E01DB16789DE364085416DE25871A59:\ -00000000000000000000000000000000 - -00000000200000000000000000000000:FD3B5DA07D0054DD10FFB79440AB3A00:\ -00000000000000000000000000000000 - -00000000100000000000000000000000:A2508E8BD26E2FB9944C27F04D60FAA0:\ -00000000000000000000000000000000 - -00000000080000000000000000000000:E9A43055D71335545A6A514F08B868BB:\ -00000000000000000000000000000000 - -00000000040000000000000000000000:587D5B71730D0B59BFBC0A93675B32F3:\ -00000000000000000000000000000000 - -00000000020000000000000000000000:90076413F890E8FFF04F1031C779C91F:\ -00000000000000000000000000000000 - -00000000010000000000000000000000:FAC9F46E9A1346646EE5C7CED45A84B9:\ -00000000000000000000000000000000 - -00000000008000000000000000000000:471F0738C4F4937E4253161F28086803:\ -00000000000000000000000000000000 - -00000000004000000000000000000000:A76F843041C4AED8241850B316D252A3:\ -00000000000000000000000000000000 - -00000000002000000000000000000000:5C5FD0334332A39924DB0CC7F0867C2E:\ -00000000000000000000000000000000 - -00000000001000000000000000000000:07B6EDDEF27EE890EBC8FFA187D84438:\ -00000000000000000000000000000000 - -00000000000800000000000000000000:11BB0F2DC24461F5E70D2830ED8A7463:\ -00000000000000000000000000000000 - -00000000000400000000000000000000:0AB1A99B63CB8E07290AC60D0A4F1FF3:\ -00000000000000000000000000000000 - -00000000000200000000000000000000:A26B0AFC4D55E7D61518C54E7C1BED01:\ -00000000000000000000000000000000 - -00000000000100000000000000000000:50C8C2B68E06CFCB98785E5AD3D5B09D:\ -00000000000000000000000000000000 - -00000000000080000000000000000000:ACA305D5D0D1E74FC51AC8C92A72FEA7:\ -00000000000000000000000000000000 - -00000000000040000000000000000000:5AF970E570BC1652C82FB4B0945D5410:\ -00000000000000000000000000000000 - -00000000000020000000000000000000:00C224433138C1A4BD60571AA35580BC:\ -00000000000000000000000000000000 - -00000000000010000000000000000000:4EBE79726DAAF4702B075A5898B26075:\ -00000000000000000000000000000000 - -00000000000008000000000000000000:8109EE81B1679CEC42DB80D9530AD2F6:\ -00000000000000000000000000000000 - -00000000000004000000000000000000:403B11B8181D460E9AC0172CBE6DD45F:\ -00000000000000000000000000000000 - -00000000000002000000000000000000:CDE78E92B5A84717AD9B4162E3B14BFA:\ -00000000000000000000000000000000 - -00000000000001000000000000000000:A173D6BEBAA05EC54A47C7E554415963:\ -00000000000000000000000000000000 - -00000000000000800000000000000000:EF31AD6CBFA7857ACF0C28294BDEF8B8:\ -00000000000000000000000000000000 - -00000000000000400000000000000000:209A30C46E41540C7B0AC8C4822DA253:\ -00000000000000000000000000000000 - -00000000000000200000000000000000:AF770103EC57EBEB913C83D99F58B6AC:\ -00000000000000000000000000000000 - -00000000000000100000000000000000:17D0C179EF34DE7F8EC7698A5371EC00:\ -00000000000000000000000000000000 - -00000000000000080000000000000000:E0285A3F97607250CDB89BF92CBD1F41:\ -00000000000000000000000000000000 - -00000000000000040000000000000000:D76BA3CE5E4DC974D4803ADB9F821A57:\ -00000000000000000000000000000000 - -00000000000000020000000000000000:B66579D4159CF0B0114011C0298EBDA3:\ -00000000000000000000000000000000 - -00000000000000010000000000000000:B9761796C787B51852E4C3130B8B662D:\ -00000000000000000000000000000000 - -00000000000000008000000000000000:D5C638801B97A1C2584ED42132F44109:\ -00000000000000000000000000000000 - -00000000000000004000000000000000:E54A021B145B7B7761487BCDFD0B032F:\ -00000000000000000000000000000000 - -00000000000000002000000000000000:3EB3AFE73582EFAB0396108B5E0CDEEC:\ -00000000000000000000000000000000 - -00000000000000001000000000000000:463E10507A26B708A1DFF3763276F5C9:\ -00000000000000000000000000000000 - -00000000000000000800000000000000:0EEBF8D85AE19EB24C810CEF565FA77B:\ -00000000000000000000000000000000 - -00000000000000000400000000000000:86CA894EEFD1CEAAEA70E00CD14645F6:\ -00000000000000000000000000000000 - -00000000000000000200000000000000:989B0FC1FFE4BA6F7CC0F1EDEEB5B932:\ -00000000000000000000000000000000 - -00000000000000000100000000000000:42916ED17877E58933D3D8CEDA8DD7B3:\ -00000000000000000000000000000000 - -00000000000000000080000000000000:88C0369158F2FEFFB4CF14130CE10B3B:\ -00000000000000000000000000000000 - -00000000000000000040000000000000:DB8976E1DDA56553340236F47F8E9CEF:\ -00000000000000000000000000000000 - -00000000000000000020000000000000:C6207672C411F088ACAD20814C66254A:\ -00000000000000000000000000000000 - -00000000000000000010000000000000:A792CF60F44A15D63FB293F9FCF879AC:\ -00000000000000000000000000000000 - -00000000000000000008000000000000:8F733746F91273D97ADA41D3A7D5A9E3:\ -00000000000000000000000000000000 - -00000000000000000004000000000000:5DA8F191833E6198689710D5A03EE262:\ -00000000000000000000000000000000 - -00000000000000000002000000000000:D6DB9CEB7E821F6DF4CB1E99105E07AA:\ -00000000000000000000000000000000 - -00000000000000000001000000000000:05F308FFAEA3E1E754974435CE0B77C3:\ -00000000000000000000000000000000 - -00000000000000000000800000000000:73B8639AAD53AFA1B24165E0C9FD397E:\ -00000000000000000000000000000000 - -00000000000000000000400000000000:AF45FDC65FD5F153E29A8D5032650AAD:\ -00000000000000000000000000000000 - -00000000000000000000200000000000:A8BB045FB5B867E85FCAD328E13756C9:\ -00000000000000000000000000000000 - -00000000000000000000100000000000:DD053128C46C78C4414CE3234C16AEB3:\ -00000000000000000000000000000000 - -00000000000000000000080000000000:B0C82152D1D9E21D7C3F33E1FC9B4D68:\ -00000000000000000000000000000000 - -00000000000000000000040000000000:11B56480D5C718A77A1BEA30CC3A53CF:\ -00000000000000000000000000000000 - -00000000000000000000020000000000:92C99F843674DED7F20A258C57253726:\ -00000000000000000000000000000000 - -00000000000000000000010000000000:63B218D069CE9CAF52EF97614BDACFF9:\ -00000000000000000000000000000000 - -00000000000000000000008000000000:76096721043A016C095D95DD02980289:\ -00000000000000000000000000000000 - -00000000000000000000004000000000:87AF16066939B8C4D90E242917DB05CF:\ -00000000000000000000000000000000 - -00000000000000000000002000000000:F7E0C931B7204308AB5020F106BBA0EF:\ -00000000000000000000000000000000 - -00000000000000000000001000000000:C697B3602711749580713737729E7049:\ -00000000000000000000000000000000 - -00000000000000000000000800000000:AF314640B147719EC1B4ABE27CDB58F5:\ -00000000000000000000000000000000 - -00000000000000000000000400000000:B67DAC5BF73AF7546D2FDC3BC142708D:\ -00000000000000000000000000000000 - -00000000000000000000000200000000:AC53D20E3C06FF82DE52470BCCE1B283:\ -00000000000000000000000000000000 - -00000000000000000000000100000000:7D65047AF522F01856FDD83A9AAA147A:\ -00000000000000000000000000000000 - -00000000000000000000000080000000:709D6454033E3FCF8962CAD39B0DC4BD:\ -00000000000000000000000000000000 - -00000000000000000000000040000000:7B8058E46789EF51D18700511D20CB70:\ -00000000000000000000000000000000 - -00000000000000000000000020000000:738088C404D8850041AD6B690CC6B65A:\ -00000000000000000000000000000000 - -00000000000000000000000010000000:7DFDFD55B53D4CD704F96CF93311AFC4:\ -00000000000000000000000000000000 - -00000000000000000000000008000000:1DBE62C57AF741D9F2FBF9A340E772C9:\ -00000000000000000000000000000000 - -00000000000000000000000004000000:E7349BAB7CB458736436943DB0CC411D:\ -00000000000000000000000000000000 - -00000000000000000000000002000000:64E229BF2AF893510358CB0DBEF7E97F:\ -00000000000000000000000000000000 - -00000000000000000000000001000000:4C632CF8C75AD0DDE8316A7B35F871CC:\ -00000000000000000000000000000000 - -00000000000000000000000000800000:2517115CB13E681F0EEA2206C26AD5C4:\ -00000000000000000000000000000000 - -00000000000000000000000000400000:8ED5E9D7005D980B078E7F58B47E591E:\ -00000000000000000000000000000000 - -00000000000000000000000000200000:8DBCD253443534B2B8BC698A03166ABE:\ -00000000000000000000000000000000 - -00000000000000000000000000100000:02F34EAB6CC1DBC8809F3D0EB80FA493:\ -00000000000000000000000000000000 - -00000000000000000000000000080000:47E5B71162F75B84D7A699A31FFA29DE:\ -00000000000000000000000000000000 - -00000000000000000000000000040000:B6C1EA2B410D1704058E905EB967C503:\ -00000000000000000000000000000000 - -00000000000000000000000000020000:4383238CE44E30ECDFC90A70EA4C9E96:\ -00000000000000000000000000000000 - -00000000000000000000000000010000:9314DFBB44D530768B159DAABCBD439F:\ -00000000000000000000000000000000 - -00000000000000000000000000008000:12D7C80912C299C4F668278FA494D580:\ -00000000000000000000000000000000 - -00000000000000000000000000004000:49FB1EACCA3B1743E15014010E9963DF:\ -00000000000000000000000000000000 - -00000000000000000000000000002000:0DF48D3B128AA63496DBE0CD11083495:\ -00000000000000000000000000000000 - -00000000000000000000000000001000:13240392854D6290A4BE08999843105B:\ -00000000000000000000000000000000 - -00000000000000000000000000000800:3D4B8705340C3225CE5A724917BA92B4:\ -00000000000000000000000000000000 - -00000000000000000000000000000400:425DCCF406AD46F2F565BBBC72FE234B:\ -00000000000000000000000000000000 - -00000000000000000000000000000200:88C09509CBB95339726C196E63346418:\ -00000000000000000000000000000000 - -00000000000000000000000000000100:90724430636A3DB610F25332BE2FEBE6:\ -00000000000000000000000000000000 - -00000000000000000000000000000080:044B4FAED3EA17338630E828B9960CA7:\ -00000000000000000000000000000000 - -00000000000000000000000000000040:4A59243AEB65BAA4F7432498FD87EF62:\ -00000000000000000000000000000000 - -00000000000000000000000000000020:4324DF8817589D894674B3F311256E9F:\ -00000000000000000000000000000000 - -00000000000000000000000000000010:0527269F9FA9E9CC01A03CFA59FD3854:\ -00000000000000000000000000000000 - -00000000000000000000000000000008:96CA56F9EFAA393F521679E0B6ACF231:\ -00000000000000000000000000000000 - -00000000000000000000000000000004:DA7A328F8A5BF03DD42BC52DEC5C4B15:\ -00000000000000000000000000000000 - -00000000000000000000000000000002:5FE3D4C46DB294523166AB46208E0711:\ -00000000000000000000000000000000 - -00000000000000000000000000000001:2519B9240C21C1F980FB722AD8CB793E:\ -00000000000000000000000000000000 - -80000000000000000000000000000000:A600B72AAC4DFB5271DC45F563FAE428:\ -000000000000000000000000000000000000000000000000 - -40000000000000000000000000000000:A7B1D7CBFBAB741B41744FF9100529B4:\ -000000000000000000000000000000000000000000000000 - -20000000000000000000000000000000:D9AAAA866BAB0D68AFFC39CF9888B8C6:\ -000000000000000000000000000000000000000000000000 - -10000000000000000000000000000000:32B0048A204036E1B45DE285E87E57B8:\ -000000000000000000000000000000000000000000000000 - -08000000000000000000000000000000:7267FEE7E04ACEB47C8FCC4096720484:\ -000000000000000000000000000000000000000000000000 - -04000000000000000000000000000000:FF0C22F756C2F5EBDC6610F085D74383:\ -000000000000000000000000000000000000000000000000 - -02000000000000000000000000000000:A6264FBCB2926C6181AA6F5551244B2F:\ -000000000000000000000000000000000000000000000000 - -01000000000000000000000000000000:D3A5B8FB3CBAA98419D394BB4C66B9D7:\ -000000000000000000000000000000000000000000000000 - -00800000000000000000000000000000:F9FE5D1BA274021F041023CD9AC20399:\ -000000000000000000000000000000000000000000000000 - -00400000000000000000000000000000:7307F7DEBBEFD911B0B590A0667E093D:\ -000000000000000000000000000000000000000000000000 - -00200000000000000000000000000000:4D8A3B987A1E66E72B3FFA520DDD57BB:\ -000000000000000000000000000000000000000000000000 - -00100000000000000000000000000000:0F444C0A7334947DBCB43D72F897E72F:\ -000000000000000000000000000000000000000000000000 - -00080000000000000000000000000000:448F29B848D7CFDA617D8A64AC518B0C:\ -000000000000000000000000000000000000000000000000 - -00040000000000000000000000000000:261B4EA7CD31F46C4FBF684395ED7FB8:\ -000000000000000000000000000000000000000000000000 - -00020000000000000000000000000000:25FA5AD347C57047749B15B97FE8ABE6:\ -000000000000000000000000000000000000000000000000 - -00010000000000000000000000000000:F7E13200EBA3F6E8E9F37B092B907961:\ -000000000000000000000000000000000000000000000000 - -00008000000000000000000000000000:9C934B121791B35AFE509A0D5A04BBF2:\ -000000000000000000000000000000000000000000000000 - -00004000000000000000000000000000:3C0F9D40F9608091CDFD831DD6D215EA:\ -000000000000000000000000000000000000000000000000 - -00002000000000000000000000000000:97D7D2AF2F635D43E536E0A5AA18C61E:\ -000000000000000000000000000000000000000000000000 - -00001000000000000000000000000000:1E41EB291C07ECF0908D49A9CBFAB57E:\ -000000000000000000000000000000000000000000000000 - -00000800000000000000000000000000:C9CCEB56AF06C494582F2C966EEEFD07:\ -000000000000000000000000000000000000000000000000 - -00000400000000000000000000000000:4B21E0D2942CCD21501F698ACA866BD0:\ -000000000000000000000000000000000000000000000000 - -00000200000000000000000000000000:BA0DC6ACC50486AD389EF65B5677DE19:\ -000000000000000000000000000000000000000000000000 - -00000100000000000000000000000000:EB80DE49F3D5605D9C3CE426EC80FAFD:\ -000000000000000000000000000000000000000000000000 - -00000080000000000000000000000000:D6984153BF67512062F876966BD190F3:\ -000000000000000000000000000000000000000000000000 - -00000040000000000000000000000000:AC789910F3458D59C5090BE936C6682A:\ -000000000000000000000000000000000000000000000000 - -00000020000000000000000000000000:5D64A268407F791DBDAFD0E5C6399A64:\ -000000000000000000000000000000000000000000000000 - -00000010000000000000000000000000:2B4F25AC69BA3AD941BBD4E1ECC75E79:\ -000000000000000000000000000000000000000000000000 - -00000008000000000000000000000000:FB943544937F3A34DFA0548C0257CE53:\ -000000000000000000000000000000000000000000000000 - -00000004000000000000000000000000:125A04339B61FA79FA3757576EC4FAA1:\ -000000000000000000000000000000000000000000000000 - -00000002000000000000000000000000:160B88277AC4C81603BD37ECA4FD73DC:\ -000000000000000000000000000000000000000000000000 - -00000001000000000000000000000000:4D65B09355F893E26C85E85955767604:\ -000000000000000000000000000000000000000000000000 - -00000000800000000000000000000000:1EE56A4AB4811DC3B17401CBAA8F5A15:\ -000000000000000000000000000000000000000000000000 - -00000000400000000000000000000000:6214728772DBD2CDA3124BA8BA2ABF38:\ -000000000000000000000000000000000000000000000000 - -00000000200000000000000000000000:328B60EDD6FD150934A30100286E07B5:\ -000000000000000000000000000000000000000000000000 - -00000000100000000000000000000000:2C976B076409056EA7489C7658BB34B9:\ -000000000000000000000000000000000000000000000000 - -00000000080000000000000000000000:D592EBBA861BBCC369DA99F832B0A773:\ -000000000000000000000000000000000000000000000000 - -00000000040000000000000000000000:E6F48FB373724153FFFC51758527C6E8:\ -000000000000000000000000000000000000000000000000 - -00000000020000000000000000000000:6C397B0BF5992740BD6A787F16BD511C:\ -000000000000000000000000000000000000000000000000 - -00000000010000000000000000000000:2CA57FEE77351E747799C8855780C63F:\ -000000000000000000000000000000000000000000000000 - -00000000008000000000000000000000:194C42AA377D361BBDF283693171FFDB:\ -000000000000000000000000000000000000000000000000 - -00000000004000000000000000000000:61832D4C637CCE219D2FBB36ACF7992E:\ -000000000000000000000000000000000000000000000000 - -00000000002000000000000000000000:945D2B20B9FD48F1961D04DBBA1708B5:\ -000000000000000000000000000000000000000000000000 - -00000000001000000000000000000000:EC152810AA2771AA5E871949BF12B6F1:\ -000000000000000000000000000000000000000000000000 - -00000000000800000000000000000000:E87712941A7EE80510D53509311196B7:\ -000000000000000000000000000000000000000000000000 - -00000000000400000000000000000000:776820A0500F2D90D4DF36F50C395674:\ -000000000000000000000000000000000000000000000000 - -00000000000200000000000000000000:64958DB0758C1E80FCFCBB9FC6195E6D:\ -000000000000000000000000000000000000000000000000 - -00000000000100000000000000000000:37F27D1D918D463B0668A470DE898AB9:\ -000000000000000000000000000000000000000000000000 - -00000000000080000000000000000000:AA71549A4B290289C7060D76FF5A20BC:\ -000000000000000000000000000000000000000000000000 - -00000000000040000000000000000000:95EF0C6213EB7CF56186D76BFA617174:\ -000000000000000000000000000000000000000000000000 - -00000000000020000000000000000000:2F6A4BD794419F9F34CFD0FED825B6CD:\ -000000000000000000000000000000000000000000000000 - -00000000000010000000000000000000:882C2B9E19854367479F0EE25D086F4E:\ -000000000000000000000000000000000000000000000000 - -00000000000008000000000000000000:D246FD18C625C1846741544EC4CE60B6:\ -000000000000000000000000000000000000000000000000 - -00000000000004000000000000000000:9EAF5A8C5673BE9F488D5C7B6521BD8C:\ -000000000000000000000000000000000000000000000000 - -00000000000002000000000000000000:9E7A685F738CB391FAE6ED184087630C:\ -000000000000000000000000000000000000000000000000 - -00000000000001000000000000000000:5E0AC39E49825B2424C7263AA8824232:\ -000000000000000000000000000000000000000000000000 - -00000000000000800000000000000000:0B06C4805E20BC990E601E5610A1BEAD:\ -000000000000000000000000000000000000000000000000 - -00000000000000400000000000000000:78A99615E809CA88F6F6C6E9AFA532FF:\ -000000000000000000000000000000000000000000000000 - -00000000000000200000000000000000:9ACF5CC740AA37663000C89C5F8EE8D8:\ -000000000000000000000000000000000000000000000000 - -00000000000000100000000000000000:35D76EBA8F59CA6A78FC2942AC5F7F43:\ -000000000000000000000000000000000000000000000000 - -00000000000000080000000000000000:39AD4C9AE2B4D46EF693303B54B53546:\ -000000000000000000000000000000000000000000000000 - -00000000000000040000000000000000:EA0833009C96171EAA2BFDEF50DEE473:\ -000000000000000000000000000000000000000000000000 - -00000000000000020000000000000000:868A8E86F525E50D3FF33A094A3AE119:\ -000000000000000000000000000000000000000000000000 - -00000000000000010000000000000000:3DBB9A366A2A3A660F027191B3613B95:\ -000000000000000000000000000000000000000000000000 - -00000000000000008000000000000000:E4CDE1FC6D811CDC25328CDAC8D0AD2B:\ -000000000000000000000000000000000000000000000000 - -00000000000000004000000000000000:332010FB6E39F82F00DC1FF6B6F8CFE6:\ -000000000000000000000000000000000000000000000000 - -00000000000000002000000000000000:00293BFE5BB3DA2D3652D4E06EE361B2:\ -000000000000000000000000000000000000000000000000 - -00000000000000001000000000000000:9BC99B26E0114669EFE218BF014A15AA:\ -000000000000000000000000000000000000000000000000 - -00000000000000000800000000000000:43C358B6DAB480D0EAEB96DCE57E5B85:\ -000000000000000000000000000000000000000000000000 - -00000000000000000400000000000000:9842333B8E9FCEC35A8779CCCA7D025A:\ -000000000000000000000000000000000000000000000000 - -00000000000000000200000000000000:5A47529DB0D103DCC34D2ADD3A19C53F:\ -000000000000000000000000000000000000000000000000 - -00000000000000000100000000000000:8F705A89D4C6EE7E27A14792EC49B652:\ -000000000000000000000000000000000000000000000000 - -00000000000000000080000000000000:6D4B9905F05096B23D6C13565588F012:\ -000000000000000000000000000000000000000000000000 - -00000000000000000040000000000000:23DDD34E8598F013C0559B3312341DBA:\ -000000000000000000000000000000000000000000000000 - -00000000000000000020000000000000:7B5AE9F49ACC68F2FEECB2823C3868A9:\ -000000000000000000000000000000000000000000000000 - -00000000000000000010000000000000:09F8EED21EB8EE33C02B90637EF24E6B:\ -000000000000000000000000000000000000000000000000 - -00000000000000000008000000000000:00A2E8DB0417F61EAABAD6E9BF13E4BC:\ -000000000000000000000000000000000000000000000000 - -00000000000000000004000000000000:CF5DB5AA31599EEDB5A3143E08D23672:\ -000000000000000000000000000000000000000000000000 - -00000000000000000002000000000000:E09B69B9C0E3365C0EDA54AB3310A5AC:\ -000000000000000000000000000000000000000000000000 - -00000000000000000001000000000000:33650F826366AEC9A09D7D038708737D:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000800000000000:E84A1EE9A00BA66952B24A6E6AD0C002:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000400000000000:11B1E0969380A0A24E876D6470872796:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000200000000000:D88FCA95FA29C35FDCD9467715F102D7:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000100000000000:A78B86EF0E6959C08F70C810AF8E99CD:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000080000000000:A83E4F27E34360C8033CBC304EBBDF0C:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000040000000000:0AA5B4F05A0B42358ABF19F6E55F66D2:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000020000000000:5C2AC2588982E3CCE99994101FC0A21A:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000010000000000:60A3E107674A0B7F7B931C6EC35BC747:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000008000000000:123D266844DFFF63DA93C4D806325660:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000004000000000:08170908422DCB46EEB046F3D7E4AE3A:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000002000000000:13754D93DC4807807A9535388553FB47:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000001000000000:DFA9741DD3883E39FED5716A706A65EC:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000800000000:CA5C3DCA7BE84DCBE33BF5238EA3F4B0:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000400000000:6EBEED89B297D6918FA5CEAB7A0E985E:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000200000000:3F79AB2119DEBCC44675E340C25B7D85:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000100000000:A7739DE45E6051EBBDC2F0365859BEE0:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000080000000:CEA0C2B3C653B7553605BACCFDD62DF8:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000040000000:7F9742EEE96193CA8981739712F73045:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000020000000:F0103101F4EC92C0CB48145FF34CF51F:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000010000000:55A8A3B02951558F343C160E7F86288D:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000008000000:3F9206DB4F3083E8F6EEC33CFE2C1BBF:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000004000000:F012723B2F08A28A5E24BB959FA5EFDD:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000002000000:1A28919DB3AB4A53D5A0E1E566982DF7:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000001000000:E17C960B43B7E926C83DF749C6A5532F:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000800000:16DF63CFB77D31CC782C0ED3190136AD:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000400000:1643D697AC4075EC6FE609472FA4C678:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000200000:AD76BF6119FFC36369980D3466CF6570:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000100000:554E53F64D99F89A5BAA7FD5B70E0BD1:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000080000:BDC10FF10FA5E3A41B096C870666DECB:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000040000:6B12E2408646228502972EA7580B05E1:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000020000:B9583810806D5A491B2F69FFF2D2A327:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000010000:E8E9F4A50B834DDEF307503AECD8A3BC:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000008000:D7F4A1C7F7954E789BD61007866FFA80:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000004000:953D7D0FD6DDD25CA25FA23C9322339F:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000002000:CD4E607B4324CEC7372DE19CEA5AEF78:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000001000:9B5C29709E0F0E586383EAB29E884009:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000800:28B822B70E7430E44182C2BBAED4D88D:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000400:D2325AF7325642138C355BC4ACAF938F:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000200:F4D1A000EC3A370B5A6386355CEE010C:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000100:F9D198D9FDC650AFA72320AD4826506B:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000080:5024595BEB4DAA2239D495BB023757EA:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000040:8A6CDA8F518CA2FB0A860C5567C60104:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000020:D6D90C40B07164436453E8312A633109:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000010:3E73330AE10DF1B8B81D9CA72221E192:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000008:5029AE60BF118AA69E47B235C3551490:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000004:7299F32614EA0BD98D2375CA643EC47F:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000002:DF4A7B804A4D3A13113529C509F8BAF6:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000001:3EFC3791618B7D832BFA6AE030C09122:\ -000000000000000000000000000000000000000000000000 - -80000000000000000000000000000000:30F5C183F6C81A72F39B618B086CC2DE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -40000000000000000000000000000000:DB11AFAAB4946101911DF90AFED8AC0D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -20000000000000000000000000000000:1487FC298DBDA9C520CC5851B17D4079:\ -0000000000000000000000000000000000000000000000000000000000000000 - -10000000000000000000000000000000:2321D38ACCAAEA5DBA682E7BDCE095AB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -08000000000000000000000000000000:C4DB11197AE15CF9DFE7D0F3457EC94C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -04000000000000000000000000000000:1054BFF1A1564172460A0194B57EBE6C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -02000000000000000000000000000000:2340568047F06139D03FE0A3C75CDBF1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -01000000000000000000000000000000:3FA18912A1C05E244663BD9A9B5D4046:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00800000000000000000000000000000:7220FA3179267839BB03569E43056BE8:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00400000000000000000000000000000:C7D49A32A6B93D1323EFD7B99FC0A5F7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00200000000000000000000000000000:C30D9FFB19F2090109AD40FDAB73176B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00100000000000000000000000000000:54CA1E1FD38713CD454A07339385739F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00080000000000000000000000000000:034516E874272A5A325EB9D54831B6F7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00040000000000000000000000000000:42650A58269E311A3B4F7BC414D1488A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00020000000000000000000000000000:8D4916888A02DC18E1EE95B005C58E18:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00010000000000000000000000000000:B192C07FB927170DF62D6C44819BCD6F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00008000000000000000000000000000:973C835241ED02CBE39699AF2FFC150A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00004000000000000000000000000000:F9630817124B0787237D76697D66341F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00002000000000000000000000000000:51E98EC760A328E35B8D77289726AFC3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00001000000000000000000000000000:FC2E80BE856AE38BE0682E8C273616AE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000800000000000000000000000000:A440C29E6F4D6C3540D6C8DB6B02DE4F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000400000000000000000000000000:E04312CB849684A440114B40C242F1E0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000200000000000000000000000000:2186FC5F5947AAF6626DCAAFFFB47829:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000100000000000000000000000000:D357AAA0B4548EB23E9CF1B5D33487C3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000080000000000000000000000000:02239634F2A7CB81D1CACA279659C637:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000040000000000000000000000000:2EF92962D2F7D0A4B075992C3F8FA9C3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000020000000000000000000000000:F197F67C65438532F17DDBE41F87BA17:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000010000000000000000000000000:6A9387BE237C03056921A9F85AB7A394:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000008000000000000000000000000:5BE801A4767AD211AF20B295E4EB9F72:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000004000000000000000000000000:D38007A33C45B295D06FA99660E8C6E4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000002000000000000000000000000:C87746C9F5405E9BBBB53D17544AD016:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000001000000000000000000000000:142BB703DC8B4E870165F987B94A3D06:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000800000000000000000000000:3C25BD8199CD580D684BD7EC53601EED:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000400000000000000000000000:283CC22E28A7E48B9FB34F5454A1EB92:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000200000000000000000000000:BE6FA799CE3E6BB239EE35FEF2744A14:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000100000000000000000000000:99BF63EEB37E1C7E8686B28A0F13E120:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000080000000000000000000000:01308C588EC24E97B75A1D32F8C3E770:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000040000000000000000000000:F820CB9552F6800049E51037DD238E7B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000020000000000000000000000:BBC26F6098B0F4D2235FC139041EB78F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000010000000000000000000000:836E3B15AA777DEA46606FCC7C2FAB65:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000008000000000000000000000:AAB58970926FE6CFC4017F23FB44C287:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000004000000000000000000000:1DEEF417C2192D50694D1DF67F960E6E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000002000000000000000000000:4E4EA43FAD14AF207C311D98A1DB4B24:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000001000000000000000000000:E0731CEF0FAF7AE36B4FCB9E1AB95488:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000800000000000000000000:C6FF60796386126058694CAA35BFF163:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000400000000000000000000:AEA22D742BA1919C43E0A42719B1A9C8:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000200000000000000000000:843793D2EF2427D745B9B35BC0AD0555:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000100000000000000000000:3C805CED7CBDEF4F896113D95D4BD975:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000080000000000000000000:5157A8B222432635BEBD29BDAA9C490B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000040000000000000000000:D7A88C8E82EB2F2BB827E56F33E7B1C3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000020000000000000000000:DA55FBE256EF08F565A70D870B969B27:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000010000000000000000000:951F6F33FD34701F7C79FC94EFB119CF:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000008000000000000000000:BE2BD92D9F3DBFD3225B7488FFEC09C1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000004000000000000000000:3C560897DF4AC5F3C33818E2597E90B0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000002000000000000000000:52C4110C36C90E3A54921B3F1AAB66C0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000001000000000000000000:9DCED6AECC426A4DFB6B648490A7D002:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000800000000000000000:F2631BD62B10761B923DD415ADCCC59B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000400000000000000000:2B1E1C0D54367440A122D31058057A42:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000200000000000000000:544C870FBF43AB7CFCF114E00B05D974:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000100000000000000000:1E8B06D5FDF11BF70AD8F8748F7F6C33:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000080000000000000000:582BE6419DB732C646B80E8C8966C7CC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000040000000000000000:2AB0AEAAF06EAD0BA24CCDD46BCAC4D2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000020000000000000000:32ABA6C20CFFB3D81A4D3288BF4BDFB1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000010000000000000000:AB8F8FB0A91662A4E3C54C395BDD6711:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000008000000000000000:F154670ADDE837119060F4ECE9D7B636:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000004000000000000000:64CE436BCC7AAC1DE95D6CECC28C46C2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000002000000000000000:17A6371CFEAD87CBB6A545D9F9973155:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000001000000000000000:532AC851EF076F571D6B1C9418D7E2E9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000800000000000000:8CA057121128472C01EF7F6EC39EC63F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000400000000000000:283DF89A06A93492543BCA4D5DB109E9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000200000000000000:2A07389C26321F9F7AF46897D80E3CCF:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000100000000000000:1473BBE037060B30273908A495C2F622:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000080000000000000:C937D109334A404B55CEE675092A2D2C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000040000000000000:0CAA09146104F478E231268F03EA4FB9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000020000000000000:7FCA0541DC09F947145B69C93E0E382F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000010000000000000:16739ED42CEF90CA03B686FF13A29A6C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000008000000000000:911BB934A7D6ED03A5AF9DF7A28E8129:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000004000000000000:3974614212BA6A30AC9541B7776CC29B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000002000000000000:8D17F86E8423398AB06E739B112048FB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000001000000000000:76A0AC6091D6DAF57C303E02D5AE8F97:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000800000000000:98C8AD3C3AB0EFB14DF2C96EC4A5923C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000400000000000:3AF0B1C79917659CF8E5B91D4ED31ED3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000200000000000:0F6C180C0D449B35A3C7026E513DA0D9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000100000000000:646F2B75831CA1CB950B5CC79F320F6F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000080000000000:2877CB6CFED0900A25FE65367B8DF5DC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000040000000000:5122F1C85198E03E269D90BDA811A8AD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000020000000000:7FEC2A1C88A6E72D22FE71B513B1C34D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000010000000000:1176120721DC2C20A1ED31F1572ECBB8:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000008000000000:932B4B9980CF29A3EC9B982A2C0215CE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000004000000000:BFE6D2C8354E83D26AEF557E2AD1C2EF:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000002000000000:FE4C742734F30C62964D5917C5B63723:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000001000000000:1663275B61F3FACEB365D56D8B51AE33:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000800000000:32EB39C865C149CF81E27D8AE0A91BDB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000400000000:0229846F9F8150006A27D62E60A762DE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000200000000:B88BACF0AFFAA2C5CAAC4C7036785A74:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000100000000:C61820350B4DAF92077DB18B2563C050:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000080000000:D4ABF17AA49B24F71DD5151339951D1B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000040000000:D7C632D6C753246A176B659DBCEF61D8:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000020000000:1F34C055C434A025ADD592A5397D2D35:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000010000000:C399CB8A665E35A23F660C2F8C3D8FE9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000008000000:09E11B6D984BD70089CB2360448A4B60:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000004000000:E243F7445FCCF52878F8B83BE492EABA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000002000000:389F39873BDF652BC4F9043E30AD7CE0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000001000000:0669295AA4EA970860CF675D6469F765:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000800000:35C5F9A85171DC889BFD5332E6C8E0D7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000400000:E07600A31EA2F2F781EBC12A3DDC936E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000200000:FB4CBEC86740711F59995673EB73ADE8:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000100000:E572F84C3AEFB9DFCE042B39E68EA160:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000080000:A87AB39149865D45B1E43D35D8C65001:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000040000:4E5215E398BD5D0F7223348581D18158:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000020000:2524BA2E297D0D2B26797441A7CDB01E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000010000:3DCE8EB2F6FBDBB7A33A26FF6485D4AE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000008000:28EC64C3D0C3AA145F21F4067322573B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000004000:EC6E0084F98693A0D3AD1E4790716ACE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000002000:F09BD8B4646FBAC5556B4F0B816B35EB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000001000:9CC8722245E3CD23DF490353DCACC9E0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000800:C73465C832CC907D4F79035E67F9AE29:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000400:F311B9CF73CF5A8FAFB9DBEECC67B9E1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000200:56494DBCF09A6019B1C6CEE3DB0C844B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000100:0364CB9DAF55D765BC5CCD46B58FA718:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000080:4DAFE2AAED6E49C98A7B8B979C32E6DB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000040:2F5BECD180A9449CE7A1ECCCB34057B1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000020:1C8B0DF1D643B9376B3E40B847850DFD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000010:674A46D61796154EC5DE8EC7EDA4BD3A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000008:8F111A48A7C598EFF1CBCB43414A7791:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000004:CBD9C99FB47C9518151222D6F8B07446:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000002:D449C5BE9B01257543932AF7B8777F69:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000001:283D43A1CEA6187A31581D1606BB8B7A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:1AD578A02A08162850A15A1552A17AD4:\ -80000000000000000000000000000000 - -00000000000000000000000000000000:912E9CF1473035A8443A82495C0730D3:\ -40000000000000000000000000000000 - -00000000000000000000000000000000:3D3E851A80ABAF221761931747473048:\ -20000000000000000000000000000000 - -00000000000000000000000000000000:96CFC0510819EEB7FCDF2CC7BEABEF77:\ -10000000000000000000000000000000 - -00000000000000000000000000000000:FB787268EC3C583A3685973B861AEF8D:\ -08000000000000000000000000000000 - -00000000000000000000000000000000:2AE927525C73250D954B619EDAC718BE:\ -04000000000000000000000000000000 - -00000000000000000000000000000000:00298D1DB6C6DA02E28E49C63B4A5795:\ -02000000000000000000000000000000 - -00000000000000000000000000000000:7E32F418910C9AC8701292B5F96346F3:\ -01000000000000000000000000000000 - -00000000000000000000000000000000:9FC6C21A562A049AD320EAA0D43C1998:\ -00800000000000000000000000000000 - -00000000000000000000000000000000:7A0BD66C361D641DFD313CBE23F69A57:\ -00400000000000000000000000000000 - -00000000000000000000000000000000:C2E2CAD226964597A98C388B27127EA1:\ -00200000000000000000000000000000 - -00000000000000000000000000000000:B7F4837AC6F1F808D8EBBF1D08077FB4:\ -00100000000000000000000000000000 - -00000000000000000000000000000000:0495E1AEDA7A9EC9ACBF38FE41CB08FA:\ -00080000000000000000000000000000 - -00000000000000000000000000000000:E001020E1D0C05BE072695F3F48F07B2:\ -00040000000000000000000000000000 - -00000000000000000000000000000000:608CE7A12C9EEC348FF674FB9F8D1972:\ -00020000000000000000000000000000 - -00000000000000000000000000000000:916BEC60955C1A3540B4C245F4D3B94B:\ -00010000000000000000000000000000 - -00000000000000000000000000000000:B2B91EC4EFE12CD4EDDA71ED52B278B1:\ -00008000000000000000000000000000 - -00000000000000000000000000000000:0CA46CF5275313AB3D9494A5BB7D786A:\ -00004000000000000000000000000000 - -00000000000000000000000000000000:E679B7C6F661AE52BA5199EC24D4E542:\ -00002000000000000000000000000000 - -00000000000000000000000000000000:043FAB3A991B3FEC872AC747640731CB:\ -00001000000000000000000000000000 - -00000000000000000000000000000000:EF8C38151A67B9A51E0935BBA14D9E22:\ -00000800000000000000000000000000 - -00000000000000000000000000000000:2D4515423CFCF372B5632C2879A71267:\ -00000400000000000000000000000000 - -00000000000000000000000000000000:2420A9327B9D2426C19F755BC3D8BD88:\ -00000200000000000000000000000000 - -00000000000000000000000000000000:2151D88643EE81D8D23B44D22E2B0D65:\ -00000100000000000000000000000000 - -00000000000000000000000000000000:AEFA6F32E963CB2D4D89E673B503DDAC:\ -00000080000000000000000000000000 - -00000000000000000000000000000000:43DBE4D6B1BA3F05F16D73B2F80A12DF:\ -00000040000000000000000000000000 - -00000000000000000000000000000000:ED8C9B25558CAD4EF9469364BE97CA30:\ -00000020000000000000000000000000 - -00000000000000000000000000000000:BDE5B1DC5053F94670599CBE6845604B:\ -00000010000000000000000000000000 - -00000000000000000000000000000000:4529434499884BE7C4E6D009F3D5353E:\ -00000008000000000000000000000000 - -00000000000000000000000000000000:B3D4C642173189B9295912E860CF6880:\ -00000004000000000000000000000000 - -00000000000000000000000000000000:651F1B1629535AD03D5C296D560FDE1F:\ -00000002000000000000000000000000 - -00000000000000000000000000000000:8A380594D7396453771A1DFBE2914C8E:\ -00000001000000000000000000000000 - -00000000000000000000000000000000:395FE0214AC536428C86737514B6237F:\ -00000000800000000000000000000000 - -00000000000000000000000000000000:ACEFAC47A7AB6E635EA9F85EF74DEFF3:\ -00000000400000000000000000000000 - -00000000000000000000000000000000:8C208E26E96D9DFA248010D8C1CFDB3B:\ -00000000200000000000000000000000 - -00000000000000000000000000000000:D3AE8AE99B3A84C3721EAA57C8EB17B1:\ -00000000100000000000000000000000 - -00000000000000000000000000000000:40D8DA37A8A6591A203F2A38AB05A08D:\ -00000000080000000000000000000000 - -00000000000000000000000000000000:F0580D0B864E8C03638A33499B36C9A5:\ -00000000040000000000000000000000 - -00000000000000000000000000000000:10F19634C2D1006B0C208AA303065B0F:\ -00000000020000000000000000000000 - -00000000000000000000000000000000:7D43298935D0AF6DB498542752666C99:\ -00000000010000000000000000000000 - -00000000000000000000000000000000:456AD1F19D18900B4F85EB64E06DF643:\ -00000000008000000000000000000000 - -00000000000000000000000000000000:08C83A53955102F6E60C2CB0F6C02443:\ -00000000004000000000000000000000 - -00000000000000000000000000000000:351C1035006BC7475DF60694859BB491:\ -00000000002000000000000000000000 - -00000000000000000000000000000000:BB47464DFF62381AD4A93684D00A817F:\ -00000000001000000000000000000000 - -00000000000000000000000000000000:514AC91B28081BD0E0CAE22D766257DF:\ -00000000000800000000000000000000 - -00000000000000000000000000000000:7758C19B083A62E6F2CAAD2B4C3DF4DC:\ -00000000000400000000000000000000 - -00000000000000000000000000000000:46B352EAC71542E417619E0360221673:\ -00000000000200000000000000000000 - -00000000000000000000000000000000:648D51C6F9522FE38108BBFD34015F22:\ -00000000000100000000000000000000 - -00000000000000000000000000000000:DCD800CC104B9C098AB4B931C7538F00:\ -00000000000080000000000000000000 - -00000000000000000000000000000000:E40601C1632937FA769C58BE63DEB056:\ -00000000000040000000000000000000 - -00000000000000000000000000000000:BC968175089F3864C81124A55AA445EC:\ -00000000000020000000000000000000 - -00000000000000000000000000000000:05479ACFA5A7C6BC89FE432D8D25A366:\ -00000000000010000000000000000000 - -00000000000000000000000000000000:8DDF91E221B4C2043C079F5F0ED63EA7:\ -00000000000008000000000000000000 - -00000000000000000000000000000000:66C47E3E339FFD404A61547E54ED0F7F:\ -00000000000004000000000000000000 - -00000000000000000000000000000000:3D622A36A3375D2EFFF3B49363F25755:\ -00000000000002000000000000000000 - -00000000000000000000000000000000:C2E42DDC662F226D09908E2CFDD03D32:\ -00000000000001000000000000000000 - -00000000000000000000000000000000:3221BC8032E72E0DE7580480A99DFD7D:\ -00000000000000800000000000000000 - -00000000000000000000000000000000:C65A142D036E99D1A4DA370D964A8A44:\ -00000000000000400000000000000000 - -00000000000000000000000000000000:E9C03F4840645726563582AA30464D1E:\ -00000000000000200000000000000000 - -00000000000000000000000000000000:93C2F8237D526E910F007FA0CF0608A8:\ -00000000000000100000000000000000 - -00000000000000000000000000000000:6F3A45184B87581E98B7B0D873F8B315:\ -00000000000000080000000000000000 - -00000000000000000000000000000000:D3569BAB0FDD360451E113895B39D0E2:\ -00000000000000040000000000000000 - -00000000000000000000000000000000:4002FF10DDB6FCB6669AE3FED696B2EC:\ -00000000000000020000000000000000 - -00000000000000000000000000000000:B265C44F675800A3B498FFA91C440654:\ -00000000000000010000000000000000 - -00000000000000000000000000000000:092E77F2537EE742D627EA8628E473E9:\ -00000000000000008000000000000000 - -00000000000000000000000000000000:441859995F05E1C06D118CFFB389C9CE:\ -00000000000000004000000000000000 - -00000000000000000000000000000000:844480BB205810808DC1F87C2B5281E9:\ -00000000000000002000000000000000 - -00000000000000000000000000000000:4B2E7C3B31CFC0CA5B51EA589DFFC9AC:\ -00000000000000001000000000000000 - -00000000000000000000000000000000:D55D552EA89C267FF3B0AF688CF00D78:\ -00000000000000000800000000000000 - -00000000000000000000000000000000:6AD19E9DD39381C8A02F3CC6F60C8048:\ -00000000000000000400000000000000 - -00000000000000000000000000000000:271ED37DB771414743EB781B2B315841:\ -00000000000000000200000000000000 - -00000000000000000000000000000000:ED0A833C87FE6CDC56E021BCD3099508:\ -00000000000000000100000000000000 - -00000000000000000000000000000000:6DBE8FEEB66CF747FFEC4E6D3D2D6BB0:\ -00000000000000000080000000000000 - -00000000000000000000000000000000:79460469EFEA89FA576B526B17709D4E:\ -00000000000000000040000000000000 - -00000000000000000000000000000000:5C3C35EC3D15CFAE719221549293A6AC:\ -00000000000000000020000000000000 - -00000000000000000000000000000000:607106E18F8C8A6E725AF44A491D891A:\ -00000000000000000010000000000000 - -00000000000000000000000000000000:1C22A5627309A238E2CE5A39BE370243:\ -00000000000000000008000000000000 - -00000000000000000000000000000000:FB6D4F017D84E9B74C2A59204A2EA0D6:\ -00000000000000000004000000000000 - -00000000000000000000000000000000:B66A30712DB3BD6B580678BDA72CC5B5:\ -00000000000000000002000000000000 - -00000000000000000000000000000000:59C93B2A53BE699840E29D78ACF05DE0:\ -00000000000000000001000000000000 - -00000000000000000000000000000000:AD37DFE5DCBB5A50228537BF24ED0159:\ -00000000000000000000800000000000 - -00000000000000000000000000000000:C9FAB85DCB8DA12A7C9416B267F21486:\ -00000000000000000000400000000000 - -00000000000000000000000000000000:EC797A0F6EBED4C257BC7FC1D7BD0100:\ -00000000000000000000200000000000 - -00000000000000000000000000000000:629D633D7A7C345A3A3CF66565E298E1:\ -00000000000000000000100000000000 - -00000000000000000000000000000000:859D400CC95F29E7131561F4D7E4DD12:\ -00000000000000000000080000000000 - -00000000000000000000000000000000:932CFF2E8A828C61BA537E186F559E93:\ -00000000000000000000040000000000 - -00000000000000000000000000000000:62FA5692938CB84279C7E399BA10E08D:\ -00000000000000000000020000000000 - -00000000000000000000000000000000:50321207B2A375B12F4630F3F1909B08:\ -00000000000000000000010000000000 - -00000000000000000000000000000000:63978A72D0ACAF85676EAA2D1EE01F3C:\ -00000000000000000000008000000000 - -00000000000000000000000000000000:20721CCA68AE0451687D82534A360173:\ -00000000000000000000004000000000 - -00000000000000000000000000000000:9223A844EAB1CA5D3A43EBC4C5CF01C8:\ -00000000000000000000002000000000 - -00000000000000000000000000000000:70E162CC61AC398CF4D9DBE62FD653CE:\ -00000000000000000000001000000000 - -00000000000000000000000000000000:082CED7A4969FD3C8131BF9AE57754DB:\ -00000000000000000000000800000000 - -00000000000000000000000000000000:169070D4658D94C12041D14EC60A2B0A:\ -00000000000000000000000400000000 - -00000000000000000000000000000000:960E45070B5BA767F1A3117851ECF9DA:\ -00000000000000000000000200000000 - -00000000000000000000000000000000:4AAAA999C2421953E3607CA202D4C1DE:\ -00000000000000000000000100000000 - -00000000000000000000000000000000:E4B97E5B2BA83D2038B5D08EB792F92F:\ -00000000000000000000000080000000 - -00000000000000000000000000000000:ECBC7F9C422FC676152CC7E40391D730:\ -00000000000000000000000040000000 - -00000000000000000000000000000000:55EBABC43A33305FB82B39A88A737FFF:\ -00000000000000000000000020000000 - -00000000000000000000000000000000:C1BDA064749B2B7A9E9378137462F800:\ -00000000000000000000000010000000 - -00000000000000000000000000000000:BDDD0163E4CEAC2C614ABDA9EBE15F3D:\ -00000000000000000000000008000000 - -00000000000000000000000000000000:B767CF0E6717B409743AE41C56A2054D:\ -00000000000000000000000004000000 - -00000000000000000000000000000000:AD897CFAED8FBBD9A3006F7EB2A7C601:\ -00000000000000000000000002000000 - -00000000000000000000000000000000:2929929D821D010A1A30E9CF4415F809:\ -00000000000000000000000001000000 - -00000000000000000000000000000000:0C861D39741060051855648B385708B5:\ -00000000000000000000000000800000 - -00000000000000000000000000000000:4BA018EA1AFF5C0A9CF368592B08FD34:\ -00000000000000000000000000400000 - -00000000000000000000000000000000:4377CD44B655A0ABC40E5B9D3A480EC6:\ -00000000000000000000000000200000 - -00000000000000000000000000000000:2F604E94C9CD1DCB730AB0AF407FEDBD:\ -00000000000000000000000000100000 - -00000000000000000000000000000000:44A3514094941B7E497BCFE0D746BA48:\ -00000000000000000000000000080000 - -00000000000000000000000000000000:1235A968A7D12BA7042E7E63A897DBED:\ -00000000000000000000000000040000 - -00000000000000000000000000000000:0BA061C7AD274E004B2E06D3D5FC784D:\ -00000000000000000000000000020000 - -00000000000000000000000000000000:E0DB8CE28D1C2F6B692B230A7AB0CB44:\ -00000000000000000000000000010000 - -00000000000000000000000000000000:ED4BBD535080655AF3F4D71709B1B8D5:\ -00000000000000000000000000008000 - -00000000000000000000000000000000:92D183FBE0BD07A0884EBD1963A193BE:\ -00000000000000000000000000004000 - -00000000000000000000000000000000:995BB9E75386C99DA3038C3C6340C838:\ -00000000000000000000000000002000 - -00000000000000000000000000000000:4914DA6C7A8E1AB8297A9D280DE576F9:\ -00000000000000000000000000001000 - -00000000000000000000000000000000:6415185D85078CE80F46C6E09EDB8B78:\ -00000000000000000000000000000800 - -00000000000000000000000000000000:8B2908466F8BD3C1C3A4A5EAFCC0FF92:\ -00000000000000000000000000000400 - -00000000000000000000000000000000:425BF2FCF5DD8B0013773F9A0DC09B0D:\ -00000000000000000000000000000200 - -00000000000000000000000000000000:9AC35220BE56E453B73CD887B299D06E:\ -00000000000000000000000000000100 - -00000000000000000000000000000000:41900EF8223D019F1BC3E8EA68FC763C:\ -00000000000000000000000000000080 - -00000000000000000000000000000000:9D294A574144109A9C6DE8E90EE517B6:\ -00000000000000000000000000000040 - -00000000000000000000000000000000:4146D6BB7AE455D93EAF43753C7AE693:\ -00000000000000000000000000000020 - -00000000000000000000000000000000:4155B7D12FD12F96FD39C576FDD41422:\ -00000000000000000000000000000010 - -00000000000000000000000000000000:1AF1E634B06211668CE2410D5EDCA968:\ -00000000000000000000000000000008 - -00000000000000000000000000000000:815739510622BFE08EEE06B772368524:\ -00000000000000000000000000000004 - -00000000000000000000000000000000:E2F7D8411181A21B02C1466E750056C2:\ -00000000000000000000000000000002 - -00000000000000000000000000000000:13095792D8B1D771378839C912CA3C41:\ -00000000000000000000000000000001 - -00000000000000000000000000000000:8301730C7D5FEFC416BEEC1104C51E36:\ -800000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F7EF83BDD4C3D5B30E805C351DB87200:\ -400000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:A236EB8595FDF9239C658D58342EF566:\ -200000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:236397EB9EEDA5EA8BF4A42864A5A39F:\ -100000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:21C3DD416D64F6055C8C3977EEFB4652:\ -080000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:59128F63BD9D834C3EECA5A5299417D1:\ -040000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:0F95FA4C48DE95391B45A460B92B22BF:\ -020000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5073FABD5FA03D153108B9A5F2128C78:\ -010000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B83872427919126F2C976D45872B7596:\ -008000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:73F8E6C4181758AFA29945E970C8F854:\ -004000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B72DC39B9A72EFFA047E3657B1F02B1B:\ -002000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:081F1C50BF964CCC01949363A1A1C76C:\ -001000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D4A2AB8B904BE542386CC2342AC354D6:\ -000800000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BC94C45B53BB5281BFF16F7BC7CCD26E:\ -000400000000000000000000000000000000000000000000 - -00000000000000000000000000000000:7D976240134D43279AB809A3EC1BAB8E:\ -000200000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BE18D342080322DBBCEDBB83C7F11CA5:\ -000100000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D1359D29060E0003C78066A900C90C00:\ -000080000000000000000000000000000000000000000000 - -00000000000000000000000000000000:FD0A7E670B7E9B57C913D38E4649715E:\ -000040000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C9DFB5B1CB3E079CFC027E67DA61EC2A:\ -000020000000000000000000000000000000000000000000 - -00000000000000000000000000000000:10FDD69900FBC470499EDF0AFF655430:\ -000010000000000000000000000000000000000000000000 - -00000000000000000000000000000000:565721A361F5F0EB44366DEC1D6841BE:\ -000008000000000000000000000000000000000000000000 - -00000000000000000000000000000000:07AD173E39A769D345277F4CFD16BBA8:\ -000004000000000000000000000000000000000000000000 - -00000000000000000000000000000000:8E89B6B70A10D1866ED4D139A0E6565C:\ -000002000000000000000000000000000000000000000000 - -00000000000000000000000000000000:88A431DD4CBBD94778AE53A36EE246DE:\ -000001000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F4C8E31B64506E9BDE6BB682DBCEF50A:\ -000000800000000000000000000000000000000000000000 - -00000000000000000000000000000000:5B0E256E4EAB25AEC08CD2CE5547334D:\ -000000400000000000000000000000000000000000000000 - -00000000000000000000000000000000:EDBAA578C13D7D215057EAD4F03B9E1C:\ -000000200000000000000000000000000000000000000000 - -00000000000000000000000000000000:7EA37DB8EB1B362E370A43DF1ADB2F0A:\ -000000100000000000000000000000000000000000000000 - -00000000000000000000000000000000:8B7C67AE8F749C4EFB7418788D369DEC:\ -000000080000000000000000000000000000000000000000 - -00000000000000000000000000000000:34D3A7E87A4B1B3FAC60672A3D82F40D:\ -000000040000000000000000000000000000000000000000 - -00000000000000000000000000000000:4FE628152A1D46CF6DA78D5F17255877:\ -000000020000000000000000000000000000000000000000 - -00000000000000000000000000000000:3460A571D035B6DA52AA8E59702B79C0:\ -000000010000000000000000000000000000000000000000 - -00000000000000000000000000000000:CA2375E2E96AB28C7FC3E61B6561B07C:\ -000000008000000000000000000000000000000000000000 - -00000000000000000000000000000000:7E33319A69017428DDBD979D3F6982C6:\ -000000004000000000000000000000000000000000000000 - -00000000000000000000000000000000:49DA8B8AD80A6BBA1003FF6B8D06E3D8:\ -000000002000000000000000000000000000000000000000 - -00000000000000000000000000000000:CCE4C841B39187943DCCA5EB8BBF1221:\ -000000001000000000000000000000000000000000000000 - -00000000000000000000000000000000:3B42FA9129BF36F87E445589460A19BD:\ -000000000800000000000000000000000000000000000000 - -00000000000000000000000000000000:3E397A22C64A8C09B5B59A9D397B0A96:\ -000000000400000000000000000000000000000000000000 - -00000000000000000000000000000000:159AB9C871FB3EB373A94721E9F0743A:\ -000000000200000000000000000000000000000000000000 - -00000000000000000000000000000000:9C2DECEEFEDF2475C26EFFEA3A0E2920:\ -000000000100000000000000000000000000000000000000 - -00000000000000000000000000000000:0FCC4399113E6BF62A23F657BEF97224:\ -000000000080000000000000000000000000000000000000 - -00000000000000000000000000000000:2FCA4167B034D9EDAC4E12828B911600:\ -000000000040000000000000000000000000000000000000 - -00000000000000000000000000000000:3F9434872C4E49EB8718EDB8896CFF2E:\ -000000000020000000000000000000000000000000000000 - -00000000000000000000000000000000:8168025815D16028078007C9E1370331:\ -000000000010000000000000000000000000000000000000 - -00000000000000000000000000000000:F0FBF790B49553EC3963805CC2F6AA7E:\ -000000000008000000000000000000000000000000000000 - -00000000000000000000000000000000:951C45D26A548A9A6152CCBC00D3C6FA:\ -000000000004000000000000000000000000000000000000 - -00000000000000000000000000000000:845DCC97B1F8CD3254D2B29A59C7AE41:\ -000000000002000000000000000000000000000000000000 - -00000000000000000000000000000000:6694A168D387E4FB3291A376B938136D:\ -000000000001000000000000000000000000000000000000 - -00000000000000000000000000000000:9569359A00659B9645565857398C982F:\ -000000000000800000000000000000000000000000000000 - -00000000000000000000000000000000:417C97D7F56216FFEBE64A73F8D81168:\ -000000000000400000000000000000000000000000000000 - -00000000000000000000000000000000:8C46288B3314B9E1BC91E3C901C784A8:\ -000000000000200000000000000000000000000000000000 - -00000000000000000000000000000000:8EB78926977246F186274D88A4B0E6B3:\ -000000000000100000000000000000000000000000000000 - -00000000000000000000000000000000:51E819059AB0325A2DF7F8CF49A54353:\ -000000000000080000000000000000000000000000000000 - -00000000000000000000000000000000:56A59894FC1972B03D66D6C43688138B:\ -000000000000040000000000000000000000000000000000 - -00000000000000000000000000000000:CB772637B59AD2330ACC8CC2FA7A338B:\ -000000000000020000000000000000000000000000000000 - -00000000000000000000000000000000:1E3759E5BBE19EA0F66FBB0702F07440:\ -000000000000010000000000000000000000000000000000 - -00000000000000000000000000000000:2112CFD246447D95F1A6BFF65A044121:\ -000000000000008000000000000000000000000000000000 - -00000000000000000000000000000000:8A7E580BAC4406B297E12B472C2748E3:\ -000000000000004000000000000000000000000000000000 - -00000000000000000000000000000000:349ABE7C34357C7C719BD48AB62DF95C:\ -000000000000002000000000000000000000000000000000 - -00000000000000000000000000000000:5EDB9089B865DAC899854DACE9DBBDBC:\ -000000000000001000000000000000000000000000000000 - -00000000000000000000000000000000:C82372837C0B459699779683785CE09C:\ -000000000000000800000000000000000000000000000000 - -00000000000000000000000000000000:B26532F7C0FDFF76BFADD7178E7A2A7A:\ -000000000000000400000000000000000000000000000000 - -00000000000000000000000000000000:965F80C599BF6AA85CA2199C785EDAF1:\ -000000000000000200000000000000000000000000000000 - -00000000000000000000000000000000:8434DFE0C8717514FB0F8A4FF46930B6:\ -000000000000000100000000000000000000000000000000 - -00000000000000000000000000000000:10D701937E2944C7B48BAA32DA64C6A5:\ -000000000000000080000000000000000000000000000000 - -00000000000000000000000000000000:9A401E466C3686609B7B92FC6C57EA3B:\ -000000000000000040000000000000000000000000000000 - -00000000000000000000000000000000:E3442053C50265AEBEFD327633E449B1:\ -000000000000000020000000000000000000000000000000 - -00000000000000000000000000000000:7DF5EC480DEFA928687A35116989A7E2:\ -000000000000000010000000000000000000000000000000 - -00000000000000000000000000000000:EB2D38038A867146E3999D3E4DACE2BD:\ -000000000000000008000000000000000000000000000000 - -00000000000000000000000000000000:AE420A68558A2A50085331D8C46D7685:\ -000000000000000004000000000000000000000000000000 - -00000000000000000000000000000000:049B78384DE81BB815C48CC565DC1029:\ -000000000000000002000000000000000000000000000000 - -00000000000000000000000000000000:38EDCB5D37E043621F1EB80C78E40657:\ -000000000000000001000000000000000000000000000000 - -00000000000000000000000000000000:928C462D2AE8B7B45C252D0CAE80B34C:\ -000000000000000000800000000000000000000000000000 - -00000000000000000000000000000000:B3AD5D661D6DACFD57C214FDB9384491:\ -000000000000000000400000000000000000000000000000 - -00000000000000000000000000000000:9785657218402C1F3D1A40E73B015359:\ -000000000000000000200000000000000000000000000000 - -00000000000000000000000000000000:302355F21D129456A3EC58CD4C74D334:\ -000000000000000000100000000000000000000000000000 - -00000000000000000000000000000000:7322A935E1F65E2F341F778D0A55DAC0:\ -000000000000000000080000000000000000000000000000 - -00000000000000000000000000000000:7EEEF0009743F18E1E08F5CB02CFA104:\ -000000000000000000040000000000000000000000000000 - -00000000000000000000000000000000:82FA95B00BA5C8D71CB372895E91F7AD:\ -000000000000000000020000000000000000000000000000 - -00000000000000000000000000000000:44E308A9BAE6315936931C0D6F3472A4:\ -000000000000000000010000000000000000000000000000 - -00000000000000000000000000000000:A0F7760CB5F12B2F7F7451688DCC6DB3:\ -000000000000000000008000000000000000000000000000 - -00000000000000000000000000000000:249CBF1A9027A9D4A049DCC61C100631:\ -000000000000000000004000000000000000000000000000 - -00000000000000000000000000000000:AE5191679DB49836EBD11781E1A9E809:\ -000000000000000000002000000000000000000000000000 - -00000000000000000000000000000000:6F0F72E56952895F7425A34EB97D0D41:\ -000000000000000000001000000000000000000000000000 - -00000000000000000000000000000000:E4C8937EA026250290E85A2AA4B3A338:\ -000000000000000000000800000000000000000000000000 - -00000000000000000000000000000000:0D1B7815F62D8C6DB79E9755EB5CC047:\ -000000000000000000000400000000000000000000000000 - -00000000000000000000000000000000:3B8DA219500F670D2D32C753F613E646:\ -000000000000000000000200000000000000000000000000 - -00000000000000000000000000000000:DC16F91F486975C2762AAEF8E4C66543:\ -000000000000000000000100000000000000000000000000 - -00000000000000000000000000000000:7CC222B3C5866AC0F27A60C9D9713981:\ -000000000000000000000080000000000000000000000000 - -00000000000000000000000000000000:B7F625FC185B3ACEF820AF59570370FD:\ -000000000000000000000040000000000000000000000000 - -00000000000000000000000000000000:8AA59EA7476AFE267D7745A2A5E1D0CB:\ -000000000000000000000020000000000000000000000000 - -00000000000000000000000000000000:DDB9E4AA397029E10ED5F1984513280B:\ -000000000000000000000010000000000000000000000000 - -00000000000000000000000000000000:C92B81F3061A4ABC6C35D1B0AF2BA410:\ -000000000000000000000008000000000000000000000000 - -00000000000000000000000000000000:05F510BA96377001A23093980C02FBCD:\ -000000000000000000000004000000000000000000000000 - -00000000000000000000000000000000:A22D14EBC78B338735CA0AAD155B0114:\ -000000000000000000000002000000000000000000000000 - -00000000000000000000000000000000:C562318B01D5235CCD4DC3D3A8B10DA0:\ -000000000000000000000001000000000000000000000000 - -00000000000000000000000000000000:FA248CAA2F7C4B029054A31917BE9B47:\ -000000000000000000000000800000000000000000000000 - -00000000000000000000000000000000:FCC4E2E3C6E5DB8DECBF2493E3A52B9A:\ -000000000000000000000000400000000000000000000000 - -00000000000000000000000000000000:C5D23718F33ADC9F8B3B35263E47248A:\ -000000000000000000000000200000000000000000000000 - -00000000000000000000000000000000:773E59C9CA8EFD081E1CFD4F3DF4BC16:\ -000000000000000000000000100000000000000000000000 - -00000000000000000000000000000000:9A5E5AB516ECEA600952D25684DFF5E9:\ -000000000000000000000000080000000000000000000000 - -00000000000000000000000000000000:4EB9B9CC17E48F68423C884D64091022:\ -000000000000000000000000040000000000000000000000 - -00000000000000000000000000000000:0CCD75BECA8406EBF53CB0ABB1B46B23:\ -000000000000000000000000020000000000000000000000 - -00000000000000000000000000000000:0242108DABD2ED9886E8ABD70AA97B29:\ -000000000000000000000000010000000000000000000000 - -00000000000000000000000000000000:C52A6EB2958C995465C4F870F1A8269E:\ -000000000000000000000000008000000000000000000000 - -00000000000000000000000000000000:5FD2C7F3C81B013B96EC3ACBB0688175:\ -000000000000000000000000004000000000000000000000 - -00000000000000000000000000000000:1E63A0B10B0293A8572FD7749ACB9A53:\ -000000000000000000000000002000000000000000000000 - -00000000000000000000000000000000:9E1D466FA752C13AF4296CFFB8566DB2:\ -000000000000000000000000001000000000000000000000 - -00000000000000000000000000000000:BA1A69D7AD2869734A4954553D4EF249:\ -000000000000000000000000000800000000000000000000 - -00000000000000000000000000000000:EC2E7D615474B0B08D47AFCBE4FD8402:\ -000000000000000000000000000400000000000000000000 - -00000000000000000000000000000000:5C295AA2183B5FB9498094DB774244D1:\ -000000000000000000000000000200000000000000000000 - -00000000000000000000000000000000:1C5A17D1BE0D9EDCF339DB3D2631F236:\ -000000000000000000000000000100000000000000000000 - -00000000000000000000000000000000:CF6E9758B39149E3E29FB66CD58D0976:\ -000000000000000000000000000080000000000000000000 - -00000000000000000000000000000000:4F3FF2CAB95F678D85207691BFDAB811:\ -000000000000000000000000000040000000000000000000 - -00000000000000000000000000000000:463F1FCDF4A918300A93D7BED72F788B:\ -000000000000000000000000000020000000000000000000 - -00000000000000000000000000000000:CA5C88802CF0520C6521B106F4A58977:\ -000000000000000000000000000010000000000000000000 - -00000000000000000000000000000000:95C83D16F101B16E82D9DF9108A6805A:\ -000000000000000000000000000008000000000000000000 - -00000000000000000000000000000000:F98E0BE43F35A4CD52F93FD0877C1638:\ -000000000000000000000000000004000000000000000000 - -00000000000000000000000000000000:3B0D41F3A12DE6BDACFCA225F1344D77:\ -000000000000000000000000000002000000000000000000 - -00000000000000000000000000000000:BCB6197992A90A62497B53EC8E7E5857:\ -000000000000000000000000000001000000000000000000 - -00000000000000000000000000000000:9CA86B881701310C33F6CB2911ED777E:\ -000000000000000000000000000000800000000000000000 - -00000000000000000000000000000000:DDF4EBC89B16643E7B4F0B43AB3FC443:\ -000000000000000000000000000000400000000000000000 - -00000000000000000000000000000000:650AA74CDF7C5E92720E02A87ECA8FB2:\ -000000000000000000000000000000200000000000000000 - -00000000000000000000000000000000:F44E947B2A18F15189884E55EAC372CD:\ -000000000000000000000000000000100000000000000000 - -00000000000000000000000000000000:A4CC79AB8F6ABA941D400B45C32DA248:\ -000000000000000000000000000000080000000000000000 - -00000000000000000000000000000000:3C49EE1D3E4D8FD1E5CE9C793511F2E7:\ -000000000000000000000000000000040000000000000000 - -00000000000000000000000000000000:49199A91A32424357890F5C8E08E168C:\ -000000000000000000000000000000020000000000000000 - -00000000000000000000000000000000:438EBCC76304C4231DCDBDF85A876A85:\ -000000000000000000000000000000010000000000000000 - -00000000000000000000000000000000:DD04C176440BBC6686C90AEE775BD368:\ -000000000000000000000000000000008000000000000000 - -00000000000000000000000000000000:1DBAE21DF9D10630D8E9BA704AA3A6E2:\ -000000000000000000000000000000004000000000000000 - -00000000000000000000000000000000:F46B5DF361FF1A58AD233A2884E9B73B:\ -000000000000000000000000000000002000000000000000 - -00000000000000000000000000000000:DBD49C75B6CCA6CCEF0423FF3941922A:\ -000000000000000000000000000000001000000000000000 - -00000000000000000000000000000000:2C62774D20D574A487057A24280EBBC9:\ -000000000000000000000000000000000800000000000000 - -00000000000000000000000000000000:A6E24FFF68DF51B5613692D4098F7E22:\ -000000000000000000000000000000000400000000000000 - -00000000000000000000000000000000:A961B427D5FCD129EE29830DBD2952DD:\ -000000000000000000000000000000000200000000000000 - -00000000000000000000000000000000:7F637C136F8A57358DD5229B5E3BC38C:\ -000000000000000000000000000000000100000000000000 - -00000000000000000000000000000000:6FC5A39B35D2EF01B808E20C05DB9DDE:\ -000000000000000000000000000000000080000000000000 - -00000000000000000000000000000000:95E085E82A0883C8F6C1C83D6F4DF270:\ -000000000000000000000000000000000040000000000000 - -00000000000000000000000000000000:BDEE30731D4CD3593E46D9A8222485CC:\ -000000000000000000000000000000000020000000000000 - -00000000000000000000000000000000:508B5BB4ECCE303014D5A9ABB47DD30D:\ -000000000000000000000000000000000010000000000000 - -00000000000000000000000000000000:047832614B07AEABC28A39D5E72007C9:\ -000000000000000000000000000000000008000000000000 - -00000000000000000000000000000000:C1D4B662EE239A6DB9262B23C561B677:\ -000000000000000000000000000000000004000000000000 - -00000000000000000000000000000000:E567714DF47D43F1505D318C8D553062:\ -000000000000000000000000000000000002000000000000 - -00000000000000000000000000000000:CDF70F29AFD13EC6820D2C126D053DC4:\ -000000000000000000000000000000000001000000000000 - -00000000000000000000000000000000:182F2FD0ADC68D8DC72B08AC17E642C1:\ -000000000000000000000000000000000000800000000000 - -00000000000000000000000000000000:5DAA43AFBCD59026C0C410072A263673:\ -000000000000000000000000000000000000400000000000 - -00000000000000000000000000000000:E0C6DD7A8971A7D21AFAE153F115D658:\ -000000000000000000000000000000000000200000000000 - -00000000000000000000000000000000:4ED2DAA970922690D8CDF6CDFDA2E8D3:\ -000000000000000000000000000000000000100000000000 - -00000000000000000000000000000000:C1F929B679E007B1DDBBE896CE91C8C5:\ -000000000000000000000000000000000000080000000000 - -00000000000000000000000000000000:2323F5569BA740E14E05E0FB0914CE44:\ -000000000000000000000000000000000000040000000000 - -00000000000000000000000000000000:875AFCE0522E00712AB29E0E77BA57D2:\ -000000000000000000000000000000000000020000000000 - -00000000000000000000000000000000:A6185ECBDEFEB900335BAB38D95D7583:\ -000000000000000000000000000000000000010000000000 - -00000000000000000000000000000000:1331B89B377EA2A88A181907300BC50C:\ -000000000000000000000000000000000000008000000000 - -00000000000000000000000000000000:FC9D177C5B5D072E041D6C2F9EE6B536:\ -000000000000000000000000000000000000004000000000 - -00000000000000000000000000000000:5BCE1EA4FD0CC1EDE325DCEB55790565:\ -000000000000000000000000000000000000002000000000 - -00000000000000000000000000000000:937FE02D20FCB72F0F57201012B88BA4:\ -000000000000000000000000000000000000001000000000 - -00000000000000000000000000000000:5280E7768E573DC74DB90ABDC10422FE:\ -000000000000000000000000000000000000000800000000 - -00000000000000000000000000000000:0995E2D8E83C853C58ECF916E8067C3A:\ -000000000000000000000000000000000000000400000000 - -00000000000000000000000000000000:98DF44D404B5BD54CA5D55D08E7F1B12:\ -000000000000000000000000000000000000000200000000 - -00000000000000000000000000000000:9FD5F1165CD60FA5229CF03080428664:\ -000000000000000000000000000000000000000100000000 - -00000000000000000000000000000000:B4AE95212E3E8FFD6B27D4F0CC079CCA:\ -000000000000000000000000000000000000000080000000 - -00000000000000000000000000000000:878BD051874AB0BAC12EA94C60CC2671:\ -000000000000000000000000000000000000000040000000 - -00000000000000000000000000000000:3B0F2EF2A0849425063F49E65DF4D3AB:\ -000000000000000000000000000000000000000020000000 - -00000000000000000000000000000000:07D4297668485EBBF0F9266C203407E2:\ -000000000000000000000000000000000000000010000000 - -00000000000000000000000000000000:C2ECFB79C073BD453BDD2323C77FF80D:\ -000000000000000000000000000000000000000008000000 - -00000000000000000000000000000000:5173B04FC7C211CA17161164B79D0AE7:\ -000000000000000000000000000000000000000004000000 - -00000000000000000000000000000000:5135A445A721783AACD06930D39F72C4:\ -000000000000000000000000000000000000000002000000 - -00000000000000000000000000000000:A511E849B1B75DC94B1D73D957B53D78:\ -000000000000000000000000000000000000000001000000 - -00000000000000000000000000000000:42312B67F192D72B73689C712D60EAB7:\ -000000000000000000000000000000000000000000800000 - -00000000000000000000000000000000:30C89A160855BC3F339A170B715DD482:\ -000000000000000000000000000000000000000000400000 - -00000000000000000000000000000000:8DC19A7A97319A3309B98797A59954FA:\ -000000000000000000000000000000000000000000200000 - -00000000000000000000000000000000:D0AA5A8B9DFF98E18281E5FF20CCA3DE:\ -000000000000000000000000000000000000000000100000 - -00000000000000000000000000000000:AFA70EF4B45EA22E90108B834019120A:\ -000000000000000000000000000000000000000000080000 - -00000000000000000000000000000000:2801C6A5C0547CB988A2137A559D12B0:\ -000000000000000000000000000000000000000000040000 - -00000000000000000000000000000000:D791F5709D4AFE0642955F1B072F144E:\ -000000000000000000000000000000000000000000020000 - -00000000000000000000000000000000:35BB50E6D59A693709DE9B88CC8581F6:\ -000000000000000000000000000000000000000000010000 - -00000000000000000000000000000000:9B58CC95279539C1AF0BBC274A62F5C8:\ -000000000000000000000000000000000000000000008000 - -00000000000000000000000000000000:F51803FF4EA1B0F0AFF1C68C5C98CB3A:\ -000000000000000000000000000000000000000000004000 - -00000000000000000000000000000000:975B5309F1D3ACE9BA08B3D2D3FCB43E:\ -000000000000000000000000000000000000000000002000 - -00000000000000000000000000000000:D53CD9381EA85B0C106C22DA611F7336:\ -000000000000000000000000000000000000000000001000 - -00000000000000000000000000000000:393270B47546F1BFE35690ACCAC0FEBD:\ -000000000000000000000000000000000000000000000800 - -00000000000000000000000000000000:53E21284948996FC03ED9BCC34B45B61:\ -000000000000000000000000000000000000000000000400 - -00000000000000000000000000000000:AD9CA2740670DA740C75703A8859382B:\ -000000000000000000000000000000000000000000000200 - -00000000000000000000000000000000:AC9C2960E3061E56D8B9A1CDD3EED010:\ -000000000000000000000000000000000000000000000100 - -00000000000000000000000000000000:E5F68B122D15823F131DEA0468977D70:\ -000000000000000000000000000000000000000000000080 - -00000000000000000000000000000000:7EB7C6460FE9885BC96AFD4D4B65E90E:\ -000000000000000000000000000000000000000000000040 - -00000000000000000000000000000000:409147483ADC22592CA41224D35BB323:\ -000000000000000000000000000000000000000000000020 - -00000000000000000000000000000000:AB61745316651F61F4E2CC1DFBF8135C:\ -000000000000000000000000000000000000000000000010 - -00000000000000000000000000000000:88977EAD91ECF9C83F33EBE41FB7410C:\ -000000000000000000000000000000000000000000000008 - -00000000000000000000000000000000:9DC923136A1882D73CB412C986103481:\ -000000000000000000000000000000000000000000000004 - -00000000000000000000000000000000:9914219ED77B8FA772B4B8C53F9AD2FC:\ -000000000000000000000000000000000000000000000002 - -00000000000000000000000000000000:B9A0FA2324625650A2052D691E7DE9C3:\ -000000000000000000000000000000000000000000000001 - -00000000000000000000000000000000:5172978A58543DE597060983FD799F1B:\ -8000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:0F86AECE7ACE09A8EAC0345C935BE91A:\ -4000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:8C8D6ACDB23AE4B5BEE4E2C15273286F:\ -2000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:11395D4BFE4C8258979EE2BF2D24DFF4:\ -1000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D50183337FD8B3FAEF06C78B2ECFC40F:\ -0800000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F3969970B4E37D9FFD9BD886200D7C0F:\ -0400000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:FF101A14CCB71863E0B51E8583D22760:\ -0200000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:0CACB5AB8A51226134656220DBF23228:\ -0100000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BF75C54F53A3F374DC549BE280F6C6E0:\ -0080000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:1DC755ED6128DC50826E65632C7672D6:\ -0040000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D7A46C3A378DB6A9C041D7DB1835DE3F:\ -0020000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:175FDB12EFB7E7D950777FE12BAAC953:\ -0010000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:1A5C489CB6E0608EADAF3DBFA8B5FD1B:\ -0008000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:7FD567FB07007A65CA8D98D4BF66F7F1:\ -0004000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:3256E4481641ED28938AD6471414CD04:\ -0002000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:A2AD960B437DCD0669681BBBC30F0CF1:\ -0001000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:FB04B658FA923EA9CD5FB98BE54989DE:\ -0000800000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F3F43741881655CF074E36BD655F420B:\ -0000400000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:637DCF9D891EAD8D85A842BE0DC8261F:\ -0000200000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E663749A2786E3BA3833348A9CE5E7F0:\ -0000100000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:76F0F7C439E25C54A9BC7AEA05640882:\ -0000080000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:2CDE682FC40895F1E2464739FAD230DD:\ -0000040000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:3242FE919ADFDCE04F163EBE772AD51D:\ -0000020000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:CE05F79A80B2947B13BD22EE37FB3F79:\ -0000010000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5345BDE33281A0CB4A899A4F18C57563:\ -0000008000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:2E971691DDFD33D36738C08A517B0B44:\ -0000004000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:EE144813E2194B18F1593C44932F170F:\ -0000002000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F626C435E30ABA4FA6F6DCA30CC08833:\ -0000001000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:8AD30F69BD7446793C36676755D05F57:\ -0000000800000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:56851CB7277CBE4AE9AFF86E5BD49F90:\ -0000000400000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:CA864AC764D6B9B9141A08146CFA7F56:\ -0000000200000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:484518D9A3C6CF7B7B92393DBBF78E42:\ -0000000100000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:093F44542B0E41E300C11AE77A48C6C4:\ -0000000080000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:6D9856ADC56605F70EF069D639C9D977:\ -0000000040000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:3FFB2FF7C5457744CABDFB89C0BBA7E8:\ -0000000020000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:6D8254191931BE754D64F70FE3E226C7:\ -0000000010000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:23F3CC55C460EE949A9934C7E5C06CCB:\ -0000000008000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:8739DA7F4A9D821EAA7A349E25741DAA:\ -0000000004000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:73E724C08890501275A0559621526948:\ -0000000002000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:4CC6569D4F6207DDB03B232BFA8AA481:\ -0000000001000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:52A6D921AEF99205822B361D8D9DD998:\ -0000000000800000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:970E1899AEEEB7CCD26F854CA25214E2:\ -0000000000400000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D1DEFC8AC21C95160CF71612AAC55A8C:\ -0000000000200000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D8C2A3AD65F16024265714C21B8A70C5:\ -0000000000100000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:55DE20482FAE35A03F0D57B7546EB980:\ -0000000000080000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:81BCA41F11D12EE26326E042E74961AF:\ -0000000000040000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:6D8D5C30A508436401396224D4E417B5:\ -0000000000020000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:0FA1ECAB0B3C598C51372A5AAF6E1315:\ -0000000000010000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:945BF2690A9CE9ED8009004039E1E743:\ -0000000000008000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:73618AD5FD3A9740CB92C3F870C772B9:\ -0000000000004000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:A7BAB4D0765D66F06FCB85A42D4CF0EE:\ -0000000000002000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:2A659EA8BF9EA163976C33A0B7463A56:\ -0000000000001000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:4D9D5CC19BF1B2D48EF2CF4CD313D3E3:\ -0000000000000800000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:0D7A26F850BDD2A633689367901BC2A4:\ -0000000000000400000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:1A1235352EC6CD1A7A1913E77EF7CE4D:\ -0000000000000200000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5FDC541376BAF15D5AC011B9C0B74E75:\ -0000000000000100000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:CB8DCB7AD04598E8337747E02A8DF16E:\ -0000000000000080000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:2855A6EEA8B20B8B25EDEE37A7D7E976:\ -0000000000000040000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:58B5CD00D833233E718DBEAABCC48E8F:\ -0000000000000020000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:6DF58A11F96B67C330ED10FFFB1E6D74:\ -0000000000000010000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:8FD74AAB8D136DCF1B398D1174AA343B:\ -0000000000000008000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:A81E2F57E80761E361DB1008AC1ABDD8:\ -0000000000000004000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BDD939E7A93F6FECC762E2E3321DFEC7:\ -0000000000000002000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C281060452693278B48AD9076911EC39:\ -0000000000000001000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C06C159EEAFF3CB4B509DB604060F537:\ -0000000000000000800000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:757CED2216A9912B5FBFA1E623077E5D:\ -0000000000000000400000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:9606EDC198F44F955F510FA525E9C80C:\ -0000000000000000200000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:ADE8D3FAE7A4651855E053F42FFF7905:\ -0000000000000000100000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:398BA679B6C0A63479F0C6FE25614F01:\ -0000000000000000080000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:FB77ECA9DEF62902240E4BF3806F3A64:\ -0000000000000000040000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B4313D0A9D34B21F69021A5458680579:\ -0000000000000000020000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BDC7C4ED3B989BF8288E8B4ACDE3FEEA:\ -0000000000000000010000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:430A2DAFFA822532FD4843DF9CBAF824:\ -0000000000000000008000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:16A2DEBA266577150B6DC34995902C99:\ -0000000000000000004000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5902382C7675AF5C52A6ADF349454276:\ -0000000000000000002000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:0D912AA37CFB56223C6ED9E04B3D563F:\ -0000000000000000001000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:1FD8880BE6A6E51C0C0E9C2866127F7D:\ -0000000000000000000800000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BC4079EE5CDB86BDD8FAE650E2931D98:\ -0000000000000000000400000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C52E414FC84C978FAD8CFA103844C306:\ -0000000000000000000200000000000000000000000000000000000000000000 - -00000000000000000000000000000000:DF6291B74EF77E82A8FB7C207213125F:\ -0000000000000000000100000000000000000000000000000000000000000000 - -00000000000000000000000000000000:530424A0F23CD90074F2D672A4FF3A96:\ -0000000000000000000080000000000000000000000000000000000000000000 - -00000000000000000000000000000000:83ED777537F5EE3E5769B8A07476A6AB:\ -0000000000000000000040000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5357341784EAB13F104FBAEFC69B726B:\ -0000000000000000000020000000000000000000000000000000000000000000 - -00000000000000000000000000000000:6DBACA4C68AD93373CBEB1DB0963F33F:\ -0000000000000000000010000000000000000000000000000000000000000000 - -00000000000000000000000000000000:EFA128916DF70D852574EC8507625CC8:\ -0000000000000000000008000000000000000000000000000000000000000000 - -00000000000000000000000000000000:0BD55284AC672E1A2F248FB89C22B514:\ -0000000000000000000004000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E3222E0E2770496C443ED562ECBFC368:\ -0000000000000000000002000000000000000000000000000000000000000000 - -00000000000000000000000000000000:6B689B6DB9374E072B45A7807DAAB132:\ -0000000000000000000001000000000000000000000000000000000000000000 - -00000000000000000000000000000000:3215A725BCFBB120926F8BBCE41FC3EC:\ -0000000000000000000000800000000000000000000000000000000000000000 - -00000000000000000000000000000000:F2475FE25BEF963862CF66C91DA0250B:\ -0000000000000000000000400000000000000000000000000000000000000000 - -00000000000000000000000000000000:5E1CC549BB39348529FD279DFE5E1FFC:\ -0000000000000000000000200000000000000000000000000000000000000000 - -00000000000000000000000000000000:1A8EDD22AA0FE906267DF710DE8DB007:\ -0000000000000000000000100000000000000000000000000000000000000000 - -00000000000000000000000000000000:EE139CE12F8205D4EECCE6D7FD23B01F:\ -0000000000000000000000080000000000000000000000000000000000000000 - -00000000000000000000000000000000:FD84D87207D7BE3A79272CC9DF65E1E6:\ -0000000000000000000000040000000000000000000000000000000000000000 - -00000000000000000000000000000000:CE01B0EEA6BF6D981AFFB07FE1DD164E:\ -0000000000000000000000020000000000000000000000000000000000000000 - -00000000000000000000000000000000:1BCCA9BD22179B1C941947643FB01F0F:\ -0000000000000000000000010000000000000000000000000000000000000000 - -00000000000000000000000000000000:87A581347DF02FF9973A0622DF673804:\ -0000000000000000000000008000000000000000000000000000000000000000 - -00000000000000000000000000000000:1EDEB75B65B365582AB5AA265037FA55:\ -0000000000000000000000004000000000000000000000000000000000000000 - -00000000000000000000000000000000:807DD7E0418803258EF677BA9345CF51:\ -0000000000000000000000002000000000000000000000000000000000000000 - -00000000000000000000000000000000:70CE90D345621481A99DC8EE1A62DCD5:\ -0000000000000000000000001000000000000000000000000000000000000000 - -00000000000000000000000000000000:BB51E835284E0F7B74C053151F07D207:\ -0000000000000000000000000800000000000000000000000000000000000000 - -00000000000000000000000000000000:0240317EC3AFA5D4610C545C0D507367:\ -0000000000000000000000000400000000000000000000000000000000000000 - -00000000000000000000000000000000:9B77B76CA91662A9CB067267F0560C65:\ -0000000000000000000000000200000000000000000000000000000000000000 - -00000000000000000000000000000000:2219ED37D533B05CDC20B16F45D3DBD9:\ -0000000000000000000000000100000000000000000000000000000000000000 - -00000000000000000000000000000000:BC5A33AF9E4591BD4CF53B20728C3F85:\ -0000000000000000000000000080000000000000000000000000000000000000 - -00000000000000000000000000000000:68628B89F58C20E5195DB795C0A41489:\ -0000000000000000000000000040000000000000000000000000000000000000 - -00000000000000000000000000000000:5D177DE234B6288510163F2351750215:\ -0000000000000000000000000020000000000000000000000000000000000000 - -00000000000000000000000000000000:6015D7BA2F33B88B2BE0016E022E05FE:\ -0000000000000000000000000010000000000000000000000000000000000000 - -00000000000000000000000000000000:2D203E35B97E3B315C17D9F0F80ACDA0:\ -0000000000000000000000000008000000000000000000000000000000000000 - -00000000000000000000000000000000:E5800AF9BF96D6B7ED3A2AED899CA456:\ -0000000000000000000000000004000000000000000000000000000000000000 - -00000000000000000000000000000000:1163E6F8F1DE919686C138089EFA7986:\ -0000000000000000000000000002000000000000000000000000000000000000 - -00000000000000000000000000000000:2180B46E9EAC63A165BE63DAE17889A4:\ -0000000000000000000000000001000000000000000000000000000000000000 - -00000000000000000000000000000000:3D751DC36B1046AC808D8275B48697AC:\ -0000000000000000000000000000800000000000000000000000000000000000 - -00000000000000000000000000000000:DF022C5EFCEB5D3FE7E72DDF11D16EA3:\ -0000000000000000000000000000400000000000000000000000000000000000 - -00000000000000000000000000000000:C706AB7A20E0D038143B78D9D12EC1A4:\ -0000000000000000000000000000200000000000000000000000000000000000 - -00000000000000000000000000000000:8AFB006F196B00DAE7F0B36C9E88A3B9:\ -0000000000000000000000000000100000000000000000000000000000000000 - -00000000000000000000000000000000:BED70262ED524A5C6A495092E2543993:\ -0000000000000000000000000000080000000000000000000000000000000000 - -00000000000000000000000000000000:088A58A7351C7A7AF594035514DE0757:\ -0000000000000000000000000000040000000000000000000000000000000000 - -00000000000000000000000000000000:F5DF0BB68AB377B12321365C05480EA8:\ -0000000000000000000000000000020000000000000000000000000000000000 - -00000000000000000000000000000000:512DC8D603A7E4C8031D3566F141B233:\ -0000000000000000000000000000010000000000000000000000000000000000 - -00000000000000000000000000000000:50342EA0E9E81EC53E3683C8C1471602:\ -0000000000000000000000000000008000000000000000000000000000000000 - -00000000000000000000000000000000:8AAB01E320B17FD9945D725F5EA904BA:\ -0000000000000000000000000000004000000000000000000000000000000000 - -00000000000000000000000000000000:76FB320065713C165DECBE5DAFDD79BD:\ -0000000000000000000000000000002000000000000000000000000000000000 - -00000000000000000000000000000000:A8AD014D22CD8FCC9557438B8228253A:\ -0000000000000000000000000000001000000000000000000000000000000000 - -00000000000000000000000000000000:6017A9EB6F3336882FCCEDEC746C62F6:\ -0000000000000000000000000000000800000000000000000000000000000000 - -00000000000000000000000000000000:2EDF94990EB0F4BAFE1F5903102FE874:\ -0000000000000000000000000000000400000000000000000000000000000000 - -00000000000000000000000000000000:4EC81B0FA8FAE0025AF09D26F1F200EA:\ -0000000000000000000000000000000200000000000000000000000000000000 - -00000000000000000000000000000000:AF7F474333E74691E5D01A3A841F8096:\ -0000000000000000000000000000000100000000000000000000000000000000 - -00000000000000000000000000000000:28FCE531836F2A255CA19DE6F53841E8:\ -0000000000000000000000000000000080000000000000000000000000000000 - -00000000000000000000000000000000:6282A41053316B1A4027488E6F747003:\ -0000000000000000000000000000000040000000000000000000000000000000 - -00000000000000000000000000000000:3668527987AC38A3F7C052A20B668F24:\ -0000000000000000000000000000000020000000000000000000000000000000 - -00000000000000000000000000000000:4C3473FE666072653E29354F07EF02B5:\ -0000000000000000000000000000000010000000000000000000000000000000 - -00000000000000000000000000000000:0A51D7A5B347225798EDE5663940F32F:\ -0000000000000000000000000000000008000000000000000000000000000000 - -00000000000000000000000000000000:D3CA3A8821A3D094CF63CF12136A1249:\ -0000000000000000000000000000000004000000000000000000000000000000 - -00000000000000000000000000000000:FBC5E4B37A69AD5F21E53F88E55AB95D:\ -0000000000000000000000000000000002000000000000000000000000000000 - -00000000000000000000000000000000:CCCAAA0A2DEFD357EE31C2CFEC9D0E8E:\ -0000000000000000000000000000000001000000000000000000000000000000 - -00000000000000000000000000000000:93348B5393560AA416C6E6F0C99A58F7:\ -0000000000000000000000000000000000800000000000000000000000000000 - -00000000000000000000000000000000:13AC66E49E23A8D3582AA7117F7A8F2F:\ -0000000000000000000000000000000000400000000000000000000000000000 - -00000000000000000000000000000000:C403AD02F23055CEE08281E7D0C7EB2A:\ -0000000000000000000000000000000000200000000000000000000000000000 - -00000000000000000000000000000000:65DFD53B699B191CE7A6610A405083DC:\ -0000000000000000000000000000000000100000000000000000000000000000 - -00000000000000000000000000000000:3D6F7E99F6512553BB983E8F75672B97:\ -0000000000000000000000000000000000080000000000000000000000000000 - -00000000000000000000000000000000:92BA0D580A954F8C8494A840F0252AEF:\ -0000000000000000000000000000000000040000000000000000000000000000 - -00000000000000000000000000000000:958D8C9141CE21DBD69E19BA1E4F67AA:\ -0000000000000000000000000000000000020000000000000000000000000000 - -00000000000000000000000000000000:E508796197F539FCDC917ECAB19507E0:\ -0000000000000000000000000000000000010000000000000000000000000000 - -00000000000000000000000000000000:2200A6914A2050E99A55FB3BF20315E4:\ -0000000000000000000000000000000000008000000000000000000000000000 - -00000000000000000000000000000000:627C0B2401EE6C095404CD7AA59EA67E:\ -0000000000000000000000000000000000004000000000000000000000000000 - -00000000000000000000000000000000:75159B707278DFE6FD8A024B9FF0D5A8:\ -0000000000000000000000000000000000002000000000000000000000000000 - -00000000000000000000000000000000:F47982BE40C39306ACF25A120BC1B4E0:\ -0000000000000000000000000000000000001000000000000000000000000000 - -00000000000000000000000000000000:01CAABEF85A1E081EA6983079A90EA34:\ -0000000000000000000000000000000000000800000000000000000000000000 - -00000000000000000000000000000000:7F473CD21A453BF74CC76184D6F5496F:\ -0000000000000000000000000000000000000400000000000000000000000000 - -00000000000000000000000000000000:659442FD57B94862529D3E4C530826FE:\ -0000000000000000000000000000000000000200000000000000000000000000 - -00000000000000000000000000000000:88A9140C094A695716A2966B1A8078A0:\ -0000000000000000000000000000000000000100000000000000000000000000 - -00000000000000000000000000000000:28CCFC1BB6180AA7373DA1F5A54E47EA:\ -0000000000000000000000000000000000000080000000000000000000000000 - -00000000000000000000000000000000:53DFD8CB845FD279B337B52DBBA3CF4C:\ -0000000000000000000000000000000000000040000000000000000000000000 - -00000000000000000000000000000000:1BB5B100DFE6BA16983AD4A0F09FD50B:\ -0000000000000000000000000000000000000020000000000000000000000000 - -00000000000000000000000000000000:A896AE30D529D4ACFFCF5B763309CD28:\ -0000000000000000000000000000000000000010000000000000000000000000 - -00000000000000000000000000000000:F40A1B359A9B6B1197276C71222371F4:\ -0000000000000000000000000000000000000008000000000000000000000000 - -00000000000000000000000000000000:9FDE11C9E6CF9A1E9089820FD928767C:\ -0000000000000000000000000000000000000004000000000000000000000000 - -00000000000000000000000000000000:7771A5A99B099A2C861D084E790958A2:\ -0000000000000000000000000000000000000002000000000000000000000000 - -00000000000000000000000000000000:BE1907AA5CA148A0282850401C48AF71:\ -0000000000000000000000000000000000000001000000000000000000000000 - -00000000000000000000000000000000:8E47D50827FD36B62C0D3BD36F863198:\ -0000000000000000000000000000000000000000800000000000000000000000 - -00000000000000000000000000000000:81AA1751209F9173258CD1625DB65E07:\ -0000000000000000000000000000000000000000400000000000000000000000 - -00000000000000000000000000000000:1EE8FE72574BD819C97A0DEA2A5E0B64:\ -0000000000000000000000000000000000000000200000000000000000000000 - -00000000000000000000000000000000:031BA0B3EFCAE9B08793C8107C277A27:\ -0000000000000000000000000000000000000000100000000000000000000000 - -00000000000000000000000000000000:34C8DFD0DC4BA5240CA21BF4959EEF6B:\ -0000000000000000000000000000000000000000080000000000000000000000 - -00000000000000000000000000000000:C7A4DA0D5892A185D35447DB904511B5:\ -0000000000000000000000000000000000000000040000000000000000000000 - -00000000000000000000000000000000:7A8B9982B6C8AE1B5DC02FC1D9AFA2E0:\ -0000000000000000000000000000000000000000020000000000000000000000 - -00000000000000000000000000000000:C77E0DFB29402C587C6DD97E0BD09ABA:\ -0000000000000000000000000000000000000000010000000000000000000000 - -00000000000000000000000000000000:1AA2FD990BD0B0715B18482088DE0844:\ -0000000000000000000000000000000000000000008000000000000000000000 - -00000000000000000000000000000000:31C2D486FDA54BAB4286A02D260918AC:\ -0000000000000000000000000000000000000000004000000000000000000000 - -00000000000000000000000000000000:545F5A95E159B5F0DDF544B60F9C28C3:\ -0000000000000000000000000000000000000000002000000000000000000000 - -00000000000000000000000000000000:45C84895AF0393588C67D9CDD5E4D7E2:\ -0000000000000000000000000000000000000000001000000000000000000000 - -00000000000000000000000000000000:745BF4AF94A92D32FFE44B41AEF39320:\ -0000000000000000000000000000000000000000000800000000000000000000 - -00000000000000000000000000000000:13C47C2F92F91D72F34381AC9A81473D:\ -0000000000000000000000000000000000000000000400000000000000000000 - -00000000000000000000000000000000:8836D5AA076110FCD5BD66F3BECB39F6:\ -0000000000000000000000000000000000000000000200000000000000000000 - -00000000000000000000000000000000:11EDE6F221E96C7515B1256DF055FBC3:\ -0000000000000000000000000000000000000000000100000000000000000000 - -00000000000000000000000000000000:4E3BE7D6830703A6185CF0BDBE7F5BE4:\ -0000000000000000000000000000000000000000000080000000000000000000 - -00000000000000000000000000000000:6A1ABDA47972CFF536946A1C7D380810:\ -0000000000000000000000000000000000000000000040000000000000000000 - -00000000000000000000000000000000:74031DB865D2FC8319A320FFAC4694D8:\ -0000000000000000000000000000000000000000000020000000000000000000 - -00000000000000000000000000000000:E1F751F11027548C057075E8D8F880EA:\ -0000000000000000000000000000000000000000000010000000000000000000 - -00000000000000000000000000000000:AF24FA74CA96D89088C9018AA60E1D53:\ -0000000000000000000000000000000000000000000008000000000000000000 - -00000000000000000000000000000000:0E5214D31B2C9219F6C9686A35F210FF:\ -0000000000000000000000000000000000000000000004000000000000000000 - -00000000000000000000000000000000:2A72E2E692463EE8846C94A483C27E25:\ -0000000000000000000000000000000000000000000002000000000000000000 - -00000000000000000000000000000000:2B9C3298626F11072D7B1D80B47A841F:\ -0000000000000000000000000000000000000000000001000000000000000000 - -00000000000000000000000000000000:7468CAA1A5FFC828BE5A752C33132E90:\ -0000000000000000000000000000000000000000000000800000000000000000 - -00000000000000000000000000000000:29C75ADD5EDE2680C169FF9FD9177331:\ -0000000000000000000000000000000000000000000000400000000000000000 - -00000000000000000000000000000000:9BA78930CDD3357A2D84A49725902E8F:\ -0000000000000000000000000000000000000000000000200000000000000000 - -00000000000000000000000000000000:F190AC4C43E202F925B5FD1E4CA62DD6:\ -0000000000000000000000000000000000000000000000100000000000000000 - -00000000000000000000000000000000:5716FB34A1A6B40C35B2BA860F12163E:\ -0000000000000000000000000000000000000000000000080000000000000000 - -00000000000000000000000000000000:43B90548889A171E85515AB05EC76856:\ -0000000000000000000000000000000000000000000000040000000000000000 - -00000000000000000000000000000000:B4DE6F86875147F5276D584CEC11AFB4:\ -0000000000000000000000000000000000000000000000020000000000000000 - -00000000000000000000000000000000:3DA6C1A8937583BF6491B2E9C52081E6:\ -0000000000000000000000000000000000000000000000010000000000000000 - -00000000000000000000000000000000:9A54FCD26D9754ADD5F8967EF551EAB0:\ -0000000000000000000000000000000000000000000000008000000000000000 - -00000000000000000000000000000000:F0DCFA56A7E41A859276A6F8927B561D:\ -0000000000000000000000000000000000000000000000004000000000000000 - -00000000000000000000000000000000:5881A8AE181F16B64CD0C455389F511C:\ -0000000000000000000000000000000000000000000000002000000000000000 - -00000000000000000000000000000000:E9F7AD45D9EA9AA4C830B89EEC61C1B5:\ -0000000000000000000000000000000000000000000000001000000000000000 - -00000000000000000000000000000000:9118B623A63BFC69A9AAB868D752460B:\ -0000000000000000000000000000000000000000000000000800000000000000 - -00000000000000000000000000000000:2D208D46FB2177C243C539FCCD4A1E9D:\ -0000000000000000000000000000000000000000000000000400000000000000 - -00000000000000000000000000000000:2A4F52A297F20E428222008D9BE4A23B:\ -0000000000000000000000000000000000000000000000000200000000000000 - -00000000000000000000000000000000:EBCFDD28550C9654374590EC4BFD1CDC:\ -0000000000000000000000000000000000000000000000000100000000000000 - -00000000000000000000000000000000:FABB99266FC741241F6CFC0CED776A11:\ -0000000000000000000000000000000000000000000000000080000000000000 - -00000000000000000000000000000000:FBDEC944B2303E3A08A964E24130D10D:\ -0000000000000000000000000000000000000000000000000040000000000000 - -00000000000000000000000000000000:9897E33E6052ABA1F07233BCEF531E32:\ -0000000000000000000000000000000000000000000000000020000000000000 - -00000000000000000000000000000000:509DCA41B038225B30D8B7880D52999D:\ -0000000000000000000000000000000000000000000000000010000000000000 - -00000000000000000000000000000000:3F70238F99F2AF394C31308D68F1707C:\ -0000000000000000000000000000000000000000000000000008000000000000 - -00000000000000000000000000000000:E6FF6426E9025DD6519837F71A6C3636:\ -0000000000000000000000000000000000000000000000000004000000000000 - -00000000000000000000000000000000:F222502AEF77C1F21DB79B08F7AB8CA2:\ -0000000000000000000000000000000000000000000000000002000000000000 - -00000000000000000000000000000000:C17D2C00477C1AA20B539BE8174E7202:\ -0000000000000000000000000000000000000000000000000001000000000000 - -00000000000000000000000000000000:0F7B12AE962AF9C0C8CDCAA288FC6E12:\ -0000000000000000000000000000000000000000000000000000800000000000 - -00000000000000000000000000000000:0E740EE58431521A622122AEFB163CE2:\ -0000000000000000000000000000000000000000000000000000400000000000 - -00000000000000000000000000000000:CF0B94FECAC6F67070306654FE198449:\ -0000000000000000000000000000000000000000000000000000200000000000 - -00000000000000000000000000000000:604EA1D0711ACB8E545C0A88976008F9:\ -0000000000000000000000000000000000000000000000000000100000000000 - -00000000000000000000000000000000:71D03D8F6F917FDF5B612180454F3699:\ -0000000000000000000000000000000000000000000000000000080000000000 - -00000000000000000000000000000000:A6BCFE7B73EDCE71DB36AF00B01C37EC:\ -0000000000000000000000000000000000000000000000000000040000000000 - -00000000000000000000000000000000:93D761851BB991221AE77968459787DD:\ -0000000000000000000000000000000000000000000000000000020000000000 - -00000000000000000000000000000000:F117E4D5C88CC1C067C88AE38A5BF1D5:\ -0000000000000000000000000000000000000000000000000000010000000000 - -00000000000000000000000000000000:B534328DA555A9B69AC2A5B08E3CE47E:\ -0000000000000000000000000000000000000000000000000000008000000000 - -00000000000000000000000000000000:7BDFB785D866B6487790B9F6164F5EBD:\ -0000000000000000000000000000000000000000000000000000004000000000 - -00000000000000000000000000000000:5B3BB41E43D02901F5A0231768347B38:\ -0000000000000000000000000000000000000000000000000000002000000000 - -00000000000000000000000000000000:917216669DB1600015F2FE7CBDDA0FF4:\ -0000000000000000000000000000000000000000000000000000001000000000 - -00000000000000000000000000000000:C79B582FC430C0187D7B1D7B1E79BDB9:\ -0000000000000000000000000000000000000000000000000000000800000000 - -00000000000000000000000000000000:B9A43998AED6BB7B79C91BB4C2530F4E:\ -0000000000000000000000000000000000000000000000000000000400000000 - -00000000000000000000000000000000:0B24EBDF9A1D129F5E8397AB7412BC74:\ -0000000000000000000000000000000000000000000000000000000200000000 - -00000000000000000000000000000000:96D523E4EF1C888C72460DEBA8D58B78:\ -0000000000000000000000000000000000000000000000000000000100000000 - -00000000000000000000000000000000:85708C4539C8B06DD787AFDD06A3FE24:\ -0000000000000000000000000000000000000000000000000000000080000000 - -00000000000000000000000000000000:67A106762D2F46B7880750BCF987054C:\ -0000000000000000000000000000000000000000000000000000000040000000 - -00000000000000000000000000000000:8F46E37371E81C389CA94A8272A14FC8:\ -0000000000000000000000000000000000000000000000000000000020000000 - -00000000000000000000000000000000:92DC700C11BBE46DA9559CAA7BA662F0:\ -0000000000000000000000000000000000000000000000000000000010000000 - -00000000000000000000000000000000:90D2B52984DA214F392EF4EAC26A04FE:\ -0000000000000000000000000000000000000000000000000000000008000000 - -00000000000000000000000000000000:832D440D62996C5BFCB7FAA08DEB4D2C:\ -0000000000000000000000000000000000000000000000000000000004000000 - -00000000000000000000000000000000:69B7F725BA2B0539F6B45F2C8495D571:\ -0000000000000000000000000000000000000000000000000000000002000000 - -00000000000000000000000000000000:CE78A2AA25F818D87C46367579FAE698:\ -0000000000000000000000000000000000000000000000000000000001000000 - -00000000000000000000000000000000:F5E3E4DA4FC90F25F7D6679F076CA32E:\ -0000000000000000000000000000000000000000000000000000000000800000 - -00000000000000000000000000000000:F7618B001BC19F0195BD21021D9545B6:\ -0000000000000000000000000000000000000000000000000000000000400000 - -00000000000000000000000000000000:D84E1E36E1100913C7AFDBFE5009EDEA:\ -0000000000000000000000000000000000000000000000000000000000200000 - -00000000000000000000000000000000:9DB2838E3903829913D2AEE6465202FD:\ -0000000000000000000000000000000000000000000000000000000000100000 - -00000000000000000000000000000000:361AFBF61BDB378CCF2B76C01469BAA2:\ -0000000000000000000000000000000000000000000000000000000000080000 - -00000000000000000000000000000000:DC4C998046574B4CC447154F663E8EBD:\ -0000000000000000000000000000000000000000000000000000000000040000 - -00000000000000000000000000000000:0D890EFA71666BE0A38B423BAD47C90F:\ -0000000000000000000000000000000000000000000000000000000000020000 - -00000000000000000000000000000000:F39C444538E646A2BD59B443F68C51D5:\ -0000000000000000000000000000000000000000000000000000000000010000 - -00000000000000000000000000000000:9C6D37340E8F5EA22213E17A9F720238:\ -0000000000000000000000000000000000000000000000000000000000008000 - -00000000000000000000000000000000:3A23813329F978C1C6C3BE1715011283:\ -0000000000000000000000000000000000000000000000000000000000004000 - -00000000000000000000000000000000:CE24D63AFA37E2A659A21CF770109BB4:\ -0000000000000000000000000000000000000000000000000000000000002000 - -00000000000000000000000000000000:DF329017478D86B2C360D55BC2B2ADCF:\ -0000000000000000000000000000000000000000000000000000000000001000 - -00000000000000000000000000000000:BC5EFA1FBF848776746FD7826656E25C:\ -0000000000000000000000000000000000000000000000000000000000000800 - -00000000000000000000000000000000:A3E4185241C566DD2CF8117D4D7699F4:\ -0000000000000000000000000000000000000000000000000000000000000400 - -00000000000000000000000000000000:EF7BBDEB18879C11E2979DCC601CB620:\ -0000000000000000000000000000000000000000000000000000000000000200 - -00000000000000000000000000000000:FDC76A95F9C87E394F82A787D7406D40:\ -0000000000000000000000000000000000000000000000000000000000000100 - -00000000000000000000000000000000:B224E2BECACF6773B9941516195ED06B:\ -0000000000000000000000000000000000000000000000000000000000000080 - -00000000000000000000000000000000:B3951D0CF640BB7BD8F3D9948745FF9E:\ -0000000000000000000000000000000000000000000000000000000000000040 - -00000000000000000000000000000000:F9C8966E2874F736765B89DA10EF4611:\ -0000000000000000000000000000000000000000000000000000000000000020 - -00000000000000000000000000000000:3750F26BAB98833AB30444C0821A594C:\ -0000000000000000000000000000000000000000000000000000000000000010 - -00000000000000000000000000000000:D369C2B7C2337D67A87CD5B4EB45D290:\ -0000000000000000000000000000000000000000000000000000000000000008 - -00000000000000000000000000000000:F3A44B0F53DCC9F79E1AFA8ABB022C84:\ -0000000000000000000000000000000000000000000000000000000000000004 - -00000000000000000000000000000000:6E47C47F3940D369EC703E974AB350B6:\ -0000000000000000000000000000000000000000000000000000000000000002 - -00000000000000000000000000000000:1100DE2A57C47C2EB63277537ADE5716:\ -0000000000000000000000000000000000000000000000000000000000000001 - -# From the NESSIE submission -01010101010101010101010101010101:EFB2C7DD69614683DAB0BC607036C425:\ -01010101010101010101010101010101 - -02020202020202020202020202020202:A1AE9D211867538B100BD121BA6A3ADC:\ -02020202020202020202020202020202 - -03030303030303030303030303030303:8E77797CEC40C34AD3A3230975AE760E:\ -03030303030303030303030303030303 - -04040404040404040404040404040404:91086B2221C3FC8E254A97B611D83239:\ -04040404040404040404040404040404 - -05050505050505050505050505050505:95CA7F3CA2269A73B4964BD7A6A3DEA0:\ -05050505050505050505050505050505 - -06060606060606060606060606060606:BD7EB1B707AA5F801070B9C94F64A5C6:\ -06060606060606060606060606060606 - -07070707070707070707070707070707:37CE0ADCFAA89DD737CB15193DCBA48E:\ -07070707070707070707070707070707 - -08080808080808080808080808080808:37B6051557E2E535EE8B4955AC5DCB82:\ -08080808080808080808080808080808 - -09090909090909090909090909090909:33D6A06EB3B16C0C6078BF56F2966AB2:\ -09090909090909090909090909090909 - -0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A:521D3B74BA74D29362708CFE62E357AB:\ -0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A - -0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B:CDD5D57C2ABED59CEACAA9352103751F:\ -0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B - -0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C:173D2D1CABD12095742C3045EC50899A:\ -0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C - -0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D:A85D680132CCF78F2918A9698D6431D6:\ -0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D - -0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E:C8137067650576081E34565121681374:\ -0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E - -0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F:EDC375FEF71B83B2BE5187F82D0180EA:\ -0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F - -10101010101010101010101010101010:54FD2A83F505EE40F4F6F4F94198ED48:\ -10101010101010101010101010101010 - -11111111111111111111111111111111:10CC2D64A5306366D8D594B8CDB4FBD3:\ -11111111111111111111111111111111 - -12121212121212121212121212121212:13E3A82E121BC3CCA5C703FCAC451E22:\ -12121212121212121212121212121212 - -13131313131313131313131313131313:1D8753BFF6930FA77FD7819F5935C422:\ -13131313131313131313131313131313 - -14141414141414141414141414141414:A6FF617A5D0395407BEEC3A311A0CBCB:\ -14141414141414141414141414141414 - -15151515151515151515151515151515:034D4716AC68312E05C9497E9FC9430A:\ -15151515151515151515151515151515 - -16161616161616161616161616161616:690D68007F51E2E8C9516EF9EE64F85D:\ -16161616161616161616161616161616 - -17171717171717171717171717171717:EF1396B41E8AF9BD6B2EBDEB7CC1A91B:\ -17171717171717171717171717171717 - -18181818181818181818181818181818:9A20B52BFC5EB501F027978FBD684A1B:\ -18181818181818181818181818181818 - -19191919191919191919191919191919:7A1A35FAD281601D522188B546CE1800:\ -19191919191919191919191919191919 - -1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A:F715BBB8000B577E6EF5D698511E8D03:\ -1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A - -1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B:09E83FD6F11C656ACAA1D1FAAF02F086:\ -1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B - -1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C:41561B53A60A9FBB25304169789461BB:\ -1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C - -1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D:B47BB77008C75F854861994479DA3E7B:\ -1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D - -1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E:811CE0CFEB49117D6ED593FBFD5E6CD6:\ -1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E - -1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F:C9479F831ECEBCFCB91F99FD6379A962:\ -1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F - -20202020202020202020202020202020:FF2C70AB530B889BFF5F3C902DE6209A:\ -20202020202020202020202020202020 - -21212121212121212121212121212121:695A8754A7A6F18C4F3C6EE9CE0EA103:\ -21212121212121212121212121212121 - -22222222222222222222222222222222:2E2DFBB0C8BD286E87625F61A2F7D887:\ -22222222222222222222222222222222 - -23232323232323232323232323232323:CE8E66F871157B0182653B625074CB02:\ -23232323232323232323232323232323 - -24242424242424242424242424242424:C32823388E5ADBD6AA14186CE0400A4E:\ -24242424242424242424242424242424 - -25252525252525252525252525252525:EDEA3E4740736BC47A7891609B86CE9E:\ -25252525252525252525252525252525 - -26262626262626262626262626262626:2B2DDCA5AD969636475196D462F5B2A5:\ -26262626262626262626262626262626 - -27272727272727272727272727272727:5C46E5F8DD4E7DC61474CB8DFC3E04F0:\ -27272727272727272727272727272727 - -28282828282828282828282828282828:6670EBB8C7E041121C5C5E449B675FD2:\ -28282828282828282828282828282828 - -29292929292929292929292929292929:808DC7740040F39A6D3CBFAAC5228A23:\ -29292929292929292929292929292929 - -2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A:15ECD6020C001F45262A1256AF7B066D:\ -2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A - -2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B:C937773A54DC09B0CC52756A7EEEF178:\ -2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B - -2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C:B8AB07101FC58ED64BBE203F31F892D4:\ -2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C - -2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D:FC429A3B703812E0AAD1A325A23E33DE:\ -2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D - -2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E:C4FFFE21B89FFCC6EC721D49E870ECEC:\ -2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E - -2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F:D218CB13BC19296A50B5612A3721C1E2:\ -2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F - -30303030303030303030303030303030:573FF72784A1CEBD97FED191A3B979EF:\ -30303030303030303030303030303030 - -31313131313131313131313131313131:4D44F703C1E1C39C3A2EDF5639394702:\ -31313131313131313131313131313131 - -32323232323232323232323232323232:50F09502DB7FCF0095E5F8219DCA5A3C:\ -32323232323232323232323232323232 - -33333333333333333333333333333333:9533F79F724484B169CB32EB7FAD0168:\ -33333333333333333333333333333333 - -34343434343434343434343434343434:9EB8075BAB79DD8BBF7ECAD69C6B13CE:\ -34343434343434343434343434343434 - -35353535353535353535353535353535:E5450816410E771677D879F0A6ED86BD:\ -35353535353535353535353535353535 - -36363636363636363636363636363636:07B20FB465C2F4FABC042A07E3163DEA:\ -36363636363636363636363636363636 - -37373737373737373737373737373737:26B4CFBE7FDB3B3253E9F5D499DAD6C0:\ -37373737373737373737373737373737 - -38383838383838383838383838383838:4FD4E8956C0808613A5EA19A9D753800:\ -38383838383838383838383838383838 - -39393939393939393939393939393939:FA74B3A2F745D440E74851D1C0D8679B:\ -39393939393939393939393939393939 - -3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A:9D6FC40588769E07EC406A0CEBEC99F2:\ -3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A - -3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B:53602388866685FC37681EBC9BC46F73:\ -3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B - -3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C:AB4532B652BDD0FC8ED4034CF3C11A24:\ -3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C - -3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D:66EFBCE5A3C3795A50C1A6B999CC3E71:\ -3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D - -3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E:1CAC1DEB42C55E3A3FEB261ED2FB3F50:\ -3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E - -3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F:31D98EA0E6B439432C3A6BB8E25D600D:\ -3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F - -40404040404040404040404040404040:898FD889A6AA36447C89D8CCC8B4043A:\ -40404040404040404040404040404040 - -41414141414141414141414141414141:AA74AA28D307802D28EDF73B58BD3BA3:\ -41414141414141414141414141414141 - -42424242424242424242424242424242:57F1920F30A23C74DA3CD9CF78F4328C:\ -42424242424242424242424242424242 - -43434343434343434343434343434343:2C30C357FB5A8F9D531CE0F17E1286F3:\ -43434343434343434343434343434343 - -44444444444444444444444444444444:C6E5EB2B3F9A7744A0128B93A4145A7B:\ -44444444444444444444444444444444 - -45454545454545454545454545454545:0DBF0AD86C57F7D25A0CE61F6A6148EE:\ -45454545454545454545454545454545 - -46464646464646464646464646464646:5F64A9BC4359153FF2572195A12F52D3:\ -46464646464646464646464646464646 - -47474747474747474747474747474747:B6099EE04520977CB7B1DE88E2120FA1:\ -47474747474747474747474747474747 - -48484848484848484848484848484848:77AE144A7A3883038561F239C5312F09:\ -48484848484848484848484848484848 - -49494949494949494949494949494949:DF0FE7423AA1CF40C8FD45253817FE33:\ -49494949494949494949494949494949 - -4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A:CE4E05EC0EE20A8A4B27937B7B8ECED4:\ -4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A - -4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B:BAB91404D49876BEE288311BA3C7456A:\ -4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B - -4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C:9DC6BCB030F1FBC24ADBF6EA5238E507:\ -4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C - -4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D:BFACD02D59B26640B80B1886CD6E7D03:\ -4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D - -4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E:2076B2B836A8C545B3C103050E7AFF41:\ -4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E - -4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F:653B5B9A9751451C89DF56D79CFD07EF:\ -4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F - -50505050505050505050505050505050:7F4060C7776DEED87F7F9B26BEAFA428:\ -50505050505050505050505050505050 - -51515151515151515151515151515151:B7072058AEF8AA25604ACE1531C81C59:\ -51515151515151515151515151515151 - -52525252525252525252525252525252:40A0515E8F01E55C60F70E0DAE4A1D31:\ -52525252525252525252525252525252 - -53535353535353535353535353535353:9805BD832CBCBEE6B439D866F3ED53F9:\ -53535353535353535353535353535353 - -54545454545454545454545454545454:81334B63525932E8B9342094A8DBB917:\ -54545454545454545454545454545454 - -55555555555555555555555555555555:59670A6CBA2E729FEDD36389481541A4:\ -55555555555555555555555555555555 - -56565656565656565656565656565656:84B3279AE90EACB5BF863DC17AE9212E:\ -56565656565656565656565656565656 - -57575757575757575757575757575757:13F3BDFA7EF33A97F496692361AE6167:\ -57575757575757575757575757575757 - -58585858585858585858585858585858:080F06D07DC2B4D0B748FA9F28946B0C:\ -58585858585858585858585858585858 - -59595959595959595959595959595959:72B8521961C711E79AA30616F0B70687:\ -59595959595959595959595959595959 - -5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A:75082BB9C98676FBB964DBDCD25705A2:\ -5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A - -5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B:C00D2666ED3FAF0F01FEEB01A9883B1B:\ -5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B - -5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C:C70DBF746F722EBC18A4F4B115193ED4:\ -5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - -5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D:6283561914D3FABEE1FDD1747515C2D4:\ -5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D - -5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E:7AAABB3AE21BBA557AE89A0D9B99816C:\ -5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E - -5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F:4010AB7D9F7237DE123450ECA31B0900:\ -5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F - -60606060606060606060606060606060:3E4B358F1A26A197BF3B65B0DB4FB7E5:\ -60606060606060606060606060606060 - -61616161616161616161616161616161:2E9D9D04453C0698FB444CFA3340E0B8:\ -61616161616161616161616161616161 - -62626262626262626262626262626262:99ABC39983649030A48BAEDA6E718E8A:\ -62626262626262626262626262626262 - -63636363636363636363636363636363:39478E48FACF3E28870082DFB51A817B:\ -63636363636363636363636363636363 - -64646464646464646464646464646464:1BCA5B87AFEB4D9090910E02E3040CFD:\ -64646464646464646464646464646464 - -65656565656565656565656565656565:30B0F7101370BB69E7B20D13050AB876:\ -65656565656565656565656565656565 - -66666666666666666666666666666666:CC000CAA9DEB82E9766CD98B9DE131DE:\ -66666666666666666666666666666666 - -67676767676767676767676767676767:AEDA25322DEA94FA8345FD467992B1D8:\ -67676767676767676767676767676767 - -68686868686868686868686868686868:14D0D8253551FC65B1DE9DB1C3F0AB6A:\ -68686868686868686868686868686868 - -69696969696969696969696969696969:67D32FDC0CD1AAC1F20E3F5FDFC986C0:\ -69696969696969696969696969696969 - -6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A:3D8101226BBB3F4FFD40E68EF5F93626:\ -6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A - -6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B:684F017186FCC8AC24342CC54BF2FA6C:\ -6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B - -6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C:4AD0F6751D4DE121269F0FCCD99EFE68:\ -6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C - -6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D:FDF357681BD91A83E2632698C1525CE0:\ -6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D - -6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E:AC2698CD31DE9AC9740F53D467902FCB:\ -6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E - -6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F:ED011F6CD9356CBA1E4715D60AB112A6:\ -6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F - -70707070707070707070707070707070:724926624439B1C8694571BC103CFCED:\ -70707070707070707070707070707070 - -71717171717171717171717171717171:C2725BBB0E4945AF08A6A7F1A9AF211A:\ -71717171717171717171717171717171 - -72727272727272727272727272727272:0ABD84E7FF8FD3F826B4AFBE3AF2B653:\ -72727272727272727272727272727272 - -73737373737373737373737373737373:404BEFC70C072CAEE758CC3E697E946D:\ -73737373737373737373737373737373 - -74747474747474747474747474747474:0106FFAEE3A63E7B80004B044F864032:\ -74747474747474747474747474747474 - -75757575757575757575757575757575:AE43C4368B1FC9B98DB952887C4316B1:\ -75757575757575757575757575757575 - -76767676767676767676767676767676:FAC2FD894C5AEBC38A45034F38D44075:\ -76767676767676767676767676767676 - -77777777777777777777777777777777:09831AB86A3DF171F1961A8E9F40BDD0:\ -77777777777777777777777777777777 - -78787878787878787878787878787878:DFC3FE2EC8C90B113BB11F76F3636E3D:\ -78787878787878787878787878787878 - -79797979797979797979797979797979:E9B9BB30C6D86061FA1812FF08CBC65A:\ -79797979797979797979797979797979 - -7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A:0FC606C92CCFE70FEDAAE3DB6C443762:\ -7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A - -7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B:85DEC6534601D8B6B11B9060C8A42DF2:\ -7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B - -7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C:1250BEB80BC3D145284DF9188CCA5C50:\ -7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C - -7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D:318E30C9CCEBCA2A7F546A49052AF9A4:\ -7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D - -7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E:49FCFE05AEF655D83155DB617ED581BA:\ -7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E - -7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F:91EF1DED08B8BC59A916B5739195C758:\ -7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F - -80808080808080808080808080808080:B5BCEC5D9EC2161530284CD96653C250:\ -80808080808080808080808080808080 - -81818181818181818181818181818181:3B26ABD6B5688159301921809DF64FB1:\ -81818181818181818181818181818181 - -82828282828282828282828282828282:DAEA518A364BC404EEDD6903474BB56D:\ -82828282828282828282828282828282 - -83838383838383838383838383838383:37C8EBDBCE1501AAD18A395AAADCB415:\ -83838383838383838383838383838383 - -84848484848484848484848484848484:399FB3321F29829924CE72FBE9ED2756:\ -84848484848484848484848484848484 - -85858585858585858585858585858585:A88E685E95E838E27AC3024370BFE12F:\ -85858585858585858585858585858585 - -86868686868686868686868686868686:4C56F71EC80909EC98673D808F42321E:\ -86868686868686868686868686868686 - -87878787878787878787878787878787:4EFA656E3F35C570C8DC4EA5524B436C:\ -87878787878787878787878787878787 - -88888888888888888888888888888888:808FA06393685AB9143C82CA4B954BE4:\ -88888888888888888888888888888888 - -89898989898989898989898989898989:D107696CCF562B2CC2901D50E1BFE320:\ -89898989898989898989898989898989 - -8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A:98CF296ACAFAF704D6C91D1997202E47:\ -8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A - -8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B:5A023E5B18861A1FFCCC26F487EBF80F:\ -8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B - -8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C:8570554F91C1D8366FF6EC2097F110C3:\ -8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C - -8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D:E1CE24B74C513C884992C98DFCF70BFB:\ -8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D - -8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E:23F536F1876F44FFB7727D0FAF9F2D70:\ -8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E - -8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F:D877DD242B0C7CC05D9600419385A3EF:\ -8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F - -90909090909090909090909090909090:2896226A5A298578E2C999AF4F382DE7:\ -90909090909090909090909090909090 - -91919191919191919191919191919191:B54F6E5FB8F33608A8DFAEAD8EF27B98:\ -91919191919191919191919191919191 - -92929292929292929292929292929292:45CF4F783116E562F104B107BD3D10F3:\ -92929292929292929292929292929292 - -93939393939393939393939393939393:93F404FF83D493315E2E9665AC2013C5:\ -93939393939393939393939393939393 - -94949494949494949494949494949494:1A5664813121482F4DBE1026104D84A8:\ -94949494949494949494949494949494 - -95959595959595959595959595959595:AEE4A82CE2FF23E91A497269B82530F6:\ -95959595959595959595959595959595 - -96969696969696969696969696969696:E001B8A93500C4D49F8A9A372A1E8A61:\ -96969696969696969696969696969696 - -97979797979797979797979797979797:FB23B31999D3D84AFD55600B9EA722CD:\ -97979797979797979797979797979797 - -98989898989898989898989898989898:9572170C51A1198373B6ADBAB87AE454:\ -98989898989898989898989898989898 - -99999999999999999999999999999999:65CCAA1321D8CB3CA18462C37DBBE4E1:\ -99999999999999999999999999999999 - -9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A:3E942B1978B989CAC106E4575E6729A7:\ -9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A - -9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B:3E9AA5B6EC22E250368E9806041F6AA2:\ -9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B - -9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C:717479032B7D79C5236436D8AE0F3AB5:\ -9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C - -9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D:2643B168C234D5E0205E212C5CF669F4:\ -9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D - -9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E:A79DE0F9F3BE54CF4B453A1836F7F491:\ -9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E - -9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F:CF0836AC18F99D130EE85DE0ACDBE063:\ -9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F - -A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0:F12ABC04BB0C7F6F794EF428E57F15FA:\ -A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0 - -A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1:383E9B4B9D663B8527E6FAB4A7892832:\ -A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1 - -A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2:432103C74F3C2D68315CDD2831EF8F71:\ -A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2 - -A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3:E06519949E2F6E8B00E15CD58054BB4A:\ -A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3 - -A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4:34A14A8B9E5869C25A9C604300BEC911:\ -A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4 - -A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5:0FB01A7B7F093C400E2FB08E709F7675:\ -A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5 - -A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6:51D28B7FDD1C3EA5ED21EBD1D8B7499D:\ -A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6 - -A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7:3F6FCB543C8771ABFABDD72E0E788FD7:\ -A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7 - -A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8:045A187E0A7009AB426A78B251CA088E:\ -A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8 - -A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9:BF28504290089DB7D289785147BD5D9A:\ -A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9 - -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:1297E67DBA4B264248FCDAF3B9E3FE4B:\ -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - -ABABABABABABABABABABABABABABABAB:8177E1C48AB5578DBB3C4AA36EEEEF5C:\ -ABABABABABABABABABABABABABABABAB - -ACACACACACACACACACACACACACACACAC:97E785AED832ACF1D419DC01219704D4:\ -ACACACACACACACACACACACACACACACAC - -ADADADADADADADADADADADADADADADAD:23D059447EDB76B0F9B41006399CC087:\ -ADADADADADADADADADADADADADADADAD - -AEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE:7320A4A66FE238B9E1A932F9942DCFAA:\ -AEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE - -AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF:4D8D7376C26FE0AFAA27B61ED1882721:\ -AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF - -B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0:DEF37D094186DE7209801C7D2D93F61A:\ -B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0 - -B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1:536A8AACDB1156AC2E2D7DD0499BFA5F:\ -B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1 - -B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2:F57A2E78B976A57642DC8BFAFB3480B2:\ -B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2 - -B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3:88177315699E7AE0D5B4B07046ED5990:\ -B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3 - -B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4:02F65559B9AA547A5EA54EB6A8E48960:\ -B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4 - -B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5:F2F02BC7D56F7594E37DB7DF94C1B9C1:\ -B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5 - -B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6:2691BEACD805DC3C69B0295A7308CFD8:\ -B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6 - -B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7:A3A67B09425720C8AAB79DA8F44A8E8A:\ -B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7 - -B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8:DBC7ABF1DD510B5D3A6BA898670B6361:\ -B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8 - -B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9:FA1B51E10654E448C32EFCD7A986CAF0:\ -B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9 - -BABABABABABABABABABABABABABABABA:C63D856771FC45E5102B14B41A79CB7E:\ -BABABABABABABABABABABABABABABABA - -BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB:9030C8326D2B75D1979DC1C3B80796B9:\ -BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB - -BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC:B11A41E18A535F8F3B343135C73A4670:\ -BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC - -BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD:BC6F04C2D75634E0054CCE755DE717A7:\ -BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD - -BEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE:AAFAD1353CD8C6469751190678362F03:\ -BEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE - -BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF:9DD8ACCD8D2A504AAE205BAD997F20DE:\ -BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF - -C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0:0FCBA053A6E5DE5D0E6B9395BDE2BD18:\ -C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 - -C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1:E3AD2507E0F6BCDCC3D50728E12BF962:\ -C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1 - -C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2:0AB51BDC22FFF1458CB4D3D08EDB164C:\ -C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2 - -C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3:FBF3371047AB698FCFC81442B134AD26:\ -C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3 - -C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4:D026FC11B7B1BB47B020D7A8320A174B:\ -C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4 - -C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5:FAE26B00CAD7DD254EDBB84688A846E9:\ -C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5 - -C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6:91F547F8129DB5B465DF57F0A03E58FE:\ -C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6 - -C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7:AECA4D2C88D33F6A0CEAE619259E3982:\ -C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7 - -C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8:32AAB72FE2809153140156909B52F414:\ -C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8 - -C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9:91EDBD3465D1216B3564F094455F0ECC:\ -C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9 - -CACACACACACACACACACACACACACACACA:4D14F0124000E96F09938906B99415BA:\ -CACACACACACACACACACACACACACACACA - -CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB:297F6B5BF3A01B1D87B7B74DF4E9DC2F:\ -CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB - -CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:BCCE55DCAFF6BB7B4D0CAFD112E87FCD:\ -CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC - -CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD:D7A1E8E4624689000AD7AFB06982D8FE:\ -CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD - -CECECECECECECECECECECECECECECECE:D59DAF6299A27A5DE36F7090B777673F:\ -CECECECECECECECECECECECECECECECE - -CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF:A5ACE3553FB387187CCFF88C3DEE1ED7:\ -CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF - -D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0:2CCF6DD6EBEE7C4A4C5586EBF792AC57:\ -D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0 - -D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1:695849E45DE312A07C5E8A6C1C20D6B8:\ -D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1 - -D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2:5E14D156D004D484E040C354F13A8F63:\ -D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2 - -D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3:E4CD1852605EDC0FF576A8310FED4883:\ -D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3 - -D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4:BC7EB0533C90715C314362B1FBDC3545:\ -D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4 - -D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5:AFBDF9336F9CAC06313181937FF1849E:\ -D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5 - -D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6:B590131983C4E266BDE99D577C493B67:\ -D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6 - -D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7:90921A3641666DE025E42B1BDC891FBA:\ -D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7 - -D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8:E3B79B1EC3FA41E7EB3C575ED197588D:\ -D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8 - -D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9:5D9B53924BFCB123BEF8F3C5431103F2:\ -D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9 - -DADADADADADADADADADADADADADADADA:12BB6C3773F42D7AB2BD711C3DA6B1F9:\ -DADADADADADADADADADADADADADADADA - -DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB:A0D2449463DDB310E0D4D0B547043FA0:\ -DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB - -DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC:B1E70695E833951DA0C4B38CDA067ACD:\ -DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC - -DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD:19AA0D4A04DD8C93935FCB3F39A0D2CD:\ -DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD - -DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE:98E4BAC98E4B1559B07E3A323D352964:\ -DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE - -DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF:4B88F29F1DCB339CEF6C80EF949272BA:\ -DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF - -E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0:8F3C7931AC39D8B62C643BB3AC2C731B:\ -E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0 - -E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1:D620AC385CAA42FD228176995C7EEC61:\ -E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1 - -E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2:D99A20E342818B37A21C87F35C19D559:\ -E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2 - -E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3:0817FC31D13725B3F64790470C883F22:\ -E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3 - -E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4:945FE4DAEEE2AAA1EFE80022311B1040:\ -E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4 - -E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5:F5976BFF2CE360F3A75CACB10B1B26E6:\ -E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5 - -E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6:4D7118A0D1DE4AB7E43765B2E2AE0EE2:\ -E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6 - -E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7:FC428DC79787BBAC03937C6C0FEDA673:\ -E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 - -E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8:6DF3580C31F389C898CC905582BCD920:\ -E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8 - -E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9:6B74DC42605029718F4D0C060547CC8B:\ -E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9 - -EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA:B587D402AA54E60DB655B4164847ACA1:\ -EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA - -EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB:16313A473EFCB6D965C5F1426785B472:\ -EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB - -ECECECECECECECECECECECECECECECEC:734356F14E8A6C5775A4638BBDFCE111:\ -ECECECECECECECECECECECECECECECEC - -EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED:F66FFD7385B4A87A9E2865D70864DAA6:\ -EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED - -EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE:FB7FA84127D218FDE6A24CA30379ECCC:\ -EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE - -EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF:4FADBE831B78D6B3C59DCE8B4293BB79:\ -EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF - -F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0:DA219657EA1AB63EA46306C2D0B69186:\ -F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0 - -F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1:34BE2E9CB3C4047884CB291416D037C7:\ -F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1 - -F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2:384BAAE4DB758555E2DB6E2995E0CAEC:\ -F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2 - -F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3:7338107A3D9BF3E8C67936E1CB77A22A:\ -F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3 - -F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4:217BC7820BB5A9183D95BF7E99180B87:\ -F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4 - -F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5:56BA9C916AECDC51203CB6BA5FEE8D3B:\ -F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5 - -F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6:8CCA87B86BEB5CCD11A594F20AD5D1B8:\ -F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6 - -F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7:CD0230DBA2982BE4F126FB2E80AB2C24:\ -F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7 - -F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8:A3E46629CF9D1D6DD1A6DE82B86C5934:\ -F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8 - -F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9:AE18D7C35968E90CECA036CF586EB963:\ -F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9 - -FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA:3B0261B9DA91346FAD84DD9CC9EC4A37:\ -FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA - -FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB:9F3E91301511409E1F997A080F9A9424:\ -FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB - -FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC:F1BF5CCE9A7D5FBE759A579640348692:\ -FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC - -FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD:D192CBC80E653C12C647C1EBEB56AE10:\ -FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD - -FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE:64F5B3E91B4CC3C35AFB6793FCEC836A:\ -FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE - -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:EFB109978422E50FDCB05335D050D0D7:\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - -# From "The RC6 Block Cipher" v1.1 - August 20, 1998 -00000000000000000000000000000000:6CD61BCB190B30384E8A3F168690AE82:\ -000000000000000000000000000000000000000000000000 - -02132435465768798A9BACBDCEDFE0F1:688329D019E505041E52E92AF95291D4:\ -0123456789ABCDEF0112233445566778899AABBCCDDEEFF0 - -00000000000000000000000000000000:8F5FBD0510D15FA893FA3FDA6E857EC2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -02132435465768798A9BACBDCEDFE0F1:C8241816F0D7E48920AD16A1674E5D48:\ -0123456789ABCDEF0112233445566778899AABBCCDDEEFF01032547698BADCFE - -[SAFER-SK(10)] -A0A1A2A3A4A5A6A7:41246B65F1DC6AFA:01020304050607080000000000000000 -A0A1A2A3A4A5A6A7:5CBD77B03626FE3B:00000000000000000102030405060708 -9091929394959697:9EAA4DF1E0EFF445:00000000000000010000000000000001 -98999A9B9C9D9E9F:4CC14838399E532D:00000000000000010000000000000001 -B9BA26C1B67F9692:75AF0AEF94E54122:053D79C5CFC7E2A3244F888CB0336DBF -382395FB04EA1FD6:8162DBDC5984CAD0:438C2106DD87C2A0741F66A28D75A962 -0C07884F2D4B7645:64C8047DEBBE6895:8A5CB47F29F8B1C79EFDDC95EAA8DA2A -FD8CD3214D56917A:3360F9F4A25D0D5A:885588FCDBDDF30BDD55D6AD097594A7 -D2A9B8F6A027F02A:D750587CC46CF3B7:D020D65E6FEF3C7FD60413E04C71F8B1 -18AC5F07FCF872E7:557368277E129BE6:228A5CFEF727066B2E682DC8E40CD629 -4438471711225573:B75E4C4155A67C4F:360495E7E4784CAA34E42C12F125B71A -5ED88B627B5C899D:B356A077F9DB11DC:850F94815381C03111F45EFEE704AB48 - -# From RFC 4269; the first vector also matches the one given in the -# PDF "Test Vectors for Modified SEED", from -# http://www.kisa.or.kr/seed/seed_eng.html -[SEED] -000102030405060708090A0B0C0D0E0F:5EBAC6E0054E166819AFF1CC6D346CDB:\ -00000000000000000000000000000000 - -00000000000000000000000000000000:C11F22F20140505084483597E4370F43:\ -000102030405060708090A0B0C0D0E0F - -83A2F8A288641FB9A4E9A5CC2F131C7D:EE54D13EBCAE706D226BC3142CD40D4A:\ -4706480851E61BE85D74BFB3FD956185 - -B41E6BE2EBA84A148E2EED84593C5EC7:9B9B7BFCD1813CB95D0B3618F40F5122:\ -28DBC3BC49FFD87DCFA509B11D422BE7 - -[Serpent] -D29D576FCEA3A3A7ED9099F29273D78E:B2288B968AE8B08648D1CE9606FD992D:\ -00000000000000000000000000000000 - -2D62A890CEA3A3A7ED9099F29273D78E:717EB02EB81A2E939D54ACA91087112D:\ -00000000000000000000000000000000 - -D29D576F315C5C58ED9099F29273D78E:0D809C5EE82F477EBA7B956DBB23463B:\ -00000000000000000000000000000000 - -2D62A890315C5C58ED9099F29273D78E:0F0190D616F5294112FFB7884E8B37F9:\ -00000000000000000000000000000000 - -D29D576FCEA3A3A7126F660D9273D78E:41BA1B505386B7428B88338188F7E718:\ -00000000000000000000000000000000 - -2D62A890CEA3A3A7126F660D9273D78E:A3348230BF5CFA552F88D22463D9703A:\ -00000000000000000000000000000000 - -D29D576F315C5C58126F660D9273D78E:115351622E016BCA26918D17E13225F6:\ -00000000000000000000000000000000 - -2D62A890315C5C58126F660D9273D78E:7EE4E3F2C46FE52ECBDA044C585717DC:\ -00000000000000000000000000000000 - -D29D576FCEA3A3A7ED9099F26D8C2871:563A8403FF5309D62370B1DCF5A11EDD:\ -00000000000000000000000000000000 - -2D62A890CEA3A3A7ED9099F26D8C2871:2F7D73602B70CD2553E44C1D3F170126:\ -00000000000000000000000000000000 - -D29D576F315C5C58ED9099F26D8C2871:155BBD9BE3A965B345E834718F651CEF:\ -00000000000000000000000000000000 - -2D62A890315C5C58ED9099F26D8C2871:6CC65E8C5C566E894817350F497816F1:\ -00000000000000000000000000000000 - -D29D576FCEA3A3A7126F660D6D8C2871:EEFA51FC91FEBB6E9F8CB141CC0EB6AF:\ -00000000000000000000000000000000 - -2D62A890CEA3A3A7126F660D6D8C2871:3C6F8380CBD3C996167F2F0E90E71B75:\ -00000000000000000000000000000000 - -D29D576F315C5C58126F660D6D8C2871:6C87EB62A4975356B28DCBF6A64A0BD1:\ -00000000000000000000000000000000 - -2D62A890315C5C58126F660D6D8C2871:07206D48FE6DBE19D50314B90AC87B83:\ -00000000000000000000000000000000 - -AA26D561F567520E8AE47528C24C18D7:35706F9B26007071AD8105CFAA1C1E2F:\ -00000000000000000000000000000000 - -31A2193D9A97FED6922B17AAA6372B74:F7FEAE5CEC4D11477F24E6B200906870:\ -00000000000000000000000000000000 - -BE5DEBD559E303C9C92B174A5107BBFE:3C0E29E2950F2AC2DACD63DEEB5C7EFA:\ -00000000000000000000000000000000 - -B626D8F65EDCCDF3AEE475C8A1837722:9FDB9F3B740563D5518287DC981FC9CB:\ -00000000000000000000000000000000 - -41DDE7C1F1631F5FDED4F42746471BD6:46D4B5A5A86FEC08FE70D18297DCF510:\ -00000000000000000000000000000000 - -51D238BA86176EFE39E4695AAEB73B52:72DDBE038DA040EBB12C509F5940A212:\ -00000000000000000000000000000000 - -EA5926CADAD8018962E469BA920CB8BF:DDEB59F02132BE4581FC23EABAA960D6:\ -00000000000000000000000000000000 - -1EA9062E4D9CEDD5FAD4F4C7990367A4:341D9352E36DFD6E4EAF0F6F439BC8CE:\ -00000000000000000000000000000000 - -B966E5C5D2277288C61B96A559CC84AF:73A9AB3164FF30350F2DC08E939A104D:\ -00000000000000000000000000000000 - -B6A6583C5AACFCD6212B0BD8AEF3C6A9:6DF0C2C28F8E2D44468A61278BB6B429:\ -00000000000000000000000000000000 - -A11DDBD175639341052B0B384678D8D9:4DAE45AE0CAA032FC97CD4D8C57FB83B:\ -00000000000000000000000000000000 - -352299B71DD880E29D1B96452DB86540:BA8AFCAE22070BC882D3A42B38A09E65:\ -00000000000000000000000000000000 - -6E5D67CBD2233FD96DD4E85519F8C8FF:BC787554E0C28FE2787025A98E0E09F0:\ -00000000000000000000000000000000 - -15E936EA422C6CFE751B8AD79DB36621:86B80E7CB3786BCA23C7124354EA541B:\ -00000000000000000000000000000000 - -CED9A660F5589101511B8A37464C94C9:27F18C72F85905209F5603255B3F4DDD:\ -00000000000000000000000000000000 - -5992083E0D98A0C436D4E8B529F8C568:EDD2E4CF5B93C4312E5ED4F052C37897:\ -00000000000000000000000000000000 - -C8069CA67710BEB0973E53F6CF83F5B8:BBAE1F0CD912C15C0D6D531272BE5CDC:\ -00000000000000000000000000000000 - -209715348597D7935E59FCCDF462573A:538D750947CCE6E77C30A12732210008:\ -00000000000000000000000000000000 - -F55F291D8B1A23EBBC59744F266F0AF0:DEF3EBA592B3C325CBE4422B28708AE9:\ -00000000000000000000000000000000 - -B5F454770B8E202D32B69CF3C519564C:8629BE92247614A971C111CBAAC07503:\ -00000000000000000000000000000000 - -91447D195D011E605F6AD3EDD4FC375F:D591160C54C6980F2FB1289A290FB8C5:\ -00000000000000000000000000000000 - -39D8DFB5BFAE1EFD70243FA5C3592FD2:DD4E7DF8A2D94C073CE393A5D8F3BCC3:\ -00000000000000000000000000000000 - -80ADA9A56ED30915F209FC358BD23B13:16EA9B34329DEC0DC264A89531096063:\ -00000000000000000000000000000000 - -B762E58E9BC97C5B493EF8528DF0817D:81DDE46038411A21D84C46437D655E3C:\ -00000000000000000000000000000000 - -4163A1972ED201DBF666AB3F1506F316:E3D84AE8D29F438C93FD6F09A7E93E9B:\ -00000000000000000000000000000000 - -A429DB53BB101C18DCC2E4A1E6CC9F76:EA5A252DFD300488151DFBF42E0E0BDC:\ -00000000000000000000000000000000 - -D9E13DD7B37EE0096808CC1D4222E646:BE5932C7D8D87A02A6638ADECCFC10B0:\ -00000000000000000000000000000000 - -4190EB60B88C95F231EC6D7E20CCD8BF:D511BB2C012F08F1DB69B6CEC7BEC9A7:\ -00000000000000000000000000000000 - -1591F916E4E78577C46B226D0BFF2D18:4FA2AE41F506315E9D47F1538CBBF7DC:\ -00000000000000000000000000000000 - -2A112D319CADD403DED8F45A858A5864:BA00755699ECBE4DE4F507C11495880A:\ -00000000000000000000000000000000 - -65A3B7F6A32DB892F14275DD6934953D:EB81259E6EEC5F63DD0B3A4D7A304369:\ -00000000000000000000000000000000 - -AFB47A94B46DD4070782C7778D0BCAEB:CBDF5E6AA6C4D2D2112C5DA41BF7A998:\ -00000000000000000000000000000000 - -040F6C0CCF32860A3659483242B7938A:B80F05173C3009141E435A54787D9B11:\ -00000000000000000000000000000000 - -783C76251AB9E2AF1A7AAE0C103F7022:A4B00C8DE27F64FAE825F68446414CFF:\ -00000000000000000000000000000000 - -B4CE06347BCC27D88D8F9517511489BA:9EC055EC16A197AAC35C42DAF73EFDC5:\ -00000000000000000000000000000000 - -1D5F46424382FC14A88D11101713EC27:6D6EAAAADDD78F048D5DE03ADF132344:\ -00000000000000000000000000000000 - -A7D01D3962F7EE0506ABB0CB05BE3CFD:A29C8E4D019EFD52F5B3A924F78283FB:\ -00000000000000000000000000000000 - -DF77E42579E404C59D1F2D6282742AA8:21CA94A86C4B89E7D6A31A47EF13153C:\ -00000000000000000000000000000000 - -7C94C333B3129977B82B602FC6C34DBE:54765313C008E10DE032EF1CAADBA78D:\ -00000000000000000000000000000000 - -65930D441118388F839C48E87B3E1BA7:52929868115B6062648DE05D79EB026F:\ -00000000000000000000000000000000 - -33CA3DE47EFBC84D7FE3F5232F61FECF:49CBD717BD816CC9875BBC3F53C47FEB:\ -00000000000000000000000000000000 - -B4FE9AA29F6DEE99AAA46C6570C7EE94:8F4F803A44EEFB7322536211C9345763:\ -00000000000000000000000000000000 - -68BE8C46506743BF1B3C8A8826A4A609:6695C1F06CD1B4F465741F4518024AAA:\ -00000000000000000000000000000000 - -1CC8D6A3BE440FE4405E60C5318EA5C9:BE03C9515368E75890EC686BFE2FF646:\ -00000000000000000000000000000000 - -D00215D6061EA7A71E11B75A1D26430D:C3E2D4D0E8D0B41C30C8D87C13A49AD3:\ -00000000000000000000000000000000 - -CDF77148A39069E3BCF653FCE49366C9:4DF17345CF351AA676DD7B49938F7A52:\ -00000000000000000000000000000000 - -0F99BD50EDF7302DD7856AB5D615ED28:0172427A635F7D98BE4918C5AE2CB716:\ -00000000000000000000000000000000 - -66B77651ECF45BA521AD382EF3924728:794179D58EA6DBE6C47789543EE4C942:\ -00000000000000000000000000000000 - -447D7F32776EBC002D2D5BF157B65831:96FFDD0C7A8B148E2A56D23613001F07:\ -00000000000000000000000000000000 - -2AAB6D16B7D60DCE7F04B82155F24D84:FA241459469101FB4BCEACE6B5400592:\ -00000000000000000000000000000000 - -E58BB7447F6D10E7A004FBBA0191E9F1:F3789C8F92D55B6F6AA2F15DA3E3360D:\ -00000000000000000000000000000000 - -DE491798D0F7C403EA23C5BE065ACA64:240734AB5298B82E77547C5598D78F9B:\ -00000000000000000000000000000000 - -B7E4DFC5707B8BD443C44E60CA4FB33A:C987AE5A52023829ADECAB587EEC9FF7:\ -00000000000000000000000000000000 - -0F697B4EBA007B17E87D34AA5820BABE:D4F00A5171634F670D9A66641FF418C3:\ -00000000000000000000000000000000 - -B202A50E105E4C16EFB7E3CEB213D8B9:CEDEA26248AD109772F8FA6CE6840C10:\ -00000000000000000000000000000000 - -E5F9ED7FE679B4BB49F6CAF8423F4847:BB0CCA155A25E4506AA2872023E3DD42:\ -00000000000000000000000000000000 - -0EF0B59EE379CF782DF0B241FA0A481C:1558C66C18CDD1BF7FEABC12CA775765:\ -00000000000000000000000000000000 - -01297B97E8BA8CC43663B8F0587515CF:B9126AD2C22415E0D1DD0C46DFF4FACA:\ -00000000000000000000000000000000 - -04489483EC2124D4CE0C0D3532104B7E:3EA18AB75E496036A5B39C799223A40C:\ -00000000000000000000000000000000 - -2CB4E6700F324861F2675CF83D3E46E4:2F2599FCE02040B2B6511E6E0CCC4FF6:\ -00000000000000000000000000000000 - -79A4343D86C34E6F7FEA9F653E9510E2:9790DFE1ACA13EC9AD806E92925AC60A:\ -00000000000000000000000000000000 - -C48B333E3A297E4F078917922EB4112C:789BE31FE49273B1B9D23F3266E4E3D4:\ -00000000000000000000000000000000 - -8972CCBADC5B0506545466096C1D681B:E6B883BF48E1D41DBD59C5A1A5CF0D37:\ -00000000000000000000000000000000 - -07237CA5F80AFE75C531A1AC3C1AB011:C01C0D59B22FAD158C64FB7D9EB947E2:\ -00000000000000000000000000000000 - -530FA49A50BEBC8DF5B6551AD9DEA834:4839197697C73DBFFE1EFFA41418F1A8:\ -00000000000000000000000000000000 - -A37E6DCFD78A9367E0FD779EADD0E662:AD630EB9AC6CEBB004DB1FD6F7498CA1:\ -00000000000000000000000000000000 - -39B126834F71A6094145AE2C544C99D5:CF5F4208B97871A91F63C34E008E515F:\ -00000000000000000000000000000000 - -21C00D004653C7C46A48DBD99C58D420:11F9C2167F6C6151B1BD5BE2FBF8F415:\ -00000000000000000000000000000000 - -1D18D1F2EA9B2175E26F4BBBC6482EC0:C239C8DA7E469B1B360DE30B20CA948C:\ -00000000000000000000000000000000 - -2248571B13111E356A35583A346B533A:813394500C7B0A98B09360729C4C8990:\ -00000000000000000000000000000000 - -AC4E8230E1608BC860D3B15CCC3368F6:4C6E93F6A3D8FB4A0B0A84BCABFBA324:\ -00000000000000000000000000000000 - -9ABFF385FB69343F3155F005D1596C9B:50F442C56402B11FD9D1FB3BD13363BA:\ -00000000000000000000000000000000 - -52BD6F4E00AF26D08C240999EE8FC068:348D5F27D16C2716257F3AAA15283D5C:\ -00000000000000000000000000000000 - -E13E6BEC7B8EF6A26CF9EEFFFCB4BB8D:80048BF39DBBCBC3E5F11B523AF6E0AD:\ -00000000000000000000000000000000 - -5D4DDF9DFD43D9F269875972C5FDCCFE:F68CF795EE3094B23F312CDF347C4024:\ -00000000000000000000000000000000 - -C921BF10C4CAB3382CE78D35AEF5F36E:89009C9DB4733E7141FDB3212A412A55:\ -00000000000000000000000000000000 - -0EE30D5BA455F2105A1383E5234B25D6:3A5732BFCACCA7BCAE28BA212E2AE4CA:\ -00000000000000000000000000000000 - -7F30A307539BAF2BFA49E502F5FDB8C8:4D5F7C864D5A976FE623661D16CBEB36:\ -00000000000000000000000000000000 - -53DC7D23C91E3A3A993DDA2812406581:C93A2A92366C3C68E968814ED86B9EB3:\ -00000000000000000000000000000000 - -DBED8AB859453434ACB9E9F00CC077F7:D57191D7507746469BE9F27BAF5341D9:\ -00000000000000000000000000000000 - -6EE7D04DE056DBEBF6F76D646F5DDDE9:09E07FD8F84AE4909724703908D45358:\ -00000000000000000000000000000000 - -FAEE35C526B6D55284C50EA16B64BE75:52B5F265E0896C74F9A56962DD186EBF:\ -00000000000000000000000000000000 - -D1705E0D4414A331C698D0B5E7989F36:3BC372D47BB6298CE06DFE595B21AA6C:\ -00000000000000000000000000000000 - -FB1B87236E1B410800F4DEE6ECD1B475:EA0BB90C4B1DCB1D3A558FDEB539094F:\ -00000000000000000000000000000000 - -4DAAE23B2D96FA15733F64DD467B7B0B:FF9A1304937373A6BA1281A6C98A68A2:\ -00000000000000000000000000000000 - -0F61F575FD7CB6AC4EBC7E71D0F829BC:296A56189308CC6225FE28975AFF009E:\ -00000000000000000000000000000000 - -6D982DF029336B52CE5366EA1F707506:DE7FF6D41A3E69D6C21237C11BF41744:\ -00000000000000000000000000000000 - -D5D957B00EF19E7AE697F7BCA7766EE3:FFB2D4E3F9E2EF13969C8C885499D568:\ -00000000000000000000000000000000 - -FD18E498687DFBEFB5067ECFF123767A:0DAE1FDF0C4BDD0C39F7B920AE9A5A5A:\ -00000000000000000000000000000000 - -2F147D418659A6B46C6720090BC853AF:EF325356C760D3469E780E8E9F1A4C44:\ -00000000000000000000000000000000 - -F5BD9A33B96599C94EFD295F22197D8E:D49C47B7CDEE3C8DA1FD9706B9FD1EC4:\ -00000000000000000000000000000000 - -7D1929516793AC62EB5667DF9230E7B7:916A025A18196132AEFF32BF23E56808:\ -00000000000000000000000000000000 - -F6F185D1D9E5EF5E681B4E184FC803F0:3DCECA80A345D536020E821D67A4C42F:\ -00000000000000000000000000000000 - -8DCF813E1D32B6A462980606D5DA6C25:FD658AD24B0381E823217B2CF21F41E4:\ -00000000000000000000000000000000 - -311E5045D5D9FB6A9D65BE54391CEE38:98A92CBF1276C729261107A77511A3B5:\ -00000000000000000000000000000000 - -DB40EFC568A20FF65ACB58D46A0089AE:DAE0F812A9360561FE22DC8AB7F308BF:\ -00000000000000000000000000000000 - -3FBAD200F06A92BAB275AA0FB972FDD5:D024879EC26117A5C5B46447F3462520:\ -00000000000000000000000000000000 - -20DC7FDC121EAFE9084B3B6A223DAFCC:578341CB5831659ACA48B684404B45A0:\ -00000000000000000000000000000000 - -3B07F74CD998A7CCE14E4FC9D427E7B3:6E776DF83149BE88CB7C3C3E85C52F1B:\ -00000000000000000000000000000000 - -6469947C896B34C73AED82A38EFD7F42:C29EC8D5E338F0F928A86D7BA58CFEA9:\ -00000000000000000000000000000000 - -D26A6C2DEC69974265FF4452ED78F9AC:2F9F52D492D6694BD8D660CD7EF25D08:\ -00000000000000000000000000000000 - -392B09B430F1BBEF1806301374D5491C:0D5DA605AA771221251247CE79A2170A:\ -00000000000000000000000000000000 - -51B13ED142E6753C3D22FBA60CD56D7A:CF1774242D11FD50D33651BA798DC586:\ -00000000000000000000000000000000 - -F2CE749AE7D2A8E88E74EC43F50A6D83:7BF824A096D89F306543AC012F041ED8:\ -00000000000000000000000000000000 - -48B1659A4894EF28ABD7A17E2BE14507:130F39B7C637E478E8D195DE909C98F9:\ -00000000000000000000000000000000 - -2055A572782886EDC765497F6EED3860:A2E4F4E46D105904CFCC86C42E961ACD:\ -00000000000000000000000000000000 - -BE4D786EA252B372FBEC796CA944218D:D252DAD9045BECD279C72E53CB32491E:\ -00000000000000000000000000000000 - -AB720985752D3CED567366A2D66B5135:14D0B9D509F67CC6808B7CFCB64A180C:\ -00000000000000000000000000000000 - -2990B16179DFF02E3BE5329204CCE071:941A767F37377743639DF4C048C28CC6:\ -00000000000000000000000000000000 - -4AF02F69409FFFC5CD3E85912C68E384:26B7C40C96737897958DD86100F3B94D:\ -00000000000000000000000000000000 - -D5D43ED9513ACC71CC0380B7394DF738:8693A664C7E7546C5A6E23EB2E71CF83:\ -00000000000000000000000000000000 - -3B9BBA2992308915335F3FA0A0E12A7E:90DD602148161FFDE08D4983310DE0F2:\ -00000000000000000000000000000000 - -3EABFE15DFA13C3AED5A235D9616573F:1ADFB865A7ED2B588BCD0C346AA75BCD:\ -00000000000000000000000000000000 - -5357004733F6764F2495D7F602FD022A:F58BBA768C585C74583A71C7ADCBC5F6:\ -00000000000000000000000000000000 - -C5A1B211FA6D99D16C222B19DBE89806:AFCDD53A8A91AB62D4CA3915C5564473:\ -00000000000000000000000000000000 - -3E0995AD461831F731F5B5E8FAD4A32D:5FB04B5BA62C0DCDF8267567A166DEAD:\ -00000000000000000000000000000000 - -AC411EBC593D98A7573F0B03D18AAC71:6FB6C6D44F2E2F8E8D0FE03E639CA510:\ -00000000000000000000000000000000 - -CDD08D46B811A65FC48C34CE53C59273:869346200E0172F2EBE0FE696CA3206E:\ -00000000000000000000000000000000 - -53DB8DD086EDC157FD32EAE98974E659:1CD6CF6FBFEB98FAC7DDCD894374B66B:\ -00000000000000000000000000000000 - -BB380D75D07B8BD9A28F64D3F28FE126:646258E3B266E237572F050B7DD3C021:\ -00000000000000000000000000000000 - -A8DA4DE3772765676DF3035C5A6834B8:E8B76AC77E9BFFAB29C56A12F57FE5E1:\ -00000000000000000000000000000000 - -611E145BE9A042495037D07CE05A9C9D:717F5F9EC522FD63B46DE9A1F6CD3DFF:\ -00000000000000000000000000000000 - -B9EDDBD7DF2571DE135FA8F59E6F5E89:7FB7A904184FC463C453BFF8BC72912C:\ -00000000000000000000000000000000 - -BC70C6C532A9D8244AD957961652413E:C4AC50B64A9481062AEEA13B014A8C62:\ -00000000000000000000000000000000 - -9A977CDD70FB7B78F3CA0075A7F310D5:E8EED73C37662A48C6CA2FE299C50CFD:\ -00000000000000000000000000000000 - -CB1BDEEAC3B70C36FA65C5DF048EC7D6:5118E27A48630ECE2595DCE5C44DB8C1:\ -00000000000000000000000000000000 - -17C72CA5E39979F512AB6011D12FFE7E:9C88B75ECB151EA0F1F4376C8B1B2897:\ -00000000000000000000000000000000 - -B27637FDEE19BAB2EF984C20BEE9DDA1:053AECA22ABC1BAD69DF4A41457B7460:\ -00000000000000000000000000000000 - -242243B52292ADDEEA14D6711A809279:EB1C28238D1B7612FDADC261D8456040:\ -00000000000000000000000000000000 - -BCB05C0C37CE62E13718A4DC5D621759:BD3E796894AF2B24A2899615B76CE2FF:\ -00000000000000000000000000000000 - -F1F023BA8CD1278324FDADDF3D445FB4:0339029B1DA61D7EE7B8B774163A3589:\ -00000000000000000000000000000000 - -89459F7AA6ADD48B6E06AAF1AC94B488:6E460FEC45A03803F3F355C9DF9BE119:\ -00000000000000000000000000000000 - -8C0EC9B97B507BEDC21F02E8618EF5D1:EA1C2DF3021D879FC96D43FD0E67D653:\ -00000000000000000000000000000000 - -730E499138F578E5DD6896CD2415E278:237947AF67F07E80E0D2F3657BF80EF6:\ -00000000000000000000000000000000 - -8747CD711F39542D3ECD9C3EF11EDFCC:F292F6D7289ABC04D56AB7EE165DADCF:\ -00000000000000000000000000000000 - -EFDBAE4C02A4107E9BF71D14B380ED18:E44920E63171DCC895A0D26073ABC120:\ -00000000000000000000000000000000 - -A32A5731115EBB36AB0EB2D0435B0CD2:DCE9D7EB5A29646CA29D017D84671F4C:\ -00000000000000000000000000000000 - -648B7ADA19C5771CCDDE7D7FD8506C02:8BC336B3F819C5B95B5AB298AA5853A5:\ -00000000000000000000000000000000 - -FDEFA249896CED942F1560A2AD3D139B:F2686F27FB99CCEF669DA54F90EB839D:\ -00000000000000000000000000000000 - -4CE7F6748F7392F1FFC41F850E6BEB39:8D2143F8CE3DAE97CB36F9297ED0FAAF:\ -00000000000000000000000000000000 - -289106867C6A9F0046AF56EA694382C2:CE37C384B398767AFA386F923116C295:\ -00000000000000000000000000000000 - -E8389ADF540B748F3E9C8C553A9163BC:3B6CB9999BD604C41A6B979AFA58DDD5:\ -00000000000000000000000000000000 - -90EBF973D07E55241F5D435A7582931D:EE539308E76F1F6202769E1BAE8105E3:\ -00000000000000000000000000000000 - -DA1A98DE32FD428D031A411929DB7504:EEFDB3E1F832574F234D8129A2A7BECE:\ -00000000000000000000000000000000 - -DB6E1AE2CA58D3BBE82C52BA78EB9132:FB0C6C046B6E469132FC1E6D6467D299:\ -00000000000000000000000000000000 - -E218EEBE311B476B257DAAC37CB19BF5:069A62FA5C38E1C3F599E1F1D977ACDB:\ -00000000000000000000000000000000 - -122E5E3D0F9787804FD260AED930EAAE:D62B5083A1A2B3E8B26D38E58875BC8B:\ -00000000000000000000000000000000 - -6DDF3961CC91F485601683CB28355E6E:9ED29AA0A1F244935003BAE7951F90D8:\ -00000000000000000000000000000000 - -4B5409AD15C3F64DDF4B4636E17C9EF0:E7E2B8F0E936B4A9C0749F814582D1F1:\ -00000000000000000000000000000000 - -370AB733167272FCC2D30497CBBD3B18:0FE76FCA68F0E3CA774DA899A3423A81:\ -00000000000000000000000000000000 - -51816B90928F39AE99B6B8E7158DBCF6:24C9CE99EDE5980D94CB0D93B3CE05DE:\ -00000000000000000000000000000000 - -FB8CA3CCA3D18BD6D57B94CEDE433940:E07C63764F102CF1E1FE98068B97DBC3:\ -00000000000000000000000000000000 - -9AA179B7064787F10A64C3CFC4ECE5FA:754FE2C1C97B5108164D0166CE7D71A8:\ -00000000000000000000000000000000 - -18A7119DBF80C5C4BEE14716D5E69F7B:9A843E069C5564C071A941331A002905:\ -00000000000000000000000000000000 - -0CF4DCA9009625FED6E6181CE2EE8612:1E1CA36CC5342007172C1261959768C4:\ -00000000000000000000000000000000 - -FD53D3A5CF0AE84E6CD4F53336903AEB:F39D64F848DF16A5E6F3D03DC459A4DB:\ -00000000000000000000000000000000 - -4190FAF3D1F5B836F34B6E0D786802B4:30243B37B0AA5D7143F3AEAB57BE46C2:\ -00000000000000000000000000000000 - -E62ECCCF59A672463BCFBB384B5535C6:4CC047EF63B6D3CD41A5E2E2462570D1:\ -00000000000000000000000000000000 - -AE41BD59502A0CC6DAE7E9421854F7C4:17892D8679C543B025EE84230BC8B8C2:\ -00000000000000000000000000000000 - -8F094A8E5134FB06CC1E77D0542AE5F6:CFCD1A77DA12D6C79622EE61C4994F2F:\ -00000000000000000000000000000000 - -B11E3D28143AF33E2151E20DC9EFDB23:A31237E0F2CB986413E3323557EA1C3A:\ -00000000000000000000000000000000 - -E9637CE7F9CE8B647E560EEE8249B679:37F2B64F5FAA034E5A80C36E3D0A7AC6:\ -00000000000000000000000000000000 - -D41B8500710948B58294F5A77391EC36:E12FB1156FCFF78FA862AAF199437E48:\ -00000000000000000000000000000000 - -0AD9BB60CA674E99F7451383605E6112:A03BC6579A199A2F2E4CDC3353CAD7DF:\ -00000000000000000000000000000000 - -87BA07D6AE903577E59674C3280D59B3:D2BF2C2DE6F8FD4F879D16F96948226B:\ -00000000000000000000000000000000 - -92CD3EF1DF2102592B7B934E30971274:3CDC2CEAF4AD7A0E9973117B724136C8:\ -00000000000000000000000000000000 - -CDC62C36124C52D43864CF072D664410:4B9581DAB0FA33AA0C458E0F33C8F641:\ -00000000000000000000000000000000 - -A264DEC31ADDA880DB44D3D71C56F947:249D99A653422A9A01E5D6FC627883C9:\ -00000000000000000000000000000000 - -683D38A1C9416EC1121A5B9853B80B07:0C576DEA6233A44810146E0ED3D91127:\ -00000000000000000000000000000000 - -02E07632B8E1501FBED252B7491109B5:0AD78847637AD074B143DBA3ABF6A369:\ -00000000000000000000000000000000 - -6075E57D9CF6038882173A7F1E0B6B3C:54470D4B79E9376E68202C84E7FFAA0E:\ -00000000000000000000000000000000 - -FC44FFC49644133BA8F38B6B413F9B29:86BE58BB56E46A838E665A087D0AD1F9:\ -00000000000000000000000000000000 - -51C42552F01FEFDA492F6AB73584850F:482DAB7D2E967D6C3311BB6EB2F31C81:\ -00000000000000000000000000000000 - -10944915AACC670E23F4ED5CD98060B7:7C5F56D22104F4C73DE80EEF912CD774:\ -00000000000000000000000000000000 - -2E712621DB2DE5988041135782E613AD:ECDA11FD5472CCB163AC8CA311A5DF73:\ -00000000000000000000000000000000 - -0E3424038BC7047EDDDF0F3CB39F67CA:53E0F05DF0D4982708585E87D0789DBD:\ -00000000000000000000000000000000 - -0D94BD2667DDF384170B7CC0B725AF75:996E17E32523578DFF2B760CB49FA31D:\ -00000000000000000000000000000000 - -DD3E7CBFA877D46641F36CE6119D7CFF:DA019370BCEB7F587FB078D59A948891:\ -00000000000000000000000000000000 - -42FE27B2956E244C76F1625F22A889B6:3117DFE6E8641573030640CB6F5A9556:\ -00000000000000000000000000000000 - -2911CCE1311117276FB3B7DF33B55108:F0CCEFB7E412E3C83CCB1C16B275D840:\ -00000000000000000000000000000000 - -07F139B45971C6A2840A87BC94715F51:44AC477F1E12DAC54F7D9F4AB4D597AE:\ -00000000000000000000000000000000 - -CDF9F06DEB9BEC8B7D3FCAFEAF215E1A:36BD74FE0E68C6E4D791A526EEE0AF07:\ -00000000000000000000000000000000 - -F9EDCF2F43AB9BF55BE12A50F1B96367:12E01CAE32687BFADAD694D2B52AAC7E:\ -00000000000000000000000000000000 - -440233A437679347D8D7E98FC967C278:81F7C43030989F9D5B41E4FAD422EE1C:\ -00000000000000000000000000000000 - -5BFD6EEDCA5FE8CD57348FFE1128E804:780F4FF8F6DBE3F2F48BC65F0E737831:\ -00000000000000000000000000000000 - -D59500075A5D6F3412A6F4D6E70421A5:E2317139E45C8A5CF542745B79EB1E98:\ -00000000000000000000000000000000 - -0B875ADEC58FBC95198C49C9F5FB1767:1CC7DBD69CFDF1108744C12D5B249684:\ -00000000000000000000000000000000 - -56A7FF028345172C4C2447674C662509:ED35240E15DBE9E0A2F13BAE0471BDB9:\ -00000000000000000000000000000000 - -A5612F7E740B3B66CEDD046F0A5A1A88:3E563E21742D0210553A9BBB356FAA24:\ -00000000000000000000000000000000 - -BF49727B6A2B10E7708CCCD4BF24EDD5:33D2A385C1E5C675FCCBCEE0E43F1329:\ -00000000000000000000000000000000 - -CECF03B03EBCFA19C00056E19495FFBF:F075312AA58C03DF583FA16E730FAF56:\ -00000000000000000000000000000000 - -A7AF5CBE81D125FF604D583A50B8C00D:C4A6996A7F826F0D7126ECE1CF01E615:\ -00000000000000000000000000000000 - -67F6C13577041F4BF64F47D4C87DD9B7:C1C4C033CBFAF73A2D0D477C2B32275E:\ -00000000000000000000000000000000 - -FFD59439BD6B6C022AAB2F40C7ABB76D:E41211B5585A2E17881643C80B2521A3:\ -00000000000000000000000000000000 - -489D934A474700C49AFA42309C44A29F:7E94137A70C5A5757ABB58977C753626:\ -00000000000000000000000000000000 - -CC9D4E7E3A40D3E7B82D52FE59C15A28:C2DF7A7DCB4FA5E1BEC3FA0EC9FC06E1:\ -00000000000000000000000000000000 - -5B94C5125C4DE35E5587A93708E2E748:CAF50E7CE7623CA7970473867D069C5C:\ -00000000000000000000000000000000 - -79257DD42E664E92177DEF817CF86C93:F162F9C2E0AE24F10ADA56C3AB72C918:\ -00000000000000000000000000000000 - -4C9FEFCBB009C651D19337B0DE1B71FF:8231DB207B117B719E2C18E35C8EDF61:\ -00000000000000000000000000000000 - -5C17514070A79F2298252F43EB95240F:D6E1035BB55EFE63DAE750E874122D08:\ -00000000000000000000000000000000 - -7587363E4FBAB6BAC0A96E2E301E2F9C:BF0E4C121F4D92ADC66A58850D87B336:\ -00000000000000000000000000000000 - -2F34D0857475621D88F67B4AC932F63F:DC26468C5DB40EB9B69E2B968B6C9BBD:\ -00000000000000000000000000000000 - -1CC86603D53675CCC0360A362D62AA13:C3C9DCCB758A317630FB54186BEBB710:\ -00000000000000000000000000000000 - -13E024CF1C4EC5EC12DDFBE451462E9A:DC386958E72F8F51BC13191A5B34F3B4:\ -00000000000000000000000000000000 - -C9537865387154E4FFA9600D3643ABDC:1305E15912CC66A2B376EAD51CC48648:\ -00000000000000000000000000000000 - -A0B4CEE79237877C1431AD4CEA5CAD1A:074F192AC9EE825F569FD1674554C3C3:\ -00000000000000000000000000000000 - -4CAE87180B737168FE61765A2C13F393:ACC37301367543AB4FBE6310858A68EE:\ -00000000000000000000000000000000 - -73F66077FF86A53A528B7443D15DE894:32AFF7B87AE33CEA4539800A700510AA:\ -00000000000000000000000000000000 - -CADC2699AB888BAA7C61ABF4CCDE097C:B4FBD33EA3006CCF44514E2DFD6E994D:\ -00000000000000000000000000000000 - -F9A02333EC078EC9386949BEAEE3E77D:BB3D1AB3F206FE54EA92C9F452735F7F:\ -00000000000000000000000000000000 - -592D7FC9A5D85637C46DC7A80EA0344B:AFBE7E97575E89299AFD84BB85AFA1DD:\ -00000000000000000000000000000000 - -27585AF5E51E71F754FE0065C109896F:C15BFBA06F1BE380A4DB959AF9810676:\ -00000000000000000000000000000000 - -B999BC62DE1F2703CDCCB873176B342C:DC91C862BB49B7D23A01A13C92E0F4BB:\ -00000000000000000000000000000000 - -990FE45A78668A51DD3A2198DC94E8E8:97C3D586BFD3F6DE6F8F839F3CC9F9DE:\ -00000000000000000000000000000000 - -E12074137236C60691EC10AE3AC3CEB8:787A51EA74E1060766D4728B07C3AE5E:\ -00000000000000000000000000000000 - -B1AFE403781D9C75D2D10623D913BC55:241CF4705AED389F6B46D0AC8E797FE9:\ -00000000000000000000000000000000 - -C25657A5D97B31F96BB7DE1442622248:D5811CC2D865EF53B64E5A7CF59C467C:\ -00000000000000000000000000000000 - -2E8ADB82E854873F66B1DFC087318433:A09F4AA2E0E51767D051C1FC114E9D30:\ -00000000000000000000000000000000 - -F68DA1B6489815BC440C3D897A0F853A:36AB29DB1A0E7B295D8F61A56526526A:\ -00000000000000000000000000000000 - -18ACD883A6BD96CA32C7579981CAF789:92DD5D2080CF51484C93ADE891361EF5:\ -00000000000000000000000000000000 - -B0C3AEA8F19EAFB8FD7E986EC6FA3266:4F207BFC5E10812C827B13777360E6AC:\ -00000000000000000000000000000000 - -5E2D15D529FCE2A605E7CA372BD1B33B:C5E89179B2D955D740866AEA628F9C27:\ -00000000000000000000000000000000 - -B6527DE3B567C10C10709CB44801789B:11E9B1353CCCDDFCCC63D14674F20709:\ -00000000000000000000000000000000 - -6C7C9922FE4E48A3DC85D4672A5064E5:44C1528E8555388AF8B21E74078E9C15:\ -00000000000000000000000000000000 - -BAA1457430B8D5D3BF7E12AE9BE3FDD0:3BB8312ACB386EC82150C59BE2CCED37:\ -00000000000000000000000000000000 - -C210ECB8699792F39E7CCCBDB9671A24:90543622D6642AB3A24D7B31AD96152F:\ -00000000000000000000000000000000 - -3DF1FF376D026324BB657FECA2A03AC5:CFA51C14006B922AAE044051BF4CC446:\ -00000000000000000000000000000000 - -7470247B84F34BFE5B9F388FF30C7649:78FA69F113F617A4EF68699C28B6514E:\ -00000000000000000000000000000000 - -E4413068106FE78F7C5BD3223AB22F9B:D8F8E4217C642BA8AE8A91D49DDD7A8E:\ -00000000000000000000000000000000 - -95DCCB623977758D63621B6D6F9EE9EE:46FD7A6DE88C7607D9F2B0DE2CD366DC:\ -00000000000000000000000000000000 - -92B11A8AE5474A5FA0969A4B205FF0FA:A4D66D791EE8D4894FDF61BEC36F9A77:\ -00000000000000000000000000000000 - -81F5CA98D085E7F3EEB8B7EC9A7587D5:26E14F3BFC53B8247C829E29AAF36978:\ -00000000000000000000000000000000 - -FCB53FCAFCD1B14ABBB8DDA290A295C4:B0DF814B15FB6F0AA321E44A322C8CDE:\ -00000000000000000000000000000000 - -DEA998B86C1AE2AC866DBAB93AEF5AD1:1DA3F40C119AF23D85E434ACD90BCE50:\ -00000000000000000000000000000000 - -0884D66B4E154E3CD5A13384A181F229:1DE817E7AFB8B87698C86285633027F6:\ -00000000000000000000000000000000 - -65512F9F2F937A058172B0B255A67B67:8308565021CE65DA96CBEFABAFDB03E2:\ -00000000000000000000000000000000 - -D166E04AB120B82AD72B63243F9857C3:C5D055C3792C34A2C0830F174EF60F4E:\ -00000000000000000000000000000000 - -81B86BCD54B212E09D94ED7A6053D136:697642EE1D288AD0E0004F7CDE0D11B9:\ -00000000000000000000000000000000 - -B27258323A5CB9997B729799B2DF709F:FC4F383D27CDA4AF3DE9962DE95A9C9A:\ -00000000000000000000000000000000 - -BC9E6A0F55ABB6AC49F8A41B8F2DFFA2:34CBAF03126E517DE3F851A505A2995F:\ -00000000000000000000000000000000 - -891E3708A695636C791A7954B2263075:08461134E1B40126FC24D3BF0DF1E743:\ -00000000000000000000000000000000 - -FC48B079D9649987B24A15F9E0A3E00F:2BDD51F61CDEB752E07A4AD3AE3D7FBD:\ -00000000000000000000000000000000 - -2034B9788B8AFAB21791389E1ABC01D9:658E89F1B0F1EC177855A8DA60EAE99F:\ -00000000000000000000000000000000 - -F974D4DEE825FE43C97ECE434B4D2885:A0FB5361050AF4D2236AF62C0BC73D78:\ -00000000000000000000000000000000 - -B611BBE6722CF09DB817A04B2E047909:FD6A9802E511A1C8D89447CBC18438D0:\ -00000000000000000000000000000000 - -27212C758C0A0DA224131CECF3FCDD37:C47C31032D5D6E5D81634367B4AD06BE:\ -00000000000000000000000000000000 - -595066C1FF549B917C318676A408DEDD:8FFAD5759EF79843A30BF236D3BC81E4:\ -00000000000000000000000000000000 - -91A284663826FE81E6D615B870BC5EC6:9D5AE4A39CAC235A5E732761F2C33B10:\ -00000000000000000000000000000000 - -BDA05A5C43C64FAD2F8D5D980AB8E682:9EEA78142CC9453D3589FDBABC2FDA68:\ -00000000000000000000000000000000 - -840D3899332A3089F213B71356AB50F0:F8DC249385A0AD72AA2D7E2BE22C088C:\ -00000000000000000000000000000000 - -6DDEAF850B8DE1D95B17538ED3B1257A:0D05DC4CF2879722AB30EC1C651F27CA:\ -00000000000000000000000000000000 - -433CBB6339EFEF9C73AF53A947AF1695:0DE8E406EECEC22E6319E164C71EF908:\ -00000000000000000000000000000000 - -1C437E29DCC4F4B06B7E3E35CB989CFC:B1661E31685AEC6E05A759E29BC8F221:\ -00000000000000000000000000000000 - -9C3B693D9826980B8512C357CFDF1B41:2558229759A3A835E99B60F457BD9C23:\ -00000000000000000000000000000000 - -C073EA45C292185CD446767F1E885C0B:BFB3FAA751C802F63A4E88D5B075EDFF:\ -00000000000000000000000000000000 - -517ABC892B0F7E341D31952AD76B4F0F:8362B9BE129084442BADAB1E1937C661:\ -00000000000000000000000000000000 - -BBC92940F2DAF0C3AEBF4187F57136A7:32A3B0F226F0442161FFFCE8B130EFFF:\ -00000000000000000000000000000000 - -4DF202C89337B3476B725B6EA0854046:D398608144210678B768791182ED5A93:\ -00000000000000000000000000000000 - -A53098F2C8BD8222D8D1B437344C5B30:263B4FFB812546C2547CF19EB0751289:\ -00000000000000000000000000000000 - -A470D019D0A22DC6AD220E4CCEFBB6BE:03D99CD24B403EBAF4D56BFF5BF180D7:\ -00000000000000000000000000000000 - -6E577625743EB0874AE21B8355CA0D81:0469204FD9B02B490E9B1CC4EFB4D83B:\ -00000000000000000000000000000000 - -395EF2B04C035E1E966003CFE6599B1B:BDB2A2C17E50B034777A04E107264F31:\ -00000000000000000000000000000000 - -7B07AC9AABE733D9865F2D1E586C40A4:2B0785EA30561102C79AF30C095ABE1D:\ -00000000000000000000000000000000 - -51ABD478A711854204F64B6881F76852:C771AAB5D264A1E6E8AE7CC19F00D4E6:\ -00000000000000000000000000000000 - -57DB85FDFA9DFD533A6987A3FAD322A7:CC388408802856093A6C11BE5290581F:\ -00000000000000000000000000000000 - -C4E5BFB3E17AD60B5A5829014820B5C5:2E3269861EA631CDB2383C29D4D506A2:\ -00000000000000000000000000000000 - -4829C08DBFB9059FF867E9DF9A703D27:D15BAB5E15235503A5D8C795C96CE704:\ -00000000000000000000000000000000 - -2C4CEC15D7F8C6A4B240F67A33BDA4BB:21567729EA6C8DD3EC43DC715167C6CD:\ -00000000000000000000000000000000 - -7AD911480D5819AC796825B394F59957:7822F4F8946068FFB9124EA563A8BF1F:\ -00000000000000000000000000000000 - -423B4B359B1FB480187686E67A236B5B:B846A438131E0B4C5D239CAA95064058:\ -00000000000000000000000000000000 - -7BC28B5D37150A879F378EF1BD7D1EA0:8469A91626AB6D5356BA6891919B61E3:\ -00000000000000000000000000000000 - -CFEB7408AD592ED2D6C5A697EF23EF66:BE31A1248B97A5ADFF4B66C555B50402:\ -00000000000000000000000000000000 - -EBDAB6F971A393F2F06DB086A48FA53F:7C729F296DBAC0EC710639A1B14D2222:\ -00000000000000000000000000000000 - -2565D77254F3627F767EFB1CF14269DA:F0CF793A693B57EBBEDC7ECBE6472444:\ -00000000000000000000000000000000 - -D1C2D5E6589B714A1945271DE12A81BA:B6DF513288A4DED5CE147BEF740FFAEF:\ -00000000000000000000000000000000 - -3A4583DE24164F317C5A1A93B9305402:491D13F5238037889DEE07B607E21DC9:\ -00000000000000000000000000000000 - -ACB28C12990D69408E6021499156CCF0:2156CCFA4FB525F384E4C73335189422:\ -00000000000000000000000000000000 - -AEB020A13AB7ED94FBF69BE0AB407678:B2E8D35C8C0AE750A343AC9E64D11287:\ -00000000000000000000000000000000 - -2D9F0E92AEBBA0117AD2C3287BA51187:DA6AD4DFE5884A1ECB2EB6BB95BD036F:\ -00000000000000000000000000000000 - -55306BD6170500DBF2732E3FACF7C698:862B27C7CDEF0373E27E924BAA8552AE:\ -00000000000000000000000000000000 - -79505474B2EDC21FCE061DA97167DC76:9E4193947309A7167ABE371B7051E049:\ -00000000000000000000000000000000 - -73A093E22E3CB8671BA64C0EE14AC3CB:CCEFE03CE2EA144E50976F18BAF1B354:\ -00000000000000000000000000000000 - -D0501BDB4D423F058D06D2105FEE293C:A4988B0B18EC938244DCB35C82BE3EED:\ -00000000000000000000000000000000 - -023E136719CB97F52CDBEE3089394F62:AFF56FC36889B2EB49035F1218CD847E:\ -00000000000000000000000000000000 - -48EC313A173DC1C99079251ADCE3B7D3:3ACB20C17A5FACAC7F1B1BBFAFAF3E30:\ -00000000000000000000000000000000 - -2352B804B425F689995BB40A6FB33A04:A1DC974297F042A6ED4403AA5A344BCD:\ -00000000000000000000000000000000 - -E61C4C2AE973E6D6AD1CFC376E369B98:BC67FEC8D78DBF170F5A646072911204:\ -00000000000000000000000000000000 - -0571F553FC3559FE0B72598DCA3C8684:79A7DAB3EEB1A4F8C70CAB9D8AEF16CA:\ -00000000000000000000000000000000 - -4B01043AE8459456522F50A67DBD752F:DDF39B3663B310031C90C5A8C366DD2F:\ -00000000000000000000000000000000 - -C0793DC7F42F64CEA0FA90B9F95A8B2B:45579EC1B6FB2121C1943547FB846ABB:\ -00000000000000000000000000000000 - -B8C74F4C943A9CAC6C9A78E1824EC318:F8A2465668526210660C10A140ADFBBE:\ -00000000000000000000000000000000 - -EAB4FCD6326E0391BBAAB3C29527CDD9:ED54FF83DEBD9D4E2B4B6580FAA9DE09:\ -00000000000000000000000000000000 - -470AFEF36697D24C06982FF4331AFF26:5EF558685DE9AA79856D7A7059FC48AF:\ -00000000000000000000000000000000 - -350CD1B0E4AB2B41DBEAD22397F9272C:ED71E97B759F9A361D5893FA91A66AFD:\ -00000000000000000000000000000000 - -B847B4B1DAC15B83B7E7CF4836742CB8:C7471FEAD8C9368076E47018C3033109:\ -00000000000000000000000000000000 - -785115A2B6F073597A37DA4F2031C94D:33A86ABE68E69A42BE5565104833B20A:\ -00000000000000000000000000000000 - -4B20B005906093B2C01D99473056A74B:5C7098151542379A4DE40DFC04C46D24:\ -00000000000000000000000000000000 - -DFC6D2C78186F1BDD8A54CB2515837E6:6347D893780909693882E89D5D79263D:\ -00000000000000000000000000000000 - -393A041CA6555C4A53AAE66B5AEA4200:14F25D790263B1364E9128E730ED5B1F:\ -00000000000000000000000000000000 - -14DD5281E350E0805853C94BD9016AAC:6A3F4B41E35727F7A50CAC5F55A6AA56:\ -00000000000000000000000000000000 - -21EC9D29F9CFCBD4981EF5C69A12F057:866EC808A008ABAACB5475763CA00AD7:\ -00000000000000000000000000000000 - -9F2D5E03E6B12849107717FB1BC16025:018BDA98D7601F0531607DE8BB4CCF1B:\ -00000000000000000000000000000000 - -160B4F410FF5EE520FC768FF484F21AA:C4B17C980D4D4718FAE5586B908D41D2:\ -00000000000000000000000000000000 - -82DE5A5F07149CFE150905E6F9786AC1:3E824827A39B6219CFF1C3ED52CDCDD9:\ -00000000000000000000000000000000 - -3E5DE770A898C7DD4120B0CE207CC089:50219CA05A510433481D6D12E36BD4D6:\ -00000000000000000000000000000000 - -4E13E9B2E1CCFCA49DA3A6D8D85D5245:D44E0C864E5E538C2D1FB62E63512F69:\ -00000000000000000000000000000000 - -B40580746E450E2E0EED4A9B7F104E83:D1EAA4CE78B40BEC8E505AFEB992B304:\ -00000000000000000000000000000000 - -C48EE7B9A0AFA7519BB606968869DF17:7CEE0F216823CFEB5087DEE426BCDDEE:\ -00000000000000000000000000000000 - -0E177D4B50286A120A5ECF0969AA069D:36011D7266887FD904C95921488512C8:\ -00000000000000000000000000000000 - -BD0431A51ECBCB80220B3BBDB13B5732:F826B9EF289CABEFE753E90346D727B7:\ -00000000000000000000000000000000 - -7D007D5A6A2F26680458BE5C345E08A8:E798CE8B9B0BDF637DB2D3162EA2D3AB:\ -00000000000000000000000000000000 - -891DDB587CEEAE3F6F5F6D470C9667BB:CB09FA09ADBB747CB29EA2FF5E5C9792:\ -00000000000000000000000000000000 - -AC95F9EBB80B0E5994E0BACEBDFFB56D:966D3A3B90FEDD37C2CD616304F90C81:\ -00000000000000000000000000000000 - -CD723A1E9EBA8A9FB1D0F6D544953AAE:17294A27F2DB0F6501C95B669CF726AF:\ -00000000000000000000000000000000 - -C3FF8EFA00F672EEFC63F752CBD7D136:1EC5F82A3F4F49A6E44557A9A8297EF6:\ -00000000000000000000000000000000 - -8B4A66F04202B64A112D733F79A91CEF:E4DB812D84FF9B6B4314A21AA756F7E0:\ -00000000000000000000000000000000 - -DA250D691E273D62227B024768962F1D:5886F7436189C242A9C422F0BB572EF1:\ -00000000000000000000000000000000 - -F0BAB5E01B892AC144743983F6E8D566:B9528FD6EA14018AA38AB00009D10226:\ -00000000000000000000000000000000 - -B89DC4BDB7D7F6757144960C86634754:0D19223B03ED7F99033160FF246C84E5:\ -00000000000000000000000000000000 - -EBE504EC3BC160485B7CE65EA2A19785:880C1B4FFFD70736E8BD518ECE5B17EA:\ -00000000000000000000000000000000 - -2FCD1A4986E31A98361B90B4E74E7475:930C22171DAD582B85CEED022AF43D16:\ -00000000000000000000000000000000 - -14873B831B719DB9901CAB9FF563A851:2313DA90A38D6C59FEF0894DA350CF58:\ -00000000000000000000000000000000 - -A473DA95CB0B4C244699D8DFB4C2DE8F:45DB7B9E5FCA9A440F530DFE85AF64BB:\ -00000000000000000000000000000000 - -027A8941207C3630ACCF39EFB26A80A3:52C9F6F83608D31015D10CC7EF7C144D:\ -00000000000000000000000000000000 - -33DE5CAC12F645367076B88306388990:7DAB9967790C06A87F33888372568FC7:\ -00000000000000000000000000000000 - -92D8177CD2FCB399FCA7452284FC7748:43DE770DCD53EFEE430C76428474CBAA:\ -00000000000000000000000000000000 - -DD201A0D1654D3483B8953F87D0E48C7:EF3E3A528E851DCD493DFD8F823E4364:\ -00000000000000000000000000000000 - -DAE0E891214688020D99E6CD00DE4C01:347E7C0C421FE54A8C8CD27B8665321E:\ -00000000000000000000000000000000 - -EA9BD3F71C846DCA01001F562E76989F:0B4E96149B5E626A93C975A402193846:\ -00000000000000000000000000000000 - -3295F4905FD6722814D2933E226CDE48:71DC22BE06655F3B953379E3FE2B377E:\ -00000000000000000000000000000000 - -5819F527AA6C571EE35EF99F05300881:97D6108F2679638278EF8C99C7A7FC06:\ -00000000000000000000000000000000 - -00B34FCC58B29046CB519EDCE34A5BCB:123ECFFED7975F1FEC75D6EDB904E663:\ -00000000000000000000000000000000 - -B6D79518E3D17CC84FA44C5F951834B7:A5950E42996C2C09567AF382325E23CC:\ -00000000000000000000000000000000 - -25FBFAF468DEA60D982F23C50E6FD9FE:248DB0FFBC9F4501C122007BF395427F:\ -00000000000000000000000000000000 - -21C0F5D729E9799FDDC7353568EC3FFD:4BD385DD0D2D3B9FA44AC799355355B7:\ -00000000000000000000000000000000 - -C273D81BA6A15FAE72C08FC06BF95C1E:A52497BF1F74F58FBAB8B64431E8C3BE:\ -00000000000000000000000000000000 - -395450944A685821818603DA1B9F1BC0:0E96C89302DC1981B90EA546DAD5FAA5:\ -00000000000000000000000000000000 - -14616A135522A7C35B2534580606A204:97A1547D2C4668B3598ABA7865DBD33A:\ -00000000000000000000000000000000 - -AE4F32993A77A53EA6687BFA3A83CFDA:817215D2F46916D13B5B6862CD13ECDD:\ -00000000000000000000000000000000 - -86BA6D9579C903BB160A7A4AC18DBF31:909DFD858826F1F00CB6EEEB1CAF9DA8:\ -00000000000000000000000000000000 - -6BE21799427582127E942B4D34461E04:5FFCD94BC401F32F827791EA980609F3:\ -00000000000000000000000000000000 - -8496B480BF89717FD1819B0AA53CC33C:95BE56001901C98C595393455399F0D8:\ -00000000000000000000000000000000 - -FA70BA75B820F851DF973160BFB07C9B:75259AA8E1AE7CDBF6AED6B3E068929D:\ -00000000000000000000000000000000 - -00DFB0623FE65356B04FDDC1B28289D1:B87A487B4ADD0222754510189DBFEE89:\ -00000000000000000000000000000000 - -AF4676B327402F8F6C61A047DCCD434F:852014F8BFC2BDD51F16CD8D083B0EF9:\ -00000000000000000000000000000000 - -C6C342C67C699603ED3CDC5A7DE9BA55:C442DE6F7FC76EBDF529D198DAA68509:\ -00000000000000000000000000000000 - -7902D25C9FA2A0A5932E4FC70BFC2C27:FC4326CAB1549370D95F9D4B0E8F85AD:\ -00000000000000000000000000000000 - -BD681CF631503024FD6241A1F3BAE7F0:1B9C959CDF8AD16245264F5E4A9E319D:\ -00000000000000000000000000000000 - -3503193D1F3252DFF9AC83311C763700:D07C6880E968DEBD2941C4FEF1D2251F:\ -00000000000000000000000000000000 - -0492643AC9969F4460C1FC0804A4619F:D4E92987DEFF3CCCDE33C8B590122B6E:\ -00000000000000000000000000000000 - -FA9A1D95EAEDB684909E9F683E69FCB9:108D34BC88CD8D59E8486FDF82FA62EF:\ -00000000000000000000000000000000 - -22564DFD262798164A2939BFFDCEB281:06B77B0D8FDCDCC3586C1CA2502626ED:\ -00000000000000000000000000000000 - -45F93E6EFA2EFD9A0C71EE9285EFA29D:2E2D5BB4037B2E2FDDA09D8BE9F4EAFB:\ -00000000000000000000000000000000 - -806873410FD9DD61A715E277F08BA4C0:83F7323F69379CC15B75C23BF236221B:\ -00000000000000000000000000000000 - -77F3A397DD6079EF077C2A8565AA980C:98EDDE96A3C905129A6D5E398AA9D73F:\ -00000000000000000000000000000000 - -44F8CFB955F7171EFB8DEF067E2D673A:EC80B9B03CBEFBB70F33D3170C606671:\ -00000000000000000000000000000000 - -AF94A4F2482B49FF677E75E559A3BC29:9B7F527280418569953F83AAA6D94800:\ -00000000000000000000000000000000 - -54FD46CC08BEA6D09F4F8CCB2FE62864:C0CEFD5BE629252F9CF37C0EC16C1755:\ -00000000000000000000000000000000 - -21BAC32D30F1DE944D1F5275FACEDF47:D0737904989C17ACD06A5F9A5DBD48EB:\ -00000000000000000000000000000000 - -B1D9D5644A5D66BC8E51E5BF6E90E338:D8F948251535FCD67A0CDFB2F0E0258F:\ -00000000000000000000000000000000 - -3B9C3639E11FAF597A40A8D13CCC27CB:5C144E59D0C09671EC3CAB5A0CE39392:\ -00000000000000000000000000000000 - -AAD39B21BD9C45D92DD8B03F8ADF8295:063A2EB89956EEF09BC4A57DD23D6A77:\ -00000000000000000000000000000000 - -198816B1AAC8BD77E416606A77DC6998:240AEA2F55274B8A80198B8758B733C1:\ -00000000000000000000000000000000 - -612083F9D31C0AE6CDDFDE9E7421F1E5:21986590C1F285694603769D3AF6D7E0:\ -00000000000000000000000000000000 - -C0EE1A1F02820CA8EBBFF11B78855C5C:77E8A31F8AA17DE52DA7CB0D1C0E61F2:\ -00000000000000000000000000000000 - -57167699F08E77A6B075EA4D9988D384:6A3F8EDEE484A2C4CF375ECA4F0ABE8A:\ -00000000000000000000000000000000 - -5C5B9F6DD482F121F6B7EDA76BC98D64:8043E71AAAB12504944BE7149558755A:\ -00000000000000000000000000000000 - -9F7051BF58E623116C3A9982140AEFB5:F838E64CD3C5A8578246D5B6665004E0:\ -00000000000000000000000000000000 - -EDE3AB4922717E465A2BB8BF98464CB0:863BDF8DB9344C685C6C25AF1D95537D:\ -00000000000000000000000000000000 - -1DD33935C51869A29D6DC8B7B62DB731:6639463A8E9FF3EC2988D64C2791242E:\ -00000000000000000000000000000000 - -181A77E8054E8180F503D0501B479A48:7A37ECBF8705A4D58576CAFFA4F4E7BB:\ -00000000000000000000000000000000 - -58246965C1554A72E20BA7C61A52E3BE:18509EB535EB4CBF20026872A4F6862F:\ -00000000000000000000000000000000 - -3FBC39E715EE2B54022D9FCB33E07995:3C80350C1EEE381E2069AC95ED8009A2:\ -00000000000000000000000000000000 - -FA5BE2C6C03C878B520502B6D24FC80D:E0E69BE51245C8EDD65CC4CF714C9446:\ -00000000000000000000000000000000 - -6C037028C56B4BA67FC37C32A8F9A80E:28B5349E4A4C92157BC0205A7F47C588:\ -00000000000000000000000000000000 - -E9BA61E5B601690936348FC4258AC830:4CA1FE7B0A3E84E71C54DCCDBC606367:\ -00000000000000000000000000000000 - -9435CBBF42A71716C4A74208CD0769D5:EA6043518C041C3AB12D14864D9B707B:\ -00000000000000000000000000000000 - -7FFD7CF31F0E4B34FA6622E8DA4C6EBD:EAFF664EDE5BFA29021E0DB91EE522CC:\ -00000000000000000000000000000000 - -5D995FEDC45CD61D83F1BB40DA911AB1:803BB0CDC8C8F63DF714BD906AFDCD10:\ -00000000000000000000000000000000 - -216018840FF6B12272E6E9ABC014B037:2662B6DE572DFC8E654F528BCDC25B96:\ -00000000000000000000000000000000 - -8A64E9D30422E7EB189885ABD947EB10:E41903DF1CC561A16EF2D1ACD8FC67DF:\ -00000000000000000000000000000000 - -E8A317FAF7BA8191E4AE5DF588EFB0A4:6848773A5F6A0CB4014EBDD7243C626C:\ -00000000000000000000000000000000 - -610A7A480A667E50ECC3921DC2487868:C353E8C4B8781BF0B38E5714F5D56D03:\ -00000000000000000000000000000000 - -4DD3385F15F88D8E1D9FD368F550C7DA:DAAADFC4A39AC95A2A63CB17E0BEC906:\ -00000000000000000000000000000000 - -6E5DD5F8B67658FC703EBC8048C8C99E:F5935C19F405DF2F9FC7FAFA93028DBE:\ -00000000000000000000000000000000 - -6DA0C2E3B1E9852AF9F7F19707CBBC23:3AEFA41D48FC7B0A75EC269C1D5EC39D:\ -00000000000000000000000000000000 - -DA49E4D68C12D599B55E9BF0DA4CB219:3AE5405F74A0A1BB9C587B535FA84068:\ -00000000000000000000000000000000 - -F928FFEBA72BEDB77511765BDA6CD09B:71AFC5F59B95266F50DC494937A12423:\ -00000000000000000000000000000000 - -2548AF21AEEF8DFE3FF04DDF8B5B405A:E5B7287515DE852442E24D983A492AFD:\ -00000000000000000000000000000000 - -0DF7A17E3291AA86F4402E4FEEA5C611:C95A329A8D0C765919D8AC2658374D72:\ -00000000000000000000000000000000 - -D82CD8AB2BCD70DAB76C334B62FD46DC:64042CE2997637FD2501FA2275D094E4:\ -00000000000000000000000000000000 - -4B3AAC33855B8C2B67F298A99550066D:265D7119DC9EB745253F62C5B71E4BFF:\ -00000000000000000000000000000000 - -EF4DFC627069CF6E4F90F6605B9D7A72:F1FCDB6D6922794847BD591B395A6803:\ -00000000000000000000000000000000 - -4F401C4E26E5A7EBAEEB7C0B47CF770F:3381E7818CB696D62A72D3709296419B:\ -00000000000000000000000000000000 - -CBCE84F167FC5EFB3E9FB589DA7DEA76:45B39802476C6AD971B70D6DEE9EC64E:\ -00000000000000000000000000000000 - -429887390F9849375EA60D25BC41B4A6:4E5542591DD991B333CA1FA550368AE0:\ -00000000000000000000000000000000 - -59CCBA357AED070D53E97C07432F3FF2:77DB690B1FD2149F4C61E6CEC1967FCB:\ -00000000000000000000000000000000 - -F8B071CB7617A7AC837632B2E0393B47:20704383926600B03B22647D311A48E5:\ -00000000000000000000000000000000 - -9C5E9C47A7DE9438906878A1969E556D:C9AD815DF2EE5D6705F53E5FB57C4A8B:\ -00000000000000000000000000000000 - -335B50784CFBCF5EC5592470D8779CEA:A8D4489612DFED5F1E06A057DAC16D4E:\ -00000000000000000000000000000000 - -D5D3BFD6E8DC346925D458768045E7FF:B8B48D5A3D41D025F4BB4D0590FD8AAD:\ -00000000000000000000000000000000 - -06CFD19EB8ACA85331941A4C7F3BBF49:CEA1EB1D90A4CC5333EFB7EC0985278A:\ -00000000000000000000000000000000 - -4BD937898ED831811FA7EFE0885E41F9:7FA882D5AB9253E40897D9A02F634B8B:\ -00000000000000000000000000000000 - -64CC47590F6288969950876FAB92B506:E56FC52CB8680995DFCAC872C03198EB:\ -00000000000000000000000000000000 - -6875E36276E349CFCB56DF8E8F3F3A77:831207645E69DCF55F2EB06E7920ACBA:\ -00000000000000000000000000000000 - -5AB3E0CD4A7CCD85EB017E01D2A9E41C:1487AE58CD0547B8CDAC543ABD7A167F:\ -00000000000000000000000000000000 - -D6194FB4E11083575F1A321B1DE7C36B:90FA45F0B592E717B7FE674FDEAFD09C:\ -00000000000000000000000000000000 - -6B44AF3816BB543D52A72C8419247EC7:B27A4DC5B007C97A34A5A71E3F9948AA:\ -00000000000000000000000000000000 - -0C34F5F71974696A870143913E300002:AD09BF00D24EE0B36CC244DD2BBD3416:\ -00000000000000000000000000000000 - -9714F33B633228BD25873FDD8A748687:468D78EC6C9DB6331996A7148D7B8D0E:\ -00000000000000000000000000000000 - -B655B88BDEE3C192CA7E94C115155400:E6FF459DABE888DF3B8E3B0A4E03CD1B:\ -00000000000000000000000000000000 - -2E10337DDCC5AB4D9A47A7E11EE28819:5523C37014F6663C466549508680AD2B:\ -00000000000000000000000000000000 - -91DC264E08F890E673DA508130B22132:1F5A4FBEE2294C1E9AD13226CA316C8B:\ -00000000000000000000000000000000 - -5A961589B16BB11F43228C265A41F4F0:C41F0C276AF8840C1E40F7CDE2C9E703:\ -00000000000000000000000000000000 - -9279B9E8010A5D5A636A690F480689C1:0C0FE02E45C512FCFBE86186077B880C:\ -00000000000000000000000000000000 - -588FBCF959D31348507A315577077299:DADDB24A58CE1913C7E050BFBD6DB060:\ -00000000000000000000000000000000 - -2B7D25F58492426C7ED9676A234DAA73:EC6F70F88767324589B114D49A3D0435:\ -00000000000000000000000000000000 - -86265091666FA3CB492A6D0B89134FA7:1132BD6B7C2E314329B8C41B3591088F:\ -00000000000000000000000000000000 - -1D930835D9E22CBB1DC2B32D760B5212:B0FDC9C797ADFC372A32C90E780A18AA:\ -00000000000000000000000000000000 - -99488407CD0E84B85BD54A4208D9E74A:2D702A81CA33FC44E78423F7CA3579CC:\ -00000000000000000000000000000000 - -2A2D29555BD65B655F4C351B6CA77F9F:AEAEA1C6D2752DEB743828BE4FD5164E:\ -00000000000000000000000000000000 - -4130B6271FF1AC8B2E80D7358BC0010A:4A93D8F4A10503D03B61D028142B7317:\ -00000000000000000000000000000000 - -78BBC849A8E335A3C50F03ACFDB40A0C:CFC2F763D9A43797D7B554B31818B00D:\ -00000000000000000000000000000000 - -15F7DD0F5AAB45D18CE3FC22E2E0D7A7:B53C28497405CC58DB87E5B036D7A09F:\ -00000000000000000000000000000000 - -B70975EBBFF142F85BF7A7C46FA969FD:B1F6FF9DA37954AC1CE21F87130DE8E9:\ -00000000000000000000000000000000 - -682F741F13133286E864170D3423F016:406918CEB508D45A0BF1DAE0936AB561:\ -00000000000000000000000000000000 - -3FA4581C08D59B03776031143357AC6B:27E92647DD1A9B830FACFB746A8EA4A3:\ -00000000000000000000000000000000 - -D8BAEF6AC40C0656D5E9D99AB7F422F0:3BBB779C4310EC11923976AC5ADA20F2:\ -00000000000000000000000000000000 - -18C8BFE83B9C5E73E17EA3CB0FFE35F3:31A3694FAA9166C155CF659E222B6CD8:\ -00000000000000000000000000000000 - -02178D030AA8FB92095B8D773750BB29:1B56685208E68A64CB98C2EB8FD269E6:\ -00000000000000000000000000000000 - -C4CFCF7F00A5890089F3E2E6D4A71B4A:33A0170AFE4B9054A68646C79D5F7E06:\ -00000000000000000000000000000000 - -7B3DAD4BEC66EBEAEA116A09F1C7810E:34FA87844A31FEE5E4BC5A45B2025FFA:\ -00000000000000000000000000000000 - -E6B59BD0BE313076624A7F27B431D394:A8FD8E9567EA205B33BA60B7FD3713F1:\ -00000000000000000000000000000000 - -C806EDD853EABF4ABA609D2302B5A4A4:9FCEE6BAAA491D95905D114A21EA0586:\ -00000000000000000000000000000000 - -530C29591F1EB65C53B66621D815294D:43C79D90E33D1D2B5790B515D202C79D:\ -00000000000000000000000000000000 - -45480830977917AD000A73B062730761:D8FCA5649A8DDF403409C7B20E49EF30:\ -00000000000000000000000000000000 - -3C73226C97B0B6A6F199C5B9EA4936F9:244CA0E37F5CA9ABAEF1E316016B0273:\ -00000000000000000000000000000000 - -759A68CB477B3C4677B591E4490F6F66:DADC95A4CF085B656FB8A247270C6CBD:\ -00000000000000000000000000000000 - -31295A526C3ABDEDA7CD2B4C4EAC18AF:D8FF5475210EB64CE418EBB062A2AC9C:\ -00000000000000000000000000000000 - -90E6839484DB6BAB6ABD1A1C4B3F5097:E0B100775EBE4EE6CDE976AF97F7E67C:\ -00000000000000000000000000000000 - -A77E0B16C5C8AC7DCAC28EF2A377C749:2326C55E35CB224F2916B76D25DAB006:\ -00000000000000000000000000000000 - -473DE39D6CBED119488590D147A050DE:D45FE4E35DD7E7E8F9C1BE95A3E9AB99:\ -00000000000000000000000000000000 - -8EDEBB741BE502D3D71F6EB76588D43D:6C85C0C1989880CD89519E5D0F24D2D4:\ -00000000000000000000000000000000 - -BD77E505D265E0694E18F0DD27614AFC:95345EADB67814C36CB333178F1E6385:\ -00000000000000000000000000000000 - -FFBDD477A86FA149AABF241A6875F2BF:F7978D6E572A04C5301B4784E96E85C5:\ -00000000000000000000000000000000 - -878FD448E7DD0A988F3E14BA24A873C7:F5D13F5045698167AC816AD85D08CB68:\ -00000000000000000000000000000000 - -4724D176D8301A560D9F629C43EF0631:CDCA92D92C0C13944D85AAF6342EE16C:\ -00000000000000000000000000000000 - -92DDE5DCCF0B92737200C96A7FC2980C:984340AE315F1E35ED7B4D64E7C2109C:\ -00000000000000000000000000000000 - -D0D5CDFD07003A970D866E9AEBCE49B2:D29523676BFF8722E8E7D4E27ECB7BDF:\ -00000000000000000000000000000000 - -16D71101E006335AE4EA841B01EDF8EC:9DC42A4574CF4689B1A579B6058A72B1:\ -00000000000000000000000000000000 - -57263798FAFFB2D1937ED13E9F75F6A6:63D7927C182B59693C7619502C7F09A6:\ -00000000000000000000000000000000 - -1E06BC75D5473C2E2E214B794722D8EB:FF4445966B84099830C2C4AF3D16C2B3:\ -00000000000000000000000000000000 - -5B0873294D3044BFC3547C58AA7EDFE4:293FE32A6E13E78417E60C2AC673E908:\ -00000000000000000000000000000000 - -48B51CD888F14526A701EA3B7686A926:C600CE6D9925A7F29CBDEA5F86EB3968:\ -00000000000000000000000000000000 - -54DD519813388689F773FA12DBF09E37:7988CC0311DB4DB779342F1CD9C69CB1:\ -00000000000000000000000000000000 - -7DFC43D180470BFAB6970E619CDF4489:1E2BF65651E3D2F4FC43E6B8E60C2EDB:\ -00000000000000000000000000000000 - -ED3A0A72AFD441AE48CA0E80F5CAFA99:BBC9EEC98F2F3EB38CE8C3A534AE08FC:\ -00000000000000000000000000000000 - -9AA5D6C7CFA410FB74D753D3C329D5F6:C90111B9CB525A91F9EAFD987357934B:\ -00000000000000000000000000000000 - -A254B55BE1A577D34CFAC4967C67E3EE:632D34BE39094B67B3A5CD0651294626:\ -00000000000000000000000000000000 - -9FBE68B5013190B559D8488D1D18EEC3:E564E92FC5724970CAFE238F39498DA2:\ -00000000000000000000000000000000 - -3D0E0B9BDC3613B8818CE559748EB180:E682F9AA990E90424FB62BEEB9A87669:\ -00000000000000000000000000000000 - -23504A5F517D06CFBD6A6CD35A7C6F53:7B95F58B6C101AC54526A1C844D2233C:\ -00000000000000000000000000000000 - -C3A79D45029979CAAE2B80944CB46381:1E067070C2DFE6FDA961250EBB0904DB:\ -00000000000000000000000000000000 - -C47FCAC34AD3B94C3C14B1B05E4C4E8C:A661F602ED2B08E4A67605608AFC8485:\ -00000000000000000000000000000000 - -30E235BBE9548847BC9FFFCB356DCAE5:B2E14131FF6A7043B944DD4C299F9AD6:\ -00000000000000000000000000000000 - -309CECD7E237BF2BDA45F780B2106414:A2B8FF6B6A4F6C8AD3E5ACEAACE028E4:\ -00000000000000000000000000000000 - -76D0AF5DF7E20CC6462A16826EB2A65C:58621016906E05D0644A1315F117707B:\ -00000000000000000000000000000000 - -FE8372E4F0E4E733B16F7284C9928C2C:CD96F8F422D51EFB6451D1C8BC039464:\ -00000000000000000000000000000000 - -B01E5DB74E62A0115812DD8CD93B8823:B2EAA3CA7F51B22456A9DA1DD31F63E4:\ -00000000000000000000000000000000 - -2EE4409B33787E6C88625E25C66B693F:103044B5227E28AA2C33D537D69165CC:\ -00000000000000000000000000000000 - -3F23DF226924DD9E3426035EFF30F285:4D9FDA109583D3611B560CBA61E4CC9B:\ -00000000000000000000000000000000 - -96F02851CC614DE4560AD8DB80237601:104B264BA70B885E1BA6A8150EA83B1B:\ -00000000000000000000000000000000 - -CA428A790029D7F4AD63E19CEAFABEB1:FF9D67EC4DD1ABB5ACD03567298F5A3D:\ -00000000000000000000000000000000 - -F461D29B4120E93DA0E59C89A01CDFC1:6F3C9F8E5DC2D724436F3236C6616D33:\ -00000000000000000000000000000000 - -654A6C8DC762FCA2B308F7CD8A8FB066:7ACAA703CDAA690F749A0BEB9E4B871B:\ -00000000000000000000000000000000 - -B037B6F04D8F2F9478AB4A206EAAE041:DD3410E458F7F7B58EB1E491C39CDF84:\ -00000000000000000000000000000000 - -641739E7AC8221F13A6430283CCA424D:279F7F9E6F090C5CAC5B17EAC662AD38:\ -00000000000000000000000000000000 - -2634969CE81073EF9A69FE3B71936057:8061C87922DD5CDBD3AC6E37391F52C2:\ -00000000000000000000000000000000 - -BBCFEC986F23B9697354BB39A8481DD5:EF453D6F902687D29B9C6AC8394F9229:\ -00000000000000000000000000000000 - -DB2C55A7BB7D0C67BEBACFA60239FF5E:054788911085F32DE12FE3C0D6A2A5C7:\ -00000000000000000000000000000000 - -4DDBE332134ECB725A9450E5BF5CB187:37F645A215E8350746108086F428F64A:\ -00000000000000000000000000000000 - -256FDA74A1F7DDC78A0735AC5BF4B8EC:37F645A215E83507B9EF7F790BD709B5:\ -00000000000000000000000000000000 - -496F0D60F09C3322F2AC1414CD32834C:37F645A2EA17CAF8B9EF7F790BD709B5:\ -00000000000000000000000000000000 - -4DEBBD2461C99EDD3BB3C3CBF415DA07:C809BA5D15E8350746108086F428F64A:\ -00000000000000000000000000000000 - -D1B3A0FCE628A7653B62E11724FF534F:C809BA5DEA17CAF8B9EF7F790BD709B5:\ -00000000000000000000000000000000 - -DC77BDEC8DB018A61688F61EC5DA3F72:C809BA5D15E83507461080860BD709B5:\ -00000000000000000000000000000000 - -6F878A0A25A34ADB37459BA9AA864169:C809BA5DEA17CAF846108086F428F64A:\ -00000000000000000000000000000000 - -C97D56C65C479B6A3C98032FCB30D327:37F645A2EA17CAF8461080860BD709B5:\ -00000000000000000000000000000000 - -CA7D368A299F613C8793C8B197C5B4AB:37F645A2EA17CAF8B9EF7F79F428F64A:\ -00000000000000000000000000000000 - -C81B7DDC7F57D9D5E4782FDB7FF24DC3:C809BA5D15E83507B9EF7F79F428F64A:\ -00000000000000000000000000000000 - -2ED61014612B71DED403559BAB7B3582:C809BA5D15E83507B9EF7F790BD709B5:\ -00000000000000000000000000000000 - -75E6A753077E01A99AE22C1641FFCE50:C809BA5DEA17CAF8461080860BD709B5:\ -00000000000000000000000000000000 - -B6405E813236600DC256134B92542CBE:37F645A215E83507461080860BD709B5:\ -00000000000000000000000000000000 - -2009F95CF623369018B643B06C8E3012:37F645A2EA17CAF846108086F428F64A:\ -00000000000000000000000000000000 - -7D03DB38DCE478EB8D3EF1E78C0388D5:37F645A215E83507B9EF7F79F428F64A:\ -00000000000000000000000000000000 - -F9165467CB794721F028CBE1ADAD3183:C809BA5DEA17CAF8B9EF7F79F428F64A:\ -00000000000000000000000000000000 - -D29D576FCEABA3A7ED9899F2927BD78E:130E353E1037C22405E8FAEFB2C3C3E9:\ -000000000000000000000000000000000000000000000000 - -2D62A890CEABA3A7ED9899F2927BD78E:AA2F3365C15EBDC02F2C4468BCB4E950:\ -000000000000000000000000000000000000000000000000 - -D29D576F31545C58ED9899F2927BD78E:1B4F0CF494AB7C5D850B8F88A025E5AF:\ -000000000000000000000000000000000000000000000000 - -2D62A89031545C58ED9899F2927BD78E:B98DD45724870D7B3B0532D9D07EE7AD:\ -000000000000000000000000000000000000000000000000 - -D29D576FCEABA3A71267660D927BD78E:CFFFA1BB54F8229F54E8B3D9E34710E1:\ -000000000000000000000000000000000000000000000000 - -2D62A890CEABA3A71267660D927BD78E:86C1ADC8B236AF043A118F13EBEEF15E:\ -000000000000000000000000000000000000000000000000 - -D29D576F31545C581267660D927BD78E:9064AA652AF016DD80AE3B3791502F63:\ -000000000000000000000000000000000000000000000000 - -2D62A89031545C581267660D927BD78E:131984E1FEEEBE8862E406E12B6D8CD9:\ -000000000000000000000000000000000000000000000000 - -D29D576FCEABA3A7ED9899F26D842871:D2E19BADECC2105CC8BF847075785184:\ -000000000000000000000000000000000000000000000000 - -2D62A890CEABA3A7ED9899F26D842871:9DD896881D2AA0A0B3F8D6C7BD057588:\ -000000000000000000000000000000000000000000000000 - -D29D576F31545C58ED9899F26D842871:416FC2C9B866CDC518476481F94D438A:\ -000000000000000000000000000000000000000000000000 - -2D62A89031545C58ED9899F26D842871:0AC42C6E7CB6A77F6F63A0660175C274:\ -000000000000000000000000000000000000000000000000 - -D29D576FCEABA3A71267660D6D842871:6E281CBD633696F0209E9C7326E49555:\ -000000000000000000000000000000000000000000000000 - -2D62A890CEABA3A71267660D6D842871:CB9B1CAD03C62AEDC359CC64CA0D8F85:\ -000000000000000000000000000000000000000000000000 - -D29D576F31545C581267660D6D842871:206369617D077201588ACF59463FC393:\ -000000000000000000000000000000000000000000000000 - -2D62A89031545C581267660D6D842871:7558A3AD44F85079E3FF9E60FE30D652:\ -000000000000000000000000000000000000000000000000 - -2AA28347376F4408FB7A29AEF0D05657:85B06641EF0DB99D153D9A9C9AEA1B24:\ -000000000000000000000000000000000000000000000000 - -C3364F3FA909A07410B75D8AE5BB65D0:BDB9EF83D8EB4ECB7C89FC7D491E5172:\ -000000000000000000000000000000000000000000000000 - -4CD9A151AAFB1BCB7BB75D6A9399FF7A:582C1174BA7B9FC276BF780A9A93567A:\ -000000000000000000000000000000000000000000000000 - -47B292F6AC508B53EF7A294E630D3322:FFF0E8A57D5FC4D34678DC62E95A226E:\ -000000000000000000000000000000000000000000000000 - -B3CDED6131EF45D99F48B827F4D95FD6:8C59577DC6B0C80FC97DD6E4D3DBFF88:\ -000000000000000000000000000000000000000000000000 - -D3447EBA470D665E8B7A33FC6FAF33F2:3DC9513EF47DC38E2154DA643544CC51:\ -000000000000000000000000000000000000000000000000 - -29493048AAD0130BE07A331C9390F63B:0FA6A8CF364435CC213F54F8773C87BE:\ -000000000000000000000000000000000000000000000000 - -DC3F5CACCC00BB778B48B8C79A196520:4826FD43F7F116D9201891F553FD556A:\ -000000000000000000000000000000000000000000000000 - -48F2A141203F740C7485CC0318D4982D:C20C38D1E7E25E25ED990326A1797488:\ -000000000000000000000000000000000000000000000000 - -C4B646BEA922A87460B747D86F6F802D:FE5C4361C70143F52C66A8E766692C87:\ -000000000000000000000000000000000000000000000000 - -2389837737FFDDC174B74738F662CEDF:3222B40C6BAC43150FC753F1E6EE3793:\ -000000000000000000000000000000000000000000000000 - -45329BB7AED08A421F85CCE36C2629E0:0F83C029C9B964789CA6668006F79DF8:\ -000000000000000000000000000000000000000000000000 - -2CC9394921BF75DDEF48A2751976987D:CD1702934609E17DE4DAE5188596E763:\ -000000000000000000000000000000000000000000000000 - -D66F7EEA40266E5E0485D6511F2F2021:DA6D2243BBBA3199169C51CA80B03BE6:\ -000000000000000000000000000000000000000000000000 - -BC4DE44037D4D5011085D6B1F4C0CE4F:30B9CDB6F185ED17DACAC0C4A377594B:\ -000000000000000000000000000000000000000000000000 - -DB145C3CCE80BA668448A295686689CC:B981920A5773E47347EAD2A82041F08A:\ -000000000000000000000000000000000000000000000000 - -251F428D867649A818246A6A5A89501C:15FF894626A6F8C6C9508A171BC1C661:\ -000000000000000000000000000000000000000000000000 - -A41144E37C63D88B89A8A4C961EAF166:A64D2728DD4CB4723C19326B293DEEBA:\ -000000000000000000000000000000000000000000000000 - -CFBD07846AFD2BA8E1AD63697DFAD335:7897147055D06DBA61866021D876D126:\ -000000000000000000000000000000000000000000000000 - -4D93A6438527BE295F94487DD084505E:F0363408AF7BF5BB057CC80E10954D2A:\ -000000000000000000000000000000000000000000000000 - -0855984A5B6C6C2E3ECEA329356575C3:161059A0D9DE6230B51EAA19BDC84CE9:\ -000000000000000000000000000000000000000000000000 - -7E979A12FBBFF7FBD96860F0FC64CE27:977C5DAFEA87FC36E92333151AB63C61:\ -000000000000000000000000000000000000000000000000 - -2088DC2D3E22E480ECFD9A6C76BA2AF7:E7DEF1020109FA00053579B665DDE397:\ -000000000000000000000000000000000000000000000000 - -B9A8E6AA4E2C99159690D6D204EBEFF0:9E9A02C1952FD2F4C2BE158C10718654:\ -000000000000000000000000000000000000000000000000 - -E8E06F34C44498900254EFD4F5C99D83:159A90193D7479E0203A929D701C421D:\ -000000000000000000000000000000000000000000000000 - -1ACE901C77B74E96ECE1462369D7F0B4:F2906FD2C3373B7F0FAC2213131067EF:\ -000000000000000000000000000000000000000000000000 - -4BF18736FB7021F610E4D7B76CF09F7C:D50E7103A0B29E33EB28D4C843F9557B:\ -000000000000000000000000000000000000000000000000 - -A76F8B6EB992AE14212A5C2C8809D314:76CC8905AE4B4BE31992E6CDD3F7EA81:\ -000000000000000000000000000000000000000000000000 - -10DC23B443D51E8F5B5D2F5CFEF9FBB3:A6E61F6CCFF0B2437B5BAB2688A73CEA:\ -000000000000000000000000000000000000000000000000 - -0F7FFE39F36C8983C922E3704005792F:0D9B7AC709073EDEB0B1A5FAD45DB084:\ -000000000000000000000000000000000000000000000000 - -8B564AA20FC6488302124D039EDA47BB:7FE01A5559DA077ABF385C8B4319B018:\ -000000000000000000000000000000000000000000000000 - -EA57D4B949E192A51D6414FCC8315C21:99450709D21B61589509EEE8A1C526E0:\ -000000000000000000000000000000000000000000000000 - -6108BC56C4CF3BFAEA642E8CCEDD31D2:3040BA7E08D60C8E771B97E250DA4413:\ -000000000000000000000000000000000000000000000000 - -F1D159B48C2F6C238CB3D003AB0A5415:4A347C9EEBBBB7E28E41005AD5BD24FC:\ -000000000000000000000000000000000000000000000000 - -DD99B08C18904D3811F2744AA644D76D:D7EBD7E0AA443E92279BA4E1192DD91D:\ -000000000000000000000000000000000000000000000000 - -F0BF4544145EFB3231E6E6F6CA175912:97F37A9A6FF5101A7FE95F2678DAB6BE:\ -000000000000000000000000000000000000000000000000 - -9F7B7744EEA8DF923366EE86AE497E69:50191B99DD8B691B2C17C26D98885E5B:\ -000000000000000000000000000000000000000000000000 - -6177CA790CC736AAF8251290C2E9E43A:1717E23B04BFC70516E37A850454418F:\ -000000000000000000000000000000000000000000000000 - -E2A7016FF930F70A8C8FDF25F762FD3D:D416724A7A3F4F81288D068797744CC7:\ -000000000000000000000000000000000000000000000000 - -DCA2BC2308B05927DC6AAED1026B3CEE:318C4B212A74330C9D61F4D852D5C593:\ -000000000000000000000000000000000000000000000000 - -B6379A7CE597E1295E4354D972B803E0:AF63C3F2FB2065A8C31A755038F2311B:\ -000000000000000000000000000000000000000000000000 - -20BB84964CEA329371C8D6C19B7BBB79:B63FA7A265E7C7E5140B486B424257B2:\ -000000000000000000000000000000000000000000000000 - -757D5E6A90375777C0592A1F16582FE0:87A64BABED1F66786FD3E56154FC6DDF:\ -000000000000000000000000000000000000000000000000 - -B6857322EEB6DCFDA73DE5D43084B7A7:00C805A381A39058F9D427B9DC8960D0:\ -000000000000000000000000000000000000000000000000 - -588AA36DDF8829787F5F0945D5A02C3D:1ABE11DC97F23734109997AF3849F545:\ -000000000000000000000000000000000000000000000000 - -CA831237C45F4E8B8A98BE757DC21106:BE727CDD9C8B5027079C75C6DD5D2011:\ -000000000000000000000000000000000000000000000000 - -C497A25D8F03792631E27277393126F9:A29DBEF99AB979FED40C265BF868EBA8:\ -000000000000000000000000000000000000000000000000 - -A2B91FE5763FF97A4E9499F53F451D78:19B56E4B04C7B06B96CB5ABD6627E469:\ -000000000000000000000000000000000000000000000000 - -ECA39A1D3B9D8EBC98EB34CDE71D03D7:D34A3718F58614D409633113C7739F18:\ -000000000000000000000000000000000000000000000000 - -440045B4B13351971BC409404163D96B:8DD3A711A1D3335A40F499461FFD1ECB:\ -000000000000000000000000000000000000000000000000 - -D631221F472CEF76BBA73CB2364EDD57:4AE664EE759660FD647AD11E2B5FF593:\ -000000000000000000000000000000000000000000000000 - -635066186DB6086FBF2A4D1C7CF85DB7:3E71A02D9C753FFD8C58928A4560ECE0:\ -000000000000000000000000000000000000000000000000 - -22924658C1BAC38B196F4852A1C35B1E:8FABCD731E720D0F464BFAF7313CC1D3:\ -000000000000000000000000000000000000000000000000 - -AECD1159645242EB40231C45299B02EE:779288EF5750161A8E9948110C27D783:\ -000000000000000000000000000000000000000000000000 - -AC622AAC79017DFDA35CF4602C049C7B:28A10079A7B447A0DE8894F37B1BDB51:\ -000000000000000000000000000000000000000000000000 - -AE75A80D6CE8CFFB41D50E09EE65C822:0FABA3FD30BE980728B74B2BE0FF3543:\ -000000000000000000000000000000000000000000000000 - -B507365EE27C856FF499D825F3DD57D1:494C5A82A6599FF269D028051D8E4677:\ -000000000000000000000000000000000000000000000000 - -268E8157AEFB28F3F5A402922A5B08B0:B2913443BF4AB448CE42C297ED78018F:\ -000000000000000000000000000000000000000000000000 - -B03EF1E97D2A85DEFE6E90EBDD13F37A:E3878C6C42A16C388E55C4732B038416:\ -000000000000000000000000000000000000000000000000 - -5279D8401CD4C4AB27EAA22BABDA41DA:721EDA4C877B3C3611A9DA63AF911187:\ -000000000000000000000000000000000000000000000000 - -F2DEAE70705494F49E30168A4EF5638A:461B74D6D552DF6DF118ACF76393FAE5:\ -000000000000000000000000000000000000000000000000 - -61A08772900C83DE53749BA15ADFF518:6C491853745F4DB0C60D22DDDA608C1D:\ -000000000000000000000000000000000000000000000000 - -9D3929D6A80F57E8117E5B48FEDCC826:BAF62E1A26F7C78A7CB9DAC0E13A30FE:\ -000000000000000000000000000000000000000000000000 - -F85E31DDB8119F09A45EC30DB408DF05:59F7FE1CF6A3D7970E86574A619C516B:\ -000000000000000000000000000000000000000000000000 - -20966FEB0CE93ABD78B24A971821FC88:87447915C9F4D8418B2A2CD727B2F8CD:\ -000000000000000000000000000000000000000000000000 - -811450001E41F56394B9396743E3AF5F:9A460C28AA950C3D051A1F4EC1395CFE:\ -000000000000000000000000000000000000000000000000 - -56E3EC3B5A911A0793244F86CA729575:BDBECBA37F3ED6B2D80CD257A498344F:\ -000000000000000000000000000000000000000000000000 - -E81CAD94E521E9587A2D34669DD6C1AE:2D3FDF1C7C9F289D9ABAF6ECAE097CD4:\ -000000000000000000000000000000000000000000000000 - -CF979E26135DF59109720CA19BF3B9E0:1A5A43E548E0AF0391BADDFB01B47491:\ -000000000000000000000000000000000000000000000000 - -988BB4391697D4E693CC56185111ECF2:4973A5292E8BD63B1ECEA06851E439E4:\ -000000000000000000000000000000000000000000000000 - -3DB27FFFA1DBF9E3E653B788D193EA35:A6FC7C9F947EA17AAE4AD69543134E18:\ -000000000000000000000000000000000000000000000000 - -8BEBAF0A458CFBA90DE4FD329CE63109:63371B4D2428C76F8AF15BFD9826926D:\ -000000000000000000000000000000000000000000000000 - -4FB2853762D073FE806557B78C43A7D1:F2D1D1382F2AD7E282E35EDB448E37C7:\ -000000000000000000000000000000000000000000000000 - -F20AFEFE0129D6F3BFDBD788607ED22C:E63EA278E9B563297E28FC4B7B9E9433:\ -000000000000000000000000000000000000000000000000 - -0039D613D42DD869852E44126EBF9E37:6BFC746FC94BDA3001563D9DFAFC8DF5:\ -000000000000000000000000000000000000000000000000 - -D56E96E8B632A136C0755ABBE4EB8BD5:FDBCAAF131A5B6BDCB44E5C0EBFAA95E:\ -000000000000000000000000000000000000000000000000 - -387B2F9C8170A96FBC39C799FBD10AD1:DB5A7AF7DFD5325816F179F3D4C3BB5E:\ -000000000000000000000000000000000000000000000000 - -A7D65BC6962E99557AE83A96D567CFE9:3697BCB9CA432CF0FBDF8D29828D4776:\ -000000000000000000000000000000000000000000000000 - -3DBA3171F0DA3FE61B8F8D8D816D5BC8:00FA60B941E72EE4ABD7EDA5383BAFED:\ -000000000000000000000000000000000000000000000000 - -7016B5A26F566A0CB68113E7A54BBBEB:FB2534D13C44CF6473951E2396BD58D6:\ -000000000000000000000000000000000000000000000000 - -7F7D76163F7950DB54F16AF542DECEDB:74D872081B6416D5B9ADF355BBC4E906:\ -000000000000000000000000000000000000000000000000 - -E01F64B3E818C3571FC763F021595967:C3936315C0A5FFF0AE1F1743CFB9E798:\ -000000000000000000000000000000000000000000000000 - -9F8A86DDE688776ED80FC3D6E027263B:06E080332D9615AC4B38436898467388:\ -000000000000000000000000000000000000000000000000 - -4E4E722951A5D8398E2B24F5AF54BD9E:2FA6664CA53746DA02BA0A19AC6C7D7F:\ -000000000000000000000000000000000000000000000000 - -54082FD1EFC1377E65C3584BFBAEBA17:C51BB0BD10E1D5525C8A301F7986CA40:\ -000000000000000000000000000000000000000000000000 - -D685123436C51E2F904585E72A558536:003BBBD56A684F05FAC588BEE6103107:\ -000000000000000000000000000000000000000000000000 - -CDBB0B021BD09745B6E3765DA81D7BB7:DF25CE6873E63365EC17B1E4F71713AB:\ -000000000000000000000000000000000000000000000000 - -D8BB6CB4C5EC462A7040D05761A821CF:1EF3FAF8757B5864A66392F43ED39C07:\ -000000000000000000000000000000000000000000000000 - -F2637A24ED6B1F3C6EF73083E4930011:39B487DE02F1603CE782716764699656:\ -000000000000000000000000000000000000000000000000 - -8EC4C1D2904C081A3B862C1515D0A283:2DB7FC96FA3D8A2B699FF9743E98B14B:\ -000000000000000000000000000000000000000000000000 - -CC976840C38ED63DEA1FB489261AB22D:28822ED55A22A29250F4A907A7773241:\ -000000000000000000000000000000000000000000000000 - -D10AA53F75B4D56E23E43543ACB2D3D9:73DB1D32049070D84F3292441541384C:\ -000000000000000000000000000000000000000000000000 - -42FAA774A6DB89F1422568D285750740:DE2D4B4F521C16F51D35B8E6C439890D:\ -000000000000000000000000000000000000000000000000 - -E8AE2A5BD6F41780D4B78F5A7415BA59:6B83483EFC57408D6208286C8AED37B1:\ -000000000000000000000000000000000000000000000000 - -0C6F220776A021AAFEDD1A5C1DB181CA:AD8FA2C34414A132F8073EBA3AE01C60:\ -000000000000000000000000000000000000000000000000 - -674367222CF0E6BFD42D6E904F713DC5:D3C5B5122DDA26BAC7060BF154FD60BE:\ -000000000000000000000000000000000000000000000000 - -F19CCE49F2AEA18319BAC29EAFC488CE:D73936AEF70D532E6C3270DB25058A4A:\ -000000000000000000000000000000000000000000000000 - -A02A4E2E535E32179BD3F4D688608736:A98D0271136AF568324BB8D0E92340C5:\ -000000000000000000000000000000000000000000000000 - -D4415FF1F2CD21C9CDCE175A238DA910:8124ACE84AB38E910FDED0F6752B5FAB:\ -000000000000000000000000000000000000000000000000 - -23FDE6972BD5D652976B1979D5E0D2D5:E43483B9CD70F3DCA6C839FEB194A087:\ -000000000000000000000000000000000000000000000000 - -6FC7112407890BEE9B1E58BBF5B19975:BACB0D14AF9E54B2A7C629AEFA64DD1C:\ -000000000000000000000000000000000000000000000000 - -B63A8BF5D34915873DD16A95AECAF26C:302FCA7B0EDB37847638E24CA5808A3D:\ -000000000000000000000000000000000000000000000000 - -D3FE2ACCDFFCDFF50165F67CC09A1D9A:2780C756862629A8C4E2629FD8E466D9:\ -000000000000000000000000000000000000000000000000 - -254E34BE13C63EE93A24883136AFC0C1:B960C333FB15DB2C6580553B13C23AD1:\ -000000000000000000000000000000000000000000000000 - -035302572B10D5C1B241C87F2D913DCA:9C0933C24C086E48DFD3F419590BBE92:\ -000000000000000000000000000000000000000000000000 - -3EC84DA124E166438536E49B5C267091:6150B4873F1CBC7A6E9056F9D95076A6:\ -000000000000000000000000000000000000000000000000 - -8D472DAA240C21E278E342DC3268E561:AC5C5E7CF34D7865C3851E663FCE23DC:\ -000000000000000000000000000000000000000000000000 - -1EAB4C77EC179FBF9886F9A6858BD9F1:BD0526FB9929EBFF0B573EB93A940D32:\ -000000000000000000000000000000000000000000000000 - -8F25610DE1E324C8C0B9A91124340FBF:94C5E9A383766B03C22D577741BADAE0:\ -000000000000000000000000000000000000000000000000 - -B881A04004053C745AEE2A972265F896:CD3AC08893681BC57374BF3B2F14886F:\ -000000000000000000000000000000000000000000000000 - -9B6E88AF654C8F52EB441B32813E0F67:6CA75A746D588111CDF5AA42860FD7A1:\ -000000000000000000000000000000000000000000000000 - -08F16B4A01B2B6E4D3FB678AF52944CA:ADFCF161051EDC05C3850A42DC4B8C0F:\ -000000000000000000000000000000000000000000000000 - -4B06EDC67571EA79C1186766AEA4539E:FD98A23A6A872F2C2FE88071536E4F41:\ -000000000000000000000000000000000000000000000000 - -12F8F459A9A93DCE3EB6216820CCA233:D87C6BDCC6489B73BC826A54D3ACD17F:\ -000000000000000000000000000000000000000000000000 - -848A797493A75023D7EE5D9C96E1D956:8A22AA964363CB8F63E42EC7B7A549D3:\ -000000000000000000000000000000000000000000000000 - -35315C163A9127E505462C6E1C1D7890:6D86A01BB28C174BB8A9E14BCCD1B0FE:\ -000000000000000000000000000000000000000000000000 - -695D6C7903BAE992AD6949AB85F5A65F:F93A2EF60CF4AC550C723E72644BDFAD:\ -000000000000000000000000000000000000000000000000 - -6032DC62A65400CB70CAC882A17B5E95:97EA0E405C1FCE63DF66BB3C23560A0E:\ -000000000000000000000000000000000000000000000000 - -5C94B77B9EF22A4F3DFB5407E8C381AD:2DEA5CBE120630FA88DA6D46D288635E:\ -000000000000000000000000000000000000000000000000 - -F95F347A4D7A5C292620B07318BFF803:B387D8D91C6478BCA022A658FF4DB0EB:\ -000000000000000000000000000000000000000000000000 - -9577B41BE7D1A8587E3E27A1389DC9FB:ED74B4EB542C5B3A0D760299E69E5EC3:\ -000000000000000000000000000000000000000000000000 - -3DF28E3798BD98984F6DB950D6A1F948:8052BA88E81C87D8CF2CA22550A63B02:\ -000000000000000000000000000000000000000000000000 - -AB2773E217A7A6A6859698D5D393B2DB:474A37DE739FFCCF31897B4B66B8C892:\ -000000000000000000000000000000000000000000000000 - -060203EFD452FE6E4B9D29861F9B4562:472C3FA987FBB35DF3AF43C75E721E51:\ -000000000000000000000000000000000000000000000000 - -31995CCFFE329932F121EF8BA410A4FD:436B187F3A7D51E2036DC53E517F1777:\ -000000000000000000000000000000000000000000000000 - -A53625472349DE047005DAF198953590:960F173B6EEA02CAC4EC3651B2FC47DB:\ -000000000000000000000000000000000000000000000000 - -8EACBB7BE93D3070B0FA7CABB3045DA8:EC276626BF1B0C436AB5276471372D14:\ -000000000000000000000000000000000000000000000000 - -A965390450D42F7B74316A1EB1FCC329:C1488FFBBAA5C85DE16E98BC343660DE:\ -000000000000000000000000000000000000000000000000 - -36E2AF37370B07EE5DB106B49D5C966B:86CC23C3B66ECDB59580BEE1853D61B8:\ -000000000000000000000000000000000000000000000000 - -BE36B7425D6D812A9D655320D09EC22E:74B4C41C28D26D9D1C0CF16403EDEFE2:\ -000000000000000000000000000000000000000000000000 - -67E19E7A5E0E26A0023DE95AF1B8B4BF:1BAA2706D5EE6C5BD1DF8291978C6EE7:\ -000000000000000000000000000000000000000000000000 - -0148F25E6860D5FD6DB4FF4A10C41920:EEC71F999D856B480FDC9524D4C298DB:\ -000000000000000000000000000000000000000000000000 - -8CC2AE04A5292E56074FB6AE2109DF46:6FF3AFEB3C79A2B2B19B7936A6B81600:\ -000000000000000000000000000000000000000000000000 - -20D8712AE3DA248760736A180B30BEC6:74E4C190E3BDCE13483FB05A6B8FF5C5:\ -000000000000000000000000000000000000000000000000 - -28291211012AF1AEA64D60E24A575673:849CC6B59E21442804A0E5ED1A01037D:\ -000000000000000000000000000000000000000000000000 - -C34EC4029E4F5E93439331CA923C2864:D1746E215BF29A66A432C5223C060D83:\ -000000000000000000000000000000000000000000000000 - -D7B54854F36F44DB71546494C405DEB8:C4D45430420585B661C4F43DFF5F0551:\ -000000000000000000000000000000000000000000000000 - -1225585CD18C7ED26A1CE1576A4283B4:7502910B1835ADC0A724DAF5516308D3:\ -000000000000000000000000000000000000000000000000 - -E3D02564C06455E162626EBCDBEC43EE:11DA0573D7D34A586DA61A7A5C10849F:\ -000000000000000000000000000000000000000000000000 - -A9ED28B26B20D83CF33A97ADB8D181E6:B47F3027D742CA4C9BCF77AA141BA2C3:\ -000000000000000000000000000000000000000000000000 - -D142B008C4764EAA88741D0DB54FEF8E:DDF748FD2373918FA25C4FE5D6E12656:\ -000000000000000000000000000000000000000000000000 - -E568167CDC7D3BEBB3807039E34E10E2:BDB5EAC47BE80B077ED50625611EBD18:\ -000000000000000000000000000000000000000000000000 - -7323AC95F39146CFDF6AA6BB8E9ACF90:F1E53F5E1B0AD9848DB4E3C3D3741263:\ -000000000000000000000000000000000000000000000000 - -BA541AA170450D7C45F8D23FD587E34F:19331E5217357CB4DEBAA80AA5B44D92:\ -000000000000000000000000000000000000000000000000 - -E603E348D083C0F0D0188E0E820BF797:2D691AEBFD51C5D26B13E33EAEE3B39A:\ -000000000000000000000000000000000000000000000000 - -5AD31409A42464B3F085A2DD5A6FC292:63E8E939E52066EC0E4E074FE60D90CC:\ -000000000000000000000000000000000000000000000000 - -D9C52B6DCC49BB59B9C3BD13FC88D018:A7563FD915814534A1963662BC900EC0:\ -000000000000000000000000000000000000000000000000 - -3014518A77A1D8F9D103327F2BCDBE6B:59D93945A6467D215044EC49945B78AF:\ -000000000000000000000000000000000000000000000000 - -5D4F53FCD6D41EA616F140C12B9E41CF:E8D7F3AA8DFC265001CEFB78733DF426:\ -000000000000000000000000000000000000000000000000 - -E30ACA76182B1334FE2A4F5AF0C30BA5:C868972B54F73779BF62CDFC25722AD2:\ -000000000000000000000000000000000000000000000000 - -A04A0A22C20E262C1B6485E406E65994:32A175FD6789524837157A176F40EFFB:\ -000000000000000000000000000000000000000000000000 - -B6110B7A92475C3B366C403450488061:88DAE0307CCE2C38EE584F7149BFEF73:\ -000000000000000000000000000000000000000000000000 - -8C5DF59EDDB12710BA47507F6768F113:D44C9FA99132D411EDE37ECC252588D8:\ -000000000000000000000000000000000000000000000000 - -17C385D013346587A677DD56DA0CDFED:C10C3EABB30C69F9CD9554936FDE40D2:\ -000000000000000000000000000000000000000000000000 - -6E43A132D96EC1F7DFEEBA445FE716D7:911BF5A6631536B39D1FA011F9FE1E73:\ -000000000000000000000000000000000000000000000000 - -EA2733E8A42B18E0E57A85ABFFECA103:1747BF3F04B97A431D63AB6130B7E344:\ -000000000000000000000000000000000000000000000000 - -57CD8F9A4ECCD9884243F834D9967BCF:8F33B6E4C39738C7D4FAC92D93D52228:\ -000000000000000000000000000000000000000000000000 - -6623207CF0803C1BFA605D269A003C64:8534BE7C6BCA0155FCF418CCCB5AC81E:\ -000000000000000000000000000000000000000000000000 - -76568B603BAC1CD646C34E61A638D7B7:53F6786EE1504317243EEA24CB5DA9E9:\ -000000000000000000000000000000000000000000000000 - -841E33C6C4F92AF4443A43EC49243068:FD32E3EC516B77437B4517778BE90D90:\ -000000000000000000000000000000000000000000000000 - -1097C11A9ECF04D2DE9F8F8994E0BAED:143401E20D3E6D97DFDDCA7A8DA456B0:\ -000000000000000000000000000000000000000000000000 - -8D520BE244CA4260ECF38B81C428E1ED:701B82F492B01FC3F56A102072A66FB6:\ -000000000000000000000000000000000000000000000000 - -A09BE54496E26257925A3F8B737A77C4:D2276D31749C2F4A79C1ADA50D242D2E:\ -000000000000000000000000000000000000000000000000 - -AE1463F6200666D99837D4C3458E29F7:4BEC3FE34560EE2F3FB88C1B19928D71:\ -000000000000000000000000000000000000000000000000 - -870AFEA6425FA0477F3758F9AC81B5BF:3B9A6B224CCD2A34B3CFFA8F20A32B33:\ -000000000000000000000000000000000000000000000000 - -452857F43E0EF30BBA8DF975B92C67CA:650B79ED8814D9D5B9F40DB20B6E54FF:\ -000000000000000000000000000000000000000000000000 - -3EA662143061F27044295712919D8CFF:3FF60CF2D0F12F3069959A17FD2FA52C:\ -000000000000000000000000000000000000000000000000 - -3710720E6BCC9D67B51A990020E50E9A:AB064628EAFEFD04B7D483507A3D5F27:\ -000000000000000000000000000000000000000000000000 - -CECD711FA3B66CEA1639E7DB0A36CB5B:219C9187FFD71770C717E3CC872A410F:\ -000000000000000000000000000000000000000000000000 - -1A06CF5B4E4D9C055D017DBBFFB17493:DB2B632CED6EF0CA69B0DBF90CFDEC3F:\ -000000000000000000000000000000000000000000000000 - -C9403D0FC547D44DB2A12BC26E549B12:34746770542734BD56CC54C3BA77DE05:\ -000000000000000000000000000000000000000000000000 - -69E6239629F6BAB3ACAA41D3CF63AE2F:68ABC2D6D0155ACF7398751A4263FFE1:\ -000000000000000000000000000000000000000000000000 - -CDF3A23AED45A5CC0977FC492D78D769:0155284B425712C5662BA85DD1AA9C00:\ -000000000000000000000000000000000000000000000000 - -38947A6BCB9EEB2349CC7982CC988A3B:487705205D9C054B278A1A77154DC444:\ -000000000000000000000000000000000000000000000000 - -D21A1763007D050CDDB3D3000CDA18DD:E4BDBAA0BD0799643147BE9A72C2C28E:\ -000000000000000000000000000000000000000000000000 - -D86E349D4F8BACC0CD204D86485AF372:690C9CD71586F0E707A6747CDCE14BD9:\ -000000000000000000000000000000000000000000000000 - -2F3A9E1E90111694A5D874B72A725627:485BB4E6C8EADCC1DC8F33CC83C56DF7:\ -000000000000000000000000000000000000000000000000 - -BF6397D9E8C5D0F7D537D17CDD094C56:5DC5509BE381271A892F73AD2B17459E:\ -000000000000000000000000000000000000000000000000 - -0C8EEF7E5C26A11E13F3B332C78240E9:FE7F7B03809161699B20C91AC71388F0:\ -000000000000000000000000000000000000000000000000 - -3708A3370D457D498BE3B36C6628C450:5ECD46E61E9EE1504928AF23DE58B417:\ -000000000000000000000000000000000000000000000000 - -7A984BD4A80E2495C7A64107DBD1E5D8:529EC6E2DF4B601050BDAB98466FCD47:\ -000000000000000000000000000000000000000000000000 - -E00C27A4F32C3C1FD220FD3B7B2E7251:DE00F2AA4BC9B34A187780D1D6998873:\ -000000000000000000000000000000000000000000000000 - -C9EED5E1F515E97E393E00476F291ECE:81369529646A657A4C6BF7BDAB9D2780:\ -000000000000000000000000000000000000000000000000 - -D91189059CAA6B0C4E95E7485D7A73AA:F6D1EC1368832C038AF24FF17C523D8E:\ -000000000000000000000000000000000000000000000000 - -B0824A7A86F5EFCEBFC3EFBAD4445FE2:E4122EA5B2375D306C7A86C5486F6AD5:\ -000000000000000000000000000000000000000000000000 - -7FEF47A756D245B1B5E1CC43EB9D961F:537822C6708654C63740F2EF1DFA1B57:\ -000000000000000000000000000000000000000000000000 - -714B564D133054E286CCF3F7B4DDA373:D611B6FA3C70454B618CE723D70DB96A:\ -000000000000000000000000000000000000000000000000 - -67EEC672093ECB5C0067565FF315B57D:BCDDB2993D6694EA14CBD3DBA5D72054:\ -000000000000000000000000000000000000000000000000 - -EB34AD41058C53C01C4F1357F7CA0540:C25E1CEF2DDDCD4C6E8CBD363BC7A49C:\ -000000000000000000000000000000000000000000000000 - -087BC6FC60B82B16F51BFC19F52DB265:406B498631B18D08880E75470D9D9356:\ -000000000000000000000000000000000000000000000000 - -7D505F278F68130DBDD769F310960455:0E4A4B6FB1DB995A4F38A8F91824CD14:\ -000000000000000000000000000000000000000000000000 - -53C5BBF9DDB235003D075E57FF1A1001:FE704DB9E2020E715AD69FF9E92F8786:\ -000000000000000000000000000000000000000000000000 - -43E15279B9CEEEAA90EAD7CD9D491D5E:7B4DC664B034F4FFFB324C1514702B35:\ -000000000000000000000000000000000000000000000000 - -0BC5E3D2B2D18CCBA1B122FAB906F4EA:54E1A5104006ECB27ACC0FC355A5C0E8:\ -000000000000000000000000000000000000000000000000 - -2A41F1E81307DE4FD56408A9C7865FE1:7D0B9B0FBA0CCFFE60DAE48078CE4DFF:\ -000000000000000000000000000000000000000000000000 - -7BF72B9F29F6738A149EEE9CC66042CA:B8C05E2EAEC1B4A3ABF9505BB4ACAA46:\ -000000000000000000000000000000000000000000000000 - -9907CA6C2944F659DD209F90797EB7C6:606D2B529277284D69232AE77B475024:\ -000000000000000000000000000000000000000000000000 - -478E732A754522C881C15883B0BBCDE9:B232CF742761574EA99453D7C9B54862:\ -000000000000000000000000000000000000000000000000 - -4A9EB2F326F83A0F93F41B21AE4F49A6:354E0630938D10ED31D9AA7F57440CA2:\ -000000000000000000000000000000000000000000000000 - -8C7B36A4E87368511D3D3C578CF95240:53F1C55253D2A5B7024C28E666A57FEA:\ -000000000000000000000000000000000000000000000000 - -EE2A1F5575784C3553DBB21540B7553B:8E8C8768B7E2D430CC2DAE11A2247D8A:\ -000000000000000000000000000000000000000000000000 - -BBE9A1EBB77CBCA4B5BA650CC8E1882A:A13BFC5603FA258281D8AC945F4314FB:\ -000000000000000000000000000000000000000000000000 - -0304ED5D3AE4E9AB51A67C14291B0E4C:17C0BB89D285E07C97640A8FE6027341:\ -000000000000000000000000000000000000000000000000 - -E8EE60340D4881CEE9870133578B723D:DAF1AB5368D5BD5F6B52EA89940605C4:\ -000000000000000000000000000000000000000000000000 - -15F20EB4BB374CF9FFD0ECF1379A6309:D3D5F60355EB5FFFA9216B6073C66FDF:\ -000000000000000000000000000000000000000000000000 - -03B59445DC995E511D14CB27B611D8F4:D34A2B72F1864FDEFF58425442A0A3D8:\ -000000000000000000000000000000000000000000000000 - -E5DE46FCC7ACA6EAFE41E83B8AEFB33B:52040C8FC70CE166EAF34CDCF654ED43:\ -000000000000000000000000000000000000000000000000 - -C6DEA79ECF12FD33EA7CA9C0AA3C2E59:9C5702F759F6C92836FA2C0490080A6B:\ -000000000000000000000000000000000000000000000000 - -CFDD2F3012EA2BF447FCCDD24FFA8869:C33F590E882873038349ED33E8F22B7D:\ -000000000000000000000000000000000000000000000000 - -8BFE4AF3B7D8DB7660514B9669F8D464:A8320F0F729C8A8DDCFDB5C208A6630D:\ -000000000000000000000000000000000000000000000000 - -301958CC9E63DEDDD5E7E1C3C8AC792E:9F5D597E1EA73AAE8F53E58CE4301030:\ -000000000000000000000000000000000000000000000000 - -EDD8C0F63717866059C1CE22F8D01F26:4CEEF2B0933EEABA49A102EEB6E4402B:\ -000000000000000000000000000000000000000000000000 - -5E8BC57A7204DD62C2BF28C9B4C37417:58C5773E59A396896ED815A6127F841A:\ -000000000000000000000000000000000000000000000000 - -256F18961916ED383CE6FA8BC6F2B7CB:7A803EBFE417C354BBFC308AEEB8FC95:\ -000000000000000000000000000000000000000000000000 - -754166EF6D6231A5CC838C394FFA6FF1:4B51C7505E98DE6C9DAE5843E589EDE6:\ -000000000000000000000000000000000000000000000000 - -569C792FCBB2ED89420A51A9289D7323:D450508E9143A3E14ED4D72CC12160F0:\ -000000000000000000000000000000000000000000000000 - -F74D7BCE63019F55E33D92C7FA132BA0:A8F126B576C79AE85A26303EC70ACDFA:\ -000000000000000000000000000000000000000000000000 - -1DEB7CF9F5FA1E3BC818BB54D9721D9D:9113F881F7474428BF23A8984219A4BD:\ -000000000000000000000000000000000000000000000000 - -2EF52D3CBEA2E2CB03D0B848E7C07D80:DA15834C6EF22C8958294E66E6196119:\ -000000000000000000000000000000000000000000000000 - -3B27817D9E57B4E70ADB97A43B005317:CE976989A33D1A02A0EEA2246997AFCE:\ -000000000000000000000000000000000000000000000000 - -5E28CE24DA41AA55156AAF4D0D4BDA42:32AE2CB879873928327488298B64F536:\ -000000000000000000000000000000000000000000000000 - -8D331AC09D25385F4490A7F3719863ED:9976380787393589CEAD1800FABFE078:\ -000000000000000000000000000000000000000000000000 - -D5B056B768B04D47359793DA9F0ACF1F:EAD5B4F1EFA30013B303ECD50493E54B:\ -000000000000000000000000000000000000000000000000 - -322B8A0EC75069EFF4EBA07CEEEB342F:1A94F65D67A6A435C5EA28F1D46BC0D9:\ -000000000000000000000000000000000000000000000000 - -4B4A22563C0A57DC4736D574190E1AFE:D84C3B70EF9D3B471C689BDE6D8EFE82:\ -000000000000000000000000000000000000000000000000 - -F1D917CB22016EE46F4219603DA737ED:4AD2B98E504299732EE814E93D69475A:\ -000000000000000000000000000000000000000000000000 - -74DA216E6125B35F68D710AAD1DD6775:7BBD944B232616BD9DE40A985BDAEA2E:\ -000000000000000000000000000000000000000000000000 - -292C602001EB4D371203B1E93227F836:8C4013B2AF75B3C155D7120DB0934428:\ -000000000000000000000000000000000000000000000000 - -734683C7FBC228A7EB1F1B67F29D5CF0:951DC7BB2239C3B830843FE3CDA7CA34:\ -000000000000000000000000000000000000000000000000 - -7847476D0ED3DDB46203EBDC73BB0FF7:60B5491007F5253FAD1BDCDFAAAC98BD:\ -000000000000000000000000000000000000000000000000 - -81CD86C3C82714205F4C06384878D4FB:585EBD953D2F584B82788287E99D263E:\ -000000000000000000000000000000000000000000000000 - -E65472A6D482655AD2A5B1D3B8B247F5:40D1910F18DA68DCCB577C0651573748:\ -000000000000000000000000000000000000000000000000 - -27706EE3BF8C5B11892AFE89FB77530F:80112C6A37C0DD301AACFC660B411099:\ -000000000000000000000000000000000000000000000000 - -99582047A954472C79F081EBD92AD60F:294B94E01056C6E1DECF70D3EC0A0B02:\ -000000000000000000000000000000000000000000000000 - -7ED1ED318F1942243580EA94C5E40C15:480986DE5D85BD9FEBA09F9D074C9BB1:\ -000000000000000000000000000000000000000000000000 - -C4399BB80B44FF8B9791B952262ABBF0:0BB435634EC3C4E63EA1D4AF3819D635:\ -000000000000000000000000000000000000000000000000 - -AA9774F621357C574956D06FA4FB0DFC:089670B247DAA022AF8E63CDCC252F3B:\ -000000000000000000000000000000000000000000000000 - -A2D7F2C0B96C888383470D746D8C3D72:71C6023943714AB97C4F66D6ADE4B5C5:\ -000000000000000000000000000000000000000000000000 - -60BBE793A6CBBF092ECF3F2DFF9C58E7:914B0150537160F4A49FCDE81AA32A5A:\ -000000000000000000000000000000000000000000000000 - -CDCA44CFB68D9397FB45692CFA7FE92A:01CD4B3A51B8542166478BC6535DA067:\ -000000000000000000000000000000000000000000000000 - -201D8598327C81D3C91B1894FA97DC2A:E4F60F8E55978A6792589FB4C58FD61E:\ -000000000000000000000000000000000000000000000000 - -3073CB477A05DC7305625B2D8B89F37C:750DCF9CC3B820A99226E27A67F0B9D4:\ -000000000000000000000000000000000000000000000000 - -8B0D43826ACA0F5ECD9AC42B24B23595:2BEA1CF96CA436FC33EA573260C56A29:\ -000000000000000000000000000000000000000000000000 - -CE1EF0456D99D285B8DB31EABDF12754:9A26AFECE78B58FD937B0CABF518350E:\ -000000000000000000000000000000000000000000000000 - -6A5F54938B1A3FD41C10C854C8E04A44:405DE78B8BA1013E025F0C66CD8DB322:\ -000000000000000000000000000000000000000000000000 - -925CCB833E2BB24C56DCD6971E50DA44:A7B1C50C8A1DE13694BE770DEFA447E0:\ -000000000000000000000000000000000000000000000000 - -72CE5E0A8D2EFEF16855E3F1844FD13C:53177B6A61F2C5B98F2ED3E6EC195629:\ -000000000000000000000000000000000000000000000000 - -A7A3974CE115F4D92CEDBDCB6C0850BC:3DC31176F7BFF544F98B50D1FF0EB338:\ -000000000000000000000000000000000000000000000000 - -6EB0181E23642427F498B5BBC87A0FF3:F7887B1A95F202918295D6DBA328DBE0:\ -000000000000000000000000000000000000000000000000 - -112DB5BFD7108A6E2D51B883F0C6700A:35EC6F1B98376F6CFD98B0DB3DB63295:\ -000000000000000000000000000000000000000000000000 - -EE9CB8FF31C6106F54468D56264B5A67:FA2A11C86EC2BD433BDC062294D5D479:\ -000000000000000000000000000000000000000000000000 - -9269DB3D3EB516D02452109D537511A0:70C709A5F6DA5E546AA42781D389BA4C:\ -000000000000000000000000000000000000000000000000 - -04797C87F169EED791FA03BC6529CCBC:DFBA39236536C7B33F5C186742897F44:\ -000000000000000000000000000000000000000000000000 - -30DCEEE9F96719F94CDA6D4447DDA5ED:6BE2E27BB85093A71E3208B22D9B4EB9:\ -000000000000000000000000000000000000000000000000 - -DEEC871FEDE7BEF4E5924A35F7C1473E:2D189653936AEB37F0222E96B205FD36:\ -000000000000000000000000000000000000000000000000 - -14D91B1E40E6EF6C0D47B18CF1820459:E428FBD6A451527D8E254B032A85ABD2:\ -000000000000000000000000000000000000000000000000 - -F50744F84E3C68FC80883F5F7CD4F473:12D9ADAC936643E44C75765EE860E156:\ -000000000000000000000000000000000000000000000000 - -BD37910AB3475FC22A6C5AC0277D6684:22EBADE6B7550CFAF53B369490420120:\ -000000000000000000000000000000000000000000000000 - -4A9EB13B7BBB14632B1FA37006139022:1B0568ECB78BF78E17891E99D3FF6685:\ -000000000000000000000000000000000000000000000000 - -A1F6367ECC2AD8DEC620DA653D6D4AC3:B72DC0A98DC7545798B9A09774127A7C:\ -000000000000000000000000000000000000000000000000 - -1FFCA2F556D07C7F0125B1E63811FBF6:620B4E671AC5ECA7780C114F8A3B5834:\ -000000000000000000000000000000000000000000000000 - -28EF3A37D33B9BBFB94DA9C27CD74C8F:8DFB3F06170CCF3FB628A1131B7C55D7:\ -000000000000000000000000000000000000000000000000 - -3504348BF82F0E8D12784206732B7EAB:9395207A7F3D76727E08650635A50E8D:\ -000000000000000000000000000000000000000000000000 - -649B9B03B4FA72E015C6318C78DBFE6C:1C7F7A1E78612D4B57AEE7A97E026D99:\ -000000000000000000000000000000000000000000000000 - -5E5D242061750A2E3AD7CF68A18F53E0:92BCA6EE74F863BD58AAE46966FF0195:\ -000000000000000000000000000000000000000000000000 - -0BEAC3380DE66C16C118E94A7E98632C:D707ECAF8DA45A032FD2B92EC02BF809:\ -000000000000000000000000000000000000000000000000 - -100C0B29ACBDC1DCE5BF94F647132C8E:D7D4BB2EE07EC7ABD29408BB29C3E52A:\ -000000000000000000000000000000000000000000000000 - -E4C40EABADEA4081D339B98217B89F4E:068477FE3113C4E706161C7BE173109F:\ -000000000000000000000000000000000000000000000000 - -79201EFA18BA2872F67DB637435DA21B:E73ED140C42FE2121BE039F36F24B353:\ -000000000000000000000000000000000000000000000000 - -F0AE4C2DC0FD756D97E9D4FE2F9F4CF2:2472A6AA7ED6F70D2179043A4E37C671:\ -000000000000000000000000000000000000000000000000 - -6C18AA9A75DCFCD80EE4490529461EA0:95818C326367FD55674DB6C721DCC315:\ -000000000000000000000000000000000000000000000000 - -73C0E36EDF00088CF693EAE05DE118B6:44BAE149894A3B8D680988B2441FDD1E:\ -000000000000000000000000000000000000000000000000 - -C20558F78C1E2D2AB5898C50B7C5B5CF:6631895DA9C9B985C8268CE75B8DBD35:\ -000000000000000000000000000000000000000000000000 - -7A2DBE3457C46A63ABBFE7E3C6AA00FD:A95F5D0F337851A3349D159E70EE958E:\ -000000000000000000000000000000000000000000000000 - -9FB3015058C61098BBC919A7DC369728:0B3EDDE3D3C9F33C98F2561C38A24AFE:\ -000000000000000000000000000000000000000000000000 - -8446AA6E305837711CB5B77589BE700E:9CF33FCA164676B2503F4EAA6DB82427:\ -000000000000000000000000000000000000000000000000 - -63ACC114B985F5E162E74C6A0D5489A4:4502AF98B2F3C453EB84DB4816CF86BA:\ -000000000000000000000000000000000000000000000000 - -1FB274A798A9DE040500989BD0DAA450:5122BAB4ADF7B99D018247C17EDE37B7:\ -000000000000000000000000000000000000000000000000 - -0B75B6E38F803AFA2E185825452E7CB9:8053D0C508ED36FDD78BE6A2E156C68B:\ -000000000000000000000000000000000000000000000000 - -502998BD920539E6C9457CEB7ABCC2B0:630A85FE40269FDE57BE0A91230F14F9:\ -000000000000000000000000000000000000000000000000 - -D15498EEC5A204E75ABD92296759B2E7:1DFBDF5987C38B34D70EC1F9F09DC244:\ -000000000000000000000000000000000000000000000000 - -74CE162AA4400EEFBE2F9452F190C925:89A0188B43870472AE7BD89F1DC9DE4D:\ -000000000000000000000000000000000000000000000000 - -9BF6D9402DAAA02EB0D70ED5686A2897:F080B9C597F6AE853556F9088765307F:\ -000000000000000000000000000000000000000000000000 - -66104EF16B83A3C24630AA15999CF795:465BED1DF34D70D6666BA9CAEF77E5F8:\ -000000000000000000000000000000000000000000000000 - -2C7518563817B2302055448AC1E236A4:29228B582D6C9BF2F5FD64AF68801645:\ -000000000000000000000000000000000000000000000000 - -B840A56E78F0CD9C491FBFC2A008C0B1:741E572D70820BF764DFC3EB64F58DB5:\ -000000000000000000000000000000000000000000000000 - -366C45C25B098271DE2BA33B761CA2DA:93730B17CF28E0B7FA833BE560433D26:\ -000000000000000000000000000000000000000000000000 - -DFC28B998E7D650ACE708662715DE551:070744AD0E21FBF5344EA22396FE3BFA:\ -000000000000000000000000000000000000000000000000 - -AB8D9F6AF9FC1B293D1EF3D4459C17F0:873A852D49296F2493CD56AC374FBD59:\ -000000000000000000000000000000000000000000000000 - -CF8A7D1F67264C8F0CBB81B7F22F5284:A0688DD48E462A1B75F34425536C270A:\ -000000000000000000000000000000000000000000000000 - -3911525195F0A35484618596EA0B23CD:9B1B36125ED888A57FAE5BDEB53ACFE5:\ -000000000000000000000000000000000000000000000000 - -5DB02CC6EEF7E128DAA849EEB1BE9A7F:95404D7CCA9EB1C2F720BF6CC74826A8:\ -000000000000000000000000000000000000000000000000 - -CBB260B85AB0E75F4396FC3F6C7B8DC9:2B702A4E613758D8EADD8E17DA9C0E68:\ -000000000000000000000000000000000000000000000000 - -73C7C371EE0D7EEBBDA62B2D8B47ED02:C6B9E0F5E943685FD1FD739E9EEF6747:\ -000000000000000000000000000000000000000000000000 - -928C48F1AB2E39BC0ED7395841AA55D5:6EE0B71022F864D82F177058C2AFD1F0:\ -000000000000000000000000000000000000000000000000 - -9B73A4CB141AE76D1A4AF02EE02F5623:11D9E2FA35491C034FC28D278F81C741:\ -000000000000000000000000000000000000000000000000 - -F98FF8E931078D572588D3A23BA9A65D:69408F1E703ECEF45C60B576DA8A8E93:\ -000000000000000000000000000000000000000000000000 - -D697E66D3E394658B477F5D94E9AC272:C3E21C1C90F1BFF4BA3BA1FC806C50C5:\ -000000000000000000000000000000000000000000000000 - -7B5D2AD95D1278790DE3E61EA79683C0:BAAD9EF7F34F2D09E4F24F8FFBDAD242:\ -000000000000000000000000000000000000000000000000 - -2FABE699379719F903C55B243E270154:88768EB6AEBB3221DEB456CB581672C8:\ -000000000000000000000000000000000000000000000000 - -A1D567D19DB1F8CDE682025AEAA99DE4:EA16B62DE42D02CD64AA5286D7058E2A:\ -000000000000000000000000000000000000000000000000 - -31B9406E90742402C18E4EFC6D49C43A:C33EAB3109805CC528E06CA92DF1CE82:\ -000000000000000000000000000000000000000000000000 - -DC5CC861CDB8565EA74C5B81D04E3FFF:95581016D9D878454F3B29BB72282CAA:\ -000000000000000000000000000000000000000000000000 - -92D735CAAA20120B2545530FBD841976:AF352F902D964BC93C52DDE45F36813B:\ -000000000000000000000000000000000000000000000000 - -81AC34A2E341F62C479FCDFBC85570D3:D35E2834DAEF034C122439AA75EDE6FD:\ -000000000000000000000000000000000000000000000000 - -DB6CA5A00935E081B0DE14F9489E56F5:C0B207F61BCC815E44671E76556BE222:\ -000000000000000000000000000000000000000000000000 - -6795C4731AB1B7A9BD1367C5FA6D24E0:F2F48C694E4D4C561237F2E446E48CD6:\ -000000000000000000000000000000000000000000000000 - -503D1E8C00F32DD24666B40AADF21635:6CAB8D56A573C231E4083E062509331F:\ -000000000000000000000000000000000000000000000000 - -9B34D2D7E4F84FDADCD221C818398D9D:3F6211A4F97C7D07DE3069A3AF0B2F7C:\ -000000000000000000000000000000000000000000000000 - -9A6AAA25CD55632A8D1364765F054228:FCEE710DB225421305683F6DA8A14498:\ -000000000000000000000000000000000000000000000000 - -51BB73F367B4789C50EE27A7FECDCAC4:89DC658FB152C89E533873028E82F386:\ -000000000000000000000000000000000000000000000000 - -38E2FB18AEF954A977CE17B61420AFE8:F2F090E1D924600B3F2852160F8FBFFA:\ -000000000000000000000000000000000000000000000000 - -40E1F27DC23EB87A38D33A9D7DEA6B57:0BA7974ADFABBC749AAB019F1FF0FA22:\ -000000000000000000000000000000000000000000000000 - -69237F4FA6B874C950F44E2ED8EDE5E2:E8BE1E5DF9FCF083C5C80F5C0C927350:\ -000000000000000000000000000000000000000000000000 - -E529151F5FEDB46E9F150E39FF9095F6:9516D575A3FA911065F308AA45957E61:\ -000000000000000000000000000000000000000000000000 - -3921C4781E145F4867D1E8F134DF7355:DEDAB21C05B199DA1E0C0E1D7CC17F61:\ -000000000000000000000000000000000000000000000000 - -AFFC9793843506A048E65104A559CFA4:43C466A47766F7AE27D9E8250B04D617:\ -000000000000000000000000000000000000000000000000 - -D7CC61BAB163D793C1C9A6C4266BF004:B0E2AB3CF69FD19EFA5BFA9587AEF29D:\ -000000000000000000000000000000000000000000000000 - -A0D64ECF3F000B7478C9FB6C20CD576C:2C0A893A4F331ED2D738446AF038ECCA:\ -000000000000000000000000000000000000000000000000 - -141964E6278C1ECB067DFF46B8D80C15:D89E32E065DA6FC65BDF38A15626CEC4:\ -000000000000000000000000000000000000000000000000 - -72568E2FAF72EFE69E5EEDDBD415F1CD:3A9DE9497BD9C0E8A7933581709C2F86:\ -000000000000000000000000000000000000000000000000 - -2309A9E1B063BEA563AE44FB1D11763E:2C68D638E01CC717CB3095F8769F6330:\ -000000000000000000000000000000000000000000000000 - -5B8786E22A5109D189F5155471148639:F54BDA0C2F70CA852BC5A9DC48E74DE3:\ -000000000000000000000000000000000000000000000000 - -14B31DFD7489D68488A8A2EC6A9B28C2:2E4110267CC09B86849976EC36FD9545:\ -000000000000000000000000000000000000000000000000 - -72D8F97A40E78FDBFB9DDE7D94694F3E:2C010E0A06A15338F76A37A5EDA6E7AE:\ -000000000000000000000000000000000000000000000000 - -7CFB6BEA9ABFE0B5C486504AB7AB7C7E:1495DDAA1CF53478613C5A7FBCC4D21A:\ -000000000000000000000000000000000000000000000000 - -8E22872352AFBE50799766FBD74672FE:DA8894CF60FB487AD2FA856049B4A339:\ -000000000000000000000000000000000000000000000000 - -9ADEC67160B3E7A54CBB3118CDB24016:ACD872C37F74E4D8C9DCB67560A2C626:\ -000000000000000000000000000000000000000000000000 - -AF35888791EA802A0DF92286893B6653:2E2D305D853B870400402D50B36AF1AA:\ -000000000000000000000000000000000000000000000000 - -30401704726D8B873D4D2435CB008F42:1744071A7A0B587AAFC7FB447D249B9C:\ -000000000000000000000000000000000000000000000000 - -2E60C63BF001FEA2FECC57D93E9FE7A6:83B5901B7B71025C8D0FE54EB35828C3:\ -000000000000000000000000000000000000000000000000 - -3950402C43051C4904DEEC57F504FC4D:9A9C91030126FB9F9F9AF1BEE01506C8:\ -000000000000000000000000000000000000000000000000 - -F5454A8EBE04708570F9B2317DBBA71C:170B64FD20891245085B8E1B21E73A83:\ -000000000000000000000000000000000000000000000000 - -3E03AF195C3829650043A0F643CAEC4F:A593253D4144356A93B77777BB062ED0:\ -000000000000000000000000000000000000000000000000 - -2FECCD73C296BB4E5D6D7FACF2F07663:A59DCF75D21391DAB42977618A30807D:\ -000000000000000000000000000000000000000000000000 - -E3A600FC8F0C9BB15DDFE8E4D36D0B6B:F2E3DA77CFDC4F914913D370AFC46475:\ -000000000000000000000000000000000000000000000000 - -65FAE4018301DF82E78273D60FA8BC1C:B48220811F1497381AC7ACF1FAE6A1C3:\ -000000000000000000000000000000000000000000000000 - -513F515D31466F0A01332F6D8D733E9F:056E78208EFDC0272956971EE29EAB50:\ -000000000000000000000000000000000000000000000000 - -281AD7F41EB19451BC978B6C125026B1:DF6D20D993094000464BDA7DA2AFEDB5:\ -000000000000000000000000000000000000000000000000 - -97A75E3919FBF5107E55E37B81FC45A0:CC052A8B64E199030F6D620427C379E4:\ -000000000000000000000000000000000000000000000000 - -B501F0B968BFF14070DFE2DF6298FF0C:0A53785F9A58D9FFB7A01C6E6DDA7BB1:\ -000000000000000000000000000000000000000000000000 - -672B7E9933053E6ABA4712214D1278D0:4CE10611AC92C9998E6044099E2BFBC0:\ -000000000000000000000000000000000000000000000000 - -C8EE21B9E260A72153A6938F31A127F8:7FEDF8389CC1F013F350B2BCCC6046EC:\ -000000000000000000000000000000000000000000000000 - -61F6FE223D11D88FBADA99ACACB7FA25:A834288BFD1FEB7432F94E97E7B69D89:\ -000000000000000000000000000000000000000000000000 - -F79DD7A31FB11644A38E8D006BAF4B62:9E949C299CDF820845FB3B06E85EFFD9:\ -000000000000000000000000000000000000000000000000 - -7328E5C1ABE226EB229AD784F26E299E:57E21FE31459A01DB1A05230C3DC75EA:\ -000000000000000000000000000000000000000000000000 - -9AD91A8354BCE0E632CF9C62C95AFF7E:F304CB96B9347492E5D70527C2B11ACB:\ -000000000000000000000000000000000000000000000000 - -606BF2DE00C40ABA8ED77992EFA05C1E:DE27FBAD11FCB0992CACDD7B6BCA810E:\ -000000000000000000000000000000000000000000000000 - -F81DFE4D27CFD077F105905D47D5BADF:E8F978AD0451B0A02DF946CBAB82EF5B:\ -000000000000000000000000000000000000000000000000 - -D7201D9F6407C9383CA4535D688C61EA:DC49220DB183147B3918ABA9CE72B834:\ -000000000000000000000000000000000000000000000000 - -AE34D39246875745FC00139CB4A564C6:83A946D5D727FFD83A6485D8E61E5CFB:\ -000000000000000000000000000000000000000000000000 - -6D3F60DB30BC83F0FDE7DD3E21E0CAC8:9EFC2DB219DC063E887A54F9B7B81DD9:\ -000000000000000000000000000000000000000000000000 - -5FA122F7957554393E97F89E98C7847C:E93AE44D82029938684ABE78DDBFB2D9:\ -000000000000000000000000000000000000000000000000 - -07F249A729186C8A0558A62188772C74:E0A8A1619EE653EAE22E41DEDB1E4553:\ -000000000000000000000000000000000000000000000000 - -244DF5F8502E3C12A37F28BB9F2CD24D:B189B0FFD6BC957D95A9A91B4E2E4BCB:\ -000000000000000000000000000000000000000000000000 - -2A0C5C6B721B1010C9FDBC02B053BED9:3D9E27A119B6693128AFAC171E46B926:\ -000000000000000000000000000000000000000000000000 - -AF6449E79628453F1DD77EB0857CADED:C150CF167A16F8F367D5D90E89C09DB1:\ -000000000000000000000000000000000000000000000000 - -36BF3D3D0A63CD8AE037FFE06889C29F:C708DAB79E5B99B97676A39EB1BC8C89:\ -000000000000000000000000000000000000000000000000 - -9DDDC7CB9B49B7075FE8D987F16AC153:DF01A9D14E08BF79F8C8B776F07F11AA:\ -000000000000000000000000000000000000000000000000 - -48CAB5B512E2AEBA252845F24DA62FFB:066BD47805684B25217AAE164E1B59B3:\ -000000000000000000000000000000000000000000000000 - -905FB46046C869B609C0C92943C1D22C:951A9225FA7A02680866539F73953A49:\ -000000000000000000000000000000000000000000000000 - -6C027C762F6C9B9C0C3EBDE341238154:D4CDDD6C60DB9CF0815D48EB8C4D1BB3:\ -000000000000000000000000000000000000000000000000 - -55488B44AF25E48F8002618985748EEB:C47006D8E3ABEF6DA6844C25C3DA8E5F:\ -000000000000000000000000000000000000000000000000 - -B6E76A99FB42AB0DEC2F64CA4119434C:1AC91773E3C74B1AD2CEE5C1B73FF762:\ -000000000000000000000000000000000000000000000000 - -FEE6CE4F8F3473E5D53ADC2514573DF1:C05EBE4CA1556875E88963737052A6A1:\ -000000000000000000000000000000000000000000000000 - -BB4404D0A1E08F698567D378D635ACFC:310D5B8AA72771FAEE774429A2E30D34:\ -000000000000000000000000000000000000000000000000 - -CBECDA615EE251D55D88AED51A7396C2:005F978045B1C78F2C9CA70BD740AFD3:\ -000000000000000000000000000000000000000000000000 - -216DDCBA6D7CFBDD704C88573AF3F539:CD5540951B363A8FBDF9E93C07C8B071:\ -000000000000000000000000000000000000000000000000 - -32DF83737E24CF91823B1F444111F6DC:0A79A5601F7FCAEC1DFEDD8C5D6517BD:\ -000000000000000000000000000000000000000000000000 - -75060574E3BD1829C1F7CF663CCA1519:404CD7A5AAE2AC614FBE46931040C028:\ -000000000000000000000000000000000000000000000000 - -793C8015C6E8E72E56C13561FD6E724A:6F8FC5142A5E63B38B3CCC1934284FE5:\ -000000000000000000000000000000000000000000000000 - -56417631D25FB77C8D31D1575FF069AC:11F8FE61E550FEB615970C2AB8ECCAC0:\ -000000000000000000000000000000000000000000000000 - -E99EFADE32414801A624E62C62C28FCC:C3C7D21CB5A94B8614DE00CE1B7A9DC2:\ -000000000000000000000000000000000000000000000000 - -EC4566488387F51E0B509476670E83D6:191E27160A8A8475ACFD683F80DF89C5:\ -000000000000000000000000000000000000000000000000 - -B2AB44DE9321FE39A4DCBDE624578893:54D0B5AAAE4629FE22EDAC6BE38B9B9E:\ -000000000000000000000000000000000000000000000000 - -063D84A689AABA4F20C38265401497E1:181EAFA411D7D022A5AFF1C1C212146F:\ -000000000000000000000000000000000000000000000000 - -745D52CC6B6724A03B1402D936BE3B7A:52624A4310A885F6F32BCE889812634A:\ -000000000000000000000000000000000000000000000000 - -DE9C438C39CFAF705449EBE35BCC589F:FAC2134E1485CB8C7ADD700772A7E5F0:\ -000000000000000000000000000000000000000000000000 - -67CAE47F0EAB98431E79565F6AD72FF9:1D77938B41CB3EBDCB2E972C23814361:\ -000000000000000000000000000000000000000000000000 - -190E8E93E5EAD47C94FB6D4410710A40:5E0495D4DBB66892CE35E4AD8080DDFE:\ -000000000000000000000000000000000000000000000000 - -1F4C0C3D81E34FC56D45D33A491C2AA8:B3356A3EC0C1D308CEA5B5973E78B7CD:\ -000000000000000000000000000000000000000000000000 - -16F1E59BBCF8322F6B0880C77E0B3AD6:42275296C51FCA8E244BB17C1EB2ACBC:\ -000000000000000000000000000000000000000000000000 - -95BF7A5EC2029FDB6C51C40407395862:E92D9E263F650E222E90F0E59B2AEFA8:\ -000000000000000000000000000000000000000000000000 - -F4B0AB203C3C741A527E6B25C0F89B8F:0B09F057772F30EB5F7C0C777CD14CE7:\ -000000000000000000000000000000000000000000000000 - -9422B9FFCA4204AD7DDC56DF5C80ED5E:B2835EECC60F78F7B14588A8FD6069F2:\ -000000000000000000000000000000000000000000000000 - -0756858E5C3829E8F3C328C6B4E3E1CC:7F56E94897ACC5D0F60CF899FC4A98F5:\ -000000000000000000000000000000000000000000000000 - -5C8E0338CE66CFB584307A626FA4527B:D3819C5E8A9B85C86281FB7D835B7503:\ -000000000000000000000000000000000000000000000000 - -524CAB3F0BCAE900B7DC16839B241B61:CD71C2A15B1A5B37DA95763CF68E05D8:\ -000000000000000000000000000000000000000000000000 - -74B3CC8FEEC75C97A94EEBDA55B8B16A:A2703E0DEC3649AFAB35157E7484A43C:\ -000000000000000000000000000000000000000000000000 - -33C6D143B8E9D1F06D1339B86CF61591:BA98BC1E73D8E0B7AFA5F2BDF5755B95:\ -000000000000000000000000000000000000000000000000 - -EC3DF67F0136BA492F33AE0DB8FCB598:F23C047EA741E9FE948A56D8CD3D050D:\ -000000000000000000000000000000000000000000000000 - -EAA6AA8AE56FD97D6BD6A22CA1250287:D0B414653510A3EC079E38806F87F643:\ -000000000000000000000000000000000000000000000000 - -52C3399AE7244A4A7C2F2CDB8F371753:819E2216C7E18C2557CBFD688C17305E:\ -000000000000000000000000000000000000000000000000 - -AB61C1BEC7E3B2790B43D64E53E48B18:A3E8D62480544EA1643BD7FF5404E40F:\ -000000000000000000000000000000000000000000000000 - -B08CB946F4201AC88F721B850A5B3CB5:ABAF89346ECE6F72C054C82D1D440C38:\ -000000000000000000000000000000000000000000000000 - -B5786F5DBA379E835224508F11E87B69:93BC3706B91E27EF0CFCBDE69C2559F1:\ -000000000000000000000000000000000000000000000000 - -40B89D11E03992DC28F90E0CA7949B75:6153A846AEF149D02F8D1EBD0D492F75:\ -000000000000000000000000000000000000000000000000 - -3371D59814185FB77AB6C990CAAB3BE6:9B4039BE6A0953CBCC1D7FF0C7E73BCC:\ -000000000000000000000000000000000000000000000000 - -8BE18C0E0C9C5A94948BE1F1C7353C46:283A4944BFA598A114B3BF601B68B823:\ -000000000000000000000000000000000000000000000000 - -3A55F569D34407976540A728FE4D7840:F3DC2926970112F59FE3A40A3F8FD470:\ -000000000000000000000000000000000000000000000000 - -92E46A94F8180683A850126F5857F4C6:E246163EBC3F740A288F6105F4F22B97:\ -000000000000000000000000000000000000000000000000 - -CBBE214BB2504BEA8BF54D4123465715:D5A46FACE3B1D97AC16DB73B3BE3EC3A:\ -000000000000000000000000000000000000000000000000 - -4B95E574D0BE514238BA4DFCC06535B2:055C146C457B2ECFAF18D244D5400D31:\ -000000000000000000000000000000000000000000000000 - -B89E3644479A3540073EF40E0F090019:F2C9DC621653315ABE6A627ABF40F24D:\ -000000000000000000000000000000000000000000000000 - -4A5D02C4799C8C26F1FA7F715EFBB800:B2F714BC4B21FEDBD79054A507775EF5:\ -000000000000000000000000000000000000000000000000 - -A9D5720391D7ED3B2A23094662FFDD5B:951C0FFF6981E9B1B4C792B4A81AAB7C:\ -000000000000000000000000000000000000000000000000 - -CF5B1C437A54DD6F29D6F589D26D13D6:6C9FB40B31372C1DA4468C0EE559257F:\ -000000000000000000000000000000000000000000000000 - -8F548C2248B76EB8CC4DD0272B93D532:56DEA9C72D8E2325A9AA42E29A3270DD:\ -000000000000000000000000000000000000000000000000 - -E09C2E4DF75ACFFC3B8E880AC1F01FCC:D1CD44336BCD0928C4A9616D16379B56:\ -000000000000000000000000000000000000000000000000 - -FB1C12B77C30E6DE6DE97CE8D8D913FC:6947499CC1C807290167A693560002AF:\ -000000000000000000000000000000000000000000000000 - -127D02E20E973573296A5C82CDC83404:410374320F1B4AC6FE745C5973FEC5A1:\ -000000000000000000000000000000000000000000000000 - -91D02F2862F596944FFB92C74EB07BF3:1A7B5A06628C5871E684A2080ED903DD:\ -000000000000000000000000000000000000000000000000 - -6A46FA0A795B4A9E7AA998526376127E:2186A2F79A90DB5601A4BDAC7F055A92:\ -000000000000000000000000000000000000000000000000 - -35C4EF822C59ECA05DE6CFF2780BD44A:3D6BC6771061B7D45C60335A9DB19E55:\ -000000000000000000000000000000000000000000000000 - -EA374673B5E6A56004A029F45137ADA7:C19D85F934D8AEFA589489736A76DFC5:\ -000000000000000000000000000000000000000000000000 - -4E3A751A0EB53250C90A572D39B30FCB:6AC263B51493303AD36284D872F3941B:\ -000000000000000000000000000000000000000000000000 - -E581C99FDE13BAC81780AD1BF416A2ED:6967E6479E599B1BC18645C961557BF1:\ -000000000000000000000000000000000000000000000000 - -288BD3489BFE7596F58218A0AB1A73E7:6AFC72E6A27C640F2E52528E9CD2591D:\ -000000000000000000000000000000000000000000000000 - -64B69B2977852C6BBAC03750900356C9:0AC56FF8773D5AF3420974B16AE2AF14:\ -000000000000000000000000000000000000000000000000 - -2F1B45AF1428E9742ABB21D019ECB5AC:ADEA58D721F2398FD4C06BF0F0727505:\ -000000000000000000000000000000000000000000000000 - -49320C39A1BC3BE5AD09E3E9E120513A:8CC627E3557D252B45D08DE6B6896E48:\ -000000000000000000000000000000000000000000000000 - -55D76389493096F7D6197B7F8B6DF193:9857385C7D044284A3219004666E0EA7:\ -000000000000000000000000000000000000000000000000 - -2A27D235903911F331DB639B75C0D712:9B98F50C0ECF24CC1D86C9673D8A083F:\ -000000000000000000000000000000000000000000000000 - -419D7555072CC127A4471A05CFB19CC0:67FF3F3267642FD12B4C2889078613D1:\ -000000000000000000000000000000000000000000000000 - -9FD6F61B1665F5AC5AAC2FFF89BF92FE:37866C10AF2D0594C42B936AD5266A4A:\ -000000000000000000000000000000000000000000000000 - -BB090A45B89E261664A6122AFF274007:82DE14AB89CDD323CADA9E38567E3089:\ -000000000000000000000000000000000000000000000000 - -157BB4035D9D9014CF88B9E934A7B8BD:19C07DD91509033BD3DD978781873EBA:\ -000000000000000000000000000000000000000000000000 - -A8870F1B8C1D5D85484117F4C6AC4530:2347879BF12456873B80EE906110B8B8:\ -000000000000000000000000000000000000000000000000 - -908C16F16AAAD352AE911C197192719C:2C2745EBE83EABB93D0A920D07BE0DB2:\ -000000000000000000000000000000000000000000000000 - -1653D7F835D83859EC694970707CC095:BCF6DF6D1EEAD65E05BBE987CFFD3702:\ -000000000000000000000000000000000000000000000000 - -0DE06413C85A15D5D8947AD534B2B696:7287E1CD26D1EE3CA342009AF49756EE:\ -000000000000000000000000000000000000000000000000 - -3B543E3D80D1EAF921CC68CA776239F6:BE313F5923BC9889B3860BCFAB775453:\ -000000000000000000000000000000000000000000000000 - -672218755E587021EF7B02B7BCC30A61:E1ED846BEA255A1AF1B92EAC79B9CC10:\ -000000000000000000000000000000000000000000000000 - -811D93DE4A4BBD9414820BC1AC1B1D15:18CE61828267E31A11F44B359F5137AE:\ -000000000000000000000000000000000000000000000000 - -66B96FBE50A59E0D613B86DE5017D5B1:BC46D6CC0344D2F8509C24B6BD961C7B:\ -000000000000000000000000000000000000000000000000 - -EEE81506AA7CC547B01464EC138A2243:717D1A1B155A403FFDF7CEF95A0F3704:\ -000000000000000000000000000000000000000000000000 - -A08B5A609A311639984749D2C3F17B66:0D9C67C97883478626649FD699984E37:\ -000000000000000000000000000000000000000000000000 - -64D1AAD4D2F48E1253CCB198DA194FBE:B4C733307E59EB660B0A6F8154ED99C0:\ -000000000000000000000000000000000000000000000000 - -4589C65EF87C151B68906023145F257A:80E66CD1BE95CB7352142568839F97B1:\ -000000000000000000000000000000000000000000000000 - -C8AC7D6611C15A08D8850A6409175296:C93BAB0F83F23EADE7A01C0C1C4B924A:\ -000000000000000000000000000000000000000000000000 - -68AA5E6050AF889A0489CAB2B21485E5:7AA6C6697016001A666928C97EEEE3F5:\ -000000000000000000000000000000000000000000000000 - -A1158411888B7ACF4BC31E9DD67D787A:2498B680478226FA74B2880E485DA409:\ -000000000000000000000000000000000000000000000000 - -214C17577623146613245C15C2B49493:4BA8DE835393DD25A42ED04F69B4C2C7:\ -000000000000000000000000000000000000000000000000 - -C9D85D545FB2F7D9AC22D8161178F590:163A9559BEAE1A2F3DD42672099F725F:\ -000000000000000000000000000000000000000000000000 - -ECD0DFF95F9AFAC0FE2C5A95543E6567:AEC277D9AA85F6221D9ECC3C55514020:\ -000000000000000000000000000000000000000000000000 - -81F92762F3C9A78E25202DEBD990B79D:EAB0B505DF3FD415181D2389B7E9CB7C:\ -000000000000000000000000000000000000000000000000 - -36B9CA495A26B676C5A73115E4FF2D1E:ED36B0A23E7A11F171A1FD6041901C0A:\ -000000000000000000000000000000000000000000000000 - -933836CD34DAE3CE8667A2C314ECBFD2:F52CC9AE0294245C5785FA75F7CD565F:\ -000000000000000000000000000000000000000000000000 - -547BE19FEAE346CD3C232B03CA1A5FE3:BB506E47BBD9BEEBE794A888D3CCA4B4:\ -000000000000000000000000000000000000000000000000 - -3224DA0BF7369941B581C1991B0434F4:83F1AEFE1874155EBEB71D3BF28196DA:\ -000000000000000000000000000000000000000000000000 - -BBF274F554349AC9464BD0701CBE3C01:08747CBB4CE827BB8D7125B51F7D6B51:\ -000000000000000000000000000000000000000000000000 - -0335215F4E7DE6C6844D5F4ABB08FF8E:753D67B79C27B62F66CAE343120FF8C8:\ -000000000000000000000000000000000000000000000000 - -0E798B0937AADC31E5F4B1059BE7317D:D28E3F2EE5CEA4AC47B479435CB879DB:\ -000000000000000000000000000000000000000000000000 - -B7C8F5010674F177A867996E62143129:803B810C554A684442737B08747A7B09:\ -000000000000000000000000000000000000000000000000 - -3C82EE0C8AA57B1A2809A653DFC34EE3:DDF2B574C748E259D0B60E2E7296F5B3:\ -000000000000000000000000000000000000000000000000 - -245EAFB34BF4A2DE65D2AE9E02282DA8:367A33838C4E1D75EF86882F13F456C3:\ -000000000000000000000000000000000000000000000000 - -82BBE96F7A512752B34873CE91BE3A12:D80CA3A1104B1BF33C78A4126CA44D5E:\ -000000000000000000000000000000000000000000000000 - -017359FCC78CDB959AF03170515DB2A0:30B7EE3A4EB1B90FB4F773004894A1C9:\ -000000000000000000000000000000000000000000000000 - -FBE1BA1C4C9E9266219E290CA482204A:23C853980380C75EE387D499EBDC704E:\ -000000000000000000000000000000000000000000000000 - -7A5D60B558F7BD79506EA361867D82DD:CEC694480EA0FE02FBCA486A38D2A28F:\ -000000000000000000000000000000000000000000000000 - -F6E1A13C90CB990C8F98044A14153C63:5DBA1D0AD1846EA0DF7572D9796EF6DE:\ -000000000000000000000000000000000000000000000000 - -BE618966B8BB4C5161F16E614BB0685E:50511C6F323AA75B27D26AF37C96AA44:\ -000000000000000000000000000000000000000000000000 - -3430CBCDD6B31EC832674C365313412A:2EC7B023DAB88616A4069732083ACB96:\ -000000000000000000000000000000000000000000000000 - -B736C160AAB874D2FEAA7CEFE95067FD:B7B0662681E21B41B0211A4C347410A1:\ -000000000000000000000000000000000000000000000000 - -E76003121CD25AF053388E29F5CA6F36:936E6955F7EF756AB1C6DC0510158338:\ -000000000000000000000000000000000000000000000000 - -895F077285060573E7E66A0C610E1A6D:A3B7E3A9424D60A1CB63B445A4EF0C4F:\ -000000000000000000000000000000000000000000000000 - -E6EE0CBF63758F0C58F7FE5B148BB755:68EC11D4896B18797DCD1BFBD91851B4:\ -000000000000000000000000000000000000000000000000 - -54077665477046E8886AD6E46DFEC14A:EC98D4903AD222137CD3C9449508940B:\ -000000000000000000000000000000000000000000000000 - -33DEC99C9A886FE526909F940883E559:9364AB8B76D6AF8E7EABE315EA9063ED:\ -000000000000000000000000000000000000000000000000 - -A1E7C5A9D7C2FFBE20CB4DC98727945B:113D49B50A78202134B0C13EEF987C86:\ -000000000000000000000000000000000000000000000000 - -9C1DE13B101A9B72BB5625717A02E6E5:6C93D650BD87DFEF03563CF268EFC950:\ -000000000000000000000000000000000000000000000000 - -41CA06F619236D40739E3200E2AB1387:11470B6E8E0BA5340322BC3F17273EB6:\ -000000000000000000000000000000000000000000000000 - -FD432B900CF8CC44492A491722D20F89:DE117E6E44548F9CB5D419C8100343F6:\ -000000000000000000000000000000000000000000000000 - -7EEC086D6EF264233130020BD4678FBD:6EB1B6AB75C0DFCE7AE826D8EFEC745F:\ -000000000000000000000000000000000000000000000000 - -243F6735A4F71D6B0161589E98367741:5B40A381C52F55424C1903E2A6C0A612:\ -000000000000000000000000000000000000000000000000 - -39B2D6E42C80C5A188540586F0065DCD:EDBF0C2671F1DADC8737F93FDB17FBE9:\ -000000000000000000000000000000000000000000000000 - -BC9838D89EE5D90B5FA7E5811B588D53:26967E5C460F2571B5DD1381EFE9B451:\ -000000000000000000000000000000000000000000000000 - -9CABC3BF9C9FA7E16C4632FF8A07209B:9069D1FB3BD87893CA2C66FA10174B8F:\ -000000000000000000000000000000000000000000000000 - -F6B613AC53E11B62FF73D1F15D946399:EECA346E8823823C821E6E8010418BE1:\ -000000000000000000000000000000000000000000000000 - -6212297702FA172A0B7C0F60D0536029:154A8C133987DAC7C829C62FEFADBC28:\ -000000000000000000000000000000000000000000000000 - -B06732B03AA1E215930EE18FE970CC8B:167D74C63CEB050B4F14B1CEDC25C642:\ -000000000000000000000000000000000000000000000000 - -E4D63CD417596F627FB4EE54E27FD338:167D74C63CEB050BB0EB4E3123DA39BD:\ -000000000000000000000000000000000000000000000000 - -473DBEF5C2FDE2774B2858166DDDF9FE:167D74C6C314FAF4B0EB4E3123DA39BD:\ -000000000000000000000000000000000000000000000000 - -62E1D3103459521F0F479B9115A6D66C:E9828B393CEB050B4F14B1CEDC25C642:\ -000000000000000000000000000000000000000000000000 - -E1341D2FBC279ABCD4EFF8898DADC3D7:E9828B39C314FAF4B0EB4E3123DA39BD:\ -000000000000000000000000000000000000000000000000 - -8B45F9AA3FC0589FA05364CE5F5D2F1B:E9828B393CEB050B4F14B1CE23DA39BD:\ -000000000000000000000000000000000000000000000000 - -BAC8FADDB63387F8927E816010E0C506:E9828B39C314FAF44F14B1CEDC25C642:\ -000000000000000000000000000000000000000000000000 - -02D554DE3674CCED1D337A873B77F5AE:167D74C6C314FAF44F14B1CE23DA39BD:\ -000000000000000000000000000000000000000000000000 - -A647F5EC14A07189E9F75F937669C276:167D74C6C314FAF4B0EB4E31DC25C642:\ -000000000000000000000000000000000000000000000000 - -4A6C0DBF87CDBDE1392E198E5F9C54F9:E9828B393CEB050BB0EB4E31DC25C642:\ -000000000000000000000000000000000000000000000000 - -FD812C0AFD3E15E40CFF9A6CBD0A0BAE:E9828B393CEB050BB0EB4E3123DA39BD:\ -000000000000000000000000000000000000000000000000 - -0E41AE2781D439F0671744D4A4BB6A9F:E9828B39C314FAF44F14B1CE23DA39BD:\ -000000000000000000000000000000000000000000000000 - -AC335553D40961A3387BD2D2BFA6EDB3:167D74C63CEB050B4F14B1CE23DA39BD:\ -000000000000000000000000000000000000000000000000 - -E39AC2845BBBE8EDD743205ED7DF1DB6:167D74C6C314FAF44F14B1CEDC25C642:\ -000000000000000000000000000000000000000000000000 - -AA7F44B5D845906C835C65AE12A044D9:167D74C63CEB050BB0EB4E31DC25C642:\ -000000000000000000000000000000000000000000000000 - -E3E1B65693171906DB775EC7E4CAE204:E9828B39C314FAF4B0EB4E31DC25C642:\ -000000000000000000000000000000000000000000000000 - -D095576FCEA3E3A7ED98D9F29073D78E:B90EE5862DE69168F2BDD5125B45472B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2F6AA890CEA3E3A7ED98D9F29073D78E:A3E17E2DF4EA6F41B2017E37023F202A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D095576F315C1C58ED98D9F29073D78E:FD2951E466110BC6F4816EBF968CDD01:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2F6AA890315C1C58ED98D9F29073D78E:C36EE750C51192B0C85D5BB2584AE062:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D095576FCEA3E3A71267260D9073D78E:86069E27F65F454C6E3F7E9097DCEFAA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2F6AA890CEA3E3A71267260D9073D78E:00FA885A8854844C970338841CA2E24D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D095576F315C1C581267260D9073D78E:A18A399A0AA2FD20EAA740A0CB6145B5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2F6AA890315C1C581267260D9073D78E:3D79E39A79CC14D97147F3D172F66BB1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D095576FCEA3E3A7ED98D9F26F8C2871:1D34FC93E24880F5AA52896494590502:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2F6AA890CEA3E3A7ED98D9F26F8C2871:9B9FE52195C3DF04ABF49E88AE46AA80:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D095576F315C1C58ED98D9F26F8C2871:439C0750227D7CA832DDB24102C7AFE6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2F6AA890315C1C58ED98D9F26F8C2871:498BDBB479E9AD3E0C9EFA977827A7E3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D095576FCEA3E3A71267260D6F8C2871:A276C04597DAFB6459A1483051B6A74C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2F6AA890CEA3E3A71267260D6F8C2871:4D4D78002EDB3AA6DEF37E114AAC4C9E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D095576F315C1C581267260D6F8C2871:3AB14921E0F755A63DB9F7DF82030E6F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2F6AA890315C1C581267260D6F8C2871:5984934E048E623F6F1F6E846F655CF2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -BCA391A780641EAADE755440D55B7C79:8A23D955A8EA12C9C49CB6C87772D56D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -66B9589D9B8BDA10A7B61F08F1BE4ABC:07D9508924FC120A8C9FA3298FEB102E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F95A83752C766787DCB61FE8029EDAFC:BF79657FE10E1D40DAB5107AEC3902A1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -E4BFB5F01F5AE8D5DA7554A0E6841386:B0B5503E111AEBC1222FD6CE80FC95C0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -3644C76F916C379DAA45F4C5455B5E3C:1B33D206D927E2E504E1E09A2913EBAA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -524C7C18D2890A182C794072D8AC1AB4:18F0F5819A31A3634925AFC4204A292B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -9D422AA2BE5665A757794092849EF859:7ECB8B26799C72C688138B0303F5AE3D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -49B56E8A5D8FECD5AE45F425AE96438E:465911E4D18055AC9CBCB179AF8CF563:\ -0000000000000000000000000000000000000000000000000000000000000000 - -FB7281A7A7B11AAAD386BF8D0F51AC43:17AA2A72EFAE82D9E6DBA3F7ABDC5E1A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -E1B971981BABD8D055BA0B3AEC65A383:1B97AEA16862EC3A8BFA2B6CDFF42C0A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -B68B93750474B78F51BA0BDA506BF539:9A81D6B18847AABAB201BC773C9578E2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -63BF9C151852C102A886BF6D7BA005A6:F1F1EC24882931369E45DA6FBDC72944:\ -0000000000000000000000000000000000000000000000000000000000000000 - -19420367B3B9339D5849E0F70F79A5F1:D5E43C42C34FE1280CCDB69F1E73B1D2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -42647EEA57A908D8218AABBFAAA02783:4BB5A2BB9A00F6132F9301E068076067:\ -0000000000000000000000000000000000000000000000000000000000000000 - -BD44EEAA9454B5AF258AAB5F4143FC6B:3A379C7CAD8635724825D2D35DE4D95E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -5E9D6C985887C5022349E0175B6581A6:D6CD8A324A74397331E7C7913BDDC40D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -FEA66253C13150CCA139B2A3914AF942:617F156CB641731508E0C2C24F30AF8B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -FC0B8D5D7C9744BA7954677CB0A27072:600DE4F0FA8EA6DE1BA1CAD12D91AD70:\ -0000000000000000000000000000000000000000000000000000000000000000 - -554233FE589683EB6DE4AF5360954967:14D887DDAC1D124186DF25110C618B63:\ -0000000000000000000000000000000000000000000000000000000000000000 - -445FD65B8A616351C18D5D9E94F86F96:B2A26A5E4540434277654B4FCC76CDB8:\ -0000000000000000000000000000000000000000000000000000000000000000 - -47AA8DCFCF3FBA0684C89CAB9A2A92D4:2BD5D90CB296016CE9FECB90E454FDE1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -EDA94AEADC314960B491FA7245CEA146:0395D2ACE5006BE2DF6EDC521CFE6372:\ -0000000000000000000000000000000000000000000000000000000000000000 - -113106465C379FCE76477527E045D692:7972F08BD18D0B16D67BB3BF99DDD096:\ -0000000000000000000000000000000000000000000000000000000000000000 - -3282ED3A1D687E195315A034F83C248C:BC778D51D757DD9DA5F5051824FD7159:\ -0000000000000000000000000000000000000000000000000000000000000000 - -E30A22BC4986B7851ED0F915AAE95325:D913538943E1553B7A9F9D6C87B7FB26:\ -0000000000000000000000000000000000000000000000000000000000000000 - -07EED76219973E3CA5C48B1FAFDAF3FB:757F50123AE84DB0D11DFE21A61C606B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2D9D06E07874A97BDE16CF54856BA690:CFD9B00579D84963621B5169E70863A9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -843381809D9CB637FEC0A99486A13157:31E0FAB5DE7BE867A4272D12FC4F05EB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2F5F9C1F4B2C6E62BC6FE72AD03B0C93:F4349842DD05F5F81EA9302869793D73:\ -0000000000000000000000000000000000000000000000000000000000000000 - -294946180CF7EAB708840814BB2117D6:ABB6C4F719C839B0A35B24E2171BA15A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -BD61CF3CA72F7B0547D7C86606DAA046:2613987BA99FEF9315563EC460A2BDA4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -858989634E54409DD72739F6A270AC5E:A0190A0D109F01A0BE0D9C2AA2BA79EE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -41D4C7B9FA3BF27861B67D28CE795543:0A08FAD749BE5EAB5C3AB317951790DD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -A753BFF7F4E43CAD48D7CCCEEFA69929:100AEF381EAF8A677EB25B59FE299357:\ -0000000000000000000000000000000000000000000000000000000000000000 - -23606A3D54D13B00F9C5C73B8986116C:CFD0988E16F3E2C00B95AA284EC61790:\ -0000000000000000000000000000000000000000000000000000000000000000 - -EC92B059C312D8552048541FA0C08D41:3D463933505FCA55D7D1DFCC70514247:\ -0000000000000000000000000000000000000000000000000000000000000000 - -911F32CDC4AB95BE21DBB26D02C85A39:6C6822C89035170C6550399D7611FA01:\ -0000000000000000000000000000000000000000000000000000000000000000 - -8314AA08DF9729B0CADF46FF74804827:268F3DB80AA9D7216EB66738C4EF6F7A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -E21A90DABBE27C02FB1B60A948401A2B:BF82462448C407E7180DD8150ECFD379:\ -0000000000000000000000000000000000000000000000000000000000000000 - -087CDE5529FAFB124E8595EEC504873B:7C80B7A4CFA1FFADCC6099AD6EABE246:\ -0000000000000000000000000000000000000000000000000000000000000000 - -625687201937916FCDA1BCD9F2A848C5:891E63EFA3554394459FCEFA252D182A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -7EBA3AA477A029664D9E2E9B99F6140A:2483E89D964CF99B3FB0D1A3A45782FB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -DCCEE8E27ED8D75763F7524A63D215F0:028BC9E5F853A160F39A83803AF2A7B7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -19CFB7ABF48179C4851C2F25C92BA826:26221D701683AE54ED151ACA84DEB442:\ -0000000000000000000000000000000000000000000000000000000000000000 - -5CBCC9B2BD2F1D3EC82642035A092467:8A5355C93A66CDFE21EF6842CF80E31E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -082504676AB8766CA4F738C7BBE124BB:2B9E10C57473AE627D43266970AE61E6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -6C0344E7FA166C41B4199447B8320317:8271EFE5D0E0D6274B8A1C920086FE65:\ -0000000000000000000000000000000000000000000000000000000000000000 - -083C6A6AD16559D929D128016819210A:7DAE9CBFA76042FC9096F4A6A143AF9D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -E234B590C30CE6F2A068598498FE14A8:3BFE3D4FE7B417DC0DF94EBD0AF57154:\ -0000000000000000000000000000000000000000000000000000000000000000 - -8EBC8A9B40C2710981158294FC1524C0:3C6B2E08A25BB1C9D8E891CC19681A2E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -A4A883B169B2C1EC1ADFBAB989779DF9:8D1D2E8B3E4B8869F1FEAA1AB2975170:\ -0000000000000000000000000000000000000000000000000000000000000000 - -BE11424787E04DDE5B6D87C327AE5D9F:CEFD8D50D4E917DC70849A1CB8CE3C2C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -32B6435915AF7E05F759494479E6B294:C4563E114E1EE39F46FB68ED092D7C27:\ -0000000000000000000000000000000000000000000000000000000000000000 - -07A09B044F080EE504D92A3DAC01D303:258AE473968C1DA8EFD1FA5E340A83D7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -1E4325EBF0CD71DDEA3C8B3B5FF23E29:073A7BD1ECEF25E0206C9042C00F6731:\ -0000000000000000000000000000000000000000000000000000000000000000 - -E45CD56C95DE72CA3697FA647A0EEC54:57C8671286D9996FEAC834D3692CDABC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -58CC453047697A9D4855613C742F9688:4A56D387BD10C8F7A46C96C0E2F678C9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -8F4B0DCF7323F12D2C6C3301E1A86CFF:59A2EE2B3F5D52A1354460582394F0DA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -60D7A7390C51292D63F8E13D94DB66D8:D347A65241A7BCF70F04A68A6BE2ECEE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -FFAD53B9D3B77B103BF9ED6F7A53DE31:3B16D9CF3680A56D4A23722949AA2FFB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -E3913FC5766362632C0AEF411A2329BF:6C5D76419C71E3A34DC9457B990708CC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -A6473B8402F5F57FC4BCADD69DA23F78:190CA4D0F4BC089B3F26F03E60290FC1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -B714071EB4260C9A0BD650C7E19832B7:B730D4DFE3ED225B06B2A3BEF52DC790:\ -0000000000000000000000000000000000000000000000000000000000000000 - -388C8FC9F048D4CF103C43CB275179F7:E2FAADBDD818C6F4532758EC96C56A73:\ -0000000000000000000000000000000000000000000000000000000000000000 - -90934F3C5F5136B11EFE5FF9DF9DA0F1:9D593FF89F7EC95ABDC3B4F8D2B5B3E6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -DF2B2ACE7CBFC27887E5483DABDF837C:ED1D6AC5EE3935E6DB4CB7E34990AAA1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -BACCF7E913B35F887489C30258B7C2E2:0A9D724CFC816E5CB13A2147BC64D694:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D23A16EE588C5188610DEC181C6C7DCF:9084606C1FFA7A3B8C27977953C686C9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -75D6E08BE0C85693706F42390387F792:EEEA1012319432080499711FBBDAF413:\ -0000000000000000000000000000000000000000000000000000000000000000 - -EB7A15C21595522B52FFF012D5B98D5D:70EF833B23D8985C01B7F68BB732035B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -50BD484FE42B4A1C49F9F24D2A0BD279:50F7C8A8D280FED79EA137B19B6CBF63:\ -0000000000000000000000000000000000000000000000000000000000000000 - -65210A79205B1E90040B30205D60EC0F:CDCCED47818563F849FB6E2E03A536BE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -6A6016462364EEF36CD86AFC407DF814:C003B86F7C550805EA2C4CBB0D18C3C7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -1354509926BD2A9D24C3E1C343E57685:084EFA18B92E39D6D5929B8A85EDEFA3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -69D5AB6AB54A51F89510DCF5CB929443:E267FCCBF14660B3283B79DAE067CDD5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -936F01C43C2AE4F6237A1198DC1B9A12:E181F5288869A4BBB5BD7B982DCE044D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -09EA3582964BF1C95FC528262D40419A:ACAD023D370F43350F141B95A7EB2B82:\ -0000000000000000000000000000000000000000000000000000000000000000 - -4B4E58B375BDC9FCE5029C3015EAF890:95B8EABE9BC6783C4FF9A39A8188B6F1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -8AF33FCAAD22AC2F30C1864E8CDC44C9:F7BE2FA21170A24902994FCE2753DF75:\ -0000000000000000000000000000000000000000000000000000000000000000 - -8F2947144FDB524D6A7E4B8653079109:D7F8A1A155707CFFF493091126ACAF81:\ -0000000000000000000000000000000000000000000000000000000000000000 - -4692BD551D478DB55B88577C51401C74:19CFCD975F915B1B91B52B0A3F0AA9DD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C9006CD66124A21A730EFCFE380EADDA:1C30408126876EB5352A751E29C7CE24:\ -0000000000000000000000000000000000000000000000000000000000000000 - -6B77C29FB0D9236EE31FE1F8DE56B87E:0AFDAA45047280613BAD45D03DE88740:\ -0000000000000000000000000000000000000000000000000000000000000000 - -54AE286A42141274F79B54DFAC4CA6BC:C68A8E4FA3C13CF7479BF429FEDFE303:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F6FB23BCC18F091F9B8A0284BB112316:C3D26D89600BDA652A0666306BA5591C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -08F5A81FF672643FEB06241372C1A7EF:85FAF4EF8BBF9AC0680FB8C23475A52B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -50B8A6F3BA479442E47FF3DE5EEABD0E:6267A16EB828E472607915291BDB007C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -8379BE367A37C3710331628CAED61D6F:28509647E60895C9E249CC82576465AB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -48D56A98749F23C5221B2BBED38D6B41:F98CE8293DD9DC8AB4661A44ED500908:\ -0000000000000000000000000000000000000000000000000000000000000000 - -81952B3F6E16345C8EB291532F8AA55D:2C8CF6EAE96494549847454E451F574F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -5F98C90888EACDE82696B9F02CC845DB:BE3A8C77C84E12E8F8427DF0CC591681:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F079009892C0E82DF27E805CDD767EF8:810E8C7A31A49DE7A02F2744F490C0CB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -3E1BE2C90DFFB9C7D858E23BDE70C3B3:A336A43F20501DE36D9C42DCC69B5C3B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -1D8C428C8F0D7262D2109B9D1E16EB51:B11FD9AE0D67CBDB7F990DE4FAAE2A61:\ -0000000000000000000000000000000000000000000000000000000000000000 - -801EF23541E6FB654C3884771578AE2E:8F1042F616351D5FDF929C50F3109169:\ -0000000000000000000000000000000000000000000000000000000000000000 - -40B14F285E32BDD61B29160C0C6BB610:4D5E33A7533E71FD3C4BFD7157FDDEC3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -4226A372CEAAC4F1AA0BFA2588817D8F:D1E9CF5BCCC71CB62C0D57255CDBC2B0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F0353993A789A852FCEE7795E3DB8235:D0CB3CFEA6162C4DD7F8BC29E4702344:\ -0000000000000000000000000000000000000000000000000000000000000000 - -CEA8A3CE895CB4252905D6E8FC7FB8AF:BE8CC9E62A360AAF0F0C3B59F09D6509:\ -0000000000000000000000000000000000000000000000000000000000000000 - -FE7CC498A82A8DBEC2798FEE7F4B6BA5:31489535231BFFA6B300949589969866:\ -0000000000000000000000000000000000000000000000000000000000000000 - -80703279F021C9624D952AFAA3E1FCCD:EEF27A88328000A4CA3BAE8FE26D03F3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2926397A6E38A4EE7D1EF20F31BE8702:626B25E780F216EFCB33ACEAFF53D346:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F24B278B89128056E95D04412819031C:52A77408ACF9483F3360CAC1EEE7CB66:\ -0000000000000000000000000000000000000000000000000000000000000000 - -757846E9F24ACA7BBC53057D86F40DF7:D9909AAB2D47E73F5B2AC8B4D21C5152:\ -0000000000000000000000000000000000000000000000000000000000000000 - -69F036E5559B53AC0BE4D71933C9FA6D:B123F297E11321E138ED8B797E3935E3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -AE25363E7527BA574B336B3658043EC5:531265FFA27309E010682226D40FF301:\ -0000000000000000000000000000000000000000000000000000000000000000 - -261DFB2B0FC8058DE4F2BA0E9D07267F:73191403C7F106220730944CF664DBDD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F4F44EF26EEE2F214E55FFCFB67F747C:B27B0272C70703C163EFD2AE9B696D68:\ -0000000000000000000000000000000000000000000000000000000000000000 - -6E7D61A090B1DDFA455A9334F71B1049:3F301BB140FE500EE6211F5EA8C475D9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -9BA82C854F0602CF32A7A1FD454A244D:0D07EC51FD0EEA788F4F4118CED4F76C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -4943602AA81A1B09F25924A115038BA6:5DB3CF4BA15D10B20FA1C16CD38AA48A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -BD655DC9F095901130F61D7461169429:3F1DA00A0B1113E731F09A18012FCAFF:\ -0000000000000000000000000000000000000000000000000000000000000000 - -881C7EAB3D5485EF3001CF123AD232CD:7739D6C688AECA837B665E163D7807A5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -DB78BB44ED268A41D7BCC768F1C1DDD5:EC9954AD43C78B7F3E54437EADD41E45:\ -0000000000000000000000000000000000000000000000000000000000000000 - -EDA01E4405F7A5879C1D9DDC99E494E2:5714395272B96FBB8A4DDF3371D99285:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F43DDDEEEF8000C262E2CC8025E7F7D1:3A78EA14F436C82606F3EC036DEADB82:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F67BCA996B8F68C6178CF12B69942EF4:51982744D0D4441EDC22E9DB28148AE4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -1B2F9DC1D0081629E2D783BEDCFE556F:0142F890C1EC3B1324242A6266DD6E35:\ -0000000000000000000000000000000000000000000000000000000000000000 - -7F697D4DCBE48A0E0C1B76905EC5387F:B5ABE383FE29DEBEAEEE1B1BA216617C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -0087BA91A953F0AA37D906B4F83F539A:2DF146BCF57886EA715DEAB67FC919DA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -8BA37531E5AC90DF7C274BA0F09F710F:683F0B9893990052F5002D12060F8737:\ -0000000000000000000000000000000000000000000000000000000000000000 - -31D0A790D8B5F52BE0B6AECC098FFEB6:709631DDFB876005986AACF3CDCE4309:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C582C293E55D228095BD51C634ABCC1F:EE5CB6D8B964B9D6D45DF97FE26C46E2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -82509552588B0707D8E972E34D34FB6B:A8BB6BC6E9044A7D4C0ABD1A63EEEAD5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -92DD30BE9D6FBD8CC3CD6AD5A02B9644:E743F0292626C7198388BB07B172E203:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F533132CEE021C1BE4E27610C7FE658B:EBB22F93A2709B4FCAB29DACC2B7CEBD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -821E2D8D0E1D8DF54F92B0872C26F647:B8AF4BE5223225DF4AA9629C6F3E5DB1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -CAC520ADB6D2116EFCAE1BA9CFC07A8C:CBEF84E5B8BDDEAA94FD63FB9C196B95:\ -0000000000000000000000000000000000000000000000000000000000000000 - -61370431D23B19C9919F90FA630650C5:C9B61AA02DB1164F68A5439133AD0CDA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -399E8C6EFA778B3B0D7414905FAB7FCB:144085908ABF7F86FF737DFF301F3408:\ -0000000000000000000000000000000000000000000000000000000000000000 - -14189BC9EE6D85C59A56EAF1897C8456:2BE6F430D40E3E43C9C0DBFBE68B2550:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F1E5C20447D785B4AEE92AAB76AADA7F:67E726A625DFDC0AA862F8BBA7097B7B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -8FAAF9826481DE26DCA70C204A9060BC:488470EE1514C99C1CBBBF21D2205EF2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -B6BD97EB4246524E123EAC300B208AF7:5BE2B23A54FB35FA83814A2BB9C402AB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -0A78A42122FE13F849142522BEFAB9F9:04501EA5A82BCC7157832EEDE91381FF:\ -0000000000000000000000000000000000000000000000000000000000000000 - -46E4EC66D3EA604F4F166259F8B31F04:6D2DE018B6024B5860C5F8A85D8BB034:\ -0000000000000000000000000000000000000000000000000000000000000000 - -20AB8FE133F07559C320D5B2C41FAD15:C13CADEF2B413DD1CBF3AB479BD2B9B6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -7938DC46E7E3DF01F3A24D825BD86672:EB2B02D0A6908C51580D552330189C94:\ -0000000000000000000000000000000000000000000000000000000000000000 - -7F7938F0A5BD91783AAB003AE1BB79AE:B54CA133FE06CDF7C37B421559F72849:\ -0000000000000000000000000000000000000000000000000000000000000000 - -91A8F9C577E2852E312DC4A5C1255EE1:0EAF829E6680344B639E5F45B0246598:\ -0000000000000000000000000000000000000000000000000000000000000000 - -ACE62912A71A4F34B672D9C80B73E12A:C91C23C725254124B118BD2DF16FA907:\ -0000000000000000000000000000000000000000000000000000000000000000 - -5B3F25EAA264348B446EAC39C42AC7A4:6FBD63968E0B5E19C62D320FC59DFD42:\ -0000000000000000000000000000000000000000000000000000000000000000 - -63E2A7973C2A818F6D1F9F9640F703CD:94C9FC1FB22610AE0BA34B8E8AA4A980:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D8E72560E63A9C9F1115C3287ADDCE7E:CA01FB995BB46F6B0870F40D672FD0B6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -126FC05EB726CB731D90916A80BCF638:CBB52C3ED1DB3A4D60B4C205E167C6E1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -BF96CA36FD923F966113671E8C9D84F2:EB8710E2F753B46647915E9B6D1F4FDC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F0EF517FA3B3F8FA6DA04C401955BC47:90432E85F8FFFC8AC6198F14ED96E6B5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -E5A4F0D39FDC96DBA5BD04FDB69A9439:52FC091A6D85216ED45716A06BF28F7E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -5D484FF8D3B7071714D0CFAF400DADC1:8DE390FE597FF61A3CCF4443B0454940:\ -0000000000000000000000000000000000000000000000000000000000000000 - -3146A7EB1564016886631C7AF1500C42:551CA9841792EF7991ACF162C8F257AF:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2241AA352F3AD9FA379F7AE0C756239C:F121B24FDD91E6BB830D131880BFDA6D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D70CDF5BBA9D65227656CDC98C1FE3E9:7FE52C4C3315DEA7B5D9984D5EA4CEAC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -FA84B748F0B60B0BBAFCF5B49EFAEA49:F852BDDB729CBD20A2C439D1A659E1DC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -FF377F97E2A6125D6E1ED3C0F761A215:7AC46B10E7488936BA1EDA1745AB310B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -DEBF9FB92055ED91A1BD841D68F87EBE:85F83747E314AB1A65E42D6BD9F130D9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -CF6E048F8EAFD765DF1E1CF230138993:C4B603A7BCB0A5FB8FCE31B42A8CCE89:\ -0000000000000000000000000000000000000000000000000000000000000000 - -4E377F3D81C2DF4850D3EEF175B39155:6C6D4021723B65644CE895CDF0EF2E76:\ -0000000000000000000000000000000000000000000000000000000000000000 - -08D1D0F7E188F57362457B0EE4596CB6:CF1EDB093B63D04AC6A043D69F1E6BD0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -67E55401208F491D5BB672E2F25B8F9C:47B1E80E65C74BD56312EFC18E16F01B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -6CAE6670BB9E867784EFEC6E405BC90D:344F3BE8D68569097F9A4A5991D43551:\ -0000000000000000000000000000000000000000000000000000000000000000 - -E4B8492F2D5F9B241855068746F09AFC:81277643B99DC768B898D381EBF55CE1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -3888ABBDB9245E535F52C2A1C4E9AE82:B962C5F25FDF7684E52EC354208939CB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D0B06EA2EBA073B21628DBAC4FAC7656:75A33ED3B6B30B41421C3B251B76F82B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -7387F80E53D5F5B68D262DA9B948C143:51717F47145BE37498A1F1A180B88D4D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -07078EF7871B2DF91526B731CD7EE98C:E8D32221991BB2861AB4F271C17AFEDB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -48CBB0CD929BAD37E3E09C07941A6A79:292268D201E5CEB4C27B9D860B3F0227:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F9FBCCBFE5B4B51DDB3F67B253A54618:4DABC3E8F80E9C72656AB2FFF26BE438:\ -0000000000000000000000000000000000000000000000000000000000000000 - -49CA02290571BB70BEEE06F07AA31502:B59EAD47674A0A4B59C318DF6378320A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -3F407FF4785D3E2E47B66A3675302268:50AADE7CD8EF67BD643B86D4B3023D85:\ -0000000000000000000000000000000000000000000000000000000000000000 - -3E4CE1EAED91968D4D67F804B4576A87:654D279050B241B87B9A511FAACF01D3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -847E63FB5437129DCF4FEE704809EE09:DD41EF5762AE57F0653D786BCBA70DF8:\ -0000000000000000000000000000000000000000000000000000000000000000 - -720576733C67099529A17B6F4010FEDF:FEF594E990F7423A37F71963136A671D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -AEFEB7A92EAD088FCC30CD88129E22DA:C54F79A13C6F2835D694AFB48791836C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F3A4234B3A72361AE98322191BDDC35B:689FDFB1AF5CA1B55300A965702F3AB5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C899AEDF52BF6FB16B5F3DB7C47F0088:CAC32974F089ECE899D9AC85C612AFFD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -8DD1993D1F9FA3850B2CCFFA7A42BB88:FC6F6AD5E8D1AC86EFB14240D1BC1EDA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -6B7442B6328BF059D87828FDBFE35225:775ACCE20C7BFB08F20F8CB7CCA80C32:\ -0000000000000000000000000000000000000000000000000000000000000000 - -28C94A8AF7348B622A4C8F20434B54D8:CB8066BD149F368A04533E6893669674:\ -0000000000000000000000000000000000000000000000000000000000000000 - -42E049CBF52DD8A65906BC0ECDAF7D21:63C0F604FB661A4876AA5A806CDC618E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D1FB1FB7F21CBC0C88D05F13DFC35185:6FC61FC03C4D7E7DADCCD93A4DAB5219:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D382977D7754A6BFDAB545E9747B19B7:E97A4729AA40ACBBB409D5CC02A0A075:\ -0000000000000000000000000000000000000000000000000000000000000000 - -85090B82AFC0B9AC5273855778BBC3A6:F6A41B9AF291ED32F3ED14A2A7395253:\ -0000000000000000000000000000000000000000000000000000000000000000 - -08B463BABBB37A233F5F106C4D5F4129:F3952274AA0E8FBF2803A244A2ED3176:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C2197F028D57D6EA121C8914FE626BB2:BE43FD4AF749F24BEAE40F2DE31B8CB6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -4642E392D2326401EF9FAE2B872B809E:950F995FF73976974E602D7C37B7D67A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -765D5C526AFDB0399E1B1DB8A89FAC98:98A8A7CB6C63BC034374D37AD21FAD96:\ -0000000000000000000000000000000000000000000000000000000000000000 - -39589154E13C7E7DD44AA5A416B19381:9D78017FCDE71C8FA53D6BE31F20F354:\ -0000000000000000000000000000000000000000000000000000000000000000 - -9305802BD1628C12B81CA03A05C18644:80FEA18D5BA12EDB6D4B801C0A8B356D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -3FF59332CF19765A310B432D8EC2E24C:90C697E4D23DFFDA31762C96A0314520:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F900F6092357CFC0D24F268F8BCE1849:06DB3FC23372A53D5ABD29D3AABA9784:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2AF78325BC7FF73893B672281C7A8A2C:FF9511236216D6AAB165512C862D1033:\ -0000000000000000000000000000000000000000000000000000000000000000 - -EF0813F05B70CEE98ECDCA10378E25C4:A55D68BC71C81D9803184D5890968A78:\ -0000000000000000000000000000000000000000000000000000000000000000 - -65D15161C93536E3B3D17D72DBF2C36D:64771CC3E89296E5B51D86DBE5C61697:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D4BF40C1DB6F6E30108AF6C99B379C74:39D03BB7059D1D4D56FFC0F51B46D1EE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -ABC44A5DF6BE71F0BFFFB7EDD43FF39F:114EBE72C55A45A353854EA02C3F5953:\ -0000000000000000000000000000000000000000000000000000000000000000 - -DFF5CF0EF3A729E2BDF5AAC15C47B482:F5CD1830D1E1C80676095F975AE9C4E2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -762A7EFCA64FC897E2AB73D7B1E4C55D:5FA9ABFF7A5A4F38C51ACDD1ABF7B1CC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -A19C0EF84F3F1EE7671BD3BEAD9F5C4F:97CE27FB349A3E47501026CFB8A482F2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -6D9BA177DC7ED78B677A2B777896D122:8CC60CBE26354E70920EE8A8DEFD8C45:\ -0000000000000000000000000000000000000000000000000000000000000000 - -84D38A4D2BD1603299B4D1268D5C04ED:1A5308CFEDE62DA3D4D250B5CCFC251D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -CCCABD652DF9E408311E359EB18F416D:71377B721483470253AFE3181F523921:\ -0000000000000000000000000000000000000000000000000000000000000000 - -0222F3AAF0D213143635B63CFAC02032:72B50A920DABD365AB2C48E888B76377:\ -0000000000000000000000000000000000000000000000000000000000000000 - -9BE224E2313DF5E93FEA7A9051ED8456:D8C83B81A2B73FD56538015C67C61EB5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -0F92300EEC97547E6BC58E066A28FBBA:FB0D8CA9BB551B808B335879B98AFA90:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C9382AEC049FAF4CB75128D8A0FBBF10:56E669C32A3481FC05F5AF22473614B1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -9F5BFB399A615408DF0BCBA6E43E2130:C5AB52A86EFD123BC5522A64035FECD3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -9FBE5F1202FFD449F7833CDE44DCA62A:7320AEACFD518D39FF69068F64A6CBB4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -830408D6A8F161C0C2D058A2CBA5AAB0:FE7C48092F269CC1B9F10DD8DFD866B3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -46D86E657103B18078645E6AB0C24722:D7D1B7E2A137B75C89290162F16C6BA1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -E7DC58F11BCE3C7D6B8AD2A5415EF3E5:2114D2BD30AF001BFC2655F832D81C81:\ -0000000000000000000000000000000000000000000000000000000000000000 - -07BB44ADA25B638C091D92B67015B703:087AA29983682867A4690287BCE3F0A0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -4586E5A6EE3B908F08B7392B74B478A6:B92726E53E1596B88C53A82943895CD1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -ECBA6E02BF9C11D70A2C760EFCEE2A76:45C50D0211E804E1A75EA5F4CDD9D672:\ -0000000000000000000000000000000000000000000000000000000000000000 - -1F57C57183C32E7AA748E4E8D2E36966:E4DE4377C9ECB95A7ED81C63C34304AA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -1C655E258605EE91AE413C246894B354:3283FC8FFE25005AE6936FF3BD738CBC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -84743F37B54B7B8CF1D94053B0970599:3BE8FC8C5AC5F98592AE3F9B1A77E71D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -E4350F6E48912239D635A92EDC5D8BE9:BD62C9A7863097A8E34C5E93461C6B5E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -7C4ABA6DCC886B3046F32AF18F3ED0E4:1DD38A4D9730F51F83EC35B6CD0AAE93:\ -0000000000000000000000000000000000000000000000000000000000000000 - -168D7910C13DB8A372EA719D1D2D4499:445FE01A29E7A8D34CA8B4B2B2B79066:\ -0000000000000000000000000000000000000000000000000000000000000000 - -6D35D9D0C309681F3B2E7663F940D67B:8F10F905C780709E2917AACFF5A6F4E0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F734EF63150021DAB7EA0B421F9DB7E7:833D03B9E53C1FA9E5C4E59C778527C3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2420531C90FA129E86D116BFBD4FBE1B:9660D979C78743F9E85683E58072C1AC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -CB6354286F89B58A88B711CC9C7E1316:2788DC343D4CB5CA7E9E702FD06244E2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -7550AF569DE4F4659EB3589CF5812751:103F876C50095392E8CD90E153AC7932:\ -0000000000000000000000000000000000000000000000000000000000000000 - -8D59F016346D94F4A051970F433E129B:5D6DBE294744555924D9A21ED0F97497:\ -0000000000000000000000000000000000000000000000000000000000000000 - -3595D0C290ADC80AB52F260E54062D09:1189DDBB3FC2481F092A162DF999AD84:\ -0000000000000000000000000000000000000000000000000000000000000000 - -9E34D36709DA00EDFD1828D3B049EC85:7E0F45E113BEBB4BC2E0768612E99B84:\ -0000000000000000000000000000000000000000000000000000000000000000 - -BD53751ACA579D2FBEF6AF264C1471B3:9F42747C49F414090AE7D3A370DDD89A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C5CFE4490F9EA125EA08E52B130DC452:0262E84E186D27A2AA3F11ED73560911:\ -0000000000000000000000000000000000000000000000000000000000000000 - -7296903DFC97CE8911E6F69BA9D77C57:CD8717F55E29DA5E2AF4DEBEA34E6871:\ -0000000000000000000000000000000000000000000000000000000000000000 - -67D1D868081846C76CD5E7C805072AC8:5D36D35E48AFC010FC6AD5751A745FE7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C01ECC52B57ECA82268DC043421A9826:48D7F60A1E126F0F9185B8AD37CA77AF:\ -0000000000000000000000000000000000000000000000000000000000000000 - -03160618AEB467F5D855CF636A96D188:7F5C9F5E608F3BCA661B9568EE89337F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -41075EE5796F93B79506F5E707E878B4:300C3B4DBE4FAF383C7F1CEECACE3BC6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -A88BE4033A227A2B1C40EF6A1F65C7EF:112B723BA5AF2B8907B8A9AD4C3F5650:\ -0000000000000000000000000000000000000000000000000000000000000000 - -E0D8C49C27057C8B74D6BC20D4C67D89:2116595D34B5D4F1EA1B0A6816930E14:\ -0000000000000000000000000000000000000000000000000000000000000000 - -E6209F87D0DF56D163DE4167A120D541:88FA904B5A4B678567591BBB834A83F3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -98DBCA6051954B0F57F8FD14C0448F01:DA33BC0F7510CCF9A2CA4FA1C1538A76:\ -0000000000000000000000000000000000000000000000000000000000000000 - -7B6C866DEB20E9EF998193BA14ABDF4D:717481414648473321CABC8093446C55:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D7351619C93520F9EDE823B1BE6B1525:D5ADEA8259D2E8B625EA2F02BEF19CB5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -6BA35A4E937AAA186FEEE58CD252C383:FA2DE39C8A6944C280370D07CEBA6140:\ -0000000000000000000000000000000000000000000000000000000000000000 - -4CA9DF4245FE3D5BC9BBCF0A77E5A6BD:42EC0E38C6BAC576A6C1BC7944F612F7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -AAB1E15C2BACD32DB1CAE51B78110D1A:CEDE8C8A7DF59EB235BA38BBA24BB911:\ -0000000000000000000000000000000000000000000000000000000000000000 - -CB457358E20488B258E360D678BED84A:D28FC92A52E631F0D8E8B343A4A3B203:\ -0000000000000000000000000000000000000000000000000000000000000000 - -41573D084090591302F86009ED66714A:8C42C71176414120A4BFAC5E712595BA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2376FCB2F9354E84204BF1FECFE37467:7BA7AFC5BE5D69600E68CCEDF780E1D4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -0A35CDE7A69929A31C7205821EB5AC74:0B3776F3CAC22BCF870DDF10C1869A4A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -30AC1DF30D0933A1BE9A7885BD4D3C5D:94F0B2C509A8531C9A0AD81637C2DCE0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -139A78E630E49492D3A938D837049346:34579E1E82813F9747A5B132FE4E6964:\ -0000000000000000000000000000000000000000000000000000000000000000 - -AB6010C72E0A156057F8E14EFEDF98FB:0C7A02F13911D33BEAD1471C708987F3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -3F0EA3AB608E5CF9814AFC56D7AE1B9D:3631C40610EEA661633CD7B8BEC865E2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C62A08EA0795752B072A06F4AEAB3ADB:CCB2F6767F50B6896B9244C09287C9FD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -B73A62B4C9F994FC383EBD65DD4EA0B1:ADB0391D3F717FECEF62C07B22E31062:\ -0000000000000000000000000000000000000000000000000000000000000000 - -493270140AEEEA6D72F484B61C9C1825:6ADAF168DEA73E278F0CAC41907F5304:\ -0000000000000000000000000000000000000000000000000000000000000000 - -5F25EC322C5AD4120F115248EB11FAF0:2B6539726858D7A043EFBAA0E33CD073:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C05012D7D2B5270433248793AF438843:AD8ADE6BE4C591A243B4CAE06A709DD4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -B9B9D77A5E156DBCDA162DB3848AD95A:C14B99C00345CB680C482D31F8A0C4D9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -8FC09B76BE675A5161338F4F73A21D6C:6B547FFB2B57F236A734BACD51BB7F80:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2859C8B12F4439DCC496C5F2BAD2C99E:84C397A83A9A76CF06818FF1534C45B9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -29CD3317ECE7A36106AFF008F7044D4C:07939F9C4DB6097191D90A84D9422F98:\ -0000000000000000000000000000000000000000000000000000000000000000 - -9440D9285BC074FD402117EE963D7A8C:295A81D1FFB0D950B0DF0A61DD96BA84:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C405DE00BAE96D8C354839CFE1E4DA42:13BA97F2392A05E6A2B33C7C713DA088:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F5914DCABF0ACC9D1D58D0011A7AA462:6DB4ACAAD7FABC9CD78E87AC9B0091CB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -80BE9CC8DE81F11996F2EC48A55CA726:FBAA38B36394A2ED5EB7CD24BE8E0E55:\ -0000000000000000000000000000000000000000000000000000000000000000 - -58C8B08BBE5647F74F80FF7C1405DBA8:FB4C62485E9E63D73AA3032CA4387579:\ -0000000000000000000000000000000000000000000000000000000000000000 - -7DA7507D0CA379E2D060D4E8486FC8F0:5135EFE72EEDA1CD3FD8BCD504208BE8:\ -0000000000000000000000000000000000000000000000000000000000000000 - -760489E9ECBCD1B99D5F93659E723355:FF7B0E84D5AA95BF74975347B005E3C6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D8F26A78DC801CF94F42781677C28DA1:7D9C197C3F6A57D489D7D860F5E735D9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -631BBA38307F0F3D46EC6008549DB395:EFF9418718C2B458C7D2F9394080B2AB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -EB4455AC6D05F6D41907B363FCF19067:26611DB477E3C04BAD35582E9DD1D550:\ -0000000000000000000000000000000000000000000000000000000000000000 - -B124E0C47CB5AD6BC70E6517C3BCADA3:99BFF5353A3CDBD7CC524D1397CDE280:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D96D6BE65B50965E1534F10C37B071C4:4520EC9BCB88E0DD255F62B8F58F8CB7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -E20DA0529B468FD1F6CEA9E1DDA20D98:7D8EADF99C6DC653A896D3D9AC5AD532:\ -0000000000000000000000000000000000000000000000000000000000000000 - -8FED053284ED49478577BB31C8719DDD:FB895CBFC4FE1B7F30E86B05CDAFE62A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -5F30CAC7106D2FC0AEC7D0E6CF1C1B0B:555032BB249EC898CA18C5D212254D98:\ -0000000000000000000000000000000000000000000000000000000000000000 - -95E61BD1C1F5D208B84E2EEA39776A01:3B80F00821708B2473638EB7C234BDA9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2E13F661363EB00DF0F05D3A8B67A931:96B667807256288CBC343BBFFC951A6E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -BE50E7837771DC3782A7B2680AB6EEC8:48A091ED2C8796E030C78F73DEB7B9C3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -494E7D3074674BDB8959BD8C243AAAC7:CBD446EDF4C4E69A8BF57AD748BBAC18:\ -0000000000000000000000000000000000000000000000000000000000000000 - -98EFD397394D507346A9E3CCCD94B83D:1941D2C4E959190CB8B5BE59812FBCF5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -A0E491A1C8B2C0441E896AA2006981FF:0D93B922EF541227948915A40F0EBFC9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -9906A45DF7FA72CE1D93154FBEF8436F:200042EC80FED60378D724D023DF4490:\ -0000000000000000000000000000000000000000000000000000000000000000 - -934793FC4BDAE33A5BC62253C4BF21DC:E0BCCFAF07ED0FEC18746AE09A8915DB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -B2C82F2FC55D78082818996C8B438D64:2CD7B209F7BD58D71753564D647D3716:\ -0000000000000000000000000000000000000000000000000000000000000000 - -B73CB12EC2527CB24079BC91E7CFCA64:C744C2E0A2FB9B4C07143877CBC8C52A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -03BD985787971F4CA118007DEFC23B32:30569622169CC58B0D258E8466B5D579:\ -0000000000000000000000000000000000000000000000000000000000000000 - -0F1B8AB985B4B63BC911AB0B989CC3F6:37326B366FE3CB33DBAC8C8884977144:\ -0000000000000000000000000000000000000000000000000000000000000000 - -9F641156DAE8774283421494FEC92D6F:8043D5FEA980B3AED3330802B1B7A370:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2B14272CB87B86674EC6E848090BAD52:6A014D1249FDB4F83C784F2F957B1B9C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -5174558BDE4E1E82A97A908688C1D932:ABBFCE8176303FDFAEAA8DE9988C6C64:\ -0000000000000000000000000000000000000000000000000000000000000000 - -0C4576A319A31D84FCA00F13B173FD07:AF6E672701B09598056135C40ACFF4A4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2F58921AEDF792D28AC5EF3D89E6E5C3:166F24B5F7ACED72CEB47789FB3420A7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -18D4EC77C7545EB9BD18B4D6EE706154:8E4B8A41E09E9FAEB483F4AEED16D62F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -41CCEF6E389ED4819F2A3F0695E05FFD:1FA1311EB223F23085B0548ED3CB8E1F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -6FCD11D8582065E40E45FFC8C236844F:7DD9DAF766CF5D5FED9E0CD379283311:\ -0000000000000000000000000000000000000000000000000000000000000000 - -84E954B3E51B616843CC9FCF87F56BAC:FC0504AE07BCB1E1D476EA24129FCAC0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C15FE4ABC0C4C3651D73A44BE8363E3F:23A1BE9DF35CBD354FA74DDEDB761EBB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -3E590CE739E909499AE2BF2F081A8791:A1E3EF13407D27B6DB3FBA999430D93F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -843817CF22CB788A2E1AFD63B0E800A6:766369A95B5756584277117C7D80D6F0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -47890D85FC7E1F2F50BBADAE3CDDEA8E:38DF031DFD78DBD121875DBD27A65DE6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -1E49ECD466A95FFE545985D1CBF83570:D41EE3E2DD807C2664CC551BB4C60716:\ -0000000000000000000000000000000000000000000000000000000000000000 - -0C24E139962730F8884348FC344BF257:333AFA1CC42D2B65B69E8F84DACED288:\ -0000000000000000000000000000000000000000000000000000000000000000 - -FBB395C0500A3C19A737A7C055722B22:F22AC1742C3F881CD2E807380C6EE933:\ -0000000000000000000000000000000000000000000000000000000000000000 - -47DFAAA0F3C33B25D10C2D1681778470:4E4437B28D253FAB30DEF9F81881107F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -0A308E89BA785C02C4A9A356429175D4:954BC0204437536E81EB2981656018C4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -9BCD04EE4515CEBE9417C4BA53F70628:350CCB77E4F7582397C8798977551BED:\ -0000000000000000000000000000000000000000000000000000000000000000 - -116CCAA1796894C546AD402AF21992E2:9B2B8AE3DE719F3B9EED784EE085D6AF:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D0FA9A490CFF9AA8D310C9EE1214D22E:DE1DFB5E9A4FFFF1E159CA3D2415AB2A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -04F76480D664744295713B1B9B9A8E6D:21B1E562F5F0742871E15B3CAB25A770:\ -0000000000000000000000000000000000000000000000000000000000000000 - -DB3C71A92F5C8F9FC303DB11D12264AC:5EBE82662D295D950B489F790A611A76:\ -0000000000000000000000000000000000000000000000000000000000000000 - -0800C09A9FB780F3E7C28A3FC9EEEC76:CCD61A1A7F4E08AF0033FBB874FAA57E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D0AD8BD5019D6C9A8DD4886E0A142C5D:C0348D858C4A12CC7B8BB9854781A463:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2888E9264256D1002A2EC2BBBA5E9617:9EC2135DC0461CE34B48B8BEB64AE3A4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -394CBB0EE6765EEB5F63108143D4891A:0C4B799D0E3B5388C9256B7CD822D2DD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -6BCFAF34034E97142888923020205C88:534518BB353367DBEE27A4ACBFEAC109:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C30940B1DD0A3753F13279FDAE1D74BC:469E5717F92180BA73682767218EEFF0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C5E22C002C00FBA49991B806AA12D7A7:517571B9EC2F2BA2F4E65D399A2A9648:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C0FB5C0623B6FF6E6B98025FCAEF93AA:277D012742F53FF9E72090ACE0D858A6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00FD0D8AEB919F7ACAD97FCEB53B5239:AD23F1C09DAA2E22375E9E46D9C63916:\ -0000000000000000000000000000000000000000000000000000000000000000 - -A281BBD26A06D1437EBF2D0D2D0E4908:DABA99F79DB7E0CECC494BBA3607D20B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -8D356DF37371554CE5CA0507A6B7B2FC:12C0D42C2578FEEF42528360919BD833:\ -0000000000000000000000000000000000000000000000000000000000000000 - -719A3D3C27D8B4B58793E380CDF0EBA3:BBE7E042D9B823A0ABA4A373B1EA149B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -9050232A0352DA77C36A4EBF8941E0DE:EEAABE37D6C42DB0A54AA4FABC12F872:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D894906DAB6F24402E0A769F9D6F5AC5:7E650D9CC9220F96BDED18A2ABAC99E8:\ -0000000000000000000000000000000000000000000000000000000000000000 - -8354BF3240A66515DCB3F5852FDA3352:F867C36D1BAD141D1C6BD6884E9BD5EE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -AB2EE66300CF3886FF32F94962C5F5AE:55F050D0F8160FBA6211AC804F7F9904:\ -0000000000000000000000000000000000000000000000000000000000000000 - -36C298362E647713C08B4D6B6EDE4E17:9D3AA6AAA9CB2834CD7BAA389EE6707C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -75B95E9CA0FEC03FC14717B4239FE737:9BF44624A4EE5AFCDDAE766F8A0CCBE5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -559EA4F0237D9EEF69264CF1DB7379BE:BFDC04B79E56A3A17096B7D667E29DD9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D5A45AA6B981792704726E4D8744CE28:18B9A46D1F9AC610D7FC93DED07B6F43:\ -0000000000000000000000000000000000000000000000000000000000000000 - -14B025CB6399B38439DFA3E1A0AB2A8C:AE7161320FD6B793C53AE82C486123FE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -E61F5E00147A9072DD5C7C9C73BCA55E:D6614BC4918BFC57CA977B751CB63981:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C130A74BCF9E00080C81DAFBD4CB9C27:678779C91FBB09CCE59BFF0A52E664CD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -7B33791FB384824FA4EACCC77DCA836D:DDB78361ED1E569E7D82DDB3446C6CBA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F312A6CE802BAECD8D320F48C230478A:BF376E8A67E0D4A6EACC93D7506CF12E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -A312F31CDFC678B772F41D85F8960D81:C3278B947706D148D8495DCF7F940459:\ -0000000000000000000000000000000000000000000000000000000000000000 - -B1E2215B44D517F8F3F4EC804AC7CE4C:3C5CF6F19631D11F1AE26CB8EFE06149:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2D18844BD670192026E39530CE16BE27:33E79315CD18B83CBEA1E45D823F9AA4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -8B4DBD837AAFAF3BE297471737B4845D:2A30C8A395394CBDD2A970C4763F01C3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -AD20F1CFF0C4695F0808B4256C3E933E:2C062B870AAB8223454D85354AE69C6A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -64B3C2DC52B3FEAC5562AF4F8DA845EE:C3E4C1B7BCE83E68F75758FE33362CF9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -99807008533A8C8E851015F5719979C6:89265DA4FEA5FEAE14B3C71DBB7625D6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -94641E459342D3D007E15692F316D9E0:51481C83745ED2A0405172AF9B180E1B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -89644AE31F62B3B77C6ED9BEE5CDA55E:9D491E8E17E357D992800CD396668E9C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -74C22A64E12BF46EF00DBB12D2388675:852882DBF18419FABD698794A454F23E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2D8AB2CC4F59844D705917C3D1D1B220:30E77D5CCB70CA0ECB2D774890B72119:\ -0000000000000000000000000000000000000000000000000000000000000000 - -3E3660703809BEE497D36875DFDC4D4A:7EDC11E9418DBB124183BFAFAE82F42F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D8E7BCE9B8551C59DC15AF0FEBD75C77:DC497415A0F3BC5538A36EC0EA35D878:\ -0000000000000000000000000000000000000000000000000000000000000000 - -615AFCBA98D0A5AFA089F4C506E95425:D7CE890C864704A2D90DC7B6E32283E4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -082A395DEA30823A8AB8CCA4851DB836:DB153480844804582364CE5381E15C37:\ -0000000000000000000000000000000000000000000000000000000000000000 - -B10B5E124C741A67437730F8B1CA3F82:C7152116908D13A6D22337D7A7D3D795:\ -0000000000000000000000000000000000000000000000000000000000000000 - -112AD1550207C4583005C72188BF3511:41E79330C57AADFD089D8EC6B3569B4A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C1B9A37E9747E23BEF9B5C628E13A739:E9AA948C7329B74389E039168F7B8DCF:\ -0000000000000000000000000000000000000000000000000000000000000000 - -B2250C2A5CCE8D50C3F193358EF09A48:935D2A954C7EA28B265673279F6B4F61:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D125977E709F9324027A1CB656B8C1C2:7807796076E0BF2795094C36CF79900F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -649600BA81A113BC7722E878D5869004:C69C842CB5D42C4026244806E3270A00:\ -0000000000000000000000000000000000000000000000000000000000000000 - -5718F3B4ED59D02DE5C40E9A826FFF30:9263BE9CA3CB9661695C1CCD1041F2E8:\ -0000000000000000000000000000000000000000000000000000000000000000 - -AC56479B43617B1C7C804629E36E93F5:C35E27B56BAA1AF03542B3DA703BFEF7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -20027AB27AB4CCF48F9973CC052E0A35:22AAA7F89676ADAA2923903B2A3DB526:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C8DD678E5D5E8F67FAA0CB599C7886BD:734448F52EDB9316CAFA7F095C24B0E7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -93DFF0CC56BDBD950A9BAAD3DFF75B2F:EBD6A3487FEE478BB0EF8EC783E49C43:\ -0000000000000000000000000000000000000000000000000000000000000000 - -7FEF68F9A691BDDD070DB91DF52798EF:4560A566844F1B2F92B35D762F7A2A82:\ -0000000000000000000000000000000000000000000000000000000000000000 - -86A06EBDB131546D77A4B81C3BED598E:37B9296307EA211F5D6E249E9753392D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -5C467E141ECCF1B65B6DD86418F35CFD:409732CE286383F332C492E110F136DE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -35E9FAAFD45C1470EF2BE841B7CE9187:1BDB66804D80D832ABD97BDF145B316E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -72E77AA37ED81CB273582D24FAC4F797:19EFE53BFE7FAA6BFEFEBD4F79885F0E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -73A8FAD5559EE727CF006CEB0EC60D3D:81E197EF8F5B2AD7F0312B705AFB5F27:\ -0000000000000000000000000000000000000000000000000000000000000000 - -81B566F5EA6961C9241486A6E526E8A1:213F181798188378DD97935F019AE7C0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -0DA282CB8796A24A161FC55ACFCAEC1F:72BF6ABC3AD01D3B7F5589BAC18499E1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -172482CA04A7549BAA12E55B0A2619FA:B40732603C7E9C2D373E12F9516E0426:\ -0000000000000000000000000000000000000000000000000000000000000000 - -0E89B76BB98DF1ABA754504C08106755:1F38D616E20D3F0C4158517B162ED983:\ -0000000000000000000000000000000000000000000000000000000000000000 - -44FBD8823D9D06573CC304CCE5AEE6FD:A4576BC2CA8B8764B30D2DEDF461E455:\ -0000000000000000000000000000000000000000000000000000000000000000 - -E6C9D81608C6B4B736913749E0E06FB0:83756C36B9664E2415D54835CFAA2540:\ -0000000000000000000000000000000000000000000000000000000000000000 - -B03DEF269B39D69E0EB67B873CF2B80C:B226452F5E395B90E46E5CA8F72916DB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -144976F7A2170E86A68359F49C9BF7EF:2183068E0B42CF774DFF0280857F23E2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F86F15E91A74FCD149AC3B27229949D0:A88E509487D41897D882F8A1160F3465:\ -0000000000000000000000000000000000000000000000000000000000000000 - -65B8EBE1995C281D80E471F6B447C050:84EED5FC045BB4817057902699B81109:\ -0000000000000000000000000000000000000000000000000000000000000000 - -116AE65A8B432F02F95BF339DE5F1427:4FB98E68E52EDE677698126BFA06BA6F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -7EDA6705CD1ED178F051188479BFEC21:66840CCF17A78DB4748D811B436D0041:\ -0000000000000000000000000000000000000000000000000000000000000000 - -B3B2780D00D441B0641BF54660BC7624:6C24B364096089E615A8A657FEACF53E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -AEFCBE20965D096F631D7844F69D7D8B:0BB3B124E75FE222CBEFB2EB1BA84C57:\ -0000000000000000000000000000000000000000000000000000000000000000 - -94C8C0B27E7FA6B0C66EF69529280A10:7B0C86F6968BE22B3CF6740FA4E7683C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -866CD3970543E3224E756F301705081F:A0400EDBE1D6D08CA45419D39DF4E4BB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -AADB86BD88CD0B572DE6225896E694DA:AD4B42F7356A196EB29EAF62AAAC2DE4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -AD22711443BCBDF0DFB1AB96F3217F98:6B39765526E0D0F8E55606559193D760:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2C63EF91C5BA79AE9ACB9CCC9D0CBDD5:368BFC2EE7870480A53B887E0E0273D3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -7952E98E82ADAE82305291AF31D82B78:481F3714C9112E522CAB717B00795542:\ -0000000000000000000000000000000000000000000000000000000000000000 - -E0B61686A1648FC82AC0767A30E969BF:CA681F90975354B326F88DA6EE6CBC4A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2AF247328D18F510A4FCB1784979209D:C185B82815B15FD96A75FD0309567D09:\ -0000000000000000000000000000000000000000000000000000000000000000 - -5D2064436576514B4C27365268C6B9BF:267AAC3880B12273AF2B5976AC51C157:\ -0000000000000000000000000000000000000000000000000000000000000000 - -3D04280E15EB800B1ABD005ECC9A8B3F:EBE2628954016D7428DB4477A0641B49:\ -0000000000000000000000000000000000000000000000000000000000000000 - -A55B35CF84CBDB510C38F24C6BF93B90:9641A161F9D60D76EF05888FD1E2A280:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F14320EEA11F6FC7336ADEEAB8E85B9B:7F42B86B1C943E7EB89FD91B439EEC9C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -81D4388A3B919D54311B3327A4643265:70DFE1A70E74F1A2974C81F073542863:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D1469D78D3F38BEC7EE57CEAC7F5393D:5DECB5541E8FB7C65CA8DBCB9A25D6CD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -0028367D36C6989C053BD51781644393:28967FC1396040FB4A989A6A19A67930:\ -0000000000000000000000000000000000000000000000000000000000000000 - -0DF379E3ED7A514D09CA440CD91A7A4B:B2405BFE9F872B5DBD87D520CAEF49EC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2E47CF7B14D03C6D89D950DE7EAD69A4:A6A1AE40FB2DBD1ACB43E9C027E877AC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -BD6F5ABA7C56CD8F7F94D9FD482FAF4B:1ED91FFAF9975638253641D2826A91B1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -BA634341B5A5D226000C04A5189AB13E:F5644F442E6D6B52BAFB7FCF020C5E11:\ -0000000000000000000000000000000000000000000000000000000000000000 - -6E2AC15AFCA7504C209BFC8F9CCA2A2F:73B228B2BFE0B01A24AFE361309E84DA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -CE347B81F4984EEBC8C3EC7CBC5DCC18:5ECCDE0E778C02545B16916E67CC5E15:\ -0000000000000000000000000000000000000000000000000000000000000000 - -DCFFF804405504B5EFE75BF9D23480DE:66C04EC78FAFA8462E94A4A4F69D4D7A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -221352648EBA537DB994F93EA3527CC8:74E0DB0F5A47224A1437B7C519441C08:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C8458FEC89AF924CF81396E641D7DDBD:5C3BD04D99635363DAF7D281230FD600:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F47E1F7EF00B42F8F5A1219C42E0CC0A:6DDE19D02A217B2A5DD41A1454DC677D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -24CDF34C5EA6B37CED3B33178FD54C88:95DDDD7E4CD12EF44FA5CCAF6E093130:\ -0000000000000000000000000000000000000000000000000000000000000000 - -AC8023453190010FADA88C6E71174FCB:F123615073CFC4C5DA553F7758CE0937:\ -0000000000000000000000000000000000000000000000000000000000000000 - -023AE5AF03FD68B6432D84C218DFE0A7:4B8D617C5728EB7AA6B2D23960F235F0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -CAA35C45DF45601E5935C92B4F5F164F:7155D0E792B5279AD6057C48BC2CAA0D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -ED72D82596C24FCE85E066377C6F23C8:2343F7BD3ADC05B7F575DBFF8B490EAD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -818834EA9DD46525CED342FD8CDF03D6:F0AA5253E8871BFF04BCAAA9FD2DA3FC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -AE528D030A08F5697611F769864C7863:C40D67EB5D395B65F578B01F7FDD4D36:\ -0000000000000000000000000000000000000000000000000000000000000000 - -979BE56166651E23CD3156624B51C118:4D3FADFAEF95C81DB449741D830669FB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -23F2C6298D46CB7B66305B3272F14775:B21F5D9F8CFC630C0C9184B34335C19D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -4C5E6E7EF12BFF242402CC42962DE420:0764165513CE56DE4BC8FB238CEFCF15:\ -0000000000000000000000000000000000000000000000000000000000000000 - -93FB53BF2128A23468870BB679B6CD46:6FEA32419061B0C70A1A098B34F6B008:\ -0000000000000000000000000000000000000000000000000000000000000000 - -A5EB2A49B07960CCEA5C632640A4B8D3:148ACECDF96815DE338312D7E505FBA7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -7CE5CA2B71BAD18D4722127C9B28CA20:65EAE71CF60B516EF15EB3C22958272C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -6B3BD3BE30DEE6B7987FDA806C5C3805:9C9402BE33FE1EB856AB211CB6F92C3D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -FA36C8904B20DA558430AC1743B31515:90E562EFC0D04545190DD0142AC39A05:\ -0000000000000000000000000000000000000000000000000000000000000000 - -6D159ABD062B35E8CE7F08F44F289040:3753E162B8361AACD59B20228221D6CA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F5099C6661352E4093618DCBE1CA977A:FDBE9F07CE5C2E99768DCBAD0B02E321:\ -0000000000000000000000000000000000000000000000000000000000000000 - -688A780BF7A5290BCAAC1B6132878C53:0629155B1D44909B4CD2A8B30E0E0907:\ -0000000000000000000000000000000000000000000000000000000000000000 - -6021C98BB2665524A443D89A40DE9D06:58039733F59046C469323C29B77C3750:\ -0000000000000000000000000000000000000000000000000000000000000000 - -FBF76BDF9E6245840CA6BBA70055F563:94551B253A232BEAFDDEBFA5871CFFAD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -A72FDD6F664169F03CC0CC554AF2B68A:0E01B11F9313E0745A5A6C93F65536F9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -65550E0E11ECE8C52F56D79B8779B631:060F7B1952C3A20740FC3AB3523A26B5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F6C89D40E53B72F349433B135193A2D2:549DD728A520D70C5BAE2F13728D1334:\ -0000000000000000000000000000000000000000000000000000000000000000 - -04F2E6F467102D0C7514ECFF1B74E61A:B9DE638D64DEEB61AEF4C787E9DD35F1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F4030612C03BB7E12CF52DE9368C2BF9:5F9276C06B5B4845634E53D97ED262AE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -A28AD08C3334E4FB4D4968ACCB7F3F5F:82B8B3E572875119B1D125A2E0B6242C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -B2DA025E287DF1D344E2C76AAD0C2C03:A25398F55C33DE587851C88C96DE321D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -496548B236963ED35F68F21ECF7DFAEA:209F82198BE7609F3C0E1B3291C306FC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D8017AD727DBB03A67BC9B6CEC08F82D:75940C2A866B99049E89E6D2FF00902E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -6F961163C00C533DBF195BEE8714DE60:6A04C14D65DF615BC9D3817EE4FAB278:\ -0000000000000000000000000000000000000000000000000000000000000000 - -1393EEFECAC81F9F0684A141B37ACD79:03755C3939CCB1A295328C0116FBC40E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2D6F0FC6BF2DBB83EA5180D2B5F2D8ED:F965911478AD9B623B760844CC03327A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -9033C3DE5FA49AFCC52A79E67F4D0736:5831046301BDA86CB50346CA1B66C4FB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D8B7C49D31802C02FD1CAE4401FD2D2B:08F7884E9885E1038B0C61F473EF70F8:\ -0000000000000000000000000000000000000000000000000000000000000000 - -BA9678585636444430D8270E4D503540:421D1E481CAA8A08BBA48665CDCEC377:\ -0000000000000000000000000000000000000000000000000000000000000000 - -9B61323D57ED9FFFE1918BD9CE8EA33C:79169AE974BAC0F7D922165BDC2CF445:\ -0000000000000000000000000000000000000000000000000000000000000000 - -4CCBB469A1750A879B8A74FFB3FF8C61:4E839686B96659ABB8C5AB567941F7DC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D8F243A37C08D3BFBBEFE8F91E84323F:9A0367F4E414FB939A86047DC4A8EF1B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D3821E4D2C499F3426B9FCEFFA09356F:9B15BCD64E0A5B52A1B9C63A01A4650D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -E67235D373FA498DE6F8AFE84B53D286:5FDA78B9580BE5587B564AF685F12A7D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F1FD811B4F6641BC14A703F8CA365DEB:660CF835E5D77B420EEF4EDD7FE3245C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -2B16C60FCAD353CE3CD64AC3FF889DAE:F78B14B08F30907961FF6B80F4C4F871:\ -0000000000000000000000000000000000000000000000000000000000000000 - -EB7FFD1623A99B9583875FE819004E0E:B454B72CB6B929CBDF3925451B6C37FE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -09E42C31C09D7AE29EE67127085A6806:46305BA66724716ADBFBA60604CFDECB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -8A142724C41589A979AFFF93F7EFE596:AB8A4242F1E08F1254A106B65FF3AE81:\ -0000000000000000000000000000000000000000000000000000000000000000 - -87EBEEF10ABAC49D72376311C2A81533:033DD315A1E522BDADE84670B02F1BC5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -B3BC2E9BB2511849EF7BDDA3C2CA6B89:0EDB4BC9961DD9D41AA7A25321ED0202:\ -0000000000000000000000000000000000000000000000000000000000000000 - -A5E7D15571A0B04F499476A994B87C70:D8353E8A311FCAB4E34682DB5F2B7B00:\ -0000000000000000000000000000000000000000000000000000000000000000 - -5DD35FEBA1E40E6DADE71DD3ED785464:58C5EBF33628DD343C822D91D21A4885:\ -0000000000000000000000000000000000000000000000000000000000000000 - -469EA4FAC76E88BCCBC2922E4076019C:A6910C818181CF1F4E69896E7FE0F4AB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -5E4B9F5DC0FE8BAD9799C29F50AD5DF0:9555BA538C915517B8B8648B21E1295B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -A8521AA3053C780A138D5D4552EEF9B9:58D09302FC7AEB722D0A16BD13406759:\ -0000000000000000000000000000000000000000000000000000000000000000 - -E195D5EE9732CA9E20DE5DCD3DEBC856:60D314160FC2081AC73F48B62AA7C22D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -FACEDE9FF4706209912726B7EEB2D0A9:3D2284BCDDD3A0EB80812AF638843F43:\ -0000000000000000000000000000000000000000000000000000000000000000 - -B444E404978F7F30AA486040F7843250:9ABAC5E96FB6F7D306AF9CF2E37E28CB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -9B54CB9AC90D968812FD1355B2779236:B444FBE174380450EE93D9BD6C2151C3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C29668C0A3FF22B1388281FE5A841DB8:4A3F6E376DDEA1791F84D4617CDE9B7C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -75AAFCB786C5A0702C133649B9B73F7C:CBD89BE37B0BA65E3867D8CA0F77C30C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -39C63789EF88E20ACF403262C42A89A7:FAAD0835AEA037ACC207FFCD2A10CD5F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -71583BA1CFABFFBFA412BE228322B297:DAF18FE82A072EC5B9239AEB8E6E52CB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D00297579A4B01649C237A176B86697F:212E6D57C1A46A790E082594D29A2F31:\ -0000000000000000000000000000000000000000000000000000000000000000 - -49D694199247A4290B8A1649D5C82F40:955995D2521F4D100E95E76ABE8BF7CB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -3C88595603173ED5762ABB970D019B13:DAA5CACD2E1BF1AA1DE9C1BDD1132C2E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -83AB295E4F15A8D5F65A723E0CE2D01F:69FA28D662336E4446F4E315C59B1262:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D8A9F3A761B1E45E384FCD205D5A8C61:35529731D5CC912C41153E7E626C8A11:\ -0000000000000000000000000000000000000000000000000000000000000000 - -1D54C56927178C14DA355CFB9ACCFB67:49826A29C640F65371619E940DA451F4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -7D9574BDF07BC0A251B88A2B24F0DB68:9651120F3D1AD09EF61607002A040D92:\ -0000000000000000000000000000000000000000000000000000000000000000 - -75A94C5692A877903A4D43AA1071463F:2676F7CE1D8B91AB29A83970D5EF3698:\ -0000000000000000000000000000000000000000000000000000000000000000 - -A04C41ADFA612D80843B0569833A9AF8:1282CE00BDE016E61ED8000EBD42F414:\ -0000000000000000000000000000000000000000000000000000000000000000 - -4D159F9CC6B4AA58F7FC2F905F5CB875:A5FD714739BB899FF577C6B3E19689EE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -0B1840E8B119B7C94A045459B61B28F6:5E5213FF0E467653C61A21EBD5EBF6B5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -8E4CCFE43811ABED23A41C33FD5F095B:E92DACB852960B91B9EE58153A102948:\ -0000000000000000000000000000000000000000000000000000000000000000 - -C9956C304D2BF87CA8564C3762CD762A:860D752AC16CEC79F1DF5C6A3A44E9A5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F4760FA1F8A17216BB95396057F8FB95:6D8EF0B071CE8966AAEAF8C3C5AFD26F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -7CB6538603BDA43BF71C12AB1241A862:7E3B14847526572F0D55A284D626B560:\ -0000000000000000000000000000000000000000000000000000000000000000 - -E945D4AA05A23561AF42466E1668A734:7E3B14847526572FF2AA5D7B29D94A9F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -5FA0B49C4A1C2452B33C433383354B3E:7E3B14848AD9A8D0F2AA5D7B29D94A9F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -5CDC56C16559E0AB736D6A9AC72629C1:81C4EB7B7526572F0D55A284D626B560:\ -0000000000000000000000000000000000000000000000000000000000000000 - -4EC8D3AE8C51C84F4B65B82340364E4B:81C4EB7B8AD9A8D0F2AA5D7B29D94A9F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -F97F70581ECEB3E6F3F3D37BE9EE6A37:81C4EB7B7526572F0D55A28429D94A9F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -EECD2D9DCB49A297C458C948CAE0A513:81C4EB7B8AD9A8D00D55A284D626B560:\ -0000000000000000000000000000000000000000000000000000000000000000 - -1887BB24F5B28366010E7E0F132F936F:7E3B14848AD9A8D00D55A28429D94A9F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -EAD576FA649DE315401ECA6471B2C34A:7E3B14848AD9A8D0F2AA5D7BD626B560:\ -0000000000000000000000000000000000000000000000000000000000000000 - -540D1BA22F928A84C67EF5214F8BB88F:81C4EB7B7526572FF2AA5D7BD626B560:\ -0000000000000000000000000000000000000000000000000000000000000000 - -74D9CF212295D3670A92269E8D40939F:81C4EB7B7526572FF2AA5D7B29D94A9F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -6BEBBCF4AD01F7E3105D0888A0AD9E3E:81C4EB7B8AD9A8D00D55A28429D94A9F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -B4FF03EDC70BB97FAE21F21C3A459B28:7E3B14847526572F0D55A28429D94A9F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -93F87FBE4DD4206528BF83352452D58D:7E3B14848AD9A8D00D55A284D626B560:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D261D6041824D259290EABD3E9132DB8:7E3B14847526572FF2AA5D7BD626B560:\ -0000000000000000000000000000000000000000000000000000000000000000 - -92074732D84E1841A013A0034C52BF50:81C4EB7B8AD9A8D0F2AA5D7BD626B560:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:DDD26B98A5FFD82C05345A9DADBFAF49:\ -00000000000000000000000000000080 - -00000000000000000000000000000000:FA735E9BE7961050C202BD794E2E1E0C:\ -00000000000000000000000000000040 - -00000000000000000000000000000000:7B2D8D2348DC4CE112AEF4311BE769D7:\ -00000000000000000000000000000020 - -00000000000000000000000000000000:5F35BF3061423D0BC02C07BED67602BD:\ -00000000000000000000000000000010 - -00000000000000000000000000000000:8C9A19CEBB5709C38EA1AE1D12E291C1:\ -00000000000000000000000000000008 - -00000000000000000000000000000000:D69C8CCF5DEC9EFA90684C7B70FCDFAF:\ -00000000000000000000000000000004 - -00000000000000000000000000000000:39B65E77A4D26218E5ED7092AB64D07E:\ -00000000000000000000000000000002 - -00000000000000000000000000000000:F668C7091F81B2827DA77DD419B708E1:\ -00000000000000000000000000000001 - -00000000000000000000000000000000:7106BED662E6B6AE72FDC726C98AD746:\ -00000000000000000000000000008000 - -00000000000000000000000000000000:043AA312B19B6737C3CEBAF830DB6DB8:\ -00000000000000000000000000004000 - -00000000000000000000000000000000:F95E6F00854F17DBB68CC679570D5FD5:\ -00000000000000000000000000002000 - -00000000000000000000000000000000:D23FAE81FF497000583F2CFCE54FCE9C:\ -00000000000000000000000000001000 - -00000000000000000000000000000000:EF5C7DC4DBCE5A51F98011969693DBE8:\ -00000000000000000000000000000800 - -00000000000000000000000000000000:34D2F0546C260EA4002B4BCC2C12CCAB:\ -00000000000000000000000000000400 - -00000000000000000000000000000000:B3787BE95735A9581817C64D81F07E13:\ -00000000000000000000000000000200 - -00000000000000000000000000000000:EB31DC31E4016F7FD8901C5872DCED1A:\ -00000000000000000000000000000100 - -00000000000000000000000000000000:43D607D9D0009C01DBFB117126BC4395:\ -00000000000000000000000000800000 - -00000000000000000000000000000000:463B27CF0DA63219ED2CEBDBF5C16922:\ -00000000000000000000000000400000 - -00000000000000000000000000000000:90DF345556AB04CB12D0799B9C5049BB:\ -00000000000000000000000000200000 - -00000000000000000000000000000000:05C861F7F71591C8AECF8A26EB020F4D:\ -00000000000000000000000000100000 - -00000000000000000000000000000000:11DD97B8ADAF7F6B34EB3BBB9A438892:\ -00000000000000000000000000080000 - -00000000000000000000000000000000:7171E845509F8F4F134BE53EFD8A34DC:\ -00000000000000000000000000040000 - -00000000000000000000000000000000:864E7B400A96420A98765AF993AAD852:\ -00000000000000000000000000020000 - -00000000000000000000000000000000:B8F75A0553AA33DC30B3F2D0027F97EA:\ -00000000000000000000000000010000 - -00000000000000000000000000000000:573FB9B1E047670331D54E87F3BDD48D:\ -00000000000000000000000080000000 - -00000000000000000000000000000000:03CF30E2ED5C9311F6BF9964C8A7DBB8:\ -00000000000000000000000040000000 - -00000000000000000000000000000000:ED735C651F003ABCAFE1926472E0CC32:\ -00000000000000000000000020000000 - -00000000000000000000000000000000:970CDDD5BCCAE7F7BD0F7B67B6707580:\ -00000000000000000000000010000000 - -00000000000000000000000000000000:6D1C5788F69DC2E1EF928D9C831F3826:\ -00000000000000000000000008000000 - -00000000000000000000000000000000:8367C4564B707B6C0A4A92ECA38C6EDA:\ -00000000000000000000000004000000 - -00000000000000000000000000000000:F25D50BBA7FD6496CD70ACE570706ECC:\ -00000000000000000000000002000000 - -00000000000000000000000000000000:0C43854DF7DD96DC3323DCC311CD418C:\ -00000000000000000000000001000000 - -00000000000000000000000000000000:8F8827ED63EAFC702A4C7F855E6806A0:\ -00000000000000000000008000000000 - -00000000000000000000000000000000:DD4FF8498D45936888B48EEFD24CE9F6:\ -00000000000000000000004000000000 - -00000000000000000000000000000000:DE8BF1BCB7C106D93AA60C744240651F:\ -00000000000000000000002000000000 - -00000000000000000000000000000000:FC45CB6A1B9267A8B330FC1399BC0F34:\ -00000000000000000000001000000000 - -00000000000000000000000000000000:9EEC294CEBAEFC664DFA9D1C8B48B0B2:\ -00000000000000000000000800000000 - -00000000000000000000000000000000:CAFB5B1D66E147006DB2E4CFC8405DA3:\ -00000000000000000000000400000000 - -00000000000000000000000000000000:B9F43C559CCB8C1933FD323ED51AF997:\ -00000000000000000000000200000000 - -00000000000000000000000000000000:D11D4485EB7AAA6CB1A8F16E24ECDE7A:\ -00000000000000000000000100000000 - -00000000000000000000000000000000:A4F7B40448470061B7873A62072CE112:\ -00000000000000000000800000000000 - -00000000000000000000000000000000:80DF5AD31BF557F9C75701B1395C4AD2:\ -00000000000000000000400000000000 - -00000000000000000000000000000000:46CE4708ABA4835764EA9C4678335954:\ -00000000000000000000200000000000 - -00000000000000000000000000000000:72BABC19EE59F6F76F17DDFBE2FCC33A:\ -00000000000000000000100000000000 - -00000000000000000000000000000000:E76340173FDA4B6F1E2703A732C4C482:\ -00000000000000000000080000000000 - -00000000000000000000000000000000:79C577AC301DE5ED03AD6D0AACB1D958:\ -00000000000000000000040000000000 - -00000000000000000000000000000000:A2A8D78F3511B65EA03262314F0C8F8A:\ -00000000000000000000020000000000 - -00000000000000000000000000000000:6C87E4E87CB3773520F7B3EDB51DAEAF:\ -00000000000000000000010000000000 - -00000000000000000000000000000000:8D646E78DC20F616A859074DE82D1107:\ -00000000000000000080000000000000 - -00000000000000000000000000000000:E98DE4AAAC62C1E4251054B42D92F4C3:\ -00000000000000000040000000000000 - -00000000000000000000000000000000:B0FC458F4759641C6FA64FED926C8347:\ -00000000000000000020000000000000 - -00000000000000000000000000000000:61F381FA99E58E9B3CEBCBADDE6559D2:\ -00000000000000000010000000000000 - -00000000000000000000000000000000:2C7EAF752E2B02734A3C3506CDA4867D:\ -00000000000000000008000000000000 - -00000000000000000000000000000000:600F284E1AB1C8194D6FE065DBDF1BBF:\ -00000000000000000004000000000000 - -00000000000000000000000000000000:DB84C4BA65B89D0CD51BE73605084568:\ -00000000000000000002000000000000 - -00000000000000000000000000000000:4C75C41A4ABC17E0ADC00228394F0037:\ -00000000000000000001000000000000 - -00000000000000000000000000000000:230375EE7B65A2C948809B6DE69D1F50:\ -00000000000000008000000000000000 - -00000000000000000000000000000000:94EF7F345D1FF0DB4494D9DB56ADFFED:\ -00000000000000004000000000000000 - -00000000000000000000000000000000:CE277A5063C40BA1418A30721A0DE8AF:\ -00000000000000002000000000000000 - -00000000000000000000000000000000:BF4FE13163EA85E003EF8E9D4BAF48C8:\ -00000000000000001000000000000000 - -00000000000000000000000000000000:C8F9F9F1DB54EB0635C227CAE447055C:\ -00000000000000000800000000000000 - -00000000000000000000000000000000:6F31A90BCEEA0BC85843086C7258EA9E:\ -00000000000000000400000000000000 - -00000000000000000000000000000000:334EFC7C6930BC0B839C845E1B22F8C3:\ -00000000000000000200000000000000 - -00000000000000000000000000000000:1E92F9F2E576C864A24F36402F84107D:\ -00000000000000000100000000000000 - -00000000000000000000000000000000:A5B8DF0ABDBA5DA09B8D8383F06957E2:\ -00000000000000800000000000000000 - -00000000000000000000000000000000:344B6F348ADA08FF4E97C722463DCB08:\ -00000000000000400000000000000000 - -00000000000000000000000000000000:AAB52A0482E0A1B84EF07213F8BCF63F:\ -00000000000000200000000000000000 - -00000000000000000000000000000000:E477DDE4A88A17339157E4198DC39801:\ -00000000000000100000000000000000 - -00000000000000000000000000000000:33401CDFBECCF499B3226B4C6AD8FDDF:\ -00000000000000080000000000000000 - -00000000000000000000000000000000:2C06278683B5759C12B147DE2B0E0BB1:\ -00000000000000040000000000000000 - -00000000000000000000000000000000:B2B67CDC8371B5739F5E213FDD8B60EC:\ -00000000000000020000000000000000 - -00000000000000000000000000000000:83ACED5FB21035A41B858136D4797BEE:\ -00000000000000010000000000000000 - -00000000000000000000000000000000:1F6213DC933AEF4C582AAD041E140619:\ -00000000000080000000000000000000 - -00000000000000000000000000000000:32B7E10E04100FCDA94DC223BBC19075:\ -00000000000040000000000000000000 - -00000000000000000000000000000000:72FA9C8731E45CF575CFFEBD6F3981C5:\ -00000000000020000000000000000000 - -00000000000000000000000000000000:AEE9355B2FBD96A06F8F74DC8882E893:\ -00000000000010000000000000000000 - -00000000000000000000000000000000:B56126C52D0DD2B8FDC5C4A05091F2B1:\ -00000000000008000000000000000000 - -00000000000000000000000000000000:6FF5B6F133BEB75DDDD0385F9B3AEEE5:\ -00000000000004000000000000000000 - -00000000000000000000000000000000:6541C5BCE4B3F93F4EC1E7DFED0F98DB:\ -00000000000002000000000000000000 - -00000000000000000000000000000000:BF9ED60D8A243F1E010345537A5C081D:\ -00000000000001000000000000000000 - -00000000000000000000000000000000:77679D9E63DB7DF79C0484423FA18A57:\ -00000000008000000000000000000000 - -00000000000000000000000000000000:548091B07326BF829BA56C786053727F:\ -00000000004000000000000000000000 - -00000000000000000000000000000000:A8FA704EE06EEED6F7F71A598EF921FB:\ -00000000002000000000000000000000 - -00000000000000000000000000000000:627F14CA091AC156FB56302D6C3373DC:\ -00000000001000000000000000000000 - -00000000000000000000000000000000:BC2CAB97EB09919CBC0E6AFEC6581CF5:\ -00000000000800000000000000000000 - -00000000000000000000000000000000:CC7F5DF0CF522B2242163112E4421D08:\ -00000000000400000000000000000000 - -00000000000000000000000000000000:084AC3BF07F1E64F0093A014C2690CE5:\ -00000000000200000000000000000000 - -00000000000000000000000000000000:D3C6597474B740BA1053090A247AB5C5:\ -00000000000100000000000000000000 - -00000000000000000000000000000000:7435911B23F1DBACA5BF86C91B0D11B1:\ -00000000800000000000000000000000 - -00000000000000000000000000000000:79E59CE5B78A6D8259B2AD1B5F50F523:\ -00000000400000000000000000000000 - -00000000000000000000000000000000:72F3659183D9749128AE6CAFBEAADDE5:\ -00000000200000000000000000000000 - -00000000000000000000000000000000:77DD6EA2D669A36E4C409564A8604EC4:\ -00000000100000000000000000000000 - -00000000000000000000000000000000:27D4EC7E2AE30CBE54B7CE9F764E3D27:\ -00000000080000000000000000000000 - -00000000000000000000000000000000:0D68C4922498D08BFEFA450B85659D23:\ -00000000040000000000000000000000 - -00000000000000000000000000000000:6C4FCEEFF2768549EA590FC20310B95D:\ -00000000020000000000000000000000 - -00000000000000000000000000000000:FC46909BE47E944F4776956A98E9C43B:\ -00000000010000000000000000000000 - -00000000000000000000000000000000:50AA945A945A8BE43E4C137F0D7CA62A:\ -00000080000000000000000000000000 - -00000000000000000000000000000000:7511818C4C8408EB0AF22019DDF7F6F6:\ -00000040000000000000000000000000 - -00000000000000000000000000000000:D46BA09B00007974C24FC8C0CB13330D:\ -00000020000000000000000000000000 - -00000000000000000000000000000000:17E352C6C963F7DA5A1CB163ACCB8573:\ -00000010000000000000000000000000 - -00000000000000000000000000000000:6CED1C994D0F7B2862715D514840A780:\ -00000008000000000000000000000000 - -00000000000000000000000000000000:AD351E157AFC89A9C0D8CF15DDBF3A7D:\ -00000004000000000000000000000000 - -00000000000000000000000000000000:79AFB080BADC325DA8C5E88200743603:\ -00000002000000000000000000000000 - -00000000000000000000000000000000:D326FEA25FE2CA220CEC62DB9574AAFD:\ -00000001000000000000000000000000 - -00000000000000000000000000000000:A3C980B5DA0B8E3B32818AF08F5310DA:\ -00008000000000000000000000000000 - -00000000000000000000000000000000:12651FD76182C532CD03B36DD121A43A:\ -00004000000000000000000000000000 - -00000000000000000000000000000000:6D91A4600722340B8ECAE1055B8DF790:\ -00002000000000000000000000000000 - -00000000000000000000000000000000:2B1F49C97807430719A958271B5DA303:\ -00001000000000000000000000000000 - -00000000000000000000000000000000:9E29DADC12AA1ED228CDC78D70C829B7:\ -00000800000000000000000000000000 - -00000000000000000000000000000000:5B8FF678F88EB96FE73BCBF14AD9304B:\ -00000400000000000000000000000000 - -00000000000000000000000000000000:158B5F6CBB33E547735E45559CEF3E5B:\ -00000200000000000000000000000000 - -00000000000000000000000000000000:8EFA3AC040AC5235F2F4AC3A82B7018E:\ -00000100000000000000000000000000 - -00000000000000000000000000000000:97BACE474E820FDEEB1E66D06139D2F9:\ -00800000000000000000000000000000 - -00000000000000000000000000000000:114CB849EC2735AEECDB2E51A1C45A38:\ -00400000000000000000000000000000 - -00000000000000000000000000000000:1426ABD1FE61695A62B7A55AB5DA6145:\ -00200000000000000000000000000000 - -00000000000000000000000000000000:80C615975140248186BE3CD6FD8D7740:\ -00100000000000000000000000000000 - -00000000000000000000000000000000:CFBD333352A34ED7F73D3E569D78C693:\ -00080000000000000000000000000000 - -00000000000000000000000000000000:5F04350AB2EFB6075F381EE1DBB8477F:\ -00040000000000000000000000000000 - -00000000000000000000000000000000:CF5CE38D2033AD6E6891ED24DB39EA66:\ -00020000000000000000000000000000 - -00000000000000000000000000000000:3E63AF44877F258840B165CC3D47424C:\ -00010000000000000000000000000000 - -00000000000000000000000000000000:264E5481EFF42A4606ABDA06C0BFDA3D:\ -80000000000000000000000000000000 - -00000000000000000000000000000000:4A231B3BC727993407AC6EC8350E8524:\ -40000000000000000000000000000000 - -00000000000000000000000000000000:E03269F9E9FD853C7D8156DF14B98D56:\ -20000000000000000000000000000000 - -00000000000000000000000000000000:A798181C3081AC59D5BA89754DACC48F:\ -10000000000000000000000000000000 - -00000000000000000000000000000000:34B355520DF861F3F5C66A2379FBDA15:\ -08000000000000000000000000000000 - -00000000000000000000000000000000:5E86BB8F6B1175510C6B244281A0B04A:\ -04000000000000000000000000000000 - -00000000000000000000000000000000:B9213190C7A9C5F13764D29B6DE843A1:\ -02000000000000000000000000000000 - -00000000000000000000000000000000:4ECA55033294D1FF6F0204B2456046C8:\ -01000000000000000000000000000000 - -00000000000000000000000000000000:660CF6A3F77836AC685519C702548EE7:\ -000000000000000000000000000000000000000000000080 - -00000000000000000000000000000000:9EA538A95E21B6738B0F4BDD0D5A6423:\ -000000000000000000000000000000000000000000000040 - -00000000000000000000000000000000:19D13A0AC90F83E5B3CA943C6462D295:\ -000000000000000000000000000000000000000000000020 - -00000000000000000000000000000000:1B9DD629B9E11BCD27C4148887AE662A:\ -000000000000000000000000000000000000000000000010 - -00000000000000000000000000000000:14EF2BA201698B1185B4F45D3C4BF7C1:\ -000000000000000000000000000000000000000000000008 - -00000000000000000000000000000000:8AF1A83901D7DD153FF8D271B210E3AB:\ -000000000000000000000000000000000000000000000004 - -00000000000000000000000000000000:4209B9F47FE46DA7095E093698227280:\ -000000000000000000000000000000000000000000000002 - -00000000000000000000000000000000:5D058517AC7CC5AFD5C33253D4703B46:\ -000000000000000000000000000000000000000000000001 - -00000000000000000000000000000000:40520018C4AC2BBA285AEEB9BCB58755:\ -000000000000000000000000000000000000000000008000 - -00000000000000000000000000000000:FB12E82326B5B32A88C73962E6B15A73:\ -000000000000000000000000000000000000000000004000 - -00000000000000000000000000000000:10514AB50FB935D4DF8D36697E9A892C:\ -000000000000000000000000000000000000000000002000 - -00000000000000000000000000000000:23BA3FE846E2AE8CD99FC3FE58228A05:\ -000000000000000000000000000000000000000000001000 - -00000000000000000000000000000000:68E7992B17261F9F50693B291B40DE29:\ -000000000000000000000000000000000000000000000800 - -00000000000000000000000000000000:16F61AE21DEF7E6FF252F7A7C0A1FD33:\ -000000000000000000000000000000000000000000000400 - -00000000000000000000000000000000:79386D808CC081C0888E83C047411490:\ -000000000000000000000000000000000000000000000200 - -00000000000000000000000000000000:81421CDE68390C877C025D60D7578959:\ -000000000000000000000000000000000000000000000100 - -00000000000000000000000000000000:8BE4D123F250436A35AC1506BF462E25:\ -000000000000000000000000000000000000000000800000 - -00000000000000000000000000000000:FD007EFCBF67C125F8532A7FD54724CC:\ -000000000000000000000000000000000000000000400000 - -00000000000000000000000000000000:D6661DE82FD241500194134F40C30071:\ -000000000000000000000000000000000000000000200000 - -00000000000000000000000000000000:B03A391CCAAE863B0ED315B0CC4FF99D:\ -000000000000000000000000000000000000000000100000 - -00000000000000000000000000000000:B5142CABF118C8BA5DA8A201E7E04448:\ -000000000000000000000000000000000000000000080000 - -00000000000000000000000000000000:2B078B616E4802ECC0104510E3E7E44C:\ -000000000000000000000000000000000000000000040000 - -00000000000000000000000000000000:CE8A95407154E3B8DA3979FDA451F288:\ -000000000000000000000000000000000000000000020000 - -00000000000000000000000000000000:EF5D9D75A6A31712BAD7D332FCEF52D7:\ -000000000000000000000000000000000000000000010000 - -00000000000000000000000000000000:CE6430157E4EAEA967B972C35C78036C:\ -000000000000000000000000000000000000000080000000 - -00000000000000000000000000000000:7117137E956133BF65BCDA326A8156F3:\ -000000000000000000000000000000000000000040000000 - -00000000000000000000000000000000:7D0D165BDB56D794FAC1B1C5020270B1:\ -000000000000000000000000000000000000000020000000 - -00000000000000000000000000000000:2AE14DC8A1CD98E1BD20D4E01E32DDD2:\ -000000000000000000000000000000000000000010000000 - -00000000000000000000000000000000:AE266BE3BF863707C6AECE963D16530E:\ -000000000000000000000000000000000000000008000000 - -00000000000000000000000000000000:3A2612AF977665D4E8D05E3EA9947E60:\ -000000000000000000000000000000000000000004000000 - -00000000000000000000000000000000:95491F2AD7B48986522E3B1EA14DE24F:\ -000000000000000000000000000000000000000002000000 - -00000000000000000000000000000000:8A1E5D419E900C9FD046BA1F74C49DC8:\ -000000000000000000000000000000000000000001000000 - -00000000000000000000000000000000:E407985AF526A75AB42DB52D64987992:\ -000000000000000000000000000000000000008000000000 - -00000000000000000000000000000000:6C6EAD1E4101F16AD0FC4DE34DA19D8A:\ -000000000000000000000000000000000000004000000000 - -00000000000000000000000000000000:84E74236D365A90B6417221C0E5ED058:\ -000000000000000000000000000000000000002000000000 - -00000000000000000000000000000000:7DC0D45689A260233E52B56EE49F326B:\ -000000000000000000000000000000000000001000000000 - -00000000000000000000000000000000:E69EE6C58AE686AC193F4A118E5C7680:\ -000000000000000000000000000000000000000800000000 - -00000000000000000000000000000000:7FCF4D217B2A37C8D3A822C43B1A119E:\ -000000000000000000000000000000000000000400000000 - -00000000000000000000000000000000:6D37043BF5B8D45F1E44A7C0E792A343:\ -000000000000000000000000000000000000000200000000 - -00000000000000000000000000000000:ED46DEA31CAC83EE9F812C9006891C32:\ -000000000000000000000000000000000000000100000000 - -00000000000000000000000000000000:DABC07C4DFDDA34A8B61D1E1F0461196:\ -000000000000000000000000000000000000800000000000 - -00000000000000000000000000000000:E733109E82EEDEFBB02512F1C030FF35:\ -000000000000000000000000000000000000400000000000 - -00000000000000000000000000000000:9F3BF5E17F297B3B3F3D6311B2874FC1:\ -000000000000000000000000000000000000200000000000 - -00000000000000000000000000000000:CF2793EDA6299C358F79D0F15853E075:\ -000000000000000000000000000000000000100000000000 - -00000000000000000000000000000000:4CFCD92E08E82B0B3FC7C0CB8A2193CE:\ -000000000000000000000000000000000000080000000000 - -00000000000000000000000000000000:409F6D08C56C0129A485A2CD503AA754:\ -000000000000000000000000000000000000040000000000 - -00000000000000000000000000000000:4D80946E2267E0E485CDF4CBEA0BDE73:\ -000000000000000000000000000000000000020000000000 - -00000000000000000000000000000000:EAE07676A063EB5F7F99FAED7B065188:\ -000000000000000000000000000000000000010000000000 - -00000000000000000000000000000000:A783EB0A14B5212A9BC439F225F33834:\ -000000000000000000000000000000000080000000000000 - -00000000000000000000000000000000:524282FABF8B62D291AAAADA12423AE9:\ -000000000000000000000000000000000040000000000000 - -00000000000000000000000000000000:306D0E55364394631EC18BE972EF0B66:\ -000000000000000000000000000000000020000000000000 - -00000000000000000000000000000000:87D8BA08354745FE85BBB710FCF5EB39:\ -000000000000000000000000000000000010000000000000 - -00000000000000000000000000000000:894D2F50F43BA36B539DE43637927AC9:\ -000000000000000000000000000000000008000000000000 - -00000000000000000000000000000000:479C1979DDB0052BA7DF875314CB2A35:\ -000000000000000000000000000000000004000000000000 - -00000000000000000000000000000000:E0E5399FEF15563392741BC333246873:\ -000000000000000000000000000000000002000000000000 - -00000000000000000000000000000000:86F93C8B9552D8971367EAE2A366312F:\ -000000000000000000000000000000000001000000000000 - -00000000000000000000000000000000:9F18DF64A519FEC0581C0C27F805F484:\ -000000000000000000000000000000008000000000000000 - -00000000000000000000000000000000:53BD3E8475DB67F72910B945BF8C768E:\ -000000000000000000000000000000004000000000000000 - -00000000000000000000000000000000:456C1BE9ACEFA86AFB9742AB867692B1:\ -000000000000000000000000000000002000000000000000 - -00000000000000000000000000000000:89EE6EBDDCB44B7F17157C154BB99221:\ -000000000000000000000000000000001000000000000000 - -00000000000000000000000000000000:51ECA17E2C529F17592F9A117F6F592B:\ -000000000000000000000000000000000800000000000000 - -00000000000000000000000000000000:A51036D7D90699DDA88ED9A16EE6C556:\ -000000000000000000000000000000000400000000000000 - -00000000000000000000000000000000:07C856A3CE6F131D785BDE2E3DB3D36A:\ -000000000000000000000000000000000200000000000000 - -00000000000000000000000000000000:A06931BD2C6D9C3701E0286016AB8555:\ -000000000000000000000000000000000100000000000000 - -00000000000000000000000000000000:3A07686652A8F7E35FC9B3333EA97D16:\ -000000000000000000000000000000800000000000000000 - -00000000000000000000000000000000:FD008310340BA35239165FCA8F52B3DF:\ -000000000000000000000000000000400000000000000000 - -00000000000000000000000000000000:FC7E859D16DBF0F92FB8B3286C110315:\ -000000000000000000000000000000200000000000000000 - -00000000000000000000000000000000:86C0CBEB5633EF88ABD436BA54AC4D7B:\ -000000000000000000000000000000100000000000000000 - -00000000000000000000000000000000:CA66CEA4EAE07B83E1EEB737FE72EADC:\ -000000000000000000000000000000080000000000000000 - -00000000000000000000000000000000:019754956B6DC021D25731EF988BDAC9:\ -000000000000000000000000000000040000000000000000 - -00000000000000000000000000000000:786EC65CC6C717A171822F1DD1AB3CE8:\ -000000000000000000000000000000020000000000000000 - -00000000000000000000000000000000:DEAB7388A6F1C61D41E25A0D88F062C4:\ -000000000000000000000000000000010000000000000000 - -00000000000000000000000000000000:F08DF5D467F41CB7D157C6E6C78900FE:\ -000000000000000000000000000080000000000000000000 - -00000000000000000000000000000000:0225B99C3E40C8A5FD0156BD6A2B9349:\ -000000000000000000000000000040000000000000000000 - -00000000000000000000000000000000:6B8D89725A7AEB5AA433011ACF5B72EC:\ -000000000000000000000000000020000000000000000000 - -00000000000000000000000000000000:6A8B55F69923153ED6A95BF4B78CCE6E:\ -000000000000000000000000000010000000000000000000 - -00000000000000000000000000000000:199B86F903787EE3EDD60F8393F4A89A:\ -000000000000000000000000000008000000000000000000 - -00000000000000000000000000000000:BFE08316360801D0B929BBE1786A8570:\ -000000000000000000000000000004000000000000000000 - -00000000000000000000000000000000:887B6ECDBF12DEB314C50F07B870EC3B:\ -000000000000000000000000000002000000000000000000 - -00000000000000000000000000000000:C82FDE13839BD8BD8FC408131F559648:\ -000000000000000000000000000001000000000000000000 - -00000000000000000000000000000000:0482615608212073881C83A90A0B2721:\ -000000000000000000000000008000000000000000000000 - -00000000000000000000000000000000:CDFD5AF33A61EA9BA8C6E4DD3E84949D:\ -000000000000000000000000004000000000000000000000 - -00000000000000000000000000000000:A9EFF0A790FEB09727558C1FFB4247A4:\ -000000000000000000000000002000000000000000000000 - -00000000000000000000000000000000:EAF6266AC9F0A0E96ECF6E602DE61B73:\ -000000000000000000000000001000000000000000000000 - -00000000000000000000000000000000:59F44B4178A92AF2CA778BDA351247F1:\ -000000000000000000000000000800000000000000000000 - -00000000000000000000000000000000:87C3730E07C280D110EE11BBDB2C7BF6:\ -000000000000000000000000000400000000000000000000 - -00000000000000000000000000000000:5F6BF404C25C812FF2E814E4FEBAF636:\ -000000000000000000000000000200000000000000000000 - -00000000000000000000000000000000:92B8C78C75EE5BB1C27DAC75EF76D2E0:\ -000000000000000000000000000100000000000000000000 - -00000000000000000000000000000000:1E9F7474C984CC73B7F90F8EC01F547D:\ -000000000000000000000000800000000000000000000000 - -00000000000000000000000000000000:9CAAD32B4195E293A792CF2403839879:\ -000000000000000000000000400000000000000000000000 - -00000000000000000000000000000000:B384BE1E8CEAD9DE1E209FC92BA6A3D3:\ -000000000000000000000000200000000000000000000000 - -00000000000000000000000000000000:4E512E32F6B60CFE5660D7CFA21E13FC:\ -000000000000000000000000100000000000000000000000 - -00000000000000000000000000000000:832615D6654549BB930EC8DBACC5AE92:\ -000000000000000000000000080000000000000000000000 - -00000000000000000000000000000000:27549DC43C2DEEAFFB1C52AC37AD9728:\ -000000000000000000000000040000000000000000000000 - -00000000000000000000000000000000:804E4F4C6FD215D4300704142407020A:\ -000000000000000000000000020000000000000000000000 - -00000000000000000000000000000000:C52FECB8EDDA2D9BF3E5856231B87F6F:\ -000000000000000000000000010000000000000000000000 - -00000000000000000000000000000000:26474A9B6A125DA80A989286F1AADB77:\ -000000000000000000000080000000000000000000000000 - -00000000000000000000000000000000:15955CDA082E2278B2EAB498BAE90A5D:\ -000000000000000000000040000000000000000000000000 - -00000000000000000000000000000000:04191E4D8945BA1E9D02098EEFCD65DF:\ -000000000000000000000020000000000000000000000000 - -00000000000000000000000000000000:C1841B80C1E0E4608F0C261F8FF91199:\ -000000000000000000000010000000000000000000000000 - -00000000000000000000000000000000:7FF3E31C19BB193B4A2CCD488CB44F97:\ -000000000000000000000008000000000000000000000000 - -00000000000000000000000000000000:2FB402BFAAACCC4F55C9EBA37D2AA543:\ -000000000000000000000004000000000000000000000000 - -00000000000000000000000000000000:97289170C25CE1EC2011B27487DC8903:\ -000000000000000000000002000000000000000000000000 - -00000000000000000000000000000000:3BC60DC98B29BA75D7DBA12D78BED74D:\ -000000000000000000000001000000000000000000000000 - -00000000000000000000000000000000:21C3E9BDB411A2CF58ACFCDDA07CA06E:\ -000000000000000000008000000000000000000000000000 - -00000000000000000000000000000000:174FC71F855D61484B8C05DEB12988BA:\ -000000000000000000004000000000000000000000000000 - -00000000000000000000000000000000:337671C8D092C431778655358AE1A622:\ -000000000000000000002000000000000000000000000000 - -00000000000000000000000000000000:D671E381AE4CBFBC4D360ACE36538EB6:\ -000000000000000000001000000000000000000000000000 - -00000000000000000000000000000000:9915EB2B534C901AB3E208F0B8274438:\ -000000000000000000000800000000000000000000000000 - -00000000000000000000000000000000:CBB867073A139F7A39A5ABFB1F9B7084:\ -000000000000000000000400000000000000000000000000 - -00000000000000000000000000000000:487B9F02DF40531F6B1BD096A8E32377:\ -000000000000000000000200000000000000000000000000 - -00000000000000000000000000000000:871D4D57145444F7858A3A1727FEE068:\ -000000000000000000000100000000000000000000000000 - -00000000000000000000000000000000:56463A7AEB3D1B104868B5F0CB88479B:\ -000000000000000000800000000000000000000000000000 - -00000000000000000000000000000000:1A00009A7CAE8EF56B167F94F9932585:\ -000000000000000000400000000000000000000000000000 - -00000000000000000000000000000000:BA0BDE829631F63E14FE1995C57CBE29:\ -000000000000000000200000000000000000000000000000 - -00000000000000000000000000000000:A0625DDE21DF874E27751F460DB24939:\ -000000000000000000100000000000000000000000000000 - -00000000000000000000000000000000:3A850B3917B926B7C1861AA8557548DB:\ -000000000000000000080000000000000000000000000000 - -00000000000000000000000000000000:33FB35F2ED3A0F9A9C0D62868890B706:\ -000000000000000000040000000000000000000000000000 - -00000000000000000000000000000000:8EB519BF9B7F9841FC429C21930730AA:\ -000000000000000000020000000000000000000000000000 - -00000000000000000000000000000000:973672A4178DA471DB7C2CC9F3349DA4:\ -000000000000000000010000000000000000000000000000 - -00000000000000000000000000000000:EBC56A2AB4DC394C8409EBC529103C09:\ -000000000000000080000000000000000000000000000000 - -00000000000000000000000000000000:00300AD85514851A32376A583B99416A:\ -000000000000000040000000000000000000000000000000 - -00000000000000000000000000000000:47CB1114753A29FA68E83BF3754F5713:\ -000000000000000020000000000000000000000000000000 - -00000000000000000000000000000000:556424407058A1BF639387032BB4972B:\ -000000000000000010000000000000000000000000000000 - -00000000000000000000000000000000:C573C69439543B71A1EAF6A38D1DB977:\ -000000000000000008000000000000000000000000000000 - -00000000000000000000000000000000:570D68BC03C1AD3173316BB3484166DB:\ -000000000000000004000000000000000000000000000000 - -00000000000000000000000000000000:2ABE779A9A42BF593A2D20495C6F5A37:\ -000000000000000002000000000000000000000000000000 - -00000000000000000000000000000000:7D648B890DCE86ADAE607B24B17F7ADC:\ -000000000000000001000000000000000000000000000000 - -00000000000000000000000000000000:8AF02339AC04EEDDC5D29B1D8AB85E34:\ -000000000000008000000000000000000000000000000000 - -00000000000000000000000000000000:D11C7DCD0E9B857DDC1A8D73169BBA2D:\ -000000000000004000000000000000000000000000000000 - -00000000000000000000000000000000:7A960A521E193922ED2275B1FCEB484F:\ -000000000000002000000000000000000000000000000000 - -00000000000000000000000000000000:357E6FBCA32874FDCE99AD14BD10C4B8:\ -000000000000001000000000000000000000000000000000 - -00000000000000000000000000000000:1AC04248825E32B8E71C34875371F307:\ -000000000000000800000000000000000000000000000000 - -00000000000000000000000000000000:038A5BB1246BB8F0460ADC7826211268:\ -000000000000000400000000000000000000000000000000 - -00000000000000000000000000000000:EF923294B89B78F017C874FC4472762E:\ -000000000000000200000000000000000000000000000000 - -00000000000000000000000000000000:19A8882B0FDB10E143FF9DF9D32DA301:\ -000000000000000100000000000000000000000000000000 - -00000000000000000000000000000000:399800963634CD1B96D9FCEFE1D0815E:\ -000000000000800000000000000000000000000000000000 - -00000000000000000000000000000000:9B5B6DFFFCB2201390728372E1259012:\ -000000000000400000000000000000000000000000000000 - -00000000000000000000000000000000:0DB33144E4EB0FCAC271AB4D26F7B3B3:\ -000000000000200000000000000000000000000000000000 - -00000000000000000000000000000000:D7987CAA9C1CAB111984C2BA993F95B9:\ -000000000000100000000000000000000000000000000000 - -00000000000000000000000000000000:7F57B51D6B2E5E8C3DBEDF6B68A3ACDB:\ -000000000000080000000000000000000000000000000000 - -00000000000000000000000000000000:5DE80D7BF3FC0B05ACEB1311BE12E31B:\ -000000000000040000000000000000000000000000000000 - -00000000000000000000000000000000:BE2C16F62E116A472C43D526D582A2F2:\ -000000000000020000000000000000000000000000000000 - -00000000000000000000000000000000:0D9AED1721E71B09C7CF34650315ADD4:\ -000000000000010000000000000000000000000000000000 - -00000000000000000000000000000000:2B06E5A2CB8E141B6F194E7987D32E14:\ -000000000080000000000000000000000000000000000000 - -00000000000000000000000000000000:FE2893A03D01523DF7BCF0EC76A71E76:\ -000000000040000000000000000000000000000000000000 - -00000000000000000000000000000000:018056BEED112C1B11C6D58F383E51F3:\ -000000000020000000000000000000000000000000000000 - -00000000000000000000000000000000:20D29D2A08CAED608CEE792B82E9F900:\ -000000000010000000000000000000000000000000000000 - -00000000000000000000000000000000:FB4786827E61312B24889E8A75BFE0E8:\ -000000000008000000000000000000000000000000000000 - -00000000000000000000000000000000:81FC9F0C865FC970721180942F0DADDE:\ -000000000004000000000000000000000000000000000000 - -00000000000000000000000000000000:179BA8EFBE611F1358B2D7C8A14F6056:\ -000000000002000000000000000000000000000000000000 - -00000000000000000000000000000000:5509A6F21705DA67E685C1D2515FC40F:\ -000000000001000000000000000000000000000000000000 - -00000000000000000000000000000000:9EF148F4819E1AD53458FF7B97512719:\ -000000008000000000000000000000000000000000000000 - -00000000000000000000000000000000:8B992E1FD9026C14545D3B45BA12DD26:\ -000000004000000000000000000000000000000000000000 - -00000000000000000000000000000000:2A1A31C9F9EC3F0041E4981C14075C9B:\ -000000002000000000000000000000000000000000000000 - -00000000000000000000000000000000:668D25EAB49A68A353170FB9804C49E9:\ -000000001000000000000000000000000000000000000000 - -00000000000000000000000000000000:B0851073E77BEBADB5E4620A5ECAB48F:\ -000000000800000000000000000000000000000000000000 - -00000000000000000000000000000000:0D7DD474F2ADD4E616C2BDCB31AE295E:\ -000000000400000000000000000000000000000000000000 - -00000000000000000000000000000000:19E972ACB8159AF2BE06C2CEB13F17CB:\ -000000000200000000000000000000000000000000000000 - -00000000000000000000000000000000:D3181CAF92EB933472AB5D7D9A79359F:\ -000000000100000000000000000000000000000000000000 - -00000000000000000000000000000000:AA8B04CFD3F03D913981888D65F595F4:\ -000000800000000000000000000000000000000000000000 - -00000000000000000000000000000000:C972EAE644F542F2D61581105DAA2DE9:\ -000000400000000000000000000000000000000000000000 - -00000000000000000000000000000000:40288DA36DC4A581CFC6BF52768AEAC0:\ -000000200000000000000000000000000000000000000000 - -00000000000000000000000000000000:1460BD4CE7589DFC8CA2A341CEDE21A2:\ -000000100000000000000000000000000000000000000000 - -00000000000000000000000000000000:415E3D395E8AF9F0B367B18279EC9D36:\ -000000080000000000000000000000000000000000000000 - -00000000000000000000000000000000:52841B754B398E76A046A808D0254DB1:\ -000000040000000000000000000000000000000000000000 - -00000000000000000000000000000000:E28C2E20BF18DAD62ADA7B46D46C51AC:\ -000000020000000000000000000000000000000000000000 - -00000000000000000000000000000000:EACF9AD4EAC19266F886CB3AE50B2CA8:\ -000000010000000000000000000000000000000000000000 - -00000000000000000000000000000000:39057A7055ADC3DF052632BA75845405:\ -000080000000000000000000000000000000000000000000 - -00000000000000000000000000000000:0637B291488FCBC39EA131C5D0393617:\ -000040000000000000000000000000000000000000000000 - -00000000000000000000000000000000:53A6EAA591C754B9AFB8E14B39BFFE79:\ -000020000000000000000000000000000000000000000000 - -00000000000000000000000000000000:AF9DD24F6FD3C9BAD97466F4E19D008E:\ -000010000000000000000000000000000000000000000000 - -00000000000000000000000000000000:6F6C9FDBB84546B3BD98703730A71292:\ -000008000000000000000000000000000000000000000000 - -00000000000000000000000000000000:00DCD917419399ED52E2A528ECAB86C5:\ -000004000000000000000000000000000000000000000000 - -00000000000000000000000000000000:DC077DA2CBF96509A74980CE12786C41:\ -000002000000000000000000000000000000000000000000 - -00000000000000000000000000000000:AADD759F77507F990D3856F6EFC91978:\ -000001000000000000000000000000000000000000000000 - -00000000000000000000000000000000:3948D1EF7CE021CEF9C6C1405BB5A6F9:\ -008000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5B8AC83847FDCD6006F7D59A04BE703C:\ -004000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:7F6347B6A370FDBCD26C91E5F1BE4E77:\ -002000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:3D8DC8CEF60F4F0F021BEA3B8A268740:\ -001000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C9BA9FC07BD7FAD3CBD56DBF9A7C5B00:\ -000800000000000000000000000000000000000000000000 - -00000000000000000000000000000000:8B660D768B8E32F0C4E15386C5F3450D:\ -000400000000000000000000000000000000000000000000 - -00000000000000000000000000000000:9A15675F3631BD2AF387A7B69DCEB89E:\ -000200000000000000000000000000000000000000000000 - -00000000000000000000000000000000:893978E492FED5662D13AA2F759DC89A:\ -000100000000000000000000000000000000000000000000 - -00000000000000000000000000000000:9E274EAD9B737BB21EFCFCA548602689:\ -800000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:92FC8E510399E46A041BF365E7B3AE82:\ -400000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5E0DA386C46AD493DEA203FDC6F57D70:\ -200000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BEC1E37824CF721E5D87F6CB4EBFB9BE:\ -100000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:257A79F891BB8D0C13FEEF1ACC264214:\ -080000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:8B3EDD5BA04CB6FF80A3874411C1B8B7:\ -040000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:73C83EA96AE151230B2DEE7110B15E2C:\ -020000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:0ABD62FC8802C9BC86E2544909AC610F:\ -010000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:1908EF821AD2EBC0CB28BF66E796EDAB:\ -0000000000000000000000000000000000000000000000000000000000000080 - -00000000000000000000000000000000:8D88B1E7BB45E0DD5603D8FCCD589695:\ -0000000000000000000000000000000000000000000000000000000000000040 - -00000000000000000000000000000000:284CDF6476175B6BB414E7FAC09CD404:\ -0000000000000000000000000000000000000000000000000000000000000020 - -00000000000000000000000000000000:66487D053A660BD840D7DE39A3B1F139:\ -0000000000000000000000000000000000000000000000000000000000000010 - -00000000000000000000000000000000:869A570998988F68819CCF301EB015DF:\ -0000000000000000000000000000000000000000000000000000000000000008 - -00000000000000000000000000000000:F6899D57F734AFD6473278DBDE8FB99D:\ -0000000000000000000000000000000000000000000000000000000000000004 - -00000000000000000000000000000000:A6726CE53BD62BC873F6C0463A5841FC:\ -0000000000000000000000000000000000000000000000000000000000000002 - -00000000000000000000000000000000:9858FD31C9C6B54AC0C99CC52324ED34:\ -0000000000000000000000000000000000000000000000000000000000000001 - -00000000000000000000000000000000:82EDDDC59E207131F1AE2A2A06A83284:\ -0000000000000000000000000000000000000000000000000000000000008000 - -00000000000000000000000000000000:1C17A9F76290FB6C0F0267BB1CE832C6:\ -0000000000000000000000000000000000000000000000000000000000004000 - -00000000000000000000000000000000:6DD6415CC9EFB2323FA78ED28EEE06C7:\ -0000000000000000000000000000000000000000000000000000000000002000 - -00000000000000000000000000000000:48FD01A424E995B0E0840353439B1A4B:\ -0000000000000000000000000000000000000000000000000000000000001000 - -00000000000000000000000000000000:2B139C4C4200A8DA4DAF8169F84A4089:\ -0000000000000000000000000000000000000000000000000000000000000800 - -00000000000000000000000000000000:0D7E0A00E181F592C1D75250AC940517:\ -0000000000000000000000000000000000000000000000000000000000000400 - -00000000000000000000000000000000:9250D327F678E8EDBC25CB40EA70391E:\ -0000000000000000000000000000000000000000000000000000000000000200 - -00000000000000000000000000000000:4D715D9421FCB51C7B4C94DEF2B5C210:\ -0000000000000000000000000000000000000000000000000000000000000100 - -00000000000000000000000000000000:19DD5DEC75CEE00003995BF2EA643E2F:\ -0000000000000000000000000000000000000000000000000000000000800000 - -00000000000000000000000000000000:BB75015A768AB1E9BC4AF49D2D156C4F:\ -0000000000000000000000000000000000000000000000000000000000400000 - -00000000000000000000000000000000:46EFE1B09EFB606CB11717415511862E:\ -0000000000000000000000000000000000000000000000000000000000200000 - -00000000000000000000000000000000:360D02F49944ECAE2EE2050E634904CE:\ -0000000000000000000000000000000000000000000000000000000000100000 - -00000000000000000000000000000000:93E207973539B6E2EF7D49C772E32D86:\ -0000000000000000000000000000000000000000000000000000000000080000 - -00000000000000000000000000000000:2E71481D28ED6BD01157F4D054F01961:\ -0000000000000000000000000000000000000000000000000000000000040000 - -00000000000000000000000000000000:AC06EB8186A501262CE9B06FC88F9774:\ -0000000000000000000000000000000000000000000000000000000000020000 - -00000000000000000000000000000000:A94CC5DCC946C9B4F38D1D46BF1C0335:\ -0000000000000000000000000000000000000000000000000000000000010000 - -00000000000000000000000000000000:17A457DA5304D77BD0BC4B5B8BB02FDD:\ -0000000000000000000000000000000000000000000000000000000080000000 - -00000000000000000000000000000000:B6DF6B6C45A38ECE7E940C45FE1E847E:\ -0000000000000000000000000000000000000000000000000000000040000000 - -00000000000000000000000000000000:83DB5E464D300A76EDA858E108902EBF:\ -0000000000000000000000000000000000000000000000000000000020000000 - -00000000000000000000000000000000:C7FB67AAA9F7417DC5977B57B723D278:\ -0000000000000000000000000000000000000000000000000000000010000000 - -00000000000000000000000000000000:1DD21FD2291C7419B5593EE8D6712198:\ -0000000000000000000000000000000000000000000000000000000008000000 - -00000000000000000000000000000000:A2E337EFDF4B888C2B94B86AE20FF8E8:\ -0000000000000000000000000000000000000000000000000000000004000000 - -00000000000000000000000000000000:61F70FEAB04DB61D959A69E9C1BAAA9D:\ -0000000000000000000000000000000000000000000000000000000002000000 - -00000000000000000000000000000000:6FC6C5718FD0B81194A198F873EDE7EA:\ -0000000000000000000000000000000000000000000000000000000001000000 - -00000000000000000000000000000000:DFDB243581A8D3DA8A3F268AA8E6207E:\ -0000000000000000000000000000000000000000000000000000008000000000 - -00000000000000000000000000000000:965A8653210830C831353A28CBBFD16C:\ -0000000000000000000000000000000000000000000000000000004000000000 - -00000000000000000000000000000000:E3442D2FC126CC50AB364E09A0872B18:\ -0000000000000000000000000000000000000000000000000000002000000000 - -00000000000000000000000000000000:B261BC4E7FAE6629FC5F5D588E417CAF:\ -0000000000000000000000000000000000000000000000000000001000000000 - -00000000000000000000000000000000:940218AC849FD119D89B0E15376213DD:\ -0000000000000000000000000000000000000000000000000000000800000000 - -00000000000000000000000000000000:C07DE68CB0ED8C8D398B87D6547BD15B:\ -0000000000000000000000000000000000000000000000000000000400000000 - -00000000000000000000000000000000:F14145E5DCB1EFA30A5A6CA08EC8F8FE:\ -0000000000000000000000000000000000000000000000000000000200000000 - -00000000000000000000000000000000:4D08CD60B971B10854A0912DAF5CC3A8:\ -0000000000000000000000000000000000000000000000000000000100000000 - -00000000000000000000000000000000:73C96C4F08BC5F9725CD2F719402DF4B:\ -0000000000000000000000000000000000000000000000000000800000000000 - -00000000000000000000000000000000:488AF3D7E9223041C2C26AB496BBF0E5:\ -0000000000000000000000000000000000000000000000000000400000000000 - -00000000000000000000000000000000:CD5038A80ECEC3424E1E9614CD3267DD:\ -0000000000000000000000000000000000000000000000000000200000000000 - -00000000000000000000000000000000:C38D3776A560BBC5453E96C1587B0E59:\ -0000000000000000000000000000000000000000000000000000100000000000 - -00000000000000000000000000000000:845416D12195B8FC18F299AD41D8F569:\ -0000000000000000000000000000000000000000000000000000080000000000 - -00000000000000000000000000000000:07B3D3BB79520764234D247A7A0036C2:\ -0000000000000000000000000000000000000000000000000000040000000000 - -00000000000000000000000000000000:BD6816944B3A1353229B02907CD0E87C:\ -0000000000000000000000000000000000000000000000000000020000000000 - -00000000000000000000000000000000:CC547CD2016122227D7CE3B4BFBE3EAF:\ -0000000000000000000000000000000000000000000000000000010000000000 - -00000000000000000000000000000000:3CF2E1206969ED3A85E28EFA16162E53:\ -0000000000000000000000000000000000000000000000000080000000000000 - -00000000000000000000000000000000:801DB46F97025BB099F7755595C532E3:\ -0000000000000000000000000000000000000000000000000040000000000000 - -00000000000000000000000000000000:4322F95A6D70B9D4F53B733505A11D79:\ -0000000000000000000000000000000000000000000000000020000000000000 - -00000000000000000000000000000000:D1A200ED8E473284B70EB16E93B55ECD:\ -0000000000000000000000000000000000000000000000000010000000000000 - -00000000000000000000000000000000:AAB1879D98592963B8F90C8F06804207:\ -0000000000000000000000000000000000000000000000000008000000000000 - -00000000000000000000000000000000:E221625345B6E73DD09235C7A3957CA3:\ -0000000000000000000000000000000000000000000000000004000000000000 - -00000000000000000000000000000000:02B055320E02DA991986BB53A1CC69B9:\ -0000000000000000000000000000000000000000000000000002000000000000 - -00000000000000000000000000000000:FCA1B117007B2C06165E3D773CCEB0C9:\ -0000000000000000000000000000000000000000000000000001000000000000 - -00000000000000000000000000000000:853E0E5DD1CA7C9C55388DDBA2F138FD:\ -0000000000000000000000000000000000000000000000008000000000000000 - -00000000000000000000000000000000:6991C5D5E1BD766597115C5A213F6CFB:\ -0000000000000000000000000000000000000000000000004000000000000000 - -00000000000000000000000000000000:4E0D7A3C6816CC844ABA4BB6AA0F3592:\ -0000000000000000000000000000000000000000000000002000000000000000 - -00000000000000000000000000000000:1A93F22F2E11AFC3CECA1FC17065ECEC:\ -0000000000000000000000000000000000000000000000001000000000000000 - -00000000000000000000000000000000:1519F9986E85E5B942A66DFE1D6ECBE7:\ -0000000000000000000000000000000000000000000000000800000000000000 - -00000000000000000000000000000000:2B583F2363F6C1D981BD2D0C3F965F3A:\ -0000000000000000000000000000000000000000000000000400000000000000 - -00000000000000000000000000000000:E92FEBFA44950BE01CE755EB4607563B:\ -0000000000000000000000000000000000000000000000000200000000000000 - -00000000000000000000000000000000:A583EF976A292B406BBD5DC8256B0442:\ -0000000000000000000000000000000000000000000000000100000000000000 - -00000000000000000000000000000000:08D8A40BCA6BC1C31BADCC9DDA387D9C:\ -0000000000000000000000000000000000000000000000800000000000000000 - -00000000000000000000000000000000:F502C9674BEBFAE010527C808CA03F5C:\ -0000000000000000000000000000000000000000000000400000000000000000 - -00000000000000000000000000000000:E85D57184DA2B982C18C8B13B1348838:\ -0000000000000000000000000000000000000000000000200000000000000000 - -00000000000000000000000000000000:6E71FFAC10EDBF08A6DC42BDA14AE1CE:\ -0000000000000000000000000000000000000000000000100000000000000000 - -00000000000000000000000000000000:0F2D7BEE48845D8A17ECF93F52F9036A:\ -0000000000000000000000000000000000000000000000080000000000000000 - -00000000000000000000000000000000:CBC811575660AF9F7E869631ED779F66:\ -0000000000000000000000000000000000000000000000040000000000000000 - -00000000000000000000000000000000:F7E405B065FB1A03EBD539CFCAD08E17:\ -0000000000000000000000000000000000000000000000020000000000000000 - -00000000000000000000000000000000:0872458B2E2C4725CE7DEC3FFFC47F4A:\ -0000000000000000000000000000000000000000000000010000000000000000 - -00000000000000000000000000000000:18DF0F25A865A0B6EC844D810D25FD87:\ -0000000000000000000000000000000000000000000080000000000000000000 - -00000000000000000000000000000000:35D6DB5996115E7E8C1BE200823E7C63:\ -0000000000000000000000000000000000000000000040000000000000000000 - -00000000000000000000000000000000:CDEA1849DE224D92034BEC826682AD47:\ -0000000000000000000000000000000000000000000020000000000000000000 - -00000000000000000000000000000000:7343B1923DB7C28C195660252857ABA3:\ -0000000000000000000000000000000000000000000010000000000000000000 - -00000000000000000000000000000000:F02FA74352855E5FC194F18476DC2916:\ -0000000000000000000000000000000000000000000008000000000000000000 - -00000000000000000000000000000000:ADCAFB490DD340784F084779CE182FFE:\ -0000000000000000000000000000000000000000000004000000000000000000 - -00000000000000000000000000000000:0CE37E34B01BAF724841EC58A6B90990:\ -0000000000000000000000000000000000000000000002000000000000000000 - -00000000000000000000000000000000:A577782DBA6EDE990B2A28FBF52899B0:\ -0000000000000000000000000000000000000000000001000000000000000000 - -00000000000000000000000000000000:E5BD5E55A80FE196A2AEBCDB6798614E:\ -0000000000000000000000000000000000000000008000000000000000000000 - -00000000000000000000000000000000:DAD3F4D3B96EF51C2D4D2869FAEA4C1D:\ -0000000000000000000000000000000000000000004000000000000000000000 - -00000000000000000000000000000000:28E64B7DC148055040950974E718B27A:\ -0000000000000000000000000000000000000000002000000000000000000000 - -00000000000000000000000000000000:08C9B5E67B8954FDFE74F391B7AFB754:\ -0000000000000000000000000000000000000000001000000000000000000000 - -00000000000000000000000000000000:9CA79528107403A7430CD50578029990:\ -0000000000000000000000000000000000000000000800000000000000000000 - -00000000000000000000000000000000:45A104CAE36E600B6EF91B91FC1C657C:\ -0000000000000000000000000000000000000000000400000000000000000000 - -00000000000000000000000000000000:D9CF9457265E7ACC57EFE25736A11FBE:\ -0000000000000000000000000000000000000000000200000000000000000000 - -00000000000000000000000000000000:D1DD8AE84D38D129A5FA0E9D9520ECF8:\ -0000000000000000000000000000000000000000000100000000000000000000 - -00000000000000000000000000000000:43FB732672D6243DDC9C547E46711FBE:\ -0000000000000000000000000000000000000000800000000000000000000000 - -00000000000000000000000000000000:A2622ED785815C12C949EBED89094FC3:\ -0000000000000000000000000000000000000000400000000000000000000000 - -00000000000000000000000000000000:FBB93B64CA5D94692B4E6EED934112D8:\ -0000000000000000000000000000000000000000200000000000000000000000 - -00000000000000000000000000000000:CD3681FF583D4BC4886D864CFA94EF97:\ -0000000000000000000000000000000000000000100000000000000000000000 - -00000000000000000000000000000000:37ED3CE092A1AE925264751DFFF6B50E:\ -0000000000000000000000000000000000000000080000000000000000000000 - -00000000000000000000000000000000:3CA305833473AC6990A41E37A7BE551A:\ -0000000000000000000000000000000000000000040000000000000000000000 - -00000000000000000000000000000000:CEF8EC0353A04B3DB1309F88265FDABF:\ -0000000000000000000000000000000000000000020000000000000000000000 - -00000000000000000000000000000000:51C23A4293BB9B963AD17E349B8A71C5:\ -0000000000000000000000000000000000000000010000000000000000000000 - -00000000000000000000000000000000:B324D96D901DB388CC1DF28092714335:\ -0000000000000000000000000000000000000080000000000000000000000000 - -00000000000000000000000000000000:E572F8132305A28A1E09BF5ED8ABAA8D:\ -0000000000000000000000000000000000000040000000000000000000000000 - -00000000000000000000000000000000:E4CBB63909992197E9654069BF4EE3EE:\ -0000000000000000000000000000000000000020000000000000000000000000 - -00000000000000000000000000000000:14B1DF955B3A20EADFF35C3869B0B624:\ -0000000000000000000000000000000000000010000000000000000000000000 - -00000000000000000000000000000000:4D9019A6223F39E2075C95C7724959FC:\ -0000000000000000000000000000000000000008000000000000000000000000 - -00000000000000000000000000000000:5352A5E6F316C51F0256B3A0BC283D47:\ -0000000000000000000000000000000000000004000000000000000000000000 - -00000000000000000000000000000000:9F570DD55188193525D0C0244CBA2CFD:\ -0000000000000000000000000000000000000002000000000000000000000000 - -00000000000000000000000000000000:1B206FEA626AD786255A3186AC5F5132:\ -0000000000000000000000000000000000000001000000000000000000000000 - -00000000000000000000000000000000:D7078E2A1CB16142851F7C5F86FF4E64:\ -0000000000000000000000000000000000008000000000000000000000000000 - -00000000000000000000000000000000:FED174EAC6701DAD5DF03DD8A438D99C:\ -0000000000000000000000000000000000004000000000000000000000000000 - -00000000000000000000000000000000:9112A5FEB40E3134C26303F379F29AF6:\ -0000000000000000000000000000000000002000000000000000000000000000 - -00000000000000000000000000000000:B190C3C5AC183F95F71495A93C679BDB:\ -0000000000000000000000000000000000001000000000000000000000000000 - -00000000000000000000000000000000:5777C456EEDBB7756AE316517C1072A8:\ -0000000000000000000000000000000000000800000000000000000000000000 - -00000000000000000000000000000000:5550900FAF11F9D2DDC6CF2F1D7AAEDB:\ -0000000000000000000000000000000000000400000000000000000000000000 - -00000000000000000000000000000000:BDE3013E16AFDF64A0F24991D7EE5752:\ -0000000000000000000000000000000000000200000000000000000000000000 - -00000000000000000000000000000000:71500F21B4145961271727E896C62F24:\ -0000000000000000000000000000000000000100000000000000000000000000 - -00000000000000000000000000000000:801CA8E44FB6BAB5DF7FB96AA5F39F8D:\ -0000000000000000000000000000000000800000000000000000000000000000 - -00000000000000000000000000000000:9EB5169E8F72673301D0ABF9E85422BF:\ -0000000000000000000000000000000000400000000000000000000000000000 - -00000000000000000000000000000000:CB377E74144F9E9405355F089CA3918B:\ -0000000000000000000000000000000000200000000000000000000000000000 - -00000000000000000000000000000000:1EE82E9E6E525DAEB21DF068DFF7AB09:\ -0000000000000000000000000000000000100000000000000000000000000000 - -00000000000000000000000000000000:6316DDDD174659C16CF3324A770225EB:\ -0000000000000000000000000000000000080000000000000000000000000000 - -00000000000000000000000000000000:E17C717EC7A1CF3492710D9FE53A26AD:\ -0000000000000000000000000000000000040000000000000000000000000000 - -00000000000000000000000000000000:675F1E9F7C895DD0B4E1F8D4EED1D2C9:\ -0000000000000000000000000000000000020000000000000000000000000000 - -00000000000000000000000000000000:446B5ADE1FE91D73511403B34F20FF16:\ -0000000000000000000000000000000000010000000000000000000000000000 - -00000000000000000000000000000000:C19171490B5595E8555C61B352935DEB:\ -0000000000000000000000000000000080000000000000000000000000000000 - -00000000000000000000000000000000:57159E7BE66463408FAE89C376318FA8:\ -0000000000000000000000000000000040000000000000000000000000000000 - -00000000000000000000000000000000:C2441BB36C7B7977B0E6EED5AED1BE09:\ -0000000000000000000000000000000020000000000000000000000000000000 - -00000000000000000000000000000000:63A33251E59FF5A6CE0482EB4B80E70B:\ -0000000000000000000000000000000010000000000000000000000000000000 - -00000000000000000000000000000000:4459D2EA77E8E8041DA46EB36705B054:\ -0000000000000000000000000000000008000000000000000000000000000000 - -00000000000000000000000000000000:E76A69F531CCC2C1A4C56AEE55B63C29:\ -0000000000000000000000000000000004000000000000000000000000000000 - -00000000000000000000000000000000:97E97C261C31046F115FEC15820E3822:\ -0000000000000000000000000000000002000000000000000000000000000000 - -00000000000000000000000000000000:3620B17AE6A993D09618B8768266BAE9:\ -0000000000000000000000000000000001000000000000000000000000000000 - -00000000000000000000000000000000:4172B0BEBBEF90672EB0623A709FC734:\ -0000000000000000000000000000008000000000000000000000000000000000 - -00000000000000000000000000000000:265829FC78FD18069B3631AE596DC9BF:\ -0000000000000000000000000000004000000000000000000000000000000000 - -00000000000000000000000000000000:E89B25E3E40E28D37BA6E78C55A611F8:\ -0000000000000000000000000000002000000000000000000000000000000000 - -00000000000000000000000000000000:8EBF95D561DD65F9BC66B82A6905828C:\ -0000000000000000000000000000001000000000000000000000000000000000 - -00000000000000000000000000000000:8C8F6AF8078C29D23B2958CAE6858A09:\ -0000000000000000000000000000000800000000000000000000000000000000 - -00000000000000000000000000000000:39FA2682ABFABA6A705780E72BDA0128:\ -0000000000000000000000000000000400000000000000000000000000000000 - -00000000000000000000000000000000:A812C9D68212B21A14E9CEBCA8960750:\ -0000000000000000000000000000000200000000000000000000000000000000 - -00000000000000000000000000000000:47BFD757C13ADA4001DF9B0989E7CB80:\ -0000000000000000000000000000000100000000000000000000000000000000 - -00000000000000000000000000000000:A95ADAA6A53D1BF0FA4E46EA5D1EE88C:\ -0000000000000000000000000000800000000000000000000000000000000000 - -00000000000000000000000000000000:D1031805010BBACD8BB316EFA437EC4A:\ -0000000000000000000000000000400000000000000000000000000000000000 - -00000000000000000000000000000000:7B6A4380AF9337C902AA691243F6A2E6:\ -0000000000000000000000000000200000000000000000000000000000000000 - -00000000000000000000000000000000:BDEF751D35F3B8BC6A9AB61F6B04A94A:\ -0000000000000000000000000000100000000000000000000000000000000000 - -00000000000000000000000000000000:51CFB9ED07D3628D0854C2E85FC4B866:\ -0000000000000000000000000000080000000000000000000000000000000000 - -00000000000000000000000000000000:0CDA37833BE087D8B997A54D5CFBDCFD:\ -0000000000000000000000000000040000000000000000000000000000000000 - -00000000000000000000000000000000:938D2E6F2149D1E0B6F8878D472F0469:\ -0000000000000000000000000000020000000000000000000000000000000000 - -00000000000000000000000000000000:3857B0C25F235A22F347E0ACCD008FAD:\ -0000000000000000000000000000010000000000000000000000000000000000 - -00000000000000000000000000000000:3BAADE8819E09549CDA6AA160F4C626A:\ -0000000000000000000000000080000000000000000000000000000000000000 - -00000000000000000000000000000000:0F5E7BF2A2590F7A65D17DAA4E828F7D:\ -0000000000000000000000000040000000000000000000000000000000000000 - -00000000000000000000000000000000:510B105E4809B4115C999AB346D21570:\ -0000000000000000000000000020000000000000000000000000000000000000 - -00000000000000000000000000000000:0FF47C9330A69D2B5C52434394A2D1CA:\ -0000000000000000000000000010000000000000000000000000000000000000 - -00000000000000000000000000000000:AB8301BFFFF3B24A3CE63F553443F2C7:\ -0000000000000000000000000008000000000000000000000000000000000000 - -00000000000000000000000000000000:49A3F4514E983616F55580EA4EA12DBF:\ -0000000000000000000000000004000000000000000000000000000000000000 - -00000000000000000000000000000000:C007AEA2279ED965AD5F037359DE24C4:\ -0000000000000000000000000002000000000000000000000000000000000000 - -00000000000000000000000000000000:BE5FCBE21961382305B6EDBC74B6D73E:\ -0000000000000000000000000001000000000000000000000000000000000000 - -00000000000000000000000000000000:5F3DB2DEE7074DAE2340174109D6BEF0:\ -0000000000000000000000008000000000000000000000000000000000000000 - -00000000000000000000000000000000:E530BC0CE5A24E03AD0D215A7E9D9A15:\ -0000000000000000000000004000000000000000000000000000000000000000 - -00000000000000000000000000000000:FFF5A17155933F6084EA4C1BE1245769:\ -0000000000000000000000002000000000000000000000000000000000000000 - -00000000000000000000000000000000:64CA3D5422833F7A4AD1FA5331C08A78:\ -0000000000000000000000001000000000000000000000000000000000000000 - -00000000000000000000000000000000:E42C18F2B56A0E536E4908F84DE06419:\ -0000000000000000000000000800000000000000000000000000000000000000 - -00000000000000000000000000000000:97823D74887FBE3E6B412407A256A018:\ -0000000000000000000000000400000000000000000000000000000000000000 - -00000000000000000000000000000000:8A1D4467260F12AB493334133D5928DD:\ -0000000000000000000000000200000000000000000000000000000000000000 - -00000000000000000000000000000000:735E7FB4B1B2D54C6D33E3D0C714BFA0:\ -0000000000000000000000000100000000000000000000000000000000000000 - -00000000000000000000000000000000:AD4B018D50E3A28124A0A1259DC667D4:\ -0000000000000000000000800000000000000000000000000000000000000000 - -00000000000000000000000000000000:C899A00A2585C1F654694700F1EC1531:\ -0000000000000000000000400000000000000000000000000000000000000000 - -00000000000000000000000000000000:BAE53DCFCF6D6E360A27755F9CE81B6D:\ -0000000000000000000000200000000000000000000000000000000000000000 - -00000000000000000000000000000000:6E181C731459C3360778BEA1BA86164D:\ -0000000000000000000000100000000000000000000000000000000000000000 - -00000000000000000000000000000000:97FD2DDD6045805A7B34879A6AB55D3C:\ -0000000000000000000000080000000000000000000000000000000000000000 - -00000000000000000000000000000000:547D61C02DEF0D9869DF43907D3B8124:\ -0000000000000000000000040000000000000000000000000000000000000000 - -00000000000000000000000000000000:9E457544FC14C723884DD15DEBC25157:\ -0000000000000000000000020000000000000000000000000000000000000000 - -00000000000000000000000000000000:E0767EC3934ECF169116B485ED0C755B:\ -0000000000000000000000010000000000000000000000000000000000000000 - -00000000000000000000000000000000:B4B30728F0DDBB28402E252DC6DDBA4E:\ -0000000000000000000080000000000000000000000000000000000000000000 - -00000000000000000000000000000000:DDB074D9E22B61FCDCB2323A52046221:\ -0000000000000000000040000000000000000000000000000000000000000000 - -00000000000000000000000000000000:91ABBBFECEC752159297B832055E99FE:\ -0000000000000000000020000000000000000000000000000000000000000000 - -00000000000000000000000000000000:25415EF8615CC222B1EC77046B094C35:\ -0000000000000000000010000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C11856EE23FA27F2F426844EE9C7B081:\ -0000000000000000000008000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5E6F28690F31CDC0DAD21D8E3E1BC985:\ -0000000000000000000004000000000000000000000000000000000000000000 - -00000000000000000000000000000000:712D271BAB597FF6728C0A55CE6C3CDB:\ -0000000000000000000002000000000000000000000000000000000000000000 - -00000000000000000000000000000000:4A567C948597B47A1ABF5F8CCD77AE4F:\ -0000000000000000000001000000000000000000000000000000000000000000 - -00000000000000000000000000000000:6ED568AD50C256B77945E19C04086D98:\ -0000000000000000008000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F2398F417C685FE664735E29DB29BBA9:\ -0000000000000000004000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:37D20B991D910044C6BEF068028125D4:\ -0000000000000000002000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:35721318ED63062B43D37C4F14101962:\ -0000000000000000001000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:74A004A5D483CCA7219EA12AD4AF5CA4:\ -0000000000000000000800000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BBCEA8A80619D2AC53037313E71AB56C:\ -0000000000000000000400000000000000000000000000000000000000000000 - -00000000000000000000000000000000:646E434C0FEF5CD6CD9C7A26BA972BB1:\ -0000000000000000000200000000000000000000000000000000000000000000 - -00000000000000000000000000000000:8F2AD3F65E9716E611501D5B7AD81127:\ -0000000000000000000100000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BCC02339FCFFCAE0536FB5410AF91129:\ -0000000000000000800000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:DD6A02B2DC091212A746C8FC9967B8BE:\ -0000000000000000400000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:4BB9FD26E225C913F9BE1B697D31B5B9:\ -0000000000000000200000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:2A3BAC4370DAA0D68CA90939F43E33CC:\ -0000000000000000100000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:8576F1070E25B5FD944C366E08CC9102:\ -0000000000000000080000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E620C37AD1650DCEAEBEAE1F57BD8AD9:\ -0000000000000000040000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:7761ECD209CB564EEACAB4E62DB26BDD:\ -0000000000000000020000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:67D23F0CF1A57BA0E43FE82A3F4FBBB6:\ -0000000000000000010000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D9732CE2055E7F935468A63A170B598C:\ -0000000000000080000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E9F396623AF12ADF24C0378F42F7B4BD:\ -0000000000000040000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:98D5AE45E15A836C141CF7F64DC7D551:\ -0000000000000020000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:EEFBED56D7BD47D088B3AD657A6CB8B8:\ -0000000000000010000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:A99342C96F331950D97AFBFC8C0D4E08:\ -0000000000000008000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:25C35298C0A1224F2BEE7EE8AAA86E51:\ -0000000000000004000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:66602FD71F84B2637B2283CD81DE3080:\ -0000000000000002000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D48E45670FD978FA4DB161C0E5D59FC0:\ -0000000000000001000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:ECE089620BF6866A66FB6070C491C74C:\ -0000000000008000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:36CD300072D4EC94A0FF3595F7A2C1FE:\ -0000000000004000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F939CB3D8316B59600F164234E78D228:\ -0000000000002000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:17C6258E6009E282661869D525F7D204:\ -0000000000001000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:45A32C5EA3E2E548A9E6313BEF957308:\ -0000000000000800000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C2105CC6264024EBEC6BA0F825FD5163:\ -0000000000000400000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:85F3D2169883A7CD54A67DA7C4AC613C:\ -0000000000000200000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B5FFC7D92EA2815C0F4DC9182DA160C6:\ -0000000000000100000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C9642C4E3F420CA73E8F1C15C6EB011F:\ -0000000000800000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:1BD0EEF566BEFB4D57CE7120B731125E:\ -0000000000400000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:CB0705AE3DB537AD1C202DD6635202DA:\ -0000000000200000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D88F55DAC599BEA8440B4BA9E3C50016:\ -0000000000100000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:FF227EC8AF4640198173A79B124CEFDF:\ -0000000000080000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:CC55A4F4086043F1E1ABA9CC91E4395A:\ -0000000000040000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:8D2BAD986865A229601855B024D9A557:\ -0000000000020000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:343E1B000FEDAC000376EE138FD8F0F7:\ -0000000000010000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:765DF290B8D90C9169E6884A0D4D4B92:\ -0000000080000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F9EEBAB9F5CEBF94196FEF3872C46881:\ -0000000040000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:318B1983222E49F5B57E26E70890A5B6:\ -0000000020000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D8DF0A98604C987283ACF7F211D906C7:\ -0000000010000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:92697CF743A72D2D4D7864132A9ADE0B:\ -0000000008000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:2C450C8BCDAA9CB59F930DDAE88CBDB3:\ -0000000004000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:4284A05C4A0AF59DFF15604ACBB82743:\ -0000000002000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:986A05E8447024C8468A1EBF7743F689:\ -0000000001000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:4A7E5D441526F7D4D2987AEDF48F0231:\ -0000008000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F5D9875A70158C9C64136703D231E3F5:\ -0000004000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:3BC82EC5FBE24B5AAF230895BBA9DCD1:\ -0000002000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:EFF062AF33726C788D261FBFDDA15109:\ -0000001000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E2A342E2683D3F970983D941656823AA:\ -0000000800000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E16066A35F943A426FE47AD1A1FC69AD:\ -0000000400000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D89F891B578FF6B441E97849DD2F2798:\ -0000000200000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:4A800443B44112493226E08BD9521912:\ -0000000100000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:2B504288F018B2A867597EB53EEA6DB1:\ -0000800000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B3FA8074A573A00B4897DF6CD0D99B5D:\ -0000400000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:38B56FD4C1FEDF5282208EF5F796A2C9:\ -0000200000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BFE421423C53A9942C78D04CB4B231D8:\ -0000100000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:EF102196C479E513AE8B776D524631B9:\ -0000080000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:AC38F8F6DF320D4409BA6A1CD93A482E:\ -0000040000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:FB5D6CD1B6EE155D6744E5BE62A650F6:\ -0000020000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:23A626E559D0B8E4E4AB3F7C38750D4A:\ -0000010000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:2CCA19AE45B976236D88E4E1AD3BACEA:\ -0080000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:052D166AA678A987C07256C582283986:\ -0040000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D30979DDC6C09B1158FA41EEB6F2A21B:\ -0020000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C36705BB2A9BAFCFCB64C4468964D568:\ -0010000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:97905460E140685960B561204ABC09A9:\ -0008000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B893B8766A12AAAD7691565C46651623:\ -0004000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:7978DBD4794AF35DFB0403423B4E81A9:\ -0002000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:4F990737145AAA9100BFEDCA53B69F6D:\ -0001000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:A223AA1288463C0E2BE38EBD825616C0:\ -8000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:EAE1D405570174DF7DF2F9966D509159:\ -4000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:65F37684471E921DC8A30F45B43C4499:\ -2000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:0EE036D0BC32B89C1CEF987F5229E4A9:\ -1000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:EC9D6557EED58E6CF89A746BBDB6C9B7:\ -0800000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:AD2314BF713CD796E8C7EC6E9C59CB8D:\ -0400000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:33D8944A2D2FACBBA555EC18543AFCF0:\ -0200000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E0885D4460373469D1FA6C36A6E1C52F:\ -0100000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000080:4AE9A20B2B14A10290CBB820B7FFB510:\ -00000000000000000000000000000000 - -00000000000000000000000000000040:2C6EE9F8F64B5B1B5587CDF17E84A791:\ -00000000000000000000000000000000 - -00000000000000000000000000000020:29141D06A6B42CE22EFB8383CEAE325D:\ -00000000000000000000000000000000 - -00000000000000000000000000000010:2AE6E19905D89A8E53A1DF26AD5C89B4:\ -00000000000000000000000000000000 - -00000000000000000000000000000008:1587FF28ABDF9DF5A3F4DAF7405D273B:\ -00000000000000000000000000000000 - -00000000000000000000000000000004:B598247AA82F5C79F9FF0E7EC61B83C4:\ -00000000000000000000000000000000 - -00000000000000000000000000000002:0C5DABB01245E3A3544E291F3B0F250F:\ -00000000000000000000000000000000 - -00000000000000000000000000000001:9BEDCEA16BDE863526A937208CBF0ABC:\ -00000000000000000000000000000000 - -00000000000000000000000000008000:A174B66C47C53B2C34AA9F06FECBB7B2:\ -00000000000000000000000000000000 - -00000000000000000000000000004000:333827335F88EBB93A0A7436E51398F0:\ -00000000000000000000000000000000 - -00000000000000000000000000002000:03A7D7D70F4F50AE96835F12B73F79D3:\ -00000000000000000000000000000000 - -00000000000000000000000000001000:B8B9F2029769952D9664A6FDE9706BBF:\ -00000000000000000000000000000000 - -00000000000000000000000000000800:A7DCE248EC5A060388CA14598B986454:\ -00000000000000000000000000000000 - -00000000000000000000000000000400:1A21EED739C6C39A56E0B4C6A17D3375:\ -00000000000000000000000000000000 - -00000000000000000000000000000200:9073DBCF760A0B9E0E84A2FD6DF164F9:\ -00000000000000000000000000000000 - -00000000000000000000000000000100:CEE83B85568AD8133D8842DC883052CE:\ -00000000000000000000000000000000 - -00000000000000000000000000800000:151940BA15A175FCD39CE2D3A0259EFF:\ -00000000000000000000000000000000 - -00000000000000000000000000400000:9F997F2AC950E52666207183DB935899:\ -00000000000000000000000000000000 - -00000000000000000000000000200000:015B7DF6BFB9367BF8F690FC0B77DEB0:\ -00000000000000000000000000000000 - -00000000000000000000000000100000:4A7D36598525699F49667AF4B46BB99B:\ -00000000000000000000000000000000 - -00000000000000000000000000080000:306248FD603DFC18E41CF0864D2C352C:\ -00000000000000000000000000000000 - -00000000000000000000000000040000:1367EC90627601E9C1BD1371454B772F:\ -00000000000000000000000000000000 - -00000000000000000000000000020000:85FE597694444D1A8D7F1CE219913F4F:\ -00000000000000000000000000000000 - -00000000000000000000000000010000:75BAF3E8194EA04577133509B50FF4C3:\ -00000000000000000000000000000000 - -00000000000000000000000080000000:3EB8325BCA6C583DC04019F01D4BC90D:\ -00000000000000000000000000000000 - -00000000000000000000000040000000:240A1E99A51C7EED2E9127DB7D86903E:\ -00000000000000000000000000000000 - -00000000000000000000000020000000:81B2AF04CC40E2E3DDFFBE3F6AEF8A33:\ -00000000000000000000000000000000 - -00000000000000000000000010000000:6970437809D0A34E5A76B22F88F5282B:\ -00000000000000000000000000000000 - -00000000000000000000000008000000:C12E44B3F253295CF742441FFA2712DB:\ -00000000000000000000000000000000 - -00000000000000000000000004000000:98E2FBF128A1E2F80CABF2DB3F9E62AF:\ -00000000000000000000000000000000 - -00000000000000000000000002000000:3F2B1D74B9D0D84C0B0DDAD31352E67A:\ -00000000000000000000000000000000 - -00000000000000000000000001000000:E51D907B84D877250D0BCEC17D292DFD:\ -00000000000000000000000000000000 - -00000000000000000000008000000000:19E6063C7529E5268E4A45703AFC8AC4:\ -00000000000000000000000000000000 - -00000000000000000000004000000000:6DDCBD01AC098B04AAA084D4C579DAC9:\ -00000000000000000000000000000000 - -00000000000000000000002000000000:AFC268DB7CD2A453EA87BA6A0E923DEC:\ -00000000000000000000000000000000 - -00000000000000000000001000000000:24B199E30672EF17362468CC8C0F4E46:\ -00000000000000000000000000000000 - -00000000000000000000000800000000:B30C571F161EF0DAC78816A4DC1339FF:\ -00000000000000000000000000000000 - -00000000000000000000000400000000:214CB9151303EDA5CD14E35E701DE887:\ -00000000000000000000000000000000 - -00000000000000000000000200000000:57A991425DC55325EB159A0274140EFA:\ -00000000000000000000000000000000 - -00000000000000000000000100000000:856CD3630F436DACD3FE27AB73F4A956:\ -00000000000000000000000000000000 - -00000000000000000000800000000000:E5D5DC0D6834E44697BDD5D8427A054F:\ -00000000000000000000000000000000 - -00000000000000000000400000000000:CAB879F5684241583F4900B2653D76C9:\ -00000000000000000000000000000000 - -00000000000000000000200000000000:43FE63C8C08E0CE5D1DAB79348F1B64E:\ -00000000000000000000000000000000 - -00000000000000000000100000000000:1D7850062F3F8B2415F22BC4D95A1367:\ -00000000000000000000000000000000 - -00000000000000000000080000000000:45D486C0AC551C76AA17E356404726F2:\ -00000000000000000000000000000000 - -00000000000000000000040000000000:900FEDE23DBB68E48BA9D9806E606F19:\ -00000000000000000000000000000000 - -00000000000000000000020000000000:F573C581080C5654A6C426DD8971E68B:\ -00000000000000000000000000000000 - -00000000000000000000010000000000:07AF806C0B6ECF9DD508C0D108572C37:\ -00000000000000000000000000000000 - -00000000000000000080000000000000:8C30672FF7F1DB4681BA36E48B3374A3:\ -00000000000000000000000000000000 - -00000000000000000040000000000000:0D56FA9193C8A6FBF653D75D3F61407E:\ -00000000000000000000000000000000 - -00000000000000000020000000000000:08C0C170A7B0F0C07E1CDEF95AEE8113:\ -00000000000000000000000000000000 - -00000000000000000010000000000000:F05F7E94EC7FECF973EF5732B565E016:\ -00000000000000000000000000000000 - -00000000000000000008000000000000:EB667F97B9D94B0C41C873C4B56B334C:\ -00000000000000000000000000000000 - -00000000000000000004000000000000:A065550C6371DEC580E16276E03F13D4:\ -00000000000000000000000000000000 - -00000000000000000002000000000000:CDAC7C0A0E363FE8BA16BC11D1F6DC57:\ -00000000000000000000000000000000 - -00000000000000000001000000000000:FF792A72BF23CABD13EA587C57D05D3F:\ -00000000000000000000000000000000 - -00000000000000008000000000000000:986EFA59113F5C8A66BBAA7EF978A125:\ -00000000000000000000000000000000 - -00000000000000004000000000000000:B8CB15A238CA60157C3CB3317021B92C:\ -00000000000000000000000000000000 - -00000000000000002000000000000000:F262212AC5485BA7D92CBF5A9C58D8AD:\ -00000000000000000000000000000000 - -00000000000000001000000000000000:DF54C6D917675E73A3659560D5813E56:\ -00000000000000000000000000000000 - -00000000000000000800000000000000:925D0E759AF1EB36CEEB0FB6D51FAB7A:\ -00000000000000000000000000000000 - -00000000000000000400000000000000:99BC9E5870190269C4FE5B6FC23C8D8C:\ -00000000000000000000000000000000 - -00000000000000000200000000000000:C0380B9660722514C1EA4322FE45955C:\ -00000000000000000000000000000000 - -00000000000000000100000000000000:66521E5F953F2D2E237A259BDEE9C400:\ -00000000000000000000000000000000 - -00000000000000800000000000000000:1EB43E99040A614F77361601A1806651:\ -00000000000000000000000000000000 - -00000000000000400000000000000000:A11495F4358A5FA63024A2DC02E20480:\ -00000000000000000000000000000000 - -00000000000000200000000000000000:CF4D5EAD4E69313709EA9399F5ABF8D9:\ -00000000000000000000000000000000 - -00000000000000100000000000000000:6CAC3A5E20E13162FB3A31804CB6C7AE:\ -00000000000000000000000000000000 - -00000000000000080000000000000000:BFEE053ED49F33F5A388359721FE20FA:\ -00000000000000000000000000000000 - -00000000000000040000000000000000:B2FFBF55E5E2E0CB0935504430E173F8:\ -00000000000000000000000000000000 - -00000000000000020000000000000000:E521E33E82289A176467E24CBAD5D92C:\ -00000000000000000000000000000000 - -00000000000000010000000000000000:9609C701F895754A623D3BF3EAC48334:\ -00000000000000000000000000000000 - -00000000000080000000000000000000:C80F1E35ED81AC45835129665CA5C0B5:\ -00000000000000000000000000000000 - -00000000000040000000000000000000:27FE1A77E6BF18887DBF7D48FC1EAB65:\ -00000000000000000000000000000000 - -00000000000020000000000000000000:8E2444DDF34F5320A150471E01AC2F85:\ -00000000000000000000000000000000 - -00000000000010000000000000000000:9CB3B00CA62767D7A1D45AF44D74957F:\ -00000000000000000000000000000000 - -00000000000008000000000000000000:A07252FB0F05EA2264F558BDDF162BBB:\ -00000000000000000000000000000000 - -00000000000004000000000000000000:4CCD47A10722175D4018709698E52881:\ -00000000000000000000000000000000 - -00000000000002000000000000000000:F9DED80456581D2E6F09BDB09B77C04A:\ -00000000000000000000000000000000 - -00000000000001000000000000000000:DCA8A545689A58F663B0B7A540F41E24:\ -00000000000000000000000000000000 - -00000000008000000000000000000000:6801BAF0FBAF3352F3950F0940173352:\ -00000000000000000000000000000000 - -00000000004000000000000000000000:B969F1B6F56E885025F12E58F87B4099:\ -00000000000000000000000000000000 - -00000000002000000000000000000000:AA9F1568B6D0F5AFAC34847E0D7152B2:\ -00000000000000000000000000000000 - -00000000001000000000000000000000:A96B20E51FCB48A0C58306086094154B:\ -00000000000000000000000000000000 - -00000000000800000000000000000000:C9F389C56576B8C74A687BC5AAB8D503:\ -00000000000000000000000000000000 - -00000000000400000000000000000000:3FB63882764779902321A2E594275C6B:\ -00000000000000000000000000000000 - -00000000000200000000000000000000:160C3C22EF0B0D3E4F2FDC914138C229:\ -00000000000000000000000000000000 - -00000000000100000000000000000000:265AC0BE8E47750E7CA22BAF01153B4D:\ -00000000000000000000000000000000 - -00000000800000000000000000000000:C1842F4CA2DDC78E55CD91E07AD23A12:\ -00000000000000000000000000000000 - -00000000400000000000000000000000:E47D5889218FF4CE45EA249EDC9B71C7:\ -00000000000000000000000000000000 - -00000000200000000000000000000000:FB7566732AB52FE99454CFB07A0F1F0A:\ -00000000000000000000000000000000 - -00000000100000000000000000000000:5FBF0927A8B293A04024B187AB1BF6C1:\ -00000000000000000000000000000000 - -00000000080000000000000000000000:CFFBC514515878E10E07556988D8E721:\ -00000000000000000000000000000000 - -00000000040000000000000000000000:CD3EEEBA162879FF20ABD158C236E3F3:\ -00000000000000000000000000000000 - -00000000020000000000000000000000:F96D1082131DAE899EBD32CC562F0BB9:\ -00000000000000000000000000000000 - -00000000010000000000000000000000:BDB475694748128D9959141682174CAF:\ -00000000000000000000000000000000 - -00000080000000000000000000000000:A5E0C2E39B9821F2CD42875B0EC0A65E:\ -00000000000000000000000000000000 - -00000040000000000000000000000000:A1397FFDA7C2A4E9A60E0AB48947B933:\ -00000000000000000000000000000000 - -00000020000000000000000000000000:F20B001C13A0F857FB89C64FFF4CDA83:\ -00000000000000000000000000000000 - -00000010000000000000000000000000:F38EE20A32B15A5B9129B67BA1FF3125:\ -00000000000000000000000000000000 - -00000008000000000000000000000000:41ED367E96E013C651AF3FAEA764FE40:\ -00000000000000000000000000000000 - -00000004000000000000000000000000:55C30FBD291D89E50A9DADCB48E52296:\ -00000000000000000000000000000000 - -00000002000000000000000000000000:3FE7F1A404C0E4395FCC985F369735D4:\ -00000000000000000000000000000000 - -00000001000000000000000000000000:6E131502B6A4F30B56AA52EB67989809:\ -00000000000000000000000000000000 - -00008000000000000000000000000000:3EA36D91871DFF568FBE623DC31EBCE5:\ -00000000000000000000000000000000 - -00004000000000000000000000000000:7C6DF10118A3AB6545A504790543C89E:\ -00000000000000000000000000000000 - -00002000000000000000000000000000:1DFF6937399E060342348C34E88B5985:\ -00000000000000000000000000000000 - -00001000000000000000000000000000:87DCE0F133442B7D4FAF7082F5489407:\ -00000000000000000000000000000000 - -00000800000000000000000000000000:CBEF868AE34C80C542766358534A148B:\ -00000000000000000000000000000000 - -00000400000000000000000000000000:DF23BC0E0C0B7F502E0210AF8B353165:\ -00000000000000000000000000000000 - -00000200000000000000000000000000:E9732D7A112DE03068EC10D10AF8D972:\ -00000000000000000000000000000000 - -00000100000000000000000000000000:1D17312BE6675B0797C5175DDCC1DE7E:\ -00000000000000000000000000000000 - -00800000000000000000000000000000:0DB0D17349C89E090C845CBEF963F225:\ -00000000000000000000000000000000 - -00400000000000000000000000000000:C7128FD1A5EF5202550873EA885551C5:\ -00000000000000000000000000000000 - -00200000000000000000000000000000:761D7F9855C95AB6148833503958F96E:\ -00000000000000000000000000000000 - -00100000000000000000000000000000:1D406059F0E1030FA66C52A46751D092:\ -00000000000000000000000000000000 - -00080000000000000000000000000000:DE2FCC081DF9B136EC62922351E18D94:\ -00000000000000000000000000000000 - -00040000000000000000000000000000:5F93FBFB11A527DFDFB5E4713E431E34:\ -00000000000000000000000000000000 - -00020000000000000000000000000000:6C2C4F22E738C56B5246971540E5E3A1:\ -00000000000000000000000000000000 - -00010000000000000000000000000000:BFF82E042A92224FBD3D41C22D07B610:\ -00000000000000000000000000000000 - -80000000000000000000000000000000:A3B35DE7C358DDD82644678C64B8BCBB:\ -00000000000000000000000000000000 - -40000000000000000000000000000000:04ABCFE4E0AF27FF92A2BB10949D7DD2:\ -00000000000000000000000000000000 - -20000000000000000000000000000000:8F773194B78EF2B2740237EF12D08608:\ -00000000000000000000000000000000 - -10000000000000000000000000000000:8B1EA69EE8D7C8D95B1DE4A670EC6997:\ -00000000000000000000000000000000 - -08000000000000000000000000000000:CEE3C6CE66A7AC0C1767923B263B2EBD:\ -00000000000000000000000000000000 - -04000000000000000000000000000000:88DE61FFC3AD277687626D5F7705DEF3:\ -00000000000000000000000000000000 - -02000000000000000000000000000000:69DD947EFADCD15A06A0D79E078B35AE:\ -00000000000000000000000000000000 - -01000000000000000000000000000000:32F1FA100E43561146DCA08D15B90636:\ -00000000000000000000000000000000 - -00000000000000000000000000000080:D9D076F0512B4F29E15752A21B270BB1:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000040:9668F388DD4F122A4D9DD8D6B8A322D5:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000020:D3F12A67FABEC165545D25F5E5FEAE6F:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000010:97580203AACE7E6F0DEB71BC631D9E40:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000008:E11B01524EA1F465A2A20043EB9F7E8A:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000004:9BAC7EE501F03D6DEBE0F9EE68FBB3C1:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000002:444E6201556F1C9D73299183B7ABCA9D:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000001:497EA15A5AAB3CB115C3E0091C2E4047:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000008000:A306CFDAFE5C8C2A955956BB61FFE5CD:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000004000:4815634545F268ED3BF50021AC0265B2:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000002000:3B075AFF8F75956DC4BE7D5121BF07B6:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000001000:8EAA16AEA0535498D21245BAE97ED0D4:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000800:AFFA71EA9A2F6C4A018CF2F5F22B9B13:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000400:93B8DD3F9A59DD9231B0885601A2354C:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000200:EE23DB4E914D12A53BE8428161F3DE24:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000100:E76E230F4BA91426325C16FA168CA44B:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000800000:14148C222620E009AC51EE2321641D25:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000400000:319D430B55E2A2C942B089755D4C6035:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000200000:774D83990DCBAF6B9186DF250DC721A9:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000100000:81CA67898765727FFDEDBC7DC25EC8FF:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000080000:BEFC19FD8A41103B6892AD4A3CB08122:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000040000:CC2DE08FA80BE8A13C8860174AF9F55D:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000020000:4935E35A180FEC382D3DCFD5ED572AFB:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000010000:D78FE49AB8E11EBA118687045D04A70F:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000080000000:5DA9109BC3193E5D2ABA0CA577CBBCD4:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000040000000:BC46C6FE8F7E549CCC402FC4633C670C:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000020000000:60A11AFFABBEE4D5D5564A74C7F94C91:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000010000000:84DD300A8FDE4AC126F41EA0692F3E07:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000008000000:3734062F8FCF37FBD1C48B5AAEF00C5F:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000004000000:EA4491C7F5A9D671DA358C535965E1C3:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000002000000:D46899CC964A2A082C80AB7E0A4B153A:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000001000000:45A5744C068AC6C7BC028C4D40885F20:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000008000000000:4FF5F65E2089279F1FFF7BF06EC6D527:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000004000000000:B0C818F70672EF5E6F20515214DDDF7A:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000002000000000:2A4D0F00CA19EDCEEF86D7F283221A97:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000001000000000:F9E6A04D60D5C06994E196EEF788ED59:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000800000000:602BE82E95A1BEF5C2742099A6CB70D9:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000400000000:B53F1354FE1291679B6D418AC4A3E26D:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000200000000:0F68F7C1FFB5FA997D8CC007CF4F5BA8:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000100000000:3B90014CDF2D614A339B48A6F374D1C4:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000800000000000:3D8075B415AC9DEB6008B51597CE28F4:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000400000000000:675A3322BCCCF4D78F3376ECC2C8A415:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000200000000000:B8CD6C76DAD863B3A2342265A42C7878:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000100000000000:E0F6B38346E3E0AE2C5763C25C01ACB9:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000080000000000:96E295724B3F296016A3F6853B679079:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000040000000000:305E7A77DC3B62F110688AB334002132:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000020000000000:324E96A82CE897DAB3850047C38E9B18:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000010000000000:23EB8F12867D39E24E5A71606E3B5C1E:\ -000000000000000000000000000000000000000000000000 - -00000000000000000080000000000000:EC74DC99FDB377E35EBA6E5C920C9E20:\ -000000000000000000000000000000000000000000000000 - -00000000000000000040000000000000:12F92E9FF675FFE132FEC127A61ED1D6:\ -000000000000000000000000000000000000000000000000 - -00000000000000000020000000000000:F8BFC6819A8F1683DD314AFEDAA80F33:\ -000000000000000000000000000000000000000000000000 - -00000000000000000010000000000000:28552459A3EB05AE69463C26F6413B73:\ -000000000000000000000000000000000000000000000000 - -00000000000000000008000000000000:E018CED8C1FC6FE1849E945550602D46:\ -000000000000000000000000000000000000000000000000 - -00000000000000000004000000000000:8A46B1349AE83730266EBFB1D62BA1EB:\ -000000000000000000000000000000000000000000000000 - -00000000000000000002000000000000:AEA0972033ACDA2FE228A3619511B0CF:\ -000000000000000000000000000000000000000000000000 - -00000000000000000001000000000000:6BCD123081CB4DA2197A9204947C4765:\ -000000000000000000000000000000000000000000000000 - -00000000000000008000000000000000:1CA839C433F49B9CAC257C7CBE38C571:\ -000000000000000000000000000000000000000000000000 - -00000000000000004000000000000000:E6D1727A0BC893BBE5A048B73296FF43:\ -000000000000000000000000000000000000000000000000 - -00000000000000002000000000000000:6B38158548081550B6931773C3348995:\ -000000000000000000000000000000000000000000000000 - -00000000000000001000000000000000:4159191656BAE5F059625051F329E674:\ -000000000000000000000000000000000000000000000000 - -00000000000000000800000000000000:5684B43817E24580EE373B54B57126C1:\ -000000000000000000000000000000000000000000000000 - -00000000000000000400000000000000:D31DC022A55A6CB7116D5AA79713EBEF:\ -000000000000000000000000000000000000000000000000 - -00000000000000000200000000000000:B9B7F96A83494D61C0D476E15CF9FC40:\ -000000000000000000000000000000000000000000000000 - -00000000000000000100000000000000:9F61E523005A37B71A589C35E2320580:\ -000000000000000000000000000000000000000000000000 - -00000000000000800000000000000000:2F19CFB18D4B538C688FF0FF73EEF402:\ -000000000000000000000000000000000000000000000000 - -00000000000000400000000000000000:2B2D1598BD1A57A6277D0F1182423E70:\ -000000000000000000000000000000000000000000000000 - -00000000000000200000000000000000:FB589E7803F8DEC257644DD8968B3BF9:\ -000000000000000000000000000000000000000000000000 - -00000000000000100000000000000000:4E8F6CD48030ABFB6BFAA8C79DF29132:\ -000000000000000000000000000000000000000000000000 - -00000000000000080000000000000000:594C7334C5C77F1F311743DBF880A848:\ -000000000000000000000000000000000000000000000000 - -00000000000000040000000000000000:8B9060A226A976B4D8701B61A0E16E05:\ -000000000000000000000000000000000000000000000000 - -00000000000000020000000000000000:9D5D7F82A45E543A28769767F0B4220B:\ -000000000000000000000000000000000000000000000000 - -00000000000000010000000000000000:7F60DD3212B5FD34A33E95B7CD3C98B4:\ -000000000000000000000000000000000000000000000000 - -00000000000080000000000000000000:67A133B6981D6CFFFB0894B5CD60C384:\ -000000000000000000000000000000000000000000000000 - -00000000000040000000000000000000:B9724EFA90EE77242862C6D107053799:\ -000000000000000000000000000000000000000000000000 - -00000000000020000000000000000000:6CC4B4806D82C681027375553BEEF871:\ -000000000000000000000000000000000000000000000000 - -00000000000010000000000000000000:D05EA01E7AE0768FFE5B499D4A0EA833:\ -000000000000000000000000000000000000000000000000 - -00000000000008000000000000000000:EB5259D268854E583B02C445F0DBB33D:\ -000000000000000000000000000000000000000000000000 - -00000000000004000000000000000000:273792A497CBE6058FB8CE518C05A9A7:\ -000000000000000000000000000000000000000000000000 - -00000000000002000000000000000000:629EE820F46138558FE7AA6D547F971E:\ -000000000000000000000000000000000000000000000000 - -00000000000001000000000000000000:F04FF6EC27F7412350CA62E6A3BE479F:\ -000000000000000000000000000000000000000000000000 - -00000000008000000000000000000000:CAF26B388D8A81C408FC3506CA523C72:\ -000000000000000000000000000000000000000000000000 - -00000000004000000000000000000000:79A075A5778E5BED4F0663FC86D92A56:\ -000000000000000000000000000000000000000000000000 - -00000000002000000000000000000000:90E59EE9F97DE1590D4C454169890932:\ -000000000000000000000000000000000000000000000000 - -00000000001000000000000000000000:30DF4AFE05F0D0EC4495C4A7A3D3A1AF:\ -000000000000000000000000000000000000000000000000 - -00000000000800000000000000000000:BF6D54D156EDE791A177F8A5BA5DC1D0:\ -000000000000000000000000000000000000000000000000 - -00000000000400000000000000000000:2C2286B2537AFDF52A7EF59D620E7E46:\ -000000000000000000000000000000000000000000000000 - -00000000000200000000000000000000:545F83ECF5366475A1867BF81DE59780:\ -000000000000000000000000000000000000000000000000 - -00000000000100000000000000000000:5E7648E3575B7A02BEA8C69A19ED06BC:\ -000000000000000000000000000000000000000000000000 - -00000000800000000000000000000000:99B0CC109580893A14B960F78C867DF7:\ -000000000000000000000000000000000000000000000000 - -00000000400000000000000000000000:4FBCBA60C491EFA9C5B8B8CC9471C26A:\ -000000000000000000000000000000000000000000000000 - -00000000200000000000000000000000:7A3B3E4FA8DF6DD964161EF9ADB7EC90:\ -000000000000000000000000000000000000000000000000 - -00000000100000000000000000000000:DBA5DD3EE2B0F03D402D5BADAE4E34C9:\ -000000000000000000000000000000000000000000000000 - -00000000080000000000000000000000:2334F78508F6259862FAA5842E6B1E7B:\ -000000000000000000000000000000000000000000000000 - -00000000040000000000000000000000:F15ED8B81B74BD35586E1594AB3B0F73:\ -000000000000000000000000000000000000000000000000 - -00000000020000000000000000000000:A654EE4634624A3593DCC272C0AB8566:\ -000000000000000000000000000000000000000000000000 - -00000000010000000000000000000000:E71506E96ADACE02580EA035601850C3:\ -000000000000000000000000000000000000000000000000 - -00000080000000000000000000000000:00D43BE69B9387B28A4234D2E5BEF038:\ -000000000000000000000000000000000000000000000000 - -00000040000000000000000000000000:BB828D0A587EA543A78A60B6F63CC159:\ -000000000000000000000000000000000000000000000000 - -00000020000000000000000000000000:427338CBFA6B652CDCE9C30F29F6E660:\ -000000000000000000000000000000000000000000000000 - -00000010000000000000000000000000:D26286844B1BE4D73B44B77A2C4449DD:\ -000000000000000000000000000000000000000000000000 - -00000008000000000000000000000000:28D9BEB7444B7801C510D74C90F3183A:\ -000000000000000000000000000000000000000000000000 - -00000004000000000000000000000000:9D8949E7F531F30FFD1C6891154FFB8A:\ -000000000000000000000000000000000000000000000000 - -00000002000000000000000000000000:B329A557C9BFED767B44CA25F43C0924:\ -000000000000000000000000000000000000000000000000 - -00000001000000000000000000000000:1909B5B407CB28E7050F8889104B73F5:\ -000000000000000000000000000000000000000000000000 - -00008000000000000000000000000000:DA51B1E831305D9E6AC7F0CDF49F3AE5:\ -000000000000000000000000000000000000000000000000 - -00004000000000000000000000000000:4A091855C4AA2436F3C61A11FA4B9DA5:\ -000000000000000000000000000000000000000000000000 - -00002000000000000000000000000000:DB8350915843684F18B4B358579A9446:\ -000000000000000000000000000000000000000000000000 - -00001000000000000000000000000000:13A1376760534FF5F7D5ED1B62D93D4B:\ -000000000000000000000000000000000000000000000000 - -00000800000000000000000000000000:C2613B1D8937C2B1C9D7B0249D938E95:\ -000000000000000000000000000000000000000000000000 - -00000400000000000000000000000000:3FB48878619B70DB717F410550B03069:\ -000000000000000000000000000000000000000000000000 - -00000200000000000000000000000000:0589BD5D8ECDAAE7ECABC8816EF3C7EB:\ -000000000000000000000000000000000000000000000000 - -00000100000000000000000000000000:5AC9C030789D810698AAB706BA6BCCA8:\ -000000000000000000000000000000000000000000000000 - -00800000000000000000000000000000:4BD66B7E897E76BF51F1F00671092169:\ -000000000000000000000000000000000000000000000000 - -00400000000000000000000000000000:4A72C588A0FA490D521640D1F245E4BC:\ -000000000000000000000000000000000000000000000000 - -00200000000000000000000000000000:32205DCCC1D7A129B934C6FABAADEB1C:\ -000000000000000000000000000000000000000000000000 - -00100000000000000000000000000000:74F79A4CF6F99359D7EC47DA87104658:\ -000000000000000000000000000000000000000000000000 - -00080000000000000000000000000000:2810428BA5177BB0D91C11683008E68D:\ -000000000000000000000000000000000000000000000000 - -00040000000000000000000000000000:3863C205AED373BB3EF9E6D85D0AD08F:\ -000000000000000000000000000000000000000000000000 - -00020000000000000000000000000000:DD207AA0894DFBEDD7D9802823C04D7B:\ -000000000000000000000000000000000000000000000000 - -00010000000000000000000000000000:A6EAC9ECAAE9CC8621198BA547E9B74F:\ -000000000000000000000000000000000000000000000000 - -80000000000000000000000000000000:23F5F432AD687E0D4574C16459618ABB:\ -000000000000000000000000000000000000000000000000 - -40000000000000000000000000000000:56CD894936F6E9A4A4304CAE06F97CE3:\ -000000000000000000000000000000000000000000000000 - -20000000000000000000000000000000:B604D94F461AF9F4771BC53F8E3C227B:\ -000000000000000000000000000000000000000000000000 - -10000000000000000000000000000000:BB852AC4756880630D6D63951D3D2602:\ -000000000000000000000000000000000000000000000000 - -08000000000000000000000000000000:319C206CD98D2C98993FC2CDAAB3259C:\ -000000000000000000000000000000000000000000000000 - -04000000000000000000000000000000:D271595956451E3B7D957A3485ADE9F7:\ -000000000000000000000000000000000000000000000000 - -02000000000000000000000000000000:D4257D927C7F2A6390DF198B573DD1BA:\ -000000000000000000000000000000000000000000000000 - -01000000000000000000000000000000:7610F6DBE8F3F19682DCC01AF57DCD79:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000080:2055DEA7C84B008C6FAEB4B192795ADA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000040:CB98F1C490F33B4F7A3D3E821B3551F3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000020:BB654CB6528C21D78E5CB79D5DA677A4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000010:E0B2836175A6808D61FEA4CB529401F8:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000008:824C5F6FECE3E0FC4293821B987B3BD4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000004:9D9286D5E97CCDEC47E03CB12C34B339:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000002:BC2C09F0B3FC63CE17F1BE7F267E3E0A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000001:AD86DE83231C3203A86AE33B721EAA9F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000008000:AE042A69C879D524DC4BCC70B84B1B37:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000004000:6D03E3381991EDC800513D30BE07DE5A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000002000:576807DCB0F1A8D73904DBAA84BE818E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000001000:96DD8A88157832B7E45C639C25170333:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000800:9C1A7B580B29888F397743E76C4E7A39:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000400:B77FE10336DA7531E1BF2DC41C7E6E95:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000200:8658E3A6DBAC89EBA6E045881B172E9C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000100:D2FE26FC85AA40C3C6827B0DFF96AB0C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000800000:56C2530D97A43944BE7874E6FA9121FD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000400000:AAECA9394EF359D851CC9F244D4D1E54:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000200000:71BC0D1DEA15FE3BC4AA6DD829C8E957:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000100000:267FCBA295A670CB9EC18AFBB819CE91:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000080000:D18CC92248E209FF8C9AF4AC93588727:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000040000:63E94B466C955B7204285E418A156B29:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000020000:368A8D2610A773A477B924028DAD455F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000010000:B210E51F2C154205DA4A1D1B892DCC63:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000080000000:FFE1B843D7DC5F52852705221ED5EECA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000040000000:0E8B9ACE62AA90B258D8090EF2188BC4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000020000000:96961DBEC1C476AE00972E54DE621F19:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000010000000:A31A56562516BDAE02215CD5F0DF0569:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000008000000:A2316B6B9E6AD55D7013A24BDB1EAEB9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000004000000:709F715313E17EFB3ECAE3A5D9ED94AF:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000002000000:BCA04C7CAB888EE6950B7696F5899502:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000001000000:6655B0542BE057664DE9B2733CA0E555:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000008000000000:7407623C54E38D13B48B84306DD8F244:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000004000000000:B3D6DC13CF612951F9ACB05EAEEDE7E3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000002000000000:301378F0D3D30AE6613A9E7CF113821F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000001000000000:9F227635FDAB7D31A7E1F08BBCC34371:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000800000000:F08620D46001C366FD6DCBEBC806C182:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000400000000:CF51A2A45F9CBFDE788D108B1B4D33A5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000200000000:3E70F946FB77C6841D9F001104347659:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000100000000:A3EB98B3BE360FAE3B8EC43D5B77FF7C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000800000000000:4F6E01D8A2437547B50E070498BCD4F9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000400000000000:4F80F4048084E1150AA6A36A6BB3D7EA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000200000000000:311471549CCBB1EC27BAA384EC32F30F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000100000000000:3C4DA8FF90590FB9FC529580DD40E7EF:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000080000000000:60AE8E3F60A099EEF38EFF4ED27DE3EC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000040000000000:B33C4D6DF1259C4E5799D19B375420EA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000020000000000:4D1BA08EB1E30F2A3B3E5D1DAE9792A9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000010000000000:3CF54D30E493CDD7439E1F34FBB098F3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000080000000000000:F8958250D6D6772B20051E36666906BD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000040000000000000:B4ED85D72C04A357958D7045BE13C4FF:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000020000000000000:294A16831BF660536203030B59DA20F3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000010000000000000:D189C5A12722ABFEBA16F155975068E6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000008000000000000:9A9248C1FEDF207CE64F68E73B22A77C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000004000000000000:CC668772F50D2ED7DF83FF85A0D76576:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000002000000000000:685CA45E48D087563E1886DBDD63342F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000001000000000000:FCE8BFBA1BB12F4990C6DF32C6D71EBD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000008000000000000000:645D7562E523058E7708FF03F1712BE8:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000004000000000000000:FA9CAF3BBC2D52806EF9B3D01F5B8398:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000002000000000000000:0D2638505AAE1A5532D74C4F45C136D3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000001000000000000000:9721099476B1F963EF87DD29E82227F8:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000800000000000000:237AE2CDD5D2819EDAE0947AFB9D040F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000400000000000000:8FA78734E057E8A9486862E00A9886D8:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000200000000000000:983F654090C661264BE8F921063B7DE5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000100000000000000:645F0F938A2898A3869190A1D99A3078:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000800000000000000000:4DDBA0F24964591307AB909009BB41EF:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000400000000000000000:5D9333754035534CEF4EEFA73EA3F8C9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000200000000000000000:F51234B609D397B1D6DA8BB625C0993C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000100000000000000000:0AF5205E41F184D0989A78BF149DB675:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000080000000000000000:0EBC3926D924F37BFD716F404CA8450D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000040000000000000000:53CADA57C7855AEB96B48F8C85915DE9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000020000000000000000:FD8E2C7604621D13E64B58315DCC65CD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000010000000000000000:A7126988773129D5F6CC330C1A0EF30B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000080000000000000000000:72C791409F94CE23F4CD61D714670B39:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000040000000000000000000:6AD3CCBC31E2ECF88C6B54F84E638AA2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000020000000000000000000:9FE143250D00E25696B01E0A2ED05DB3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000010000000000000000000:3ABBF724E6C7B2D05D93A2C6D058E5AC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000008000000000000000000:59300BA5323CF6D84A9FF12B042A5AFF:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000004000000000000000000:4AE9F03EF61BAA670CE46F3A6C205BD5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000002000000000000000000:E33261C4E54AB7B117C3ABA1C9E11C1E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000001000000000000000000:B84E741AC92A42F37A77F05D6F464E10:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000008000000000000000000000:0F6D2E73CF929A92BADF0A372FFB31A5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000004000000000000000000000:2002487C2CFE5A223E3A3C19A6B23670:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000002000000000000000000000:A9E22B14D403C7F0FA9D95C064CBA9D3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000001000000000000000000000:CFD3A8EE62F68692A8917C814290E979:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000800000000000000000000:AECA2C8C0CA8B6F0EF594A13C85E83CF:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000400000000000000000000:E74D77BB281F542A0A78C3D8436783F4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000200000000000000000000:B81755986C8B60A935F5D9169A2A7655:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000100000000000000000000:DE964C9FF34F5A79FF43C6AB148DC395:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000800000000000000000000000:0F7CE54A338AB05E2C38F1725DA8B127:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000400000000000000000000000:CAD8158D26EED67D4355BB66D0812ADE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000200000000000000000000000:5332616A057A657FD2FD6562AF33EFC9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000100000000000000000000000:308CD48EC851D7C1251174228B943B11:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000080000000000000000000000:29A5D9977C881DB067136B755BB68E54:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000040000000000000000000000:C0F6B4881776765507CF91DB0A32C70F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000020000000000000000000000:47E518209CB5533F9A7EE02C4F07391B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000010000000000000000000000:58D7E0D60E315EEBA97F0DFA2D7307B0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000080000000000000000000000000:C02ED6499331AF8C6CF30A63BB5E89CA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000040000000000000000000000000:B5F166B94EC31A17662E24757FBB3FC5:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000020000000000000000000000000:17D20FBDA96D4AD0D99DAE64DE5F317B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000010000000000000000000000000:320FA060BBB901F66A9E4CFF221E6A4A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000008000000000000000000000000:3A259B7AEE3155C0C4DF7A32EF40FB19:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000004000000000000000000000000:028EFD3B6E686C87B402151F414B13AD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000002000000000000000000000000:D4F61CC61FA1DBD68B8C48541AE77289:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000001000000000000000000000000:DFCCE96C8C244586A3BCF098306C6374:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00008000000000000000000000000000:BD5426FFD3CC9FC735EBAB7C72FD2D9B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00004000000000000000000000000000:EA3C7C9B02AE7297B4BE551C8C551440:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00002000000000000000000000000000:11BB660CF8431F2625AB9EF603975BB7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00001000000000000000000000000000:B666AA7C5BA5209CBCEDE07EB66064D3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000800000000000000000000000000:CAD843E927DDE8F92DBBB33C1B4E87F9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000400000000000000000000000000:ED29F7805804E2E95F664B2E36C20A67:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000200000000000000000000000000:980F61BF6EBDE1A30607A1D51FFFB8D6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000100000000000000000000000000:E47A19E8579807B5C44AC62619372673:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00800000000000000000000000000000:2B451B22A3EBAB1C7A7619551DDF149F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00400000000000000000000000000000:3ABE3CAEDA54E5583269803BE04CBB2C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00200000000000000000000000000000:DF581405DFBDEFACB35AD3BC510FE895:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00100000000000000000000000000000:45B3C3DAC439F884447567B282DE329C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00080000000000000000000000000000:4192DE2B562CDD43EC4358EA730250C3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00040000000000000000000000000000:27E310D8032E16CF970F635C517E7D2E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00020000000000000000000000000000:573CAE2A23968DE1D40036C24F9FEFA4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00010000000000000000000000000000:B4AD06B55E31DE8F1F77C2B7AE8B73FD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -80000000000000000000000000000000:8314675E8AD5C3ECD83D852BCF7F566E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -40000000000000000000000000000000:893BF67B1A845579C8FADC05BFDC0894:\ -0000000000000000000000000000000000000000000000000000000000000000 - -20000000000000000000000000000000:302F8325DEB1E1A0955D6273368A0DC4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -10000000000000000000000000000000:917B2F6A11DDDCEB53FEA01E194A6CC9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -08000000000000000000000000000000:8229E6539268BB39F3218E2903110C4F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -04000000000000000000000000000000:935A7835E2FAF9F7F20CE85662EE281F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -02000000000000000000000000000000:DF5E38BE0362C35E8AF472C6327987DA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -01000000000000000000000000000000:07E5E5AD7097B849BADC2D5D803B7F6A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -1032547698BADCFEEFCDAB8967452301:D5BAA00A4BB9D8A7C981C8DC90D89D92:\ -FFEEDDCCBBAA99887766554433221100 - -145F0B8B663176B95DCAB7E9DCD5CC24:1032547698BADCFEEFCDAB8967452301:\ -FFEEDDCCBBAA99887766554433221100 - -1032547698BADCFEEFCDAB8967452301:DA860842B720802BF404A4C71034879A:\ -8899AABBCCDDEEFFFFEEDDCCBBAA99887766554433221100 - -B2696BD0D98C17953E4239225D27202C:1032547698BADCFEEFCDAB8967452301:\ -8899AABBCCDDEEFFFFEEDDCCBBAA99887766554433221100 - -1032547698BADCFEEFCDAB8967452301:93DF9A3CAFE387BD999EEBE393A17FCA:\ -00112233445566778899AABBCCDDEEFFFFEEDDCCBBAA99887766554433221100 - -# Corrected test vectors, based on NIST's clarification of May 9, 2002 -[Skipjack] -AABBCCDD00112233:00D3127AE2CA8725:11223344556677889900 -CE365D5D21C1A4CB:C00891C551C5E168:9C5F3F996E59C9543249 -CB758E2851482982:6C09A2825D32B67E:21A07C1CED3C2C0C1576 -7B402EA5E4B7A7C3:C6E32EA485F38324:F62D87056348C5D64071 -3AE159B52AE3FD1B:8AD85F68B89DFAD6:0E2B3B9AEEF001392C3C -3828786C48F705D2:9352B87091483003:51BAA0E8AADF4B8B6A60 -E060FCC7F7F16FD9:8C70B2C901339B1F:CE70B79AE70F7AA44778 -8F5FA719DE4B1D24:958816FE7FC5862B:91A8919EC9360CABB973 -0B55FD902BFECC99:CA7F517B383DA760:FB9F7F8B62E4996E49E7 -CA7F517B383DA760:278B665DB00CC924:FB9F7F8B62E4996E49E7 -6527AF09D0B01CB7:628A8AE67A87F464:90DDF1550EC7DCF4CAE5 -628A8AE67A87F464:CD01A638A878E7FE:90DDF1550EC7DCF4CAE5 -E7951155B748D347:EAEB4A1470307BF1:3516DABCD760F2BEE4CD -AD14EBC6D0261D94:8DAE0E5E2CD055A0:C9C5DAF7DFD17D902270 -9B0C81EDA6853253:DC354CB74F2FC2B4:EEEE6892DCD1ED868F56 -C76443A5B0652306:160DF886878D6908:03604B2D0D06A9AA9D68 -37F1C930714AA1CF:39DDEC7C8B84DBD6:6E8494476C89110F166C -1E71CDF5AB39DF1D:AE316B4C32222DC9:DF3A10F722776402DAF8 -9EE6838FCE6C6CDD:FF7F52D9C17728E3:E4EE21889437C10A7682 -111AA47F17CFAABE:1A86B8753F784547:C3C55FCACDD387163C84 -0AC61B6C219FC0C4:727AA5B83616105C:E5F795A933FFD70C87AE -56582400B014F8D3:918F72548E0FFCB4:9163BD738BEA13D9CB5C -9C323238D9C76E35:F801578F6050B793:C70CA4689C59CD745EF6 -6CD57A531CCF9E20:619E091055D423D8:DC934E7C08D7466E10AA -667DE1649DEA2E89:5FD975B231E25909:EA4FC33C0CA289973FA9 -1BC90F76FD901399:AE676788090270E7:9988881616D6CB63B188 -9E9CCADD47C9EBDA:22A3D66BA549CCE7:10DF61754870FFD16CFB -2E8FCDE2EFDD1964:FD42E226CF058AE4:2C005FEFE7C4C01ADC5E -128106BDEC982932:C1F24DB137E5C062:6A49942FA39AC190308E -CC93DA20EE2AAE3A:714D626B8AE5D154:92903F26A46FD43F6EB9 - -[Square] -00000000000000000000000000000000:3C00428F8ABBC0B84F057CC19C26F8CF:\ -00000000000000000000000000000000 -000102030405060708090A0B0C0D0E0F:7C3491D94994E70F0EC2E7A5CCB5A14F:\ -000102030405060708090A0B0C0D0E0F -C76C696289898137077A4A59FAEEEA4D:88C6FF4B92604C6E66656B02DDAF9F40:\ -000102030405060708090A0B0C0D0E0F -21A5DBEE154B8F6D6FF33B98F448E95A:3388801F66E7FCC0BCE522A23A4F0C7F:\ -915F4619BE41B2516355A50110A9CE91 -F7C013AC5B2B8952E5E554ABE9CED2D2:A1C0E9215141343DEC2B556942C92BDE:\ -783348E75AEB0F2FD7B169BB8DC16787 -2F42B3B70369FC929AE068313F343A7A:3FBE6811B998CDF3E50ABDE2F3C075E3:\ -DC49DB1375A5584F6485B413B5F12BAF -65C178B284D197CCD3F111A282F17F29:D7B7209E0879744C782809B6D2E0B1B0:\ -5269F149D41BA0152497574D7F153125 -00000000000000000000000000000000:05F8AAFDEFB4F5F9C751E5B36C8A37D8:\ -80000000000000000000000000000000 -0F1E2D3C4B5A69788796A5B4C3D2E1F0:1660060085C0E241F88462BFFBE67602:\ -00000000000000000000040000000000 -0F1E2D3C4B5A69788796A5B4C3D2E1F0:92BFBBFCD2BBF54FFF06AF097893E9A3:\ -00000000000000000000000000000080 -00000000000000000000000000000000:98CFB10F3ED70BB82CC90597B463A1F6:\ -00000000000000000000000000020000 -00000000000000000000000000000000:A643A0CA5154A7D10B251D562D58EA53:\ -00000000000000000000000000800000 - -[TEA] -0000000000000000:41EA3A0A94BAA940:00000000000000000000000000000000 -7C944D08DEF34C0C:195C0E8F49761539:271AD15192C4D1204A4A2561E3DB6FF7 -B9682750BB15CAAD:2B5F318FB66806B9:F04EBF798C193F199C1F532AF383555B -9706769A18A2D03D:8E17EEB5008DC0CB:200C0CE59717D5D9AF6813CD207FEE73 -EDB76C54847DA59E:DFA6C29BEB40F9AF:2828D51F98AE0B33F4DE2B7FBD18A529 -178A49BAFBA53F23:C3BBCE6715D90CE6:61AABA6BE48B0D0D14FE5D27FAB852A4 -DF4CDB61A5F38536:B4E6359C9D9458AA:2080E2409BA01C8532FC84403EE8C06A -7C944D08DEF34C0C:195C0E8F49761539:271AD15192C4D1204A4A2561E3DB6FF7 -F4C76C1D47FE568F:551CA67C7756FF56:C1E297C0C761777D8A76FFF02D22B859 -CAB16583E15D0074:DE472175D55372C9:23C807A2EF0A551F858FD52D125A47D8 -97B05C60774164AD:BC4BD30CB50DA39B:9FA5D4D8CBDFCECD559E3CE88BF78EE1 -7017A263985B735C:E47FDF06A51D8C24:24F4E91083139099D663647A7FFAC321 -15475A90DF04CD29:4DF54282EAAFA235:7CF8626DE76D8462218ED5C9DC8ACC26 -87CA0AACCF146CC8:F7360F57CFCC09AC:3C6AD7DF17332A3E1E3DE06007387357 -9268AF048ECBAE67:E98E428A9D1FEE9C:24237A762D8A89383A2949F5A0F5EC08 -AF0062CD77A84EBD:44CD624B87CBEE77:209A2833A39472D9720380FFB2F74761 -F922CA875B991A31:1E92C0C51185F7C7:22EBE7A30E8855B3B453A6E926D4F187 -B4ECC305C3DBD8E5:063D8F75A7A77501:1B5E23EBD915C1FEE59F57DD91AF7347 -A4C2F6DC597D13EA:BF8FFEC7550A496B:6C21D105515290DA29339F142685C135 -3AF7F1AE0F58AB1D:BBA581D07E51D8D6:01F728A7433A47B13DE34FCC08958449 -791D8DA8CBB0BC94:7D9A4F0363B6085F:9A2D4C50337D3EC337673782FD385601 -ABCDEF0198765432:58C7BA625ED42820:112233445566778899AABBCCDDEEFF01 -AAAAAAAAAAAAAAAA:423251D460AEBE8E:BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB -6385ECC14C50C91F:D3A465910B0ECF46:88AD993684E3FE4C4D5DD8F1C0964D32 -99532D57CC7FC724:A846FE0F9A698E32:69F9181A726912C2DFD815081209F9F6 -A874F573DD7A8761:5055A546D119BFA7:79846B4ED899433C452EDED9D6925C7A -CD58533F9F18C3F3:F5E649326A32F7BD:B0BB57B0E243DC91143DA8F235DCF9DB -65B4628A8A4ACC33:E2FAC5AB9B301983:6CDF16B8E08604C93A4BC86E269BA2EF -21244B2AA3071823:14F62A42C4BDA3E6:2203D8EFC29D3421981E0C2FAF90EA8C -C6BBAD2319111D81:F4068832803914F7:86B435D9BF689FD450352308EDDA200A -38CD92C3E6882185:A3C3CE70D4A097E8:279243E8F5759FD3D29EF824D65B163B -56D1B5CB68ADBD3F:4E57696CAC39676C:95ADBC7D2F67A15C395605250AC1275F -1936713432D87C16:3D3E59CA7EDED044:4E760AF9B46E2C9EF75B7F5721EAFD60 -A9AF22BFEA5639F1:D478E142344FCFAC:2C98241CD08DF0B269C8669E55F61227 -8DEC08977A7F6D02:23F4A36A9D475299:B28F6B02B950BC924B03C39C672A8216 -8535D9E669C2A7B8:30284672AF8877F1:F7A7B83FC8DF8868AB753F435B6E46DE -03682AB977DDDCD9:9F678A05F82E9326:1BC9B0A578D89DAE5A47F5704640CA4A -3A1A041F2F1B0FC7:A40CBAE926F0F13B:15C140E81E98AE10443AA43C89E5D52C - -[Twofish] -00000000000000000000000000000000:9F589F5CF6122C32B6BFEC2F2AE8C35A:\ -00000000000000000000000000000000 - -9F589F5CF6122C32B6BFEC2F2AE8C35A:D491DB16E7B1C39E86CB086B789F5419:\ -00000000000000000000000000000000 - -D491DB16E7B1C39E86CB086B789F5419:019F9809DE1711858FAAC3A3BA20FBC3:\ -9F589F5CF6122C32B6BFEC2F2AE8C35A - -019F9809DE1711858FAAC3A3BA20FBC3:6363977DE839486297E661C6C9D668EB:\ -D491DB16E7B1C39E86CB086B789F5419 - -6363977DE839486297E661C6C9D668EB:816D5BD0FAE35342BF2A7412C246F752:\ -019F9809DE1711858FAAC3A3BA20FBC3 - -816D5BD0FAE35342BF2A7412C246F752:5449ECA008FF5921155F598AF4CED4D0:\ -6363977DE839486297E661C6C9D668EB - -5449ECA008FF5921155F598AF4CED4D0:6600522E97AEB3094ED5F92AFCBCDD10:\ -816D5BD0FAE35342BF2A7412C246F752 - -6600522E97AEB3094ED5F92AFCBCDD10:34C8A5FB2D3D08A170D120AC6D26DBFA:\ -5449ECA008FF5921155F598AF4CED4D0 - -34C8A5FB2D3D08A170D120AC6D26DBFA:28530B358C1B42EF277DE6D4407FC591:\ -6600522E97AEB3094ED5F92AFCBCDD10 - -28530B358C1B42EF277DE6D4407FC591:8A8AB983310ED78C8C0ECDE030B8DCA4:\ -34C8A5FB2D3D08A170D120AC6D26DBFA - -8A8AB983310ED78C8C0ECDE030B8DCA4:48C758A6DFC1DD8B259FA165E1CE2B3C:\ -28530B358C1B42EF277DE6D4407FC591 - -48C758A6DFC1DD8B259FA165E1CE2B3C:CE73C65C101680BBC251C5C16ABCF214:\ -8A8AB983310ED78C8C0ECDE030B8DCA4 - -CE73C65C101680BBC251C5C16ABCF214:C7ABD74AA060F78B244E24C71342BA89:\ -48C758A6DFC1DD8B259FA165E1CE2B3C - -C7ABD74AA060F78B244E24C71342BA89:D0F8B3B6409EBCB666D29C916565ABFC:\ -CE73C65C101680BBC251C5C16ABCF214 - -D0F8B3B6409EBCB666D29C916565ABFC:DD42662908070054544FE09DA4263130:\ -C7ABD74AA060F78B244E24C71342BA89 - -DD42662908070054544FE09DA4263130:7007BACB42F7BF989CF30F78BC50EDCA:\ -D0F8B3B6409EBCB666D29C916565ABFC - -7007BACB42F7BF989CF30F78BC50EDCA:57B9A18EE97D90F435A16F69F0AC6F16:\ -DD42662908070054544FE09DA4263130 - -57B9A18EE97D90F435A16F69F0AC6F16:06181F0D53267ABD8F3BB28455B198AD:\ -7007BACB42F7BF989CF30F78BC50EDCA - -06181F0D53267ABD8F3BB28455B198AD:81A12D8449E9040BAAE7196338D8C8F2:\ -57B9A18EE97D90F435A16F69F0AC6F16 - -81A12D8449E9040BAAE7196338D8C8F2:BE422651C56F2622DA0201815A95A820:\ -06181F0D53267ABD8F3BB28455B198AD - -BE422651C56F2622DA0201815A95A820:113B19F2D778473990480CEE4DA238D1:\ -81A12D8449E9040BAAE7196338D8C8F2 - -113B19F2D778473990480CEE4DA238D1:E6942E9A86E544CF3E3364F20BE011DF:\ -BE422651C56F2622DA0201815A95A820 - -E6942E9A86E544CF3E3364F20BE011DF:87CDC6AA487BFD0EA70188257D9B3859:\ -113B19F2D778473990480CEE4DA238D1 - -87CDC6AA487BFD0EA70188257D9B3859:D5E2701253DD75A11A4CFB243714BD14:\ -E6942E9A86E544CF3E3364F20BE011DF - -D5E2701253DD75A11A4CFB243714BD14:FD24812EEA107A9E6FAB8EABE0F0F48C:\ -87CDC6AA487BFD0EA70188257D9B3859 - -FD24812EEA107A9E6FAB8EABE0F0F48C:DAFA84E31A297F372C3A807100CD783D:\ -D5E2701253DD75A11A4CFB243714BD14 - -DAFA84E31A297F372C3A807100CD783D:A55ED2D955EC8950FC0CC93B76ACBF91:\ -FD24812EEA107A9E6FAB8EABE0F0F48C - -A55ED2D955EC8950FC0CC93B76ACBF91:2ABEA2A4BF27ABDC6B6F278993264744:\ -DAFA84E31A297F372C3A807100CD783D - -2ABEA2A4BF27ABDC6B6F278993264744:045383E219321D5A4435C0E491E7DE10:\ -A55ED2D955EC8950FC0CC93B76ACBF91 - -045383E219321D5A4435C0E491E7DE10:7460A4CD4F312F32B1C7A94FA004E934:\ -2ABEA2A4BF27ABDC6B6F278993264744 - -7460A4CD4F312F32B1C7A94FA004E934:6BBF9186D32C2C5895649D746566050A:\ -045383E219321D5A4435C0E491E7DE10 - -6BBF9186D32C2C5895649D746566050A:CDBDD19ACF40B8AC0328C80054266068:\ -7460A4CD4F312F32B1C7A94FA004E934 - -CDBDD19ACF40B8AC0328C80054266068:1D2836CAE4223EAB5066867A71B1A1C3:\ -6BBF9186D32C2C5895649D746566050A - -1D2836CAE4223EAB5066867A71B1A1C3:2D7F37121D0D2416D5E2767FF202061B:\ -CDBDD19ACF40B8AC0328C80054266068 - -2D7F37121D0D2416D5E2767FF202061B:D70736D1ABC7427A121CC816CD66D7FF:\ -1D2836CAE4223EAB5066867A71B1A1C3 - -D70736D1ABC7427A121CC816CD66D7FF:AC6CA71CBCBEDCC0EA849FB2E9377865:\ -2D7F37121D0D2416D5E2767FF202061B - -AC6CA71CBCBEDCC0EA849FB2E9377865:307265FF145CBBC7104B3E51C6C1D6B4:\ -D70736D1ABC7427A121CC816CD66D7FF - -307265FF145CBBC7104B3E51C6C1D6B4:934B7DB4B3544854DBCA81C4C5DE4EB1:\ -AC6CA71CBCBEDCC0EA849FB2E9377865 - -934B7DB4B3544854DBCA81C4C5DE4EB1:18759824AD9823D5961F84377D7EAEBF:\ -307265FF145CBBC7104B3E51C6C1D6B4 - -18759824AD9823D5961F84377D7EAEBF:DEDDAC6029B01574D9BABB099DC6CA6C:\ -934B7DB4B3544854DBCA81C4C5DE4EB1 - -DEDDAC6029B01574D9BABB099DC6CA6C:5EA82EEA2244DED42CCA2F835D5615DF:\ -18759824AD9823D5961F84377D7EAEBF - -5EA82EEA2244DED42CCA2F835D5615DF:1E3853F7FFA57091771DD8CDEE9414DE:\ -DEDDAC6029B01574D9BABB099DC6CA6C - -1E3853F7FFA57091771DD8CDEE9414DE:5C2EBBF75D31F30B5EA26EAC8782D8D1:\ -5EA82EEA2244DED42CCA2F835D5615DF - -5C2EBBF75D31F30B5EA26EAC8782D8D1:3A3CFA1F13A136C94D76E5FA4A1109FF:\ -1E3853F7FFA57091771DD8CDEE9414DE - -3A3CFA1F13A136C94D76E5FA4A1109FF:91630CF96003B8032E695797E313A553:\ -5C2EBBF75D31F30B5EA26EAC8782D8D1 - -91630CF96003B8032E695797E313A553:137A24CA47CD12BE818DF4D2F4355960:\ -3A3CFA1F13A136C94D76E5FA4A1109FF - -137A24CA47CD12BE818DF4D2F4355960:BCA724A54533C6987E14AA827952F921:\ -91630CF96003B8032E695797E313A553 - -BCA724A54533C6987E14AA827952F921:6B459286F3FFD28D49F15B1581B08E42:\ -137A24CA47CD12BE818DF4D2F4355960 - -6B459286F3FFD28D49F15B1581B08E42:5D9D4EEFFA9151575524F115815A12E0:\ -BCA724A54533C6987E14AA827952F921 - -00000000000000000000000000000000:EFA71F788965BD4453F860178FC19101:\ -000000000000000000000000000000000000000000000000 - -EFA71F788965BD4453F860178FC19101:88B2B2706B105E36B446BB6D731A1E88:\ -000000000000000000000000000000000000000000000000 - -88B2B2706B105E36B446BB6D731A1E88:39DA69D6BA4997D585B6DC073CA341B2:\ -EFA71F788965BD4453F860178FC191010000000000000000 - -39DA69D6BA4997D585B6DC073CA341B2:182B02D81497EA45F9DAACDC29193A65:\ -88B2B2706B105E36B446BB6D731A1E88EFA71F788965BD44 - -182B02D81497EA45F9DAACDC29193A65:7AFF7A70CA2FF28AC31DD8AE5DAAAB63:\ -39DA69D6BA4997D585B6DC073CA341B288B2B2706B105E36 - -7AFF7A70CA2FF28AC31DD8AE5DAAAB63:D1079B789F666649B6BD7D1629F1F77E:\ -182B02D81497EA45F9DAACDC29193A6539DA69D6BA4997D5 - -D1079B789F666649B6BD7D1629F1F77E:3AF6F7CE5BD35EF18BEC6FA787AB506B:\ -7AFF7A70CA2FF28AC31DD8AE5DAAAB63182B02D81497EA45 - -3AF6F7CE5BD35EF18BEC6FA787AB506B:AE8109BFDA85C1F2C5038B34ED691BFF:\ -D1079B789F666649B6BD7D1629F1F77E7AFF7A70CA2FF28A - -AE8109BFDA85C1F2C5038B34ED691BFF:893FD67B98C550073571BD631263FC78:\ -3AF6F7CE5BD35EF18BEC6FA787AB506BD1079B789F666649 - -893FD67B98C550073571BD631263FC78:16434FC9C8841A63D58700B5578E8F67:\ -AE8109BFDA85C1F2C5038B34ED691BFF3AF6F7CE5BD35EF1 - -16434FC9C8841A63D58700B5578E8F67:9594CF62D48ACD347A68A3161F0F3EE7:\ -893FD67B98C550073571BD631263FC78AE8109BFDA85C1F2 - -9594CF62D48ACD347A68A3161F0F3EE7:B23E8C2C731C514017D1F2B88D77D208:\ -16434FC9C8841A63D58700B5578E8F67893FD67B98C55007 - -B23E8C2C731C514017D1F2B88D77D208:93CC592BC96D95FA8AC32DA894F6AB89:\ -9594CF62D48ACD347A68A3161F0F3EE716434FC9C8841A63 - -93CC592BC96D95FA8AC32DA894F6AB89:26516E6BD4AEF86AF4F4AD58FA41A14C:\ -B23E8C2C731C514017D1F2B88D77D2089594CF62D48ACD34 - -26516E6BD4AEF86AF4F4AD58FA41A14C:00A8FFFAB8616BE710A6592438FC40BE:\ -93CC592BC96D95FA8AC32DA894F6AB89B23E8C2C731C5140 - -00A8FFFAB8616BE710A6592438FC40BE:A19B811C77482D97C842EC62DB2EDCCE:\ -26516E6BD4AEF86AF4F4AD58FA41A14C93CC592BC96D95FA - -A19B811C77482D97C842EC62DB2EDCCE:D7FF438678D818CAA26A676342F98E8B:\ -00A8FFFAB8616BE710A6592438FC40BE26516E6BD4AEF86A - -D7FF438678D818CAA26A676342F98E8B:84EAFFC0C091582ABB717086E0807A5F:\ -A19B811C77482D97C842EC62DB2EDCCE00A8FFFAB8616BE7 - -84EAFFC0C091582ABB717086E0807A5F:5500AF1C79503FEF1BACF35A81DC2865:\ -D7FF438678D818CAA26A676342F98E8BA19B811C77482D97 - -5500AF1C79503FEF1BACF35A81DC2865:7282B2F3E766C83664930A19D201D7E7:\ -84EAFFC0C091582ABB717086E0807A5FD7FF438678D818CA - -7282B2F3E766C83664930A19D201D7E7:6796085C32FBDD2AB43E81EAC1262743:\ -5500AF1C79503FEF1BACF35A81DC286584EAFFC0C091582A - -6796085C32FBDD2AB43E81EAC1262743:5839F9E148B9FD2B5A52751D4F178FDC:\ -7282B2F3E766C83664930A19D201D7E75500AF1C79503FEF - -5839F9E148B9FD2B5A52751D4F178FDC:A88F34056742E55408A7A9E7B6D4C8C0:\ -6796085C32FBDD2AB43E81EAC12627437282B2F3E766C836 - -A88F34056742E55408A7A9E7B6D4C8C0:9C8C304CB1F937C6E42528459FA8872F:\ -5839F9E148B9FD2B5A52751D4F178FDC6796085C32FBDD2A - -9C8C304CB1F937C6E42528459FA8872F:EA3668C0D96529A7F3BF0F7C2B5C5BE2:\ -A88F34056742E55408A7A9E7B6D4C8C05839F9E148B9FD2B - -EA3668C0D96529A7F3BF0F7C2B5C5BE2:A8FB6EEFCAAF9C4041072D570984CED2:\ -9C8C304CB1F937C6E42528459FA8872FA88F34056742E554 - -A8FB6EEFCAAF9C4041072D570984CED2:ABF4662E5D50F71B15FE3B428AFE3500:\ -EA3668C0D96529A7F3BF0F7C2B5C5BE29C8C304CB1F937C6 - -ABF4662E5D50F71B15FE3B428AFE3500:3B3AED23958DA6E2FA4493BCBE59A806:\ -A8FB6EEFCAAF9C4041072D570984CED2EA3668C0D96529A7 - -3B3AED23958DA6E2FA4493BCBE59A806:CFBF446E33C3DCD4DD5161CA00D4BA8F:\ -ABF4662E5D50F71B15FE3B428AFE3500A8FB6EEFCAAF9C40 - -CFBF446E33C3DCD4DD5161CA00D4BA8F:072ADBFA7EB962BA199AFC720339FF29:\ -3B3AED23958DA6E2FA4493BCBE59A806ABF4662E5D50F71B - -072ADBFA7EB962BA199AFC720339FF29:AAB346D9123A8140AC563EF17E7054C8:\ -CFBF446E33C3DCD4DD5161CA00D4BA8F3B3AED23958DA6E2 - -AAB346D9123A8140AC563EF17E7054C8:3C7DDC5FE6E5888FE61DEDA0C69CD320:\ -072ADBFA7EB962BA199AFC720339FF29CFBF446E33C3DCD4 - -3C7DDC5FE6E5888FE61DEDA0C69CD320:34AA645C7E3532098ADA91BB128ED821:\ -AAB346D9123A8140AC563EF17E7054C8072ADBFA7EB962BA - -34AA645C7E3532098ADA91BB128ED821:7A5D12E315038522DA01EC0834B1322C:\ -3C7DDC5FE6E5888FE61DEDA0C69CD320AAB346D9123A8140 - -7A5D12E315038522DA01EC0834B1322C:86E235A1CB091FF7FE6FBBCA0D73BE58:\ -34AA645C7E3532098ADA91BB128ED8213C7DDC5FE6E5888F - -86E235A1CB091FF7FE6FBBCA0D73BE58:F3CE81CACE5D6BA9C558111DCDB22F5D:\ -7A5D12E315038522DA01EC0834B1322C34AA645C7E353209 - -F3CE81CACE5D6BA9C558111DCDB22F5D:FB30A5D67D5F5BE4048C77E2AD3BC9D1:\ -86E235A1CB091FF7FE6FBBCA0D73BE587A5D12E315038522 - -FB30A5D67D5F5BE4048C77E2AD3BC9D1:31E69DD3D2D90E81C9EBFAC257E9823D:\ -F3CE81CACE5D6BA9C558111DCDB22F5D86E235A1CB091FF7 - -31E69DD3D2D90E81C9EBFAC257E9823D:87579B3F19A9CDE12BB882FFEAF665AE:\ -FB30A5D67D5F5BE4048C77E2AD3BC9D1F3CE81CACE5D6BA9 - -87579B3F19A9CDE12BB882FFEAF665AE:24A8572AA844FEF25F7670FAE30F1CD2:\ -31E69DD3D2D90E81C9EBFAC257E9823DFB30A5D67D5F5BE4 - -24A8572AA844FEF25F7670FAE30F1CD2:0CFA32E5E33F3B2DAC9F34D25979319A:\ -87579B3F19A9CDE12BB882FFEAF665AE31E69DD3D2D90E81 - -0CFA32E5E33F3B2DAC9F34D25979319A:3C64D7FC881B9B82ABA21FF122B98F54:\ -24A8572AA844FEF25F7670FAE30F1CD287579B3F19A9CDE1 - -3C64D7FC881B9B82ABA21FF122B98F54:A794CAEE6756281B7A64894E4E4F70A8:\ -0CFA32E5E33F3B2DAC9F34D25979319A24A8572AA844FEF2 - -A794CAEE6756281B7A64894E4E4F70A8:89A9BF6B893BC5E6FEF4C77F3D0F29A6:\ -3C64D7FC881B9B82ABA21FF122B98F540CFA32E5E33F3B2D - -89A9BF6B893BC5E6FEF4C77F3D0F29A6:5DBE44032769DF543EAD7AD13A5F3310:\ -A794CAEE6756281B7A64894E4E4F70A83C64D7FC881B9B82 - -5DBE44032769DF543EAD7AD13A5F3310:DEA4F3DA75EC7A8EAC3861A9912402CD:\ -89A9BF6B893BC5E6FEF4C77F3D0F29A6A794CAEE6756281B - -DEA4F3DA75EC7A8EAC3861A9912402CD:FB66522C332FCC4C042ABE32FA9E902F:\ -5DBE44032769DF543EAD7AD13A5F331089A9BF6B893BC5E6 - -FB66522C332FCC4C042ABE32FA9E902F:F0AB73301125FA21EF70BE5385FB76B6:\ -DEA4F3DA75EC7A8EAC3861A9912402CD5DBE44032769DF54 - -F0AB73301125FA21EF70BE5385FB76B6:E75449212BEEF9F4A390BD860A640941:\ -FB66522C332FCC4C042ABE32FA9E902FDEA4F3DA75EC7A8E - -00000000000000000000000000000000:57FF739D4DC92C1BD7FC01700CC8216F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -57FF739D4DC92C1BD7FC01700CC8216F:D43BB7556EA32E46F2A282B7D45B4E0D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -D43BB7556EA32E46F2A282B7D45B4E0D:90AFE91BB288544F2C32DC239B2635E6:\ -57FF739D4DC92C1BD7FC01700CC8216F00000000000000000000000000000000 - -90AFE91BB288544F2C32DC239B2635E6:6CB4561C40BF0A9705931CB6D408E7FA:\ -D43BB7556EA32E46F2A282B7D45B4E0D57FF739D4DC92C1BD7FC01700CC8216F - -6CB4561C40BF0A9705931CB6D408E7FA:3059D6D61753B958D92F4781C8640E58:\ -90AFE91BB288544F2C32DC239B2635E6D43BB7556EA32E46F2A282B7D45B4E0D - -3059D6D61753B958D92F4781C8640E58:E69465770505D7F80EF68CA38AB3A3D6:\ -6CB4561C40BF0A9705931CB6D408E7FA90AFE91BB288544F2C32DC239B2635E6 - -E69465770505D7F80EF68CA38AB3A3D6:5AB67A5F8539A4A5FD9F0373BA463466:\ -3059D6D61753B958D92F4781C8640E586CB4561C40BF0A9705931CB6D408E7FA - -5AB67A5F8539A4A5FD9F0373BA463466:DC096BCD99FC72F79936D4C748E75AF7:\ -E69465770505D7F80EF68CA38AB3A3D63059D6D61753B958D92F4781C8640E58 - -DC096BCD99FC72F79936D4C748E75AF7:C5A3E7CEE0F1B7260528A68FB4EA05F2:\ -5AB67A5F8539A4A5FD9F0373BA463466E69465770505D7F80EF68CA38AB3A3D6 - -C5A3E7CEE0F1B7260528A68FB4EA05F2:43D5CEC327B24AB90AD34A79D0469151:\ -DC096BCD99FC72F79936D4C748E75AF75AB67A5F8539A4A5FD9F0373BA463466 - -43D5CEC327B24AB90AD34A79D0469151:05BA7BE9BE5274FBEB4AC5FD5FAAFA10:\ -C5A3E7CEE0F1B7260528A68FB4EA05F2DC096BCD99FC72F79936D4C748E75AF7 - -05BA7BE9BE5274FBEB4AC5FD5FAAFA10:89D513B989E3CECE4D2E3E4C15D4E01C:\ -43D5CEC327B24AB90AD34A79D0469151C5A3E7CEE0F1B7260528A68FB4EA05F2 - -89D513B989E3CECE4D2E3E4C15D4E01C:E56E462AE2E66F800CE2224C4CAFACBE:\ -05BA7BE9BE5274FBEB4AC5FD5FAAFA1043D5CEC327B24AB90AD34A79D0469151 - -E56E462AE2E66F800CE2224C4CAFACBE:F5DBEE5414D79CA46BE17346FDC72BF5:\ -89D513B989E3CECE4D2E3E4C15D4E01C05BA7BE9BE5274FBEB4AC5FD5FAAFA10 - -F5DBEE5414D79CA46BE17346FDC72BF5:C780FC28815E667B3D224ECF1F4A7D65:\ -E56E462AE2E66F800CE2224C4CAFACBE89D513B989E3CECE4D2E3E4C15D4E01C - -C780FC28815E667B3D224ECF1F4A7D65:2EF17A0D75440ECEC9AF18D29ABA3CDA:\ -F5DBEE5414D79CA46BE17346FDC72BF5E56E462AE2E66F800CE2224C4CAFACBE - -2EF17A0D75440ECEC9AF18D29ABA3CDA:D653FDFF96BCF89A929F6377AB41967A:\ -C780FC28815E667B3D224ECF1F4A7D65F5DBEE5414D79CA46BE17346FDC72BF5 - -D653FDFF96BCF89A929F6377AB41967A:36BBAD8838380C8793A7AEA0A11D04D2:\ -2EF17A0D75440ECEC9AF18D29ABA3CDAC780FC28815E667B3D224ECF1F4A7D65 - -36BBAD8838380C8793A7AEA0A11D04D2:034EFECFC0EFC00D82C3345A8708AE78:\ -D653FDFF96BCF89A929F6377AB41967A2EF17A0D75440ECEC9AF18D29ABA3CDA - -034EFECFC0EFC00D82C3345A8708AE78:EA38887307337A2934A9EB802F6CFDDD:\ -36BBAD8838380C8793A7AEA0A11D04D2D653FDFF96BCF89A929F6377AB41967A - -EA38887307337A2934A9EB802F6CFDDD:7C279D47775AB4C26442E8A117943DD8:\ -034EFECFC0EFC00D82C3345A8708AE7836BBAD8838380C8793A7AEA0A11D04D2 - -7C279D47775AB4C26442E8A117943DD8:E3CF581056EBC1169CF451E930308726:\ -EA38887307337A2934A9EB802F6CFDDD034EFECFC0EFC00D82C3345A8708AE78 - -E3CF581056EBC1169CF451E930308726:65527B29D489C8CDDC62E5E7FFC4E924:\ -7C279D47775AB4C26442E8A117943DD8EA38887307337A2934A9EB802F6CFDDD - -65527B29D489C8CDDC62E5E7FFC4E924:3B491F930230A0170819CACB48F9030C:\ -E3CF581056EBC1169CF451E9303087267C279D47775AB4C26442E8A117943DD8 - -3B491F930230A0170819CACB48F9030C:A7C8193F35AF63B51D7F9DEDCEC85866:\ -65527B29D489C8CDDC62E5E7FFC4E924E3CF581056EBC1169CF451E930308726 - -A7C8193F35AF63B51D7F9DEDCEC85866:009A48F9A1C27F9AA5F9BD909C848B60:\ -3B491F930230A0170819CACB48F9030C65527B29D489C8CDDC62E5E7FFC4E924 - -009A48F9A1C27F9AA5F9BD909C848B60:3B507E987B3F827A093B26C85CDFF6C6:\ -A7C8193F35AF63B51D7F9DEDCEC858663B491F930230A0170819CACB48F9030C - -3B507E987B3F827A093B26C85CDFF6C6:EAFB3BA6C78E37214FE908669BC24F6F:\ -009A48F9A1C27F9AA5F9BD909C848B60A7C8193F35AF63B51D7F9DEDCEC85866 - -EAFB3BA6C78E37214FE908669BC24F6F:2B09F10D7F2B62A4D0DAFFB9F882B980:\ -3B507E987B3F827A093B26C85CDFF6C6009A48F9A1C27F9AA5F9BD909C848B60 - -2B09F10D7F2B62A4D0DAFFB9F882B980:E6B9FE907009B2DC649412DD630AE576:\ -EAFB3BA6C78E37214FE908669BC24F6F3B507E987B3F827A093B26C85CDFF6C6 - -E6B9FE907009B2DC649412DD630AE576:F2E4DC89724CD58F85847BD09ED4500F:\ -2B09F10D7F2B62A4D0DAFFB9F882B980EAFB3BA6C78E37214FE908669BC24F6F - -F2E4DC89724CD58F85847BD09ED4500F:DC650444FCEBC2BD6E450EF4605FCABE:\ -E6B9FE907009B2DC649412DD630AE5762B09F10D7F2B62A4D0DAFFB9F882B980 - -DC650444FCEBC2BD6E450EF4605FCABE:B7CFB31755FDA2AB0A67FBA09901A73E:\ -F2E4DC89724CD58F85847BD09ED4500FE6B9FE907009B2DC649412DD630AE576 - -B7CFB31755FDA2AB0A67FBA09901A73E:9C7E7578F3D2923DCDABFED0A5EF86EE:\ -DC650444FCEBC2BD6E450EF4605FCABEF2E4DC89724CD58F85847BD09ED4500F - -9C7E7578F3D2923DCDABFED0A5EF86EE:9465E9AE176483BD398C8033AA136F68:\ -B7CFB31755FDA2AB0A67FBA09901A73EDC650444FCEBC2BD6E450EF4605FCABE - -9465E9AE176483BD398C8033AA136F68:8551279DE9991805FCFC1937C52AE9D4:\ -9C7E7578F3D2923DCDABFED0A5EF86EEB7CFB31755FDA2AB0A67FBA09901A73E - -8551279DE9991805FCFC1937C52AE9D4:A830EB8DA52ECFF7F93B7627322CF9D7:\ -9465E9AE176483BD398C8033AA136F689C7E7578F3D2923DCDABFED0A5EF86EE - -A830EB8DA52ECFF7F93B7627322CF9D7:EC89F0E5155425D4B92BD4B200C1A6E0:\ -8551279DE9991805FCFC1937C52AE9D49465E9AE176483BD398C8033AA136F68 - -EC89F0E5155425D4B92BD4B200C1A6E0:8AF76A782061D38360C6C3CDDCBE1516:\ -A830EB8DA52ECFF7F93B7627322CF9D78551279DE9991805FCFC1937C52AE9D4 - -8AF76A782061D38360C6C3CDDCBE1516:D4EEAA6A069659D5D88590DE75515631:\ -EC89F0E5155425D4B92BD4B200C1A6E0A830EB8DA52ECFF7F93B7627322CF9D7 - -D4EEAA6A069659D5D88590DE75515631:259C021D37B077197B80FCDB07EA1AF2:\ -8AF76A782061D38360C6C3CDDCBE1516EC89F0E5155425D4B92BD4B200C1A6E0 - -259C021D37B077197B80FCDB07EA1AF2:300CC8B4171F0E9BD75710FAD033C570:\ -D4EEAA6A069659D5D88590DE755156318AF76A782061D38360C6C3CDDCBE1516 - -300CC8B4171F0E9BD75710FAD033C570:5CFA5BD213A74F02E65390A4C14A1DF6:\ -259C021D37B077197B80FCDB07EA1AF2D4EEAA6A069659D5D88590DE75515631 - -5CFA5BD213A74F02E65390A4C14A1DF6:A443EA1B2C5747CE7EC5F21D4FE0C147:\ -300CC8B4171F0E9BD75710FAD033C570259C021D37B077197B80FCDB07EA1AF2 - -A443EA1B2C5747CE7EC5F21D4FE0C147:D2DED73E59319A8138E0331F0EA149EA:\ -5CFA5BD213A74F02E65390A4C14A1DF6300CC8B4171F0E9BD75710FAD033C570 - -D2DED73E59319A8138E0331F0EA149EA:2E2158BC3E5FC714C1EEECA0EA696D48:\ -A443EA1B2C5747CE7EC5F21D4FE0C1475CFA5BD213A74F02E65390A4C14A1DF6 - -2E2158BC3E5FC714C1EEECA0EA696D48:248A7F3528B168ACFDD1386E3F51E30C:\ -D2DED73E59319A8138E0331F0EA149EAA443EA1B2C5747CE7EC5F21D4FE0C147 - -248A7F3528B168ACFDD1386E3F51E30C:431058F4DBC7F734DA4F02F04CC4F459:\ -2E2158BC3E5FC714C1EEECA0EA696D48D2DED73E59319A8138E0331F0EA149EA - -431058F4DBC7F734DA4F02F04CC4F459:37FE26FF1CF66175F5DDF4C33B97A205:\ -248A7F3528B168ACFDD1386E3F51E30C2E2158BC3E5FC714C1EEECA0EA696D48 - -00000000000000000000000000000000:6BFD32804A1C3206C4BF85EB11241F89:\ -80000000000000000000000000000000 - -00000000000000000000000000000000:F097147AE851845984DC97D5FAE40CF9:\ -40000000000000000000000000000000 - -00000000000000000000000000000000:6117F1977C5ABD9647C56544D9458444:\ -20000000000000000000000000000000 - -00000000000000000000000000000000:75A6240AAE357DEDDF99936705618284:\ -10000000000000000000000000000000 - -00000000000000000000000000000000:F026BFDF6BFBC7E50C46C533BD271C24:\ -08000000000000000000000000000000 - -00000000000000000000000000000000:F3023228D77045D37D1B9CD77437395A:\ -04000000000000000000000000000000 - -00000000000000000000000000000000:F67467BF6B490209809714D50679B2D7:\ -02000000000000000000000000000000 - -00000000000000000000000000000000:2C8431B922C5F560095E9867B1A41256:\ -01000000000000000000000000000000 - -00000000000000000000000000000000:1FB76E90D207BA4C770F67284D6B1359:\ -00800000000000000000000000000000 - -00000000000000000000000000000000:A70AECE1D41DCA9F24BCE8393F6D54BF:\ -00400000000000000000000000000000 - -00000000000000000000000000000000:D4580FC395979689221C57A23598358B:\ -00200000000000000000000000000000 - -00000000000000000000000000000000:35CA62BA8126F015FABFEF8F9119AE6B:\ -00100000000000000000000000000000 - -00000000000000000000000000000000:C81FACB16E087EEFA823CF34E02FE482:\ -00080000000000000000000000000000 - -00000000000000000000000000000000:07400F04E4CC6625AE3FB41ECC863F2A:\ -00040000000000000000000000000000 - -00000000000000000000000000000000:A0941008068D401DEAB6400C86CA53AD:\ -00020000000000000000000000000000 - -00000000000000000000000000000000:2B63BEF50BA87A58BFFCA4CF44C22927:\ -00010000000000000000000000000000 - -00000000000000000000000000000000:FD49069AE9F1874A264A7BFD894ED886:\ -00008000000000000000000000000000 - -00000000000000000000000000000000:232755C754075BB5CC5B85ABFEA38779:\ -00004000000000000000000000000000 - -00000000000000000000000000000000:41358B9C76E959037E13F7E5050E0B42:\ -00002000000000000000000000000000 - -00000000000000000000000000000000:8978CD09C054BB1ABDFFBED09D1CF7EC:\ -00001000000000000000000000000000 - -00000000000000000000000000000000:9F2A7CE5FD51FD5D7E2D42407EEF8F6A:\ -00000800000000000000000000000000 - -00000000000000000000000000000000:6AA2F0627F312A77C68D1F15DF0E1379:\ -00000400000000000000000000000000 - -00000000000000000000000000000000:BCD56984E45DBF087BAC8757FC4EFF5A:\ -00000200000000000000000000000000 - -00000000000000000000000000000000:9D3C6C8ED48C9DE7A64CD05D8BF41D54:\ -00000100000000000000000000000000 - -00000000000000000000000000000000:FCD577A23F455ACDE3732C262EBD2D86:\ -00000080000000000000000000000000 - -00000000000000000000000000000000:022E2430D81858888C9E575411D4064F:\ -00000040000000000000000000000000 - -00000000000000000000000000000000:5742CA8CF1193491C1FBC148627D856E:\ -00000020000000000000000000000000 - -00000000000000000000000000000000:88BD93610040DFE248C2FE05EF9F4FE0:\ -00000010000000000000000000000000 - -00000000000000000000000000000000:29A9D577BB3824209FEA64128247CE6C:\ -00000008000000000000000000000000 - -00000000000000000000000000000000:AC4CDB534844EA86000B845FCDAD605F:\ -00000004000000000000000000000000 - -00000000000000000000000000000000:AAC6098597D46B8145A60F40D4EC5308:\ -00000002000000000000000000000000 - -00000000000000000000000000000000:3A7DFD0855A5BE0B16CACBD685FACEF5:\ -00000001000000000000000000000000 - -00000000000000000000000000000000:ACEBA627EBA87AD051C3E0CA0DEF6CD7:\ -00000000800000000000000000000000 - -00000000000000000000000000000000:F0A55DCDBC513EFDD603EA455EB9228C:\ -00000000400000000000000000000000 - -00000000000000000000000000000000:2176DEBC78D6B4A6D0FB37AFA6B51081:\ -00000000200000000000000000000000 - -00000000000000000000000000000000:FDB1B57379B85A85392613E8B4597B63:\ -00000000100000000000000000000000 - -00000000000000000000000000000000:58AB1112E0598586E07FC8359DDFC7EC:\ -00000000080000000000000000000000 - -00000000000000000000000000000000:DD6D1D2629F333528CB66869453BC273:\ -00000000040000000000000000000000 - -00000000000000000000000000000000:932218D99553BB2D4BFC69F1EA67CAAE:\ -00000000020000000000000000000000 - -00000000000000000000000000000000:399D066426F7FEF66F8983086DC044D8:\ -00000000010000000000000000000000 - -00000000000000000000000000000000:3E1BC58269B6B8C8C8D00806975F8337:\ -00000000008000000000000000000000 - -00000000000000000000000000000000:D50A1F966058C6D702D1AFCD700DA0E8:\ -00000000004000000000000000000000 - -00000000000000000000000000000000:6E7A6BB3554F12AD1F88C289D621CD0F:\ -00000000002000000000000000000000 - -00000000000000000000000000000000:9ED4EA506A0CBA89B246C14D1B5B96A9:\ -00000000001000000000000000000000 - -00000000000000000000000000000000:C395A92C1A6884857B263F01F43542DB:\ -00000000000800000000000000000000 - -00000000000000000000000000000000:06562AC497C60F802B68B47DB5B86B6A:\ -00000000000400000000000000000000 - -00000000000000000000000000000000:255A726F2106177FEFA7006BDE05D059:\ -00000000000200000000000000000000 - -00000000000000000000000000000000:B8FD6A8227D0565A4C174AD270EC1205:\ -00000000000100000000000000000000 - -00000000000000000000000000000000:C2652FDB48B9DDBFC43B3F7CDD831D6F:\ -00000000000080000000000000000000 - -00000000000000000000000000000000:913EB9205DB2E17A96A23A724EDF4C84:\ -00000000000040000000000000000000 - -00000000000000000000000000000000:9A6694FEB5EA44FF0572124FDB265658:\ -00000000000020000000000000000000 - -00000000000000000000000000000000:E347498DECA6B211C30E21FD0B47A333:\ -00000000000010000000000000000000 - -00000000000000000000000000000000:E70F0D4ED829A81E05D42E511EDE9376:\ -00000000000008000000000000000000 - -00000000000000000000000000000000:140BB7CAD8D6A3553BEF7A3D52347BD8:\ -00000000000004000000000000000000 - -00000000000000000000000000000000:5FA55360F440DCCA20925A3E15B42764:\ -00000000000002000000000000000000 - -00000000000000000000000000000000:6D5B969DFC3EA0A6682CC66488D221DA:\ -00000000000001000000000000000000 - -00000000000000000000000000000000:E2799D5C380B49D2F6997009079D03D3:\ -00000000000000800000000000000000 - -00000000000000000000000000000000:06AFBD8077909E847AF467BB2D47E893:\ -00000000000000400000000000000000 - -00000000000000000000000000000000:46B1EB96EC9EB10897F1562E59287253:\ -00000000000000200000000000000000 - -00000000000000000000000000000000:1793F1D4E1A1606F99C7019C19E85129:\ -00000000000000100000000000000000 - -00000000000000000000000000000000:ED785D0BA19553CE73B69F4D570C3A9D:\ -00000000000000080000000000000000 - -00000000000000000000000000000000:298DF7334670B7391BE203DF7E8890C7:\ -00000000000000040000000000000000 - -00000000000000000000000000000000:150C12DEF6EDC844B0B45361C2B3AECE:\ -00000000000000020000000000000000 - -00000000000000000000000000000000:06FFB5E13438BA8DBD8A3EDADFAC73A1:\ -00000000000000010000000000000000 - -00000000000000000000000000000000:6C5E5719D5F31E929FF9C44F086EFADB:\ -00000000000000008000000000000000 - -00000000000000000000000000000000:4C8D0E13996F4D32CB7984B7BB1B34FB:\ -00000000000000004000000000000000 - -00000000000000000000000000000000:C9BDCFFD4B9F3BBBB33A2D2C51BA83F6:\ -00000000000000002000000000000000 - -00000000000000000000000000000000:929B29DD0D952161FFDA8CB417B166EC:\ -00000000000000001000000000000000 - -00000000000000000000000000000000:87F9DFCB07275916E7A446D3DCE74232:\ -00000000000000000800000000000000 - -00000000000000000000000000000000:6FDFD0BC8F49BE420CD68A894C7CA4E9:\ -00000000000000000400000000000000 - -00000000000000000000000000000000:CDDC09DE42DC2CBCD9287A2072A30D23:\ -00000000000000000200000000000000 - -00000000000000000000000000000000:9B2FF668BA9D77AD1E9F30BA0173EBD4:\ -00000000000000000100000000000000 - -00000000000000000000000000000000:DEF29890D59A511B32A30322D7471E38:\ -00000000000000000080000000000000 - -00000000000000000000000000000000:5094EAEC9F23D0DBFAB8240A42ED5BF1:\ -00000000000000000040000000000000 - -00000000000000000000000000000000:79CB87BC375F58DE8DA780B9BAD3DEA3:\ -00000000000000000020000000000000 - -00000000000000000000000000000000:7139B3D980B85D3B77A3BBDB6CB79756:\ -00000000000000000010000000000000 - -00000000000000000000000000000000:148ED6E8FEC02168377C96956AE18D93:\ -00000000000000000008000000000000 - -00000000000000000000000000000000:0AFED5A710F2BF11C77F152951AE32CB:\ -00000000000000000004000000000000 - -00000000000000000000000000000000:C265AC354817550FAE12A51C2DCD749C:\ -00000000000000000002000000000000 - -00000000000000000000000000000000:A3B089F79D0A07EA0893BB48D508B35B:\ -00000000000000000001000000000000 - -00000000000000000000000000000000:C0A7B6BCE0675A48E95D39A7659CB20A:\ -00000000000000000000800000000000 - -00000000000000000000000000000000:6CE0A0BA02041CB5E6C0A46DE1B71A43:\ -00000000000000000000400000000000 - -00000000000000000000000000000000:E54045C33A386555C5754ADB0A181244:\ -00000000000000000000200000000000 - -00000000000000000000000000000000:BB652196955BB7BE7E8CB8E2E992A750:\ -00000000000000000000100000000000 - -00000000000000000000000000000000:594B2917DE6119B62BE3DDF10A1A47E0:\ -00000000000000000000080000000000 - -00000000000000000000000000000000:E8B4F95053617F6A10120DB196AAC4D1:\ -00000000000000000000040000000000 - -00000000000000000000000000000000:79646B1CC19708973215B9891A2C1019:\ -00000000000000000000020000000000 - -00000000000000000000000000000000:5E7E6175F6B548E5389C1B1C391CBEE2:\ -00000000000000000000010000000000 - -00000000000000000000000000000000:C0860A7B47544872B9DB5C220088DE5C:\ -00000000000000000000008000000000 - -00000000000000000000000000000000:325163F073E5A27EBAF339B1FA53682D:\ -00000000000000000000004000000000 - -00000000000000000000000000000000:1A0C4583CEFF5810F3AB42A471415A1D:\ -00000000000000000000002000000000 - -00000000000000000000000000000000:F8DDF239D19363957C7C8C9B537893FA:\ -00000000000000000000001000000000 - -00000000000000000000000000000000:D3B9999669509564741F236EEF2401F3:\ -00000000000000000000000800000000 - -00000000000000000000000000000000:3376DA406D82B76591B610C6C9FC3F9E:\ -00000000000000000000000400000000 - -00000000000000000000000000000000:B6AD728D2970637642723FF06204EEAD:\ -00000000000000000000000200000000 - -00000000000000000000000000000000:0ADF4A82FFE602BC13002AA8AB24EA71:\ -00000000000000000000000100000000 - -00000000000000000000000000000000:D80D1378E30036D92B4A359F68D0CBFE:\ -00000000000000000000000080000000 - -00000000000000000000000000000000:EDA13B315897290E4ACEB4B513E9749B:\ -00000000000000000000000040000000 - -00000000000000000000000000000000:34589936B79E4F43260DC6CCD1820D6D:\ -00000000000000000000000020000000 - -00000000000000000000000000000000:C7A8FF65CD38D008EC6745897E010122:\ -00000000000000000000000010000000 - -00000000000000000000000000000000:3AFE23D89E79E9F8A54F103ED51EB14D:\ -00000000000000000000000008000000 - -00000000000000000000000000000000:27994D1AA909806C7CC8E4AC4CD5479B:\ -00000000000000000000000004000000 - -00000000000000000000000000000000:610D5528725B34FD70ADC66E83BAE266:\ -00000000000000000000000002000000 - -00000000000000000000000000000000:3A3064DFF6E0B54D864E81FA76270065:\ -00000000000000000000000001000000 - -00000000000000000000000000000000:5E9B5966ED3A2358005C9773F8690AD9:\ -00000000000000000000000000800000 - -00000000000000000000000000000000:713738F580CED6E358D2CDCEDA64F99F:\ -00000000000000000000000000400000 - -00000000000000000000000000000000:EC7FE3578906291B2DCF0AD7FF8B5358:\ -00000000000000000000000000200000 - -00000000000000000000000000000000:0F714C096C244BED865A9E064576FE5D:\ -00000000000000000000000000100000 - -00000000000000000000000000000000:B7C226C60B6F3031A1E2160823A62679:\ -00000000000000000000000000080000 - -00000000000000000000000000000000:5C78C4BC8F15DC964FE9EC75203AD7D8:\ -00000000000000000000000000040000 - -00000000000000000000000000000000:178FB7443FBD17DCF1AF122D4D117239:\ -00000000000000000000000000020000 - -00000000000000000000000000000000:C55C99851BD135155A080A9C4E54B919:\ -00000000000000000000000000010000 - -00000000000000000000000000000000:AD75C80D72EA278B3EDE380DAAB1F708:\ -00000000000000000000000000008000 - -00000000000000000000000000000000:95054D1ECA74F75515AE8C17941D3A54:\ -00000000000000000000000000004000 - -00000000000000000000000000000000:8E0B0D4F95C9C9D65420B4B1869A1D3E:\ -00000000000000000000000000002000 - -00000000000000000000000000000000:7712EA2F0598CC8CFB9A934DEC848B5F:\ -00000000000000000000000000001000 - -00000000000000000000000000000000:9D730E0F7450183C0804D6817CBE058E:\ -00000000000000000000000000000800 - -00000000000000000000000000000000:3FA52E9B242F9AF61322FBB6BA583A01:\ -00000000000000000000000000000400 - -00000000000000000000000000000000:3D47D74F667D60458188922EE8D8A7A0:\ -00000000000000000000000000000200 - -00000000000000000000000000000000:036B4E4E02D84C56AC61007DAC33EC33:\ -00000000000000000000000000000100 - -00000000000000000000000000000000:4E171141E51234DE6E4B236643A6DC85:\ -00000000000000000000000000000080 - -00000000000000000000000000000000:DB720E7B04462829DFA258ED9E7C7F2F:\ -00000000000000000000000000000040 - -00000000000000000000000000000000:8B10E11115FF4336DE57F2EA13AABBFA:\ -00000000000000000000000000000020 - -00000000000000000000000000000000:F0E35BFF226C064E08368AF440298DB9:\ -00000000000000000000000000000010 - -00000000000000000000000000000000:6C4C8811B4DF74F2A7D7F79A6253CEA7:\ -00000000000000000000000000000008 - -00000000000000000000000000000000:7DD12AD3BC7A419F92753D8CC39637F0:\ -00000000000000000000000000000004 - -00000000000000000000000000000000:A465B01EA32B2F4F87C85FD06F9B0A02:\ -00000000000000000000000000000002 - -00000000000000000000000000000000:8DC902DDAE09F52B1A3A77EE89C1441E:\ -00000000000000000000000000000001 - -00000000000000000000000000000000:B5AED133641004F4121B66E7DB8F2FF0:\ -800000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:998110F200555A32C6C123E66CF87DE9:\ -400000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:2DBAEEEC682DCC957C2D51B0990E123A:\ -200000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BAEC0A31F6557D6D13B888A94F63058C:\ -100000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E51ADC9773E785730586E6812A0F0FA5:\ -080000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:97067E60FE010AEEA48C0D3224AD0941:\ -040000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BB73A7C859E6377A5E42EFCD55CD2C5B:\ -020000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:914BFE25D7FDEE49B46FB5C2B60DACA5:\ -010000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:EFEF0047892A043A1D594118477CA513:\ -008000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BE59CF7C4E4B482843E67B4EB65B3038:\ -004000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:35FFC8038CB124B8078EC5C7C7928F14:\ -002000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:086025FC1CC6056367304C51DE871DEA:\ -001000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:950F0B7BDFFC78AE3AFF022F78E1670E:\ -000800000000000000000000000000000000000000000000 - -00000000000000000000000000000000:CADF4568B43C950FB688C6608AAF5FAE:\ -000400000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E2313E3CFCB5E745EBAB983BF2867579:\ -000200000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B4394412F7B4A1A4A22B73C93BAFD85D:\ -000100000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C014C9A992E6366B3BD2EABDF1508187:\ -000080000000000000000000000000000000000000000000 - -00000000000000000000000000000000:4344D702AC78A5808F4AB566D5509B75:\ -000040000000000000000000000000000000000000000000 - -00000000000000000000000000000000:937893DA40E9D7F2ECE9028FAA4DE6A4:\ -000020000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E77874759C6AACB611B715A52A37234A:\ -000010000000000000000000000000000000000000000000 - -00000000000000000000000000000000:841FC7FC0EF6CE08CFC6056B3C557F23:\ -000008000000000000000000000000000000000000000000 - -00000000000000000000000000000000:6AC04A6988F1CE601E4C48241D42C1CF:\ -000004000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5254F42B5DD207461693C278B6ABC855:\ -000002000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F58B1AE230B417541649CB035FB5231C:\ -000001000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5F015060D28C6CCB2E5FDCB5AFDCF309:\ -000000800000000000000000000000000000000000000000 - -00000000000000000000000000000000:B0DBAA257FEFFE48A688FE247D0460B7:\ -000000400000000000000000000000000000000000000000 - -00000000000000000000000000000000:1235DF200338F96E39E881484B6B11EE:\ -000000200000000000000000000000000000000000000000 - -00000000000000000000000000000000:671D87102E35609B32F40A91A7E29E04:\ -000000100000000000000000000000000000000000000000 - -00000000000000000000000000000000:F01FB3FA3E84DEA6057F3D88CD651876:\ -000000080000000000000000000000000000000000000000 - -00000000000000000000000000000000:B96C1E40D0D407ED90D11892503A296F:\ -000000040000000000000000000000000000000000000000 - -00000000000000000000000000000000:2E27350191DE6C2E9DCC51022A3C96CB:\ -000000020000000000000000000000000000000000000000 - -00000000000000000000000000000000:BDD6CFE5D00E7F8D698143E653A0163B:\ -000000010000000000000000000000000000000000000000 - -00000000000000000000000000000000:FEDABEF20F51910E57CF5ECEF878A8E1:\ -000000008000000000000000000000000000000000000000 - -00000000000000000000000000000000:EEBF9FE247A78C6FF2A91428C54D70DA:\ -000000004000000000000000000000000000000000000000 - -00000000000000000000000000000000:41714E55E90E0E154802FBBFC0BF58C5:\ -000000002000000000000000000000000000000000000000 - -00000000000000000000000000000000:69480F26BC5DFF8F6D8A0F10E0959BF1:\ -000000001000000000000000000000000000000000000000 - -00000000000000000000000000000000:A39E4BE5A7E13BA3C48CFD98A52CFA70:\ -000000000800000000000000000000000000000000000000 - -00000000000000000000000000000000:95809A16888FB49F5053375A6533CD58:\ -000000000400000000000000000000000000000000000000 - -00000000000000000000000000000000:5F0DEF37FB14F956BB31703F1FC968EB:\ -000000000200000000000000000000000000000000000000 - -00000000000000000000000000000000:CF0A28C9598D7BBCA6992238B03EF4EB:\ -000000000100000000000000000000000000000000000000 - -00000000000000000000000000000000:7FF241BA32E6878542978957F137856F:\ -000000000080000000000000000000000000000000000000 - -00000000000000000000000000000000:8D489E0496B54F91A0254E4103804145:\ -000000000040000000000000000000000000000000000000 - -00000000000000000000000000000000:9925949BE93F4A0BF4114CCA2E05B566:\ -000000000020000000000000000000000000000000000000 - -00000000000000000000000000000000:6ED9A5F014FAFAE3D05C4AE027066873:\ -000000000010000000000000000000000000000000000000 - -00000000000000000000000000000000:958453307A371EE2D3DA8DD327D9B51B:\ -000000000008000000000000000000000000000000000000 - -00000000000000000000000000000000:1EE0680BF9A798A1C63636EA917B17B5:\ -000000000004000000000000000000000000000000000000 - -00000000000000000000000000000000:C0CEFB2475B21AA8937E3048604D9928:\ -000000000002000000000000000000000000000000000000 - -00000000000000000000000000000000:9034DDEFF43C9CC82FADE8DE0A2476BB:\ -000000000001000000000000000000000000000000000000 - -00000000000000000000000000000000:09D32779D0C8D02E0670F377187756FC:\ -000000000000800000000000000000000000000000000000 - -00000000000000000000000000000000:6557BDB19F03E62D823C0613BEA0FAFB:\ -000000000000400000000000000000000000000000000000 - -00000000000000000000000000000000:83505664DED694967F2D9E7853BC4B43:\ -000000000000200000000000000000000000000000000000 - -00000000000000000000000000000000:0BBABE3B7F381C3B3D8A9D846D8CCEAC:\ -000000000000100000000000000000000000000000000000 - -00000000000000000000000000000000:E3AA0A67CDF79DBAB013103E39E8C822:\ -000000000000080000000000000000000000000000000000 - -00000000000000000000000000000000:AF3D0C9B673C322355480E8681237D13:\ -000000000000040000000000000000000000000000000000 - -00000000000000000000000000000000:60D325226EC8DFB9E08DFADB479649A0:\ -000000000000020000000000000000000000000000000000 - -00000000000000000000000000000000:845B92A3C56880E8007B452B57B73B75:\ -000000000000010000000000000000000000000000000000 - -00000000000000000000000000000000:76C59CD9185C518D65EC641EB73C6387:\ -000000000000008000000000000000000000000000000000 - -00000000000000000000000000000000:735567D0B8A52203492220804F3D62E6:\ -000000000000004000000000000000000000000000000000 - -00000000000000000000000000000000:E74FB07622191A053368131DA36FC299:\ -000000000000002000000000000000000000000000000000 - -00000000000000000000000000000000:3CFF40E0E9A86F67D938D2483BDD08F0:\ -000000000000001000000000000000000000000000000000 - -00000000000000000000000000000000:7C502AE730F5A9ABEACB15240EA1E8F6:\ -000000000000000800000000000000000000000000000000 - -00000000000000000000000000000000:0B3CA10C02E24BA82261E65BE4413512:\ -000000000000000400000000000000000000000000000000 - -00000000000000000000000000000000:F7D50E95931755A98B143AE254090F9D:\ -000000000000000200000000000000000000000000000000 - -00000000000000000000000000000000:A4E84B8A7B8CC3766307D66A9C6AECB9:\ -000000000000000100000000000000000000000000000000 - -00000000000000000000000000000000:5298367E93E9B9CB5CF402A8BA9EFC62:\ -000000000000000080000000000000000000000000000000 - -00000000000000000000000000000000:03D44830C40510CE7866FB86FAC6E1DC:\ -000000000000000040000000000000000000000000000000 - -00000000000000000000000000000000:978E4BA4EEA6739B1769FF4389F0367E:\ -000000000000000020000000000000000000000000000000 - -00000000000000000000000000000000:707EF1166D2F11FD1519B37FB00D23EB:\ -000000000000000010000000000000000000000000000000 - -00000000000000000000000000000000:435088DBDD8646A7FCA8851CA2FA1FB5:\ -000000000000000008000000000000000000000000000000 - -00000000000000000000000000000000:F3DC32DD6931A302391F9B992A5B6122:\ -000000000000000004000000000000000000000000000000 - -00000000000000000000000000000000:D93286DD8A05432614FD03169F36ED15:\ -000000000000000002000000000000000000000000000000 - -00000000000000000000000000000000:59F83FEA4BC9B24BF69A98CA3959CEFC:\ -000000000000000001000000000000000000000000000000 - -00000000000000000000000000000000:A689BC3A8DB36A22763E911370C9DE2B:\ -000000000000000000800000000000000000000000000000 - -00000000000000000000000000000000:04EB5BA604BA64DD112BCAE830C27966:\ -000000000000000000400000000000000000000000000000 - -00000000000000000000000000000000:7EF653E2D804E80BD678C3A6CB222625:\ -000000000000000000200000000000000000000000000000 - -00000000000000000000000000000000:A94EC287E7F70C6503DC0B891920C622:\ -000000000000000000100000000000000000000000000000 - -00000000000000000000000000000000:8A78497E9D18A365599444C972359F0D:\ -000000000000000000080000000000000000000000000000 - -00000000000000000000000000000000:2F1832E285C8D24F226B50CCD71FE46A:\ -000000000000000000040000000000000000000000000000 - -00000000000000000000000000000000:0B6675F4BD4BD6951BB96AF62D3C9B96:\ -000000000000000000020000000000000000000000000000 - -00000000000000000000000000000000:D6DEDAAAECE52984A261155ED7AF5290:\ -000000000000000000010000000000000000000000000000 - -00000000000000000000000000000000:7600A0FCF96F24A21419103466B937B5:\ -000000000000000000008000000000000000000000000000 - -00000000000000000000000000000000:C3E359420C4C4AF445C470AB347B3667:\ -000000000000000000004000000000000000000000000000 - -00000000000000000000000000000000:D915133DAA11BECB43E020266B709BEC:\ -000000000000000000002000000000000000000000000000 - -00000000000000000000000000000000:A0001FC4E31664ED8C375644D02717AE:\ -000000000000000000001000000000000000000000000000 - -00000000000000000000000000000000:D8E96A3F240666FC02F31E84CD1CEEF1:\ -000000000000000000000800000000000000000000000000 - -00000000000000000000000000000000:DE0B6B80C40ED4447E36A84A62EB235D:\ -000000000000000000000400000000000000000000000000 - -00000000000000000000000000000000:8B15F04C34FC0F35F96C86837665CB38:\ -000000000000000000000200000000000000000000000000 - -00000000000000000000000000000000:02DAE104DA462934D87FDC73EB4011A9:\ -000000000000000000000100000000000000000000000000 - -00000000000000000000000000000000:B1ECC134EB7221CE00EBB977E08020E2:\ -000000000000000000000080000000000000000000000000 - -00000000000000000000000000000000:9F13CC1BF91C1B49AB6DDD7AF7A05ABA:\ -000000000000000000000040000000000000000000000000 - -00000000000000000000000000000000:414D1178475679525B5EE7ED373E2A0A:\ -000000000000000000000020000000000000000000000000 - -00000000000000000000000000000000:E69F2CC70EF18DBD360DFDD5C6573EBD:\ -000000000000000000000010000000000000000000000000 - -00000000000000000000000000000000:FA45D9E00E4C221A14C359742AC25C35:\ -000000000000000000000008000000000000000000000000 - -00000000000000000000000000000000:BC2AC98007820862150CC1B1E3E11ED1:\ -000000000000000000000004000000000000000000000000 - -00000000000000000000000000000000:C7CABAB4D7DFFD44C5943EB8E9441C3D:\ -000000000000000000000002000000000000000000000000 - -00000000000000000000000000000000:6DA6716020FDE292E8ADFB2A31BC6B24:\ -000000000000000000000001000000000000000000000000 - -00000000000000000000000000000000:9516AE03F102950795E1869E07BE0AFB:\ -000000000000000000000000800000000000000000000000 - -00000000000000000000000000000000:4748E60F70C6172E5D5B0C21E67F366C:\ -000000000000000000000000400000000000000000000000 - -00000000000000000000000000000000:40C7CC6385BB634FB68F73CCB5C446C2:\ -000000000000000000000000200000000000000000000000 - -00000000000000000000000000000000:7F0CE574F643711ECFC5011C0BCCD49A:\ -000000000000000000000000100000000000000000000000 - -00000000000000000000000000000000:2628849CC2C62FEB305A1287F24B9693:\ -000000000000000000000000080000000000000000000000 - -00000000000000000000000000000000:6E8C11B5EA12D40CE9F83693314BD836:\ -000000000000000000000000040000000000000000000000 - -00000000000000000000000000000000:503FCDFCCB2AEBEEE6FB59326D06745E:\ -000000000000000000000000020000000000000000000000 - -00000000000000000000000000000000:69698FE789F29872F0A4116CD8714255:\ -000000000000000000000000010000000000000000000000 - -00000000000000000000000000000000:3072C09636828285E7135E92B04C3601:\ -000000000000000000000000008000000000000000000000 - -00000000000000000000000000000000:00C19303036D6D3227B9C7AF806BEBDD:\ -000000000000000000000000004000000000000000000000 - -00000000000000000000000000000000:E6B06BC172CA8892C8A04D6717AB08CE:\ -000000000000000000000000002000000000000000000000 - -00000000000000000000000000000000:F7F08E268646EF8B9D728D422195A88B:\ -000000000000000000000000001000000000000000000000 - -00000000000000000000000000000000:E6C0BEE988E017E708FF1A1DCFE38FC8:\ -000000000000000000000000000800000000000000000000 - -00000000000000000000000000000000:33D0841FC04A6394056AC82D68DBFA02:\ -000000000000000000000000000400000000000000000000 - -00000000000000000000000000000000:066AF29F6138FE67D676925DBC375ED1:\ -000000000000000000000000000200000000000000000000 - -00000000000000000000000000000000:60E1109A80F56DBCBCAC75AF9EE3A982:\ -000000000000000000000000000100000000000000000000 - -00000000000000000000000000000000:84E692562A2DBE9452CDC7F5F7DCD4E6:\ -000000000000000000000000000080000000000000000000 - -00000000000000000000000000000000:DA5C0CB7DE7C2A9DEFC76348955FB51B:\ -000000000000000000000000000040000000000000000000 - -00000000000000000000000000000000:26AC1CB6870A598585E211852F9C980A:\ -000000000000000000000000000020000000000000000000 - -00000000000000000000000000000000:49776D30C4A10352FF0FBA170F09F275:\ -000000000000000000000000000010000000000000000000 - -00000000000000000000000000000000:D02E72C408A05C89F80C9EC450419FBF:\ -000000000000000000000000000008000000000000000000 - -00000000000000000000000000000000:993D122B38640477385BBFC79177C212:\ -000000000000000000000000000004000000000000000000 - -00000000000000000000000000000000:1482C5D53BE2F16634C22B9294D6E10B:\ -000000000000000000000000000002000000000000000000 - -00000000000000000000000000000000:4B9518E3188D68E20266DCAA5B26337F:\ -000000000000000000000000000001000000000000000000 - -00000000000000000000000000000000:7D6C9C9F375EDDE4A23D83B8B62E198F:\ -000000000000000000000000000000800000000000000000 - -00000000000000000000000000000000:FCCE30A6961099AD269080FF07A24E1E:\ -000000000000000000000000000000400000000000000000 - -00000000000000000000000000000000:C822629D39268498E02E6E4D642E7921:\ -000000000000000000000000000000200000000000000000 - -00000000000000000000000000000000:B96890D4CC0BD3C41A14D0547F98E077:\ -000000000000000000000000000000100000000000000000 - -00000000000000000000000000000000:78665BAC269A5DB3FFE165526A42F688:\ -000000000000000000000000000000080000000000000000 - -00000000000000000000000000000000:5EB1E7293616CD444011950212E53E78:\ -000000000000000000000000000000040000000000000000 - -00000000000000000000000000000000:FD682F200B2D5D17D177E785EBCE6C08:\ -000000000000000000000000000000020000000000000000 - -00000000000000000000000000000000:EAAEEA26A8AE037C288DDA6791580418:\ -000000000000000000000000000000010000000000000000 - -00000000000000000000000000000000:AA525000B28A88169212096B6D5FF58D:\ -000000000000000000000000000000008000000000000000 - -00000000000000000000000000000000:09C8F1F28B94167498D9377CB9909458:\ -000000000000000000000000000000004000000000000000 - -00000000000000000000000000000000:847E4FFAD40194940A0F7FA0E34739B4:\ -000000000000000000000000000000002000000000000000 - -00000000000000000000000000000000:50DCE06E775C1A6DDA24B2A926C9EF8E:\ -000000000000000000000000000000001000000000000000 - -00000000000000000000000000000000:3896FB03AF06F69CFDDDFBFCDF8E10A7:\ -000000000000000000000000000000000800000000000000 - -00000000000000000000000000000000:FED04C2F49DB4BE1D7BC5E187FB1612B:\ -000000000000000000000000000000000400000000000000 - -00000000000000000000000000000000:69E749DFCA9AC8A990444E9FFB6CBA09:\ -000000000000000000000000000000000200000000000000 - -00000000000000000000000000000000:9B2262EBF59AB552E04D57A72FE6F013:\ -000000000000000000000000000000000100000000000000 - -00000000000000000000000000000000:8FF0BF7F0088916764CF9FF21E1BDA67:\ -000000000000000000000000000000000080000000000000 - -00000000000000000000000000000000:5DE1FF41440B4CA0EEF22C8C3F96F23F:\ -000000000000000000000000000000000040000000000000 - -00000000000000000000000000000000:FEBE3209C8D61E85024DEF2122AF0268:\ -000000000000000000000000000000000020000000000000 - -00000000000000000000000000000000:DB63B702C6E39A283B64B90F36FBD426:\ -000000000000000000000000000000000010000000000000 - -00000000000000000000000000000000:BB364F05F769FFBFE18288BD782D20EB:\ -000000000000000000000000000000000008000000000000 - -00000000000000000000000000000000:8A929CBDE0CD9A9545A08DA2D16BA838:\ -000000000000000000000000000000000004000000000000 - -00000000000000000000000000000000:C5AE232EB4F293497E79E20E436B5A4C:\ -000000000000000000000000000000000002000000000000 - -00000000000000000000000000000000:3979A57AB9EB520E1475D745F897A9A9:\ -000000000000000000000000000000000001000000000000 - -00000000000000000000000000000000:469B440BBD0711C31B9AAA2564ECB68A:\ -000000000000000000000000000000000000800000000000 - -00000000000000000000000000000000:260AC31933A32B75C13364E868FD84DB:\ -000000000000000000000000000000000000400000000000 - -00000000000000000000000000000000:D5A76D2E0D00BE53B401ACB0EE70F8FB:\ -000000000000000000000000000000000000200000000000 - -00000000000000000000000000000000:C3475809C89275DE82F9F22D59A3DA37:\ -000000000000000000000000000000000000100000000000 - -00000000000000000000000000000000:C9B8FBFBF1A120BF47D0F2F48DD23661:\ -000000000000000000000000000000000000080000000000 - -00000000000000000000000000000000:C662358CCCD46730D243DEE03B871DC3:\ -000000000000000000000000000000000000040000000000 - -00000000000000000000000000000000:F5BA874DAE43AD835B3F1344653411B6:\ -000000000000000000000000000000000000020000000000 - -00000000000000000000000000000000:F0185396A6A69D48BBEADFE5B644EED4:\ -000000000000000000000000000000000000010000000000 - -00000000000000000000000000000000:DA0DEC6F13B5AEFC056F5D040C5DA310:\ -000000000000000000000000000000000000008000000000 - -00000000000000000000000000000000:7E1DBDE7B45F9C3E01A285EA575AD5ED:\ -000000000000000000000000000000000000004000000000 - -00000000000000000000000000000000:7A814893FBF78A6F5345F4E250DA454C:\ -000000000000000000000000000000000000002000000000 - -00000000000000000000000000000000:8C8B9E24399A6DF8293B0117307D6084:\ -000000000000000000000000000000000000001000000000 - -00000000000000000000000000000000:11BB87A542E9135ECEB6143A07E0B65E:\ -000000000000000000000000000000000000000800000000 - -00000000000000000000000000000000:495A92DB6E242E0A878EB4AC4C886802:\ -000000000000000000000000000000000000000400000000 - -00000000000000000000000000000000:97A5A7E3DAB800B3D4E7D468B4CCB951:\ -000000000000000000000000000000000000000200000000 - -00000000000000000000000000000000:C74D778D3F0440EB91981C23CC4F5669:\ -000000000000000000000000000000000000000100000000 - -00000000000000000000000000000000:1B485B0E4A063B844BC2AE8B722D0757:\ -000000000000000000000000000000000000000080000000 - -00000000000000000000000000000000:BF9D54F977A978797A4268CFC84132C4:\ -000000000000000000000000000000000000000040000000 - -00000000000000000000000000000000:90C50CB6D84B6A74F3D64A419B0419EA:\ -000000000000000000000000000000000000000020000000 - -00000000000000000000000000000000:776EED1A9849173A7AC46E94C9B2681B:\ -000000000000000000000000000000000000000010000000 - -00000000000000000000000000000000:A42F612CBF53529173E148ABA2B55D63:\ -000000000000000000000000000000000000000008000000 - -00000000000000000000000000000000:6F8B5F268B3DBEA72BF0D1F92B13684E:\ -000000000000000000000000000000000000000004000000 - -00000000000000000000000000000000:9379DA858CEC7AC58856E7DBF79C4757:\ -000000000000000000000000000000000000000002000000 - -00000000000000000000000000000000:17FE109D4638A9E1FAF130D621C160CB:\ -000000000000000000000000000000000000000001000000 - -00000000000000000000000000000000:2BCFAD82613FFD8D9BCBC539C1158BC9:\ -000000000000000000000000000000000000000000800000 - -00000000000000000000000000000000:8EA212BFBBF476CE35939066A7F1757D:\ -000000000000000000000000000000000000000000400000 - -00000000000000000000000000000000:1BFAC7B1B8EB14C26ADA2055E0C9CD36:\ -000000000000000000000000000000000000000000200000 - -00000000000000000000000000000000:9FCA8C1340C47C586D6A2FAD9FAA6833:\ -000000000000000000000000000000000000000000100000 - -00000000000000000000000000000000:D22D10708CBA6566DC096B8ABE3F9679:\ -000000000000000000000000000000000000000000080000 - -00000000000000000000000000000000:1FFC5754FC94465A073B714267DEC18C:\ -000000000000000000000000000000000000000000040000 - -00000000000000000000000000000000:FDED0173236B23DF4DFC1953355AA78E:\ -000000000000000000000000000000000000000000020000 - -00000000000000000000000000000000:FBE9178C4B27E51E24BF17053724AA2F:\ -000000000000000000000000000000000000000000010000 - -00000000000000000000000000000000:F02818D3D58D1F3345594670D3009DF4:\ -000000000000000000000000000000000000000000008000 - -00000000000000000000000000000000:6E148020BAB1DD04492299F6A9D9BA22:\ -000000000000000000000000000000000000000000004000 - -00000000000000000000000000000000:8E045AE3022AF7562106681B2B8CB70E:\ -000000000000000000000000000000000000000000002000 - -00000000000000000000000000000000:2C73832593114BF299424E30C5848625:\ -000000000000000000000000000000000000000000001000 - -00000000000000000000000000000000:127FC7BCF85F44F5041158A5EB3D040C:\ -000000000000000000000000000000000000000000000800 - -00000000000000000000000000000000:B25FABDA9D6E6704F23F33B0D907B762:\ -000000000000000000000000000000000000000000000400 - -00000000000000000000000000000000:21B968BF3EFFC638F54BC1524D8D378F:\ -000000000000000000000000000000000000000000000200 - -00000000000000000000000000000000:18F3BEB5D5A6B6AC512752AAA65EA3BD:\ -000000000000000000000000000000000000000000000100 - -00000000000000000000000000000000:5588729059256CE49AF2DA14EE4C9D00:\ -000000000000000000000000000000000000000000000080 - -00000000000000000000000000000000:A6EBD68D0A6F46DA22CD17D4B55BC4FE:\ -000000000000000000000000000000000000000000000040 - -00000000000000000000000000000000:50434829C09BFB7C174E1BE33642FEFB:\ -000000000000000000000000000000000000000000000020 - -00000000000000000000000000000000:682C20B72DDFE4F678B2379FA25715CA:\ -000000000000000000000000000000000000000000000010 - -00000000000000000000000000000000:925721E954372C9EA115BFF97BBE9A12:\ -000000000000000000000000000000000000000000000008 - -00000000000000000000000000000000:32929E53C8E8D85657B9B55A4911028C:\ -000000000000000000000000000000000000000000000004 - -00000000000000000000000000000000:8EE624F18BF5AA25ACE8667643D0D80D:\ -000000000000000000000000000000000000000000000002 - -00000000000000000000000000000000:30A61DCEB9A951B829DE01414A801807:\ -000000000000000000000000000000000000000000000001 - -00000000000000000000000000000000:785229B51B515F30A1FCC88B969A4E47:\ -8000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B095E0619E70CDF5F4BC6E88079CF22F:\ -4000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:44F32AEAE82516AC8857C1985B7109EC:\ -2000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B2BBE93B433C8F0415B90282E788C071:\ -1000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:9E953EBAA3B13F43F90908B53DAA0C09:\ -0800000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:4579140290095FB25B3144444505D203:\ -0400000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5FD5F687596A9AA9EA105A2F7CF59A94:\ -0200000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:005EA3AF8AFF3DDA323148690537853C:\ -0100000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:CD8E33C4F06FC0586E821522B2FEB08D:\ -0080000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:CABEC07E46D11086778C3E1937CD0797:\ -0040000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:56BA650835E125201400380C4D2D5D99:\ -0020000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:EB48A1B279E95EBF8FAAC13D70F8F452:\ -0010000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E52435C29F7C9687B268C539BF6598B1:\ -0008000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:27785BDF6F6258EAC396BFD0F56BEE82:\ -0004000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:CA16B1969FA373F43EF09D19B3379F3F:\ -0002000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:6D1B6F14090368034E10CF0C1E4F5744:\ -0001000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:5AE3ABA331C5D765E3D112B1DA09E7BC:\ -0000800000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:767F9CBDA1BA9914EBA40D7A172A4077:\ -0000400000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:8FAE713F677A82075D773DB73D58763E:\ -0000200000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:616CA9A15D710CA38FCA9A8E0B16A21C:\ -0000100000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D36754729DB34ECA1ECAC2CE2B381713:\ -0000080000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E68E3A421462A49AF8D7E544F7789301:\ -0000040000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:69B24511DF9BE48CFDB416F08908315F:\ -0000020000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:1329EA7551CE6C335DB924D563694058:\ -0000010000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:74DA788FB7A6172B65FBB62C7ED4FECC:\ -0000008000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:862703854F75F433135601000CD9363B:\ -0000004000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:824D4C002C401677D5785D6C6DA96C68:\ -0000002000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:7F9F21E8C45D1E8A843060B963CC628B:\ -0000001000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:3F6F7B1157906913B09BD2AE2627C6B0:\ -0000000800000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:A1B7E0CC8B69B3C0C6F635F962D0A22F:\ -0000000400000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:6FC34DDFF0C74674CE124D85E8A3447F:\ -0000000200000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:436A5D315AF443DEA9BEF8D1E817E7E0:\ -0000000100000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:8B0434C9C98CDA4B313DAD6F1E64A943:\ -0000000080000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:AF9BD15EF1535259C63D688BF67119C4:\ -0000000040000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F61EF2509D173E348E01839A26D033FF:\ -0000000020000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:9D37D036C8568D2173654423CC7AAB39:\ -0000000010000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:A93D98C055DDAA592390CADB0F0C468D:\ -0000000008000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F19CB2A5067E9FBADBD4F0D103007A54:\ -0000000004000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:83C5D584511836263D8B0DE7CEF0AD16:\ -0000000002000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E09206EB6A5E8AC933BAAB46547E4CD9:\ -0000000001000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:0A0EBA6ACED7899AA633CE67E8923936:\ -0000000000800000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C93968EC0EE02DACD3F3EE9AC2320B88:\ -0000000000400000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:64D62934D409F36505EEC3B925BE914D:\ -0000000000200000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BBADB03D5F0FCF375E671F8B009F3AF1:\ -0000000000100000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:DAC60B05A1C3A203C6B4FE882E780079:\ -0000000000080000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:8B650EC280BE261CCED5B5FC7F8A9BA7:\ -0000000000040000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:35EB82F0BB6735E2DE661AE4E9E9EE57:\ -0000000000020000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:40B1042CBE87D64DDBEA4BAC8CF1F08C:\ -0000000000010000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:13D46AE35D868401D23C891ED92621EE:\ -0000000000008000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D2C6E9C239B4FA5A1E76D038EA4660F3:\ -0000000000004000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:DE3BC7CDFAF9AB7143E255DC87645F3E:\ -0000000000002000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:8FB6CA966B5ACFB180A296EA5D93711F:\ -0000000000001000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:59F622ACBBA15E522717A9EAF7047949:\ -0000000000000800000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:BB2939FFBD77B308DA93220AD68A21AC:\ -0000000000000400000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:CEBE5EDD9BACF0A0FB75B259DE7097CD:\ -0000000000000200000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:3448844E63AC2BD809E254AC3BAA6B3B:\ -0000000000000100000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:49C27499EEC1989626B1E50435BA0273:\ -0000000000000080000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:39E97018F547A8A802578B80952F2457:\ -0000000000000040000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:9934453FBAAE1CB362A0012204967AE8:\ -0000000000000020000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E9C98A03713835EB4497346866791190:\ -0000000000000010000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:E026C858938B47D28A8758CCFAEF0FA8:\ -0000000000000008000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:3A84B0A26CEA6A8D8A94D5B791A0D3E8:\ -0000000000000004000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B054259980B45B9D2D7CD6C13200BAFC:\ -0000000000000002000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:13645DBEDE21FF7C79C06141AD9E4CD1:\ -0000000000000001000000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F29B1370BA8D8CC19AC8DF5DF77F7319:\ -0000000000000000800000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:6A2C94C488D5BD32742F143B2E8D0659:\ -0000000000000000400000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:27A0BF748F513F18D4F7831527A3608F:\ -0000000000000000200000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:0B0D61E162A88E04C38C19CA668C2DDC:\ -0000000000000000100000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:4055BA24216EF49FE36E6145A5CD31D4:\ -0000000000000000080000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:99699B31EBBE6ABE1F7B2AFEC86DC7E2:\ -0000000000000000040000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:C8D70448CBA770CD94088F60CBF8C5AC:\ -0000000000000000020000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:56C89F1BA6D3AB20465F01F81D00A894:\ -0000000000000000010000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:919FC5BBFAB8C31F8B2A346FBC2AB282:\ -0000000000000000008000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:FF57E3AB8751DAA252DD0DD917BEAD8B:\ -0000000000000000004000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:90B94853B317FFA8D41F2A32A3A061AB:\ -0000000000000000002000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F4A0257D0CF6C8C87D154746C2C94B52:\ -0000000000000000001000000000000000000000000000000000000000000000 - -00000000000000000000000000000000:03666F848F252B501754773CB68CF3B2:\ -0000000000000000000800000000000000000000000000000000000000000000 - -00000000000000000000000000000000:F3D0941DDC7412A981C5F6CCAB082DC2:\ -0000000000000000000400000000000000000000000000000000000000000000 - -00000000000000000000000000000000:21EDD2A11C57EE97AEADFACEC20A8691:\ -0000000000000000000200000000000000000000000000000000000000000000 - -00000000000000000000000000000000:577CF09B5606F1443E8B57952004C68D:\ -0000000000000000000100000000000000000000000000000000000000000000 - -00000000000000000000000000000000:0CF408A2FBDA07068BDB13A371867FCC:\ -0000000000000000000080000000000000000000000000000000000000000000 - -00000000000000000000000000000000:88542C9E680C27FE8FBE090AD73410B9:\ -0000000000000000000040000000000000000000000000000000000000000000 - -00000000000000000000000000000000:7A8BA6DC89A1AD4385D0696AFDD89496:\ -0000000000000000000020000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B84FA0FA046D5D77EA94CF3E8FDED147:\ -0000000000000000000010000000000000000000000000000000000000000000 - -00000000000000000000000000000000:D73CB079FB7101C933176352A93BB028:\ -0000000000000000000008000000000000000000000000000000000000000000 - -00000000000000000000000000000000:A7C8C1A59E141D608BC91BB69E7B2859:\ -0000000000000000000004000000000000000000000000000000000000000000 - -00000000000000000000000000000000:B2DA67AFE49B33E5EDFAF148A17BF06B:\ -0000000000000000000002000000000000000000000000000000000000000000 - -00000000000000000000000000000000:AC2DB35ED86D358616648D22B52DF012:\ -0000000000000000000001000000000000000000000000000000000000000000 - -00000000000000000000000000000000:662EA9D88A9A2C89581502EAAAD074D5:\ -0000000000000000000000800000000000000000000000000000000000000000 - -00000000000000000000000000000000:773A30DFDA8EBCE50EDFB925343C9ECC:\ -0000000000000000000000400000000000000000000000000000000000000000 - -00000000000000000000000000000000:10B7242D9C7CA610C20F1183BB949514:\ -0000000000000000000000200000000000000000000000000000000000000000 - -00000000000000000000000000000000:B7DF971F9C3444EFCC13210292126942:\ -0000000000000000000000100000000000000000000000000000000000000000 - -00000000000000000000000000000000:13F7406746C6E0CD5666EC04C0E540E2:\ -0000000000000000000000080000000000000000000000000000000000000000 - -00000000000000000000000000000000:9382384DCAF80CF537E24FC5F2F71A8A:\ -0000000000000000000000040000000000000000000000000000000000000000 - -00000000000000000000000000000000:3D5819934619E09F10E90C4EA7F30F40:\ -0000000000000000000000020000000000000000000000000000000000000000 - -00000000000000000000000000000000:710446D0A254F68975CD6AAAE92212FD:\ -0000000000000000000000010000000000000000000000000000000000000000 - -00000000000000000000000000000000:0A44FDEAA17E5F3E536A08D7A5B3267B:\ -0000000000000000000000008000000000000000000000000000000000000000 - -00000000000000000000000000000000:BAC72F53EE39296D3A23B126F8D8B20B:\ -0000000000000000000000004000000000000000000000000000000000000000 - -00000000000000000000000000000000:88C342961D0EE83902CB78C29539923D:\ -0000000000000000000000002000000000000000000000000000000000000000 - -00000000000000000000000000000000:CF3B48A6351C4561752D6A209F93A30F:\ -0000000000000000000000001000000000000000000000000000000000000000 - -00000000000000000000000000000000:957B107D23F3694F3FFD9957BBE13168:\ -0000000000000000000000000800000000000000000000000000000000000000 - -00000000000000000000000000000000:23675E18C1C66B483D55E14AC7F9CC80:\ -0000000000000000000000000400000000000000000000000000000000000000 - -00000000000000000000000000000000:955B8619F99F7609201CEEB338F32795:\ -0000000000000000000000000200000000000000000000000000000000000000 - -00000000000000000000000000000000:9F2BCB0C28768DA3B76206979B14EBC2:\ -0000000000000000000000000100000000000000000000000000000000000000 - -00000000000000000000000000000000:258F95A0E86EE0EE8FC020B4A01900F2:\ -0000000000000000000000000080000000000000000000000000000000000000 - -00000000000000000000000000000000:FD7B1DD7C7FE279E6A5E2926DD890B5E:\ -0000000000000000000000000040000000000000000000000000000000000000 - -00000000000000000000000000000000:59CF38A7C863C623991B5392944CB43C:\ -0000000000000000000000000020000000000000000000000000000000000000 - -00000000000000000000000000000000:27BCC9206AEC78DA48C1E9AB8D1A7A07:\ -0000000000000000000000000010000000000000000000000000000000000000 - -00000000000000000000000000000000:62D8460820B18811DEBB617DE7B8EC8C:\ -0000000000000000000000000008000000000000000000000000000000000000 - -00000000000000000000000000000000:782D8A4D30EE841EDB2E7E88C63B851A:\ -0000000000000000000000000004000000000000000000000000000000000000 - -00000000000000000000000000000000:4D10D177334397F49211BCB10F207905:\ -0000000000000000000000000002000000000000000000000000000000000000 - -00000000000000000000000000000000:C8E608BAFE61254A0DDF866BB4D063DD:\ -0000000000000000000000000001000000000000000000000000000000000000 - -00000000000000000000000000000000:05DDAB3DAEA0C64C1077BE22DA7ACDD4:\ -0000000000000000000000000000800000000000000000000000000000000000 - -00000000000000000000000000000000:951388F2BE1DD7013A00327FC6DB7905:\ -0000000000000000000000000000400000000000000000000000000000000000 - -00000000000000000000000000000000:62F8283651EFDF475DE8511EA7256AD6:\ -0000000000000000000000000000200000000000000000000000000000000000 - -00000000000000000000000000000000:5B259EEE6B19EE12D4CE20D2F38D4BCF:\ -0000000000000000000000000000100000000000000000000000000000000000 - -00000000000000000000000000000000:704414E13DCAD9DF7F593F630E68E13C:\ -0000000000000000000000000000080000000000000000000000000000000000 - -00000000000000000000000000000000:41AD9DAAC24ECCBB454DBAF75D5B9989:\ -0000000000000000000000000000040000000000000000000000000000000000 - -00000000000000000000000000000000:919C54C126B54D7A570D8ABA9FCE5D08:\ -0000000000000000000000000000020000000000000000000000000000000000 - -00000000000000000000000000000000:BC665541FF0F2E86DBDF4444C01AC0EA:\ -0000000000000000000000000000010000000000000000000000000000000000 - -00000000000000000000000000000000:FD30E2D851211506C112D5701B859BC6:\ -0000000000000000000000000000008000000000000000000000000000000000 - -00000000000000000000000000000000:7DB7B15E4ACBDBB0BFF4C4EAEDC2231E:\ -0000000000000000000000000000004000000000000000000000000000000000 - -00000000000000000000000000000000:F0AFDED56AD72D4C1E57A66EEDF4816E:\ -0000000000000000000000000000002000000000000000000000000000000000 - -00000000000000000000000000000000:E53B053D9B2E06656138D4A1EFA58888:\ -0000000000000000000000000000001000000000000000000000000000000000 - -00000000000000000000000000000000:4DABE13A3E656E95150440F81DD92666:\ -0000000000000000000000000000000800000000000000000000000000000000 - -00000000000000000000000000000000:175D44DFDE1EAD6E0E6862B511AA7007:\ -0000000000000000000000000000000400000000000000000000000000000000 - -00000000000000000000000000000000:09B690F493F5C779E8B6ACD09667A997:\ -0000000000000000000000000000000200000000000000000000000000000000 - -00000000000000000000000000000000:68D0E4CCA0119EED57ABF3C7574BDA8B:\ -0000000000000000000000000000000100000000000000000000000000000000 - -00000000000000000000000000000000:12C00618DA7EBA5EFA5E58D2696D891F:\ -0000000000000000000000000000000080000000000000000000000000000000 - -00000000000000000000000000000000:5DCE21AF0D23BC5AEFD4EA331B16219A:\ -0000000000000000000000000000000040000000000000000000000000000000 - -00000000000000000000000000000000:A5D7135A053B904D44B40E4E21693751:\ -0000000000000000000000000000000020000000000000000000000000000000 - -00000000000000000000000000000000:3257CEC675BF755FEE67A44D7EDF2731:\ -0000000000000000000000000000000010000000000000000000000000000000 - -00000000000000000000000000000000:324D30DDC6979F17A3BEAEA3A76AD44C:\ -0000000000000000000000000000000008000000000000000000000000000000 - -00000000000000000000000000000000:A1AA0E04E2B61861796FD2AA30FBEB05:\ -0000000000000000000000000000000004000000000000000000000000000000 - -00000000000000000000000000000000:90CA81DF4000404B567F5CFA9D193CB3:\ -0000000000000000000000000000000002000000000000000000000000000000 - -00000000000000000000000000000000:A2E6864259483D059B57BB921B7FBD99:\ -0000000000000000000000000000000001000000000000000000000000000000 - -00000000000000000000000000000000:545690C09C8C396F1273510DA9065C12:\ -0000000000000000000000000000000000800000000000000000000000000000 - -00000000000000000000000000000000:16D86FCC5910E2DD0CEA4DD5219B2D03:\ -0000000000000000000000000000000000400000000000000000000000000000 - -00000000000000000000000000000000:EC4114C19DD5711CD927B0DBE34AAB4B:\ -0000000000000000000000000000000000200000000000000000000000000000 - -00000000000000000000000000000000:A78C62D8FD439E5B10A7EF436714AC22:\ -0000000000000000000000000000000000100000000000000000000000000000 - -00000000000000000000000000000000:BA5D708CBA34F782DA00C7643C971DB9:\ -0000000000000000000000000000000000080000000000000000000000000000 - -00000000000000000000000000000000:7DB9ADCFA26C1E784E7F485BD0A0A52C:\ -0000000000000000000000000000000000040000000000000000000000000000 - -00000000000000000000000000000000:8A025CED99AF1047C5345358A291CDBB:\ -0000000000000000000000000000000000020000000000000000000000000000 - -00000000000000000000000000000000:187A1824D390AD2798E4F2264E5F1F21:\ -0000000000000000000000000000000000010000000000000000000000000000 - -00000000000000000000000000000000:BA28DE5C32353C65B97A59889E7A7A40:\ -0000000000000000000000000000000000008000000000000000000000000000 - -00000000000000000000000000000000:5D486AB86A883029EC74916851FFFA11:\ -0000000000000000000000000000000000004000000000000000000000000000 - -00000000000000000000000000000000:F9C79D54CEEE6170B195F4D30FA63FE0:\ -0000000000000000000000000000000000002000000000000000000000000000 - -00000000000000000000000000000000:96B8429F476485F8CC2E204534A8B64E:\ -0000000000000000000000000000000000001000000000000000000000000000 - -00000000000000000000000000000000:13061D65FEF26F5ACAAF3B55FDB98C36:\ -0000000000000000000000000000000000000800000000000000000000000000 - -00000000000000000000000000000000:C72DC86F70B40169B3456783A611DAE9:\ -0000000000000000000000000000000000000400000000000000000000000000 - -00000000000000000000000000000000:82AA2DB6FEE9212968D8282A1BF3242B:\ -0000000000000000000000000000000000000200000000000000000000000000 - -00000000000000000000000000000000:220C8B197F54F8E86DAE575B07A570EF:\ -0000000000000000000000000000000000000100000000000000000000000000 - -00000000000000000000000000000000:873C47F6F75BE9F710F91F2C54A69A7A:\ -0000000000000000000000000000000000000080000000000000000000000000 - -00000000000000000000000000000000:0392FA7BB908FEF23774772F74AC968D:\ -0000000000000000000000000000000000000040000000000000000000000000 - -00000000000000000000000000000000:A94203746A266C5744C16BF4E8DFA6D7:\ -0000000000000000000000000000000000000020000000000000000000000000 - -00000000000000000000000000000000:D3BA78AD6B01CC7221FA7778699C8316:\ -0000000000000000000000000000000000000010000000000000000000000000 - -00000000000000000000000000000000:994FDCC09C25400D14C05117B936EECD:\ -0000000000000000000000000000000000000008000000000000000000000000 - -00000000000000000000000000000000:4012F67B2A0BEF2623CA6AC5B054BE62:\ -0000000000000000000000000000000000000004000000000000000000000000 - -00000000000000000000000000000000:1134AF65E6D3D5E3D3C23A499EE2F677:\ -0000000000000000000000000000000000000002000000000000000000000000 - -00000000000000000000000000000000:6B35A344BD8DFD4002F5F22EA288F8E6:\ -0000000000000000000000000000000000000001000000000000000000000000 - -00000000000000000000000000000000:D293D438C563B8EB3FF26E23A7323B74:\ -0000000000000000000000000000000000000000800000000000000000000000 - -00000000000000000000000000000000:8085B7A7B939FA37BC4E1D746E9F9B37:\ -0000000000000000000000000000000000000000400000000000000000000000 - -00000000000000000000000000000000:D628AD150E15F413010BE15E391D3F48:\ -0000000000000000000000000000000000000000200000000000000000000000 - -00000000000000000000000000000000:A5C2AC88B6FD4C57CB4F2C2920A584EF:\ -0000000000000000000000000000000000000000100000000000000000000000 - -00000000000000000000000000000000:D7F5183F6BAB04B87A1ABAA3914DA848:\ -0000000000000000000000000000000000000000080000000000000000000000 - -00000000000000000000000000000000:3B2116BD2E362FC8985A0F0C618DF58A:\ -0000000000000000000000000000000000000000040000000000000000000000 - -00000000000000000000000000000000:BF31E8DE8342A32BBD80A8F91507BADA:\ -0000000000000000000000000000000000000000020000000000000000000000 - -00000000000000000000000000000000:AA04A56C13507AE5137657546766AE2D:\ -0000000000000000000000000000000000000000010000000000000000000000 - -00000000000000000000000000000000:72B9D7628AB21DF89666E50517C50574:\ -0000000000000000000000000000000000000000008000000000000000000000 - -00000000000000000000000000000000:2B8DE8D2D3332E6A30215ACC10A69847:\ -0000000000000000000000000000000000000000004000000000000000000000 - -00000000000000000000000000000000:AC421C73A789D79B452623DAFD3D6D0B:\ -0000000000000000000000000000000000000000002000000000000000000000 - -00000000000000000000000000000000:995207D8CF8C10904C0F47652C9C4287:\ -0000000000000000000000000000000000000000001000000000000000000000 - -00000000000000000000000000000000:F83BD19A357BD7901C0E8FBEFCF857ED:\ -0000000000000000000000000000000000000000000800000000000000000000 - -00000000000000000000000000000000:F42BB427C894A072C861C1425CBD71BC:\ -0000000000000000000000000000000000000000000400000000000000000000 - -00000000000000000000000000000000:3D1EC73B166DC0120DDF24267907C0F9:\ -0000000000000000000000000000000000000000000200000000000000000000 - -00000000000000000000000000000000:8EF136AF5D7D1B513FB59FA21F7837A1:\ -0000000000000000000000000000000000000000000100000000000000000000 - -00000000000000000000000000000000:EB4BBA7F94CE9429255A583D2F9810CD:\ -0000000000000000000000000000000000000000000080000000000000000000 - -00000000000000000000000000000000:5FE1C3BCD24818948514CB5A32FFD0A1:\ -0000000000000000000000000000000000000000000040000000000000000000 - -00000000000000000000000000000000:A990117E78D1C5BD7833B96A4A180744:\ -0000000000000000000000000000000000000000000020000000000000000000 - -00000000000000000000000000000000:E63684CDC37E6768C45012EA00D008E4:\ -0000000000000000000000000000000000000000000010000000000000000000 - -00000000000000000000000000000000:78B711F290DA924CAF1E4F1E11A08F4F:\ -0000000000000000000000000000000000000000000008000000000000000000 - -00000000000000000000000000000000:85B7F0D391AF9268643D9C0B72433A99:\ -0000000000000000000000000000000000000000000004000000000000000000 - -00000000000000000000000000000000:F51410475B33FBD3DB2117B5C17C82D4:\ -0000000000000000000000000000000000000000000002000000000000000000 - -00000000000000000000000000000000:A3C5BF72F39940DC7DAFB474A77A6114:\ -0000000000000000000000000000000000000000000001000000000000000000 - -00000000000000000000000000000000:4EFB0E18FB2F96FB6F81514BCE0A7BBD:\ -0000000000000000000000000000000000000000000000800000000000000000 - -00000000000000000000000000000000:10112F5ABBF246996860B843FC7159F5:\ -0000000000000000000000000000000000000000000000400000000000000000 - -00000000000000000000000000000000:94A91373701569B8C21487A7BDB164B6:\ -0000000000000000000000000000000000000000000000200000000000000000 - -00000000000000000000000000000000:A466821BD64F552C0610ADB737C562CD:\ -0000000000000000000000000000000000000000000000100000000000000000 - -00000000000000000000000000000000:511BE2BA9F2A272CA2F5C1D0F3E249C1:\ -0000000000000000000000000000000000000000000000080000000000000000 - -00000000000000000000000000000000:5578CCF8B92D48363EED4601661EB56E:\ -0000000000000000000000000000000000000000000000040000000000000000 - -00000000000000000000000000000000:BF90E87173A45115C811B6319C24FC4A:\ -0000000000000000000000000000000000000000000000020000000000000000 - -00000000000000000000000000000000:8029EE840D130319330B432D95DB9AA7:\ -0000000000000000000000000000000000000000000000010000000000000000 - -00000000000000000000000000000000:19D6D9F45582481A573D77917E778F3C:\ -0000000000000000000000000000000000000000000000008000000000000000 - -00000000000000000000000000000000:556D552FDE7C64227E2B72776488D6C1:\ -0000000000000000000000000000000000000000000000004000000000000000 - -00000000000000000000000000000000:3E81B51A214CC1F1CF6F35F9106A84BC:\ -0000000000000000000000000000000000000000000000002000000000000000 - -00000000000000000000000000000000:4E48243857ECB700F8F16872E0BB4FA9:\ -0000000000000000000000000000000000000000000000001000000000000000 - -00000000000000000000000000000000:681654DF6668CDDF1D3D604483AB483B:\ -0000000000000000000000000000000000000000000000000800000000000000 - -00000000000000000000000000000000:BD6CEEFD85A336E4F12D42076573ECA2:\ -0000000000000000000000000000000000000000000000000400000000000000 - -00000000000000000000000000000000:7488F9790FEC8AAE2AADDF6A600629B3:\ -0000000000000000000000000000000000000000000000000200000000000000 - -00000000000000000000000000000000:669C36695C33B63F16077CAE9AA940AA:\ -0000000000000000000000000000000000000000000000000100000000000000 - -00000000000000000000000000000000:7CE998A357384159C9B34A9A8AC7DF78:\ -0000000000000000000000000000000000000000000000000080000000000000 - -00000000000000000000000000000000:51BE07BA8106A19CCC2005B8B3932FBF:\ -0000000000000000000000000000000000000000000000000040000000000000 - -00000000000000000000000000000000:2634245A6EC3F17A35B7FE1D3E17F769:\ -0000000000000000000000000000000000000000000000000020000000000000 - -00000000000000000000000000000000:24D4114760BCE04C0109C06CCE199F6C:\ -0000000000000000000000000000000000000000000000000010000000000000 - -00000000000000000000000000000000:3F055452FCD596C6D588BD48BB5D5080:\ -0000000000000000000000000000000000000000000000000008000000000000 - -00000000000000000000000000000000:A1D97F66DEF90DE14CC2BFAFF09286BB:\ -0000000000000000000000000000000000000000000000000004000000000000 - -00000000000000000000000000000000:80442DC4EBFB53B86E232D886CA166B9:\ -0000000000000000000000000000000000000000000000000002000000000000 - -00000000000000000000000000000000:76A593802C6A691152E8A04E5DE2D05A:\ -0000000000000000000000000000000000000000000000000001000000000000 - -00000000000000000000000000000000:F923A147E00807D58FB9C686E01F7E07:\ -0000000000000000000000000000000000000000000000000000800000000000 - -00000000000000000000000000000000:8EA3B396D561A3CFCE729A0B59647760:\ -0000000000000000000000000000000000000000000000000000400000000000 - -00000000000000000000000000000000:4AA735D710704790C060BAD696DACABE:\ -0000000000000000000000000000000000000000000000000000200000000000 - -00000000000000000000000000000000:7F7C322D82557737F5407A797069B711:\ -0000000000000000000000000000000000000000000000000000100000000000 - -00000000000000000000000000000000:5094418C55B7D591EFDB7097CB95B16D:\ -0000000000000000000000000000000000000000000000000000080000000000 - -00000000000000000000000000000000:CC014984ABDFB760A835846668340929:\ -0000000000000000000000000000000000000000000000000000040000000000 - -00000000000000000000000000000000:18F86EA6C633228579C5728FF070AC21:\ -0000000000000000000000000000000000000000000000000000020000000000 - -00000000000000000000000000000000:AFCF921E4FA24FDEF85EDAC12CD479F1:\ -0000000000000000000000000000000000000000000000000000010000000000 - -00000000000000000000000000000000:684085D0BE8AE0D617B2EFEF62CAAC93:\ -0000000000000000000000000000000000000000000000000000008000000000 - -00000000000000000000000000000000:04C7B0268EAEFED098C815935D868CF9:\ -0000000000000000000000000000000000000000000000000000004000000000 - -00000000000000000000000000000000:39AE859D255487A68093A376D358BBC2:\ -0000000000000000000000000000000000000000000000000000002000000000 - -00000000000000000000000000000000:F1218B59E947816041B21AC28685EF36:\ -0000000000000000000000000000000000000000000000000000001000000000 - -00000000000000000000000000000000:B9BE024D06447F8965E480B33975E36F:\ -0000000000000000000000000000000000000000000000000000000800000000 - -00000000000000000000000000000000:24ECD5B3178150233BD38A4B9F8EBC86:\ -0000000000000000000000000000000000000000000000000000000400000000 - -00000000000000000000000000000000:7AD12485E896037A8D1A4ABE8A80B9BB:\ -0000000000000000000000000000000000000000000000000000000200000000 - -00000000000000000000000000000000:CEC561C6F4C45CC944371E5D1C18EDF1:\ -0000000000000000000000000000000000000000000000000000000100000000 - -00000000000000000000000000000000:F4B1088B0858A3737DF2C90FD919D1D4:\ -0000000000000000000000000000000000000000000000000000000080000000 - -00000000000000000000000000000000:5EA6D1B9881CE230B8EABAC59B7F5393:\ -0000000000000000000000000000000000000000000000000000000040000000 - -00000000000000000000000000000000:8023134FAC8BF5FDA86368BDA618AEF7:\ -0000000000000000000000000000000000000000000000000000000020000000 - -00000000000000000000000000000000:D37285234A927061BEC9F8AAE0E796C8:\ -0000000000000000000000000000000000000000000000000000000010000000 - -00000000000000000000000000000000:68AC18DB2FBF0A4A095A4B3344BF035D:\ -0000000000000000000000000000000000000000000000000000000008000000 - -00000000000000000000000000000000:563868079C5DF91E3B47B370B0BBB820:\ -0000000000000000000000000000000000000000000000000000000004000000 - -00000000000000000000000000000000:86C3BB221834F7507505434E4F98DC92:\ -0000000000000000000000000000000000000000000000000000000002000000 - -00000000000000000000000000000000:FD8220818731607D8B69AC5963D0FAC9:\ -0000000000000000000000000000000000000000000000000000000001000000 - -00000000000000000000000000000000:550726375ABB0F9A7C010DC4E47833F9:\ -0000000000000000000000000000000000000000000000000000000000800000 - -00000000000000000000000000000000:8AB5E8973A5D6648517D151295091C0E:\ -0000000000000000000000000000000000000000000000000000000000400000 - -00000000000000000000000000000000:338BB4B5569AA06411B9911381F350B2:\ -0000000000000000000000000000000000000000000000000000000000200000 - -00000000000000000000000000000000:332D696EC49DF4B58C5FA9CC84773F47:\ -0000000000000000000000000000000000000000000000000000000000100000 - -00000000000000000000000000000000:DEB5AC8F895AFF45BA5815D4912D8371:\ -0000000000000000000000000000000000000000000000000000000000080000 - -00000000000000000000000000000000:89A49D3AB772D0FDAE05FC692EAF6C7B:\ -0000000000000000000000000000000000000000000000000000000000040000 - -00000000000000000000000000000000:02116E6AEFC21A4D4D64CA27AB7AF31E:\ -0000000000000000000000000000000000000000000000000000000000020000 - -00000000000000000000000000000000:58F79FF1810CA4B0E0178F7D9C24A581:\ -0000000000000000000000000000000000000000000000000000000000010000 - -00000000000000000000000000000000:686FB1ED659D9BF17DA2BB79AC636C93:\ -0000000000000000000000000000000000000000000000000000000000008000 - -00000000000000000000000000000000:1C5C176C4F5796B2C34D2A12858EB511:\ -0000000000000000000000000000000000000000000000000000000000004000 - -00000000000000000000000000000000:2A94B92CC9C4776817C0A77D49E24F22:\ -0000000000000000000000000000000000000000000000000000000000002000 - -00000000000000000000000000000000:890583A6C9549A3DCAFBD54BF391BC8F:\ -0000000000000000000000000000000000000000000000000000000000001000 - -00000000000000000000000000000000:EA88A883197E483B4AA16316EA97CCBB:\ -0000000000000000000000000000000000000000000000000000000000000800 - -00000000000000000000000000000000:CC5732CEB99A0A0353BABA6432BCBE9F:\ -0000000000000000000000000000000000000000000000000000000000000400 - -00000000000000000000000000000000:88811B506D565779F09DE9BDF8702BD8:\ -0000000000000000000000000000000000000000000000000000000000000200 - -00000000000000000000000000000000:E11FEE3AD4A9A03956704B58720C92DD:\ -0000000000000000000000000000000000000000000000000000000000000100 - -00000000000000000000000000000000:644555DFB9CE8EDAF888EE142B5577F1:\ -0000000000000000000000000000000000000000000000000000000000000080 - -00000000000000000000000000000000:716E2BBCBD8FF7E7335784B767F27CA9:\ -0000000000000000000000000000000000000000000000000000000000000040 - -00000000000000000000000000000000:83588863F183ECE04E95629A322F9A09:\ -0000000000000000000000000000000000000000000000000000000000000020 - -00000000000000000000000000000000:5E2833EC95ACE6B93AF28C6FCDBCE5D5:\ -0000000000000000000000000000000000000000000000000000000000000010 - -00000000000000000000000000000000:B3EFCF17F0E1B275D413DD4D3A5CAE68:\ -0000000000000000000000000000000000000000000000000000000000000008 - -00000000000000000000000000000000:3C943E1A2E7E56E4B185302D2D5C5DBD:\ -0000000000000000000000000000000000000000000000000000000000000004 - -00000000000000000000000000000000:8CB4E2498382B523DCE6F7C17C91400B:\ -0000000000000000000000000000000000000000000000000000000000000002 - -00000000000000000000000000000000:85F345366155D13F8F257734D2CBD6D9:\ -0000000000000000000000000000000000000000000000000000000000000001 - -80000000000000000000000000000000:73B9FF14CF2589901FF52A0D6F4B7EDE:\ -00000000000000000000000000000000 - -40000000000000000000000000000000:F5A9150BAB6D6AEBD6B4F97D9E93B28B:\ -00000000000000000000000000000000 - -20000000000000000000000000000000:C30F8B221FD6D3996F973CDCDC6E305C:\ -00000000000000000000000000000000 - -10000000000000000000000000000000:D6A531FE826CB0454F2D567A20018CB7:\ -00000000000000000000000000000000 - -08000000000000000000000000000000:B62324BE427332A6089C7BE40D40292E:\ -00000000000000000000000000000000 - -04000000000000000000000000000000:929B4789E9D6940C9A158880CA21C0E2:\ -00000000000000000000000000000000 - -02000000000000000000000000000000:C14830DB50BA7221B27DC033B0D8D331:\ -00000000000000000000000000000000 - -01000000000000000000000000000000:743342B02EBE647AE47092D435FA60F6:\ -00000000000000000000000000000000 - -00800000000000000000000000000000:4F02AF45C09373D879CD01506A4E7D14:\ -00000000000000000000000000000000 - -00400000000000000000000000000000:92BC9085AB0BA8FFEC2EA6D360864817:\ -00000000000000000000000000000000 - -00200000000000000000000000000000:670A4ED16EA1BDE23E16CB52DBD31CB0:\ -00000000000000000000000000000000 - -00100000000000000000000000000000:A52335AA9F42886084E21400DE48B62F:\ -00000000000000000000000000000000 - -00080000000000000000000000000000:A5A240EBFED79F38F31497EA4C9CFCDA:\ -00000000000000000000000000000000 - -00040000000000000000000000000000:46A64A07123E1212FE9E2F30EDFD80FF:\ -00000000000000000000000000000000 - -00020000000000000000000000000000:20C9F20A8045AEDEE9D6E1CDA948339A:\ -00000000000000000000000000000000 - -00010000000000000000000000000000:DF1606EEF4FEE3F4FC9EC26E2AB388AB:\ -00000000000000000000000000000000 - -00008000000000000000000000000000:6758972B3171F0EA46304542776337FC:\ -00000000000000000000000000000000 - -00004000000000000000000000000000:EC9B591DB8476C26C3CFDA618C1DBBD8:\ -00000000000000000000000000000000 - -00002000000000000000000000000000:651551E741359E0A10BB4EE6A1C07C02:\ -00000000000000000000000000000000 - -00001000000000000000000000000000:88BC2BF1F8A55562B95F8547C9A19E56:\ -00000000000000000000000000000000 - -00000800000000000000000000000000:1A6CCCBD8D40AA14810ED615A6A6E24D:\ -00000000000000000000000000000000 - -00000400000000000000000000000000:7B68DA568ABA5AE69D93C915E37DEE91:\ -00000000000000000000000000000000 - -00000200000000000000000000000000:EC3922A728DA9E4C212D910E5C4AE632:\ -00000000000000000000000000000000 - -00000100000000000000000000000000:5BAC94C97A4069400875A5ABC07BCB17:\ -00000000000000000000000000000000 - -00000080000000000000000000000000:F3B4662918864BA94C1CF79C73B1F259:\ -00000000000000000000000000000000 - -00000040000000000000000000000000:6FBF5A9A93EFA6640AFB80D9A2D22CF7:\ -00000000000000000000000000000000 - -00000020000000000000000000000000:74139BD645DED7690F606490CCA44DD2:\ -00000000000000000000000000000000 - -00000010000000000000000000000000:B20F456519D353AF91C012793576F9B8:\ -00000000000000000000000000000000 - -00000008000000000000000000000000:C0AD52D4B4F67A9333A5E4B1B1176EEC:\ -00000000000000000000000000000000 - -00000004000000000000000000000000:797224710FD09F9830B0F160AE9051E8:\ -00000000000000000000000000000000 - -00000002000000000000000000000000:73669B64C292F4461FAA3A3D091D08DA:\ -00000000000000000000000000000000 - -00000001000000000000000000000000:EFE0E893CE04008935CB7D43A7DC9ADD:\ -00000000000000000000000000000000 - -00000000800000000000000000000000:3B0A2D3B236324221F81BFCAE45217D8:\ -00000000000000000000000000000000 - -00000000400000000000000000000000:CE6F569FC89127B1AE19466FA36DD6E4:\ -00000000000000000000000000000000 - -00000000200000000000000000000000:6037FE38896C05745C58C28CDF7FF386:\ -00000000000000000000000000000000 - -00000000100000000000000000000000:92F5817D0BE37241F9292F6FF918A8E5:\ -00000000000000000000000000000000 - -00000000080000000000000000000000:20C9A2A684563495C255A5751C1AC01E:\ -00000000000000000000000000000000 - -00000000040000000000000000000000:AC6B6DB6D069B6895F2283435D33BD43:\ -00000000000000000000000000000000 - -00000000020000000000000000000000:F9354B12C2366F1CE10F9A0550281267:\ -00000000000000000000000000000000 - -00000000010000000000000000000000:684FDA9FCF3B3B5648A452CDA07CF002:\ -00000000000000000000000000000000 - -00000000008000000000000000000000:9BE294C97C2A963006A2BD4541DC7DB5:\ -00000000000000000000000000000000 - -00000000004000000000000000000000:A984F6F70E93FE65C8798C01D4E5D30C:\ -00000000000000000000000000000000 - -00000000002000000000000000000000:E06A6CE2D74DB3D78E8F5D991C322B87:\ -00000000000000000000000000000000 - -00000000001000000000000000000000:646771D16BAEDAC3F8E9D00C212518A2:\ -00000000000000000000000000000000 - -00000000000800000000000000000000:9D2D410DC6F3BEC913D64BDBDEF3285E:\ -00000000000000000000000000000000 - -00000000000400000000000000000000:6850AFECD8064E77F4F6944BDF5B324D:\ -00000000000000000000000000000000 - -00000000000200000000000000000000:2E341142550F73F4C8E9DCCC5931A158:\ -00000000000000000000000000000000 - -00000000000100000000000000000000:0CA58E149C2120A8EBF9A7885A89ACBC:\ -00000000000000000000000000000000 - -00000000000080000000000000000000:41EACB7F6B5F9E3E3D299CA416EA2C59:\ -00000000000000000000000000000000 - -00000000000040000000000000000000:C4D45503484DBC83CB52D3DB4AD0A7CC:\ -00000000000000000000000000000000 - -00000000000020000000000000000000:CC52B159C2BCF87EE5F4926C6E7B7744:\ -00000000000000000000000000000000 - -00000000000010000000000000000000:7E8A4023B8890A2DBF0D54E330FDF2A2:\ -00000000000000000000000000000000 - -00000000000008000000000000000000:B05E771660493DCE3A275B0252D343A7:\ -00000000000000000000000000000000 - -00000000000004000000000000000000:83D0034D231E179207F6A97FB1457FEB:\ -00000000000000000000000000000000 - -00000000000002000000000000000000:7132BF130E8732C41F68107F49153FF2:\ -00000000000000000000000000000000 - -00000000000001000000000000000000:B93021593B9EA2588F16E87D3C5DE0EC:\ -00000000000000000000000000000000 - -00000000000000800000000000000000:26031449FBD6C84201B0BFB53B2C23CA:\ -00000000000000000000000000000000 - -00000000000000400000000000000000:AFC8E9D2B9BFED9CE0B898F28607DF4C:\ -00000000000000000000000000000000 - -00000000000000200000000000000000:C5094DE7E36CAEBE1B76EC3AC2C875F5:\ -00000000000000000000000000000000 - -00000000000000100000000000000000:7DF8910A2D256FFB5D56FD1358F131FE:\ -00000000000000000000000000000000 - -00000000000000080000000000000000:D93F84C1519D6627465E984675AA800B:\ -00000000000000000000000000000000 - -00000000000000040000000000000000:5F1861F1523CDA0C95644B0C4F2EE6D1:\ -00000000000000000000000000000000 - -00000000000000020000000000000000:FC5C4893AD148E4134EAEB3B1B190E29:\ -00000000000000000000000000000000 - -00000000000000010000000000000000:80D1463F9E9416A143B2FF69DE629510:\ -00000000000000000000000000000000 - -00000000000000008000000000000000:F16305404AE6266C619DC8ACA2D492E1:\ -00000000000000000000000000000000 - -00000000000000004000000000000000:3B2554E422F9CEBB8271D7A48C94E03F:\ -00000000000000000000000000000000 - -00000000000000002000000000000000:18B039EECB68A05CBF8C65EE85BDC4BC:\ -00000000000000000000000000000000 - -00000000000000001000000000000000:BB26ABB17AD5482B1DCC4018E7DB0950:\ -00000000000000000000000000000000 - -00000000000000000800000000000000:7E7AC0FD5B98157CEAD4BBAB643BE4CA:\ -00000000000000000000000000000000 - -00000000000000000400000000000000:BD8A3B64849E54CC2D8379DCA9E42FDD:\ -00000000000000000000000000000000 - -00000000000000000200000000000000:58C388DFB41FF3E14394C73FD8AAC56A:\ -00000000000000000000000000000000 - -00000000000000000100000000000000:944B295E23C5B2542DED57A155D33EF8:\ -00000000000000000000000000000000 - -00000000000000000080000000000000:067B4DD07DCA1292CFF0D80D75BDACA5:\ -00000000000000000000000000000000 - -00000000000000000040000000000000:7D7344373196C5B30676F270BFC90B07:\ -00000000000000000000000000000000 - -00000000000000000020000000000000:988C5164A82254B29326C98812A716CE:\ -00000000000000000000000000000000 - -00000000000000000010000000000000:8FFD48787C28542E0450FAD4CBAD34D0:\ -00000000000000000000000000000000 - -00000000000000000008000000000000:C50E7CD771628964E708425160FFB02C:\ -00000000000000000000000000000000 - -00000000000000000004000000000000:B293B07F92D68C18FEC1466996B78020:\ -00000000000000000000000000000000 - -00000000000000000002000000000000:DE21B2A6C8D7B90A7714DB3EF5209A6B:\ -00000000000000000000000000000000 - -00000000000000000001000000000000:4700E22C08FE953CABAC7E78A3F747A7:\ -00000000000000000000000000000000 - -00000000000000000000800000000000:504C1D7FAE3AB9A62323F21BF9A80A67:\ -00000000000000000000000000000000 - -00000000000000000000400000000000:064BA0E8ADDD8E9DF4496E6931AD25F4:\ -00000000000000000000000000000000 - -00000000000000000000200000000000:51D0B15C08FF32F1DCE7B28320875566:\ -00000000000000000000000000000000 - -00000000000000000000100000000000:1A20EA3DB071121460244EDE27DA7A39:\ -00000000000000000000000000000000 - -00000000000000000000080000000000:0035A5F7557B1B009327109D0C62F25C:\ -00000000000000000000000000000000 - -00000000000000000000040000000000:803939C10EE11BB254A7768FAD053DA4:\ -00000000000000000000000000000000 - -00000000000000000000020000000000:35D493255A870959C12F26170E6A1B64:\ -00000000000000000000000000000000 - -00000000000000000000010000000000:DE8381198215D45B1BE787E4E8438500:\ -00000000000000000000000000000000 - -00000000000000000000008000000000:B22E9707E738F723CD9B99386CE0162E:\ -00000000000000000000000000000000 - -00000000000000000000004000000000:24C65ADDE5C3CD24B75C343782E87F6E:\ -00000000000000000000000000000000 - -00000000000000000000002000000000:0050FF2C1A3C2AA68207D333F9956A72:\ -00000000000000000000000000000000 - -00000000000000000000001000000000:162F7B8D35C1A98305BA0FE2A91FF27A:\ -00000000000000000000000000000000 - -00000000000000000000000800000000:223D6117FE4864C2B3C513EAC2A5266A:\ -00000000000000000000000000000000 - -00000000000000000000000400000000:3DBF645715ED7AD1964E2DCDE2F8806A:\ -00000000000000000000000000000000 - -00000000000000000000000200000000:3DBB85509557BB00FE0F2013A90A5753:\ -00000000000000000000000000000000 - -00000000000000000000000100000000:F2D75E45A62D1758C7A542BC805AC482:\ -00000000000000000000000000000000 - -00000000000000000000000080000000:77628153A62DFD455B1C0E5B6CE9688C:\ -00000000000000000000000000000000 - -00000000000000000000000040000000:8AE9DF2D94F6E85C86459132130E1BF5:\ -00000000000000000000000000000000 - -00000000000000000000000020000000:BB610990F42303F4ECCD795E16780A13:\ -00000000000000000000000000000000 - -00000000000000000000000010000000:A38330C5C0B464FFD6983972CF9541CC:\ -00000000000000000000000000000000 - -00000000000000000000000008000000:EFD11CA98FEBB6F1ECBEBBCB8BD5E35B:\ -00000000000000000000000000000000 - -00000000000000000000000004000000:3BC6740BF141DD33D65FDEAA10BF1655:\ -00000000000000000000000000000000 - -00000000000000000000000002000000:FCF7BE4B89B54547C0BEF84EB85734F6:\ -00000000000000000000000000000000 - -00000000000000000000000001000000:CBF5EF38DDEBCA39F2F6BEB2F3042D96:\ -00000000000000000000000000000000 - -00000000000000000000000000800000:1119C20F08D4EA77A13C331678D4D71F:\ -00000000000000000000000000000000 - -00000000000000000000000000400000:5C8241DA3FB0DC7328271B9FF72C91BA:\ -00000000000000000000000000000000 - -00000000000000000000000000200000:337FCEE0AD0BDCA24AF5411B69D39B37:\ -00000000000000000000000000000000 - -00000000000000000000000000100000:F6C56A841A31D58A90F5693F87380A3F:\ -00000000000000000000000000000000 - -00000000000000000000000000080000:DD8C11B46F768B7CB2EAEE7E3448DD37:\ -00000000000000000000000000000000 - -00000000000000000000000000040000:B8EE7182E563888E4F99335CF0372598:\ -00000000000000000000000000000000 - -00000000000000000000000000020000:FCA9BAD58DD9C77B0BC0E616E7DE7F2D:\ -00000000000000000000000000000000 - -00000000000000000000000000010000:798DA99BEFFBF99B23A3C15A31F60CB1:\ -00000000000000000000000000000000 - -00000000000000000000000000008000:015CD86F000C87948BF3591C3DE4391F:\ -00000000000000000000000000000000 - -00000000000000000000000000004000:B40B9945EEF7BC52E0B244ED71FAD3D3:\ -00000000000000000000000000000000 - -00000000000000000000000000002000:D9BBB27B7D8AB20241E60F04108F1E12:\ -00000000000000000000000000000000 - -00000000000000000000000000001000:6EC3F259B3FA960505CDE9D20F9EB905:\ -00000000000000000000000000000000 - -00000000000000000000000000000800:01C1772AD104A988B2978447B91199F0:\ -00000000000000000000000000000000 - -00000000000000000000000000000400:F8D5E997A8DD1B5BBE79C9F36B94C73C:\ -00000000000000000000000000000000 - -00000000000000000000000000000200:4040058B08B27B6A585F18BFDBAE3E29:\ -00000000000000000000000000000000 - -00000000000000000000000000000100:55547D09ACAF0C915B24E15ABAB0C827:\ -00000000000000000000000000000000 - -00000000000000000000000000000080:FD7A0B33D397DA035D146DD56C869960:\ -00000000000000000000000000000000 - -00000000000000000000000000000040:80C38900313E9350219EAE9AA7DA5E1B:\ -00000000000000000000000000000000 - -00000000000000000000000000000020:F50D8495C3DCBFF4DFED0736F92475BB:\ -00000000000000000000000000000000 - -00000000000000000000000000000010:58A06DC5AD2D7C0550771D6E9D59D58B:\ -00000000000000000000000000000000 - -00000000000000000000000000000008:EEE324733E6409500FC9F9D6DCA185E0:\ -00000000000000000000000000000000 - -00000000000000000000000000000004:F97C415886D05C12598F2C95F6B3EB16:\ -00000000000000000000000000000000 - -00000000000000000000000000000002:F0FC7D86D814589A09D8EC136F95A124:\ -00000000000000000000000000000000 - -00000000000000000000000000000001:CA737FF1FD0FE5B8E41E90358A5F2CB1:\ -00000000000000000000000000000000 - -80000000000000000000000000000000:62EF193EDB7D399ACA50EC1CBE5398D8:\ -000000000000000000000000000000000000000000000000 - -40000000000000000000000000000000:E7A58D547688BA8B69DA949E38AA6FAD:\ -000000000000000000000000000000000000000000000000 - -20000000000000000000000000000000:71579F70A8EDB2BA5C00C513E2D7DEEB:\ -000000000000000000000000000000000000000000000000 - -10000000000000000000000000000000:C6171EF892F8224DC5FAE230AF629F52:\ -000000000000000000000000000000000000000000000000 - -08000000000000000000000000000000:C6A61053C48D7ECD7DDD12DB0F316AD7:\ -000000000000000000000000000000000000000000000000 - -04000000000000000000000000000000:EA5833714F1324DAB7F53CACC63F784F:\ -000000000000000000000000000000000000000000000000 - -02000000000000000000000000000000:450BCB0C7351CB1CDAC5D02E80D13C64:\ -000000000000000000000000000000000000000000000000 - -01000000000000000000000000000000:C267D3634F84215FB7B4635AFA385E52:\ -000000000000000000000000000000000000000000000000 - -00800000000000000000000000000000:6DB5B1B156DA1C36B9AB5AB59B063C29:\ -000000000000000000000000000000000000000000000000 - -00400000000000000000000000000000:EDF2D9B19FF75561E8FA6F411C4A0431:\ -000000000000000000000000000000000000000000000000 - -00200000000000000000000000000000:A11AE84E6D2C56DED2B9497FEC7504A7:\ -000000000000000000000000000000000000000000000000 - -00100000000000000000000000000000:B3A1A1E271BF94DA3A5ECFF1D4293A56:\ -000000000000000000000000000000000000000000000000 - -00080000000000000000000000000000:5577374ADCF2F58EEEFFC432C42AEB76:\ -000000000000000000000000000000000000000000000000 - -00040000000000000000000000000000:CD9D355C3574343BC7FBE645CE7EA721:\ -000000000000000000000000000000000000000000000000 - -00020000000000000000000000000000:76EB4C046F052AE4ED41060BF60067FB:\ -000000000000000000000000000000000000000000000000 - -00010000000000000000000000000000:1273A4BC420BCC9E29619567B1E61762:\ -000000000000000000000000000000000000000000000000 - -00008000000000000000000000000000:1F80E1CE3F12C96F2E647BACB6DA78D8:\ -000000000000000000000000000000000000000000000000 - -00004000000000000000000000000000:12D34A7875E716B37A7E250D37AFFDEA:\ -000000000000000000000000000000000000000000000000 - -00002000000000000000000000000000:5A54D764EEFFC4B64143A58B071514B4:\ -000000000000000000000000000000000000000000000000 - -00001000000000000000000000000000:F4F1567BDC5B1F938D5A214419090FE0:\ -000000000000000000000000000000000000000000000000 - -00000800000000000000000000000000:6CB91B935A0FBF49636CDF64A12955B7:\ -000000000000000000000000000000000000000000000000 - -00000400000000000000000000000000:C082154A07AF64FF6ECA811B0E3302E6:\ -000000000000000000000000000000000000000000000000 - -00000200000000000000000000000000:49A746CC225C1B6009A93649CDD9EDCD:\ -000000000000000000000000000000000000000000000000 - -00000100000000000000000000000000:1CAD0512E3CC51210B411EE452DF62E4:\ -000000000000000000000000000000000000000000000000 - -00000080000000000000000000000000:4FE9A0CF34BBCFFF906D8450197CC9D1:\ -000000000000000000000000000000000000000000000000 - -00000040000000000000000000000000:38DB8EF6C8993F17BB4D1614B9DE15D4:\ -000000000000000000000000000000000000000000000000 - -00000020000000000000000000000000:08DB3F476F551D19D9643A9E139E0553:\ -000000000000000000000000000000000000000000000000 - -00000010000000000000000000000000:F0F518F73795AB51BFB6E0AA99A0DAC7:\ -000000000000000000000000000000000000000000000000 - -00000008000000000000000000000000:91544D597F679E7DFE6D16D475809851:\ -000000000000000000000000000000000000000000000000 - -00000004000000000000000000000000:B1F92601B6D8C6B81176A46EE7341D28:\ -000000000000000000000000000000000000000000000000 - -00000002000000000000000000000000:796C3A8CBC6450E51FA6F8765ACD0F10:\ -000000000000000000000000000000000000000000000000 - -00000001000000000000000000000000:5F7BFE71BD2E81599DDA3411BC1CA579:\ -000000000000000000000000000000000000000000000000 - -00000000800000000000000000000000:2DF7D576EC6296101CAB16012092C12C:\ -000000000000000000000000000000000000000000000000 - -00000000400000000000000000000000:20769DE071FBE22AE49E7B3F5D646418:\ -000000000000000000000000000000000000000000000000 - -00000000200000000000000000000000:B6F5C012E4BA15DC86536F328B137FC0:\ -000000000000000000000000000000000000000000000000 - -00000000100000000000000000000000:1C3031DD05EAA4C278B55EF0E7E4C1F9:\ -000000000000000000000000000000000000000000000000 - -00000000080000000000000000000000:3D72A53BD537D04AC59E0AF36D105ED9:\ -000000000000000000000000000000000000000000000000 - -00000000040000000000000000000000:A6FFE499A2050C38F4E89DBF12B27430:\ -000000000000000000000000000000000000000000000000 - -00000000020000000000000000000000:BFBB2A537B2C1339D6230F35A256F289:\ -000000000000000000000000000000000000000000000000 - -00000000010000000000000000000000:70E79718C97DDB187411436AC072B148:\ -000000000000000000000000000000000000000000000000 - -00000000008000000000000000000000:13BB56699085842B81DBE8FAA8B26269:\ -000000000000000000000000000000000000000000000000 - -00000000004000000000000000000000:3E4DB71B9C737C7F8AEF632A5ADEF61D:\ -000000000000000000000000000000000000000000000000 - -00000000002000000000000000000000:D7A254B7341C7677C72F9DE729A3BB78:\ -000000000000000000000000000000000000000000000000 - -00000000001000000000000000000000:527D14E58B74224622DF7F3FD65932F5:\ -000000000000000000000000000000000000000000000000 - -00000000000800000000000000000000:708703993AD1DDE5C7F8714686F3AF32:\ -000000000000000000000000000000000000000000000000 - -00000000000400000000000000000000:C57D3ECB71A7DA4708DE6F338BC13E09:\ -000000000000000000000000000000000000000000000000 - -00000000000200000000000000000000:B31FF60BE0FDC17001CAF87FC7FC0B2D:\ -000000000000000000000000000000000000000000000000 - -00000000000100000000000000000000:01877AC646A283472DA74182FDC1E2B5:\ -000000000000000000000000000000000000000000000000 - -00000000000080000000000000000000:3C678BADA3FB1B872C018DC035AE16E8:\ -000000000000000000000000000000000000000000000000 - -00000000000040000000000000000000:A2CB209DA6AA40E043E6FB9DD2476100:\ -000000000000000000000000000000000000000000000000 - -00000000000020000000000000000000:4F9402FF56D04C8FB37DBE1A3109D2DE:\ -000000000000000000000000000000000000000000000000 - -00000000000010000000000000000000:342DAAD90F0F1699048D5CD16FDA2EC7:\ -000000000000000000000000000000000000000000000000 - -00000000000008000000000000000000:E68CC86CA4D952BC3890AEC0A7AAA4B5:\ -000000000000000000000000000000000000000000000000 - -00000000000004000000000000000000:02A88364BF94A677124F670A566E3F0D:\ -000000000000000000000000000000000000000000000000 - -00000000000002000000000000000000:C961EF325E2A32A4359CC63BE1EE2C77:\ -000000000000000000000000000000000000000000000000 - -00000000000001000000000000000000:03BF43C9083E4D9919D12FE5C0315E67:\ -000000000000000000000000000000000000000000000000 - -00000000000000800000000000000000:B27063442470BE07DCC2256EC71A4F1A:\ -000000000000000000000000000000000000000000000000 - -00000000000000400000000000000000:222CC5A29084A4BDB05D4C2FD95648DF:\ -000000000000000000000000000000000000000000000000 - -00000000000000200000000000000000:E08686BFAA936E1890AEEC834E3B474A:\ -000000000000000000000000000000000000000000000000 - -00000000000000100000000000000000:10DC4FFCAC5F5A1FB668277E8E75BEAB:\ -000000000000000000000000000000000000000000000000 - -00000000000000080000000000000000:03A9199978F9D652A4C528FF86C39CE9:\ -000000000000000000000000000000000000000000000000 - -00000000000000040000000000000000:DDF718A1BEB37CC1B0905520DB7C1611:\ -000000000000000000000000000000000000000000000000 - -00000000000000020000000000000000:2072191C277EE40FD557FF5F67A2A546:\ -000000000000000000000000000000000000000000000000 - -00000000000000010000000000000000:96B3608C06112F619B156105EB082BBE:\ -000000000000000000000000000000000000000000000000 - -00000000000000008000000000000000:B5D919DFD9828C4FF4427E72ABFC77B2:\ -000000000000000000000000000000000000000000000000 - -00000000000000004000000000000000:9570E7A96D4674C800AF8DCD01DEFF64:\ -000000000000000000000000000000000000000000000000 - -00000000000000002000000000000000:59723DB66EDB29A9C81175668903777F:\ -000000000000000000000000000000000000000000000000 - -00000000000000001000000000000000:1779BDFAC6DB722BCAF4D3A8D9D2E725:\ -000000000000000000000000000000000000000000000000 - -00000000000000000800000000000000:5107B50A150998C6EA01C14697FC0E53:\ -000000000000000000000000000000000000000000000000 - -00000000000000000400000000000000:36A6CAA08BD5D2B332E9323F7C2E76CA:\ -000000000000000000000000000000000000000000000000 - -00000000000000000200000000000000:D1CF37451667EDB8D2E9934D39A27A92:\ -000000000000000000000000000000000000000000000000 - -00000000000000000100000000000000:4E96227B0A018755FBE8AD5BF0E421B0:\ -000000000000000000000000000000000000000000000000 - -00000000000000000080000000000000:3221B3D3A24745B483BBF99509B330A0:\ -000000000000000000000000000000000000000000000000 - -00000000000000000040000000000000:98A4AB39B84D21D36A5DDC2660BD68C5:\ -000000000000000000000000000000000000000000000000 - -00000000000000000020000000000000:E5C351E1783465EDBA5CE0592BC77E8E:\ -000000000000000000000000000000000000000000000000 - -00000000000000000010000000000000:35489488EE33D0344C1BDB6263D28286:\ -000000000000000000000000000000000000000000000000 - -00000000000000000008000000000000:97EA899F53C60536DAFEB18123FD6C5B:\ -000000000000000000000000000000000000000000000000 - -00000000000000000004000000000000:8511B11C7D2D8FBF63702A7E3AACA08A:\ -000000000000000000000000000000000000000000000000 - -00000000000000000002000000000000:FE0C90596E4F47FD8A9927D83F4DCA52:\ -000000000000000000000000000000000000000000000000 - -00000000000000000001000000000000:186FE000683CC19F621BC6C2DA300B71:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000800000000000:8291F94EDF578E8A70CD0CF8F3FB3558:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000400000000000:2891C81846949C917E757EBAE20D34EE:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000200000000000:762D85A32DAF0C9F3CFB3388E808FEC2:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000100000000000:CC6807D209B728C559C32336FD8FB71D:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000080000000000:FCD07057EF4820154075A0DDCBFC0BBD:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000040000000000:FDBFE2C3FFC82792D338388A1FC6D22E:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000020000000000:04D5F7CD68FC2352BDDBC82CFE35DA80:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000010000000000:B1784A7BF395FB525471EE3DC8972FED:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000008000000000:CB5D8A62D16220123EF0005876E35B19:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000004000000000:311292EDE1F30E9F22F1EEF8FD19BD80:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000002000000000:382BC583EC9B6E16E3DF2188CF0BF1E8:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000001000000000:632C9AD674BD1B8A15827A789BD133A7:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000800000000:0EE175DF45B889CED6974E9C2B8F8A78:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000400000000:6131A1A18F00CFDA5B4AF4FBE5487445:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000200000000:0C8746747460A540E2304B55C12EA672:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000100000000:DD6D4D2AA3EB702C597E4E2DE59BF4C9:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000080000000:774EDF219459A4744AA1CCDE7D969A60:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000040000000:1D7B340C4CE68AC97369FFF0FF9980C8:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000020000000:D18104617258AB02AAE02ECCF552A891:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000010000000:8DC66F1D7648EB62F1DCBEB3CD237985:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000008000000:ABF090054ABE052ECE0B07BE6B6CC6DB:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000004000000:89239AAFE9BA86E5EC794397E0180111:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000002000000:6E1CDC049333211B4D7533E21504D200:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000001000000:EFE662AF24D9997FAE45CAD4F92F3091:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000800000:16F53F3A6CC3B4F86DDA1B8792244901:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000400000:047CBACDC5EA84771A61FE1204813D46:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000200000:B442FF3318822EA7F60E2A8A082A043A:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000100000:971D07AEEDBCA5B7BDCD033F708C97DB:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000080000:D307263273E250C0B9E08FF23003B0D1:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000040000:75F7005CA9C6EE5A1F9A4897FA67C661:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000020000:9B421C68873D49F07E3B9025AD609787:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000010000:5B182593B47DC674D8B1942CB97224B2:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000008000:A896871A3157CCD1F5A788E253A6B0FD:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000004000:789A3D2B2A70181EFCCE5529F200DC44:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000002000:7F9462D23DB6E99AD0A54EA84DBD94E2:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000001000:23EAFE1F7CCE96B6BFE2484E1DFC4AB9:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000800:A76C323805F9C252C8B86C83294B9987:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000400:D8CA1075B7A3F2CF2DAC0980B1B66CC1:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000200:8206D89F2A07BA6403647FB85A2F4D7D:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000100:3DE7573CD46D85488364472B038869F9:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000080:31C62401D6E9E4995C0913747BFE7C7E:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000040:C464728025916B4E8D56E4A9F98C1A25:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000020:0D4643EE09ABD6D6062187789AE9A77D:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000010:0C06EAC3043ABE6554C2DA42F21E7B05:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000008:E26C6B2CBE2130729A5BF96E7CD29912:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000004:4DE2B8FFF3588A5D4E62CADB720E5BCC:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000002:B96DD46C6A286BFF721693A98491F529:\ -000000000000000000000000000000000000000000000000 - -00000000000000000000000000000001:64F1DBD3C79EE69AC9E0ED5F554F4AB6:\ -000000000000000000000000000000000000000000000000 - -80000000000000000000000000000000:23A385F617F313DAC05BCB7EABD61807:\ -0000000000000000000000000000000000000000000000000000000000000000 - -40000000000000000000000000000000:35BE2B4738602A1DA3DE5C9E7E871923:\ -0000000000000000000000000000000000000000000000000000000000000000 - -20000000000000000000000000000000:03E8BB7A568E95BA792DCE77D5523C2B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -10000000000000000000000000000000:D3ACBE92C482D2E806FD837E41DBB288:\ -0000000000000000000000000000000000000000000000000000000000000000 - -08000000000000000000000000000000:DC3B1C37C69B4059EAADF03FCD016EB4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -04000000000000000000000000000000:3C9D9BD904E0E6916089A4BAC35E5368:\ -0000000000000000000000000000000000000000000000000000000000000000 - -02000000000000000000000000000000:C47DA045701B93A388E76FCBCD349F22:\ -0000000000000000000000000000000000000000000000000000000000000000 - -01000000000000000000000000000000:52F264B196925A345CA5ADC57C234B96:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00800000000000000000000000000000:C923754C5AD2E3F842D01705A716BE8A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00400000000000000000000000000000:630075C7563CDBACDFEADB781CC9467C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00200000000000000000000000000000:CB4F69BCC76A2499C6FCFBBE4CEB8CFB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00100000000000000000000000000000:0442F15EA2BD6D9EB773F9B99804DF56:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00080000000000000000000000000000:9CE6896C15C3CC00E2AA1944D7117B98:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00040000000000000000000000000000:E934066740023616B349F45582442647:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00020000000000000000000000000000:D08EF37A59D94ED645B1D1B160E3E816:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00010000000000000000000000000000:E91891CAC17FE493C7167C6CB59DCB69:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00008000000000000000000000000000:B27A42D2C870DC96BC6C551218C44CC4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00004000000000000000000000000000:CE8D23E64E6BC18208CEEB282E387326:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00002000000000000000000000000000:36F76678A27F2F5A436073D5ADA4AB3B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00001000000000000000000000000000:D0EAA36F9A648905B277F0BD24B1A339:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000800000000000000000000000000:82BE0E3673E7872BF79BBE2A45F4BD93:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000400000000000000000000000000:013CAE3986083F8D321273D68CA9784D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000200000000000000000000000000:0A7FCF71DAC023718153FFB761BAEBEF:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000100000000000000000000000000:C784C5EA8CE3897F153336047D2FE3E0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000080000000000000000000000000:FE776B4476A4F029E5EA9293E3C1BCA1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000040000000000000000000000000:302A5F9A73B07D83699EB9DE1D86DB7B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000020000000000000000000000000:E6C43F6F62F1EEE0BDB3484F325053B6:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000010000000000000000000000000:C5579556F710EACFAD9319AA85B89F6F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000008000000000000000000000000:96C88E46C1C2BA0B583F30FE0248A794:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000004000000000000000000000000:287D27FB1CA40821294B1AFC868F3A6F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000002000000000000000000000000:F4602DF76A24010DE5A1353043CF178E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000001000000000000000000000000:47F98AA9DF5E7314D3D5571EF6B95284:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000800000000000000000000000:77CBF7DCA60F913FD9C82AC65212EBB2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000400000000000000000000000:BEB1C2BC4B5C363FCF5A0466883079A9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000200000000000000000000000:2AB8B9254ADBDCE17F0A719815DEFF7E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000100000000000000000000000:75A30CEAA03AF66E44A85DC66DEB20C9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000080000000000000000000000:C37E64CE86B615573C4C42BBE71DACD8:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000040000000000000000000000:284CB50259A96CCED1C1C64D8B603024:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000020000000000000000000000:BE346B07869425CBCA54F93D7A1F4035:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000010000000000000000000000:60EE2023B03033A972E28E4A21C7005F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000008000000000000000000000:4E1FD4BC99AEA3BCC6B9066EC6329D43:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000004000000000000000000000:079BDF2DAD2CE6FB7D21BBD76A7ABF48:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000002000000000000000000000:6B933D9914169C2A704E52EC6D7E4E1D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000001000000000000000000000:FD854A50372E5D301367D8E98CC88028:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000800000000000000000000:8CE94A2C43B01825CE5F271135481BB2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000400000000000000000000:73A43C713898BA7D7D2B6BC8673A7AAA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000200000000000000000000:13873CFBDED482C0B7B435025A9F1CF4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000100000000000000000000:3F168CD782896F22C56A92A09EA7E162:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000080000000000000000000:BCDF1C8686E68810FE90B16ECAB46147:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000040000000000000000000:95C18EBA59E3CB6359DE7CCE9E8751F9:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000020000000000000000000:03CFEA7D36D56552CDEF806215EA7596:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000010000000000000000000:CC189A2E8F529EB139DCA2033109F40B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000008000000000000000000:453912532144CED54B7D4049BC8B8CF2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000004000000000000000000:C6DBBF405A056A80CA788267538FE8F0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000002000000000000000000:2EB5E272874CE244A328BA6410480B4C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000001000000000000000000:263BFB611CBD9D9C7FF6B1A9E3276696:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000800000000000000000:9CC3EB61A9907F5F22251239A9EB38ED:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000400000000000000000:726A3EE922EDFE52206C2191E1F045F4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000200000000000000000:1344C1E04A9D97668A240D82396AC021:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000100000000000000000:9067BAA44C264E9A2AEC292390A6F492:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000080000000000000000:1176621BD24D35670B08D6A065806B02:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000040000000000000000:DF0D31D14D81FD086E8E32479919FDBC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000020000000000000000:44BAD80B0BA01E971ADC4139D6DE0C36:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000010000000000000000:76C59131EFFAE14058D99E22698B602D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000008000000000000000:7604D9F3110F8440917ABCEA49710ADA:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000004000000000000000:4584FCBB487171176C4318082EFEFDF7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000002000000000000000:019D3B42FA31A9F9175759E6C3193A07:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000001000000000000000:C324FF5F71A974F13F5D83226441E3BD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000800000000000000:D9DF41408DFF80DE7C9571706B39038F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000400000000000000:FBB99A524AC23D74047D814EC0AEDBE2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000200000000000000:877C855E25345F6C7DB4237ECF64C874:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000100000000000000:206500F822C1305F9D61F49FC57AFBF2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000080000000000000:C7538D97A78844C3C00740865E26755B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000040000000000000:FADBC4A6E4564041ADA094C603CABAA4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000020000000000000:04C482E0707DE6DC1917727D00C4FA6B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000010000000000000:EE36B8996AFF98BEA6E2115B9D173321:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000008000000000000:DBA4A5F38B104985D796ECDDD812B605:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000004000000000000:1DC0F910CD5AF1E5734169459E170192:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000002000000000000:C3B7D6914052503D377B01DB4E3A630D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000001000000000000:54D807506602ECF7D6B8C4D923317738:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000800000000000:ACE4949143D4D1441AA854331E7F511B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000400000000000:F7BA140AED4756B26789498A17EBF62D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000200000000000:F23E08B81ACB75FE2326A94ECC5968AC:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000100000000000:4CF26F088604368B17DDC09FF9D0146D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000080000000000:E93AEB7AD76A6AD0AF4092F363421F1B:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000040000000000:3D234C0F78ECBEFCCDCE1EA6EC98C145:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000020000000000:BA300B0234F0C96125D33123CDD7D6A4:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000010000000000:1CF1A160FAD7E744F08BA1454A999211:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000008000000000:59A9E8C14ACBCEC235529425CF86998E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000004000000000:22D29CFEF3A6DC0EC67A9EA8523D6158:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000002000000000:513971F979FC906FADD982D7F08E4F05:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000001000000000:6A95C07D7FACF2CD36DF362116A2DD5F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000800000000:CD62AD57393A38607436FAF0985C2D50:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000400000000:5209ADE137B93BA0963528E3E1A40F2A:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000200000000:545BDE9D1C11239ED70D93060F24E397:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000100000000:720622F5194578B3C24B5DDDC7E30327:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000080000000:9E12338BF484106249754EAA6C441192:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000040000000:F13303DC759CA65097EC87F8D854163C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000020000000:4A2A6EB6845723C1C790D693B596CDE3:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000010000000:EF3D7C67417CA1FEEF03EF71441BDDFE:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000008000000:214FB38A7511A87CF160F59CCA2B8E33:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000004000000:DCFFDB5E44574D0D593A70ADA4C79474:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000002000000:AC9D55D4A4FBB80C9B79C9077BA381B1:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000001000000:05C6D61B75312924E0BCEDCB4B8D55DD:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000800000:E650CB445AF48A77E8DB6E2EFBCE6FA7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000400000:4C9902E89253D7A172BABFA87DB94816:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000200000:5AF4F5E8491EE7F87EB809D82AEC12DB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000100000:1C11730D62BCA6F847B1457B5287BD12:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000080000:BEF65A32FF7383CFDB5A90C2F3B93837:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000040000:2F3AA68FFE3B99DC92621782F3F9ED67:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000020000:18BD598BFA2C77E21DBD594EE0E5CDCB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000010000:248CF533016A6AB1F84F85B2C5CD41A7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000008000:A3B12F578353514CCC500ADD6C495A6C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000004000:EE2DC099B37D200B4D3930A6DE07208E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000002000:412C9F198D58A0F01F66DF07CF211636:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000001000:5B3532BA46716B02E761339DBAFBAAB0:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000800:0148187CA72EC46B522E4FE7E1261522:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000400:84C529CC4E23683AB90A24A6690662ED:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000200:0D1EF0481593A3D95F0361C776D9A4D2:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000100:D622171C73726DB6620FFDA6540D510E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000080:F218D92AED363C6829F7FA3BA346E0FB:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000040:40CD83A5F0BFD0E1D7FE14299CECFB7C:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000020:512F022157AEF0015E93F3737911A35E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000010:C7A5A88356152E95F36739AB5EF9F63F:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000008:8FD0F15E2504A8F4FD751CA7799FFB1D:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000004:0137C87257A8CBD18C218A867B3AB5F8:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000002:3DB0F1674F187DF1CB036DB33A05A0D7:\ -0000000000000000000000000000000000000000000000000000000000000000 - -00000000000000000000000000000001:23D1247EFF4CA8CBB378DF118369821E:\ -0000000000000000000000000000000000000000000000000000000000000000 - -[XTEA] -FEFEFEFEFEFEFEFE:36552E889D6A41CF:00112233445566778899AABBCCDDEEFF -0123456789ABCDEF:B8BF2821622B5B30:00112233445566778899AABBCCDDEEFF -D51399607F7AA9D7:782E4E131C5BA746:D94576CD1A5F99E4155DC7BEC5D33DF2 -10B233473624CCD3:57733A1DEECE283E:07EF12BC9D06D7DA20131116B665E335 -3B905E951E4FAFE7:776F4965DEB65775:C6462B48AFD604B75FCC455506FFD411 -15B623D1FA2DF9DF:3BD5AD5C9ED6101E:BE195F703D6FEC2232CD0890C981B27D -7C1035940696D91D:5F93FA1D06991415:5B8410F7A9EB92DA120810C56FCAF8C9 -90B245144895F3AD:6105BFB0947828B7:B85C9E26661889D0FF1054C6BE27FDEB -4EF2CFD120B8D4DC:51FAE58A10F7C3DD:A8A1E956D54D238F6CEAB186E7EC99ED -F6CB5353F4A1C432:550AD71BA8A34568:8BC4879201A96368927ECCEEE67024EE -215C080CF158A09B:13D1E24BA9FF7B63:F1372D85D8C3D1A60DF57EEDF317AB81 -568583061DA98D0D:6439B1DFE2ECB541:017F01683F5E009D196FEEAAD385C5A9 -0558B306316B0823:C8F82FE4491A8917:281C932DDD3C364B09F1896007FFAB03 -FDCB2764303222C7:244DBFA1D2C914E4:C1E95465C7EF8EB04254D1A5463C6A43 -EADDBA89070EC46C:5A4909646763454F:0F86DD6C96DD31164B656B0F25E4B411 -C6507BCF99B9C2A1:6F08EC714E8A7C18:FBACFB479AE21194C35B8184E58DD66E -C380B0F1C21D4D37:72D4D4BDF5C00585:2EB36C4A9598D471700A1330070FFFC9 -E5B7C1517F24F298:64374B40BB732354:0A7F48127091780617A1F534B3271BC9 -D14DDF77FDDA17BF:014F1E707D02C8D8:303FB24822A1B8A84D0ECE77B86380FF -B9682750BB15CAAD:9001D21B57AB5360:F04EBF798C193F199C1F532AF383555B -9706769A18A2D03D:835FD788C089FD45:200C0CE59717D5D9AF6813CD207FEE73 -EDB76C54847DA59E:B0C0125494D39CE9:2828D51F98AE0B33F4DE2B7FBD18A529 -178A49BAFBA53F23:ADE26742F25EFBE1:61AABA6BE48B0D0D14FE5D27FAB852A4 -DF4CDB61A5F38536:9C895E72168B409E:2080E2409BA01C8532FC84403EE8C06A -7C944D08DEF34C0C:B784E23E00B3B498:271AD15192C4D1204A4A2561E3DB6FF7 -F4C76C1D47FE568F:62F9E58B0364B0B6:C1E297C0C761777D8A76FFF02D22B859 -CAB16583E15D0074:4563BE765E74653A:23C807A2EF0A551F858FD52D125A47D8 -97B05C60774164AD:714807767366854B:9FA5D4D8CBDFCECD559E3CE88BF78EE1 -7017A263985B735C:CC68E1ED7F7C7832:24F4E91083139099D663647A7FFAC321 -15475A90DF04CD29:416EAB1EBC155782:7CF8626DE76D8462218ED5C9DC8ACC26 -87CA0AACCF146CC8:DED575554058EF42:3C6AD7DF17332A3E1E3DE06007387357 -9268AF048ECBAE67:899B9B877106C764:24237A762D8A89383A2949F5A0F5EC08 -AF0062CD77A84EBD:26DB40C151B74530:209A2833A39472D9720380FFB2F74761 -F922CA875B991A31:2763F255636A34C1:22EBE7A30E8855B3B453A6E926D4F187 -B4ECC305C3DBD8E5:FBBEC8F5DBF4CEFD:1B5E23EBD915C1FEE59F57DD91AF7347 -3DAADD7A9633E19B:4DE5C07EA1564A64:A6BFB85FA91B8CA4197C8B502A62F972 - -# Cascade tests generated by Crypto++ 5.6.0 -[Cascade(Serpent,Twofish)] -0000000000000000000000000000000000000000000000000000000000000000:\ -E78516D21D23DA501939C24C48BCC79DE78516D21D23DA501939C24C48BCC79D:\ -B50638F695AFA16F9378D43374CA8568600135ECD1E513838722366346BC4B21\ -01422291558FAA30A3196CBEB42E67F4C075882482897F72A8A30AE9B3AD426D - -47CB8147C5290D6F94FBF3351777087FA731610A3F66E3CCFA6D9B18F980E687:\ -F234E056923B3DB26AABC8F604F0CE2C1A7F4C35B0B74958014D791668FF6BF4:\ -9E8F6BC09768AED8F533FA4FC35FF6FEB8020FFBC8350DDFD20ACA7ECF1889CF\ -BFCD78E261B9A3CD825401AFA7ADCDFA88DBA8230FB92D4B942C25EE92F27A02 - -B9A28D32734EF678BACD5539FF9FF951AF81F44AFE223256E5D8898FB862A767\ -B90BD2D95E17E4411D02D49481CCE4191EE2C7AE8EBDF6312BDC66317AD42140:\ -065E390C4FD10E9929F30D89A67E0D4CFA3AF90BEF46B2B435B53CBE0B7DD1B6\ -12D4C5E2D03028B488000C06517434FC70F7B62C273CA5DEBD9CA7034D853087:\ -1EF34E47005028F2D95120052855C6001225200A333CA4D7D5A356B5554EE2AE\ -7EBC9BA57BADA0DAFC84C2187C51CB3CCB5EEE40F27C00537FFFCA2851DD8BD8 - -[Cascade(Serpent,AES-256)] -06CEB2B4FD2F0A27B3C90D77D2E9BBD3665A8DCAC9187B1EE9F6A60D39042A9D\ -3719883B3E87845B9D4A8BE258379959775969CBF5768A359797B2FA19FC2FCC:\ -05FFBF6E8097FC746FFAD8C3306E6DB668148796180F26CA5DE06AE76DE16D07\ -8A0E72B259982423ED96FF95719DEB160CEFE7697752B0CFA984A18DDCEF2EC0:\ -EE426051D1ADCE09AC02E2023331F273BB1B2C4C5905DEDA3E1032CCD0DB5611\ -5B011F05688F781E3F790364968E06DC6E7BD5FA38DB068CBD34A85B6B3A9458 - -FBAF0DE6C09D10EB31F21A7C784BF453F82F51EFFA8B363EE6B33DF15204F434\ -45170DED1E39AB922548ED82AAADED6BF470A5226B69D025FE3D532AADDA069C\ -464D2C8A65E1A18698BD521AFB3053229C1539626392031F8C36229FF3178A7F\ -5C716E30DBEFDDD4AC2113071977B795A8B29DA7F467471A996FB63136387C28:\ -7ED1F730EED52DFB63E073A40EAE404E443ACEB9A3B55132E740ACE1EEDF99D0\ -F22B3F2326E2E124594E75ED1915C8D155F24269254B22B6E8C53E9F64E70552\ -D5E3004782C6C47341EBF8716B59DAB49B512B6DF7F9D7FB914FFA56F7F89B56\ -1B6A5DFE9334B7561144B25FE0F57BEBB4058EC7D9EEA57AB62825A86312BBC3:\ -CDCD23F5518DB5DAE8C69B56EB352D4F3C4A64A5FFC8E5BC2511B8310993C48E\ -FA30A0F9E2B98A0FB1FE64173E6A8038047AEBAE22E17392FE32CF1D0DE3BB76 - -[Cascade(Serpent,CAST-128)] -27EDE4B2A3784A33898FA330167317BF7354072672D49DD03D13D3F0856CF3D9\ -C17C1237565E7320BDD23C03BDE195A4FE58623A983DB9C308D5A976D92CD6A2:\ -2D7096A03BAB4DBDABEDB9F069FE68C3E12ED65ACCE43ECF7F6D810B5EEC36A5\ -22B605715BE12003E324436652BEA06BD289DBE886A5DE9E51CFF6C065A21F2B:\ -EFA9CC5F3E245AB463CC60A5015CB0F663676760832CEE6C633A518112E518D4\ -5DD4B627E9507CDB03A1ADD870E28362 - -# MARKER: Cipher Modes - -# Cipher mode format is plaintext:ciphertext:key:iv - -# The block cipher tests above are distinct from these ECB mode tests -# for testing reasons. They could otherwise easily be CIPHER/ECB/NoPadding - -[AES-128/ECB/NoPadding] -D8F532538289EF7D06B506A4FD5BE9C9FD7A929E0FD917686D9520ED236A276D\ -69E63C821F9DE0BF23CF1D19C7374FD1C3139DE2E1BA4693C3E9D29D774C2FF4\ -69E63C821F9DE0BF23CF1D19C7374FD1C3139DE2E1BA4693C3E9D29D774C2FF4\ -D8F532538289EF7D06B506A4FD5BE9C9FD7A929E0FD917686D9520ED236A276D\ -D8F532538289EF7D06B506A4FD5BE9C9C3139DE2E1BA4693C3E9D29D774C2FF4:\ -FD7A929E0FD917686D9520ED236A276D69E63C821F9DE0BF23CF1D19C7374FD1\ -C3139DE2E1BA4693C3E9D29D774C2FF46BA2DCF84C0E7E4D75CB53AD11BA76D6\ -C3139DE2E1BA4693C3E9D29D774C2FF46BA2DCF84C0E7E4D75CB53AD11BA76D6\ -FD7A929E0FD917686D9520ED236A276D69E63C821F9DE0BF23CF1D19C7374FD1\ -FD7A929E0FD917686D9520ED236A276D6BA2DCF84C0E7E4D75CB53AD11BA76D6:\ -00010203050607080A0B0C0D0F101112 - -[Serpent/ECB/NoPadding] -D29D576FCEA3A3A7ED9099F29273D78E2D62A890CEA3A3A7ED9099F29273D78E\ -D29D576F315C5C58ED9099F29273D78E2D62A890315C5C58ED9099F29273D78E\ -D29D576FCEA3A3A7126F660D9273D78E2D62A890CEA3A3A7126F660D9273D78E\ -D29D576F315C5C58126F660D9273D78E2D62A890315C5C58126F660D9273D78E\ -D29D576FCEA3A3A7ED9099F26D8C28712D62A890CEA3A3A7ED9099F26D8C2871\ -D29D576F315C5C58ED9099F26D8C28712D62A890315C5C58ED9099F26D8C2871\ -D29D576FCEA3A3A7126F660D6D8C28712D62A890CEA3A3A7126F660D6D8C2871\ -D29D576F315C5C58126F660D6D8C28712D62A890315C5C58126F660D6D8C2871\ -AA26D561F567520E8AE47528C24C18D731A2193D9A97FED6922B17AAA6372B74\ -BE5DEBD559E303C9C92B174A5107BBFEB626D8F65EDCCDF3AEE475C8A1837722\ -41DDE7C1F1631F5FDED4F42746471BD651D238BA86176EFE39E4695AAEB73B52\ -EA5926CADAD8018962E469BA920CB8BF1EA9062E4D9CEDD5FAD4F4C7990367A4\ -B966E5C5D2277288C61B96A559CC84AFB6A6583C5AACFCD6212B0BD8AEF3C6A9\ -A11DDBD175639341052B0B384678D8D9352299B71DD880E29D1B96452DB86540\ -B2288B968AE8B08648D1CE9606FD992D717EB02EB81A2E939D54ACA91087112D\ -0D809C5EE82F477EBA7B956DBB23463B0F0190D616F5294112FFB7884E8B37F9\ -41BA1B505386B7428B88338188F7E718A3348230BF5CFA552F88D22463D9703A\ -115351622E016BCA26918D17E13225F67EE4E3F2C46FE52ECBDA044C585717DC\ -563A8403FF5309D62370B1DCF5A11EDD2F7D73602B70CD2553E44C1D3F170126\ -155BBD9BE3A965B345E834718F651CEF6CC65E8C5C566E894817350F497816F1\ -EEFA51FC91FEBB6E9F8CB141CC0EB6AF3C6F8380CBD3C996167F2F0E90E71B75\ -6C87EB62A4975356B28DCBF6A64A0BD107206D48FE6DBE19D50314B90AC87B83\ -35706F9B26007071AD8105CFAA1C1E2FF7FEAE5CEC4D11477F24E6B200906870\ -3C0E29E2950F2AC2DACD63DEEB5C7EFA9FDB9F3B740563D5518287DC981FC9CB\ -46D4B5A5A86FEC08FE70D18297DCF51072DDBE038DA040EBB12C509F5940A212\ -DDEB59F02132BE4581FC23EABAA960D6341D9352E36DFD6E4EAF0F6F439BC8CE\ -73A9AB3164FF30350F2DC08E939A104D6DF0C2C28F8E2D44468A61278BB6B429\ -4DAE45AE0CAA032FC97CD4D8C57FB83BBA8AFCAE22070BC882D3A42B38A09E65:\ -B2288B968AE8B08648D1CE9606FD992D717EB02EB81A2E939D54ACA91087112D\ -0D809C5EE82F477EBA7B956DBB23463B0F0190D616F5294112FFB7884E8B37F9\ -41BA1B505386B7428B88338188F7E718A3348230BF5CFA552F88D22463D9703A\ -115351622E016BCA26918D17E13225F67EE4E3F2C46FE52ECBDA044C585717DC\ -563A8403FF5309D62370B1DCF5A11EDD2F7D73602B70CD2553E44C1D3F170126\ -155BBD9BE3A965B345E834718F651CEF6CC65E8C5C566E894817350F497816F1\ -EEFA51FC91FEBB6E9F8CB141CC0EB6AF3C6F8380CBD3C996167F2F0E90E71B75\ -6C87EB62A4975356B28DCBF6A64A0BD107206D48FE6DBE19D50314B90AC87B83\ -35706F9B26007071AD8105CFAA1C1E2FF7FEAE5CEC4D11477F24E6B200906870\ -3C0E29E2950F2AC2DACD63DEEB5C7EFA9FDB9F3B740563D5518287DC981FC9CB\ -46D4B5A5A86FEC08FE70D18297DCF51072DDBE038DA040EBB12C509F5940A212\ -DDEB59F02132BE4581FC23EABAA960D6341D9352E36DFD6E4EAF0F6F439BC8CE\ -73A9AB3164FF30350F2DC08E939A104D6DF0C2C28F8E2D44468A61278BB6B429\ -4DAE45AE0CAA032FC97CD4D8C57FB83BBA8AFCAE22070BC882D3A42B38A09E65\ -58A51ED82169DE7027CBE72452626CA3FF6BBF2FB2C574EC9D5656505B516880\ -47AEA89DBBB5C4EBE819C5BDFDAB16033D2FE7D01071373624D99845D90E32C1\ -708C609C4E75BE40D8DE77F8EA78C2CC98852792C22E971F29C2E125247FB43C\ -AD1FD857DE9B8016C5971FFF86AD399ED669FEF7481FD73B9A45B1CFFE9C556D\ -AE9A816916FB1F5822B2CEC8986F6E5B156775D0F6F432D57D351C62A24AFE63\ -AE812270F7416D05E153E5AB703DCD3FF320F6AD3D00647C23F08699E0EE9F5E\ -DDB3C717C2A6D3E58D38269DBA0243926D64CCD92B1101086DD3F0DDB73312A3\ -1D5F5EA0FD18AB84E242C96FFCC222F9FE12D5B15F5A3C365E9FF3248FB43B38\ -5A0F73507F49A08E68952BEE09DC7D35E7B29A44C8970624CB3A93DA4AE7E498\ -35AE41A5BE2EE591750FF9A7D431B1EE8A69099E689A06324AA0AE431ACAE762\ -FD3B90A8B269090A4CEEA076CF1EB7A580DEDE896BED63917384B1C5E18B7B57\ -A7EB6B127A7A32898989E32CFF9A46BF6A62268500E53AD8A5FBC95226266BD9\ -AAE1BA501274C49A7A7EC67D7577114B7707DAB9D066AF086C09E7DD4116CEA6\ -EE25DA9A65EF05A31ED0BDF56D525EC8968D1D01AF7165C5AEAC76BD367A575A:\ -00000000000000000000000000000000 - -[IDEA/ECB/NoPadding] -000000010002000301020304050607080019324B647D96AFF5202D5B9C671B08\ -FAE6D2BEAA96826E0A141E28323C4650050A0F14191E2328050A0F14191E2328\ -000000010002000301020304050607080019324B647D96AFF5202D5B9C671B08\ -FAE6D2BEAA96826E0A141E28323C4650050A0F14191E2328050A0F14191E2328:\ -11FBED2B01986DE5540E5FEA18C2F8B19F0A0AB6E10CED78CF18FD7355E2C5C5\ -85DF52005608193D2F7DE750212FB7347B7314925DE59C097B7314925DE59C09\ -11FBED2B01986DE5540E5FEA18C2F8B19F0A0AB6E10CED78CF18FD7355E2C5C5\ -85DF52005608193D2F7DE750212FB7347B7314925DE59C097B7314925DE59C09:\ -00010002000300040005000600070008 - -[DES/ECB/NoPadding] -059B5E0851CF143A:86A560F10EC6D85B:0113B970FD34F2CE -4E6F772069732074:3FA40E8A984D4815:0123456789ABCDEF - -[DES/ECB/PKCS7] -:705FDF4DC7ABFBFC:02D863A4885D417A -FA:2281AC7CFA703BA9:05ADD235B01BBDA7 -B895:8C3BF9AB9D16C8CF:93F04843AFC3A191 -8E97DE:BE38BD2AFE108D2A:1F4E2C013314B55A -C1DAE88E:998341E8B0CCE82E:0F59C05186431E13 -A6E0360E88:F5E88FCC387B8883:E68BF7B98D61FED0 -55E67A79F043:A868B107BD96F35C:AE3AB00A0BA38BE0 -D77C93B63D6D5B:19DA07A34FA683C4:9B661C7A536AFC6D -328D09508E747AE1:9C75845C6BFF94438EB7E7E4C77342F0:8E1C689280575F05 -421D4BDC3869E59F07:8DF60DC27A2E2EE23360BE31343FCBDB:EB4A6B437572E1E7 -160E525583C3E4FBC4FE:9B649660DFE5B875CD81180AD627943F:FFE58726B90C9F97 -E873B3C2B31130719E6469:6E33AE2AF48CC39697800A3AA357CC5E:560EE1ED2CC2BFFB -405915ADC0111EB8AF225612:569BE1F2AE91785B0634F8DD4EC1DFF2:012A7DE9CBFBD230 -E923C535186730F309CDEA6DEA:846D7314F76E00902054BD2B2AE1F580:3D5D56CA2E8E359C -116053A5820F9D36650EEF49A05B:\ -9BD56C43036485B648EFE6D31E69F0C6:2AD63A5312BF4259 -B6DCD40077FE89138B5A2ED35E1B3D:\ -2FBE419BADA6D4BF3F6C7BB2A1AAC329:7FF12D4D8A9EF138 -08F0AA208F8A06C6292838A8CEE9104E:\ -44BFCA2722D274504AF482E9261CDB7B16918BE77A461B3B:F71A3B1AABD660BD -878412F6255FF4360A22772711289FD351:\ -9C92FDDE178D3B6C895AAD1B8DC886176910B021D5B3AA77:1ED8B08898872631 -1399A0CD9F2778BCFBA9C0F7E7C89CA069E3:\ -5972F89D8C161DD30A409BCDBF43B20BB104E8A293C48FDD:0DCB3527035253A5 -EA1CC272D3725E4C5DC56079FA3C9F26A1373A:\ -D1B2FCC83CBF11E022C058FCB988CBBBC3843517F5E9D900:BF4B260909243B2F -098DD47EA5784D307C115824CFC3443983FDF58B:\ -77DFAE7F46AF6DB0D0E5775859943E2875854A680B54B59B:5D869F3486DFE1A1 - -[DES/ECB/OneAndZeros] -:09B0A56E79B07C38:E7BADA575103632A -96:C602F30C18C2B878:06779EACFBA84CFC -6EE7:5E9FCE6A89418AEA:09EEAA55C12DBFED -665672:85589647B376B1D1:79C5B2870123FA92 -7F862990:ABCEF68C99607B22:37EC3B88DF82E1F3 -39E551A9F1:04F6D20B0A25B97C:0BD2E04EC57814A1 -52BD5DAD29B0:0828E5AF2A1E1157:8900F77C54E909C3 -49EF95ABD932F8:A3325FBF67FE8F22:D5E02CC281CD647B -B0F0218A6C30542F:E8045C90741ECCE8F90B5469B2E3B359:C4E91F2F3EEC7639 -80EE077361737B995C:F2E9AD2163C0665263CD11C7D976260F:AF593C04EDE5F7E2 -3BE81FFC61B21BFC81D6:59EBA86DB5734577B9E665C3D8BF65AF:77B77F440177BF65 -3EC3AF047C2817138C818A:B8C17B79CB5160EE4612CB5639D72AC8:B1E69181A32E7CB1 -0133FFE3ECDE48F98D3BDBD4:8CBFF36A7B691F168AA2D93A9360DFA5:D6492B1E5A936965 -638A220840B1ACBC24CE4F8B5A:F7A3E8DF04252727E4056A5AF9392DEB:404B2DC43EBF706D -70197E5EE1D774B11005E8700740:\ -8A8A81862C313C7F904D86B953A6E5FB:8188847D3F21BB71 -9EB11AB4E97D026703BFD0645108E9:\ -D7D02FEC752ACD59B235441A4D6682E7:EE97A705E4E375C8 -87F1A7ED6D8C4AD56AB716BC8E02D8DB:\ -A6BEBCDEB9285A54EBCEF6F94142A60C0E5D90CCA6D256E3:A1B692CE93547EC4 -5448723839EA0910C29931F5AE6BA9423B:\ -AA328F5083DBED23B18CD35C4B4B185714DDDB02E81214AE:824BE4D31F8FF51A -F454E24EFF899FA825534965855D2B1D03E5:\ -27D077F2B382CD8C6520346DB77D83D91BD5B08882203858:91B2A69AE61A53A7 -8C4BCB186170411186D2A0496051E0988FC83B:\ -E1C1D7EF18964E2EAFF84169252F94EE315209D5BC151241:E43579BA4E10BD39 -90CBEFA6E4F3D57BE288197E3E1C2055CE07979B:\ -37860F65AED6EE5312E3FEC4F2CF948A3CFCB27092A7B3C8:346ADDF6AE9E62D5 -9A5476706A45500C9AD6AFBA73E68E0355C11DFABD:\ -ADC2FACDD08D2AF9CB00E22209C109D0D39BDF9EBC1200E3:3C6A1A7DEE4FF813 -9EFBCC5E45E15F83D4A62995F4F8CAB036A63F1B18CD:\ -2D9C371F7CD55E7A95B2042A91C9B10025078FF0070EBC62:D584B755C7F2E8F3 -3758CF70B2A1A36BEB273545809B35C92202124A30A113:\ -C728B4B0F49233489B0453CD81FE8C07C68BD17661F75523:35732A4D581F153B -00E0D8C19605363653DFA5F778DAF9E959CBF9BB7E4D3245:\ -BB44D4E603A6CD1EBB27E47FF7AD9F163420E58B97F1C7FF975B521917E7879B:\ -58780533BD9EEDBD - -[DES/CBC/NoPadding] -4E6F77206973207468652074696D6520666F7220616C6C20:\ -E5C7CDDE872BF27C43E934008C389C0F683788499A7C05F6:\ -0123456789ABCDEF:1234567890ABCDEF - -[DES/CBC/PKCS7] -4E6F77206973207468652074696D6520666F7220616C6C20:\ -E5C7CDDE872BF27C43E934008C389C0F683788499A7C05F662C16A27E4FCF277:\ -0123456789ABCDEF:1234567890ABCDEF - -:FF4903E653AF83C4:46B534FBFFDAE457:297873B948A44B5F -69:60FA7B46523AA51F:D581A1D0C70F94A1:C1DDD7447249EF80 -02B7:63C1C1EF79555ED8:A415B62E7E94CAF2:57FA9B2F95F57401 -568960:D0321483090F524D:5DCBE42DB374090E:B6215A095582763F -B6EAF23C:88E289E1DE3E6451:8FE92291C654EC9B:0C054BBD31A9F623 -60A658CBBD:89BFFA9E36FF1780:DBCEE35E86088501:11A8928BC6D0D117 -7E10CBD9E95C:AFC5CDF559ABC6D3:72338F946012CED5:EAAA48B0C2EE2F3F -D907CE88F077FA:3476402272856EA8:837FBB3167F0CCAA:CD399DD3E402F8F2 -9476E85B198C9AEE:1AF298A150514CA70D252F88271B3CA7:\ -308D1C02E7A4E09D:6BAA74F7F1A72E1F -5C11285270E9606CDF:78665ABFE3DEF34F8BD55796825EE915:\ -126AFF39882542EA:51BADB479DE66A73 -D1D3D8675E42A4242FBA:E77BB4A24B4EE8C9EBDA4971C2E60D10:\ -0AE8510BB0FB3994:6C7293A8427BCB3B -65026A8A41EDC1D880F6C9:45A6EF4ACD49F9F1D892A808FA7B6F28:\ -0BE9277B3504D524:E47EC7A77DB94755 -D72E81F4130107E396D5FB27:A88EFF91876A1B6958D52F99FE9B18FB:\ -2F03C36DE4F78E13:99FD2E8848F33FE7 -C8A3971EFDA18AF1B18BFAD98F:54FF90BD90F6213D761F4B3FF89A8DED:\ -69329672E546C969:294922CBE7E12341 -BB9A90F11551531DE512DD48270E:9BA7908E56EDB1BEF992FAEE40F5B1CA:\ -3007D71E86D8EAF2:D7E300E168F60063 -77D6C182E4DDD444D614BCFF98FB13:CB50DEC4728FC2F1A1A5DFB84FA1BD25:\ -F73C8C3355092EB6:2E0DB2552BB83AD3 -40AED22F93DCFCB1D734B7E4657DD31A:\ -66D17A6E9D5BE3281E857B4C7E497988CA684524FD994882:\ -DD006F15E727CB62:B256DC4FDB58451B - -BB25564C7EA1E5BD22016915805C27B51B:\ -B7CEB5F5ED2945F131064BBB9213694B19A04FBD1F138866:\ -DF70FF987582CCFE:88BB3B9BB2EA56D7 -49DAB8D85EA753CF4AE2ECE7A80F0784E42B:\ -D7FCE9E5BED161AD7D950E453677E5BEE422B7542AFC0BD3:\ -747E09FA9BA257DC:F1BBD406191DE0D1 -DC13A6ABAA35CEB3E6650F825A67942114AF2E:\ -BAFDB50E16C9FF4449BF336D410441D56E1E5335B54C9F11:\ -CDAD411D0FA80E9D:C83D55B1196958C4 -A8896D88907AD77AE790828C0A3384C1614E07D9:\ -70A9EB1C11BFD1B1D68C20A6B72C869DAC5372A8ED46AA07:\ -642D12C591F6A4F4:C17D0C69067AF296 -B3FEC4CC29DC1ABBCF7D86F01D2C02C2A723E7C2F8:\ -48ED5583A04D333FFAC9D6462FD96BF79222EEEC70A6AE70:\ -62C62F54C426C59F:CB6252CA271FF303 -AC0B4D5752D2009BDCD42314D9723716294146424542:\ -8A284713F8C9873AD5F558B995C5A67A66557A52601975D1:\ -386DCAD5EAE86830:48153B966C8D686D -EA331F6E518A8AEAB2EF0A4E92E0D198DF5DD0CC74369E:\ -6D3D7DE9938935F9FB9AF839E416EF6F842F2ED827334BFB:\ -782545EA65D89B01:C2CE203020AABB0A -B292D3A3FDC5D709709C87EF91122761847871F9B4E33426:\ -21DAE17D157192146B52C49D90F898B25D0D1DFE677E8CD5B568814E9C6BB6A8:\ -ECC650E1ED1CE8A0:AEBC43AB811AB5F1 -65026A8A41EDC1D880F6C90BE9277B3504D524E47EC7A77DB9:\ -A3B6404C4D87F72D5E0995D7CC20ECE742D9705D48524CFA2820317087FAF578:\ -4755B8639FD7C8A1:4152E22F14BAAF0A -D1D3D8675E42A4242FBA0AE8510BB0FB39946C7293A8427BCB3B:\ -DB621F2FAC9A924C83ED0B9E8ACEC9F1E23BF3FF2AD6EFA814903F2CE293107B:\ -92A18B78A25C4B7A:C3AABC68CEEB22D9 -C8A3971EFDA18AF1B18BFAD98F69329672E546C969294922CBE7E1:\ -940C610A41F04E7D9BE0A74D5D00FE97A2647D3D16E9B76FF0DB5BBDC197C82A:\ -2341239C09C73427:C4D5B2B6863DB060 -D72E81F4130107E396D5FB272F03C36DE4F78E1399FD2E8848F33FE7:\ -7D495CBA50C4127347E3AD29E3B8C098A3312782E3D45ABFA1621F64BF8B8A06:\ -166EA8ED9D29E1B0:2BE993C1BE8FE9ED -77D6C182E4DDD444D614BCFF98FB13F73C8C3355092EB62E0DB2552BB8:\ -9D926142271E814BA4603509187C9020DAA0D50F15AF6E698E384644E9468C11:\ -3AD3301094B2F471:8638489AF44732F0 -BB9A90F11551531DE512DD48270E3007D71E86D8EAF2D7E300E168F60063:\ -44858416F946C7FBDFFD720282881630803803AB91CEAB1AF4F68F50E9C16DCE:\ -04BBFD95AC12E6FF:30CB120D13391C44 -8EB8FAF49126AD5B8A0AA6DF8B52DBE50DD5AED271641EF983BD650DA69816:\ -5B4622F1C4FAA817EE3AC181B969A7AFED7117E23F68BC6017519A7D1399CFE9:\ -35501029E137D63D:C1E0E3A06B357B51 - -[RC5(8)/CBC/PKCS7] -FFFFFFFFFFFFFFFF:7875DBF6738C64788F34C3C681C99695:0102030405:0000000000000000 -FFFFFFFFFFFFFFFF7875DBF6738C647811223344556677:\ -7875DBF6738C64787CB3F1DF34F948117FD1A023A5BBA217:0102030405:0000000000000000 - -[Noekeon/CBC/PKCS7] -13:34B809F9AE45A52C3C8509DB14932E88:\ -56C5E79C74EF63A2B64D831EC0FE0F5A:\ -D79A4D3B34BDE6BFB4DC0BF752987080 - -0D67:162A78296327F770DE69D67E4457A8C2:\ -F4983295EF1FA592DAB2310E2E880FFC:\ -51F3733F3165D6EB65D5B43EDF35D740 - -63AF95:D174647B1A88041C95C7F008C7BA4A28:\ -A91A7BF471F67C1A0965E581A2222406:\ -1B5F5B8141905F070FC52D9CD50968C1 - -F7EE3026:9C1498690EDD348D517ACCCE942235F0:\ -138AA1677CA227FEFAC8BFECE91CC2A3:\ -AB60820C1B2969460532B9C3AACF2863 - -0F330C110D:A3DB1F6987910561A9D34CC4B614CE73:\ -FB9DA8B850ACDE73B5995D5E913E9B7C:\ -A062C36CF4F5CDBF6424D6D37F33FCC2 - -74322DD18E42:D18CCAF4D22AD3D84BABD35A63DE9BDC:\ -387403BAE6E59D5E028D9AEAEEB3EA82:\ -62200EBB9FF187D0502B4DCFFCDE6314 - -C70A03E92ED032:8544D24B952DE66076CAFAF6908B61F1:\ -DEEE15B8CE0C0C413B0AF67C25BA154A:\ -B357D26FBA489278236388C9E6A21495 - -AF8CD43A3261B258:D504F374BE690B207353884B04C5C0E2:\ -CF66029926B58A127BE0EC73B2077100:\ -522D3061784EAD56F460947A6205300C - -839FB81A72FBF5C48B:53300ADAA73B7D064C1B988D188D7F69:\ -5818851FB541EA23F545CFB969436D98:\ -EB8BC39214CAA0EEFD886154433D3E3B - -58AFB2B30F6716934B01:0907B00FE2F8DEFD08FE54AABB5A4B10:\ -C5E00BAFA4F9E1705589441B9EA9505F:\ -24F146DF583FF0B84557446575EC3284 - -83F62FD42E895E13B7E34C:F64F02BED29282D976A61F6C02851B27:\ -2864CE9F3A5511F63903CF0CD0472240:\ -96C419A75FCEFA60E11312CEA3241EA4 - -99D8D0271E5D6C510B38CFEB:15CAFCF3AA4BB5A1F018267C81482B4E:\ -6D5E4E6B297C7A69AF683FCB18C4DEF4:\ -202DD513E6D521842CB116CECB1F17A4 - -58E5DD103A644F47351FE13A4C:AF390EE66A8987C6777B0070ED0D759C:\ -DFF926FD70664DBB19833EBC9068AE5F:\ -7E62EDC1E23489D5CE838CA3C5E327BA - -A35798EE1FBF7F92187633E57FAA:1C4D55E9F8B8D8458B751D8016E0CED2:\ -92D13CAC6300EE6F17197E299ECE8671:\ -3F31171C66235B9D9EF6DCBAD5A33AB6 - -D8A412EAB58D217D70C7B9C604B783:AE9DD1426DD34F2BF7B3B478E59D51B9:\ -99F1B3BF5F635B125C6E430BAF0FDE0B:\ -2D64CD72703C8841F8F451E586CE52BB - -2CC0A7196FFF6B14410437639D4E52A0:\ -21698232D55EB045290B49C25927502FCD4314242F2B9DF225514FEF90E313D2:\ -ACAE925B9F91D3BF59E6344D1996B7E6:\ -66BE0EC9F49DCF852451439BEF133EC1 - -0A6B5968D3AB48F00C501AF499BDED6FDB:\ -432003A72A1ABCD2A463465B9794357E209C315C087E35C5F48336295F67F685:\ -2AB3F9635F8ECE37C016FFA9DD5A5279:\ -596AB3D7A114DD167A147FCB4E8FA522 - -7E96CEAF7F052A4D85C487FAF30A712E5D6F:\ -790C13E773B628CF27A92925CB3E605351293D031696EE1EDF738727CC523DAE:\ -C2DE2993F036A42278976FA347EBBBC9:\ -D6AA4E2906CE2A41DA17CEE09FEFF11F - -D3AFD0D1F52D332005205944E465EA567D3DEB:\ -3707DDB6A30F4D69A5B37CA8ED053A7F1C638D9C9B940AA09AC57A4ED51878DD:\ -B20DE0EFD63F108EEA8BDB70D0392F6B:\ -329D0EFC4231C92E04D9A0F2BFD2AB0E - -5A82E2FC993C66A31C005313B34193DE78B4E04B:\ -AA1892D23ABBC7B9654155C9386C87D3D33BBB6086E567E1D713135E2CC2140B:\ -8A8A3F7D5FE8F459A1461153B4F76211:\ -947C1AEE44B94B91FC1C62C0E9028284 - -3077002017E6E8E72AEF13DE3FA8B6634F9ACD2F33:\ -897D3F4494E271915383322EE393A6C8C24E456446A04CEF0F183B79A322D9C6:\ -0B45B853970F62B6F24BC5498F1695E9:\ -860A1A59C1F3236B58069AE9B3F58BB1 - -8A6D053CEE814DCD67D809E325236B08658736119D36:\ -BE86C4BEB29B375D461B48A1838B689B6A22379442997C2ACC8D3BAFED8D4836:\ -A51BC2500F49C9CA2B684EAFC3929F63:\ -8E982F2645F6CA43C0E5FE6AA349297F - -BF4704F12FC4573DF7CA7A53FF1AC9FC9EC2D0A0155803:\ -392929D03CC9C781D66F57FEA40984985006AF5C5692359E40C3089A0C08DFDD:\ -6D0FF160740C3F2007F1A2D9FF0764F2:\ -2024652B0E280F4F8A93E1C4D586BAD4 - -DFECDB8353EBC87CD93D9032C85B6FC7E325DE835F69EA2D:\ -E706FDBCBC6678583BADA7959B49ED4FA21F4E601A7A68D2FDB60B676AFF33C0:\ -678B962676645FCCF06DA0DFCBD33AFF:\ -F120FC32EAAFFB07E35C0F15A8D9EDF0 - -ABC5F54DC200DD2DAA7EAB951F02181DD9720A80049E01BDC9:\ -0D37E7254C1ACBF30A7AC5C69490E90B65A0E359D2146BBF50B5BA4787EF9ACF:\ -5C592FDC4B2B3DAED6B5A7F6A2CE9CE4:\ -BA1583958621CA564AFDB695A0A050DA - -9EB4D3B7B4C56EB33A8030807FBAA27D22246071D983844703BC:\ -2304C35624BB448BDECA623D39445182AC592C71C20878F5E39C8E9A39762A1F:\ -ED4B91F32EEA0976A33F64FC43AF2CFE:\ -6EB6F57BDF2B1591FE46CA47D0DFC0DA - -AF7676154A55F1F3D15B76D19CADA03A5D8436FD2B6AEAEB222A5F:\ -FADDF8B2B3B5B1685923E5618022A832180493F47153AE61F8404A538B4DB737:\ -EBD731F49D23576D1E8CAF4BEF574A05:\ -CB9E26D5905B16EA48D219456C48EBC2 - -13122D32A60EB988D34AD32B788B8CF5CCB567FADA3528B0DE384050:\ -4B951CEDBFAA5A5178D22CDA8664AEBABE478DAB09FC0BF2DBE973C404FE07F6:\ -9A912A664FF96EE3F469C779155501CC:\ -024D04B050718AB5682DD19AC6A23592 - -E19A1FA72689052C2B9C76A33000D8A0EEC8922A1BE781A6896E38659F:\ -71A71BCC755B92120C31F1B99C085E236EC462FBC6C6296FAAC5AB0EF6CA811F:\ -2E7E22C4EC84A63DFB9F98306C0D45E4:\ -EF523F0DA968AEA82E2F2D23E8AD0F07 - -D0C9073DD44DB4A4970ED69029EB9FEC5BC336E9D6E92A680A75EF0C3151:\ -AFC5FAE5E52AC9CE466881AC5B667385234F6792DB7645F42D2CF36760FAE219:\ -1311EB599EAE368A9C1E74F9D1D47BAF:\ -4C7502264C3C81E0586EE0D9945B8649 - -20C167D950AC5A84B6FD9CBA41945F66C24F79969EF9B19DD116D76CF64A5A:\ -148752675C1DA7236701AFBBEE8245158CB80829CBE1079B5F4DFCF59DA4FA04:\ -F16CD73539227EC5BA4B516C7CFA75B3:\ -D17E2642CDE1B30AC5BD01CAC83CA84C - -C068288373DB250F6714E0F9DE4A63778C91E1EE81963BCF98F2CFF2BACF3553:\ -31E053FC7124B23E6FDC33878FFEB9A8421207456460673800798E422A7E94B1\ -195EF848BF1E063CAA7576AC094C1E4F:\ -EC35A92D97B902220D88C3386EABC55C:\ -5431D970289E7E024CC0BABADD674C67 - -03940BC21C33D89773064B8A35CD9FD282F090BDC208A0EED18AAB45AFA023A1\ -88:\ -D3B49ED8640D32CF6A088F8316929C703039D9D3B6C43C32DBE99F8CFE54CAE4\ -0C6B9B587F11F1E1B421D987AFDC7D71:\ -EFC07A770AB4FBAB2259B3A3DFBC6782:\ -5E3A9763D6DB8699B903D230387FD45D - -B6B8DE15FA0A356241354E771BEF08A82955F7F35DF8E286EF17DED946C770B0\ -5356:\ -D3E2469F505D7DC2683AFF037A1197362F40F5A623F7D8350BD5BD090B63793A\ -13A6958BF9E0AAC0A8A792B92584A295:\ -0B747E8737C8555F5FCC1418A8E31B5B:\ -0C403788F70790C0503152208A8E9CCE - -923EAE6FBB20806FD86F7EBE2ABDECC838EF66D8F9AC1C2C185EE3C1BAE0D9FA\ -32444E:\ -327E33EDEAD51CD874420D8FF3C0641CF4A1187B2C56259A71F60C23EA6D8CB7\ -DAE38198A8321B6ACC834D27EB509CCB:\ -F43A11C50188A97B132732245D88E2A6:\ -377F526D07DB430BE1C478225612841F - -9057941CE977D02B1F6894251363F425DC515C68150BA5CE6F3CB1AD2EAF1B56\ -66E67C16:\ -DE4DBF13CFF69DBAD566A98916B1AD670F6037DBA9E06B5F9A3CB59E08D24157\ -C6E6F2250211B5F32631D6775F06A579:\ -6158B9B7AACC9DD9643F0627A616ED3D:\ -E21158CCA6D0656B58C64195B3618B58 - -8DDB465D9C82EB9C14BF2C2E26D90D8F1B5E444B12ECF19791F16DBB2DEC2D5B\ -612F666D64:\ -FD774E848C09A079ACDD9D44A419300F2847F93478032C6066FA9E89359C1280\ -E7AAE4C1D1933A47FFE0E02E9582569D:\ -C8424ACD2EFD7C436FB1585AAE45CCF7:\ -C15FC97E431ED75E523814EF991E3D82 - -124B752BA886C4ABD367AA6DA00115EF08C02D9308F739A63197D132E7E1B21A\ -AED339229E3B:\ -2994CA132E3A30DC1B04D9368DC9F37401442E78AAA935A63CD6C7C9DFB1ABF8\ -18B48863CA8F20E8B4F5B582C3AF6284:\ -11F33F15B8C0682B634486C48BCCBBFD:\ -0D96D9FFDE5C617201E0997747EA02E7 - -37FCB3C6DBE79BA1FEA19FF5C4F14DED4F403E970DFA9501D57751E38A174514\ -862575CAFD31A4:\ -08D6FC20CA4B2487929F9548D7D43E6E6E0676B2030FB539FBCA79BDBED41315\ -AD1E1C6677B2B83274BFD5B6D62CDFC9:\ -B522777FCAC3652A1FED51D8FE3383E7:\ -C9170B715D6CA0EC9CC569074A21CA7E - -C7AF9A384643D90CA1FC461209048836AABED909BE8971B4D2B7613628A3A909\ -64A0891C4B658333:\ -B3D53C6E550347335D677019EB675DFEE6EF263946C43CA4C07D68340E745F51\ -B5019BE2841B834154F0D219598E0884:\ -E258D2823B59737DDEE65B6139C8FBCD:\ -32C7481FD836BC3A9945CAAD3477E16F - -A9F2347EE607A05E505CE488B779BB6908ADD5F7DCF20F47F895B64B029EDFC2\ -A3A84946BE935533BD:\ -AF1C8D0F1CAB3C4627E31B69A9207EBAE680D8D092A411994507DB4764399172\ -3B6AC3ED37CCE02B2B599F7A4C265011:\ -0F52FD5FBEFCC7E25CCEE870CF00DC25:\ -4EFB84578A93800AB7DA40997A79BD89 - -5FE50D3ED686D329D7DF5CC4952AEE83E0FD0265CCB032474152A19100C85154\ -CE0D68947450EC32D66F:\ -F08F5BD75CF2372E6B5D82FD25AD4C8CA2250280C1B611EEDEEE4715B9974773\ -E9D9E2183CE3DCE2138F9632472BF184:\ -1DFE339178BC2FCCDF847A885B026C3B:\ -8D1A7B3B4E1F32BD9D34A6FCA9C4689C - -1663DBE5C893D4FCA8DE266978D7C48D70197254796D394EBA09ACC27D528B63\ -DF4026B8AD27DB07988858:\ -F60B2CA4AC382B2127CF452CC9466B7388A7C78E1B8D9F27F3B95B70DA3D74E2\ -F9F092C5168FB96EFB220F90CE1AFE03:\ -98120F0F48839DC5E9B7472ABC73B61E:\ -F5D19A16FD2FEC948458C8ECD96A20EE - -AB6B6488895E81DCC4298427FDAD9EAD39561C5C99D933BA15F5DC705B5E094B\ -5387D2E88D91294FF6F3B8A7:\ -5401EFD707525F1E4915EA8E80BBE80C9FB5E6C45600426297FBE05ACAAC7DF0\ -9912C000F643E6E9462491B30D67658D:\ -213FF5A5FE08326FE2E5C5DC05604A01:\ -465280C995DE276B0B6B6378C8408CB9 - -392477CA63A896B14131842857FF6A2C30C1DAAC96818F89D313BE2EC14C39B8\ -8A855E30ED9504131CEF85640E:\ -2E196AEC24F2D6B59B57722F58BB8CD6585813B7050A83482C8E5C38825C1A62\ -65B7BBDA707F5E6CBB02C86643BA67D7:\ -2F3FC6D862409732B91F426A12EAA155:\ -D16992DF8C17F4CB936810C81CD963AA - -E14EA57790067110020E72DA6AA2A972352692F86264C3CEEF69CBA1AA5E58DD\ -23A991F988BE7DB99821333B7895:\ -D01D65E636A981F5F3D4AC9A829225E82AB76DEFD23E0691712CDA65FA6E6538\ -BC512D6E44EDBA17BC2D1CDB064DCC9E:\ -63D77FC7B6ABD00AAEBE33C9B2EC1E5D:\ -6F12888D71AEFB2420B163811AF9BFFF - -038534D14E2FC942B0C504B92C3DC1977B4C962235DD3BBCB5DE9D0E8A1B466A\ -BA575BFB125BAF3FF480FCEB6E4BED:\ -E344F758173083CD3813410BA07FF8F9E781E04890B27A598890DDA728D08B2C\ -19401462F2A649A76234F6D428160E32:\ -5A82107DD3B3FC7D9D1E4CC5117EFA7B:\ -0803AD8DE267CDC8BBA99069E8D892C4 - -564677770E8B7A02485987661EE2B6EF8EABBF80CBAE9404E75A2FF7C4E6834E\ -438FBF09E7FC2EC63521A12A6D4BB30D:\ -ADA7CBFB49234A49CF6098350B84A8A440504671889126C1D0F93B2CB616F988\ -D4FE79C9C15929843B60C35348FC91BC6244A225951C0A07F185DFEB127260E8:\ -D337AA8F200C073F4DE5E042F352CA42:\ -E5FD769526BBED0E5096997B57FF8D3A - -CE0C994114AA7919D9454BD386008A4B87CF2A54BBBCB122F2992F7B3FC01C5B\ -F0E4DF661265382C57F57A5D96F226BCE2:\ -CFEC3737847E8C27A58F7A616B76D875107C6E6DA75F2DBE21F6C2090AA45F08\ -2FF3ADE9ABCE4692D85D3EDB17C6EC108D4FEEAA67D5ABAE6BB8E5420F0F6BDD:\ -3F65622E95331BCCDF8A6514163AD1A1:\ -55D4064906F2C6F67F2ADB2D1A9CABE9 - -37B6E210FF6F2810B29653D3C3B2B80D939AC030C29C1E2D61D9C4B5432B3FD3\ -883D34C99DA9D701EBDD96273D3F292F3753:\ -7BA7D4D5A586552FC008A7A82E8D0475F3DB4C0795C9DE735700C0751634B329\ -F8F71D21701F74E1F179F87778000B765CDB3865CF9569713DB023092CA8B4C0:\ -64D7B821DC6916A464D41B2D3A352728:\ -CF8AE7BAF39569FDAB4BCDE9283E4EC4 - -ACB7AB275B18F55C0A45CE3B2CED3BE4DEB113CC4ADA87EE851A1196BADF0B9F\ -91D579104772040B3A33DD277F2A33843EE909:\ -11D15D948182EE585F2690F236A4ABFB74029D525CA579AADE4FCECF4C47A288\ -1BC6F04535C514D13A03B23D06B4BCA6EAD0C2756D6B5D5C616B229DAEB58848:\ -0CC7AA03EAE54E833C10616F0DF07FBB:\ -B77D7E2620DD96499F46F311696DDCEE - -27C36747E9672CABAFAA5BAA95E95FCDA760FAA3FC1C6C7F248C374E4C6C9A1E\ -4A44873BE795DDA3ECA213B2146DD8E722277619:\ -07299B862884F6FFE4657709404917F411BC24FDC2B6E504331E6D18E94A71F4\ -F5CDA54DF8FC3A0E77EFF63EC9D0B82F8CBDE1DF86B917CDAA45EC4E603E364E:\ -ED590A7F005156105AFC45D9CB50F525:\ -C5F2970624FDB6B7DBA0A6C2214EBA3A - -9581E9A8251C7DB9C4B15D2B208FF66874959D134FF812FF3639D1F1D05E02C7\ -806EF336D67782E8D05D1EE900785F7267BDBBE76E:\ -EF5E6E49F0A3A01BD37C078516E6A85D6B5B04B1E4CCE934FD3D2872FCD08BB9\ -49DD606B4771C02FCAEB09A666DE721BA86A68CB975BB394D1905E3A1A233B3D:\ -F567648AF7EF8A506E5F22542A3C2867:\ -DDD7C1DABB2436BD0FD28D6752359863 - -0683980F2EA98F5BF000D2E9AF1DC15A6311A13F398DE23D0579BAAFDF59B0A0\ -3F051AC214D80316416222305A676B17826565065FCA:\ -D96932925025F6D2CE24CDC3A4AD07A90456F011681A669C1C45B685CCFC7350\ -6514BF22E0DB166F37628F4B8DC3FFFDF60552C96B6840D0BDF510059467D7DD:\ -79FF68FEC504D32A717CDEAB94A7B5BA:\ -B30BB4EC282B3D4B6135A7E17C2D34CE - -4DCAAAFDF72971AED4B15B46436E19E7C8F79220C8EF7855FFFE378C35F578B7\ -5D0872A37B67DAC675083F9ADEBA89DC5C6A057F762F25:\ -BE12616523F94449F8120B6BE35C84511A59E4D40B0430EDA4C4DAC995BF0F08\ -856EAC2DD4E709BC9D813A40D8FBD588EFAB275E1A11966666CBEFC08050104E:\ -573A08B1064652C81BB99C46C7C1944C:\ -26FF1AF8F21A79BA6F59A7BA710A51E6 - -D41B814F718B82CD1B1F64071F9429BD180E1DE6F121692D17AFB7AFE64CDFF9\ -ADFC20E10B02A864901F90B863BA85D70E7CE4F53162FEE8:\ -70A7862DA2217F3374CE05AE4772231A489F2912BC1B9A3483A6CF9F11AA05C3\ -30BDB25BE9EA678F73868B29F908C1B4B715DF760DCB23B3172D7EBA94477541:\ -B493509AE30EC0AB626D2920D9E929DF:\ -43491F9196D8251FD46759222E3CBDBB - -4AAD61A9D21D7F76BFA86A6B054EF02BEF75EBA59DB3D7A8F6AF2472923E283D\ -0BD50DF43FB832B74EC6AC1A5B6C55EB8A929FC143E6A2CA5A:\ -59CC595EDFC1FF1EC7E3D179273EDDA43BDC9B7E91362C89E19910FC4BB131A0\ -0B7684E147D0912F3B71C8F2F9B00482AECEBB107923C38F89B7C6CB232BEC5D:\ -0BD6C4A47107E38C3C234BBA38F4794D:\ -0888924CB3C8DF8FBC8E3CEEECE1ECED - -1A0AC832E284616BE2EC6705DEBC789465339B961D029B00B9ECE780B32940D8\ -4EC00EB29991BD92572E51614C37312A44AF192C189F5D0B034D:\ -12CE713413361CAA87DD2E584677B44AF5449D09CB083BB459EE47F65C834A59\ -ABE9E557F4D961A6EA7C058B479243799B291FFAAA5B1771BCE62C0F83902A3C:\ -1022A5A56788270CBF3303D958D8E365:\ -BA4179A2F159004821934A0ABA0971BD - -77D91E9A2ED17549724830B17B5394B44C6F5D54862EC45D2124129471A3075D\ -75108F34662056550A4ECD24133FBECB413EE5BF58A5EB089EE8D3:\ -CC5DEB0FED41FF63865638826E70FB572CD040CCF9273183BAE3EDA2124AF444\ -44597AA311A182C59C6F2612A0A55B7CD048A1F735FDAB8E4BDA44EEE347DF2D:\ -A6E9CBB2936DCE26BBE3BB14A22C0B43:\ -0D061B14FCC07756F78590BEEBDFE3A1 - -508C2A9A589C470FE01A24303A63E7F54C4AEA5053805D1DB6B1F6481511FBEC\ -1D32BE1284B0CA1E24AA234EE9F6A77A448CE623C1EE0FBB343610E0:\ -424E77DCB1BACBCB1954F7FF54C5ACDC398F98B522E556C0362D9992E8A00953\ -D94514AD35311016DD51AE95BF7DDBE29E89F1827C65C278BDB0FB9D243E7B75:\ -930F2051D3BC4BA985241990B92C6C29:\ -6E12ABF415BE763B09326743C4D03EDF - -3DFCFB4B32C9FBA848403256BF0D3AECE761EC23D492DB5B9A6845123F017358\ -48487CB1CE198028B4FE605D40F7039BA46371436E2653EC84A132A7CC:\ -49355D300361AECAED24CBDBDAFD6A31EA8358646F84FF75B7900F6AAD59DD25\ -15F8FC834EBDDEA297D2AA36D1103FAE5DB9C60D213C4CDBFAABC24E62F631F4:\ -C5E25A158442E6248D257114484E4FF5:\ -6371100FB16BFBE598590476C43F143B - -C50339C7DC951DA35A36F4F613899000069F50A41BF957A75118C596C7CE758A\ -2BDF378E4B83F31EB4CD596D301B1617DC1C9E08C70B2C3EA410B546756D:\ -8ABAA6655CD7D6ADB51E22ACA8AE019743F47BDC8190C05B0FEFD88B5669434D\ -3202F1C121D51C5E46AE46B28DFF3195F2F8DF2A94F5CD0F7D11685AF6D10F0E:\ -478C7266D82E73C4C3882CA4A05C0A1A:\ -9C8336BEBB6F820268F2E6D0807EA389 - -1E570542A73BC1A212A8503E190AA8E24C7E5D87469ABC1208275E17DD5D7882\ -EF33F839A2CFC503F07641184C77A0B1B017EF916F638EBCE5B253C18B8212:\ -13638206A95985F22D055C9350F00926154ECE397C1FBBEF16B66A3E4B0D4046\ -9966E45C44222B903027F20D7AB620DCFC0AB5FE2D7E563B631E191F762ADCD2:\ -527317EC7A1D9762E6891BA823FE3500:\ -6B3E5D8466A4D655DEC67CD62807AFBA - -2E83482C2ACA9B7C9010809C25597D74D19F8AB95FAB3A469D1B31D9968BD375\ -5D26F12B4D0D2D54E83ADEF3DA53F879F095EBFC4AE8D1E8562E90C55B22FBBC:\ -857882CF9E0B8C298D1A4BA1AD25ECD9FA50B3512A9BE93632A1BD8F27E768DD\ -23C8955AF6B4EE745F6CC162D9EA7D9B99948B3F256078705A192FA527AF8D59\ -4FACE3E88F0D3844B1E24A7857477233:\ -6D632D11E9FD60638E3F7D11ECB29D2E:\ -66FC28B235FAA4C012262C716F9F7204 - -7BD83E3AC317811A304AF3428DCAB0379EF114DFB9971F6BF67677A2E513382F\ -AF0E352A32D7F3296475A39F3A7E851CD3E5225D0B0F675B94014DC9165A1D9A\ -1B:\ -0D15F0823F83D7652B4655D8ECCD0633FDF217CF477635269D6009DF41738236\ -1E413DF7495006E9967E82090A2D99D5A690A2349C9E6A350290CEBD1EFA4959\ -691BC52BD8BB24913C440B9623641A1D:\ -5566DD5873F4C7D4302AEA5217B1D5B9:\ -2C17CF9E41895A1871D5F3EACD478E20 - -1D464A69C8E8DDDFF2205F2E7336EB89C7EC1002660649CDB1ED826B5E8283BB\ -02FA96F18B4570458BFF5086B46EB4EF0F87CC9F39C7FF9B3E881978F7FEF9CD\ -48FD:\ -F4D03CC920684F92865C2E5B7DCD21A39F0223990AFD50C38A90325FD038817F\ -BAA975F2C3AC7EE4192B71104921B9F852868276192EB9545CC14B8F9BE36964\ -14745BB9ACC575C0DA3A1BC72DFE420D:\ -9AD3C01359760D2B9D7114ED4C54E35C:\ -1A0E62541D7AFD5ACBC18DF5EA79CDA1 - -44A5F5D7B96035F5A554499EA17B9B0193484376812C2C2DAB9F459F536D97A7\ -1FD4F723123156054FE53DF577BC448C124AF49AA9D003157272750BA3CE5712\ -776EE9:\ -E697871A69D625FC8F8894E6056097E354A88118E5189C215254E0AC2C85A6A1\ -092A34314CE547C56D60E14E494590C9965BDA9D75F47B20E8761D14AC2DABF3\ -51767830040808ED9673E88A89050BBB:\ -623FFF24CFCD55E89911987DA599012D:\ -5CE090821525286F0F60E46909107087 - -6FFC0D5515AC7AA12CC56503CE163F52789BA0FEFC324ACE7DB228187FF7E1EF\ -BC2EFBE3AA010B8F6D298952B0497FF677FC464B1FE51FD93E5C2895EA1CF4FB\ -4A773919:\ -1DBCA0F4EC05DAABDA02689166F93B7FB4A3229D7DEB3C97B3846E53F7671383\ -DE567BB10D8457E92B1947F36C5BD4B9AC68B5633AAC16453050D65CF8B85C88\ -E5F7B9EAC641038A6D225BC5B60BF39F:\ -3195B7E2AFE39355D556F29F21800597:\ -FC64A4493B82CB958966E1F93DBFFD8B - -FC9D3C47542680D7ED0FB2388D42361F9583D2ED2285AEE599FF6E5DF9471B80\ -E477F347B6C88A83ECD1167EBBEAFF93745BB0B06735EAF25579C679DBEBCFBC\ -335AD348B1:\ -A4652823CE03E688DAF56F93B2DF8C9F55E399B1B13ACF7E6AC344A7AAEFC327\ -185BA29AC9FD0A29C42367D8DD4740A4C464A5979827C793EB29068F08A4A3E5\ -FC118CAD6C58CDD04A6F925617010727:\ -FAA44A1072FE894478C7557B6FFF6394:\ -6E5B9C688C4A5C8EE4B4CA1A263D6E00 - -EAA0F53C3414A0B7B6BE05327F5F2D76ED2E5169E4ED5CF7A5F066B1196F4DEF\ -208D544116F2774B3A02608DF263415CAD366963F791C7808E2E248882880E26\ -65436C7E8B44:\ -D3AE352CB790D12797DEC61BF8C17AE0557A764B4E3F2ED2371BC624AFCB8A6B\ -340BC68A4E97447FAD51A52865B5A6A492BAF5AB525653F34392B299CBB74FAD\ -14A16F3D7EAF4C00DD73FCF4FC885EC2:\ -E7D0BD991DB9DA63027561A13D620F72:\ -DEFC409F9D66328C93426D55BCC5F3C8 - -0C3A5198A1F0D228611124BB18A94A59637B8EE8C3BC128003D90645067C1D7E\ -3F12440B08DFBB24493A50D963EFEA835497F85DE87A3857B1C5FAEB0354281D\ -76BD618D1214FF:\ -9A13204622AEA6CD7F70C34518555A2DA17A3CE11E7A832F6AB69F8EC8880BF7\ -2921470897BE8B0B90BA88020847BAD4AE5E9A37E22E6FAC568E6EDD1FC8BDC0\ -E4D7663CD573F35F43BF4BAF85BAB7EC:\ -6B422723B4A706C9A184FF4FC38824CC:\ -CD0ACA21752C4EEF842DED5A53BE27B6 - -DC05E863402163187548943B43533CDE7642FD31BE2A177EA79CDBE52053B538\ -A394EC65F09A1091593892D6251F325A38AE360D6D7AAF234F9DA6E841523A2F\ -7AC724447C9631EB:\ -3A927FB3306824B549B18FD5699643A08B64EC3B9E1322FECC32036875545F56\ -DB2FC7B34B7A097FB4C7E211BB5FD8E1B69813BFEED2DE4771AA6A4D4557C232\ -BB4A488ED9DDC5CE2CC8BB67A7B66932:\ -BA37159B1AC79AF43E716741699FE664:\ -CF45A98BED7B6ADEA83EA03B6054D857 - -6768571A03A74594A20909B61211C99F91D3EFAD8A72FA0460B5B3A404D7F0F1\ -94677A90AFB6857B05B923185C6AA6043A7E8373178647F528645E68E0FEF4CB\ -36187E0083613FF998:\ -88CD0288FBE70E08403BDE580AE08E23CD0DF5C7E1BCB076E6F0C274C48C3892\ -05A58F7E17871D1F3DABF5DD3DB597ECA98606DAD8A5F6F66AD5E5AB16E6DDDE\ -E91C55EB62CE86ACFE87C4C703710ECF:\ -D89F12C903BD9E3D82E05CC72F88DD2C:\ -2A46464A0975A3D77884BBBA01508D2C - -A6428DC3C3398CE37098E1F059873CB92D937C437A7D75D2129BFC5528544E4B\ -C50D29F6D882BFB8E500B2625BDEF5A6EB1DF2F3A5FFB9260C540EC67C033769\ -E6A84D6A137B257473E9:\ -B6218336CE13C1589B1892BE8507B218DFFA2018AFE90CC17EA792955069831A\ -DAC30AC868339EAE50B10E513E7F29EE2914FA41EA76B6CDC99C4D300DCA5E9C\ -2A96023F8D834B7404956F51667239A8:\ -197EA77B0320C3E2F913EBABEF18EB1B:\ -DE295D509AC3165B53922EA9C199CA85 - -FB413ADF6745E383C87EC50BB8DEB4CAAAA4C5D24AA3A449018DEC8A6B85B10B\ -774891EA61757BB17292B38ABEB12DB3B71C71DFA92D475963B0F1B1FEB93AB9\ -A753D11B753EBFD2A3D74A:\ -740830C6AAF2BCEA878799315F5C842C54D760771EEE19F172C9289C0876BDC0\ -3A608B81597EFA11BC8A7A7EBDBEED5761822EA62E22B9A6EA530C9410225BD1\ -A6398CC8E257EE054B2C3D87A05DB73E:\ -9741F404AAA4838905C2386DBEE885DE:\ -7D57C18C4C0BCA04FCDE6F8E38D413B7 - -B647566525347CFCE42CC44F4EEB9CCD8325B0350A4F123065621B7D03C04DFB\ -2A1F5C9F41D3B1ECD3814A2A7BDE4DE46EB0AEA673EA2FD582D00038F256D888\ -A94AA60488A7ACE9F4C29667:\ -70913C486EDDEB34D7E1D7A8B9CC75234E0B3D9000717949A59132AF2D2B056D\ -D0243E11748F6D2820D29C0BD15747A61AB1B2D87FA6E4438EA053DAA4D39A2F\ -BDD62DE2AD36725E9688E1A31DA8DEE4:\ -C18B48925AAEF9C1B8CE83C3C0541C5E:\ -F4358C6E2F0F1ACB31433337BF9630C8 - -C8D276B9194CEB3C01B3DD0E0B0F84FCE5D548F7FF60C634C0ECECF4C74B8154\ -514CF766960E34DDE8F9F7C60215C932589647B1548B0B408210727D4D4ECB6A\ -C654A6A4E786F5C124034586BD:\ -68EDED1A1230A88040241932A87C894C0F3EAC2363ED85EE077BCC869AC9D982\ -61DDF9186DE665CD5D70AB210CB4D266A2A9D990B37AD6489B55275019BC8D9B\ -06F19765E390156EFDA6DAFC6205321F:\ -8D12D956B50250AECAA4380C2FB5FB99:\ -C8F19FE75D91DDC9FEB38B71A47250FA - -95095496B695C5CFDF83F196F400CA78266F2CBDB9F58DDA77CCAC98FEE5BD13\ -8ADEF80CC73400B0BBAA66A3D57B0158AE49E393F3D78EF8196827775DE2F005\ -0C531C5EDF2528331BAB2C703AC8:\ -C3B78AF1743A14F1268D87EDFA707968191FFBC9820C410DFE39814681484965\ -8D5ED951E7EACEEDD27F2BCB821DA56B31FB9E2181E836A54C8E54763BF9EDE0\ -449ACE3E0F5757AE3BB07002DE63C25E:\ -3CF3AEAA654897E706E2AC1239667209:\ -4110B8B8CE35B9BC3523B05DAE24C69B - -A1B2C52B1B10F73DCAA6ED822B92B61C27245D344DBA2177F509D28ACC108642\ -F2013A0777C4B69B76C707CDAB448B451295F636163B4528EECD717DE79F3A12\ -8F32EC8D614412FD3F5FD2BD0FE633:\ -797323F717303F224CC9FC15C29BB15C9296D7C4885882BE3D55991607DF0058\ -67179BEFBB30C9034F0C6F94438A537D33CF4F644372E09F07BD023902AD54D2\ -CA2F14EB04D43FE04B4105514889EB02:\ -40A2DBE5EA11E2AB589DD95F71D4BF34:\ -6397EFD9F05A5A87C43730CD42C29033 - -1D156125591DD8E4C30B09961E5560DA5D201B6EBFF5CAC64A1DB78F33D3C2C5\ -CFFCD3F1E55B246DE700CBE18E045783B94195CE141E483AD9D70EDF28C61055\ -33BADD7DA4FFB971D1778756D11C8D3F:\ -905975D4AB9A1B4AA6C9A39A999FCF7581BAC9C9C96F0B6DA63020DB3877136C\ -1E9F8E89106942D9405C73486737AD57B4098A2AF29EC587D6B7DC07F469DF28\ -C075435735DAE3F6C2F7CECB9623174CC62EAE8DBAA72679E117FB5EC92F2267:\ -23822FCDF96E4DC4088077C0CFD93336:\ -6E4E85D4B38E442544B6B04FFC81352E - -F252679F2DDA76DD110584CD0D9E5FA64296BB880606A150122A7EDDB6A682EF\ -BE655BB59DF6885240AB11E4B74FD0A159C8DA83A8E3731DB39C8937E2927BAB\ -FD018F17B155BB818B3C0B358B6680992C:\ -B48FC12FEBE86486299CB3FE14C1134D2F61BA984334F8C3AEE08C8A0E2DEF12\ -C476096E9958576B81C6E05968382FC7EA17B85B8FF8805EC695BCBAE5608054\ -D5C830DF39CB646DD4798D3AC0C15B572953E5645EB37F431DAACC60B874A180:\ -B107244D1A4445A3C7ECE0B64FA7100C:\ -58CBBB9601C142CDA4CFB02A45861808 - -90F67AB45A02E5894862F15F0A919DD6D7833A2C1C46DFC9127D29A53B5A44C9\ -3B21141173F53CD4A854B7AF496CBAAFF654FE2B28A7B48048CC9D01113E0017\ -6DF95D7DD3CAECC5DA53367DAEFA377F84B2:\ -2BE5CC556D2E2E67C37FCBEFA7B0FED5C350C0B2541F85671556207BB847C3C7\ -E8B1910A7854B8590F0BDAC7CD1E52ACD6F1584D25B86407EA92222E951339D1\ -1F8D847108B0545580B5BFA551B9C1D7DEAAE8C100469F9A6E9A578FA2871104:\ -AADE936E95C2EADDC9FBB708A6753851:\ -04F4C5D43118F5568DA176A140913851 - -70A355394A84A1C6E0281A6E4D744248553F9F6C6A6E6E01DE13AEC21E7D36C2\ -B6BD7C608917A4D9F723229C020A677DDEDC2F3EBE9AE2D4AE490DB9E456212C\ -9AEDC04C2D34B2384BC75C8A9196FCC1CC642B:\ -9EBDBD9117F03F340AC4EE7BE24E45CF6A18C76CF4C79A8B19EB83D03B8F6202\ -E9F9E0D3BFBC351C407E699F4B592C93D0E6E037419C48167ECBA7531EB0162F\ -6D236682831409D1831CC309F227DEBE4FE0B395FA201E1E2633354381D30CE8:\ -2B3AE9E5A047CD4A5C40FBB546AD4CA3:\ -CE4C47854269A5C40CA58E56254B2264 - -DC75958667FE6AC96BC6B291DE43E04BCBA6500FBE005D5ECA3AE57AAC2E7754\ -8AC38A6DB461986F4523AC48FBCADF5B78259938DD037ABB4947D1F85538AE2B\ -89F0323FC1F7539465563A816B3FF633C1BBC6A2:\ -1DD9013DABCD617011B0E2C45549A3EFD665BD0E6ACF515A3AA4B3FEEF92DA1F\ -3391685E8824BB8767AB1FA38F8C21E02518319A42C15307FD645541B543E98F\ -74BD9383A5047C89D40B7B685999C086391E1FD2CEAD877361DA89BC89EDEECA:\ -0AD480367F7085E45E72A001A4B8A43B:\ -6A6841A5E07DC00A0015006F5F60D895 - -C160B510C45E17D2A5B38716E4A682884AFCD7BF1DA22E2C482FD291A713E623\ -18F20AE2A6369CD5F958EF3A03EF2A23ACF0DCB68D27112B2FEE8E5E623E4F91\ -849A061EF3D1707F698D682C62073D7D45A8406D16:\ -7129EE5D900251E38EADB39DA6F0301E85266848C1D014D2764757AD5EEC1960\ -FD8A46BA55A79EE64080D7808F2B967F9F6F8BA51F296D3EBAC8B653E920F8B0\ -D2632EEF1C96A5E36B51C1D0F60D1DB0FF5D55C567F4393EE790C0BE87610845:\ -10E06819D7EE77E7D55765948D2C21E3:\ -CFF4424C5812922ADBDFCE029CE63235 - -871D3A83E921FDF2902B25660181FF81260E671390472416F9E6270BAC539203\ -A93D4AC5F00DB1B63FB4E8B840CE4D118EE967AD74E6308CAE8850BE61B0CDE8\ -87FEFC61B341CECAE98A7815F5E699766F06B3AEBACC:\ -09AE43E962C2F9DDCFCD5AB82471CFCDAB1154C64DACD154C088D4BDA0937708\ -4167CB7D41A7F87D5DD0E702CBB78F0CE1BFD05C53485A91E7CF333E276A0FE8\ -4915FDDC7708F696F49C95894A4D6CB848DF06D52B0C5F720CE23A493E7F4DC1:\ -9A937835746821DDA24AF556C13D7DBC:\ -2866E153FE0BE9DAA8506D59707FA3CC - -2D1799655E6DD69CF3C2E40F700F8C2F1EEA99B3C6926647BE7A07882232E1A7\ -901F3B06829ADB9BE11391C190BCFBFE908C08CA5BA7EC5A5DED518B0F469A37\ -8D9ACB7F1E0B8D7F5E829799D1877604FA0F801D4A48EB:\ -A1687F960FC0DD54B32B86B4A6FA988740456FC8E2CEB701E841CE897265A7BB\ -FDAE0940D288355E894467CD703442D86C40D3DA31601FDAF990BD1576951426\ -F8FE6AD5ACDFF881D103C5FD6F40440D95DAEAB2A3593DDDC152FE9B09F1991C:\ -FAA109A3632C82622ABBAE17AABC60F0:\ -E057120AA0B73247D6608D148BA05399 - -311FE0F676F81A110EB931AC3CD2590AB2F3730A4077961D830E8B57C224EC4A\ -738D27CA58C205FA0872F2BF6EA1732761AD4DE851AB06220AFD82C1DB0C0B2F\ -1064C6F23AE0C092F0F5598B73F4CBC80F4FF249FB90D1D7:\ -2816A89C908CBC999D1D8E8497B15F5697D66265D05B7900ADFFB41139A57FC9\ -6D9249EC2DDD805B83DE85CBB97A4C44A5DC85BEB18D7064855CA38870CD1E4C\ -62EB78FDC7B95B32B93D146429830E76D48D56D1E9F6297ACB5EB959B30834E3:\ -A5DCC797CB0383C344617502A5908A43:\ -60284E3971826821263594FC36FB6E50 - -9154A2ECA919ECEC8C9B3B9BC0C68949A7291B9A645B5F2D2935C77AB506FF7F\ -27B5FE0962A9A912B1A05DBF5141D03E4401E3649025947EFEF8C0AE5A1FDFBC\ -FAE5487347174FB40A92550F54B7C8261413A50B8D4E6884BE:\ -CC1EDD80A0FD2D06320F90174E4DA2DEE7CCC33AC342C03FF0FD9ABCDAA269D3\ -EF75D24477B888F32221EA51A41866656A8CC3B95C601A95CFF53783179DB18A\ -F5BA92C5631342182F283E083AE3E7461A809D1BA74F591235BD66F338ABCCA0:\ -FC62D9B01185D06CEC0261D6FD496086:\ -4D689251DE48BBC21776AC578B59F6D8 - -A15E33298652A3E42473AB035BB94443A4CFCF9BF8F4E072898B9375E0CDA222\ -B07F8B902BA73F73806F08F85C13114A68EA480642CB3D459F0E1B04E4F88133\ -2CB5E05E9E358C91000C09A9F129A197339BC2A8B456455F0EAE:\ -BB98AAA7FC7FAB8FB8252E69E54C2DF97F7D0D2C0BC3A679F5BFE2E51191F8DA\ -0218681A3FA59B9D6584C4F2B1FD3A990764799084CAF60A45735B3B8A480CE2\ -8BA1EAC185601D4D6D76F25D39891DCA762E21D7D7911E4F4ADDFE7DB52DDE7D:\ -1BC51FA499556AF60332AD5D287C01DA:\ -8A23C560B6F0DEF3540A72423DF2C33D - -D253DF61440DCE5FDE0C166E99670CE05E415CF2AF02D55A03F9419DC53B94C1\ -83660DF91681809E64B5ECB77C9180487B95B4AC06F484EDA769194AA3E72FFD\ -6F95E475A925A2420040B004610B212102423D879F821E196A5A88:\ -775D59961E58EA72CE8F2173AE47E6BAAFEB68FD85BDE05346AB017D38954763\ -B90B63989A1487326510BDBC75637B06045369DE798BB97FD4885B44E1B42653\ -8F5C904E44D85AFF8828DC56329B55BEC8F64BF7957E837B70AC729D03A249AB:\ -F7B9E5CB7DF60D8F760D691B8E79C834:\ -B976C6CD3730B031060BEBD10E832747 - -B97529984693CE0621DCCF68F1690B49396E381E885AEECEAB3E1A7F61A8B7B2\ -C5E58BEF82FDDECD29C9D9CB5F417005BAD6B7EB0C57907F2E3AB3E557F11BDF\ -383EE5AB2902D46DB97827B26ED8C4C47368F677291E50ED9C1BEB3D:\ -D02E1E17E9274C18017105C929CB1FC9C84071AD0773E4880C84AFE08D243EC7\ -2B3570768506285CE5708E0D280673FF9F0004636B77266A9CCCC21FC590D845\ -D685B0F5292B9043FEC8F413E58D20844FBD626AC27F4A43A1CB0677098392DE:\ -6A42A8F7A638089C2E55A166F87444C0:\ -3EB4E4AC62EC1B18C96DDF1465C74286 - -5DA55FA078498CCC7D509213E96F8915D466AC5504BB9F0FB922ADD1DB7A040C\ -438470962BE659508C37F8C276E3C312D0ACCD1AD77755CA575336F2CDDA3B8E\ -39BF99CEE435FB23312576E3FAC190472223FEC1D693E2A717D12E7496:\ -4652C8A3FE43D4E4C8CA7C952AB5505F42959BFE42945B466F6BE08B512F21B7\ -C0AF4A818A699D8A61C2162D8FA4DEB2B94D28EEBE99A0CA5819F386F1BEE4DF\ -BF11F984D6594C6D2E4A5E75C0CA6EE74993AFE6817445290E0CA0A109AAD624:\ -483A477C5D7EFE8D7EE764194FE8E902:\ -F496A4D3745931C47A814F0D9F0144D8 - -92C61E6AB26DC701A371CB5B5BAFE00B2C44BD2736E856B1E893B7AAAA62C088\ -35784F02E3C1767D8FDB5DE91118CCA28585C5F03CB46591F8D3A3F09A0C602B\ -01EDE470CD42EBCDF4C72456639DF2BBF7897246D7F82FF7D083805EDEB5:\ -180659EDD79D6DDDDA8A64607957A449FB11EDBD4387863136650CBABD58411D\ -7CEBF5C7CCC8F9A8044626C644E1A1E303AC8B6E638B0817419BEF4FDF5DFD6D\ -6999CE8BD64FC09735DCD0CDD654824B6CD61A52B698310D116C1040526E7260:\ -2A2B340ED14BC9746488F04E2EBA7683:\ -578AF21489F2C8A42CF412A32906B1E6 - -9C28215AD7EB481E46752C39061377A489523A8DC9B62FC8E7CEB12B4E26CFD7\ -6F863B317999DD6F5A76686F9A4DD8E7558F64F9A0BAC89949A12D3F1599D7C6\ -4B6EA82A36F334B6055D0402048CA15127420FAC555E5E647814C4F4C6ECFA:\ -F3031EA9E88EB705899C304DB9B46F0817F3BD87FBB8178E3CD99AEE040D818B\ -2BDB27AD8034B3D31BF96783AB56EE91BC0F8DAC44C43F2BB0790429B8936991\ -E6652D69BB1F0C2B0577D7155BE3E5B34E1DE64655769740B2C35EF8DEFEF596:\ -3E433ACA43F4CFE3ADB678991613F6C6:\ -1073F4ADF297DF3FE37A0AE2B25C4A1E - -45663D4795BF75D79EB3BA5BF5A9675C257E526B190B598562BC4DB4D441025E\ -B9E61E95243165B21FD6965E2973DD04A141097EE5A85E535A80862B5D14ADA5\ -214A98DD161620D1B98B0AA3FD66A1D31005AC822F290D71D88B3B02F1B9EFE5:\ -85B49563722FFBB04C224DFAE52B97D7B69DE241C854B2CA795527957BDEC3EB\ -E3A47BD259484F0BC10EF487B00B30638418F1F069888FD347F4714589D12B64\ -7DCCA4F275B5DAF428C4EC28122FE7ED0E980B68FBD5B89925DC0E3BE1CADBA2\ -C9797F7FD5B07BB55CA139700AC5CC82:\ -94EAEB3A2E109BA196DAD6179CC6E4E0:\ -D0D97DF76AF11FA9120CDB1F4A0C5519 - -25994469BA58D88BD0A68A82D216FF3C15C8A1175CC712138529433FBE2E4058\ -A94968C115C29AA80094E99F34CA98E0DBB6FC2DF165472262B2E4215FA63613\ -3B9674B2098CBE807C6565FB2FB4600CDF9D81861EDD9C7B01ECFACF711CB7BD\ -31:\ -39C4F62666E8B240DB0968C11645DAB7F39EA201CAC1DE82CF08754192FB70F5\ -6DFF8E106E22711F7C11B1E08C973076075812B0BEA56BDD983C0891C1075295\ -08510E47BAB4080319ACA3AB3F5C647BC1962D3B91C4EDE3DE437D2C496D7653\ -16A153AE368FFD97F9D897A7A4B41B4D:\ -931096F41AD63122418B0694F08A5D1F:\ -BFBCDEC1E1336D3B0AF876771A8394E2 - -1F6C82684870A592B8FC13963078BA8A18BE42F6569396D9749C4E729742F3F5\ -94613FE0D47C681A9ADF5CB1AFB4CBF48B6783E679B5782486EFF08834908345\ -5DD97106FAD8D34C0219C32A2948810973C04406A5055629B3FEB44F086ED1B0\ -782B:\ -A7860FCD31608F84276797E5E62105D91D485D83EB591675B2D180EFFE41B795\ -A0BB525D8C963257156C16BE7D2F23F2303878193ECAD2B790681AE7D9D4002E\ -3644EC064D633DE7AEB9FE7F2F7A323F369AA48F28FAC66238BBA99E0263F51A\ -3181B804043C835F61F3664B1B1085EE:\ -54DE58CD3277EA8CDAB1E14AF30B96E9:\ -DA5A911787618709C0DDF10D4D370C9B - -CFA3BA888B4985577682E7BC34390EF53ED46677D6ABD2FF005D9B47CE9FE9DF\ -64DD6C89F61912FEC07B212CE6D4A8DC88AFF9F7E96F2CF1803FD3FEB9E538CD\ -0EE34288A3C84FFAEEEF7789AB99CA574D6F71A4A82E28396532830A1737E5AC\ -F1B768:\ -B4A9126CE1706351DF0AABE9EDD2F1E1BA10928DD2A15448A07DDEC6EA78C854\ -B98E82B6AFDA1BFBA57EDFA627A351C2F3819906FC9950844230AD32FB1EE0F3\ -4ABE20D488B36C693E35A1A177EF69307C675F4AD3A182AB20C395582DACD33F\ -30B5C7470D9BC2CCB5AC4CB39D5E665D:\ -DF2C9BDE5AE112FC52CB4CD935650ABF:\ -324E72A3E627412FB271C62D87106AD7 - -11053DEEFEBC7662CCE5373FF8624FFF4832229980A212A8CA936FB6459A53FB\ -4731936071BDC21D916C85C6E5F0560E6294E67979A8FD00AF9191DF4807B3D4\ -54D4F57FFBEEF3CC2728F9306DFD77AAB3259D4A72771939EAB7B78581CCD272\ -6DA93339:\ -22EBAB368D5548D61691A4F77B6468A4D9AA2C2600009C808EC8656F58E49D8D\ -674702E090E5910A4C67FD91335D149126478FF6FE2F342F42B8F50618EE6DD7\ -5A07E4A90D3CBFB0C2AD6CC1B9226E2522871C017C77A0345ABA7E44688AB5DF\ -E4691ADF90FD48843AEE7D3C289FB6D5:\ -F76BED433BAE0EED648D1B28878D4134:\ -2F8F480D2EBE3F01D63C7D1E1AC6AB64 - -574A77F969620F53546B46BD2CC524DE9DED870EC2F6B9F61063FE9E9A2C4C55\ -483B6B4172C034F04EDED86ACA242425241C984ACEAF7EF04001FAA887E66BF1\ -C33594022A968BBBFDA3A7D9D9C735F461DE459DECBF12093009E84618504E97\ -037EE7A648:\ -AAA424FAFC30A2BEDF0644E693FF02B2BF1CA14285092E980E522611BFB3A372\ -7F68BAB53F5B9098C1112716D4B848882D4ABD847DE3A6F5AFA0BD8D7834E853\ -D90CC96F1C35F7F3E1DCAF6B227031C70A29EA6B902A5A1266E16364999D5BC7\ -E9374A7467F4673A995D9D23144FBC6C:\ -9C0A96F10D955F3115174158E77BF4D8:\ -A0F912F87D0D937E388F9EFB14900921 - -1C5AF4082A03011D343A22628667787D1ED78ADCDCF4609C133DFDED8BF179C2\ -96A7B7E023503F42ED1ADC8676909A42DFB8CD7A5B57F77B4F13907B25A1D28B\ -787B33631B46240FC36B5D13B059312991F0A54DBC269787EAC7D4C02E8BA8BF\ -511375F0D18F:\ -2F86A992559C65306CCBC9138DA2C1987C168FF4278BBEBB4B48B416DFF7987F\ -9BE993AB153B8C3B03D7FF1E4ACABC2E645A108382F995C290FCE8D881BAFF65\ -3F1DBFCC8B957CD7C424EB5D91D758960233A48153197374F1649830CC924437\ -7BBDA7EE7C363096A1E0B94F83A75F2E:\ -0E10DBDCF81E7F360D3CDB71AA1A6200:\ -A44C029268CEFA5C2665E9C883C9179A - -C40A8815E2982C32C417F4B9369765F53D1546EA3A39CD5E07DB465DF161F878\ -D8A361069AD0BA13F158D6F955A20C0F0225B83CA4C6F1D92519F26A8C711ABB\ -68140270218B13CF2F85F008CFC5C62490FEDBE6DB2E0DC5978A365711E072C9\ -13F81B782C1A8B:\ -D57A23818F90CF982C32648BB61769DB8654CC81E795668A7AA6CBC1597A8086\ -E92EA40A8CF4950A87D3FED3260E5B30C90333CE3E90AF2452A6BD0D00221449\ -7A850DC2E3E1361FB689CD4AC25BF304F40D0ACD6A77DC96B5A52354AAF09EB9\ -E45E34CEE834EE78583ED0763C2D9583:\ -E8CC72398A38C02705E33FD308EC023D:\ -0982EF5D081AF4A2130AA9DC5895F4B1 - -8C38B56BDF41611178CB12970D12CDD3BA2A09BC9C90684C853455E70D995F94\ -D0C7CD30B572AB9E24356FD3FF66CA1AA913C5E4B596A30C504CF22592AB5BB2\ -66956C8706EBCEA543ECB8C07A9557B65F72A66328B92037A9D1EE4DB32EE7FA\ -DDB037BD75C5A711:\ -AB5B987C10DC96162447A9DA1B70DA9C7D6944CE39EB0D507715671E7AC4FFC4\ -663ACEB5FCF4AA8ABCA5CC155EC57FF43AE23E8854022F176D620B89B01C283F\ -4866696FDD03B4CC262F3C6BEE590E26A25914F569592B70D017D872CC3D3A2F\ -47B0194D7EB425442F3335FF0EE3AB05:\ -A9AF40EEB9D7057C167C020C922789E8:\ -DD54B94CBB23C203486F41CDA7742B75 - -05EA52CC288620CA6E4A8232F1F3CC99097438471E6709C146B9DA1B1AC166EB\ -E968FA273A8EBAA577CF673959B10D9008CA182F5075E86DFBD5BFAEAAE69013\ -5CEEB445088EAA7F870B71D9BFEA7DCDD2AF5C37D4DAAB468D67C70C1D556A10\ -A33DEE93C2B1FFB758:\ -1410F5CDDDDCC1FEC3E6793CCABCBDD2A1A14FC0D40325A9D6E69C4FE4D87191\ -DB1BD4ACF6E4727D7370EA59B77FD5E8F02F38CCB35448201363966106388A3E\ -007C4F76566F589C5326A847424FD0AB647974C3CAA452D95AA4CF8D86BB0939\ -B430E6746D35D45576EA810DDEF7DE73:\ -42E4792765C8D601F647096128C22E6C:\ -C0115D81CE8541848E778E2B90652AC2 - -7104B9314233A3DDFF2074862A21B3AD6CA9693785516E2C7A4EE69A823D82EF\ -0A4C57C3F5113C62D9B1E755F9EB7943D432C87EA9C6004F14281355DED99982\ -1B1ADA56C68736FCCDAB111ED640E9ACFD4D164310925F8E3AAAE63C8AAFA382\ -7B0E45FDCE03EDE162F6:\ -F53F4386FE121FE5B734048DA923054DD12F244CC12763FFB8DB1E9E842DA312\ -1827DC297AB6F11B8278E6E96ACABE3CE23E3C251078734F337E9BC92FBDF38A\ -FD0FB2CC86BFDF16595E01F361A2F042974E6DDBDE8B2AA10CA755BE051A0CD5\ -8179AA4571664A3980B0E1DCC8369F15:\ -7B4844C6EFBB9F47BA2AE3CD350B00A6:\ -2AE654A8577CAFB65B43407C0C6F23F7 - -328C825FAD8E873D66178434F534E832EFC8B273BD74E133701184D59EC5E3B6\ -1B58653B6646CD1E91AEFF9B4A569976FD055C3039CE76AB5DB5AADB8D479064\ -2D99346D9FBDC193B782F4F5C16F2F1C60084BF57B40736DF186EF9DBEB12B83\ -45FACDA9A957D20666A1C2:\ -6865D8CE0ADADF051BC5751DDC7DC02BD3E8425900F493A9866F9B0FF11704B2\ -6F949F38547859DFC1F7E4EC9066BD6825CE5596C32D97C11CE6ECBE63A58E32\ -C3B423114C1E4330789817AE298381050607A1F8FBD37246763CD98128565AB8\ -9FB05942B02BA92337E30E5F9F87A1D8:\ -0C76977CEDFF0BED19FD14FB31914BAE:\ -867FF78C9084E6B866BB74FF1549F0E1 - -1018329626BEEAEB50A5B078726E9BE6074CAB2FD2007790102626241CB54114\ -52B28C696FB5DA1BEA90BAAD90DF0F15A559FA821423EB500F0D76B785FFB7BC\ -2470509006CF192C3A5AB61CB6D5F7C6506C740C8BA763527FAED51748E33477\ -5D759F904B3CEB9520EEC9FA:\ -E3C6C758EE636F36B674E5D06B3FED93F848D5C781772E31A88EEE0F84D4DDAA\ -BD6BD6D439D36AA5EAEF61302BE6968EE3B786B5CAA20040A15EC740680A4E0D\ -788E445AD1D00CA2FA8A4D32D0C80821AECC9668CCF8D60D74B1BF960AA42861\ -D9339A064A7B50555ECAA71A475A87AE:\ -ACB06A6D35664BA240105546AFB89D88:\ -C4C566F5BE990271C34EB38B66F4A6B8 - -D30D40FF5BBB7E7D4BFD03B39DD4F7CDEEA3EE36CF59735140A2CD884C341885\ -A2ABB16B42883C17D0F8A8EA49932906C51B4E0B195438236C929E46C3DF0400\ -D6BFBF7E7CD09F78ED819E51CAFACF184CED6D9854F0C7FC3D4E2E92BC07B979\ -3F15240C221F9CD951BC1D8F7A:\ -D99D6BE44B4B07DEC16063AE56D734955FBFA4BF24156531336CBDFF718D1CE8\ -DD9414A5137F0F193B22351BDC56E4D62E827ADE0A414DBBCC99DB1FFB700153\ -0AD06D22C1685B7C608B97C9F282EA506C87F8F1E861E2F56AEDF96D02BB615E\ -222B9F83219D7C79E30E0A830DFDD089:\ -3A57AA735A2A5BEB67002A4B4E0F0FB7:\ -0FB689E2D76B4CB6886813714F78A471 - -D3C88CA0AD414F6A88903D4B2BB756CA44717CE6C542537066A898A343A3DD6A\ -E2609E717DA65C9E82777A29E5C134942455B04E5926DF69CC1B86EA95805AB5\ -267E9C456B29C89FB7D5EF184016178C8F5170F6456CB2D3A288264C501208C2\ -F71578A794526A40C02267CDB749:\ -12143011522BADD13CA2D5838548F63585804175B21B47AD9907FB3875049A17\ -A27EE2C7E3C9FB61C4F1BC8795D9FA8B267B698A216BC3E3370A04E27CDAADEA\ -D0C18E6F8564F3E82A779B2EE149F8DAC7CF9C7DB7E83BAAC17D366E3497135C\ -4D59C1C4D0DD8BE6520A1415D7A12729:\ -25C1B9E50A35623397E026342290F381:\ -99CF0F3E276941A23B8BA3AE4BC36FB5 - -1FA6BF67DE5B0B29BA7B510166D06CD100BA68E03EE4CC8D8340E1BDAAFD00DE\ -840147243E746C85F68409F62E474505BB8FE6251FC550A2D8C9CA071CED983A\ -57EAB7D7A0E636E809163E29677388B2E96F81165B4B7DBAC996D9DA923BF3F8\ -9BFD7E659AC6BAEEDC2C1F223C85E7:\ -FE2F1AE7085001374F5FE74E6C243763BA979839C7275B817FE5B1D93A8D31A2\ -C265B646ED0E9BAD5EDE61BC9A6BD7FCBAE22D818DEAFF76C39CE6F8F4302F0D\ -672628B36A1FE1DF90697408AA636F0F2EB12D00A87C1660C03257EC7F98FB0A\ -2750958FC5769FCE8681001134A4EBB2:\ -3FE0B766CCDA7B8AEC8FC3433DDDF5E4:\ -E5E7B817F2B2C47395F3DC983877C6C3 - -CB81F985B3551A1F653816EBC8472DEDB58C5BC66049A33543F92A64D9B06806\ -78C5AB54FBF03B7CF1CB964E903E92FA1D7D0C3A5B4E2A8393687F0CD73693CE\ -EFA32DBBB854CDA1BABF629CE10CFEDA1F16C8A60B9419069468A5D8E3070403\ -5EC4F7CE7D67A5547129FD136908C33D:\ -BFE9B413104A26F4B3B86AC448F793F138BE0DD31CAAFEFA7AE2AE69BD09402F\ -70F921081E66D0F3A092D3BC28CF2C8837991A200930F260443F9755F8AD46DE\ -F08FE5020792BEB7D2241F5D9B290A4F5F849E378B8184AA616B081196A38439\ -3FFD2A15622029829F0BEC293AADB6FEB5893AD9DD2A4B46A32A033FC06BFDD3:\ -7E9BD6AEA141BD2399CF9C34D8FD0EE0:\ -4265EE0DF32B9E35411F3890D981224B - -AEEC500F45E292E59DE2A9C4BF4B0BAB26E920386B8AF44934C5DBCE4BA66ED3\ -B294F0C4F4A88E70CEE9F9690E506A1C6E1F2B6E9085397BD3C8E197E8295728\ -815C47D859E0FAF1C5FA2ED9237FBFCA5843A9F99EB40E53554043AFEBE394FC\ -02F47E6734D3F01FBF0E4CD7D21FA3E631:\ -DD6A11239F7AD4FBAC8948E6E2D2F27D6EC5C818FA6501B910151B8CB3B5142D\ -AFA7141C0310F3668C7C79DC1ED8144F01D6B0BF1E9574896997545BB441A5C2\ -5CA4152492A1CE498B42B0D8681E47FDDF2F240C9D0E52B516F459C5AC029938\ -1FC7964D9A4EA8A28588F62D8BCF98C10C23999B81C20E971E4427CF32B72EC9:\ -DD22660F816ED9248F192406874D15C8:\ -5C25277D16E491388E300E43463ED773 - -255BAF2421268D3A748F891E76B7507BED31C86FAD52BF775DA0C6DDB4849F13\ -8E4246BF66449217FB62AC389B70D0A772D3B786526D358A83EEFA4E963CF5DC\ -473EBD53DDDE847F32D4B62D9616D1B0B37DFC552EB853A66FE62B58370756E1\ -7EF4D4ADBAF23091E5FC9D67CA0DA3FCBFEC:\ -E73F4EFA1943CE9EF9704BB173B14371056DB816BF9CD52D5D509D84417393D1\ -C3ABFCCF929F66F01E7CA8FF4E78BF73E3CF63F4557075875BF049A8F92CD8B8\ -B69F40CD384D94A2D6A217292834033CD94BA0A06D0B41B26E4F8B2C5F7B6079\ -630CD17CDDB518811A107D957645C7FF570E7F16EA4204EE79C625A5E9A873B4:\ -85F6C7EFEBDF11A904C8741F0C67411E:\ -60F0D61421D0D6F46D6BB01213C2AB33 - -F3CC75785335B638C1299C6D28856E4D66C060488BF17DB58E989EE2EFCE3D86\ -71A8949051543F360D9ED2C6990D41DDB9DE2EB9DE00D93B058E560786F6D065\ -C8F31B980275AB44F8553610ED91868B0F2200010B870C5F523F4B7059CBE889\ -F87103241B4BBD2303445144E0F183781801A9:\ -EC768FB206FFCBF14D21E57C2231CFEC6FFCA8F1679C97F1CD7F295E4E1A531E\ -F9846B2AB7B4D897D7814A124B3BB4BB6B3165A6B37C2DCD5A8BAA3F74735213\ -E52299B793D058D3D6AFEFFC08AAB7B746D4446BC264DF72AAFD9DE23091287A\ -A93C5267364A292A56EB20B011B4896021422527FFA26F3B8B833EC117BA4020:\ -B52E2A13114DF2F34844234C4A170705:\ -7818531571C5F69B1B4CF26F75DE0F21 - -0FE31EF68E81FD5CCD82FEC5F2CC6014AD31E41202A0E4C9FF8830C79DD77EE0\ -FA45870BFB3F8F8D0572564793A348BE277CFEB269EC1163F898E60CDAB5E729\ -87F1997B09732CEA505E59E6EF1230F638123CC2305DA0DF6BCA214D7775A8B5\ -6A712E73E426FE35C3D0B3F2AA2664EA0D323F35:\ -FF1155A412C0B8009C06A8518EEC87CE4614A7946E6F06760FB86B8BBA29485D\ -B78A2A15D168A0CC53FA494463A803FD8D702835754F0A1310B8AB33978D05E4\ -4C7E2155997706F65CEB71388B822230DF2EFE65B02FF949DFDDA0B6C6863334\ -C9F58B0AE50E3867514D53095483A19B0A44DB1ACA793BE988398FD3E523D3E9:\ -0E9881250175DC9F6564D3553B3DFDB2:\ -116C34C3DDB5321A21F100401EEF6390 - -A6EE4E43B382CC75FEC27BB90D2A3F204CC995033AB707FCF8EE2E7E76A3D189\ -BEB002EAF964004264A7D712AC5560AA19652C0BC593DD2231B15194D9221631\ -E09E4CCEBD1EF599AEF836772514B6D256F6BC22F05CBE6A452BE56328524EE8\ -B7A1C1683108BEA36BDF538A8CDB871038420CE29E:\ -52F203A1ACB1465A9D2EB0FCB9CE83957F4207C7649D74FFBF8EAE6C608EA87A\ -EF9CC76B90E28A73004B5D9B074BAE04888FB02194BE477B18DCDCE5E738DB76\ -10029DF664EB8C9C5887914760D69257E35A5B40885E2ACCF160AE0B0E0E59AA\ -CBBEFEED01108AFFD9A8F6A22EAC8B504D084BF6949823D5F59DD924AC52318B:\ -C6B2BB588ED1B6A954710036DB0166F0:\ -5D54E4FF322F6E012080E8FAA242FDE6 - -D69325940CF2E33246F5C0C931BECB9E0372173963F58FAAC297AF7AEB4784B6\ -0B16E98E2E4174FC1CB73EA690A4ADFCD38E4A955C7F1D915480C028D30E5849\ -2C0BF7DAB257D5DDF2230B3FE0B62B73B17B82F01D661E1AACFED564B9615995\ -EF7E0C81C373601BED078FB4668E55704119300BB31C:\ -6D0A03A606901BAC108C80DD968AC128964588F8E5B3BEF30FA0AAFE5092C5B1\ -B118B2FAB9AF379D701FBF9354B99048DB408B7CE3A954361A2110CA97386DE9\ -E0A8B52B86704D69BFAC08B77F3B961D39105FB3646E2075040C169A9388E68B\ -C36ACA6DD627036B15B2AC7424D11AFFA0BEB4414F5360B4349B656D8332D638:\ -86BF4DF958BE53CC007923FE8D6556AC:\ -20B3C91A3B5A66A6AB8599D01674AF45 - -E05554670BE695A32D397A2A6951DA076F4B760D0C6B7413656B8D38143056A6\ -A6074E4280D4EB70889B39ED6A27AE0F67D7FFD31A4933F8CD300BAC7C810162\ -D2F91CAFC8BF4238A44C09D06AD503E638AE1299E1575B2B3B3229A9F6A240C2\ -3F1534CEAB344FCA12724D8D185C1A96DCB3E040000B95:\ -05B2E6706BCA5507BCF4399F466212CE875C9C94436F7AA133630A3CA67A9C84\ -3230FC445177867E73A9AC89F7BB32C6653F1A30E4859EE98CF7BE8C5E1479A8\ -0285AE091AE932060F8093A63AF1417FADE414F33190359587A30280B330C657\ -E3DC35C8A003ED7ED92E61ACD08049C716AC2F12F362C4FFA1EBE7B7590C6876:\ -915AA4BE886620705DEF24FBBBA40598:\ -46A4D05C91E7931956C459CA51E4869F - -8E97900728874829423FF9E65CB2F3B4E3E720BBBEC1A3485F34A94B7580001E\ -5CC450E6D76516DD9A8E450320248441074FBBBCF9A0BB3702B100126F5260F3\ -81DEFC536D2905E78A3783CA969730AD188D34381D353908BE269B10ACAFE287\ -BFB37E93349A7F6FA96912975B817BDEBA0500B87CF95680:\ -2B1C832A0210ACCC143745BF8B4A32EE68C86584868B2AD2C64BB802D831303F\ -6028C0646107311F22ED520E063DEE06A2AED4F22D6ED762A299149B3723D30D\ -264847CCB233E8C522B1EEC6458DBD238CF15A33B55627470359A09483C66B66\ -2EF012EE8C26A92BD6E12634B413A1A27813C0C6DD39165B5FAE54069ED2486A:\ -6FA0FBBB491F305F512982ECEBEFCE3A:\ -20CFB9FCC146145657841CB97395B14F - -7D15F0ED3E7D504B3051AE6C00E01DDCD7FA4C6F3A3F3E0E9FC945847BAC9207\ -6D92C9BE830AF40D473DA1741DFF53EF78502796B21B66E7E37707A400EA7BD5\ -44FC234B655115394DAFE31C5CBE48846AD62E8F15B6D346A50CDAB34FDD2859\ -3D5B369BCD7D8F47783BE8CE2F5735C50AA266667E421E1E1F:\ -91F4FA1D9381C08E9C635ED7BB5D12421F44F80E13CF665AA2EBD06052B3DF7F\ -7DD1952D1BFC6B61E37953D7EFB4CD152111F74A80CD937FD88B83139E7860B6\ -78512C8A2D891B1AAB080C77B25C226F9C319B6B21D804471887A8EE9DECA336\ -B29988AB80D6FAD00A7E1DA5CBDFB757E146C592323CB381EF40166D644570BD:\ -5896FCEDBF16D103B6CC4909222B1493:\ -F29D9A05434E704CAC05D280A8FFEE5E - -9FACDD624D109102570E789B4BF006C1F0C24E95ACB8082D522615082DD933DD\ -550921F38907BA5AC30846F9CC63AE18BB46852E8E802CB9BED8C09F049D6B35\ -292767D4615648656FA05BC1CDC54A78B00E70A5098A884D0133171D5D884621\ -7775500B2F33EDFAE01109DB72BE4782C3EA1F839A1134C01A55:\ -F2D12969396FC6DFE22BA80E9F6A176C9F3D91536CED8CC2A83E1D2A7DB83C1E\ -AF6B069522CC1CABF7B30E6B1C082991D662F847B87F3DFF40C7A3CEC5D3D966\ -15640A3B48B95E755CA22B3B0B635C2A56A61F2A8435E1106F62C79D37372B82\ -BF71F6043C44813EB2E12729AB30565FC718392D5FEC1AEF0DFAB649EBA8EABA:\ -BF380C44E37BCA81F3C6036EA3586935:\ -32F440D2ECDD949684D4CDA9586A28F4 - -6A22387417FC3ECEC9443041CEE5E8440652146BBF214663631A4ABA37A5920E\ -1BC9611FD936729CDC28084B451C3E08F313F31612C2189E27BB73B48F581C71\ -17DB75CC22D821911CD70968B960AB771C83EC6BE2DEF41A22E36734EF56F250\ -0D3EAE610A860661DDE7F9EF7BB75FE765C427B79C545463747BC1:\ -6A9A030F41BE6BA42A1E7BD051794848D8A6EC6B57F4A0CF44A937A42164A767\ -D8799B9923F501621800E05BD2B3F65A890AD5603641ACB2E980A06CA3FBDE32\ -43CC2BD2AB50119576FABAEAEE19D75AEDD91616279A94F8B8B7F6A89E423055\ -718DD356250A3D466BDBD35322ADE654DE176AB4F2740716D4D6B61CD80C065F:\ -B81F13EAD324F6F9F9E45659D72D0EB3:\ -122A6645EFE2F81E6FFC8E4418ADCA30 - -344C97F9A847B33B5A950F5EF4EAB59971EF86D2D11C77B4196DCA55305B5F71\ -3303DA12E3D5C736B129706477BB8F71F3C81819766DE583BD915BFC4C9F528F\ -32D2A4DD4DAA5C5286415090DE7CEAE61BA1B18937CD41E69055BD5A99C73DD3\ -92606FEDC0D386696F2BE9002980CB5F1EE5135974CF859E802806A7:\ -16984B5B5369FD385CE7EFE789D8B2E80F3A7F3ACF0AFD8D00E7C31D7DBD24EB\ -0C6DD509A4AE6A1C04A7A322BD897D307C421EC9A1FE1EE935CAFC27C6FAD7ED\ -0617D184B75726FDC26174ABA388836A99CAF23818A4707EB60A233302E09CAD\ -7B2F7FADD02A9466F8C861D481023016ABF6E57BEDD4B288C8A81B7EFB8A4485:\ -20FE5765A855346A157FFAAEFB7CCE31:\ -F9147EBE79608EFFEB722B28AD6138E5 - -FB5EECD4A3BF6C6B1B0B4B4FF7F702FCF538AE425B5F7419687ACBF263F95872\ -90F32BC9D146A651F4036346934198DD14C0187BBB50834A627ED9136D8E51E5\ -EE2D4DD3D71A3546A3DD91F205905F4A4ECB83F1882E8D20A84371CF8886651E\ -DA9601D6A3E7A6B60D7B90552C19F786D4AEA805A7C5F9ECFBFA69776D:\ -BB60147DB21B8968AA6C60DF45053D8FDBA5FF5C95D468DC01A4030970685AD9\ -1FCCFCC5D35E19E50530EE6C3BE336EBD39BAC07E8C3B966692F2BE6149EB26F\ -E160913CF23BB49B30ABBC97468F65CF347EFE06DDDE60E899E28B801AE21F45\ -1470041F98F8A778F75E03649EA7CF6013FF285F8EB1CFBD8760B3DF147AA796:\ -01DC3A0701B7CE3EAFEAFA1A5FFD1B88:\ -213F409C520A489A000F30016C01CC21 - -7B1A9F40AC8BBB0E7E000CDFA8A715D9AAEA5C8488DEF0C31C4F5C4A2F2257D4\ -80F9C669B3023699C14F59D8240D86382E8DAB49F1F4FA10C69CE63137A21D17\ -DA7001BBA5434C577B7F17A22D5ABA62CF0169FC686AFA28EC780A955DC00332\ -81F569AADD0A7130FE25E8D517C78D90EF6FCE96863A0356FE9664DAE677:\ -1C3C3D5AB36DA982C99679AA52D3B6D91E64688958E72BCD7DA933DD509B5E24\ -6277CB1603125002964FF838EAE8769CBC63792BB5F087D31F12841D9776B523\ -3FDC4247679A99C050DCF0C14E8963D39551885F905FBA72C4689A92CCFE4837\ -82723783D560E6E8ADADB6F6BEA0762BA6F21F539E14BAB48AA69675CAA69069:\ -9B9B9E1B898CBC46D32CB73E38F4C3BB:\ -41C1C33D445AAE243A762D2A5EC6B719 - -AE5940BD642AE3A0487BDDDBCA420107E8A42982812995C5B6F97CFB7B1D1898\ -4D07151984685989294BE42DEF6CC4D0BFB41F2F100115ABD1F36407522C728E\ -84C3EB0E5C156B89C41BEF436FC0EFB1BCFEFB876936654F0738893D601F57B4\ -E791D0854AE1C6482D68355FCA5BE8BAEC3CBDAC383D187BDF85845843D400:\ -86F1B8E57A56C1936D226EB3133F8FC7368E172ECE39C70C39736CD17711C20D\ -AD4BFC8C445D1E94C6E313FEF1BFEBD4865805560E295F20E6860F26A8B35ABD\ -B3B64C230585E1E12D1C83BF8ACE9BC76141B2E9C7A7D7E3BE69C504AC3A4DC2\ -370918C0930B660106B90EC6799463EFCFC7FD057113A82134343AD3E51CB32E:\ -763992E428859B04AFBFCC8EA1670853:\ -38E2D175E535CC3CDAF3AE49A5D80385 - -18A0F0ADD69013BE387385E4B600D765FC39204E4284DAFB6A80062855C3C044\ -FBBBD10C41D13FF4247ADA22B6533647D2B5BD3C1BE520282BD087C04850017D\ -EBB7A2DD47527B2B9E3F148795994BE379790556C530AE12BDA2563FA0221168\ -1CCF34514DEAA6ED6AEF8568CF577A58606AE7E6384D572FDB7E17143E000B2C:\ -3924800EC62AFC28F39542F994316B1FD00CE52EC073030EA54493CBF259C2EF\ -96AC4FF8815A35408ED9A619A82094E3CD94426FE09469F6D940BA73E7F9472C\ -6AD14E8302CD46481E1971270B3EEEF22E0FEC16B530F9DB34385695EE904FA0\ -34DE7C6C1FA6D971DE0EDE7129DC0F6FC7404D7686ADB22383B0506CBDAA7888\ -DA1DEAEA3CE196301B311A59C8C28499:\ -79D8EE7B194C1DAC8D6AD992922B5E13:\ -A709D2673AF50F72F03013ADC79F8D61 - -[DES/CBC/OneAndZeros] -:79FCDEE6F5A94E74:0741219814F4369E:DEFD8C15FEB10458 -61:AFE5BE1DF47E6958:3FAD1BFA365F515F:587FBFB91B510842 -6162:FB193EF114B131AD:C6DDD3B4CFB3BE35:3397BADCFFA5CD9E -616263:DED4DF8449FA9AF1:39CD739C5FD324F9:7BA9456759F9D9F4 -61626364:90D644584B46BD60:0CE7C79E562BB380:FBFE8D32A056DF18 -6162636465:2A70B1E3D641EDA8:1FC96BC8537C2BF5:7D14C2BBF4FEBFFA -616263646566:D46AEE73FFF0871A:3EA0FEB6F73FA584:F7EB4F725333CFE0 -61626364656667:98FF67221E6870D6:938DE716B9569292:78C186E4F57CFCBD - -:4543FC96F4B8B122:819B1D2932657450:BDB02A5EE4B87D94 -47:CC6E8C070695E305:0D41339A489D8364:BFB7F817CDEE3C12 -4749:6FB34EA238CD511A:855595B620EA4AB0:39E6CDE9483737E0 -94A320:C2D8EFE2B7E89888:8DF23DFB014D257B:4C3D7238A857AD45 -621F374B:709D24FE90B62702:E6700FB699FDA882:3BBB4962D510E0B4 -A8A6EBFA30:9BA4AAEBF47F2934:33154E7A3744B1F8:9A7CFF1E07BE5EE0 -3F15A3A21DE5:32857A77CD5F0837:D5B9736A8BF39C52:9F9C1DDF2E81D3B9 -13B01FB8554A61:42F700714759E23A:AB8AD1DC2B5E59B5:AAC43EEA7CB833C6 -875F37E530711B59:8A46DA643B1D2782D0DFB5210AD2745E:\ -AB36FE234780AECB:E573C3E555078997 -3C6D4C4C7D419EBC5C:A51F4FCD2EC5EA235610B21F77035E0C:\ -9BA56B459BB4EC9A:0F779E7C90490B73 -D6EAC1E0BB495865632A:E7295D7EBF14D4401639A62B1A59B963:\ -5E5CEF1045C62E7B:1B4CCFB80E497471 -AC0B3DBE737AB8DB9ECC26:26C9D2560D7E1B8247EF2B13217E1A8F:\ -4AA17F4FE7CA759D:7BE44B5716CC3883 -97032F592A72724D4B6BDA35:66F27FB8B1A5E3AC7EAFCE2266D6C694:\ -C6913279B07861CB:ED65E32206546915 -F8B7D69BAB9A491010D7B41C7C:9F86FD8E20FA43F370B4BFE50735B62F:\ -267267DD1B7F94F5:F6B7788B39D47060 -D87C1E74D45EC6906392F3DA14E6:75F8450FE5EB0294533ABE2464248209:\ -6F5F0F3DB8D7218B:2BFF759EBBB0F0BD -BB6A3D9A99965DF79B4CE7697A281E:16B73C7FBA6F359B582921165E988021:\ -6C6FAEC81E8976BB:9519212C97D4283D -324A67F9D21E72BFA9B47B6D44F0A5A2:\ -08E30F789193EBCBE48D85AA29C9CBBA77DE5065FFD7E1CA:\ -EDC12C2E333DA4D6:4D2B65F5A40434D6 -BF0640B94C6208A3DA03C7EFF219086590:\ -2DB26514369B9A739631BE6B63E928D437EB39C3641E7C8D:\ -AFC1F8670347B23E:CF7643DE09109D0F -6796890753E748AF37ECE642392E6F4DF6D7:\ -1157FCDC653E1644319CF7933D05D60E81FB2F85A6503BC5:\ -FB90A71C36341FC0:E2854536F1ACCC7A -3E13EE1BCDB631B81D58505B471278FF1127D3:\ -E8A9BCFF29B6C0C5CB60A73C91E480AB98EECD3BB8E9A503:\ -352C22EE6D1ACB80:2FA6DDA5E4F094FF -CB286DE6105AD73D734A7E03F256556C9BEAA513:\ -423EAFEEC86ACD6807D575386F65B9B6488B51306D762E7A:\ -D2C4D489B222155D:FAB0A2C5D80FABE9 -5D047DF0F33352B1CBE1C0C6F48EE8DE30A4AC4E5A:\ -4A73158C12322376A5CB9F6A88BA8A4BB36C5D516D3112A9:\ -041B7EE6A1C92B4C:FF04A9048299F7B5 -CF0791C7717083D47546AF26317647F3E9FCA95E7228:\ -53CCEF2E488E717B0BCFF30C99E257C36B57DE139778CD3E:\ -D7D6ABBC6B3F0D51:6CDD58FDA4C96D27 -F51232D422749E5835E694EFE010190AAB2B8DDAF5E7A0:\ -5D35E1E183A8D3C3305DCB01C1751CCCF6FF6D7BE9A53C8F:\ -EABE42DC124A4526:3F57581479CDB2D1 -E0184489D98899102B9053D27B87C6F6C5D836BBFF93029F:\ -C10EB94F783DED8DF7AD46C605042CB610948CBED32E5E28924A998A1490AEE2:\ -4E6B9FC17A58A95A:70EDE349767C59A1 - -435255534820414C4C2048554D414E5A:\ -69E0288D17900DA45557053EE79CA771E90CCB8D28198E0D:\ -E3BB33E82BDB2B84:593A08135216F478 - -7777772E6D656761746F6B796F2E636F6D:\ -14D752E45A8D28EAB2A5C8E0A12E8A88E804451282F62CA5:\ -458FD140271920A6:605C41F0790BE4EA - -[DES/CBC/CTS] -9F8789F30E3ED72800:48C597491E0C3C1706:9076D5A743FC9721:A9A6C2AD38E682C1 -CD8254CBE545A5E9C714:2D6FEEC8BA6070172D37:0CDE4B75FE1C60B2:23034593F143AC0C - -AFF70EB1F349CCC1584D88:F22A14BB906DEA068689E3:\ -911DBDA323F5B30E:51D47FBBEC9C4204 - -A0CDAF182FFB93314FE439F7:762C34D15E861502E7D5C77B:\ -27399EAD16C76FEE:DEFE481F6C7333C4 - -3AA32EFC2AD3E7A81879C38905:95D71FD889E597A3F52EC664AE:\ -B221AC0CEB5AA606:1C01DA1D9AECA0AD - -58FB7BF8F6A8C26398053B5AD1EF:4B3BDD1C187FDE4EAF0EE05B2A60:\ -710931E0736D16F3:378013D6D8779222 - -1E73E7D1B82FC519E7D6778CBD9E6B:A532BC6B9C5686C563B59E6EF47F8B:\ -BAFDA9C3208592C5:1FBA498F337A06CF - -63B0ECA8495901988D536A8764EF4DE0:C9E597C818E5D2E8D525744D1E58BAE0:\ -7C92F7577E9E5821:85AD46CB62C42A4B - -3B0692000B6FFF4622977B62358615D8B5:8110C505835BFE6AEEA9D8877469F677C5:\ -EAD7E457662B61A6:9BE7F359CFD116D0 - -04AC84288F0BE9BBF06A04E2DD6DE213734C:17679CD3AD54BAF73FCD7F72C518F0B4313B:\ -31924C5C146EC54F:DBAF3718A8B17FB2 - -5D8B2B8476827B801B08098CE6F5E690FCE32C:9461193572872EDF01E2266E56CB72A78A19C7:\ -09CA9A9F64DD9CDB:6B31656961B96C3C - -F21DBD30623DDD0C3137578B1ACA3D048C075FB8:\ -24657394EC233B6C7076CF6A33FA53B86C98CE74:3B1E7CEB3483A31E:B3247C1AAE6F97DA - -A60CB3ABB1A52085A334641E9C26FEF09156E7CFC5:\ -FA9F81191286962E5B710C20C99983916AF173C8E2:\ -0C133B1D431666B2:9D01A2A546DCDD89 - -800301AAD00F8F895B84218BBA09246DB23230AF3CC3:\ -11ECD036643726BE0924C4C401058D15B63E539F773D:\ -9C6C9BC335380837:EEC9907B66BF8F8F - -5467CC7DFFCC6E60807E09AC80CC0F323AFBCF3F49B65C:\ -24788ECBB92BC763FE238037EFFEB0AACAFBF106DB081A:\ -AFBD3EC2FFFB2855:021A20C31816F20D - -B1F5B889B9D1E78BA612BD7941D5812444D3510AA83D0B72:\ -3266DA8CAB200E3C171CADE8AC651D44CDE2902EEBCF0F5B:\ -22612A76D074686F:6435B2BB76583F97 - -9C8D3469E24F2855E477222E3342136CF67673484603EDC5FD:\ -8B4405DC91225416A4A3F6838C72CD0F9743E5F1158AFF7DCD:\ -8DB74F62C79A83B7:C4422D5E3E95C4BA - -41B52662B96E82080D704718332453E8A3FFE3160C48A954244A:\ -1AC7CF83548D910658FF048174904A465D5F401FC585F69E96A0:\ -DF38AD749B054C2A:62DF2A547372237B - -BBEF9A510A56A5595612AAE5102CA399C2954E5C0A6507B7E30137:\ -525AB2A4FDC61E88D17263F7726807D66719D0E33C8D97968FB00C:\ -D7332D48E4A08E73:BF57A1ADA757E6D1 - -52407DC79E76D93EAA0AF19D9910EA4B101475972530E5DE6AADE1B8:\ -22FD7F774A84EC5B194B9B3159342F6DFC0EE7F3A82BD2DBC4551BD6:\ -BB99706196E706BE:2CB49529735604FB - -E69039A548D7C922BE551BE70A404D8BC347B5840EE4472E319C7F9430:\ -1D69B5C8EB2BA0CC8E418A24E7F397C54CE69419048E0EE7ADD6142B2F:\ -4F9BF676A7F95396:64DE012EA4EF1853 - -20081F83FD34060842DF4073EA8F5B3CAF0B289EB25FBD807050EAE314CE:\ -FFDD0C2735740CB998DF8ACFDFB2C80AF3FEDB07E01A8795FAFF51098730:\ -817F84ADC89EC13F:E166F32F3549057F - -6045C8B00A0D1349C6576AFCBD95435F90068C3949CF32FBD2190C3F906919:\ -C99CEF2CC47F6A3CF8588501D20B91F99CAC725EB2D35DC8EC9B1BFF3FC193:\ -F67E4196CC6DF276:EAA8CAD5C86EC7C6 - -A1FA682C81629A841AC8D1B371053997F4BABEF1D83D236AE4C77086DA24DBF9:\ -2074FB01FD3D750EFE0548BD2C51B127188257F76431B71AE3A3A6AFE7103822:\ -42CE0D2CE01F9ECA:71CF9AEB127BF362 - -541DA0919992A383F739B2B601B92DABD3F4AE1583D607EF692C010E7E00C21967:\ -92B790B103A7664D2508D08E21994EF3705E6F8109D83E087878085A2B5DF354A7:\ -4466C9BF5B474B21:0DF3DB1AD76656D6 - -C909604CE459AEE764AADA4203EC6AD3B34D2720890CEB8DBE38CDD955D1BED744F4:\ -602D9A17F224434CA5257433E395A8EBF714DA7A41654063F7791051786C21C6B2C5:\ -EEB3132A403F49D5:18BB520F687B1841 - -2D15B7F8554FCFA780172E27C7658A2035CDDC09DB71D10B9480C5345B250DAD722C65:\ -2ABA254E087A44939B17C0B013FD0D2515A81F552CB833F83E497B0894DDC9B66DDAE7:\ -6208B08A597F770A:4A71971DFED24F2B - -559C03E98875616C541C1FC689D006ADE4FA75C79DE33DBFA5CE7829106A6EF2199D9496:\ -8D1C902E4DDAB97D67508E13538675BD45E59E21D40432A2D2A5E9243AD30158AFD5AA69:\ -A25EEE00A0B616AF:DF78562B7DAF5D2B - -575CB34C5B252FC26D750583111B2F0440B93317119BE9ED482A0FBFBF0B6965C8BD672B6D:\ -BAD166C1EB916C9C12DD3134E4F2A85F59109032E85A6989E581AB8834C6CCDBDC5A47E7FD:\ -9BE282204F105A61:F7F2247110CE2237 - -82EFEFFC150758BF33700D7E54FDD0660D80B023B66DD10597A08BE9A5F26C9F71A00FE72CD7:\ -95EF6D44507187386142436237DFCD9F5BAA7376B71CE10D6D47DA1D7645F790D1C30FA84131:\ -86543EB8BE5D6E63:988C92F9C6E7F0A9 - -E3411B122E35669226D9A9676C5A735A645C258\ -8911B5DF3F00AE88C48FCF91CBED0EAD776511D:\ -D9DA0C4ED498214DE38DFC8B6663DC231AB17E8\ -39819761952446E7BD4F3A4D5996D843B1A080C:\ -61091390D89E195E:55F954DA491D0487 - -82905227D786AA54224A9A98EA663F11765606E3\ -7449774301E9229AACA08D8AAF88CFA055EACF46:\ -F46290E04EF671B0F1B40B6A3C957E416EC02401\ -49D8E2DA20A936E9B65DF371BE6E3507C1075823:\ -46656F1BAC4034F3:B0AE27B323665888 - -0132501B732D145D7B44D0CF92493B3FD7A56DD5E\ -8762DB54BCECFBDD68E9843A1D0BD0F20849A3756:\ -F6253C8998EB2E8A898661336F398E555241736B9\ -C0B5B83500121F96A3C85EE5BB6FC3489BBBAF3B1:\ -1C70A4D7A305675B:05131A93D393B7BC - -374A3C384D246E0703BC69704DCC2EC8E8B4B6249B\ -B9690A13F50D1723CE2638330B61D8F7328A8FA0E6:\ -6BC4D82EF7CD9780FDAA3FEF10E2C786AAA81FD28B\ -62F9EB47A2F25752A0E262554976A3BA619A02462E:\ -27B33E69D3BCC393:7166FB734C6E9095 - -BF720B89414128080AE8A26CA4429BE5BC0C2C3FF51\ -E29A13A8DF38B836817EDF289189948D9D8699DB418:\ -4717A106215F960253C5CE8B091703C4235078F444E\ -52B85E64CBDB4B1F76C7AB07346112FE05AF4356BBC:\ -593C3910E6A31016:B4F04B72B87551FF - -3B7AE22299A6A9C4CE1E553821272605ADC48B7D8BEB\ -B81E1C81F3C45CCFDCB6452989C314E1563F79D29824:\ -A48524FBFF6C0102E72A7756C488C8B317B33F7C3A5B\ -7DBAC9B5B2F3D0245837CB6E4622407ABE3E6F9E6947:\ -201DE422F64787D2:1ABB95D29DC719B7 - -D52C0A8CB50DA55BCD2DF81FD7FDE278862A60417FA2E\ -3805B99844CBE4B0DBCD062B233397CD3FDB7B05075D4:\ -92377CBF81BB2682ADCD32DF7054517FA3E3589A51042\ -0F6BE4A20E64FAB3D3F5053F8A2FDA8DCFE81BCDDB9D0:\ -656F047010D196EC:57008D1C6490B4DE - -282651F1695450455B6524AF1E2FD0C37BFEC3C37394E0\ -996CE31E46C198B24949E7DA0D33D2388B865A946EA2BF:\ -B76BE4E8CFE9B2056E2295CC3883CDA8F17DF535A51EDB\ -480931AA5BE0DC2AB2101BDE55BC8E904EF6DA53AE525C:\ -113094CFD2CC5B7E:659806A7F5D7EA7D - -9ADC8F91CEABEA3DF51FE620533E848233BAEC6DEE4DC0F\ -C6F83843491AC8F614DD036616EC8A07CE5C87A13422E88:\ -2AC49B69F5F2798FAA2726A26C4444EA6ECFE9C632FDCE9\ -D15C7A9149FC1FCE7E9D52AD5844A04F504414B5D650771:\ -58077FC3CC4757F3:6E459E39F0AB37E1 - -B6D6A97A8F856E1F1652A0C0C5B4F0CF65A98BE4B8CE2775\ -4514A2104A97775326312680F5F0D209ADB2239BF8C6CD08:\ -30DD92C5768A88EB8A8FF3FF3A4E0A2DB9BE7C9C3E358591\ -DF5807A1D4C2EEB46408CF1329A20A2A0D9D810F89CA87C3:\ -84270A179A8FCBFB:230750471B258152 - -F630D0A6CD851E68D6779C8D493BA6A3C86618A97317E3CB6\ -9CFDFD8E792E1C7E8CD786F0FBDAF0169C430001A6C8504CE:\ -F9C32B13EA6A1C1D2BE47A89CA46827840A8D5676B658D74C\ -00F36F19E7285CC5BED7A81450C70DDC9D30642EDC266AE4D:\ -2360554BF329A8D7:B58908438B0169B6 - -023A29F413E2008EFA90CFEEA4C5E95D05FC24AA151B897662\ -476C23C88928A50D28BC3A5A77A2DA6EC8AE91B579993AB509:\ -84D24A62307BAE86B50E5C3584F3648D64CCF3B60C0C74F947\ -116A2B54DE75646CADC8289F78161A1EAE8880AFB83248A57F:\ -7DA9A637BF1880B7:E1B8D1DD907D13D5 - -# Aka DES/CFB(64) -[DES/CFB] -5EEF8199471C2A7EF97509623CAE32C35A90245B70A21CE36E:\ -658B25E25DF23948847AFA4C9FFDD5B3DDF35D801CBE945168:\ -ADD9CE7BCF48C44B:0F90E78835BA3183 - -4E6F77206973207468652074696D6520666F7220616C6C20:\ -F3096249C7F46E51A69E839B1A92F78403467133898EA622:\ -0123456789ABCDEF:1234567890ABCDEF - -D14FD67A9B4D7B0F65B7CA3DA91741603DA446:\ -0CB8929A854E61AB3BEB72CE0F13BA328BA73A:\ -7132D895529A7AFF:FA1FE8F921706C75 - -# Random tests, 1...17 byte inputs -16:E1:F51CF13FD55F33B8:10E61C7F8276132E -B8F7:9F09:6A2306397E6399AF:6791874E16642DD8 -914AA4:1CDDAD:08D3B08CB02E2547:B35072A53FA36190 -252F0616:E22A706A:454A9ACA108AD24C:64DADB33CCF1DEBD -F06F376C6E:C2F054E435:087FC9F0B8BE08F3:5E511251C063B3C7 -9A181AFEC04C:C49218C8A25B:FE1EA0F0AC5F2C02:A247E69CED4A2BF1 -AC465CBD745341:768B6F5BFA9C24:1E7C7274307EDB90:AFB634941C366C1D -52BDFD51E3434E94:C5D84483756AC360:53E241E43AAD03E7:BE0A4AE59056D8FE -A62C02059AFE67CD7F:032A99BE4DF6B63F97:487C9FBD140EF278:43F88DE155E98523 -32D3C8A283257F6276C3:BCFA26EFE2D93A4B1364:8B068595D5B79177:7129287761D94D9F -17CB11A60F880C16D6CC3A:3DC099D927B8AA66B2A5C8:750C87995AFD65EE:A61398FFF559FAAD -EAA91CEDE4EFC60F02B1E0EE:75614EA2FD5474FDFE3A5612:\ -08A5F56200AC9300:9F9ED0928B8CD2DD -68DB8992E91D759256AB373748:9D0E14F0B2BE2D3B47103DA75F:\ -B11DFA915AD86FF9:3885ECF48A611DC5 -D75ACDD3E4040DFDA924CE09E627:A878CE766412A9C387AD61642FB7:\ -FBF9E6D9344B0F2C:6917F8FE1AC12101 -38B667A6E4458C8732AAE6F4D0AC36:5BCFD93D6B4B45D9D0D03162FA8FB9:\ -8616D2EA6E6106B3:CFE4DFA7044F56AB -0B439A72A4430B3D15E234034BA2C066:1ADAE0A4A0D582B70B60ED1C859A07B3:\ -E255E4A4C3606081:3F160DFF918C3F78 -82E27182FC22CD8918DDDBDB850034A4F2:9767881B1909DB5E146CAAF5FC6A118814:\ -B9CDD5442E1C7FD7:5D1B1ECEB7335274 - -[DES/CFB(32)] -BF28A5B2F3FC788F:13799E52F0BF6B0E:44FD92D1AF17DA22:5EF2AB4DE2C32258 - -083F1997FF19246C41ACC1EE3A18B489:31C4C90B034B75B21280B60751E60821:\ -75E1E4E29E6C9205:40D4F3DEF6222186 -5B38FD10CAFF5611114CAC8033DE01DE:6434BCA36287C8FB3FD0BAF32874C740:\ -875D1C19A20E6740:E2912582ACE9830A -44D4480CE326D9583E6BC13A78D7DE03:7D52C87B2A0D33B3A48631EF3184397A:\ -79FE005333D6437E:BDBED60C0E069960 -81BE542AD00FCAEB34945D89B4F29EAD:DB0DBCD722960D54B531D8AEFE1B26FB:\ -FFF6D6B146354428:2EDB634B4C7CF4EB -E0A787DA56534F407586ABA1736C9DDF:34FFCFE532186F84EF57E0CB5AFE654D:\ -330AAD15FFEB8E78:826F429D0F342F43 -302C49BF921E0516261F00B2FA2E96A6:19D49D5A54C8FD15EF317AFD5A87EBDE:\ -F15BD42AEA7F38FD:5E10F9CAF0730C4E - -[DES/CFB(16)] -6BFE8F2BF363D3DA0A2CDAAF2D7E1D44:8D407E5A8B5217C56B8A88E3CE478B85:\ -302A7B0BDB8669FF:47C89DD706739D23 - -A1A3ABFEB7BD450F:D67A4F0C8DD67769:4243AF4851BF8400:BE0C9A3B77C26C9F -D316B78F0C25C56E:E8BEBBADFFE18E2A:4F05484FAB8D47E7:CA6129BC11056056 -09BD5550EDD99666:69C4AA4C8B88370D:04ADC5D1401848D3:5DE8A3519C477771 -7C1BCEF78CA58DAD:D14FF21AFF121E8B:B045BACEC002FAAA:1716B53D7A87854E -2671E5DC0341CCF4:D618365EA3287474:8053149DC51A7F4E:E18A7936211291CC - -[DES/CFB(8)] -CDD4BAAD59214E97:DFD8C7EE7485E30C:3400AA949E053449:2ABF031C3DD08BA5 -0BE8FF9BE975CE5A:FF834A9315DE58C0:CA2CC8DCAE150ADD:2AE7960241E5ECD0 -772AEBCE3E9DB532:E31732388E069526:9D2A486812B8BBD3:AAF8C0A145A00319 -B6DD299F4D45C378:1A5DE72F6BCEDD33:CA9CEA52658150EF:4DF0F3A7B49AF71E -A5107583CA3CAC3B:D5541A94B73C2DDB:139D5249F1CEE0F9:1B3212F80A91A42E -24E224330C88791C:177AA6BD3D885167:D8D3F1611C2AD43C:7B4CDFC2344DDABF -92C51FE490D57CE8:A6ADC1AA622BAB1D:DC24F740905DDA96:5C307E5CF2C73D46 -E85D092290F3A53F:A1A2A831C55F1454:3739A5D446E8CEA5:BECAFE19A645F489 -CDE5CDDDFABED42E:4AD6E96CFBF9443E:98ABE3C8857BE8A8:B4A9E4A90C4D08D0 -6614A9AB1E3EC578:32B6733A61D38CD0:51668D4A64FB31DE:31E42E3EFE3ECD65 - -[DES/OFB] -4E6F77206973207468652074696D6520666F7220616C6C20:\ -F3096249C7F46E5135F24A242EEB3D3F3D6D5BE3255AF8C3:\ -0123456789ABCDEF:1234567890ABCDEF - -B25330D1CAB11FDDFF278192AA2C935A9C7745733E6DA8:\ -39B9BF284D6DA6E639B8040B8DA01E469DBA4C6E50B1AB:\ -F871822C7FD1D6A3:B311792C8BC02EE8 - -73AD356623A1D6E0717E838B9344B4FFF21BDA:\ -0C06E63E9E81D9976E16D2009255F917797D51:\ -5860F4A413DE6C68:527A1E050A9D71F0 - -08A6091FA2987FDC682A8199A6D6BD1F:640B5033DCF26873FA8A34DB644F2BF2:\ -3307042DC775035E:99DE32FF0351509B - -[DES/CTR-BE] -4E6F77206973207468652074696D6520666F7220616C6C20:\ -F3096249C7F46E51163A8CA0FFC94C27FA2F80F480B86F75:\ -0123456789ABCDEF:1234567890ABCDEF - -11919B328564DA68D9F4216AE1B4FA7C46AFC7AD5BB867DF1834D77A3023ECAB940725AB:\ -F40235A0B8B2EC0B53F3C0D8799497463638AD0CC3E07F0E8B8B0DC7605AE6AEAFBA2A88:\ -A67ABE525A0E5AB2:727BECDE9FCEA20A -168A502D21D71F3BEB702BBF02D3F6D04B72EFF2F19EF01D217CC7AA739A67466AF3B14E:\ -3A73770D157C23EF8913D874CD92DD36C465679B2BC691DAA0DC6CD4591C4CA44D5D69D8:\ -CDB366CCD621D62B:1ACAAC3F760C674B -24889A268E11AEF80852C4FC4893DBEBDF4CB06115FD533650CA39A639C659F47C3D5556:\ -782B24067A2C5D61BF6ED2E980F6BB16A0A6E0B5639B4208AE273C0BDC0311D65464F217:\ -EF510AA740BE98CB:74E74E01E5C72084 -3078866926F75D18239A3DA92EC9EB88D18393440B47D46A49D003F2C3B5D51C1CFE3FF4:\ -DE4D9632BE88235D717B36DE4C67B81CF3331E8925726CAD1BCC05126B87A6CD5D5DE3B6:\ -E8CBB756DE4FDEB0:AEE751205CABA9BE -4602C97A25AFB1746DE8BC1A65AE0B635ADDAB9547A99421AD86AFB087997ABC1458F0CC:\ -754BD27902EE4248BEEE65D2BB035C9139F98735C85603BA9565EDAADE37A7FE29833DD9:\ -B050B286E47C6E6A:701F72AE37D31F2B -E344E0C2E45990C451C75BF74406821B99D4EA5F56F67BB2F9B0EA52FF5D1BB25D82A181:\ -1A23AD101A776F902B8DB40E273A1F5EAE8AA1E43CBA52546F2EC50EF32960BDD05101D3:\ -445A14B76AFEFBC0:EE2DD8860B75788A -2C3A117378B8DB1287CE8FE084EAA08EFCEB253DD4A92509EAD154E6AE483E25D2B790B5:\ -75235CB3E2BF7DD3ED893DA93AE25D7A34D43521DB620E2BC9072159357010E6D81E5884:\ -4B1B62B9D6B8F54F:036CC5145BCE2A01 -FBC7E48930ADF4A36DE18CABDE25ACDAC8F9AB727E3AA69FE8EC6F965C6E14EBE9AE437D:\ -B271913A8A58ADDF3C89132A15DF1263B63018CC8EE6763E6FCFB4DD5D4AA8EC4B3E2D78:\ -2E0F06AE7B1C30D7:05E144D6DB9E7939 -940C3FE78C56A0F922FBEDE7ADE31914C993BB84F5BC1557E5F8004CB75D7D339801FBBF:\ -9615A71536135E50946A8517E72A980CBB2378A3286F08E76E85E5FB62140C9B3720C7C4:\ -E6E85EABE538195C:B86615CDA5C9E9A2 -256ABA748AE0005A5F99F1C96F8A197E3867B8455A4D6BFD6795BBDB89062B222E6B0DD7:\ -2A6B043F07ACD99141C7AC616B7F89AB7E52174A41AFC1FD0C56BC77B9C2EC9CEC87A0A6:\ -9985CE7E0D79CFEF:25D1D57C3A6936F9 -44AC3E1333DE5CD00475317CBAD26AB4A812180DAA7405556C41335572F5A236C37CD36F:\ -155E5B86FC06AD433DAEFA05C329BC1407966220BA91EAC2FD32B35C5AD973D94A0B8792:\ -47550AB0F346ECB0:1C42F4559385E11B -9DEDC376CFD97AE823AB2E0CB0072DF26DAADC4FD9316C7E8F4F796026DA9ECB8ED69DCD:\ -EDE3E69EE5B55AC758EB39E70E6533CC4D89C148F6AD68293E743CD82B9638F020EE589D:\ -098EFEE0D594C332:88D9C46E992B27AE - -# From NIST Special Publication 800-XX (prerelease): "Recommendation for Block -# Cipher Modes of Operation" -[AES-128/CBC/NoPadding] -6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E51\ -30C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710:\ -7649ABAC8119B246CEE98E9B12E9197D5086CB9B507219EE95DB113A917678B2\ -73BED6B8E3C1743B7116E69E222295163FF1CAA1681FAC09120ECA307586E1A7:\ -2B7E151628AED2A6ABF7158809CF4F3C:000102030405060708090A0B0C0D0E0F - -[AES-192/CBC/NoPadding] -6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E51\ -30C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710:\ -4F021DB243BC633D7178183A9FA071E8B4D9ADA9AD7DEDF4E5E738763F69145A\ -571B242012FB7AE07FA9BAAC3DF102E008B0E27988598881D920A9E64F5615CD:\ -8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:\ -000102030405060708090A0B0C0D0E0F - -[AES-256/CBC/NoPadding] -6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E51\ -30C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710:\ -F58C4C04D6E5F1BA779EABFB5F7BFBD69CFC4E967EDB808D679F777BC6702C7D\ -39F23369A9D9BACFA530E26304231461B2EB05E2C39BE9FCDA6C19078C6A9D1B:\ -603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:\ -000102030405060708090A0B0C0D0E0F - -[AES-128/CFB(8)] -6BC1BEE22E409F96E93D7E117393172AAE2D:3B79424C9C0DD436BACE9E0ED4586A4F32B9:\ -2B7E151628AED2A6ABF7158809CF4F3C:000102030405060708090A0B0C0D0E0F - -[AES-192/CFB(8)] -6BC1BEE22E409F96E93D7E117393172AAE2D:CDA2521EF0A905CA44CD057CBF0D47A0678A:\ -8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:\ -000102030405060708090A0B0C0D0E0F - -[AES-256/CFB(8)] -6BC1BEE22E409F96E93D7E117393172AAE2D:DC1F1A8520A64DB55FCC8AC554844E889700:\ -603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:\ -000102030405060708090A0B0C0D0E0F - -[AES-128/CFB] -6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E51\ -30C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710:\ -3B3FD92EB72DAD20333449F8E83CFB4AC8A64537A0B3A93FCDE3CDAD9F1CE58B\ -26751F67A3CBB140B1808CF187A4F4DFC04B05357C5D1C0EEAC4C66F9FF7F2E6:\ -2B7E151628AED2A6ABF7158809CF4F3C:000102030405060708090A0B0C0D0E0F - -[AES-192/CFB] -6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E51\ -30C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710:\ -CDC80D6FDDF18CAB34C25909C99A417467CE7F7F81173621961A2B70171D3D7A\ -2E1E8A1DD59B88B1C8E60FED1EFAC4C9C05F9F9CA9834FA042AE8FBA584B09FF:\ -8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:\ -000102030405060708090A0B0C0D0E0F - -[AES-256/CFB] -6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E51\ -30C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710:\ -DC7E84BFDA79164B7ECD8486985D386039FFED143B28B1C832113C6331E5407B\ -DF10132415E54B92A13ED0A8267AE2F975A385741AB9CEF82031623D55B1E471:\ -603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:\ -000102030405060708090A0B0C0D0E0F - -[AES-128/OFB] -6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E51\ -30C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710:\ -3B3FD92EB72DAD20333449F8E83CFB4A7789508D16918F03F53C52DAC54ED825\ -9740051E9C5FECF64344F7A82260EDCC304C6528F659C77866A510D9C1D6AE5E:\ -2B7E151628AED2A6ABF7158809CF4F3C:000102030405060708090A0B0C0D0E0F - -[AES-192/OFB] -6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E51\ -30C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710:\ -CDC80D6FDDF18CAB34C25909C99A4174FCC28B8D4C63837C09E81700C1100401\ -8D9A9AEAC0F6596F559C6D4DAF59A5F26D9F200857CA6C3E9CAC524BD9ACC92A:\ -8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:\ -000102030405060708090A0B0C0D0E0F - -[AES-256/OFB] -6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E51\ -30C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710:\ -DC7E84BFDA79164B7ECD8486985D38604FEBDC6740D20B3AC88F6AD82A4FB08D\ -71AB47A086E86EEDF39D1C5BBA97C4080126141D67F37BE8538F5A8BE740E484:\ -603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:\ -000102030405060708090A0B0C0D0E0F - -# From NIST Special Publication 800-XX (prerelease): "Recommendation for Block -# Cipher Modes of Operation" -[AES-128/CTR-BE] -6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E51\ -30C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710:\ -874D6191B620E3261BEF6864990DB6CE9806F66B7970FDFF8617187BB9FFFDFF\ -5AE4DF3EDBD5D35E5B4F09020DB03EAB1E031DDA2FBE03D1792170A0F3009CEE:\ -2B7E151628AED2A6ABF7158809CF4F3C:F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF - -# Test with 15 byte IV (last byte implicit zero) -AE2D8A571E03AC9C9EB76FAC45AF8E51\ -30C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710:\ -9806F66B7970FDFF8617187BB9FFFDFF\ -5AE4DF3EDBD5D35E5B4F09020DB03EAB1E031DDA2FBE03D1792170A0F3009CEE:\ -2B7E151628AED2A6ABF7158809CF4F3C:F0F1F2F3F4F5F6F7F8F9FAFBFCFDFF - -# From Crypto++ -006BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E\ -5130C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C37\ -10006BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF\ -8E5130C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C\ -3710006BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45\ -AF8E5130C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE6\ -6C3710006BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC\ -45AF8E5130C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417B\ -E66C3710006BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76F\ -AC45AF8E5130C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B41\ -7BE66C3710006BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB7\ -6FAC45AF8E5130C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B\ -417BE66C3710006BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9E\ -B76FAC45AF8E5130C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD\ -2B417BE66C3710006BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C\ -9EB76FAC45AF8E5130C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17\ -AD2B417BE66C3710006BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC\ -9C9EB76FAC45AF8E5130C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B\ -17AD2B417BE66C3710006BC1BEE22E409F96E93D7E117393172AAE2D8A571E03\ -AC9C9EB76FAC45AF8E5130C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F\ -9B17AD2B417BE66C3710006BC1BEE22E409F96E93D7E117393172AAE2D8A571E\ -03AC9C9EB76FAC45AF8E5130C81C46A35CE411E5FBC1191A0A52EFF69F2445DF\ -4F9B17AD2B417BE66C3710:\ -ECE71ECD7A4E3C2F643B2B0BFBED32F31C8551B6306D52CF843EC0B85015DC20\ -3B1C0B643E2A6BABAF5133DA0EA06616076AA6BBB52ED75DC3A71A9A6E8AC7C9\ -A00D2C39AA68BF4E6FFED9AAEE5AD6914FB3EA77C7B61FF6BF564F2F1225ACB4\ -B5889CB1559888A5817849C382E168482F75381F63868C468E4D1583B1FE71DD\ -808CB94D8150AAB9D530A0FC17CDE748E95545D8A033B2F61F1954D0C0226168\ -022E1CD7E031C57D048AC560F152960F47705E174D956D4BB53AE80BFFCD1BD5\ -69ED8EFFA223C00558B702405F33E6E0EDB2D9B0C148A1441CC80D6ABBCE785A\ -A1B9DAB7CB8832F1B12D2EE60EE2DFCA37942CA1724E5602B7B70525AC966202\ -8A22DB234676615DB474538CBC8D197F38C88BCC4F9E8D207538CA18DE5F0954\ -20A2E4D5868CEBB8B34A9377DC52D119790B65210F1B346F5E00D9BD00A88470\ -48913D80726B9B745D565E6284B986DBAEA997FFC5A0DE5051527D44B2C1266D\ -BC9130A6EB15F37A0F00B6286D6678CA651C07743BD37F2E8F6A94F5ED8C6342\ -8AE4883A9695183807E104BC335C64FEAAC40A605913DF98FF44E0801B31A968\ -CCE5DCAFADE1E017FA711E05FF5A54BFA1999C2C463F97A3A66B30211BD306C8\ -911C98F8EE5EF47A54746A4D16B7C7424A6954B4FC3BCF1A41BDE8A19CE1027A\ -E86A320D0E5E7D3C7E50CFD0C4665B811D86C313F09ADE5B4DBE017231859881\ -E5873E9EDB2011CF5920D2F7277C4DE1AC430A1849F0B870A69ABE701B6D0B51\ -23E5FF53395409177CF84BF41EC33C5E4BCC2CF29258DC7C260471AABDA49FDE\ -62915758EE4E578D0F7698E6456BC144573739D5D508CC76B389359D2A0ECB5B\ -7EE5FCB4C3151D5AF7C71819EA3DD5F36C7B27E551FD2373D07FFDC76A13FC4B\ -10A6F29A83D6F465ACB6960671EACF21A3E1CB4411C4DAA0C2A87DAED28AEE60\ -B7EC0258A9AF125F2DDC80B9877EFE0F372D9B832C786770A84EA1A07CB6E1A9\ -907D651BBD0EFDEF2AFFC3:\ -2B7E151628AED2A6ABF7158809CF4F3C:\ -F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF:\ -900BF2352D973046F4128A1489F84DB204C552D2E59FFD58844B2BEA8DC04B46\ -B1212433EA1D3704673C45222C77D3D7CF7D21199BCC1464393853EA9FE5976D\ -D8612F828173D82EAB52C10A863FA549911F9B4CD0644766BDE8412F0458C620\ -EB63CD699CFFAEB948BBE360FDC541F0912B683B72A13306E0203F444E378458\ -164F461290E3F934DA40540945D8FB455EB86271F4D55DEBF1CEDEEA08B7917C\ -2247B1261C3710D949B678CDD4D5DE857A2BCD4751F2D4C49C75D52B33A0B761\ -943CF6258DB7C13C321F2E3C43C680CADA039E3F177B88C993464EBE82732229\ -784D929235FB7E4984F1DBC72A2E0431E7BD976A2CE09931DF2C80B7B7405E8D\ -AEF482E4AC7A0E33C52EBAD9C4F854A061B047F37CF70571FACB6D2CFE6EC0CC\ -64933965D74B871150214A009E998BB078E8799E1B43232F9709F1E5602D2DA4\ -D9725D2EA8557374809285A1B48D489FF3A8A50CDA1E0920035E6924272FA194\ -2022D71C9984278B4112253349D916B17FCB93A59FBC2641EEF4DFAD6FB83AEC\ -D25A6F55F06A95CEBA94557EE07220C51D0DE32969D70DF310B8DB0E7C8B65F9\ -5BB7B14098575CAA8EE472726FF5C87E31E94664FF009793D3230A528E9FE289\ -3210E01870D0B60B1C55A6C49079BC3D97EBA815ECB8DE148A000C310DC372C6\ -F0627EBB1F0CBDB36A79A9DDADACD157B561EFD24FD523067AD3E1DF7370DD78\ -19347C5FCDD7296BD9DD9D940C7956CB8A4ABA3359538474E81613E4BEB346B7\ -4F05C66BC19594C12920CBFC145ADEBBC0511E710A490708B6DF67D8F5C5A3A8\ -09C9C256CD3A4056019E04C27D773A08BFFF86C6F5E9663DE4369AA4612EA265\ -53F5DF2314A8FDFCA42B897B5EEE64FFBB16F67BB1BFB1E5408C850848978645\ -087CDF026C9D8CB24494E42867D5010B66DE211C5E10F92D6E88784E9F423958\ -D0E50E6F153FC9D7B07894D5888B3CD0AEAEA0ADDC058083E84EBE2CA55E4916\ -79BB9476674E8B2D01E17AB60DB86CFFE48AD3C171F427EB57247A5E34970EEE\ -3A4FD9D9FBE9C5F39D326D6FFA45398F822532B8620337EC1846184BB684478E\ -A59D803BFF5F55B4B15F3DEAA58FFB550AC480876DBB16C0FB72E0C224D2FA47\ -BE2A33736208E9DC38EE0E5D050596D692718D9CD90DE7CF9203A6D1FFCD5F09\ -AF6BAD40F006313C7916AFAB0D09220B9F6C7E020EC12D4982A809193EE65DB7\ -EC04B94F580DDF15D6349279FEB9679FC9083ECD1FB1D9B58E2F81D07E586573\ -AF0C61BAFC811BA0D15186F408760314724742143B1A01AA0038EE1BF4DBAF4E\ -85CCD3412B4F17629F069E6F4F24CFB28B4DAC1B7ADF3F2AB621B62D4239C842\ -5B93CB597D2C91FD9F4E3FFC6DD70CCFDF5CD8F42E29344B6D1ECFA073C853D7\ -EB1FCB34EFF9111D90557E15B438D8AEED879991167D04BDFFD42014BD12631A\ -D879A98BA029DF7441C7242F0FFC0EF25E36391EF4D151BE45C6D6DD10B5C591\ -AA039507BF3513BFB36BAC155564B9CA65DB8B2EB74E10C7371090C1DCB54B65\ -F9427E830CF1EC7B43FDD5E7AF72C8FDF19B709A41F9458A1A69D8FE8332442F\ -5D1326597B429D065F17005C90DCBA83833369AA2F8CFE860C7B25269049425B\ -1AAAEEBF873D32246A4EDDE5C42D88DDB5EA5DA95BF7DB2B97B3C37F4593D4F8\ -BDDD2EDA804337307E6C68952FD7FC0A55E2673C08F028522CBF7000CDA1E335\ -23AB0C607CB8361E95CBEB06025636D94E945CA9E911FEA1CB37728F76D2BF77\ -6875181EABEFD2841EA068EEAD02A945AA68FB64ECAC7EBFFA9EF739D534B7BC\ -06F9B57ECE9CB9CB8D7977128567293C51E79A8126669925214AB99577019512\ -A72A537429CF5B10FE5B39AA2566AFA490C6FA42916D414173BFAEE8BAA851A7\ -3D6E55D0A48A9F47BFE67EC5D27BCE42D7DE7BF52DCE4ACBED91C5E52414D09C\ -8119A3270709EFDF1AC93598EE5D3FD58436465C65C10FBC7E5E830B9E0131D0\ -A406777FC79362F660F8D9D173499326D8D87B1A64952688D72C83ABBC5528A7\ -8F57E38E54FF82CF826878D73F7F374284181D467CBC0C1CB980BC3CD3179542\ -663B35EBDCFC45F2810A2CD83F3E8EEE11C7550C3F105153886FD0228C4368DF\ -22B3483905C4EB8CB841626CBDB46010FF6FAD1783D518E9030E0D01C1A28470\ -9E56CBB29B18E269BF32CB310AF67FDE673AAAB9D5D05FF067650E9C2320BD29\ -4AF308F97547FA907561C6759957E19727BCB6AA81B0668AA891B524A44A9747\ -188806005F497B0F06C8F29277F0532CE48306CB2AB1F4AC69189E48E958CDB2\ -52BEAC88343FD10F61D1BF2DCD2347407C4F449738D29FDB3C40BCE2381154DB\ -9B3CB1241BC1E682EF2C7845ADEDBACE1DE98218F967C058CD6861CD66FAF98A\ -D2BFE088DB945EFA1A5EC31C63F4AF18A7E26DAB81333B2D1D1B64ADB0F0B628\ -941712AC56D651AAE05C5D4C5ACB7FA3AC16A1A3D22395B76371ACC9D4CC0472\ -59B1BD1659AB6987E4CBB363B2E2378D5CCB15C41ABE14B65B920F58356653E0\ -240181B2192107884699352634712003815BEB662F3D31F1EE213E43637738F9\ -DBDDA96524CBB76FF388C93CF540968D41CD79D6F575B47E8A4C8576A34D864F\ -CF15DE44929682C7024F5B96250449649697EE056F1FDA1A0D35953F03E88DC3\ -B35913024218DF877B75BECE027A2A7EF7C76BD650E0586D404934E344B8C737\ -6A601998294C196D0D221CCBB59AE05F7DED4E355B3FAF1D0C51DAA055F92544\ -0C272D41911D83AABEB3638316F1AFBF7BFFDAD1E800F296323AA33A7853644C\ -EBF3733BA2748DE7D37B9AF8A5A4C05B74211B359B0E6B518B10A012B4F71888\ -65AFDBAC2CE1D53B9F3E8F7F80BA15D11CF2967C42662FC4177D2E3C00D3DDCF\ -581B8FF5E6544F312AC52D93B7A0789C2DFB187E10EDEAB3BA6E74B9B685F1FC\ -924974A4D0302C89C6709CFDAFDD6B235AE0326D8E22D164390620DB012B85A8\ -1560896F2C085307D07F3470887541EB5ED2065261C87ACA522E83C2CA77D9A9\ -751DF6DE35EDF82E04F55CC9A50F5646254EFF10612AE8B5010B4F1886262666\ -B997005F452CDDAD9E7FA8185F64B601171879FDDE907F8C35F8F100B942FADC\ -0D9F4FD734B462866E42CFDDE56DE0539EF8F71F0AA72DCD8DAC6BB031B89C8F\ -0A88C051C5E4E28EA5E95A925A88611EFD7EBEBE524F60A9EA32A41FE3477709\ -1D401429EE7F185EE61DA6486CE491F09A97062BE1A357DF998775143C7D1FF3\ -3A1EA9041241495473661FDF3E908AC9F5811FF83EFD6E331FF17097109FC662\ -20B989428D078263FF696CA376663888819F3AC66F0BEBDC5EE5BD48C347C124\ -FF427A47C80B92761A90664BABFAAC275A3069B13890B79E9513A935823FB608\ -23D6C76A9F88DCE6A7C1F11E3DA5068F454AA317FCF92C4BDFF500A2BEA63BB7\ -D4939F4440AE335C1E165769C5D041B31873BECA28648D44DB6628FCC0705B5E\ -4CC838C1DC8022D9B890FCD54CBA42B372610E9CE351E5FDFBE46621768A30CF\ -70969FCB37C484B2595B5291FE7E8B597DE9986271AFCD2DEE3029DADD330FD5\ -EB38D7BB5276423DEBF31DFE3BB97E36D09FC62823060A0D2636CAB111C7C9D2\ -7DE3D2436996F6CBCDADA9BF7AD9B4EFF7EED2459DAAEE42AF414BDB2C799500\ -3B2DF8474EA76BF08870317EB29AC6B46D19DFB471A8FD58EEFD58BD4436C30E\ -4A695A30B83E53854AB12D4F0CB6290385570484CD78128782C55783E73DEDD0\ -EF8330690D2CCC67A6C3A5C0E5824A4C68ED1E9DE7C047C3A27D838677EC1CA6\ -4EA21D7F51BA404CDB61F09CE2F3CAE82E68BEF8EB0BFB6F51F1D711E68BC700\ -0C57170BCE6E6CB583CDD384B031552B471DA6E4AEDFC6E696EEA1D4E48CEAC0\ -8202D8C0626D957C1BA8D367C647C95BEC5C97448F0B0DED70E3DE200ECDBC2E\ -2BF76600E838C2D52DC2799C55ACD450C5C33089485F65219B57A09756792353\ -A80184B1FEBF9F40E7C31150C35BC9ACC208693A30594CEB60FE53D4EF4852AE\ -CEF9CD128A0DAC72A323396AE9DF8406223E554CDC0D3DD2EC641FB19094239D\ -186BBCBCDB685A5ECA4945C0FA7B2F0CF0D42ABA7F5983D5B765168197B0556A\ -235AC452CC42D59BB9F27D186E1640E447AA00E3005CF5FA24BC7CD4873CFB2A\ -A4B47528F9813E1881FECB1C072288D8CFA45E2D0C52F17C49E7D73040ED49F0\ -E71B427189A9A038D6F7039B7872A41E2C55E6A95834E9BECE5C70C18F89E270\ -A2D24286EF6C027DEAC450A852804BCFBA92DFD52E7900F7F3E4A957AA4D5943\ -90CD47ED3072961B5D024AA9EFE854E692D64F3CC3123EA52F49A6F61D2316A5\ -A17374EC9FF6F043076C07D597942D25BB0BA1BD71E971C42AA5CE9BB1751134\ -2A3EB35C6DCAF8DC36F762F8B1856E5E7BF492B8A6FA8F1D8AE461515462871B\ -255966F0F5BAA52E73CAAC894C2CB56320155D4E5DBCFA84A0FEE3082D92EBEA\ -98808406E736BE2EC8F41BBE90F07919682183DBB287D7004D2C2622C4FAFCAF\ -A19A766DA033DA12E4BDF7855A08759C9FC6CA0F61B6CF96C492CA8CC168B3CB\ -F7F587B53A7EF630B5374690000D9E7B84C3AE7832F4BBDC1943378F83007660\ -DC83CB4F05E7A93BC6EA39EAF13CAB2E61C852A60A343247CDCBFD757B247539\ -9051924A93731400EB91791C5E2DA5D03F43A39CCA44F3124DEC80D433AFBACE\ -19660D0D32BEC383C1567549C112CA8055D3A1A7811A7F4F036AAE719762F98A\ -3BD8CF5FB2D9673BC163ECCCC72328F13B03CC3C249C7AFA4041C0DC76E9A809\ -4462CB41E9711A6F5E50E5D5473143F1E9AEE421D6FD88FAC95BCD75E46E25D2\ -588F7E3D7489DEE5E7AFE73AB038D4C845A92B1C0C399B698F8E532AAC023CD1\ -489B986BE46B7DA2A4B76AA76DF5F7FE1F66C282AB30ACEF5A7FD59B71AE64DF\ -858D0E0425089290913B3C4CC82DF6219DE24ABC8703ED475D8373402EF46526\ -416F2ED77AFC236C4F3EA0DAA5AD9AB949B024F340C6F1505B399FA703B6464C\ -0098FAB1A3DEDAB5BE68C2FD030DEF738CD027FAE6CD4B03A2354D20ACE3F69B\ -EDBB90A5FFC390BFD90D53695CDC136B85FA6B9649CB4841C43D5C9F649E32C4\ -10419B5EADF4D26AC0D36006D3CF4677FDD2FBFAAE156F2DA1587FFE4CEA0392\ -AE804420E2FFED43935135F441CE90B7077D8E0B0F77706AAC6A9E23DCFE15F5\ -635A0A1E1A315D8AE0489BA6DD88A1C8EB29BEC076F2E95627CD12FF4D6784FE\ -F2DBA9F5BAC6F1895E5F15AE2E51A1D65B7835CCCA3B2AC7D4AFB05E00D21051\ -9F932D184340625647DE20BFB32329C238AC096CA68E159F90CEA319683F1C0D\ -9DE2380438BB4E6DCFD358AA655D0F78C9E93B23C0F1BF13C128587E65B23C7B\ -87350F1A5B8C37B5BB5971F4A160C9A7FC3E920F050353739B4C2523F1F628E8\ -B4988047EC59E13F120CC557E14EF259CB15BEBE470008D1C0BAB2B6B50AA6FA\ -379488B3553979BE4841441F971299C46BCEB73BCFF4ABE0B2B003C7E5C110FD\ -A68D63D264F95D5E9C194B4B869F420EB9B93531396512AFBB6FED334FDBFC97\ -2E9BA42F3E3D774A7C6F1685DC8805DA4E10A150D90E79828A600F242BC2B7FC\ -2EE22BE0EA362D687E6B2E4191C268EAB6189F58968CACA413F2E6D1A413E37A\ -C4E93E8A7C3E13D992D09E7025D48E21F658F54B2354A1182F1203C21F05831B\ -7B83308DC2A8F6F2E3C97592B252E66CDF43529068D9DC78465F66CA6B29AAD0\ -C3922947EA98CCE6630EB581FB75F421D59E36DE1F4BE9D7BEEA0C75218C574F\ -B70E5927162DF36AA1DDAE51428092B8A733C8D65E884FA48B6A4A6F2D386883\ -D3BE615EEC10B3488DE1D54908AFDBDA76CC54BC71A7131DA141ECFBBFAECA0C\ -193B83E8DE2ABCDA150629D8BD1706D16E4B2BBA4FB95A4DBD1B2E73071682B7\ -B38142699C998631B31F53DE66B0C3AF8C799FE21E617F49EACCBAD64B76EAA4\ -A21E7ECDCA1114B1C64C2B2A71B5BC764EC880E866AF3EC6E3801213341C998D\ -0F00B9AD7B7DEEF21C0033247DCE567FECF294B16DDDC3346725677442A6F6FE\ -C62627521EFACD02E16123623ECDF970493B9C8B9E10156A9B2439F03096B170\ -93E5DAC3C9048EAF05CE92B8C2FB2B671AB886E5988288914B5A8DAB05909181\ -A5F9142EC46D5FA71816CD944642D0568520EB87A4307FB4B608D4EAC1EBE88D\ -D52F6549895F732CB75D495F5F2325D2B0FFFE0FB702045188BA98D603E546F0\ -9F44BB40804F4670BA22F9D188F986F00FC2BE3BC29E0D387985F564599DB2B0\ -F9149BBA7225F00D6316455E2713E43E173A9418C5C4EAF5D3CF2CA4FDA77DE4\ -66ADAB5BF8A2FE395E9DCCDF040ACD903F13F1807817251B4844B12F7723627E\ -3B66211258BAC1F45B26AF3303D1BB55241BB4EE3EB9F00050AA44DE7A81AE55\ -01EC7ABF1A1692F3CE17267A1A83E6B870777C6249780B655008FF69C6EF3A32\ -AACC1E4A8CD2CD50115EABE08E4A085AD93351DA04E5AC71C5FB74FAD7864324\ -C070765C32ADF07071632767C5D0612B4B9407EBFC3141D6D8B202DFE164CB8F\ -7112E3AE5176AA55779441B1352CF4838395A65ED5261FCD8C596CBA3684A56D\ -C2FD5E440CACB2033C945E65EB9EC0E475A7CB3E67C8D5F627F506F6CB1D5A1F\ -26F75A395056A1D8D70420B13F63834201AAEA6C11CC6E55BDE40A0ACC75255D\ -06C5921A85D621B1C32434AE8CDA7925BED56718BA59CEE88896139381809548\ -A0AF81502DB88439A48999A3B40C6FA62EBFBBB1DCB03409C73CECC4509BC4F2\ -D45E7382D4AB7F69386FBE6377876D0D30D5F4DCC6BA7330987B48C977241094\ -2B114D6F0D46AE5F3FDDA09618BCD78F0D9972DDD71DAC9801CDEB80676BBB32\ -315888E008DA9471855C2B299927FFA73EB7A4754A2F9A80500629959830BC31\ -41A6A3FCF3F529DAF588B0C415A6D237145BC3475724072D543D78F69E1F1530\ -86ADC5E28B420A3B1B81E139CE9B81F532FF557DC23BDE406373B10F5C03E230\ -8C9F51D5E0150D6128A1BF82FFE1069849CDF84FDE7E3DF994608C5E0B242088\ -9408D8DEF8DFACF31B539D3429470785FEA4E5480AA0C93B5C8225901F3177DB\ -948DE7352882A9915B8D2332A85F16A4D1CB55EEF211E3190FB718D1D302A171\ -EB57C234A5B1E5A6A297E7AE4BC65752ECAA27412D2A6835BC69229E7593A23E\ -B1224E97419BA6A17BD77F9FDBE30BE2BCCF0BEACE22576C0570DBE4FC885192\ -C11998620066D8CD92DAFD200B3D483FB825523F490CA75971D066647A885543\ -6084B047C78D6581C1FBA6276B0A7729668B3B0D7D358FFB92332C57436F2F59\ -873A1CDD128AD11341B5F256251B61C90C365D5F0768F441562B3FCD9E27A713\ -06B7C940983560461889455560D32532DCF45E9DEE3E2B3C5514E249344B4DDF\ -105774935D5AAD836B04B5E979E61E3ED7909A8384CB0C866352E7A1C7068B73\ -68BEC60EAFB4A081E553F51B09C4CE8664964F64A4031CF8934382C0EBA040C0\ -F0B2D3C1F5F3ABC3D30785E53F5F081248CC7A6A3664BAD836C1E6CCC91BA1B0\ -37B4F0F2C43AEAF9F749268D47E11F7188BC7264960AE26DB142C9801D084E0B\ -691648AE83E85AD51A0A17081F978A434C82F6572AE0AF94B4A04A5686FF61AD\ -FDDF73E6FD22F6434F3FDA4F0B2A838DF375D3FF92C9192462E8CF44F43AF70F\ -154EFB12D84EBFE48264E55769E997D6F3D200E223DC104987B9786417F3296D\ -732FD45EC48033F00688F92C7B5CDCE46E4BC8064F499F9B06EFF82B70D6ECD8\ -C5A1EB5FFE1D6C605A54DC621D6544322911E827CE798CB0A8CE73C82F863F97\ -934CABBE2CBBB2D2A2A6EBD553E8A09D8B49D87F79F29E3161DFB3EF37D5D0D9\ -A93F7C13C2A75CEDB3E61121E85273545E85942EE1C6BCC698515CB8E88E76AD\ -57BBF0FC85B10F10883AC4682A86D29CDD56E5A63751D47F06673F7891CAC946\ -0B4AA9547DFAD60374AF982423D332BE9D7EF16759FB095A698B0DA5D7B51278\ -61A8B39911F717A212C17A9368D2C1E57CDA3032C61C56B84529677905B3E351\ -D71D06D46B8D69CFF8E10D175E084ABD4B36A0A3BA424F6641E917CA1B64A2FF\ -62C6AD6DDE35A51556FDCCCF5428892E8FA6DD45626AAA1551EC7D7E8A89CC86\ -3E5AFD53A0D01ECAFB2A6268B7E0370C376F7A724B1023FFD184D900AA2C909C\ -E156458C7F2504E32FE615A90DDF360C7F0B7708399AEA3BF3549A401BEE0CA1\ -FC0D22F1871967DFEB0B740FB93151B7EDD2D807DEFDE734BD1C22A19E1D0A01\ -01071A8DE3FF8007068E2E5CC43EB334055E292F88EA02D52B9771ABD3577B22\ -E7236AA3B511C5E914AEFAE9C5B015F8AD013C109849CB5150298FD56E9CCB1D\ -B84CE6A34219303322FBF38F9735414DFFE395ABFB19F1798894EDBD1FF77530\ -741933847484965C3E25509BD31E6E6DC247E9B17AF7EE350B00816DC1DD0EA4\ -4792C6EE83541153208E0104BE27F055335718B2BA1AAFAD3EC4D62B952ABEEA\ -D95B857EFA8F26AEA3E9FCB087A80D7DDF3BF29D63BEBF3A248A8D86A4C208BB\ -7A3EE0836869074438C418254BDFC5A2A04C5FB21606B21AF22BC2631A46BD55\ -5BE9803EF4330B9F6C8C7C93478819EE8D2A0C5651C0C5AFCE5F20EDF72DBE83\ -15E0BC8BDE40F09C80E760A804DB197977217F10BDABB3A14A23B30DBF3CDB2B\ -BE9DDB141A9B115D16CE0CEED99E120514BCBD0DDD934379B9C48016A0101512\ -84377FB6B8E08A703CA401CE018F61D6D516C83F95499943EA2C818E315769C2\ -A45172DD344ED15DA05D8AB1C32E4F2E7DE3ED5BD46E956878F266E27CBD65FD\ -775B13FBE330B01C31AC5C27C8DD30F0240F5B9C024A6984FB7131C8CA04A608\ -7091292D53AF14ADE0F2190E0F427029D0F27765BBD746DE5E2A9B8933DD0CC3\ -B1CD1126551378372AB4C16AC49ECCBB107F71D7DD4175ABB0DC477E1B4FCCC4\ -2F868D7D8D737BEC4B5CE078017352D36A45CBE6E9CB676ECB84F5703445D429\ -70D99F5744A008E21A6EB7A7A699C2435FC669DA5A8DE38BA98E6611DD8DE454\ -82273C7DF9702BB10D345B826518F38789E66C62E0465D3874209350890EBBC5\ -A3F8F132341CD58E7CC9E43B22C579BD938792C8B158ADA14D94F8179DC180CB\ -B0280A6101D7BF2D17C0557F920307155E8DF1D95AE124FF9B91F9F2B9D4CE3D\ -131D6DA313EDE0F09ACC122CAD8A296B5F806BFC2CBE5D8E526F020BC5BF5D5E\ -D4728F818210F5E2A570B534DC39890CCD1FC48AB7AF86888E9453F3607401CE\ -B4C22E3F960E7A8A5C80EBA5DD3717FC1224D190D4351E4944B4C23A949614D8\ -84D2AE59D989FD53302C83D66B26088C37EDC61207234F9B8EABEF6BF457BD61\ -EF4B77D198B7A56B00FA723B4CFBB6E2CB116DAB87DE542FACC26A8A9F2B841B\ -2F26B1C0B6D22172CD5C1AC70E5C5C1288BE1BB0EFC9F2EF68E0F88B8A6DD467\ -F8C21FD4AA5C467C5D2ADBE9A72BB6F44262BBF4D23525D0D2527A06D740BC2B\ -D45A3B8CB96CD66307242351D6B6A7C1B6E67C7A84E2FBF61AAB52E5701F51C4\ -480093AEB29168AF847B48254CF04D1418C77AE1680BC564C5DF597308AFFB21\ -1B3CAB194D8AD0427AF89E0B55F65C2827CA704BE1B854A819FF87E4A6DF735D\ -107422890DA141915D1687B56D2F1C5F007684331C7C17890E887390822AED10\ -377F271A36855DD8687D9F476F3B1642F1388F121814C474778291202B97333C\ -1AC5D6E1818FAD8AA2B9446840CC0D29EEDF118D53A15763ECCD692A0A92611B\ -CC49F3A50C03A4E7C39BF3C545D9B2C2A08D3CFECBFEEC8D846D325396CE3027\ -5629AA3914B7CDDB05959A5EDB2DC952B28ADEB6B16197DC22D0F6BEB17126A1\ -E2E0C66BE205E37E4AD7FEA34DCD7B406A87A155216009AC43AE89CB0C036433\ -D736F5D9F2FE2FA091C28781602A59EDF96127C31265144B20360BD64DBDE811\ -6E84A9E41F8259D9A6CB4E3368A646413FC23D76F55B4083F4420C1157A1D9B5\ -EFC27BDF72B1FCB6617BF40CD8FFD2FCD645284321390BBB6707CE8442ED8116\ -3CA30A924CC9B5BD8BADB02CD15847F1893A7E94F82C06C19BBEC9E46B769DC8\ -53A2B9EDB14BCE4BDE8C6EA26A9510B6A8ACC62DCD55DCCC73DD962BAB314CDC\ -65F9AE4BAA7FB4563CD38CFC6A6AA7A60E6D9C9FAAFADC55A8A207E9C2ECF21C\ -343ED29113DA4E6E2EBAD2ACB1DBDA9652EBF1D20E8FA79533670DE60CFE73BC\ -F469A8D89B5D6B2DCA831CEAB441F5540B4C4EDCEFD246478BD068FFDEB22F69\ -2DE4D814CEB4C105CA55AB82398D21CF7C2F992161B7D961F2FF91DE1C0ECA85\ -4036660BBB67071690C8E2DE999C809190D8DB16CCBDD971F4A0068F98129EDD\ -0453ED31BC5724BEC70FC5CC79373CF6FA5D87562456538735D50674863F219C\ -E5B3E61B1ED02564644DAE69BC0CEFD6302464042ED1CB8B741863FE00911729\ -A0FBDEEDDD00FCAD9A80C88077750ADFFDBD921E2DB19070A41444FFEC61DC8B\ -3D0221D336A5ED40A9C7BC7461AB8121CD4E9BEFB4755EEE92B8B3EDB2751D05\ -028E5279233A44E0D4A205BA1F864FD5A0115272B4B2C7AA8E8D3D202390DCE8\ -5A47DF27909DB1CB7BDC29DF6FEEDECCC6814068F0C87513AB975977C7563E41\ -F7E0FA1864F9CC9B5778F23A11B7D67D15E7D1711F2A6CFA4AA7DB1996B73259\ -F791BB8FA73C99CA04BD837C8E7235624E6AF48EA30391B32B55EC08DF2F25B5\ -4BF663871D439C57A9400E6973B723CEAC8D55E01BE30841061CDE175DDEF36A\ -E57DFD000B38155349703E2C9D10549890B7846C61ED62A6193AD3DE03A3F242\ -75DE3FEDFAF9C384B601F0C1213F46A90BE8E3B97EA11C31880C9F905221064E\ -6A7C297E300FFFBDFC0FC6A1C05ABB0D56F9918501E3EBBE84F986CFF4E94FBC\ -1E71B98B315026E4EAB1C22634EE50BEFE7426FF41ECD53152344EA558FA9E9E\ -CF80FF1C01335021C06BC46ADB15707A025CAC95D564016EEB1D192D93B94900\ -CB346169BB1A18F91D88266D312A4BF5F050801C60FC681E3ACF1B1364422E07\ -08120AF483A664D067273293687B3E321508D59BC60B78D0C9B46D3E4E5751ED\ -038C228899BB3CC32239E5AA653012C656423222F2D04C213A5DC78005B739FA\ -F522B17AED99542BD9B6543E4E9EC1A536667B484B412802F17704B99DC3246E\ -F9180A0FFA1C269F0BAFAF79B1BE323F3F2D045A979A46A6B45EC9609C8BF2DA\ -5BD40A2454D80DA1CFF9FA75965FFACEA20CB0F8ADC881EC8360F82BB297A657\ -0BE1F8FAF0F10AE84645591974F7C246338A45443AC2B9DD7B8151A6351A001F\ -520E4C6EEC800283609F16DA88396852BBD27C4FEA4EA0C2FAC4FB6B3A8E993F\ -6E91DD06D461828F687FBB061A57E118D5B6D8EE5CFC6D453D48DBAA7CDE2C4B\ -9CC226416A0B1D3B1BC6C1F429C481C187E0F6D022ED4110A7916D891E98600E\ -A01263FBFDE28265F924F1E95F7B68C95DB4DA20EE37171BBB05637A883637D5\ -36ECDD9D7B6D36C15E255C1C024CB26BF5092A631A29B78454FDA73029266284\ -9E7B83F71D419B099E31A2420699F4F37378AC5C1985194C44A6F38A2F0D2CDF:\ -FDCD25C05C5D2EEC19F325924BF2F7AB:\ -D3BFFE7D9A480362532B542007577EC6 - -[AES-192/CTR-BE] -6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E51\ -30C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710:\ -1ABC932417521CA24F2B0459FE7E6E0B090339EC0AA6FAEFD5CCC2C6F4CE8E94\ -1E36B26BD1EBC670D1BD1D665620ABF74F78A7F6D29809585A97DAEC58C6B050:\ -8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:\ -F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF - -[AES-256/CTR-BE] -6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E51\ -30C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710:\ -601EC313775789A5B7A7F504BBF3D228F443E3CA4D62B59ACA84E990CACAF5C5\ -2B0930DAA23DE94CE87017BA2D84988DDFC9C58DB67AADA613C2DD08457941A6:\ -603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:\ -F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF - -[AES-128/EAX] -:32E55CE0C3FAEA48164B122C1BE22D85:\ -C61A0851AB4E515D11525B92E2B9D850:C825FC7C4D539DC74887CECC70884F37 - -60:710DABD24D400F3B6B284EA47F81EBBD26:\ -F956B879EC7F807F1FCB482B53623671:E64F90B4619D93137E6237929EABF297 - -A62B:C91C09BDD89CFC81AA4427FE8CD841B5BCAC:\ -8A554F339FC29E76EAC079676463722F:86B95FEDD6827A6EF8B17E6C4B2498D5 - -E67238:B0DC7388ADF2785A4B898443655C356695BACE:\ -A3EADDED8E4A7476DC783312CC70F878:8559F44BACCAE49D39DB6A77C1DCB065 - -29D564D8:A11BF86AB2881AFBAAD85D2B8313203262BB0ADB:\ -C1F38AD3298EA3DE3204BEC244866534:43D1D9EF0769CE901A7F0943556D1B16 - -37863FC2F1:89296DEB6C1C3CEFD643926F474568D71C4D52305C:\ -E9C35F70B9D294E9D78D904AEC528E99:EE28B45B0F136E06B7CD3D3D0D002EF6 - -9678A48724FF:2013CC564BF1077B300341089DCC23F4B20CA9B1B24F:\ -84298DDF4FAB1B8C2608453F0FEB0BAD:3035DB091BE6C0C3E3563B87DD5F8761 - -C6D04D01D2F78F:67BF2D417058C7A26F446E13BA65171CA34AFEC3F842B1:\ -C3D1651AB7A5DDB1E815FA3B91A2EF14:C49440F324F5F31DBBC46ABC96624B5A - -26C63A9C769DB4E7:7A1BC9EEC765B7525AF601B682DF05B681818F6637A64EAA:\ -A342F5559FB3E861BBB3DAD8CBC14964:489EB99930FF1057C54AF33CE7A7238A - -A6C0CD7D8555AC3C49:1A75242A16FE656C43CE8F737F60FA78F95AD18BDCDD2B0E9C:\ -D88CD2104394ECBE9AAA9F101B578DC6:0CB244FA0D43A0CD101D5266C98EAFA1 - -4215211D6CEC517F8925:FB8E6E2DFB3C7FD71DA2CE7041FA36E4357D81471DFB8754FBED:\ -773704610639CFEFA6E1B30F589D7F14:92BCF960D83B76F958E2E5AA616ECFD9 - -EC23DAB61590F6E1FB49F4:80F5426BE96A6F7076BFB5A24F080D1FCD687FB4CE1E911A532DAE:\ -33C0B5F4D5355A351E0C3D835E468705:D481CAAE6DED8823021919E31463D848 - -168A348A554CC29EC53D4AB0:\ -65397D2E8EA7E82E954EB36E0E3495781189FF5D2567EC7D3CA57225:\ -D7DF4487FAA7AA9FD485E16F25AA27EE:266C313CF766C74CB289EA78C735289E - -CF635CE20D305584C11537C1E7:\ -023D683A14128FD01704F6A97ABE231B77C30D1209EA139EC60F0FAC6E:\ -5DE8E05E68E4C3E8DDAFB5A2E0A6A92F:400DFEA369E0B09935355A4B6C1B32CA - -82287737559AC1EF31FDD382D4F2:\ -D0B1B5C3C2339BAB6C4FE1E899613C70460E825515A4C12259D9ACAFAD0C:\ -19B889E617FADA6EBB6E264FFD6AF0D1:1B72FA92A94F2C6B3F5D6812DF3D04F9 - -09C05A1D6AB2961AFB06BD429012AB:\ -14FC9EA106FC2B59595D02C746B59819D3A914D532402389CC4FD9D0573926:\ -2B488ECF950B2A8716FED085EA768A22:7F4A7C9CB42F32CE2A388B6DC99D18F4 - -2168CAC31CCF37DD4BFEDD800FE4C532:\ -4F5777260F776D716DDF5BD445BF330E55B840842EEE4838D7057EC3E95F59E4:\ -B5A870393560724B10918A377F7C28A0:E5F26301C19BDE0C99BC8DA8A052DA56 - -A1A540CED8942569B2F5FA365942442CCF:\ -DB409FE74B6CB54A7FCB00ECC6926D3CF8599767451E634D425C9C7C253CBD8DEA:\ -485BAFDED6CFE581B4BDEC8ECE072F74:48FE4CDC23B58E19B0C472F2099EC251 - -81E320373A0E35360990AB4070678E6CE72F:\ -97659AC60D8B8EE21B98F954E9C56B72C088AE5F4CA39721797D1C053E8D69E21C4F:\ -38704FDF0CF20334F749860D1F07F13F:3E2B4E746157040C97757425E15B5419 - -97D8CF240D88F651EEAFBF162BF082CF9B96AD:\ -0EAC8A7289E6B9E5C345BCBFC5A3084D0AE6CF14C9D6B0760A1DFFF31F71AB6C3CC88C:\ -93C41CA3886983F5C6F8FDF18FD5C0B3:E248A9343658F34C84E3CF537F650012 - -AC817C3EC75DBDBCDF03D6FB4ACF9A40340D8F9E:\ -E26112BE7A99FECC557C3D53674E6E670F824FE7784EFCCFA40BC88D4F88B5A29902171D:\ -3779FE6CCC7B03D2F7FDE0A37E5DE146:BA9F029AA2D995ECA82F2DDC3CBC7A73 - -8F7DB0EE7F6D12F29637694950206B5CE9424EED07:\ -70EA3A6F5DFA46723E4ED47BA1EE5E784DA0971146F0B532D28630453AC7CA713F1BE92923:\ -05E2FE7CE92A97444451D3C101C1406E:D333040B9C4D5BBCB8B7A6FA0593020A - -4EDEF8A9C660D2BECBA2B49CE509EBB6E567A47FA367:\ -FB18B846F801571026BD501FFFE67E8D51D6AE9B8379A8676F65E2C7EE0D02E9FF9BBB23482C:\ -30B6CF4FA2DDAE8CD2FC6ACAA5302B77:EEF619A392FEAC7DB491E4591088C041 - -814C87C4E33C797A93A77DB1F045996667A1C10D78123A:\ -F5526447A82E275E9CAC44EDB940171F9123C3FDA7F55D\ -8586CB574A00AFC12381F40964D096CD:\ -6EF35F1EDB02E4C384314A481487C28E:1A690BCB595164BFB80580C57D93FFEC - -7FD5E1A1547E1628F736DC7CFEFA9A00E586E02AA98FA394:\ -2EF4299CF27B80976CE57AE89DD2FE554EB7F00D38345C60\ -DB67CB9C88E078D581FB5A9F66D30688:\ -D89BD6AD540771D3DD537431D18A59C8:C13544BF30DEC01564A03F0E2FE2A208 - -B234C341F0D5552F75A1C0C917B642B0F8E08C297B92BD31EA:\ -26B7CA59E71E9B7F866C2F04A0A3829E879E59E9232073E320\ -1C3BFAE519F23654B17F07EDC8A20344:\ -960065D92C1A8B61DDCC51B2218127C2:41F0DAF7338AEF1317188EA9D6BF946C - -F67477FC490F530BC502AF52FD9D1BA4C49176EBE194B37249CB:\ -36B043B8C7B08E5B16A73F60C09EF517C14373919C028FE3B430\ -FB61CCCDE8CC4B3266FA1AAA00B25D19:\ -F982385DE22ED1592B1B697E262E81D5:807E739C22372D98220E2CD58175A07A - -488E90C2F8642F621A615B362F67EB21BCD4963151D4B255F2325B:\ -39157652A4D31EF499708E065889FD3FAF9BB5C1D8CE98CAA4F629\ -05D7070962979F403E1514CCE6BA8FB2:\ -FFE4B7162C45A6EE3E0B1DA0257FFB5C:AE6247CF1E1B65506D3A02C22C341E2B - -638B8AF02A05F6E3A8535AD5B7AF2C5FB83EDFAC7F8DF0820C895131:\ -ACBA840ABC4086D65C676AD70F19532035DD4A724454518391BAF2CD\ -1330BF920BCD19D470C5578D5004F9D1:\ -739B15D6279FC651A4BC344C108E21C7:3D4E26F58C06A10C93928E9F1BE0D08E - -9ED609612B72B5E2F04E6D377F436DCFE45B5163486EEB94A31487E1CC:\ -A0C71029D7DC4FDA90B823AB12085ECE8592CD27B61743D5C6AF02663D\ -CB3CB27958E4819DE2BEF9893EC06B7F:\ -D3396BA942CCD4B481B6A5CF23DC4E67:491D4BA46EAEECDC998080AE07617ADA - -20EC7BE8711CB24261B375FD713002517B6ADF41D8EF3BA8EA3ED7B84C0B:\ -8F969FA4F9FBF293A6FDD11906DC4296EFB87EAD619CE701CBF60487F2\ -C66BA6C281D2A8598E3AB405D1C5D0D725:\ -586DF8D45569F007AB52BB204F2C5051:7DCBBB5D0C934C483C378613EFD31F47 - -BDE3424FB4BF46067A5B09F76BE6F91203ABA18B3BB8C595C9071FE36AF048:\ -D9F1D76E17891B94CACADD217C9D37F58EDC782CC5FB539F59F965A5C4\ -43F3965DB7E399467CEB05FB59AB1AD01804:\ -28D38A778749BE8DC41996BB847DB497:805F380C9AF0D12FB9D94F9C433FE56B - -836569924C3AC998F64F43C5292C899A8A498CDDA350A1AA9F329E0EA5CB4A28:\ -869B404A038ECF556D4251C871EDA3F157983BA4D40974921D44D58AF9\ -51F007A5119534C399DA8593FBEABE60BD074F:\ -30B4BA7DEE8315E5D258AAFC8533960F:7C23EC1F738DC912BF682164336B8D63 - -6C89219F127DC76D45896C6A3B527890B5BD95473ED55D8026ADC6546A26B2D6B0:\ -392E84D3857017287A0A62701D45C2FB9A9949A1292A9C159443297A562CB89A36\ -4F85F422EAA7BF0C046D60B5F02B675A:\ -D375C2513D2F96C69B0101ED7991A336:26EA74FC47F422F5BA765FE1283591FC - -3997AA01FBF84919CD76B0DF279077ACC79D495042B89F4E3FAD42AAC9F6C9028D73:\ -6621F16BA0DAA99B85C34080B73A09B81A64DBC6EB9E237FDC3C773D41BBD2514CAD\ -E62633D626881F8685331B5A0A656711:\ -04886B4DA138C35117EAE18F96A82CDF:F96E9898BCD745FE810EF44A1181BD15 - -50B5DA3F355434BE51D36199C8834F4193CAAAED89103664ED20A9A4F481F244\ -36CC836B20B829728B8A0B530E5A94A1243E8EAD4FC4123CE4BBE0D83CD21C72\ -9EA0DDBE580630E3913B379F95CB40BA0ACE67599279957735754F71476CE4E5\ -0CC1A364C8D447590F7EF8A54A385F:\ -B08CEE141F8B1822F2C1EE4E0651F8CDBCFC095768EAF76A5EF2F7F012DAA30E\ -F7176B74264A92FBDD0E4E9CB475DBA651E1B51992716F059005C3F75022DC92\ -093ADE8A275A796D387C13C11328F1F0031A36757CF5986002F27E537367A290\ -365C026D58CA21413390E58B312F264D25E87B6CD94D13E048B694A19F8416:\ -5406C6AD9840420F75B75FE6FECBCAE3:D78C863B545A82AD6A01A50F4BDD6E9F - -AF47A39628206AA2A9A4CC539AEF077B31DC9AE5437D4021F279441333ECE8E2\ -338B785BABE2FE5587CAA821B9AF9DEA8C37CFCFB40FF0A6:\ -5E967714597273C7A8AA4F69314D2A1F75054F1110847DD421674F07FEA712BB\ -B67BB45DFF9EE7264354D750D73E3C6A773DC7AFC2B88737CE4C215EC87FD4AB\ -064707DD9B624436:\ -8935B9BC21A19E542C16B0D8F8AE2D7F:78D5A132853E1C1175ECE02AFBD1D084 - -2ED861F5F11D7D517C138AA01F61D0A007D000DB97CF5B2FD6AFE5E18558F4B3\ -3155A922722673EE3AFE8E595F5FFA672FFA42C6CA9DF6A04C:\ -147FDA2A8847B0265EF27976DF944F11BD0272021BB0269B787B6C8BE6782B21\ -4DF59BD16F569142460EE80B9B6F38C980F81098D5A4C018EF6A5CD84E4DBF93\ -1E623D74D3DDD8737B:\ -DB82D133768464CB2D873E54FA2C8EF8:BBE7581AE1BF49DC010FA69E0546EAE0 - -AFE2204DAC92FEF378DDB89A917B5A2AC94C22AD19E1EFD71EB97E4A87791037\ -5C308408C283FC3B60B4D5F12F2F1BF87B3DA6941F956B3D4FE9:\ -7AB5CAEC2D40209B3E4302BEA036D8536DC8D7E9D8FD23607421D122914B4E13\ -E1658B9924916C3D0C6B39F4B0822A98A7A7789A4E59CDDD350BFE3E3193EBAC\ -56303350B1D061910A9B:\ -87D663970DBFC792C78915C3C4757899:66A7C881A043BE46D7DDDB421A2A2CA1 - -638BC9B9EB565BFD0BFFC256464CD23F0035CC25E5FF8DA305A60C8E3C4D9F9F\ -D86959C3BFB4C0CAB48320FACFF239CF:\ -22EC2594915889C9910FF444008035D42E90F31624F6D6790B1399FCED092BCB\ -A4C68CB9F648D816A9391D8A292E4AFE20096D856F36A23D9F18D732E1645BDC:\ -2805F50D0582B00A28BD99650A3804E2:A15DA66012662AC6E94BC0B93DFA8865 - -E6CB34ACA3A0D94429AFEA82BAB4FD9541A2ADCF5D053029FD70C7BE4D088233\ -D4B6DF7757B9BB8068A502225AFFB89BA2:\ -824E5010A54C9DD6E08E0DB38A1B1DE2DD2197A00D094A0AD1F49A8D9ED6A01F\ -D1DEDC021D595FC87B54CC74665FE75A2D873241D81F1163E6EBB948DE7A18438E:\ -656AFF6B9A28680BEF2658F7A88BCB5F:6A43B623FE368BA438AEFE376699D9CB - -273DD7B96BB7A1CC9552E0EFAC43E5E58707BDF5D3CA309F7B313132F838E91F\ -75C0D8E17779AD0CCC8DFB78D1E15D58E81A4EBBE47E5B60AF8C92A8C47BC739\ -3BA01AB219C7BEE555BA5E269BBB7E83D6CC3FBA4B9A1AFA26ACA2EA276A2362\ -0A3E142305D3095A8D67802822FFABF8CBEAB31684CD11AA7AB394A11DB80427\ -F6184BFBEB545678BBD6A0DDD54CD6A13689B7BB56C865D07CFA7299B276C1A8\ -8E0CA37A60F9F21BD093F8A5DFCE461557FED0AEC6367E4230F0DCE2669D8AF5\ -A92D6F09276124F7F41C9CD3EBE3E942E1B9F0A7EF6FEA1F5FC601C6638BBB0C\ -B92A15E08B39D78055735340563C8337F673DFE5:\ -4A0F85EDD82B4E39F9185ED4E585187B51D3326DBA5FCB83CB3ACD36327109F8\ -CCE17CF5CD152DB941E3480AA22AFDC51562246CD99DE0423F6E9505349D547B\ -C39343B06025EF76F4C6C301FE1917F391433BC8A7F67A007BB7E8A238D59F5A\ -29C6B5519165B2E05E3D04493F5342E9E917C65088EF56E7C0A0A0703E3AB949\ -F86D3ACDFF9EE70815CBBFB1ADBED7F2A2C565DECA76D99FA3941719236D7B57\ -2248D8A4B2FE8DEA33C7E909C132E3D107A625FCB2E088201F3AD33A37FB4411\ -4316FD7FF1B161777FEA4391E51D102D1884671B0AB994B8BDFA91AEE09105FB\ -6BFE881FC4A67B8CEFE2E7E4DBAF844E896DFD1C4164243CB888765C58C19611\ -17A6F062:\ -E2C905428F0608F292C3FE4BED132B78:4C02F8A1754CE2CC8865037ED8E264BB - -956B7E15A1BF4DC6A9CE6DE460513D43F45191E0D1997ECA88327B01487291DD\ -DE10F27FCF3F45780EB35C6E0499B1F9EA43D9BBDC5785648A0066D273F7B051\ -07A2D0D6E2154EF0C8AA5ECD430FC62E529FE92EF76F93816FF953E2F00333F8\ -A603CE88191D78E1C7D6AE0BE57439381422660B91F98C01F2DFE3E3E317DB89\ -1AA91133C689158E5FC3994438D27C4CF4E35786DCE387CFC26AB2A5818D2E9C\ -363FCFFDC8E48B27A8246CE0F6E82CEACB8370A866F777286229CEE3B6FC7FEC\ -3C4FE90433742CDB9898BB8E80E7794C6AE9F4D0E16BF94394C7264AC3A636FF\ -F52004289430042DC8BFBB48A73494111E88E2FFF3DB42:\ -308B1A08871C3FF57397A79639FD87A99EC36711A83FD2B3250247FD3125C7FC\ -1681F6AD15B0230ADB4ACB9B3C735C287A2C530532BA1BF62DCC369D110B31C2\ -DB627A75B5419B5177956E64FFCAD6C83A391B0C2023F11FB13066E6D49BFFE2\ -FF12EE0FC05706C001401204FE70C739F0836F0175DD77AA37BC308737F7FD33\ -96FF25C6D5E6BBC9487D79D4C3F69817940A9EFC4FDB3FF3BA85BD36B4F57888\ -18B29530D3F0BE533FBFB9F175DAFBC920D5B5EEB62BA02F339A7501404E52BC\ -9DE4BBF27702189731CBBB49BE2FBAFA43F3A79BF2DE147AF3C12CCBF2FC15CF\ -A135F5EB4603A9C8158B78E600658C102EE637F77471E0F621F2EF8BDE7BB113\ -1164DBFACB1C23:\ -87A268D1650E08650328692CBC9930E9:61EFA5A996D93EA8F7C68AF6BA653841 - -169C8E816CAB0C159AEBF19C954B87089D29C5386B761D27A028DBBC2518F33B\ -B481BC202DC836C7B327634872EB500F1415477F8B64A72B8D82E8B29BDBED4F\ -5CAA708972A65026CDB46E3F9FBF4FB3D4963360FBDA8B885C733AF74E2747AB\ -D1B734445D856A2A39D869D897B88B6C4FBECC4A9857D2F5CB0CEC193333C405\ -EAF949477EB371B78BDB8F23931A8FE2D95B2C71B2FE667D0A53973E865B4371\ -548CB8D23F2A89CA0518ED98337C7B0CD7A77D8AA6E407B0379EEEBDFA312E4E\ -BDE721FC11AAC716C3B4AEF631290208D17F9277639A279A3816583247868105\ -6DA2017E4CC8940F7D4305AE6C07B63D8749B4EAE3:\ -93550CACF92B81F03129D4DA45D0B6A217202517FF34CACFF291D9FA51793F06\ -D020E63F9E54042D0E1180E131C805D3C392603316D8B990006379C54F51506F\ -8238D4EBF4F78AE95753D852AB7F0D974A16F374E20424B4E79EF83D3BF78A83\ -DE23F50078CCEEB7C8CFD887AA6EF3ED004C4F1048A608C0EDFB8FE56862E533\ -FB0BC90BB19175BA99CD747050F6DCBB229C3B11F89054B9A78A80FAECFF6821\ -1F1BDE2EEFFB2D690602478184E5C51B902C246DE285E15FEBD6AC0B7ECADFA9\ -153F982434397AD0FB4DBE4DD5A1803234F00B0894C8019741F89665D3D51587\ -792F5BD7142C739221A1C2D4A2C86BB8782F1CF7912C32C8D3A10BECB4C7AAF0\ -1DF64C2F90:\ -DC851BF2DD4E3963CF3ED171404FBD08:E4CD8527D23393DAEAD16133854B1661 - -E4BF7D594228D3CB4D7E9EC6397DB3325B61D7C1437D0634C62FC33D9B932B7F\ -52A8D894D0AB601E29FEE4637B9795D7F96D983CEA9E70B0CD33EE68C619E718\ -C1C0AD916B0DAF950B93F8872B8D5E24FAF660E494D095610483CACA9CB1E35D\ -7190EEDD9D9E72A8316A2F5CF78D80F283E0D617B16B79B5EE437F8AF462E766\ -F2D6438F74B538A51F670216F582087863DF90144A09C9394C48C340ABABA69D\ -81E92DF59E659ABDCC9CD4C11FDC3A82BBCA9606D35F3F1FA7025F52AD06F02E\ -EF1D238E82BE4B4E5A1F1079FC4AFBB71491BDE7F0FC0698FF65EAAC6BDADB5B\ -F7FEE979BC34C81754D89050228C07361DC51D0EC123A6C088906DF46B484F62\ -4638DC036CA41AC07CAA109E3618D454DDF1629E14085F9C98CC900314DF665A\ -17425D84E6774462225500586DD4AC4AC50EE8D9164775AF1306B227E51882FD\ -5ADF814057C5A2791AA2D187767ED13B8CBA14A3018A521590043C751DBE7277\ -9EF3B8F5B95A6ED3FD3F5B73BD2CAF4AE6C3EDE84D3FFDDD43395360F8C5D896\ -B9908B72EAF945E738A05BF6CD0A40B3CD2D9B1B6C98F8AFD24B10CA11E860CA\ -78EB3C62E4814A1C22A512EFAF52A27C7F3E97EBD6909BA8DBAB72EC93D2B60B\ -BDF26DA174B7BE965CD0850B232788A2651F8E3CAF29E48BD4577767292E72E7\ -20DF889497462AF317AFFF3AD787DC3CA66A7856935DE167B458CEDD8640C4A7\ -204D3BB79366AAAA15A9E4EC30C129D72BA12DBFFE0E26B266F590ED35549455\ -A1CF0C3535B7DF4B60C43791856068B002956F00A396B3098B43F6C0978A1639\ -5A226E8FD94DDA3A1112CB9672334774C8B6756B4C2874D76B6B9802F5AE3B4F\ -D0A9DFAAF7B9E408CBAF9F3EE2E6B2AA9C2715E94F89C0BAF458BDEA06F839D7\ -A2188199D265A19D1440DBF6268EA0C3B5B5AC053E6CBF33C57C1DCB7556A217\ -6F23B0418851DE9C92BA92B848327BFDE727022694C259593E7624B3CCC7CA3B\ -EA7A7C73CC5B0F5E15A2165DD4925ABCB95DE24D1F3BA65DB1CB117D92DBB97C\ -5635EF2290FF80A5A1960275285D31E2BA132FD94ED636FFA1477D332336AF79\ -6B9F9BFC9E1BA13FB1A4B4DA01E6BCBBF9EB9448C1CA476212C49535FA45AE66\ -E44962826403C115A775EFA85BAB635597F79D58C2E4BBD4A95009A395B70979\ -006BFB646FBC79163269BF8D1422E2AB1A7F04DC64BFB00D0FB9B0A570BA1E70:\ -C437723C80E3B32AEEBD6DDE08D614312CD3176E8BFA8650EAF3A34DAE3B7276\ -9F823BC48F88F42AFCBBBDDA0534E8D2C9BAB65A83939668C982A1CBC1B826B2\ -59D83FD6505381BA99B1C850D5EFB5D0DBB077F4AB021246366292971BE121C2\ -65BCAB722A6AB5B7CB7D55C91F9FD5B3BD59A8436250F17D110B5B2588F2DACC\ -98EE60884436810570A61AF2D7A424D4D597004D175B650F9EDE8D2544974909\ -05E5AFFD31DBC4FAE7EEF180B07B7D9D2579C1A140F63F31B0A2847043FE6F98\ -556A3F90DE4C28F858581F699ED3B6E3E554DD0FE91954FC067BABC6AC62E314\ -57B299B9CF5E061A9B6ED628DFBDC164AFB6560847389EE0257A7CDE811292BC\ -761E4D66D2CDEDD2C6DE0333CF8ED6682185AD5B6B1B05526338C6EF72D02A03\ -46C4527CCB3B1E3484B83FC7AFC7BFA69B111980FDC53C70BE72F3BA7F8B51A3\ -63CD590A988AEECA67265C9BB813142F34D0B2FD20B06F39C4DE7A00D763E2B2\ -01D90A8FFCD199EDE60EFFFC0CABB648C1D7F15323F0E9BC13EABD1EBE99BCBF\ -970D0AF2501826E37D222EF4D9AFAB22EE99972F2A97C84175AAA49ED2CEAF34\ -0213E29C7A88AF38F2CAD42C2AF49937262F3281B806E343AF3ED0C7535725A5\ -AD0CACBEDF519F69CF820980169FD6DB67A165F3883216E227B07E3FACB1E279\ -54FD1D08A2EC6472B0B1F7B0D6AFA2C616F6207E7A2C4444C6F952268BF73EDB\ -EB4657AF472D08BAEAFB237F118EED6CACD80E24ABEAED97D1634367000778C0\ -E095994798006D874999E542F5F479E08AD481D211A7A4D51D58CFDC374414F6\ -810A5AE08573A34D914BE3176CE7C3699D83A06FB9D8585A03854CC38B8CFDF5\ -CDD7C888790A04D2E7F2D22099A9120CE0C37390B9AD918AD0B41C4239D2BBBA\ -B82B98E59920B173BCCDE0D48FF860F91216C4A7E68E05DAF7F53EB7641171D1\ -83C976C6B9CF1F57B2E48F88BD5E8F5558934245CBFBEE365A2D457B2EA5E6CD\ -0F39AAA154692EB604B2A366B53C5893C04568BA98B4A0AFA8B6DB80C6D66E9C\ -93DFFB1BE584ED1CC111D315823F25D6BFF9367EA584A3A0FC62788D7D385D08\ -14E984E6EE556F83D01584C8DE0656DC2A89A08BBD268F0644C63B80A5BE57DE\ -F71566B677596557D4C218DEC8A7D2611FE6FA07633C558FF372308F5D680C0F\ -9858362C2B2B8C2989F19FD8411C10B6E37A647A07D0B1D5E681E25902C36231\ -E9E5E812B623D9E72C23518F082EA48C:\ -251AD494D64DAB08B66A96CB8C7876A6:F87A825C39326949EB19EE5BD30CCBF9 - -[AES-128/EAX(64)] -:32E55CE0C3FAEA48:\ -C61A0851AB4E515D11525B92E2B9D850:C825FC7C4D539DC74887CECC70884F37 - -60:710DABD24D400F3B6B:\ -F956B879EC7F807F1FCB482B53623671:E64F90B4619D93137E6237929EABF297 - -[AES-128/XTS] -# Vectors are from IEEE P1619 D11 - -0000000000000000000000000000000000000000000000000000000000000000:\ -917CF69EBD68B2EC9B9FE9A3EADDA692CD43D2F59598ED858C02C2652FBF922E:\ -0000000000000000000000000000000000000000000000000000000000000000:\ -00000000000000000000000000000000 - -4444444444444444444444444444444444444444444444444444444444444444:\ -C454185E6A16936E39334038ACEF838BFB186FFF7480ADC4289382ECD6D394F0:\ -1111111111111111111111111111111122222222222222222222222222222222:\ -33333333330000000000000000000000 - -4444444444444444444444444444444444444444444444444444444444444444:\ -B01F86F8EDC1863706FA8A4253E34F28AF319DE38334870F4DD1F94CBE9832F1:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF:\ -27A7479BEFA1D476489F308CD4CFA6E2A96E4BBE3208FF25287DD3819616E89C\ -C78CF7F5E543445F8333D8FA7F56000005279FA5D8B5E4AD40E736DDB4D35412\ -328063FD2AAB53E5EA1E0A9F332500A5DF9487D07A5C92CC512C8866C7E860CE\ -93FDF166A24912B422976146AE20CE846BB7DC9BA94A767AAEF20C0D61AD0265\ -5EA92DC4C4E41A8952C651D33174BE51A10C421110E6D81588EDE82103A252D8\ -A750E8768DEFFFED9122810AAEB99F9172AF82B604DC4B8E51BCB08235A6F434\ -1332E4CA60482A4BA1A03B3E65008FC5DA76B70BF1690DB4EAE29C5F1BADD03C\ -5CCF2A55D705DDCD86D449511CEB7EC30BF12B1FA35B913F9F747A8AFD1B130E\ -94BFF94EFFD01A91735CA1726ACD0B197C4E5B03393697E126826FB6BBDE8ECC\ -1E08298516E2C9ED03FF3C1B7860F6DE76D4CECD94C8119855EF5297CA67E9F3\ -E7FF72B1E99785CA0A7E7720C5B36DC6D72CAC9574C8CBBC2F801E23E56FD344\ -B07F22154BEBA0F08CE8891E643ED995C94D9A69C9F1B5F499027A78572AEEBD\ -74D20CC39881C213EE770B1010E4BEA718846977AE119F7A023AB58CCA0AD752\ -AFE656BB3C17256A9F6E9BF19FDD5A38FC82BBE872C5539EDB609EF4F79C203E\ -BB140F2E583CB2AD15B4AA5B655016A8449277DBD477EF2C8D6C017DB738B18D\ -EB4A427D1923CE3FF262735779A418F20A282DF920147BEABE421EE5319D0568:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -00000000000000000000000000000000 - -27A7479BEFA1D476489F308CD4CFA6E2A96E4BBE3208FF25287DD3819616E89C\ -C78CF7F5E543445F8333D8FA7F56000005279FA5D8B5E4AD40E736DDB4D35412\ -328063FD2AAB53E5EA1E0A9F332500A5DF9487D07A5C92CC512C8866C7E860CE\ -93FDF166A24912B422976146AE20CE846BB7DC9BA94A767AAEF20C0D61AD0265\ -5EA92DC4C4E41A8952C651D33174BE51A10C421110E6D81588EDE82103A252D8\ -A750E8768DEFFFED9122810AAEB99F9172AF82B604DC4B8E51BCB08235A6F434\ -1332E4CA60482A4BA1A03B3E65008FC5DA76B70BF1690DB4EAE29C5F1BADD03C\ -5CCF2A55D705DDCD86D449511CEB7EC30BF12B1FA35B913F9F747A8AFD1B130E\ -94BFF94EFFD01A91735CA1726ACD0B197C4E5B03393697E126826FB6BBDE8ECC\ -1E08298516E2C9ED03FF3C1B7860F6DE76D4CECD94C8119855EF5297CA67E9F3\ -E7FF72B1E99785CA0A7E7720C5B36DC6D72CAC9574C8CBBC2F801E23E56FD344\ -B07F22154BEBA0F08CE8891E643ED995C94D9A69C9F1B5F499027A78572AEEBD\ -74D20CC39881C213EE770B1010E4BEA718846977AE119F7A023AB58CCA0AD752\ -AFE656BB3C17256A9F6E9BF19FDD5A38FC82BBE872C5539EDB609EF4F79C203E\ -BB140F2E583CB2AD15B4AA5B655016A8449277DBD477EF2C8D6C017DB738B18D\ -EB4A427D1923CE3FF262735779A418F20A282DF920147BEABE421EE5319D0568:\ -264D3CA8512194FEC312C8C9891F279FEFDD608D0C027B60483A3FA811D65EE5\ -9D52D9E40EC5672D81532B38B6B089CE951F0F9C35590B8B978D175213F329BB\ -1C2FD30F2F7F30492A61A532A79F51D36F5E31A7C9A12C286082FF7D2394D18F\ -783E1A8E72C722CAAAA52D8F065657D2631FD25BFD8E5BAAD6E527D763517501\ -C68C5EDC3CDD55435C532D7125C8614DEED9ADAA3ACADE5888B87BEF641C4C99\ -4C8091B5BCD387F3963FB5BC37AA922FBFE3DF4E5B915E6EB514717BDD2A7407\ -9A5073F5C4BFD46ADF7D282E7A393A52579D11A028DA4D9CD9C77124F9648EE3\ -83B1AC763930E7162A8D37F350B2F74B8472CF09902063C6B32E8C2D9290CEFB\ -D7346D1C779A0DF50EDCDE4531DA07B099C638E83A755944DF2AEF1AA31752FD\ -323DCB710FB4BFBB9D22B925BC3577E1B8949E729A90BBAFEACF7F7879E7B114\ -7E28BA0BAE940DB795A61B15ECF4DF8DB07B824BB062802CC98A9545BB2AAEED\ -77CB3FC6DB15DCD7D80D7D5BC406C4970A3478ADA8899B329198EB61C193FB62\ -75AA8CA340344A75A862AEBE92EEE1CE032FD950B47D7704A3876923B4AD6284\ -4BF4A09C4DBE8B4397184B7471360C9564880AEDDDB9BAA4AF2E75394B08CD32\ -FF479C57A07D3EAB5D54DE5F9738B8D27F27A9F0AB11799D7B7FFEFB2704C95C\ -6AD12C39F1E867A4B7B1D7818A4B753DFD2A89CCB45E001A03A867B187F225DD:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -01000000000000000000000000000000 - -264D3CA8512194FEC312C8C9891F279FEFDD608D0C027B60483A3FA811D65EE5\ -9D52D9E40EC5672D81532B38B6B089CE951F0F9C35590B8B978D175213F329BB\ -1C2FD30F2F7F30492A61A532A79F51D36F5E31A7C9A12C286082FF7D2394D18F\ -783E1A8E72C722CAAAA52D8F065657D2631FD25BFD8E5BAAD6E527D763517501\ -C68C5EDC3CDD55435C532D7125C8614DEED9ADAA3ACADE5888B87BEF641C4C99\ -4C8091B5BCD387F3963FB5BC37AA922FBFE3DF4E5B915E6EB514717BDD2A7407\ -9A5073F5C4BFD46ADF7D282E7A393A52579D11A028DA4D9CD9C77124F9648EE3\ -83B1AC763930E7162A8D37F350B2F74B8472CF09902063C6B32E8C2D9290CEFB\ -D7346D1C779A0DF50EDCDE4531DA07B099C638E83A755944DF2AEF1AA31752FD\ -323DCB710FB4BFBB9D22B925BC3577E1B8949E729A90BBAFEACF7F7879E7B114\ -7E28BA0BAE940DB795A61B15ECF4DF8DB07B824BB062802CC98A9545BB2AAEED\ -77CB3FC6DB15DCD7D80D7D5BC406C4970A3478ADA8899B329198EB61C193FB62\ -75AA8CA340344A75A862AEBE92EEE1CE032FD950B47D7704A3876923B4AD6284\ -4BF4A09C4DBE8B4397184B7471360C9564880AEDDDB9BAA4AF2E75394B08CD32\ -FF479C57A07D3EAB5D54DE5F9738B8D27F27A9F0AB11799D7B7FFEFB2704C95C\ -6AD12C39F1E867A4B7B1D7818A4B753DFD2A89CCB45E001A03A867B187F225DD:\ -FA762A3680B76007928ED4A4F49A9456031B704782E65E16CECB54ED7D017B5E\ -18ABD67B338E81078F21EDB7868D901EBE9C731A7C18B5E6DEC1D6A72E078AC9\ -A4262F860BEEFA14F4E821018272E411A951502B6E79066E84252C3346F3AA62\ -344351A291D4BEDC7A07618BDEA2AF63145CC7A4B8D4070691AE890CD65733E7\ -946E9021A1DFFC4C59F159425EE6D50CA9B135FA6162CEA18A939838DC000FB3\ -86FAD086ACCE5AC07CB2ECE7FD580B00CFA5E98589631DC25E8E2A3DAF2FFDEC\ -26531659912C9D8F7A15E5865EA8FB5816D6207052BD7128CD743C12C8118791\ -A4736811935EB982A532349E31DD401E0B660A568CB1A4711F552F55DED59F1F\ -15BF7196B3CA12A91E488EF59D64F3A02BF45239499AC6176AE321C4A211EC54\ -5365971C5D3F4F09D4EB139BFDF2073D33180B21002B65CC9865E76CB24CD92C\ -874C24C18350399A936AB3637079295D76C417776B94EFCE3A0EF7206B151105\ -19655C956CBD8B2489405EE2B09A6B6EEBE0C53790A12A8998378B33A5B71159\ -625F4BA49D2A2FDBA59FBF0897BC7AABD8D707DC140A80F0F309F835D3DA54AB\ -584E501DFA0EE977FEC543F74186A802B9A37ADB3E8291ECA04D66520D229E60\ -401E7282BEF486AE059AA70696E0E305D777140A7A883ECDCB69B9FF938E8A42\ -31864C69CA2C2043BED007FF3E605E014BCF518138DC3A25C5E236171A2D01D6:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -02000000000000000000000000000000 - -8E41B78C390B5AF9D758BB214A67E9F6BF7727B09AC6124084C37611398FA45D\ -AAD94868600ED391FB1ACD4857A95B466E62EF9F4B377244D1C152E7B30D731A\ -AD30C716D214B707AED99EB5B5E580B3E887CF7497465651D4B60E6042051DA3\ -693C3B78C14489543BE8B6AD0BA629565BBA202313BA7B0D0C94A3252B676F46\ -CC02CE0F8A7D34C0ED229129673C1F61AED579D08A9203A25AAC3A77E9DB6026\ -7996DB38DF637356D9DCD1632E369939F2A29D89345C66E05066F1A3677AEF18\ -DEA4113FAEB629E46721A66D0A7E785D3E29AF2594EB67DFA982AFFE0AAC058F\ -6E15864269B135418261FC3AFB089472CF68C45DD7F231C6249BA0255E1E0338\ -33FC4D00A3FE02132D7BC3873614B8AEE34273581EA0325C81F0270AFFA13641\ -D052D36F0757D484014354D02D6883CA15C24D8C3956B1BD027BCF41F151FD80\ -23C5340E5606F37E90FDB87C86FB4FA634B3718A30BACE06A66EAF8F63C4AA3B\ -637826A87FE8CFA44282E92CB1615AF3A28E53BC74C7CBA1A0977BE9065D0C1A\ -5DEC6C54AE38D37F37AA35283E048E5530A85C4E7A29D7B92EC0C3169CDF2A80\ -5C7604BCE60049B9FB7B8EAAC10F51AE23794CEBA68BB58112E293B9B692CA72\ -1B37C662F8574ED4DBA6F88E170881C82CDDC1034A0CA7E284BF0962B6B26292\ -D836FA9F73C1AC770EEF0F2D3A1EAF61D3E03555FD424EEDD67E18A18094F888:\ -D55F684F81F4426E9FDE92A5FF02DF2AC896AF63962888A97910C1379E20B0A3\ -B1DB613FB7FE2E07004329EA5C22BFD33E3DBE4CF58CC608C2C26C19A2E2FE22\ -F98732C2B5CB844CC6C0702D91E1D50FC4382A7EBA5635CD602432A2306AC4CE\ -82F8D70C8D9BC15F918FE71E74C622D5CF71178BF6E0B9CC9F2B41DD8DBE441C\ -41CD0C73A6DC47A348F6702F9D0E9B1B1431E948E299B9EC2272AB2C5F0C7BE8\ -6AFFA5DEC87A0BEE81D3D50007EDAA2BCFCCB35605155FF36ED8EDD4A40DCD4B\ -243ACD11B2B987BDBFAF91A7CAC27E9C5AEA525EE53DE7B2D3332C8644402B82\ -3E94A7DB26276D2D23AA07180F76B4FD29B9C0823099C9D62C519880AEE7E969\ -7617C1497D47BF3E571950311421B6B734D38B0DB91EB85331B91EA9F61530F5\ -4512A5A52A4BAD589EB69781D537F23297BB459BDAD2948A29E1550BF4787E0B\ -E95BB173CF5FAB17DAB7A13A052A63453D97CCEC1A321954886B7A1299FAAEEC\ -AE35C6EAACA753B041B5E5F093BF83397FD21DD6B3012066FCC058CC32C3B09D\ -7562DEE29509B5839392C9FF05F51F3166AAAC4AC5F238038A3045E6F72E48EF\ -0FE8BC675E82C318A268E43970271BF119B81BF6A982746554F84E72B9F00280\ -A320A08142923C23C883423FF949827F29BBACDC1CCDB04938CE6098C95BA6B3\ -2528F4EF78EED778B2E122DDFD1CBDD11D1C0A6783E011FC536D63D053260637:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -FD000000000000000000000000000000 - -D55F684F81F4426E9FDE92A5FF02DF2AC896AF63962888A97910C1379E20B0A3\ -B1DB613FB7FE2E07004329EA5C22BFD33E3DBE4CF58CC608C2C26C19A2E2FE22\ -F98732C2B5CB844CC6C0702D91E1D50FC4382A7EBA5635CD602432A2306AC4CE\ -82F8D70C8D9BC15F918FE71E74C622D5CF71178BF6E0B9CC9F2B41DD8DBE441C\ -41CD0C73A6DC47A348F6702F9D0E9B1B1431E948E299B9EC2272AB2C5F0C7BE8\ -6AFFA5DEC87A0BEE81D3D50007EDAA2BCFCCB35605155FF36ED8EDD4A40DCD4B\ -243ACD11B2B987BDBFAF91A7CAC27E9C5AEA525EE53DE7B2D3332C8644402B82\ -3E94A7DB26276D2D23AA07180F76B4FD29B9C0823099C9D62C519880AEE7E969\ -7617C1497D47BF3E571950311421B6B734D38B0DB91EB85331B91EA9F61530F5\ -4512A5A52A4BAD589EB69781D537F23297BB459BDAD2948A29E1550BF4787E0B\ -E95BB173CF5FAB17DAB7A13A052A63453D97CCEC1A321954886B7A1299FAAEEC\ -AE35C6EAACA753B041B5E5F093BF83397FD21DD6B3012066FCC058CC32C3B09D\ -7562DEE29509B5839392C9FF05F51F3166AAAC4AC5F238038A3045E6F72E48EF\ -0FE8BC675E82C318A268E43970271BF119B81BF6A982746554F84E72B9F00280\ -A320A08142923C23C883423FF949827F29BBACDC1CCDB04938CE6098C95BA6B3\ -2528F4EF78EED778B2E122DDFD1CBDD11D1C0A6783E011FC536D63D053260637:\ -72EFC1EBFE1EE25975A6EB3AA8589DDA2B261F1C85BDAB442A9E5B2DD1D7C395\ -7A16FC08E526D4B1223F1B1232A11AF274C3D70DAC57F83E0983C498F1A6F1AE\ -CB021C3E70085A1E527F1CE41EE5911A82020161529CD82773762DAF5459DE94\ -A0A82ADAE7E1703C808543C29ED6FB32D9E004327C1355180C995A07741493A0\ -9C21BA01A387882DA4F62534B87BB15D60D197201C0FD3BF30C1500A3ECFECDD\ -66D8721F90BCC4C17EE925C61B0A03727A9C0D5F5CA462FBFA0AF1C2513A9D9D\ -4B5345BD27A5F6E653F751693E6B6A2B8EAD57D511E00E58C45B7B8D005AF792\ -88F5C7C22FD4F1BF7A898B03A5634C6A1AE3F9FAE5DE4F296A2896B23E7ED43E\ -D14FA5A2803F4D28F0D3FFCF24757677AEBDB47BB388378708948A8D4126ED18\ -39E0DA29A537A8C198B3C66AB00712DD261674BF45A73D67F76914F830CA014B\ -65596F27E4CF62DE66125A5566DF9975155628B400FBFB3A29040ED50FAFFDBB\ -18AECE7C5C44693260AAB386C0A37B11B114F1C415AEBB653BE468179428D43A\ -4D8BC3EC38813ECA30A13CF1BB18D524F1992D44D8B1A42EA30B22E6C95B199D\ -8D182F8840B09D059585C31AD691FA0619FF038ACA2C39A943421157361717C4\ -9D322028A74648113BD8C9D7EC77CF3C89C1EC8718CEFF8516D96B34C3C614F1\ -0699C9ABC4ED0411506223BEA16AF35C883ACCDBE1104EEF0CFDB54E12FB230A:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -FE000000000000000000000000000000 - -72EFC1EBFE1EE25975A6EB3AA8589DDA2B261F1C85BDAB442A9E5B2DD1D7C395\ -7A16FC08E526D4B1223F1B1232A11AF274C3D70DAC57F83E0983C498F1A6F1AE\ -CB021C3E70085A1E527F1CE41EE5911A82020161529CD82773762DAF5459DE94\ -A0A82ADAE7E1703C808543C29ED6FB32D9E004327C1355180C995A07741493A0\ -9C21BA01A387882DA4F62534B87BB15D60D197201C0FD3BF30C1500A3ECFECDD\ -66D8721F90BCC4C17EE925C61B0A03727A9C0D5F5CA462FBFA0AF1C2513A9D9D\ -4B5345BD27A5F6E653F751693E6B6A2B8EAD57D511E00E58C45B7B8D005AF792\ -88F5C7C22FD4F1BF7A898B03A5634C6A1AE3F9FAE5DE4F296A2896B23E7ED43E\ -D14FA5A2803F4D28F0D3FFCF24757677AEBDB47BB388378708948A8D4126ED18\ -39E0DA29A537A8C198B3C66AB00712DD261674BF45A73D67F76914F830CA014B\ -65596F27E4CF62DE66125A5566DF9975155628B400FBFB3A29040ED50FAFFDBB\ -18AECE7C5C44693260AAB386C0A37B11B114F1C415AEBB653BE468179428D43A\ -4D8BC3EC38813ECA30A13CF1BB18D524F1992D44D8B1A42EA30B22E6C95B199D\ -8D182F8840B09D059585C31AD691FA0619FF038ACA2C39A943421157361717C4\ -9D322028A74648113BD8C9D7EC77CF3C89C1EC8718CEFF8516D96B34C3C614F1\ -0699C9ABC4ED0411506223BEA16AF35C883ACCDBE1104EEF0CFDB54E12FB230A:\ -3260AE8DAD1F4A32C5CAFE3AB0EB95549D461A67CEB9E5AA2D3AFB62DECE0553\ -193BA50C75BE251E08D1D08F1088576C7EFDFAAF3F459559571E12511753B07A\ -F073F35DA06AF0CE0BBF6B8F5CCC5CEA500EC1B211BD51F63B606BF6528796CA\ -12173BA39B8935EE44CCCE646F90A45BF9CCC567F0ACE13DC2D53EBEEDC81F58\ -B2E41179DDDF0D5A5C42F5D8506C1A5D2F8F59F3EA873CBCD0EEC19ACBF32542\ -3BD3DCB8C2B1BF1D1EAED0EBA7F0698E4314FBEB2F1566D1B9253008CBCCF45A\ -2B0D9C5C9C21474F4076E02BE26050B99DEE4FD68A4CF890E496E4FCAE7B70F9\ -4EA5A9062DA0DAEBA1993D2CCD1DD3C244B8428801495A58B216547E7E847C46\ -D1D756377B6242D2E5FB83BF752B54E0DF71E889F3A2BB0F4C10805BF3C59037\ -6E3C24E22FF57F7FA965577375325CEA5D920DB94B9C336B455F6E894C01866F\ -E9FBB8C8D3F70A2957285F6DFB5DCD8CBF54782F8FE7766D4723819913AC7734\ -21E3A31095866BAD22C86A6036B2518B2059B4229D18C8C2CCBDF906C6CC6E82\ -464EE57BDDB0BEBCB1DC645325BFB3E665EF7251082C88EBB1CF203BD779FDD3\ -8675713C8DAADD17E1CABEE432B09787B6DDF3304E38B731B45DF5DF51B78FCF\ -B3D32466028D0BA36555E7E11AB0EE0666061D1645D962444BC47A38188930A8\ -4B4D561395C73C087021927CA638B7AFC8A8679CCB84C26555440EC7F10445CD:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -FF000000000000000000000000000000 - -# From Brian Gladman's XTS implementation -000102030405060708090A0B0C0D0E0F10:\ -6C1625DB4671522D3D7599601DE7CA09ED:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F1011:\ -D069444B7A7E0CAB09E24447D24DEB1FEDBF:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112:\ -E5DF1351C0544BA1350B3363CD8EF4BEEDBF9D:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F10111213:\ -9D84C813F719AA2C7BE3F66171C7C5C2EDBF9DAC:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF:\ -38B45812EF43A05BD957E545907E223B954AB4AAF088303AD910EADF14B42BE6\ -8B2461149D8C8BA85F992BE970BC621F1B06573F63E867BF5875ACAFA04E42CC\ -BD7BD3C2A0FB1FFF791EC5EC36C66AE4AC1E806D81FBF709DBE29E471FAD3854\ -9C8E66F5345D7C1EB94F405D1EC785CC6F6A68F6254DD8339F9D84057E01A177\ -41990482999516B5611A38F41BB6478E6F173F320805DD71B1932FC333CB9EE3\ -9936BEEA9AD96FA10FB4112B901734DDAD40BC1878995F8E11AEE7D141A2F5D4\ -8B7A4E1E7F0B2C04830E69A4FD1378411C2F287EDF48C6C4E5C247A19680F7FE\ -41CEFBD49B582106E3616CBBE4DFB2344B2AE9519391F3E0FB4922254B1D6D2D\ -19C6D4D537B3A26F3BCC51588B32F3ECA0829B6A5AC72578FB814FB43CF80D64\ -A233E3F997A3F02683342F2B33D25B492536B93BECB2F5E1A8B82F5B88334272\ -9E8AE09D16938841A21A97FB543EEA3BBFF59F13C1A18449E398701C1AD51648\ -346CBC04C27BB2DA3B93A1372CCAE548FB53BEE476F9E9C91773B1BB19828394\ -D55D3E1A20ED69113A860B6829FFA847224604435070221B257E8DFF783615D2\ -CAE4803A93AA4334AB482A0AFAC9C0AEDA70B45A481DF5DEC5DF8CC0F423C77A\ -5FD46CD312021D4B438862419A791BE03BB4D97C0E59578542531BA466A83BAF\ -92CEFC151B5CC1611A167893819B63FB8A6B18E86DE60290FA72B797B0CE59F3:\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECF:\ -21436587A90000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E:\ -D05BC090A8E04F1B3D3ECDD5BAEC0FD4EDBF9DACE45D6F6A7306E64BE5DD82:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F10:\ -6C1625DB4671522D3D7599601DE7CA09ED:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F1011:\ -D069444B7A7E0CAB09E24447D24DEB1FEDBF:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112:\ -E5DF1351C0544BA1350B3363CD8EF4BEEDBF9D:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F10111213:\ -9D84C813F719AA2C7BE3F66171C7C5C2EDBF9DAC:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F1011121314:\ -2CD47E780DE4B008D8FDE727C1C325F4EDBF9DACE4:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415:\ -9148CA1ADE56C1914833BCA9F7742F4EEDBF9DACE45D:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F10111213141516:\ -95B3BDFF7122C424BA9501BA0B9E09F0EDBF9DACE45D6F:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F1011121314151617:\ -A2316435248154E2026E672372A6A789EDBF9DACE45D6F6A:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718:\ -8F4DCBAD55558D7B4E01D9379CD4EA22EDBF9DACE45D6F6A73:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F10111213141516171819:\ -4D184C4B48F4BE3B2491A04093713EC3EDBF9DACE45D6F6A7306:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A:\ -1FB75FF08D88C63CADBA2CCF5CDDE52FEDBF9DACE45D6F6A7306E6:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B:\ -5E20653F0988F211299DD6D76CCE0E72EDBF9DACE45D6F6A7306E64B:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C:\ -60D814B83896C40CC56EC143D38A7C7FEDBF9DACE45D6F6A7306E64BE5:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D:\ -24F3B2374C2EE6DD6E0B9ED63E354307EDBF9DACE45D6F6A7306E64BE5DD:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E:\ -D05BC090A8E04F1B3D3ECDD5BAEC0FD4EDBF9DACE45D6F6A7306E64BE5DD82:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -0001020304050607:\ -38B45812EF43A05BD957E545907E223B954AB4AAF088303AD910EADF14B42BE6\ -8B2461149D8C8BA85F992BE970BC621F1B06573F63E867BF5875ACAFA04E42CC\ -BD7BD3C2A0FB1FFF791EC5EC36C66AE4AC1E806D81FBF709DBE29E471FAD3854\ -9C8E66F5345D7C1EB94F405D1EC785CC6F6A68F6254DD8339F9D84057E01A177\ -41990482999516B5611A38F41BB6478E6F173F320805DD71B1932FC333CB9EE3\ -9936BEEA9AD96FA10FB4112B901734DDAD40BC1878995F8E11AEE7D141A2F5D4\ -8B7A4E1E7F0B2C04830E69A4FD1378411C2F287EDF48C6C4E5C247A19680F7FE\ -41CEFBD49B582106E3616CBBE4DFB2344B2AE9519391F3E0FB4922254B1D6D2D\ -19C6D4D537B3A26F3BCC51588B32F3ECA0829B6A5AC72578FB814FB43CF80D64\ -A233E3F997A3F02683342F2B33D25B492536B93BECB2F5E1A8B82F5B88334272\ -9E8AE09D16938841A21A97FB543EEA3BBFF59F13C1A18449E398701C1AD51648\ -346CBC04C27BB2DA3B93A1372CCAE548FB53BEE476F9E9C91773B1BB19828394\ -D55D3E1A20ED69113A860B6829FFA847224604435070221B257E8DFF783615D2\ -CAE4803A93AA4334AB482A0AFAC9C0AEDA70B45A481DF5DEC5DF8CC0F423C77A\ -5FD46CD312021D4B438862419A791BE03BB4D97C0E59578542531BA466A83BAF\ -92CEFC151B5CC1611A167893819B63FB37EC662BC0FC907DB74A94468A55A7BC\ -8A6B18E86DE60290:\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECF:\ -21436587A90000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -2021222324:\ -27A7479BEFA1D476489F308CD4CFA6E294E4CD40E4BA22AEF6C26F9F32DDC925\ -A96E4BBE32:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -00000000000000000000000000000000 - -27A7479BEFA1D476489F308CD4CFA6E294E4CD40E4BA22AEF6C26F9F32DDC925\ -A96E4BBE32:\ -88DFFC5A67617A54952ADDCD9CCBDA5BA127EAAD95B20441788EFBC0462F6B54\ -F65FD7579B:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -11000000000000000000000000000000 - -88DFFC5A67617A54952ADDCD9CCBDA5BA127EAAD95B20441788EFBC0462F6B54\ -F65FD7579B:\ -5000ECA5A1F6A49378030D9EE805ACEF460F314EE04BB514034EB27FB8DF2BC8\ -12AE5BDF8C:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -22110000000000000000000000000000 - -5000ECA5A1F6A49378030D9EE805ACEF460F314EE04BB514034EB27FB8DF2BC8\ -12AE5BDF8C:\ -E59E6F233BE0E0830483C6BD4E82F4C39543558A25E3DB60A553A5948145A6FF\ -B5E6BE1DB5:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -33221100000000000000000000000000 - -E59E6F233BE0E0830483C6BD4E82F4C39543558A25E3DB60A553A5948145A6FF\ -B5E6BE1DB5:\ -01C7772FEB67516E13E1BE201F0CDE25F84D71AACDA86A3957E285B2059D7C93\ -84F4432795:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -44332211000000000000000000000000 - -01C7772FEB67516E13E1BE201F0CDE25F84D71AACDA86A3957E285B2059D7C93\ -84F4432795:\ -457BD3FE9531EBF13FF98F965AFC1A075B5C80108D3EBCC8041CD29DE4416A71\ -F1ED58F383:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -55443322110000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -20212223:\ -27A7479BEFA1D476489F308CD4CFA6E288F548E5C4239F91712A587E2B05AC3D\ -A96E4BBE:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -00000000000000000000000000000000 - -27A7479BEFA1D476489F308CD4CFA6E288F548E5C4239F91712A587E2B05AC3D\ -A96E4BBE:\ -88DFFC5A67617A54952ADDCD9CCBDA5B1A87DE598E8E9FC8E3CB6EB80141CDEC\ -AE9E78B3:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -11000000000000000000000000000000 - -88DFFC5A67617A54952ADDCD9CCBDA5B1A87DE598E8E9FC8E3CB6EB80141CDEC\ -AE9E78B3:\ -5000ECA5A1F6A49378030D9EE805ACEF0CE949B3861EB92CC4C541507AFF4AAD\ -368E7FE5:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -22110000000000000000000000000000 - -5000ECA5A1F6A49378030D9EE805ACEF0CE949B3861EB92CC4C541507AFF4AAD\ -368E7FE5:\ -E59E6F233BE0E0830483C6BD4E82F4C3C0C31FEB59D739BFE8CD96A7F3950E4C\ -4C21D832:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -33221100000000000000000000000000 - -E59E6F233BE0E0830483C6BD4E82F4C3C0C31FEB59D739BFE8CD96A7F3950E4C\ -4C21D832:\ -01C7772FEB67516E13E1BE201F0CDE257A22160502BF1B7310153E0A5215D70D\ -1FA5E0FB:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -44332211000000000000000000000000 - -01C7772FEB67516E13E1BE201F0CDE257A22160502BF1B7310153E0A5215D70D\ -1FA5E0FB:\ -457BD3FE9531EBF13FF98F965AFC1A07DB2431240FDD34D66A0F7457129A0A64\ -C838EE03:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -55443322110000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122:\ -27A7479BEFA1D476489F308CD4CFA6E2DDF8A1A57E330896A2F95DC70D59CB51\ -A96E4B:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -00000000000000000000000000000000 - -27A7479BEFA1D476489F308CD4CFA6E2DDF8A1A57E330896A2F95DC70D59CB51\ -A96E4B:\ -88DFFC5A67617A54952ADDCD9CCBDA5B688EBB032ED9C4B2223944AE7626956A\ -07577F:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -11000000000000000000000000000000 - -88DFFC5A67617A54952ADDCD9CCBDA5B688EBB032ED9C4B2223944AE7626956A\ -07577F:\ -5000ECA5A1F6A49378030D9EE805ACEF5B0B898816A7CFA9D40DFBE35A731419\ -6D0F7F:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -22110000000000000000000000000000 - -5000ECA5A1F6A49378030D9EE805ACEF5B0B898816A7CFA9D40DFBE35A731419\ -6D0F7F:\ -E59E6F233BE0E0830483C6BD4E82F4C341785B48E59353C2F55C05EFC6D6191A\ -733D0C:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -33221100000000000000000000000000 - -E59E6F233BE0E0830483C6BD4E82F4C341785B48E59353C2F55C05EFC6D6191A\ -733D0C:\ -01C7772FEB67516E13E1BE201F0CDE25667EBBE69DB9728C534B88083A8FFFBA\ -758210:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -44332211000000000000000000000000 - -01C7772FEB67516E13E1BE201F0CDE25667EBBE69DB9728C534B88083A8FFFBA\ -758210:\ -457BD3FE9531EBF13FF98F965AFC1A071762ABD95A529D51FDEE8137740857DE\ -1CB7F8:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -55443322110000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -2021:\ -27A7479BEFA1D476489F308CD4CFA6E203C64AD2FF46C204CB36123C1BDB4B7A\ -A96E:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -00000000000000000000000000000000 - -27A7479BEFA1D476489F308CD4CFA6E203C64AD2FF46C204CB36123C1BDB4B7A\ -A96E:\ -88DFFC5A67617A54952ADDCD9CCBDA5B45D25600AE3AB369378816F303C5EAFF\ -FA3F:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -11000000000000000000000000000000 - -88DFFC5A67617A54952ADDCD9CCBDA5B45D25600AE3AB369378816F303C5EAFF\ -FA3F:\ -5000ECA5A1F6A49378030D9EE805ACEFEC47348F3EF418D34398192B465806DA\ -A025:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -22110000000000000000000000000000 - -5000ECA5A1F6A49378030D9EE805ACEFEC47348F3EF418D34398192B465806DA\ -A025:\ -E59E6F233BE0E0830483C6BD4E82F4C38EA0534B5DBFA3FF0467797E0179C1EC\ -CC42:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -33221100000000000000000000000000 - -E59E6F233BE0E0830483C6BD4E82F4C38EA0534B5DBFA3FF0467797E0179C1EC\ -CC42:\ -01C7772FEB67516E13E1BE201F0CDE25DE3C95403C6C12F005CBE1216ACCA26A\ -7CBD:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -44332211000000000000000000000000 - -01C7772FEB67516E13E1BE201F0CDE25DE3C95403C6C12F005CBE1216ACCA26A\ -7CBD:\ -457BD3FE9531EBF13FF98F965AFC1A0707A896D7C002150B23BC4C24C04593F7\ -30A7:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -55443322110000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -20:\ -27A7479BEFA1D476489F308CD4CFA6E2A3FCD5EA382FD25A6469DEA467377E2E\ -A9:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -00000000000000000000000000000000 - -27A7479BEFA1D476489F308CD4CFA6E2A3FCD5EA382FD25A6469DEA467377E2E\ -A9:\ -88DFFC5A67617A54952ADDCD9CCBDA5BF0D6EDC2AC04C62D728FA4AA7F83F136\ -FD:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -11000000000000000000000000000000 - -88DFFC5A67617A54952ADDCD9CCBDA5BF0D6EDC2AC04C62D728FA4AA7F83F136\ -FD:\ -5000ECA5A1F6A49378030D9EE805ACEFD0F354CA0758FE61E62B6BF79404154D\ -20:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -22110000000000000000000000000000 - -5000ECA5A1F6A49378030D9EE805ACEFD0F354CA0758FE61E62B6BF79404154D\ -20:\ -E59E6F233BE0E0830483C6BD4E82F4C3E5288DD1FC040837735A40B3BE8AF83C\ -1D:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -33221100000000000000000000000000 - -E59E6F233BE0E0830483C6BD4E82F4C3E5288DD1FC040837735A40B3BE8AF83C\ -1D:\ -01C7772FEB67516E13E1BE201F0CDE25C3ED2B1AB747C3BEDF68F3A293D27372\ -22:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -44332211000000000000000000000000 - -01C7772FEB67516E13E1BE201F0CDE25C3ED2B1AB747C3BEDF68F3A293D27372\ -22:\ -457BD3FE9531EBF13FF98F965AFC1A07D308CACA9E8E9F86E104E47F5C60B703\ -C8:\ -2718281828459045235360287471352631415926535897932384626433832795:\ -55443322110000000000000000000000 - -[AES-256/XTS] -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF:\ -1C3B3A102F770386E4836C99E370CF9BEA00803F5E482357A4AE12D414A3E63B\ -5D31E276F8FE4A8D66B317F9AC683F44680A86AC35ADFC3345BEFECB4BB188FD\ -5776926C49A3095EB108FD1098BAEC70AAA66999A72A82F27D848B21D4A741B0\ -C5CD4D5FFF9DAC89AEBA122961D03A757123E9870F8ACF1000020887891429CA\ -2A3E7A7D7DF7B10355165C8B9A6D0A7DE8B062C4500DC4CD120C0F7418DAE3D0\ -B5781C34803FA75421C790DFE1DE1834F280D7667B327F6C8CD7557E12AC3A0F\ -93EC05C52E0493EF31A12D3D9260F79A289D6A379BC70C50841473D1A8CC81EC\ -583E9645E07B8D9670655BA5BBCFECC6DC3966380AD8FECB17B6BA02469A020A\ -84E18E8F84252070C13E9F1F289BE54FBC481457778F616015E1327A02B140F1\ -505EB309326D68378F8374595C849D84F4C333EC4423885143CB47BD71C5EDAE\ -9BE69A2FFECEB1BEC9DE244FBE15992B11B77C040F12BD8F6A975A44A0F90C29\ -A9ABC3D4D893927284C58754CCE294529F8614DCD2ABA991925FEDC4AE74FFAC\ -6E333B93EB4AFF0479DA9A410E4450E0DD7AE4C6E2910900575DA401FC07059F\ -645E8B7E9BFDEF33943054FF84011493C27B3429EAEDB4ED5376441A77ED4385\ -1AD77F16F541DFD269D50D6A5F14FB0AAB1CBB4C1550BE97F7AB4066193C4CAA\ -773DAD38014BD2092FA755C824BB5E54C4F36FFDA9FCEA70B9C6E693E148C151:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -FF000000000000000000000000000000 - -# From Brian Gladman's XTS implementation -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -2021222324:\ -3A060A8CAD115A6F44572E3759E43C8F8832FEDC28A8E35B357B5CF3EDBEF788\ -CAD8BFCB23:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -00000000000000000000000000000000 - -3A060A8CAD115A6F44572E3759E43C8F8832FEDC28A8E35B357B5CF3EDBEF788\ -CAD8BFCB23:\ -6D1C78A8BAD91DB2924C507CCEDE835F5BADD157DA0AF55C98BBC28CF676F9FA\ -61618FA696:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -11000000000000000000000000000000 - -6D1C78A8BAD91DB2924C507CCEDE835F5BADD157DA0AF55C98BBC28CF676F9FA\ -61618FA696:\ -818E287A6B1168B124FDBBD730488FE1E25330B96BA54A950A51AB35A8461E5B\ -9EDD4E72AA:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -22110000000000000000000000000000 - -818E287A6B1168B124FDBBD730488FE1E25330B96BA54A950A51AB35A8461E5B\ -9EDD4E72AA:\ -37AF0A0E7436B8C07A5AC8FC3C1007CF84366DB3978319DB9ACD3ADB8DDA164B\ -209ABC2CB9:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -33221100000000000000000000000000 - -37AF0A0E7436B8C07A5AC8FC3C1007CF84366DB3978319DB9ACD3ADB8DDA164B\ -209ABC2CB9:\ -6CF52A5E258BF080D9EF18301448061EC1A340F0B153C9028422D1F2DB83EE46\ -A77C4C3BB1:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -44332211000000000000000000000000 - -6CF52A5E258BF080D9EF18301448061EC1A340F0B153C9028422D1F2DB83EE46\ -A77C4C3BB1:\ -8245242C6A1CED243020B11D5DDE84199EBC07E90165554C6185F00D93500425\ -25F0F259E3:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -55443322110000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -20212223:\ -3A060A8CAD115A6F44572E3759E43C8F8F552508845701063BCE2A39F96FFDFC\ -CAD8BFCB:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -00000000000000000000000000000000 - -3A060A8CAD115A6F44572E3759E43C8F8F552508845701063BCE2A39F96FFDFC\ -CAD8BFCB:\ -6D1C78A8BAD91DB2924C507CCEDE835FAAF397703650CFD664F0446344D35FF5\ -93CACFAE:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -11000000000000000000000000000000 - -6D1C78A8BAD91DB2924C507CCEDE835FAAF397703650CFD664F0446344D35FF5\ -93CACFAE:\ -818E287A6B1168B124FDBBD730488FE117337F34591096E2BEF63932AC5F82A8\ -1462CC39:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -22110000000000000000000000000000 - -818E287A6B1168B124FDBBD730488FE117337F34591096E2BEF63932AC5F82A8\ -1462CC39:\ -37AF0A0E7436B8C07A5AC8FC3C1007CFCE294D5B61E003CBE1C1190B2436C9F2\ -67575578:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -33221100000000000000000000000000 - -37AF0A0E7436B8C07A5AC8FC3C1007CFCE294D5B61E003CBE1C1190B2436C9F2\ -67575578:\ -6CF52A5E258BF080D9EF18301448061E7504A2127E3EF31C3CF68C23E5C13676\ -3E32F96F:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -44332211000000000000000000000000 - -6CF52A5E258BF080D9EF18301448061E7504A2127E3EF31C3CF68C23E5C13676\ -3E32F96F:\ -8245242C6A1CED243020B11D5DDE8419BEA9DF5569B16CE9D98E412BF2990EAB\ -6614A200:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -55443322110000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122:\ -3A060A8CAD115A6F44572E3759E43C8F3A9C7A992A69177CAA7FEB093D4CB3C1\ -CAD8BF:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -00000000000000000000000000000000 - -3A060A8CAD115A6F44572E3759E43C8F3A9C7A992A69177CAA7FEB093D4CB3C1\ -CAD8BF:\ -6D1C78A8BAD91DB2924C507CCEDE835FBE8377FB3155793E49B47ADEF4ADAEC5\ -8FB3CB:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -11000000000000000000000000000000 - -6D1C78A8BAD91DB2924C507CCEDE835FBE8377FB3155793E49B47ADEF4ADAEC5\ -8FB3CB:\ -818E287A6B1168B124FDBBD730488FE199D1918615E54BD5F21AFD5F350A6AC4\ -B135CD:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -22110000000000000000000000000000 - -818E287A6B1168B124FDBBD730488FE199D1918615E54BD5F21AFD5F350A6AC4\ -B135CD:\ -37AF0A0E7436B8C07A5AC8FC3C1007CFFD7223FDEE014F60C8C273F9221D7A89\ -22570E:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -33221100000000000000000000000000 - -37AF0A0E7436B8C07A5AC8FC3C1007CFFD7223FDEE014F60C8C273F9221D7A89\ -22570E:\ -6CF52A5E258BF080D9EF18301448061EEC07582D787D2EC64E8C8BF8EE69BF70\ -16EF0C:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -44332211000000000000000000000000 - -6CF52A5E258BF080D9EF18301448061EEC07582D787D2EC64E8C8BF8EE69BF70\ -16EF0C:\ -8245242C6A1CED243020B11D5DDE841903C49424D4D444F23B893CBCD26B6D4E\ -F6885E:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -55443322110000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -2021:\ -3A060A8CAD115A6F44572E3759E43C8FCB1783BBA9A61375BCE3F6F8C0914DAE\ -CAD8:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -00000000000000000000000000000000 - -3A060A8CAD115A6F44572E3759E43C8FCB1783BBA9A61375BCE3F6F8C0914DAE\ -CAD8:\ -6D1C78A8BAD91DB2924C507CCEDE835F76233E917848CB1AAEE224FF8AE6F3F6\ -887A:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -11000000000000000000000000000000 - -6D1C78A8BAD91DB2924C507CCEDE835F76233E917848CB1AAEE224FF8AE6F3F6\ -887A:\ -818E287A6B1168B124FDBBD730488FE15DDDFE24D6C4F97C9F930F9C527E7B15\ -CE4E:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -22110000000000000000000000000000 - -818E287A6B1168B124FDBBD730488FE15DDDFE24D6C4F97C9F930F9C527E7B15\ -CE4E:\ -37AF0A0E7436B8C07A5AC8FC3C1007CFF904E371A7A59BD34C9A3DC636D6ADE1\ -23E9:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -33221100000000000000000000000000 - -37AF0A0E7436B8C07A5AC8FC3C1007CFF904E371A7A59BD34C9A3DC636D6ADE1\ -23E9:\ -6CF52A5E258BF080D9EF18301448061EAFEA108BC2CD25569599580348AD83AA\ -56C6:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -44332211000000000000000000000000 - -6CF52A5E258BF080D9EF18301448061EAFEA108BC2CD25569599580348AD83AA\ -56C6:\ -8245242C6A1CED243020B11D5DDE8419B844D25C4BD732A30C82E4F0237857F7\ -CAC1:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -55443322110000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -20:\ -3A060A8CAD115A6F44572E3759E43C8FBF97C76A8CD21BE09A0D530FE188CC1E\ -CA:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -00000000000000000000000000000000 - -3A060A8CAD115A6F44572E3759E43C8FBF97C76A8CD21BE09A0D530FE188CC1E\ -CA:\ -6D1C78A8BAD91DB2924C507CCEDE835FB4963EA5500367B0996D5725FB0279CE\ -7B:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -11000000000000000000000000000000 - -6D1C78A8BAD91DB2924C507CCEDE835FB4963EA5500367B0996D5725FB0279CE\ -7B:\ -818E287A6B1168B124FDBBD730488FE1B259DDE3A512332C6F23A80AFF648EF7\ -99:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -22110000000000000000000000000000 - -818E287A6B1168B124FDBBD730488FE1B259DDE3A512332C6F23A80AFF648EF7\ -99:\ -37AF0A0E7436B8C07A5AC8FC3C1007CFC03E12D003BB29D9814128E963D7163D\ -5A:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -33221100000000000000000000000000 - -37AF0A0E7436B8C07A5AC8FC3C1007CFC03E12D003BB29D9814128E963D7163D\ -5A:\ -6CF52A5E258BF080D9EF18301448061EBA65BBC63613F8E283AD5DE78AF98877\ -60:\ -2718281828459045235360287471352662497757247093699959574966967627\ -3141592653589793238462643383279502884197169399375105820974944592:\ -44332211000000000000000000000000 - -000102030405060708090A0B0C0D0E0F10:\ -7F117752CC598A8B0D81D88AF9F9BEC8C3:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0\ -BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0AFAEADACABAAA9A8A7A6A5A4A3A2A1A0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F1011:\ -D1F4418F240D4535734188CC83A52026C30C:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0\ -BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0AFAEADACABAAA9A8A7A6A5A4A3A2A1A0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112:\ -0DE2CDD2C2A5114AC78AACDEEF14638FC30CA8:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0\ -BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0AFAEADACABAAA9A8A7A6A5A4A3A2A1A0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F10111213:\ -A06CCD40F54385404CB839A1D668E151C30CA8F2:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0\ -BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0AFAEADACABAAA9A8A7A6A5A4A3A2A1A0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F1011121314:\ -CDE828C3996137292AE21DAD65526B3FC30CA8F2ED:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0\ -BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0AFAEADACABAAA9A8A7A6A5A4A3A2A1A0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415:\ -75E8188BCCE59ADA939F57DE2CB9A489C30CA8F2ED57:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0\ -BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0AFAEADACABAAA9A8A7A6A5A4A3A2A1A0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F10111213141516:\ -56403FD6ED03F69A2A95CA17B3B3D6C5C30CA8F2ED5730:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0\ -BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0AFAEADACABAAA9A8A7A6A5A4A3A2A1A0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F1011121314151617:\ -5708432F21D05AC571449A7A8F4E1089C30CA8F2ED57307E:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0\ -BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0AFAEADACABAAA9A8A7A6A5A4A3A2A1A0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718:\ -9ABC9FFB364D5AAEAA7849AE0A7349DEC30CA8F2ED57307EDC:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0\ -BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0AFAEADACABAAA9A8A7A6A5A4A3A2A1A0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F10111213141516171819:\ -1A7297CBA8C2992302DBA6F501F602ACC30CA8F2ED57307EDC87:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0\ -BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0AFAEADACABAAA9A8A7A6A5A4A3A2A1A0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A:\ -F21758C331F8E66678332E82F012A07DC30CA8F2ED57307EDC87E5:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0\ -BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0AFAEADACABAAA9A8A7A6A5A4A3A2A1A0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B:\ -34F8F1C5597F1BE62565DA0CBDA946F7C30CA8F2ED57307EDC87E544:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0\ -BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0AFAEADACABAAA9A8A7A6A5A4A3A2A1A0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C:\ -CF32C3DB8C72E063CC3AE59ED7C4A20FC30CA8F2ED57307EDC87E54486:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0\ -BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0AFAEADACABAAA9A8A7A6A5A4A3A2A1A0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D:\ -F418C0D5ABE38D7D4FC79A9D51E9EFA0C30CA8F2ED57307EDC87E544867A:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0\ -BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0AFAEADACABAAA9A8A7A6A5A4A3A2A1A0:\ -9A785634120000000000000000000000 - -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E:\ -581EA1FEE5516AD432DDEBE75FD27C6FC30CA8F2ED57307EDC87E544867AC8:\ -FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0\ -BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0AFAEADACABAAA9A8A7A6A5A4A3A2A1A0:\ -9A785634120000000000000000000000 - -[Twofish/XTS] -87527DDED4D4E85F8DB6D6D41EEAB39C1F:\ -CACE1598319D84999709808780DFB741AB:\ -879AB1F37890ACE3AA1FF21EB403C2029E225E4B82CC00CD6377EBFDF6A313ED\ -6152830450ABA4E5EED0055968E66C81BB6DF06BFA92910550819F0BCD3D484B:\ -A5F270CDCB5D92FE5F19805AA93B7D13 - -69C6D85BB44D5B8758AC5E88DEFBEA0CB844:\ -FB492A194BB05CE9D28EC2AA195722C09506:\ -5A4FCBB13F344844058CF9687437C096E9C20239A7949F1D6D70CB32C5D70312\ -D18C6B27235876876964DB679EF5CED2D70F106C05AE97D41BD464721765C371:\ -CBB7CE96ABD669FA96152049132EC6AE - -23CC70A3559643E9C9401E8DFA6F008EEEDA8F:\ -73F9AF37A518D8AEFB2235169377AA701C4EB8:\ -AEEDFFB4675F482BAB1350D3B9493636A0F6B4170DC850C85A87ABE5846A0634\ -7CCD26285095BE412BC7DE4E8E119CD422FDCE2C46C24777A0A4DE95181279EB:\ -2D251F7A24EECA0F700123AAAAA5EFA7 - -3293E3ACDA035B437F88F80F47A00C140148A52A:\ -0296B4C958FD6580F99A035BAAF87EA8B84C05CF:\ -B54A852A6CC321CC2BBF99504C540556E2E3C282D4D40F097E64623415B4218B\ -F945B103E2C146FC27AF91548FF5820F290B31547D2B53A0268B1886C3D98E8B:\ -D1B43C29AA040279E0E9BCADD74483FF - -239AA6B6496A1B17CAF7EBE841AD4D305F181D0E6D:\ -CDFA4BBE476B7359BCC50CF17B70B32AEF87CD93D5:\ -EDC17F6E1CF8F2BC275BBB35E53A178CCBBE2C8F9738A41A35D208660D5A7E8C\ -1BC328EF7C77653A067F4F2A1FECEBDE4C2F8255F6506A8616AA528755D24F83:\ -0FA23364740B89F399AA68F14B8529FA - -730EBFD04725B43CB168EF773D588DACF67E5BED6D95:\ -C32B428F3F2B3414306A0834B58BC41D17BFAFAB27C0:\ -53F45699D43A9CCFAB5394935CE6B12A0A55B03E1E25EDD563DCC7C49CB364A0\ -264400AA9D590E323AC79A1C6089A8BEFB3A174D0C648DF994E204FFFC7414C0:\ -5EAEBABB5548E2C7EFEA4D0CD5797583 - -8FD9A731CC0E7B316FEE1C6577FF931B392CF414518DAB:\ -0DA66DE3470E52CCC1D808EE0A1619C07163B4FA4FECBE:\ -8001E9D2179684224BFB8E427F90926CF2AD8AB9E52E6E9EDE9FE3728EF40DC6\ -55C805CDF8CA632D3E432255AD41B05013E33CA450251B96B157321E5EA8C1AC:\ -6D562A8DE34420965FAC9FAF45EF8E02 - -1204A2BA158F123A3EEFA21042F6AFD2045E87D92C31C2FF:\ -8E4CFF694676E7425FB42DFE77EEA7329A220517F94B1600:\ -0F151257A51F8CC61D52DF7C5A760E48974A74E7C8DCA5D7143DE3C1B676E642\ -19B797C53930E2AAE570FF237AEDD9575E85DEA692B5CFE33AD7B31484EFCC5E:\ -65F157992CCA26529661CACE1273C0E7 - -4089DD27BC860B16652704D7F4A9F76A02E0E1B672A7AC1CC7:\ -060F3C7AEB4BD9EBA297C677DD55CF2235BE25AFC0C9E3B2F0:\ -602AE17A8224EBBE7A6BC7FCD96EB32AE889DDC6BE690EE2BAB6A61CCCD84934\ -097787103551C04ACCA31718F0999E578B0097D9D1B8C87A6F9DF6F9824DD9A4:\ -EE18423DBA1011F590090CD015651D95 - -BF8AE22A658F3ECC49C8CC43E35A5C36E0E60BB6C430435EDA6D:\ -2226BB0328F5AE872ABBEE02FF27BB60D976D8CB0F6E41833E2C:\ -CDCCF36103F76D5251267F0747FCD883CEB1E04D6A6279A9785FCD1F5017EA44\ -E0C736484D36543F2A992C12767CAE20F5FC73EAFE0EB06F2BCEFDF8B2E9FF3F:\ -FC9BF0B209F90435C99658E1FC6C94C5 - -AD78007337C9ECA5F9789F0669B7FB280178F42D4EC87C07129D15:\ -36E70177507DC786A179575CCE35D8EC85BA8BD331C69718EA13BA:\ -BF053E1B82F633A2CBB8D73AC717F114D56F10612A4BB96B102E4BD4A5A969F0\ -D79AF23D3F42DD80592D372A9D63A58B825B098BA4B1E496710D4A7FEE9E15EC:\ -F655CCF9AE1252B0244394BCD0D1A93D - -4F585C2503E05A292529529B7B1B9900553A27D0B54EB7E311E69B4D:\ -7A13D1E088FD9D2D6BA28F2627A629A2D9899DFD74652A2EA85F3F84:\ -37AE23E7C14765CDA22D97C932EA602FF45D5EBD9C0B6892AA8CB8F41FE769A6\ -C401974FE8B8DEC62F3DB31C8CFCED2701C6153BA0C850D581634F89B6B3979C:\ -A202C063F41692F239E817140522EAD2 - -D4B346483D1423EBF0C37CC02E012B71F942A93FF81600E7CBDF889C5A:\ -64D5A716381E079CA0D942DEC2CEC99E393B41B1FD7929B373F43F4348:\ -26B1E4E72DF299E7ABEE82B7D7B0E726DADD522C38589DD8679328489EAB8B6C\ -B89043B615331559EA181A2E2B5F7A854C20A6703C7E07B2D002D6143812EDBE:\ -CCC952D38B9B7028EE1958102734CB56 - -6E46752B60A968DA60CFB3D3676CEF16E3D5F79EEA8D16CD27CB5A38CD9B:\ -585DCAC0CAE15C1FAE99A282740259A7A55A45F4435A146CA5ACC433124D:\ -ED3749DDCC889F4C8ABBCA8052112B2CB8B92E4E407C1D54281A77499B6D806B\ -3F908358AEE4B09A2809D31A2E27D5A3F419C4B2B282BD4EB084C7F926F739A5:\ -34DD22F9ACB18CCE540C370B332E7FF3 - -47130CDB3F935DF1481644E3C658302E633D9D37A7F4710DED757E069F0596:\ -F303516195129D801F1DFC1DEECCEE47637149AC40233E40F43FA5CA6DA5EC:\ -97E98A5FE136E1F8B339A8C1F1F826779D7DAF3FA346A0B2C5F84AF58CB9E4A7\ -5AC32645A021A4F3E2B35BACFB01C5D5CCC5AE530DB839AA53B426E2C33F6F04:\ -423A6F53B3B3C42E1A4ECEBBF51084DE - -600C9906025E0AD59334C97947099E0BB2A8459177D0DC40DDD7AE343FC68BC2:\ -1D0128E8306E6300506221FCCF90895E537B9B520603920B06CD7699A9557DC9:\ -A9B5B5F8C41DBF50FC1F3D38B1D707CCC69A6F34D5549867C7C0A4C6A3DBBBE1\ -C8D404CCC0B080F6E7897442460141D28C6622D67DB30010F59B49ABF1E9629D:\ -D76612D0ED6EAFF8DAA44F020F31AF95 - -9CB7E4FF0A54B62ADAC4420C0DEAF248EA432A657445D35543329843723797C0\ -74:\ -E1B6FC1A2D707E6F174736104A6256385DBADE3117B9F3F53EDA77D5B93FAB12\ -96:\ -93E92AC5C312CE90ECF68001F76839BA2ACC65C00FEA0EECE17614E2A6FE7EF4\ -9D4FC9FE7518AAA7BD8B634D0C8FC0D8EB4C7F0FE7A3D0F5FE1B3BAA0316D3AF:\ -28260B5DDAEF8184182DCC91B3E5DE82 - -94D5CF74985CF4504592242E956102237A467CB55B0095D58B95CF1FA9950106\ -052D:\ -D163461424F606B44ABB401D579F7F229FB5E33F7C816E39A1C32109DBAC2DD5\ -0074:\ -938CBEA21DEBFF288C30F528F1AFDE4AC5432D391B68C33F4C9035D0372CEC8A\ -DE5019DA1EF46B3C5DA8C526A39665C2BC42075E992CFC50E855AD1A37CD3B2D:\ -4978AB021CFFB63DD7BE72FA36524B26 - -A4E829AE491058EA52F7AB7F21C77B72008DA696CBC474D1361BED9A000817EE\ -89DFCB:\ -B6832399C95AC21450224E04A1B7809EAD1AF6F70DE3FF64CB508200EBAAAF76\ -047167:\ -C6315E81D91E73BCD60B0C6F1F579472A9EC6196243046DCD06BE28152EE4765\ -106516B43984CD0C0EB28A82E9AEA038EB0F0570D438CF95471725D667ADBAD9:\ -0B15215597147F6DE6276713B264EE13 - -E3F4F426006738DA72F7D9ADB5FB1CDB298056874C4653198F817F3C1214CAED\ -6CEFE9FC:\ -F41E10BCD2B6B8D663036FBFA9456DD4C4FEBC9F8E23CBCB128E08A492E68357\ -4A1C3806:\ -B678F7F0A0EC4248D0FBDB133F38535E4DB45DD6C9A041B66E6968E16C2C55F2\ -6DE5CF535B952ABAAA920DA2FD792FCF9F7A66CBC4A1308E47E76568179FC929:\ -96BD2E9E8DCC0172772762252F33183F - -A12AC58A2DA1E8E46F2802EB33EFA0A9DC49270453E580319229795A0788AEFE\ -063E6D4372:\ -3C5A2787B8A4052815164BF3D479E4ED4D1CD69D98AADC18596ADA13C67713A4\ -8FFFFE9F90:\ -12D98553D28D31725ED5B9E8543418EEF9F73F0143A2EBD877BD881BDF029C3A\ -16D8A61B297166D04B82505D1111C600E79AF616770E5B66A68FDB09E95C169E:\ -DC6B3F8FDF82A574D0E5462CC67453CF - -D6589A4DB377CCAC9835C08F5080F3558ACD9694464CC398D9C7D64C27473D86\ -A8498586A22B:\ -C617C6954F649C12E23339000AA3EC4383CBC790A74FB33186ABD1E84B2051CE\ -80BA2107402A:\ -CF73972F2996A9B0C436425930F25E3EE12DA4287F42939493ECA8A63761F950\ -A4E604F0128A739A0D3758FB5AE9338EFF5C76817C880C8011ADB7AB6EB6F24D:\ -E72CB48562C4E43D4D2192E3F03F75DB - -F7992231422C1146A7B033F21487BFAE7AA87394EEBB89AB94040AB854A7449A\ -52E8EBD10EF5D5:\ -AE28F8BDDBBC049D70CC0C963A946473B979E924EA333849365230952BE227FD\ -04246FEC526C5F:\ -70DBB4B28ED1F6A0C9B1E4179B77A40F12EE987ECC0B68525AFC21344E57B081\ -414D3F4E48B23AC57BE687026A064DB122413178E11BE6D0AC831BEB78BF6DC1:\ -BB86043B9AA9A75A24BEADD4E6792DE8 - -2F5B06525F44BB2B66BB254C5B0BB32E3E4A0326D002799752AF95FEA3F26B00\ -E23A098BAA48932D:\ -3CFC16EF31ED7BB13DF8DDDB6259223A1B4A3E5125564B9D53BDA6E3ABEE20C9\ -8E11AC62CBA200EB:\ -DB8AEB4BD5DB4E720C6FE726B16A040EE94BA1D03707EEE67D23771BBCE0C3C3\ -B9904692F44D6F9E0358E1AC7B77C7278D1DE30131BE74C8F9B5A3446BC637D2:\ -39A651FF0499DFA59C6901A56FBC6A97 - -B978223179B1129ADEABF71892901AE53D3F9938145C20FA1E203285F75A9F91\ -05489E48BA79B7F45D:\ -DB31E6F89ECD882B3DEA586CEFB19CA423C7AC3F17FCDCCA797D777EEEBC7D0B\ -ABD66EC813867F59CF:\ -5DFFC1F875185ABBFA453384F30BFA9B16966D5FCDFB55138BF21A9D06F6F8C0\ -636DF1E9700A785AD6327D553828D3BCD63653EAA4D1BBBFA8107A43227DECF2:\ -DBA11286EF4C39350DBEC5D2A933E26F - -A9B3BF6928AA42B50A6682BAF9A8BB6D3B37910968C84A41E5B74B26B29542B9\ -927A27DC9EE16A826018:\ -062DD7B2794B999AF7D50FD542A94B7001531D679DA332AD48F27AEC8DECFE1B\ -743DAD035D5DFC248DF0:\ -80E54D88EBAEC574E103E4F25563FFDAF5E4D81220D9B85D3573806E03417F70\ -86CBF1B166D0EE862A0A4EC490E6C6C5FC2F83CFB4181F41D0A453DC2F255F43:\ -02FB920EC7B12B308979408F416BAB73 - -0D8AE237538061D90E8F152615A97FE1D6F70313B1EE8DAEC98491529D64F4F3\ -FA8C533693E8259396ABAD:\ -433B99CBA9752A78714124BA2A64F5A0D258F6686AFA54F2A60E80061EAF325F\ -B5194F119EDDE9D35D347B:\ -CF4B05B0B683646C40D1CF14F0250948C1DAB60E38772C223DE9D8D82B2BAF05\ -7FB970C6E3A46079AE2525DEA66A121431865B3FCDFEAFDD1D7B73B3E70FCE71:\ -E2A45BCA6618C4D926422BD2F564EAEB - -2534EB81B8E5570D4A046B44B3B98FBA57B076E05C868086E1B8FCF70285D102\ -488684BF1081123C0D31B9E0:\ -409BC2D364AAFEE1A081EC84A86C6B1561F65E041CFE851A6176448ED7D2177C\ -AD56556DF372C5EC6A5F4C8F:\ -7CCC358E0072A30AD111576C52B5995B952B3B5A9C51664A7260E180E5EE7556\ -D3816E376E92EC67CEE44B2BDB16AE1377553F0BD7448C9E8F863D769182041A:\ -BE2B67B1154A7B6963E3E0591421135C - -4AC5B53CCB2D1EB7C06FC055F9F98D3BA2849733356F1DF0F8469136B76D0B28\ -4695DBC137EEDC3498A0EF11B9:\ -B532E2C54D766A7D1E52D9987423E3A91F73D15BAF7A9F48D7CECF2AB0BEA3F7\ -318F1710125F994333C5B95E90:\ -A8C5FC35D228348F7D3B4E829991D1D84101403791AD06C394492BEC0A370B02\ -479E9C3F1B05D48B42C6A0E8F53FC042EA53308E003E0F1B5888AC8F561C3181:\ -DA9761496B6C239000EBD8ECC8B4FECF - -D520EBEC3DB3DD896EC62ABB73A83FA1C1737489027B899B6DF710E059C83C95\ -8308DE975C842135CA5CA47D8A31:\ -0C1D35A0E30671AFD032C1077EA17AA3C27AE0E995FB2EA86C784E2C9F9F9814\ -BE6A0082B0937734A8E920663893:\ -03A7C00B80FAB58206F8E259ACB9465DB03A4C9ABE7A441C6B773CBF0520C597\ -98D4B869EB9E14960190968E1B2140ABBC6A33F96133371A963C48F92A05BC95:\ -A995B2989E68BD0F03630FE07F6995ED - -44A109A07472C7B6FFC8E5722476F8FBE1FF51E054290EBA3CDAA59748E2E045\ -D0254AD475EBC722E773A7B3D8E6E8:\ -4ACE9B6C8433304C631B20D965EED18CEEFC51C20687C7EDDFDC2F40D301BD16\ -2177459D0491C6EB5D6069A1F787FF:\ -90A1BD357146D7D0F4E5D667C5A0D714AB2B0B34F97B9C58664E695347A9A845\ -8AF655F3C6CCF70B5145AFC4F7B783BB92EEA10ED0E187DBE595CA1803799A4C:\ -3A724BB5719BD11F993CA26AF712ADEB - -3937B23B14007CE4ABB0327FCCFBC35A7ABB3D9B7F7E7DC8E4A0A170D3F3CFCB\ -C6C02A7D3C39F664CAA88C7618F99C23:\ -24FD61C5A38DC471B0A4F8C262AC142F2F927DCA9060534AB1D55AE0F4D1BB70\ -EA3F96D6974128B8F687D4D13F414421:\ -FE6E413A1EBB13243B96E3FB6044B6E19101DB311FC854C946B5DC8A244D7B03\ -68C8FCE9AA66AA3A569F391EF4037C9BF4C19A7BF403095FB1174710EEF9E076:\ -8C8C7624D029E0BB9F8331496B8D7136 - -FF1573C198D24FB7A0691B8173820C23D2F84A471B1B925B67A74FE91A17C531\ -750DA50749CD1920BC10E32833BBF0ACFA:\ -F76D6A07E1960422CA8478517509BD11E68128DD59A4092DC1D10B09742F35E0\ -9142463439259C5A136DE33DBDCC3C509F:\ -AF358329646F289900BE6EBBDB412534186C0C3997E614C75476D0FB119C80AE\ -42D53B0F295A2C15141D25F3063934E4EAAEBB50083CA2E905F5DC4209619DF5:\ -D5133470ECADC405613DEE0055E6B77A - -A2F02C43D4B9159A23135DA83941AD6793C58E41D1061C5E16B87F0678F6A2AC\ -BC45FD6BD7B2E807F6E187B80D43A5EEF0CA:\ -54679F2C4A14C003D9B36DBB442FDBCC549A89F728AE045BF56A7F206C83BEF4\ -7386FB383571C588E18F1C4C363B954C4159:\ -2892CFF943237F9E73CE5941C7DE9E5214AEE06B5E578EF25B0D3345A7F0F0EC\ -458A658F7F5AF65031D37A20D9B391AA8FB94B7713F347AC5AB5855A6542F0CB:\ -BD1B84BB5053F74D228E2782598DD29A - -243507D287EA4EAB58BD77518A0CE1B55E007C74CC7EE5056329B2B860CC0558\ -41AA7D331F16E262A96C2F8E994A28C0181ED9:\ -4EC40146A26B8FCF4A3AADD1B3F6526C8B648913C77E96192BF447C070DFD929\ -7A054B77FB461E821FFB092ADDE1189B69B6DB:\ -4FA106BC235B28235DB9AB979E7F71664A7C62F417A7330067299E705A76D61C\ -0BF79EE9319B8C1FB71C2F2F37A0C7E024FC6FA17F56A38ACDF7C0FBACE5B292:\ -D18F1AD318C22E6C05912D9AEABBB2EA - -CFBC2873013B2B02FBD7CE364C76DD5F2D4654441EE3DCD9F94293BE51A8F8FB\ -953EAD403476FE61E95B5741D3AD81DC7405AB52:\ -B6C66B387A0105C4265D156FBC893FDB474304D3EE08AF0FF97ABAF63088D6A2\ -D7B9E3705E656EFF0F895C272121DEB9E2FFC36F:\ -6D681CB65CA41C05CFEC4960F3F5F3F0298872A95D4F975C4B6851A44F8485BD\ -89E0EA5C0ACFEF92DF354629D1853F965A8CE67E6C0B8A76909116895A80E852:\ -815862ECF3B4887043C666145C0818C5 - -82DF1F023CCC985D6206C054B7615BFEDF24B2D1467A801A7871203BC685C0A3\ -EC1C5632FC5FAE7124CE06CC3EB62FF6751730A611:\ -BF743E9F687258C81CFE899BFFA0B444F87E04C9C69448FD5344456CB895CF61\ -09847A416F3DBEB36532D7A2C80D817287CF4E5ED5:\ -A6E4E6A72DA0E0FF1565D455602541F82E48FBD2A0C6890C33F260FB0AD7DE92\ -A77813F5616126B361181AF76E5A6245AB51DC7B6EC07559872AECC439F0EA1C:\ -9AD3179B5C322FB487CFACEF57DBF199 - -5C1AC7B74D982C05CEBC5F59344F0B93B9ECD91E5E37EAD7B12B85F1D2DAB7D2\ -2CC0DCB4B8D8D98EFE072992C511CADE440F908642C0:\ -7B1DEEBA9C9FD78A1C89C2447B1F97ECDD6B79F0E2DA3476A9CDBAB386F17582\ -B1AD23A7270754F3599A52EC24180B2CCAE1CC2C50EC:\ -0BF38567AF2104AC31773DA0F604B7D158739B09A0BF254A3B10A5CF5760B261\ -945D8E97D4F69B76D518E811D5CA8E9B0254F6A25D622337CB8825CE13ABFF76:\ -1BE92DAEB9F5905F079A53A2964A5508 - -BBE9F28370C9A996551C5C19212305774B87222CE6E1F6F99725F4FE8D4E8403\ -35C38C5590E11DBD94AC47FB7F62107D031ED419EFDE6B:\ -7F8F9B5C3C7F69B2A484ED8C064255113A923052BE94258E1BD84096310A354A\ -27AF788DED9356966EFA62B0D4DD93F900D9DBA8FB400F:\ -241EA8D3BC2D33DF661568F4C44A34C4B0330DD870C70D6F685B90145BF31655\ -F0AB4286DB11015BF85BA9DC9317B50AF5B277A1C1A39694CF6AE39CF61F68D0:\ -853CE9548BC247D41B6F38646F973A6F - -DC7C88B45E65244DD6F8F3147B01E56D28B616368F0CBA229710A516D6C82390\ -D1A7B43857C7F02AC24770A47EDC17A200199D1E9A275501:\ -3321E398240903DBBB79A4AF2F5793DAFA07901E363FE4258F26D9642EC3F9CA\ -C840C0795DC7B2E70FA5EDEBD2800ECEC8ADCA623E8AB35A:\ -515CF69DDE4E9F2B8C7265370EA11F1B676797F387A6A8A2294FD1B5BC7712E3\ -3D86BFBAA422AC1A9C5B547A863ADA9855F5FD46CEF9E5A7BD223D9AF88B7208:\ -52CB2BA31794B8156F37B26C7B202090 - -6848311D2BF4EB014DC70D6CA324E920531651E057E497FF16F92FEC1B34AACC\ -547BA516C77BE2880EA2C47A6160784DF51E752B8198141C24:\ -73C7312F7DC845D40D4ED52DCF54CC0DDCDFF58384421BDA6CA0FE40DA2BE106\ -EEFC6B0C290003ECD311FCEE924C4B58F61A342E3E80C36A0A:\ -C45611B1632B0F5B5640607909B12F29F2C750B389FD497B53E2FA52DCE1F47A\ -E3396301EB37A9939FC243F5C30DF986C713F4B9E008740FF647D7956E9040FB:\ -85CBFBD82D058BC24D6D4AE129D59199 - -1AA23FE9ED1451366F7262376813FEFE5C0F9E6F1380D4FE1311E78E5820A43A\ -F932181A7C7B1FA4DFDED6A45447FADC2D853DCEFDBA64CBEB56:\ -DA1680F7E9504E44239A8C2CE1F7D2DFB1F0A2DDFFEE822A9FEA7E66FA14A6E7\ -93A0ADAAD0529272BF5209D579542B5CED8D1EE2C38B762FE50D:\ -597457763DBC8FEB019C7C950FF2BBB4F912EA2878F7FB3CCDE8B5DDE3B52B9A\ -E8CE8166257B905DD395E5BB095D2779802A0BE02935B5D702438699135416AB:\ -5D782A2E109AFEE2965393A90578289F - -A3915C3F91218D64FF9B56194D8CF0733C97BB297C08761A671E631F20F377F7\ -0088E5C9908F28F79573934050ED744576DDB1A20DC7C0B6D9E825:\ -3AB87C3CD8EC19EC119E8900BCE7C12565A0BF5FC436B8A708687029E188D152\ -FDA2FD5408DBBDD7C7FFCA86CB08ABFFA50261FCBD40BCC984874B:\ -F3CCC9182D83F5F87A49D704069266B2F72558C677AE71C45C16106E177AA820\ -5DD6DF212B14462500171832E694C3F7D46FF6A552FFB3D824083FB6C9E79C4A:\ -5F6E60F9C0DFD3020FCF185ED4189461 - -4E81F4349A7C9185352FF1FE57719049CE0254621C4C1AE4E5379C318F95AEBB\ -9F3808BCD2366D5FF0FFDE14372B99D8C0E4E5C923CCF744F859162E:\ -F6EFBECCEA54D5ACA2231864D991218312C56BCB326367F18D0F881F42D11E50\ -D58D2EA2C005C716CE4E4B7BC9FFE6E2C929F56E16C5721EBA40F2AA:\ -3CDDFBB2D5225D35EC2581BE66082AFFBC8E9FF582F7D1FA3D1ADFD053CF4220\ -E0D21F803B1A5CD0197E134D117AD04C1BEAABE446F3C62A9E1DC975BFFB3C86:\ -679365EA67280B9E3A4C09806525972F - -B85A036B83B7C4FF91CB7594570A26AFCFEBAC804B03D594F6B4AB5848B12D65\ -1E27945F7C618A94A4009D5D952F06CC900350F149C906275ACC6ED0F8:\ -C467DCA8030C15EB8FB854C7A7E94AAD6014E431AED39DE299A19A2029A5AB07\ -089B030ED15C837618958C0C2DE842BB4F71AD46901F6C3D0DC543BE83:\ -3FA51F16A65294B2AE00B5C54A4F50B93B33C74B8A3E49BA1ABDD247B003F831\ -8528C53203968C2031D447432EA0265053CA6CF68E3A8F24A2790E3FC5461AE6:\ -A2AA2FB62C3236218015F9C276744187 - -6612182A789ADD553AF5490542E4F86172E1E52230D68F2AA40411104CCBE58B\ -4F5DEE2EAF0663DA6964E4BF96BEDD13D38477B1963E54F5F704ED46FB0E:\ -28F5EEB48A13E47C117C85F3FD66DF79FA6835F6633AEE6F02745CA6AD639532\ -2F9702F174487825F577934D54EADB6EBDBEADDD708F831ECAA6C2AB5862:\ -FE57C8D7369A1FFF7187AE124FA873C732A4439623F53D5B3D14383BCD48A29C\ -2B80F6A617F02407537A1809656CDB008989C44590C2B2299B608F5085BF1FE2:\ -9D8D82534C5EA4FD304980B1382D54A9 - -4FAEAE77D04AD3E836759258F437F8978958E210E69DD8FA6919C0663D654FD4\ -C58C4C59B1384469576ACA2420FC912696F0611AEA03297601E433125DF809:\ -318BF89443B7348EB32F1DBABB5E1ADCCB436E3E353088740CE729E14BC6848C\ -B08A602F53EE1F21FC03D868891A537B805E52B8B4979E03AB97746616ACAC:\ -AD3703990E0B3643EE0DC3AD77C1085E927E0F9A190CBDF3060681BE7E0B25E7\ -6AC7D43495CF5501C9513F8FCD22248A134A9DBD0295AD9674EEADCB149405C7:\ -E07166F0400A8ECEAFDD70E2ADFACE4D - -B94FF2E1D9BF4D42767047EC3FA55A84CC17C153E5B437B9668C8AA663B87B97\ -78332DF1C7686850BB846205211DB4D6EFAF5F4A4648268E098D9C0B8B87016D:\ -BD88EF97AC43746D688638FBBD64AB6AE61E40836B7847037507F67AA7DC00C1\ -D1E2C09BB701933B94449DC952B146699157AC02D64F506DFEFB2A0A93DF8C3F:\ -99D6EEC22AD27ED24CC9FA9CEA3F5629F62CDC324984C068F6654266752870A9\ -FAF5836B6AFD88ED3AF16D39295FF9629F23D0CCC7BC591058F51D52A70E4363:\ -E50E8FF77980A319D57FE313E8BF4A66 - -8A7681D3D79C9AEE5501FBCF56F4FE95B97DEE4895C3353E5ECBEFACBEF0DB93\ -D2B910671B60763CC7A7D3A4B8ECBC740E25BD06A8AC2D9243D0CA789E7680B4\ -23:\ -90501B65D55AC072BF345C449F999BBB0869064B8370675AC97E23DB3F393E4D\ -A98815A23AFAC4F94AD8F947090B6086441F6D394EFBB24845DCD941B98C17B1\ -70:\ -251E92FDD914EAD37144154697D3CDC0E2165FAEEE4ACEA216154E83BACBAD25\ -191A83BB8207F7B6C69618AF5C07DDD6A7F699F8EA6D3868DB38E2CD6E64392D:\ -664A67099997F33E28617EC42B758767 - -1EFB114DC234795EA397ECEC44DCCA39B40D6AD3A109D86033CCC719A447A7C2\ -66D5D32E9A7EFD5A1DD29243B2C82A90DED0E847A42A03A31F58A9D6AF12B1E2\ -B0A9:\ -2517175AEA1CB6A6E8458CDF2F9C03BA342D3D2E393D1F4B0B38BA716EF89E4A\ -9816E6D5B0CE76C9B578228BFEE1DC258CABF7B598A3AF03661AAE55DEE8D0B7\ -91EC:\ -E405257B7EDBC4A3C23386FEC7C28FEFFEBB62A295F0150216A53D55B4AE3A44\ -06BCE5AA211427C0E93E3FF196BB57B985CF5A5E96C925CC97B659B36C5978FA:\ -B8A48894E3651832B555924C677351AF - -4230874B7E9F676A87F3717BE8A10810262BC43CD63977978D433FCC74AC883E\ -06E7FD2BD6DB3F7B967DEC732878E580E55BF49CFD2535794779DA4BAC5A49E1\ -DE301F:\ -E74F4C437EB7AC14D15D8622F471E85785BBBAB29E91EDD564E235ADE5558959\ -D93497A2A7C77DC12B3179B48E2F972189B9A45E251B089A1FD390A8AB12D5B7\ -3530D0:\ -8FB60ABB22FF4DC7CAC8564C615B91E02C9F2325DCD6AA9FD73842F1531B908F\ -C26D98F5BE709509AE9BD49B405B92E735B1121FCF9AAE3D35EA3B53514F7797:\ -AB83433633A0BB1D893A3E4DD60EECA4 - -234A9F7E4FCFB807030F2EBC22E8BF5B13F1ED9F18A9BE48D5FCACAAF5BF360A\ -8FAF99FE464A7533F1D5F0CE9F769913E1A6D6F716C35FADEE60E2F0EC8DBBC2\ -CD7B1D23:\ -BA562E05F090F443867B73995EC3944DB57AF5321B5970B0AC88416D3B385E0C\ -CB8D2FC1E65B9561B05D2CEC32A42CA4C793F725FB974DF417DA440D0FDF77AA\ -C109FCB5:\ -4399B7D0A38243427C7289B3670464F8F98A073AD43625126FED9F58E0C8CCE9\ -CE04BD0BE7227F7C49862126A4AD12B730BE3ADBD950568FCB1E35017062646E:\ -00FEDB8FD80D13375600B5A4BFDDD16E - -78EBA6537E61B5FB5E0AA23E846AD8A82D5A025EE33E2B41A10A33B3D959585C\ -518AA13D44C22196A2EF155800C6A59F9835DEB84F4729D711DD67E9F904FA89\ -EFFB4C4FD1:\ -EE67F816C0AD3D8463B2717F6BE5380E095635B1B7B012F7341FAEF8E0DD9378\ -CBDAF39280717A6BC7BE899EE392ADC6AD8B51C22524E42B3201DAC4190DFE8A\ -E930543DDA:\ -68A7CEF97894ECE9C5209DDA624DB66B94AA787F754ABE48D8313F63B44CFDB1\ -6894E32322D3220C5AB95E4C41E1D92A2AC1BA241F9B37430D6C7157F618BFA8:\ -F7B37973DEFE48BB5D97AF65493FB2D2 - -5214D5ABD972A93398C1B42F6F01D3E6EB2DA81F05B93E3C2205DC63633632AF\ -C9C0E4D1FBDD06742194F0E0B4943F33DD3A00B8DD86EB9AD51B88E236567C2C\ -8DEA51535DD9:\ -5333EEAB97D891F648853CD99883A88E808427F9D55D3F9E13BD8406C61B34E9\ -492B02C19886B87A5FBA82F09FD86452CF9168122D7D01A8FA8A6CB39F7BEDCB\ -3DFE26007A3C:\ -54868B0E7A3981DC9445B3E12CCD98E212E91BD49324C5E7D05EA30C3784F33B\ -676AD02DA26B733047689B0F53120F10320AC713DC5A1CD8C1F3DDD981DB00A6:\ -5C90CB0E56FA07471F9E5CC8011ACE2D - -06C8226B0B8371FB2273BA54100CA17D21C0731D136F75D1AD265C578137F474\ -62805C80BE97601DA8CAEC4424959FBD36E22EB4111E414D92B4E87D450BD26A\ -6F99ADE217E4BC:\ -239C95E80E86CE6D2E4418470D0E6A8B0FB31DBC62C525055A73E4F1CBD3649B\ -652CAA386798A60BC8FCE0F8DA943EAA8049DC99C70D95C5864DCBFF171C0D92\ -2E95B6F6B6978C:\ -BBDA2A40751D51E4BFCEA4B3C182AC2EB0CF036DA11DA804B7BFBD6CD1A2EE70\ -FCA18FF3E7D6284B9E129664095D095DF425263E2249BD0CBFC7F9923D80FCBE:\ -0C049895133FFA08C805833D527A1C17 - -2CFF692A648482BA14A363BE84AFDE0F16C144DC2963804F78FF968EFCD6D88B\ -4395A1EE7920608D09A245FEC4ED81CE208046F84D230E1679FF0ABE17C54D6F\ -32D0E72AD9672DFC:\ -7EE68A642B84F28DBA809F5C28E250D3942DA8FA013C7C6D0A917720764BBE25\ -AC943041E47BC27E54E3BCBD97414679F75C3CFD6C9D5FE700E1D6721ABDEA30\ -472920AED086D76E:\ -ADC43AC858C693FDE13E931DF4EF45455A337805456DDFA82C5FA473652182BD\ -013B906D6DF6453D5534C303CEDD067AABFBF76EB4240AA5B117122777DE8883:\ -C3614FD41E162C520FBCB77AB47DF3F4 - -8A80B592D33E545DB579B8DCB75B1BD90ED588A3E924F91544E34837D36AF75F\ -6BA032D5C4933947AD375E76C6341738EF027320AEE95DDB6A13C187BE064A93\ -5D58756D100CCCE6BD:\ -357BAA66BA0464C001C1125D4F641DC9438E8EE56AAFD04C6F37F1EE70B5FD8E\ -AF364A1740A32E8D0D2ED3025C2C6A17928C9408456F3B5A784B1F0D0897B310\ -5F21FC5D57C929A730:\ -59278088106408777F2CD7793C7D50105027126DED275EFD465DB3DD9D68DA47\ -C22EFDAD216E508481B1467E08B934571E1C59E2EA60358423091972D62CD128:\ -D83A06D830FD4DF061F8D266158CB912 - -059ED050E8D00B3D602B6AACE7D46745CD4A38FD6A870FC77A81FE909A86FA3D\ -955BD763C644DD5B9D70B0D41EE1BD09ED91794758FDA6E9B547A3E7C68B7456\ -B4A680D673A5D82D2D45:\ -11DB33755520F3C54733FD6F413899807A4D6755B140E50D8C73AA067CB94ACE\ -55DFDEA22C576B3373290C50D2FA8C946DC27377D69E6CF65D6FB02EAA00A79B\ -3B40DF79BF43723EE613:\ -DA93A3852F02F7366D9643C1B576678DFE78161B6DAE9D8F20B6CD75D51E9709\ -493E76F87D0C6A11C8BCE3378F058C44A9A440A5FBC60DBBBF5217A53671E5CF:\ -1C4A77AE23392121FFC99E9851A197A3 - -B5F5508E02190B1467FCB3B07FD1D475DDD3EA124169D31AD0DFCC0E245734B3\ -4839AD37C0B204363E62F922F31CEA7C588E576B7CF5482C7F95DA81F2C26D17\ -E7169D52462B3BAF4E9690:\ -D63A3673F958971842DB40A48D5BCF20B1C02065750A30990915B2F95F131BC3\ -04FC3D9BB330F6B10606FF1B308E46050EC2252414E439A97E13F50348C6B789\ -044D579765CE58F8B7DF4A:\ -82D21F701895EEAC47E72866E78AEF8A3D0199F250027225F33F5A4A5CE62AEC\ -E808B34F8C9948B0E9740FC9649E7AD11D66DE12025B05FD60990E0976FDF0BB:\ -517117640B8C35E5172D3F968467FDAF - -D271157E98D0C9F8CCD732C971DA382ACB196240C3BC619DF0F50A5C0962C834\ -E5F8A3DD1A9B1B7CE5606B0D70BAC6B706F720D850E8CDFE701EB760FECF73A0\ -03A89FD176DE7839A8E35511:\ -EAEFBF1F37F585CBC6BA595CA7CBE2549A80A42CD24C0DBEF325ACBD3FEC55F7\ -72F42DF254F75AF75E8288F38CA6A0ED420947C8526B0FCA42FCAB2F1C72400F\ -D57958C6E459B8A2040713F7:\ -7C969F67ACFFFA400E8FB8ACFE15FFB497C7568111745AA3B253478593093890\ -04DF1E681FC2D20293C52CF26694B00BFAB0AA144980942A8B40A96943180E12:\ -45F487446077B94F9A60FBB4BFD193ED - -BDA47D56B2ED81452387B0720C5C8F03894DA74C549E74974897E50C717C4195\ -A328B9B1E765D227F207BF556FECC2B8B291FB83E925901CD7DFC71C70CAB13C\ -C285D880E823C0E7A638B71BE5:\ -ECDB5001C85CE86347836423724D92666FF5D9853D75CC2CB185A5D3F7F7AAE9\ -4BEFA01F0757E62C66AE8E37F53E9902931FF053A799C7866B5CEE5C37D468BF\ -6CFE040D9E2546107C50425901:\ -A16A48F88A94FF148D8CE7DFCC6165850FBDC2D218C4D7B5F3158B6D1E82DFA0\ -968C72F6D92635C9951939ED0C001700EA386D5F603270FA8F71EF1ADC700E76:\ -6F229479AE496EC175A4B6E2B0D15269 - -5CCACDF79AE2401653C5F849D4CF93E906F0087E0B22789F3984D244E1EBE94A\ -9BA7200364AFBAC2577513ECF320CB80767A5776CCAF2614B73689910CDBD481\ -E272293121F4874702BDF186FE83:\ -F649D325261C63B0A0FDE9423F5946B42607691159B363C8617E96CD9604F3B2\ -16C0524DFDEA001392CEE80EE08171EF0743E3F1D1A43601D3A74D06E1625074\ -06DFFC75436E7579D2A821B2A0EC:\ -5A4930305D8D82633AD8DA1766AEA6637B75620AD0BA8AFDD56A9C5E16EA1706\ -AF396F41A95FC6028AF36876D9BF447BBDAFC53B172358FFAB3F56CEDF1B9F8E:\ -F726778E94B38938C9812EBEEDFB0B03 - -74369DE551FA1B9E11CDBAE0B6BA6001186651EF911FBB16057C407BB41B0CB8\ -A41561A6F27DB865669D388CD3ED5D973EFD9C419B1C57F7783E96032313160D\ -4CDA67FB780A8E3D3D050AA5F9A367:\ -E6FC9552C33EC021204A1130420D235A486200073044D81432D11425C2349973\ -4CF3C50E1A984CE551F8CDAD58A78CC912D1AC1AD7995E2D90B7DB1F6573CF3D\ -BD69F0CE83802AB3AE158B5E840FC6:\ -DC5B30C8D64DC4660AC3C12FEAB3DAADFDB32D6933704DC99EAD9D7674376557\ -50A92F0946366591427B44A9D0B85C775C5AC84AA8F046E90997722D16B8C5D7:\ -6519A204A9F70C512C7BAA559D33A144 - -084222CF351556DA67ECA0573C732D6644276417B4E354DCC2D95558793D39A6\ -CD88E30D1B6498E259645B6BC96402124A1431CE496F3886DCE89C254B5F7772\ -8DBB5B00EE2F72C43BCAD6DF403BE005:\ -8C2CB2FFAA5EE3698F3F6A6F643E353F15BC289A6ABD49F80CB182E486DC5459\ -B9FB200EB999C183DB0FB73F7F56612635368DF4B0ED15CD3F66AB25F8D1F50D\ -667062231D117A6E47333A51EDF0899F:\ -682BF9DD19D9AB5EA5AA153FEDAC8A39E7D00068A45E2284B7A8D79F10A773B9\ -57768A3EA33ECFE9125B8A895A8822E94345909F88E32A244A2BAD6A5A5164DB:\ -D894D0F08227AEEBF9C3E0B57A8D4820 - -69C47340932A673CE1C038C2BBF7552800E0913B3A259633D6F1AB794B87A8E8\ -3ED88AA3B2A3C97E431316CACE38436B662F83AE7A1A3E967F4F88ADAC5B5573\ -680CC16700CE54DFDEDD0566590E743C0A:\ -BAC98D139459EDE20320F344A88DF6630F7CA91379AC5E5412A62350A7842B63\ -7A4E7CF2CAB9D57C072E2427E3DEA7115BA201C57931181EE3E6FEC90216B221\ -3B309A477DF138D65B10FDA75B3E87052A:\ -26CB295FDFE6C6F5BDFEDCF54364F0462BB05F4350DF3405EFDDFF3C4D151310\ -3FC9785FD4EC4635EAD09BCF481AFCAA0B3CDF3399876B8E95BC000D7CEBC853:\ -6AAF5CC4BEEAD2DD0FBE36B28ED921DF - -831B7700CDA1CABED51C0F73429620EC1B4E4FD0A06F15A1836C9248B7009E2F\ -2F3BFF094B8DDE74C18AA00EA7E9439406B93F8394CDCC2226788A50D46050CC\ -060AE597B8D35A5039999477F260D06A25D8:\ -C74592FBB612709C89DB77770295EAA61366D18FFF8066321EFDA8C662111132\ -7FEBBB648516F0A29C918AF6F071D22BAC307ED5B718EA614A2E6B7CF4CD7544\ -E6D674B4F5B6C46A60DE5EA2CFA6C7DEE23E:\ -6F7EB9C437872599AC225B81AF4D3E0A756879FC1E28F1C73682CC1029006B1E\ -BD44A387B61D902FE074D6A3DE3638C00F5FA5BC208691AEDE541CA0D391DBDB:\ -1A44D89FDC6ACE155B4BFE243F10DE8E - -33789651D5555B1E0471B658F4F27FDD7AECDC0689C6E7264A16686A36298AD5\ -75796787C2583E1C2A0014CC7E919D7B8353CF17A757E7CA6453ACCF4D7C308B\ -8028BBADB91A77025E70C649FC2C04F83CD40D:\ -2F2F1BB3237E681B358610182AA49093FC5949D1F56184B73C449E9C4A7B49DE\ -F117EF4EB4470742B641A5015C394E0DCFCDC615CDFB611D793E33594E8702B8\ -F10390EA8EB88C8A6BD800C599F4E51754E287:\ -706B6A96E33936778E1BD03F76670296DACA70F85C5927562A871DF2BD72FAE2\ -01F4649E170EF53B3D1CBFDD8A5837DCAB2B696888DE28915A05A42B06A205B9:\ -9AE3D26ADCF9942E551B8C4507502DA3 - -EC92A03B6BEB1ED3778FE286D67218F04B08A5D959650F4E71903395E03EA0E0\ -E8D4CD71239B11B76175124E12B02FA9BCB4FE8FE1059FF52A8ADF55EFF45DB5\ -122C4ECC491112CB322577357572755BBAB6641E:\ -17A3482630F3F60ABDA71B0E5393927AC76DAD8A4E682040CFD11BBA17F886BF\ -E7017783962B9ADDC48C19B4BBB4DEE2587C88AE14AB8D177494E7FEF799B576\ -44A141AEC0EF5F94D0DAFED9F3FB52F3AE0ECE14:\ -04A04947CF609691B147C8E066919D66213DD476F7AB32CF7A0E8AB1BAAD3456\ -54567CCECF2F047EC9D231BD6F10FDE57E9BFAE2B49C83275346237C84597DE6:\ -AE5685B285A841416C31F15143C0C59D - -CEF0348281F329EF6DF71DFE854E53586FD4B45285C4CB43A53C3DC9D50E60FB\ -61E1672BFFEB8583D347094456BC36D7BBF7DF768B3D5BD3BA6E776DDB1A3DCE\ -C5FB7D141412310D0E351FD48EABC2AA3BE8C8B0C2:\ -3F69A54E80D8B2AF5D85AF0347A64ABFC4482F41BEF98130757E48181EA41F7A\ -51D4BEF271B689AA66BC05AF745F9E85812C5093190DFF5B68C2C5623898AD60\ -4094DC589A1875C29605B92524EEFBC86E2016982E:\ -750E96CC7ACC6D0C1DA571E789A06C6DE785C8EECF85D8A0E603368FA5CD85AD\ -1ABA7F2E637324E5049D4C4AB34755AB1107232223CA6EC5DD79EA8B97910CA6:\ -6C5ABD43FC283BBC97F077A652EF5E81 - -82EAB935704E1FB44EB9218DF21EFEEDFD13B43B4014F03C9CD455E325851158\ -04A0ADFD1CD1D8E77439B355645807EA1C3D16187F6F64EBAF06EB653CFDCA86\ -950F26E92B284EF33AB0F8AC41324D0908DFEF079E6C:\ -34B61080088B2E6DCEAD63C9862F7544CA06B8D79F5A7F646663D040EF680D89\ -30521D1B0A798601365294B22C46F61EF120BBF9579FB9078E0194488CAB18B2\ -DDB299C062541EE99F0DAC83E33264B5333DB8542178:\ -D9998134F50ACBD6A3420AB7A4FCDCDF88C23F16DB056E96100864FDAECB8137\ -748145886DA377A655A24C4164DFA69DE49A656396B3FF2288B912BCC755E0AD:\ -0979C201CC8303344E382C4C569D031E - -67FED42EF9AE9A0046C28BC51197B0E2E545C60506D2109CB2F6D7F6BFB638F7\ -7FD2AB8D53927EF279C71D7BC04AEA3D39EB5698CEF1CE0E57F91D8496D001B8\ -A2F077EE7F7CE7B687D7091242435B6576D4CBEAC7B03A:\ -52BFACAAA8D0DC7725BF5435AB9260B2F7F073CD82A9491497154BA49F86C821\ -AEE98D6D8D8EB83C26349C0E9DC96CA898BFA28EEE52E5531267E7CE660FBD88\ -BA22F8A493435ED4C2F4486F064EC202BF76926C674723:\ -9D9BBEAC0A2C8E4795E73B510DD55CD2E720F0D1E9D0118E6FF630C7C601922D\ -D977CF0E2730FCD5E2D8A4BEAB437EE498B957E1CC828B59F66BE4BB60D3B264:\ -A5F56DB37AEDE6718159969D08165A76 - -D72987295C9A5D94E9886D46B87C7143D092492C63EC64C3E21965E8CCDAD257\ -DCF359330F96AB8B833FB25913B887636B9577F8B2101BC53409B8F6BB504FE6\ -2920242ED521B9A718AFEF485C1E62862FA83F8E28E91BF1:\ -DF342A4DD0BAA08CC0E18947B87EBDEEBCA73020CAA453EA3E84E797101D9057\ -865949B7DEC30CE8BE48A5B5B5E833732F1A8949EAE503EB4D2C443E1C5856E4\ -C952ECCBA6AAB538D30E53733CA522B8486D545DCCD7FCCD:\ -294BE26313DB83B29C4B8D9C73CAB785B355720988387D5B228797B4DFD9605B\ -115F97EF2D995CEC01600B7CFAB6A52091413D59575A2C2B9F51A287C77CD824:\ -091E39C65CFBE2F0AD505FF4ED63D143 - -D341BCA45D3074B2B3FAED471D5317ADA625531F74A8A873DFD7BB369827466D\ -623E5B43387AB0119634727C4602B35E0DF357186979827FF5A683AD3F21974B\ -104F59416EA0317F911416373328DC9899ACE1B9E83D62E66D:\ -012F2A625D71B3134F02C097BB85CC5C51A58CCD1B99D95EC008E5A055B6E096\ -2AF2A560FED8948C72AE2E63CFC76D8AFAE95AE849B2C3BD43B1689150257868\ -70DD16DA61B8E0EFF025DD0E68AF89F26067F1DF6B0A81310D:\ -851867621DD8F9DF3FA677494C2CB7DAC785F0ED8CF176BF08522D765408E42C\ -F01504CA8A93D38131F26A3AFFB3090312D60EB378D56AF2A06C271B7210A492:\ -09E2389F3E337DCBB665CA5C34D4B46B - -8A243340AD7968077509BD363266DB666623A4E1BBD2DAAB6DAC8521971D0E93\ -247ADE3D67AF23831EAAFC9403FC4AFE839A6CC9216B51568D3D264956372401\ -F7170B5FBFC0A8CB77706C9E35E6F80A6CB72063019379A4C235:\ -18706F504AD99D5B571FB0F6F31F5500A1EB7D46D766601E32E6FC45C094EE5A\ -6A1B8F7D10945E841428141A011FE3705AF7D4DAFDDE51414196547E07233140\ -95D2D221A57BAEE5AD50E4DBB5AA09100B0DA8D2278474050D66:\ -AE3DB29FD329B622362FF2A2C42E9728E2375896A4C157E45779E6E0A0DB280D\ -B9DDD0052B64190F7A7A9C00F5ABBC58402FDA12137833352CD9CACC6CDA09A8:\ -21AB5C631123C94F3BDE4A60B9F7E4B4 - -EB1624A74A857410F3538673C4D2DAC096F5CB949189984EE11848E784CFCE39\ -E96F60B8B899B647147D41C042E15F8250DE0E1F452F85E646B83D690A5B89A5\ -27ED998CFD4C3781CDFC812811ACFAE0F1425E87488634F8C474E6:\ -351D90C548894DCF668AA88041F06921F4B46907C250DFC69188C10A349CFAB6\ -F2659DE30D446CC95119B73FD8971BCB19C25870BBB8EA51D6FD956EF9F48EB8\ -428AAF3EEEE5C81BE2660EFF821578B99FF23C84A7611812B40282:\ -67748D70D9D72E6AFB14C2819302D08EA6F1F23EC8ED0B75E03D03BBFF0C6534\ -B6F0F5E50B8707E88B188D60529360026CF4BBB803E725B602F3E8C29EDDEFD9:\ -C8AEE1890BC2ABFA6EBFF88BD0AB56ED - -629181624FF121CDEF99AC7DFB9F702FB449DE66D55EE3502CE7FAF173FAD167\ -7F5FACDC888D91848F2786405FADB0CA680D1F94491690DE4CDF83EAD2173557\ -532B004C7D9922AD49183CFB0267D5AEBB57CFA0BC2955B38CD03C98:\ -BF0F45F87DADDF20472BC84B0D7D3E9EDB92E26B5DE9CC43450ACBA61B3F9375\ -B04F507C6DA921CC84C77FFB221BCBCAD69D57E340ACE5638F734B95C0DC4390\ -58B294A62E7FA80A5EE46427642925DA4572B8B9E6A776651CC35F61:\ -7F807212FB82AA3373035BCF85E1CF33992C660A3AC0973A42D8A772F5B773E7\ -9E9FF4AE2AEAD3B09F69415237DB31F4A33EB45DA361C95281BAF1964A791740:\ -3DC98DD398E67B7F91F55697332D8BBD - -9C09CB230F1BA4DCD7272B14661E7CD5A6C0C5B7FF3BD0BE7BC76BC6149871AF\ -4B5F2A0C4206B9D1EF68EB0F7E162105B7D50AE986990458C0721C9C9B8B3344\ -D232B393C0000C37CA01D6B9B854F49FE3CDBFD98BDAEA96018EAA0F96:\ -DDDEEF2D8A91835CAF279FB19AE5B0F73DCB79F20FAD9129E50DE85EC29398DD\ -F5F9DC74DD5B14A96C98F35CCADBDE84FF574A974969E6904648F0D07AFDD36D\ -AE2B2F205E25CA3B083456F5B332D45C69E9CCD96F88B90806BB3DA79E:\ -FBDB72BF24E41373E79167E690C63CA97B8E6E192BF257104548D0CD1FE75AB9\ -7B0F3C5AC6ED97B29D50D1DD50EA0D6999DF74A5F172FDDFC1AEF170BFBF19B2:\ -DCE436B817B5ED491A1A20E507D73F98 - -1B243FD52E890B65E47EF25CA9569A37F64869FB300A11EFBA3D04410DF1BB17\ -5B60A70F3255F45F8601EC2F9AF009D40C4D72E1BD295F9DA1C83B6D51306033\ -89E009064901300ADC5665B3BA2F62AC28E7C81E2319361FB4F2120C2C42:\ -19464437BE6486CDF6F24A75A229E59B08A640B66C41687B1246A84EA6F98FE1\ -ABA9AD430BE7D068D9BC59CB5DEB99EF69103A960D3C4E3CAF9DC3FCBB6FB61F\ -7F618901E6885842BB8784DA1F4F27C6E951B5304EF257470E6375D92527:\ -F7F61A9D1BAC2441D899552BCFBACC6420A8BABD2D9F2380BB74872E7243EF64\ -FB72185FD13B6B8D452AF2F59E7511662D2AC085B870B092138CD8625D3C54EA:\ -C2E32CD00AAFD581B8FD1E5B0768144F - -DFAC82EC8594B2E18CB607ACE5557D42E458EDDC939014A0A6060DDCC862EAB6\ -686E00093965DA2B9E5BE49E2ADA0D5568C0485F778F079B1CD732575ADC5A29\ -97BBA8DBB4BA84554B82434EEC14AE917C893F18BE69B02BE06F7822B90C0B:\ -B7B20B0D001B18707A5E2D9C99DC0A0A7AB212B80E39F04F00B9BF8CA3FFEB05\ -EEB3B227FEEC1C8F5B1CAA66F4A34CDC3E63758C32CECCBCC94B075719F7327C\ -FC119DB7F19F598A9E607AE1A05F6EE6E19325B61BD5EA4D2B7F492106B4F5:\ -5C8934050FE41218671234025E0A587E127ACDCAA0838D44BBFC877F719FFB9C\ -27F82D0DC83DF3FBEA9E18071D5FA9997A10B008C77C316327DF58BE6A5F868A:\ -5BE1AAFCE2071159446CEA40C0A49F72 - -30975F60F936909D5E92EB5246D966ADC490D89F3E332C4157C7C69A3ED6C826\ -EF3920B7183352CBE3B43CB88BF14BE089A09EF80BA23C609F2BB74B0DB69567\ -3B7EB758DD32DAC570F25EAB735996A8AD74006AF2FF13D8193F16280D41F71D:\ -BBB0A917F466E47943E5AD9F13D0A964A511FBE04C51487F8DB4AC86B80E4793\ -1787EB009974C270E9CC1752D116E8F89F6F8F181C636D106FB32C9AC07DBB66\ -D8ED8A482C998158924AD52814F14B8DE53EE8F262C7B1DFBFF8A02D6877D760:\ -56D33F5BDDAF8A57724F7E6447D1475D16D413F38D3F363837A148F987550695\ -EDBE2E27E40D37822E2333854DD887A533F643135E3FE431A05DAE1633829EEE:\ -EBFEF8C3C762AAEC0639862FF14FBFD2 - -75CBC9C2193E6D6C05D1442542B93D4DA1060F73069429D4B163B37CDA9C68DA\ -EE7EB478E0D13E1BB875D736ED6D827A9260FFCA15CDC7751B30DC9CCEA58EAF\ -39C4A2E663C2F7868E0AE87320604DEDF77D077D980948E29CD9297ACEFDBC34\ -7A:\ -A01AD8C32A56A58751CED48857DF006CE408266EC348D97489D86BD41F218F92\ -2E2934C82110EE355D9AA46D9E72C914A6596311CE3D6BA1A156141237D86B45\ -2FC89D47103E2AB79CA7B808799FFF771431E667418810B4385F07BD73055E64\ -FC:\ -C3C463811FD88AE0A7E63B73383ED92FC6D1D86D8B37BF9F24F54E6FE73096DA\ -2175B4DB6A37A3CA7DDDD25E0C56C4D2E98A1DD4CEB26649BFB50EC4FD40AF99:\ -AA54208D82C19213B61C3E6C9EFAE74A - -A5B814CBF93E5DD0D4EFD2C2697ACA8031350C6C0CBD4A7FEF33C51B95CB4A0E\ -28AC2C84A918BED457BE10BFD63381D316A25E13BDE0E79DAC0CC1943A11E6EE\ -11978E5F9AC7B108AF3548CC3803F26B2CBF3A80D02E4B5FD5B54742CDAD153E\ -B3E5:\ -64A63A3CD77B0AD9599078847A582F39571BE1AAD402A3EDFAB7BA1133B1A9AF\ -B2F49C0ED992210CC563CD6940DB34D46EEB1F38989937A9C92B89E9E5848493\ -3201A3208E526CECB6E89941AE5EFAA0173A3DBAFF77B4437449F1C9E14D1726\ -1048:\ -D9DA279E61E7D511786DDCA2BDFD285C9DD7739FD35D4EB4D89A686757005B3F\ -F28C7F5F3CA3DB02F104A8FB59B14F3008D6040AF9C8C7AC5CDE9626BEBE8402:\ -2049B5853574A6EABFFEF270C437550D - -26C813AB4457B48360A7A29D4B0FE64C67CD5D119096D2D44FD0A2515FA34862\ -6817CB4A039A9D707C717061545B4BBD630E9F5338E3B970E10E063C8BD93342\ -9A0F9F8D9CD31C55B090D68C99D0384282AAC273E197ADCB42587EBDF600D321\ -C29293:\ -E9D3E28823341923F6F1909D70E4F0D032AAF6A2C93D8AE9FE28AA26700B41BF\ -1B1BE7820F177D21F59FDC1702D149C6237B9F101A1B268AD617DAFA91356DB4\ -526FF9992F015B219C6019AE4F2F739FFA3EA558C78AE66612BEA6F8448A3E73\ -19C597:\ -E015CB4B3E1B95D4EF72910B9562CBE27915F3C5E46C76BB24BD54D9B72A87A8\ -B9051830D658DA4B21522AC9AAAF2B7E0C2FCA4EF907EC5F6F91CC6D78752118:\ -1695DCF0E5AC925C8013914969DD68AC - -F0E6108D8F632FE6824A56993FB7FFD02E02B57BD0CC18AA9F62B06C2F5F8AE1\ -46A5095A9793D49187BCA5B15B44B9EE97EB232D372E03E5EB3668D1A832723B\ -BBB1EE7798BDFA223B5B637758FC337A7A536C33365039748DA998AB12212C4D\ -C4D2F784:\ -F5960BA1E179155964114C194B78402E3E8198C6B4B82DAB7F99811541BFC101\ -F9FE56BE611E9D6AB98CF3CBBBE0AD9E5D139C1A0EAB0B6BC5B050528C9B888D\ -0E78B1622192189105D44350895959DDF4CB71F8CCCB75762201C1BFDD553435\ -98F5D483:\ -5E48FFFEBD528D21913555E3B68BCED994B23347A9FB7BAD69CAA3F920C08D0C\ -126EB5137A7AF1C50538F83DB3F1AB8EB600032514A5C1D301C3D4971FB59B26:\ -8423EEBCB184EC59ACFFB5A2A112B373 - -5DEFAEDB9EFD565E940C8FFC884B57EBCFEB9970DF117FED5D06ECDAF771AC7D\ -9D18E5527759F3953A365EB030B5A059F28D07F551B405932F62B1EF44341888\ -2E893FF9B7C798F9F5942B383CD67538E421FFEB75E5743F23CBCCF2719BCD99\ -E72393CA6A:\ -8967A3CA68A3F87FAD0A43752F3CF19127F5D67C5AA3F69DF5F60E1C9232AFC0\ -F2C7670C815DEB04147311C90AA57D5E1AAF521F174076891C82C5EB5028C3F9\ -A11390008B6C8D15E26C6B877AD50E88228C2059A3F915EF0AC7CB9A46F3D84E\ -03D91D04F9:\ -A218FA2FA0B5EF6714C067DDE8A65EB1A93FE5F814736407A93054622EB305B0\ -C8377FFECE049B7B37587083376FFDC5A2CAC4B2FC3E057AC83DC06C66196943:\ -7501AF345711B4C4A22B5C98D3F4F40D - -26E571A17404F047BCDDAFF7C4B2D2FD401D48CB817B0D91D5C7B47EB297B8EC\ -01F0716D53B743BD098280858862DC9D3D912C6EC730B5F2DD4DF55603D082FF\ -88257DD4CAC3317B41A8E664B2CDBD5D010835341A0CDB6B5C9DCE433A2D4608\ -E2E93A257C83:\ -3842B0186C89E3B823E1C0593DEDABA71C8CD81A3E338525233EBC1DFB2A1FA0\ -ADC1EC1836621852979F1220E28D90390B742F3659A34469600852DFD6ED2E43\ -85D5096A936CEA2A5B1458794E2E517A649FF99FC1DE7F0BF37E4B872BDBB217\ -484094A3E4B3:\ -B32E9B7D7C1B73EFE7F06EEF09678BCCB2079A79A5514A59C2C6C72C874AEAEA\ -D7A8D8F1554E216AA3B78C2F6CDEC896DB75FE1A6793CA6D395C39E44572D546:\ -30EBB2CFF6430058EDF5C8CF536257AF - -42E149C0E5314F7EB1A6CBFF095BE9AA6CB2117F96B8BA8993909FA01CF43D18\ -CAD5A559EF4BFD36A51D1A067165F4CE0DF560513704FA796F281F41D29366A9\ -A60ACE6D38F31E635BF61670EE89577E8B6B1E0A9D530E038E42647D0A0CAC80\ -706224E9A9A1E4:\ -738D56C272FA8B3D8C726645F7984EECF4318AC2FCE8AA7EC09D2ED7E25553AF\ -AE054DFBAE97305C73AA33C642B00E6548AA60FF834C0EF9D6EC3624A958E21A\ -A146A8AA636C55E2E4A0E84DD9B3B0D92F182B3D41F1784B50998B0C82A13370\ -CB013440124EC9:\ -373CFBA5AB9CEE59C7A2373C04ADD01D24505791927112285C7D0461DBFA6FCE\ -0ADF12DF44E9D8C46685D7861882CE1B01C903665A10011B51DB89D338F759D9:\ -A9B65C943F17BFC72C2581DA3288B6F9 - -C288E33D72941F41DD1D5310CFD541C6C07C8C8D70A7FBBE33C9E4EC940CF0CF\ -42588415CB0DA37453D31A46EFF7B4983E0BCF14D42410EA6C060C86C9717F9D\ -094A4649FD0A3D4F4F9F255C6B37E3F31925F12D48E86D102DA00B8F5B9E2407\ -746276BCF1864EB5:\ -D330F79E61AF0EF80088FBFE806D7685A7330A2B2468213DA4C2FD6B86759AE7\ -448FCFD647BDEA3C0247F4F9176418B62CADF5B9EE6F61682DCFAB82741B77C9\ -8CFC42FEC1B187ACE09CB8D06D14261138E5234974306203ED38FBB125F85BA9\ -55E7B9BECA0BDB75:\ -771338851F87F2099B0B5488FE8E600B2B3F92A528126CEE8B58FEC037D5C456\ -E848D755482DF9C10DE579356354BD7042D2CCA54D611553444F9887D9966955:\ -9DE9EBF3A3B502DD467A60AFD59E6559 - -B91BD41453D15E3FFB736E9FA98CC4073BDB7467CAEEF461B011033F284D42EC\ -588216DAA3113C2A3A8CB3139E02EEB0B36D0F82B7D24504F9C43BE93AD9F8CE\ -4EB8C25872312162D01DBD87C65811D0FC4F38C6B395C307E6573AFD9F75C264\ -4C1FF5D9F76FCEF13C:\ -D9A17555C2840A4263DE6566E9D59465211D43FA0A6B168E443A363FCE5FCBC7\ -B0E2BD646962B5DE01B9A91B680F3E18C1C0ACA0E8DB9ED24A5E2EA426CC016B\ -9819C2971B8CB697F3F4F28CBD605DE3A10623C45862F0EBC690F4295B83BFFF\ -61A114E7641920BFD6:\ -7AA8DD5F93B27BB4EED70810D33040B16041D180877E6C03E273E1B87F1A1F40\ -8F811D9B984C3914D0B81791E765ABFDE416BB681E8A1F93B7E544F65A83245F:\ -B3A8F6070CDED95ADCB8D420E35973B8 - -05BA4D0D1822FD84B2A9705E02490589446DE57762112C4E99D941B69BD29A74\ -6E2E4AA28487B300B1F7390A70DD1FB1BF48568F08FC229AC28415F0CBA5A299\ -F6C2D07D5D614A529F959FED3093BC3415780D64BF2F556FBC2FA0B4DF7D10A7\ -214A28269B2ABFCCCC86:\ -743B3DF0B4F8B7AF05ED0CE4AF77817BAFEA3E33980CFD1ACE91FED8F3AAE68B\ -026C0086C672EB22B712B78F61494584509962EF44085B3DCBBA81469782A94B\ -B53A03B03728E970CEB74FD2002EB496293089563A668A0A526376E5A33E4416\ -5F165DADB28C32A769F2:\ -90B71E846C7D462F8F1736B2CBB09CBED42B73C9B2C0CE843FFA0F8A28E6F41C\ -FADFD364746D7DA44CC8402A6EA769BDBF60A1189F8AB0A62E2EF2D10C84C8DB:\ -F86B79E7E9207F99C6F39860CD053C2F - -482ACC7C520FF73186986593741ADD91BBA635B381665A4C6284916B1F09BD40\ -4EF58A2E8C91C669E242C19A32CD9E8DB9BE9EFC39C8B1F04B850B9841400934\ -18C6ED9C45E132576D554701C62700B7BD94AFE1359856D9BFED69CAFA0059F0\ -6E9E130715A83D70F5B692:\ -E11C9D477350856F801A22102212533A5DA5D091318F832668EE7348607AC8B3\ -5C50F78A5A36228B0050927ADC5B1226D42ABE82D5E61869A1943DB7B33793AA\ -0055BAB40626C46754C113F8F6B1A07E956C032766DEFA78E0BF0E239C33E316\ -2B2869041CD151EA109654:\ -6E394318E1A810830FB68CC0D7D0A88F94E6AF97E548F8216BA57E08D56C7EE4\ -9B99385F3770A3A4BC8B8CEFF9A9BF8F4D42E28AC4D4A01365D9FE7DB01A256D:\ -949DB9612EA1BD78C7442FFB8182EF58 - -CD79855BB76EA55A63FF654ABF570703B28E7A0C810D6BB7118FE0766E4C1125\ -DBC7991EB52616373DDD82849847F5331DE6EB89CAD0F8BDF81C4875D1822B72\ -07127857B602A821971EDBBB1B4D0D17ACD1D26F7FC6331058C3F103BF23C4E9\ -3ED5D78B87F854241C3C9DAD:\ -831510AC8F3E9546D0D7E3CED8A636D26F9215C9EAB7584C72E36A113A078159\ -9E884AE39F594589F2C947259B0AE2AC7057BC96890BC8DE801D3B38E921DC2D\ -F4C7AECEB8ACA67034FAB417C5BFD5C5753EDF70605E87B669DBCF62F3C9C24F\ -495084DB5DE57F57884BAA8D:\ -D4F12CB27DCB67C904CB9D6C21B1FB3F16C69EBFB6B2F67BBAF5ADB99584FE6D\ -7D965F9CC4A304C677524C6EF60496676E20B854DE21561A22B62E161E1A5016:\ -5159D73396C90428993114810CF9E8FD - -D4F7CC4CBDE3AE3E974D66509F0E11C62AEF7DD4EB35A2A0BC42A92C07C82562\ -2F1C1133C4F519409A81697F3A6E4CF504ADD05A464669F4F9E3A13482C8228A\ -432D5D35BD0741298A6DF79F69F641A68A9D80E043EF99A3153984FD24E5BBC1\ -6B349334760F551076B5D38D30:\ -8AA942882A76DC77ADF1ACF7307077D9B106E09AEF456C7209F0145E989D2361\ -48B690520B9FFC5629E9A57E270068FBB61722988CDA618669E292E03A6FCC25\ -D514C524564A0EA66374E6A5706F552BDBA4D521F861DD3812A8303A81B81ED1\ -0C8BAFEACDF577A8410338C377:\ -7FA74A8FC8924760FCB20EA43A1F8F912780EDF3D0F4AEDE7484D2CC8A2A221D\ -47331B39FA278611CCC9FDE68D1F2AD91B831409D30BD585529A8404E11CC5E0:\ -25A4B3CCA27E618E5874793196B2A93D - -43B5BDBA30FA2F5EEEE6849963B1AEE9D97D03468F21351BD1F47062C7A95C77\ -5DD28849115A8FDE8D07810386CA63D21FF76F46777A7A72E996F0B4888ACDC9\ -5233343E026E962005B5F6DECF9A6FECA8B0E7EC58D1C3356D281EDDCB933C25\ -6843D35131897D83C1E8D0E94000:\ -CBD60463CAC1B512FFE256EA3B1D9E948C50A52EB3940770D2A51E2B84476FE7\ -BE00E96584B44254D5B709DB59A82C4D9459A896219C990463981C5D08CA65F3\ -56E23A5875C03A6C407FE2F52B92D0FA4F6C3B9D79EC20D51D8ECC1CF432C795\ -56F4DB64AEA9CA2702E511C5F138:\ -ECF41ADDDE48510E0AD24894C1D20672476DFE4C447C114AC7741CAF24F46C31\ -9747DBB3A14156976A1E553942FCD3C5C3723C6B9A077BED3431467961BD6A55:\ -340F276BF5D87280FA5959351D2C8F8A - -B5F26CAEF7C7A37581D87CD01F9F6D3B5B8DA6E587C73C593677FC95D34B065E\ -64C70615065176E500F01446B026B709D494E2FC3209FBB10BFC25038400BA3F\ -E0A8804B11706D0BDF8C7C5FF1FCF9426367103ECA49C9FFE8141281B8692717\ -792B4D3A091D17D8824556271BABAD:\ -DAA79FAF40F3F198F1D43C7011D9E0CCA0A15E855FDB336D0F346394ED85E00E\ -DFA8CCDBA9CF0A11F65D4EF8141D4501A399B92186D08B7B821841F8FE76FE2E\ -2FF386B70332D670F14265B9843DD503E00A1EB7232B8F775883ED8103037848\ -E94F229A000028AF93247C26CD3ADD:\ -8D9CC3AF3D5810799B8BAE673035E24EB553CEECFDA5C613DB418C253EECF7E3\ -2E792EFF4B225B9CC6E2157E4662463652BD00E0D52D9272ABC63A65A4F32CAD:\ -82B45A731D2F2393C500CDE3FDB1D059 - -780DCDECC88D3170FA13A1138D090C9C1FB2AD38B08A0D278DCB3B98365368F8\ -39D4A7FCB0874CB533C886A7D255923B599C486D5BBAE4CFE92755FBF73478A4\ -C282CDCE37E8B608F8018D08FC26059288EBCF8449C7F3BA78F83617B538741E\ -CE1FB1CC3F9E40952E67EE40391E387D:\ -721B4B9A6559E797C49AD734BAFFDD0EC92D1640B86659BC90B3AABBC5F87579\ -EC91F6BF209963F54B854F0AFF71A32D72D992A675BA38A2E7F61AFD39F1D115\ -5E445ADF475504AAC3A0CFCDF349412D8E2AA9BB6FE3E8283E123846ECA76D62\ -F0E34E6C3446C8CD46FD45D89B236DA8:\ -4DAA37EE05905CC235834281D4DAA2848E49605AA92AD7C7973C4EE3156C90BC\ -BBC120CBF72B0511CEA50BEFF6EDAFCAC1A066A47AA2FB1D145F22A431A4EE0E:\ -118C870333DEFB518E6BF6C28DE77C25 - -D6CF912FB9281A4B5086BC851F5F7C40B267D73E78ABAB8D1E417C2AAB413A89\ -BFBBB8BAC4BAFF248C1BF0EA5077E0241826C29038EE80748ACB14B5F88B76BB\ -F1270B9C3E97841B87AC63ACDE7239E570A5D5CDD52A350C3A7928745CE9599B\ -7AE683B5FCE6D5C49B45BDD35C06F4D271:\ -7711973849383EC7E80A9FE41D211705AE1DEF6138AFB7A1C4C9513774A2CC9C\ -79A4F95E6C2EB48CC6DA6F8C975EFD5821A054E027FA6F9976F5CCE8621E3A89\ -BB0776AE3DEBB20777F18475AC94EEB187BC4467C7366D20F977C1E3FF71258D\ -5F455F8676F3A3BEDF531D9720D79DEDEE:\ -C6CDD9D731B42C2E755100AEE2B36D7D4C0264329477170F72D2A576FEEA2AB5\ -9ED6BA0179BC1A55C21543E8D6CD47A626EC16B32698A19E92A2897B315C0B79:\ -4CDFF9A61F98BA414108867EB8AFDA61 - -13C1024C17B9B78C18F549185639B2DED3AF1C8EE70FAD794E784F4D305095CB\ -FDD2953ED736B75F8B2823C673149325E3DFFF8077731C20D3B12F5A2222B169\ -D3BEDA142E5DCA3F37F122C885BD4221E8776357B858261032B0183F4C38F3CF\ -FF19B96206094CC34F74FD5C6D29A593AA50:\ -29CB815364BD80AFBE4C1FAF09AAB793EEC973AD65A3CCE9C6B23901C84B90A3\ -622899CF5E6F8EBECBE993432741CA492DD49BB81309CE448EB4E4C8DE46EF4E\ -A097F908472A8EBD687523005C91FCF4FCC590CC6F45E4F61CA4F7AFC3295434\ -41BF7E6EE12A6A4C7EE58594289279E463C8:\ -CB53AC5FB4AC48240A75A5616FDB3935532F6357E57FC51BBAA6C5D227922811\ -6BCCA413F0F7ECBD85D939411BCC61FEAF5C73D0067874A045F016F49C1817B7:\ -F70C0F5B88C9695B94B7934CF8637401 - -F2F8A5CCD1DDAB9D5842FEBF253970FBB1F13FC158B545FE5E99907EEA4A25E6\ -051E88DDEA4FF9BD44453E9D31EB54772246A18EB73E1A35E9C0A8267D07BA97\ -D26AAD6E706BDD908AC0CD3F9D9C8E0FE24F1C5C7A0960D14C86A18D97BD3D55\ -FA2073D10676AC40601279321A5F00021AEA7C:\ -CC1E3D8138DC7993050D059C68F89172865A0D36C0CFB4AD58CC999149F3FF0C\ -1D623A0E068F080629CF04DDBCEF918AB8E4C9DCE0B4179AE7D9E0EB7CF8B420\ -44D930368455690E22E5FFB92169CDFBA5B48420C9B89AA7086708A8BF0CD677\ -0E1AC7277542A84EAE84043B9855ED876F41D4:\ -9CA8E3BA9C9610F1B15438CA0395C9538AB9AC408B05A68728E379893FD3F4ED\ -D3AD946EC26886526C5640D1D0FAD5929BDAF5107FA6A0DFE46303F20C7EB682:\ -A1369ECB4438A4EBBC918E19416560B0 - -1E73F5A84C10A6CF0680C8DC43687D5C76D29D34B09E327B8708B92BC020B28B\ -3DFD5FAA3FCF9AD00E4F726F4B3EF95ABBF14CE84481132A2D31A695993A60B8\ -5C2B68F3CEC092272F22A4732C67769AA1C21784696D0A06373FEFE72CE39F37\ -7C3048BB40886DC6F2FD7C43A23BF5FEFF7CEF0F:\ -24DB74B7D6EE6CDB3CC03416829F30C823488D98354E72476D4001249DC15ACE\ -9502580A2453398D08D45E2D5CD2A0359EA3576400D3A08214F70128009832BE\ -B2E7DBCE4F3FA6E223BD92FE23B0866CC656740DBEAD98AAC046D745969EBEEA\ -4F2C1DE55D467F932A0FB972B76C7515229F4D59:\ -0338A0F1A7DAFD77612275177E38F1EF8640B0E18D8C02E1B175DB6240C7E446\ -6EE7269DCEAA6A2BED27BCBD8E97CF11D85B70D1CFE3F958D076F064AE08B69C:\ -B21A3FD84F96556D0E68933409A7EEE7 - -66396189590430B5BE5AF1E5CFE5C831862ABFE66D22F63C5F0B8F04481594CE\ -FF1A39F7DA5A850E626630F346DFCED4EF67987ACA3D1FA9C4DD8BC18171BE38\ -79E91F6FAD52F1BBD90DF94DB52CE98239A850114A242ABD6611DD9C142F6CB3\ -0405199E0A65531C66777C8054EF03BB95248B4F57:\ -B73922288BACD4660A85AB0707FFB1D125A81531679B9E2974E2C7958840EA24\ -01B8C7C6B05913D7BAD2D9362EE829264D7271E7E47EE8BD45D085EDB48CFD69\ -A3D08B7C977D47D8867B22DC4ADD8988ACFB071C6867FC980A3AE179E3D3B5B3\ -C0127EC7ACE61AE48D1AFB16B9553DEB5583E5FB1D:\ -E403166D7FEF1000E0B6669238B6BA73C618BDD811A4368C4DC6B700B38E2210\ -E7AEDE34174CB0930400EE1325EA6BE3321C49B1D3DC185586100F580A875046:\ -F15BDD887F65D25D585770A222220219 - -3032CEC02AFF86B5F2E339CCE38864853768F1960BF20A3B53D2C4187735F428\ -DD082EC208FAB71F9AD3E1967CEAA3BF0777B87E98A696841DFC084E1347B822\ -67588B372F9642D66F9E08C161BE3EADC084AA9CD6FF3A8FBF3177808C4EF56C\ -187D0CC9121A84948D7446749EB685CE5F064DFCC939:\ -1CECF7BE8466B2FBE7612181CE78128D546B75AFEB5D567F63095ECA5A5DB776\ -EFE26618036DC48A580944BD34E08C54125594C3C1451CBBB37EDFF65F881376\ -537288E3E4BA4534A4199B00C36EE02A889FAA4FC33FABA02C633AD6628BB272\ -5C3E3E147E5196C1788B292CC7365FA3C9A15909BD87:\ -D277E8CA361DFBE5AFC2FF04A9EFBC47591B8AE68FC7CA91490BF3A7935DF35B\ -E29FA41561B424B7F9053046D1EADE655B60B82467963F087129DA002DF3224B:\ -B898F0C1F1382C9F9327B01F67368200 - -CFF35BB159EE8A3BEE6676C06A931588F1669CEF27FC33BFF8BDB94838F0E96F\ -21CDD44EE497BEB4FDF0499D63483D7C60CB2321B15CE6BE6DF6FD8AFC31B4A5\ -CD473AC49CB72E7C86AF56D5E7FBC38DA3FF5CB7D2A22B5FA2F4DAF7DD8DA105\ -E8DC6B08C78159D15629F7009EAD564F984DFDF2C38A7A:\ -8C2A04DF5D2F4B98E37D42DDEEC7411694CBF941F0D954E6312768BB4B9906CF\ -FA33D6877651240560A65F7A022B88A8B62BA58623B3C3EB892E1D1E43EC3E83\ -9C7111EF12A91FDAB754DF9169F324B36ECABC9F0037FB307A588356F50DBFE8\ -20C02E1AD377D6FBB17E8406092E52C7539EB87005026D:\ -7F5587B64A953FF3D12741C7F256716A99B7A88C21DE45FB45F3273D372F646F\ -AC13249140051C4684D6B386CB8A50B93B2187CFD971D25517B01CE188EB9B88:\ -33FDF38F0C938BAB399772D2F9E405D8 - -81B5D6B0524E67997F04A0E708A5B031C4B4EBBC2C8344F6012C1CF71DD44799\ -E54B7074288B68C464F89E6DA67AA2F1E3531A81869DD4C856861BB2618BF35C\ -E6AF27D0820B57982BD3332068085D55121D0A04E0448B9CAB9F951D3A63E108\ -84B5426F49CF6254033B63C59253DFF3163F7D0FA3E890EB:\ -FFB18F8B1287F8A98D59550F8714953975A4C0E3148EE40343DBC2E7CACC1013\ -67335F21CB190BE4D4687DFCE32DFB0E3B2DC9CE54D8123D8AD98CCDE7A9A80C\ -00CF1D1456D1499C837241B4AC5575D9916668ED10AE5AC398E18CF343054944\ -65C0E7DB20EE7EA6E9A0FB872A7C7574FD1283BB41714EF1:\ -8B395534016BCD55ADBA77CA7284A1565A66CAE0BDB22BD9316346CDD9419B5D\ -009D0BEFDFA4F40D1B6FBCE5ACE5FA044B3AB0AD3919BDC2498296C44183B267:\ -82E6A3DDAE62A789B7116DCE8DBA32DC - -2C4E8C31E0EC855E6FD937EA6B03D467A4B280B6988108AABBB5DACF6C9E84EE\ -565225A0832F92A665D98DA93EA0B6CA966C907B3C6029DBB1C595480DC90D57\ -1822FC1F0889FA3FB434A8FF4E13F20BF617A42910EA3B6DFA8077908948EA5D\ -447A662BCD478FD2681E98C9DC3D8A87B2A482B28D467E7263:\ -FBC9BD2212532AE048540DFACDCFE5A518A3C645D3B17B5CDBAEAF7C8EF359E0\ -BACACD90A4F4A667C2C9C07DFF132415A4494F62EAFE16FDF431F8BB105DE141\ -1DDF1E158D917F2DD114D3F67A71D65AD14542F0968BE10A1B284B6EA1427257\ -909A03547BAA212DA2928105C6A2847B7248C50DAC744642BE:\ -6DA973BB970599CCDE6BAA92BA993D962A6D9BE1B23A8831ADD3AD0388F68CA4\ -BD026CDA4F65C62CB41E83603BBF5375829B8F9D17ADC2CB8207FC59EEF25994:\ -0A0861098EBE2DD3BFF1F594E561F7FD - -95D6D6BCD231BE3D7C1316B142D57FCB47D2AE9EB58EE6C582F3D3CCDC78D228\ -AB555B5F79F15756231821F6A6657693FD6759D84BA734C86540B354C7EBFA56\ -44AD54BA1BB9A691B0C266C28863B04476F361DE70E665545A179A1746B8252B\ -76074D8ADA0CE0A5BECE2E6DCA1CC7F92B1EAB5B97B4B2831EA4:\ -5BDA57FB858168C911A9D815073FEBD91BC9FCF17E00B373095D81289CBB4B52\ -A8BD60744384AF161B7F03AE95EC030A02F9B2485763B7B573AFB5FBBCE316FB\ -2FAD0A2567C03D36535E8FDF253A01A9E56D0B06A4500876DC8C13E1B4C914F2\ -102CD4FF050801BFCDBE5FE2C4A95D7A4F88342C19DF6A70A446:\ -62B013DDC5BF950763A5E33385FB75BB43BCF75DC66CA54D9104B0236BC38C81\ -FCBC87997C0D6ADD4DC45BC8FBC22FE36AC00E105A46B5492B4005A50DD65116:\ -A2E9DE101E506438FD10DED90EABCB3C - -3BD568E69EACBFAF5D13322677BC92D0CE2BC7E4E7092CA041559AF23E42775D\ -E3A8D2167553DE22F31C2061A7A870B6AF5D5FDC8A6F4834E7FB44BDC31FF147\ -35C26B0893010A49261D68664120D2858002D887739E249CE730092460FCF7F4\ -6DA08F6B55622FD5750C73E5C5F0FD04D9096F9DE314873350C478:\ -368390C4520ADF7EB9602D6AFD8D5087C26FBC854907F9A5475FD0C0B2E07E15\ -3B5621E4EE651438F30BC67CD9668B188FB745EB69835C8C0B2FC8F7BEAD94C5\ -26C5A50B328AA0681311BC3091C6647A0FB6928D27DB289BB48D8D2E0C037E3F\ -D791C2FFC428D1B8A7042A961039919786718C9A25B7DD24F01AE5:\ -A483EAD017318E8BB4C0C8801462AE07257024E4BF17099B6B32ECDEFDA197FD\ -87F138CBA0D0B96DDB56105E81086A7A5886EFFF967C24FD94B8689D84F22C5B:\ -605D48F582078B0604F3C5DC3111F7C5 - -6758ED64AA790A0A39490F2C1D57D42738F4946065560F0B1A5285C2F466E7BD\ -D8F48DC2C71339BF73BD5E831B215EF0E20C9834DC3C77E874A3983EE0B404AF\ -CFD0D203B5251867B0D529207891DB47601E82C7275D9986160B0152BCB63373\ -B37D688827212E4C1BF62EC4CBDA2B365BCA7178D89ECE38A8718E86:\ -734D38002B9366E74F8E359B40997A63DEC0E1283EE0F2C20ABA3691F679995A\ -48D424CB7BEA0C39590021BF093CD50B614F2194335F22595F86B0A468A63AD2\ -81259DF6F54F1300AC7D9D2C221CB6E9EAA9EA36D94156822C938C54EAFD4A1C\ -196835EDD18F94C19694EEB6D0BE2AD24FE4F9A4A6F4BB467485DAF8:\ -63E4511330E7D1D2321FEC25201FFCC03F52EDF46C5880AFBC8C9ADBA5E768A6\ -13D257E272AADAE1A0AFB091F0850FFED65C9D670435E452BF0B0CFBCC17F6A8:\ -CDC6565013263CC5B1468EA8B270A9BC - -C0A73132E489967611D04F7C84B74CC3E2EB6B2C725EEB8D331542532F1AC452\ -809A64EE1FA4927EB32E7E55441C4789056FC6721C1186DE8F49CF413A68E928\ -49D9A59509D7B3155BD06FA91022D273496F0B26EDF671DBE3E69B3542F17286\ -1C1F40D1DFD9FDAEEE421F8223D5CB61A7BE99BC89888856E87F06B71E:\ -1FAE54A2D6A87893F58C3F478652DFE814338752823A20D722F583D94B24BA29\ -FCBD551B722765F6E472AFE2240B485A54235D83C865BD5E11E5F1165A5647A2\ -8F6BDC749F8B9A7FF1554CA86364E584415A9977BF0A108DA508A5DFE44AC4BB\ -3F93AB351E4CB749BFE9CE869DA3FBAC74C1EC669AF7910B4D0E5D1A49:\ -E1FDA54A463E177014F85F63B863E9996C6DD86AA476955FAA5FE2554CC20360\ -104C0C90FB6D3CFE69666941DB660E7785ABC880BB00DECF81AB9D17AEB01E4F:\ -97F77B1B0B71D103B62BDB3C58E1F1E1 - -21F2A4864B20BEB630EA2E92B980A4099078BA7C6359872D06B0E853EC7BB415\ -6E15F471820A0C98F57020B29AF21D65E6A78A230AC8BFCF8B1321A4A1DC0728\ -FCB9DFD7CD7F03048DE0A7AFF8AB291E566964F46E7A2376DB0E0119A635D697\ -B58C6CF1659F9707029560E65387E5B989354771414BBB59983ED6980AFC:\ -880424CF394E9813B8E9388D9E9832572C23EB1CD866BEFDC5201E309246F419\ -20EAB7FA86FE3D9E7EF39EFB68790D5EB5075398300A82A77722CE13CA7FF1EA\ -55B17F09F487A16D79E00F93CB6BB8D7845BA5A6E7055C3A145FAB4E81BAEDE7\ -C77F5835EFE213502DD461CFA69E6BC1176FC2B744871FD72AD90FAD562C:\ -26017D89A713F185A829C02EA39BABCED003EF442589E402B260F5DB9334E0DC\ -F9EF15D02BF3066F73BD73E180B4426CA5C57CDA926368733D2314AD1F51C2C3:\ -B186D4BCAB5F782F0FD654CECD90F39B - -66A37B60353183B31FC05232BD71F4CFCE7B8E080F28804A2D5940A2C61E1EB3\ -CDDF1EBB90055C1FD2AB7B39E5D081597C94F3D718A1C5E1D2C36EC844D4CA1A\ -FBA4BDC14B3F19BB9998EF4B3FFAF894C9887E204B6CC4E860DA8309D5E4981A\ -E9222820268A4FEA1EF02249E533360F68BB0DD1730E28F436FCD9372677A7:\ -80ACCA9006AA4097230D5948AB5629BF72AC6E43A08B74676E74B5D14B7C238E\ -48CDE24E319564912061B2DEE67955640EC5D9A5852F41237DE45440A2D8BDA9\ -B73C083120347EFD3B2C86851DA0EF02C24916AB58CD24B21235E54620FA934C\ -0EFB200EA7E29FBEE098EE537023A6D03956E17CEB15534D99938E8FD56390:\ -3B51B7A749B08DFC6F904FA000A4D9245F24124614A933335D75F5667E2B7C96\ -97FE44DF6AD825C43843E9C368F1BD4F173223D0A0DD9AED7C9C80BDF69C8334:\ -DFC1983F5119A9C4B55DEF420B59D2EB - -E46C7DE449CC38BC249ACF4953CF1BA66B94A5616A6203A3247BFE1E7D3309F8\ -86A96A2B5533ABE67369A1F1EA324A0D6D15A04E36787D23A16E33890BC8F2FC\ -A0540189A388E0B439703DF43CEE744EB0A1040DCDBBAB16BF37592C942D1E84\ -325047AAF28926A1E2D1D92A935FAD0C7C406A7FB8A0CB58FC685C834E81FE48:\ -69954B7111B4486FB4686B5F49D3D52CFFAE02222EF8A211D8618D9F2998BA73\ -239974DE5E51516225969E33F705688A6EFB5C7EF2B13ABB3E0E2DC2E3E039B8\ -5FBCE29A7001C4EEFD8D0143378A08F4C1289680248174EB2EC81AEA9C267202\ -3756ED685FEBF0DD7F748E469425C1C0027B64CC0E575656154B743C08DD6993:\ -E0104975E0561DC232B1DC0810A2FE19BEDD07EDC66E8208A3326111D51E2594\ -5A9D6D804147711D684E09471AA8E64FE328EF1D64C056F39291F9FDCE0E1845:\ -0E2B9BF4754A37E86C53786FCDAB4782 - -93C5A236ABE90F992ED6D5A7B82091BD8907DCB680EF326968281261393C8E7F\ -1EF8F37F631A7C2CD9E9EEA75F124D5D42E8A5C4FEC30AF989416CBE755D392D\ -493EE604E7A9384E3D423E5A5F4C5C966244C1503000AA509230DF31906164D3\ -0D2FEABA8C582C0557821917E6725ADFA0D6A2A61E89D933E92D9035D8E249C5\ -EB:\ -B425B00661CE5B18D263F21BFA59C8E487875D0FECDBE76B4E76465F77DE11A9\ -ECE56AD80ED1B07377E7B47EE4D653FFF8D7BD36A1AA254EAE0CCFED1CE6C212\ -5D64A743424F3BC01783046065453894A34616F7CD5AC648B7E6D282F17A8923\ -6393D04B6DC433512F050E05C62917C9AAA68328D92482DEE3B989C116C32B22\ -7B:\ -76AB2C69E81F734BA067B0B9D01C55A9FE7BFCCC1FE9C0A59DED509B7FAE0CB5\ -FD342300C5E276D59E239FB5ED5BD857C4EE178DFA14EB5C64C8381E4224541B:\ -9A711C7B8AA57E098ACE1F58EEC4CFFC - -A48758291351F2BFA2AF6FA0C5E211DE29B8C79BFC89104D08EE0CA595BE9544\ -A0E6999CD5E36F77AB19A071F8F6D04DD0E81A25E0341B5AB51FC6A7DC189A3D\ -6768B58ACDE108F1BE1218C78C88A7869FC84B1F35E299B0B79C4A09A1C0EE31\ -8DF926C6E5F699D39C76550CB727184B5DFF4A5DE3C89B147CBA34397AB042C1\ -0AB4:\ -F566F3EE9AE9A6E8DC0F27BFA6DD8065AA04F6EC22DBEFD6CC402B71424F0F49\ -32C3D30838CED4A8874D1455D8F79606EFF0AE5E67E3237282B62FD54D930EF9\ -1A3E1317CF51EF4EAD96E7C3938B9D62E34C2E9669C36E01D2307E3125B94EEC\ -B9572FE48912A45AF32835B79CAF90CBA384DC51459A767115D918C6D06F8F03\ -532E:\ -2BEF82CC3EB6BD4A000AC829CB9A679976C1461C822D919B5A34A24219B3E438\ -F1B05D19AE0471FD0A129F769C0E818EFC5666D33AD7E0FBEBCAC21DA9BFD56B:\ -35816266512D9C87E26CCEC6F8898107 - -54E25645EF4F0685286EB6D885282B89F658A84692E1D4729731BC0B8DAD1D01\ -92518982B0FE8D6C6904D9096E05F5E3A31667D402DCA644F05DBD8439A8F59D\ -D4BAEEFCB93BF5ADDACECF0EE6947B4FBB7F70BE8FBF898D02A36590D333EB3F\ -4AB4281B9E4AEFF3D1B8FB6512DFFC00F408C149A3309ADA4EA5C380E6DCD555\ -C77ED5:\ -81C281A5EFB2A4FB6F239A27291F29772C4FC08F9F296FAC4C740A984A6B9481\ -3EC7C203CCF56E014BBE46F173587C059D03A5889C8E02DF235D310CBFFD82E5\ -A3A3480094A9717DDFDE5C5ECABDF6931F0D2C205EFCF04157F3B40837944510\ -E46AC4BC2B1997B1B4DD090CA440683126818F50FC23BE698ADF209AD49A8A82\ -BB2F46:\ -7C31E78E2C7394EB9B5E6B3657443EFB99C08463A3300047A11E29C31280F4E8\ -A2BF9F45F06D33F48359F45550013FA6C9AE9147A1F8F257EE52E9FC4F50EDB7:\ -081BF9111E8FC26FF5F521B1FA0D8C5F - -06F3495E2ECE2F37DDF46363D03A474BC5635002F5452ADC8DC85678947B6934\ -DE6F50A599E8AECB412E3064C2B51A2AF386135B30202C7A21D735DD22BF97C3\ -AC23AFE003F1C04183BA73D5569FB919865EDEB13CE96616AD3C77317C5EE1A9\ -AB53DEA2E6BB429EF9FB37D660B31FAA2237360FAE61BA29F122A98254467AA9\ -BA1DEF4C:\ -9B6F2CD351822189251ED072CB97272464649308A16523562124F15AD966DECC\ -3B22A93AA6F75700DD6F8D06CE373C6F29BD5755F4E3E963632BC4DCE254B55C\ -4B77916193982085EE06AB800D5CAA1CEE1491DE1006F554BAA21B02D3023E01\ -96267863DE02C58D18A7B17517DD86702A4A9E1E3FAC7613528744D428DEDC66\ -7D16E6B0:\ -3BA6E21E1E7BDEAB22A5DA09C018B1ACA551E4D65EE2CF085870ECA5F1ECC93C\ -9492E6EA44446560612FF834CC30A9491A8C9008A2076D8630A65CBF39A34279:\ -5795EEB25804CDDA0EAC3BD3626F6ECF - -C8567C7DB4F901A083E4A3463FDF72F1B70A1EC7A6F18B9208A6DB88E36C84CE\ -2EAAA83444AE8C930B8ECDDFED95369095D6492981FD038DCD6F4D53F107B75E\ -DEFAD677FBFFA1AE7C218E9E4CEF32AD4875446C533D651AC2A407EA0DCD9E8B\ -17F72D2407E23141339FDA65ECE95EB70BAA2D3C3A854238C2008B0B212C0C39\ -E0953E7A11:\ -86DBDE68D137CAFA42181AFEC899D1002C34A848B57F706BEB5C35F80A2864C1\ -DE836051FC7B6C8457D368E49953823657927A7526CA3A78215BFCE1249D53D3\ -4F08E15BC9A4116E48907FD594740A1142A316FFA3AB8D4C6BC8C05942289EC1\ -1BC1A80E4A861374F053E08D401A174465CB407D616F5C59F42645C87F195989\ -29C8C11318:\ -4084365D0393AECE34B53482FDFFF0D23837051C04E680393A77CBC36ACF352C\ -67CB002A336D75C964ACCD2D6FE4A85140F23F8CEC5181DA8D7417CB168FB929:\ -730D1EE67161B93E102E9414AE051DB8 - -8469D3302EA60CC72FDE028DBCFDD7C633E2030E312E4BF127E2D3425395ED43\ -EAD12835D537E348A44E33634733758271BBA2C65CB4780C76D3A6BEBA69F32A\ -17DA522A4E22E7E7EE561F5C05A2788AD45A3ED4918A05DF4C3BFA4EB93FB07E\ -F1D1104B987853FE40EA56737C84EF8F00CDCB6363A5D568AD984CEC416404E7\ -88902556C9F9:\ -D0ED3237CF11A6FF2A05D2376726218A9D98AF8BB5270D9546D32FA2C394FCD6\ -59F008849E95910D638CD1A2A09A6946A9CEB08F7BA24E0D2E8518199FA88DD4\ -CFD4CAB123080C52251F01E29E673BEC855F9FEE6BBBA6594884D35BB68384AB\ -66E285F6E71362F4C78A1BAD4F976715F7F60A7EF2D3C7E601A3319FD2062714\ -704CF2846B1F:\ -6D2CCE44439F12CBFFFF9BD738A99D60123251E0D1F6F30848EF7C71E7C53D05\ -8F1A1483A6297EC383396C5301BA3E471E9AFEDD07C14668746C314A3146B2A3:\ -6556375FA789D768E9DAD4409E76FDF4 - -0F8D74722E2814BE690F915BBEC407C9BAD6AF6F53AD5315F70C8CB8D9504DD8\ -647D51553079E3A21C7A8070D23C3345D202B9C5DB41C8A27C29E65E96F16BB2\ -EBC324D452A4C7FB76AD80A421B9574F8E35E4D35C94406D9EDFDFFE9E31AB34\ -5FE69A63E3EA8537A92701188F58644FB29CE8CD990E25E8AF9A246A93DF2311\ -4463063A57DDBF:\ -52CC2A88639888CF9314FE15363700ECA64FE91088612D3D347991F98F91299D\ -330F6D92EF7EBA046315B3DF2B017BAD4B5834FC37FED528BAE0FC4A161056BE\ -7A805C4EDFFE887C58C1F311CCCBE8F01781F63C28C88A939264AB138AE8E688\ -B72FFFAF965D756238ACD876DA846153E3B9D685A45B7B0C91F5D2AD9A8A4F5B\ -66AFDCAF4509E1:\ -20E9D126623672BA3DA57683E89E0852E1C3753EFC76EAA125C2935ED0A85DE7\ -7A6645A4D225203BCDAE99645E9675EAE4D545529733F4CE49D570DD5FC1E5A5:\ -11673D9E38B88FBD5147EC125BB21B33 - -D3231A3DAAF07FDBD3A05024319FA12A70A31DC8D9A7D8356F06D8F5D7394AA3\ -6DEEFDDC29D4BD9CE5DA729CDE1251F86E4E79CDCF573570F58CBEAB342B1AC5\ -ADA6FFE3C62D292AD3F9CEE9DCB858C9A1FB0E4B11A3B21D6351FCF27CD9B5D6\ -A4B6D1A43AF1DA10C8AA7EBA15EC2C71620B343B71C028802304583059FF0646\ -5FE17ACCE35A9C30:\ -7D579CF1B29D202372FAB3C43618BCD1499BB26A2E5E71BBE7EFFFAFB295D9CA\ -5928FFC95E0AA58C59A9D0E5E42108AA63E79936167CEA865D808904567FD42E\ -45E061195B6234C12BF70122AAD6BC5C75097EBB16099B4F4F691F4550F180BC\ -61D837C9688653FA2082A52051D6F7001473C00C58B4ACFB35040F6B9FABCB8F\ -DC137905E0C8B722:\ -EF46366CA50D577E5F9DEE22282475B5231AA2F1A687C2A47BD66F46F06C8BA6\ -44F9294A117CCDE299608AB651EB665D4E95E7399BF895403CFF60C0691921D6:\ -75236DDC71FBF614FB079645DF5A8FA5 - -00246DB5F84B1F5BE9235BBC9B2AE432E0F5441A169CDC9DA78ACBFF727470C6\ -A768B2B14B1FB1BC88EADD9CBAC796D17F71629A829680FFB1797117A30B5FF4\ -F9D7A935840C04333D7BA95DFEAC25BD289BBC6AB07B8850241AFCED877EB8F3\ -9FA7B7F97D44641767BD33290242E42E856C7E282A6D7598419A4B547AA80D3A\ -9004B18FB54EDB839C:\ -E94817986CEAE0E54D4EDA3B7AE0F8A4200F6D6DC0A483EE2496E8F371E0A264\ -80F94ED3CDE72B6A7FABABB8E4619F6CF01A3A39880D9FFAA4BF3EB2425E5B3C\ -E46FDEA93FF05E91585F26E25DF3923D69EC42BA3AC7C2B82D615A66B4E95797\ -451F9C94D1161652409AFC670C3B64C87205D13A1BF049F54A591E916523E6A7\ -433A28AF85B2495B6E:\ -ECB1FAC66B4B74281A0DACE9F95911FDF79C2DC0E3B005124B7481E944A619D5\ -C905FB915C4337749F4BDEEC3153BD2BF075371EE709DE8F1962D35B67DEA5B6:\ -D255A2B05BE2AA1E606895A99BE85AAA - -B1167A2CF1CD06E919826114978664424C36B257D9B3B9188E1467B73DFA051F\ -6175984E35C6FA8E7AF54A85B663E2DC7EA3137F444BB76FD501AA01B37698CF\ -6237F45750547D6655BE389DC88A532C387AEC2E701178B7770C51BC5D2B2BB5\ -2046657D67EA49DE773C240DFF93ADAABB69B14785C071084047DCD24938AB01\ -23E8A4C84C5B79ACDF58:\ -845889650CCA54A1CD7FBFDB6BE1B3A54D295FAFCA3467A173AEF392BEA78D80\ -2558F0C8903A0DD60D53F11E3C34B26E5318632393794AD35F9D6C534EABDE5A\ -107DAC9312E4386C5ED9FA84D6ECD1A32206BF12EA3BCFCBE5C4D1BE2BCEC76C\ -8F2ABA19F1F27A89A2299E7D52F4BCD5C4186078BEFBFF85EE3266AF41CA8E5F\ -3A929858E66A31B99D25:\ -5D2C1141A0038B998B5C7FC7E24BA1CD2B6DBC3F6218D6F598C9A0A3A3145BE6\ -DFC88FFA319D96864620551A985518EFC9FC4D3F4A6C2B21BDAA00ABE64CE0A5:\ -0A68613719ECAFF4A9E3F17ACF914933 - -D11779689ADB5D3940CD4C1120D4D944BB0E7CC28F1F1C87E3E7E76E128F2CBB\ -542601F258CFFE937D4475A4309EE926B1D88A2D77AA8306E18D087DDEFA9E4F\ -9D06C3AE700DBA7368955A0F0C495E1149F85EC6DC0DD4BD430A5C037F85E06C\ -A615232442525840EBB12AFC6B287DFDAEFD9822BF5197486BBD51B826C7C11A\ -C7DB4DB3F300C223C3DFF6:\ -111EC8EA4E6F5094A8E3107F6A5A09052FD5BB317580EA80C65036537DBEF7F2\ -44BA22BE4514CEDB217FD914B4686A579BC8B023C8E16BC5466078BE193DC1BE\ -70EBD3C323CC5544924D0580C452D9B17C61B66202B44883C139280DC2028846\ -60C2CE6C26D95F70C64ED351D6B0E61BDB4E874F1B82EBA19386824F8CF7C63F\ -88C6AF4C949A00554D8957:\ -2BF4BC444006EBC96801952390E05B7C9CB6FA1267F9B50F09E29953579BEE18\ -22D5CDD0B3BC341DC187064E4A2AAE1A6B9EC545BB82BB355CAAA7CE1CC4D10E:\ -86E3421B6FE8939F1092D7A647EBED42 - -04766E2DB785725BA503819DC2BD4F340F9E788783981B8D0A48A91F7F3753BD\ -9612B2F66298AFD0DAF20B1C9B23BA45879A02A25515A5FA4FBB6AA4F9E29F5F\ -640385DBD9D0DC44EB8932EA3DB73D72FD55694852502E306241C25A603A3D1D\ -FC7CC6653F60CF5AC2DA758582C1002866BBD396E874563F06949D7B01A3B5AB\ -F6E992C5C218C3F9D3F54D84:\ -2FEFA5B6A8E4967520486C596E91FAA32C4D0CA2F87C5AD29D051ED24F08E961\ -121C750B7A8563E44A9B78F99A30E816BAAFFAA440BD29137A3ABEEC2304C586\ -57E667BD92508F5389E9E501B3E15380A94C754D628A51B4855E7DDF434D2922\ -2139C8D47B8A9077FB93A047F06870A39E1C932C9106C5F8549933167F01F34F\ -7545705627E631C4B3D5488E:\ -CC4774A4B2B0713E38662FDE415A674C77C8D860521BD7A837FBB6595035E505\ -D93754F035579809233D92A10F4EB9094F8816ECC7AFF9CAEDC48A8603E7F009:\ -D62291FA5B2B0CC678E86CFA70072394 - -C465F5C10941D4975F303E63731D7D65EBC7647DFDC4732635E4700969AC9A3C\ -5E7C1850F42AC01B0B8F07CB2D0E985A726F3C802946F4B36C624BC0DD50F322\ -890F33711F4434B64CC274C7CED8F15EFE7E088A6499739FA985D2E888376F53\ -5F3A6DD16A5AC6ECC836A734F4BB09C82DB1A0BB8494BD8C242D3D555C15E6D4\ -72651B814A02EA22E413320B4E:\ -FD6D89ED47D9EE30DDC776CA8592C0A8111F847DA753DC69834D9A6D092DFD5F\ -936F50A3FB3256B6A1BC76B6B51D361DA7A72773C7B4A92DB79FEF0536FFDAAC\ -18A479389BDF79974B363CA577E0C961C31A680C37E2529DA109BD57D3A1484E\ -ED7959061AF28581042367D0AAD824CBA8F96547A61EB7517B5B2473184B526F\ -1BF9F72B64A54524C2E251F173:\ -A194B48E1D5FD59441DF7B14DC819751A8F1AF7CDF6F1FE81C8AC4BD7CBCB657\ -7E178460B24EDB081A9423C0D9F6967A8C4BF7CD94EEBFBC7EA115ECD97C3ED6:\ -FDC8DB35960B6C0C58D4CFF2E76A3515 - -E65BA732DCB42FFD966AD5EF6AD3953C45FA4CEBF47142BE2FEE9D98DE020A88\ -B7536A633C151E77B16E37D6F30D1FB7BCE7E49EC3F3B5C7164590392ACE2C4D\ -A5206361A381D07CC182E0FAACAFD6842971E7FCF005D2992A7A2F9B6FDF40A4\ -78E36C631B8625CE0C196CEE270DF777A48BF2487BCC29A0394881A54B69B03C\ -F42E406D2FD69DD521E504393917:\ -B8C352F394058A4A2D87030557409AD0840E87F20B3F5481F88B9FDAE065BCF3\ -8433C0EC142332676B96482370EBCAC05B7FCAA68676F25F5CF06636F888A644\ -15DB39E3892D63605F530835383A8A6FC573A48F858CD1CDC7D7175D47324842\ -3F4B821D049D8604DA46EF2F8807AAF1F63D22D8922851279F645509C1A72808\ -6317A7A64C77377C792637795D6D:\ -69FD3BAF8258261004D9F1EA076BF5E358D1BDAFF0C779A70B0051961E516181\ -AAE416C6AED93A7FF465C2CC780EA7FFDA147C25BDAE869A2C0049A676FA0F03:\ -1F813975655755DB41D157C68AF69956 - -E2C37AE5B3ED0038B2994F316B7C1104812871AFBD4F1686BDCCA64D638FE6B6\ -70C6C24860A7E49AC34770691B1A45D97DF79940FD5E7FE2068751C5549815F5\ -62FAD16B3E11110C3BC4928A95823488EAA4CF91B4135830B6C979ED25638AF8\ -ACA6DDB52D169DE7C55AF958CB9A90C065121979A7C9E7F5C0D5C8B9688957E9\ -D0F447AE04A05085517AFD11CEDD08:\ -91A679E3D1FF2044C0708AA1940E9FA94768F1ED4CB60D67F0D393F6745ED762\ -791C9E3CD2AEA2B971C74B3248B1FBB012FDBBA109CAFC448C3DB0BA4194ED13\ -C611A15DA00D663994846C504CA22DD580ABB2E30F406A7440B238AD15175851\ -5B047C226153A3931B7C4E3F74889E9FE2C7CCD7BFA5DFE8D70F1D38155289E1\ -D2D55E3159C07E4692D1D937C0011D:\ -0125AF88A9951A38ACD20CE05E8CF99C6522F3E163E80BCBB4F428BDEA563420\ -427AA289D2F7676DDE807461749C2887852C82110A6A1CE8979837B5EB82431E:\ -9D4F8337DC1202FD53813F2A2DF16EF5 - -D69D8AEB53EBDCDBAA012D5FB0F3F2081DA76982B0A3FDF9B2B30A6080EAB923\ -F9E1AC5846AE2B85F63780EF92673780EF724BB6328D2A76F77923DB1A829822\ -22BBA8E996678C3B20BAB4396B3F234C349285B38391A2E6DED26BC0CD92132B\ -C5AA83D3E6DE09C847476776C59D167EF081A3ADAB47E0551BC304FEF5BB7D3B\ -A7FAE7187E971CFC6BC2DD6A5DDE7092:\ -DF12C4796004ABD43A0C77F0957B6DABB890BEC6819FE27DFC8D63BE5661BB46\ -C6FB3E39E0C2BDF89DFD781FAED9939092FD7FCAAAB6B82C469DEAA9EF520691\ -00436601BD409D444DCE19BD87EDC6CE973EE2B2877E6C31613D18DDEA67F51F\ -DF6C1394FB7463BA08A8431280A3228E53CA6F6158596A3C3E779619B816A1A9\ -BECF84D9B948842C3C32104BB7D4C71B:\ -8EDE3C0F2485BA4D271AF1A14FCB7B9D104EB76E09BC74A854F73ED8D6CE64AB\ -26162E0CB1BF890331686EF493F4D9355C242F9F5921ABC4DB31D18EA638D895:\ -4F6060E046D31FC96021507D1B1F7E4C - -A0238A55E1AF5AF4EC55B1660A51EE7C3B45868487D7CE808A521E39766D389E\ -F6C9B9768D7F97305A9C57E0589425E51F4FA6137C30E76A5F298D0EEBE07AB5\ -3E93AB49C63A7EAB441F7B1CAA6A61A4E81341E1CA784F5DE330CC93E8831E6A\ -11725191D4B9C601B3C0C1411587CB9189FA4FAB48173BF342BF411AD86210CF\ -89B015AD104E47CBD4FE6D51531E846485:\ -E5E404C161E65FD1BA86DD5FE29BDFD03DA4293A0E0BB211AADF6F71D7ECB704\ -2094A19948A27A653C213CC317C86A61A13AA7C83DEE76FC3FE9ACE61FBDF5C6\ -EC2244E238C8C30234275AFA9486536CF81FD60844CF3F981B743AF0B8756300\ -6B9693ADBCF2541462654EC438FDE2CE65BF7F81206AB1C692589B7D293EB025\ -37429B0062F39CD9741D577133F2CBF51C:\ -FB6C4EE5B44336B3513FBB1A6568546B9255D5417A453CD7BD056205F777C5F0\ -5C80B109D76D32AB6E81497B1798E009909A7249D92E7FF80585ECCABE09515E:\ -77C060C9615D7CBA606F943299740EEC - -833F44D9CA5D1E449AF04E987842C3B41FBE6C4B68FA49FE5299FFA5D44EEE1E\ -C20610C83005FAA10AE792201D2AB21D38FA16DA871A5A1CD3E4F33B4B97D705\ -6D8F4A8F8C5E2D3BED2DA938AB80F8A313C75C8644A47322AA2DA9AD0F114867\ -0C15EBB25388C4E8AF6021797084E0B6FE4811146ED33A0E516BC969703569A1\ -34756C00ADBB6E468D21F46F6A706FC87085:\ -39AA1DA3E9BE202090936EA41491A9AB803E587CB900E1080F77BBF2EA1482E7\ -5E01AD7B9F62DC87C9A50FC10BF927A6D06607C4C5E137DB32E7A89DD5675BEF\ -ADC05CE6E4E447C592541DD7B137D8FD5C9E16072C6B2B99EC8A7937B213C00E\ -B78F2C76EDCD5D64C8081F4CCE69948D75800E7C18493971B32258879530FD20\ -66529CC6B6134CD9A34053558B947338DBEA:\ -D3A7712282A755A22CB17176560345E8775C3D19499BC51272C2EB12D7359FB5\ -BDE1F74AB0930D919AEA9ECAF4CB9E77F188432C39BC37C47FA6FBAB6B0600DA:\ -59A6EBCD762486D7F9B1EB5DC2E59DE7 - -CAA2D0C1473747DBB283A4FEA119B70A020ADCDED0C16FA43BCABB211EB7D984\ -1CC6DC7C8912307DC06EF8A30F5DF7301C221C1E9C0F4FA439A70CE9B7F292F9\ -387BC279EE15B559F5506983B48A6EC164DF2D0CA2C114458D1E39CBBF7AE599\ -C4C2AE85DC02CD58D9EEE82CFA5CDA3F7A1EE4CCEA8E3247A69448551FE39F59\ -B8F3EC7B4C2C6939A9CEECC8B8C868FFDCC3D2:\ -FD97837BF9D3F50B1363CBA08028F29580E1BEC32C31B99AF140E1BBF8675D14\ -6720C727E038D626E949EA68E11A50974DB42E0798CDE9C3C1F5FC25205F6F10\ -B541933FCEEB4190D38E9FCD0C3A8AC4A5C041DF1CD9487B5478E24DDB2C5115\ -7924528592D9ADF093F8689F03D5EA3F04BB340CDA50EDD20E219BDE3F61F6A7\ -D96ECDB169DA7300B0D0F16FCCAFB064E4A6FB:\ -FF50D6009692A4656CEB5AD776E69FA55B07870564723F3C4E5EE65BEB053D4F\ -08E4DBA15081424EA9689FA6F893B9161C3FBAA7EBD910FE81657685EE009858:\ -EBCA601EDD1F962B139D2DC595737C43 - -18CB59AB4115FD49269438F2135E1DF69C5F599A0E6D74D7B25EE0DBC768947B\ -9BDE8BF1DBC72C72163C4610EBFA251C84D14AC27C5C8C0AA819C8D070252336\ -29C9BBB7F26443C1252DAE5E29A2E26676709E0DC0BA3322437CB2269937D461\ -E0DC366035C17868FF7EC65625A864E4F9DA97B57B04426F02BBD357F2C03220\ -AC4E6B1D55225FCC6FC82975CD7D80B0CBD53A5F:\ -711D01E11145CE9B88F7A6C0DBCEB7A5208ADCF4C6A20A258CF307B9E17A3352\ -C49930479F23BCD9B3FE145FE821537AF6E57E8FA79E916F5133A8F8303EDF57\ -DF919BEC301127B521337AA129F52707B0FE2127F7D49CCD2509F50F4EF63931\ -DE626E23844AD4925FAB2EB39FCF57365D2E7B06FBE32D8FFB9C2CFC63ED1772\ -36C79B9EB8FF69EB3BED7B7E5F39558991691669:\ -0148EB1C26916C7D4399D14B11177CBBE12E40FB4793B2D9D545D86B4489882A\ -A40C71A1678A1CEEBE68CCBDF20AA3DE2DD4562F4505EB9974341B4CCF0937CE:\ -F070781A32003D20773C27840AF449D8 - -C101DE3BC4ED6917EE34D2967ED3F11FA9ADB53D27A657BF6736E7DABB33686F\ -022565033B9F349C53048257919F90539AA17600D5027C475C05CA56AF72C256\ -DB7627E7199399513C6CD92598B150562D945572EA9D73FD2CAACC638B912241\ -5AE8AE028AAE6F8FF3F7247D4CBFD533813B6A4410FAD2B94463DAE3FF557889\ -5C47350AD95F26F37731B56B2AD1EADE9F9663D752:\ -E5E12CD8D80BA44BDB7753FE86CEB0AE4AEAC30A1C1D531445F4B4FFD070FB04\ -1F0CC48DE1C0739F862C8A3FA3477620100A46A643A5A40DCC8773A31AFCF5AE\ -9E29FA6AF612D39D7C99059E55C46A4A45149D3FE7F640841046D5438C76BBF4\ -37E6EF01369A37ACE3127159B657312175F800E25FD390BAB0E44BAAE0CB2960\ -E6BB270CFAA0D3173630C885CED0370F0E97311AC6:\ -635F6FB4B93E5D997E8229AD36357850BABEB96EDEB6D3E0C0077772784F3326\ -673C04CD4052A914E4A083F6C1D369242D145205EAFEBB8B10FD8D21510624D1:\ -78E5D339434BE5D744906DFB6C36355F - -D4AA658933CED4AD151674F5F1B17B767D978E0895C138E6F1CB1AE89C59A931\ -4570C31B447036CFB4859D24343A59E147C009B07ABB8ADECA7537E368AA18C7\ -08341432E48AE06BAA2175FEB0AB4D32C544F0B225DA52830196EBE12C61F048\ -1423EA8773F5113FE28BB4D888DDF54F3994BD631B59FF98982D4C56181C892A\ -EC9ADA5C9FD487797ECACA38EB8445D4EA1CA367DEEF:\ -B742DF92E3FA1A7846F7AEB6AAE3607A47A7BC20B52D7A4209786DE110D3D0FD\ -154C5620F7F5BC396EC21E3C3E9FE46B7F527413657D589C16B991A96BCA7524\ -819729329CA94C9719123EF2BD9A371730E6E0A658BD6113C301B3EC8007CC47\ -56F7138AA06137D333A986833839AECAB325611B869D02F771EAE7385BA3A019\ -3BFBA89081D2FD96507CAF0EA504C717D9807C1F2272:\ -17A8A4A8BBA9EE594818C91B97407C3BB8066960B83FF216E8FD855DE3BFB1F4\ -7119D9BAAD2962037254FF5C60A8609978F2C2CCD6C75D773CBF92FDF6A3A13D:\ -97C290F3C7EFED5EC7F31E4C2AC2EB3A - -E1E6BD03BAEB87DF26924E9A6E2F739D8AC726805C3D154A19A2DDE6F84BCBB0\ -804BB4D5B126763A124D51DC569E91A88720446A60764F0C253C3B946434CB4A\ -3B82E5ECEBE87F3172DAEEAF7FB4868EAD2E2AF903774CC66E67041BC9DC4A58\ -58083A1DE4B694D7121AD9A9098598E4300C67C8AD0E860826A0FBAECE317135\ -90B3295E5A264798120A3223474DFF5B3DD28A286AB8E3:\ -20882F1BD13FD6CAC712CDDADF035CB41D16A5D78B2F7F0CB7FACC0DB80A7675\ -2400EE878D05AE00874CA4B0AF7208A9E8A142F690767BE5078711197850207C\ -039DBDA3DF165CD94C0B7CFA2CB481E891401A44F696DABA86DABB6304436933\ -1EF12BBA9F1981B3256AED90251600BA91AC3641C917E2457B60F78939E62B8A\ -C89D1720CAF9543AC689B0D5CDE0BCA9D9EB0AD86188D4:\ -05FDB8E1957E1BB719C1FD3A4392D95847B861D556A39F3A97E27206B63E8642\ -5D262AA31BC580180479509D18BC3BE0A4F62C50E451D0015F05E98EDFBE97D4:\ -C8779A846670B7EDEBF457C76926E84D - -48BA18139223316087102714AA4D2DB6945A1E9BE9930B2856CA187E57B02CFC\ -EB82B5CE50275EF772F4A1DF4FABC008361721C62DDF1B01CE50DE2A628B2B2A\ -61B0D1FF3E2960143D021ED80166B26EC293F9088B46518B9EF163884A3A09CB\ -BB46CF6E298E0A859B240CAB3F105ED768FA90DCA66AE7239D2EFD3B7E7BA7E7\ -7D815DC9F16F824D0F25BA2971367517A159EDCE93660BB8:\ -2F5BCBEC75FB0AFB8F39C2F48F593F6863AC5B055B815DE9D56E848070398BBE\ -8341709E21855FE009CE7430127AD445642327E7641B83CDA94DB3F6098700B8\ -B524AC2D029B31BE6A75F29FE0B92D0DF86C098BC0C7169BC1AEDE9800DBBF18\ -D4C5AAA8D082B357EEAF2930BDCD658644B0AF7F116B63FC79ADF5A6D5CACCDE\ -CCDD0D05CD6D1ED79D77490C0A092628072128D408EA4DB2:\ -1FD85C1CCC7F8AC116367B040C3F53378BA7D9EF793E3F8C595BFA66C017F53B\ -7E82B43A30BEAC9ECDCB66BD1E825887D9AA5AF65E74A092FD489512CFBC5D9D:\ -C5228BB3100D3BA341297226B5B2BB19 - -BEE3329E50CEB79B31E9145D8BFF1641A6CD1EF4241E9CEB1250F8CF86046BDE\ -097DBE79B48305C3E41B0A7A8CF1067544477BF309567C2087D9DF818F0737E6\ -12F426AC6587E3693F3673453E6C05B0E5831382EA23E322698EF85176DF77E2\ -18ADE52491412AE0C119711E75183024F89B4031612517F39DC3E656C8A648B8\ -52DBEFE0F28A25CBB6D3C706A09506B3307713D418268A3CE0:\ -2E5B93BC1B4034410445C296C713E8EBE4EE088BF8305BFF5213EF4C10B1D859\ -9AE54F20F5C21B1E98D974C8712D0C224E75CD88127F999EB0CEB7C232777B65\ -D45C32D2690FFA784AA0DD97E679A962434921F57E59A7B0DA7A07D5F7EE026C\ -969CA5BF389F9F777D2B4158AC000CF8BDE62E4CF92ED98DA63BC33E5D6C20CD\ -F15423FEAC6F6FA541875FCBC84300795F270287F610C5C117:\ -D418E11CAB049E5B4876B581F353904F8E54B5BED4062A6DB854460DD7BC8053\ -23CF1EA9DCFF0659FCE3AC5D58E8ABBBEB0EA73E119B0AFB872EE3B3294F91F8:\ -3B2DCE189596B5A09D7768766C76346B - -9D75AF0B17241AE6B15AD8DE9E59C030FDF300456210A11773EACFA00046BE3D\ -03F06FC5AF5247FBBC63EEBB98048E0BB173BD52734C643D394B7535F981481A\ -940AF69B7FF5AE956B5BBF6306559E43B10E1F578E49BA6F8D3C029AEB96338A\ -E2FEC116B72C9C520BCC211D11CD0C4AA953CEA83AFA45497B15C5152452691A\ -70A261E29636D90B203C88DE29ED31A1F2C03EC3E8CD142A9637:\ -A24F09563DE9C2E63CF5202F2F8898836E46914C020F726ACE3D2D9B5C9D2443\ -2B02972DF083DA78975F76E1CF2928647BA5559D1AC9D26FFC1324E6E75F0327\ -E800950D10014FFE349E0C22B3370F8AE8C8FEE323E4AEB2846EAAC6A8FFE791\ -FE75B76730947A1054FFD391CE88C06C835A48F8D0E302E9009F8E7D2F7E343E\ -057FCB9C1D6E25D40B818536602CD4F5F28F8A591ECADF6D1DA7:\ -FC858C754F5A0F6DBC4CA9B4EE8794B7AB138D8217EA31D9E0471DD4E4B29E7A\ -341EE5E9D4AA9F5744DFF2F5BD4591E6D383B68ADE59CA5BACE4897E154F5A60:\ -DDD32533E7CCE75D145F9E75C9750FBC - -03147E9D41521AFEA74653C51F86AEBE54795997840CBCDF01C83F5C5CC51840\ -693ECF171F848909E6958B6293C6E2A6F998A5202461A99447B5701DC2DA093D\ -CF94E88F7704BB25CB2FB16B9EC84D0E5B20895A5BB413359EC2166EBB1C7FC5\ -2B9A8302A05C638BB2AEB43CACEC2167598E5B92DC202DC0E1843C827770A502\ -C65BC54D956C0B8B6817F1D9D85B37B50F5FB9BFFA9B3FD4E987C4:\ -DEF9E127A66407CD5B20C71CD91703044DF8EDE655529EF193399AC127D9B763\ -70606D7F187CC343E855967814B3BF265C3EC1FEA8017395B81BC9AF54F23A05\ -3B71EFD3E03A847E0B0B74A367E4F4400F0513A171066E2175E9404B3E06373F\ -3F568F4F2BB15031884406E67FA4A101D428446BB0093B8ADD0BECC1F5EC81F3\ -DAD6C20101D53046AA5478B6DE03199D4A9FD9CA0B7FF7E0378E02:\ -A96E4AFE8841E78095ACE8DC9DFA0B9C1D239E9B9EC21B4D621F537E116FF538\ -B3D980C69FD454144ADEAC7E8F48CB1E78DE10535D4B769C4635D467005739BD:\ -67CC9400071631DA0E28D38D62A9263C - -A5713A182C829934B7589CAC856F5708C8E0450466AA0E2BFE735A7F0B287914\ -F35D7E549B27AA7679F5C4644DDA3FEF0A5735017F9AFDBBC9651C05B5658CA8\ -6CD4632ABA3F521A73BC0CE784CF1CC744EB9C54081EA55EDA3842E2745052DD\ -23E7DCF4933E2AD0723F652DE05CD6BF70D0E24CA0AD224DA11AC44C85E78540\ -FAE16F4856CC5A372E1F4BD2D8205E2113636FE3582FD8EBF963C952:\ -77ACB02AB169E65C492B408FFAD8317B07475DB66E41D6EBCBDD7E70FA8BCB6C\ -FE7C44ADD7275D5EC85591F211720548DF116E162F92653E06BDE5DC3E870228\ -1D7CF91DBEB76BE4F1D0200DD3DAE721FC0C9689E57D84BE555CBA33BAF9B85C\ -59F420BE49707EE2E74A35787A95EECE418ACC88EFF8204535F9E8A994D9A434\ -FBAFAA1AC8E715609CA00813A40BB8F2122556F8429D6FD88D61ABA1:\ -3FAAEB0FE51CCF58ED4421CB967C3CB22EE234F137C9D68FDA639A466BDD053A\ -F1FE32D00A5E74F0E180330CFE861D55CDE113EFB9AD4287C0E0F33060B8A067:\ -12C67C590BFA135904A8B77A80F68C44 - -42C92C6513FBEEEA129DA7673A4B246AE288ECA8D04D34C6E3AB623115520ABE\ -6E45936F7384770108888CF3A10D09CC20C31DB156D15925098751E32AD9946E\ -2351A0CC3E50DB76BD9FDD8358252FB8A09AF008C72D08DB74042C0481633F2D\ -7E200CD391C46683A8279101521E8358DB666061B03E2647AF84E9C647950647\ -A641ABF8F23A23647908B92F4775CB46706C08CACFCA1BC510A7D83E6D:\ -2304811988309197D798FCD10C2AC5A6ADC402446A3E63B23845D09685BA5089\ -9291854C68207C5EA3CDD1701858D7EEEFF7AE5644048E3D9FF9386FA0EC6873\ -F4E2A4860270E59EE4379D803C520F54B1850BF27B492C39BA8680E780AC3A48\ -24D390F889B1E7BC150C5BF4BE22258AF437E6FDBB15AFB559771695E4C2EFE4\ -192860637F59F7DE1CC86426E8AFAAF8B723B24A338C12325AB5F9D472:\ -0A5989484C2CC25ED6B739204B3CEFC7A0F6326FD225BF223F4BE2A5E0487D62\ -7C76ECB1198EEDC7336B8AA14DD2F8035F5D0D3044BBC856103415D7D78F3D2D:\ -ADF628CAF9C5F249CCAF2CC89E34F9B3 - -3470A4AD21C00C966B17BC8DD5F8569ED0B854FCB9BE74EEE1FA807E54E9C1A7\ -0571CD0F553739C27754F6CCE705BBBD76FE1E8EDF3B4A7A84F5DABEC5B651F4\ -76762D369D1BF6B9A21EA657FBA7BC44639299736E24F1AAE37C9CA21F053444\ -F916530A01A7B8CEE66083D7E0FAA85FC4094AEAC43F196FD5FD529382F932E8\ -B90C17F60CE51E08BDDC990B0FDD976F9F30FC787F0C6374A98E40E220C5:\ -833FF82B7FE76670DBDF9933776CADC86CF3BCED569A04C6004A47F88C13102C\ -0D6093D01674DE7F6EEA71553D34B4827003FB12A5F5A8FD20545BAE090E7DF2\ -2FBC615DC47200267626F9044220CE27DCB0AC24B5B581E98A29E8B10AA3334C\ -B12C414A9B373E9273E23D5D8AEFF865DB27C2EB0A59FE44342ED12743F26DBB\ -EC77B832C5871F3E0F5427DB47BA22DD2A1C6CE269EF8FE1308EB2CCF1E3:\ -8DF9E4EB57FF2ED6DE948B6B53939D80515E38B1F955F07CBB3E0414ACF716EE\ -82272E447DF64ECB6A6A230A1A6ADB94CD218828833E6A7BAA9BC1D43A8A30E8:\ -0D7A40C5C46B0C04CDE693840874C7D5 - -36A07EC7777182BD6833687D237C92C4FF12A24D910F7C4CEB0ED4DC399AEA57\ -AEF55D8E545BC50C081E6A4A77E6485EC6FFBCB81CC41169B136D772E541D73B\ -1669316FB67EF6C70986FF1F2AF1068EE7EDEA2AEAF19483C31A56468FDDE03A\ -09F3EB4658A11192AD64791ED8A06252E30AD2CDD693A8C4D5E76D083FA632F8\ -0F85FE7A834DF7113928C5E1553D5EB05333E807C4D74B2D7ACB6432D9718A:\ -6D00149CB8CC148F4227EC5861D9389BDCA9292E6A1667F14F6CE272CAD86DDF\ -E9A3F54246793B2526B28F0EA618B4AD632E7EB49CE05F13E310F39CE4C21811\ -473BD0B3A8FD0679387849ECA70F9BDCABB40D18A25152CE4A74AB4D73756424\ -2FB7202D61A5D565DC46DE56768257C9574AD55E383C805C1CEEE9EA319C55A4\ -119A98839D9C606CAFC075BD588219392C95CFCA2F8B6E7DF01E81DFE17A19:\ -FFA0B110904FBD276074A7585BDC073542F0034E762C00884A0569A6E0058B05\ -F19812F21EB21E481C08F570F263310B9682514B48AD0AAD863E1988B428F8E1:\ -C3FEB8E49005914DCEA75C320A69AF24 - -D5503CA5AC2C07FEBA34D137985EE68693FF2361277A64004DA80FB35099AF45\ -08815D78EBD6A28B27CF8162735C59C70EB6FC670BB1B75A0E22D18EB156AA82\ -3644C15E197BC32C140AC1FA0D8EED8B66A5AABDD8070BA1340064F50918FA82\ -08A880E8197CFFCA0D7A781554480E4980D740712DF402A864649E610608CCA5\ -03B66E1A09F353500753658E17D44A98761D84D34282489CFDB2EE5039AC3777:\ -B21860D696ECA1216FF45105567831F5FD1315CED5F35F21428F9CDD2BECDBE3\ -97E6A69BD6E5B801F83542D8A67C52DCBB2766B7338DDE2299B6168348713834\ -9AB68B13970169672740286ED4F4E0A66050A72BEE429BCBE298FB07E16561B2\ -0E36F5C1FCC4AFFAE0A5DF457821F313F6581998BEEB7C0495296961DAA703FC\ -A6CAA584C049960D0136617174F24549BBFCD5164939CAF8CD7DE9049CA4164B:\ -BA3B88F214DB327F4C47A42B238762FABF73318D0DDC9B5D3DC33C9746E57DBC\ -39B91B4B1E1D755A1555E68CC291EE37788DB23A4ABE2FB465B112EEE06BBEF1:\ -431630AE857DB77B8B64A7737A10FD50 - -7933C19B0664A9A404E294A17F621506BCF48B8D9348BF1F6EBDE1246082E8D8\ -5ABE46D9CD7F6F05C8EB495C6A06EDBCBB1232BE78A450A9DDF6EFEDDA19E123\ -5D367E519C7FD30A4B085154B019B8D31E50F86EA0F8CA9C925D79DAACE28B35\ -7CD8A58B7B478676BABFF33D3EA0238C8EBBEE6A9DC2B9FF1D869FB9B8E51586\ -994320CAA7DDBBD1692EC82FBD96C35EF128946DAF1F1735D247161E6EE649C5\ -9D:\ -B6153EF1CA49763F3C73AAE1E00B3291322E66C5A6014DFC9FB8E9DAB772F89B\ -F1B9ACFC7541D6F505A690AD554175AD596A479AA79A717818200B36C8333379\ -A9E0EDA8356426D9C6CF88BA8D6A2E4924A6E74D31717520AF104B3D4172D521\ -6430B4ED1350AA9E89C8FA71BBA84238EDBB543BB97A719467237AA4472E5815\ -33D213BEB73F12500861B79A6CA05AC7D8FE8082175E2206185A12CE78B10219\ -1C:\ -9071A109B17914BECE4D1A15CCC15DBD3B93D7673DC4688316E20F209A242B4C\ -D234F600F1424294AD432B9738194C033AC38729E47296777311F2FCF46EA18E:\ -616BB9EDC46DECB42DD47FDE2D98F30E - -76503039E69DCCBC4387A31C0D693F362C4A66FF6FB90A2587D9D21A6BFC1FE7\ -38F7F561A3145E7619FED0A474BA9280743EC3A71F8E74F52D7FA77CE0CA4E47\ -8B7274ED1945A53A60317E7A954298EB6CF64921E31051E1BB0AC0ED1B91D12D\ -38B5F80E3D5118D02B6D168B5E7EF256673502709674CFA0918CF9384994283E\ -ED8C31FF1B0B2098787F578206AFAAB591572EEE220AEDAE302A0C4392C5ED9B\ -CC5A:\ -D008E55E9E942051A6CF11E35B4A70B11103819D8C3C09592455DF6C53878B09\ -84DD9128D44787881D8B8A8048E43CE56D009FA26E3C238B6D2D1FC001D69725\ -2CE3DAAC10AB31E2D4E4ED25476E2523F99B19D44897802D8CD4E28E8B552BAD\ -3975CDCB7EE3847B279787A1BAB79EA062AF2934A83CD7A6543E2F2CA9B55542\ -B0E11E93C41652DE73EB476D29E119413D8BA37C25AA31C559D51AD8689DF2D3\ -A70C:\ -9556F6DD01DD1CB5BFF6F98A783DDD7307DF95CAE25E3A037B351ECEA74D1208\ -A091C68699D0109FD41B04C7D36C38D4944BB04D3051246316D7606F8A7C3FD6:\ -C52EAC897B1C92C2ACBF5D77E9CDCF3E - -0E830E756DAC3A93AC9ABD80D932502CEF5EECB6CB6B9C903440D9026A529F17\ -3388AF70A2DAB1D38DE42EB02EE5BCF6C80B00FE9E0A06E5164B8FD04123DAD8\ -FBC5D78B3C5028FEF7576D7BEB80D346958A351B54308D32700C063F0843C821\ -4823A10323A5AE8DBCAC8734AC9B05795F807D265E74F4BA942ED9761398F199\ -14E9EBE95DBE972E51F6E7174702E04C7C42878B81C81335F0BF648BC00183A8\ -EBF69A:\ -B7BBE2A819733E59278E0ADEA206FB156335C366DADB423076690A939E345F7A\ -F2944F9C502B409ECC94BDDA44F8CD295F2333BCE4A6C930255F72A1E43A4E67\ -98912D1E9C6738BFD68E93A8EB83D74C0CA0CC64014E696CF64568D8A31F3242\ -489FE61941F6AD0F9B38BD5B90C781678301E41C6B82F324578F88EF6F157EA6\ -328842BBAD08841AB90BDDB8FF08CA9F2443FE9AAF299076F792FE03380A4DB2\ -F11F69:\ -498BC2D54FDBE02095B0A00BA331ADE4EBD6D14A26F40CF6E96F1C56DA08A282\ -D76EDA26B76D41399D66F91D8555AF54561ED162D5EAD46D96714BBC93AA192C:\ -01CC772A3EBA55EC4E5B5F03C0ABA17C - -44A0FD4C39905A704FACABEF27F0CDD8A2ED0E141AB6F112EEE466650F3A1D28\ -74351198294910C484ABC870E028A24EBEE81403148C4DC2B912A3C36D218A33\ -4FD846E3D0DF3C8110EFCB04FDCE27EFBE2F776691BD4218D3C3370AD5F57D76\ -C09B6A078964EBF9756D50C7910D10DBFF369F40420DCB202E601333C6455846\ -AC4ED3AB70444379FBADFD0549439FDAFBC61C532E7EF8FEC3B39378CB84A792\ -56F714EB:\ -D95488EC9DF7882AB907604B632EA32C98BE5500F9FDC6D79C2630A8CC874297\ -44044B4BCADDE1C86B24E222AA4FAEF13F909D57A495D1715994ED49D04B7ED7\ -2829C8CCC2303A4426F7A17135B33E54683B457C08016A7BAF4B0B1AA825DDA3\ -6968E6180EA33FEF561C191CFCE5EDE2372E05230B7DD98676DF6E282F14467E\ -040A489DFAFA6DF71F713CFBFCB188E861C60CED4B181FF435D7A1F04CD331EA\ -544F789A:\ -65E574BDC8C3C861F0F81E8FBEEF4244E66BEF56FEDAED4A8E76BB2D04B71D44\ -4A1E547BE8E7EC806A716C893D30AE91B0F7DAE1AC0DCC7B079133457B9CBD9B:\ -4B067CE2104FC2BA17A59292432380DD - -15CAA9DFE923DB957602D0D9EC9277AE8FC7603DF72B1707C05E96A9E5AB6E9B\ -17C1C7E4AB57A3495DC3D353A5E7FB29D1764DE841C600B0621FF0AD0AD3FE5E\ -58B674329462EE4DFB3EBF4BAE3B5E23145ED32FD199F206BF8AE1591E9B8459\ -6942745A0BD313AE2B45B77428066C6D0FD3166C6C98FB8B87865F65F382F74F\ -831BD2D2CBC83E63243B025FE0F695961A2E0B5DDF2569C3A81F6EA61A7013A6\ -C7E7109E63:\ -61B18CE005D9ABE43785073DB58262109AF3A1626551E1E436DB6B11DE937691\ -EFC9394A230A9D7AB375072F69C102AFC2B0967E24C6B38CF6E62AF31182F723\ -C425581394535E4FB5FE7C1C95677C5EFE70884E3A137D5DBB76BFAF33043982\ -83F4572C19FBB0070C33C902554D0E689D908800DFE277AF9C0F07AAAB1CE449\ -F3AA8AE0B3FAE7922E35690A969C7C11B45D806CA65F40B614B90ED2ACBE2C8E\ -701AC1B8B5:\ -6694D4039045434C986BFFC8CF2E65A74929FCD8C50CA9CC66089AF5D78D69F3\ -D1CDEADEE07951AAC601D30DFE6C0F919DBD2818B77E8FF68F6F22AA51ED658A:\ -569097E3EF1545EEDFF918679624C54C - -61EA089EB8475C4738FB91F5741D5BFFDEC475D53C2DC443F353659BB1219582\ -F67F18F3C580A8C7DAC724911D482034AA5742C56DFD3650E513461EE5E71DE7\ -17A2C76C0D284925BF627ED228AED4A47E9AE12CCF8BF1B31D3FAB701AC1338D\ -728E340B3321686DE327D74E81B87A1FDF144EFF120106A0A0572DCB55FDCB8D\ -917BBA5CB49B0D602A3400F991EACD3CCE8771C1E1A495F7AACACBBF4106AF41\ -8F9BBA5771E4:\ -321D87BA6DEC0981D1499FFEAB9141FF884CE06AF69477923F67DE22EB3E38BB\ -250C67FE84CBFD89F43CD9381B980604046602B9AA9F4B021B433ACD69B400DF\ -32EB486835AC655BC2677E6128A3E5E038022C627B332EEF2F9587B7754B4D86\ -7D0D321AFE23AC60928D3A625CFF873525EF77CF941DBAACD7B56859D0EBC693\ -18DAE44FED8B48ABC1C8F65DB354E9C2ABB26EDE74290001E7024CF7FE812A80\ -1B448B5B44CB:\ -56E4DE4690A9C46E1A2BD088605E4AAC59BA6628B8AFE9767A4A86B97DF7F254\ -3F4FAA1F63A6CCB9237491D909D11A38E029633B4C98F7A9D6291EC8AAA70035:\ -F87BA2EE1032135EE28BA4194C35AA92 - -F4DE4E8FE4D647944E70CABC8F6787CF0156E743D6F3B4E3F27D0E657E1E6D1C\ -D52F150F98FE1011DABD857C393C1486F4DF8CB2C137F114D97C5F920B1515F8\ -3BC052B9A2BE132F0A26116CCB2DFFCE3E8F59F9E7851EB7ACEB35D92DCD3BDC\ -0433416BD95D10FF72F3D8787F0C165CE6F46DAE2321B3826543683BB1A22E39\ -9CF3D18F2B44A805096EF15AF31FE70B86E24AAE7C0BB8EE124C5F8CC894348F\ -D1421675CE9102:\ -711011467AA91B37B7E949CB306AFD30D35C3162F57D2064EDCECA43FE94F91B\ -90A70506FC0BC9D24D0AAE3D3845F46440E2EBCF6E9B1DC2A0D9CB633A872CD1\ -91F9CDC7F09167A2E8BEB18EA6C4FDD214A261A64F81A847AB87A3FB8D51098F\ -D429402DA76DBAA038E615924042EAE29219AEDD14859A66222A2F7286507F92\ -C295583787756972F2F5BEECE05BE8D76CE08522AFB1F582B10947BF3B1AE594\ -3D3A89E6486F26:\ -BFA826E4AC4DFE776D0DF8DDDA39793DA889F672D5FB898B25B285B3F42BC784\ -325E1E409EB4D0B5DAD7F7E42164DBC6BB892FA87ECEAE137EC3A0ECD2484F42:\ -FED7CA3DA1BCA3994D0D3AE147E3F1FE - -9BDF21BACDEEC9C34656B418A5B9D470FC9A3AB86C68990A86B1D4B02AC6C54B\ -F88E3CBE9863AE6B8BDDD3EE59DFF09D81FAAC5AA76ACB601E677B1009A995FA\ -394DCE8FEFF5C3F0374009243BF87F1FC941B933C92D0359766612672D6A1B3B\ -3C29763B4D7F976457C2A643FEF87CBCFB5257FC60869983F901E7E237AAC0D3\ -CAF0F1780E0E2F72A9D60224FAC80633FA7A54688EB7E045D61D6684B4467797\ -E1C4ADDA2A27D031:\ -E9D79BCF79A2A078664921A91E2E0173BDD20B32E0F232FB9F0518C3E495767B\ -625C554C33D7E3A81865B6624B5A1899EAE6E5114BCC28D687FBF5D1D4699948\ -04D571FAE3F08F067CAF4D398C74893FC7CC11C732EA5A4D0021BB3C364E82B3\ -BB551C71AB76E913C6AAECD9BCD4FF31D0110DE721A5E7CA5064705EE2030853\ -97B9DFF75765ED9A421455C18F3C1FFAAAB0C3E22760CF14362FDC103DFB3BD9\ -7F7DE86FB8302DF1:\ -A6D9FB1C7D20E7E3F9AB81BE975B7674F7BC5A4DC6FBFC0F485FFB634FE3728E\ -90AA7C2A76010209579B4CF9636C9D556A0D8FFC97158580966786E0FA3339F6:\ -E72B8B864E1AC1D51B6E0396D5778F2E - -C615DB8A7FBE10BD792680B7F7A7E48A70085D124BDB7C124044EDF76E496D44\ -09BFBD10D139D1D22E0DFB52D02F3CEC8BD070A9C0638B03224ED25A2C893452\ -F4B472F7C7533068A579734299877E6DC52564AA0F66B1E71A58F4788E83AB8C\ -A7F35315B2FA08EC34843BDAC9B92D845F9597674FC6FC8C8541384A3C1A1B3B\ -B7E0387381F9A5B2BD498DD59AA1A08E6A6A388440C5086B9800B2DFD0C35F40\ -29D13384CF63C3469C:\ -66D12F0BDF0BAE2D12CF375A16552CAFA371FB4B79B474DC46EE1975561AD92B\ -F0A5B8F3F72CF1D714C38A345A651A34BFFF24B9ED6945D6C08FBCB6B8508888\ -08AD3EF5EFDDFB4B4B43A33B250AD57D6313E9DC5E02603E0DBF72643432AFE4\ -4397CB5FF4B04D318DA22C85298024B359C61C09459B09C95A679C81657E5819\ -A6A4B2FCEB6C18B81B4268D2642BEF0673537AD4CE74450A05C3E830E9472E11\ -A97FA954AA443A6A1E:\ -0876B75D86B0A36967F5661E5A0C95366ACF00EBDB818C98C0B37F67DC1D026A\ -84BF9B5D6C1E33695CA4CAA9645F02C8ADDB0177C7716569FED8190DE3D30FC7:\ -3670D6E827B6FF18102339B4CA24E91E - -4DAABEE4430E71DF544C7153760D76529E89A09C83354D8D3525366DFA2924C4\ -A9423D196DA121B7E0586F6E8A05937C99984A15C242CAC0EB9E461E1F38222A\ -27FD3A580E56B119B654A5E28124EA01401EBDDC252926E2FCA5E89189608218\ -1C9E611CA9688E0BDB6978936518C1F2413DB9E27E54B1F01266A56DA1F75147\ -19AED12F6FC127D651643886C21AEBD1EBEB6CE0E2F1B7203ABA4266D5B44F38\ -02B43A08A60F9734CE3A:\ -77A9EA4431E790EE78704CC10EE82F2B5C4A43EE8D7398CE0D625EDC68C3C378\ -143F8A3DDE0E0E72D5ADBCA3C0C517A2F97B69B0306212D448773F8B62BE84A9\ -D2674B83DA8820ED7D50B430148EE4C73305244E2D399A0EAF27A97EAC959C20\ -9841CC030EFEE1773F057A87711CFF16D749BFF94A1078E0BFD0B619F19A9112\ -15218E114E02832AEC05239345A785006AA1C1E2EF1124EA1FD7CE51D16D4338\ -19F4E2C4C5E8850E7267:\ -AADE70F812A185B4D67FC5C427481DEBCB79980A027C5ABD52C89650406065CD\ -2CF08437640DF24229C21630B3266031B788B2AE460BEB1C7F34FFCCD1C266BD:\ -05B5EB69C7A36A842F6A45DBF6613778 - -E5D58C8D66D6C1DF53B695E13B0F6E93E7057683B59D0DAA79014121FA3DF062\ -F56927A97D17B28AD6E0A8A8E83B9BB0E790A666B2D7AE8FDC5256F7C0AFB492\ -7D8555842C9E19C97D131BE5FEC8175C2EEC3CCFCC1C8B5CEADF2EECF03E3F71\ -FC8977B439693B6E2DB84E679EFFE5C0AD2B44560FD7CCB771DDECF7424B9189\ -916310B3E0FF79814E486C62D418ED244A31B7618C74039BCC04F021728E28B4\ -2D607A3E3C0F31FCEA10E4:\ -D487D3F8D0DC54E4EB2A3777A55E57C87D433B3854F8495F26A1FFCFAE49C756\ -B792544CD401D1DBCF36663DB13002FDE299307BD725CB37D6C8280E3B20F5E9\ -4A361F10656B0EEA72AC11856CBC5A73869365B5F8FCFCF1F3F8ED11AB155638\ -32409CC58A4426BB3F7CF045114CF7F9DA17CE656BC6A2E5FB5A26E2EDFF2986\ -AC4C6A44FCD78DA5809DBA5101416A5AE721965A975C9018788DB1B353922552\ -8538E94B684005BAE66120:\ -0C7FBA046B2175D2B3BF6525C5105A6BA8E22A2BB2E690A7A76557345DC5CE80\ -7C4F77C663794B302789C3EBFC45C150253DF057C4807BEF45BB3AEB57D27866:\ -A75C7C67A7226C4A4E172D168F7DB0EC - -725923CAFE2455B46A3813C76B715AD76E8D6CA4CCAB579F0211CC0B772C157B\ -7010056014A6FAF65CC52991A1B3D39E4CEDA5E53B82F9A8335E774667671D13\ -B427D136C76F253BAAC9F960F4C0367C30C1957F4A22270F25092DD747704C30\ -9F19FFC8D47BD85776F37DF72DC15C1BFADF76D22856CC28B1D84684F2E6EFDE\ -8C4E4F1964330560CFAC1F7B2051F2F1AAEFE6C46A5531D92A6ED61D3ED651AA\ -457E829E06C71BC366820111:\ -DD9A6B60EFF42B4E2B13824037D3F9BC1B056A74C57568E346777F48C69BCE8B\ -F14D538AE10935417F12A2C6458B918974B43A9E31FEB55B417C1FF9280A70EC\ -B86CA2DB8A3D7192E0AAE59F05B3975215F5B5D03D84704D52EA9ED6DD4FBD1F\ -1BFA8BDBEFC81BC66ECA8F2C29DC363782069E2A48CBAE2DB493EFD985E290A7\ -64F68F2923D1471057DC7140F6ACEF2C1496646FD10B3951E0A98C866840938B\ -2477FD8C8FB894916CDCAA88:\ -1C9DCF071F81ECBB4386E500216795CC0979594AC95241A0F2F202BDCBF8B771\ -76C548C4F1571F1691082BFF1E26B0E7CC015915DDF2760A38E16D55B8C212F4:\ -585958A7ED4EFB97BA1AB7A92522D8E4 - -A42241E600E862D1C77E1436444EE3B8A0511731401E818D10F7F1B9C88AB1EF\ -34069B3871977FAA5F3514B56126F628CC74755A945E31E2C06AB83EBCC999DE\ -1185CDAB0612DE962CC5FD8E9A833C79015E835BE196541E8EB6B67E9B14F9F6\ -5B667996B2B303DB5CD970C959BE43EEE4BC87F6F8515969131F93BAD5CA40A9\ -84C5BF7CC7BE8667476A3BCE769ABDBD38247B3C1A63B85137864FAF437C2C32\ -A4314A0A178B224F3C3FB91AE6:\ -AEB660ED08E1E60446F7E33BC58383A8657DA89D98F8D6502E95ED5E7545676A\ -8872DF494C4727A2D2A1A3BB98E03244D025BF8D6E236EC2B7269B88ECBDE6CC\ -439021B6899F0D95317D46043A61F37F13B95A6FB341C9D9752639241C29171B\ -71453D0EDE1FD8A550463F1A800591D707393039A24381E9D374336B488739E7\ -30F31D8FDDA00B3080B7321D3982EE7C249CD44DF0791FBE1F6AF49DB67089C4\ -BAC7E11BC91EF0471BAE50E6DD:\ -292D541B90F12BC9D268B003B8AEF93C70359B399071DD816019478C5F7AE956\ -E26F04EF8BBB550C8696D648BB34B20AFC4B6297738A20CF9605C6DA9918B00D:\ -6AF134B839C4586554F6B98F18B3C39B - -6516603026A028BF08B715FA5093F2B413629C9D69BCE927B0B36F1EA333376F\ -C3D1A34CDCB69D85B387E5446E04C6118184D9792B8C95EE7A571359B49C56E5\ -EF20A4F841045AE2EB6EF03EE7C7CE9AABC2B7AAEA125EEDA2C9671FE9C96654\ -599FED61D0D757DACAF13E20D64BCACDB2F0ECAF43A641BF009BD3329DD96295\ -28694B8BDBCC500795ADC1F079C4C4F8533DDE9518BE5557D882FB0CF9564254\ -0F4C74E65493475C9D090DC630A9:\ -5704C3A40BCB401405997DA8ECF098B74B279E95E7F3F0146C8BDAF118B858E4\ -6A4FBCAA54295F374B922E35A8C8E0F5C5B85CE0324F8DF48D3C5F14694887DE\ -EEC108B317FAFEC0D16B46BAF7BD5AB433913DBF19F4B57587AC1A95BE356878\ -DB5F3A3B67EC35F777A0892652FD9D7335E737FB7F6A8558DB61D50E1B621D34\ -73066BACE07091DC1916AE80495606F483B055D9D557B22AE00012893894BD27\ -4741501220A903A51A8157A76F0D:\ -814C64722D7CA27312FBD5032C9C452D049506B169B1702C0167D2E6263226DA\ -3F3807C80537D28DCE20DF7272FEF6C9B68531FEA7A5636DD03352BA34A82C84:\ -5A0AABED7BC74F505383C8A83799C279 - -D47D85E7D6B191D37DBA9080DED2BC59E19D7F038A8349BFB9DAC98D648F6AC7\ -D95C3B78D5672DC70192005C785BF9656DBE02ED74CAB53B7582A82EE67F00FB\ -B1EAAE04C77555807A6B7A8BC7BDAA66EFBDCCB104B33ACF797E08A85E2942B6\ -A4E759BBC941597B0FB189F57D85A300E3A0ECF56F782BBC487E714A47B8C5BD\ -50A506696C9F1C1FC0383E2235E6BDACB3E89D89739263BE47906CB893C332CC\ -F16C52B0D11AB7839576FBBD7054D3:\ -91E239A8F026CEBFD5CE2E25F44F2658C7F204AC5563FA454C966BCA94A0467D\ -AE4AF239DCAEB3D46EDC25F474D2E6A8251660748C69C2CDABF7F6CC3E342147\ -6F533631055E9E519CB6C5DC76CE2814B6638C91C8AD7F3D1567B37EF2B58BBD\ -CEE30C3B2207A00AA25C02A670E2D3305040E7B492816C9E83C29090BD2C71B2\ -4BE4DCE9123710A56FF1910FFBD7229FF82BFCEE5A66043CDB1AC06416070F9A\ -C7A6A7D7014DEF1E64FA309D4E2A31:\ -58F525BA87C99CACA875FE49FA6CA0E406C6D6A4437F7A5F118350503933DAED\ -77B7C64F01750302AEA446BA04AEFF44B58953F32DFEBD1A95F537A1404169E8:\ -32352F6E9C939DFBD0CDB248266B0327 - -27E638B2D906D09F193FE1588D325CE0DDA1A1A028EDC800BACB847FF74E6A7D\ -F41E525FA991203309FC49375B1B39EC57F7BE082C80BB972B3D8E88794F95A0\ -882B3868406CB4E02C4D3DB6B45FAB106FDC56F32E7E39E4E7BB6B2F24F22245\ -23E95D47D24D95A1F300DB37BA4E8141F4B885100B9783783B4AA38539028FFB\ -735EF697EB9043DA064DDDD8E8D08BB0442DE254CB604E89F7C7D82FBF366F62\ -801FBFA4A2B01C3ECF26C9C4C5E0272E:\ -22995D449720E1E0F27F3CEE80C2D8B821E31527A48E72818FB5DC7C5F7476D2\ -629D8CC26F64DB533CB1342A965C19D32359ED7C59ADFE2C219ABD547A9C907B\ -CDEE220DAD3156ED92B5A4B92FE6023CC632233142AE32639EB74A7EA47A59C3\ -837594C2BABB21A51DC47B1F19D6C0369D4DF14C00B9AD9267779774753D5059\ -13528AEFD93DF0C004F10DA9163AA0C871DA275531D74F9EE3099BE82EFB3216\ -D80A2DB5AE0CAC7F3007C73E493DDC9B:\ -B4915E26309027540ABCDD44373B0962902D039EC5F2C8D65EF6038F9853521F\ -8B8CBECF748B309BAB17AF2DB24515C39153233D6B85B61EB9FA4122A943277F:\ -FB9A3D0FCF6E73F05FBEE5CB85F1962B - -66148853A971DBCBC5541C6EC2AA9F439F5CE613F1FDC1F764093E5B4DA40C6B\ -B7DE5605E24468CE0C890B56E9286DB8646BB1B68EC671ACEC0D62137DD2D714\ -C9E6D21AC97A1044CD1B87803C8CA697657122B8795EB73D6BB9A83BD5EB7E01\ -BEE2614A528D20067F7CEA20A2CF6BC8371511E9A68C922C72898EEC6D636B8F\ -3AAC321EC1DF477CF04D3AA07D6581C846633AFA18E5C3A1D6FC3F1A0D0D4913\ -0F52E497BF34DCEE95E9A4907A525486B4:\ -1914CF1496620C8879F505103D41BD647450DD9AB88886DE7AFB7A607FC71FD6\ -13BA2D8FF0A5340CDBF4CD65F1DDE94CCE6CD8206B6039E5EF17C90FB4CBD2E7\ -186894109FA8B7FDA6DC90B0248344AB2C61EC746330A2D71B794935D8BD295C\ -2DE123041E9A54E12A042611DF5A7CEDAB6E43D7ECB4AEE98435772795612FBC\ -E8DCFCB415DB01ECAFB9E93ACFDE2B0FD7B4F2BC6B30BFCD3292EA1D96BE61C1\ -542CB2CA2392F0A10A13A362D5E50F6F9F:\ -F1BD3EF165421B150DB578BB945B77D81DE4801B62577F1B9392F33BABBB3733\ -0C044EC6CF464C3E9B87FFAC2EB150660F486BFD9554DFDCEB772676C45A9E8B:\ -69BC3A2DFD5BFCBDCD523D3C774D3A1E - -9EED8E0BB550F5CA3D84E1D73A8AF5C2AADCC2D0DA607DC25C801F5C4F1910A5\ -E9A119C5E979E0C87E1E70EAA6BA18EFF168C0B38E6EAFF8D6549CB2C2D9BD35\ -B5C3CE74D6B836A5E1A4CBBE60BAB759C0DC3161D2A0877A3E1E93DDD0593AFC\ -955229B6AFD95497EDDE5D518675B11C645105C989DDF00D39B32DF0B9D23395\ -7AF786D1AE6351FBDF768EA4A0B36E7E4731C3A8FEE0C4DE6F22706FD968B9E7\ -853261F77B115195D580BB116EC94D1CF60E:\ -9DCAEB90ED5B080CC167C05F7172A1CCCA7A48EA953AAD28EC40357FFE7AB3A8\ -2E00A0704DD7E2FD2CA8AE715E66EF2DFCEA1561E8F454487F79D9FC342B405D\ -BD38F0F0824B72341996F33FE002837C710988D24759B9EB57F55B488D7C01FC\ -8ED053726766318DD88DD954D586754FB1737E820D984859731C4DE9AAB23E4B\ -BD79A2F4F6F71E5F52591028DE8F1819D2B9B141C5F52B47DB979187273FECF6\ -A5E1572EDA6A7E4702228344548BD17FC19E:\ -E5D8BC2238FAD3A3C3C565D1CBEF967BAFBE088DFB95B676C383B4699EC71B4C\ -F74B89828261F76EAFCB0A465D111C0FF74417A517646A1F7C96904991DD5B16:\ -0F1F5163DB41F49F89BCE003EB792854 - -CB36C255CDF2768A8F29740B45507A28E0E3EE1865A78B6C35666C6311B4FC5E\ -C134AA4EF3629A497AC3BDC913BF8523C439436886D1C9AF3DA480D0CF6C3A61\ -6547EAF9486CBC4F99B0AA15D84EFB8919431AE33DB44B99855486DB4C0B5CB2\ -0C85F73A2142D18D89B771F394D78DD30CA9903830DFE140230F6F2A43B19F83\ -CA3FBB62358CA6A33F264DD31963E73ECA7B2DB42D7F62C04228596FD670E60A\ -20355A4B4DEC2FED6C653F89C4E21D2C19F104:\ -28D0A0033B0578BFC8E60566F79D393E96B76AF08B8F55771DFB81D7734EC27E\ -8241FFB17EA4A7B3A7932B96D52107EE052C94FE8B8DFCF25A7D8CE97FE88CEA\ -A9C10B3CDDAC754DF37FC30892B3DF44962B1CBCF25A0F0F1F0C1312B4791E51\ -882773D9999F7599B8C967C94D76DCC57A470DA60A49E47C5E46D5F8A47594C7\ -C7D2DEBF234307F55CF027D2E550055B70F16787E29A9D917A48FF0D15121C0F\ -55248720975950959B59C0D24053033F641E8F:\ -A187D9D49AC60D22EF8B3D47E295C028EC4DF05BF802EB6993A0BC52A16239C5\ -B949869D0B4148C93584C5B77D9B72529DC9031583EF5BFA790888B84D504C60:\ -55E37CD32E66714191798C6280AD75FF - -C38C7287D2765DD0D483FC4F41FDB5CE6DF637B0E792343E95F14CF4A7CEB177\ -5B01A3AD4E63C0B77ABF6640C6D0C37B88D3B4EE9AC568F7840DCB00BD30DC6A\ -3B1A9C67552FEB0938B5B881F2EAC65A56E524BCEDF332272D88F241BCBDC417\ -68C64A5E834F7599526D27E5F63F0C94587B512713E816689E7B69A3FCEEA707\ -59A0BD736D56A735C1AC3929CF36CF38C3C1160FEF59698B5544486CFAF53680\ -FFBA6797CB4D7570EFEC48E0E7C097C4F009BA6E:\ -201E4B369B955710982E88F22E2214D51AD805D99C3D9F2C43E04F08A8144165\ -0775AC589BCC4760F592921222D772E672F1247A502CBE2405DD4432EA73E2F7\ -5FFE441A11D0C6F25C6290A99C98FE6BA02907671DBC94F65E4AFDF6D0E63A6B\ -D2F7923A8D3BF2ABCBF3487D37ECFC74F5D0E2B6646AD9E6A04B273F6936A2EA\ -43B49512AD9D81A793286A7BA42C27A04B2258583B6A32BED901F161D3AA5F50\ -DA26D33539C093301456EE68254894F4B1DCEC66:\ -AB1A21714751B51353C601C85F2D5DC6729E59601B14D2E2020393A6CD0EC9D4\ -9F886ED07EFDA183EB93BA58BA704DD9DE5511116D806071C83FF1D955D20014:\ -9F9F9D6FB6C4B8A62E97C7B5D67974E4 - -7625E6E5003EC257F2B9255A341663E01BD6398D2C5458DC4C0DE6B9A77D3A45\ -5D75193B1F33E5CD1D8B16C3386BF4CBB356C299F8B24FAA389B297EDE289F7A\ -8FCF4DAEBD45918D9E98E3EA7EDA78115E3826BABB48E786444A691969C6C185\ -7D6B511388700285DBBCD44336B89B9E033EBFCA3A35093A6B41F5FF54495C11\ -D2C87FBB43168A89C10E755BA40156D25926D1148C97A0A0412B952821D2C0D3\ -25E6649CB409201045AF041820248D78C1D00C95A1:\ -1BE68233BC6557601760BC9121BA5CE47D6B911C046D4D2DF5EB111C66563E19\ -74F88C509F97703A4427A2936AE8180AD0513288530BBE5365EBA31BAEAAC622\ -6DE2D1F093956B5A97BD0FDFAE55ABF54B8A91197805899DF5BF6F84652113EB\ -27991887A560CE3A093BC74B7B0A25719E5DD2F3B07D5A7831EA0A99C6A16A6B\ -E527E4AF6CE7BAF5C7744F27B98D9E2F9981246765913E537AC69B3E04D31B5A\ -D5F9EBD55664A7DD7ADD8984984F08E64F8598A766:\ -AA6935EDB7F287F5BF42A259EA65459847631BF11DF4082A0C2702278ACD6ED9\ -DA5C54DA6B10032CDAD18EEFDEAFD8749B422B04747B3D4DBFE22C1200A1727F:\ -E9514BA0F3B74767B55EFC4595A2F122 - -7DE539616CDC8A30DD4E001B3386D7E4A1F61BCE4FAFD5C16FCF2E23F724C39E\ -31B2DA02A91CB4CFFDE8A3D0F95710D07C6CC95727C62F2C72B243740324D0AE\ -EC52FE624C9F3348C996756D251EE46E4764D933EF36356E4B409FF116F08E5E\ -C4D765DD048D1BC49B9A02456A01261E877D713DAF44500B27B0C2EBDBBE0020\ -AF0AADA465EF984A89ABCB6E74D514188689F0DA488EB0A0BE9B7F9A46F132FD\ -11EB69277BC0ABF65216F7745250FF64A9F4B5D5EF62:\ -49A858D82A3D9C7B7A38D4F7C9C2961D83345DA52C75DBAE7BEDF317DD540784\ -09E7B914CF2B08A080ACE50654A87454247978AE5F1AA86C065A5EE8666FD4E0\ -6A15AE11EE6388811BF94DFA3FFC3F8ECD2ECDA464A57373A79C06CA4109C593\ -70C9DAC196BBE7063FDC4DA048E5DD50D216EEDB03DC1D52DAE59A32F38C50EF\ -19935111EF3DDF28E46236DA0EE77C2833FCC38E465C8EC67DCC3DC2C28873DA\ -05EC0B9B6D651B4CC2B3245B4479A04A7EBDCBF21D87:\ -4AAD546B1D34CD5179D90DD836B6E761475F23CA09ACA77D2970344C8D6C216B\ -56B8C9FD859739234C763546EED4E7ADCC225829C8E9152A4BA31F7D16010E04:\ -6452C6862482AFBFF4C91F74F679CB10 - -8F986144100B7EAF52726D8E75E605D1F65DBEDE7B19D041E9C79F009A6EBC13\ -0A059DF15C1FA42E501A87F112C335D2C8FC4E9B95267B06F7327A9BCE3AD29B\ -9E44F119C53BA3238E77278EE6CA3B01AF2B0264E855FAA245FEB8B602D4F803\ -31CCB7225971347061CCAA19B58C25B234B84C99330946360476825E1B71A22C\ -D01EA8911932A2EF373E4EF0B6DFACA348CCE90E6EB8D51C2816DAA66FEC8A24\ -D2EFAB20D0CEFE91E4566A613695F6016A29099B209D4F:\ -2099C28E7762689917BC6AE46C861C3C633B3D74C7DED7C005FD6AD6E9381107\ -10B29F8D39D1DD74A114A4B4EC66890769D6F596B00D8A48AC4266419A379E07\ -43F5CA3AE2EAC7BF7BED592FD62DC0758475808C0BF3CBC60184B9BC0F5D62D2\ -DDFF525384916C03E5DB56490711FA1363B208DA8C1FB70E17849804E1F3534F\ -B14B1DA63B6DC02C4870A89A9E332351AAA91256E917F96FACF4F55E91968B0C\ -55FC2ED242104330F91D30810F503B1DE9CBED1BCD6D48:\ -E66CEAA1B5D4E2BC78F7E03C6F86A292FE0392806D8F9C282C47746926A54904\ -4D47254C861A9427CFA3A33CB685635BDE03E61B644544E65055A25B873BBD83:\ -02863060B296D8EFD8F4A7D266F968FE - -BEA4C330CAE5A15DBC4E0158F6D37B5566F75395BB7596C13552DEF57219E86E\ -E1F2FE2CF7E6AD6ED4013389469F027C2B6F6AD77EA0E914927460789F8E06BF\ -F978CA7968B3651498BA72BE1C0F355EE0F44EE1B8C9082D8A97BD11FD9E8253\ -4F953270B0B011CE2BC49DDD8A2E7F8DB7CA6A157A40430869ADCF23C0EBC174\ -2716F5DA731EC2B7EAFA0C631A78F3FE7291B93BAEFE1891FFB194E748A64165\ -87302D8829EC154C0A5D2CA11603DED4A0CED38935696882:\ -B30A92B97E9D0BFE0710CDA1E1A3D7587C9D826E98B0E154FFCCE257D7957F52\ -DDCF98C0B0189C64FB0A39A5826AA79B4C3B33677EC3A4E3D5E83C00BD80EF50\ -48E30D046C5FF5CA46078E162F2B00B0CCCA53E33F1E6D7299E3C5ECCC8E501F\ -7DC5CCBB2EE3C9E71F631D262BB75E040C62AF05FD9053105BFDF8AB364E8E57\ -9C730C063D4CDC736DB879342278DDADB53FE897D9F08C58C77749E889509FE5\ -47692ACD2053BD90A0F4DAB93D61FE75EFB8A59F5EEC8DFE:\ -23963ACF25AF2227DD843B7409FDC3DA5E9E9316F81EE8B5A2CCCEB1C69F58A3\ -22F707272DA8B4C76E0CFF5F965594D17C1DEC5D44B1A3950837D73A6C95F725:\ -ECAC60D619A3E3E751D0FFAD0663AB1B - -62664913FBB5B6456D74DBC567A448DF9376AE6FCCB0F38727BB5CA072924B38\ -7C8A3537DEA6B5513DB0B013E400A6BFAF7E00AEE97EBD6D2A214546593C6F14\ -8F0969317A559923E27FCBB196267B35268468F4FDA36D34B4572013642F32B6\ -9DD0A340E55D57477149F119483C552D6E5145C5AE95ADC85277DC7ABEC1FD96\ -37E80CBC7385B81AAC1DD0B3B900D3C9DF9BC074420373B8DE3236BE220B0BEB\ -2CF1E8F764B9994A3A77EE53856C9894E0A2580749E133F4C2:\ -C7D2A1E0FC1E4CD8BAA5EDD7DA174699990711CA471FCB435232AEE487CA370B\ -84AFCF6515A13ED8311BDE1DCE8BB7044D96F6C9874CF2763811099F5FA3554B\ -8EA0D43016BC9AF6D4D77129E4E81402D3A5DC59E81CCEB5C69F96CAF9AF52B9\ -9E9BA2BC7CD39FC98A01B70A0E0FCE3D5967DDB47C1809AAF3FABC75D83EACFA\ -249CCC1B245FF3E19DFA351E2E87F39C30DB4E5735A128F717A637801216D7BF\ -8AA3F4F299CB7267DB3DB2D5023A575B6084EF609E3410DCD4:\ -ACA7EE3DD9555536B650F4F53F0BA1152D8F60A870D55D425E041D9F9AB94FA2\ -CBD6971F6464B9F489C03F0CD5DCD9A019BEB956C17B6DBAF5C2E04D16995A91:\ -543D3D2F92BC46A81426EAC0CB795D69 - -C3C494F351BF2D314A4FA0A5A8E0119F8E0506AE2F030C75ACE586F3A0A9AAD9\ -56467F81607F3787AD327B11E9073F2C750AA1069C838A5FBF57352BFFE0049C\ -A63718DF8B9272F20E7BEEE83DBE61AB8436642F1D05D2C8C1DBF607488CBE45\ -7D57CF85C249F1D5EC6779A008F698CE8DAA4640B4A18C99CB6E21DB641464BA\ -3178064B8A49FF4F997D64B2C1CD3E6FCC590501AF2DBD55E4BADE852AB17E8B\ -80759BCFB24E9B8C0288EA1BDBB14B03D2FF32A5FA63CEF6E32B:\ -0E322AB41B4454267E0E0B7024AE969089C272429B389F74ED19065AD285081D\ -070CE8240E6FD0BF0C4AA4F1DB361C22634E81E3973AD9354B8DAEB208E9F6D2\ -9EB44439CF2E513019E4B3C7FF09CE129559462842C478608BBA469A8F08D608\ -7D8D2DAC87241B1046A3F208DA0B5F0D3AD7A6A20072B10B3D36BF45C67E3CDE\ -5D99EA175AA9B84BDCB0424D821E403093732DFA97A7F65C8D68F6EF21A7BE7F\ -AC92D7E7A192AD7DC7460FBB2ED1E0DD0225B576F1481130AA02:\ -D19F3D8BBD36A2ECA71AD0FD1E03CB29B66CA129D1517552FC28A88FD866C239\ -3A9140F010115225190B71D8E48C502F249717D002D0AAF0879AA7CB39862FD3:\ -2C3C41E91B8680B9A65C23255CD0F3A9 - -B9C3725BBD665B4E0A5AA9663FCA7078CC2036B7B7E9F2955E0C1E82257A5484\ -D3B4A20D9EF0437412DCA170507ACD8B48D576F18113AC9D191435EC91C6C03C\ -2E81BC3945477320FB4114D4AC917014341CFA083E25A7AC0C28FBA6309E7F99\ -6EADF2B641B156A7C82E68878251D2AEAA5A6828AC2E157B62A2B16409C25D09\ -EE882148C0D184EEDC8F533BE34585E6A20559379E6AF753D9899F65E87BA1CE\ -F8E0BF6E3CA80A984814E9E87D004F81BF2F8575D159A27090AD7A:\ -8AD45617139ED7C6DCA516B45F0B216F5AEB276043224330CE8D418C82AEF428\ -090055E1BCB54860BF0DAE0A344862EAEC249B92DBADCF931EB157A98F857189\ -F6C558696A797B23C224B36E5D94E36CFBCD2A9228A71F732EB77EAC86BE4343\ -F165012AC4AF8046214C3CEED46CF29C5C05CED26EF65E3E301582506394E92E\ -5885960B13A2E1A7F543B6757B36D17A71BEB2D8F81FC7B7EF7D3D6E9ABCCF1C\ -6983B49B4D3083F4F7425CB7FD842AD4FE76757BF3C5D45EC1E3F6:\ -637A99C167656B03D87D8C25DBE63ACE3F771D9650E7B3E51EB800B1BDE1D1AC\ -400DF68864CAC55B5116C59C7493B5131E5B9AF1A76D209F55B1357795D38544:\ -B0DC648EAFA497C868805B7FA3E20FB1 - -47816E0BBBF336A85EA59E248A3BB0FE6A7642C9E85F177D045738D642D5FB2E\ -78531AEB81427B829C439A7A305C020356DB936B9FEC36AF4E863004F329799B\ -3EE3916C01C6157F637296864516117E838815696A9787423ED8E3F0AE8AE66D\ -F8C3044772435FCBC630084D31945A4AADF087ED22B178B5DC8CCA72BBB4C3A0\ -BFEFA407A3F9C45816966CE4910054D9D06F28EEAB8CC9F91004A5C89B19FEA7\ -70B0942B87F6E795556A8E4D42CE252018E908273C442606244A3C72:\ -4549FA2E7E9E84F05256156EE62A8E16193261954AEFFD85C0EA3AB1A81EA1C5\ -5EDE1DD0525EDAA1A30F5A47666697E54602A8343AD642848E5AF59D89340D89\ -EA685478B738804C7BF108A964B6AFAE9C60DBD8AE863107722A877DAEB28924\ -B1DD946CA03FA3F2CEA414A4BA157C187A53666ADE8AB3B9FC163453CB492938\ -884ACF0DE9002511F41246A3D871F15B90A813189541EF6C6CEC1D91F9933C80\ -C41EDA3775A681CDFD4B180402538B925901390CCFD7FD827B3586F6:\ -19CA3AD5BE5FE687923D51770953F1A8E94EDAEC453F43ACE7FFA2AF41BB18CF\ -E619F1D53B86223A444DFD9C3033C51AF5B20E9840EED823180FA574407B4E42:\ -A84B2B2DCCB8DAC4B99040F05A69F77A - -F9B097CF2AAAB035BEA4DD3153A397FD44179D7A7EA9F6ABF7000B10E1AAF022\ -4F40B5767D9A2DB43BBCFD14D35154AD975061C9423AEE456546BF80ECB9FE51\ -B0E3E894D39AF72B8A589352E4094FD71A5EDF6B3290529012D20C4B946B4C9C\ -DC30FDBACFAB60B9F8B48555C1FA40866F2E6A7B61147035A6B97A0669A0668C\ -67329E4D1AAE9C599E107C9E15895C2869C2DB70F20B8541A8238A7918829160\ -FD31854D2C9F16CDF0EB730E60DA72E16FF58BBCAA37DA0A6FA8970AC5:\ -AF1941EADF7EE25C41E40C9CB5206B312C1E3B568825AC2CF2FC0D97ED98978C\ -BCC713BAAE8ADCCAA654A029690921F766306B886FC970115DE7E38753B14B0C\ -9954587826AD95F6CBC27C34BAB95EED0DB93F082F8AFC4BF1A9FD9F3B906227\ -08FC2B14E81460320A4C4D8545F30D04EB5393A82E1134BCD183E6A77A56C4B5\ -C6E9B83DCFEF8262B08D32A9E8DF9C033984416912C93AD09BE869B043E86269\ -8D660ADA549635D9C9A8D45D40F26B5BEC11396B480243332531B5F121:\ -EA4E575BA26D7118D5652C6206A0D552DE2D60E39569D87634E3F130BB85FF39\ -E5E72877B8475AA59609633C378CBCA9D463B523BFD221833626F35C9768CAAC:\ -0A232936E17DA9455384EBA191207CA5 - -93F7C2B2EB2E8C0684F0F60300ED17418275F09A7E826A61DA4D28B2B0D72A20\ -9330DA4694147DA1957D761E3D50F1CFF760AE7BB222E1C1B0A8DB34E156AD45\ -12EC4FEB15236B580CF45CF13DB8379C6E3EA61D506CD6748312B321AF52BF58\ -3AE86A14CA2F22FE8571B8B7DCACD4266035A5E3829647B8696A413BAC0B7039\ -84AF99AAA229814DD94CC045DB8CF0A9B2E6B743B7A1180B512CBF0E80D853CE\ -6E4E0C304D970D92F38D0D4E9B954CD14172F1745A69C4A82BE358FD8386:\ -B9020967A74C6EE0B02D9A42263045CF5F88934FF5C5F90E9355EDA925DDEE94\ -9DB4C1600CD0F720C65332180D99ECAF376626067E31D665361E21D5B72FF933\ -0ED7EE4E7D1FCFDAD0159AF07F60E4E2F35BA4AA4373B1DE845F56B572547656\ -4D240CCA4CFA4063C374DC6BFA5FFB5C454B35409F5C69C49FE1C50E02A85357\ -E3ADA166496A82C864A44065D8D38F9722DE5CAD066ECB4D327E8952CB4A80B3\ -8C5E76A1EB48EB6E249A5D04942146B1342C948369D250E6BFB32EB01A0A:\ -FDA8EEF72F4FB65FB0147AD49CD00036B0B4C2E604CF9E4BC9FA99964CD97304\ -221DA1AA2DAE411D7D7D88CCE21A69F735826EDF0322166565352A15D2D25A5D:\ -4CA75D128185C53C071D9C57D2820202 - -DFE82B84B22984A80EDA7A031493A56262693C41E0F08A27A80667D168DD6704\ -B8D82F92DEA1EDB2D4174E4017C4CE1D7E66506BDE130E2256385920D3D1E272\ -226C94330812CACFECC96BA9232905B74915DA30F7A233D8C961C6977DBFB646\ -26158E37A9878D26B85328E8A79097190A3F5F339E4AE201F8858C98AF5C5994\ -E858CFC8D34268689818CB2867705708BBD9CFFE88B2CF16C018DC47D730A6A5\ -B4B951AC57E99DCA5FA4E172A4A2292E1827F2ECEF94FF483962651404F64D:\ -9E9F025C8199E0AE3BBF78AF8131DD0E8CE35E330A50431BFC619BB8071480C9\ -49B896BEE8BEF08E383EEEDA92BF950EE45F8F335EB006DACC17A9C5FB3294CF\ -BAA2FCCF7819BB1DD7F645C5F21B08204AA9D89083648FDCDCC451B39BED9CF8\ -D61D79308DC80FFD04A901F1796CA15A9436D9E8F56C03858B8C31EEC9633D0F\ -29FACAECCCCD1E26E27A9B4B75F0CFFA89F93FF7B4C370B1224F3A99624770BF\ -956E69E60444BD81521DB8CA8694942824B0719846C75001F466A2D72CED4D:\ -65ECAB031D16120E74B745A1BAAE66B69994D210622A996E618E1B3ADE758196\ -9522A973336CD20E0ABEB9395D1ECBF2254F4FE7C3C98FB5BB7C7BB9E00986B6:\ -B8119F4F1169A094C93698B0CF33385F - -6AD77D39118158C637757331C96E96EA0083B575AC901DBA359D5986FCB7FC95\ -D0EBC94C1BDB41096DB2283D46FF939D42CDE66E2D186C2D93D74CAB23C38574\ -8083F63AEA5E7CE8DAACF3FDE49F599405B96DA231124F4A1810A5B0EB948692\ -5C86C1E5AB95D26A6C6E28127A2AE877B70C9E6EE94FCD47B642224262FDCD05\ -5A7219C76F74E8541289263A38039AEC327D50B4FDBC3F33E5E9DC1D74CF65A0\ -F0DF10B5AB7189FB19EA765BF8D7080AA563E62265FB59DA8C92D21EFDF19C14:\ -76C872A42D922821FE22FEC8BCD179F4C775FB3010C57A2F3E10F6DE19DC60F3\ -38E81D4D36E3C07E9736FD837BBDA7574CAB760E3EFB5E55BA954C0FAD01B472\ -CB3B159FC364EC6451D71CCC334FDEF95F38CC12757FA63005ACD6A8305BAF8B\ -421F299B4FE02D524727D51E7E9CDBF7E3C46001EC49C5F599410D5F06E23E13\ -30B49428CA36EA4DD7B28428AF2522C01EA9C214FB3C77BD43AF9BBAD49B8CDD\ -BC12BC28FE1415311077F475C835728CD31E189F1E582D08254EFA4D560A44A6:\ -60CF7CEE39E10377D97679D791DA74E1767A6E47BA720AA78EE6A16F84A7B69A\ -9C7DD398CB04A08DF6A70C4BBB48F84495A69F185C37B1DE2213F8F206C29F1F:\ -E3ADD082F8D83F9040BEB9352888EDAC - -33B72ED559810D293CDAA5F90538C1288EED84BD27863A1088489F38A5DD9C15\ -D9B63235A471B66A1D553FB94A7826852C32E64FC0C55D48D397AC368541EDDB\ -33686C15426EE7E3F939001A1DC81F374B8804851D7870148A29FD3A76BDB8AD\ -86CC8B5BD483F0EA0D1C40D6D22AD52A86162CC63703E0E48BAA5E7A85BDD407\ -7B6EE61C0D27F87EAD8859181F86FBD92FF30C096F765DF0ABD9D23DFF984FE8\ -9BCB9556E03927C49A66744CC56B7B0D8DDC3A2B6DF03AE91A6545C778B287D9\ -47:\ -569835F173A3A33F6035797D16BBD308D1B501137496BE22EF04C8C77B26A25E\ -0AB82E81EEBC4368264B470A6057FC1F13D612DC1A73127619684F0F1A44472E\ -B035CFE000E5ED3DEFD2938ADD11B0718DD76F8148234DC7F25470247FF46712\ -509F886B3E21E27055662926A3375C84CF9EA31F3F2D4F877E1D9FF9F89F7388\ -53F94953AA594E51462EE0C3144E5A6592D596BEEA53271B8CD3417FBE150FFC\ -948B652C8EC1C8715601FB02B62D0562F6526CE3E52A73B097F952A05F50F6BA\ -C1:\ -621F5484DFA2D820C57EE2A0A111D6F6202F1C34197F26F03ECA92279BDC3EB0\ -D0E974D90D8F04672A0B2D13C447B5120FFF859F57479C98C95A70FCFE9F27AC:\ -52C427FC02EDB8E6990F5CFA32E2409E - -558814DADEBF901790A50ED6EB7877905A7A1D08FE5BA318C7AA1D3ED42006DB\ -7B90156D940DE3B82463B46617BED8EB3E036B689582F38BA74021BE58107529\ -9C94DB0DFADDFE12C99990DA22A72978ED81FFD9536412D82BC74A00E6BCF467\ -BB3B777DE7D724A1EA8F3417E213E4A864A99A33F3277B5C4A4D5E6A39973733\ -721D5E2A6973B7062A43EE925254A53C94EA7332E3F891973367FFAD4264E892\ -678BDEF566AEDB60D4851520A22B580324EB6B0C4F04939DD8FD65843D90480A\ -7E4D:\ -E96F869FC3398DD68E2DD627DCCEE24B03EFED44B408D9D28A45B8D990619787\ -D47A02D4AA6E2CA5D1C53A7F860A55C4E52809031B8AE6961214397A76EE6F9F\ -5133302AB9D1EAB144638D4FF1225A1B3D3971D88770F6E1456E982A8E9CADB6\ -794A73CAC4CDAC67A9F24E0BA09F7DCF3D18A31B9B63B5A1EF961995B11288B4\ -3E6DAF8A019F24D91CF65305411A48647870C9CA2C438707890844ABFE0EB68C\ -2FA125B7973FA68223469EC72BB7010041C3005A2B43EB59DA1444D9C8FF4270\ -065C:\ -C9FAA4A9C46B4F3A16286EB2F00F9F4B530487385AF169EBD8B6A91639E90A94\ -0B22F7E83EEB1A2D45863E042F3509326F0F51C8DD9DC35E8E7B234FAFB6DA7C:\ -726DD701F3623EEC8074ACB0EEE33C08 - -7232544907730E42A16C9AC818D1EB8905DF1043DD3F779AB8563A6A456BB932\ -0787B13C9FC200613607A26177DB259496F2CA94BA7BAECA2D578ABF325EBBF3\ -D76F88102E51F254A9B3EE3277F0819C61064C81C398D0F80769CACA418E10F4\ -ED16BF4B3039623721FCF46E30FAA7F91DC2F80B06A5438CEEF3609A902E9654\ -AA69838D6E6E080B4F3BC1F937BC0A4855FDA9737F3AF29AFC4B05BD4850B208\ -0F4E3877211F9E6294CE9C0209082FAB17AEF21A344B1EF8AB14F131A63088DA\ -97C2A0:\ -947F1F61843BE3F4027CE622E6A9F881CEF608A9961E59DD7B036284A753FFC4\ -C3FE97354F66BE342A4DFAB4309F519D4F7DBECBBE284599DD00D1769FBB1257\ -78EA434545CD68958D5A775D3BE6DD60C056530A823B393818273602322CA9C5\ -A5386224F33D8530E0AFD9E159B116CAC0C07B6826666539E746C72676076C17\ -303964E3F9CD5759F30B079631D3DE70CAFDB36F751CE8E7B5E070ABE970E06E\ -1D6685599CB4005F09924988ABD5427A45D9EF4235C269742C3EC5351272FB3B\ -FCF8A9:\ -6550B6EED999066C926A7CA8044157CC89681E8F12AAF07E5836592A86EC2761\ -942BD821E0B33D93DE71F8A7C295B53F8A1DFA0D77B53DF684DE81CAEFB63E89:\ -F80966FA407929A27FADF059CC486A93 - -8E7F1F8DC7C94A6E2161691DD0916250C3E52655DE45216820884C5703A89E61\ -64AA94957A0BCD4DF4F7EC40DB6E8BBEAD2541A9C360B888D8D2F9A52161BF95\ -D69848A8F30EAC6AAFBC0EBD3EE6BC5E1D1F8A1B75226A555CCB3AE468304ECE\ -D198586D9FF10DB28E7987B6D61D95A0A0010B6512987A848D9B6E5639A07A9B\ -6C0AAD572A4462D6E33DCF27506B22B73C6427006F7CD23871414B33A2921FED\ -B2D495098AE7B38FF402105758915D63CFA37862B295779D43E95CA509EC171F\ -AA7948DE:\ -88AD68CCE9BD6F09B560FC429B85E661EFE66DB2DC1FB719756858EC957E6665\ -7A4E39FCD1E4D0BDA9BFE4258DABCCD20A85025DCFAD96FA09FF4F123647F027\ -553C16E2B44A659D833CBA9D57308EB8333DF1E9B330F2DB8BA8C7241E207F5B\ -64637BC3A2627E0067FE86ADF812585837FC32F32C1BE8B5D55E39C3B8D9148E\ -F835EFD92E3213CF60EA2B14051B6674AF51B6E79992C0A8A7C2C6DA82D677AD\ -E52C5884814C696EF17F46CE7E0164F38D6729EF65767FDAF68E20352B3C0515\ -D362DFCF:\ -11AC6CECF5F0EE65F7E80D6A67AF512EB7B78CC1AAECE515F7E18B0A134C849F\ -FF7E0F0A0CDA0A6EDE88672CECE501D01A37FBC1512635A9A88877BB91339774:\ -F5D202E8898E2AF85FD6BAE92F719628 - -823D9C292F162B6AE0791727C56C457D72123AC3DC6764ADF57526F53191440B\ -E38A483A3E0FFE8405F1EEFC20F01B23B874F09856532A108F9B94ED5D8351D7\ -9371C3AEC1CF86D60E0DC453B267092F664D5EA27428D926AC4F93CBEDEE3078\ -E354691FBF529716DFF11556A971F364DE4335C05AF97DF6382BE3D6D1C4EC08\ -0B99D08447DB0C680AB54C1C8AA26A41D259C7E5365EB301C1DC46651AEC6FBF\ -4322E725DD7D51437AB3F6329BCD18543A149DE9D7F78045E5ADDE4CE87E3371\ -855705BD8E:\ -C092FC16A03F7753BAF6DBA3AC0D57EDD955C92DA7CA1DB98576944054C069BC\ -870DE3EC175DB0952CDB6218D36230A02A29B4D81DD0E2C36BF3D9F71DD3C274\ -E1074A8CA39112B5FB133DC30CF8072FB6CDB5371E3F52239338E98DAEEA0B47\ -18443E5C981B18030CFEEF02DB93E673A6D810780B9AF4579D78FE55369CFC01\ -7929E390D5AE8A825ABAB2066F3FE652D12F2CA724E4576643977015F0691659\ -B1633E0769C09285B7C0F28AB28E1AA6EC0ED70FA6AE0DEA900EB516FFAC9DCD\ -B40CA3A9E2:\ -25A201441FA5563112EB8A0C4B6DC434319A8DEB69847A3A5329684ACA259799\ -995760EA8CB3529A6DA6728C3929B831E7724325CF7B8C11641447C3187C3759:\ -D07A20AE8E1B0F43C6D60A4EB6E5AC50 - -64D338A2C50E45AAE4C4C07CAE9534364DD33FDCB7E8FA003234FDF883E9DDA7\ -689E6DDCFB4FF0CBE330CF0AB5E8CEADCA1B09247101C0170469D33C52C50002\ -08118C2D8B9D081D0C7D742A8F103567486A30526FC0898584AEB2199D8A8DBD\ -0F48016B2F616A61F1CA3296030B1E21440BFAF92ACAF9CD5B92ECC5463BBB2F\ -7279E75CE3C9F6BBDB42629EF59AACA1F99C07DC90280F99F0606447D0463167\ -BCFCD1B1B5831ECA19FBBC06D35C58CAFC92FE5AACE9B5B835C882485DE0F7EB\ -91A4B818F8EE:\ -6523C551B41765D26F70C84DC0CA497B48686E45B5A5075AACF8186DA80C6B95\ -AD989FB89B47DECD6648219A6FE3FC0C192E758ED9DF8B4FB5D3DC039FEFDE69\ -68C301A0A5B45DB6042BEB70BEFC1865B7F5CFA46DCC1DB4CAC3CA3435BE0BC6\ -2A42BB5B390AD43CBDEFE615ECD29DC0669A8E27B18C83281F1CCC2BD7B6C9FA\ -5F384738D4A239E785BF2DE1F4C36C06C4FAE897872B0A90E24EC21630B39938\ -E96EFDDEEC4C71A369888A468537F9DA9110901523CE0A4BAAE1B3AB43649C80\ -25FD7F969F2B:\ -FE372A2BE18F88FFBEA1900463782A5210D8A533C2216E26EEDB4B3EB45D51EF\ -CDA0E4383D3B1B09F4512F773AC3BE774B8497233F3617A2430B8D8B99DEED76:\ -99B51F9AFFDC8CB26E44E0C0594C0A71 - -5FBCB5362CE55E799FF359DDFE348F4FFDA38D5F018DB27EC692AC334DDE413E\ -DE583F178FADBB4C3832A5DD6D588179EE4256FE449DA5617734616B2F2AD6F0\ -2AB989AC6A5423485FFE669652BED397F0E2093B4EBB38661E9D78AEF46987E7\ -C3DEE3C6CE08BA06C4E66D722E01AA4BB662BA0BD4E0B74FEB89E895CB5077AA\ -D0D792B344E5EF7B4B542BCE47FEAA88B7E626054BABA611577E9D20ACCCF9DB\ -6B06C88D36E6208F6BEB2AF0DE5B7BA1EFFA8FFD01EE752C1B138D9FD8818637\ -440805C907C59D:\ -BAC7E5588759B0A24569355323DDAE5AC088266839AF916D214591A20739233E\ -6967FCFC20044B158F1028917EE518D20F87AF47C48D976DD2B2A18C271960E0\ -8ACB0425D07B65EB16734252D9F401B19A1C5CB4F3E082AA0E511E8FC9B3D493\ -A6ADA1A555B1262DB19902982621BAB93BBCDA75B6E1A9896F60D2A15376919F\ -78F135F5E5B91C59023C5D7BC50C809A1EF7006B83CB6BA60AB0DF66909B5351\ -30C0193BF1F572632000D80ED77814696AD265D7CD5F45AB0DB9D73D8637C3D1\ -B9DDE5B36EF8A1:\ -7FB87D898FA0D7159C3F304D34A6F313DF4335CFBF0337AAEDF5343D10AC0CA2\ -3FE7241D9BB9A21DB4BBF9D7C93EB3172A5D9E1E54A1B363A6E4EF9B1BBB55F2:\ -9E264B3792B6626994A8BEC332D8D7F3 - -97F461B6865030E1AEFDBBCFBB7651242D690FBD8DB45FAAD049782616A62DAD\ -D00CFB2E7AB20A761682ECF01A8DBC3183A5C6121C3AF77E253D18AB7F0B0D80\ -8835547DB8BC41D8CD44C395CE370E6F618599576CA88A2C4DF990468D49A0D7\ -7481E1EC6ABF175F548EF0B39251F8D093A29D9667A9530E9D0BDE167C7FF118\ -E589DA7D37D21777B7E40C56E1F216CA3660A3E1E7DF721D131424FAB29C326C\ -E26AE08943040E0C498FE9DFE276705A7B0F526CAB8C31A970B6CAB30F7F9AC7\ -2A5196B52F8B1A43:\ -77EA54BC4AEDE40478C90B8A50779837B8FA233595D6B7DC96EDA6220B02DAFC\ -A083D10F73B80C4DB9AAC281AF962F72DA676F698D05E64DAFF713823EC6A4C0\ -D1B99FA64BDF2D59C25465BABBD3E439914F5FB144430D53AFF7604B21EB619A\ -DF33EC238691F43E930C0090BFD9DD13DFD2A62EB9C8D2BAD4E4BF750F976A49\ -8D6F9DD760F3DEC4125521F4204E662682D77E39A3B777DEAA801FF599BAA5FC\ -8C443DE5BA453F3593768DE7CFFB3B56C1A84D4443FCC7C428A0BF7FB494CA74\ -7389F05A97FBECE3:\ -2A11E33A15A29B8692A12C423B53A2E4073814D43F7014A2EF7FBB64199E0CDF\ -A51F67A1681AEE396825666F944E545E23F245A11C0907B590D9F73533D0421D:\ -5DF45A5EB5583410E0E762B8E283E4AD - -4E4D866DB7F432F970280097EA52E0EA81D35ED1C52C76E12061AE29EF662A58\ -82B72913B651E810F9EE588F89444559F42DD401CE1B0B9F6D7D49148DC6D835\ -C9A6A81193A4016057EE9DD64E902ED08474FFD916102FD27D95A60C9AD69FD9\ -3866082A0D4679F45FB8C966AC0D6508EC38D7F493924C40F3C2CDA856996933\ -C2D4FDBB78BC2FE8D9DA5DDC49860671EE058EE6BA28B65B136F54D5999652A8\ -49DB26D27FE5641A4ADF4C104FDEB4A26F5487DBA86C9D2A62A4BC5B4511F073\ -822D5EDBC5E3A81659:\ -1742264209D643662553CA2E0A05B1751AF2547622ED6172F72B15B65CCF300E\ -1E65DF050ED20F26AA5DAC492F90E58BBF278C916D9AEAA691C13497BD8DE7DB\ -18F0A5846FECBCB2181B3C488BE7B4AE62CC13BCF9634C93BAC8C911C56497AC\ -F776025CE29CE9A52A047A38E287D93E56DF20BEA7E6F0E897CB27E0B69F5412\ -6F1843D283C0F290800EC8B52B2EA9BAA4FA987D1E67870BC2903140ECC93682\ -7C86B610DAC2DE71D8128AA8692BF6F3790E9F518803358AEEB8588465F3956E\ -B530467CA36DB23075:\ -54169450B58DC995384B56B8589582503EC0438CE981E85DB2233296E03A5C74\ -29459207FA36859CB975E7EBBB512382FE8C9D4D86CF57976BF377B9CDE1C38B:\ -A4947A745153886122C8FE1349D67837 - -F10A011C7BF73FF432007FB7E791FAB8D9651D02CD9CEF8E3A464A063AF896D8\ -1D4CE9E7081B140E2F007365B1842287D373CD228B1EDF804D68C068C0A56642\ -C42D1C35950FEE0CA014E5EC26FA0F2D8EEF69E64102AFC9C450859914CDA8D8\ -0838191942A3B9DB71241E1092F8CA2CC4E578FFCCCE63CFE97B4DCB10485CF0\ -E5639796521ECBA451626DE37F23416EF8FC26AE2323FB0C2AB78E067C6DC4B8\ -C29A02663FBB25CFC99BD0AB1BCF2D282203C58E9ACDE093479D2F1644970DE8\ -CCCFB6ECD154368A5FC8:\ -4A563D84299330F82F07BB9C93419848446EBA03DE5B17A3444B8662626C82C5\ -F68F9862BD203D127A40E8C7BD735BBD7C918186A12E8E94C10DF5336EB1EB1C\ -FE04B73352B0A9C1EA4B1864F0B51CF879683909E34589B1A3FB742CFECB3A56\ -6AA0A342F741C19E9EC74E4CF1AF89015A8750AF9361D62E1FB42A75644E83B4\ -DFF4C3FCE0FFF85AD782AD1F66BAC393BB70D767AF6E1D5B517962180CF70150\ -E2BA56CBF632ED8545E34527B7460A359CBCCF598444B73D387B4E06E7EF061D\ -A53A280AAF89AFB529C6:\ -0E4189A200200CA465F873C0C73477CE503BFB689D2989E0F84247AF64D91E60\ -3153BA244AB9938B28DDEA17F062198D260D44C5518AC63C0302201B1344C08F:\ -8F01D0310D36ABFBB8AA420EBBCC0B00 - -DF55686B6C5C4B07AC9D773C9B84FBF544F046522DBCFA47B31DEFC615E82438\ -03C67B1C2E3273C239860E8DD536D19BAD4C42D9881072E04BE6BBC781D6E5E8\ -26ABCBFE9533114DDBB15DC708F6C0CFF2598713FEE9676CEAF5678C8ED38C6B\ -B4796ADC926CCEFAC87C33EDC062D2DDF6CFBCC35F0660D8C93013170EAA7798\ -76F297B8695D87A5CAEDAF470368D50AF33ECD099B175D8DD19E82FC57621AAE\ -9F910820E2A66C546BAB72D687EF7DCFEDFAC117E6E344D67349B794C39A3A3D\ -AA73DF58EAB3A1268452A4:\ -879EEDAF24203A141CA1207ECBC67264DDFB29A9ED1D8B2E06207112D8264B87\ -463DCBCF9B010703FAB6ED619E204924F74BBE9E5F5CA84232996F21A10D0F44\ -1C4AE19D955D91B821A1C2F1D8438DA7EDA2AF012471C6201B511A665F24BC4B\ -6EFDD03B0D87F70FF9BBEF05346F4CD537CF4A03F97675A59E89AAAACA4AE8BE\ -C18DD5DD4A850536AE95C1B8ACAA7E3FAFB0BA27E883D90E57327B1368D181A2\ -F1DF129FD658A077A3624489C20DB3A762CE66A2EE350438387C1D3CD86008CF\ -70678151EA7750E55B37AD:\ -855C0899401237F2B9E2707FB02755C38E9EB2FD53E0623BAA0D3EF98DD1B0F7\ -F26258B151415F6BF3D625EEC5A16883C52FF504E37EBEFBBE888179D56585A3:\ -F000E3FA7F45B7910B73D50A2E8B0FEB - -8CE6E2EE9454B5F7EA8BD12CB2A5AA220A249271CE44B2E51C6283A9BF220C7C\ -B09885D999ED0C111CE542D058E0CDE2564B37C46391FF64BB6994818A10462D\ -560567FCF7FEBA75B54DA5F0C9F3B0489643FE0FB8215D5269BD53FD446BF8B6\ -5B7A16756176C84A23054FD16C8DF85A8CC71952500A387EF379CF766DF40490\ -6E34A47D6164F092DF287F2E19E464185FE11AC014EF97749225128A95AB6520\ -4891321D69B0CB0038E5107FC70DC450E4E3D1E11B642A581159EC0E5E34CAB2\ -628A2B4DAE5FF94F24F3B21D:\ -3779E2D71D4A7B4F95024C217F29355EF163018F3466F924DEFC6AC2B249855F\ -7943BEC5E7D7F37DD0E463CE6C277ADAB8738EF42CA056F2AA613D2F2C02B227\ -7F914700695DA4AC794CC745EAA732B4C3E546452353332504384150A151C778\ -9D8F196703A777E94FB4D634EF10E23AF8BBC45E920AEA05CAFABE53FA57DFEA\ -D5339BDE2DEEB66373BCE7CEDF95A53BE10965035FB6964A9F716BB30E725853\ -6CDF610E31CED2507843728E3CBBA81408FD248416D62F87237212A1FBBA9C93\ -4A760CEE6A32CD842D503C48:\ -331DB15636D11BBA27FA7DDC5531C62FE1791FCECA8FF5167D0435AE89EFFE2E\ -557B6626428669095E99B9BB08B669BCE6FFF1C43092076F41299FFC74DB33DE:\ -CF136D9D7357C7D67E97BA403E63EE40 - -714E80E6B7262BC345047BBF74BAF4C240C28128A402D3A9758590F0E564498A\ -58E527CC323B9B45D4F89E4A6738F46695012A06C466EDCA22D0A007138D97C0\ -63032A137CB6963B850FF7FB4859664CF7B94619F870A2B3BA857AAC713CAEAC\ -0113BB733B0361DE3F6D7526A9D30027F00EBB8FF17E301292DCB077A0044F6A\ -307C00A3BDC798FC46EE20A87498C3B95FE7EA83EC6F204EF62385C193A9AC64\ -7F76151DC238A50780FB0A56D29B2D8CE597C0492EA4560079135504130AA4CD\ -7419350D98ABC037016F53FE80:\ -13721A9AD2F7F60EA7ABD6588535A7ABB74D2E68DDBB017C89E0A017D8A51B40\ -BE749ECAE6D77FAA7355F001CB042ECF296539A9C03CC778B8693F0D0ED880A6\ -534848A1EF61C627743E799C8DE5BC43DFCAAAAF58847C8892538281B43C2741\ -14BB193364ACE22CD93A2C4D764D691EAE8C5ED391CC2A8BE37FDEEB32741449\ -9B7166F71402EA0A017E895748AE990BFE4AA0D18C23D941BA7BE78716821459\ -D02544437BD2F34A38AE965E269A81F4D57414E53685D8A01B1F0705C873AB4B\ -A5B0245670BCA692173E36B45F:\ -C27D7529EA44721260768732C3AD8B24E3FC523213A0905D0238EB443B09E276\ -45593372883DC1AF298EEE66C6DDD74DC45A007E0C22A5CA16CB3D2997637090:\ -D806638B5EBC073775377182AA6506B9 - -4273D25B20A2AEFA2CA5432051C6B95DE336874C1063E5405E584CDF6C24E749\ -C9A6450D350DBE46489457E58C4BCDCB5A4C4DE5407CC572285D4097B1E55712\ -53F4937BA7848E44B8135196AEF8C867284CE2ECAE37F4D7CE69A15BE328C856\ -8414BE88560BF25F8E00FBC2E369C6732BCD87551F7B9C1B39DB5A237AF5D3E8\ -591E3BD9B0A431521436F286E5648A0DA116AC3982DD18FA272186293769B6BF\ -1359CB311DF8FB408BA3C1AD95110BEC065341708AF064C8FD795E8DB95F69A9\ -62C62E9FF27EC52648FB9A274FF5:\ -8F1120F0CB76E067DB6E7B1687C00741B32251D7FA6AC7DF2E5453989A92345A\ -3FC5E0CC598B56327C96FA32BE2865062862703F812AC835890D40B6EDF8F8BB\ -93834F9CB012D0ACB45FD63FBA06017584D055A7606726336AD64CF9CF339BCF\ -2D92352E42FAA832048C9F9C0FD3CF3F8D66F7018EB7FB71773795F7B9D1AE56\ -E146771F704911C1FE73A5B471F6224E85E287E2C6179AAF796385554F68FE91\ -9FF2F263D51189C32B7BB878BCFB694000FB2AF809E52961B90726811258F12B\ -E83498CEA9EF253B24CBBBC7A922:\ -9F2990AAA561A95239ADBC1535924CD4E588E7F8A70439E5E88D04BC94C795CD\ -7E7AE34A586411458E1D84EAA427733AE33DC339C22E2920A987B188E5D1F293:\ -84FAE789CC6DD71D5BED9323C2E72FB8 - -06C19C37793F6850ECDB9623BA722A9CAB05CE250EB821AE57C91375C4BD3CCE\ -CF0BD950A4E1FD7E85508471922F7FD94B150352428D710F9323B2434B9E7E01\ -E4D77F90D0E91753ABC6FAFC1AC6570E4D0A6C517508FBD73E9D58A4A0FBBED0\ -063AB966024B8D6BA7DBC38AAA0B06F84CB0FABBF97A7939C529EB4E0A034505\ -3CBB9ECAA8725E13005734131DF46EB90199687202A6816214A0E7AAD81981E9\ -AF8ABDDE1609B1646A2693A8EFE5BD29DE2CF66F56C9F768C6A27372B9D64940\ -7A2426969E6276F08CE90C64B2DCD6:\ -75DB49B13820E32B148FC7CF5C7E21C083D7BCB61AC50293FF61CEE1F9901EF0\ -40B00ED3EE647215016895629D748445F1566543F2510116FEE4961CAF8B8B71\ -F161CA538C99F6F3E2F54980218B77BE9415E25974013BF0575DB7E3B4993D96\ -FCF99A2A7287FA625EA0DC60D44E89E20DAB845AE1299E33EC936BC439DADCE7\ -954538F8894BBCBB637BEB32D7C9622D0ECEB49D551B1ED0770A26145EC39BF4\ -7E14E7DFE18452F31003FAF21539163694298C7EB7FAF306F3270DAC2169D172\ -CB60D9A58C07A7E65AF534C41EC67B:\ -A9132FC52C49EA0BAFB5A6548B9917C5399FE1319A563EA44B4D39C0487154C0\ -49D21EB305A67FEAE4416F9BCB52E103DEC893E59BC33A54D7E8874AE208CE36:\ -309AD070B6B593B53750224008400761 - -C05B8538AA9113759E7D0D158FF727C4BE290D2357DCCCFB424BA08BC3E5235A\ -67452950EE27E8C24716BFE6BF071C0D85859A320C8C872BFAB7DFA1E3E5C117\ -4207BE841610155BE32E373509A64183FE4A05F00A99B51D214023DD41812C78\ -32215F5B4F87AFB3231E93B7DF8F3274397A9AD5DA4197E3C7263192BF2CC310\ -8BE40822327D2A57EBC6268D8B59A600FD0C55AB57765B0231FDEC506D9DFDD9\ -4F215859BBD3E930959DF7D6B85652C1EF482BDE7DD6C05F160ED7BD88090788\ -8DD4F877782ADD48875DD944121AD4D6:\ -133161332BCE7B74D3BC79553ADDEE0387E035EA5A484B5F2C59898C45197989\ -BCC3848135752FD908604CF15377C38B093CF78126B5F08EF37095164B75CB13\ -C70BAF78A97887B7BC5F2236750A4B6F48320D851FC62A4764FAA646A388A04D\ -997C8A8BB0822E047EB7FC4C69A6635A303A2DB2A91E715FB74AF8A96D9678C1\ -0A57F605ACD2A64E94C714B46EDC4DAD531F3A9F23055AE5EA68F9076E98F902\ -1DD24D82DEA949C6D5F195A945178C9097D1E1738F0B8A206D7E5D458527A450\ -A782BB4EDEC4CCD90F312FF036D76FBE:\ -755EA8EE63346E8E7BE6DEF46F5C579031D587D876AF5289A8E5392E7113292F\ -1DF27DDD4D328F4E9E6F52913954EDDF20F5A576A378BFFB65B7E25891435DC8:\ -977F8DD381F808E45C651A4BEB336799 - -C843E946900F039553F3F862D50AF3E993A7E4AA4EA58EDDA4511F9F51250FA4\ -F89688D6D8915B573E2FE257F8A75ABBE16B2E96028173BB12A6A4212FEE8067\ -7051F0D188077D3BF73DCB8865C77D2DB817C2C1035A0989A2DF7F562AB05A61\ -53618AE7F1DD0EDA3351778B48DE902CCADCF1E33A66CDBEB03991D409FC1FF7\ -4A2DA5544D10A78D4A5B26F0084B1A863D911CAF23A5032AD29134CF98E20343\ -84C0EFFFF2EEFD53D1750BB15E36D52CC6D346D146CA8285B49C751E147D9AFD\ -352D90A95C44D20FF969A4538C2495F1F5:\ -5D11A231D5F3522FA1AA113461105D9544018396F1833081E46A836ED4D8CFD4\ -A889A53DC666B8D05C9D3E01C6740E737A4874CF6963884D6E7F287ABAC36B99\ -B9E78B76B0C621CD275EF86F5DD2E905404E47D316510719E059580988849330\ -68A63A22E32CD0474422FC55F404445227A8115F87663295D1F6D0EA05E187F4\ -C1676752531C4B2AB3E2B6B0F404F09A98DE2822360691FCCD380DE1188FA998\ -EF94069777A7AE8BB5B849DF89916CA95119D5AB3B5EC8EE0D653AC79902494F\ -7461D04E405AE9074885F651DF539199BC:\ -F0847AE871AE9B90893831C1E558ACEE64381846292C35102F699765B7B06AD2\ -79EB54F556594E2162D931F284FB48E2F26B530ADAD04D6D9C3163C29DDCDC6B:\ -21E6CC4D35D80D58C10223B2561F2E4A - -9A555E3351A07E9DF81AF4BB95C645CBE877FC2F7AD003D8CC2277BEEBBF54EC\ -47921AB1CDDB0720895A28D12E0DA7E00B5C549B4DE00282A4384C8D3CEC20E6\ -D9A3A4A6D69BF09C9F3C08B6B2DE1074C31148B75210D5CCB36CC35ACE5A20AD\ -BD524EB7F522E08837097DC692111BF6589B04B1E9CBB9C1E9DE9D523590261C\ -D3C8000EF8ABF9CD9C6CDA4F8613CD4641C6F9AF7B6813E1097130CCDD43B33B\ -3F9B273C43A245A5204349B63282935CAB6BF286870AF3535321D3BA94DD62AC\ -97F50B5476636AF14309ACF169AB3190FC91:\ -833A8801C3FF37A5A4F206ACF4EBFE2133D1D334109C856FB93DD721671B2071\ -F22DA5872FBE43B29FD7656128D09B66E9BB630F92CDC2A132620D703165E1AB\ -4F3949CBF6E8F4A254736AF521C1D3DBF97B5CBF9DE143969251A1B05AB96AD7\ -34FB01EAD1C9463BCE2C947E7EA10C8AE998C600A85280C09254AE651AC6F3EC\ -DC6A52F36F31F6BC88E46F649D4687F3772A74B642495C818229A43CB6AFE8E5\ -E100CEE924BB362B13CCB9BAEEA889E3738A0E782C68A247D95FA5D4FAA7CD1D\ -E7C9CE671640B8415C9974991ECB5E90B339:\ -DFA7906EF224FBDF694195E87689536C5B4C8462A806665455EF9F65476DACDA\ -9CFD9C5C424532F5DDAD54D7D8FA553055C8DD5A20193A3B37500BAF17370950:\ -7C55B66CDD8CD368839A2545AD549F12 - -34088A28DFA3292D584A845DF63886D74F6EBF84B7B3829458E732D224820AAB\ -238E9E1E502A5368AC95A68CBCC0E4C5824009AAA3CBECA04FBF50A1C51BB247\ -F1607E1A60CE0C97158DD44F786C3FDA89900DC393CCD3081C06E28957FEBFCF\ -6F0EE2BC66212017984A32329269151E2D40ACBB76B5E4E11E6D93C14C0A794D\ -33F485448770DD6AF0C0CF8A072FF1A16814053EEB10011B53DC4FE3B3417761\ -B54FBA6DD08F800AFE7EB0BE0000412F814EF2D4B8399BE655F544F6A0FDEF19\ -6A2C06B6E7368B2B9ECC85C896BEB23A2E2F67:\ -5048E5FD9A25F20EB0E2FAEF122A99EC11858639689F5987A6C4FE1FB80075D5\ -48C741C5CC929639C6009F9A7410DAA5C9253E5E520954BE4A903FE10C33A717\ -24C8B0C46F7711CE9574A23EB5DBD05D437700FA7DEBBF1ABDC364F3B5AADDB0\ -4B34245F184C29512B2351145F30B1E52B778040F39EDC570976CAD206FC402A\ -0689318325D9F32889D3D0DD863985BFB3237DADD2EDBC6B7FFCFC12569737DA\ -572E7B81B3704585CB2DA61CDA18FDEC10C26F44085E0F5A852EDF4E3292613E\ -2DF7F384A13EC3D310400233796BCB3D11FB45:\ -84A24DA96DA3FA33BF463E82614F5FF6BF8E1413106BE79C4C7A6E3A33A187EF\ -6F5544F7E48CA73B4D2D347996219264D3D6654825839D36CC6E94F293A10166:\ -1799A67D65836E239161014192BE8E2B - -D4938BCA1201D96883D5A36A05985A6DA771CD3024F288A9C3F5AAA93C5AE53F\ -14CF8612E48EC428665B0BAA3D85EFDC1835C82236E38E9CA86265DFA6316570\ -776D47031558790A5778E873BD636621CD1EB6276FCBEE47504AD2AFA523CC78\ -6E33C37E6DA30118C3B2859723D33957FCACEDED68AAEA410DCC9DCF1F35BFF2\ -7BA2033064C184B04BD28B1DFDDE1CC08C808054EE5308E6447C7D77D23BC2AD\ -05DEA5C73455C747DF65EA375DD24A79A17185BF1AE4262C2934CBA5557293A5\ -6041BB272132D4B42520E9CD5847917725640EE7:\ -1A73411481FB309E1D3897499C980DC2A4890CF6D375674DF789D39535B4ED0C\ -08076E33D009E87B07588A7562A40AF40943525BEF121A6C71DD8AE64769138C\ -ACCEA2B13B36DB494602DC9B71EE9BCC574F9C729400D70C85F8E502BA46AE97\ -BB414E021B6BECC1B31353E4399CDAE0923A1B3CF7B2F23EF3EC7F7F1F540F3D\ -3607C84E333D0EB246E6BF28F072364825F935D30911B3CCDEADA7E3C50E056B\ -D418EEAC935F6C937ACEB88D7EC809816057A6484A9E1553A5D8498375302FA9\ -330781B601A7E039EF2AF7E510AD017726564B23:\ -541440D3BAF4CD676C26977ACF4617D6AF2B5FAA9E22321698B1E988087ACCE0\ -F5E19B3BA323FD790CD30A2BE6F59FEAB0AACA0F6059EF869D49C72C5DAF73F1:\ -1E9434A26DCFF2BB417B84DB44CEACE2 - -8D8498D9D060DD792298C2DC1B209A363FD80B9FFF3FA3FF10931AC134AA6371\ -7BBDA6DB6F8F96A3C8FD11EFACBCF8C9F82F0377C536867CBDDE91A1A04EA493\ -A45B43554FD5C373C5B9E16C8901AF1FE32854CBFA2089C494F9C00B015DBF2A\ -A29FE0E052D5F5B1507BA9999E15BDA37589C3D8E731D233B8A8037FB174CD31\ -D4F98FB4DE61C4E174D73BB53FD8DC22317338D3F6F256DEEBC500FEC9557FE7\ -117D31E9AA251CFA06A8E7C4FDEDB4EE76269D53708D97BF2154739B41C05CE8\ -9662138C989BF4DD5B17C9D1517223FA29B0792209:\ -32474467AACA09704DE3E77691C76D840A16C600676C6ED091EF86B4E31E0047\ -CA9D0C74616495FEBEC14780E2CAAB2B1FFAAFABF638D0B09F29D1F1EDBF3938\ -1B1D2617C6099F5AEB0D679B12FD22FB81F43188E96DF5E315002FAA163AC440\ -664C55B24A6B6A39BFAD865168ED2155045D6B6BE594EDD6EDE1C6DFD4D6F690\ -CFABC46368AE683AFD75CE1493499D3D7646D52192C1445593E4D8DE7E43DDBF\ -00E8633444B059730FBCCE51B564DB7234D34CA67AFDDF38A03E82FB15DCEF5F\ -A0489B3505242C9C7481C4677FBF243E027C65E257:\ -DC51876B956FED42CA6CEBEBAD31D92A3379C896937D2DB10A59B6D266291992\ -3D9D3C4E578B2015E3383B3F93600941EF0029C8774DCAF52446597BCA6F64AC:\ -C452174505E5832F558FB9A514C17A58 - -F84C5474F05C4BB30F72B73964BD4EB005C0CA1C2375DE43ECBA366B8FA6FFC7\ -4E6506DE42BB78B4C16DFBA0D14FC90468EE6BDCC9D33177EC5B28E94CBDF8AC\ -D42D76D79D7075A68F6489ED4F2739ECC146998108CD88E6A88D591707B46FE2\ -AD2F74021006FD8B59FF70F18E5474379AB700304298C4EE9F889C5449B603F2\ -57186E82E7467D767DCEE43F1F33BA02388D5018F0B0F36B60D962CAD80D1DD0\ -01098EC8F0A05ADA6982ACB4B8AFDE5E5952559D7A690E28FA6B3B52F879FDFC\ -4C5B33F829D864EC85894D9C60FFE69D978EFEA54AE4:\ -518C99CCC99C66A8E47FC3F4E41B8DAE33D27B2843E51F02FF0015BF6D36684A\ -EE10344BC69F34158803F19EFAA08183FDC6B2B2AED95DD398B4AABC8C567ED8\ -DC6F581199597C008A39A763CFB859345874BDC8E8A6BB405E1362098E24C172\ -9DCA334B4AF3077F4B5F672FF6B6FF209602A3B6A3F0AECF69F47EAE0880E4C4\ -2F0EECFAE50F9F5EF7B1AF119037BC8EF288797ADBA69422DF524A4490221399\ -E47B8ABE06E5BD0AD61DF427415C4DC4DAB8B126F88F4CCFACEA237CD8761715\ -539D68FB7D24FEFC294B9CBA4924F6A260C747FB9BFC:\ -1775EAD6878EA57034A7C4171E24514E2F360A449E9B6D2606427D878CAE1808\ -A2260544464E363930B86F165442E32680890B134F6C169841603F8DF2B18FB8:\ -5ECE34595B263A5A4EA474C2F9496F8E - -4B38B233C1EFF3329BE5122E346C59F7E15787683CAFF90069129AFCA9EA92EA\ -ED7D2A32355A49D275BAF2841D0CD6E6FE7C2E7D5C70F9AF5EF5FF1E3CC0C178\ -A71818515DD6F36F25733A26AB17A21CDE8008C272477A495F44914466546628\ -200154A50CAC657995E7DF2CA8633446D18059CD726F5A6FFD7289C8538E8D2D\ -A389FFBE49484EAE75AC5B1DBFD9DE5D43DA81C7F41B08799288D62A761C8511\ -B60E1926CC80CE6539A1721D3A2C18A7F57B2737620C34E37CB6D3016C8900D1\ -FFE5EC64AADD4C65BF4D6A86BF12BEA4B6E8FAB3B3391A:\ -5984C4C70A614C93CF23F9BCF6D5FF8BEFF2E2CD24048E232633E56C10399E95\ -854C30FE70BD4A151B174621B8CB7DF009699215B4BA47441A3A267C939F98EF\ -950B23CD20879A53C678E9FA0CE4EBC218431B31586CDCD13086DDCFF661343B\ -74CAD55B0DFF0AB49B5504EE076874E62C01D57CEBAEF070D3E761F1A5A08F40\ -ECCDB4A58FEAEACB10C537ADF6F59AB02905B2D3AF6799E5AB8FE7C939F0794A\ -AF9228676BB3C3C8DE45B55F37C486E683F6A7BCAF1E144CE89DE4A745F6D1E6\ -6A82EA47317C9910476682C74DBA3D04FADB6911D70010:\ -F8082513FCC96F9BE2926B447D77E8B8805D1626B35756F3C0BFA8E92C0213D6\ -26F8C767F82F3AD6219082C8249454BB5640C7B438245F6F537CB3D379AF0E1C:\ -7FAFD73DA2B8990650FABA66CD918127 - -EB332D2F4C4531E2DBB33EA97D72B8805BE064FA0DA9D4525E34FBF235A90706\ -8A8FDDB91A2AF0E53B98C713790690F41617720BCCAADFF813C7044CD9AF94DB\ -17FC072531C8101686729F25DDACDF76A8A7CEA506D2CA91FC4EBBD2807E6D10\ -C87AE8EB51EAC125A172FA79ADA873BF2E519287D94C909797827842B600DF15\ -EB2B4ADC0EEC77C8F46B16482F6DE8313C0B9DEF2BF17F8872713E65FB1F5C7B\ -78543B0FB5300815231D8B39FA713D268238DB78720EF030CB183F12712B2C1E\ -4DE82222C5EACEAAC536AB6A283C99E3AC87E638AF5ADBCC:\ -57316026D2D86FCA3C7F98E18B97988931E9CFB58243549712A960943E5B7EF6\ -21EE3676E57D6362E9312584B50A723CFE356AC9DAB2B9804B72AD9C782CA112\ -D75B31255B9E701DB200653A160A5AF2DDEF3CD662482ACFE5A5124ACA4A4282\ -F7A9F95870F3058C6410D0A41F69B1C172DCA7DE2CDFB3C4CA1CCECC8B737828\ -C83DB457E74CA36113E06FC8B717D14E4E560A8318B38A14CA27C63B2F6971B7\ -08E4B94AD9FD8539DDCA8973CA3DDFAC510FBF4F21A22D69900CBFD248FF0BBB\ -56C6FDB30A561FF993DBFA0D6DC67EE82AF2BC5EF21923A5:\ -E4FE26B71D0F221D917F7138AEFE73A527C473CB5465B9E240F693C892A69C05\ -0E6DE0ACA357D653B61A418DC072C6D49588E31CCAEB42ED546663373A8A870D:\ -C5CAE055BF18D2A1E9175A8282425F8C - -64DCE8B7AAD08D95F47B43B72C75EB6E25C68A393FDF26C80EFA7E7D2AF1C7F0\ -52796E8EC81E5220E30D3750E9ABE6140C41FC287632EF085FBC89DD4C522C9C\ -8BDE74E5C66399069F30F9D4AE74D161717AD26CEA44D479108B193D4D32F9EB\ -529A399C9ADD4D42B560E8AE568B76B48ABF67BDF198964426396B7A0ADBB906\ -99553CF2A24E1C69DD724C58B525D1356166179CD741E6E5A0BF496D45DB5914\ -A4DD892068FA067C8514A3F7D877121444B9C9A460EF31C761A70BCDF2B9F137\ -77BFDBFC2B479318B0940F7B078315F113DD435BBC860CB73E:\ -141D1263397455C3695F163E207E560F9EDEFCADFE52ED430FD3E6CE0443910A\ -F18D6809E0458C0112E6D6A94ABEAA3289F61ABE39E8ED284188A48A8C9BBFAA\ -A3C3E21C8B4CFA038016A9465EA7618892D7DCE0C534A5DCD71036C4DA849162\ -6D28427E8FAEF7400C27A0FEB8A3107F3DF779CBF184A8DF7EF9701C9EBD6C1A\ -6BD9A4A72540C194ED866C8ED873D143ACA554E7C1AEEC3C2BD3C05F38C9C48B\ -55E4B212D18EE993B9B89659E1442ED3A4616899D91DAF285E5A304D41E01FF9\ -2AEFD797086800BF68FD02E3A86D4F20C66431CFDC8B40E9F6:\ -1CF3CCCDB640B9D7778416ACEE72878CE1F28BB324A74568667EE229D45CC52A\ -0DD1971336C2DD461488A2BD4FBD59B3A8DC9509D71C361469BEDD2EAC6FC3F3:\ -1316EF3DC8DAC3E4BE1CB7D84B55AA3D - -EE70D94C62B7E577166DEC9686B9CFAFE93B15C9AC839219B5ECE0288F71EF2F\ -FA3EE174A8744E7B9B353522D80C8EE725018A9213B1288E47158B0DA12D1521\ -BD45B366C7C61BF326F438FE120914679220A806F4C15778F4850C1040D6576A\ -353BAF07963AFBB6327BDF813B9D010A52CFA7DD0F7B63EE22797047AFB3A5CF\ -BFF09953706F0AC741C7852E135502A2823DD634602FC331F55C3F6283F093B8\ -0CE640625A789073A2F2BB010D8711BD1AA6CA6048674A0C2CDCF00A46DF04FD\ -5FDFC6406274F8FD1E0FC895C538A26B0FD57AAE15967DEA99C9:\ -5FF211189A9CAD18260097EA1CB0BE056A44A7914157B23C956F628A0B4EFB02\ -2592392AC8B9F6CD51B515FCAB0EE9A7076B441B56D0643787ED99165937171C\ -71D2A7E7FF5F51F622573C6D47647BCE4D6B698BB8F574DEAF72B04749DB7EF8\ -77B05883679AA2ECBB97A0A3A279405CBF3891C98CF0B57BD4962A6CA3BD281B\ -DF117F8ED5A8E34C73D69735D215878C614DB4BB1C56E6A0C920FA20ABFBB91B\ -F9CB431D619AD96F53C0A1B2A9AF703EA7A47F30F4745684B8F31A1B2A60DC40\ -D5224C4287A3A61DB3CB4C901ED101956842F50BAD8A19A134A0:\ -B15E06B5DBBB639C60D133A290DCE9EA79BC4DD482A75B5AB813C69A14D9824E\ -F6B529DA1973487A80941B8EB35A80CA608D5BF4C62568F1A64E93B1DAC49660:\ -8516F50528C900D3F91BD83376A30E51 - -F98269236AAEAF81C39C20D0F95873D9A3E3B370E260137B332951017AB8A342\ -DD2DC0E2D13EFB5178B3BCC773043C46C5032A4D9A700FB065A02EE674BE2EB7\ -A8EF2BC0156A02B698625FDEA2347F4BDA6F03BCEDF6BAF16BE6BDC5B43A4C4C\ -9CF85B47B4D7AA1F6AAEBCB8563A6C81CBA07B781E744FBF390C44C43A9690F2\ -EFA8DE98605773B2CB8A9D89D364DB90AEAE88D52E885384F086A426AE61A259\ -C8F34E0710CAAA977ABFA888C09477C6DA328DDE3C201EC52E6BA2507C969D58\ -7202BB74D2E0A97815DED40AF44F728997B5E71888CB6925056F5F:\ -42A8BA0460E011CB23DA387882DBF6E335DF7E40997DFF70352BD01A46FC535B\ -6E0C00625782CE194FCC77E6A0B0A85D96B607A6AB1F943B4D1EF1454E29C0EC\ -715450B4E474DED199E439FA515B52EC7F4B988EEBB00C3BC07C9845D7C5447C\ -78356B13924B420868F67FC6B5514BCC31B59BFA7A66FA40FE2FF4646DB8F99B\ -68C249B61742F9843B5879B7860A0E6EF4D4E27D82C4F8CDE0FD41F8A963F0B2\ -6E7C5E4024B7FDC2D0DD8B29F83BE3439E0425E7E44108BBCD0890B62FF3EF6B\ -A97138FD2196A9FE9B3E4B04F82D6E78B5D1DAB4533D783620142E:\ -9FC3D8F669CAD87D0D1C2F6D199D46EF5DA2A50464DF3AFED038DECD870DB299\ -E8C44A0075EDC9135D0580E9992BD1D542D046C2FCE3A1F3948A9E0DDD63D7E4:\ -A03612F1966CAB25024B7FAD475E3AE3 - -AD4408423B35829DFE511412DA37621CBEFB697029BBE3F8F3D0B66D468D70E5\ -DE2097106344895AE73429D865A832D7E5DE4F557278232B47119998509B25FB\ -D2EA8AC3246800B5E5F910E91DEA76E487CF76073C83072CE1F7E02101F9FC64\ -3C7A9CE782040AC7BA472BBE5319EA4ADEBE45467FF9A79517EC25CDD55C68D7\ -E8748EBA3A83271B288B80DAD432C7F48C7E88DDCB25569E2BE7795D62005489\ -BA48414E13165F8F19B2CCCC5BD142D91BC9F9A06F030D3A29304DE55A3D0252\ -A0CB592B65B4E8D41933BA024667B60B3E2AB1AF99655D144F329EAC:\ -28B8FED302DE29E2A073D5C85187C43902B1C20566349A0FCC0C766B4CDB7DE1\ -B27DF7CD3661937467986879E52F61A44ACD6A227C1C63DB51A72D9D9F2D9298\ -AE8AA6FF828B84A6163EF85F8D7639D751426628D133DA30F4E14D59C53A71FF\ -CCAD3D49A1107CAF75AAD3C4BEDBDFC2C177855A252D88C61506F8DB362B5598\ -0EE5475D63EA42C6838190D764F18F0B3AFD5914A9A3185BFE8590AF4FE551E7\ -2D915607FCB8727CFD919A5BAB216536E772AF04B850EC5FA030A5F3B6D5A7FD\ -4B6BCB3F15212D76000C9D6F7B772B0544948DBEE733D2235C7FDD50:\ -396A6EC3E247CD80247168D76046834FCE253ECA09994B9E928FF78B9547EEBF\ -9066F0DD515A9ADF0A8C2FB24F19916AD5C490971479F56CF145EBD91E73ABE3:\ -3F263CEE6014BA57E5DF4D1869B6AF4A - -3D2F27E83552156CA4419ED21A0785D13E54DE818026A2BC6451A20D3E153FFD\ -21C54F691849CB0DA44AC46468C7C4F10CA7500B862F5F59CD7489E7CE1A1F3F\ -F2C4D29EF5EF10F2EBFDC22C900963AF3846D8AAA54132F48CD35634E63B0C3B\ -C3907A80A08B4D9D4F2595371D3C12ACC225A28B163B94B910E22AE70F8A1207\ -2283C6DE071EA73CA2681F7258CDC6496930287512E9AD8F9691747F58DC4449\ -219BF609BBD507233E7594802F07534314A3825F086F5243883ADA234967E2E8\ -C30545CDBD16B2E32E5DCF827E1D6BD1A9BB7C9008D614D6F17736C1F6:\ -0D909DCA72772E4629D54909B46CCA9024FDA40A13016C3794F889809C41F6C4\ -9DA4ABF72832AE44F59328DDCCD33AC9A6FBA495478C3799EEFD2848186516B2\ -75A1764A2D3B25EB01E9D9AFF1D179FE49BF898409452F0DBBC95738931FF04F\ -CD18BBFCF679037724FADE72E10BC6847AC50051B93EE9F30B771C421C189427\ -7331D955A36FA7D5EACCD03435105B07D61598B1C8A0FE4BA977620C728362E3\ -BC3CAE0492F5A2794EC7E7DA25743AF4EF21432791096BB00D598DF433C784BB\ -A21F64F16CFDCACB26FB3D48ABE91E0F4642725C0703C205FAD257A470:\ -51827074453DEE619C6E3061A7E85510C89CC4279EE49A49F04560AD6A9B92D7\ -EDDD0254E1C7E147BA1284D1AF164742E74CDFF55FFF29EFCCA29F1EB03A0105:\ -CDB8755CB0501EEAC26E84585300AA65 - -287827BB55B859CAD808378AAA6E5213F59BD55D21663927B0B8A6E3705320A6\ -FD19563C2F73A9D2F7C10CF980C560435C21A4428E43D0F416347B780D1B6D08\ -04B3C68AA589B7AF441E74C8D50C5E0C6A01E4ED1CBF073FB6D7625C227B9EA1\ -B8A17C625EB5A465AA23620B3F1277D4F314C3A06499F657A1431B5A28D38DD9\ -98C577176353593B8154BA4260ADAF3B3B01DE1C8FC1364BE9C2C4F46D679FF8\ -820C02954914BD62B46C90B36A50D0D4C93088FDF42012D60F63D2E6F29532FD\ -D437A15600CBD9CEA33DF466CE16DDEF6F1E02912296C5866DE0F9818A9F:\ -5FF9AA509118BACEE02350AF42541C5423BF3983B3DB39EE3D23A97C4479FBFC\ -A341376388AB7E8AED241BC1E1CE1CE3CEA0777E02C40C2CF37F3915F60B8B74\ -3FBCEC5D4464C6B9FC168163A5565AAC32B3CCA434A8EFAB58D23876CA41E99D\ -4D753385C83D1330687453202638C00F63A2113013FAC0DB639EF8C491E4E4B1\ -507600E5DC2EC6BFD71A77208016520951898AC45660D8A530473AFD89244DA8\ -6D0CA0F0B10A9390D2909F11DFF75F36196EAEF39AAA2A9A31CDB8F1736A087C\ -3D8CE28A53CCFC5797E52D217F49FAB9B6C15FF179DDD55E239B33B24ED0:\ -752761C128E74655EAC40CA673BE297BBAD9427BADCB31FD41D2497732576473\ -4123DBB3F9C0551B4F9AF034B342411A6A37B0BE1EEBA45C36D013379541798B:\ -6C09C94F287D9EC0B341915A40339387 - -8AB2E59A24D5F2607842FC848DECF946F3DA1F5E00F54400F5A7B470B6EB87B9\ -40C4CED5D8A6A076AA35F81DD599CF7F7A5BED3E0846824F7F1E777C27907120\ -1B10AE0F3316B4699543E894976004FFF8E8C33A47BA25FD2D6F76E3B841C1B9\ -013C6FFC35697A8EAA1F5F5C622704BBB90816AEDF123C05EC8FCE8595D4A9F7\ -BC49677D745FA24F50B075AB35D1732620EFC3E039BCC92B0FA6E5103C2EA241\ -6E3CCDD8635B9A5BE842476983341DECB3864A4197D39561048B08DEF48BCC53\ -0767AFD98D06C3702F41B08A1149D5049A9AD08423ADA0CAD9E7C33F9AA88C:\ -30A3D1BAFBA4081D12DE7D9DA0526F51E1772F6093195ABAC1C69BDEED77EB4C\ -53B02BDC403FAA399DB6AA8B1827CF8D073A9D8CA78EB16679EEB4D50957E28C\ -F2BB6CA00D05C286219FDFBF0DE35D271081AFC3DE064712816FBE1C25EFC262\ -3E1E8E41CB82B6FE205979FDE7F96DBE18B101E0C204E481BC54D5B52CAD3B38\ -9A3BE224C1564D0BDE18EEB795B9D49E8B6BC0CF7C8DBBB48AC2F68A50B6612B\ -6A4800B7C171D4026111332C0DB320802F26A72FB444029063FAEAC94E9EBD5A\ -7AB820C38C22C594A787F6EA772FD74C1FA703635044F9F3F9A52910F60B2F:\ -F9DF053F6F86540A1FB48B7602389B7B07287920EEC03D256C9735A33F1BFC75\ -99B60539ABFDF9049B565582DE65CD4BC12E3AFB4C32F49039D5B875DD75AEE9:\ -387FC84933E350F71033BCC55ACA9366 - -CA8906F79303365439AC120FC7609F3FD454DEA9CF9DE7CABBEE34129896F5AA\ -83C100105789A2FE286688BCDD09F0D335D2A4647B90DE13DB0F9045E063492C\ -970334E131FB9E59E1F5ACE75D5C8891197A594FBA0A8E85249AB0CC033350FC\ -C794EDAD0B3A1DAD08C2A2110C40419C3E10EF47EB3ED1477CA5608E28844067\ -5A6858A7D6FB58F8D8A8824E4400DC5EEFE1F7BE986599AE2023E8ED078AEB2A\ -8734D0C2F3BDF52B689F8C511CE41D0FC780F02188E569E428045A34C752D506\ -C67109B0C49FF285A1AB8965A975DD199F8B582020AA9465A87494F36F536BD1:\ -545BD5C0D0230D6247F61D17C87845EEF542A5623D0AB439DA7B111DA728A972\ -A1E714A1537CC3BC52382D0EC1D894785C3BDEEC7A8320F39A1BD11FCB6A0FCC\ -462BCE2A63B4A0D8FCDE40BF1FEDDCA4D07C2EF859FAA8BCD774362982CB2E09\ -01FBAC5BDA0B6FAAF3F57E212794641ECECC3F63BE75DC76B937550753B2E1C8\ -741F42E4C8DBB4CE6DA0964563D35FF52D0AC3E1CFCAB37B2ABA342A2C949DE2\ -B3F37938B4702EF99900FDB578578FF7CF982D42412F42C767575D3D5BC7E617\ -F0DBE0EBD666A5E335377D3F8710FE431403B9600022F0FFF2585A722BB8177E:\ -25CD677272019AD4E231E6192FAFA22CDE641D3B46571C883D490388F5874559\ -0EF886A9735992E460F1668235FEC02A7317400FCEC60ECC829D42A08E73E3E7:\ -E9AA61C6E96EAB6B6BB2CEDA79010513 - -4EF7C5614320BA98111047AF34C8971A9B7DFA6DFEF4F037AF63C29B8BE853B8\ -42CE9E766CB33AEAF9B088BFE4731F34EBA07D2FFD845666249F86868BAF47EC\ -827E296C3782C0643A814F41532BD46BA4BA1AB5B2247BB4AF5166EEC812E117\ -48D5F082F3DD076BF00B2FFEDCE4FA5D39A3A893D593114D400AE680942676FD\ -B377E9445E541CCC418834CF92DA2EE396AEE87A2A24D99CB91F1CF75D721F29\ -49899BB6A2C6772B9790090DA747072B520CCF87262E3E537D404EFA1D916658\ -B11E9CD854B15BE677FEB47699E9B9874D464E80BD38D1FD2F30FA578C9088D7\ -DC:\ -AD67815E31CA6A69297F0F33FAE51721702DC6BDEF156CCE9D70EEB29534889C\ -4327D405AEC4E10D2CE344A7DB26899078EF715FA68BFE63591C8D27DE6AC3D9\ -341A41975325864F84725DA38F8B5087D4D4FDC8BE404F348E760C96FE222082\ -52DC8877B86A680EBDAC40FF976329502BB089D4F368431469748DFE5D9835BF\ -AF020DDC609146A70F1272D002CE08FDABC3171CE82C43356A13133D4EF87E0A\ -A3364CBA0C2DACA940A0A8A26A2EE470F183F736CDE46219E611E94BECBC7D8F\ -E69441EBE8C4F6AD3D9BCF810BA1A42741F7CB855CEC01E86F191789773A4732\ -65:\ -335310F6B3A04DB69AC5C39CF37D5A06B27E9CE5B4F20BE42E41F1FEFD23BF0A\ -D256F520A5EEB1A3130E70AC1A65BB92AAA1EDC73B3747B510C6A2F35D8F8936:\ -6C77E673E124E8C291F695BD10867EB8 - -912FA9586149CF6EC5ED842F70F6EB5A27580A88DD43828D824C0E476BF94054\ -2FE78ACDF16105E249452618D90F776D51DA2CB7E5C641077877398481FDF512\ -0F8E928C83C3EF9042A2050F1B59A0E6302B55A63E2C8234F01297D420E11588\ -A48703ED31513480B442885CB9333B9204CC0ED72E645220C90E9C77B76F8817\ -96D113B6B80F5C86389349F41C26E53C8ADD8FD60E299AFCBEFD37C2552EA269\ -EE8C9FFAAB31B99FD772A33FA134BB087461A54671A90D9C4A873027F9C1BE84\ -B6D289549E8B79BA5CCE6F39E72FFD446A8A3F70521DFEB7B19E077747159253\ -2635:\ -B17B2969B5614FB51F7F6981E3D09ACE20329121024F2E719DB3D581D48EB7F0\ -498F7C53DD31F4D3AFF1476EEE83090CB8DB1BC610435819313E5B6404082225\ -060C241C8C5EA35B9B2B61B04D5EAEEE4B1E606DDE8D7044A37114689665530F\ -AF2C5DB9619923F428CC7593840D277D8A54B5F9FB1AED5742519A83A3B33B3F\ -0ACB7A72BC1A7C9EC8CBF9B270657153A5E9F062511F7B7FB6F53EAC40B6BE69\ -07C83150489A7B20F27EDF739D52632309625723207121F8B4927A3473F4CC92\ -F6CB4A0C288BA93AEF412EB0E5AFEA66C9E92EADE2CC4A05C27A296A0DA75F50\ -398F:\ -57AF0AC08B589616E3276884E48C39B995257567F1308F089406F0738B648D6D\ -973C3D0B624EF86F3D114D25A68D38CC357200167A7609D74412FE5CD4E33568:\ -B42A39E6134016F07DD0210BFA8F753B - -EA17DB749595AEBB4A85112FA69DBA1F581C83C3C482C36C7D33A2229930A2BB\ -438989688E9008B29EE75068E4B04BAEBDD1D33685D9F2D6CFE90FB1B9EACD8A\ -E94452EC5BC0C953CD7F8BF24D938E53720E784F537DDEB3AAB4F410E1EE2736\ -C2C02C1DF998C066191207C89C5A5DFD52406FDEAA699BC8CC4ABF9637212230\ -1B3423006692CB14E8566B38D88365D06D9137908666EA8493085DF520ED9E05\ -E2A79072D5E899558E5CD0053251A787C27F41C621801AA24868D7664A32115E\ -3D055B5DB9556704AAB5F61604305777A7F8B52800CE0A151C86AEBBB4BF7A1C\ -899FB8:\ -71C48E3DAA44D1812B6F617DE3317840D31701365FFE58D87B1642F57B4D0627\ -4F36D1F7D50A34D9A62A056D25984A1D8B9175B7C85289C3C1989A990861E824\ -F642F06082E3ED9A30C39F2DF3362B96E03D468F4E5AFF7DE31B3FCF4E48D904\ -6CB4DE0EB6E00B7ED62ECDE10E9834A63C87864D333B252A55EB5F06A432F69A\ -2B43A57E2D69B53D9CCC6A998A4AECD77AF46811E7B0556AEC9FFC1280144813\ -E0CBB5DAABC3FA8B2EE19F99525AC326DEC76F4B59509A88E8D58AE7C1BE50FE\ -934D951AF7F330D92426C975B317A8B2A5CDE3472ACFB4EF0BC3B70B0F9ABC1B\ -1E1545:\ -6D06A63AA19C523105160215D50634024BB208CD465894AD8DC88AE5B0FB1F6D\ -EC4B93A44D64BBD44E460EAA9DA70DA4E23AF5ED8F8F8A44056FCD3ABD3F8DE8:\ -83AFF932BA2437132DD0EC7977FA2999 - -FCF93E6DF50872E63501B70B99F8ADB937B95B2A2AD38547FA767355B23F42F0\ -89D73DD9C4B8F13F3FE7803774173A006378FBADAF6B1F975819B372BFB36193\ -87A17AF82ECA6F1730684DC1237F15B894A4C6014EA93B77496928F6BE06B546\ -0ABAF78F5B06B35BD311B925185F3C37D2FF62F995FAEEB1340AEE71227BD26A\ -DCB5783900ACBF3C9BB3C414449E99BC8EFA5DDC5BCD7E55B12D4E21A7A4E12E\ -07CF888E8F05D5A5774C0EE2FD38AC45F0939B6810ED128BD42F33FC236242C2\ -4B365662668B497BA21B98E3CC403044361FB88C4C491DA34644104FED5ED501\ -88263B34:\ -DDE76466249800B6E76E59E28FF5A13C09F485E4CFE91D738C992E551918E244\ -A19E409D462B947218E053C7154431A891353EE5FCFCCB5C06180B29C2E3BF28\ -2E855B123F0166035BDCFB4CC9950DF7A72704150A2768DDE7A168CA3DEAD251\ -1C9FAAE3BA1B13E8AC01A16AF1E2414BED28B1B494FA3F2E4BA0908972951C17\ -11C594B1A31BA1C3AA31E2C7C1D9204B25F0A71165BAEE774E77886E24E1EB5D\ -72F9A99BB805007859999658E9F1E9DBA6C698DDFD2F1D92D741E75423A1B4A2\ -646889C461E4C22F8542362E6640B1B7A318A96F568D8FC6175ABA4FA45F0365\ -298BB41F:\ -7E4DCBDB3A16569F7BA83E628019F664420292E3B93F6258C3C8686022D4F03E\ -5CBB4BF3577CF85BBF00BA8BE772D99EA5DF436A65F7AAF93DEA8D6C5422C898:\ -DC8E94364CF778E8EBCDD101A19D4601 - -21FC19F9F97727B7DCB59C30B1D71632CBEE8636A8D5B204B0A243BDE418874D\ -1940CC068D5F47989806A883F6DA94B50178B9933B9375DC0DBBBB10163878FC\ -4398F459D28948E6D72C6585C20396AE45308FB3069F872CB9F3A4F83453D131\ -CBBA86F0CEB20EAAD36A39C4BE17018E030308323E5EEE3CF6DEDC9EDEAA6798\ -B413CCA0B44D4744FC81A1167CA0DAB5988AEFB7B2A02F240371CE29E9DFD164\ -64B6564825C3BEFCF4FB3CD489665F5F4BEAA7337EAF2FFFF4228F2FC0106A2B\ -666423C56065E931BABC44F26651229777170E7509F55323BAFDB316EBCD4D27\ -73A94C0A12:\ -F1E994870CF051780023DD718C14FFBD529BFB1C95BA5CAB5C559DCCFA3E1CBA\ -108784A609471E451D85D41474D2200A2FFAB6F2B9D6DC79BA8541537D21F9B8\ -95D57E9900156A1570972A477C14EAB75E65E19DFDF19F84A9C4EFD253B2AFFD\ -DDC7DF8F3C4F012AC3418A9F4E194DC859E43F2BDAA14A2C6BDC66CBA8B23C79\ -6C1E1FD440FEE6613459FFB177591002180D66995239DEE4703403267519BC36\ -9919C947CA6758BB5CDAAE2CB9F015FCB75792344B153CEFE6D2D70FF1047CA9\ -F618E3CE4A04EABC577493343A5205D84AAB7BD61B82BEF057C91BB8413C8716\ -458E870E41:\ -2D1281DF61A249E8CBB88A1E06DACAC054980A95674F05F7088D4E00DEB73973\ -2754CA620864BA716AEAE0225CDCC7AD95271C172FB0FC3DD32108258E7DF89B:\ -41382AA24332F1F64DA504B5792CF9A3 - -4BAB9EC9AF710A563D2403C1D8C7BC1C2960D42AD2BC9607C4C54602C6440065\ -953820ABDDBFF011DE6C352534181A993445F10D0E4674327343CCAE30B8638C\ -EFAE2DE298FDAAB3C80108313C0200FC135FEB694A9D9F5AA94EC9D57C55F4F2\ -D3132594EBE89BDE032206655EC6E012C053205DB271A985323A47C10A47D0B8\ -1D4A8A788D999B7473843776B28213108AF985D87892DABBFE8FDB03BFE07408\ -590AA982C34143906F246E05BA4CEA0EDA6024C915A95509922ACA4A2945F76A\ -11F70E230642E35F9BB49C226097D57002847A3F88A6B463F953E425548BB892\ -CA61CF9AD6AF:\ -0F8694CC1A6DB1B892333A5333A91E7A40F2B87D06BAC91078CAF1BEA410BDEC\ -A010E8A118D11E53173FDA34E9C5F1E0855165269E464C463CC892467351A08F\ -06E8217453B53D51842B9F0C4667CEB2333BC336D9F0BAEE6A84FD1155212B76\ -C2EA6CD05827344835006F4AA9D8DC87456D540E940FEFF82CEF51209002BDE8\ -882CD3B2F0484A752E168007D02590A4E6C164FB8B05FEF0678274C55D366F1B\ -DE2FD0CA580E54E94BF04583D34D6B89AC5DE76F154F8EE6E6B34834FCBD5DB3\ -CAB225B0C0B605A5B1AB4BAB1D0613BC4A97817E23A3904D6CAED8A989BBD428\ -AEB38A7F959F:\ -7301292EDF094D0184E0092C0DF8199CC56D2BC9A5D37B4CE0306A65E45CFBFD\ -50459A8733904BAAB33C5EF7E4F98B25E622EBC910C8C5BB1BF07EFF34CAB953:\ -F22D0385190A5C34E8782D80608C5B16 - -8A037025C10481ED49DF4F3E54384264DC5B5976B82FB43445C7617D803B9650\ -C492E555C7F5076E800A770874056C8BAF1B7B0ED780519A9A967AFFB71620EB\ -8636CF3CBD30E78E0FF356D98F6863CBD32F2910DD330E9CE70C6627E8C40269\ -E06F4BFB076570F2CF4B86F610F3CBBEEE6969237312B642F63723CAF57A8494\ -206E69D694A0D7D769C01BB9C5E1FD059AC750CFA4FF6EAF19051F60D7468000\ -855D7D69A8C4856D08DDB8A8AB4114956B0B241342726CFBFC0EB3A6D5A5C5B4\ -B26F5CC3D13932F8DD1A02DB330D1332FEAB6E745C1534193074E6C4A7995166\ -B2F303D3885B4F:\ -F770E5B5F3EE03CDD037E8611D89E5D291B1CB6EF23825A8299080116B2D0917\ -17BCF14820C9675C2300F9AD771A73A3748F69513456AC5AC15EE5B93EB23760\ -EFB1F734C61E886803E1A660D76BB2BAEA61D584E95D5595F3A0883BB5A73116\ -A072755616B82DFEB10B59FED3407776E8C12808521BC0AB98C795E50362AA1D\ -855E8CD7219613D31B9F9265C85A710ABC637EAD6D66B1B52C12058E10D4E9CE\ -887DA905C29E32EB6741863831AA6AEB2427AF7C8F7874F6416399A2447830EC\ -A01EA17C3B366C2E248241CF1628C1CCFFAE6C4169422703DDD5722EEF9AE3DB\ -FF3877BC2090CC:\ -570D4755AE5F33B093E98B02A1ED2CB5C01C14CD46AF4DF9257B0CE0C54EADC9\ -42C4E322B599B1449367AB197BD93FCB3DBE34BEA9D035A3145F5D0A45A57727:\ -36FE992E078CCA07611F66B9DCA23797 - -469132F5B6B71F13C221FE947170F189A350B49375E6EB98C2170AB7E2D819A4\ -515EFF75C392587D65B8C4CB0107800D2523DDB2C71D25F19AF1F0E1E65E9167\ -127F2BA673710A58FF61C1E24A3A1791FABDEEBDF4739728DF7A22E99FA269C2\ -BC33BF9D4909D6A4915CFE7A78EB9305C224533497FDE3629F8E6981BC83F716\ -69EC7A428C3EAEF98C304A55942132FF8704C325709F11A697DCD13F6328C117\ -039137BC427CA55B683E0512D8FA68F6F2D67E9388BD21FE0D4D2F6FFE648729\ -BF53C691696939CEB5BAAF14CFD9B34AE4921A4B713E6B796E3931C5C012FF6A\ -4462A261B2EB8F07:\ -F9E4CFE38CF201D9C260D1D85DE8EE3FB5E3B0CADB4D3EC290179B6D439D4EE4\ -898554DCC587A47F71F64C5E5306510CEABAA4F961A2B99FB3E63326FBB32F8C\ -E994953CF987A5736FA4EE0678A37EED814BC52B0ADA7A3C46F6BF2CCEB9DFC3\ -21296231DFBFB40C13193DC6C8E5163F7D97DA82FBA11C797F55740BD8DDBA90\ -BB097F36419B1B7E4B14809516FEB4844EB0E480573B06FB2FE62BD42ED7FD47\ -6C213287FB9BC9B336DB0B12D311E5F5222CD679D28186D8699D90007AF10A6C\ -518B0A23B4789AE2ED749E497D2EE4D7DAFFC8B904E92BAE48D9C0B54F2B1D63\ -847A8B2ACF014943:\ -C8E0B88E2FC9A9532DE10BA31455D76B7B25C46DED6A40CF45873DB3BCE50C39\ -F49096D4D418D513F7EA39E92000C76F95390C3C3B9AD04BA586BDB94C8D2A09:\ -502A91AC103E0D8C10DE5BFF3384B1D3 - -42895EFFA6DEB661509A8DB802CFBD51C13D7BA2E221A0087898B5E15AE55CEF\ -B592DC1B7E93EE8261FB20838B441C32F742AAD275FCF505DBBECE400B8E08B9\ -66A3D00BB110FEB9A4461514DCD020D2FD756AAFD5148531EA3451720CC91C1D\ -7E7938BA86127DD98F0A851B382311901466C83C6D278153A514EE3C6C6D9C9F\ -2E7AA0DAEBDEFBBEB247DBBE33D81DA0F845354B220C5D9059355BC5816B2715\ -02B884C10EAC8A8A275AFF3DD63FC90CC1E44590D686ED15DA610E1A93D8DE02\ -685574CC0F8CF42E0EB64485A366560D54DF4FC15AE5C5954EEC5B62B5C2B5AA\ -349F314C90A30D76CD:\ -741DC67C088D533B1FE360D3D501BA00BADFD2B6C256BB89E929F53226B7A559\ -7212FFFA5727F4FE77A273CC06CD4544E3AE994782186D8CF2977CBCB63F61CB\ -B5AFA9AE3E05907FE50E6C4BE1B4AB9213173A8DBA6FC6F4DC179E2123D85925\ -D9EFB4D4C23FA78D3D4A585FAF55C595F6DD37E83C5D5503A476FC3579AA1F66\ -49650A80D2AA2A5D35AC62C991DC06636F70677F8C566EF7126E793BEC976270\ -B68E510A2BC68F22AE6DF35FF56FDB6A15171F70E717C9F0F05F7CB953D01677\ -E0E1130518907AA573E531E25830D4E3E012BE7171B3098F3BC685AA89FBFCE0\ -ADBA90BDD7E7EB3AC6:\ -797361743DA7E544A17ED94CB6034496CAC8DB82690B3E3C6AD767FD5C21BA9F\ -067EA13C551A728C7B56A9F4E2D194EB7FF441C3BF1F536DCBED2B643A158BD8:\ -EECBD553AA8020CE0471796A24FF10FF - -DDFC4B8C96DA21137E0B405335428A17DD4B22634EC67F0DBD110895B06460CF\ -FC9BD8700A90C2E08873DBB3329A289CD9A0F05E904E310DD3DACA9D88C9F3AA\ -20931BEE38A57C9851F44F2D863617F6CCBBB246E97BD17BD6C80547F5B48D81\ -EF33D7BB142706A525C8A346AE48057EB8D4E44B6490D8F6F0ACA5C3C3B2254C\ -8272EC4773BF32F15DD69D00F51DDB4FBC399A292442EBBA4CADEAFB1EE3924E\ -FCF23066FFD8A43426FE1F38D892087FEAEF19A6EF0F2269DAD3C5DFACB37058\ -45501DF86B9B282595A50EC02CECE2E3359C7ADA5DA0058E11DFB01770E75505\ -FD8544E6AC809CF314A4:\ -B743430805C875DD05E8F1359759856C74653C8E026C08E772710CCE2B9D4F8E\ -560176F3340C3925D6CAF716BB96E4E90A1E25359B6B949968CC195828ACB268\ -FE01F584831DE33F355B6799D93800794380A9F0CB2803E77D89231756D1C1CF\ -7104B555F657DD2EE6E75A49D1D1E9B2009D3175D16B350215F1DB9ACAA658A9\ -C30629AF5DB460778CE1AF0B71E53FE1B1E34927CB96F22E4D8896D8663BAC98\ -993701CD6D441C4F810E90359D987EECB0ACB139E493BFE127CF9554CFBA9ADD\ -76A286F1AE431F2873ED59D5229C23CDA1676B08A30B0F3CAE14D5092476EC5D\ -729E4C1C04BE9C80BECA:\ -64FFBF63CE4528DD431EF5FE89431A1BA9EE3AF072F3860D392BA06800D8D1C2\ -EC523EE97A4805BF4CA1ECA8256226010C1D45B07115E2EC83C08D20F45FF7A7:\ -23B5FE790A89FF2C94135AEF589507C4 - -B9D13732E5789081E76FBDC151B9B5687E14084E85967EF1F466A96D180E99A0\ -EBFAD0BD62D3C0A9D95A7C091A6566E6EE16F431A745A280A57AAF96E825AEFE\ -43C910F03426D11B158FC0A564DF953F43C22A41B57FAE2441FF0081FBA6332B\ -46907029C05CC4B0B3808E62A928896B529CA834C95C82F961E5D5FC9EC2963E\ -8F05DB56ED106A83D69BE024BE2C3BBBE7277EF1DB65AE723111808A26EFCFA7\ -A2163AA7F3BEA56432CFCB128E33F52D0D9E74418D4125A207ADDA7095B432EE\ -AC6800FAE65CCE8F15BC1855B6AB339B936966228B9902463E2E4AE662EE0F2E\ -D461FD378C74D44FBA12ED:\ -276339F12D23B2F085F0CE29A03D40428E7D73616D987A535DF9F4CCAD37002C\ -801DA88FED3EF6F83BA6C831C81B5F1992D5373CDBC1272B0031499E02AEEE1E\ -FFD30D49BD13113FDEF45C8D25BCC488E3CEF5AD16B31C941D5CF8254BDEDD65\ -FA1FA999D361B1A70E828AA1457D1CD729613D2550260062AA0AC7DC8FD34F69\ -AAB065C58CC4A49973CBED22198C4F71AB3C912CEAB4F8675E6C52C55C520410\ -117B224F2C42A14A538816FE28EF1ADD9147698537FC61E8CF64540F88EC70B5\ -36477748E45D80B18E46155D2B6316444BF8719FEE78B6E00571BC3934204D07\ -09FF3F78421D5764983046:\ -DAF3B35002E91851700EE5AE30651FEE9D503A68E25DA1B0F995C85682BC0601\ -D7B214EAADFFB9019D85B5583D6F6D70B0B67DB9E667C950918459D91083621D:\ -FB5951B7CA80C7173B5848E840EB3597 - -47F0B01DD8D9F113B1111F687777FE1B8475BAB8D5D9F97986043467D4A1251C\ -674AA433A2FCECD248D2BFABD29649C49A596DE37934F3A22B621AB326E24772\ -B71FFFCF0B55BB2F11A95E398DB872DA7E7F97E3A78FDB03C9C295DD445038A0\ -3158ECB9A31DF7A5BCD44BDD1E412EA66AD320D7F8F80620A2215560237347A6\ -398493DDF42E71D97142571C5DF579B4925B982CEA4F71D0E36CD2449F4F52D5\ -278810549371D6253BDDF9FFA02BF89D1FB1F506CC2FB5F827876EFD4F1F8A78\ -17BD27BE8ED9C8FAA11FC9C647364CCA55847EF4BC8EEC950CEFD79070098AAA\ -ECD38993648621CF310AB2B6:\ -AB274153C3B88DB46CE7316E630897AB41FD99DD7B50BCE37A33C12398981796\ -44AC08A45865466E18D327F422F60BD0EC41B22422A06067611C349553120D74\ -63DB99AAFDB557DAF453477BB076FD0E0B9ECC54531734CA0BA750787DF9F37E\ -65A0657F531D86A2CABB597CF4AE6D0E3E8404D1DEC2FCAC1949DC572F1D51B7\ -B163C15C144D3E8A9A6241A7472C8D38FC9885D8F65DFBE5CB5D9D8411D48D93\ -261F94FCA257B6487E4F213537D7B227D9AF905FE7ED8090F26C77EAF5308FCC\ -EB5692FE383B5B3FC88A836165FA7D83E64A4B8D7983C267E1C21F8B845915AB\ -65C72A9ED5266C3462F870A0:\ -03F74F149E521E4C126B57261077D5802C574EAB94E75BDF4C0AF7D463D60A96\ -1EC8D5047E36AC203B4793E42D7231E38AF206128C483F849ADC9EF65A6DBED9:\ -9B65716CAE6C38FF4144C8729632C844 - -7442A74EE7A4E47CBFA5586C9755D50F344E7C03EB8414D121CA04DA644E44F9\ -276434A0034EDFBF2EA2AD5B227BA9D7CFDFF906517862BE6092FE320C59DAD5\ -EBA21692526563613DB4E70BF67A6E60B748EA1274D23C51E38D87CEBBE8628C\ -57600FA8D40FF7257F48A9D986E1E85F0D22E4035369AF1372A289204228C872\ -272FDDC1488B46AA440169FEA9B2532D1BC73732FC9B316589019265777AC9F8\ -7A773429861A0DD26042ED4C35645F7E2DB0D5D21D4F11FC485F330FA3545C47\ -1816F00B701BB055142EC630F35C9CE6E4FA45A34E7A782096ED31EDC1AC4150\ -7B5D16603146EB013324CB3ED4:\ -58E5AB04DC73919838D2E393ADB3BF0B854D2DFD1014B92F6E1F2457A7D3555D\ -919B9969ADB8A0F5BB4186633496C98C8672F79141F7364DF81DBD306EE0C457\ -BD8663318AD8020A8B77AC78F04AE830F255B44AF18A2BF81C393EB6E4742C6E\ -082586DD597EA811816D91259388718CE445F772BED05461338463521AC0C04E\ -2C2659B3C2E5B119318497EFA7A5B0F08350544C219ABF10EB7950633F48906A\ -7BDB5249CC19C13445DED003964DD425EB2C804DA0D5E4033BF94618FE97EBE9\ -DF437DE869F15E10B539E3A78EF8B05DECED51108D30147ED6D3CB592D7D2129\ -75B3F2EC7A75F110EE24B43219:\ -8C0409111B900DA2EA59092A1DA364F06AD0B5700353A5374E9AE381559077D4\ -1C8F5B1AECDEE1C07F4E11BFD4B20B84EF2C6FA3D64ABBF7B93BA039BC5EE7A2:\ -86CB12ECB42257430C2D79EB86C9D6CB - -18C68DF21BAB33BAE508515B99925FB785049F8F988EFB2DDC9BC44AFD79820E\ -654182B99571C19639FDCE6723F0151A1B35477CE64CDF2E88F73F361D111E0D\ -3428B04DE2D789F3154E357AA8F8ABC0D4EF7690A3F2F646F8E1CE7F8D9E5057\ -4241A8E41A75BFABBAA2D2037B893E51EFD9477B53D022ADAA64D382F8ED5959\ -ABAE95B912E04F035D795FB607DD9BBA4A9873C538E25C5DAC4BDCEFE0D63167\ -4AB2C6BD2F6AC8A2E4FDB892920490288E35B10894B33E75896FD84531E67BD8\ -2866B19051F59D964C001CAC6764D39460C8216394765A580A6410CC66A4A3E8\ -C4CB318AEF0F5FB4C6BD52D24D34:\ -BB211A3B1BAD325FC33B561EBE986D5E03A8F319B0114D3487A2F4B29735F4B5\ -2B9D1E83339B7169214F69E8BAED01FF0FE09AC0F04F222FAC7A99448F11B09F\ -42DB02E77D130C2EC0B1B146C8C3B9A27E8A03604267DF5FE8DF5F4F8EAB15B9\ -D2B4E7A02C157AC6FC18C4E2F82A630A9064418B9ADCDF4B0F98CA43435474A8\ -ABB0DF2E43AECEF571E4C382427BC2AC0BAC6567473CBC7220E7BF682050F17D\ -D67A0DF33DCC9079A6664ABC029B1308D6F969F88326748BEC0300AECF5EDBCE\ -8D2B9BC79791777F45BD2BBB5525CEEB3884914125ADA4CC0866E02C47E34089\ -6946EAED0D8917729A20B0BC5277:\ -E9085EE53951FAF5F0DEB5489066FD4C29D342764626075A25D1A6DCAE8FE201\ -BE2EDBCAE08B8D7D853827BBBBFA03B642D857324A5835151620B78FDD4A1D44:\ -14BE182E38A344D85D49FF2D8CE3E7AA - -15918520F3A5A8E78F554362E65BDED51966E000029685D8F5A61D184AC17B2E\ -BBF5BE9566CF5C46E2CC23623E7F1DC20744113761D01BDFDFFDB74C1DCCDE9F\ -2052A5516C848700DDE677667E52B03D89E8F147C698739664D52E9DFF2769F1\ -EEB37F9D9DD3418DB21E402806CF7F6EDAF35581284C42AC5501DA4FC2EB5F32\ -66693A26A383D5DFA66B291B8AE384AC922BEC973CD345EDAF41045A51FC4E36\ -A37DFF55D32A19978C239F43DAD3D8FEF4F98523C2E2FF28FEFE794C64D19991\ -30951EC74D1A0CDA56DF82FF158115B62B7BB062DCA0DB913C78BD33B44EF70B\ -758FE3EFA4E02F6AD1708C4F0B493D:\ -2D49D411F9237303B89D304B03E4CAA535C9299842363C82549EDDBA752B27BA\ -08CE73B7F30FFA78275255F6AD35973A0FCE8FE8D060586E90EF6AE64B19D871\ -77F911E43079B8232DDAEDBC7A77E294E2CD59E48BBF02DE77C76E8BD2D3F9F5\ -1E7F59044745A69243ADA6DE557F35F42E8D46C44ABDBB9AE3EF013BE854503E\ -C71BB6853EC11337D4E95764F5A83BAB2DEBCB16CBABE628525F195CC2EB4DBF\ -349CE9FDA73D001502FA872B6ED26A56738BBE0B1B23C9A847DA28905DEB2D82\ -02C3903DBD2E7DA694D1B999BBF7444AFF2575BFE84B671D576DF097D53E634F\ -D5DA9C1363641699FA678A5E2B9198:\ -50DA9EA5BC2A67B5F1F0DB776A3084A32F5F1F3318A330F1BC06577D9E50CAD5\ -3CC82002869D98056E38DF10F0BF30C33FC601AF527D6E5683C029D4F30A726E:\ -67131CB3F2D744E0C68BF4B872C2C5FE - -BC06C51D1422F4917B4E1AEDAB1682A4DE41A0AE0E29E916FF9966E05A3FDBA6\ -7AECD7E1E870633EED5E06CC223D3E8DE1DBD2ED672B2650F759A4D56552B1DD\ -C876309E35A74087B4ED8846EC811554F73BD30050ECC65DFAB8DC83F4FBC03B\ -2E08BC0F94E675E5BD79F5EEF270BABFD0E01F27BF24B29CE83FC211236EF9AA\ -541EBE0A2BC8565B6A70FD68B07E42F5151695A7E5C70E595F007E5EBD112045\ -D7879B8CA50FDA5C4EC9069E4B08967B7046204C62686D311F913A9CEBF3936C\ -A5AF98D7DF0FBE58237331A0F0D06204E9548A26F14603A23F9E8AE8B21D07E4\ -EC3FF0A6B31360954E10F115E1B9536B:\ -80E53B32929FA660B171E187CF208337620D14550A0EDCC3C4DC96F93C3A4E76\ -A27F3924E334B841610B486CA5FBADAD2BD6A663910C26017232805707748736\ -3647E5E977DD32E953C4B1A34B0B43A5E9CFCB974FC06DF890937FEF591D3506\ -68D6BE6477694C00C7B3D9C15FC6FFA058485EE3FEC5716FC8230665D8F71DC4\ -84E1D83D848BF6F0F020A1EA00E060254C6A7CA1DB49F101BB88786DA40878B5\ -AA758D63692FB65363DB11ED7DC63BDA3DBE18A509E567ED9D200386B5B878FE\ -C9571F39082A8DD7BBD48A936989ED4A95873A77EA4D24778FE0A5B5787F5B0B\ -2BB12629CE5AB14825E137DA01164BA3:\ -0C6CE2F496B1158EC119B0A0E9AB74B3F489B4CCBC9C895CD7E19850884F73DD\ -5B05727C9C0AF2078D8C578CE24E2F48DF4D3ABE6D238A473122F3831C4F0787:\ -FAE09A5BCB263B8ECC375BA60645D86E - -685E288E1C3800E1AD2B7438F78467430EDF29B1186D07655A44CF36D2D73E8E\ -CE227967117F581374AE4DA744557CB39CD85021E5C59173C0D89750E71B8FD5\ -FBD7617BFC427F854877AF7FE3CB7B0A3F637FA95C703956E8102C1FC3B054E8\ -BB58F4E8F483DD8CC178B1FDF398784C8716421799FAE814AD68588E5A68E2AA\ -907F4B27638AC73E76BFE65683DCD7FB84C41828D5F18E4CCC224AB00E72DD20\ -65DCFA293C79B4870350D91C2975698D88B33FEA46DFE08557F244C58B715900\ -E75B4B0CBB1976621596BCCD0FA241CC0C3B6E452690772A950DF5785F8D6478\ -3F3610B67ABAF7E6675A5A0505C982571D:\ -BF5B135026F3E73E6EEBBD22A1210E2A863C78E11C0BB11EE8A242E6C55F01F2\ -9B9DF915437DFCD72EC253A1D96AE713CF822D2C08F84BE16BF491E09353C3BA\ -8C41A4ABACB70A24F08EF17BB0BAE9BE6320E73F6CF2DFD758E7CC40109C3609\ -2AB5E93D3DEB6C03DF1C028ED44345E4852F8CF738FE41C98491C38605E40F89\ -15C14772A524042B02EA3C3A57C46BD91F8B7D2D6DCDF48E2DC23EF061043766\ -6CE3981D6D59126840369A11EF6E3304FADB64BDDD3BF5F8C183D6258DE174CD\ -2825BC84F7F469EAE12B622798585CCC639956B49594B3A6EAE92E1416AFBBD7\ -0BA2CF9C49AFBA035E28AD657613B053CE:\ -A9099ECA8DED735C5973D029F3EB1B7880AFB01E361DC27270F191FD24714C42\ -D5D2D5F03DCB344A43537077B1BB4D346699B61C381D177A76C9D316E3E93770:\ -AAD82154B7370B6A67D899B24CE21E3B - -1B7246ADBCF13C1D27708145F1269E684056DE1CF6D698C06E83DF2BFF3A1859\ -BE293228075844FDE9A1233EA6A9CB8AB2CC7893789B12A434E604E8EDED6A99\ -114BA6257CA34AB9CD2CA7D42147742DB2EDCE2845EF20AF596E6A6F115C486B\ -B9E1BD780693578162D210DF7569E10E280CE840FD47692CD1855EF58BEBAC8B\ -5EEEDE0AC581FF8ED8877640F60F73D79CD6D445106D76FEEF0FFC8144290981\ -8E2088440D1A5BC3457BCAC137EDC41DC03C73D2B0418E978C3268844FD1C8CF\ -6CF36F0DBA80319E2D452E1A0CEF619F11C08F2BDD5B79D52E30221AC2950737\ -882A2CD51581BF34D5FFE24E73D5BAE41985:\ -FA99A6CE219F8CE34E24B1E6949ECF6147984969CF0E6D1FEDDA7ED74775E055\ -85FA5711F97655FF7D3038381C7BE52C2F177CEE0C50D0F841DAC31C0A88FD65\ -A424D01167CEBD9F5ED533764080F922BEF0B90571AB5A79FE6E3549C26BE626\ -AED82E5CC2EEF781A2F2B8099413333454B490667D894C488FD9E27480F08259\ -0D3888F38E841F80BCE4900A2996B5382D1990331DD45B3632DEF6159F19CE46\ -904E1558B460FC17D8FC8C9E159AC634C8BB9300CD703879DDF2D6FD9622F1B6\ -6B1CB6D51A73B54B198CA34C73C5498685E629DE82DC3FC7A4C033C3566C044B\ -FD0CA8915C6C5C21726A38B60F28FE9AB511:\ -27ED87FF83D60062DA7B17EBEEA283896EDBE4C1C7A0955D36F49F361D696924\ -EA08584069AEBD0B2B90635D681D28E98027E1E742A96E2FCF8DDD84C0452757:\ -EBC60C3A26939CFC266533839EEC054F - -1EDFE0BDA25C2D9CB00ED63AF3C30E3BF7A7AFF9169B749802C97CCAEAC6B87C\ -C74646316A0F7F52BFC1B7AD674CC1CF2080A3EB780B0AF03C1AA27E5504F8B6\ -FB80D1ABBF46A40DFF5624BCD9D4267D53E3AAE275B961050F3D9F11DACA2708\ -2D258A52C8AB0DA603FCFE849D6625C4B75FC7AD37B513ADDB455DB40855AF37\ -D2C74A91CFB829935635CC1C41584984D394CAECB1260BF3CD44AF2113247EC7\ -F02D0DD9B6C7E70F4A70FDCB01559BF2CB71AAEE299327FF2753B72F354F6789\ -EEE630832022F8F69E0609C4C9C11874291F3ED2CEFF3EC6157B26C87E074ECA\ -17DEC907FCC47CB52CA51E7D886C720BECA9C2:\ -BA20D7C5B159868A2FA2559882EA88C82B1E3048E7F65A5EFE89B8FE11AC800F\ -3B046017826A5C6319FCE57B4E26D3642DF11270D0FD1D4455C441223D0008E3\ -BD8E3B78DBFD0E25B40BC62AADE9C9D83847E3865E650AB32C9933538199376A\ -CFBF9418874E71BFAB5A366F32567A77C9B6492DB3AAA1D0917556A2D4FF3E89\ -7552FA06522C539C6BD229CDFE109EC6A5BCC0D33C282464C3F3B4707C2847E8\ -501FC54DF0F99B8DAE8198798443228C51A97BB12C7BBDB5BEBC813EBBB28FA3\ -C1737B005E68ADE766F39EE72A8463AD9648DBDAF8341066F72C5BA7BA09AEAC\ -6B3CA46A5D80EC88D13D8FF63AB506331F4EDA:\ -EE566E33DA207FA5086607A1ECC2815A1AF4B05C4C96882727570A23A214517E\ -2E93C9FDC1FE860C67D823D29377F1BB45666323725D7A0D219F65EDA6B2DB16:\ -A7A1C1833033E0A92BCC961B291BC155 - -ED183973DAFCDBCDC28769895A208FCDF1D336FCD0AD6B2B038014AE2474957A\ -FBB14C7D96F95471C26A1D74E4A5471B811306DD9A11BA482CD9B62AE5798E62\ -1D5DF916F7EEDAC0B85604C59B3CB2E0683E0AEC5560CB9D66EB28B7404F9BDD\ -45735EEAAFB404AE56EAF78A824436384508DC4D8C075A73B5EC71B93A6684DC\ -906649557311303CB53F82E5AB97A5003587A375D75FCE337FF1ECABADF76C5A\ -B3B49E8F9CCD5F4BBB1E3136E5950DA150AD0D273025A163BE79AAFC2B706FF3\ -44E7AC07EAD93A18D1C1C6D732930E89D2EB50C55474F24AB2598EB6C54A8DC9\ -66ED61956BD8DC48F26F0317F9C2E0CBBF1E9EBF:\ -12A5E2CF12E3BD0E5EC9A319DD0592BE0CFC95A8EB313B800211A9F7529926ED\ -1EC026A8042B73245D02C3D3A527EF8F8672E62D30CCED471D5A20D02DB17658\ -A5A69A2EEC8E57AF1C2FD24F0830E634CB099F9F84E7821DFF344EA63A0C27D6\ -6D0E3ABA633D9C6698323B3A79D7F292A703F55D7F35DBEEE65A683FE28F9892\ -56112F889B80B2D8865060F7765A77A421C942D12F26E43C1FCDB67D26A4614C\ -A418129B3A571425944BB5320E0E8959A12AD661D63C00D7E7040DD077592A25\ -7FB4E799119567651E98EFEAE102B5440034C8F118F9D8A90315233EDE3ABE4D\ -50A76588DA3DCC84685269074635D5EC8463F63E:\ -D034A16BEF7526B8E15C0F74E5A5C615249F6462D609813DC10B964BEAC2D86F\ -AE8051446AEAB7332408967D4C0E11386EE1F3E580769C5D2E71D347FA5E1679:\ -CE090BBF1BADEDB45D510FE89AB34F1B - -511BBFEAA78DC9D2A7DF2470C103ED2E8D6CC2EB85C3C3529BF9F57D911280B8\ -62E29B083C7F737A05DC064B2A267D787F726F972E97431E23B568AF59A55562\ -5A8C592482EA12D0C07CEE98C96300978C035059444F9DD5200C2E43E3A3BA3B\ -B33AB03C1F36DDA5F254D8565BE0553F634CB0667DBBC3C7C1B3300321674B2C\ -CA87A1FA8945DAC6522F2E69FA30EAEA17F662A6F7CF421860ECC27506500E71\ -70F02C608BF55447E190D723CCE5DEC0166AA9DCAF48FB1AE4160AFC59603F54\ -DDDC9162B3FEF8EB6396F5321F0A27DE21CB0A65280EC883A9AD6C67C69C1E79\ -03C93F5258EEA047E277D67C9A139553140D20C748:\ -ED2702B34AF0FD94FAE86A0B1875EF1ED95F8199D4CAC8EB33010A7A7A36FEAC\ -1FC3F8BE873BCBE994196155061C40C9C6D649C2E0FDC68CE3285AD3FA058FD2\ -0E3753F98C1EE8F614D5031899AC813C982D6D2D26B72A829EF167A95433982F\ -692B4AE0605679E8212E06A638C24DFCC195F59F183A92A8DE46B730797E76F4\ -49937BEEFF19B323B72D352BF35D1123A2A74E5E7FC96FB8CB4C24D075203DC8\ -D416D7DB2B6B03D50AD35B6B2934D8161B1ADF0D16727BBB28D0B4C155ACCC7F\ -1EB855F2EAD86D6BC36A7588C4B05974B64F1F966E24AAC4AA64FCA82AE3ABB0\ -302F6FDEE7C2BD61F5998681454DAF3840173D31F6:\ -F8285A16BE35B63170F08921D8D28871C0ADE8C8CA3E780B6D2B9AA1AD6BE150\ -DD6E1C2D53A332E95D8FD2220D48684A677DC6CDC67284920D70423F4111705E:\ -3053654EC34DF7C87CAA98343F7CD89E - -2EDC8DA326BC92528CC18EE0F47CA74B33E7FEB8C5B5C4F715E1A792333E3953\ -F7A391DE6B8F720E6F96BC4FE883CCDC06AD791BF7A9B6702109CF9742628324\ -2FE0F32483E4DE8921537DD4C9C9470BC2FFAEBF71BB22E82CAF4930A2C43CEF\ -DFAB86A61096288345E603DEAEC5B8C2C2333BD07A95AA178BEACBEA4C9555A9\ -B47C3D2EE262EB2CDCD3EA5B36EC05755BFF04FFD12A5D79F062804B3055AC01\ -64656C9EFAF365027A9F0DDD0C10DFEED5987CCEA29986C89841FAB33D21DA67\ -E90E4991DF49B4A0187566D00922CEEF32CA2CD74CFDB8853DDEA3A0BCA30E26\ -86790E7AA6FC394CD9ED35BA10AAA6E3F37F6227AE92:\ -A4671B37B1D49987D5E6E1B0CC5781998B98BD9B0AFED9F71325A5F1DCE0EB48\ -B3AE2553842F7242DDDA6CE31E1050B97674755B245BBBBD4EA7467F36210147\ -B03EEF7E56CA7A64F9E61A5A24A468E90DB7F9B8A9711C51ACAAEF426D65A629\ -572226E634A2B683816FBD4365A7F1F34FC60020C60C8159CEF2B809814D3AF2\ -5F9A5448A478874E2433AE083B3FDAD289F15CDDD9D5844D646E399453DB9F9F\ -26EC787C42FF40D6191507E898D653D9225F15DC57EF30E589EE1B7B659EDAE6\ -7901FE0E23409B6491BEF6561A95474BD8D1B4F35C7D41DAD0A179A4798FC88E\ -2FFFAF221AD14779B0C23A99649AF19A35E9CF8648FA:\ -F53EA988F600C6CFCBB1D1A539FD2C4911B23E81B29D373CA23E63225FB7C33B\ -4947BABD0364EB7BFD460AB650317138082061AC82D7DC885F73FF1C1E6F51D9:\ -9731779293718D0E6635ACCD01B2E121 - -E348AFD877272E75AB4533E46A74D713423352E338E85F62FAFACB61CC353CA5\ -13702C0D42E5ABF5CF2B46C49E8128A153B47EC49BE7E5E349670ED0B760F774\ -6B5933A1E878D301F566FDA4E9F9F00151A71B3580D204EE40B2533831ED188E\ -4880E10EAC7420A74E2431EF778229B836CEB34642FCB05D2BA3345617CD7F90\ -8F35E4AC0073ABA016C49BA3C28AB470C846531E63FA83B034D73BC0EF73FCE3\ -2210F28012D92AFF26218D7FB79B59462EEDE2B1296D27C6EC6E40B2CB3F655F\ -B79D3284DA532D806395BA6940EEAE0503BE49856E9DBA2C8214046ADC604588\ -4AC8B0819C1999B30D6473520FE2B31B8682E6C17AE1F7:\ -5710629E5F9BD71516DE966C84983BFE939D39CE82DF4F80E7A9D48C77BECA8A\ -DBCBB1283FBD7BC863A2B174C67CC6D0192AA84636946898AC68119F39C3BF5E\ -EDA15A7AA935A4D592537A8518C36435D9E2149FBEE571ED80AD5E101BE4F9A3\ -7912D770F29F5D3DD83A1534D29108C0E142D7F3DC96B4AC8FF5E68219E0DA23\ -3C657C14F9FCC20445D152583286B11227118E82F3CE55AADEBFD5CC94628047\ -8921B981F37114BDA9FB1A9C3896C99F62FB59BA975D267BC7676038FCE21C32\ -4BEB6E31327AB5756AB57DFAD3FF1F696E5A9DB0325A6A6F30EB37BB260F67F0\ -A3C534B3D0170776F9A6DD3DC027038CCCB0D4A784E469:\ -C37C751FC481BDCF74BD09A3108755D55845BA1BE7ACCCF79DAEA329560939C5\ -C875C4B71CFBD9576689D4C28FA786421EF49832492348575C4617E5B532F0A2:\ -94659BFA2E1E6248ABDC13F6FD6B5251 - -B53FF69F8A08A98C6DE54BD5CCBBA661E17B63FEC51E675B4DB9AAC74BFC9C47\ -45164325345D2904B6AC9616EF350BB60D82D7CC8A202EB2BA0946425A13575D\ -E012026880C565F0B6DE087297E81783FCAA325EBB3E6354F80A89991A77F057\ -AFB9B90BDB1943BCC4D577A76554E11C59A88B6BED70414AB3241E0B11E2C0F1\ -31F9DBF7B0AE4A56D4338441DE51421D3611CFA51A838E8FC6370B597782AC46\ -914974135F1468C55978DBC1B2B1C4A5D65A67FF5D08270437A9512ACE3C7D42\ -BBFE205D1F48CC9CC631CE15BB6CD9F5459A1F57F4AC251F437C65D9368905D0\ -96CC634488CC8C2F33E677FB6A8D9AAB4C924475036435B0:\ -EAAD8BB070AE8E2C8336E635990A8C35FD7A9E1D54C0668FF7773AA62E80E286\ -5E90F8A6E414BE73CCB868F3A843C1F3C092941666535EC6CA5C08B274BA361C\ -1A36E4B38218D0FF16CA58DAE1EEB1DB51FB4AD48CD38E1EF39B8C84F3E00A43\ -B2F3333828D24F9306F13BDDF141EC83153C248AB63304E4FAE70037207D3E26\ -530ED4671DCA7DF505A1D4CDB7503CEC69BAE9FEA1CE5F7CC7505CF525C3CDEA\ -52071FE4A5110C84759C85BC1BABF52B8746A14A05C52813E5F02E21161A3AFC\ -A76C294B32A136F7C2D6CAAF233E8714F0C2D5B57683278789B2B0B545D6B599\ -AD0008E41D278FE9D3583165571D23A20C2849E87264D08D:\ -474361241C2D89DC2C1DA13160C53D7D9F33343D2A71F2636EF9B77D71B74641\ -36454573B66449B87047E15DDFCE2EB64E71BA381F65FECC4AFA40FD9FB596ED:\ -2A9A82BEBCA83CC800D76D78F9F21789 - -FBCB195863262F25E0DDB7AA269DA197C63BA5C03E3585AE31472314C9853181\ -B71F1B1365AC5369C8FE70A4B59DB1AE9C8E915055EB520B9BD87A54D51BFDCC\ -D1B6C7622C99B281ED8C63F6F829E87FC4F1A73C08A0BFB861A56EA3E4DE282B\ -0C57E5F8ED41BBE5E445E924485D4F8363857B917F7A93026ABE3D0EB647FCC0\ -3A938F67A4B1C6B8B0FC97EA6B8031725DB7288F3775247CFB25B4547694428F\ -580F51ED4C87DC0F1BE5DE2EE12A0260525AFF942E1159483D4A533448FF802E\ -827BE1DB7A90E65CD8D5195C920F7A2454920A203C94DF411BA6E3155FCF8456\ -D5566891F4E9416886ABB0C06A97F8C0E95A464630392D3A20:\ -878D6FF85F14EF6A5051CB2BEE2BC06AC8CCCF3925AC9A7E705E14BF51D6A97F\ -ACBEF5A830B9D0FC1F8FE14FE28143EDD63D5B6714BB12DEEF02798570A9E5A8\ -FCFD136FCBAC9471F71A69C59D1D389EC154214C9CD15C675C6DE9A890375221\ -9167BD864F6A79E69563A7154B6C88CE9E0DC360181214375F3CFC2A0F69B426\ -2C7F58F6B292328153473C826EC358B4EE4E9D6E7D4AF77FAFEC9F431E8A7C17\ -D3D0649865EFA3D55D19521851115993294A65EC89AEEA9DE8935EF65DA111B7\ -9D24F1260CCC1E2689D9BF285C05359941634AE5BEE9EB59759F4F4160F113E8\ -41F28DCEDC4151B6EEC54DD8A612226154D3B099D09FE2AED1:\ -EE6AA06605EAE130FCF2D9D32790440DB49792407D524CA1B4903C2FDFFC7396\ -8070C6114B6230F28277A02871F5B0459E2018122316FDAA6E1DB4684E126EE9:\ -725B2C0B298372EA36E977709B492E24 - -8413D77FEB86C319EE67E59B7175F8B9F534E50AE9FBA248249D45182157C998\ -AD2947E659D28877C7356ABE3F7D25025DBCE55640BF9A8594037937D659BDE7\ -F9B0A36828DC528092F77BAFF3C13B9E8E46726CE907859E0080874D7F557DCE\ -19FC7B59BC7294CE86A3651515DE9DFE32F19B09CE7A8C4BC968FE6CE9207804\ -92E46FD393C7C7F6AADD1E78A956419D5DA3B12410612D381AEC74DE440FB8E3\ -76FDC7BC0215FCD25E6BC33219F12E7484618C21502AE155233BC51105627912\ -67FA6EEA9FBE426FA6F08A5961925EBEC03067B5C362E1F8C4B73C50E6092BC7\ -266093AF7E54C3A8D352063284AE60CB93F5186F55575CFC52AB:\ -64E8DD987F52BD79D93A61FCE6B96B7E656D28DEF71A4924924C69CF89F6FC13\ -E51E8BAA372327483EB401436D8981CB3F9545870C12579FEDA86798E14EAC2C\ -2C2F948531444F8F30589202EF9491E883A3AA87F2BCFB68C475AC2E288CD8F2\ -0A807F35A6260A8E903ECA55368E9190091C30599CB87C2EC56E46AAFD26EF01\ -C071492AC2A3FF569F8F310236C9D8BAA6FCAE0AA9AD5C0DD13821BCD973E108\ -B1AA5CFB58DFC6D12016456E488B91F918BCD749F2E3A1C7BF564B5AFB2E572A\ -F56EB869977F5DD83D94A6E0EED58901B89FC8AF65C131FAE33CA28E0C71B8D3\ -A7F5DB23D27BB517977B7FD7BB3D4AED7FD65A9B17DD9884E561:\ -14FBDEF05D3DBA5A3D1D3B063BCABB96B86E2681FD070016C9DEC8CC4E1AA4DC\ -87B597F8F6BB3294F7E5C9F68342E29D578BD71D15423CBBA34A030AA5BF1AAC:\ -76BE7DC9A0DA36494FBBFF86344D27F3 - -C58CBAB2DB2DB412692422DF35E46D3D9F69EC55F0B9F94EC71AEAF6B52F15CA\ -7792F4A187DC0269EF0EB7540589B5815568344F6C06904AB625116913379202\ -672452476D5619ABB9AB059BCFF96F5575ACE2BE06F73C4A2E991C82D8862105\ -0DAC65FDA764E9B4D59CA0A3508841FF409D13EFC144E62D551DF65B5DFE84F6\ -28436999127EBADB0DE41DAC10F701B8E3D5FA9BE5551EF4A84B1D17BA4AE7FA\ -D33F73C940850896B756D93672DD0D7885FDA05330E1A9855DF6A077E59CF812\ -8D7F78C6073DF8488621C55E876F6B191CD573202330356C479C3DCCC63092BE\ -5719A970EA631B7AB3FA602145CBB60A216A848A8D194B61D7B1C1:\ -81F9F66C030B757029AEBB951DEC627EC72E2BB45AB309AA8693EEEF6B4433AF\ -9E96F28374E877288C1B776A91DD50699B7FD2D8C6D7118BED79FB7A8BEAA111\ -70D1276890906B9031B6F531318D10018C7C684B4B970210FBC348B16C2F8D21\ -D827FC1D587FFAC1346CAEEA8D4A63C8B1B49F0D96483ED300C5D8981DED4D40\ -55863E398B1379EB039CAAFEA87B6EC47ADB7B2D7CB07EE9D29A85B627B5685F\ -1154519EAD0295E8E17D02B15E03A5B058D679CB547B9CA5DEF8DFF3B81182C9\ -CB2C9D7ACE9B9055AB63FA8B443E97D93BBF9BCE84F0C5EE197E156C6EF15132\ -27A13DCCD33BAE432503B6FBCF0F0CE74590AFEA0D2786C33E3C3D:\ -1E6968CA450400AECE693F3EB5F0F50B2D3768CF547661113369C77F9F9B84F9\ -B57B659D06ECC463583F5EC1F19579C688BE206B6981508790100C15EAD608D2:\ -2C3EE199780755B8D469F2F9E6EC4564 - -948C211406A4634B01915C604736FB74B7FC60F1DE43B49106840A60DCEAA93D\ -8DD4468D13382C1CB2120924212045EF1FA7DBA0520EDD75A958ED16BB4AD0C4\ -4813365465DDF51139234214BD7E0BB414DEED1571B7EBDD3ED3BBC2F5CD04AA\ -92279D36235DBD1E25D9C3ACF5EA6603749FED072AFF287813F2650FA208DDFF\ -FC28A240C9E138CC0E83D478ED083C7CCC6A8BEF7ED7E8E89A11AC6EBFB8CA25\ -582EE1C76F880EE2FDD2E4E231DA4967CA8D6EBA943F602565E228D98A47ACCD\ -96CF2912351DCA293AB91B53878E99716B25458BF3CADB247C28F2C4852FB655\ -578BD8A5F6D30DAE3B0445AE3FDA30C77864D6D065122EF269B306AF:\ -61D1A1F7B08FE988864ED0C2075C17067454C98456583F6E7B34755D066C8ABB\ -CDE4F18219AC1CB1C4211CC8BEB7EAD789F2E8C8B0D18BF8AE19A38C82087498\ -18236C4B883D36D35D0791D13F41D67E51D19BBAB3B5B6F6886909C7743DD5FC\ -965BEA9F9F75FD8078E791897406C6F135BAABC1103C99088F700A6AAF66A665\ -DB22C4D38177348108029FE78D98CC48FF90D8B274C8451619D967909910E0E7\ -88CE75D9D7EA77B1AA35A84FC6525CA4D79BB10E8E375C232785A3F7620E84CE\ -26D88547571CC936F7E8B37C85CE4D15A38DB35CB98E75BCD748A6AA64BA3879\ -DA4797BC6FA239C3DE4B5C0F2FC2E2555936DD67564BE8C02C2B8697:\ -DE02ECE25089A30B519D54F375BCACA7D3111FEDA897046BE15EF308146CE733\ -A1D3F8A1EA1E176D0D348201C014CB3948E3735811DC6A3FD294A34DB9DA5DE7:\ -B6D88A316F8968B78D46E2581C49D8CB - -DFA4FAD43CB5B460770F02886FE505E930B479892D32466542ED5638DAD9BD66\ -13E5555FCE95BF1DA166881ED0E024AF9EC9EA083685D5ED0AE33CA22BF40A86\ -67F4351E62DD5D47A9973E5CAE0A3B1BA967F5475F7ACCF42C8E42E2C8466A38\ -C4E066E0C614FE9FD856CB9F4C23C6C8E5FBEB7AD45537F42657F1A7B703322C\ -3F087EE1D43C9ED6E9055A7B72D007C731D64A63969A3C2E256ECBAD3EE61949\ -E37006A8A7872D78BEEF3D470AB6C7D643DB6A63B0F7BE3D18758C1B246F9D77\ -0637C5F111AB21DE24F0CCA2C3316749E46D98B909D0187BC167FC1C755C3834\ -7B78C578F7475CE0A61EA0C0553E24253D87A10A768340F1E3474ADE2E:\ -A474D5A4F18E39C264827D3B2B44BCA5243D0C2B117DDCFACE4078D4AA136BBA\ -27244D6AD637FA1AAEABA4573BAD396DF3435649DA2BC081C9B7078C670CC47F\ -E9EFEE55D1CE351A9379A1A697ADB104954BBB786674EF3D942DA1870D49267D\ -FA93DBA094F72AD0B0085975BF38F401CDC0D99A44A3446EF55469EDD775CE60\ -8A07A3F2ABBF5CB963CBD3670B1EF93DCFBD54F19E7CCE3F837E65DC392D0127\ -4963828402DE7AB025B608C88153FFD193EC82D6DD82F9E738776A9B924591AE\ -9F563DA04E1CD64AB5E1ECEFED6DACCC68FF5CAFECB3876E026177E9FCD17CBA\ -3E692FBC2398E3D0859F72B7DD82322850C210DEFAE04D8E5A9CA25C88:\ -4CC31C503C936554D6B74A9511C4D5F1032F188597485A4BE78050D61BA49C4A\ -C2D9EC921487EA6D58EE66DEC9630623C0D781DB7990321A57DC455D31212653:\ -4565AE21BF25216372E57BE96B5428EB - -67D65B8A546886856699B229E6A955165A8546246DFB73B33634CC0D2152E85D\ -4453F00700A5534B3D1CBDD023DAF6572500300C8C7F1FB74521E2AEB12FEA74\ -DD9B5B559E7C731F0E46D4B13EA67350D01866F4F18DF37A5894925F5478E6A0\ -BE6C9F9F0277B365F309A45FE1B8B6250F43795152593DA988F3B3C00A49C676\ -CDEB84BD888B9DBE97A869D43BF1184DD6C7A1C7BD648752B8D623B043351A89\ -BF3F57D9784D9C78AD21E163EA8FE1D80FD3C8E7BDA24CE74F0AA1D162179874\ -268BEC2ED4B68711124E551733112929F1F2F416477CE2D3C3C2BFA071F9260B\ -6055273705196DE4063644D6987CA8408B222F60C0531033311598669BFD:\ -38508F9831BBC8F15D073F06F236686BE9076E236348662A38E7F5217976CA70\ -F2C16ACE77324490C00AA10C509E1C76E6C4B7A8FBFC2A9B67740F02B2D3DAD3\ -8B0556B12A15C5754F1B8243251A0177FE876DCE216D1250300C60F55410B302\ -2518440CBCF2DB81D947CB6D437094976A488CB659DEBC9BD40E508218250E9C\ -FDCF0015AD0EC3F5AA4E5828F87DB89E5A885214392ECE970035BBD263873DB1\ -CFD8B605C08EBCD1B7919B575B97657CF7914449EABB0DFD7F4018187C7A4BE1\ -30B638AE3DEF36384EA7E5AED4C02A72D038F8C92A9CD33E48587F6AA91ED84A\ -F2E234FAED0348FC27322D61E50791744226D536B7B4D4428AE188EDEAF4:\ -B36663375BFC993091B4E74A2BF2152695D8100AC0F9BB087F9575F04C34F1E6\ -E81E2F51A33F0C327403E81605391295FFB4AAE9E10D85B96D71F0EB3E888CD4:\ -ED53B4437B72771F35DBD4B0A6DCB510 - -76CBA3C36788D56286637AF36F40B8CD62DD6AE1E98035C6890C793CC9BD7B16\ -29BCE020FB1D7B9DA888C66740153AF23CAE3A1C67C12BAEFE5EB2E50658C11B\ -481B7570AD2E6171721465B8044BAFF4917A727E5270EDDE52F9EFD73BE6545F\ -3D1150F408C07185761D52B3B39AC97CE30CF6270612FDBE71F3F0119C1D97C5\ -08F196458D27A9F72BB70EC17AB19A2BF91ADB60279AF129A40621DC2D480035\ -E23DD602371D94CCA27797D6991F6F3BBAAC3AADA8B5D45ADAE004AE8C8CE0AA\ -471309C94BF54CEBEB5122B3FE553F3F01A96D85ABD604FB56DC2601E9D4FBE2\ -9088BEF2BD44F22EEADF68E26CCA389E3E683D013F8A396E0F7F35B6E72295:\ -E0C9B77CB1E62B69F73D14C0DDE478D35042CFC7E7BDE2375F54296278E27512\ -EDD25292970B0BE93BB08F77FE96E7DBD6B1BFAC0D69C040C3B08346DF6CED11\ -9B15B823FDB835F4BC0DAC5805BA9724FE89F4A1ACF1677A0DD8AC0F2A1A48CE\ -4452A778C209E54F12F46A663B8BACB11230D923F4F6DBC8AA6242B628554F11\ -BCC6A9F8BD4F589A397F8377D50113F56E42FED0233B8DA9BD285DFC058D989F\ -C3BED904FDC4447ADE85A52F8480BD647AA0287D2265CDF2311938298B484C6B\ -B59BB978A92E809FF5F93D324F65087AF075292C700C242F0030037C833A36BF\ -D8B4C13EF601E84FB07D31CBA3F898A97C56D4F2203B2B517E16E7A49DF4BC:\ -876713D5072CD46D22282404A9FF2B4F561644F6A97042E9EBF4B67E4C92AF47\ -7A2FE9E9B0AF0A7E83FFF22C3545C07862AE0A825C0426D17F6182DE87D114F1:\ -A9B40EA933EEC54BBCFC493688F03FE8 - -CEEF22020D5FE1E664D7B6A621599124B06396B2698AA835A1E7D18006DD7A1F\ -22A6DCB877C2D179BE4AABB0930533B13BC6B81393D01B959A480A1B53063792\ -D3BC0070DBC433B7BC296BECE86874FE1EF3B98E6E9953B5566BAAA8E74B380E\ -8AC347128EABCB92D30ECE67D9B4294FB24B697F8D3F9CE8A8AB20171A627D11\ -258D00F0E13E990A1B6EF0BD9019BBB7CDB3A0E6C2B8F45F599BD76D75D5CBE8\ -D1BA5802D9C08AE51972DAD1CE1FECC12F4FAB8D57725FC2D32CA6EED6099F07\ -D19F00AC51E9EC0E7F40027AE87B3B2A02577C1ACEEB0672AF205DADE8336403\ -6C767A0F4A264E03CB3497A66122A4D713F84F3D6813327A1193A9DE61D084AA:\ -8CEF8DFFE12D2E10B2587FD60464AEE0B76D07D5B1F7B9165669C7643EAC7777\ -6C0C6E4A1B7ADC275D816D24B67C84A12397E4260DB19651903DBDBBF15613D9\ -0E7CE72A1BF4EFF3A67F05CCB9995D6429C1A3105BA79DB70903C340BB969564\ -9EAC32737229B4EF57EFE6DBC638626D15765559782935FBE2F726B84BCC6F45\ -FA5580F9242D675443C7BD0834BC409420B546914711564B4E1649772D483A42\ -C93139D4BB95EF5AD6C4191EA5D50A5AFBF3A5A574967A29772A091C2B841098\ -075596BBE5B5196B7F88AA39A43CFD4FD51E6011778958683954FDC644AD8085\ -3D47B1EED46863E18C1A9D2317BA6C82AC5333CF159F239324475077FA623CD2:\ -03AB68E651BDF7A802B9CDCE5979E8C5BA50011CC598DEBF9C96D5AB24A6D687\ -C2A13F7CB02DA75CC169B630B70A03F899B8953E1E7A394A0DADC0317651A0BF:\ -FC6A578B92C0DE201C0D2397EA10FAEE - -[Serpent/XTS] -A64912329C9D3A304B838FB087750A63C9:\ -C5C91A425602B4CE6B81AEF70C57CBD6FA:\ -2D2E5386BC3B936D07D9CE11E43CA175906837678B102FB8EEF6D8A02B214ECD\ -8E4B76A03B93CD69075081D9BAF99E83F88583E620E351B3C4172333969A7135:\ -38EC40B118BF54A851F55D7659FC6FE2 - -33792FCFCA4502858F43260657F986EE5A13:\ -7F040FC5EFD0EEEE7183D3AA8AC496FABBE0:\ -3303EECE235D3AA3111E48A580D0F7B9A008F102B1608A57B730E4671569CD61\ -50E22631F2C6227B7E27ADFABCEB9AC1A37B43946E21AF0B9FAE85B2C0E0A631:\ -C0E92A058A0921AB961FFBCACE0E39C8 - -114FDDFD42873966893DB4A97F54EF8062D57C:\ -C7D739AC4748BB6C0E6F578AB6482F436A56E6:\ -BC87297C1DABFF03DAD7080F4FD3F97378B8FEFD77489DB5DFF6EFBB05683661\ -ECC5785207495CE376F923E47076D218C2EA999F7D66A92E674EF7B49BA5C3CE:\ -A3090A3A117A4EF924069331945FE33F - -E0CD635C50BAF984FF26CE92EFD2068DD9B297A5:\ -52C4CA78FAA1D5C2012AA75835E095B0E3CA6BD2:\ -CA0A9E45CFC1E6AE704028690B46ABE1710F18AC3737347F71C5FEB8125FEB23\ -0CF6CA2A2364F300D9DD3428E301C5CECF5C33FD27167FA95D144BF1F3DD683E:\ -4D867869EB5EC15F99710603B457A23C - -F7FEBCE430AFA8FE5CEB11284B9DD6122EA5A40367:\ -763EA0F3EAC3935E25642AE16F88BC87B93F707092:\ -0D52EDAB29C08B1B06964AD97294D8E494955C9B46DACC57E67DECAAFD5A3399\ -8875DA8E4CBBD2E1E7AECBBC236F6EC068A5D8B123824CA08A14279F06599CA9:\ -572937FB80372E8C98E469509CC4BEDD - -B0F76A78D897A211DD8A18AA52AA8D72E859D3378BE0:\ -FA2B87DB768F28D3BAA970DC88521483670AE12222DC:\ -1026843F224740ECFE9B9346A1EAB9C47BF1B0A576C9376BF8DAA697F36D2366\ -BE8DD9DD884D55D87094FC5CB843B4F32200646E8CFC982A2CE13FF90BA82632:\ -8DEE91215E68187CE1B16B30D2CA4519 - -A2CFC2925ADEF9462638C2F3BA621874FF520CB515374A:\ -A3D2D5069608C7F1715E4B7420658DC186BA0BFAC8B89B:\ -CAD3CF326112C3257F265F12485758F5C726E0417088B9A378017893A74DED1B\ -47147D13935072A97F4E20DC75099A50B625673E7BDDF8674631CEAAC7B9FB5D:\ -EC1720B2B572F8B32FFFCC8DADB9BF42 - -937C6543FC91B6856C10FA0F7792850DA87251BF42CF3FD9:\ -759C6ABF8C39AAECE8C1DE05EC4FFBD669E60949A26CF6B2:\ -1401416942F0377C7BC3C6684D5B013A642CD5F46D3F30746B506DC115AA0D31\ -C78B21DC7D9DCAD632013FCED931F7A140BC9221EE96B1DE62CE5AB6075AE86D:\ -CA9891C64F86CA9D382CB22F5C9846AD - -B0438EA9AB012BB8E564FCAC88E69DBFA9E8FA7592D2CDB83F:\ -358C7D0888188D9B8326E5AB4FF7EDD1922DFA9012C8CE107D:\ -EF1484D894B1F28E9E0ECA1F118FC998A4EDA2F247B5D6513AF075CFE65765A9\ -93624F2EF4A5EFFA84B2726DE4896EE076DC67D16F8217F9D2880C442D6513FF:\ -25E39A07E7F0C1EA5027517BA44FCFCB - -1732C3978CDE150AA6B6E1ADF9478B420B2BBA68089109CBD3D8:\ -5E1167CA5C684874E94BA64B34FF31B35FA488030A0F2785166F:\ -EF330CCDABCA8C3A8E08303CDA4BFB3248F6AF50BAD447A89AC0DD939E4EE0B8\ -0EB4D03B515C2F5D6CDC5CDB882A4A0902A161EA7D5B3A55D162C8A9D72BE58B:\ -E368A7AC0867F1F037FA5BC712D16699 - -B5B8AF83F628EC63BE8179A967D52AED11A1D66821F641A10D9407:\ -319AECB42B0B41F460BC09AE543014CC773292130615D663D5377C:\ -268F88383FDBEF3D78654B8607A405AF8268E17606EFE3C21CE2A79E22431FD5\ -F03855E5345E3EFF0766F0AE6775D7DC14C8345D5830CFAAD7CC4DD1DDCDBB08:\ -1CAF4EA6F270285448E4FF67D8088019 - -071F2A61C5B56E2F547731CC1D5F436339FE4FCE9843F0F3BB6F3756:\ -5DBE768DCA4C4DBC23BA9F5F91D2A2C3CDFDF058F74A99512DE4F445:\ -8E27A37490956A547BC2B909968C2AB009AEC191479402AA8E2243197A26CB2E\ -4207AA7C71DBF268D5EB543B2D5923CC32173EB9F309A7EE7B48D4C96B446597:\ -22E85BEE91A412BB408D433CD69341C4 - -4002B4A6E526199D8970471121492C7268E26F43B4B9DEBE1C388A1F3B:\ -C3960534858D335D7A6AF3E6A4415EDA053BD5F53D28CE7F067B526998:\ -BCD2F39FC436A46F3DE97D7F3D14DF4D85C82156C2E877D1BF878320A653CDE8\ -CA714A3EE99E5DC6DCBDB4B3E20E774DDC5763422E8E66CBD4A934AB86153D0E:\ -5FE21A17925581D360C6BA3D5DCCFB57 - -A6BA11AE269BC64444693E1E1510578023FCA38D36B58080DA763747E443:\ -A7BDF3B1BC625B538E7A5F91647EB68B86E85F21F12D256AEF7FD6A467D1:\ -8BD07C2737B27FFEDB503F817AE4A8AF32713D462CC5EE428A6A2041508C9251\ -FCB30080EF8D08D8C59D3D8668CF71A2899006D673ED15E7ACDA41635646EE8E:\ -0467E8B154A1460A4915A1854723E168 - -B5CAAC897C50CBA32D2ED3A910F7632204FD9F21729F2AC0D4AF12FB42D7CF:\ -ED5B0D0B19AE8B63C0A4D6965133CE078A40E5931A739C476AA1364A8DFB93:\ -6E2FC001D8054AEDD2600DF63FCF87B6794170C99B5D2523F9F8F5B4285522F8\ -7A7F241200A0AB49D64C819C08F6AA9D3B0956637A05772FE80763FA369F051E:\ -30F231662ABBDED943FABDDE3221B631 - -62BB3594176F79E3C4D3E1A79E74544E7FBAB57CAD1D06175E660386522452F5:\ -1B87F8C19A41BCD059BDA7605EF5D39B361383017B48CED06FEB829BD096FD26:\ -F05A9EEC5DE3364407272E15822008E57E1E808634CFADCA76DF0942D94BBB63\ -536D8AEDB16C77B5FAA086DD41FD8C7B62968FE2A0C6844DB7FEAE51F22AA0C4:\ -85F2D8CA7FE78836B6A98FAFB03A911D - -15382AD48DDB5D5BE9B41FB73DE27CBF7FCD7A7C7FE5380648BDD92B0B228744\ -D2:\ -8C8E754185C53C63C1CDECBDBD49E6CD92695796703ED5B1E6782F33FA9FA714\ -72:\ -37E7D27C585832360629E34343F4015937EEB4987F28077D227DFABAA9398EB2\ -3BC3BAACE380AEC2A6B51F68F0646F2B33E6BD0FF714112FE3E28111DF8FE423:\ -E57ED1D0B5BCA67EFE6E19614B05BF1B - -67DFCBA843ACA0AD9BF86217AE1CD70BA0B5B72E5BAE11A70D2D458F28DA1B1A\ -7CD3:\ -754C70CF740610D4ECED7EF0188D08194DE86DB6EE68E0F957A41A0405B9BF47\ -9948:\ -F91CC4CC7C0621E4F9FF4B20C7460098A7FA3C66A6A6B4655291EF8BE03B4E92\ -9601FB324A5928F37D2BB5F5A13A21C4A13B828839297B7BD7DCF246B4B52E70:\ -395DC769949C27253E8F56398D14BAEA - -43CF81247F3B2263CABB1495818D21E62E1E5CFEFD9269EC65E558030C690775\ -3C8715:\ -9FAEAC3D4D9A0D809AFE1A7637C8D112C13B4D10482093F06A3F81E85826E0F3\ -3BB13D:\ -F30596A80E7B20DE5DD02DEF72C96A76827C3F704C2829DDA5DC402DE218485B\ -A02072CE6A8D9455EAA9A1FD7FB0320B7E61B91F1E20879AE971CE8E0ADCF423:\ -CA5375412A13D1CC69ACEA47238D915F - -D5DA49D4651F0A095F6C3BB6F26D6F3C74F82B66630D6E2BF88F599225B04E20\ -192A70C1:\ -512468CE96E079766A780057B99E017039BACE411E6F3DEEE1F3FECA585F7A71\ -4D9BAE40:\ -44230E0836B1316841C6A1D2ED0A0D2DB803252C5AC031C4B0D6D04BCA2C7B12\ -791F0D70BEE29D5B5925F3BE8273258270B99997021A63E03857B64403A3C74E:\ -21D5D494A0EF531662DE801F17FA9995 - -E98D055114E453F56891D614A4D4B1304F445729EE355A6FDE15510A3EBC3124\ -263B5362A4:\ -21725040DA3AB19E2F7BF49AAC0B3803A1810DA1169590C1A1E869BA82A45C50\ -6DDF6BDF36:\ -EDC32E7905157CAAB42581A0026CE8B72CB98F5850D43A0525089DA6EBE196F2\ -0A28BA6601CE626EDDD6A338F4A196E9804CF1DF39E0EA83AF591D6EF52BC091:\ -B0A5355902E88A45D903996F5CF2DAD2 - -04F9A067F81CB3B0C17B503BD2B3EED598E0FF016D78D52ADC2B20E0C9C819E4\ -311C050562B5:\ -1F779BCC7C2F3BF137A3C40A833F4642C9BCCE6B8017298DB2F4EA2BD970FA26\ -9F963A938138:\ -91D683EAA7FEB066EB00F1E8B499302DC5E94D476096E4C4E8A5499B6242A2AE\ -09A1708DA9311934E9CD3A194BF9332F8EA2772E18DD38F8D742FAC64B52A9AF:\ -D19CF496837C119C600BD2D9AB4A3A6E - -030DB028A774DAB81420BC35A6F108C14406F9190486207FF66A83ED3FB3B513\ -223704EB5B25A3:\ -453CB99DC809ACE604C6C74175675301C3214F046C54601E0FBF7416E7854691\ -F3CF0193E88C1B:\ -9BE4006397B5D065AD344491A6A6A4338F221710F72C3ED04A4B963A48FDB702\ -B465AD7D9ED9D16E8F7EB51F41A17E0A8865B06FA89D21DBF09CA6FECD3B7853:\ -1C3EC19EA57FF994C6E57877FBAC9F22 - -6E03086AD5B3950B55BB214D67573A9F996EA6B0A05F930685B5FCE95F13E324\ -1E0BC766E5328849:\ -DCBD06446C6DCD28A06BD287EC91D2873A08EEAAD444AA05B3E041590528B1BA\ -466A59CAA4CA8DC7:\ -436535A2B92E39E44A24CA2E5B478B419604C6DB68DCFC96A0C4742C4FBAC129\ -4B5322569F5F955CB4D2552F6703933F0F7A8BA5BE7FBCCA3A5ED4A5AEDE1EE9:\ -6EF7D677773CBFD4478550A8C50F1B93 - -71167FAEDC3DEBA25E2175634F8662502563EDACD7B1F04850E013BD559F8EBF\ -6A1B69758515CDE11C:\ -4A800A9187795890B13156AF8F321489B1CA3D80FCC1413FC0FDA34E979D1091\ -F5DB2DA14C715B8CC6:\ -9D52F124B7FA05A83BC93548254E1813F0F07EAC404E97417CCCFEE296360666\ -5D43E1A7FE9E561567F29A3F2581A1F22F3560DB7DE146632D7A4166A4397880:\ -803FD28367C59E8F989E2B3C82099BC5 - -331BAC0C68BA4C57CAB13CBAD0E1BF9185CB5334FB2AC62EBE1BDC8280AED203\ -2B0408C03070666E8A02:\ -9A597C07E449E4DB93B12AAA4ADEF1EBD2658900608B76A8F9E82F84B7E88B26\ -20A9DF213A4EFFF9BD09:\ -C6FEA95C04A8C60FB5D0F5E2584FDF47EB2052F1907DEBEA745466061A271C6C\ -68F964F3E632E33EE161A4362EF7138F342311F1F894EC64A917AA2BC9FE39CD:\ -D15B7109DDA41C6BF165BBD77E694153 - -E7A97BF5B4D93DF505C2F3100C02BD3517E503A1BAE1DB9A03F2C6C628E39113\ -C35B5DE32E3A1F0A845BEF:\ -CDBBAE44818CE74521CBE4640031136EE54D7CE063430DB4AC0265DB4781E501\ -D1F38613D7064329E34F66:\ -08583FDC6287F4111B846E9E441D86A684B283033D40FA4E05249BACA632648B\ -8C536E6F166731CC82E3B9E413E55013BC0C6F21E16986A83487059C7E760243:\ -20A1451F4A0C54B2850F8768C23EF2D2 - -F09943022DE835DC91022C8E3469DD30672936F47598AE45D2E9DA0AD202872F\ -2EECB9A0D7DF5C43141137E2:\ -B6B6A65915862C183AEB24BFB067D820B5C9A2A2D733DC8B6A447B92CFDCA885\ -65B329C13E0760A056AC1FF2:\ -D15FD7E98A90913F6955B818D3B0BB5FD6B5F69698A260047F5EB1695D1DBC2D\ -30B47FCACA64E008746402DFDDFF109F1CAB2097CE350E3815997E82B824E34D:\ -F1BA49B34B5241D103D5708759AA1043 - -787BCB7FA345E332F3155014BCE227ACAA34BF1B5F251C841D192DF9AACB9870\ -1A8B703659815326E347968892:\ -D7B568B6713868E3A370C42D9736270D2D2B530990F844E7B0662CC5AF5A0017\ -224B391C2BCD41DD967FAFF0A9:\ -6D9ED6B853D403CC8912AB580471996269B47DD71226A740A160FF324ECDBB17\ -984DF46B407C0E1538C09E88DFF7D3875377CFC2C181A47ED61D3A0211B3829C:\ -E70DAE7DE687411F326B3708606B1731 - -125B0831E1B9D2CF7D2217721C23C779BB6BC45AC62883785EC5E6C6F4493C4E\ -17BCB79832C1CFAE7535B0F52255:\ -E5EBE57CB7990D92E27B11A9A033FAEEC0DBEB058486125CB4546896E109036B\ -F6A42482D6AFB6BD6B9E19760863:\ -AF24F1326E477305A7F3C0E92F6AFB4C78E1354BF33FFF3A69F85CB46F3FFEE6\ -A376567FF4C48A89EF5D0F8BBE89A1067A72507F3B6E7796FBFDC2D6D66971A2:\ -520D7AC675F475EE27B403885B3FCAFD - -776D3FEBC22DF177452FA292B5600D1F8D2D9547DDF425E335A7781F4D7F9927\ -9881FBEB7C250BE7EECE6277F36B48:\ -BA5C3B967F3F5AA1FC6BFCA27B0DEB3690E97D656877A3A5818770E3F67EBB0C\ -45E85F3559EA97929E813DC62DD981:\ -AC1A14214B02A17B4D3D300A8EE70245AF1204959FFAEBD5AA8508A4F1D84102\ -CA67FA28E059A269E55DDB432AE6DDEF4BDDA000FC6DEB2FF11CE5B931996D2A:\ -34F0F96DC5CAF8E0A34E1263B3241B15 - -80F2B8E786863B481EB4EB37CACA034869AF225915173B4DD48502CED11AA9BA\ -7D97708A19165640B526A655A9C90187:\ -8F1FF889C3E7FC33D414365A191A41517B8BB420174C9E16F268B74BCA39E29F\ -609262506B1656A0ECF08FA8FFC7FC47:\ -AEF2902BD2C42F5A0844B7B4128D0D0D832B0EB2B70E0B308303CA118340D384\ -0A75D04B10EF6A5110F6C88448B7E6EDF6D5439B0E1CBC1FBF93EE4880EA3C7A:\ -D820B643CC274D882C94DBD8FFF6A253 - -618321D1920AF6AB3B8D047A707C0A26CEF5776D5F76D21AFA82CB56C26A5D05\ -15782DCE07EC23D7985E7A9F76665CFEF8:\ -CC31FD0BE47DDECAE38A95B67114C2F479FD43AB428569BF68125E040419F9C8\ -12A80274C765232816F9E97EC49BD62621:\ -021963C34CA80643037F5D395009153EF8F44907B46C9B72A32B93AEB2B6454E\ -D2F8EA52C34954FBFF83F3BA18950E5365FDB4F6FEF563F8C61018E8D09F9688:\ -7AD04E3741DD2BF2AC097D5650A2DED1 - -D6A914E0F066A2CD93B2B0B0DE71FD306F8B8CE6F2D7B0BEEAB39B96E8D688D1\ -B02BBD983B42E7670B9C6AE107DBB5FD0C4F:\ -C24784169E7A54A4B14940DF0E730D5A9EDB2D8BDEF6DBF13C0B23C312E7EA0D\ -8DE7C2B04CB384D0BFD0035743CD159AFBB3:\ -7D855D24BF28EC378ABEA95DEF6BC3AAC6F13573D716A2125CAC654175C99288\ -2D4756D6B46255A37C1741EEBA23681F26B70ED132AE3CD4E71BDF15AA41BB8A:\ -26A8B30348C34F534F9D116FD536AEEE - -548931C48B31AABC6B78A73CBC76AB51D92A5A53626B97A922B7EC7892FE4EA4\ -F506A58BB990EFA1CC771AA762F339FF536FE2:\ -730589AF27679A9726111FC1F133799DBA6FE7C7D0B944DA6CD8213589350354\ -F3DAA15B1539F09E3C1FF3133EE0519FD473F3:\ -678F63B7644823FC9CA76864852658798488037AA055BE143D56622250265E02\ -099427B369E9D789AEF43ECE7CDED6172FFE61A9FB77793792C8ABD1615F8D81:\ -5E7B9D9DA944D2FC5EFF825CB225986E - -07107C702CDC6E88600F8F329C907C47EA604DBEE2EE3048AFFC777DD766920D\ -DA86ED1DB84D0A74D05A1CA2E5FE31C784DC6F92:\ -8085E9F1F6A9C103B35D20C52F8F3628CFDE1F116C9B58AA7DEADF65F29C4FAF\ -C3F0A209BAD176EC86F0B05C4A7208EA5EA1240A:\ -67F070A8C89E7BB8C24EE530CEDF15CF68C2D2DDFE0572BB8A57F741A16B2F65\ -5979614C3D18837249E76164FC02654F896D7035B01ADF81D0A7F1EBA2209B23:\ -DF515A3BBE568EF7B1E308DB5D6B319C - -982BB3850E4DC983D4BDF06CF896A4E9D627143E63AB741C7A15F71589E3F281\ -53F8C6969CC1A72E4D657154108C4DDA860AF56FDC:\ -42D328E475E23632CEADEA4AF06A3A9AC7E04F190C953EF0734218D47C032B64\ -89A5F5FAE6BEECB7DB07A4CE2663C23A75F89E7E63:\ -D92BA285C5311C9721E06BDF23DC0AB4E9AA95224548E6FF05937B21753AA26B\ -DA9121696545B0F466E7265C8F6CFAEF3E3DAFC2E8F600978AE2B5FD592D79D4:\ -38ED78A11599AE454E17AD22652F428B - -79DF47BC899B7E1D793A7602F8A9932CC3EA231AE881F8DAEEC7C20CB6EA709E\ -451C0BB10E2C0634D8E7D47E28A57906778D8447E7BD:\ -30AC888D1011A4669FB77BCC413247F69C889EAD7C70009A4F805BC696DDB0AE\ -11A5E1FB2E9E6814C23C616E5AB640C15F3E080C91FC:\ -0641CD20CE2C2F599CEA485F594A700D71F686DAE8143DAE2BDC6A05A4EB7D43\ -07F55E27FD5AC064D65F1B1CF5A1E20AB17BD8FE00EB2184CFCE23E2CE9CB8EC:\ -AB73493267AAB67BFE11A45D0D133A61 - -4BA2A1BF88D9B51011509E40D1ADEB5EA352CB0948D77C4D35B99B5B608147B0\ -3A1C0F9FFDECCE78C90F46C5B542AF31C62F4CCFF4501B:\ -674D7CF26878208CF61EB61807CA6E816B96327C2DC69D5576A149B8A18AF171\ -707A74E4F6FFF2968FAD1791DF066160BD259E8586DFAC:\ -AC335B56AF79563F9CFE27B893C1B906B00F3008C3A7BAF007BE2BA4DF4A4DBA\ -ABEC4889CCC7BD87A568D2917ED7F9507D5AAA5183D9B4646B5B1389F927F85C:\ -505FA490887931BC21326BB51AECBF4A - -2D66D72E3D8A1A88B9663676EF1C5AF7B37A175D3BAF0F9BAA3AFBD34A01AD26\ -D7E0FCC2B49A79D9B96384490BEE585423214F75F142A184:\ -A84B6BD1009B8CE205E56F276F52F23C079A3E74F2B9223A3B5B62D51E11CB70\ -6E2480B726392500A47C7C1E67EE9C154C41E7476AB8D685:\ -89F8100C456800D0E6E7FC23E707B1D6016F9CA5C7AC04DF276BA763C969157D\ -6F1286DAD3A303F79E77F5347D861B36B80DE239361623C1E3873D6E1BC60897:\ -2B6407677B7BCD9AF8A200275F97DC0E - -9044BFFA517A1EAA7CDD8039C70B04835412A90AC3F55C3162ECBE83425A0633\ -3205BE4C3EAAAFAE8F7C7475E01F670229F3A63360E43BB603:\ -9DAB127B2981927BCE9A2F0147B81B67DC568DCE8843C1665846521D76CAD62B\ -DC9C6E4644782A62EDE283942F94446EE4459D1D0FF20A49BC:\ -70B64496637404919D1258209B9EEAF4299AFF4FA3B8D1FC27560FA1AF2D37FF\ -1FADF43E4845CFC24E535C140292353AAC2D0C74E659A72F7ED7FA87342FF14A:\ -05AD42D5E2E7633DA65906889DB23511 - -D960E3C53C4FC18E33D5438F3716DF0B249DB29303B3C978011A818C29CF7D14\ -296ABF23F437E6D60A5E33CD8D54CFC8B893C4AF5DD3F2ABB265:\ -073F377C34EDD3D3D80084E76DDA312A41175D6C7319EE87535CADA1FD06796A\ -A7DBE225B5682AC229C8E71947DF3F7C1E7759D14DA843D3F4F7:\ -4B3B4EC015C2965C677660ACF7290535AFDB961117EC174A6064C435ADE9DE72\ -ECD497531EF8A85E9C9ECA6DF819E0207857CBF05309045E3395F0CDED42BB7F:\ -6978A2805F56C9181A1E8A69A620C3B1 - -FAE7F5DEB49358554C36BF34C45E1CECCA4D78664E281549D970F9895D76D6C0\ -366715F690CD90D06461FD1EF6A12A4CEA6C98706C2DC28B7D61A5:\ -D733D742DF6A7327BC356933958D919D8595B91837A85D421B751515719492B2\ -D2CA83A582982C72085885DBA621724B1A17E1B94935651B3B0F37:\ -650246ADC746D8B040F5F66FA88B19E3B1D2170D4BBB420CE65C48367F46AE3F\ -362A7819AD347FDA0A897F9AB3B6BCCD30A6F6C01618E1C0E83E559FE49C66FB:\ -408111F50D7EF68EF9E5E0A674F56802 - -A7CED614F48880BD1F401AC2F1332F175D46417A19C17A90A941E0DED59C5C25\ -C152299D253108FC2EEBC972D0A954CB83203DC8EB72E393EAF90BCA:\ -E4D0CB9339F28918AC538B6E8947C1E6E54BA87BAEB88974D9D8E4F4C04F5B9B\ -C60C7181BE039F7B50D6B46768FB8951120FAF63F7B81CE50EE1092C:\ -0CF9B672743456723CEA953937E663FF4E2E583C3E9C819997CD1BB8F362E184\ -DE69AF4A4D040E1B5E710ADFAE3C1ECAE9734397BB634BC76E7DCFFDA9747C1C:\ -D54C647BA087A7712D538AB19F8A4F5B - -3007EDA2A3BEDB4443D23FCECC42936FAD5E33AA9733FBCC8B172692F034301A\ -288E9811E406384A79D84C859D0288ADADAC9239AD70E7E3F9A332729D:\ -8C3D6F96175D345DC5F25F19F3A30CC1ABF1051B0509520E91EF4FE9180C441B\ -AA40E84D5955566F402935FFBBA10C8774869CF50AC7FB17B5E3A95397:\ -4DA3D4D9A992155015C806D9E84EF5E149FD20A3D9E258DD7A69D2952C0C6E3C\ -C7867DED5926F7CA9FA6C0BC6AF1A3134E4AE9C4E97BC25BF339B4F907516E0D:\ -9A81E5FA3934D192EE249EA8E7562870 - -F8A4A921EF927C69B533DA38C7C691A6E348E0DEBAEC55642EEC34F42645D306\ -309A5BB3574836AB2C76EF3258639425D128CF65C7B19387C2D0813E63A3:\ -57440E748A38DE81CBBD80B1F3D1196C7EE9735D5CCC26201C05C28728FEF9E4\ -159691BA02E6A51F9D38CE9A89A8B80756B9A0FA4CA9B709303408CF2073:\ -C492F6251A50928E0DD8FABA215CE6C9763B8F3FC2C6EBCDC0EF24D5F09F0A68\ -B20CDFB7F40DCC8EDE656556713AB51421C6669C9B59FF11011DFC7DC590253F:\ -7B77974EAC00673107A64B08F29E3237 - -81D95F6987B2C0C104E2032911BB510F39A56368B1CE8B4B3FB0F5E53AFBBCC1\ -7CB15327D00B4FA44EB30D59C1622E23AB0E273811F7DAA70082DE1A44AA1C:\ -ADD06ABECFFE545062871E42E3F2D773B227026261AE545FE1E76E6DC6B0A626\ -2B95035A2A5C97DE5AC27565151ADF3FC17A61B9C1D77A25FBE48F6EC6DC26:\ -2E922CDB47B6E777700E1E78481C2D4C70C6F92F331098266EB143C1C381C2C0\ -9CA5C3DED5E7A0BAE46E30165DC88940B7A0452E240A6BF06DE41FC7074954FA:\ -3F5E84C1B5E54EBB29436C367310D491 - -15DC26624C9CA609300BC89CF5E65538C9813D3D6169B8567723CC1D20401A2A\ -AD3E24DE64FC2ABD9EF80EE99C5DFC4463AD7F17B24B9C34822F4DA2AA085139:\ -A7CEB2F08743695E4F292BCFCC7C73F166A241A411716665EF32E8A0A0974918\ -D70C08282FDFA91355CAB04DD4D5E2F4B65D56D153709B8791999F82C3D757C2:\ -4B4AE0BC8AED1CE4A52F1CBFAFCB2EEDC287E715D3506F3A8D80AD82BD7631F2\ -EAA9DAD03AB68F49C6DA9130E8E8BEA95E36AB423898D27E2D5E09B44EC0D280:\ -1056E8BDCEF6EA625148CD5F2F0F72CC - -CE6029DF95D6E1F322C30361328E59F8FDD28F9CC38C3E04671AABA20D5EA355\ -F6695AAE23A0224F34155A17D9DB8D56BF999AD680B937538F5D8C6732A6CB67\ -00:\ -6893C033D1E7C74C0B8185B0ED20DA8A60EE89B256857C3DA4E5C9912573AF55\ -66B54734E1A364F34D82940018E210F3A9CADD29C816951B7369C7D33271B801\ -CC:\ -BC5AD4FE0A1A75C1DFFF19FFD9E607EEDD9897E592079829CC99C27281C1ACE8\ -ABF7E78BD818905246D4D1ECDFACB9B3C7E33CEAE3E4A1213E372EA02B2B8446:\ -7E351957E1DB7F7F8947625469F59AB9 - -DA438EA0ACA5BB7CC14D9A426D32D946C912F8DB3A457E04345678A7CF4EDBD6\ -A1958EFB55E7E6DF23565F85F8EE0F0CA1DA721F7D1123FEA5444A53DF5E1E3A\ -3D28:\ -89B9CE7002F24085E6C432D45422EEFBA53E25F3375AC4C1F9F83C81470FB8C7\ -1CBEA5E95DC6817D6E89B80D1DFCE9D4C4A75F2A7540B6F097577AFA28DB5198\ -3B76:\ -CDB89E813EC48551AFA46C5EF5C63A863B704F57CD4E845006BC24095B5F4C83\ -896A88872AFF5A7FD2F54E8F8C8432A48DC4377287CE552E087C80F60D038266:\ -9828B8860EB06DA7807DCB2AA091292D - -38F219FD2B5E5ED6CB92A152E3E71469CD7A4E2CA7687E6A8B888229B54E50DC\ -0CD4126C2D5C43D147307431F1CD9FFB80AA173B556A35E7305116018DF1ACEB\ -109568:\ -7B6668FA3C4990108EF066D176851924237E7B9CA0EC5C217702D0E1C9BB6C54\ -27A47CBE4CF299EA6C47C54588578E7F6348FBF0CEE26AB13FD3A1C33A154D34\ -35A505:\ -EB09BC7197242B0BDED28D4CE461A52ED3B9BF7067ACF2047392103276618963\ -A6B95DDB960960B600AB904E14924D3F154DBC7B0F24EC01EFFC085F7DD24502:\ -E932CB26EF86BB92D8D0DBF874C123BA - -696C4AF722D3C897A497F58EAE0B96954E4CB00B3AE22E2634753ADB4FF6A10C\ -FD9D38EB4A9B297188B22034B4716620D72DA40E3D073AD47F98BAEE1F54165B\ -F43BA540:\ -5FE6D0DBBA54E0255A2994024E895AE773A517CA023E28F6B07777CDDE04A9F2\ -0A3283ECBEA25C47A67DFCEFE433E006E212FC266290B1ECD10CB4BFBF6FE040\ -42AF7C75:\ -82A117DF507C79C78460DFFA54CBE38FC42588D000075CA58A01375B4AF47954\ -F86A5B3649E6A81DDC73910AF02C47A5BCAEB5C09E1E5E7C03A8BCAC9D23F977:\ -61D4BAA8C572EF87F5AC5B265DFE870A - -83A845F6B6F794DB55AFF0720A238101C4AD89D3B159D32C6F8946CFC65BDD08\ -99042FDCFC2E0BCC23A5A375BC7743A4C516517923CACC0FA33CEFC8CF2F2086\ -D05E9A61C4:\ -1316872884AFDBA1FE0A4E16D38071786157B3544F6F19C798129115AE2BE44F\ -940FB3F7190F104C900E49FFFD3A5C21DA1B5B8ED2CB21839A18E79BE9542F98\ -DBFC766394:\ -800F53FE3329BBC1AD83B5CAAF0C4CE157550E5B595E6AC9E5D6F2AF9FF0EE6D\ -C88C87B2D3E2CF558B25DF5C274A68A1EFF2A5D163D7F056A79E2F279C9DFBFF:\ -7F2360CAF666793282F2A00E9A37F8FA - -F03E6746B6AA4BD48F7724B8DA122384A4B3E68E0C94E49D7D22DF006C32BDDB\ -8D874395546285259009BB930261BED3D89777581EE1435036189CD3BD1ABC3A\ -5AF7EBD4946E:\ -7019329131FDE731EDC64FD24FB5637E84C94AA687C3C754CC9B172E5AA7A5FE\ -BE7F17766ADCBADB7F5D91BFB0A88885A420BD485CDC10BC114CE134B51DF05F\ -288973FF4B47:\ -6D34AC195EAC4EC8597138156280061BC032A5A9028475CF8A22906E991DF3E6\ -F82BB9AF05778BD0D09D840EBF050E88950E56E8973AA3C329BDA9C7404C0E6B:\ -24066FFA473235D8241F55E16C525B76 - -0A20F39DB1567EC6CC1B61AEE4D40E59BA78343ECF9459B3B0F518105433E862\ -903C37E240EF6676AC3133E484D4105A192CCA7D80D75CAB3D1D27B0F78F9EFB\ -E1B9C0D694B8C5:\ -808BF3A738579EB79CBC2C5EEE9B6B14FB938E3798A162F39ECD3B59448B1303\ -AD44B0EE812941C77B49768B730277F8FCB7E338C14ED9987F66E25793D0F88B\ -0956ADCDBB7E4F:\ -4AD17BE331A3A592EBFB7B0E920F0BF6AB326C0B7059BBCB300710FE97699862\ -C92D72472C48EA6EFCE462D601A6B4EEDCC169BE473C776F10BCE9C8B17F7C44:\ -A181B65C04851CC450DC51EAF76ABDA2 - -DF9F849EF94245A1CDF7DD4555EAFBD4D1755B2A4E2821B3497890C8320A2169\ -3BD51F0AECE2DF3F4445B8DBC759BA2D4FC860F68AF5D4A7576695C63E39B606\ -D18B3802D370DDF8:\ -938CBC602BA5B8E0A2A6A894D6DB3E004909132602EDECF893679E1FEA0032C8\ -5FB087ECC430051BDA600C4ABBCCEA8BC22F5ECD4B87E9B4A43EF01A2264238D\ -2C1AEF886A90371F:\ -78217BACE102042F9C0BC63A4EFB81EE68CCC2A13083BF483E06635D1F585F92\ -E04E0AFBC4C52E1401E1AB5895644C6CCD74217E0EE60683700655B829B96781:\ -A0ECF2769438C1F6288BE9192D776A69 - -673CB7F14B4E1F148D4EB16C7EAAB862571C625E0285BDC2304EC299D520AE44\ -8168424588736A52B858F3EC23D98F48DC2DD81E459A04A4F4410C78498C686E\ -C0F4DD97B7011E6D65:\ -D60D4E5F585B9FA126E140AF76B1AC0CAFDEABD840C9C9DBDFB06F30BA6F449F\ -6A1008D7F8A3E8D029F6FCAA79CDCF23EE3FC07A3E0586EAB4AB6D9E3FF77FCF\ -F2F4FACD6B0552C66F:\ -CDB943D0C98907323D25E6E6F20D6C37AFA439EBB15A7C19613E4033347FD715\ -0E4A67D76C26B2B7C28787499531ABDA74203480A2D6C57F8C79FE7EA7E08178:\ -59E21CB577AE8B72C61695A53B90B1D0 - -C10B09A05BB1EDE31326114D6935A86493C2147B770F8B100F52106E0F22353C\ -3EBF3439A4D309E3A9E04707E0FD442092744B91A558365FF9DCC0DA6BE49114\ -A05EC24726ED7D135D44:\ -F1FE6F3B8DF82B819384799606746A2AC053E6D7A7C430EB21DEC88BF92AC725\ -0F6FEBD00AA9E2619EEDE13392E4173C8CEAAB033E7C59DC0DA5EECB533ADF4D\ -EFC5483AC0110F9DF980:\ -FF3A7CAAA2477056F09A539D31E5252CF016AB00FAF86A823D409406CF2D9BA0\ -91F842CD97938D3F875FAD92DC5847A02292679342F48E79D26BB688D5956D80:\ -C898B915B9AEFCAD0D3B9669DAA86CD3 - -0A4AD44748EBFF8F1DC606B18D1CAAECE82FFDB0997F4C4110FADFEAAB9E935E\ -85BA0F2CE5567A867903AFF1ACF3FABC52D942A1253D7C7E2AEBA223EC5B7444\ -27A7A18FA54C2BDF03A6F6:\ -DFC97C5F9BCBC36D79FFBEB1ED106461C71D1DE8712CF23BEE2883C0C4C4F2F2\ -D6BEAA3D1771BCDE52FC1849DED35E3F2334E1C42B4F78BCD08CB3E9F3C17D5A\ -C827757D4310483FFA98E2:\ -70783DBADE64C24169E2EAA718401922DE21E350A36919552C8EBE572F042C9E\ -C65A1131B090AF15B4C20F59B87D13FE48E7C8EC9D863B5B33985B79EA5D1436:\ -9CB193F8B79CE0788A5D48E5952D4817 - -DF2F1E70B33C587B640669B4B68EF926EC9C6B51BD14C937CB4C0BDBF7D5F014\ -8BC4DA12AC0CC6B888EF4EB94325969AA4D1FF38E5E787CA8B581F8C30E109CB\ -AD5DE520869A6965CE43623B:\ -81D88EBE06A2594DA4BFB6720883CB05C674D47F35019C965ABBF00547CEE5F9\ -848FFEE5F169B6D0E3944F0BDA6799E434C90FCF9595D33CBCDCD8AF5E11F3BB\ -677A87DCAB7ED2CABED2B0E8:\ -B931A97D7D1B9A0D8BF1CF7F7A9079F459E854FF083B999B8B56C39C0E612069\ -41CBC018EA4D3126682807A1F7C97D2BFBAC9B63B5D2A478ED00177D4E91B675:\ -4091BBB3614F9FEA3887EC5561F00433 - -436E6987152A372706942EEFBB7536E8B6D4CA6B363122E7F67EDC3004E1292B\ -79BF823E27DCDE0482DD1D31F4D0D022A5868F57EA5329618EE9EE6A43B16C4E\ -6F20435EE390F395AC1BB32A14:\ -26471DBD891F897FE3627511B21B2D9735580BDC714D02218C2090CA8E7AD7FA\ -FAD2264DDE925D0C77ABFA55CB3442BC8F08DF065AD2410F142DE823B02F6EC1\ -B9A85687A0F9D1687DE53CF616:\ -F2C5A19572BC5CB14AC927483160391BA6366CC53F7F93F83BD1CBEAA2008B34\ -83D097846180FB65B23D75BE5A0525612524A6300856A16D8D333783B4F23E93:\ -3DF4824B50A5247FBE3A97507C5AF538 - -56BE3FF29860DD6705172269FB85AB6D9330C6A8F650F951D3470F64AB3C5615\ -A1205D8067E8D39E5F366E9719B8BB01A44EED2964C70C9CDC7D42D4B5D67226\ -665C8B6ADEE8CCEF263F75F7E58B:\ -948C4CDE3D816931E4EBE4673227170C4814890E8A6628D984E3F4ED875CAAEE\ -816CE0E0669E5A213D166EEBC96872CE48FA69149D064146559DCD512E985616\ -51FE18EE0F5964E87F40CCCCB9A5:\ -2661E22FE507FC2A25319926A82D3EAA27018DB8DF21D08493F8BE33926E5C9F\ -ABB2C787BCE03F5DA0218675BB7D14A8A2731AAB55AC159A1B3B644196BE540E:\ -7C7A1AB29A923F568F9934A8F24EBD58 - -357E18FD9A2E891D20FE1ED5A4F1AAD547F419DAC97A26398E91CFBA2918FDA2\ -E7C4627F04BB6101ADBB7960BA07A86350722AB0FF01955664A36F7E53ECD1A1\ -06A73EF5AC50E16CC7D97AC7A24D15:\ -0338A1642C3265BA015164937148270F8C4E32BBB8DE648C13AA9729B384FB76\ -A1BA7FAA2BD255E07515229D0E6EFAA2EF3AF219281C2D375EABF36B35C7C31D\ -9656AFB7033C02039B5BAD81CB925F:\ -A381231E27F1320C0352CA0B74C6B47E8110F9690A343C1D5FD05926CDA42C2E\ -103E9429412ABB7A27806BE91D7EC5A32CEB19A2A3D7C0C07BD90BF143C4462F:\ -497D9185B73F6007DABE550F21C76424 - -BAE412A3709341D4E5BF5E2EA0069F6D229E2ED6004BED7E320B30FD31A0B6AC\ -5AE9D859EBC807C860363FF9157ABA3A6711AF5370256A02FC353ED73A145E3E\ -E9ECC5F131613524A9C268CC920C9E69:\ -3128F89DB3844EEDF812031BD5858240EC63F9BD1D390C27BE826F8680F34F36\ -544AF1B634599304807230F508E62F0A762E12A59258579031207060426ABDDF\ -82C2F8FAC7237D89BAA1513496833804:\ -E7F526508EEE6C79C4BF495E3844AE3240C804CC715089C14253E348758647F7\ -436E1B04439DC1E47867D5DDC06E30E435868696019E5715182234927CA62ADE:\ -D1B46349354DF67115BD1613806BA0E8 - -16A3761D5D19E38301085F93C8CF7BB7B57C07CEEFDFB35891DFE9D6DEDCCA77\ -1853779D24D9E68E834A32C6FAF7AB178B837B177E80ECA50F2108B6BF5B4D64\ -CE4C0AE4C26DA69D9D6C2DC597A20A9321:\ -2143139EE4F5056A392D0E360F5518092BA12B6C006238A410CE2FE9110ECD7A\ -9EA4944AC70F8A45E291088D40AE615E61EBA19C7CD807F627DB9207D03BD5F2\ -771D8BC55EAD7BBCDF23E638111AF3D0FD:\ -56E3F830924ADF6EB2ABA44FFBDE36FF50CEE692D224852D84759732F453DD1D\ -8F7CE8CD8BC89EC7D533FC07C5D60C6FDFEA83BC7A98422AA7C94F1176E81DF1:\ -59EC1B933DB7CB8C5DBBF2E255DDD83C - -24D7EEDEE5F9DC4C9C00D0A4F7CC008CAAB2ECC30A97353B9BE25587C3C55549\ -8257F8B1BA6225D64FE8456A86C10A945D5E2043B4F56A8097BDFE0BACBCDF2F\ -2B707894AA5B6236E4F1C1BD81DC20BCA411:\ -1DE794AD93BCFD57B300AD14B2D0F13CCCEE43C559DFC25BE16169F80AC0ACD0\ -514B012ED474C7EDAFDDA6F4CB0DEC2723E1D9F9D56881814E373FCD681C23F2\ -0D0471B351305C7DF8DD913DA452E4E1A7E0:\ -8E627F18B297CA10E2FD5F782035246D30E1790E306B19AE29DADDA2FD12BC9D\ -95F1F0CC2563827FFDD6C1CFCF01CE264265A601A1C64F71B58081F624E7098B:\ -E81534D4AC86F3A8548F392E12C396DF - -93EE17749850BA6962C5858815F83035A8D3BCD113A8343E3A9EFA3CF34FEF5D\ -CAD8A5BDC9CCAD6DE4AEDC4636F57BFD590C00B4505B20E05DF65808546B719E\ -3C90EF45ED1894CBC82B2A0CA9BB1C154419D6:\ -CCE37BFC28B2D0870E842DDEA150C30D6DA19F0C4190C8E8E53089E546A5E672\ -B19677751DE4B949B89BA5D6419F143BBC21673D104129F7EFBAEA2D0A512A9B\ -BE2C0531CDBE716575CC7C88EA34AC5A450A3A:\ -0A545B755C853852597731D5A1FBABB6D501CD59571D55C92AF8526FA97A6B7E\ -856510E9464047AFCE701CB7A178D5ADBF33BBC4D028A00DDA7B4772408D1CF2:\ -DD6D60AD262774C962C0C6F16AFCE04D - -E7E5CA48AED703C746578F607251D1B738534DEA0B0172D2172849671DEB88EF\ -BB9EA648B52981C4EF0056C487644F39DEBC4D1B5F5AF38D0E9A7EA1913C2999\ -55A07753B7E4CADCA08760C282A05EB98ECB91ED:\ -6125AD56EFF933C47AE48CD0A641F35F64BD178380F81C879495E25C5A82628F\ -79394BBA7E2BF5858A310B2E98A056FEB9484BC423169C15F97EFB727E5FDC3A\ -2B9802C93993EED836842E59709A38DA3634630D:\ -A6367980AFFA4B81776F23017DCEA51DC5C3AA7897BEA721FB3E77D2F165BF32\ -DF8B33DD12C126EB10CCD13A8A90066F694EBD2096E3756F6D2AACE7510C7370:\ -8FCD228AAAF79070C234543CEF7CEBD7 - -6308BD31A5D74B1CA56803174B911E7F82D2D7C7BAA18179B697507079346430\ -3676E94724E6C15A60131F09B6D0564D92931185726B730A7D33441042615062\ -E68997292D61AB1B998DD7F76997FE8A12C60E4A34:\ -A57EB6C6DA1DC33C882240E485CFAE952543C4432DF7304F3705267E1D7FBAA9\ -EBA5DAD60EE8CA4C02D20956750E266560497C2509F4CFFBB13EA0B2A59EF3C6\ -8D5E5A86715BE0F133AB49D6B21F094DE29CA56C19:\ -C1A7BA8BDF41E1071AE1B496FD67E99C10F95BD45E4DF7524A2AC04EA98711C1\ -40AC1837EAD2F3DEAE97465B257B256949CF89A15DD9C681917026735EFC7385:\ -06B34A3BCB427C6BC3E564F54147AD9E - -A562277E9787D912D4DA2E7BA2AC757CE779D3F3A0734E490041EE2B205E45B9\ -401E8A6D665759F3B6B3E25B02B793B5ABA13679605947BBE481FBCBA8B9D62B\ -D1F970CD5AA01AB847BAACED038C7CF3D11B13A0A559:\ -3C508BEEEC49B30F7CF5DC53373D45DB5878352890950251AEA39C74332A884E\ -C0664997248C3020CD4C8EBB125875A9DDB25459BED2A68931A7C6ACF32310AA\ -8A1CD49241A0C958ED855FCA46D4B993066144E2F4D2:\ -7C74B506CFDF194BEE89AA3E1CEA248D3CDE19339F25A054A6F0E0978A18018A\ -98E2771C2DF50ECAD7A828AFE1402BD9A04A504750C8BC1C7243C6E59B00F701:\ -8BB76FC3A74757C51373FD05BE707033 - -32AB1F3D501464AEF7D6B8CF0778E039F6FFE727334C07E855804E71C816B019\ -1B566EFB2C4E98611EECA7859DF3E0573A01B801888A0A72B74079E00F3ABC08\ -46D5A93A832086031CC8FAE91546793A834AC4815A503B:\ -65530F2B08B7C1F3A09872C967F9990024FB75480C9108EC48BDB93FDDCDE7A7\ -A2F7AE8AABD4854C491FA8DEC692B006E1C9556AD122EAD6849330F52971FFB5\ -2093CBC609DEA3D0A61E1B6546794C4646291EB7DD6E05:\ -5FEB3B25D878182C9A805C42E18F06B970E6A8DD77E3A773A86129FF6D6B6DA5\ -570FE972916FB3A08D9DFE64E93A190366062F3F102AB559A6CFB9585BE7AA08:\ -787A951115673D6EC7806383669E3D77 - -69AD99511C51DB7489F41C52BEE4554E35FDA8F015E2C15022275BA060133D44\ -C1ACF7BC7067E9DEE1A6F39A5F1CC16E2A8EE62C3C67412A65C5653F81C5233C\ -CD8FF29CAA3202B04071134AE53775D535B6C558D2242758:\ -9F57CD91402EC58903E500CB5B5C2144B4B4323A8C0E826E9E7B24181B9304AB\ -09FCD957A283E4A6DF1A354163905B191898666A08208A451714E8282141C3E3\ -3AF5BC2B4C4F03E66D7FC9E5AE2CA48683AA2AE64DEA758D:\ -893E15150A3507E4FD4817B72DDAD367B758E8CE96306EC9099B0FEDD2F52AAF\ -35B075D866449412A3E5F398DC10E84C446A464C4C51C0C45AE40DEC410B345F:\ -5256127987D73F87AA443FA66ECADE7D - -D6737D71FB176BCCE7C431B7664A221E7D4F516E6FC4D73B6FE2407290896531\ -38F8F35E1D65F3BA762EC3635D3CB0B56F59B10C928CDE06950E6A2653E5F0BE\ -DD5F046A89546A712B5C9CF7D88C55D0135583D424BD80EE6B:\ -636F9D4BA28929E2260B842D4F61A203A892A4B2875540E90AFFF65D2D36D6DF\ -B42E8066385A1AB671097572CB37E53FE8BBD49A0155487427428E098E536756\ -13F560F3883A8CA61F1AA8CAC7C2F76B271FE50471322A5446:\ -719DD3905FFF61879A4B092B6BC882DD65AA3384DF30003CF30FCC677535B359\ -26A621E4A95F3C98B29A4408B3E325EB411C84AD635E71169FD9DEC59FE4F6E0:\ -6D3BC653B3E4F85D9F5C75233916F575 - -1FC45ACA01C817498EC54C0BC908D9B7DF97A1999DAC65DCB7390690D97A7424\ -7F402AF1E19FAEE90C584F51DF1B4FAC34B988A279A864D15DC65FF59C74A291\ -F8AA97C8DB4379D11A9250AC3D06022069C29C75CA72ADA114C3:\ -6BE638D8C6C9AFC951B853FE2C7697A5E912920C70580420FF51D1BE0137ADB9\ -CAD25A63EAA1DFFA1E3790367617453BE4122F5A4CB2FD670585283B6F5156AC\ -D262BB9286AFA3799C7B313445FF8F2B74BD4DB33042D6EB8A21:\ -82A603ECAA527A78202DD1CCCD0FAD0D9CEC5CB1C87B7268CA6B37B8A93CD224\ -D0BA72B3A4EB9D88D4212CC84E3480173C9A4D6F25290F9243CD8A7FA3BBFD0B:\ -167A48FB0CBC423A21E8FDCAEEE1D2BB - -4676B5965D8497D940FF4F24EDE66F50A5562E3A988AD86D3265551B2D6DF8B8\ -D694820513F921E5D5B05DA82D03A4F2C3F1BB2877AD9A321151BA2BD2A406BE\ -F3951F5221DAAE46CF081544A4F4B6BC2049B8A51C6840FA5301E3:\ -7B5969E22AE7734260B2D2EDFCAAC3DD693731968A5BFC5B46000D3358F3F514\ -5F02E09596A53EA9F83100405BA6C25087CCCDF86522B3103C439A9D9598B4F1\ -CEE3F1836EA84DFFD6D0B90AA53512408B053E3D802C48C1A6B024:\ -AC59FC93884CB05F91D73E67A979288FDD3846DF208F8B20ABAE9BBE8D05B312\ -56358D089D64667DD77C4414D61567E58DE4B558B80D720161B68BF50CA43C82:\ -67128707B418CF21DBF934303B0C3FF7 - -820DBA2DBCB0F5F6940045CEBC40394F60C1AB9967052CD09B4F4F14C047D8EB\ -84EB422014F32BB2A51C0411B10163A785A6DBC90FEEA34A0D6452318C973F3D\ -5FE3EABA37E4A3459C057A41BBB93105D88A47FCB6E36356DC5E6DE7:\ -227535D0AD2FB287FE0581383B75AC2444E32E242994F898D002C369B7FEA3F8\ -C96AD42CFA31EEBEA29BC04AA0A189BB9141F173C066DB821DBEEB708694DA3C\ -CE18266CEA5411E02802062E83645CD6BBE8A380DF478D787FBC72D3:\ -EC9203195C8FC9DB886534C95075B1452F3DEAA5574EE0D94DA287A4229BBEEE\ -C550AD2C8D09D8D29DE5D83444175F0050BC89E2D5F8794A495499310670D055:\ -E010BF035E23F39637AE444BF0F50C47 - -E8664B228D28533B57A493FAF4C3F61126E85E8596BB9B73780D9202902A05DD\ -7BB8C68BB2DCC064E058252A6D0E3F7D482C123D14538EA74517F8CCD618CD51\ -82683811C35348FB1BDCB6B6B538F407C4AFED94EE98CAAE6EE122A629:\ -A8E7F8774614C1B1C6BEE486CB4FFD249AD07F22A93DFEF218BE32253D9895F9\ -74EE1D6DF2944AE977E3A7BAA13464C9F4C82CF501DBF96A81041DE5D3F4C839\ -7DDF974F9C7DB0C4016434AC17788480FBB5730C9E5DA783201E797B78:\ -1EDF654D9192AAC22A2E5C000911D1190BFF5146D8B624874938055753BC59AF\ -3C79ED1A2B63F7590E0D2E2B1BFC4FD9FD7E10F23F903C1F3748C4C8DEC20991:\ -CCF19F78C795044953CB405418702899 - -C20901D342B4BA042D9C30D99E25DEC320AF982935D47D82FB01172FA67999DB\ -923861E26794F5715E497457A126417F49503F16ED1D09F885E143C502C73733\ -02106180AAE95D500396CC3FAEF26DB5593AC8363A3F99D5DC345D7A103C:\ -585BD877F4930C0D56DC76B94B2A457DFFF37BE6C53DC3A6FA1106EC834B6CE7\ -72DA4F9D865B879A15A7C5F0F06542DABEF5912B745511F44FE085C45AE03028\ -1790949C9B851550E62931DEAE3A0778AED187AAD3FBD1D3AFB5EB4D2D9C:\ -A247A25C6E9EBDC50964866CCE6EED1DB33C8C6736183A0D05448702EB606CF5\ -E910B45ACC9024E1133B14003564C7A7C65538E39007A7BE77789B4CA817E659:\ -0BFBD60B9E526C33A8F7E58A698CE2E1 - -131A8A1D098EE03489D6470B6A84B0118BBED2AD70424AFD567FC6A6A6463441\ -2B4D2E796A22E88145082C4AB6A123C1F68C53ECFC9A46EAFD0CDE55523EBE9A\ -2A9622D3957C70155F8AC4CA96A1D4DF537D2F1BDDB3A99F5B8672C79951C4:\ -E1E158FDB46D7BB723384FB7752E1F198E3DCD829EF02B18F5399D95B462C607\ -14F46C1208E2DFB6CF312A35B18EE9B1D3763ECD2376F803948FDA78150143EE\ -128D094757D7B3F3D56C6CA50F80F398179577E65687C72B8EB189CEEDC0DE:\ -B2670B162B792BC69DB0E284F565BA6F34F79D4BDA1A983099EABDDC2FAD4E73\ -CAEFE5EE22C9DA8A4075D8528C83472240BCADD0BB083FCD5DE1A585543ED956:\ -7679CD4E42B5D2A831DDA76FCB988ACF - -5E4A0DE980F9F84D120851120D70B56B2A4F2E3256A7FA2266A729F9509600F7\ -621F33A3C56588A8CE22C685BE1EBA80BC66D3395B9746404E33E5A5F8FA4CE6\ -19B19126C04DBEC45DABD7BB99F87D407684EDDCA659461FB3835E8D6F0C3F11:\ -BE08C497B0296BAE9483DC975617E42C77EC5E74100A33516796B277B5D2C406\ -9C59A164CEEE2D70097374450284A06983291AD62314EA05B78142B34400D901\ -0454E33270E7C56BC272CCADC123D2681B6432CE9B70E096194DFDF4109D0CA6:\ -95E30268A8B51B1628F36878A8D399DBA9AE32C65EC2A586BB8C630A8C508C34\ -EBF6DB6CB084445BE218A80401E23413FED6B427B00775A24C5CE0B719C86E24:\ -4D6CBBADE1A824092490C63A00435572 - -AC3D621FB9D3F578CD668C778AE5684F788122453B96FE9F2BA25E520D655451\ -6C4EC590BCD1CE3AEF6D25FB057840266A921CF77170BE425ED1A3466EF03979\ -218325C201DB739E55A04AAC298E2D52EEDBEB9083B7DBE9B097BAEC77EAB946\ -53:\ -38D72DC8393E8A030FAF21405EE126AA7B220B0920819B5A31C3223E2225E5E4\ -D4A99FE5091DDEA2CACA86B8E5080F6DAC261C4DADFBE93A791BC6F42736F8E7\ -DCBBB7A6C9CDF7EC0143A5BF85A388C63C2E09FE2DE8F5623DAC6ABF84AB0546\ -F9:\ -CDDE1E3EC8CF36A175E859843A5E90BCC8E7D2F696AB254E4A6695481C09CDEE\ -F579A943C78554382EB27D6AB1A0EF46D585AAEA65267172C3357210E809769B:\ -B10879FB2570F4E30C9B75BF82F1D011 - -864A03A962A6CAF675E253FF4522060C282AA1CA16F334EB9C018258A4D16EC7\ -A6B8CF4C44C1C7C3DE0F4F33539C96FE128F31BB332F857CDDD479BBB67BE7E0\ -90BCA34E60B6EC60109619EF894198EA931DFCD46A132D4DCB456C18BA364BD7\ -4060:\ -6180EB27CADC6C94489EA99EF57CFA04EDE1EDD1C33B667A60803DA6D0357C02\ -CFF0C9EB91155D600B4410DA4C2E962B78CEACA1963B9F44BB6100FC7C03E2DD\ -A28892B1D332D34B07878C9AE6BA2CDA81EB61187CFE2608A2DC2C9C5429B31D\ -8F80:\ -1CC977EC5EA8B094303C623484908E6F7F4D5F8FEFF3CCBF17B46F0AE82A13D8\ -6D7649BFE202A210612D357C9831EF0A56AC4FD95BBA1D8378B940C302A3AD37:\ -E49ADE658CF74069BF4A0CF826D712CE - -098488C02872B0D0ED3E900E8C79A6E7E36D1F0A149CC29E2F39E983434345F3\ -F407468245DDDFA144CA817F9144F5CC0F7BD89814458FEEC309662EF186F60F\ -CE42FBC80CA4500E724E5F33B9E07E8B7DD31AB76BD8D57366FAD8E74FD53417\ -6FC4CE:\ -9B09E17E3A51B53374F67EC5842813F5FCF3CFECB1E3A4E06F03B46597A5195E\ -298F0F3227822CA8DCD9095BE716561A484723B808B20B958C53592CA11B1F55\ -89D7CE47BA9BDD706E352AE2B4F8B3F397B9B079DE192F05CC7AAEA8CC1805A3\ -E9E5E8:\ -64C912CE24102BBBF04B064809F5A2650119E9610B32CF62CB77F46812D9CF2A\ -7DFC897CDD4C61D1FDED8AA2CB1E0F4A09FF78BD7E6891E7F6F4A65ED82A5FAD:\ -0309584D284ECD6B46833ECBC65C00C0 - -E06AACA7D51EC448F96556BF1DFA5859CFF3FF283447749A329C8C21F4F0A7B7\ -B5A4CDFEC297B88A19CC4208F4D237B34F590A8EB72C98FF05F25725600D7844\ -7800F7831D6CBB0B4BEE113B54AAA96D732C59FEC9AFAB086781FEA7E785506E\ -8F2298A2:\ -8F3610B44FA700BFFA2A6E9D0FDBF9053D1189C1F4DC8148E6AD3C9093290902\ -C422377D443EBB44FCDB74848F7E274A22A38996ACFAB15C5328FD135AE07F58\ -880FE11039E3FA9C0BB8871192CE2126CCB1A5F2EE589672A7BFC10CEB906185\ -DB877382:\ -F41046323EBC41F937AF2108BA7CCFF29A60093A4F55A495BD8AA112C11E3279\ -39FACFCB848E4DB2989570D3AA76CA34639439D24627C18DD5A96E60EE38409C:\ -93745FC5648C8BEB999243A4DEAA8616 - -436AE1619D3BDC8C534F74681FF2573249FEBA565DB34C271BD2B34AFD3AF353\ -1645C4BCA31ACBDDCCB02A14E586E7EA95ACC297F725C7F6D35DA2D5ACADC569\ -270149FBD31EA52577BBE41AB92DF6AFFD46BBE3FA41444EABF1D41DA0600343\ -31A27EFC52:\ -80EA0E879126401735683D65102E398AACFA9CC89313D4720919E0B2855058FD\ -232C2DD84E8EF00922714111DC381B73C8D24A2BAECB3AD1B0E5E0289A80853D\ -39EF79CCC35282A4B3FF090A6DBD5D41AB90C254B3888A998E5D264031D3BBD5\ -C859C2DEB6:\ -FD9AE9F5110CD122692E59E32BCFBCE883ABC69987D247C019B6DD9C107F7112\ -CE462B8DA4D587CE0247D8372971A4D379EDE810E647725CDB5AF2E430CA3F2D:\ -2AF05DFDF65DAAC4BAEF3862C00A62C8 - -F69B6C84759D9504CA20083191FDFEE4F5E7FC0B5E3771FED2BC519DDE2074A7\ -80FD83B2378508687A5F9082FEAB301843F191768FC70DB1D245FDB42B3B62CB\ -5060FE8B8AD010C461DA73DC139E0FE15D0B924E6C396DF759A3AA68B327CB8A\ -5642B56E81B5:\ -F617F599E3035E7C0F0AA5EC17396835EBDCE26CF975618F01AEE9D5951A0578\ -23019CA37AB1F98FE68554DDD441EE60019C742B64C5A911C919C264A1372D54\ -95E7C1E3BC1043F8AE6F92EE1A2D5632FF8709AB513712DC16391E9C334C1B58\ -06D27415D9D5:\ -0D3A86358CFB0E854001E69ACC23A37DF9B0BE0D4F84CB357A6F45D5D94ED305\ -3C0CEF9629A83C3A93AD6BF60F3FEF165F4582A6CAF079E1EEEB3D00E4CD3E67:\ -FDCA2980196711165DDFF38BBF9AA69B - -41F2CE69907B4FFBAF77918CF2A95402F5BFF25DD1C3C34DFCF8C15AE0EDE2D9\ -5217AB3BA2D72CDA950180CE213B5CD6DB09602BF97E2C01014E9B366AD1F084\ -B9827CE35E2E834A35932FD13DB8EB93DA0B75C21DB91FCB15DFA629AF0C4529\ -0536566DBABF9B:\ -EC0C194AAC8CA99BDEFCD6C62C283B13282EB226CB3897DDEB1C440E15269C78\ -2BB559BA646D40A9980D3C8AC96D972AB8B93CCE8FEED92C79B80BB05628BFA8\ -3F49ED691E75B933C4D9B0DEBA89B2D2E9F4645BA34F0964D33779271C404069\ -5C6731856B1EC8:\ -E44A9B4784E90B955B5A9E05F478882F843C53D12F854315284BE36402E11150\ -3CDF2616E80CD6FDD182407377761D0FCAFDFFD8D6E5E105D0BEB94657323E73:\ -D6945949050855C4894202F6ACCD95F2 - -47C896A11889EF1BA5C4ECFF32A523C86D821315EBD7E37BDA73DC3AF9C449B0\ -642069C7D05B69ACEE58BCB497A5C96F5E2FAA5B9372CC6B9EB10296C20A39F8\ -81122D6CBE8F19ECF8B1A780E4D7704B5E5D583A52AC8948DEE8C4FDBAE8BFB6\ -B8E1F12598A6A20D:\ -680D5A4E363607CEE46E42213DF6DE86E26158D859783ACED21287804301F12D\ -B0BAA81D676E191152505BFF53D59CD2090D90C2BD9B2738A3390418473D4CF2\ -A488D581A8D9266D4B41A156CC66DE07E068A11E830488F57B851CDBC1CACECD\ -3A710FBDF6525DA7:\ -C15048C76201023234EDD517AC8DC1515940E81F54AEA2E6DF9420AEA5562AAC\ -BE234AF2DEDF5A7A1101C549E4FC2B70D4C801366527B7B0F48A0BD57DF684D4:\ -BCBCBFB73EFDCDCBF6E80D87C016A1B2 - -C8D2F64D6B9023E92BE952ABDBCC0C79EDBF1D126F5FF82DD2AAD907DDD9FBDE\ -65B074E0B1EA8ECE18A03ED154CC96CAF9DB7933ED4A1650331EA6EECC626123\ -85F2160F4CF857AA2D5B4471AF7C8E5EDEA758274BE1FE9777A33052FFAA5776\ -9093EC81D4766B9477:\ -50E9BAC4C87E3FB5759414ADFFDD25C63933ADCF340F4D6CD5A3B0D6742F5CA0\ -BC2FB7EA920AC08AA97F30CA61AF90F953ADC3414CC6EEBD98133BA3A6D94418\ -8E9D05EA0B697CC3404666B84B8B33FE504E29B85DF7FA135ABC9B3851714FD0\ -DCD86288F92A860FBB:\ -0BB0A123AD0774528795D29898837D54A8B945AA48B1DAA4EA3DD786DB62396C\ -2E6E2D7359E405FF09E917CADC15403F4928221BAC56CD4C94D3E2F25D7B1C52:\ -67D9D8BF8169D9B3B745A9C46A51CCE7 - -45D2DC013F863D5B2D57D7166C17E0C1771348078ED3AA5A15F4E814E90AB991\ -68480B8FC97C249A0AC3A842EEE370F45E54C8C08978EA5E7D230B5B02C3B4EB\ -0985C870FC230DFD01C83D354D89C65AD570D21D7BCCAEFE43DDF6BED05AD7C7\ -1E1C869FB7713A8FBE84:\ -F21C902C29308BC5DDD124A42710F70215B6E03C6634E07CF4F95278841449C2\ -E73BF59327AAD0243BB755D779BCF6D4BF1C5BEB593E5E3B56BBAA84B88392E9\ -00376059778924E48E1BF39FEDF5DCB39CB8D53DE75CE5074759E4EE316799C5\ -2C51D18A7BA86B5FF5F8:\ -DF5E8AA90F636AB694DEAFD9B2949DBF7E7F5B854D25AAB5848DB5AC79998DBB\ -99928D9D298FF690488E068C3A8DA51FB7B97282642694AC82C986D1FFA26013:\ -081F7DBBBE9EE22219F63B7E743783BD - -6BD7FAE104EE4AE74CE307BF57AE731C5AC99B399108F7F1FF1796DE8BA7FAC5\ -8BE8B29EB437B5E37FC64CB1689EC59737BCAE61A321876A8B14A58DFD5F0BFA\ -6C57D48A32FA0D4066408C8214ED7270D75E663D24AE1FD2284AB97645E0F5E7\ -BFD2B15CBA29E7567F95C3:\ -B6518039478C333FE12E5938C3154995E21036FE602FB19B542327542D90A334\ -E4AE5AAF242143B3E386F6CD16A865CD8E3B3D11C4F788268FCF8302D17D3C37\ -8D8EFA3E3A10E587478407CF3CB12C9C31B1CB8EAE169EF5EC0681624E755FEC\ -060ECC6D9BDD6FE577D1D5:\ -78B8E0290AA9957732C79F0699E027D9747132D1D3AADAF5915685CBA3183E3B\ -4B365BCFB8920058C1ED22FB475AC2D36720365D76DECFD0E5F2129B68E8B9DF:\ -9604CF4D052CCAD5C9F39CD2FDF4449E - -9F79D9E56BFE8C9B6A36D57370D1127A301C196AEA339F44075CF732AB496A41\ -2396041000811E02ACF8F8A4E3BFCDEB071BFF30F1018FB1BEABBF0C22B4D6B5\ -A4C1ABEF21E0E901696564DD42AD12FA611F7681C98BB59915BE65ACEF7E0DB4\ -0A4C768EB6352D2D8DCBCD5A:\ -9109612F993779D809F5BA0D110AB6763547D657657E9AD49BA60CA3E22769CB\ -DA5ABE73A541714D5FAE4576C310887679C981CE88AA7328862614B8D756B4C4\ -08D365BFABBC0302C18587BD5D4131B989D77C775281B4C3345049DBA721A614\ -76A814C6A56D6629308AA372:\ -60A2431CC82FBE4749CC173936028A44D4DAA914A5345715846FB4E102CB9AAB\ -C9F606C56F0C61F22FC5755586BC28B559B65C04D73033379BC0ECCE2971466F:\ -E2D8127E708B53A1E43FAC64C173D08A - -E3FB6DC979AB196164563724EF05C7B68A3196DA78B1405973027ADB273422C2\ -178297D8CFF3C961E12E2F1A74839A02CF734C888FDF56027EDF15F4C5F09EF7\ -35B5B4E4C82719917F53FEC5586C346609FA203445C160384DBA40434656CA22\ -B504499CCEC3D02E081053044F:\ -3CFA718F9DF27CB9E4F58758D66608FC9802834718076468C531024B19F9105B\ -6E515E2ECB98FCB2BDF104D911B758AA92DA3AD5CA815BF595F59B5EF07DD07C\ -164246398F70F24CC6116BBBAFD646407144AA216851B9950C509F9CD0CC39C8\ -53EADC592223C647F5CC4971B3:\ -406238ADDDF5C0B4047320A0AE2159B2726C7172F5449E2712D5BA4D8B12490D\ -5CC05C078E4FD20E16F3560304170D1B416B9574D5D1A149CACA906B4A98DF17:\ -D459AFF85AF06AFAFA1C637B3319C064 - -7C1768890833F7C25975F60B508EAF5E0E0C5A21854BF506AB71DDAAB963FEAB\ -16B8712C2DFF74E2262D8119494448CA15B153809C0A7049EE62CA2E940708C0\ -6BFCBC08D16AD286A024CB7B448C4C9EA3411293C34BC022DF1155F164A59652\ -3BAE1D36408184D329DEDDADDB20:\ -0F3126953B149457F23703B650AF15EB80B7BA6EF77E051E9D4478FC9E3B41F8\ -0564B8671919406C2969D5F56B03BE32C4BEB660E2BCA24A04B160D8B6283CEC\ -3AFEC54D9075671C4D5BCC58CF33BBB980DFC94A2947AE64146422121460A8A0\ -EF1B83D1CA8819751BD5C8F1D0D4:\ -79C7EE3C15D46F95B3E6ABC29D9040EF853DE87B4AEB31EA47BF9F2D571F127E\ -34811F7DC7C016DF34F45884771D1E16E034F2572ABFE5033133249EAD23399B:\ -5AF457B616D400B197E1333745939EAE - -1DB0E3C80F58750B51ABFCEA443A352298697B1F1B6E658EC0FBE03AB1365375\ -302266C7F25AFC177D59502408C1B48759B0DF21CBDAB3EA20A1B59F7AF9A186\ -432752639EA9B89D3B35A1AF0C10ECD70781583B86B3999F766A8D15C68063C3\ -6620E5AC2FFB9378360EBA25906410:\ -3335C951E4AB1A9A4A432BC7766E57AF65A4E6483EE3AC00650B0B77E96DA2C8\ -A3BC6D8656265053820A71AA789D5F72E28AC6D53F534A3CE3A36C5D812CDDFE\ -7663FE72E58515A1D4390F24F68E549E5F0D83ED1DE16BFA36D819DD8C43D459\ -1DEB849B97AAB7B84F7529EF6D16F8:\ -9DB3F4D3C0FDD3711023C0381604C174DF54D5B258FF10D34C9E27A27571BFA9\ -2261C81013D39906A56D437EE32E1541C8FA54204CFC7777D79FFE7A910898E4:\ -F34F5743C27986558CE1AEAE8300C654 - -317A8FB8293F59FA0A4BA82B30B6DF3BEED9A69E430E17F6773655ACCFD1033D\ -3ADAE04E159D22E1C8D946D188CBA6EB55C3D6AAA848A7F4DF2CA2C4E5BB4949\ -A66D71AFD72F4729715B64A39E39B376E7D18C20D3CD05D5702D1811C1E9A2AE\ -9A1CD8E59A3A36EBCA17B5815B873A83:\ -8D591DD637680338D536B31F949FA9190DCBE8E07CA8EEC40AD1C16B54192CA3\ -5FAB45F40F473C4A9E12DE29AF827A71C62E6F1525EE55FC8968C3B6C16CD789\ -B7EA938D7FFC214781983AACC68F634A927BC0BC9D95D5AC23261480826A0A5B\ -50ABB2F3482E947ECAE908404CA56589:\ -323AB39A5048DCCE476CD7035938C334D8F74AC40C091435E96C90694B310E06\ -AC15D048E08A1E847961748DB07C24583A71C9029DBB92684C61CFEED792F95D:\ -86DA4590E89B99CE6A369EC0BD6CB8F4 - -FF30DFAA708EC407B616571B090FDFFEB04ACB99080F30FA98D6929D05F87D18\ -A323A0DC749FDEA68C1F7927D399F89DAD0634684C6E8411CDA0A5F3B2302563\ -884C61AB605E7B3EC7B1FC0E18A018B9BF78E826E715DECC77B065F413C38823\ -B7EE7F5EBA47CB8A33DE68807380A0F2F0:\ -5179B345B442BF36758CA8B750F54509844644DE3D7955EF2E2D03BB105B1F82\ -2B44F9068E1A846DCFB82A0D598C5B2C38EC9B7442DD80D762215FEB68772031\ -39CF65051D59F20164582152638CEF22FD567FAE7A5ECD7B5105F72C87F2359D\ -7648FC45A4D7176D48E53C24E2031BBB22:\ -FBCE17D3C543B60D7C1E3D2212D067DD4FC6B45B5E8E401040549603D295781E\ -EA8489FCF1C1F02EC9685A759A45AA65292627677B92A56FCF516C65AEB9E1CE:\ -B7F5698EAC7866298C4BA0F2C8BDCE57 - -15A9032CB7FBA4C1B48C84FA108110DE0EDC32DC9A1752A86E0B15A38D700F8D\ -93E830D2B99C15DF1DF2BDBB59919C707D6A6AF9FD8B21A26D37A7AC802A6E0D\ -64BC2FC31DDCF72DC0E35CBF938EA1CBDCC12D3BFAD466DAD85B8405DABF0338\ -8992132CA3041FF2B384D7DD4CE8BC81621D:\ -0EFF57A8DC3FF960F183DC5569EFBF1693FEF4070EA59931051B4DA72D927F03\ -7CD6FC06D92AF8EB4648A408F84FEB00D531DC1C6C954A22868B8AA031E892C8\ -4619F4175C123A710E398B3E7B79A11BAF081BA91A640964F5DF985EA6BC313C\ -BD78F693D0F5B1F0C6F9AC9E5379FF2B53E5:\ -8760C0BEC871D986D5264761A6B28C9CE63C7CABDF795766CDFB6B75200228E1\ -08FC0BD09CB17663CC526F82237916E1D3794AD80F722D504F7472AC4F3D0E72:\ -A3DD31032D9179F26895FC472F82F7E8 - -2FA5D0A789720901C0F476243A1C07319DF83F6F06A5CAB05301A16D88716517\ -D8C9D11D806206F3A7E8827D1080DD327756B729D8EDBD42F6AAB210C05ABF63\ -CF8DEB54AC55DB63B2C0A21C9EF992FE86A92832AA5452AC1E4033A54E3BBBAF\ -D0CBC4362765B4527E459DEC09EE91A4FDB520:\ -9CF0FAC9D487BD7827D39A2C56D2691E9394E0F025DAD286EE701E5E83AA19DE\ -60090B03E01F0C445C3E0BA07D7898360E38C36D604178740C1205A837BCA0CE\ -DD86174B9DB0D451A6FBCF1B13A553F26F266D4957716DFFE2E28B9ADE18B42E\ -B3BD916B53208A43785BA9693561E6B68FEB80:\ -729638847E01B827CF51D79D1EB4A8DD5EC63641D24F38797BF0E9E91A42917E\ -FFD9CC62C3A8A3FE63A8D81A78DFAC280228AE204F670A13BE16A1B6E0334057:\ -14F8241C1A247FA7BC2865447AD9C18B - -09DEF4771CABD879DF77FE475D63B475EA4949BC6B5E0055F6FC48454A81235F\ -DE3A6E089D8CD84453A3BEDA6172D383DE7B1B47C8C20EFE50FB123CE9A55DB3\ -762393FE9CA10E0B81FD7D1FBCC3C5BB02F32A7B337A9A36AE70DEF8FEEA3ED6\ -64DC4C5DED0C47EC04C618229E90BEED92E51B30:\ -C459AA9069A7AD5126FDE41DBF86426FC5B06162ACE4D5BBCC0F88D183E55721\ -4D1C49CEAB56165F7CF6ADB0101C046304D0FCD41E70372383FC4B644D1F1E8D\ -0FE11C3792B22A70A2A12B6268A8F8D6FC611A4D84E9398E721AA15B5E398355\ -8ADC0F8DAB489424F7D93FE3F9CA2FD2CBAFEB71:\ -E96807377B3A102610CE11861E807773EE32679CC517B18D50DC19DE2775C855\ -9C2B42E43CB3CE6DBD3D3930DF148546E96483C5278234648841E19C31C7BE2E:\ -EB0834AC818F6CDF583C883221A2680D - -1CFF92B0C9F1ECCEC02F951447594DBC2D0649C4D927DF1ED39E125C03442679\ -3FB06B68B3C9EBFD266B0675A69A349179C636E70367A9D019E5A4FF64490F00\ -2485299C9426A07A18AD8AF1A25C7A60F9D0DBE6EA5962749299EF8876A0ADE1\ -EE700FBDA4268A8F0839134F8F5D9EE4FB93CFBCE6:\ -5131D396288281111C97991E2C9C1BC4DE3A4705AABC0623122B7AE250030C9D\ -A7C7F5441F2CD7CB5525BB21CA8439F1B919525A70B3CF659ED2760E8617CF47\ -7B71D40D8889C427752F3BB0214B1E916072D6AAC5769C08B32173D619D96210\ -752A624FE0F4A6C072A0E492CB4F3C4059F58ED534:\ -BEAA26F0B3AC4C0F4DFEEA5C3DF56A781AD2D37368C922BD5BB46D6FE532D824\ -83B721CEBE2602EEE6C0BFA6E8E91E5D6D48AE9A7A751B007D6DE9D927E9A4E1:\ -89F5F4272A6D04DB82F05F5BCA5E0448 - -C710F38527A635C3D0415F9A7106E43EE16BAA883B75009CA682B4A75185EA2A\ -65A9C64E43297CF406407AAF64D5FFDCBF115E9DCB8A941CD0D06F2A2ADF2013\ -043704F208595E9E5A1AC0C7A03404C9541B1B2C5EF7E6808E51DB8B8F4AE156\ -E268DCC47BAEF9F1BE83B32A62104ED0239FF29C98FF:\ -7A160D8D41CC3E14BC0F3961D18D0E6B3665ECF28378596259BF8C9A92C0A150\ -C2016C1FB28A87ED460778B9110117B1BF6DEDE35219307602463E9D7968E2F6\ -590F521006BBD6634FB0717176DCDBF3E7A77BD81671E8FEC705208A3F284464\ -41F13C8D438C5194CBA3E1931B81BE2F1DD3A9DAA097:\ -3BB9B9AAAE7B0F7A9C1FE00ADA5595BEFE4E7EE612FA97D4BE21859A64DF9BDB\ -75311701828FF1A6EDEFBF876CDCEE87297AB3F27A58BA3FC4807FAF1F7A0AEF:\ -FEF2159226251D571991E2ED70B4966A - -84A5E384DD70B8012D51F4A2CC8E5BCBFAB6A8C18E0FC4FFAA07298EFB07656D\ -E4224B3416ED9FA9E6D443B8693573D8FBA648DEC0D789171384010A0558877A\ -8CA3C576F940FFC2B911642ACB8AC866EE4228969FAE97ACF99FDBD9A762E7E2\ -C25BF4F5892563A1B584DB71DE49A5974EE5DC52FD88D6:\ -6256C709BDC87DB68F9353854CF2C95BB7152CC911A78BE75C172D2E87666F70\ -357E16D8B2AD0E0D428CE3F16DFC42AD958DFE8AFE21A4B7A282F9385523BC3B\ -AEEACA2D64C6249377744473AB16A098E161CB1E4E3930AEBC5EBE31C2A306FE\ -527D3A0DEC4AD307D7947C24B4D7CBB423673D04D1D6C7:\ -A1B17A739ECA52E0F1373D92CD876186C3C9A0A65DC7574E195845E342591F0A\ -EBE73E987A7EADED8B3FF5E8C5226BB3C4BA0677770AE4CA5B56511E4819A62A:\ -0FC28C8195B2923FE28432CF934C32EE - -720016F52B0036448C8026444D1425D81F7FEE2D97456E852AFC1E768362C18D\ -B228FA9D40E6D15D358A77C7AD519D07E706F51DBFE46A6BE5F57E55FF7AB295\ -833B4A0F44F2DFD2495CEEB9B43DBB75CD15EA4F094B9434F8F5810C2FE42C74\ -7E2E04CC4474A8AF6B2EAF9BB23A2C7181B4298AFC2FC0F9:\ -F2C052DB50B1B8745E1718F227EE875A1A5966C5A0CAA14F601C7388F2B6DB94\ -75254ACB3887AC2AC8ADF00A7A2076119E6CB8E118E4D237E183A658F08175B3\ -3E8BB63F85996750E1BE6619EDCA78BF14A5D12FBB278F46240ED743D4C1B0E2\ -DD6CC83C31436D208440D670AD073596229455EF95BB7012:\ -5A18D56D9168739F8A1B5727EC39775C99BE86E5A654680AE5A857CBFAE5E3C0\ -8B5095C01DBEF36FD628726829E08B301E3E2D0C942A9A6DCDC03C499D311432:\ -33CB2931CCFD7DF8DFA2814C9D0726C7 - -2E10C2BC220F1B4DBB95B9475F9353BDD8A8335540CC087CFE0C46860DCF6004\ -082A0C739D97A6F7781270A9194FC3F175B9B2857D06E3CB344D0C87E019BB2A\ -D70A366E868C251C165CE92F81BA7278E8584D4A4B34F9FF1EAA81D9827606C1\ -6F69CDA3867EE312EFBBEF386563A9C4C9CA11433D5EBE33DA:\ -5F73434D90D624484D09E2996BB7904A542917EBEEC334B69964C1F6E9ED6B7B\ -19455442D24180F6BCD54C023C479A8877CD8CA8937933D4EFD08A4A4B5B1189\ -426E2D00DE0DE249DB84191B70AF7043E1CC80E029BFB1FFCC53C1EF95CDCF0F\ -9A1F52A7C03E7283BA90FFD8D2E218E84C6B25ADE197CA48A8:\ -94689BBC5F14EA5C80672BB6AFB1661A5881AB0C9BC32306A292D289565CC22C\ -1B9BAC2B701113B003353803919ED19776B6407AF96147147EDF4307FF5E849B:\ -DE8A8E19A7E125F7B7EE60179D40703B - -EECD851851F5574F0C611C0E4AE716297E60D708785D2AA1272FA92949780D98\ -4317DFA38DB5C3F828F87BB93C02BE70C954738B6A2E76E1D7B37A7BBF1D0C20\ -728697946BF89BB0FFDA9AF5002EFEC8097E6138EDD278F94416D53D50E4EF33\ -856D732F0AF03F0B138174A5709E16BE736CB1ECA94A1137D7B9:\ -7A20D1FE8DEEBBE1E2B964AC46641D41BD19D15D29BB170900EDD35B0FA22BA5\ -309F7CB560F9AAF9DC98C230F68CD611A988E4B1F1E2F1B96AB6680C357011A4\ -38AADA89098E66F933C0E856CDB84EB4C06A07579575665C8C9C2C1C727B50D4\ -B894898A2657C8BBFBA1FDFD2D26D2D4A82EBE7340E5B110581B:\ -CAB4BF39AD1DD889CE0844FDDA2FF214E0E8B0B8F673680C664ED888593612FB\ -BE6B51A864B73273BC3EE2FBA5157286E2F9C517162D9F339D7E5316E364E00A:\ -1320B913AF0150B0CACF7BB5C65C512E - -D22FD6F61C04CAE2598AEEF105AD5A14C21CC91DA1040AC37094BEC60E3EB206\ -FEFD87E633044B119504B7BBA8AD24914D8176F412B6BC57F23021E24801977D\ -422DDFBE4DBA1786769059AFE712D9EDD99EEDB9B0237E78322058B27AD87758\ -914F880E42D8BA8A20AD984194741D8B380A4F2962ABA705EC6AF2:\ -2B1EF2D69B20A1063134D50CC73CBEA83F088A673D3B226746DAABF3F3E91BA9\ -AEF39BEACE531D1EC8F1688BACBBEC8C4D834BCC6D74EC15414F0C132D5F2BD0\ -5956A5319BEEDC3914F2459F50B07E6800278F7C335B3A19969FC47BF6ED2156\ -3D3A661F94EF4BED66EE582B196FE89E53B61076EF22C3E1EDE28C:\ -1DDF54C1F674BC63FC6CD4FD1212D4C510EA5643535B4866A63B9C3E4A3EEF61\ -10F2D94D27BC4A2BFBC960FEF6AB70FD131EB7DA2188473C38D9A6EB2BC96144:\ -0572477DD9BE3815B9E8F971A5C490CC - -86D500F74EA0A80FB65568F13FECA00EDA0F7C8052E4034C16E3D00798390FEA\ -9C04C5D9FED291FA1CABF37403B56EC770FA22F8742C79A63FA5C4F95E60970F\ -853050AC8567F3DFEDE8F7F9972FA258E74F0E72D626EDE641FC1EDBE7F8F09E\ -9D5E860732515EE69DE6F143777EE4F8A720A8531BBBBDF63DE98F6D:\ -54A50333EFF671BF4EA8EEEA0AF5E2F2E31266D04EB8DC93E6C82C287BEE00B5\ -65CD4A225142023A330314C90F952F8383C063138F9B503495435B74F574048B\ -9CF70F5AFB0F59EED85E6240A6989E5BAF9E35799699ACE70B29DC17BFC00E49\ -C29DD2D279EACAC0EB0B2F5A28C72010CDA6CD0202C7A8C816FC4900:\ -BD67D7C131B84E855A78DAB2065D4E9D929C2B6D6F95CA24C024B1345EC9FEF0\ -BBDC0421EB20BE6CB572B49F30E2AEF9DD3DED71D45D7272F02909782DD0D5FE:\ -2226118F51D8D3C6D4188CB5498C0A93 - -B4C0A353E4271B7EA7C6AE5160D703AB5C7AD5B0B51EBB293BD8A91E4F18768A\ -8380F6F361CC20ED27347CF549EF588284DDC96F0CD049142D0EF5C4E4E19F7D\ -9A8593DCE28D63990C6DBC664E3B805241B6BA5E9ED21B5CEAC1D5F7CD083A18\ -56AF03825E4420EEF8CF2DB0E3DE0BCE24CAE2656035312922D37AF0D1:\ -10E505734CFBCE50EB1C237A8D245E5206F69F514F4D6EB004BB09AE26534037\ -FEF36FE56168870A3182C98068A60DDC7D6BE7E2B51134868983CE1573CC582B\ -B354B68335818B336A5ABDA451ED7098B0C37030DE1839B6E0B0A8BAAD2B34E9\ -E87F472C6280C96D2EB1026B87DC34D46FCB08C2FC8F00B723F98C7AEB:\ -55AF3DD97B4176087A4093D9303ECF1763B4CF996543DE956C6BB41E6CC49BB3\ -BF434ABDE0175194E0EA8500FD601E2F6613C69546C1CCFBE0FB0531E81A7665:\ -6B223E75C4E21A9921E4CE04250C2EC1 - -27E952A8346D71E68AB76C66B8F0914ACE2E47FA6BE0D33D9FDCEDBB3AB21D6F\ -D68B9C3A6819226EF8714143AD9372FD1CED15DDD4B00E469921BBC1CAA84CD4\ -72B392BCFE6A72145F4767259A31A1C26012A0F185BA27567FE9534939BCADB8\ -518B5D46AD99BEBCEF0A8D6D3C05C38C72CC19F69910EBD35F3014891B34:\ -D15B7A804E64A8E1A9A095CAF6F599B8E41EF38C1A8290A2E00CBBF77157F445\ -77BE30B5AEE3EB26AABFB3A4D5DC3918742CB1DF19730FEAE589FC0D1755A2B0\ -636AEBE89EA454A7C7F91B631A84B49285F8AF0230BB186E1D812BE507EDF298\ -D26C8AA0C91C9857C9B8B44DFBDBEFC0E0D46624C8752DF2E3916A197E41:\ -80775DF24AA36DBC46F1220F0275217855B661A0C2574DA0EC1084AFF70C6F60\ -0508962700B50E79384C9C57C802CC8E69F0EE8F79B85982F99869255DDC81F2:\ -300DE070DC5DF16220D455AB95733CB4 - -C6CF174AADF9C16C7246928C7EDF00716297490F6A8F774E113B2EB9E0E1231D\ -2AC1A8C2000670DE9A27774AFEE98263E8CB31AD36270250ACA8E469E7A4E29A\ -2B33E22584B86AD3142B363B7D3AF1A40037FB14FC732ADAABB714D5CB27B4A9\ -EFA76DCA9ECBE4E06D644C03D075DA780E1EAF490C7EA36119E7134A118CB5:\ -BFE9123F44F649C212AFE38E0FA2884642EF2485B201ED153566645AE5330865\ -84CEAFC25241ECF6314DC0CB5F01D90A1DB9B2925B2FAF760D7D97E706C9714C\ -1347E8846DA2AB1BC4C4DCE9FF82DE3F11B908B1BBA8DE85B465663666D7C6CF\ -1583C8C39EA1CEE09B2680AB34DB00E093DBBF0066BAC8FBAA681F154AC722:\ -0BEB99D723ED26167BACFE5518C9D6276EEDD0A1F3438222B85A2916A4990551\ -63424C33980656B538847A9EC96B878D81DEC0733390C05447910869EE352C62:\ -15B89AB5313B4107E1BEA5AD2C09D23C - -D6BC799005A3D13522949BD71C098C87EC666D6B9D66585D5C6BFAECBE780252\ -CA47EBAFCCC2B19DA4E57FAEC294164C02347547DD1A45C9F1810BAFF44215BF\ -0774F1A1719C2113DDC2D41271C2FAA33AF962310989B2AB2596C8B8A367B862\ -FE6A43C67039F801467D20D1C69747574772C047DE78D2B23491856DCBF05CA9:\ -075BCA387DB963F8CC2113A4CCE7D5E4F1452BED6E1093E8C361C0C23D5B8587\ -BAE4DE1D6492782EE04F54BCD8A801AE87BBD5E0BA24CC28A9F2D8EC34D2BB5F\ -923F6A6E49508D4A6B582225949E298F3195283657AE5A6D2CFCCCCB660ABD54\ -C41AA07C11F36FF2CCBAFF6003324B57B1535547967EFE8BA1497B03DDACDDE8:\ -F9B94B4310C487F2EEB936F17717F625557932378E20B920A652A6CE905EEB48\ -58602726778968215E027BF0EBD36903379880379F000A555B621F1B0275AF5C:\ -C49CBF53E23776269C32C673C8392452 - -182C51D23A0D8AA74CA0D8F16464F428CD13DB264D854E2B8ED0EBDFEBBC7813\ -3CA32DE826645B3176EBA1B64019FD6F925316223BFB840AF2F9A63C829D6439\ -1E4EC11A8B78A1031B98ACB8E71CAFF35A394A728585C7A7459E6926BA237EA3\ -E64D295B4ECCE9FB99A9422212BB25B16E7E97FC18C015DBFDC3D26FAD5BA363\ -D6:\ -779A228D0653CA8405C2899C8371320353148114E2A0AE63BF262898AE21543D\ -15AE056A261992EDE7B3DA66DC2C8173D8FF06E1E2CC1CB2595C9FEF7574B97F\ -F8AE285D14C3C12CAE52034FBB8BEF5EE8089B280CDF420C5FC495C381142E1F\ -CBBDC9A81B082BCC17BC1C1102F2CA4FC20332447D636A11861BA550008F937E\ -E0:\ -AD2157D6E48794036F6B5AB706B220A96E11EA90BBA3C4D7ACF22B3BD2724D1F\ -733281F116AF23F476C73934B40A3B88F04D84BD881B663B4A9771418C6C0E4A:\ -1736850EBD663E8B15AC58BECBB27E03 - -40D8A3A75170592E5F529D29DA9006236D25CAF47291E0E6443D08CC819B9A5C\ -9151AD94413AE1CBF17B0A2C8EFEA76D5419054359A918BE23ED147DBA75E5A1\ -727AF567547E158296DD1817C4CB43CC02D87B6B62DA6A5A6192CD785D9A6A61\ -0C0D6869BF3506D63239A847371503D47F8DDC0C67B5482AE5D216B5FA30B352\ -D84D:\ -2B58636BBEBA1F3A83417E58A47D23B673B6CB12D0175905145BD7D2C725C5DE\ -DE5ADBC824755A19E2C177379CBC4DD4BF36F82057B5D5E6B3498B25C53E9DD7\ -BA154D74C7DE64A5D32B2DC774A9A003CD39193E7CD9E102316ECAC0FC5E45E7\ -D6751EC02EC409D1C062D8E32F6BE88DF4F1000BEAED42156D4458BBC03E4827\ -D96C:\ -2909E3C1DF3EBC1B4E2FE43346F62C3DBC401B4E95162244F9DBBF240C57A68F\ -8F6ACFACBD5F820A6FB7F88513E0F1FFF834D7EDF8B0A26CD360DBF805AC534B:\ -8E98DEA30C4597212A3377147F191C5C - -CDDD69036E9320BF1FF4E752E745E763FB470042A4F93AAE641B57D0CE100068\ -D2466302BC9D570DCD0FC88749EAF5AA0F35035FA0F5D04C69ED92B5447DD8DE\ -1C7B28D17D7BC9D1EFCCF05B02ECFF320FDF4836BDABF5DC572D34E65E4F0620\ -D26F540FC1123FA05F9EF432A87ACE2B2BE0A6A5EF6BB01401E8DDA43CB12B11\ -03D896:\ -BEFB4A3CEF539E0F5F15A2AC5594532E989F23AD63FB57DCBADC5697844064FA\ -94468A536AE43F487A2748F4A9281ED8C9CA72044CE809F799FD2EE3800D985B\ -111731A3F2E0DC15F3233187D1180FF502B131CA68ADA0347429325BF544F831\ -ED55D71D97A04B2ED3FDDF0214E570438EDA57558D7E22FFAAC630765A06D8D7\ -1F7760:\ -39F6E1C959EDDE1EC583CA985D981BADE2D796022ED1028FED4B7C6DC5CF5B73\ -F8B70B763702D55FDBF688389103155F18FF8F85EF0E86AE63F0C3CB4EAA464C:\ -077CF8F2FF97C558EE3C318A9781278C - -02AD0C442AC4B1CE3B4783981E9572A083B63C5A9625EDF48EB6D4C2048050EC\ -B02B3698F412888F4293CFB0B0F55BAA04D419C6CF8A5F35FE976FEE9D6A9080\ -34A77905F6B53335378FB518650B6B36612B323A197F7377D83FEC7A4A95D0C6\ -7BDB434822C1663D5998B16D85F4C9E075677720B01861D8009221E2CFDA7B24\ -6DE410F3:\ -A669D100570041BB5BA11723FED861B69451DAB7500C988E0E504624067DE27D\ -51872A19FC51E9EC3A022A735E5C7996FBD29F9B39B3364747CBD650FC812D7B\ -4AA581BA0E9D15E9B21238C1EDFBCECEE5FD7928BDF3864D78174DAD89CE113D\ -562F0EA33D0CDE8980B199E256A475900538AB46FB15B93D209EF1784E3030D9\ -B4DAB2C4:\ -B16B1D3CCCD67AB6F037052074874D04ACA71A70577DD9472DF03E78E6BE8039\ -9CBE59253E641A1AB0FAD3A61368358C27814AC32EC5939C921740ED451CC0ED:\ -079D85811EA541E3F7369E6642C88AFE - -8B03C8D1EB03D2EEC494B65E3529ECDB72325F444BC41721EC67B01AF957E3A9\ -7EFE3C39428281B87703E8C30CA13C7B1BFC1E0D72EA585BAA5FA68FA232C8AF\ -E3960A19C0898751AB390CFDF50F1C326204728C007EB185034B5272176C2DE0\ -978FE10C42F4F876BD089C9DC9C25E7BDA88316F817C0DE46AB2F5FDDA0AF1BD\ -2B8595D14E:\ -F498A04B9EF5E1C39F23AFD77F46856789EC50140464EC61D17538B52B412887\ -7C7B4BBFAC4A266B9EA396217A101C0A5781231385BAFF5C2B1E5C7500F0D825\ -732E94076A3EDB87DFCF6EE7E80AD89B6EFA1D2C142275AD7221E854E0B2BFE1\ -D661D357771DAE907EAB1BBB12F8CB3D9EC89E272F1774AFC75C6C6DE644B96A\ -8D5595A73C:\ -95A709AAA5982FD83517E032283ECF090BA772A2185D5C5A189689510E4D70F3\ -A4404E5A306259D68B4B6681B87E11F66F957DB31338EA8F61F4ED011DD80D28:\ -226A19FCD9AD661782BDFDAF94FB5CC5 - -904B084BFE1FCB161DD58ABCE8F857CEE874367121254A67EFAA72AC623F36E4\ -CCAD0977C2EE32B7BD41A1DAB344F704C353D6B7C3351B346A36A58715B79AED\ -B0554AC0B7FF5307B8E34393FD8034B9A3E386378F7F063323F052A839000807\ -7D38715CD26961165D02DFFEF6D7B23172FCE4E23CC4F39A2027409627947AEE\ -5016AF5C16AA:\ -DCFD7373BD77266A8C41040933BA345780946A5537DA0639D5B677E40AFBF456\ -EFD2785AD674B72AF8768A543F7BCB3960B010664617292D1A511FBF755DBD1D\ -C478486597901C075562503C5B328A29EB23D660B322A05DC5F76F8883F0700D\ -4C076DE1AD6836B7C03D8779102C5CB27BCB0416B25E94D689D1E04C7F66DB90\ -CC20711493E8:\ -A5FD0026C475221DB0B8175CB815B8EDC392B6A5A03BEF4F8A393EAB80905615\ -899DF15F554BED14576AFFE5A0850AE74AD5397687D6F0A36C68B6ED99208CC9:\ -D1938E9D13383D62411606CE3F7816A8 - -84E9BF42B31E381616233DE5165D54D813494600BC222162652DA83E0559A779\ -230F796B47B64AE6501063A95F0D3579FA170C8D59821EE746E3134E1262EBA9\ -23BAA0CFB806FA8AE933637ED9255853484DD007C4F2685020CF3C8AEEC2F461\ -9ED535F889F41F5B7104A6BFDB027EB58FB55CAA6828FE01D4F24D20A4B36D96\ -F96C50D5C4D5CA:\ -F1E7F0B33CEB81B200BFC509B849209D21127B10BD1390D87D45C28B949DE7E3\ -66027E4C14FF2E751B83078721A715D778FC298C817BB1EC3A96318F777867F8\ -304040A847990954C4397042C339557E9E9A484997A509A14F8E997459B3C7F2\ -7C8DCB8E017A69170704F564BC439CC08B18335280A2977DE8AAECEFFDE1DC59\ -19C86E11FFE565:\ -92CAAD32FEA3E17CA96F329B229B9412367B80AB903486FD61B593B52C5AD603\ -D257406165824BCB1DE7E45CCA2D3444EB4E6474AFFF6A1BC0D4885C2FA80E8C:\ -C0568E6A3DD0FE7E63FCB742A68257A2 - -3D9B6016E7DF175BC319CA6D06772E7D7A1BB39FBA8E6ADACE88D624E8C103A1\ -2A6DE705CCBADF7F92D86355764B72F1EC67215719A4B81166B83F183D8BEC1C\ -982D6468ED8A106070847B16763F210796459FC0BDF413E4619F41ABE20BB019\ -C2337C14F5DCCF56DA8D9A46FCADEFD5727A636F6C632810420AF0224ACF482F\ -D84CE859A9C4FA0B:\ -05B529C9354BF3855210936EF156484D35681FA23BE1D71A383C01D83300A263\ -DD1B269A92434985C1B8A65DB6FC79FD4772204818BA69408D7426E51B7F74D5\ -9FA5F425FEF5A2162C1C6D7D522CED9927C8D7163DA1F8155C1256F62BCE367E\ -C2584B9F367EF0ABE392FB8A70CB4251639E64E919B9A6578C211C1E2F58839A\ -0E1F46B64F35B77F:\ -23AD41F1D24AF8A060F8D921772B5F4F5A9E3283F90454D1368B9CF9973A9D34\ -CBA431072FBA74BB034601B5459EDFF1501E1BD1683ADCCCAD84C0F893991371:\ -E369152C812F3E4BEC0EB846D1C97CEC - -E8ACB643B23EB6C7EE66DCF988DCB94CAE68CA5DABB5EE5C03D0D747EB59EFE2\ -A3543C3DD25663274A135574F4EB374AA78E65361CB6E80CEB0DBC247B2073C6\ -BD5E9BE3670900F637F14B0E38B1162BDECE9C44059CC057274B2A8E39E42D71\ -C8249186015C142B4D3C1DE2334DF2EC2385AEF8B88F19D98D4A0FC34899DB3B\ -144F420ED6E831AD73:\ -E0F85816367A2719C991A40B0DC318250B73DBC585CCC7CFB9332CA84F453AF7\ -9DB65A4D026BF686061F304BE2350AD8EA0F1567D5695C35934293861C593E2B\ -78271C6EBA51FA849F6A8C2F3023751A2DD87E76B7FFFE5E9C01E1477CA17B95\ -FA04CD5477EF726020979AF84C6A75DEE16B2364140AEF0A76405B3B550CF7CC\ -576D22D0F81575514F:\ -1F3605C8060DB8AD0A2BD01F086F5D487774D5B27D14D3DC2FDDA54A008A19D2\ -F52F5F57F7BF58D0212677EAC5D08471054F5C6DA320DD8660145F6C385E9007:\ -6248FFC00CE886E8F822D5D2770C3FBB - -FFB0184DEF25C574183824DDA2A8CEA0134B7B5053FD57EE11D8BFA11E88628E\ -D765067187302B236B2D291CD2289E48B4FD6F16231C8A7DA0DD2E5E81FA9661\ -4B1327B991464DFF07C2FDDD97AA991CBE54EE17FBDD848F54F3FACE67EC72DD\ -880F5083B36CDBA177C157B46B681B4562CC6DEBB5EC5B35696F73CD1408EFE1\ -C02D677A797BA647C9D5:\ -E27D79EE294E42D8D7DEB91C43ED5C09D09BF7EB809CC0EECFEF8CB7396009F5\ -F6776A4E1379DDC094274AAFDE774774CC39499A0CA3F9FA597F205D3C361393\ -C564B7B24AD222BA91B8B907BB799859F3CFC0AEB7359346636AFA8081C502E9\ -911750CA924E7013691750D9FA6AEF4E273C03CE6EF3881630416A19537938D0\ -E0A2A0BBF5BBB1FFB8E3:\ -ED622D1037B91823A2312B1C9E815D30F3655FF083328C87C03987F34C91F572\ -C7FCD7F980FF22D5B6C6DD28F0AD1AC78CD65C4F18F01CDA6FF29A50244ED205:\ -15D2A6884E9C6F89EAF99C11DE5AEE9B - -24780C445108DE3264EAD2EBB2FF3CD875A69BF7D09C4DDE186E92DB5C607039\ -2646E997029BA4634EB9931B324423FB99B5EB177C7D012687D55791F8911F79\ -38EBAD323A039D9380C6D80FACDC28929D3DF83D48E068E633F74E084EA7F412\ -6477A7D9E17B1DB7D4877F3EC87E649BC471171D077DFC329B4FC25F349000B0\ -B76543907FAA19DD5776E8:\ -AD6985267114929F81143F1A9A97D893651C42C93A074E487E6B9476C9A1B950\ -D547243A152BD8CCF67154A4F5B080064B8FBD4D12AFE4B2649FEF167872BEA3\ -2E2AC2DEACA86122581245D7AEA354A03ADCC177546191E9AAE76A98698E5DC4\ -318D62F38362C7756A957E52F090D1E5526DA1FE771CE7D40C1AC9F7B0CE5443\ -96CBFD946DBCC3EEAABD5B:\ -FBF092E79DF6B472B940518F18C817C492AA5416B7498050F7E6590C337EB7ED\ -A3BD14A69260DE6E07033C8298B49DBC02C3867CF62D7BB9D470DB5EFBD4C2C5:\ -F1D54E3C09F2C0B350DDD3A99D953F99 - -631F8402A8A2F2A3037DCCC23A19B986A9A0FE342827942BFFDCD16887307D1A\ -236C76F62CF40B46B7C140123DEF9413BD0CB1439A7ED758FCAB8CCBB333D1B8\ -52EF9EC7C980F6D77DB9DFA91652E6BF6F22C2322157DF6B5A4ECE266998244A\ -7F69C9DE9CE4581A9FEA6033C8F73BC212966A7F0943A49BE2427B95C19CDFF1\ -FB6BA398AF708D0AE89AD8EA:\ -5CDFFFCD4B81042BE4FD2A861D74C8F2D1BC65D73733EF73DB9F0297DBF8D6E3\ -4383584094D283A4AADA1A28E4078B43E540DDEBA3299CDF2C6A51EFC01D9DB6\ -C4130644250AA7E4288E01AC4CC2784B83F8FFFF38434805A88B40140A310EB7\ -8AEFDE3FA66C62A2B026F69AA049202C9190EE247753D94BFF64F9D1280755AC\ -0406A37884B27DE673CB4637:\ -89AE5DBEE5261FBF22B3A7C50479B063441FAB45B652634D52D2C265926A7870\ -240D492A72A95E5972EFC22F019D0A9197975890C72C8170B09613C79F3AD31A:\ -4B4F456327C8A819E8F2A0B7EFD68E26 - -B6986DF10C1EF8C71B4C568EFECD0706A1605FA9F2A456808160C28A61F32846\ -B4CCCC01A50F725D05C076F933A848BDCBBAA82426DE3AA81708087878894E78\ -7537BD1901047E3196E22513B9914D6A95DDAF00E5DA6C21DBF5629809F27C17\ -40E423B9DF6619B5CD71766274AF3FD3023BD912A5EF6454C9D5A8AA05A89111\ -B4E8394F370F16AEFC085492C1:\ -F6DC7A7AACBA454E0B2DF92D648553D645D3E0C880EB9497EE98A355A0F6807B\ -9221F4B3C6317F915E15A979C922C14FB90FD71DE3AE69F7CAFBA2968BCD9F1B\ -14787B0B0DB258F0B8C3E01C9E06E6EC26F0584848151D9EDA97391344290F5A\ -F2051DCAC329CFCBF3E37A312BC4A7BE737308D0DB7AB9C83F243E1B37106A44\ -5F21982C586B72974C7A60E790:\ -B184011092C983E517FEAD6F05456D2032752A09E344EC1C86A897053A2B1C99\ -6337F5CCD1A15651BACF199C2EE3DC2CA2BAD5F957B59EB56728D1FA30A4B433:\ -6289A58D101ED6C868BD1688C05E3EE9 - -EFC485127099D25D967C8E755D4F91B5B2554275BF8144A365FE6CD0F9CF159D\ -5FFC07BD75A5E37F6C7584DB6077754D6D2FC49F2BD26C6D1F665D2B3BB24DA8\ -49263384CB5D239EFB4AD4C643EA11DF1F0C65047651FCD967A4474BECF9FFED\ -B1DD6ACBE55106AA20B5A0469BFB7027469FF0B790A7DFB57FD0EE9D05AE24E8\ -2B5F71E6033E8E66E700AD88254E:\ -8B1DD9F350FAEDBAB5BB77285D76EDAF6B38EC9F4D3FAAA9B7D13AE441F8EE37\ -DE9D0938FE5CDCC69C7F459C9FED76004708929DF4176A6B2264CD61EC9F127B\ -0DFA7F553EC0BFAAF9C84290E83424E95B8FB047C982D65F3D5848CE5B5A94CC\ -5C7F25C28AA7B19755A4897B98877CCB34197494706680EEC4A1D5A324825A24\ -4C04AAA757C7FBE10C60B26E9C10:\ -43D7124E5CDEE7E1025F8D16C816222CD64E2631AE6540EBD4CA39BE8A4CF9ED\ -6BF822EEF3A49D9D46347420A43D70B2F4F65D8E6BDE53C229810475254F9BFE:\ -4D1253F5D8A3436AF1B74B6EAE1EE153 - -F777D4626BC8E1EC3F1B3D634111626E15344EEB5EC756B133C41D9723E76CC2\ -438E5BD74DF9150608B222F7CFA6F1F88D9D4A01F63D3129A22559C3C8787664\ -A46D0785214BCB184D46735065CF36AC60CCD81B959846E25F89351493F65B4D\ -C924E7D550A891EF67848534530B8C051A1D125C534D0722EBEB092D129A802C\ -EE99782DD1E5B0E967CF103B116EF4:\ -EB95671E50E7CE4E1F1D37619A36D4CA589454D636691AA79BACFA56A3B6783D\ -42847889B58F1114C0BD0300BF31377CE37E444B6EE36DD8C3DEE5DEE5C3F1C0\ -5E156D1AC335B6BD0B51139E38E2D920F875DC2C35DE113C84112787D4A6B6A6\ -484183DD03AF97877BF439A6B7020F8A00D370295B88A80B291779BD3B48D5A1\ -685C814B1E95898562A11BEF62396F:\ -117300A3FB6AE24E901354B0DE987354ADC49A0196F4A6C4F840623BC34841F9\ -C34A5033B18CCBA4F74867DCF9F2E6B5BD1308A1F14EB9FC63F10649BE1140A7:\ -87A40D8CCED2C153978A307646B3430A - -60F27163F6B6BB28A798B17B2359C2304349A54A3B87B50ABFD5D9B77E106D0F\ -483E483ECF6C28302900F2F4ECCB675174610117443F2FF392903F2BEEF8C0A6\ -EE462454909913BD3614E8798D6EB0EAE943A73C214A95DC292F276551E9C4BE\ -D6A3BE4B15090D48303BDE9B3AEC70915825F88800D400F216F6C941B557B5E8\ -73D03A551917F90B795AF234816CB91A:\ -B869DE2DAE9D5B1D767D98ECBD9EAE4581984F1835733B49D1670E5724594F2B\ -67EB675B44493C0C7AA236F08667F2BF5CEAC40FC63BD4C3D51C4E7E26F45E0B\ -D45062631823C821D7B20A1D3706F8D2AFFAB6BAD8F9423E93A1B9AAE04D0462\ -033F95295D124AF4854AEE9D71E5F7EAAA0465BDD9E1278F590B38AADB725D6D\ -0F00B3D9553FE4645EE6D377DCF65CB0:\ -5A47E45D3E72A2F0CC66EB574C9F01E081668625D8D1F2415053A3B9778B141E\ -D3109DF96A5310F261C857709A7906BA78B2BE949071F440EFF88A9FD1F943D2:\ -801A180B177D6534970913222C592140 - -A78B5AE80E81F65CEA967D460E49681433539F2852262B89E92444293FCB01BF\ -AA4D14371C17C3B16FFC55D60CAB17ED13105EBC584BA065F85377E6E6262405\ -A890D62069DB359326BF71E739305EFFA2C2F42C39F2610105A3696F6C431178\ -679BEF02AC96F8A5D4B0E0C77D247DC5009C7E00036DCB4E8A555665F4D37304\ -2C645A87A0FD24CA273A4D1D20C82D4854:\ -7E6174D9FEE9347287DFA5AAF14A8AF5F3A78FE118CDFDB42CB8F4BC34B2F943\ -8F1513A874C661B8C88D59E667B0309E19A233225475D0BBBA6F710474EDCCFD\ -50BEE8A92651FBFA5D0CE4673D3C8AE6FC3FBE04F2CD60E913F6E9E432E5EAB2\ -60AF956C7A0CF607E8B0425DA8473671FF39A9FF191E59072E5C86C76368573F\ -81254D5C0716DCA77855E173F035551F03:\ -AA773417AFA9B1204CF5E216459C603CDC9201572B2733D0C60BBB56454D2C66\ -13E64E5F235DA766017F9F0CED7819642CBCAB7C4AB70C62F4177929751BF507:\ -976FE9850221B235F43DA870B9B0F6CD - -D2F8DB2B0686FDBD4BE64BC561FCBF9B738F78E2F2EFBF61D56BFE06CE9ECA4F\ -23CC442BF6D1D51B55A2921A73C2D5FEF0770FA85D705E0EB2D93CD0ECD66727\ -D6263D1FBA02C812890458385B6C138D6FFC83547646BB3931E2834DB5F28C84\ -DCE7692356C2670A7A05BBC61CB8D0902EEAF0D18AE8CF71C8703AADD202DA95\ -E9C7967A9700A43FDDF049924DA1D1A11379:\ -DA0885CAD1C8C75078AE7633F61B97B45B878CF2915B8B4F77C7BA456F0AC771\ -88BAA8D2DD0E929083F9928D4B123B8C90A40F61399A89B45140422BDCE57869\ -C313CEE655D497228CA7F084EA414820CE15C877D2C2610FDE831FD9953C5C9A\ -9BB3705F01CD4652C6B1CB153FFEFC2318A2AC74604BE1ACD0CBD8139C8E4603\ -6BAD1247CF5AE785A957493E04787B095B56:\ -4A202C1983B71E41DB112F14751587A50E9A6FBFC0CE44414862EE1B09417049\ -EA861062B2BA0956A0278A34E86B883B07F42750906BE819C1DD0C3BCD12FE8D:\ -C9BAFBE986B39D7DDCB8CE8B0D23E004 - -8D8A5722BBB70130FBA449CD5BEBD86330F035182D93FFDFD11DEE731BEB1700\ -AA69719256D4897240E2F39C54E390FF51D7B8895D2D04BB7F9A67EA8417E122\ -6A67E5A4A75F429161C999B5817C5135251C54855CFA0B10C9B11A1C252FD4AE\ -B368302CF470E0E1BC4E6EEDA8FEC2CCE1A9BE9E0B277503A427F4BDB0C3748D\ -718037CF28591A65EDEA5C7A5F2FE05BF93702:\ -2DEA2CE092FA848A885FC2022CD8A177715EEF94D252B6B36B27905DB6503DA8\ -2233C131519E164AB347339DFBDF8458F2517010A63186B1356C0FD154345E5A\ -22CA4B8952A31591E73CBF2905425CC1C4EA1A41F84D94D87262055CAAB28DAA\ -EBBC2EBBEE638811F187FBD472ED31F3BE5D58436EBF38F276E39FC24EE7C8B7\ -2543BF6AA1537CA25CCB0AD5998D6E70482AE6:\ -0D7E37CC074CC744DCFCBF5C0A407F8ED629C66942086E427972E07CA5B532AC\ -F13FE59C953F42AD1497137ED3985955581D6FF1AC52AC12EF3E88BB20628867:\ -6FCE49F4F9E8C5BC8A865A7A5C128760 - -24702D2AA753FB6B6A201E78FBD604850E2EEDB5E611BEF4969FB3687DEDEBC6\ -DE5942B854115CF03AC8C6DC08207A08BA9C066C1A1D76856D0C850AABF63428\ -81ECF252F29504BA62FD3517E858E79E87A9AA14155A75A9F9B7236C93E3D61D\ -1D80A655621C2636142B8CF4769E69E9FB9A6E4D007E919D7ACB2C776079586C\ -671AFCE2F7D823AA5461D4AA3A172A64AB04C6D7:\ -353A10040F30D579A09BF918B7DAD930D7C4326844A4B91382F311559A706289\ -25820AFCA85D2039A7FE4C9409BE2049EE8D1FA85734626DC93CB6AA49B5FBC8\ -E99AB0EC9930E23324C83AD2696612D297F0612D188C83C7EFD073E434B9C3C4\ -0BDC51A751288BD21F07E3A2E08A15F96FC86A395D7FB253ABE474B592ACCEFA\ -4E46FAB70A7BB7807FE486B26641CACBDF7AB67A:\ -DF3F3E2FA0418382E7D49CF65468846BF7B207BA149BD894DC47BA65A09F0C9D\ -DFBE81EC4DA0D3A42996884690E87328FE83D2AEC491768B1C682B20A52A6CA1:\ -78A98853B5C4C088892F617835B5BF43 - -E9A4C906FB3D7C3E102E99EB537BE282CE4C6B3D858CDC05B0C0A8C158C0F0F0\ -7CC4DD0F5ECFEF80DE8242AB82E16C2868BE283DB0BB0EC296F5493E4D292765\ -D2A9DB599DD6D811DA126F858DE07F323DF8CC339F6A0A6E3EFEC9A35C006304\ -447D0E0E1E9DE8FA678E8DF45AEDAE039FDE01350F38905181E900FB0C45C063\ -D426090D3D2FB719ECBB79F98216E3ED3D4C269F82:\ -6EB26655DC6F5F56B45D719A5D5379A5BD56D46BFD8C88D763A701D0C16DB997\ -1D1BB96891158281D020372AA580A2CAF8F809D500ED4C03149B540B12D0026A\ -A9D03CB3688C14A13D25EA35C8801EEB15B6B8CB9986FD940E820DEFA3B5F553\ -5401C97705168D53E3DAC0CFF8D4229F76C74FDE2C590B6629462F7825BFAC97\ -ECDFD9D8F86476432A3339541692A4C498A3773D67:\ -B42E8B5A90A4BBFE0E04B28C2A27EAC0A014EEBD1CFB3E8F601AD84C26188F43\ -3FFD9A4DC1B0A619078F16972B3CDE3F2278C6211E886631783EB64C4C84EB32:\ -BFE7AD86B83A5FB4368AE7770C2C8CB0 - -144EEAD91DFAD8259F884BB83198122346BC6877C0C2B5986F44EB9520878806\ -CFCB2B1D4145D92B53BF9F894BF58523A2F7770DFE8646B7144C63EDE7FC090C\ -3B64EA161A2D7AB48D7052AB727FEB1C0050004F44DB8F1F1FF562FFD7AB9815\ -83CCD3880E82953CDBAE0475F0612CF7E05533FC86B37985071274AB4B376EF7\ -BAA76743027C324C69BA0300B4ED4EF2F85B3B3D0573:\ -C7DFFDA2591B600EB79876A120427FFD5AB32DA0A9BBF872660D5D7C9A0632CA\ -B6FCF41CA1F1F482711C418725AB4C075E1D38BB22AA17B876EC5AB55385FBAA\ -7CD7C31C6C61EEC28AD03E1E9C5652F3BFF72B8A13D90DEFFDCF3316C7F984CE\ -C307D3C320DDB10F3467941B2DEDC26AEE46EB287FE1AD9A372C8BC129EB89A7\ -860B66D156ED6BF604F911D97F233946F80408E788BC:\ -81F401C4720AE2E11080F7F52322026DBD8507B09B0799DF2C8100B6132D93F7\ -54C0F0A59C6E2B81C389E4EBF55179A4B3A4BB970326B42107ED495D909F9801:\ -CF7A79F18165AFC5F3723FCFC87EA81E - -CAD0E14D6B97CD68F0B7F7E43166698B8DB87C00271B7D361674538595773FF6\ -5A9AE74275B9D8F174AA935240E3B6E7F321030111900ED7304B3CD3624DB444\ -6A7B66CC98D4F8E5053F6D4CA35D2583B6FD1732F776C7399C649C0BD2B03B00\ -9F283F41B2849BD1D1B735B365A0B728DE40EF0B08A9914C1889674293D0A9E4\ -9BC9FD70DB514200CA5BF2D396E6E512D04DAB6402900E:\ -099D2C6AE9FA3935BD67C1F13E1293137B3F262D9C936DEE9E41F6278311B985\ -22E6FBE196286CEDBFEB737E3B221ABBFB64FDDDD54C3D56F06A40AD8C36AC07\ -861A8F3EF7B4CEAB92C03BBF8161E0E951CE381E5AA4D5958B99E86C4CF48FA7\ -4D8F380ADE2EF9D58CD62B03854CEBD8099F6AAED5C0D13CF92C6BB89C0BE78A\ -A444291A5AF88E55159EA68252913B3B621EF5D1D3EED2:\ -E68779E736B5C1EEFB4E4C563AC2CBF5524C09CFCF99CD6A877557E53B3B9A35\ -55DC626A18FD32AEDC787E168B86CD2F893C6EF8A2AA522247B007CF01EBD3A7:\ -5C070C33AFB126201D6D9C41CB85FF92 - -855813289E39837785AEF095ED8051F8A87659E5B200E78B6F13C96185148CE5\ -F6F941942CF7C9C64D1250E8116E1F93AABBCAB2B147A241FD64883D18628444\ -50EE60412A2A38AF272B2254C31B09C07BFA14BAE2DC46F202028A6793C2F3E7\ -6AE50BB7CBC1C9A45CE2026FB1A1E9FF60617536251DFACD5CEBCDEE5C70B207\ -945540485E9DB825AB88915104BC257E349A3CEC028617E9:\ -07DAD2DF0247E86263755552CA7F12D30AA96AE29FE59B414E31D8921CA630E3\ -A57344E2CB7ECD42CF6E9DC896F13BF308D4B78553C2BFDCB8A654B49B3AF779\ -9C0318BA7CC25AC57EF98D9EA9D4AF4A54CB34EE84A6622D0D9320E72B8C0707\ -02C45EDE5F7DE2D8A0E073CE283BDD22FE831240B59BB4DC72EF915F051DD52B\ -48DA8C56FCC0666B14F7CD6337A2185040D136892EA6310E:\ -80DF01B1339A9576F412F52320C4EFF8243C95F163BCCBCEE828536B81E57F64\ -C3308A30110AB3FDE755551B12F7ECE074F3C7578CDBCD64EA4FB083FF568C20:\ -9AB550BEBD5F65E689799EEF77350BED - -4B980EC7F6C1C06403E001B970C57EBE64620AC8AFB1119263CF50AFDE86A75B\ -F24ADCF9B78FB4AA3E813CC14E366006FED0EFB26EB8A27079E32DD86D78B6AF\ -BD11CB50BCCF930CF69ACE2ABCF2D1AF3C9787E818F0942368712A91B5741CC3\ -6A848F9F6E59814E50E0C86339234E97ECC0DE1F303BC661260559E69765DE1D\ -17ECE34A936868D334AEF1813D4E7A4F5F29286194A8D8CB39:\ -C566BC1659179928650911541497964A465D84012569ABDFD54D0DA5A815AC0E\ -7E67AD83A9037AAB62424AED6FBBEEF92C9E1CF914242C8880D65EEE18F344F4\ -5961312CE18D11E4750853AF3A674AB607C2137FFB223A4D730434ABE6878E83\ -B2F2523AFD3C2C7091C6FFAF1458AB26585905C8067F3279F2270227D378E95C\ -925FE5EA37C55FA364B9764E3B72E0653AEF62F78E245CD01B:\ -F2BEF6770E2A6BC2F9F5263090FAE3270BEE133223CD5682FDE56254E37F62D2\ -B429D6E951DFFA004CEACE7207333589C3202F7178189BAEB6B87CF54D8E2EF5:\ -DC665BB1EFDDD25B933560B3D6488178 - -91631D65B5D1FD953709C0E5F13555437E0AC39B165A05191CA3E7CC2B83316D\ -C189EB21FEA46769E093C108DFD02A19210A3DDA4E744A7D6780F4FE1906BD5D\ -E022942A2BC453F5ED5B379613BDB703427F14B758D6F203EADCF8EEEACB3F18\ -FB665FCA19A8797E6EC034FB53816BB16715E732124C6A93004E2B83D3955647\ -3E321A836175DE6883032752BF5044F1036871935AA615278CEE:\ -2113EFED9A437854123F5CF3345ED55C99F29575CF292B415A31566AD81E29F8\ -3B4F9C4A3B3CCF8ED111D754583EE3E21007282DFD92E69D825556153BC8C4DB\ -8DB9B194A225AF36C1C16FDCBDC83299E755B77280EC92E9937D509DBE4708C0\ -E610AC378F53D810AB09799D5AC93CF3C8BE3DBF8A01EBF5AD264C04CAFAA454\ -9DF854F9EE416554CEBC188331B6DB08555C39897EC5CF735B97:\ -19AB0F1AA637F73D03FA490489A46C78E427343574AB38DC731181D190EB7782\ -9FC9D677ACDD74340A607249439CDC4D45BC4E6D14AD237D7AD6874116DDDBB8:\ -4F373F68CA1A9DE174745AD4BAB06E50 - -9C44DA0A64EB1839130DC756DD4E6C39348BADDFCF23978D8E664F69ACEDBB31\ -A89D0B6188D2DBECC770B82471D59023611249F1DA3CC80892D5ED3D4F38E945\ -84E6B8FD24C7F4CAD40582934470BD6F9204AE7ED69BD0BA7403DBB8075039A6\ -EAFEC38961777718FCB7F3032E9DFA3F5CB2827E6D1901318CEDA18A85AC6FF2\ -CDDBD6EDE7084B62370C3E36EAE051878A344FBC771A327DDA56D8:\ -02854B8C7D561BE4E831014A0F1D8B8D6AC07EB3BCCD836E4E79BDB2288353AE\ -DF9A45BFBBCB430E4122CE73230CB21817D29C9ABA68B41E74D6217FF877116C\ -95ADDEEEB8BC58C25E2A960E4FD0DFD8B9854EE2674BB20E68872D9C19051841\ -5FC6C4109E78E455415055698907DEED964A6DF167ABDA3FF1C03C0EC20C4406\ -E8EBCA083F3A26F421771668D93E7FAC5A44DBE2B00334A8FA48B3:\ -36F86422A1A8AD2786FDCF0D9B52E7230C79F65B0A14BDE95552C3EF460E6062\ -043741AF24550F653B65A74219FD5B82BBF65768102B83979B282A3355A70059:\ -7538D26B77BFF31D6E13E31850A4AA14 - -28E90084C2FC9B7A78FEBBA2207BB16508DCB86FB7FC49AAA00730C400C2FC9A\ -28BDBF8226B9ACEA3FB218978242E6FCAB72A711264A2B696CDCC3875ECE06C8\ -63CEBA9239A49CC05832FBC3EA3359B9D0818C1BCB73D81A5B547AAF4DCB9B21\ -0C322D966D6403740807E48A1DA21600BEC16469F2092499C457B2C3864D1647\ -1D75A229A514F4D30CB779C5AC31C1F5A3369753DFB42F469CC41BE7:\ -60A52B9DB1D33E16804F497DEFC3017170DE155FFABBDC5C004A558340219839\ -82DF04C01B1C9AF49D3188112105FFD9C4D82292A0C551B03B07EAFEB9B9ABB1\ -5DE5E134D0F1E1625EB4148A434D682225DB55371C97487ACB561D33ABDC1CE4\ -6869C876E29A5E824C69CEEB45D04AE3F615BECEC94ECB6F5A1DE3F6A66391D3\ -2D50A061B15BB4B1A97C11F994B0475F69DCE51121E00B0F5BB740E6:\ -B1D259B15223AEBFF9CC784908A27558E0D68B9F92A03B40FB4A2A851A720EFB\ -C96E3C66E8FC665912BA0BFD55E79172FB665C88837C05F487006B5356B9747A:\ -8589B4920D6AEB54F5E7A222B0C4B627 - -9E0575D75D3FD597613F1D544E0CC4FB11E2AAF3619E4255626C58E6A768AA43\ -A29591712724887B311EF40C7639F38C90D3D591417ED6E8919DF3FF2F0D9935\ -1F920F5450EF08832E50BE626BAD7D2F5376B858A19F1AE77852EA807A7CE9F4\ -5C763302AE8B174C655C5654275C3296D78A20DED07A0A6B3FE4A2811B161903\ -F4724978435B55AD25CFA3A82DD5C5198D8D6D344C63D66ECB08A8435C:\ -87EA74BA569F363D8223F4B8C0744C39BEF2E2FF4FD9C60886096E5B431E293E\ -40A6B5A5A948410B39F3EA2C561A0A1249AC0FF02F30B5AF58D014761B6D1E5B\ -9A4CB05B885B7F0E918D26D0D26F47C3CB56B078BB31C1060BAC33177089E83C\ -837875420F8F2E5F7ABD9664095422675BA652AAA5B0D02412643EA15C9BD592\ -407325F26ACEDC44B54A92FD0DAA63A498F04E8F22B24F4824CD45FA72:\ -63BA840AA75EBA1601E729596106D5A9784B1C96FB62105E72EA5DBE447A13E7\ -D8CB40ED861F2B02103B6263F01960ED3E0E801BCEFF6B592E2020B6B6E5280E:\ -9A629576FC30BD795BC5120841F1E0F8 - -F07862F285C06EE744B43BB659F9CC691B2216D92AA0A09E08E2DE81A68E1462\ -F0582BE06588DFB1CC7DF0D64ECA246DA8D666B025E7946327F83C04E4F78204\ -47C8CE1A50A4270BFA1D4EEB608B4020457CA06B1E53D38992B340580594CAEE\ -E1643BAC970A5DA5F79207500138A707A3D22CC9F2522E14287BC360192CE506\ -C70FE9FCF47E80B9B62D3E36B8473D65A54CE7BFA0D4AAB12E4D0CA6D95B:\ -828AAABDF802A6D3C367AA9639C5C3BBBB8665AE1032BD82E8253E94E9865943\ -E7400BEAF5A81EAD1140B70031E8E1E630D1C318E8119286E372EE23AB0D77DA\ -8215F0AD0ABBF0DF5088BB714507A83FDB10E0C5DDC83EBC27BB8E501BCC207B\ -D3113D31DC5D6580D2E11E5336C2AFE69BA1DDD0ED1D089705E0FC510889DD76\ -92753AEC9C06CFE5B274DD3FDF246B440943E52AAB04D0C4F92BE668FC34:\ -FB664243EA40C2E0DCF6AF9E7A1D38FA91310B373510CEBF9717654C9C45888D\ -467BF18D905521879C1B7C9E050C250D32BE37582873938A98B3D89E09FAAE52:\ -55FF333801629F078CA01FF9E481C288 - -ED64636F3E575D1ADD024A1CA62725E5BCD189CF03C12F54565D80ED1E2743C4\ -237A3FA1753B6F5913010AC39F7C8BC2EA5DDF5A697CD3E22B22359F0F7F2BCB\ -B696272A3532CA699A104FAD74D27C60F04B79E3946716AC8ABE22E712CAE051\ -615FAD7B14D949E2D0DE393709DC827DE1EEE146DB5ACE5A1DAD14C59F8678E0\ -A6BF913651DE3567FE1F9A5237924D9CEDFA823187A31846D6D721A1D5B087:\ -CA66251A56DF109C2A3F21D524FD20F0ED1F25CE8329E01D1CDB8A64B093F677\ -810CB176051ADC9A4CA8705E8C52F8B55512D847D3AE64E1D5A3544BFD145805\ -043CD9F8C40E629F15A0243C705753D22877BBB903E31345353D389B469D4A1A\ -B4A72322857D674C9C3EEDCE02DBC06286A865C21B8040E4CDFF02C91334EEAE\ -0C5A44626E5DB9D28581DEB82A24A5FD62FB84BE83A8105E89485C85E1C1F9:\ -6F46A21346AFC8D57630EAB85D3AEC58313E30F3436CFB5D75F1729D2CB8962C\ -8F014BE859E3CE31620A06A980D11161F0D40BC0103CB6984099D8FA37B3020F:\ -2BE2EB6FBB113FEF2C0169E1367A4D83 - -C58F2837B44C3166B99ED90BF974CDF99276D97D47BA88677749DF554ED8F19D\ -EE1D38030A98946A58B6C565336D4ABF64D01E6EFECB7962CF948A4473C82FAD\ -A17AF3448D2FECB51584BBD631C7AAD6C59BA6F94AB4F503E35B3D79ED78BCEA\ -E94C21F2AE92E5D67644C6101A74725E78E50230AA8C303983148EC7F2377C2E\ -32FCAB79E1E59E046AAB7B4E3DD382129F65DD0E02C597ED91A1EF3A4371D316:\ -2F89168484AEFD6F5BA42DC836006A4B5D63A9CAE45EA22A53855B00220CBD90\ -5F6131C8D7CB0BF5DECF9E26D8E305828067A63FDA8671D386E13D58397B61E9\ -426EA451E6956CF35858BE5745FA749D3C16D71C860C2C6B394F54CEEF818C02\ -306551232752BAB5732C63EE579837878ABA4D050BAA23CC414D47E42B6D3268\ -B7C14511016E6D1B077E5AEF75DE92864CECD399DDE104FA1AFEAF08DF4F0BC0:\ -DC519F4CC315A1A4CD3C2404FF61298C6F408E1D18C71724C8B338F108102E0F\ -BF2058D7BFE78418E4BDDCC8BB38BA7D04E4899E42C5605601BA5DD2BE0F8C6C:\ -CFB3AE17F5E805643192D1E3B3143E2D - -8015CB61C5F23AC0C425789F0671CB8A000B8C9207EFCC39D01B149F86EE42AA\ -DDBBE6EA8DFC0F0BAB556A6C1945E66C03697422FACD5DDDC7AF6F43733E611D\ -AC0EA877035FC63F7B7DB2F5E7FBA3EFA8FFE796EF8D3525BDEF4DA9BA8E65C7\ -22E3E191A47A29658FC8F993BE89B1AB16A221F4275A2879ADF5129E1CAA3C50\ -731A80A17A34EEC1485C80A753047FB0B844CF6870F68708C26941D87B3AAC6A\ -11:\ -BC79F30A2BBE68A1AFFDDCA05DD815A7624FC09BCA25A4F55BDAF47D9715C597\ -54A74E2DDAF1F8395AD054C444DBC68E63A56FF3677652B8505CD1EC285258F3\ -E6C3F5701D906648FE6A9DE9EAED5F82F2AF8B6D05DD08365226C278171810C3\ -57FCAB8647348226222E59607DEA2EECFE62F4A11037043254B06446251692B1\ -809E2F94F7CDE7B02AA543701D897B578491C57C771FCE60400EE7060F336BFB\ -B4:\ -63D001BB3BA9EF2152A84954436462B993507831BC16061F20FF35C15FDD2D24\ -1B7C1F8D7E9B742C0D5248CBFA10B41CD9B53150683090260733C4E0E6F999CC:\ -B6170D37CA1032D2C67B5CD14E26D641 - -175EA892388C6704E28E0059A99FC01FB61D5AC0DF1ECD94136C1AF18380E9B9\ -F4DE638CA8E5284026D10499EFCB6459569C4B47C56F3BE7F55D03A489612C37\ -047243A740664885C3D9FB303D28C6E1905154723F0AFDF9FE72BAE4C08705FA\ -27BF4F90C8025E4D29C3D25D134E82F725A0C9F3FE5B37B87B381C60FBF744AC\ -C2184A6FB1DE83EDDC8E8DB49E89FAB62575C1FDF543D77B5515BEEF9E9A81E0\ -D6BD:\ -A16A0AF17AE7F4067873699F837741904FEF70F705D65DA2C2561D34F965FACD\ -A065A7F0E969EC56FBE8AAF469BD251C0444F46DCD73F036034844E2F7D4D184\ -E9CBED269E2772CDFF9323CEA678A2070586CAED7589C7DC57FFD32C49870AED\ -155E3088FB41A2FD173C4A5F23D79553F524477BE40D90E08C81695359AA6B14\ -D9CEE4D25DAF286C917A011E5696F8A9737A5144CD959352660E5FA984D89836\ -30AA:\ -40342E898F45D16D7F8B217EA13479A6CE624E415B514B27D0DA3F2CB51A9EC5\ -D2D3E254DE7DC952F77262C6392A466846F4AFF35D5442F5B0189F58431018AB:\ -02E45B98DDD87A5508D0F9FB01BD4803 - -25BFCF57846C3E69DAED446B45DCD4CABBB8476EF543ECB297DBC5F62B6BF6B0\ -3D44E227F020C8BA5DBC9E986980A42A7172FBB0DDF66D82A85CEA529617292C\ -118FBDB112AA2B13BE6F924C5AED18CB0122990DCF9A358AF23DEEB00F8F3686\ -65AA1C293AC106A78AF14E887A29663CF30B7D7367675EE8C7B931F678B0AEA8\ -A024056B660223DEA8E7BC540C3AB5CAC2E287361C6F64B4CFE0B419E4D1E2BA\ -53D213:\ -95E762D269AD03E7547E9411B7D7042CF8C1A3268956B9FDB9914747D398E1A8\ -E03DE764725C649F085DF46E7273B8DBE4FE50762DABA4115873B7DA65D35528\ -92E4E2D8FDBEEBF43F6E5AA1D6BB8985A783BACFE32268EC1792E01476DA742C\ -8259631B724B46ED5370DE32D359B75FCD6F8DC0F73A7E5B225EC61EC354108B\ -8F6C5DA2483C87A5A5DE4F7FC7CD295980FF3603AF1AA397D093B7C417C4B7D8\ -55F476:\ -05B2C73EC44F52D1B6CCBF6DC5205FD0D99EA7E919AFA289DB75A16646F41132\ -A98E693119F3EFBB6EAA32D167F1C56A2DA68E4D60F1AEAD2277210E6386D62F:\ -EE237737F78FA7484451FF6CEAB84A45 - -5D53348746D8D90E5C128BA57EF254A2228DCE02E015ED46AEA8AB7894E14948\ -9D846AB9E51E635EAFD7B104250ACDCDA5C32D5642CA3EF5E75770B0B42BBDE5\ -72D8038559FE2D6F6DA2ADD3D70DBE0F810719ED036F39C14FA65ADDA926AA50\ -86416B1D8D4FC5F761186F8351928E2313D8C51312FF344D8D1A1EA98422031F\ -65F7228BE47993FDC3EE93C898B97C8675098F8A4133B03A5F80FC05AA1CF230\ -AFCE5187:\ -453B7BB1036114B66DD0845CA657F997BE111A445338866D8EDDC2D4086C555A\ -81F120E8E2F6021B7C3EF9340182818F6864617DBA787D9E94763BF63CCCEB54\ -9D49597EAD5D2EEA390E9EDE0B5AAF14AF95518B86816B8B094A8DBB6E9616A7\ -96282700988104EC43E2FCFD4616231F71FF917719EF7CD266F29E5E0D9ADFE7\ -805B1915D6B3E6030EAEC4E2D51A8EC2375E8D64A20011ED599927AFCE084A62\ -68084C7A:\ -2A2F0E7030F4937B0DE2DD365EB7F8E62943E3F44445949C9908ED1D9E78ADD2\ -4282D752283C8DA0467E0298C7477477ED577C1F07F786FA08A3C15FF01FA7CB:\ -1DFBEFE2C5E73C0F35AC39022F2F5250 - -46BD56FBB3471158ACD7309FF08839DFE84E8386479C5CFB608AF838C8E322A6\ -8B7404454802FD2B9378A3B2CCBE947C1C30D141543F497E64FF1A84A14542F7\ -FD8D485A6BE1C49C3F25BFC9160A8D3592C262B92A6A036D29107E0BCC3C34EA\ -496F666D21B2A9B6FE4E0CF0B1A9FB1D384C0240317CA825423B532C3D69A4B5\ -5BC1642F1A2947140EF51632E4365C72E816EDE42D46F43C4049041BB7E69B65\ -25C8868E74:\ -3D2630B3E1100113592D45E788D3012306964C12C52C61814A83C5BE7C087D9D\ -106ACA726E7D3B95415BE9E07EFFEBE6948E168A6D7D313C491EF3B5C6165F99\ -84AB50775F65D6CFEEAE54E92370EAAAE9A540F214A8945C9539ED2E15779D2B\ -F753BEC0517DCC81E43B0625068A2BA489E20D7EF38556648E24A701115B9C11\ -A7AE831E2B7F358B1D72437B8648E679300F992C601BD7FE95400BB06BE53D07\ -C3AB51824C:\ -3F39B0D2ABD3E6EE17A458F794F5CBAA553E21C78E649509D686DD64650ACE15\ -44C98E6F11797E158873D73E96465FCBFA09B96048810CB7CFB7947B0D7CC75F:\ -33B29834B357AD1A82D8D505F61C4216 - -74CE7A8FC17AB2513D69FE4F947B40B806A37BB615F6667BABFE9C160CFB0154\ -B729B64A9944129766832B8DF8A6BBE5A67AA7B47554BFDF521EB0A460CB249D\ -DAB0812664E51D6F995C9B158380AAE9D14E3851E1A96BF893A789CDDE35D164\ -9F3188DBBB214D220F67EEC6F4FB71361EA89E7F83773028D5D44D21EF543A74\ -53CA31C9E4EEE68CE8A26C702CDDC1F8D4D5567ADC00B3DBD814F2E7E98BDD9D\ -B7F74EEC6E28:\ -BC3A241DD09F3DD74328200E16FC3F0E84F26129EEC2C43C7CB2E541DA356E3B\ -6801F0F7510A02F2B6F9F8706C3C439D27130F75B956FE76D894C3FA42586DA3\ -7A906A50232DA7222E41E5F2818A52C24CDC2AC5F7C10F95423B8DC361381D27\ -6C96A6491ED1EA10629779C670C37CF7AFB8B6D5DAB445FAD022A4B2DB6DCA78\ -7BB69FC91AC7E1C3631C1A5F8BA1AB6543E443B8A7A61987F98154CB8525963E\ -FE174229C0B7:\ -EC692882EDB011616639B023AEB8CB3EBBB16C2AC13F70523869E2E213BE895C\ -513FE5EAD9A79D0B1FCB7BB6D5F2102E01D5378D8C29F20A604D5765120BE800:\ -BE49D1C557728CDA79D2D0BE20D49172 - -0470E50512A34C1DF99283CF4D9184E89948DB203520E275F5A522D2391B95C8\ -A5B85F9F2C0EA567DA078BDA69AF104E7E8493CC7AA620DF29B95415D52EA9E5\ -D94A3DDE13AAC17CC96639F0C5233D316DF656504EC796DB0E61AE8F694C6BBA\ -9E2A07A42F6A1B345E427BA441058BD004DD41C34C6387082442E6A52DC50C3B\ -A8172CFA293BD49F64EE4371DFB1EDDCF1ADA26111060EC107F83FBF80E8463F\ -B10B4450510B32:\ -C8DAD6A72DA01261E456D96FD701EA8BF9087E8759A529A2B8882EE275CA6997\ -CCC0ED7BF7F767960C003216AF788813E68CBD2F730BC223DF5B497016D19220\ -D4986C2FC8A1D24EDCE97332D3B7484143273615B47E8FDFE6B35D35905B9507\ -B59DCD18132895DCCC17694B2FDF23B770D342A49B3FCAE929450726A1E138BD\ -723CCCB53FD527F834F09C48AFE8B8BBAB5C35A74FFEC17DF55C5E2BDF3BE3B7\ -9C0339FA6E62DE:\ -287A4E69F4D9A76282BAE339E22B2638A46D94631D6432AC5A89F656405654BD\ -24662222BC177F58308FAFB5E764ADDC672AE1158602E814BD2B08F1FC3E36E7:\ -B9B12832D12D717517F258C1BE5690A2 - -7D03B4D4167C04FF8F41DD5976522F39A2338BF367BCBBC5682DFD0437070799\ -93F67571DCD86B4487FE88FFA978ECCFEAED8E7A549A5969F51D9B67926AE351\ -EA9DCB942F0D5295C577D0462496EE8E1F1205054AF3107ACEA7039B7396BF02\ -5307230F71B78C3BD5240A1A7AC5C6C92979A4BE78E709BCE228A4B59D72F134\ -8E8919896BFEAF6F8359F410D0FD1B5218E112A68884E1697C413166E70DF66A\ -3A40BD15894C877D:\ -F1434086EF7D7CB877B4C499A6081AFEE00274B2BF745EDB5567684A1E52420E\ -DDF7708999D62C34E6EA693CF5288978A87D5957A3759A26D527E8DF0DAC70F1\ -AC497F14ABAD4FD0E7ACC1BBB52560402DF9B314C99C938CAB4AEB85BF8BF399\ -62B0185673DED1F8AFF394C0A813A00FC8DD8092E27D1F71AF641F65DFFA069E\ -BD9D07FDFDCC96858182BC3EA94659FE63C8170839612BD836CBACB74635357A\ -5C75B30F8F68FED1:\ -605AB0EA23DA5AC1C0686368934E5A07D7B39D6621D6BB0062070FF61EFE1814\ -C64565999EAFFA72EDEF733D1CB2DDD36FA08B27F56EEADD164261B2B3EE559E:\ -50B23C029B17A5EF9E6E366A2051F1AD - -EDB1F511F0D4487A3E84915CBD97A0B40C0597A4F80CE26ECB19D0F75927AD01\ -C481901BFAF88B12C0830F34A546DB1EE5ABA985BCFA079CF70FEF61E826596C\ -65D4CF2E8ECBC2E9CBCFDB503C17DA79484EBD00AEB306F5F42B3CA0FEB8E6B7\ -79EA7DB842AC7E904C4DA16E199E09379F770CFB69B216AE8203B1733EC0EEE0\ -410C9D0B72B2C1206042A7F08DB2FABA2675C65D150B0E7A3884AD2C75AD8578\ -00F6E5B5348AD45D86:\ -048BDEA47D82862F3D18F81FFBAB7C67AB7E2DFCA8E0F7B46661D51050DB848C\ -0CC464092B496A9A448BEEDB4C07612D89E5274317064ACEF9E9F1DA36189E0A\ -08EB088629312850F6473208220142E126DEAB100E882FA7E989DD9039E73778\ -4C9E368B132D96EAF9D53DAF9D76E9ED44784FD47652FF640E1EA9141D723485\ -4239CAEC35BADA36CC900BB6CFC829ECAF563EE211BA534C47FD99C0A40CA405\ -8206063A961954156B:\ -9F67FD638AAC6B5B0E9A64F71447959C3ABA12A4B5008B82906E5659E15DC4EE\ -0903D42010BF1B3ED1B37D0DEE33C1A30234D70C63F62CBBD00048135160C920:\ -8E92FF08F492B43B205925F59340CE8C - -7FC1F05C2DC5317B325ED9B03F5B335BEE640D04B8AF3EF3F8016D97E4A20B43\ -171B1FB4F16EB06F58548B7D2B41F57B7EC1A0C681D431E436226B34ED0C6112\ -331C85080FFB631E949CC724E7B80E8DBEC711355520316A91D549F251384DCF\ -E367C568C70675C32D858E4199377487F20FD8C3EABF47A5978C5D25D317D6E6\ -DA721E732522F7FC98B8BD923E8B5262B52F4617EF5382741A3AEECED3D8CB80\ -6B81D578C932EB00D905:\ -B72A32BC2036AD390C2B72634479D9005B7CA3B91B5CAE0E7EAD8A7B8BAE28FB\ -837948F5170FF5BF10FA60B10F95EDD9FB4CB298DC4390534DC98DAB29FFCDD8\ -576A71E53BCD14D9E4D27E5E658A9D2AB193E26C9A0C2640FEF334DCEB24DF28\ -86EB253279FD196427AEB4859507A273AE728BC6FD095819DEBB7E4B26AB5EE0\ -7397EA1203BC36CCF46ED3C753E07548F6E0CE04E4082B21079EDA5D47AE1A9E\ -A0686866DB72A5D49901:\ -C9964226EF7B07ABAD30CA20D28D02D126A465DC8F99CB433CDAE7AFA7C97400\ -8556A34CA4AEFE35E5B23B047CE13EC038F0F381B8CFA1609B76682DF39B0C48:\ -8096E3A29B150D4D1086E72B6C68E677 - -074DEDF1EBF0CDF27B52AEAEB9192DE48A00B9F54046E49E253ED5670F9030B0\ -B6FC048DE0481079FD90FDD11C363DCD0FACD833A273520D81CFA1F11B5C07CB\ -3BF10F533AF2BF843CE0C6F98C7475CCA6BA790823E590D26E1934B5720A7F00\ -D9870FC73E05D4B1B80AEEB27F3CD2DC2AA7A2DCBEF69F40E348510C303BF0FD\ -99D2C06182642402203C327C86F18A432D0B1DD9D6A7778E8C9DC7DD5A178DA0\ -226EDF0A455F71124B3921:\ -AB1C8CFCB9459DBD044BCADBFC6ACDDFE6DBDB4F2E832A005B7E49576C1EB20C\ -37E340ECFC8D1131C6B2B5B80B398DC102EF780F9F75022B24F3E88E4B152FAF\ -49AF856535AD9C398EBC9C7DC3ECFA4C4A97A68069ACA3A6D7AC83B763F6B2F9\ -D3656EA4CCAF8F0BB3A37C19641741A4DF9F8898D1BB695234C53CF14BA554AF\ -E2857BE516DD22DBD106BBDF694A5F6C223AB1731BC12816F22FF985CB4914FC\ -0DCC3D59430220F1086022:\ -78C7366AB150CB962A22D34669DA30C58669A260642838BE5DA0732C49286623\ -24747426544369FC00FAE335C0A3110EE1E0B98B9F760897E7DC27341B69C6B1:\ -C4E3F365345CE9E167ECED4451F53D21 - -72E4138B27F098EA58B50569136A084DD9B1E10B4D2F5CC14823FBF5A9A64F0A\ -1E4D67E330811D7B3FDB0562B71CC70E31246434A9D4492C23860D2D3BD53FB0\ -C8B63ACCCDB999FCE782BD5C5862E81258870E823335F83AFB016F83365F14C0\ -D14E84EE89E69BD3D21923020B2D7BE8E0700F9F625DF4E5038781CCA5D1B16E\ -377017A06F7E1EB2E90C8AF51C6B0EA35600C49E57755363A60799624212AD15\ -70A799D2CEFDB6606E00BE7F:\ -446CCD9503D8DA3FC85A9A11AD73F70E29EC72612A518D30F62A3BEF3889CDB2\ -A468FC3629066D7AFE744C7FF2FB397DD150688C6EEFD828E5957517F9F1915C\ -672FE269E29A327C913B06240E2DAB6E73387E8DCC807F16B60BEEEA4DADF03F\ -837D5F40CC0BFAB2532F4D1980F0C2CEF54B4E417E36C79EE3AC2B7991151CA8\ -63989FDF8A1155DAF71A25C813F7068A66D4BA76CF0BF3BC4F1DDBCD8C2183D7\ -471905DAEB1A6B1D03CC50C2:\ -9C739944C94CD19E9AFB1B57257DA371857A1732CF22E4C043C8122F64A1DC17\ -BBD92B4E35E9CD9C666DCF634CE8F99217B8CA2A8EAEF50808923A642600F63F:\ -1B5FA8118184A055DB35491464856482 - -6450D405125780750A620B21E5F321C3135F0854035210D41D6097EC8D6400B5\ -43F588EB330AF977033DB532663B3EE83C3CE2249574494BBB6CC429EBD4B5B2\ -E498D94FEA58B860A0680BFE7034DC73DC74B595A6D5730666E8EF8140CF5CE4\ -EDB11A496EE6E84C3850FE132C36734A38DF8437A689AB87191C487D4C75002E\ -0D83301249A07DFB3A098364054C74FBBA7D875823B2A4BF7370466C1A6E0CAF\ -01918F3D6DB5E0FC923EE14310:\ -C608A2A5C9EE3324CF0F1508FDA3BC092D358CE21A3564E25AA3E455A9523BFE\ -7CCE8472CEED2CC94CC735544486551C665DAB777E5829D25266D339808386E5\ -7BA78EF5AB04EED9135ABFEF4AAA70661B48F6F0074405333DC19F936DF26E93\ -38A817FD55E2EF34071E01C0B96307962469EDA07974958D1570693D6254BC46\ -5511FEABB7D6223D45654BE5A3CE479E3BFF8E5EC9DE3931E894B039FA220B8D\ -E2DE3974479A7F621977CE7999:\ -6702A191E32F70E4912EDD6A68E411F88ED6967EF800E84915102899A3D096D3\ -A0CBC37A99A106B1B3C1C8AC946CF578AA638164264573085972517AB9F5AAC5:\ -C4A9288CE919D007E1823C446A04B33E - -EA3127AB21E2A44AF08AFCFAF6624A78080103314A48D59A309860D072B41511\ -FE993C67878E7566D2AE66D326D8F53B45DD7019744087D2E1853DBFE006281D\ -5B780D9747F0BBD9EE7A4FA2FA72C4F03B01CFDAFA3EC9A4777AF4127BB01A41\ -C12F851D1077135353EE80BDAEE96FE3C183271BD38A2FD0C6EBB210AF1C99E0\ -3E45B1417D18A3F8AD4BDF8BA03A707B0566121EEEC5C10B319B732B9B2421EB\ -6839F9ECF897478D28F4F6A79C79:\ -F7DDD97DAD526A8A8F75E9DD438791F088A6961FAF8E85FE9CB4B29E95E0F095\ -06E38258121B260874849C51E8939E2E630662B28EBBC379C56103882EAEC5FC\ -FA957B883CE9FE51A4AD930A5530A423CF8130989678D74E6CD0AC0F8E3CE67C\ -F639D56ACB0CA7A865C434A754EE663E3024E0565A3211DCDB5771A046670730\ -D2523D9B1FC39171515EAD97FC886B4C6D46C7E3DDB689E3BE470A21A80D0DF6\ -EF9D79555E1A877F6247EDB6F295:\ -2E21BD2FCD60D211F89A4FBDCBFB162C3B95F364B7F7FD7590F32C457EBAF1CE\ -CCE5B1AB9EB7A1BDFE705DBE8B5EF26AA3DEF4935D05B7CA35AFA55BC28F3C24:\ -82ADA377171705CBAD75FCB8F0E65D35 - -E8B2535D6A37682648469906AC881413CBA7D49BE0FC6F74EAE685ACE9677119\ -9941ED52DE67F69FBA34DB74D61D75063C4863C16310457164CB881ACC1CC566\ -71EEA602191513416F7B7C3072816EF31FEF7EAF2F7E82C61DE9A5940B94AFBA\ -33838D138F367F5C7B136370BCCE4C760D6E24BDB25B43AB4F3C3EA9683C9A9E\ -978891139924200437551A0F10F15240816DA6B222E309B80C6A4F5E3F61ECD5\ -0B36D4FB99221DB0302C153427AA51:\ -61265D8C6FCECD326A4F76A6768656523FB32068C5BE1FDA44F14C225EA50C7B\ -2180C470832CF8E0B05F698A700B7DBE93C79450DF3F69E2575AA6BE5A379258\ -50951D30AC621BBCCD898CB05E9860F5A05F23C3685C84470B7442BE7E6DF0C1\ -13E9D2A81C7E205491407AFF681FC57E3E03F6B865266938F943BBD4598554CB\ -5447BB577090B5551893FE99B5CBAAC814624A993041ECF5A451BD6A9C33C95B\ -FBF101C08190FA7D8106AA03B8ACE1:\ -C66D330C5436E86F4B16270736CB78241C201241EDC7EB5913716496A42BA4EB\ -E270AED737CFFA5F2C8CBBF9875DCEA4169284A412CF62896CF388013E36C79B:\ -800BFB1F8F673ABAE7178E94185F209C - -440AF99105B73ACA853DE9D61FBC738D5A9C7906B2E78C2381853E84F6BEBB26\ -C0DB3507C9FDC0465177A57C0161E90BA98F274EAB79116D1391822E367D59ED\ -447FF0D55A6A5FAC2DA9FD31F1C5E14029E0600600BE2D0BC0B1B02CE6D21624\ -09B44606CCDE909C2215BF46C9FC5BDD089B3238FFD522AC86B51389FC327870\ -471512F08D4911B80B521A6EE735F7EEDEECEBDFAA6E68C12598A36CE0EA2C36\ -853164DAF6545786B05E471E9E1E44C7:\ -F4E9C2DDCD58BFA0D71898E731DB623F9D4947B11D02563D8943803A4774D77F\ -A08F021AE17806CCB1923857A4D323C8CFBE5DEB36F66164EB66D07C5D3ECA9D\ -0860C3E89B7E1BEF59D976E4C0D90CD535EAFB00EDDEE7C393F3DFE5A79FF2BC\ -7B12879F4015A456FE416AE1CA62816856E50E79A760457254E3729D65784CAE\ -9623E97D5DC609B95E43497A59EAEBEA2F6AC83647935101CB791517A2171766\ -D4FEDA925505744A96BAF0527FD3D774:\ -C7C3824E1B8364D2DB2DC019957BB5E5CB65099A2C91730029DB0F33FAD5A989\ -CCF80612685563C9F4C8F5D1075B2D54DB58679A7B0DAE823F2E2170846374E4:\ -A46A9D0618A4666318C58CCBD42F6EC6 - -BEA38F61B4F285DBC6559D06B81E1F9401386F1BD0C96943B5C251012B648705\ -0ED43BE77FC95613449DAC4530E33A6DCC1D4AF1DFDEE7066533EDDF5B0F5181\ -AF0394FC640D3CEF6A6F2298EB8F48FF237105453693DCD960E3283602E1ABAA\ -64EB9523B53CBC8AEA28C09A4B55B9EEC4575D3F9F0998799F10FDE67C4B2921\ -2137627C988DA9D0878E9C0265F85E60E9946D3EAB9A973132506ACA6F57CD1A\ -AD563711D169CEE234B4995EB0BCCF065F:\ -242212A8F250C8770CA394EAF117FBF3F3581C86D23C00D8399638D9714D1428\ -5389D22230A2242902E8F9C654751857B1B1541C78DD9B3B2B2631FFD97DC179\ -A4DE3CFD8F2279C94ED1F8856016FC735606CFF8321494302DE8AAE0F0D7557D\ -011BB10CB781F8B101732E3BEC2822A20007C4856FD83017C562731782503BCB\ -9CAB5A393D892529192BDD409CC937FFAE058613080F7323413B911DCE832871\ -71B2401A9B34E6A1244E48B810623FA3A0:\ -2D021A692A6F036D2C373D80ECE5D2A3B73B2D66FAFB5B0A6B587C098FA321F0\ -7BD02F3F30584832093F0DC7A4073B55597F5C8F450360A1CC9CC6EE39788B6D:\ -EFB93BA156AEBFBD1D73ED80B110B52C - -91BFA5CBFD3696A51BEB86EA4AF4751E5D9F240CA3F45B247EE805BB380D264C\ -B350C7B72075930F0C3163F329D3EC42D046BB8713ED9522BD71D11F51117E61\ -670B6FE73C7D960C21DC63D144E7B790B67DD5690082CAE7750D59CF630A9C90\ -85BEC93DF7F7A14BD5A46E4F09E9BF73045D1BCA8BA676C8DE8C3E5148CE20DE\ -39FE4831A7C1FFA69CF6D7B2EE1413B5B8902316358435458BF7561CD7508CEF\ -9DEF25EA833491590419EAE766A90271C313:\ -F5D4B54EEA1F2524082BCB8284B588633CFC26D565B68AC2B5394E17DEC065D6\ -7EAC580F8E88720D470331B09D176559C032CB06A6A3C1D408B2ABFBB3C5C50C\ -E4FB2C142A62A63EE12C9F83B184E273520C91C77F9A4963F692DF477E920837\ -0C77E0C7B805271D08595C6A7CC080FE7767776D0614E2DCA49763783384F2D4\ -E70BB29C32140F04B9EFE8E7323E7441BBEC9262A9E3726BF0D76F6B3163B7E5\ -2C593E4560195465F4B39063F64C50FE782A:\ -4450F0026B43D66B3A815B3FD0A0A2DF6D1D980C08F0D8CA20B05C57A8291ED7\ -19898A7AE598B030FC166A4987F9E3600E45A6433CACB584DE54A15CED22DAAB:\ -EE277CD358D228D0F1A17638A3B5CB15 - -C7FAFD52C448D1B4268F834BC1CDECC5DA0DEAE4C30D470DFF9C7927A1A9E672\ -D3A7B97F2478C41DED153ACA0F477F6567C6A645AAD73EE50A01532F2D372124\ -B128FB75AFACC8E9A750728440220ED567B25E53466A6544C94B843FBB7C65F1\ -D8CAA66DDC8C6F26D61EC241D852381D2CAD9E0BA2D819A465B99C67BA275EB7\ -3A23C273E9FAD16C28629D89C4D8DE889A79BD4313DAE3BA6821C12188C2179F\ -087231E5281761E83115F55F6B60D96E2690CA:\ -94157A810F5B2EBA661046DD944EA27D9323F92818D8DC50DC94FD4F49C5C756\ -68FE433675A949128543CE5C3F40984C2A3A2171B0149751A9A577440A49D014\ -E2D6EA21210C19117A6C82997859C9B0EF56FD213B29ABC4B19D4A7E3D5228C8\ -AC14BD2110C6C435E0EFCE7551EF8CFD12D1B3660179B3F06D29908F2960E2E1\ -EAB8E9206B302D13CDD6ED99F6DA45365A74E478231ADD6AD026DBFCD9BCCC20\ -C8C95F92602D2AAF6DC42762C9A4CA834064CD:\ -5E5A8C394CE4BAFC5105AF3C3261C627ACC1FE43C0B237FD9806EACD0AB5079E\ -5EA69CB0D7D9DCA748E857D08AAC6BB08E64E39A9C0B89360FC9A006561BFF07:\ -3F8315ED1166CFC4C949D80C4C877B45 - -AE1AC26A91DFF93B4C079BD4E5E67AD33006172B9E01F1CD255B1300B09FAF6D\ -B44E3840986DB22E153B53CC3413B4BB01B945984B45059CF438AE11A6A54788\ -AF9B5FE3CB8F4C8A3C57E0E819F99225C2D8F4AD6263AD5A72F67A7B3551935F\ -F4BBA49841E92DF509BB2F34E67DA9C0B80DE3B0C3840DAF5C285758D0431875\ -AE25F6BFA24C957AE40B10972B966FCAAE32ABE91F9EBBF738F5D677A4CCA8A9\ -B1C420986098C9D0B48129BE01EA445EC2533943:\ -2876F104219955D951AC2320D2010877DC9C4202A38D6A9087C711A77CE84EBD\ -EA9719854D3B784343BE2A77D3D154879027F122FB41B8501AB4069BD1E13B59\ -03A9AFE82878FA8CC61048CEFC5103FE3BCD0C76A0E854646110BA35239E5C6C\ -34A45BC03F651131B831E119EBF846460D1F2E5754AF08AC9571A3D6FBB2C82B\ -5BDEA8A9A3C2FB9DEB4F8387595B5D6A4BD1A7122CD5CF058A80AA912B191FA1\ -0CC0CE6B69B6A7A2A8E7630F984E313F82D3F8E0:\ -233AF5A53B84497860C3A625F98B832F80347C03D53AB377CEDE75F9CBD8AEE5\ -7377A5E62E7C03F5D454B0337518AA1C8661CD9C96973A6F535232FE57AF0CE0:\ -1477D308F9F6F17E3840B5E23541D1DD - -407154D63304014D9F5CB425F13C5FAFEBBCE80918AD24D749E696330E3DB8D0\ -7B0D04ADFD67913BECC7B8843B0AD8ECA1EE7246A4811DD27E15B42776883675\ -53083DEDCBE550132A3CC16A1D088DCD5A8479EEDF25EB3C551569E73107F7CF\ -85E4F151877F22A85EB430FC0BC31EF2F06302CBD8B77B7DD724C9E449A907FE\ -5703551B6D4CE0042D53FF94CA7C7E747817BE50380E1785F075A5A6A702E6B6\ -B1682CC34FA475452358BFFD614DD8DA37EE7031AD:\ -03BD1AC569325096F5EEF5D3114FBFA770E9EB84B5A2CE314F81595152474E59\ -F1C235C0BD3309CB720D6707B90E2170719A525BD69A2E9D0409BA49019B435F\ -D46F42667F6D97A32A094C5AF984FAE19BE6909718099F98D8B01F937AF0FDD4\ -11FE19048B7F703EFEB4B5A51B0B023150B0CDD8B6B0B91DEF1FDF526FC8BF3F\ -B3BBE41DE16803935E45FCE9AC3E77F9980AB2031F40111DF44D8B4D8E8A9B09\ -18F84D8DB8F370B739A55E45F48C41666C6EB71F37:\ -B4003CDB89D9B78953A5F9CE584698B7F60D48F35A528AB607E7B3374EC8F358\ -9DEB32877E6AB60B7214E11A448B82E1C88ABE8137E4085DAC2F1C80B58458F5:\ -E37419CD5E7296D0A960BC833592B15D - -EBA6C6B0E9A3754972CFBDEF03046F87722C8CEF5712B10AEF2EEAD6AB01C92A\ -0074F2B37555E30D5FFD206BD1D85A810D26370D66494CA4DB339019A70F330B\ -228E06C310BE5B0A108ED70C71C7471ABB61A042E0014B41059FF86C2A2D7AB0\ -A5E978F9E1B1A0431B30BB27D1043BCB69810806D9558635B52B26DD915D9C99\ -0540DF2C5C6DD2FDF79652F509EB7CB22E9FE6BEFF80710EC013B7914DCBCA78\ -256DEA744BC6BF23351B8831E3E65D24F365C8276A68:\ -6D909A2AF702E986561209B48D684FEB8E8F182B196CC021EAF6C876874813F1\ -4C9755C4BF7E7D30A8CCDB76707B8D6AE236D974493EF2C0131E70E73AFD8112\ -55F319CDFD6B3E0C054F8340E18504EC94B42C6BA48927C80E8182A9E5D9E3F4\ -0822C71EEC43D209DDA15BBF4F7C2E880AC5044A41CCA11F52DF8E24671774A2\ -2A285E7915F063AF189CB90EF0845EE1B0C6C04E636CF0F6E85F0875E858BC4D\ -6810DCAA9236AE75EF83296063E7D4350F5C54EE694C:\ -19E6976CDA3657FD7B341388DE6EB2FE4CAD36489B55C26FEE2E854FA5803199\ -42C3D6EC2D7B8E998716FAA60539B5B08FB9B35105FF9D304641131844420711:\ -896A1A4A3F825C802B88D5A5DB5BFEF9 - -CA50890D0642170FB9EBE4C91598F52E43F62F4D9F3D65A26500D77B0DE07A19\ -D5856E746158C68702DC10C252C746A37A995DECA63B2C84F946117B45F49698\ -F355A110DAAD751EC2460C67DCE33A38E759D106B88374A6980FD3E06B4C5AAD\ -694900B11D43D2EA9CDB19561048471D480C3B62E8CC6365D1EDC65561A68EEB\ -01FD4394ED61F3E6C9283072B95629B9529DF7E6F2D98D35B49A7F5AA8564E37\ -66B25DC64383FC631404E05B94B0D39365CE1D44DD8F26:\ -A521CCD850FCA9E3A079127F4D4772170F517711574E9EE0283D5A6B329AC5DC\ -1D61971888B5A246BF223006CD8BF1826F6C9209EA7322F0F6EE33053EBD1AF6\ -97E4C5A30E05B4BF521086A91DD12846D2713CC8BE767B28E24D2D72C1F6E2A7\ -7A153285684D94EDAFB68B3855719FF00E3D393BC72CDDF8931AB96DB1E2BE2C\ -0AD0316D15F5EDA96DB35E1F4C0B1165047DF84E0B53A567CBEA98612F1747D1\ -6A6E170CCAC0906A5BF669A58B08CD3E62229A3C0064AB:\ -1C1911B5B6D11BA6D1B1D2B49DBA15CEB7102C2F2DED6A8FB6BE6E9F78AE31F9\ -70F080072B1E17ADECFAB5DA1433D72B9E0D12555929272AFFEBCD9D42857342:\ -5B6CF655605C126743C49F70A7686CE5 - -C06142F18A1AB96411B2CDE62F6D1815F0590F4E0DB928CE610DA0C2120B6151\ -8EEB6BDAD0C0CDCEADA0DBC8CBF280E8DB1C7CA40FD32436CCF700DC2A60E4E9\ -9F17E645E5B83AC795C7F2630EE22F2391640C67CC55183150CBE6E1515CDD4D\ -FD963C77BD4B076448A70BAA952927AA4A3160BE5AE41168D81941BFE19101BD\ -BEE24218B024D9A4E70FC204A1248F71B79E7D3B6935E2015A69FC09B291303E\ -4DA7E29C719644CF096DFAE7E86A1363F287503193D6596C:\ -8038EA8B31C83AE5344790734CBC6BC39F924C440E6B8BE4A44DD58D0EAA7BFA\ -DC283A6E802A05268CD3E52963AFB170B487BCD6C894F27655985CFD830E403B\ -818B6A7834D5C58997A0431F6F83C95981EDF1801F6CDAADC06E1DFF45CEE491\ -7BB58D1771FACA8B67EEAB2CD720E17B2C3D604A14850B18808B326833937B9C\ -A167C9FC35E5445C733E50FB2922F74C7132E54F9FF0ACEE973DCC3FC7AAEF66\ -2D2AFDA197112B9537A88D8A91298B552F4974837FDFB66D:\ -8EEAF603495BE33935430A0DB5E17D4BEA3E203DC90C54A6EBFAC5280EF4378A\ -FA0B42545FEB5FA38C40CAC5FFD6CAFF2AF7BC59F314AEA5B036D35E34F8123A:\ -60CA599121E8D4581F53B105A4C84B84 - -A2A6833D67884163B1BC4ACE349A201B0A6FBA76E30A6739DF79B399A54921B5\ -29BAB2654F29416E0FC55C8AE1B5B4A5083A87CA787F64B66DA424E879A5AADB\ -3882696FB9A03205AD2CFA80EEE2267C5023773E6E7A53E00ACBEFEADC9998CD\ -8D969D468D625C93FF57E5CBF00EA4AADAE1B8043F09F89AF2A9A478AECF162F\ -978139BB65AA73EE98D6DAD0C9D408760996E06BCD35147D89D87349BFF281E3\ -57684991BFCAD240D52111D9938E7BAA6D7B715ABE3F0EC47E:\ -FBA3835619C4E134A726891D95D664968AD65D4CA0C29CBFFB9B215D34D231A6\ -3BBAB20360BDE92FD88BABA8F0C97965DFA8E22A82685648CB77076C8111ECF5\ -BE98A75D060227305680F4DC7EBCD1708A1656A71B84014C7EC4EFA4F15A920D\ -3DD98A28898B7A9C7502AD78D45C2456EDDA2E8DFB1CAC3D4F0AF4A9912A6AC0\ -BF2619D82F9486FC8EDED6ADFA98BCA157E2D2C7ED9A4A342EBBA6536F079883\ -59AC27C29ED114C2BBDD695A8B64B3371C15A38DA9269869C3:\ -D800DF0DE1C35D66FF664BD96A411073B91CB9DDB69066CA1526A7AC75C1B115\ -E113B676FC647D18C393498D5ECCAF0DE6C2E47E40850921B8573CA6E8EC729E:\ -E745D3E0BC6FA789934944B88DC1F119 - -48982F039051E4BDE96D9D1344606A5ADD0CE02909632CABE2086FE832067CF9\ -A399BC333FE6CC7EC4F202D88D74C8E0AE52796FE1D32F546BD8B491607FBF0E\ -F6522DA1F261DADD337C9A15D29C6DB12B90035629FF4CE69C3AD8E8248142DD\ -F7BB1413132419C67B4835DCF6A0628A4AC6ABBD888C2C74A1F6EA4B57151387\ -33850CC7D5BF7F801AA8DC3D8ED1CBCFCC0ECDA1846533BAE13B6D20092F04B2\ -B2CB136CF968EAE4C4D8CBA1D53C8A6542E25E386B89BDA3ED42:\ -0B7DE8410E19DC8E15E7062A3D3D5C00AFF28173C073A72E989DF723505CF53D\ -E68D4B6A19D1F1B76B729D65DA274DAC8F7308E8EE7174DB85581D5BAB09A5BB\ -67809F99D07677F63FDEE0892193AD4C966DF08386B75FF819CC8AFFE0A02B22\ -26C04E5282D3998D2F7ED89B65F8D18667D3E4E17FA3F81E101836F8E696B987\ -FE91B81085454A27DB7524F792F1C07C7D2F1AD7BA06E8F60D99ED869723B69C\ -1A681B8EE00AAAA4B65E2A8AB724FEA98F30C8C88979FDDC0FF5:\ -0F5DFCBC3C722B1A770EF88883D997B9F1BF3D146E68345A0E28F8BE98199696\ -BD4A6FAE972E2DA9A60897F5DBA6721B276E3255777892D3D8DF8BA1914170E5:\ -FAB5694142CA9BB313090798147371FD - -7CF9CCE24D50A388C3B5B171F6508FA61E025A8504D55B8624C7CCCE3E2CA912\ -5247CF690B2BF388C36B5386979BD10E142B889AFD9A531EB16D88BF767FD083\ -7F7D71993498968F64820FBCFB28FCA13D6E5C1ED4AC4DA0ED1F6AB74E1308B4\ -7038DCD39A8DA33F15377E857D53429328D222F2D0325F20DC1CEFC3DF4E3F7E\ -456BF5C05897C70E33AAA4A918B44F2B02FF0065C845A3742354A25F492C651E\ -65BD2ADA8298FB85927E334C15DA3B51AEBA97F5CD332E32A26B79:\ -E55D0392687D295CF444AC734E7035DF1F99A679203810E0097CECC64E3A400D\ -0FBDEC877F8E8FE8E4160BAE15CB209B7EFC66406541424FA595C5E500F49EBC\ -C98941AC4B9D8CC41547252134177B8884A8D885210E886B2C942BFC9E54A3F3\ -FCBA4BCFF943AA27C565A0C9C3764281B847DEE305981608FC59FB6C596BCCC4\ -A99D4F872DEBA4DB4AB196635E7DFF57132691816D8CC936F13125444DDDCEF1\ -17679461BE1D3E3FD4923125CD2485BAE422EBA40C163C375B4C43:\ -01AB5EB282CABD0531560F5F5EE246FA9F90E26CB83029580BA49A24C9EE66BA\ -BA0305B536B2553E2F18B72CF0D2C94FB27216D1B570B14EE1B2317C2EEFBB35:\ -60CB3EFBFF62048EA13C465C0AA733DA - -2F99F7174171E5CF558758FE4A13C250F26036F4195A487DDE9518BB0774D500\ -9FE35359D1C15350A167C18B0888BB1BB776951C149C0848D973993375031D64\ -601DD0896E50097EE68C4D648B75C587E57B7B8BE8D8C02F44AFCECD91101C97\ -2A2C151D62FD715A53A732873F6969051AA80DB097EAC069F2CBF8454C01E0E0\ -4D996757DEBCEA1C4960F73DA472DC07B6B72F602B368C17DE8D83705DE1C948\ -B5281AC2FBF147BB12F3F0699BDDD873C046152F4450864F99B82F4F:\ -77A1EE11A9AE1BA68F5826591BC9C8D3690FBD7B2D997236368DCC7CF0C4500E\ -B1EEB71F1AD354EEA126F3DEE002268878F4738F6F4468D237911F5840E6DD4C\ -00DA1F2724E9BD4138ADCB9BF588BA8CE53617C8C08609D24716C543CF519AB1\ -446D05F3568CAE99685A833526C4B78ED55F4EE556F5844A17E020AF7F4B5351\ -AB65668BE7D1E46CA492A0C2CE46CA6EF302417DEA2D342CF12B390CB2753B8B\ -E4DC233483DD57570EDD36F2C3CC42425F3CE84D8A26CBF351A867AE:\ -E0E260BF128B586F8E49F7511E6ED886655BE3DACB5F6047110CD77EAA2BE2B7\ -82D53734407AB5250E276AD6721F13C3BF21B3EA2BF56F6A6ED13ED4AFF473DF:\ -18D62303ED5F3DD7825145EC928BBD5D - -BE6683241F0A0D16EE28870D7B9B53EAE2CE81428282DB940FA25F5A97156408\ -AAF0B9CC17F4008BFCDD15ED3605040BDD9183D41C660937E7B37AF283C6AD68\ -4EC3F3476E1772EAEADEAA68599323CEE4E8CB9238ECA5F1AEF151064CD0904F\ -5CDA1A9B55DC99553EF0227F916F957A1DB95BBAB9C8963327810F4B15D600A9\ -D8B49A0F12769D294FBB233A4CF7EF85F08631E144A247786271BBA0A07A5004\ -732DF666C8554960FF11E3AFFA060016224D3EBCEDF1E653C6B98F6594:\ -7E928D0727144C562E14A0629E7B7C9BF59B81951E30612962EA2EFF48CC1778\ -F4FE9F494703EE48545BEAB021E22037D0DACD9C95E51384DAF38EF63E4F741F\ -D8BB9650648100ED0467464281569A90FA7DAAB4930F0A59201CCD80947F73BB\ -EC3D0CB42226BF3D4A0B2741B4CB6E6662B44F8183EA8B058604499D4EE86C0C\ -E7E92736F11E5F57B03DE4D73D7E4D635E5702946790B5F9290B77F14892204E\ -A8709DF528958353BBE8C7C8B048C61D6910E5838CA39E3CF854EFA67C:\ -0854EAFD42578C7200803C7BB75BF68887BE1DA526D8E9A936B5A4602EB94B3A\ -353DAC9F4891DEB8A36CA2AD870A909CDF71D9A29FBF23BB73F556A7D0787421:\ -C38A6EA283B7B63C5E3D5E0554134C62 - -72201853E4271966921887B74A3FAA2A7D69900E334BB552C56045A608788954\ -CB434B597D7A3A90B0E4F380631FC39B6B97F3B716305107EAA08D7C9B9FFFFD\ -9966E873E62AFD3333F7B3AB66BDA1B7088E38C0C0E595F03193434D6A503B08\ -3F6B5939BA1FFBED2CFE98D86C2499C2FB0A412BB623E7BC0C962D57940E84A5\ -CE5135245DD6D23C0EA7C32D2BFCE1B2368597AA73CFF806C477D14391D12247\ -AE6FA1D2517DDDDFE110A0C33234089482434E5D4480789108A565233A34:\ -C5E2845B7306C15C425127AD6FDD198BF09A9706BE52EB9F06EAEFAE2426E3A6\ -0DB79DF0B4A859BCC741D3A21596EE325E0AC904B7BCA67C2855A8022EC0C977\ -46A18CDA481033E80B462FF238F2A3BF1ACDA1A8AD89B1C7E3DBE100E9BE3044\ -AB7E2E4264C0C5244F597506B9EBF74E93E1A051C9166E4E833E7D1E8677224F\ -535A62121DE0235C3D5DDD2DCEA45C7FF0C640E33A5033A619B416CF085DBDF8\ -661B3E3AA14EF0C81C62DC9B7E7FB0B475874490274CC958051F49045053:\ -BA7F55327FA917BDD6F5A9678F69E90E4AC4B52B14D75263653DA305DE0D2FBD\ -968696418F95F5BD8000BDC39D86B8F7C13E982AE4D5B0C2A698B1882FB8479D:\ -1844F3A80ABC2D2DE330292CF921379A - -10AAD0F7DE6F8D658AFF5CC5162A71A0AD67250B7E2E6332826B7BA8928B1910\ -B6A6E238E8AA85925FA7D50F9E725AD9192D895DC4F6960CAD0E9D79A90C6744\ -A70DAD60D96B8C933925209698550E4B93A17247C601444F4BAAFDDD63414A04\ -3146C21BA6F09ECE597DE730922657BC0E01148911E7591547A33A111C4B7BB4\ -AC2A803B4B2CABAF98E60440E635FDFA8386A94D77AB9989DC2270DB9335C26B\ -D7692FF3674A8F973747AF449A9BC3CBF41D999CA4F7B0D3FAE10B2EF4977A:\ -CE081752A44548135672520C5B3C49812F359C4EB5CFD2D9C85377AB7CABF248\ -F514AD88F6C86B3312CFABDBF9B94B5E07D5E711B0B355B0F1565C639E8DE246\ -505AC67C4EFF42C0F3C52FECAD6D9556C074B9321C8677099AC5B9B97BD03A2D\ -F231B45EEBAE2443343E62675D3FF7FB66520C07DAB62C498F35DC229E0F8A9E\ -DFBCFDFEC844D7D45FE23ACFB70D7B592E8DA050BC5390A669FB7B0D31B8C968\ -89A50D9365771DA0B7C738E321596CD706062FDFCBDC1C8EBE1543DE8C1339:\ -00425181802B691CE6D1AADE6B9195CBADDF8443D60C9515920ECA0763790430\ -2C85382CCA53F6803F5B02DF03AEAA36E38848A2001B4FDAF706FFE4374C6D3F:\ -F3732079EE37D05203170631E634D7CA - -836FA61AF56B019F692DE12395BFFE9E1FE2D9469DD6969AE32ABBD024F8E959\ -EFAF934FE1E80FCF17264C950E03CDF1B9F654373F8D454064D8CBE61E596D16\ -1743966F42B9FBC9A9948DB37CB770476A7FE5655739EF1A894C17D9B6526D7B\ -E8EF1EC19EA175D8EB478650D71FA824BB31CE6E5B1F96778A4E2EE11FD555ED\ -843E7A95E284F231D566ECAB8AE21A0C30D9B89443F96960F2792B3611CD59B4\ -1F8F884A3B7A93B769300AE037D17FD1762A71A315A41AE2F5DFCDC9D3A99760:\ -685D83824AE8A5607A5AB864E215BD6355F29A81E683852BAF9994D2148E0D9E\ -8E8DD8CEE9439FB265C8F07C68C34304FE15EAF392805769ACBE78AFB1CE56CC\ -07403FE4C8166D7276B22311437CF06780688FE697E8C93360E8C848C21CB33B\ -F655CE1B9D68EE9FCCD81CFE926981D969E35869C65DCD57A81DC543886A774A\ -3AD9B1845B95DA3A0F5975120C72CD7F67BC5F268546AED3D5AD471DF26ABB46\ -4BE4A614039B85CB926D947208F1754CF652A466F09305C6DBF20DC4A05907AE:\ -99B1AD739FB6E0B0541404A43C619A50224C98758CA12739E6781930020A58E4\ -F2F6B0E6D1FF0829BC67273B92E61A03DF9973EAEEA178D2914F0E85CED2D0BA:\ -BC2F2357CA8BD1AAA4E5B5E474A4AD8B - -FFB0CA3E6521204EBF83B9532306778EEA543B61A62EBA98658A37C3AAB970EA\ -888703A80C98584BF8C5DAEC130C216426BD46AC6D27664F5F3A39795D029B74\ -8BF4D3F9677E37362854235097827EC220D016E051BC41FFD90A8FCEEB13005B\ -A2700F73703B1E45ECC50904660FDB9567C9BCFFC4EE9B2C17E6DDE2663D6CE9\ -97EE01CD7B0A0EEDD02E6E447A090106B0E3825914FFBC0186712EA4A1B6B40C\ -A3116ADB0A3671B0574DDAC03EBE119D09A1A9068947251A6607EA410FF7768B\ -BE:\ -D8041389DA35C6C12AB5CAA407D588EDF56E27556F8A56BA0FC046EFCD590CDD\ -8122408AEF8C93EBCEA7D805B03A9459A34D536287DCB176472AC0B266BCC08A\ -28747E5A3E9E436BC3B10022144621C813DB89BCB08314368EA480A469EA19B0\ -C7A633E7E09B4F265CFF66E4BB4C14642BC02CA540B83A11B76C593B1D089D11\ -8BE75C289D41BF98466D22BB7012E8164B88BE7A4C0F19F21734A4B73E7E1114\ -55AD6F05750D91486DDC8FDFFD4923AFF703A7769349A6F77A408428B7867291\ -0A:\ -0F9359119866CC79545EB83B4532B7F002AC00BFADD8ED35BB96A27430609D74\ -1BE214E10A6CE667E177732CCF5757E793CF0C6BD54C87FDD7EDBCCD74F3E47A:\ -C77842E2421FC96B28CA883E7E0ECEB5 - -F4D74CF1120BB7D9ADC3F92D0B08610060E2ECF6CE7DCD85B2D4C0413735FF3B\ -D8EFAD39575F6A7477D3A7DE3DF6216A3B9417240BB7FF7B7A32B7A1AC0E3F6D\ -97B91E9BF884FD685D5E4ABA081A7D3DA1AE7D20089DF77D72181A2C7E3500EF\ -226708AECEF8E1AC2B60CB2690F5B6FD2318AC4AF94432947D87C911FED3B5EF\ -62F5AE5170FA4507DA2F063FA76EFF0F4E158C5F3537E7192304EB1E40789110\ -C10535BEE49397238A27410F6C10C592CB89EA7165C7D5D43081D07D53A74144\ -4950:\ -C6F36FE628D05D8037744D1B567DE8FE7AD85C97E036B04D3B27573E31D8E1E6\ -C6E126540895394655F8F01010B4847E28DF5C66AF7F4D50624776F4CE08B142\ -0FC95A6D7637E696AAAD1BE671F21E961055BB2CAA38EA3BCA2BF0515C0F7F6D\ -4EFADA92ACDA1414E370FE8BDD4D1C26520B11256152640189AE5B1374462E53\ -1B321EC624A3E254B6D01301B7C25408F424183330E59E238220283BD12B5354\ -4439C4EC1870FE892B1426B772B32C2F1022BB5ECE2AA37E9E97D7BF4BE1F15E\ -7740:\ -938F609B68DFD173878D66849BD764F736F4C34EAA0244B75C2C37AC2ABA8772\ -6C00303EC3843D8518CF7172C3CB4D186249522BED23C53090CBDBC997C28A2A:\ -C8C31D8874F3EA57EF15236BF87E919E - -EB5535E6E264DF02DFF862853713A89021CE45358D74D95204D6D3D788C07539\ -F28EEBAFEAB7023D81A40443D8C1437B6645DA895244266C4F6FBECDEA6EF08D\ -796AB42D70A6D076872C9541A81E3D518F2750B8B47C896688B981F1AA310F16\ -B0E85FE1E9AD3D8437F7FD57866FF1A934BB7BBE828BBCED3DD18EA9B9AF10D5\ -2CE35150A846F6AFAA8B72050E3F2639E61A26C5D929259EB58B7D74212804E4\ -FEF834EB29A4242386CF6859F63C0B5843F7EF39C75D88D262497679D5539699\ -651573:\ -71B800BE49F9E28C49BAB3118DF5A4215018ABB16A18C572CD170B97A9ACA4E2\ -BA03DEFC27F97A9743207D16C3606FBBA15D913CD790EA5B3EC7B6E1B3B9EEF5\ -82FA3836F688A22101F49405037B510D802B2EB30E1659AFE3B90C603D78E87E\ -9F9E92934D76695D218AF314A275B06D61DA250140232284C0B9169F9C00BF0A\ -10AAB0B73AC53737BFBAD23FC2E0AB7F3E61956507D58119C2FF95DE273D2710\ -B2E2AFABB473787AF4A6F58A4A5A762ECC633125B33AD564B7B83D60B8D7E6A8\ -D5ADBF:\ -4A27EB0BA6D6EC801314612D49E6905B49FC924B76BADCA0710EF57797BB3EDB\ -3F9A8FBEDE894B6230AA154F7374130255B7F5AC37CFB8271392CA1B974B4300:\ -BF6EA44D46B4878547CC370354DEBFE3 - -559E1A0F4AFC9269AF81A8D063FFDB4E633448C20C195C3BA8408C38EA6CE6D9\ -E63B41881E817281A6301B3E41356B0D4948F1DA4B771AF140734F698773C974\ -21899F5DD7AD05D6A70239298A343B4717198E7C52276E942168752878AFE0D9\ -FA764B3D30D65FE88B7DAF67A41DAE960F2997C803A77AC5DB5540521EF1F4C0\ -87C450CD19A7AE9B7858F599C0E194B81517A5A3DBEF27761A68C7D2DF424D7B\ -16AAAC1586CB0EC363ED6FD00F5E7B3F903C79319733AA6C6EE8E9F341DA4AE9\ -C4621DEE:\ -7AF5A8748E6DA60C341DD9217B5631BE653F294EFB8EDC237FB0F27187FAE80B\ -09E647813A8DED7E4183647C339D650453EB69EC9A6192DFF2CE426672E236A4\ -CAFD33541690678106937DF3B3F8D932DD6B215191FF0581ED893247837973A8\ -B99CC495187F940EEA39BE90AD3DE0E7CB9CDB581A52E9BB7F1BE78D7C8D6BE3\ -808CC35258EF2DA54F32D5AB231F97FAFCD29CBF1A34838E4C96A055F2F51AF2\ -7692DC6ADD11C4E0863E40BFF5760CB2DEAAB037049491D696EF9C352DC8372D\ -4AD0BE2E:\ -0014D024C8128479C7EB2EDBCD188459B403C487A8912C1D010656B66A2992D5\ -49B04467EAFC90F2B013FE5C52C109908082D81F639DF9FF5FCDF390F27C40A6:\ -7F80E0692AD8C618C525C7CB21A89F82 - -EAB86C11D76FF55B2F035303C4925A8D0D0D049C91BE92B9CFB9DDD545EA5D14\ -DAE32F1BE7B0EF21B3E0EDA1B2BFF9B2D387B310994635E4FC607936E1E365B8\ -0449EC00678E591771999C94F0DAFDC61BA2B191C356ED17928D2048AEA44A4E\ -19D9FF4107E44E2A46E6ABDBEF247B6FA796CB288631DF08621FCF5EB14716C9\ -5C35A77C9DD9AB9FEEF766E977292581199F747A3A7294B2898CE27FE86FBABD\ -1F05283E863BE8B95DE2FFCE529B473384F99CAB6B73B5E2247EBFEE42D92858\ -C2A369680E:\ -61C702443AC36E6A9E04D892C24A456C1611836412D3837420ACBE81632DD6F1\ -5DB8A37E36FF0301B033AA4446E2CE5B42160ABC986E5BF08306812E893D2665\ -670EAF0B32963100744AC8FDFEF34F29829DE7EDBB331C1FA7BBEEA3149AE5C7\ -FB77E8ACC8806ED07359EB140CE96D68F9FB798B36D91AE46CD1F4AF0C5B9E94\ -F6366674063D9DBFF1AF01D6586AE0A15149BAD137B7161FA0BD46B3753A4497\ -2001A651CD1C1DF5B013BFC4F64B22B840726BE02D02E3DC7AB199B220BFBBEF\ -AF1B24090A:\ -1EEC7FB21870D49015110AA970EF8D90AFA9A70D7C42D8565CA95FF4DB5C9BEC\ -B81C87B413DE401567AEF4336366D1AF9BD900EAE670E404FB1D0176B970E613:\ -2794A4A65C67CE7D7F426596A92593B4 - -D3CEF9E2293B9FCF61FAC8D66176B9B227D38BF32376335665EB2AB89BD2338F\ -480A6EC7F74697D901062D9D99C0B2BD3242A22C5511EB250BECDE63A37B32B8\ -B4545FA5CED7543427268456C75FFC201AA138EA5DB48BFCC80E939F9BC3F6E2\ -B16E8D614811B6E75491F1C3752DCF55B314EBAF26BF2BED9614F14CB553F501\ -3FAF0979EB3D15D40FF94702D3328D15D1539D2B265985A9D2AF836B99BD1592\ -35C0B1C3C27AEA16408182B457E70E6DDE0EE6EBFE487CD481BCF2349664D391\ -34D3F0409CD6:\ -30EBDCC9883E73A68A1DBE5F62B29924D4478F9A97FD87F9307087D02D130DA4\ -F1B4EEAC478B0A9492FFCF0BF3BB34799827B366824B7717E30AF71289CFDA2F\ -60C3F0F72568206190E88D3DD9251D1B8E9AED0BC9A8EA54436FE38593255750\ -E7FAB4F6A1CDEB703C6AFED2281AD873ADA562F1E302E74FD534B2680B9BCE2D\ -EC3D2988A2D028E3FEFD5337086C788CEE5FB3D76DA15E2C94CA69EC81BEC27D\ -374250C8B55F895BEB63F1FFE11F4BEDDF624F7296A4D135187D0EA0F1C352C9\ -BB61A71542E5:\ -91288086AC1F659A1901692B52C3E4EDAA0F598CFFA4EB58BAE8E318FE2B81F8\ -1BBAC50DAA94534683DEB7F7AE314B7B12E64B5E2C72E07D05F4F3AA15EA51CD:\ -8943336E2907D7901F0544481686E287 - -CE3565BA0A89F5FD63C7F3E30AFF76B1683A2A40556EB33CA38B2F53058DB11F\ -FDDB6EB83DCC51CC6B4EFF7A296481499E2B746674B6AC433088F52F09EDE54B\ -30BC6E2BD028E611A3ABAB6B86054DED15C7B43A56B3A22D15BB5C478D68F3BF\ -77CB0C60173856DCE5444E0B1043D26F1B6DD7E93D09A4F64894D63565289A01\ -532216C339B20ED8A5BE6700EF9BAD1E08F413F94A4291969DE1391611E1374F\ -B6EDDEC206E4586FFCC9EEC97CDCCE7E40C4F460DC115CAEE830B1CCAF5C70B0\ -1CFF670FD1DE98:\ -83C3626169B4AEED4F276AF82B2934463595C68D816C1C095598F1691AAD98A2\ -43703DAB5F3D68E2D56A2D2EBFDADE769D4DCD6BD132D8C32A977EF55DE984F6\ -A2A6E6C8CEE54209AC58E24CFBA30D04F2B50A9FD007FD0FF703AAC26D12DF79\ -9596543C425527236D5BD47EC59BD837406B4E6317518C5DBD5DB84271187545\ -5B9B88EA1FD5DE4CFBBF904CC10B2CC9D1EC949146B75B1AC84893E424962655\ -305B09B149273677794D5444C3BC1EA36FD92FB966EFC455FD5EC5AA769281EC\ -3A726223528C11:\ -FC1C13484B2B69BD698876A85D4E14F4C4AE82A1023207E532F8D20ED69882AD\ -62F83089C1F5E5CA8918B108C78F1C84FAE8ED83F7C8F8556673130118AD1E40:\ -09F24D8D1E75377816525F7F201E66B8 - -54843FA8D6C7434DA1E7FA2D2FB2EAAE7E2C1106F1636F35F0C97CA1101E6068\ -8C87CA5281C2C4BB6FF530DA7521FF42CF93FA2A150AA751E474350BDE382DCE\ -7895BC52E31EE95D3B4C5894B19628F58C3EE519545B5A7E0E73931CC2238E26\ -B921DB7A400EC6415B8B4DC490942AFD73C6BDCC6B351DCB390AC043F2370027\ -EF51516E8A1E28F8CEACB27C6E3DFEE94F70E2E744263DEB2C03AEB80AC1A6A1\ -D79F819FD114D1C67F3E397DE2A845BE2415FBE885B3B17EBA177F4CC4093BA3\ -A1ED3304F5E8416D:\ -35E5E45974FBF64355571C5A1BF0AA69148A8314904E8188A0DE952B4F9BB436\ -53529765EA698FB32C73CBFB26E7589B3EBBBCFED7ABD700957328A5A08EBD97\ -23D95AE5688A5DC83F3B490429A62BE8A746D0EBFE1A8F596296ED40E16BAC72\ -D3C9C8D7508A9743B9A950813E401A97DBBFAAC0605112B040537D562298A2BE\ -ED7E01002E01165979B963E44817A1B778929B9D416B0EF4E0D8643D339534A0\ -46F5D87E107C588C1C3624ED5C2B7379552EF21F62D1577B4A3A4FA95FBC3764\ -F5C43B589000A99E:\ -41A6D1880C7E6FB5BC5782AFC2015A2E9AEC92E1029EFB2138C7549FDB9780BB\ -32603E8C52447B5AEB024CE2D86030DDA01E696B4E8E2B2D594E5A45D383A9DF:\ -C94916E92FE1B1D443E2B8D02588EB0A - -FBA6AAF6319D687E7B47CDB6AD81E6C6EF8CF3E95C583C2CDC402AF1ABD7B580\ -8AB73BB9331D23140299D35E1E10D30FE957E314A5BB4DBADC2366BAAD9A0A0E\ -641194373F51BE4522461ACF2B5EE471EE356C47436C1DE4FD97DCF7515BF14B\ -8B45F05AB5134297B38E7A6756DA9FF14AEDFD0A9E9013C8791F1E4E142618F5\ -D59627421446589D6E61E7135963C5151358BC7282BA2B56D28DF9BAFA7E3605\ -99C4C948CED58B45119A2BD8E936EB362DC75AFBE06480AF2A985AA6168F2FC4\ -FF2ABA987FDC2253DC:\ -3C4416D1AAD1782CF5B2A2F229C4511D7272F166BEFDE191BA2BAF9B14AEB44C\ -A72E1E8C899A75C9D1282D55F6364EE2A13F0FF4AEC38A01172E4B7D30FC18AD\ -DD8387ACD3FDC59F39ED45F31756FE5C7A1EA1E674C8029DD562293129BC89A7\ -00ADBC8E0EA665B96BF04DE20433DB054DC33ECEF7773C7D7B117B633ED13673\ -8D95E8B31E2AB0941ECC780F855BC41504753F16835D63F1A51708E1AEB260D6\ -AB38E3AD7AAFB9A64CF1B11904D3D54BEE9AEC2F2AAA0FD1B68CB75DB0FFD344\ -1EF7056F7E292FC182:\ -01870569CC3ECB136C5413027144E51CCBD8A36E15F2853744DAE7B4E74D1066\ -00B801BBCA38B8C9EA64E87F42C4643351FA5C84D002295A1CE0FD75FE8DAA2A:\ -78CA0FC08EB3A11915A3CF5AEC8604A5 - -8B8F766092CE5D8DB2183EA44E5E8E18461845993E6EA588275D53FB45D2548C\ -E9EE837C66C8DE93E4A141CFA9C2B22987A5994E819AAB19654436F49F4594FD\ -F5D8E4772BF3D4460B94BE1665440BF1CE351EB74CDD87B21D7F843C6CF0D24B\ -A1DA47798A1BF180E47268C097CB112DA816479DF1078E556F232D29460E849E\ -C227106F6E25CB9D60BB956218416DACCCC102D28511ABBBE2F9A053F8A982A6\ -FE463C9761AACB368CB8D3F91F11BE6D4C4C90BD6011D7499AC760C0A9C3F807\ -0F3539F5B0F64E6D8DAB:\ -539DAB85CF2AC519581A6E0D4460B65AC271FA0883E9527FA1FE1EDAE9936902\ -D1C14DEEF8BF561DBB4AC4C7A59834DAE9909FE8FADC8AC4CCFA69E69EAC7DA9\ -84DF2413430C40DF35FCF6EEB0A3280BD96ACCBAEA2EF87537E27359E1CD59CC\ -7DD93E02A855586974B354B12764B31DEBC62774F43C193D7FFC0B836AA5DA66\ -0CB5AC08470B19B8709A90FA89E7FC77FE4BB31B53A4866D97AD138C154DA17C\ -D6C1C59634A0D12AA96D8C77D276D71A07E5F3E474FC8D422346488380FEA71C\ -D096889544B86F1F2030:\ -CE1EE8443C2889AD1094C8F215151896D7A938ADA99514525DD446E9B5438F47\ -70A550217775DB49E0194ADDEA387EFBA0B3FA28A825E62D92CE4760761000D9:\ -6B1E5A4B9A949178007C4A33B68C64DA - -D22225652EBEBC11D761C4F30D21495978B1F0F1D1E060190A9EE063D7385927\ -4E0930D22B44E57D0C02D3603FE1C85371769EAC22D4FA18566160AB5B1644D9\ -7961B9883050C162A4ED618BF10A148D38C06220AECE472C9C509E762686A7DA\ -2817A26713274DF49F72E6C142ECD830844E25B08EBC1782C39B05684216EA51\ -871C91AA28396CBF4D2B8A1C65D9C163C28EEE8FEF2D3C04106A9F87D33BAA54\ -8BB6A5BCBCC8B502053E38A7FEDFDF17CC406C88604FD6C3852BCEF2F3E22216\ -04F7BF1B59A00976CB705B:\ -9078B3B946188F775C3353011B5C1DCBBB43ABA72F454E6911B5C863D905BF7A\ -93118076029E4470D8F3BB2FE7E12A942E739C8E4563D458586FAF3D048FEA9E\ -294ACD4E218CDE4771B29E456A91ADB71F3889F8BDC1C3EE743392F307E30B6A\ -D2E2FACDDA13A3922D8D54E26F284EE6189912E50EA437E2EF0414C265545E29\ -0B1ECDE422941FEB4505EB350C0A338496A797E00B4014FD5983AC29729595ED\ -5227B0A401EB5462F78102D3B3372C042CDFA08C64ADE093B4A1150BEF1BDA2E\ -F722D4CB983C09C8E60CF7:\ -3E7AF68C7BC5A02CC26A61A72E6EB122F86870395D3DD8FF54DC2F7DCADB63F2\ -E1F64222D8C0721EC21389C58C2C3DED9F9D2162B6B9AD670C63B02793616F16:\ -41AF50E9009570145022F6D31E8D2409 - -535488E23D8EF1110EFE7F5D3D2CA7E14A3EBAEA9959E52D26B6557F26A327BD\ -06BFFB125B613721A2046A877363CAC3AD9D636DE77A2BFEE9B699145AC568AD\ -DC859947E19455EE33B129C589A508C587917DFD7EF4B9017E5ED3E98586B970\ -DA77526627B50CEF46E72D84B6372343DE29F9752F22D40E62CE30DF9ACC308F\ -B0BD4BFF1193127120724D44BFE2CD31A340A16F129656653BCA1CBE023F51B4\ -F7721F25E1FF6D8E6BBFFAFFDD95D57C2F5DCEB57B1D576AF664E3E7979EF370\ -B24C55FB2301A9EC85496963:\ -1F2BD60C7A4CCEEDA6010DEA2FB0D29491122B8A4BCD0DFA69AF58EB77DAF134\ -2575985C3146C8E0ABDBF9B67F1B93F492643FF699B4FA81DA8018741720749F\ -AF32B992F5FAFA93280D578A40632BD47D8750E2FE064D851DBCAE9C87A6AF00\ -1620CC179154BDF468332DC34259B6B2DC8E491A2E32EC85000D009AFD6708EF\ -73D0908B176C0057F9DA0C655D142097203D071C69C330D8667B678D9F748EE3\ -D3C21F475C29982890E1C115750B5E92B4B843D891FE7F6D9EF16356916DB25D\ -80834D2964E2EE8E94D3144A:\ -C3A5336F8A9E57BC35E34F741A8988FB86DD46E56DC9712E845C390E5246F300\ -E8AFF73F61CE4619DCE7F3437C43D7F11BDF7A8A6D6515CACAC126C9E6564E5B:\ -59CB65F72F9C67580A5925395DB98545 - -27F55D03CE4568AA46EF67CB5ED66D2575E0CB5729E1A4F49AD4273A4A312042\ -02FE603D3480496FDFC4BDA751E39FF0B277C79883FA3AAE55FAA9661669C0D7\ -37B80DF9871D578D5DF292CF74318C7C3DD8FD623133D91B4032CC6DA726C8A5\ -5185E8A95D4F54143E778CEAD9D8046AECDB4513FDFABA2289F2DE9E7870DBEA\ -9AB92E0DA186999F16FA4D7FDAF44E11F784CF1D76A05AA27A2EEAF288B6DA2C\ -864A7ACE5B853B4999C901386E178BE0CFF2E127D2FD92F8E15FDB9E1F0D12E5\ -06DD8321C2C6EAF6AE77C90455:\ -667A8684FDC754279564007897B708F55D017DACFA94582507B430B5C9E974F8\ -6286C80783D5141B284CCAB7874C6B1F1CCB2F2DDB0B0E10A6B7E73408C19F26\ -9F1C996E20C3C3570EE03CBC9BAAD580A2780D6CE28C83ADE227755B293112CF\ -7E100072833964A4BE6A56699D0451AF1C7C5007E3EE65A93F81C5E743117B78\ -CDAC949ACEA36DDC4576C4A14D078704FDA4B42B306EE82CEF538B1D4A4C9011\ -DDAB3714E950B360A49EB5F5AF43E4906C2A002D183B48FA4863D1B200EA5C55\ -C13949ABF0A32F662026283835:\ -166FCE6A689E4A5DB654490AB28EE5773B94FF4F85406C3CB06F1AB813020B5F\ -71CB5588475D950674EE39BFA247B1181987A2834709224873F96E557DC29C8D:\ -08CD9F4AAB271859780ABC85F02DA6BA - -87F23DDD6C133E12808B4A4E7A786988FA9A515EA83BD716D1503F1DB448E8F3\ -139ECF424775FC9A47D3C5B1FADF693B632BA0E380C352F491BACCB96B696E6C\ -E122DEB6494C94FABEB47CE633E333EEB83FA89143ABB7FC8683BFAA4F47D26E\ -C52F53438330CC84424C92B387C69222E7B4901C82C64EE069BC068B86620471\ -E434FC8E17B7A8AB635684402056C543B1743C3ECF8448E7B28FC2369AA5686A\ -B0E5D7BC3206FA2E0BD79DBAAB82D81DD75271A67301368EAC751368C527DAB9\ -73E1940B704BEBD528D0173AD67F:\ -08CE80E4171B67867ED224C3516E4D74EE85F3C2F7F0866803FFBFAC944D94E3\ -F34A703A21DD6D759A7170C416FB797EBEBCB326636A2303A0FEDC7A5558BA5E\ -546102E6931393F7BD4525DBA146153946910D7246EF570E481F470EE2D64AA7\ -452778897B6F4929F96BDC34317301EC8AFD0D19350A04B725678FEA80775970\ -A98E8E4187DDCC2C223C3B08DA6197ECF96F3686F1B46DF77BCA305CA75A3F93\ -E959B7C62EAA636818683BB002EE1592F6D84DEFCCC3CA8B5E755CD4F2B5CAA3\ -D162114A717850890744AC43B1B0:\ -6BBDE2C7C857D63A3BD561511630F09EB1EA1D4AC4062ACE2775E7B186D3559B\ -D9376E4584E3664ED7CD9750830AD66AF2A88A063DF721CE8AB0CDA309B5EEE6:\ -CF3559AD8AB802F2D91AB264AFEAD5F5 - -D5CB8E131F5954708629E18D602A29E6F1551311C28D2C808D2AA0EFCCCA922B\ -11E5E12D3CF1A656DB41D76A926439ED803218FAD76AD5B90D4E8BF90F77BC4C\ -73D0444C6CB7B8A8C133B0ECF85B52E9463B0F08FB20A5460EF84812D4B77C38\ -1A98463F76B37F2DD2BF3CB5046CA9561B5292EFC46FF32EB1A5D4F714961E31\ -E2A97B7CF7832730023DF0A6A1BD79A48D705337CB60F4B62B00137EFEC88018\ -A67362342863A0FE7E3A508D056E16E35648D5F13CB8D5871DC91BB814077EE1\ -B134483C76950BE28885B5E859A60B:\ -5AD28D8DD9727F8A2F4095F21A5B5374BCA27C483417A3729A9EB9A1A9D52C36\ -C03375F8824E27862F70D3923F795A7930B99555070FE1BE23BB5D257DD523D2\ -7A06713C8B6160D287F70783E020D99527349B1CF863E3B68ECB791E702BBEE8\ -FE4857939D9D361FE1526C70C512A6C55C1C2DACC969B7EC0F0DD0D3D277F2BC\ -9CA1910584DD8FC0A8A61189B9C2ABAD3C97368A1506F0938D71670D6DD84A74\ -ED40FA8C8DC3F08EBBC3F8EED784FB83E335561F45A43D776608AFD83B9926EC\ -D34EC4DCF051FF61F5F3D9282C7772:\ -A1589972F5DEC95D976E7B5DE44CFEC5A09DE4A6FC70C27894FE49FB9AD76F6B\ -7318651596805C8ED88E1D27293CB16782CF9622C93832EF3F70719E6725EAF8:\ -C1094E3715E3AAE75B71E27AA4A1AF12 - -8E843FD325442267456066C1B459DCA6B92D5CCDFCD18CCECE7F081F3578E9F8\ -CED6526EE5BD94EE35C4BF7BCFAB6C6CDAE5814F5630A7AC432A1A4A9CEC24DA\ -57F18FAA1C4E5EDB78BC3E6968A3D01D7AE65E419E13F9313C749E3A98BA012C\ -F8907BE47837E466BD391D22EB51141765029E991D34F60D6E8BDDF362289BED\ -54AB48BC1312B6B4F189021F4E0D8DBE75C2B34354614F15E4FBD482F9A535AF\ -CF7287461361D3460D893F95E368B1A9CA602A78280E741D81F338BFC8E560FD\ -8C09216D18648C247B90EF04A60A11BA:\ -64A6E1D09FCEC7F4A126E002D30A2FE00EBFB577861734A92DAC871A52C4182C\ -A140FCE10D9FC78F98D747BF36E368F01B5CB35D8A9F3CA824C03CCE0F34CF91\ -5872E0A913B5534CFCD135FA2DAF1346BF6EA236523FF3AC4F5E56F645BF7F95\ -C16BB9C944E289BA4F8F616F1E137D529C0E9F4D08C83971DB7F099F0A391FB7\ -EA6E5C5A5742794B984D4AE39D510A929AA17097BDA922024E1A2B1FCA0335F6\ -09DEEB2217474EEFDA9CC46990B4DA0CA0A70E37D6910DBF5EBD60F838D9BCD8\ -254C84CE4ACEB08DD3CC902D395EF7FB:\ -50C5796077D4D4B119F941EA5E83C143D0AF8B07C917C0F1BF60FC3FD80099EE\ -BCD3A0EA8EA2C3E91E02AADCC09AB58BF4CD3C87E3F09626FD532DC481A6ADD0:\ -B2F73EE5955E2EBCDFA7E942E5C819CA - -099259B6C95BB50843F59960740BFA94A6F001E02AE7E822F3385A9137F5D440\ -AAEF70AE9B34DB2F4827127C7594971ADD584DB84AE5E80B1002704BACAFD7C2\ -C0E3CF97AE76057B86DD215A917B918BC3122C505018725A35487150E31F18C3\ -AA5435D043AD825E4309E9E63F9EE6D655A6D6F9C08A62802B8FF2E9650D5D95\ -0F3B8B7E73C5F41DFFE3509FEB59FD71A609C47AB73DFC47EEC38D6A4284EBAB\ -6094D382FAF4FCDF5A5EF33ED44288FEDB524A8F7DAE6B05EF0621FF607ACBC0\ -89C4B69ED11A13A2162A275ECB673D4ADB:\ -9E12CF883A752DBBE6E184F1ABD72099001351238859B6C9B7CD04CEB78DF1C9\ -7EA8BAA0282B4F03CFF4E81F55153ECDD2BC20F3A25B029F302B30796B0C006B\ -FEC79D8F182300D74F1D0D4655A54B3C311E96431AD95ADF9F530FC3CC088A3D\ -54219B4AEAB5C01003339396E097BA1F716B842505CA4C492B898B805259CFA0\ -7BC18B9178BDFF658825010A1B4A63EE5D09CEDBFA205D1875AE4D423EC06D48\ -F319BB2D2688EFCC29E3D8914F63AD6EE979B5EB832FF1130FEC0610FAFEB57E\ -89DE31BF911624DA024AC1C76D023D7663:\ -2B316C30C2D2E3A7C4E2A7692A3DF1A403ABA403D50BD53813E68FDC254FC714\ -18E83C733F9F3B98DAEAD607B6CF76D7755106BD93F87592819646A8A4ABF96E:\ -64F6F7B88A048E7AC629F76B17C294D4 - -6A7890CF1CF056611B1FD8BA6F825832DADF96AFF3CFEA7C21F9D8EF7D6ED286\ -99E22E21B97F1CFA5BEB0CCC217915A38F2EACFAD1371865ED9AF1C89892DC11\ -CBA083706FC32221DDDF41AFD69DC92D08C874BD87D72C29605A1C986BCC0671\ -44CBE8511AFC2FA166BCA05A300D8CCC72545412B5558E1D0E626EA4DF8EF15C\ -F3532B477880AD18CDB913287574195E5D6A2FE03C1BFA588B14458518B2A3A7\ -AF06C23F5E0121EAD5C68DD933A6A8599ACAF630B5DC8CD11EF7D94E795D837A\ -F8D9DA3716170743231B60859BB89FB1297D:\ -EBBCD480D7D3D6577B08FF325D73B11FFB0B80C7F16AFBB824EE8EE4CFBF3A5C\ -3002675C560C7535F43CD765885FEBFE9049CD991DD69F3743A73D4C0D8F688B\ -14DDEDE0B9DC7080588B7E66D3F4233162044B725E3C16C94C55BCBB82EBE67F\ -BD8086BBE78FFE464B97FD7F6DAEA0BCB5FD153B7D76F4669D2A4A53F8A0B380\ -63289E8E76D0FAF64A7363BFDC12FBA45DB08CF6D07FEC9E67B768A98CCD5174\ -90DBC76DA9E52EE9240487AED24E13673232746715004F3F34CC66D30B95C7F3\ -6ADD7A2DF1AF7C64AA99705CC61B9EA6657C:\ -EA1B3E82A30A9F62AC3021043A5DB172096012E0A169E5DD1B45B0ADF1908E46\ -DF8083DBB2DE6065F9C6D131714DEE709685FB95CE8FAD19E489DEA4C1F9B97C:\ -946E436B399B25BC66782375D94B7600 - -8428CC4A7B48909337504B6C9C23018D8D468414B965CFF8FD787DE4B20AD4EF\ -8304E3E154BA6E623A027FDBE73DDE104E4B2D2BE6DF1987EC421694BFA5C402\ -146FEBCB3F7B7CE109C2D198F5DE789F63D76598765539C130BDA129246EC9E8\ -95D181D13760791AE362C85E70825717C050930F34B0BAC4B7637C793EEC3207\ -043E0098A737C7D333A75182BD904364ADF0939962AEE8E224370F797181AF10\ -F57CBAD4147583E98A90687CB4494E18841889FADAB088639F0A645D43E5A384\ -49265C2FCE10AA676DF23D4F154F10799D6FE2:\ -785F133C9EBC74DAB0DB954D5EF0D14BC5E235A1D37546140E00F804A9B24DAA\ -7AAE674FC24450197EA103844946987606338507D0772D442AA3B92DAD776013\ -7D240E7A44B5F5DDDB3E380616097210CF489FE4B5079216F01AA164D8FDCB08\ -7238E0B1B5DE7704C71098A8C8A561E44C515A592EC501516B2C282561877CDB\ -761208A1C4E2538163BE6F88B57DBB8BD599CCFDF2A2C7C9EBC9A1BFD7AAE38B\ -538847C0A8B1AF2538ED0929BE28FA6C8056D4A986F9B5E935F1C580B549B848\ -79B303D94929B8A7FBA272CD2F42A13EBE76B0:\ -EADE81F6DDE80B4E77B25B6D92B5BD621059A04A290717E42E36456A6A12FD75\ -65DC456036F450795DB624818A61434A6DDA30E3B767082B96BE3FF8717C9151:\ -47DE0EF7D67AE858B1C11D1FB3513FC2 - -CE14693992826312EC65686F4209E3358CDAD7AB398359AAA3B6766F24716D94\ -9363B70A4045D1212BE9EFDE8DCEE0019FA978A232029FA6733D71FA9E52E8CE\ -A4FF4A2E25FAA127863512F56B67EE3254E2E228EB5FA75465441E4DE9467B49\ -B51C72BDFA9A48DA81D0FD4DD5E398FC8C5A9864EBF98D0FE0D7A28DF7D0221C\ -623B89269BEE5C486D06E2511603C04907DDCE7BA7D3E7FE926089FF7C9934BD\ -D634BAE190D8861F8C49354E074512E707E62C85E87B1736B0E3200857609118\ -80F01C446AD8C35B03B441F4652D3738BD83ACD9:\ -0AE1E2547728A2C29D0483DF01A2B9C0F70527BC82E8AE765B0C02C757D89D68\ -60B0B50244BE85ADBB8B81FA76F2196341DF5DE5B10FFEC052D7BEE3E907A413\ -BC336C708658891060C6ACA2C98A54B1ABDD56247D98CC43D53B792C25A46544\ -60E2A339C6FE75FD65359A7F3B8BAE9E3404F038FCE000BE9F353A4924D88A43\ -292607142951F1CBD4A1CAB5B02AB7AADC8C97D3BCE9C7D649D8FD4C5A621E84\ -23069AC9C8F5CC3EE2A112A933A04F51E952CF1FFC1D6446329A47F09C831DC4\ -8CA9422524E3DBEF1F38F2E596D52952227EC8C2:\ -D9C6A87BD9637A09E23B26B6750F874C6A50433C8D849B66182394376063E0DB\ -2DF6623AA630344E0ECC0BD76A7E9572919DED7AB3223196DC79B871682737B2:\ -18A7808B43783513F9F57E88B059114F - -B424ECD5D5582856DFCE1286A4934C8CBE04F9C1C38AAFA645140160F1C684B4\ -AFDA695CDABCEC269A036D2BA57080197708776221ACBEE3E0BFE0CCA0E86F2F\ -788A128A96F21611BAF2C339FA213F7E1132D13E80360796A74C45DA817A7AE1\ -01BB067BC8596BAA691DBA798D60F7600E783FCF9D58DD3403B0589F2171160C\ -F671A7079BAF96F4CFA6119433A8225D7168CA7E521C709670B4252C0655FAA5\ -2E6642DAB67FA5101B801E597649554751D15F6C3953F74A05580668C5CD8809\ -20C6933534015C9342DC222C80F09876A60EE0E154:\ -25037CEBF302ED18A3300BAE1BAB4EC8800DAE716E0F4D806114F7E49D6FF8E6\ -89735BD644E30FD52DBC815EC20F224F9F96CB05C1E95E6B560D894036087D10\ -9428B891247E41DEE3BA17CEAB654C844CB562C9E78FCA748C45CD71CB727AC7\ -EE1136C6CE7E91D203DE43431E795AA5D1FDE7D975AB99415B04669EF6E290B4\ -533FED82EAC477E0BC4A07F6A8D7D5EF26D4FF13BE08F60EE970D20E3E4EE3B9\ -506230B12CB44395C421F154B5EC6637DCED2DC0A26851E617BC66774CB34776\ -0FDA897F7F6FFE0079BC090D71A581803B0A635BF7:\ -CE651C28DB642F182B6C4E5600EF2259916AA65A49B85A87405EC61CE51D9354\ -BCA3A88224F4B755500F898BD718F842A2EFF7B067D9D2BF2B87540F3A3D758F:\ -830AB7F7E062A6A7ECEA05ADD6C839A0 - -192717C9D60F3EF892CB7BCB5BDF933BAEEFA5320F3C9A15BCA141BFB4890A71\ -D6D053E6E725767BD1164B4C1EEED5717F7D4CF7C53825F46D47FCC0969B7B05\ -30AA14E67335AED29EB76C255788B4CBEE64BF842CF6421BEB7939BCB295BBA0\ -54E4098EDD7EA418FD3DC43E44012FE3E9E75B50E9DDE48E861167BD4E9EE07F\ -3C0A82ADC722273D62517BCE169A38BCD629F55B15198C1F96438F1451A16BF0\ -9628475DB409CB4254BC405E55813C32514516925604258AF4BAB8C1A0F594CD\ -D1E62C35E0614F20D4E5B5A9F481C5717F44F5DADC30:\ -980B4ECCC42EA4BB4CC6284EFD8BC17B570460D71551CB2B1CFE0D0D0EDF50A0\ -68DF0643216F22B03CEF2A588536D76904691F48E4F78652BFBD414361C5CA0A\ -FA504A7AEB4F126C584F737303ACF98DEE0F2D6401E8C83A61A782D40337F171\ -F718E9B48EEE2139C63FA1D6AB3A8755055FE2C5C076052ADACB728B1E8CAF22\ -B5D6E3EEE3BD33D577623B147A24FF5A91FD028A8D99312E3BE2FCB21B0E0656\ -0E6348E080064DB5BE9AB79DC67FB33043BC8A3948A19A15B27AF69445AE8FB5\ -13B647E93AEC6BD354E4D7FBB30B46264A6F6211D3B9:\ -BA332DC89AA47B6376A3EB64706BFA85E849168F1DBD8476A24191560785E929\ -3B71ACAF391261389DCCE973252839C71CC54A01FD40B2E8ECCE12E12DA4194C:\ -3CCCAF6C296F9E7BB5CA31DF74EF2B6B - -B74BFF82ED467D8484C6AE456F319158D9F5EE51157CF0F043F0706B9C1F4E35\ -B0D9366702C731B3F944FF0A3342A965DAA36B1E6C275B91819C2789F4F0D1F4\ -BC62312E9741EAF9D675958D71838ED51BCE0475EC2BFCD7A8B4D9BBFFD31F02\ -FD0728C8590CF8D5FEED6F89657C4BDA9B8B448B4F16FE384BAC312409423B6A\ -53B152B93D1F6BBC33408B4E39388A0BAFDD11B04DA646C9B1986393C493117A\ -F76EB16A5F35FB23081D4932A7AA24CF2C56CC6396981C48B516FB18C8D879DB\ -FC9598369220260922F4EB58A8D8007DDE7FD7B055E169:\ -E86971A770353B87F2120815B3BEC5223EA4D9AD9BDE8CFD0714218E6D341350\ -404F6A488711D274763266F8A493C039D08CB6CF5EE4203D7582C0D07E455524\ -D6AA6046E964163C870F953FA9D26D211BB675B167F5CEABDB4A2988DACA8C59\ -476E3E4A590A41395CEB65DE0EEE1BF6762124CD7C6BAC34BED5D4F690F45375\ -81479A65A04D14B3EE86DC79633D77DAFD989876EBC3F582C929555D2272FA05\ -043540EA7EE35CA58FD05E48EBF071B72CA5E24D14340137A5374C04E6FBD99F\ -DDFB6B14733B2FCC5ADA1680BE91F6D1CBF8D649354036:\ -CAEE3F484BDFDBCD061183E19AFBE6C43749335F852154F51C21A8BFAF005362\ -6E76489C6AEA1D95237C5E2F3A1C28F75888E5D846DACF4ECBD231705326B83E:\ -1D7BDA46E7E23C9BFCD5AC55C94FB881 - -379819C60503E7FA119E8CD735990055B3D238A6B8CC53F0B41929D12A550985\ -3895869AA17E3806014398E0ACB595D43C6C77FBF6CDE3C34054F0CCCBF6B51B\ -C8B8B8B7B782AD6A79AB319056B4927B3A5F4AB043E6F867246103BB4A3932B2\ -2932D44C9D0EA79AEA8D8E6B8A37FD377A080F8ED1C6A0F66CB9D10BFBA773B8\ -4C915D859737A68C12B90447296A6D66A234A8C7B6E2B62402F981A0A27DD1F4\ -F5CF43CF8B10A6D7DE8508DB849FE9AA53CFE62D7C0AB503602910F3C973A191\ -D88DB2314759268B5FA449FA518BEC9323618C3682A9F88B:\ -E10A1DF9724BCAF9EC82F1EEEF4091D723083D9B67C8E89F0F2C51071E6A8247\ -57D1859747ADA011001CEF4B6E5B6A022FC0107FF0CF8688896D857B39AE9F09\ -797846C5C0A6984F584CBDEDA20D6F9CA07884ED134E44E0F7A4359D37655172\ -B5A78253891275FE9CDF5FDB6180A67B71503CB355A0ED2C21EB57C769BCC831\ -E9A4BDF76730A5C77BC952A1E483779FC1893C74E022E03103225A588132841D\ -1FD60AF85BFD086A1DFDC01215BB7E1F2873D3FF2D7E8222D5DC4ED01FBEE99D\ -E93AA2BFAA92F491ECAC46CF3C104F0B138339F54184A45C:\ -D004CF57824774DBB801BAA3B099F6256D0BCEF7320723676F38DEC90CE1FC45\ -639195278EE548CBEA6D56899CC633B6BABC72B09462EAB196773ABA46863146:\ -36DBA52A07E615CA79BE663AAB87F313 - -61F559C5F810A1C8DAE33CE354847049DCD89BDBD3E93AB7CC51E543997C3AAB\ -395A89137754CCF5CFAD4A05EFD30AE6E708D8A0A6FACCADF703F0DDB5147DC4\ -097B967A468280F4F3F3923B4078FC11204FA28EF5CF8D440F329B4498B7C89F\ -A26C6B47FE722F829EF628888DDE04082F0135D52EAC0D688A52B124159AD015\ -6F0411BD76E3D297D49A5D793E3ABBD611EFE007B176EA3E21DDD5BC4114BB0A\ -218ADFD52EBE4CAA83970F7D28D5D2134C1534F56CAF9D0D9F730EF4EECB645A\ -48E606E70E536664F22084CB9CBE0307359FE88A3B90DF04B9:\ -3BA656F0AF42BB37CCDC8FA77698973C7F9386F450A1FBF5B5D8CB62CFCBBAF5\ -A043D7ED3AEFC4718B39DE52103332C1F9C22FC55AAE332F1106DEF40D86B36B\ -05F1FDD2A8B8D6BA601CF6B5F81E367E7EAB6D12DD1E0B93C8D83F7E8D78A7DA\ -35E584CC97CF47B8EC4B281EB052B06F7BE54799E65E460D6ECF30EECF472D77\ -40DC4B361DC250997FFA4A4241C26200EFC4DEE7E65D67D97F71BBF7B088CD62\ -283AC013AE1AF447D660D3E708266D6C6E8AF60072A0262EEF2459E206FED19A\ -F04D7E2A2D18FC298EBEA0F0FA39322AC8C4DF0B9DBE7687DD:\ -A3B3A08CCF65BACA8810583644E6F1D205BE1DF2A665C4F40C6C7B062B286089\ -D8759DF98134EAD1904CBBF515C90E84FB3299FBD7E985878D20338B73D920E8:\ -35E1CDED7A119251C8732A89F4DAE846 - -A680ED4AED1665E1126DBEB3A6836169E5D8E26E12C3B4314640577BAA0BD09E\ -892A089069F5F2E40897C9740B9316D79D550AE5EA9F82ADD1A4A9CB498671F7\ -71EBF6925175631E2A3A5930716E3153078998F457D38928B6C1ABCB75FF5D48\ -7E90435F8DFC567BC51BC86FC91B2F0F5743A547B1A7C98AC62AF3BBCD95EF05\ -4EBA38C03AF753F05FAA915C9A67BF1EAF64A67D8462E05A03793D2244892D0F\ -68074324490E5C497906742B76279426BCA93CB8D15627F99471BD157147DBBF\ -61093BBCB3916BF56DA36591E56DC16430AEEB7C1B1BE7ACD0D0:\ -D76864251D5CC12CA7CFC7365208F8024DED293D0C8FE964E6604F0889F5105F\ -7962E254B733D8AFAAB8A52F7D7ADE7FF3CE3B403E0804A79C980062F1E7F88E\ -1BE12F1AE2E424A6939C738022CA6307120A5AF914FC29697D2218252C7E90C1\ -14B0B8E72F6081CD74721DD52139212F4F8FBDAFFA05CF609F00DBAB8C32E29C\ -4D25A16977301DFA985078A3BCE695D27470F5F228485FCC5C71D6F1DD6E6B35\ -5CC3795894C934D64A56AA540DA4CF21AD9E73989F627F8C3434BFC4BDE9A8C8\ -60760626A8C9ADB297BA9A71D6253D3126E58ABD8290F4F1F0E3:\ -AE9040F33914977EC5E0F9C1A1B219C6430B31916B7E79C448E942AC079EAAB2\ -D31DC6F801CC2E97F6514D6D287D89CED938C988F9C140068890F6A35636B72B:\ -E2F10D2F09A6E83259372B86943D72D7 - -CAA8B0BB70CF71434B46AA9F5CB4FC8A10AD9AFA4DB9F97BEEC80F8F4927EBD1\ -69F7781598AE0F3FCF06D15A129D3537B2A2C287BFB45B92A62F15482F0D0798\ -CA3EA908E1B9C4DC5644EEAD5D3B855EEE6B39CA6FFC50C6A0F29ADE83316D5A\ -AA2EC52D8672F6A01007D436B1CEB47FA9CF4FDD3F2628FAD378C10B703B3C87\ -4B665FAAD28D32F8AE618DB40041404420765C0700D6C99F6E33C5A500A25D71\ -7F04514EAF8819C3CBF811720F43B4705C77BD0A621C5E41763942C980EC09D9\ -29BCFDB2E53DA1C8960FA01320F54024110C4F237977110B3751A1:\ -E8732913AE17B4444441A0A15E22BBE04889F49CF09864B05DF367A26496E6FE\ -2583AF287729359F7520FBE83DF2A146D8A3C630E8E374ECCE099B162C41CB64\ -34A0B36187A6309CC9F1A10ABBFA90AFA82FFB934999D911FDC573E3FC65C6AD\ -3651E4EE7B2FBB46BCACA8C71C6793C45A570A15AA9149EF067DE0E9EF6195B9\ -5593CC92307FC487B905B8370AF25DC64815D1226916476509D90CCBD50104DC\ -C905ACC2DDD9401A35999234C0E8711852668B5CB6535C4C357D4883168B23FB\ -6611AA80B075EDD633351A0623EFF59B477BD4E354BC79CE817616:\ -0B6D997F3908FE53060897B727679FDE48AC86B29F1BDA9CE993C197648940C0\ -FFA81A3C669305B008A44E221458937E4428CD4A8F18D1AF50CAA9628BC410C5:\ -14DF452EDCE5ECE3A37251FC7256C7A1 - -16AC7772715E633D8BDB7FAC8EDA6EE9C9B05B1378B0E44A6B34A47DA8D1611F\ -97203FEC682CE354E265B23D721BA46CE012AA0BEA53981B46F08CEFA3715D47\ -2D82F28F73ACCA404A5B27BE788058DEEE90A74AA2F817170A9D89DE03BB89BC\ -71BAF6B051262B42DFCC76B464A28655F20ED070976C95D359BDA68BB84482C7\ -2BC1B102E20F3E33B6ADA1535FD7E9CC7CC5A66B8561A980129F6968A9EE7A8C\ -5705784E19E280938FF6E3E8270EC29111CCE3066687640722CB55B1F6CE22E5\ -0432EAD7400EC0422FB37851CFB42972A4AB635844AEE2F343495984:\ -7AEC70526B029B01A975026C991F4184A88E516909837467AEE2478DCA909761\ -25982AE3B1A31E4E756B13991BA08EFCA1CCB7B869E39667FEB9026F2DCEA8A1\ -81C0B41842899D61B89582734058D5FAEDB836150A6956EA4A0CED81F2B70F55\ -A7F54505F384E060E302F537B18BC42CA8CC7227F8A309024E2008D372ADB2FA\ -DA174E54CC83BA89DCBCEE139EB64ECE945F60FEDFF01388EC1CDF1052373F26\ -75B634352B036CDC8A347214618663BEA4382A7F5AE388E750D2B5350F386A8F\ -CF953C52EF83E1FD227600F87ADE3C0C3AB3C0F4236CDD7BCEA9E530:\ -160F863CEFB8B8FBA180A59860B0C8BF1DEBC4C40F06A40D6864E8B0C42588CD\ -43B96AF941AB74256787959210F7A656A9C427C463CD3084414E13D6EB4D7D63:\ -7C5FA02FE028C04C64F4AB057CC52836 - -8140557DB2CB5053ECF29487BD5FEC3C1C6C4576B402CBC7AF1478AEFF83247D\ -9E38F8E59280123062C36DC1594E6AB207236595FA82E229E41FC758A0BFD798\ -F2E17CB3A31290A55301D11954D217DDD1362AF04CA93116FAD7A0F21883ED62\ -2621826DDF7CDF21144C8EA736B6AFC2209412E5C8AE382E4A35E85612C41C10\ -E767590074E990221F60D945779FE6220FE83C87B00AD1FB459974039D22D398\ -05E538CCA7A9E08309EBC6207BB18FFCB388042E3E0DFF69D2F767E0F11FE4E4\ -08147E61CF31C529A9CCF676E62153FCE538B648A9B6CD21E3892CD89A:\ -66ACD530764CFA33CCF68F294BBD6CD7104DA5D5F439E147B61D893404763F16\ -5EF6B059A9CB66A47CB7E754E3F1AF7EC3B956DEB4FDC46699B32BF6B3B3316E\ -82568C3EA798818035B737465EF2F059C5D2E25BEA585746BF9D4AFE0EF244FB\ -6366184CE666B0FE4398D5A1455BEE43008263B890A51959F9222E0D81847DFA\ -4CB51CB1C7A453D04A71813BA24714C8D5C5BE482BC860BD361A7AEE20FE274C\ -9C05FD20277E9FD4A828E3DA87094EB2DA18695D1E1082B88DCD8283A3EAA53C\ -7B35776003C3F6284E52F9D0849F83E3B66A86AD702C656C70EAEDC102:\ -181BFEC5A5EEB02ADD9EED07B2DE698322A41442D7329C1ECE634E1271A4C006\ -74B7B1FDB0F426EFCCF79ECB3A1D0F98F6C5E3FBAE81D2E16076931401F0BA89:\ -E386052F007FDC354E8212BF84E4EB7C - -1F36C3632270557285DB127EBBC1A2BAC63067C1865F16A7D0ECE4292016C0B1\ -A141F8F5FCC451EE7FE4DD8C405302A4955442233070C6D1E6152753C2C5D87A\ -962646F02DF695DBE5547C13012879134F4F97D15CD495C2AB1C59892639D823\ -F4C3CF9B82ECF81D6371F7E9BCB25555FF994BAFD9A041FC5C98051B9A29563B\ -3FAA848A8CAC0EFBCE8A0ADDDAAEBCD00D07C0F3864AE658E5063743E6B8675C\ -EC907BF25DF9A55A571C56DA278F04B0DCFC56ED6A3083F7918E0CFA0FE29B31\ -70D5B45A881BD9CDF7BA08CFE67D600D432ADB4A00A47D3B35D5374413F1:\ -380CCA842C11F5732967379CA69362B2DCF4E27F7E5223AA6FDC6530BC195E6D\ -355C72BC75D40CA2495788137A2513FEDC520AE3373EF14BF0B7EB17DD911A56\ -F8F7422FEB2233AD6CCBEAC941431FA23DB14FB487821DF2B8D94AE80E4C88DF\ -BC95FDF31E0CBB6EF7E284188CEFE49FD8A035562CA775A5E00C7991D47B3BD9\ -F3CD19B7FDEE6D1BD4F2BAAF2F81980DFA75C46A26E0EB9BDD8B35D8E01F5CC0\ -119153F5B223F2B69630D9CF20EB9F5D2854CC25A513F4CFAF40B9EB87690D6D\ -E65D247615C33D42BDD242015E96940264582DA80388E4803DD706B7D271:\ -85155B51760E67721FDC7A6737BAD458D51848B33B2D9F4ACCBD561CA3C85A1D\ -4847F3C5C2722D2D384A00834E0194F0B6E53CB8ABE16B6DC1F7FB19C4316B7A:\ -950BB6D39A0BD2EA8245541D8AE76E90 - -FA94A224D5431A48BAD45B7E25A556D77F8DF405AA2D970C5C2914EE7BDCC994\ -2E0ED75FDE601E5ED0216FA1C3B2DAA8649CF3E5B9AD73E872D2072E6711AF46\ -A00A868A87008EBD2F3A289F351DAC9CB6FF9418B7CE9D93784EC29A18353BB6\ -F4C7DC8F26842A60FBC2C567B58B66A95F25EBEC4C440CEAB05D8F0959DF2A04\ -F54E5CCB346E831EDCD392FE864FF877FCF2961167DDBEF56DE94CD422B85E6B\ -8B92E5AB4E777CD31A9F408634BC787558F17BA279C286F444344927C2E1ACDC\ -9B2AFC414AA1BC8FF1AD26C544C146E115F6C243EA76835A4B6BB422AB901B:\ -E384915C1DE4C2B1D116107B23B31B2C137574EAB3D78C5E76080050549507D8\ -CF22252E0872D94E421F592ED3B5CC13C1BBD76826A6EED30172605517A57EF4\ -03398757B6DF5795311C732B95C74CDE82FB9A0305B0941EC5077028929D82A2\ -9EB3AFB722A63C1EFE599D21E09C08CC20525A9A9A071063184DBD32288BE772\ -8FB924F49AEC43BBF230D34257C7FFCE1279F467A915B94DF4CD2C0B6FC27B37\ -1FEAE033F7AB5E0887809EBCBCE4A50F29008A22B2817E73381B4E125C2B9649\ -5FE3B880A9CE4B8C20279A8CF82FA6A315D76E8A1EBC2CB39ED060F7F2B136:\ -482E227371436B679E1FD990940D9E773AB17BE1AAF461CC0CF9EF49322B3191\ -FE24C116F4617697F0ECA8B3072B01745515C6A724866EE505AAF1A90FE964F2:\ -E02F01E558E161A08D163B9277476AF8 - -ECDBB7F858500B166D01586266EE6AE5C8207477E2C27FD2F502033ABC58E867\ -1D86766C01D297C6C061B5AC6AA14A0990C778E875C04B054FD59232845C5FD6\ -7F3B5261D03CC233B8562FF11220D5BF5DD3328C9957017B9927014766F0DCD1\ -B359210EA77274CE80DF9046334F57E7DEFB02F90E75639C066E5390433A7A22\ -386095A7BBCE0D62AB31F8C6A186FEACC324C7F930E9EAC78B32FDC7B9D26513\ -976F5A78374621F5114296F930D8E6C90AC37FAE57FB9A0511C61A2F911EF63B\ -6A2E9176DDD4C28CB091B7DE62DF087CAAD205A39CC20C04629A552C9CB4BFD9:\ -796B4E7F0D1C7551BB924AB3298C2C5D6F1530B717292D0C71CB9E54A2814FAA\ -67B679DB8575759C3F55CCA617DE84D49126AB3B3E240B5B64CE621533FD6546\ -C7F166E651166FAF2E8B6640AA804C37A5BC9E6146FBDFB46DCABADFB94DEECC\ -D0600BFC710BAC5D66E91D1E748F58E32F2CE99EEE10125B49C6657C80FA6ECB\ -20DE78EB3948D3EDEAB3146BB7D6BF4B8728CDDF6D9719917261FB36361FE5F8\ -8448F94C64A793CAF45863009392C37F5F768FD4253F90F69D574F7C69F1BA59\ -088B03AB7EA5BBDA213771392426307D330BC11711C10A3CCD0D9297747A594C:\ -253EFE776BDF1E56DE7DD6D048E9771222EE4D4083F8F8A0DE293CC84EC7037B\ -89DB568F89C9B2AD5009CF7F1B709194D87B7FB618397209212123FCD318CA8F:\ -5B26213DDF1761F242D5AE3C8CDBE989 - -18108F38311BDD38A8D45ADECB6A6F262460E0222009596FB1B3D5C0E997E7A1\ -8F358279A3825394378AF3C30F560E5188E2D346E9F2DF80BD8D2EE226BE572A\ -3BDF9451CD43632B442B732DBBD96C330C0D3919CD0A89ED4B693B81114C962A\ -E0E50D778E04270942CCB33DA65DAF0D82485442F655DD711DCC948DE92109EC\ -DC09A4719A7BB0D25A61104804F4096DDC5ECB538CE47A0B6C636C5D95F30C90\ -49F0A8E8198781F41774383AF16668E13C481D003433138BA1AD8CF0BB999385\ -61D6EE0E5D0B012AE7A0A2C1A1D128025C49B2140943253D9A0BD4AED8AFC649\ -AD:\ -5DAEA1C8171663763DA9B98D8A63251DAA97DAAB89A1BA12ECD6787D7D7BACBF\ -D7CA47394C6D71F60B6FA0CE44B9EBA881748A6DA93F6028F38B35CFAF33E949\ -83A5138850137E8726624096D02CAACDBD18B58DF5499E7FCEF4C850037F369E\ -DD4EFF4739A0D4049AFBCEF77CE2848162891ABF3AB41CCAEE87344B127A1FAC\ -E935B5F830637968CC9A4A5F22156E5E460509D226EC8B2BEF94A7336D4E74D0\ -D6412603B116C66B4AEBD1F4656EB6DFE9E86C959E41CAA9172BD97909A4CE70\ -002A750B5AFD67ADD71645F8B3C661841299D251000C602CDE4B17721F145FF7\ -FC:\ -50CC4D5ED53034A1C722EE0D23410474C6C0F991901EC4A12E78FDE91832CFA3\ -A4183FB0E2C62A54DAA3A1EF4574265F4E816392DD0F1A2F3C7F388FE3C9BC8E:\ -AA628CC121EE8DFE2E6332002E69F0F8 - -4EF285246ECF7558058F30980D58869DECB535EDDAF68D41508B783B6CB126EC\ -A86CA166DA47BF58CC4A91EE66C0233222B1DC056F9DF57A217815DDDF770871\ -9C22F967D76D0590075A730444550A822011608C230AA24792071C9829D62D8C\ -FE0B5FE3904C9EA6E93C232E45BDD60D72A78563B77FC8DE9F106571E0014E34\ -BE98A355F78A2849EED7EC6FC2BF9722544ECE20A7676D618F8AB71B9A73D929\ -AB1A3BE14BA6DE347A4BB534DBE7F580C06583E2D660528EDE539B79F276BA21\ -0A60AAB26E1DB8C1B293C9C733F0855663DD6920940A2B12B5FC4A306E197380\ -01F1:\ -F38ED44ED334177C347E6E47470F4E71E6B1C3552B3BE9EC9B1E27CF859B9416\ -768B91B7C5E98F2AAA16D3254835780AF653CC527B4035D91A4B28634AEEFDF8\ -000B959E5932AEBC5A8B74277F2AF492EA9BC33ECC7F1F2EAD89E0595CC25E77\ -1684F9DABDECD077189D409DD798625E22E371593B36368F31BD50F197A920B3\ -8EAFDA357155B881720E47203323BADE95F2B57BD703108BA228D50A80455768\ -361341C6612CCB1FF325EFF496033020BE489975B1C911620792B47EEF9B1E9B\ -F51F566C42B291EAEAE4383373D78F1C4BF8BC2AAFF33116A92A820DE320B4DF\ -8FFC:\ -96BF32F1EE668ED7BEF2F5EED2F8C5E10805A2B34D3DC2146774FB332ACBECAD\ -9CF93AB6A7F0EF8F4291D2403ECC3BA540D22B5D4D1062A992DB75BC0B7B707A:\ -DB8C10D2A7EB31779FA98666E65EF519 - -2BC7BCD80E91DA825583E394958609BE769537543CA8B44A9199D42EFD39DE59\ -2C8583BE50F78FFB49C726AE2ECF7664C776C8CF4EA70DB99198CC7F7DA043EE\ -9A8D618C8CB7F5EDB6567093BF00D01F146601968E9FA98390FFFAFB4FB2E17D\ -9E85742E9C77CE27E82B09210EA5E5EED3FE3A6DBAF2076110BB172F97604F05\ -FB8F52520A2689E5BBF10760D3E9C217E739B9A3E6ECE7C195862885549C2BC3\ -192BB07098BBC46623D46578FE0362134AECDD372375531AF491CE3BCAF286F9\ -D91A82606B7DD661BCF5C558C2C06FEEB4A48FC71A1DC8DCE92F77DC4F9477F4\ -17AE04:\ -26B0C5765CBD8D5BFE0BB2055CAC54D5261DB310F7F01BFF24C761E91287D6DD\ -6FE65BA5D2F46387AD338649920CA90EE40C139EB9B05BB77FA429CE90661C4E\ -BFF753FFB0CF9C6B81F2D0FDA2077AEA5706A3698D7140714604EEEFA195EE42\ -53F47080A4549CC560CD4ABC46DC1B589CC6ABC1505122CCEDA993AB59F2642F\ -D9D5EBEA41AF5E8AE395DE3F77239BCB9569C3E311330CF797717AEC89B272A7\ -1248E2865C927DCCD98D9FEDEDB8F872682DF41935BB1E5FA56797546D325BEE\ -ACFC2D73BD39771404AD4654F2D91652B266C8C2168AB1C85ADBB2EBFBBB782C\ -300DF4:\ -1AF15A49557AEB8D9B5DB578813FEF2B90F20A0C44A42F3AC11B71ED9F047921\ -401D4176A3DA1DC0C5833FB45977610B23C2D37A32A5A9778108976D63EFAAB0:\ -13042090CEC102EE1BA82EF07D3CC690 - -A09419A9CF48D3871D948FD40083168F7E9F51CEF2DF928E9B2CEDD7DE29F4D9\ -22182833EA7531D3CA8A4ED277A0D8A0DE1E9ABEDE595DC69867EBB006E74A02\ -2356C76CA508B8BE54E3E2F4E765998B8495F715B03D6C6F304E5D8EC64982AB\ -E34FCCF4E36FA43438803018A6BCC9EF880090F080D53C5011A4F6B0264D8335\ -124158EE84E861049B2A031BB4231CE1EA230C714FFE6BCB048013E02B8D84BC\ -5E35C5D6E59014E13FE6A03CC3543CF028417CAB8A629B237BD1FA8C5F4C474F\ -B4B13FB72EFF570D01157D091DA1F4F24CA96CF36F54BB781FEAF070348400F5\ -52E73A98:\ -DEB151765020FFB77E29EC9290AE63AE66C4A37FCF3825AC28388F5FEDC044E0\ -F2CB176C39F57938A617A94181F4E10690C78196DC1E2918A6E093F5D65E70C4\ -8C10EFBCB3D2A452C7C7A7D1B36FFBBDAA93B82E8D4EAB3B996FD7BB65D0667D\ -4D4B3E64626A0B37C34138BF4F7A6E29F03FE59AFAD5C9953D47EC64E9D34C17\ -E73506DD2424555B4C8120621A4A178B6C6EE6A414207FBEF6A6E24543E0D351\ -B710D579006CE3067CF9E2C95974D78FED31512D8571BF6134BE53EF1B363CF6\ -AE3C3695F34D17FB9161D36821D7E60B9E0BD2753C4BB237E97AE049C89A6E13\ -B9F98666:\ -381BE60317EF66B0087CEA6B553D2E553439D2DEEBAFA29E9316643E7BC59829\ -09B2E9EEA08604C754F143152B3505818CEDB529C080573178BE803E1FAE19B6:\ -8402587F5878EE9FB251B8FBB111A3C5 - -4CD0FC4FD0BA641A58D4D96AAA3F3A46E9B2273DB3277476BC9BCB67FBE9CCDA\ -01171F84FC1911F225DF5E1C147CF988A12F33204E7BA6AAF8CE2FEA57B0730D\ -DEB851A1A36C3CEFFFE7921041F9AFC6CCC7B9B08027CCB98621FAB24E059C55\ -8202118AA45B06C4D7440A4D075BE4E4440ED3E9B69A8351FCC89023B5679A02\ -6624F8F55376366C5111835E120FD7C099661E641D0311A1796711A3EA8AC9F8\ -102C2BD2F99273E4F847D626DB20666F7CC0B32B1A86023CA5A8B053C789346F\ -8C6A0615998B47EBD791FB944F9AB8CCD7C72B40F905C36E0EA55D5E5AA560CD\ -64978B8A75:\ -244079996958DAA3CAD92FE9683C17E7F22FE198C9B481F9229C4FF5756CBDB4\ -547049A9985F23A41BACD8DC84A93F29B8E34F8C4922C8E9640C52187BF817B8\ -B0300A9B291C648B41C246575ACC7C06A00E50AF824C12F3D2DE06451F508676\ -8EA14B87876DB103461B3DD6AF9E3B0B770CA3832D877EC73F567E7A42CE191A\ -DCF40FE08EB36F6A5DA0790AF6C0107BADF67711CA89FD0A2A45C8FBA6F7DDDF\ -260DEF3E180330C7BCD1FA5C1BF6210202A323B37883F08546D86E301B1A9CB2\ -BB91DE40F82CA568FF0B6D6EC58D7F64B412D1B8A798DA3FDB2DB05BDABC4AEF\ -B9F34A3A5E:\ -48CFC4A5ADF7E823291C54106FCB6F2DA50E24D2E184A5CBBD1C8B804C145C7A\ -9511EB31DCEA69AE3473C216D34975814357E1BC5D9D59DBA0E2F147AE008252:\ -61775FB9236455F8049283939B1C8E8B - -55052169AE5F934D73482F5B59807A8DC15F49BEBC828A6FF72568AC4FAE7A23\ -85D82CE7A46C930FA7A74E6C2FA3B247EB6F59D15339A473E5F4094E1F65C884\ -15CD3AD1ED1D611F99AA23F9EBA8642B90963A8F5167CBF1055D16A7AE39B08B\ -45E1EC30399A35CAC888A9011848B6C8ED8CA5D87C2FCAD1B20872750FD8B186\ -CBF80414971901AA919263367CAF80797B654F40AC309B4AA5668EAA4642F6FE\ -679AE887876BD0E1107DAFA42126C10DE61987627107534056E8F5A6C543C259\ -BD0904694A64445FDF88D7837E3E91051CE92C2E2EF38275BAECE50BF214B301\ -F2D9DED63913:\ -27E6D1787E4102D242BD2B5DCA9516EF931ED80B720D7A01E71AF88A276026C1\ -9538F51A3D3ADE757C814B85115072DE490C08516B2B5BEF6AC7EF47B7904183\ -6DF14EE11A11444F3303CD718E0CA65257F0AD0C45C7B35CBA0607C0F63DA6BD\ -98D252A0CC78C55EA980FF7A65E821FE00919C0B4F7D297C1E684DD968F0E7F8\ -A183FC84D43AACDDE017CCCF4C49709951D6124D32CC3935B849A139028825B0\ -5BA1B553C63F4FF85FA62B563B753A698731D6F8880BDAC123C191191C3E193F\ -85A6B59F3DA6C56E7DF39CEA9C0BE78A4A1D0E68F5D58A0767509901707D104A\ -35456C90909D:\ -8060B5563128C045386FFE9BF1F8B18B7E5F71984F6F0FCF4C109DFC03892AC3\ -043AA49059537B827D9EE51109BBC908034A96325A0FD1FB3A8B32858A5829F2:\ -AE91B76A65DD2FF40596DDCDAD8789D0 - -5D9F5ED753DF247B6E568117C89ACAAD756BF8999F3294D48B7380B4C650BF7D\ -CD694040A10B59648BA11437173F22733F89B12C520CAE574633C031487D4CEB\ -5E6BC8E61ED9F0DA492F2CA8544228416E316CE339814FBAAFF881450DC9A93F\ -E44A2E90B678EDA786145E7477FCBE9822FB2E74195ABC8A5A7F04DB47AE1EE4\ -697903F59B71B6E586B6DEB0F4794B1A2310CA07F631679FE6E67783FA3C93F1\ -2530D1EBAB62A84A52018D2AD55DB241024DAED00A43A004EB8672E48152B69A\ -FFF9ADAFFA465403ABA06C3E8A791CDC6D7B139C1E9CDFAE22DAD694F8CB31D5\ -17D7F0C575A32A:\ -8FFA678847702BD5D009A51E099D85620F8C0B6D0312614E0D926EA9B3200E82\ -055E01624094316FD2CA3A8D6F98D44343E4615AF7561423FE4864C21F82D894\ -4402CBFC90C0862468A866934A8A983BA7A102E5A1A8D0FC76452A09643C76B3\ -BD99A485953F10A69C9845B61467C583C5384EC885215215CB9A065D97EE4764\ -A293F73E57965E876DCB9094C171F06509A54E4E801FA0ADAB0E071FF0B85400\ -88A2B4C684B9271F70FA1DBFD6B7D4B81EF0B9C8059461BF4943AE59CEEE993C\ -E2653A032F977E1DCAC936843A2F59EFC32265269D43C38C6A4004219415E60C\ -FDF67943919D00:\ -169F3871F147E7BC5BBB2E1C8810808CD973CFEA0F7C3A126D7AA0A8514C53C2\ -B690C4FA06E0D4205F1F556C839897939022DB739CF925E16C39871DFF8D06FA:\ -B737D737EBE47D113625DF138D1FE2F7 - -993EC67AE7851538B136277E21A1F8433633345E118CAE117B45E27BB7559FC0\ -448F80FD61DAA0290F1090AF0DBE6E58687370619A1BF5234D47A298DF0DA546\ -2D38DA33AF5C8C6ABB37E07498E23A0390CBF37415162116A792B8530C421AFA\ -9AD4251A0101671B9F07D3DCD262EF2EDB00D7EE28BF82E4201E1854447B2ABC\ -C20B2EFBE26D3F7D35B73C64E33C6EC4B3E8C7FA6A815807673BB68F30D65EC1\ -4205759A40AAA6962AF4FCECA6583293A5FE70D9EA1F2743338DA5C5BE139140\ -5F30E025A1C3643BFB6ABAB4038F49015451BEC6E81FEFE7EBA8F0B4E370B750\ -2A769936F481F479:\ -33DA912E04453CFB58670E977FEB3488F386AB55BA973C8E47039322E5382F3F\ -9C3677F648394C556E1465F825ADAE200C1899B5EFF523D58B69899434E5B519\ -F26F98F93045DDA82046C036867BC86D66B2D4CCBB04D6F752749B308C22D4B7\ -69E5226DBF697EF7F9ADA1E5D665E65801927A7DC2D0B2D1940E4AD2CE976B67\ -6C8604C12EACE3B76A321F3DBD2425D0CB08C99408897E20C6D6AC61A0CA1A0B\ -0948F4C5B8D3E24F0303D7CF48916EF9C43A53DF40C5F54604B6985F4E8375A3\ -2E0CDDDD7A2E7D78777FD6FEB97549A2413EC5AC36F2A917F1B04074FEE84A5A\ -949ACB47E54D4893:\ -4B9C1FB18B46A36BCC2DFF9D5CB81542074BB24EB490B5080432C2BA095DCA22\ -0E6C52C6C29A010BD4E40420206BDC69B046B28A625937D07A44E21AD15D4CEA:\ -262476E43FAF79B40E3D790E10BF3973 - -A98C8CA7ABBEDCF0BD82FF89DBB9DB52E9AF07BDA7252054A74C2965750002AA\ -888EDE7206B9A8DD9A108F2365A22A80559A44D76A16DC4A7B969DB37BE3C4EF\ -831390B804B6937EB17ECA53A6CA6CA719D43407787AAA8C71A0D349BE3D1EC3\ -8B1EFDF316F1B4512E0EC7A24DB1D8EDAD448AD992DC5FF7F4D31109F9A33F64\ -C0EDF32D593C8248CEC38D79C8380684B96F569042343BB82B7098A235C16D5D\ -F57617EC73BDE4C5560F1D04B9E692181CB93E3DA0F2872F0F840614FEB674A1\ -4442025C388BCAA44427AD53E15826BB1744608CF830E97558CCF37B250F338D\ -C7BED023AE477BDB9F:\ -9BD1ECD532B5AEFB432B0F9BAC55FBBD2647FB137ACF078075AB31FBA1C46A9D\ -0D332EFEA8DC0D922A8AF2FE8049F8E5067AE8CCAC005540FBED877C17DA4998\ -39BA46CEE821DCAF37F653C7BDBB6F2671D90C26791C047912B7EEB60D7D6935\ -279C3F8B009F9642BD6F7015F29BAFB70219E95C4A2EDB98C31687ED7E5306AB\ -88666275BBBADBBC94B19ED669F2B5D5143C6EA4138994701FAF8D374B198047\ -EB39F9246CC0E14289C7AC1CB9EB0C51C7FA8C07B059DF58DD000635F0D02169\ -D5E31930E140A87859727279228A95A3E2D467E435FB58C1721B1AB7D0B3F195\ -C809F12A62200748C1:\ -B1F48DBE3C678DF01D16CAA8CC06C9F4213696380BD3469F4265AA9AB7FDC043\ -FC892170194D950D9AB3AEAC508836A07CDB6FB29D9CC4A2FD23267C515A63CC:\ -BE33C0927A2D2567EEA9F7D67076A422 - -8E370EA6ADF9A27086C9859A2E75DAD2586B4977C28B5AD3925F577C7EFEF51B\ -313C7B9BDCB9B35369A549C984B935CFE174351A326F3982DF4389A8902E6178\ -D5229C532FC9FF3B1CC299B94A5BF984CDA03F091852FAD110BBE2E7FF8E0299\ -B00F8C1336D41F8BE5086A49DF939E9C7B9E534D1475516613339807BBDD9DCE\ -B3118CAB26A430FF17961D629D7E2C4666F325E27FAA8CFA8040CF26CF2E2BFD\ -20731D9EC2A688ACA526FFC4307157C24FE3A02C219BC0647462DF122EE8D8BC\ -475AAD7FEA7072F54F23B3FA8EABE745E5B097061E1C6299D8300DE1620CCE10\ -829A07533629FC92ACFF:\ -F96E6FE4234FE39D56EE70D9BAB8C3B6F0A81774BD28A0A47505A00DA8037CE3\ -2E8B9DEE085416956F5BE415B2CE8BC6DA0E55A5E5C6F4A2D7CD2F2FC33DAAF2\ -06436760B525C85F166C802DC2B7CACA85706841E8F5EFB3D3DE198848B5C8F0\ -6D64812EB0EAFF4AD075F30DEA94F3EE967347688E921314D1B764457258B3D7\ -7D2F05F65DEB4415C49654C21C4562218D89009C4C0D9254FD92035406210EE8\ -7BA46418F16EA3971798A2FFB082774A20EA4301680D564DFF359301524B365F\ -3C5DCEB853826B6FE14C59AE00AE5CC1C3AB43A79225185F40297364A2CA23EB\ -129B8ED646B942C9466F:\ -BF85279B54CDB86BE5DC5E562CFEFE23CDA399B5A5D26A880CF2308172EB4937\ -B4661707EB476657C973431ACEB8DCE28B5E005FCCC660DEAE965F704E2805D7:\ -486DC46B6F20C779D9C02275B16FCCD6 - -B68CEA817ADD6ACB9CD5208C1941E3C9EEA46B65F7BAC167F8FC4B64DB363723\ -D32D1DAAF4B343BD0B081ABE7136DA05ADC200F5F0FB8B9D9FA9A3AA7AC15058\ -F876D5D7069C4583F9344BCDBE0FDCF3FDAE7D8A20DB53DB673F20C65EDD5384\ -16B9771B44FF03AC20C124DEB8B4D1796F2AB82C0E26CB7365668611BD3E2727\ -719480C6CBCC8E63165BFDAE741E638E90748F430510682510D9D870F9DF5325\ -7FA11EE28FE2DBED7EF11487D63ADDC2BA5745DE37588D9CF8F76CEB02F08B77\ -F7E4E960C3668688BE14ECC02E01C43AA6B086B97B081FC4D60BD5CEE15CCFC8\ -28CC90D595A80B5F373EFD:\ -468BB4682456362038E3FAE16208E6AE39DA3488F9109B1ECE0F66AD7434B95C\ -3D6384FF8D5DA7FA7A1D1CA0B1E064A027FF8214B5832723AF8D18C74FADE531\ -0B1FF85D751372D660921E9766770384106F992A68AC8BF3C9EBF92B39069AEB\ -3F39C825FAE33B16A98491F8BF1C667F98FE874D64F38CDA952C43B6932C4129\ -C5A862BBC5EB0CE594E4FBC24438CF9576FC101C92FC859E6CC002304DB21EF0\ -FBBA8A5F411EE7B71E1754710A93A6B630DA5F4ECD176A7FE5911DDFFFDC14E9\ -547857F981B0F7CF806AE14E5AF70C672EB6488FDB9B23A469E6D5D8B75F2606\ -13E20B1EE4139336C61D8A:\ -5B9F108E5237283F7604755A66C7039707A4F9684E2338CB7D6A482AFE2C9731\ -76A677F96070F3EE33B8D8D998FDA5F069DB484100203A12CD391A22BD8F7B29:\ -A5A790C40965B84AB067FA5922009E07 - -4FB59B1ED90C36CD0C28F2F0D279BB9D5E5D94A6DA04AF685486F390512E2019\ -B52D7A9071189802E4FFA2CA4E296326522550946D732A257931E26E36BFD41A\ -004C7F97BB5EC4EFD784B99B867A2F844B46BAF818C1E037C69211B582B50BE2\ -3144649A634AB38990C661ACB406D64555F14BEB519FCC3DC6BF8AA73185FF05\ -5A492B352D132FE7C78C03E24AC8B79192EF4CD66CAC6B016D4BF93A7A6CD4C6\ -0874668923ECAA457777EA1E54A6E98468D38249311F0851DCC4E19C9DF27104\ -960A7EF0201C275C3C655253A7A2EC6EA6646A3B902B5DDD8777DFF198CF53B7\ -DBC5C6C829D124E037B2EEB9:\ -91FEAF2306AE92DF99A5D413C986D7D06B45B2EA0E8E8553F4E7D04033B9686C\ -C92E6973D9879D2CA91298ED62658A0065373E8CA3866E8247CE35211531FCE1\ -6DBAD3BEAE1F7ECBD12DB50CD7A0FFD71EAF4D78B49D195152CC3554D7B0FE8E\ -D823EFCF8D50B04AC29A693545ECD0E28C9A86DD0792C28DB180AA49457255D9\ -6BF52366F9B7F8795C621115BB279A41C0BA8717F78E1D435CB95318E3D5135C\ -9547C282A1B6EFB3E45A7ED6FC4188AD287AF31A1A7E0A5575E6629DCD887FC1\ -A4588FCD72A3F0B583F54F4E2D935BC2B9AD2416054788C66FF9C26722DC2AC3\ -57D1FD5FFE8E0F62232D5979:\ -E67C49419F1D5222C82277968F4779384D5E14BCBA0D82E2CA08C89039698260\ -6877BBBED4910D4F528D8F88292A536ABB9A22C4DB0B1B83F39D378926E65C16:\ -39EB8A50A2F50973CD9CC50F40EC7BD1 - -9B0A6E6FA2F5E85790DD8FE601DF3FBC730594CB17F3C316121247D4FDA4BF3A\ -9BDDA606FC1C51677889C06BCC2DD0C62DF691DE07286C4F8ADC3F4A3C3484EB\ -781791A674DEF2AEAF1F16E0610976464F604FD39041F9F09BD8DA76C83372ED\ -74BA6FD68970BC4852AE4DCB36DE5B332247091292F5F30CE7082DD5BEF7832C\ -24A4383FB8393E621FD236E0FD4AC6A6EEFC4D8BE56119EC1B9A1A5957BC2B86\ -4472FCB49DF058D11214AB5D2D36E725D3723C98387F3843252F57E5C0B31005\ -2BE2F4717A36906BBC488F55CCB2579DFDF30196F9E8E76E71FD945EC72FCD95\ -BFF63B1C849FDC9ABB19D35F98:\ -33173B3AED526C3591DFE6E7B745958C09CD37F7AD339CA4297EADA1C0D05182\ -5919AF11A19D5ACE70D2E11847EF986464FFC76A7D990B44043491D36AB79F2D\ -96592B737CBB6E616AF7CBF7ABAEBFC802E275F211F3DBF2BEDBA6F4032F358B\ -F57471C0DADD4FDE43E79E43651CBB7AC1B569BB39A806C95DFD06917FA9D204\ -BED020CB0552F7397C3C367C33CB48402E64960FF0BDB1D136D93F35C86019E7\ -5899F6B1225A6710307D746B4D1FB785140E54C41C762CD096ACF58ED4E06774\ -9F6023A5D7DBA91DDDD2838089BD65EE101A9CB598C265517E2DEFA2FE037D80\ -80C0CDC07E491EC4F2268C352D:\ -4C6A5C8B9AABBBBAAF5CFD10B6AC195305658BDAB4004C1A2CC18C885BC9F2AB\ -D48760202A127337E407AEBAC65E034CA296514EE608EA316EFABA9FF200E7F4:\ -F46B3C066EDA800E22901E58AFF9342B - -F118B740E9FEC223D34AE72DDD8716234352DBD6EB95CE9B85A00DCC2B4EB4A3\ -B20462DC2BBBC7B04431F1AB72CE140F939AA3C11B32EA01E148497FA2F9D760\ -A87212918C3995102505618FFBFD5262310E8CA6EEE4BD0FB86B1A2FE02DB352\ -79ED8A4739F6F396F57027464F71EAFEF1E1B0D63EE4B5B79DE6BFC008E77FE5\ -EB588F803CE241B30BD48B06743E8D980858530B9922C59A5216EE13932C60EB\ -20CECFABB3185642F19F67265CCBDD85539FE4908EDDD654C45F7EB3ECAACBCA\ -9AC1F31BF0E31DC452DBC7EF40CA019CA2B21ECD26ED22185722A6E026485998\ -BA653617E34A9DA2E7C1687222E6:\ -7396FD2E8123BAC09944100181773B6FBDC073F42D2CAD9B62E6C548645F06C0\ -9A501978DE9040AFB4D07077EB937F132B033F46EE9B6FEBB5521DEE7F068DFC\ -5AD3E07655E10041251021F73039CCDDF6BD803D439DBFCC28F9BE26FF3BB172\ -58FDD5A4BFA3838741DDC93F3C880973BDCEBBF0DB7213AD378303EFF4E0F453\ -338E1B316A03F0D5F3758B1028E3BCF7DA00264DC2BAC3C01DC9CD2B05B2298E\ -2DD4A701A0345C096ADA401C28C54095185CA95C7C8572E92AA2B1D9523396E9\ -C0ABF49E2A99A64D27896708604C57698824C491ED3FDD5A3ECFF465AC9B33C1\ -5AF5171B12F5A69C2FC81F17541F:\ -B1D9AADD09F509BC9BFF419E371C734CAFE36CEB562D52316E0C654BE2725393\ -842A35BDC455F5D21B39109078348713E3D085D9164D036FF61711549EB75DDA:\ -C4E3E7806417443BEF2BAA322442D914 - -BAFF8BAD4027EE53B929B20A53DC09F593550E56BA260C95378819539279737C\ -1BB23613187BD077C4AB661AD688AB6D13FB6B6AA7D260B2B6B98D549A75BE38\ -D67FA934AD3CCC92BD87D86901DC475B9FB88833A5083172DBFEDA681FFEFC28\ -638E31C7F168D2278B75460A8F777718DD22A992731417879FCC33A0D11EBF3E\ -4D3FB426C053D647D4290AE61A0FC219FBC5E4D5EE0BD417EF425B2FFC2F3749\ -A7EEC397F4D1869F7207FDD33018684ED194C5FC540B3876710B2A611F73283C\ -BAACFACAF955AA9D837241C3AF2696E787139CD12E66361F4A0361E1C1C917F0\ -758023B913AF679F7C119FA9E96873:\ -BADEEB9DD59EA5BCE0705208F3576C6A4C8A4B5872FD259BDE0864BFF2FC414C\ -C535B7262BD4E90A3F4C0285AE70AEA2E2AD45DB2D35888B7123972E4D3979BC\ -F7ADC056360F8BA474EFADCB0F3D6BA52716B562F8364DACB6F2614A593EDA8B\ -CFAF85A1DAF1FFB972970FFACE83A4D0E9FDE6477A1E075152A63A06C47DB6B3\ -DF8D9196EFC0F94C457D4510963B799D422365DA5FD46BC14B444C05EDB95D0D\ -54FBA04CC3FA039390567D1D1F1277CA7268ADA9874CDD01AE390703DC76CF32\ -B797C30FCB627136617B87E093F76BB534FAB041C688CEDD8E0C62F147022AC3\ -2C8BE77E4663AFB238CEAF9E5B24BB:\ -442E1B62331D606EF0AA5CBFAB72538FF3A780E0F1C937FF74DC55486704FFBF\ -E16E93A4A8D9F4F0904270485398DC9FCAC96D165435DC5E06CC9CF7F4920CD9:\ -02F7BA33BB45EB68B442C12B791B7185 - -0D39B8516FAD8010419EC380123F1A9D416DD87CFAB9C4CE4B444C76B924AE46\ -1539BEEE41C9C7E0A226E33856253A9CCF4B4F4FF9C560D0D31DA2581FC0EEC3\ -DE64BB7A6825C5C422A1E97AA97595824EC61D8FC4CE816708FD82446478EA48\ -B3514D5A6788D1BFCB87558647F5151ADE70A0B900CCD32B39CC5915536FF888\ -943CBD1A5AB4E1F607AA6BCFECED73FF0E118BC6B9819597FE0088925D0BCAFA\ -96331C6B212460636EE6FE7D92237C560226C7187BBBE53E2F4752E5066B0E06\ -EF8E0B4724405840AB3FD7FBD19E3786EE8C280DE59A4D34682B217F39B24B59\ -1875C836845569E519BBE00E81A29946:\ -AD185526230E83DDDA6AD67353DB2E8508E1D6D54393268210A47D6086C41846\ -7BBFE8C3593CB544EDAAA750A68C6CD90B9AAD84D51149F4B506B74C9F3FD257\ -44E4FB7A7B84EB5D263AA828CF11A83053BF8B884301DA354A8019A86A04DDE1\ -EB578CC28BB61758E6835D22ACC3DB84D3FD7F92C866A71DE9B2CD48C8668301\ -9F6DCDE67DBE0BCE8F524D59E1BB372AAD5DC457FA4DD0DC50A5DE99E0FA9EB6\ -844FCA13C8D4F3B9735DCC93CF43890FB2029BAD90464809ACD5B0F63F87FC5A\ -2FC2FCF47B5B9B6C6CA28572061255E82BEA353353B909301FB1A1DD8274A158\ -2913829ADE95599393180F846F8A6B6E:\ -27F48E7753EAB3F9EB99BF76C80532415C7C01F8C7BA151694F7783F569BF103\ -A1CB71776AAA975BE0F2EFFEB825160FF0061EAB963341645F71DB9B60FC6110:\ -CA36082A7A37E54A96EA1C5610A58846 - -358CB82F5FEC1544203BA1B24F47A333DA1968646812C062D66CF9B35368D843\ -BEDCE6E8DD86F6417206E4343EAD88DBD47E80133441D738060A49194F69B492\ -9C5DF8C1E74F0F80328199ADE35B6D269833285D7D9373D1AE32DB5190F7F14B\ -6106D4251A7C4745C344F3F8397988428C14FCAB57D486E4F68FEA2AB7A39511\ -F0659A739ED7722DAD110BD29776F10700C0A16B260CBECFE9642FB1AD5B9105\ -FE2E9D175BA2D2122F5AE6514B6E4A20210EE5D036F9652CF582DD44F65C71E3\ -8488BEE6D4EF5B0FB6A40D68DF0CE00EC119C55C45CB0405A84BD4F366386846\ -43F6F97DE74BA8BCC4C03F41CA84F54B2B:\ -7FB17EC23C55F6151FE9D376BC3E5227068DB74E48F296A152303AEDB043BB55\ -8CA8415E0FB2F271E8F8F589E72643C7F3CB6982589225B158E5612E04B99CEB\ -909D2CDBAF9067BD5E2EAB1967EA1054FD3BA6D55D8B01E2358FDDD94E47CF74\ -DF1BFC613F49D2642725186DC2C4E1C2CE51885F373CA2A81604CEC4FB8BFA6B\ -2A57BAA46CEB759D14C26BCAAAF87DD1AA01CBFD53DFA53D7EE986AC70CE660D\ -86B4460118789694F7DF1029AC3DEE4F8FF04E6C474ADCE9ACB8F4B7CFF48947\ -D920826372B0877F293850D42540CF84E4A26D7453721AC406890CA4C3F96FD8\ -86FFF8D44D2DB0288FA154DA1B62E535BB:\ -25E2B8C88A0F8CAD2F66A7261A34869EBBF63A436A4A64E8EB2FDB39D2AD7697\ -1C981FC7DB4A7ADE918AB66D00AE3C06F7A38BAB2937D01756D4AF37887E9724:\ -9FBCEBF211BA9F0B6FB9A90AB2520A8F - -B3A1D5097071B378A9EDD5837F88BFE64CF820186B183B1F85A5B13FFB2334EF\ -B1D8B3E29B1BBBB2CE0BEF1070F1873FA75F33B2425906968D1761ED9B186CD0\ -34A851F662B3A0719E0ECCE1F7AEA86F9EF9469C61220F6BBAC363BFEF05493A\ -839B1962ABE241937EA64E4B4E0A73F8C20BD9BAABBB58477209A5C168EA4DEA\ -F3AE763E6138D845DDD6DA7E98F9C110798318E64905EB77F3673E71403AC2A8\ -EC18E7D261ADB7D497689FAC8CFFFADB0BE4E53459044D6D42BF7E977F1FD744\ -8DF152C530F9932B7A366EF95062E6B26E398B12AA322DCA7B6859219906D99A\ -F918553455140D9288F63BD7B988715A4539:\ -B74BB164D4A015FDDBA0D7CDE1F7A941A80743CA9CC57F4B20A5C20E4467802E\ -B47D652825F844D79B7F0061C53B3C169962FEF6C50739AF37E9D6C6D0EDAAEB\ -338BBE74B270EE58BB356F44E3EC9D44966DA8F7A6187C911271C22B275A4677\ -D31479AADC3D1F9C406EDA017B161F09763270E25E8F3300608329D98757FA6B\ -8683E67AF2346E6CD39B17F422833E91F47BC5D0BBF63D4961DEF6E0330A3427\ -59E859084B05B6C0981B8DCA0417FAB91E101423473007144564B008C74ACEBF\ -5A1DC1AC99E33FDEA99DADF1444EB065CFC021B64852ABBE903E14CC61257818\ -C6BC61348948EB05D3A283F5BEF38C6218D9:\ -9FAF194EC6AA5E6CA911A13252AB8719AD77F50ACCB426D6E567715C7BC5CB6A\ -C0A75A6EC870F00338549BDF1E6E309A5FEA74575F55DE4191A9D7CD23017E33:\ -1D07182FC4954198732B4AC989D44012 - -5A1AA96ECBB3C5C3E135831325444191F023D55F57C10C2F1851555BD333A854\ -25BD2850B2BC0CD46DA792BF541B3FD8614D1E1B031E2BC3864E18475C2E8C83\ -FB81AD05F59BB426BA17876E9050A02B63DBE2B7A8B6E5145DA9F5A1261DEAB8\ -793E89034E5F4201F9230C36FBDEC953BF3A5290BED68FEEE2C5EB68A46BAB12\ -1B5DBC840F5C6FE2F5E7B7CB97D880BA95304FBEE3A76D066BF874B6912479B1\ -5F45AF759A189D73120954F2B6EC8BE752551DFF00595E384765C00385DE5950\ -1D25F05243C3B721B6F5F8E80AA7338CB6A6C1F92A670600759C2AA3FCD1E350\ -762409D0C999ED1BDA7E00F5A85C857DB9D6BE:\ -25475474EA6E2043BEAB78EBEF2E4174B0AF2322D4C45EE9DBF6FBD04BB05059\ -5F894BFA57574071A0EA81491D816310CDA693C2020F14F3952DC14B20D270E4\ -636CABA1C6E3374EF91E048FE9CEE6776D767A579DFA42A5B7797523DADFEE65\ -25605A5281AD6A30BBFDDC32E7D2CC782A1C06264807E4E8966880DEF8F910AE\ -679F4CC0D52850C400192E70E60B496D9F3F94BEE515CFD74E28DC45CD054CA6\ -748350420DDB870FC139BA3D4F33253E5036D5A1BFAF91BB8433761AD43ABDD2\ -D995B4AE3E0D246925907A38F69D07AA57E4DAB26A0AC1EB1A9BA33CEC87C1FA\ -36B2309820A59032B134864F85F5F10390C94A:\ -6894A39E8F6B6657712E7F71F3E0E0E44507ECBB138EC3A7EDD33FC04DDF9EA5\ -5DA6666267E670E37B7C6CCF87DC2D2B0129627F190A75CB0AD527BC4ECAB443:\ -74E9B32C230BF80728C3D748E53E9E67 - -4BA6DE3707E14FFD21F3AF4E2C4CB03AAE76D32C39F03C1B5436BDBA57FD276E\ -527F93440F3BDBC2FA47F02CFF7182F07391EF0A458151E1E1C8291FBB9D0C0F\ -909ADDD916AF7E6101F62395F13EB1D1F2E78CB3B847230E38631C56E7A130A6\ -A506967AB287C8E3877ED25B4480574A04B371236546E21F90F9EE56E434C4CB\ -CE8F289C243191BD7D21AADD47C599D0B560CEA26CF7ABA5230C0CB308D82179\ -C405706D86552DD484B141623D6CFCDE54240130A87F755C81CB28D833683F12\ -5D6E55B97C2BE32BFE12793DBDDAEBC6E97BB357CD163C71730D3061BCC49A56\ -831035053B51F373D9FE6BD7C70755CE371F0985:\ -9A61431066681E479E1AAB08FFEA9B8210687A39ECB084C609FE34F61DFF7A1E\ -30324438931A5B4C5DF5D37F5ED94E90CF9D6C33D993B6B63129FD8E7F01125C\ -23E9CD03EFD5EBB65C887E527D9E64DE2B736E61F094CCF3756DA7378185CDAB\ -2EAB41B490F3A42FFC626B32672131325FE3724EDBF4A0EDE7A69F51DA235479\ -CE4BD74355E066E88F2541C7FF7B4023E6C10E680B64A682CE0280CEA3765014\ -326AD244B4F2FCD136637C859881E2125E25AA0DB6685A3A76BC3259D375176F\ -CB3D59295B2211C66ABCCB777729F8FBAC5BB8CBE7F30D412354D23BFCE03F16\ -0AB296CD20BA976F78B0BEC6A25A8E8ABC80E6AB:\ -0CB5720653ABD543CF56405DFBE9E16F4C1F3FA85F6056621FFFDC660D14F460\ -0C264A246CD7D3DFE72A7A6E2E92DE3E5C1BD269F85822C2A53B4F030B347D08:\ -09F2EF7BBF205D0D19C631099B4DF108 - -21E04706952DBE1139F0D5BB48607E166FFAB49106D572C3A157518189C9C75C\ -B5EEEE4F48B66781900D757A6CF867575F2DC01B96D453E3C146B20EC1365416\ -01C1A1DBF73B8B0BD70510BC267767A69F6E76824D9BF872F8DC197C8992B9F7\ -3D39BA8A3EFBBA43765245E9F9694D16A65CF30955F3252B30EAD9E61D96759A\ -8711ED527EBDBE0DA3A868F4C86965325F3816ABFCE2861878DC18D29396E166\ -4EC717935708F8E17F0553A1C0AE8D51C2A6899412130021A1CA8E9157CAFEF5\ -78FBAF304016D4B9DA8CF076C8B9D21FCDD5F0789F85E6E5410ABE32A702F77E\ -004E7E38AB4EBB9D837DA601D9B2A0FAA9E1B17CC1:\ -6CDF3A7C9B35B6763DDFE061E3EF275DE2DE317FCDF8082CB1E9748FBF645D20\ -25B035DDAEDBA18B1140384B0311B1EC746C10A461D89D4802D05297C57313DB\ -1CA0005580A00FCF4127B2406AD66F4CED6C15C61B8543D65CE8C87244BD9F4A\ -12686015CF2F1051CDBF84141AE68B38A09133152BD2D6E6A8288DBA5FD33FE0\ -2AC7DB872D3C7D14B8D4C142A99354115E69F7702221E8178E8832EC478FC388\ -C9B73CC383F6FAD68AD68C6D555CEB9B14860A9A38A501EAA2F34226B390344D\ -220097809356DDBD8AE01464A228D3C8BB9711133E7B4A6EC9A0CDA7AFE0D90F\ -E2BD7C97003692249452C1D4EE723F9F9C93A6BBBE:\ -65CA2CC54575DE5EA0C216C07797381D5FB65A9D334B94F3CC0B19DE8197D724\ -1B9A666BC1F8A3146F64850F503C8FFA4177E22AD8A9A5CB55FF7451DA3D4ED0:\ -ACC65AE9781DBBA0B21188A18AF04BF4 - -B1F770905E832BF875484FEE15A26F8A0014A614CA9D74FB1594DF831802C3EA\ -53FE84804766C6DC4BF4D02F5D01ADB41C40B2510EE26615DFD979D470736911\ -AB6FD0273CE3F6D982646051985AA6D332FAF260D53C57DE0F6E84E685775AC6\ -D300C36B871520548AB57D990CFDC2D6A1F1839540066B7F2103D4554490E76A\ -A70CD15AD45605D14B1AB1D15294D7C1AEBFABDE479380EB1527F7306CC9A7A5\ -6EDDA752050AB8C72D793B36F02A3431D8F8B4C9F6998CB05CE803477F36367B\ -671DFBFCD50D4EFA21E937F86CADD0BFFB434A7E309727C1DB30A2924DEEAAE6\ -42E49447D5EACAEF29A5A4EC5D0C68269FDCDBAD0794:\ -02121075F6F40403F77EA8B9596CF8DF247BB25D3CC6F0F0362C000430CA63EA\ -3D26ED1C5946E86F7C8A04A3F26D96CBAA130A636FB629B22B2C6A394995BC4F\ -832527BC33EF415ACE90A92D9164D2079D21F439DB9CEB3BC63F6BCB6ABE08E2\ -282CCFEEF210AC25F3443646C3E92A31D9EF2D7B9BBD1F0BA812DCAA643CBD89\ -183AD44E8F08C0920BC07A05C2FA80626A85CBFC8063B662F8D09F8F6AC83CCD\ -807B5B98DE32012D1C91EBE313FE6811D4AA366B0E01A3B71B1981CE320A7D17\ -BE524EEDB9D68123A2E36E6FD83DB65CB4E9271FEECD82959572314D38C31245\ -4F3EC73652B030C49E6B08759B87549444E1CF99F587:\ -3834A666AD82D3E981740807F4EDA8B85A43B33B24BEC0DAB23E534191CE396C\ -BD7CDA5344D324FA735C391FC4909183289F11DB275431FB019DE9D984DE983C:\ -F2F696A6B2DFFBCB20A62D2F37378E85 - -E041C65BCE08FB8F211263845C478B2B8E3BB602226C90D364DDA7DF90A7AF0D\ -CCE5249FBD86B34FFB42CC7EA11ACC32FCC4C283DA90B5658DFC459D9162D1A6\ -CFB9F039A7770576DB8FDDC8DED46D0028FBDE949FF9CBB4BFC0B669E31D48C3\ -5F216B4A19A38B54B56CD6D2537B074CC68E1E3F5380D92103C547A62BAB4CD8\ -2AA2DA1DB3FC7854A1946ED8C1BFB77FA155507088B396987612CE4A3791D866\ -878C2A06FDDB309FB3585573565221A6CCF9CE3645C68909E022A8D6FA4C1A30\ -5EF998E1B5A389CB1C82DBC8AAE6141ADE34609D565BF10577271833E4968897\ -19026D543637472A7DAB0FEC68F83BD903AAC38605A041:\ -66BDDD3C18E60D5FB2FEF68782AF56D3ADEF6C604A690EFB0FC523B64DA53C14\ -CF05CD0561BB8FA24371ECB60E4B7D78F43AFB352B7946BC880D90307D175FAB\ -5A6A1E7BFED40C334BF884D2A77CB0866D02EEC3BD1E9355E85E5E6F3DB94A33\ -8C27A028530EFDB109207F57CA91F5920146E463CF178F77E7535E7BA1E6EE6B\ -8861BDCD6EC00145754B4A0DA0F97F58ECB223192007DD008CC0F8C59C44A3F7\ -A19A4AF48E81F13AD5AA6E71B6B497B659EEB947009DD905F8ED34CD7F4EA69D\ -700040CB104C2E60F8654FD6E1CDF8A8550EEAC231B9CB3DBA9984902C61A531\ -8BD12839B39C27934EB4F0A4D0CCA9620DA569D7667D2A:\ -A0403EFD4F0B35C28E10BB35B47763AACD8548B792C46FCAFFD680A1FCDE4468\ -6E3A17283579ED029082A33EF635FF943FA6D1719FFF17DEBC1D29837AA21EB4:\ -C4D8B9557760CB777ACAAABC5309F74F - -99A35B8CBB3468CAAC183AC1F7C4992B3B8A051FC7431535DAF3A50260199EA8\ -8D23813F3B02E8F93969AF1020BAD0C709E927BD4F5B2AC2904C5BFCD376D68D\ -8F99164BF14CD9520E9C09161020D124FA6BFD3D37328BDC4915A7738EA9007F\ -19C0968EA8667EF7E89515DEEC810B843090E08946ECA12C16F66B29092CB7B7\ -DBF9E92430712CF507BA2F3FFE56359113D32400EB820912635AF043B1270EEB\ -33875F0A78CF01241FFF4404A778788B01DD58B6F9813EBA812378E8F1D69858\ -6F356D1C6A250A60F49F3F1ABB4468F35BF1D0197F186F4EA6B763396FC76003\ -D73A54CD24031E5BF45F04FABFF68A8C41170AFD58DF3D27:\ -AFE01B7B56E7CB1FD48F07E5F7C523AF7DBD20B5F7BDEE8BD3FC023C9C862DAA\ -CD83373311124E8716BCBF1DAAAE8A7832DA9CBC50B8237109F5115296DFFC9A\ -6ACC8ABD041A54B70D1D2437F1DB20EEF1974BA42144F6B48F16A49D955F34F9\ -2CF13CE98ADD4DA91B8C96E63A3CCEB96441CE5D47726748697901BA4DF2DDF2\ -0F87787FA467F5F718B801B04E005B5F2A9B592B4D836EE6CC22C63A126E45FA\ -419CA63D19B77EFDC30009FF279356D4BEF70546D73105EE2F5D98CB9B8A8802\ -52D094AAF9E9F0638EAAA3A6141AF1BF3923953BEB97A42B84F977CFA55D50AF\ -0C720D0B55574FD16FB96409CFB8D69176E25C796905FF45:\ -912CE1C64EB95CC07A798D2498723F2691C299D97B71FC103BF31ABDA26547BF\ -002BC1286DF4CD0190AB3D9406D1EE6400C022FDC68984E618D8017B3AC80F75:\ -D370B66E892B3B74D93B9AED10FAEC7D - -1D317168EC455679C436EC126E5DA02AE5DBD8F984A3907CE180CDFBD17BAB63\ -E42B15466E2A57A39B1544DC5508F3E34FB83EADE55DCC3315231760FDDB06CD\ -7A117DD153DEEB2C320871438685ABFF3F9F8DDE4E41F30C81D55448AD225468\ -B5E4BFD22E0B8BDD3D174D5133C6FE0D60BF48658FD108682F735E0B04BD2B2D\ -86E37CF5F72901BBA8ED0E7A9AD87659D1DA6FCABDDDB148C8272761B80B6A2A\ -8ECF37BF89B36BF89500756C6F481DB7C2BA4FCA1FC19B0119154E99172AD561\ -ED6C001FC1021F3F2F179FAE11FB380C49189CCCB01941B314B9775C131C2C7A\ -6EB531354C60F86C82AEA534E706093D3BB11D016A5838075C:\ -A3F7CBB2E8A0326FF75B80C4594DCE6CE266EF13B99D1FBF7FB34A77D5F857C7\ -21BAFE6C6C9D48C4CD1C8796111214433368D324B21C84EF82828A73F9EC8682\ -D9DFB9B4B428E14C9C16044EEDFB3F8C980636E6195BBBA9F0B92C94FDF6B274\ -FBF6C25F33962E57B4F94FA7FDE4B8FFC91D63F0189D4D9A010FAA3ACF444B00\ -B3A957D6219500C1885BF14EFD3E9879E0A5FA76FF3AD6F70BB4C0A87CDC1CFD\ -B082FE33F5FB6349CBD197271D81ED96D6A7820A69F0A907DEEFFDCBD655A245\ -47BA43AE78EAD99365BD0E836EFF16C789843A7F1E321C18E4D81BC334DBA3B3\ -57B1BD1107CD3DDE2E9BE8FCB9423C556A8FDFD07937705B8C:\ -8666320110FA484315410D173EC7F46D9C8527B8D0F702061C1CC524C33923E1\ -5E9D807277B323CE12A01D7E88041E47242C9BA86595C8F2CF212955FEDDA109:\ -47609FC73A46E39B8534D1E0E133C415 - -0D8F39796F3E3A18B928B368341684C7A4E7105C6447243D6E3C9A10562DE3A5\ -3F878AB599276D94B20B85372CC132CB2BB64278BBB7DF478138032EE2D56595\ -F0B01A915C73FA6B6EE6ED29FBA4AA74A73CD3B29DE16C6B177AA811897612C9\ -722EEB37D2C51FA0BDF2BB6B0D1AB7F0E636168EF6DFD9499B2EF05C475C231A\ -4CC63D2924942C817076E522FB6D8E5B7427EF49E4FA59C72C7C3FEB1458CF44\ -EB44042601EF3C0E1A3E17A52C2CA9A6E29C8DB633691F8A4A0FFA04BCBE6EC7\ -0F8028AA975A47F94B8455DADFA6F6D4F195B8D36377619C5872AB30DFBE8937\ -FDC740B96483F62DABA87B92AA7EB6E7600181F0C8C44A8977F3:\ -D8ED7819D1262A5B1579C694CF46132E13B82A25AF23B3ECEF5999A290993654\ -102500A024CA653258EA4581B1ED33182FEE3B91FDF0350CF991E22A876738FE\ -3AFFFFCF90AA3CAD3A462F08E92FAC53066EA8E41EB56B57AD696B3A4251B10D\ -A5A140CCB1AC09D2D969D9B8BFB0FECC72CA5EB8EA46D5EDE37480F269FA5CAD\ -08939B247124D49F1A929BAED9B021B1D0996E5F3EC22A7BEB37069A7495DC5A\ -4611D521FCBCDD4652C0412441A98146C56E6A9222EBE8C989869C77C6F0E37E\ -0BAA5FE9367635D937B3D274928A831362EFF700DAC6663D7F1600C2ECF299D7\ -D7CBEC3EFC82E453F7EDA0AF7385C2087A07731B9C61DA475D52:\ -249DD0E25FF78EC529608091F46CD9CE99CEC6B7B62D697174029CCF46AE0C4E\ -25A4BABB6878B083F66398325BDE5560FDA16A0EF8B230B61A84E80DFD278893:\ -BA52AADAFEDA198565D78AC8965A3633 - -F2408E4A597598BDEDAC5F66B877DA1A9C9B673EA3F95625035C5D74F3A82079\ -B7F39713AC3272532775478DEFA05BEAC846997F48C94C3B10A77559946FE96C\ -4F8957F7512EEFC60B599FDDFC46ACEBF46EDF156BFCA19B5928A0C518159F97\ -CCA85CE3F3738B2A6C9626F6EA87BD06B24F250E098768620E9E23FA87E828A3\ -2C03A36F90E228C4C71CAE3011B4B30ED16ED4C8DE6C534E2CC683FAC179F776\ -D524A3C128AC158349830E222E75F36AC6C404C53083DECA6AB852D5CFAECFC4\ -1E7FEB2D02EB47624B3C4972862C7C53BA6EE20EBFA2AA127E1E1759D983F5AF\ -3BDD793D8B6C13A42072A5976231A7C5B8435E145BAD599E422DA9:\ -E3877C96606320F9DC31CBEC621FFD5ADE7FF6770200998F04C1A94C816BFF0B\ -9D8E2033CD351982BE55D599BC2F3FBAD0159B57FED2CC82ACA9F20E7A96ABF4\ -DE4A308F2E589B84D91357812519BE6E37AD366A81FA1E4B74AB2122F38E79C8\ -B23120DECBF0D4BBAA7D1A9FB22216AD05AEA9165F2F8D427B3C77AB682B8CBD\ -4CDB960EEF145586E7F44E8EC4F7004AA028B3910075476B408C94216CBEE652\ -CAE307A5C05EEB1E20C37B66EB81A3DDD02A64DA5B857503B0ED2673D7A9C2F6\ -D36EE53B0F00B82FFC57A4591EC211D2EE8FF8419C3AD0E336A4E94EBA86FF3D\ -6D57C452E03A96E77CB24882F506C1B86623812043CF2C497051D2:\ -8950414F1BCB1E1544D93AB18F0E83153965C357FB26050948F33DECF9F9F5BB\ -F66683508118893287359273A85BF78A8236B65DE562C3FCDFD4550A11C75E3E:\ -CB53400A63F6B7D3186C49C6B5D065F1 - -DA3328D37C10F1086C15DA70960FFFAADFB7DF05D6E3571DE07FE15A260D5B99\ -0242820581E55FF826C0954548F4C0A4FE01A3A2998F3812EEFC4A69086575CE\ -8A0E42687BB45303734D77D84F9A890B830B5ACC74171CFB30C5BBA4ED207C08\ -7994EE29258B88CA29E278294C7A21E68348A3EA426E30E28B3A900712726050\ -CE2F40E31F9AFFCE4E42C28C29990D53D0514863A133A972EC26AE3AD8D0279E\ -02C96C00FE3CE5C40FFECC392B681F5349C77DD68470103113270091E7B596B8\ -926A143535DBC11B947281D725EDB073A9D7062715472FA1DB987CE8D36ED423\ -C2AADB5906C4D91784400E572AF75D471A64178715E4AE22B6EED796:\ -E317060435ADFC840E830F0C853A5369D30DD666E5ED98417409E546A891829F\ -DDF8A9E55284EAB364ED012B91DED2CDE5512220D6480FD64A78AD1C50170962\ -7AC3AB9416828973466FA127D0C6E168F42C8D0B60AD7ABAE72A8A8A19FCC6E1\ -3B65F5431869F61E4972E75E135025DEA54EA4933B6548320E398639BECB0F48\ -B2C4DE093FBFEDFD7CDB62A98CBC58F1C9F9581E1DACB1B6EFEA494C36D3A22C\ -5464612867466D19BE3E17CEE1140FFB3CC51CF6C3E3D0CB98DB5458CDB9CF69\ -E53BB57A2DCEDBBA2916E8E7C822254F0365B75D38CAE4C4DB97194E3EBEF5FB\ -0A1DA02D9D1ADA33CED23283F8DA97F1AD6050CF7BC4C824DD55A6C8:\ -50169CD100CCA22E4BF9E524770154CCFE9AD9EBFAE0C30C4641B73991ABA690\ -6592A2F3D0F2F48ABE13BEA89DC2B2EA93A5EDD8066BF1C31A4FB2006BD24EAE:\ -99D8AE326A10284D8FDDC06AA5F4BDF7 - -C22F2380493B5CC7EA4E59998252ACB600E61ECF8E6C2B121955C0F149DD9518\ -6EF33D66D573B6C6CF7EEE29F63CF1524CA027B67B30E92275D6F22CB81BE477\ -B002EC5ED16979BD696AB7A874866AD0171FF9B2D5F592617636CDD3A55C7857\ -8AD48CA803D73114C340B003D1BEF92993C3BD34ADB18AFD85BAB43C3720626B\ -A944243050868607C1795A453A13F132E035CD2B451E1B0AAD50FC27C5C1A3EF\ -7822AE6F530DB626B223E803584E23B6AF181E7AF4974ABAC12E42B44B56106D\ -D2FE49E08AACCD0DEBC1FFACA6DC3D277740059DDDB727EA1D7FD8C63B6FF768\ -FA2F0B8BD1C01D36CB5A190367EF7A78F1C790B50012C0FA24A3A6F995:\ -C80CB1B8AA44DDD9A7EB1D83074BE67B2E098C26BB1CB39113E3E14EFED0D337\ -0F645D43BA316060929338C549B908325BBBEEB8DA5DFCB1CC3EAAEEF471E424\ -7A2304786E1CBCC27052D267216F6AA741E7C392ECA0B9E83CA4EC13962853A0\ -E2A7F1C27D96D71C327777DF31A931525110D10EC33BDED7C7AD64FA05AFB97F\ -D91E31B4CE51740273E481640562201F2C19E67622D875573CFC0F9C4D31E882\ -B8CFE37541B0C4F072AD9E9F0261AE9D709A54C98572484DD42DAD163F33C1D6\ -254A80182934E8190AD1CB29F15D4913BAD2E7C93F7AA95C3782D50FAADC449D\ -A4AE98435EFA80BE52F80BF6DB60B27FDA6457E7426B0BA6393364F2F7:\ -FBDF921C80DA76FDF559BC8937823F8F7DB7096F164B9AFE49AC9268653A0736\ -1C62830DBD18A491DB9A7654E8C19613A284C35D7169D2E4DB3A3FE21B541C98:\ -FA8CF9134AC279FA9BEEB5110D322B72 - -263A9E751DDC9D7C8ABBABE64FFFE976C9BC41EB468B8319C94357AC1ABEFF93\ -6318CE13EB15EBF7E8E03340B7521EF7E83F68E22C40711A3227A05722B0F291\ -13DEFC3AAB5A078F1348035FF896DBF1AFD965B5E3788781994394A9B4004186\ -4AC70C6FA5B874024828F170DC039F8EC2D5B75F4469E16DFDF418E77E64BB6D\ -B444DBD58A06DA728632FDF1B4DBEC3B304DB33973768745B598739882003108\ -99FC8804AE157EAE270F4B8641A8A00A0B65A9D7B1C2C19301BA7B7DB39C9443\ -5FF3F0D1C59577ED3A71EA0AD377CE7FBEA781A876927C202249CF116B58740A\ -F6D93B57240EE900064C7F6227719E4737E9FFE3FCF42CAAF6EF326EE3BE:\ -58806A677977E5979EA8717ED88D5B141A6584839BF7B00D9C51D21C93463B8D\ -B59661EFD9E9925769DB1227B0AC23DBC3434E28DAD180B39A98C9876FB37DEF\ -3959A5B75E41AC5B339645F25A9D1E72A5CB01D5C4E5EB8129CF457D802F02CC\ -E979B42C2E288639EF8560D82A6A7F5D08FDC01B6AE4C0A0D3DFD4C34E146375\ -51D4731C9F780D09E22AE5AE5EAB5BCBCC9ECC35B3C546383722B3A74585ED67\ -9E8A9E58878F075858158784CE31A1C57C3A396C8D01431C41E102B41C6A8BFD\ -1AAD0AF3392414155DD615650C1388F2C158728FEADFDE384933F87B64E33204\ -6647522A67D5BDEBE4ED90577956B325107B837079A7D994102E78ABDED7:\ -BE5FA91C4BBB3884D6E5F8BC9EF746EAAC06BF3C093D68A2CEA6DB22A084E9E2\ -C63EA8FBB38D376C0B981637B712E5F2A46999FC7929A998FEC0A842AE40DC22:\ -8C5CD690539E81D98C73EB06645624D5 - -5F9E8D18BD77176BBFB38BB8A3427D899B24EF227C7FF3FE0EB545C3CFFA119E\ -687C72C865452F5E0D530CC96B79AD199D26F8E95D163C35C65CF7AFF4B62AE7\ -51FF396F895C4C5D3D4F243B9ED9CB291BD75EEC5A19976B26E0650AFD84F08A\ -487CB66AF7560C1C0D59DDE2C36BB7F9927A5073113D5D5BA2AF3012975C2B40\ -17BC50929C94C6222FB33B6C171B1D34D24C68EA1088F43C27F2D83D9366E4DF\ -3F6C675CAB04E9FB4B3B8613752A1E8F7A0D1030DA1C3E56D81A2E599AFC9E6B\ -2E084776F722D30B301132EF671BA32FA9E9ACE5007273DD94B2C393507832C9\ -233211740D2A173D4925C383AF898515155B27E9E08BA8D6F50CD60E8ABD8E:\ -5FCD2A960BA94A7BDE02789ADA3E2D25FF7AAEDE6BBF3267AAA6D99E276357D7\ -2DA671FDE45FC4A8414E47F913A4FC09DA9CC52C8F3538A47DC0E6DBA786A6BF\ -88F951E9E1CEDF38580177FC3B01F6B458E9B66876A46EEB457FD0FDEA030C6F\ -4ECAB1446607E8E4D95E89FC78A8E6650A6D849816F7AA3B322EF23452421D67\ -A33DE3867611EC24B7155EE33592D22364985D03A3D61DAF2CC8566EF9EDB63F\ -05270BD5C0D651306476DD62FAE9545DC1372E2E803D4617849BDEC2AB59B14D\ -4691E3C4B2D9F58BF083EB2D6A342AF825C67393B1C06E6952667F7D7D098DF7\ -FF709A83F3B36B1C84B4582EC3BAD62E01DCE7C14DD3580BB5B6EAE8F9F42A:\ -BFB8460C7B07214B606A4BA04ED62317A5770D110C84BC75B64D2AF31F76D00A\ -A2BBDCAE156A3EFD4604336BD3B690A592A5457511A8E3E4B6FC0DF8286E39EF:\ -7510B7E888B269F890C3371F636C4577 - -88CF2CD030D671A3407CC780E1229722F72271E9BBCDC01DFE11C94989AAE8EA\ -DF8BFDC610DB7EEA6F22D5599A81FAA2DC4895CDFFB30B65DB1A28DBF334FA5B\ -C7657D59F2A99C3BF96A713A0F0C984E93D9B3E566629D9327ACB2AE7078A026\ -ED4FE89BB0AD6DED7748FA222FDEEC3953A27892F6109BF67669AEB9D725542E\ -10C583AE3A00D9A2D0BB642BE1D553E7DEC70499B91F6C7906379B1CE62E4DB3\ -781BF9B40ECD87DC687E7EE5280EA0D338A62BDCE0315D69A801F45B6476008C\ -6B3FF9514B2ABD23B2A3177E41BFF3BC664C58FD09B8868D2C4DEC07B3B2769E\ -AD72C76EEADD4682A34C27DE98EB7817E36EE71A5EF9CB052DAFD65B9311ED1C:\ -E2047BCF89F120DD00E2AB2682E9798BBF01A16D3C55EBB5D12641BE5E43C69E\ -27CF8316A17BF17BA6F977B2E10CF8FDD9A1498EF440969590BC10139E909083\ -B2131B1DB88EF790A9541108A1C3CF6782CA7CA63C74A2E6BCDD1FB7A805C9A9\ -00ADDFC7B232CA7FFF09DA514ADFC666B1ACC86357AD2C12E9D6C2A8BC5C3AB8\ -C4DF5FD895C568BB824FC39DA96924054CB70B7CCB6DB1756143035D5D212522\ -5026303C3270E8FE0F83DD54DD12E133DEFC481157BB2BA5CD37A2B93C2B21F8\ -57ADDFF8CDDA74E1A713E8D4E44D30B8EDBD13B2AFB9CD1F2D97283F9F53888D\ -5B59F98C66DE5FA2950588DF3E3641C52517F6F0717C4F14F7F778E405F74AAC:\ -44765C5ED4BAA0FF3FCFC4B6E574E7C640A221F64B699C61D4A96BB405EFF36F\ -65A4957CA57D8EFA04EFCE61DE4F91F476F8951885AD50D842EAA74E9A75A577:\ -DA1A035D2F281D6962301C515C21AAAD - -53514C69746520666F726D6174203300040001010040202091E4F9BE00000000\ -0000000000000000000000020000000100000000000000000000000100000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -000000000D00000002033B00039F033B00000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000006202071717\ -170181237461626C657465737432746573743203435245415445205441424C45\ -20277465737432272028696420494E5445474552205052494D415259204B4559\ -2C206E616D6520544558542C206372656174696F6E74696D652054455854295F\ -01071715150181217461626C6574657374746573740243524541544520544142\ -4C45202774657374272028696420494E5445474552205052494D415259204B45\ -592C206E616D6520544558542C206372656174696F6E74696D65205445585429:\ -EF1F13233DE8092DDE062280F8CA8F480EC61DD555396F41FB8ED9444844F837\ -89933DCF9AEEC1933D3DBB4D54A26C329D7461ECDD009CAF263EDE40007F2673\ -6782D95B629205E87D4747FADA1434EE74DB09505C43230A0E700EFD012A5F80\ -8FC713FB22624AF804FA318BDAC382773E2653B4D576D0BC1A42F9652F56280D\ -A21CF82595137F9C472938F7519B6CC24708FD5409B75C5309E2C85294A2D182\ -2A218D9891D56696ABBF569906CA0452478628A719E3F11AB097D62D3FFB4549\ -576159282232655AB69CE1A4103DA8428F74D73E540A95ACBCF347D4EDD299FE\ -8ED90AB8F09D5D16B35BC5925E0B191DD753E2617B9085F108CE6B445F604CAF\ -2B266D5A10B460DE08A307D7CDE626D84412B8938B24EDBAFD98205978207014\ -4413A7C354F99D89CA475ECB626E7D93687A505B0F3E7D48823E4133E1C59465\ -56D55266A90F8C213ADFB020CA2D55462FA400B26B159306A5D3A4C91815C3E4\ -ECB8545E394099B330659E9B9C188AB09A53838AA8D0119ED9E55837BBDA655C\ -FD4096C4E2227287195602F32A8239D69DF555145F4EFF077F69366416F800DC\ -30C03C50DE4AFA12CFB4A8CD2E86B36D54CB44C3848FAD7917642551A85C76A3\ -A3C616D32B471B5775A1662B997D392D0B091570710B1CCDE49DCEE634EE3BC3\ -BC85ACEBB7F8551DAF5D15EF19A9DCD3CC9C82B46A4B9EFF8AAD0F8971A0F26D\ -C37E2DDBBD7603298654AD6CE0829EB76F0892E81C569A71343BA8EF767B70B8\ -A24ECF342B832483B7C9375D07BDDE2F1D6D4E6D28E997B1CEE1254F70D17F7C\ -24EFB08A3634802B37C8C0081F501EBE9346B9DFF3705A449B5517984DDBC2BC\ -91F626045EE89276C137233D8560B15C11592082D11935FF68A2ED6087527030\ -E4FC31F37680132CC53DAC81DC3636DB5068FBFA3B6923A2DC7CA617707944FC\ -D0CF81D092916AA54D5D26151C259FAA9AFCF9CD77A5E22FEBC019694205A1D3\ -F999E59F00D42F26FB5B9BE68B45F37DD664A2E9BA3336CA8A37BBC7EB452585\ -8FCCD69B746C7B8EFD534AF44028F915743FC858B45DD12D7F637FFFCCB431B3\ -DB609578811A67BB80D954A16B456792084E0E828CAB146A11A84DDBE4C79859\ -C9302FC55EBF8BFE8CD2B6214098549EA67FA52C8E0DF383F3532D87816C7452\ -A7AD571C213307961F786C45FA3AA89A0B66766EF0775904A66BC17DF3EB5646\ -0444EA22EB838A555D58EAE5DD0628581B9709738A1D9B2A3F66D4CA254FDE4D\ -EF8DE858574672F34BAEC851C58E58209C9019A32E0C728A866D04C1A5524689\ -C11C97302E3BE145486887E7E6F11581F6751DEBD01C28CBEE855CB58F69D794\ -5831AE82AF364ADD56CFA0C160CAB270D963CBF82E324409690597D80F152025\ -0B8254B29B09BA74E3700F9E614D37728C373C15C1E92D2674686D811507C34E:\ -9F7DC5DB8ECF4302325E0A993D761186BD59BD247615E560B704F8C9B6126A85:\ -2B1B7B6EAF72CA6F7F6CD1C0ED88DAD0 - -0D0000000503920003EA03D403BE03A803920000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000140504001B1F7769646765743235\ -74682074696D6532140404001B1F776964676574323474682074696D65321403\ -04001B1F776964676574323372642074696D6532140204001B1F776964676574\ -32326E642074696D6532140104001B1F776964676574323173742074696D6532:\ -3A88A5D687632C9EB390B37C721A2010006D31FC9D4E3D169D242E1E44A317C0\ -675566A5414EC5C5FB19FB10D329C9F8A0250AD8F07880459B98E079FBB1CA58\ -725EABB2CCD6427E14BA01580B402B9EE34C6B23CEE38F5AC5B50A8198C5441E\ -C3955B3290E2F7211C8B2970E3082EBFA1DA9233E0D94923D5F658A6BA1E0E5C\ -7FC01889E3486551180032304FE118BBF7484A487B20B356C89C2DC5C1C8DE94\ -882676B19FF952B3316B9C8C0187B5BF781D894AB1DE6E8537B57CAF45CF23E6\ -9B62B143E1AD9C47483525EB0D89AEAD9CAA731E6FB2A3ADFAB8C05E1F967460\ -B05ECD759B6485AEB2A87F8E9030AD6C01C1E3E7FB468C624C50B2A20A9564FF\ -5E1C164C0ADE0839099FF7AEA385AF3CD07D743B7C0812477AED4EE7EAF09AE2\ -45CB1A646F63A5B4A7741C1B223C73235A973FC08A7DA0B60D5B8BD8DA07C236\ -7DC32CDE9A468DE47570D8FE52BAA8088D75572671F227D8BF5031165581C7D0\ -24535729112182B38ABF9DBA5F15B3EC590A6BE6C4AEB987E851C9A850D8AA8D\ -E7CF93A60E8159130E94BCA5FB252A0089EABEFAB3E2FF77C7CB3193D3123CD2\ -929E336C2E183272F83AE13574A0595591619BCE9FBBBB5D9EAC69B5D8C8BBD1\ -27EA886544BF770DCD8FF9C96F0EBF63F9D9C20FC8F1962CAB0E5FA7D61CF41F\ -4F38A43E402FD91119ACD6F7EBB1BEE6D56C7BA2C014BF64018464E8D3938FC5\ -4F7A8B58A1B86C16859A9CDAFD5604954AC1BA17CC1057481FA8704FD3DA9B3E\ -EC91B850B9DB54B38F59438494A316A0D271D813C8B95FA21FE7776F112327F3\ -21D6DA9E1C2909CEE630856A53140D9905DA751F42BE351FCCEFBC44EB80F086\ -5A3EB6CB14A91471D9B0ACDFF0D65DA1CBB8E17E2234B20BA8D3555627A4356B\ -8C0D0851AB981DBFE79A293C242BF862D8487895D7B86DE8D77810D0AEDEC249\ -6063C9ECDC57B1D3B1B6BC54F9280984D532CF30CECFCF954B5D06DF949E405C\ -A68C12C2BC8584BAE50EAC0F98BD2D1E8B53237F10F414D61E90BF3FE927D950\ -8670D614EB1CFECF00C92AA3F50E2737F7BD3FB91C46D3677FC3F1EE03FE81EA\ -6E7ADCE6FCCF06719BF1385C6608D2F833CB926ADC03339D03CB45996B199BD9\ -C3B18AA60BD9841FBE5331CFF7544BCECFA79E44BAD1F8757DFCCE491267772F\ -0BFB4AE236E19DFE16BD166856851999614F38997EAB29EBA438D10FB7278FF3\ -1334B8AFA0D6CBDCA39DD2ABAF46560805BBD9F7B32A3C551A4BBEFEBABB8906\ -9640C7E310C0DD8BDA60641D2468E2C59933DF671C22B57190F973E8EF85F5C6\ -E05D89E412243366DC2947F3418198FF5A0A38A383354ACDB3B2D79E99E7F734\ -57A9EA05506307CFE13E8BB571B032DE8DD22F3DC33AE338185FC099E9A5693C\ -10B78D140F6B3BCD8F2ACBBADED84941AC3CFC8F2795BD94499B89E92E45B9C1:\ -9F7DC5DB8ECF4302325E0A993D761186BD59BD247615E560B704F8C9B6126A85:\ -92E8641C3A25F1A79D188D7DA317F4F1 - -[TripleDES/XTS] -# Generated by botan -596E8B3B889BF5BBF2:\ -1C908494BE7CB290D3:\ -AF6E340E3361AD76756D9A72426A505D619997310DB84D5658A274258C1BF0A0\ -090F10E4A2B8B02277074A4D7CC9037F:\ -08E28CABCCC505C4 - -8C8AEE061C0AE36B302D:\ -C0D0251F337EB231C842:\ -1608738E2FF0304610913244F0169AB59D6ECD9935AA8A77ADB8991E58B1272C\ -901BC83D3F0BD954CDEF7814748AA601:\ -A30CFB4EEC4D2A34 - -F73A9E54AE1ADCD0FE2E54:\ -F839F5EA2522AE88B392FC:\ -C365656F981EB0CACAB0EBCC6EA6019ADC10C34F962509185B9776544F1A007B\ -AD0C8328F761146F9AE9EE6C61FF62D7:\ -5068252132D6CB50 - -E29DE83CB476A22DE6D57E46:\ -40258CCA6843A3CF49148A35:\ -BB8AC3BE60C519B23B90428F0E9FD2D73669A3A73BED60108C50D496340BA80A\ -71720AC17D4731B6FF0ED6EFE094D0F8:\ -001FACE467C3EB77 - -9FC6E51A2CBCA2698126D60460:\ -7363B23A26CF19145C234A02F8:\ -EB0445C3EDB50EDE5983E6EBF65C3B09DC8440F021D73D0455E57B8FA676AE03\ -0006E7F5951F5C5D44A9077DF8FB0C6E:\ -9F66C0D8BDF9C2B8 - -A520559F992E750E2E15147C6B22:\ -4CDB658ECF92BAB32591547AE27F:\ -9773982582D9B42FDF323BB75884FE0C0F0E35DD8AC8C528211C49AFC3BD02CA\ -81F96106B585A45F177D407C8AF333E0:\ -7C823793374D30BE - -B74E78431E0FBE59FB2C51C452BFD9:\ -33ABB8C1D9D19F6EDD34E92C23A5D7:\ -2A034D1DD9F504C02D0998AD22CB171714C3B7C86A5A5CABD32ACD7F60FF3E7D\ -D87A56C67FA8B492A65F638938E23DD7:\ -6FD09D721BDD359E - -61AF7681ABAC4B4DFDDEB1CBADE74238:\ -DD7116B54A456CA51A2C980F0961CD52:\ -21DBB4BD072BC8A9A8A3102158EE6FAD4113962BDFA1E67BE069519765C07991\ -4B90E2CE9AF64D71FF99C1205D935A24:\ -671EAEE385AF636A - -0DEC0D07D0510061DAF8F6C80D77465C73:\ -6A98AF6621F2983106899B372D251D3186:\ -458DCD428BC0FD84152940EB98CC9992200CB63F5DC52F78F9BA2374B7FD7BB1\ -EF468120A4CA96CDE9116811D608DFAA:\ -D1ADC21B3819DFA0 - -81E22D517081F4E7DFD58E7299F58C266379:\ -C0C0BEBDC9A24C787870ABF119F521AE078A:\ -8AE0650EA3C6C0532A4102F1443C64C47B8AF78FCA98364D732D00FA5AFF9466\ -3C0B8E64D21B0654403E94708D2D8013:\ -7F0F1016C809CCA8 - -63799C2645261603ADB10942168DA814EA6B01:\ -F291293423FFF359AF694B7F52C5F78D76D516:\ -DA3285F760EE345205CD3F9EDD9D4DD73A80C334B9F61993AF481C90B941F88B\ -AEA2C5D81C0CC8C7A87F904D8E585FC0:\ -C21CBA5C380AA0BC - -02869B01FB21E4DF2AE861F797A5656F57862F79:\ -FACD3C19A2B76E2E1662914327826B8B9E7B2BDC:\ -D5AECEEFBC4E6DCCA4C1B2F9D1790C060C6248BD94C1D8A84225EC00D2FA1F69\ -BD572F775E164D4B9272EF596D3807D3:\ -526DCB9D29074750 - -7D6DC02743A82F9D2A7D9A3022A632CE0FDE60B5B2:\ -0C776B17EACB4491D2402615C1ACFE46FB59F58F15:\ -F8A1AFB23439C2FEF85E9BF6630F577134315689AEF881868489B0E1CB37664D\ -825613D7944F673759B4B243A4BA0D87:\ -1A07AD2392B75CD7 - -44E411A23B08D54ECDE8D99FCD089B3D6967F400A7D5:\ -472077106C01A21D1566DED9D7E7517259F40AA541AA:\ -07360896E279D84C8DAF2CA6C67B8D8DB30F31BA20734D9E4000D0AA4BC1F34F\ -8B433E598D0589B10CBF01F2FE23C4F9:\ -227F43BDAE4F3707 - -34A2E9FD808D0172666EE3FF26914747FD8C999FD9374B:\ -87B05D3D27567A568AAF740BC6FFD2BFB47081B6530F1C:\ -96C5700F7E8C16C9B199BE51191FDB317473CCAC75259E02A863557BE410DCD2\ -E558F81D8DCCFCCE5C7DC70FA50BAD2D:\ -5FD5D57479014B05 - -B2EF1DF1B8265B7F8BE3A18D650F8CEE98C23DBFA25BD95A:\ -D445FAB8CB5B88DD1E13D2DEECA82489B2732F1AFA9F59AF:\ -7FDD65967D0B8056686B59143AC98B86EA0C500EC4976A9B419935D6DB53B7A0\ -44DBE70C4B93D4FF9C85F8C7FB1003D8:\ -DD2E43A40E72EAFD - -AA45161FE3AFF8C8B5771AB2DB7E2C681F04E5E8C67B001692:\ -3FC6BCA03D56554DC2F598F142181626CB5E8059B024F93F80:\ -8198AF071EDAE7AA4C316C0AC2280AEA82BC9ED7FCF24ECA60BB559C1E6FA9A9\ -A3A02A2FE7DFBDA248CEC6727293AB6B:\ -D2F06EE207D0F0F3 - -80DD67385FC8D461D56D86AC9A5B33A47F39D50B61D037BD8A3D:\ -A1398181740E1379CFF3C1A4EF7DA9393774DE5C013A46FCFDB6:\ -7863321EE44162E3F5B8682F760CB1DABA793D9C893FCD0DA886B2D521F7742B\ -04243B0756748C46D87DB45F387C12FB:\ -AB47B3578C27415E - -2FDD45060594F923731CF7C6324AE59BBE6AF2896B8A9CDABC2D9C:\ -3374F534D071E05DD40CBAA7D45FFE22CB9003FC3E84CBDE3C8B07:\ -69AB8BC60B6227975A5E254F390F8AD8E3ED4DD1F20188E730B395450D9316CA\ -CFCC34EEA68CC008764B873A4E8A706B:\ -82FF3F21B16D5775 - -3615C1398B7EBE5FD4395E84D551B95A7967386E27AC52DCA3D8D56F:\ -2F0DA401A37C4C734DD30EAF2B5C1BD5648D15BC9B2868210621169F:\ -0F05EAEEB51C5967E5E1A7A8101819C8207912E869AA013E6BE32FB1A1C625C4\ -30E00292F50DBB0B23BDD8750EA11784:\ -D273A4E9CB94CBDC - -A252C9802B1F381238454AE68859A9C715B7AEDAF0278446B74807F97B:\ -D12A4A1B01B1E24247D3E5508965727A1CF0133F1AE9D0E90CFF03134F:\ -2796428CF1A8DDEA1246EE9D4BAC6531F4EB8EA3E665AE2EB1162F7698D9DC51\ -F9B3F15FB1DC836578B4956174150E91:\ -897E8D993BFF8360 - -AD8DBD8D62E6FB60508C216EC7B3F5BD9B4A9F6ECC6CC00E9420A1719889:\ -83CCCBF0FFCF4D4C833E79681497B32C60B1C18389AD5A954C48B5AB26EE:\ -89FCD9E0596A40B9017EBE37C3A75D3518285533173799A26E444B23F0E24DB0\ -70C3CC834D08851321DDA672F77FC7F5:\ -307156BC32557CAE - -D839E3ED9E55A7EC8B39C3F76C48D0094244CF5DE8FEC94D95EE079E73E8C7:\ -59A69254B79CE95A9F553E518DE078C2ED46386F19EA5D9ACCFD8F16B68724:\ -DB8D3FA7E248FDFD96B5964E4E2F6F724DB00A84B1A19AF47F57FA500DC14647\ -7788F837EDDD7E1E7E864864AB32645E:\ -ECE48F3741CE377C - -8ACD2DD2232484DE924ECFCA148CC2750BCF19AB5F4C0B842BC85136E1B39E6B:\ -9A9B148B87511D46D1B15DBB9F31D141EDE588F13A50446F718EDB32C9ECEDE3:\ -BA868E442E8ECF78CE897EF30B7298D0D88E14B7F6763F8779C39C6CEC9F7CC1\ -807A33562AD16F5F0A91381F3439492F:\ -CCD513E94A91A33A - -EEA5D0D5AECFA03A0DDBE6690C07706F10EC6B48EEB8697C4ED415D9EF96E732\ -D3:\ -090EBBE41E2E4510F33D584B4A66BD4DB8D24BDC379CBB07106B22AD87C7DF8D\ -77:\ -EC4194666285368994FE4A5020DA2E2F688D68DA5B06E143019B73CD49EFBF39\ -4E62260BEE0B71DD7EF133D88764945E:\ -80EFBAEC64855C45 - -FDA674EF51FDB463346AE936811187FA02AE6BBBB73DE0AC8E325D7DC1BFF369\ -7395:\ -A9CF988E41A71AB459DE50CBDEE960ACF6CF92F6AB5F82A8C34694E9B6067527\ -8E87:\ -C187193AECAA580064B8D1BA695B8CD78718391FA3BB85F9A6F8AA272AF939C2\ -8EEF434F27964D72424A722FCFB219C8:\ -114FFD04DEA7AE4E - -299778C0B4DD0CBC695BFD8EF0A7404ECFB340B2B6B6FDC469841E7F6AB487B4\ -AD92A9:\ -6AB6BB5D5E8918E8FC1FA83E3C3704C0827769E62D99221153E4554160CD5EAA\ -993DA6:\ -53338E70693A229B7C2111BCCA25452E931509A9F5CA6849C8EEBA3EE03B3639\ -FD040E24AB5CCBC422E072C2E9892382:\ -8A6BA30158DF0B51 - -B958D0F35BC231303EB05954159780EC464C006684122978ED6E6129F1E22C91\ -E7B23C61:\ -E1CFA7A037C067CED96497D993D677E4FC5DEB8FFC307267D4470B6C4D813105\ -61D9B310:\ -CE0BD9F37CBDDFAAACED8DB559D40DA79A5361E640C239F12F8A16829A65379C\ -BBCB07F973FC97967E00A3A50C3A58E4:\ -AD433310B6F024C9 - -6BF6C007F979445600FBB6FC8D83AB7AE997D491C4E08AD62C0F682C34CC513A\ -E04A9EDC7C:\ -26F53672104CA5BC1357580F7DAA433787BD1186232A3041AAF105176BCA0CA2\ -443A1EA78B:\ -5B4661B65F651D92536B55C24F9EED149127429F691FB69CFD0322204CC85705\ -BDAFA66FBC93ED49D0F4F22BF1789D93:\ -2459803996080DD4 - -76B85B9497522E19E1896532A979DF3F54E1EBBB23C72372B0558E590379AF3E\ -9C688086D491:\ -1C20111EB5B9D609CC22B5D58B6C8A7CB129D464B5896CC135B9609BBB2BDDBF\ -9B05C722D784:\ -6367E933F46B1A0C9633558C80A0CE46CB62E4E9D915267D26E0C83EF11FC5D0\ -4F8E9B95B10DEC7A0BF9282FE837E09B:\ -7B1677EBD6E0F200 - -4A0336EE63DDCEE33EBF257B4B0D6F0F897A088809EAF4BF6EF71C34876339D2\ -8744F1FE315BA4:\ -3867EF6DBE2714E6B92FC34C4A628F9CF069CF8B301F05C2E48698B560A82E65\ -F6665962ADB689:\ -5A68F18295A6F1132D97F51C3F74167394379974B725F143E583CF41CC554CBE\ -73CA5C3EFAF1AB5E05AD724B2A67982D:\ -97C444FCC79E3734 - -8AF292869468D24D2AEFC76EEED436DA13E134FCA8BC02560720485F756DD0CE\ -8369F365A67FA0CA:\ -33C50E860C301EE73E5B92DCAD1F0AC7B2884D4B8470B9B436EFC85D84AFE447\ -885772FA87105B0A:\ -9EA75A5CF2A1E94DA68B5551873D3CB24B7708339E33D9487324A6A17CB4DB2C\ -B5D3ADF181614749420DEC2047E69D37:\ -52564631370A6DA1 - -C72EFF80BB0F2DEAA0FB855DDA8DF7D38F7B00EC1A7F6119FFBE8B2BAD113E6E\ -70875ED1E294A05B09:\ -F6C2C21ED43C03365259572B2B4775025DCBDF0240C8B5BA21D44B4C1DAEACEE\ -2D59F2FD82334FB2A3:\ -D2500D053E6F039C33D5849CD266970050445CF82D394AB5849AE9BE83F2FE3D\ -CBB1DD5050D41680AE98C103E758DCDF:\ -B345479C897450FB - -7BF9F9A04A2445E66BBF2B6C79E988EEC58D5E6F556904147D0C8C09F9A1B8C3\ -349269C30FC4713942D6:\ -E5D1982759140D0D8C4CF4D52C18D17FEAB91B15B454FF60DD5145C09BB92041\ -F570A33BDEF53C45A239:\ -765720903C07FDCC34AF41D64D729F2CDC8B8FE4AFE83D5133E4D0A380769FF6\ -FBB49CBACA8438AB9A34B856D83F1474:\ -BB0AD4434EEB88CA - -EBFB3E083BD1B0B0620579C6349AAEF641C0231B28AFA0CBE8E759F32486A113\ -EAB2EC27E749D46677889C:\ -0A5E9ABEEB628B6C0FA4F61AB3EC581C1DDD7F3BCB8B0F40D42D2EF42E86E341\ -327BBA97010A2DD2B4BA4C:\ -DCAFCD9744FBF18B1351F1021612240B1B4333BFE0C8A638210A730FEFFAF0A5\ -B2C9769322ED84CC084D1B11142F8167:\ -68A426CAE0CFF7D8 - -3814FE7BB60CAE10DE6B3DE6E5F6EC269B9FE5B61F775FF89350D13B8764F0F4\ -119C423FEBC3ED3A9A0A3044:\ -FB620A3222605A767FE6C7A9505FCFB6FFDD7FDEE7C4C1784EFA1B38D27FBFB2\ -2FC16F8F75FC6BC666A7AEB9:\ -B1926DFE6503F66BE119D426827FF29B734211C4B86C28614E567BAABE7F4CB5\ -4D3378C9DAF57422FC76CFD1125D0217:\ -F2BD1D54869CBFC9 - -9B4337D32C2F17BC68D2FCF4021F841FABDC758EE66372C3AEDF000305DE591F\ -8590B0F4D07FE007E1C30D31F3:\ -B4B0F4DF9160AC2A51E72FADDF9740099D0F81DA1B123B0877329877FD74C6B6\ -362DCD4152CA28496BCF5D5D1E:\ -7128048D53AB24CAFBF106CA749DC404D72765C14DEFF45B184E23A8908E9B66\ -B44EE78A8870E6080CE9D199372E1BAF:\ -5394BD5C1B6259EA - -C41D6960D546C18B44078A295A6743132814ED943949F3CE620B17DC536EA7E7\ -7AD5818E38C5C8462313A1564DBA:\ -A9AA8A908C8EAD3EF3A3A088A214C321F27F99E54604F5806E43506B0D0A2760\ -471A41EAB66A2B536DA999B3F19E:\ -E4D43CFBCEF4A861633ADF96835953E3B504B01C5C7BC9810C0A26DD55863F62\ -110DD3A53F5824B16027D5C77CE062BD:\ -C74532FB9F255125 - -BC5DD6D4AE7FEF35BB0686CC95AF9CAA46E6F2121D9BDF5415C9FF1E4CAF05CE\ -18D108914D7247C82E15C2BA3C9998:\ -9DD61DCD613FEE8DE8841E94A2C8A0412AD2B36B408F73BDFC12717A68C7671C\ -F50F40BAA6E74F9BCD8AEC4C62206E:\ -AC54274FE612D4D4A05673847593EB07CBFAFD2735B30AF6155A72075C195E3B\ -A975808E61EE1EB16757D2D5076FB923:\ -61F8987DDC762217 - -CE18C25075B4C1558F0A40A572A98BF90F99C7A943F205AAE5A3C2CAAAAB8264\ -6F0BD2F24EDB944F44F6DB2B987BB50C:\ -DA9212F2A27188A29AC9E696BAF55464399CB5FBDD0DE2343B9BC1CFAFFE0AEB\ -69B36B16A3FE9E145616B5FCE2CECCDE:\ -2E76801DDCB5C54A596F0FED1B2949AF267F57DE2208CFB819AF58D8A39DC63F\ -4D24D3796D3B6F6CCE1C429ACE1450BE:\ -ED3BE87AA83663F3 - -9F0C08508318031CBC205F7CBB7C5B71F653A6A5ED414269B63AB51274899A36\ -CD9347175A41D1E48067C6825EB2C08E05:\ -EC310F36CF71EEBA986B38FD54A3C8DB8541D955DF150B36AA71BD2C318E23D7\ -7E9407C7C299509F08E96DD974DF0EBBB1:\ -DDC4555F64F09723D423F89DF90FBFE51B1B7E25DDC4D33B8E91416F772621FE\ -2103B45C9F01BA7ED79B987E080DEF37:\ -6B597FC12C2E50E7 - -7124FAD711B1C3E3E5087E49BF9A1CA98673C7C5592AD8E9314AE71666AB653F\ -4816C97EAA9E50FB230EE984E41124F27028:\ -50524698ADA62763B48BAEB8C1B416CE7A904386A65BC6B58A5076E23C9C3246\ -481799F279F1A121E0876709DD8CC86D2556:\ -B0F597ECE1F8F996C4F6FD3E9FA95C866E95C31083C11D80084B99FC74576825\ -51F52A011FC3B9AB96F43E64EFDBFC58:\ -F64A6E9F42E164DB - -FE763D8179B6777D0ADA001F584956CD0ADAACFC6E07666218A5EDA14E41E3A5\ -44354C78498CB9D2729E559524D704205ACACC:\ -BAAEECF33E93BC5123099C33D5AB194A944782E2C3CEE9BACC97DAA54632CC0D\ -6D2DE89F924FA4216D8DA11CF0D4F3B993E7F5:\ -CE9BC717716E45E1B2EB93A5AD9EE1249909CE903BE15AC4A398B95F434DC495\ -4BAC7592877888D739E464492AC02E02:\ -E0A6F81C00EA6A69 - -8087C8ED9118E03A20747317DD147488DB5C2E2D43543FCF49E0A26FF4789BF7\ -C76334F6615A0670D0600F295876027A7C2693E9:\ -C0615E9A540CB52C92C397B986454B688D85FF9EE193329426CCE3B0CD817263\ -C038002B33D32BCED3B88C04972EE938B130E787:\ -7F47ADE7334964A04008B731061B452C77FF8E170FFA41BB54F51801BA1B933E\ -38788F8251F9B3A2BED52A204C312DA3:\ -BA9CF264B4EB2A47 - -20EA772DC8F686BFC66E82A02B1CC505CDADA444D3D9B9F63E1AEB6E752765DD\ -394EC68264152B50B4356C1DD41C4B56966BB3C66A:\ -051929AC82505C3594A3A13E3D6CEEA2AFDF31A4FD0C2627C69321ABAC37784B\ -297AD55134B5D379021AAFCAB9BEA0E08C508CE324:\ -7BF4EB01A8ED3EF99E58173B61EDBE5247ADB52CC1CA2375E239747CA4E56675\ -D5EE7910EEF6A283C576DF9A67DFE3A5:\ -B12704B4C7A8E537 - -B305C979FFE7BFA16A18CD2050547B39EAC2446D9013AF6649A04296FE3F2660\ -B4C973FC5D7F152CEB519F2B85E46409132DC51FBCA4:\ -438F74156B7FCF48132B50FC8217CEB943937727DF55C1178D447BB47DE2807B\ -4161B3C35B0E4E22ABFDC7C0E6C6AE3AD3979921DF8A:\ -604F13BDCA8FDFF10CF0D55EC09DD03C8E935595B47D30174F87B53D1E7B7ECF\ -1048BEF3D4CDC435C7AED84D8B1AFDC6:\ -D31DF8D646F20BD6 - -4C8266370CA735C9E60C92B34A5CF59E1914AD741AF71A618BA24EDBF9B325AB\ -E06D223B0D22B60534E69F165C0698BCE92B271340E4FC:\ -33FAB26D0F56F4E86922FFCAE59B3C5F4809BADB5422AFE2FADCA8F98E7B9DB3\ -147D2FD21C63C212F61E6DACF5EC58302F479A3832686C:\ -C6C183AA28ABDAC87EBCBFA70ADDC058BF7511BFE526FA59126204300328B1D3\ -8A22B64D6F4102E6D7BE50DD955E54CE:\ -00F7AD947D2D8D23 - -B825E025DAC722B990F294A7C2346D407A1D335768575A26AE8C7A0183118229\ -C17F5D1DD117BCBF36CF673E7042ECE70F033EF21488AB23:\ -2949703DCAC361526436DC494B9857FCBA4BB1704A7F26C34FFD5E3E7D4C45A3\ -10C361FBD5DF17A7B3AEC752FF612C8846445163BA75992A:\ -39558A42B17B0F10E3F8B3764A9AAC435AB995866771605924F54EF00EB2B88F\ -BDD9990346499DE4642150BEEA76CA43:\ -94010C456BD7FE52 - -608DB3842BE258F19115A98EC085FB84CAFB02B20F85750D549627C4C85C447D\ -3481AA5A64C8422E88CF41A76F6E36071141A4C9F7BF0963DB:\ -6CFE5F780EAD2ABC377D179978FDD085EE4363DD40ACC0638DEFD1994C7D430A\ -C6E0008E4BBA4D1D30D9580CCD7422C02DCD93D72E95083344:\ -A422F5FB8730DC6268916618FC1C1AAEA5B4FF893BACE974835671684F757484\ -7F0EAFA0AB44BDA321751980C01A6DFD:\ -962794CF1D474EA7 - -77ADB2F576D4A7CD951389A057FA5CA855B7F06E3940502BC278FF6BA759500E\ -1B2AD113F7B8BE187455700C2E10F55FF7E49C8A5F5E9F0F985F:\ -5705801A8A555BCF56FF4AFF1523C05810797F1F1FBB5272BF7AA3E3284321CE\ -DEF96F37F1888EFC5D2629ADC0D69079B59F8D98EF2044CFC172:\ -D2C95AF5FBEECED20892DB9C0C57A5283F53454CEC8E5A5D7354287F27F2AF46\ -8057353D8BA389F13BD777F98A3AC2E7:\ -DB4A8E90D80EA230 - -96B8FA71CE93C90BC6AAA009CEF365367A5D5C52CBCCDDFE185A848BFDED03E5\ -64FBD769E56992A0D339D8EAEF2FFEE326631D74F8E6B87AE77F39:\ -81D0D4025BD9D3ACB161B938EEB37BBDD3FDC5DF2DDEF36282D94A791FA59D5A\ -EA1964499987968066865D66A9BE47696BE585310D52FA32AE7452:\ -B33E02A74B493C1AADF8B3E76220840347F7A6806B7BC4B3C359393C0644B6C0\ -BA75DE92B562C1B743B42D0FE45F80DE:\ -854DB904B4E1DA80 - -05F03AD7E91D1AF05D86DF61FD4349518255390E7BCB9267F12932E05013B9AB\ -D32B3E9DFDAA58E1BE470D9F3F075DC29406B6617B67B4135C50E114:\ -76EBD2C33DA09E65BD24B1EE18C421621B3162BB35D23156359B02B6924C82B8\ -66CD87A1256A1318418A993F6D61101737AB5CC8DFA7A05AE3F22C64:\ -F7716AD1D000B4DD875851519F0097709C09B6200D8BA9DB6F487684B0B4FA0E\ -4D1B1D2FDD247E224CF56EEF3FE05ECE:\ -E5D4038BCD2DCACB - -4127143844722CE1FCBD8BF9468CBEEB347BFA24E082D131C2C2C787457F46ED\ -2FE674B2F323D6588FF9B6326108291BA2DB11EBBDE3D7FCB313BAF0B8:\ -5E784B084FCC0B7D9C8A9277472C551F4A2A50D47B832BA021305C289A719CCC\ -BDA0F724D6771EB7F9B00E9E4019724408BDA28F2D34896063AB4BBAE4:\ -CCEB436B623C2BF464BABF01AC88F9D9BB09AF44AED4A0D210A1B5AD3C724BBD\ -3BCC43C077FCD7255112F811A96C7553:\ -EBF874E8A1D35ED3 - -F87DCA3EDB085856542104A39C842F2491A78965751F41257F131FF937B1E425\ -CB358B6DB36C7E2AF8D44A4EFDA64DD3B627557E4F862EC2038143927C99:\ -CA18DCF6397F0946A4E8A557B86FE090F032BDD69D4323851025921A1599BC50\ -A12C61BD54BDAA7D4D7D16AD539FA2403D7D0F0CAE162AE0D6773EE94BD0:\ -D5B36B7A57B2A817148A905A781BF015B2F12EAFBDA9575D2B0EE777792DF576\ -D3C3B596659FEF5A66521C1E9165C65A:\ -289BA40CE084C8D5 - -A51793C51C9FAA514DB11AAF93AC334A7F810DFCBBE0728498B396BE7BCB96BE\ -15F63AB2AAC71D343B73A34129EFAA11B52EBB2C77B93FF813EB1F35486787:\ -547B0C7917CB199809BD8F8ED7E783E4550A44FE042470B2C1D729C7455E19C7\ -CAD27F64F5CC59492BA72A403C57ECBB42E34C48043A24B176D358883B2DD0:\ -CA46EAFB21A4F619DD77A9E1562D8ED1B88418F9514D82CD5C4EFD2183EDFD16\ -3028A31125AE86A14E702D9990E058B7:\ -8A85176A33215451 - -6644341E891F31A165A430025E3CC1C8890028189DEAB8662539BEF058519A4D\ -350A46E26C04D14D5BB526B9EFE0718F5E8BF28788BBB90342004DF0E15ED2E8:\ -41C9A09B2640B5938132A50C2F400EBA6680115FA76278F82D2615E3C4BD22A9\ -10F20F00B4965FEB3AED28367B888041E7EF4730E9046BA21438CFD27B5CB71F:\ -3E039B20F4178C25C9F45CF8C4C9098CC8C2B61D25F9F4492280074C4E6DF7FD\ -770D0A78175A63E4FF19B9A72278A15C:\ -EC0A8C77E6E1E39B - -595CF308FEC3BA026D24ADB2C3358B3A69E9DB297A55B5A5995D0096D59E2068\ -94FF10CCB74B2C0DFC6936CBB515FD2B2B3A3BD0826CC002ED25E862E52FDC9F\ -2A:\ -9AE1B1A56C2E6ECED863F6AB6966A4048F54AD79FF9A8E4377F6B2E1D2EEF799\ -9C7F41076FA7DABECB6DCC4355534E5A42529F2E9008EEA7FD69D3EB2F6666D5\ -C4:\ -25D2754D0E2F106DB93EC27F47168972C8DD54FB97E12312909AE6C236A104D0\ -A339FB793B1CC9C8227EBF2BBA8C154A:\ -6D0F264395890B48 - -15335851AC3B41ECBB11C1853F1262F4D146F09BA95EE5E61BFBDA5912D6D76C\ -8B53246A8AD03A6BBC2EE3523170C2E13E9A6D7622F1AFCB1512F06DF78D65C4\ -0421:\ -DC6F0BB8758D6422494D5A0BD8A7B97BD791CEE221288936DEDB596F537C3FF7\ -BCE04985EDE96AF69546A969FFCD380484A2AF168A96A55CF3D466E001A7B9E6\ -DC86:\ -BD69A39DE39D63357BC0C5664173E37BE71D8EADD0B8881DE396B8A616ADEBBF\ -D0B26EE6CA7A94F64B230A1AD2048698:\ -77CAFC7CE1C7AB65 - -DE55CDA2C48D19CD1634122BC99BE3F6FA9B4030C4A95233260098CD1365580F\ -D23EEA222C694F99D4F28C7FB73184F6D90BF83C966EC73178DCC301A594C395\ -CA18A9:\ -8E226F8DA16C0D37724A6AE6BA35F8310200C7A636569432ABF97B413F42D236\ -8B49AF96E44FA953A868D5840458FB578F4FFB888342DC51068136AFA321C2C9\ -C8D673:\ -BE5E0BB2CC8EDE601A0F1F39AF998005D3C930FDFBF072B3C857164F48006AC8\ -F40AFB45CCAD8EA47AE439A44D2F6242:\ -571BA076E2AEE410 - -DFB35E713B97B554E8C2CB6E67D19D33F2E2180C00F1BB131DB9D5C525DD35B8\ -C9E640E5B9650A0DFCE53254581B87B4AB8E8793B40DB50874D4EBD8319F5AB2\ -3518870D:\ -BA1BC58692C5D2900743B7F398C283F6DF199E65E760404B16B4B8997011DA50\ -2CD119C97F1F8192D3A95259763B6685F52BFE80C69747E555650C62E501F40D\ -0A4DAA43:\ -F78E4DBF4666041C85A4D1BD8E41E9B6C6A812E23D996155B924B221FB32A59A\ -6E4038A1200847A33006E7B6D6276786:\ -701C94F617ED4183 - -5F4CDA0DBB40C9E8272CD0480521726E8AF0814FED9535B03D980C389B4ACC86\ -B15354FB0EE1E90C5BE845832E659B6707CAE99D4B0254F6C1EC1C1033F68A1B\ -A51937A6E4:\ -17D4368D7EB5405E1200A80E45819DD43A0A450D257D5F37D585D8DC975AAFD5\ -A8C3519AB17D30F3953A6D970BB13FBFC5055E6783BE529B0304E31C0293E331\ -FF37A085BB:\ -9516FF82D3A3B84A087E99D15CB10EE198B89322DA03F42B22C8BE90D4CB652A\ -95333F4F6D3532F27D20D3E8AB3E7694:\ -A71575080D5811D0 - -A45A94B08ABD5129115F796A12ED6908692FDE75950ABD23D3B950C908370D6F\ -079840CED1845400B7242ED363C203338A616EF24849AC04F79D4087FC1C0AF8\ -3067C91A85F3:\ -024FC771952DB3472630D3A0E5D40493AD29B514A1DF20D204CF22CF3F364C52\ -A6EA46A80ABA899783F3FFA58241A6DEF5850DB5EBEECB5883A687116A41C5A7\ -5351DB460508:\ -2096C4B064315C356A4DFD0065F3155740E33ED2DBC687D0CFDB543E4B04C7BC\ -6FCDDB2C15768C90779D72A390B7A8CA:\ -11A0382CA4944FB6 - -9F0CC6280A56F1AA35D292153B3CCA4B493F823E28204F648F181EB4532F53D5\ -9CC314CEDC9DEF147F2D5126AE610A5C570DB7C2D5EEF17232D69A4ADFF77D1C\ -9C8AC26CDA5510:\ -399DC10E75CBD29700CEC9DAF9B6474E3EEF71CA051ACED22C7CF96E46EF7953\ -8D3312DAC7654F5F59D64C8969ED882E10829D3E271B9567CED2246C120DE327\ -DCD50D5B661F9A:\ -E4345C9D06A8BEA3B0320B2BF5E3F772368FE7C291C50856D76ABACCE8031DB3\ -545F4F9E2F9FD7831342A4038C4A666A:\ -3005F1F0400B9429 - -65C8F136DE4A255A2F7AF15855F3F3D058542768679CD4625FB42EC9BC23E0F7\ -52BB2D8A4737B86D7B250E74D2D787DAD0A1648534AB0E0EA35A6420AAA07F38\ -0B945E0FEF6010E2:\ -57699E2B659BE5D15D94E50103D1DDA5AB3B89799CE3CD1DD48D587279FBC6C3\ -B27500D115C0F18C50959EF60E811918FD667597983D6CE6F5AE92D7D35B2A54\ -F1DBC9040BD84838:\ -05EF770E99C4B9FBAFFC6680723E225332691D0274B7A9D1587C5B4165F7856C\ -05330C8AD36B542F3B9061ABE2E4D8D0:\ -603D1DA619FE5A6C - -0CC3DCA7C22D142FBBBDC28365B983B0B602E3661F6DDB57A13A78E25130920E\ -63897B1E5D6D0A255410CA31589B4FF012AE8EF7D206276AEA17280281C89B5E\ -90FC92CDAE3E90FA2D:\ -544C0869810FE42026FE2282BAC76632A869A5EF15EB5BAECF7118F913A09FEF\ -C32EEED3F9F057522E1914843484ADD60F5A5E0C8B4936CAF22A2B56C2FD1932\ -E6D2F69E67F0501457:\ -4444C76C004E32F4D86FFED0FC6E7F125FB3B97ABACB6A963B4153ED6F664656\ -6F09556B0128508A2EA704F425166BA2:\ -DE890A23A97AE34B - -46F56453DBC786E69C7A8B8343B44FA10BE3B62180D1055396200A4DEF7CD16B\ -3AC4A11498AE026DEC225974C074CC05C2E38A0C3D9863564D06C4C51363BE3B\ -34C6710A1C50A8DC4A49:\ -C7ED5707197AAC74CA3678C435915101B7F01ACF70E6EAE4CB620627812FE22A\ -E6FA729C0AD641D1DD047916AB127AC4340CE5E2950F59C13BFC58716851EF65\ -4E3CC8A00E1F7F9934E8:\ -2CC18B3F45FED30C9BB3E0C6162103D7F6383580DBA72AB3EDFB6759DBED7F2C\ -F75F494A8C8C2018155F523277CB1E33:\ -59B170E468FEEB18 - -4EC76D991B2A572B95CFBDC1B5EF14C40D623B60EB5B08F49387861F13A0C242\ -A017D608210260FF457701A732D1FF43E890EAB0AA8D88FA414E3E313D166B02\ -4F8138732A9A69342A082C:\ -75ED6A26E516620792BE14D58C314AA9668F26900026CC814D9F33262896F8D6\ -13893C5A1249AFE93B978487D44CD09FECCC5AF14C7B1D228B4D4255A3BE2D11\ -4C2CE7CD2F19D6D925FC5F:\ -C635A07B528B15D341FB3938FB1867A86637E41F7021AB0B2241A202220E83FD\ -D05C24A1652F2624F9FB43ADC75D1DE7:\ -25622E1F1E088394 - -EBE4A217240463C52F3E367637E35EB9914D1DA02A8E6BD1928CD70855884D2B\ -5B1B20E1B32A22DA27269FA5FC42EE67D268D97D460BC5EF93015859CB4CD34B\ -7306916EDA42DBFA52D62EE3:\ -AFD1396657E63F6B15C8E5172A5C98270E39BFAD0527A14CEB81DAC79894367A\ -45CEFB48033B39562DC1B23D7507E47DFBABE91656CD11A26B6D20EAC5C804AD\ -E02BF11A7C93D9CFA82EAAD5:\ -A789FAEBADF784EBC09697E4C7B7DA52F3EBFB682FEFBE6D6871BD1EA9E2072B\ -A5161F8BE55D201771CAE3D55847167D:\ -48218CCAEF67EDE2 - -0C49C0FEDC9D77D74EF36E5721F8899153C48EAB527AB6F30C688F7868F79CEC\ -CB80C03646D065724A7F5A94493B679F69B4C9B7631F5D6E51B38277D101BFD2\ -DACF5AB254A35666FD88CE199E:\ -C37215DEE1FE39F6AB4C33440324F9C19C8DA2161373D2881859E948AC2FEA19\ -1E0B219558C71358604CEA53B2A65D6E1AFFE203A737D50FD1D358495957B2C0\ -F33C33BCFE7D342231580532AE:\ -2A70AFD8A26A592A112B1CC8A4DE1C03DA4A2E71C7375B256842327624F7D455\ -B05135533C526D3B266B80402E97ACAF:\ -6C6BED5ED438A4A7 - -BD7CD146D054BACCE8B0EB21A59ABC1FD212BCC4794C0B6D600D153CE5AF65D9\ -F9BAB5C2B5D0A5E25C1039366137A93ED2332067E89FCFD6C5F6B5565C419C6A\ -3938F2473B08260335AEEB6C08DC:\ -F3702FE8AF684F0FDF7E85AD786F5ABBB5DA3F14E7F0F89023BE4E0B7409CDE1\ -BBD151BB3F9DB1B64F731ED2092D48E534B451C562864DB827EFF56B5CCD3F6B\ -14DBC0477EA245618C1B2F5440C6:\ -297085093FDAF2A1DC4586E5E2001D0BE9C03C667350BDF1D08C95B8BAD0E4E9\ -1EEB9CC01612BDCC142C0C78001B69DB:\ -1DFD551688FD9A60 - -D457E7E7AD66A8D7CB07C9C1E454CF8DE6E9D97948145731A8585078A524182C\ -25D9D782837F09A52196AB5BF4BE30108E2AA7984636BE4EF79966D72C7D6C19\ -D79B7A50A4C7D5F01EF9124A6660B8:\ -379FF84CC48112FAB0633FF279636366F0E9CFADB453AC48A74A9A26DD7DAB30\ -4DD6378AAD4AC5EF28AD0F4CFE809F02D2EDD3FEA11B13CB7480DD91A3F6001F\ -C3EBA4C80C31F5A562CDAC532DD8FD:\ -5720AA8DDF38F0215B1BCE8F7B5CFCCBD4A7C8043CBC3AB370FA7CBA0474FC6D\ -25D5B2EC2D5A0C748F63800F530DCA9D:\ -2E76E771E3FB53AD - -00C62822BFAEE16C7ACA5C16AC2F55AB52085716E89EBA9629394A44E86C2F85\ -8358ABB2421F07BB3F4FEE3D1294DB62B6FE9CACD797FACC8359679BA7F17B9E\ -A7E10212C74180017C8D2FA5F6498B1C:\ -6ECCA8B79406B8229FE44845621200AC352DBF6C1ED5937C47AAED3ABF8B0390\ -4D7E701752FED27D91A5151CC00885AE4D8A7A58CB1F6D31B9F21F699B03E243\ -FE1BE597B2114EC61BDE14A4796E4417:\ -BA80F73C66DD7CA229B6A845EF43DFF5524DA5A193A6BB21FC3CC790E1F0ACA4\ -B00606E4B39DB146F075ACFF7BE4E241:\ -B960B5837B4034B2 - -FDE0BA5524C3FC2C69D0070E77DB96B4AC9A8BB2EBBF3DCAA2E1E577F562A794\ -BE43FFD498DC0A03D79176C887363D746DE3EC65E279145EA4F0611677BBBBB4\ -B3F203146123B2F7968133A888446E51F6:\ -53B34B147D2E0926AEC3F418D8AC5ACEAFE3BEC4B7EE675ED84EF2AA5B439E6F\ -F66FD6948C376BAA071E2DF6E0AFE7C1F0843C1E20251295CA83BB30735909EC\ -0C899A12904DD060ABC3E100C87A3D72E5:\ -058768329BBF2E5DB735023DA3FF3D8EF1D0471C299DBAAA95AF4C1016572011\ -5245586CD5D0ABDCCFA3B52F83E36A21:\ -A1235BD14E93BAC1 - -AAF3EA1783A29E2273361063A0D41610FDAACAD6E8946E86C8874508BAAB02BD\ -2D8EDBFAD03F3D381E523EC5D6ED7AFB58EC9B8609C6735157AA7DC4F3F1052B\ -EABAC974E89ABB18BB260953D591F2F3D1ED:\ -2E6FE67EB83E2F436F8C0FB83DBE0F7536166757E7099D1E1EA6946AABECB6E0\ -2488DE9F08EDD53527A2D00C14A5EBB5FD72AC5577A30B0F95F7B2CFD86A163B\ -80069A1F1C9D532C715750D68857404EC03D:\ -AE1C6312C48CD1629A606389D1877E3C521B5101FD4CB760A87E2D1C1ED1D996\ -A1360C241FE36E2110D9556666C787A8:\ -7DFB18B303AC12FF - -3FD52D0E0CC3BBDE18B17632E662F0EE11EA8E1C7B148B630DDD1A6F01025E3D\ -BEE10DF37A9196ED4060A8B34FED461C81E70FEDBC521A83A4C2D47C710E4D20\ -77A1273FD43242D6BF235E748942C640B64F9D:\ -4B10774B3665EA10C53DDCFC1C9A2B96B233093901EB037AAFE9450EBEBBEBB5\ -6CFFA65D2B6E44337616648BC8E2341EA3ED0F5811402DF0C6142AEBF0C5A30B\ -2A05D85A6F94A39B6E284DD8666325D0B7D8A5:\ -7320E6495AFCAE1BDC67C72913254DB148B0A5C85DF023B308D3C411EC37031E\ -EAE5CB51DB63FB19C67151FED9CC46E8:\ -9E7A68212564E863 - -2CB8E796E207320493DB417D356B44C1F6FBC0E68F23B9371AC75D40F37089C9\ -C3FC9E0A4A33705E27E41152AAE27431FEA85BAE1607F111218961A18C3234DB\ -C0D41D172D14EEA038DDD971A6E6AD9511E82650:\ -87679F1AC604328B6C9B55C56C16505969FF9D40D1C8EE0EF9C9A9D5AB0A9510\ -CEEE677B752725B1D00916E26E293FEEED9F18F17F8BA9B77DA3BCBF591D0D67\ -DBE57AAE4AF7843DD176471528094A3A3FF2AEAA:\ -258CD6F5D26611A0D8035DCD1C0F26E0BD86B40670772BA7C9DC4DB18AD38F95\ -73D8C54A3CFC30862106E2BCE6C7A5C6:\ -ED8D0BA4895F10BE - -3CB66CE7DF4672FDD6F8BBE90754BD5BE92766C2EDAE10752EAA0136E81EC858\ -EDB967F7C071CD4156C4CE54B14C359B7B48F88F873B464994F12129EEAC74CB\ -02FCBB06F1A45A1EB75E265975521B2316E6DEE4DE:\ -2CC2ACC835F3E84FC6AFF725C290DAE36E67D7CB87162E52FCA1926EDA3C9ABE\ -A5A5AE623B25CCB1C0F702E55B5430D30915851D4E331F5EC8A0C448E8529E25\ -C3718201A536E6DFF6EF5C67038F8223EEDEC77C84:\ -641CB0E9630827685C75E93BF0324543337E877F65F82A86FA352C00476467BC\ -3B4D14997CBD00BCA9E37B24A6F8F1BA:\ -6E78260C205DDB9F - -2A79B7999079CFB7F63105C7AB916B9192380148FAEEDEBE5567A791ECCABC85\ -ABCA1F272D92484C6109C198E9BD4EBDC7F3505E93C3BA0F9E59E92DBB9A69CC\ -B65C22BFDD9D2BC1F329BD80F3D327574EC86904B0B5:\ -0FBFE0AA25EADC66EED7FE1E8F3F982CEB9911B8A97BE1B82879C6721485EAA6\ -F4B380D02A056C9E85F0417F39D31E42DF5E9BA117DF036F11082796706A3CD7\ -F23FAA5BBFA59231168F37698C962FDCCFD9E968613C:\ -7AEA1836CFF6AE59E983007C0241A61D732A2E53333BCB7810217D06AFFD79C1\ -A6E8FE9079F44FA35E88E00116A5FB3B:\ -805910FB562E63D5 - -792990AF12979761E29B4AB2B2ED3A895122F062F6CA099D73492175FFAEA0AF\ -87003C433FFC8AA353A24811C863D80E6212BBACCCDCB9FC0281EA334A186C92\ -9C73881136D01288E44D98B79503EDB12B9C10275ADC69:\ -EBC43CD03940FDD38213DF9FCC3D75D112FE8A9B1F5FD4A06947A79BC65C6527\ -DD1CCDC49D67432454351A7A289B2AD940DCE432B23AE99A4897C3C7A138470D\ -92FF497D5E88F631B93A9935C85F8B5FD404EBD41F2324:\ -8CCDE984AB70A7ACD1DAE69F5109576F8C808D0B16339B6B0A65B2E4712E6EDD\ -62159F1FB65FC9C0BE28433DB982DB3D:\ -1EBBB405BC55AD17 - -7BDCCD1ED5C7C58AA8C26EBC10FA60BBE484F26A9ACE21FAF753C95B013B6812\ -283AE19C54EF8BDA7308C9E52A4A0E19B5F774FCCB1803585ABEA0931852EF74\ -ECD087AD748E1509F1A22E1278874DA8178FE725D941D417:\ -C3F08696882A472D3759A605B577E4AEB9B1919416C194C550DE94FEA6B30546\ -0D6DF31B0907B5849C1ABEA0CF500D606E00BA4374ED606067C7A62816AF0943\ -2BE5EA6B7FDFFFF14C1E8A633A42E56EDE07D114582C40FD:\ -759B59DA28602EE92F28B80C104A6D243B33303FA93D82665B395BFA2225F121\ -3357D1373C8BDEF253C609F89D55DB0B:\ -3D7C31C77EC2433C - -32B78D9F5953B9CC21DB7102544F810B68B469E02A9FA6AC0AB4F03B732737D0\ -EDFD7836B0579E4D3A575E7137C67719A57BB5A157B9EBC8C783426B35AA338E\ -DEBE5ACF9FF475D22988277D74856588D86D04FE11F18E73D4:\ -4A9A71FF4A63F8DDFE8FE65DC8710F75AE6D39C9BE50DF5E4D12B043670DDD29\ -FC69A70F52ADFEBF75B5C56BFF9AED26B679F5D7A368CF8E210D4D7366CB1C43\ -6B1CE153B957616A321510F12D5DFC4FDBBC064C4558389478:\ -5777CBC6401567254EE47DA378097CEBE744AD04C03EAEBAF38C097A0E53B255\ -56CB1C2F9D184BA920B40A0595DAEEA4:\ -B6286B46D5FB2626 - -10E4881483058ED082484505A21A951BC3C3BC0F6582474EAECD4FE427C266CC\ -A872793E09B195C1BD03D821AD71442905621E5EA86C69466CE88AB676F804CD\ -6A7AC8AC633CDD1DEBD3E972D787FBD7AC100FF39CF6F0FC0CED:\ -F8AA3DC6043D41A2D77A1600955881223F08AFDC3F2EDDA6C0DAAEA450A26DD4\ -CDBBA6C8E6384F67F6B560CADE852525C903AAADBAC0DEFEDD3C2083B1EED434\ -01690236BE280BC6BC1BB736842CCEF568C1496358CAC7E613CF:\ -DD87FC5995355B2DBE4536F2E71F5236D4B449C4DB2B5537C8B5F190DCE575B5\ -ECF8E9F04999BC4488F639B9229B5046:\ -BB0F33B6CDC80B04 - -A46C63CF901DB73CBFA0BA50B2EF6BDE63136C43DBECAD130DED170D5984CD39\ -DED0B3224D31D051427239CA6A1C7AD610D40CCFA88C7266A60A391FE2C7AA9C\ -6654F6A8C5F40233422DE4273644194B7E61B65F36404820A92222:\ -B9F8099AE4DF4C95954749952E5FD52E55DB935C7BBE105C58F7503F077EBA80\ -57A80DD55991FE2E7B92DDF3F39CEF6710956F86647887A7A0F114647515A440\ -BD811F9EC635A39A0C0859EF8A6DC0F37D308E72834B98D61D6BE3:\ -9B02C6E552A553CB3D5D8368D69292278557D5C917B4F2219C91DBCE20B54087\ -233E0A09B88982841DC59C97CE270309:\ -528D9204AE720AAE - -D3CCFDC40C2986C6DEE37EA1B1C6D33D460AD4A26A75C5289779223C3E1474D0\ -5C27B8EE8521FCFEE5385BADB2ADE1CA31D18995BA5E12EFB0D7B3396E39A6C2\ -39C242AECD14DB7B786740317E96BBF8EDB8CDE1458FFB347885D565:\ -A4788B32E8975B9AC394C7D83DA712572DD81ED009CE4460FB11CEB9075CE625\ -E2639EC5AE48A1FC7E632B02C8C6CA63BE09D48B186BC65566EB370D3CE24F82\ -5553CE553C16F2FF5108330673E10F14E76B261CA5CD5F87E418693D:\ -D2C6F8A0F321983779559B315F69DF5802B121C97DFAD4A4612B510D9AFA4F6D\ -EB09E695EE72FEB2270F2CF8CE10924C:\ -88F6FDCB170B5823 - -1E14C76EFD5791F000A103BA786A43877283684B0485582BB5A4F96213D632B5\ -83116C1534A7D0E9025CBE76C557AEC9DA04235AB26BB96FC2D3115FDA6710B8\ -55E3C382458EC465F13182DF126BEBDCB94014D753A4B0A13991B1FD1D:\ -B59A09B54A9B5A98616EECBF20597D39675EE522A9CF7AC2540B50CF5C2AAA61\ -9A96F05CC8D5C39161C1D5F6286C108B24196E9D82E501A9E89062B296808D36\ -7D8D8C1F79A07DD26F3E7E5B0906DB452D7DD987DAA0A0E360CC5EBC86:\ -83CA3EF06A15B4F8B527B67A652F1EB2CE068411E0F2EAED14AE693880D66C2E\ -21911535824B9DCF584DADEB97630ACB:\ -15119A3F0E54DA4F - -89939F837D7EF2FA6055C4F3D2076C70CD392D40ADFF63D2A8B4BCC6FDBCF146\ -6F34F1E6892ADBF80AC6D9A2542CAD67918F0CEE22CC06667DA1FD603607B90B\ -E9B4E5FF98201F339E40086726FBCD7EA2675F5DF23AE70D5269DD8A1E3B:\ -602A85E8F4AE898E1AFBCD53098C9C9DDFED6A3DD5F953ED9019B2B45A5CE539\ -FC86E484C0BB062ECBC483067637F83983FAEFD00F5EB08A7F28B45361C05E17\ -DEBB56D4AE72AAFD8769C3E18BF0170B00C3ACF115E5B03A3FDE9D9D9A38:\ -9DC683A403924735B95D4C747011C7019926AEAF260C1488064AF8F258CA290B\ -C8FDB9A777B3CC1BE0785C54E4F0A0C2:\ -456851BE6B78CD1C - -363572DF82F8FF530ABB987648DA64208635B3522CA9FDFDEF14CDCBA67D314F\ -65963393BF9A75FA802C2FCFEFB7B1ADBE46A29904E5E886D665353DD15DA1E9\ -1D23DF6E3B573F4A5B0EB33B20EA96A1019F26336C2570B2CABE74EF09A2A9:\ -A7FE4D502D1317D9140ECDEDEE7B328EAA63CB81E4F04B98D26322583FC7C0AA\ -3EEF85E7E545A988DBAE860D91E6C9E8B5C1F1672629808C14189A46D81F543C\ -2A4B3B58D8245781444D5F8D13030B8B3BDA7198B0B80E357A32DE4B2663C8:\ -FD3049AA473E1A4B4B71ECAEFF6354CE4E7B2DCB212EFE01A171AED3D4A3D85C\ -73EDE789907FF5759C7346B5BBEB2D87:\ -47C9EFCFA01BDABE - -1E54C9A5C6B8491B04755DC3E271AA40B84DE522EA8AC0BB505A3863D6BB70C8\ -4DEAC0D3AE4B383E8D7470C73BB562B13F7D98A5ABD127CABA17E96E87A4FEF5\ -486EFB3FCE84E16B16F078C37AE75D51FB92D4DA02814839A6502485ABA10FD8:\ -DAEF43A3B5F158A0216DB87FC8AFD512F8C5B0E0A02FEF93061EE26C084A7FB0\ -445B3FBEF5D0C4EF5FC9E9AEA1927AFC925E001F031D90543C3B8456DCDD4247\ -70BA3B5A5626E0BC37372CE40F0421C72485B7F3070511C88971A3D0353BEF0C:\ -F8637008154408B2D169A29ABF0562F5E3F9138056642B36F6BC96ADC6D11B01\ -77781C5D5751A672F357FF2213915F73:\ -57EC7A53D72A6050 - -BE505B1B8D8574DAE9731479E64446C66205FE6732155E46B93497735DD005F4\ -67BA45B26F700EEE9702F14F2D66D3D7BB2C37384DF410C572024F0DA8303057\ -AE78E6AADB665F4754FE8E4F9CBFA0D52D845CED97822B209D1628D7FEC440E9\ -ED:\ -C7718C6903386C1FE3E06352D5D028EF552AF684A67D370755AFC213F889909D\ -90627204911E832884F0995B19C9BDCCAA6CDCA34532A7C67E4A102B2D4CE15F\ -4D34C7D450696A3C4835BF7BC184E4E463BBC500E833B000C90C86690BFE4D78\ -7B:\ -BB7596BF0FBEF3B5E8F445F941F7F8D81127465E0285E5778B28CFF2D7CC7DB6\ -51516DED09265039A2DC40E8FCBDDDC2:\ -F0C5923ABCF86DF3 - -93706C09FA219B561D5E98377F36AA97E24344EAF78E6FD9DD09F164FC63FD9A\ -5803CAA71860846A295340B66D2490949E29614F7F520634C6A333B985864023\ -77732375C16AD101A77119C813F96253146C70A611248964A32320508A075B09\ -486B:\ -220662DC9C37FD9B2324F52C97F9A2B290E64EED828FC5143B354BA952A71AB0\ -690517C1EA9418402FDD1B9CDDE018630CCC9CAAF9BB15C643A24B14139B3577\ -12ECE51A85F99176E87DFB247217714CB35F94F69443143C8AC4B23556302B63\ -3940:\ -3409E8B48E54DBD570F2A08CC97231B641C01B1124EE9E1847015864557C41B7\ -CAED50814BAFB12020952DE0919706ED:\ -0D87C3FD719A8A41 - -A07F4896900091174A2228A2C1451F2FEB7730FF252B064ACCDC5EE02E0F4195\ -0A2EA58E87BAF5FB0C3AF10D173B9109A7D35C93FEBB3A817808C35BFD735F06\ -E068125502C3927BC4FF91B30C653D2CD6D1EB4FD431BD7D0344393DC25AF200\ -F153BF:\ -E41CDF1572B1DEA05F141B76E900CDD443C63AF3138D48A40BA86E55173B9DDD\ -D58BE2DFD0283D80A19D6211FB746066AEEE687246334ED91DB94DBCFD5F3CD7\ -AE7D4C726D8E52401101DBF61E5B23A20F28172E1EF06A9A74CEA6E558523DD6\ -E27A24:\ -AD2BEBB797ABD77F7E1F02E37089009575BEAFB02B7104CE55A17D08E2A7196C\ -75307C6F315A1CB7A03C5010A73CF976:\ -D598B850E3F65256 - -23ED775F51A23B2DFFF0AFE780AC30DBD3F0E81F4C3815C73A8604C2E9539449\ -CCC4B5DA1FEC9F3EE270A5B45CCE0AE26F1C47F0C7A492656E3E760119CE8B0B\ -5C47C042EAFB0F81E842566D7EBF410F6C05FCABF94577DF64C8A04FA3B17167\ -8F49FBD7:\ -18064691A1876101BC7E44B8586299345C30118C710B0971C455AC2C9CA03297\ -FFD625E6AB591B14281616DE2F7EB60858BF204B0CE3D23ED3972AE45636CE69\ -FDB916620B63075AABB692404278423D8E165908332DCD86141CEACC79C9EF3F\ -1ADE49F5:\ -DBC40F78C4EC8EB9E008CEC9481E827F506157166B30960FC7D37725551E00FB\ -DA94D3127E77FD80CC8293F23DA5F2EC:\ -29038162670DE41F - -6DA8190E62172EBC0C4353881FC9D7CEDE4C34DEC14D771552E323B91D1641B3\ -802E02BB35DE22CF7B2FFC7A4CC0D923B745E6E1ECDD3B705C52488B82A2ADC1\ -6F8910151080CDCE760979DCD49F83CFBA7F404D6A564FBE2BE119321695FCB7\ -3A737FED53:\ -AF678AF0ED467ED7252D0D886CCDDBEF707A6F1DC5D9C4C9CEC036B15CBB1847\ -505D408B09EA31D705A40AFA0B125476F30E43D4CB23C7321554F151671F3350\ -3FD9C9165BBCE2A0778AC167BB9EFA94ECEF43F69440837575B369BF4C9FB50A\ -25F74BE2E7:\ -FB46F6F9BD972D0F6208EB0CB8B92FA2BC111E6045052F0AE4DCECF586FB06E6\ -970B587CDAEF0C4E821D3F667D3599B9:\ -700973A9E6C61EED - -3A0D8D953D9F291420E8CD7099191830111C71BAC5294CA880785829EF9DBBF2\ -01DAD5FA124B0F31794762465AFC678C8681F1A46DDC64F4BC3D8ED47ADB35FF\ -BB1120B09D6D720F74F270A516A217006649A759CA2076FFEC9990A4671B5D4E\ -251ABDC4E90A:\ -02CC827B1CA4806AA14035F587D56D4F75B22CB48F6511B8B9326B212771BE3C\ -3806C494BF6952D087A73EDD7759F6D0CEC7B2794B8ADD1D3154C43F3C2F7460\ -E1EB0989FB3DE93E06A8B10E2DACDAF74B769AB4227477F0A6EA2FF579CA5E82\ -1AC3928FF9C4:\ -89502CCCAB5CF8827C0AB805D1B3A5F94BEF4969FEA7B5D0A19ED930F9A8F3AB\ -21CD7BDBE84B23DFAAC0C794A007AA4D:\ -0F684E80EA1311E0 - -8DEC08BC76633DA1C5422E55AD5736E57B0FC871F727BE6C9AF892D6F8DC50A1\ -7059D4BDC38EF55E8D334F54D253F9C4F3AB60852B896124A91331AA7EC88E90\ -40B84CBBC877EB9AEFD4CE21A614DEB44D5E7DBA600848F1FA202F8743B0C27C\ -C816F303DFF835:\ -7392C4D3C71B92464AE1F221F49B42E01D867C03C63D97438F106583D68A9642\ -B557D39EC5F69992872FC1022917AD8A930B12510C363F7BF1FDD4C30535B1C3\ -751B1C063197DA27AC88DA521E6410BCC045F6D6643067CC099AF59172F3FE66\ -8AC4BA59B3979D:\ -BF89275DD43670F4746D7A6F3D9CB52887714CA795705E25EC58855A7809EF72\ -A78EDC25D9B3F9929A0E69422C46012F:\ -FFDCC94D1EA51492 - -8D043DB31E9EC2F90B1ECCF369AC28A912C01156246E4E8FB71EEC578744246F\ -0E415950D6BD1D1B87889A24F00B4657B8F2F11B6C067058817DAB2C7B2813CC\ -B87DE958E4034F3209FA5A0AFD47FE8DA06CE4263BDD5B2B33CCE1825D5D403A\ -F7B4BA1E0A40A662:\ -FF30AC926CC80F99172E0794C460CE53CF46500EE931550497A80A56C25C0329\ -0F9DBA4B85AB6CABEC30BD91334A82F69F94A4B90AE4BE0E8506F52E9CEFD000\ -D1E64642F439D6BDD39A4E7AE40CC81CEBB7DDBAA72639F1C068E6C83DAC5E6D\ -190848F1AC46AC74:\ -9D819A66A8C2943406FF51A5DCB7222904C70F138DA796B55726376E2DD9BFC1\ -7112BC6842012D352B31EAF42793DBB3:\ -C82E3B74B693371D - -98C51F1D9F4308741507412CF4A87E3385B108A665A1106F86FA8A17B30F192F\ -879496BAE8720E4E0AB3374E108D100F6951240B794D92294301666EBD93F13E\ -1838967DCA554CCDC355613197D2B42A42E9E30A283EFEB5D3124A3F1FC8FC72\ -649073786AC45FA99A:\ -50729CB7821BFF80A82CD63FB9E3EBD5CD930FDB3C7826CF4F257186CD5AEFB3\ -BD566E35C920A99F7D1972C40A1EA3FEFB53E9AAC1CEC106211E568F066894CF\ -22636BBA5EF1256DEF951EBCFFB9A1E2C622B48BF735FA129DDE4B222AEF6333\ -C263354454EBB8F294:\ -3F5711712D16295C653DD906E3D5DFDD7DA2707CE7CC3E1F0DF9BBA9F7D53E5F\ -743D79F4F54F363915DF3AD25E81EE63:\ -EED0FE35B9268BD1 - -095225A597E7703987E5AFC522F74CA7CD10148FD1745ED1C15B79FC9AEA7A7D\ -CF4A9CA18F34FB0C7C1DD562B99280BF771DD9E1A5853739AB094F75FC4DF146\ -C23BFE60EE4EF71C48F31A58D8E3E5EFF006ADABCE33D936CACCF58E7CAA3A3E\ -A9CDE825ACF174C483A9:\ -310FEA486B6A2B26E2058B73194CE153CE1812FC71E5E583CA1F7E4B28023669\ -8B2CC4557537975D76B87E2F224705334467BEEF35A65F6BA2D8F88E7F8CDBBD\ -06B9B23FB0E887AC97FF9A2528020B674E282CCB9C60384E1AC321F2B77503B4\ -946F0ACE9674113CFCF7:\ -F39966BEC7E60CE51BD220DC5B2A2B817A73CE7767D6195B08DE70D5B7BB6BA9\ -7F8E4DE1327DC33E6E1BE15759FCD685:\ -68F49770C9E8EF60 - -1EA813DB9BEA1AB0692B720B9753049D8AF9F5BBC88BB969678A3D70DE64A865\ -B1328AE3BB982267E87002F435DDDBC4F26698F15B997F920FEE7EB98C169A29\ -339AD006F0EC5BE1C68CC8F485CD9EE5792C3C2D200DD23026B377FBD7324314\ -53870C73C1679AFDD2C078:\ -EF982CFF693B0B6F1E9BBC70BD9890D645F720DD3E5F17AA7818BC6F578B0CE4\ -CF999E24EC9EC0805C147132218A168C71BCD5A4E70EDC736B7E82BD5CA5A562\ -DC8A825FF494DE2371E494233757E8730A0A87EEC27D69E78CD4F95FB8BF6D20\ -D76F84702A8D96E4AE5825:\ -937014D05FD4A6C7FC3DEBA0AC06B776730488157B714DDEDA80949C49941DF0\ -2A32AF225BB58F8EC633487E4E844B2E:\ -A8AEE70C872BEA7D - -DC85F77376B9FE9FC211C531E1E09AB0BA65CE08196F2C31EDE43D7752EBF5CE\ -5F166788E2A7B3BDA50A1A1D84136CE0883BAE64303B836BFBE515A17C6A660B\ -30A32C53D8F7E275F87C78D8FF043BA735F2A58A0818D1D3B7EE4BBA7F6B6C8D\ -BBA6A2B269275663785B4A68:\ -46B23BC98C9894BBE2E0727237C84C51FF5B61CA28457133173F74F9FD6C7B1B\ -6D0257DACE267AC674F8BDD132FA8B3441C216C5325535F13053453A28AD4C25\ -F00E9FF5AA2CC2624DC3C96106D3E4B6AC6928BEDC29BF64517E6C15283E6ECF\ -E9D5A78CFA04AAE1C6BC64D7:\ -BB974000A47E092D7086699EDE730B3D47D817AB689468A35AD22BFBE1783F52\ -E91C018C4FD873A3C3124F8FFCB6997B:\ -F380287DB78EAB5F - -5B9F4F0F7684A18101410FCCC4658C617B1BCD640D24A7136CD395006BBEADED\ -79D2ED278E69B4CE5C1E8B8A87FE32F5419CD57237892D6F0491F7C100FF4900\ -72D6D5C5BDEFA8F170789368C654AE2CECA1ACC1FD8A42BC352310937F76F421\ -E73BDD2B6F94884394AAA31F66:\ -0C20E6F66CF472C633C31C153E76EF66BDD04D83BD6C4CF2204583D3DE53C66F\ -778FDE72D2A223C71AEC84918840804D7618E95B71BBDD70F2427A2CD8CCCCB7\ -129C3C51373F0BE15A17674CD9CBB0C9E2EB58227C8B83E8F2E8A120B4D7C18D\ -D56F78A8164EE96E0322CE3FD2:\ -A71E32626200B616B73840AAEC8F1DBB372BCBA6B499724599F0DB60B5CCBF6A\ -3BA7873A5A8FB76595870D69739540EE:\ -5219C9F682ED60B1 - -9F7BC0B23B6E7FD175D36574A12BB1873613774711D8A5EAF1310CAD04886DCD\ -626DA73B2A823EACB83AC68AB208D2ABE0EA1F4C7905CBEB9D02918843D446CB\ -1A141E2E0774E17FFBEB962B2E1D5C4FC97FC4B12CE1408837B643177860E3E9\ -76131393BC43EFE284D8ACF38865:\ -D8DC8267F712888E0FDFADEC4D0617C7AF89CF46B4E300E18D1BEC07E1435608\ -A90FF500FDD0ACD2AB036B56510BC63FF4361E1AE6FEE739E9AA338037E4A774\ -CB6F6BE1803293DFA5865715CB58C3D6BD075588D0367B41343859ECA025AC54\ -B4CBD4BE5BD2A79D3D669479F0C9:\ -DC220CE4170F9D208B02B2913D416647F38FED24FF925AE59021AC4E3B67CC09\ -1924EEED317CEC8754F0986BA93AA26C:\ -629527F24208CE9B - -86BAA5033E5EEDC0A9F153EECC7849A21BE305F673AFED4E97B16F4441C9DDA1\ -24579B3BC85320B521E685EF09A66E17A2FE37DC3BE3F8A6AB5D861B484E1465\ -8517FD2BC026832C9F6464425FAC2437B27D7CDDF069AAAA16106235C751EA24\ -43D9F9BEA74FDEF0D60735BD78C731:\ -1CBF67E89E6D13483C98BAE5A36E6EDD1AD12885DEEE765C401DEB3E7EA04980\ -C499653F81D17DE8B6FD763F0D69FA2C977AC94DBF58FD17BB0ECC567F5CCF0C\ -9D85CF3FD7F7A2D3CC4B02892104A6B070FDA6510C3AA867CE1229660740850B\ -92CBBF26C4888901DDE695E09C3AC7:\ -012BFE1E9BD611171036AA701EEE7C7BBAE5943AE3515FB139A41BE23F82A212\ -1809B8042FACA96908E3D89704A7B71D:\ -AD0710909DD4F20D - -B531FAE3152A66C391E3A63CAACC1CC495599703871E34C07E00C654B733B7FE\ -67123CC899DC5C3F13A7B85604F53ED2993F5BD9143E9B493D3E0610F4F6F919\ -3C595E7576BAE7191AD57850D7431DCBFDF6DE5DEE3F7CAEF6B99CC89E9FB6EA\ -DADB41AE87408DEB85E05E8C9ABC5FC7:\ -4374EDD79E8C265C5D277941C3293075F5AE796533DE54E34C4065E167652370\ -238D673DE1FA618B80FA805A317C0B3B34D1230E8A63E8D91F701AC81E8DEE54\ -E33959D80A468404CD351A6CB7B8C1CE808F7EC77F6D6F36AF54555957EB3B0F\ -429332D1DCBE98030346F1766CFF5C1F:\ -7A4382B3A9E640981582C9ECFCFC0290297CD0CD40D00B0BC2FF88EBB229F4A5\ -03A920C4562C68A64BFC29FAF0BF7F5D:\ -AFC6C2F5D4C1DC54 - -381552281B5183553EA1605441A8811E5BCA184CF3135FAAD0B5913E632D1195\ -7D46FA45B0228B05D9C27F5782FBD48911E22EBBBF1BD923959D34D44D3BC947\ -4C1BF46A8B322A6B0177611CA9BE919356EFAD688D460D1FB3F2A1BE55B6314C\ -5E108CCAB29E71A879F3AA83A88747A757:\ -1998655B88BC035ED38A24E673AD49348E0EADB9F21420F1713BE09729FA844B\ -ECB82CF1327C949F5E40D371A326BE90EC3F449842161515D1728F348575D0F9\ -63520A1444EB1C880C0B4F190463DEC21E7A6B381D033AAEEB4D538C703694AD\ -628DEC56FDF2B545560087C22E93207EAC:\ -AA1F76305E46B7F90C6D80F92AE5E3921C8C693D383CB141B9A9B61529369AF1\ -5F042ABD45646E9771F2084AA0BE50F4:\ -C0CD473232F5675F - -E3A3B1FD4B3F0F6309777C419BB9D3FE17FCC10DB62BF03FD48F8E4DE5FD8FBD\ -5D8EF4B2F8335F6D7CD1F8F4DC65B9BD43C145584C5FE5ABDEDBF946C0D6B4A1\ -C7338B202437DAC59BBEF404B97E321D4A1658F358D4989412016408E1B32D25\ -4F860CE24D8475C9090647F68819AB5106F6:\ -66F4D4403CE5B68D31715468B537138EB40AE4290ADD05F4970DC0ABA75F1E03\ -52548E2597460CF93F1F952687318B28F1F35EEF6DE44BD966271A892F045F59\ -93BEEB90F3D5DFAB5EAF3FFFE2F1C396E9122555C03B40785D9BD5E48340462F\ -3D279C0C4815FA2635D9820EED98AA4E5312:\ -026BAF447B1F53B87A949C517D77874545A5534AFE810B380FF0D190424BB8A8\ -7FB570EA51739E190C69CCDE297CD610:\ -86BB1FC00DE415A1 - -961C1C4E0BA6355B95FF4D0682E7D3FC675BCEC97E6FE7B34715209FC366B8A5\ -51D1C2585304BF4AFCFEBC14D305C13D3851734A5FA21E037AB94E5AA0AE5DAC\ -31C595F75C8C86E3850F527D60649C8E02D896261F387253603450CFBA206BC5\ -CE3C23E15853AA520C8B29D018EF1BCA7E24B3:\ -DEDCB954C69B9E9E1018E356B5EBE808585CEAEA1FB3A1855FD45E27D002AFBF\ -C38B2648698B5AB2B4C9A730121E0E2416A95AF1BA8FF52C18298E1EDF742424\ -1DDC6D633AE2B4453B211064289DEF7D158EA812D20E5856A8AD90C0B205BD21\ -F9AFC0B3FBCC06097EF28210C8D1B813A82FFE:\ -1736488BF02FE3C6553160A5716A38880B53CB716EC071C5AA3CF1D655B769D8\ -11B0D727AB5AB2F1F055DB2A975ED089:\ -A42699BF4EB58014 - -63028B1B17E373F50F256F9F4B028DBEE83CB070FD6D3BFD73F2E2314A5414D2\ -DDBA20E499FD0F05AFC0A2414F9FBB6193F16D4F497EC48AB762092ECDC677C4\ -04959A91E167D0283719C2B42F2BE6DD09AC3D15A35227AFCBE10CBF931CC449\ -25163065BF2F2542DBE6489174153501017AADC3:\ -DF7EB8853E2EE46ABBFC0258DF6314E7DD9C60210652130B922FFC15A450E818\ -8397B4884B53E1C071871580CA14C560D3BEEB24B36D35C144977B8D862BF10F\ -8128F845909BC1205989AD4471219B5612FFAE3FEEC04FA0AB002408820A00A4\ -02CEDFAF9FFC7B0CACAB3A2B067332E20740FAD2:\ -AA84101A8B24FB8BFD62B6D7EC613FE221CDB265FC80E125404D6809D9A8017A\ -4F4113388D85222EC7450689627AA9B5:\ -CA8403CF35C4871B - -99B2AC13EAD705FC1553812E6ECC62D202F5C19A9D782B87D614412BC171EFAB\ -01E35086F3D2219FE992506768F93D80FC945E5CBFF059CE43636E09CD8099B1\ -2167B61ABCEE46CD65867FBA1DC17D0D1FCC3A0E24382E5D928E9ED2DA953929\ -4BE658E19586B8053EFBDB60D88775DC8DADB7A18E:\ -33CFE5B05C2A4006DEA05DEEE4E19D6C17A9224E85C4EA4BC9DF9384ED74DF6B\ -5FC75FD4984BD167F4F336CD112CBB8F3929322C9F69E06435FCE2345BBD0257\ -F00222D312EFF4388C2AE2E300F8842E8F4D4D97F8DB45750FEA5CB8776E7A66\ -DCC773EA607CF425DE41EFC1522713423BB49490E0:\ -54ACB5023D0AEDB2A7E631BE0E626392EEA5C036CB440125974EED5C1CD885AD\ -43BC0A4DBA63879E723E72F348A13ECB:\ -E7C4F1643A1C83D5 - -90FB2D5FF21B18C4D6A35A49388CD2D61D4406604A4CD3A6A6FDDD0F694FB506\ -B23F19354D36D54D13B92D391EE885925412121CA9F9437564B3419476AC46B9\ -09ED635A4907DEED2176A8FF9514A2233D80AEFD8DCDC0B397703E50997F13EB\ -A8A11CAE4D156B881BB942F467277A9EE962200E16C8:\ -937410964822DB97139DB2DE356C0468EE5773EF15CF9876B90CC8974A905A7F\ -781E5C016558501B434E94E6CDCBDA16B86C0BC008BB73152EA7ED24C0BC90EC\ -EAF0D81C600726D7F97199B3974FD57E8AC264FD64865217C8E93E97871646A3\ -8019F93AF873C8B02F79272E88C334132E3D86ECFB66:\ -512C09916DBDB5F8B75B8833F56845D5E155B5C4DF57F22DA737BF8530754FFD\ -68A64B1421B3420AFB5156806C4CAAB2:\ -BDF4C9FAE71847C5 - -326630CC6BC9FFCF1CC4E275CAD90F994BF3DE828838B004813432B581B64AAD\ -A2727BD63D9455B5D69973740BCF0E636B517ED556A71F13A23DF801582F71B8\ -18C243E0455C91E0E3E2857405A8760E56ADA3103E995CE05979856D23E0325A\ -060A9182052E94880FCF6786C8D89DF9B2EBE6D6D468B0:\ -E33B18E484EBB8F777DB40C98BA351939E3D7517F84C88B35A231988166C6BDC\ -A4DC349DACEE54EF438E4951B360C7DB39703F2E977FB9CB2D221280494DB648\ -F97ABD8847A4D7E56E32EE8B5EC16739E2574A837F12D62D3D3E70B010D6A6B1\ -3D894D84AAA3CBECDE4F5A2FD407325CC7A868561B9728:\ -96EB4B44EE1A3F55DB2BEF1F2835AAF095BF74D918B28A6159F5333AF6ABCB56\ -53662DB912C6D88776DA9BCAFC421860:\ -EC530DF9EF4DCEA1 - -7929A272F2A645A2C22F98CB3E51CA00A0027E32785600A13C537E1F1262EDFC\ -171CD2E2E5A3C2B7CF97720E9EC5E71AA7ABC2047868E1350DA36704488B4698\ -BB290B1FAE13712BEE2BCAE519FD1C02E4DA80B59B148C92D9FCEF5A3867F06B\ -1DD983D740E6E0C03A52A862820C96C8472F78A490DE2ED9:\ -3DD2F3651E53DCC3737D2B50A5DA016359D376DD53469D87A2356D9CC5078973\ -B6E9C9E9A263195090A35EA8D8C43C3B8716F738063E243164E8A185884BD638\ -EAE39DB8D80CA45CBC5FB1BC19660085EF959A12C65D9BCE178769A31BB1F15F\ -2C336D9B45790CD62F6DDF78701BE4CCB80459B8DB0C729E:\ -7F623C50A1B327877EF08FBCB5CF8EC385B4E0E1D385DA5BF230D00DBC27C069\ -6AF2D730F79C407EEBBA37EDC3996E0E:\ -0CFC07373E27E329 - -A8C07161CB10C5B83F027D883277BFCC92BBA4131B3256B685FC72E773B5FE79\ -7FA612817663910C19D77C2C1E3E60E0A1B0BA69065F60B446B816EDC1E5115B\ -57790A254758A8A7F156655C70AC82F891B99414657CDC3B07E22CDAE39D4986\ -60670C652856F8CF8C3B2B3863080D28CDE50B3768B322C5CF:\ -D6466C3BA9BC6F250286417929744CA7FA5A674511894C5A2B3D196A0864BA6A\ -F9D4914B3B69DC12ED10D9ABE4655C9276E876B6E91A77F076019B8E3D346849\ -0590F160414B22BF2B2A9838B456460FC281C69D4BAD7D80764B69E5A7422FB9\ -FC2DE6B0293152A132F795F7B67C4B1DD336675181EAE7F66A:\ -027088175B3BA6679A5A4B9F7969092F9D82341AD4CD0C26C3CCAB5EB842CA0A\ -F8D722A85C04BE5AA4A633EB2004B933:\ -A2FDA73196F77710 - -E397E0CB0CF5026433491726884F8FC9F26A240FB71AC556286FF70226C30E22\ -BAEF81ACA4A5B9AE7BC76A6886AF26D68ECEB353900D9C2C6867F668C7A4F003\ -53E10BD57544A2F227B5AA8012ADFE1AD305B4758D19416BD64611C2F1198C08\ -8FB3BE0764BFC6960AB30828A16452808442CE13160E3F15507B:\ -F3CB60A09256B5F00807646043E894123423D9BF394319E2881AE9DFDAB7EB0A\ -B6D0089A3D9252B7DFBB85AC2EE7B36BAC6942E484B8BF8E457250E2A590865A\ -F6B02E30C4F71D0A728129549DB3C2F7E2197E8472A9D2BFE61D42D125A3F8B6\ -0AE9D70C71653EF6F5E3CFAEA2AF197F84736A05D924EF6DF03E:\ -476CFBCBA17DD8C1DF71D12ACC2278FF358D44CE9C46969D78DDE006FF9C0B79\ -5AA4629E488B142A95B33B71A024B52D:\ -BAD16417F152E362 - -30E894D45041EC1C6C143CF9C0942EDB0E39ABAFF069518E63045213A34B15B4\ -706706F3CB100A3651F965EC31F2A2D5E1CF0E130398D2BF4D5E8D60EA262963\ -90A20E20EC15C443083FE6A9143A3261747FFE06654F95DB727B9B907D0518C3\ -733E6A37F9205A7E0C4CC319A11FE519218A91506B817F2137E487:\ -27396BA018765B71CB2D8086CF551A0C0D7A9092F82CC6636095EEC9DB0E031E\ -A443085825035602287D16A40CB4A30E2323F6F0A7D2284B744783015385DBEC\ -E6FF11633226E8E597F3BB4DC3A1A6B782A13DC241D35C603521548EF6449651\ -283754613641B23FAC4B562D8E747EDA82BF3A024AFC6483F7E84E:\ -3228B497EB4C8E1CCAB63280BE3611FBF719C032509D764363295104B2711FDE\ -F3C456C67D6D30F37DE5ADFEDC5DF7A0:\ -B471C77B86C53238 - -1CD106901E31D8C0BFADA8CA77466A1A8D03182EB9B7FD0F25F9913CF8D80491\ -2E1665C12531C10041BCBE01727161E43DDB85D5BF57FB2DFE7D28799BF19D70\ -46DCBB0B01EC8F9D3789BDC62A301FB0672AD1FBA4B61F520E408089628E511E\ -6A9268F33D4A913C449356051B8D1127C90052FB9A533F0D1CC9EE3A:\ -510EB1ABA53228A007AABDAD204E7D845C5801D192899DDB2A0AF3AED0F40813\ -AE28C62884027690A8A9934E07EF075CAFB161D3FF3D3ECB78DE8A4BB8FDE5EA\ -86A203594F314416E9CB6EBE714E9C16BD6971227014ECF7F4A0F5E926042CB6\ -430CBED27419D69CB1B25DDB4B3A5E5FDE85FD092A6BF8043ECF4F16:\ -2E2696E9A23F49DF3E75BE263A5B2AC3D359B2E66693768AEA3DBB84A8FCA201\ -9754B57ED1A4B5E88C8056963DE33AD9:\ -2E2C2A2708051A03 - -83828EFF523E59AE2910B8DD6FD1602F3653CF9F557555E1B129FF1C30B735D0\ -22A3A505E6E5E091F786ED1946F5751E9C1D6584893D5D6448E52839AB1AA9BF\ -BE40E15A8E6055BD2CA529AEAB21B3636FE4DC1708821412FFE29963CB529B2E\ -B39619C421E3D751BD6653B0259278D064B51C2247B284F5E90641BAF3:\ -424881C0608E74FA85D31F88693796005CEFD59EF52C393D02E30DB30E56A473\ -B5911E9FDE98D8D9F4D70A35131CE58ED4F02C2E07667E8B2ECE5C1F8C10A0E7\ -30EFEE9C6BEEEC016280F642A6284D70B7280710528B0A1855FE40C5FDBCBEE0\ -4DE73B15890C1FBFD5C1D449F94CA6E681C689C45D34D450E7324F8203:\ -05FDEB4B2A121EA8814A9349EC0C957BE90F78B1873D2B12F1C7381027C23DAB\ -D5AD13AB003E7308DA8673BC9C0DB19D:\ -1D9DAD8CEF8D5C8C - -84618CB880FF09C23976808DF38DC7ED98FEAEC593470448B090F984BFA5AA21\ -59C6199BCC19153B6432086ADFF5D163AA8ED058C70F4C45194490D363936571\ -DFE08E5EDF0C198E360A40BEA55331B5A1AEE82288FABB7E048C65B660F39FCD\ -9E05355E098057878C8C75CBA7B88C45B730489E6CCACC75FC943F5C2623:\ -260F58BC20B150792F35AD8987BE0392B11613F3B5CA1910351D046436FD439F\ -47007A7F1B30111C1DAFBAADC1594BA622CEC7856D968A7017F18C8EF885E36A\ -F07B11572D0F23D85E4F1DE3F31705E706F8537B23743751870E2BEB56851B6B\ -F86124937A1E9BB5109380E1ADB3680D78D2D915DB859EA6F3B00B3A3DD6:\ -5AA847862F9D37E61012209118228340DE7BD035951792893DB26EE6DFE11D43\ -4211CA6568E0656947A787DEF4AF63BC:\ -74F3DCEB52677BB1 - -241C0EDE24624310169483018309911076B72A6D79711B1CFD4F337CC4DD28A3\ -6F4DFBAEB1FA8A016D7A04973FDC30D1CB47ABE02E49D5136E1069E9269CA047\ -A5C641D554CD1FC034B8E5FBAFA82F640689274CAA3C03D2A00EC128A36F2A5A\ -43EFC189ACB7671A29564E4682A0C4E84EAE11651EA62CE56BDE33AE22B6A0:\ -3F403E71D84C65972E338AB50B344A75C97673869A03107A914B496E6A663D78\ -FB46417880AEA9F5C3DC1F507BEE6E43C84DB947C967DCD42031AB8B6A036ABD\ -B79AE2B109BC01AB6CEBAD9475890316A718FE6FBAC08C260CDDCD1EF7A9A9B6\ -E6818FAB45D66D567D6B90BA7630C5FE2B2875ECF11B540F6945F1D1ABD5DB:\ -4639E00979406AD3DF52BB846AF2CB20A90688DCC7BCDC94801F3F53FA6B30AC\ -2EF78FD4B774FBF75006F14169FF5005:\ -994E47543E886050 - -30B3F3EDCDD8961CF876F947DA372C6BBB4B98CE57653A7975335B0C571444C8\ -F1BADA230EEB0F1942066ACE8AFDF8EDEF0C114C8884BDD0EFB40E41464823CE\ -BC54DA9A59C73A4333C3A193BAF1D4BFEEA6A72FCDB5A42C034D843FFFD32F10\ -1D2BBA99FA96AA4374EA7181B4B8392557FCA8D3A0ACAE29A64EA1D67507CBC7:\ -0C523E6C12144C99B91366DB1845F20B66BBF7EEEF07D227B04DFEB0DEFE2D9F\ -2C930D7D819CEF968E89AA6812338AF942C15F6233E9AB551DC61454077F36B4\ -583035B4E383D8B3B07B8C6A43053FCF0E3315B371B55FD791DFCF3024417035\ -F8E4C281428107699E8CABCFC475DDBE5124F423B5616740ACB73742E7CF2035:\ -F994230CF918A2A9AE718C56190692242CE5EE9D9EC4224482F1DCB2CCD6F1DE\ -0C031E7DE9D328E22CC035073F29995F:\ -7791293C3BEAFEB5 - -96A550AA095EC65E187A257F9173864733C8BCCB52A252E664D00E693A02701D\ -4652295CA84F56D87D787CC5ACCC66470176AE1CEA5EF91B9ACD3C12EB011C99\ -A36C8402ED288679A1BCE3C1AEFE1419640D8ACAD65DCBA884EAE38AAF21312B\ -4A15A9F203891275F7BA4739F2D77777081A8360BE8013762E10EDE24E8F72BF\ -44AC020468DE4E88A1E21DEED4B065DA8C94764913B8559251C7273FE7D31E5D\ -A4AAF354FE9973D428C7419AC1979240A29835C91C1D589C385110EC5F4FBD07\ -07A63A9B4391E2598991C52D981E43872F5E53D501A868D1634C72C838B37A27\ -330839B86DDC4FDBD75F874C66AD0B7FBE399B44726DDF58C72514FED37D34AF\ -CF3B60786A3B88DCF6D527BCB3C83867B8F02DDC5FE5DF00370BBD9CAA9638B5\ -2972EA756D44440A92B94AF9AE58DD0CF30A1F403B05414E0FCCDAE06E85279B\ -2D471D2B675A3AF72068A8C08B77D465A67899AEA9F1617696FF3A811ACBD7B5\ -29B86C080C121DA387091E6487733E682EF1B79358553BD912EF0C0E064BF209\ -6FC05910A051C12AFC7412390DCCBA0F443302F081884A78E7D1AC4003E3AFF1\ -B878D4AE9CEC41FF28DB33C3A60DC042A0337C66421BE343B32A2D190149DA4D\ -29E8628D74585FA06D48C4660FC2433A7EB03F40B184BBD61C7CF34E7C54D7C2\ -E7248170846473547255ACDCBDF0BA94CB94268DAE79F7BDFD7AA68792AF1B47:\ -CABE649915F699A332C711AF76355D1D5D4D808A6BE79A1D2427CBCF78D3EA44\ -C243F1E75A42E0A5F40ECC8ED98ABD1B439180BB396C9717053A7A109F5D9101\ -02832869913AB9D3E458BFEA21C9C4BE18D153C14A4292FAD129BA600BD7FEBD\ -B3A1F4AB1B5A8B54E389817B700D29944BF00B6B7C8A3B43EFF7A7E9B0756CFD\ -B0BBB17350BACAF2CD229D828CE7052BCF64D87E7B0E39F2506CFCF5F4269CA9\ -076702D437AE47658ADC14A3C6E2CDCE58970303CED58F48839351AB86A18F52\ -61E088899EAB82B90AE3A129817C3DD55390D1A73A54A1536ADBED0CFB550EDB\ -D93E8DE77CB90F469213CC2F721B24B8368DFFEBEA7FC3CC02A892E4A2E7CEF1\ -DA2172EFEABB0C3941502747029A10157B257EE9A0734EFBD125064B412BEE6D\ -0CEC4F48E5134059618A86FF58F132719DA91EE2258FE7E1DA9F3FA356643127\ -39A9843C9C056D4C3FA3064284933F0DD48B316FCE6FD09769F05FBA38FE2A03\ -E658469A5045197307F60878A93F1FB725984FC737FE1049955CC0A1140230CF\ -8B4D7302A99D6F5F10B5A524B5018B93B81F2481D5B1F4139B37C246B5B5BF2E\ -3ECA966930CFD35A38B30D1BEE41965C4B5D936D98BBAE2CA49CD5359880D551\ -39E3A2A9B2AF9A3BF7292B1B370471D729B0767F1DA185DE2CC22A25C5DE3701\ -CBFC6B686CA6DE58B73780AACABF90E38E6285C65470C4D64D79BAEC366A569E:\ -88A8AE1F03C7A67A5674BFA270393D06FCC69E0D902928B276F7E208AFD46A5D\ -14427955D0D296A79CC2E0B581D6C7EC:\ -421849BC8362455F - -8795249E8A36B4DF61ABBE7DAE5D825E47BCF9BC3A2A20E313DA65EC2185B64D\ -F50B97A56657E8FB09DF29F3C9A1F23ADE5FF6A8F046E24CC067F82D325456E9\ -65C8943FA62FD89F72E6A36C2E365F40A89545C2F58114ED59AB88715573C42D\ -1B56F997F399C037042EE34D8308FADB788522D10A07A713D96B4148AC84AA9C\ -3022826AF28F59F8AC50877AB878BC0DCC7D98EB4F9FFB053A5AD638F0CC9880\ -B58DD2D3E191FE5CD57B348A35E7B77559C8B66C98DCEAD5592406DD340E5C8C\ -BB75621411BF0C2AEC88B5D4D88C4E8948C73EB377E0CB7EE979D41125802129\ -FC7609AF8E98181E43995CF7444CB2A6166FE755F49FC22E0F457C3DA821AAEC\ -0507EB7775A796542F79B07C5BA7B1FB70E7EFD0632A894F627BC0057CF3D46C\ -9F77A1E37CB039F8C4EE5DFE042053DAB9A240079F811CF9E56EFDCC049AFFC9\ -0EA3DDA6332F4AF24481BEBBE42677AB75A23C6BC4ED111C7E969E36E111D7B7\ -70306EC0B764F37C51E8E2FBBED2E985FB1E79A7A3EC790E32CA1BC5107FB99F\ -93FA95841819CA0DA82C0ABE4ED549ED02617369C83F3593FBE24741DE49C224\ -C493FD03275BA5177A74CE0D6A1167D2EB775170761398B999BEA4FA38C490B3\ -4FAE052ED6E9784A3A5E5ADD4C78A5A00BF01B69C66E001D17CA64A812881B5A\ -E53A7A02AEE073BD1606D7FE82B4A7C7EB10D8452A1B4D81E4296C1B963B5244\ -7D:\ -264FABACE6EEF1EE9FC5F20BFAE7B70E2456A720510426EA0DD93AE4B2DBD71C\ -26BA266CBD3CFF9C590B6A0DAF1F36F616F72724F15AE64CE2EEFC1C2973AE0B\ -34E3FEB268DA29D19495938FA547CCC13007D4C468CDCA2D777FBAC5A83860B3\ -E339BE1131DB6190971847AAA76655DF6F97766A1E423C7FCEE681795F17D594\ -5EDDE2A964C29F992E1E3E43E8EA7D2E99E99F8120FCD05A3008C47356773088\ -A71731577457D1EE2F448AC39D373C3533D124CFF7B8CA187BAA9A0EFF64E14E\ -47B8A1D0F965B5099139D466BA4C85FD298695DFEDC2736DEF2E6F96285755A1\ -2003667021F6DFB6E8F7BFE93AF0908D15B843887FFE4EB111C1ABC13949F718\ -E9E042D8572E895D7893C9FFC31518DD7235B777B6C6050B4341ECC726744C92\ -5592A659FBC956339DB8483BC8A1762CF7C6E2DC00A66F18D1C8F14C2FED4B6B\ -E0F19CA752F8E79F254C5F04FD0F5676BA41E6B7709948C0D3D59377F22E9ACD\ -015B920433CE5DB61F47D3600F8B3916CF7CB2192F1A62C2C7D34CCF9C85DEFC\ -1B759FD4AFB7DCD6475D2CA538AAB662F8C38907D1D6E54FC3CE7DED78DA52D2\ -4EADC22D43DD4BD65E010BB8E752C391C8AC8783CCA284496373641FB2B2ADCE\ -81DD52FC09B16F0E61174A40806B054A6C3D3F90174AA7C5CA4C6723B9C166DD\ -1B462FFE6B2D3BD71AF46F45B16528CA45624B31D46ADE4A032CF978F83D87CD\ -EB:\ -1B51A2E2BDCB58D9E175E2C216542C2E7EF4E7C347662A569A005250F465CBDA\ -009F67AE8D9A3EC146D927A39B76D072:\ -FA6B7AC9D1ADEA81 - -9F7646FEA7A03ADFFCA96D05DDB4BF00D6A928CEF34C27A064C9C31928736748\ -D758B8DC9F44590070DAD463C6114F642C3BBAD73A2CE2B981B547427B23D1F6\ -7A77C54E8DAB0AE4477F5F1072028954A53E615D5CFC8F2895B3DAE543F58F69\ -2C4F68A9B949740653B084511E6595522A95573C4A5F09F85957DDBAEA67984F\ -3B029D5CBF44606ADE017E1183EF7124C301949E40B58808C4A3948327BAEA69\ -E11EBF9D9E9A5F7C8D625DA97FF0763E38FDBB8A887C5F49B7B719B979C405FB\ -C4EDA281986B985B135B74E309B28707013B3A245983C07F2A136D9CB72588B6\ -1BA442DE714C9C091629FFCDFAC95FEBFBE63C90E220F4B9B3D7DD0A6E625796\ -990D94007C7E7C97346C9057B205D92993CD1C1E6921F15364379B5777FEBF75\ -7FAF31663C33FC2763F205761473CF898E25699758C2CDDB30A7DD642583E4B2\ -8FCEEFF668F60724A74C3FE464B202987723C0FEDD04B11149B38DDEC9D60944\ -C2E613C244AAE4DA6485BA513250EA26EE374B11F316F1900517074FE3CBB624\ -32392B21325E72F4BD7DD2336E7EABDE29E64077584505C15861F0A7FDA0DA6D\ -543AA898DC0EC81BE952990ED00E1EBED638DCFAE0EFECE83B57E284C8CB3AED\ -C4AFDF8B80A37793E76A7B243B242AFA7DB00A7C1771CC5EBE0BAFE0C5ABC433\ -821DDF98FB978294CCE9C91B8F3338FEA31B99B2A2797EF2DBF300F60AC1637D\ -9D2B:\ -56CDA1D2A211F800DAAF2CC5B6E1FB645C7C259FE7B4F0EC04F7A508E3704892\ -65300FBCB39583B0FAA1CF1CB2AF6BA828AAB07AD1248D24291CF23CEB1D57F9\ -9DB1CC77284A5F8E3F71FC343D7936448FF268E11E49FD1D26745FF3CBE06613\ -A0425971C067DC73FEC74BE27736014A614A169132C6CCE8DA4EF569670CF0F6\ -E3768D6CA52FEC5D7A713B68C7DC3954007FBD34C896413206889FEC2471A7D1\ -357BB511D19E5DE147E97E63647EE6C4C0E7173CA13002CE3E285F2EF5255F3F\ -3882ADC59B7E9CC31504A16D94944203B303A8E2D2D091E687DB658FE7374139\ -01EC3B4E1CA25A25E75D805E4707C62307C60BA2CFB35B54C5F4288EB315B2E8\ -7B9318DB3E619942C1BDBED18940A1F4614956BE155D222680C151DA78AEEED9\ -E36DC54C70971172A1EAFE5C55F2C4629F83D956FA2BE31A602FA1B064752719\ -19A87130617EA5C74D3AA436B2E1380714AEB48EBDF782D3CB884D7FECC6FF81\ -16291124B717B8137F0FFFA6351805DCAF4BA0E878B6CE7A4905690406C172C9\ -152E88D69AD2444D011CBC33E8803A0D4590EE4239330878F5C5E8A8E125E4F5\ -0B77E412DA658AE661C73326020587D9F2FB7838F51B95A482646489C67EEC26\ -E1DE39F098ED50EBEDD48651525D9C451D9299B473AF1A2E7C376A35AE4CA582\ -05537C6558776ED5C76A6DE1A38A3608615C1F8D33B55232F384B617F6735A28\ -403B:\ -2C811686E0A407B1B61D587ED7C043C0006CF7A9B390C4A2757BEC3C14C25FEC\ -236B53CF37AF788C12165424187F7112:\ -7D8EE12C9E460576 - -729094DD633A174039270D6A85B6C10A0DD0875B89B0256D9147ECD7095DEAC1\ -16540D4F39A37CE40617E3E3ED147F78FDDC4F32DE32AE0DA4D1913C6CA13397\ -323C8854D5D863B3DFDDE349C20C32456CE648C356200FE4F4ABF2D8D8C94C47\ -F95298E1C34139D85E5DD3DB56FEE7DDBBC49FAF000066AAEF0A5B8BEA6E0969\ -645A3C639F63BA673148D46B06957193BD2ADDC98164B6A702707456090297DF\ -4BA8B6573D8749A1C4D58D6CF4F1B0A001C398B2F904F369BD0BB0C52285274F\ -329F6CCC9645B48F5962EBEA6C771E1B60EBFA4DD7EF9D6AAAC9F9887484965D\ -BAB8EF2114FD60EE2E7517F26296EF126D9191376DD98364B8B08657BF9EF362\ -FB8F6A8E3D232880BFFC748A934C55544F1F6C117A0D5FD7307D4B6C0DD32C36\ -7AC5126EDF55BA34700452EDDCE4E71CF89D9B8ADE00D181DFDC5E427A2F029D\ -A00E10C29F4ACB4B31F203A1F5CA176654542138564BFECB6139813A741A1A62\ -505C41E1FD7994A14303FD920EF4B9D141FAEA43496EA8FF338852FE0E03BD94\ -A24914B910528890BEDA1C18C98839DDB20FBDD1B93E0D9D5275884D4D79E0ED\ -F1C7FAF3663EEC7689FB80C42F5A44A454067913C1450A7D94AB6624AFEA64F2\ -F79A541E8C436384AFC023D530F852B680642C0177054737E3992837651A321A\ -B1278999DE318C411D4E39789F2C44DC5620EBDA3AA9FD94B6A7897A7012D217\ -710D72:\ -61DBB89D2482423A6A890AF65B08551BDBCF769B009DC9FB35EB43D1DBB29DF7\ -5721430F710BE84BEF1D6753B65D8F9BD2C5E73117872C1D7BEC351BA21B3CC9\ -47E4AD9696E26A1FF624895273DBAA512DFD4C1C7803A997B403F363E08AC1E9\ -1084E2F99C67A28D711017F950459BD842261356379383285AF1D441E5B75D49\ -661B8F6FEA285B4F6CC9F77A93FBF8D59AE926676EF0FE5C2CA738F3CEE0C85E\ -AFB62230C60A4CDBF2EA8C3B0187C5BCDCCD5F32654B3D885E1F97650F937DFC\ -C93FDE41CCF40DB82CC4525D0C74C73C84D65DA61B1F954B08D4BF5B21F5F177\ -06C646A4EDAE6987E60FD02C6DBA12E9B33B2D6C7688577F5A9E3B13031D92E2\ -B2FFAA37BDA3ED771C38A6D898435D16BA27FC11B934E12D4B09B058442897A1\ -E8CD27886F697DB988E30456327C214390D6FA3205FEBF6E30BB3C6742350EEC\ -F0E6064A6D5180D06A2D9EFEC74967B4427AED44DA08D413DE60BA5F93DBF0AF\ -0FE3F70A744EC99F9D2481D5FA6C5EB350CEC1782B86C2B480692F83B3CFFD1F\ -A7F7BD14EDEF4F868DDA8C9DB4892960044CDA1696E392AFC8C735B2833538F3\ -D841E8F972A996DFEA2A1816604F1851AC88A0F4D274E4F35FB98EAE2C273499\ -C3114B9ED3A52443D5980551666EF42694CA159B469F844A7446ADF36BB88CF8\ -AB7EF73904C483A1BF6B9C76CB5234C42C999829D8D4238A283FE2D298FE485C\ -D941F4:\ -54C907782E8DDA9845AD7E4EEDD6E1A5B0F79551BE4AC805312C9EAC76AFA19F\ -71B1173E170E0AD4DF95BD22719B075D:\ -CFDA223B42DE19F0 - -49ED4C5CF19D7F5F499B51FC68FC483CDEB1B58B4A4FE77FA1F39AF7CB20F4B4\ -78BA982955CDCC3D614A4462E7BCE483545E0DDEEF5CE510658CE67DFEF211F7\ -33EC0636007D09645ABB7B9EE1BD7EF2300468C96F5B6FCB6E56470B40C6FA86\ -F01D957869E8ABE724CE072D17315A051FFDC8C576909A1E804C378B20F3AE98\ -F4F8F4C6C5FF67F96FF39E8B109A93BC4ABC11ED2B4C0B2BCCB31E38485F2595\ -CFEDBA3D859F20BDAED90642468CEDA31BA982D7857DC716EA4EAF6174A2E5B1\ -E0361E69CAFE9CD1A64F0E64C4B4702B9525213C21800E140CF7444580668906\ -19CEF0AC034865D00295979B7CDF63D3530BEEB544342BBB651B8EBA16B8E920\ -8926A83C1F353103A4C36A206612A5D6AACF32B867196DF586C6357429394A81\ -B65CD1FD97966721792BC53E7E1880341E3CE2FEA9D48CB257200C516A0BF435\ -1C810F3DF6B888F97BA1765C765B80E94554B100890DE7E0C3D5E5738D62E70B\ -C6151D541327887D7224A0B5FF20B7FEDEE54346BD3E21E5C802C3568841FA3F\ -EFDF72F437B9DF143B0E6A4FA859A9ED836FC6679C786E0D8559933A941AC1C5\ -EF51EE879699325A024DE0D919F88E4D9D86934B7AAE81544D165CF2779C248A\ -0B46F8D4D5A7FAB7B3C81568CDAAB73C405404129D8E56E67EC9FC291A8F17BF\ -153AF4DFA79E8FBF3786C60D58763F97799CED4E77CC6F042FCAE073F9F7BA3D\ -44BBF3BD:\ -1F9B3A83756B933D6B801D33AD8EFE9D40E2D0266B11CC363D99BC3ED52A9070\ -D997F397FE9791AC38658950B9B807FE2AF59EB8D718DA067A2F7ECC37530735\ -FC52897BC29F17E8DBA021137B2D9455B0A452E0194CAFFE93D67EBD6056AA47\ -FE21051107C07CEDC5D4301BB5B135C7BA42E46D55F26CC74887BFA5CBC1EF43\ -77F889B14CAF0E8915D438AD4E0AEA2481CCCEE62B9D1AE9B560576266410DF7\ -FAE7CE9AB0D3C3E3818C9884FFFCFEAC84588F8DCFD3253E842AD11FBE367829\ -2A15507D236D6929866544A9B6DB577280E0DA177F99432AEF2757D1E14516D8\ -4E499B041ACE58BA7F8C241F065CC59F30898561EE872D3BE93F815F1D81D85A\ -5039DD7F3A7FCA877D21E82572B792A0CE4BD61273AC9FAE0B6628D15CABC9F1\ -56505CE2E8D38A13BD11BFEF58D81508BACF2A27D9710CF58ADC67BB9ECC584A\ -F6DA155ADF9752544238C85D19A1E0E21CE36F395DBAAA0057171260DA02527C\ -2F3B94C89C50A427AF9C906557EFF93081F5F03E3DB2F5D3EFD436474EAC242E\ -62F2D3440304ABD63C5EB46B88A4205C241E7999BF0AE66118A007E03924ACA4\ -EE2CE4AA3C91286D30F9651803297280E89831C609AFE1A09A6D97E1C7238DF9\ -8965EC5E7E3A5A70F1DFC0BBE3ED035B07DF7288702D91DF2943EB0E844F3F43\ -F201CD48EC5AA46D4890EE823C63EBF7634753EED926A8AC3AAADB861EC475AF\ -6C432C96:\ -01878648BD27829D266AF6256A445B2FB1F9D72AAEFD0E571448094F0573434D\ -01594D6CC424F62B42F4B2EC419362FA:\ -6F2DBCEADBC6B5ED - -F2F30FE45D60DB1E5C661FF3D53770C9EDEEE81924DE4E4C5EB3B83CF644FB87\ -2422C375768A6A0B6B6311C952C3B9D988E487EC2610C99C48FD4E4ECEA5A68A\ -D09BE28CB809B286AC5021EAA5B3DBDF9B54926B901C889FE6A3388C9BD230C5\ -28C65EAF6369ECEDC3974DCA550CCF9545E44718A68DE9CB355CDA455B236537\ -CB2295748386B401A4E7035F20A66344171D81338702B0A3967336AF59374FC8\ -83C3DAD1104C0B379B75B58CCD8DE6413B97488CF4FD03EEE651C89A31D95A91\ -22DE041BC238130A7522B49998A2EB1CB665E68FA8F45E339E6781D6D260EC14\ -DA068D856C66E8291EF730679CAA190DE5B5FDEF70D30F21FBF590BF3F2C6087\ -2025C59EBC4B3A8657571C53FC5C121F8D590FEDF3F337298D92F75D78E8B89F\ -7B83C3438C0CADA0BAF4168DAADFB02F696628E664AC21E8FAD5550EBB711C93\ -1AAF6FD775F2BAF467161722855F98DC67FE081C9637BF9F896DA99252C8F4BA\ -A80949A3236D111112F7A2D2E935F667C21282D08C93D051CDDDDBE5A537B729\ -9DDA0F0DFD7A8EA80CD88EC47C12C889F74E4B99F02C121DF18902E07FC962CB\ -9DB1F618D525C99E7832472856F9A27B6254B318AC2962CD18D838DCD8E9F75E\ -DD85DFCFF1E3542BC2A6D7F721CEEFE17AD62AF2C1F3740FA974EB8C2AA65BA7\ -14BA84DD0E6F38F326D5FC9A81D8D3C4B674291861B9A49255D52A56BE8F22A7\ -97E9DD06B0:\ -36170FE27C9C3696DA79AF1108F688F6730608DC4686F464BA2ACA29EA40D6BC\ -FC0822174FA4DB9EAB70C124AE93996DF8D86F15614E228060B7101C1B00A9DA\ -F9ED7ED5FA45388D6EBABF17A11775426C05E3467C76D3AAAFC952269CFF5782\ -CEEB614342A6E8C16571C5E22A1B4729CB996462E9CE1CF8E89EB435CCDC0211\ -CDB193697447EA75CFF47BFBEEA6B292E569DD9DF5752A8ACABCEFDF44F8D08B\ -4B8AD9CE9F3A28F74AD7C7488A782755A949E299BD8F8C5913959704525332F7\ -35E0EC0ED2409D9161D49E2C72D4D932F75F34AE74858AB8AC4A2AC2AA0CB23F\ -B703B36DC00B4476A7496E96A0C3CE3063706FF17F98C4CE6A0DD76506425A96\ -6E07BC87B78951FB6B90BAD68FEEB6A9412292ADED8E94104698C97F1D8F7578\ -B15FB9E72F9984DE82AAB0ED4AAF3A03483BB6E94AE800E2DC426DAA926F1B6D\ -BEBAED02D686654EB05E05F8269CD1E6510E91FCA31129565B91686A7B78106F\ -8FB19EC24AF3DF65EF93CCD327E1FC256C5BABB20D6DB6A4A7EA40E56BFDD658\ -F0E65CE4EA852E9EF7CD26549875B12EC2AD7A4BAB4AA8703858CA1EEF8BA28C\ -3018C1FAF009D611D29D06C6D7F23EB30AFA8EA777458AF374443461D0B645F4\ -636D96F523023CA312C3C98AF07149FA178783451AA4AF062E67404484711418\ -660A38167D59630A06276FCD2D7B4A908DB3C5F738475F52FA229203F5828E29\ -F8381F664B:\ -BD63C9A9AF457AA8AC98A656BEED50AA5704FC1F8719DCF7EBFF3F0F17F654BA\ -077D52619BE6E2A945FB98DC49466D00:\ -84167B3A7987ADC2 - -5E0EA90031BF80B8D03349FF9D54D1E2614A6621A4FCA2366CC11A6EC7C382F5\ -63CE0DBABCC0CDE1FA93B0857C93E7360C70569B9DDAC860BDFD7E13B2A882C3\ -E61AB3361F2B12C064C1901E936F2317C8E4BBEBD7A9E653F965CDEB504531A8\ -D133A14DFCF064C1118B1505D3614E7109D180EA9B0D0CEEFBCC93D938EC6CFF\ -A1E8DEFAD464152DA5EAE8954CF7507149D79C54D47ADF40F4BDE034C5D4FEC3\ -F1FC187E47D8B43748B4AA32726ECE9A396A744635E3DC3FA8D769B08ABFD0F8\ -7CA77700EB28149BBEDDE28DEBF3137DF99BF7217D2B36BCE9EF71B85488D099\ -FB99870F3F9D23675C1DE2CB6E821F42B263A5F215EFB63CBFB78581783FEFAC\ -D044265DF2E80D1EAAD98E417B78FB94F7A5A2D79A9EB85DAB964ADB38D3505D\ -9DEA43532E68C30D280ABF3E69D84846A9DE15353CD2C937B744329ECA447990\ -699E32470947680E03F50134CA1A62FE96857930DD2F22221B0B1762608B9ACE\ -34D907932842BE5E380E27264E0176B9981E98E7539AD68A4327FD9A0B36AC29\ -1BE99F32E63935120B8D6FED34C4F6E6CBF870BF8775F4E3833F882A16620E27\ -E2E0FB668980BC757D497949A52A5850D0ECC0B0D40768E6DC5F40D0E6CFA79F\ -0A8917512F3CA467061DD608D4DA6D48E862051EFE8A8EB7813544CD393318D0\ -BA48F914C1A45A787D624EDF366070B8898113B8FCA46D7F6E2F449CF40DFBE5\ -1E503177FF7B:\ -8E745FB5E21C3878F34E578D61FA68C6600B68D9AEDF7AC07F2704A17FE65B27\ -00C86E55406273C016340A02DA1C4B742774F193C0C78B27AFE273D12DDF8F2D\ -70E29AB245E61CC3D3BF628AFCDE3C7E20444107FEAC1BCED6CB6A10837FD37C\ -890C444C600D4D9677A32480D09D0A38B6D49BBC43A0B02E576B3C396FD6710B\ -E3E1E05D20831FCCBC154CD80540D0F7396467B76BB4665EA58729EB312A0B2E\ -8A3A216C55EE620E36DCE56A0F4AB1058FECE4F3A7881356D7115085A3C78C82\ -10D3BDDAD512661DB85FD93D4A4779EA2B22027FE3E8040EF9145B779A3B99BB\ -F4A60FC3AC54E8BEC89A7EE7B76A390BACEB7ED76AEB04FB19F6386FD493E437\ -AB0A9147B88363C3FBECD53E0BBDFEF233C8E919F12314215E358D5BEC2CA0D9\ -C63F0A27BB6FDD125BE06609C38B7783A0B1A571744E1C9C381A7F55C84B9DE1\ -DE6AE75B1F035844E24C89BA287AC2508D75B48305D1A9EBD45EAE2479BD50A7\ -14964346113736D61E028FB962808BBF441290C5FC6E38D6361E4D910F5CE183\ -765287BBFBAC9FE1852B529565D65BC2AE704426C04244DB19135F0F39AE0850\ -2E926A0159C074A90F3EB1893A14AAE1D8291E23DA67D4ED9C7279D4E7F44EC2\ -4ADC1E4D0F9F0EE039A78EF0D881723921CB97DDEF563D782709107CC9EAAC5B\ -040E698FC935A76A733FEDCB934AABB34F0CE5B6B63E16009C9C3DCDEEA9CEDF\ -3E07820BAE88:\ -C32F72F4E89166E3EEC9885B1453867AA2E4940C7184A8DC7DCDBD144BFE0406\ -C5D9FAE4A432A8B7AAC50E435D2DD6D0:\ -936122A37F14C86E - -F3BF6B544D792A514B0E9A105DB900B4C5E649A4DDBF9C32400E296F8DE37C00\ -788A1D8DA34AA4AB46C6F37A8C6B793E71F85BFE935C0D616D762749475E0539\ -F690AA5ABF21D7995F6136910908EE9A9BB9876B9B26FB3038BE7293ED9116A5\ -CC048B5B928FE4B72658061CF212E76A76E0B6C5C3D516BB09184A42E4F795FF\ -8651EC6E999C3AAB35F8719BF72EF5AD6E60AF88185A68DECF957056418CD470\ -D2180221B0897EE24BC7545E799AD8B6540CE30CDBB87E1444C54605833C5928\ -84C0A894869FA9C2129BADEEB32D4A23BDBE8A3EBABFBE735B601A693013E614\ -78463D67818E2A3607D2CD4D24D069CB9AAA66D4ACB4CB0B065DF929BF97797C\ -5CB1015DDF8BD33F5F503CB2159F64F748F543188FF8EBEA71A6A669907B117D\ -F1535113A8E0FCA60AA095A43CAE9B21D20540C0D869CD7A970B16DAE3E52E84\ -ECDD4DA73CB56763F72158D93AA6BC10A0456DDF54D4E23E47B0D0E4D376F90B\ -10CAB0D6CE9EEB0792894B29104182B032BFA6F2812AF43CC05EF13BC7AFAA74\ -69E133FDEF68823F8D700D6D88BFBD04F13C1F692785A31A36B53CF9AEE267EE\ -4517C822BB9CCA44FA294601DFD0FB452B40C374E09542B0FA05AA264D35233F\ -82C2C202FBFFDC50665740732F114B11CCC4BF786E0DBAD56D730AC05E12EC23\ -4BA17418154A968E946F87F7813479339911D16F3422B483F9B0FAB0E20B1754\ -9D2BB46E5BCB76:\ -29DF14368A0F03474DCBB394BED5227EF922C15EBE44718169EE7047D66EFFFA\ -2E36AD3C4F3C1FC3759F9742B6E51356F3262AFE48A4D8ACAACE5B57B795BC8B\ -A11A8609ED34A96B59A3051D3CD5668DD8A15796E8CBE2821525438043C7CEF1\ -81BF3E146D9905AA67457C07BBFA4D080E86EEBEA9324D57EF8D790CB10C6430\ -58CF5BE170A7BF0B03CEA9AA81B76A6A090B8FCCDDD159195C3D129D0D6692AE\ -DCD6561CC61DE0EC9AD3A84EA6AD1178811113E84328E0F50B90AE9A23921FA5\ -45F58BA6E9B8F885FAA72B89952A6E889322948A7AF42896C80C03E0E1708A96\ -1DE724CB7607EB00BB6362C6E5C0826A40DE29DB0CC05E29D7880A9B3CA3776E\ -6A435674C60C2CEB8B2EC3B386FB3F46A86935F5D1590DCC0815EADCD070A250\ -BAB2464F0CD85AA8552C5506488602EBB46F80C3E6F9D5FE9F1BA1E8E3B94E4D\ -B55FBDD3628BE894F35A932662B358BDE9E8EFEF273CD35A3605381E3DFB7FB5\ -B1FB64F084D645C337C06376E3E1C30533036A2079DEFE4EB076EF7D254AC084\ -8DE99AC6B6BFEB18AC14D531EF98C4B4F71813F82F5A76435C587BF0027AA376\ -B24D09AA990B1EEC6E292E46A462B192E0B8EB85110F7B5870113E031D10E29B\ -9B02A9AD8C52D397D3F77AD810364E66A0DCBF04B6948DC322A11980495A6B12\ -1F8B3A8CE2EC4477F96E9832FBD3D777547A1B0199BF7696094AD2883F643A81\ -FA4580D5E73CFC:\ -EA269A4E6EABB2004133135AFF93EA6263B7D88CB603252178ED3BF30F31C944\ -9193BB64D627832E5A6B6556571384A1:\ -F55B4EA476A09C16 - -[TripleDES/CTR-BE] -# Generated by Crypto++ 5.6.0 - -97:0A:\ -88EC5C9E9F223D7FBA9B30756EF4599D456EC9862840CA14:\ -B49FDBD64C0714ED - -0BBD:F252:\ -12C9A28E27C2318703CC39D4CCF116D4222C86AC6243ECF6:\ -5FC33DA76B3D9006 - -F9AC35:FCB637:\ -1E796473468D5E91CE170CC8B5DB6C1EA46D058B5345D35A:\ -4B32CF8013B2D2B5 - -5F646CF8:1C2B4870:\ -0B6D5A41871596D3BDF22A486BD79D925A01DE716C23E10A:\ -6C164D7221E75CED - -0C2E20A965:63C6DFC9B1:\ -E061260828CDA4B86631F3FBB74D48F363B0E45604EB41CB:\ -4D6422429C41CD32 - -A13360ED3328:B3D7A1D9C0F9:\ -F123BA5416CF6208A06F4700A6F5F26C5D27C4929711E044:\ -A3731CF37938EC96 - -B050800567C2F9:24950B574E00C3:\ -AEC241C64A79B95F289BD4935691CCC72843216233905904:\ -B2D3675FB60B68DB - -68F8124B237BCB15:487F9E08F63717C9:\ -96A8129959AB9F86C6DA4C25CAC3AA8E6CB4780C9702DD3F:\ -E0937FECACFB7CBE - -9987D62F3B186AD519:6FBF00CB7E57B85FB1:\ -C7B972CECFBC119A6A48FE5A9C648494D255E1C798E957E2:\ -CEAA71BCEBB7FF2C - -8AC131BABB73725F9F93:87F0636BA739E1AF0420:\ -7DDA46EAB41941CA93ED65F9564A87B614D188CA40741C50:\ -C5C42B0F197379BC - -01C70F5350B3868244109A:319B4F8A15BD070C940ED3:\ -7E246740B8862DB45BAE9DDA9AA2371CA8924EBD10A83885:\ -1362D0F2A164F4B3 - -29B2E505CF74276EA0033323:4A81E054B1DDE289B7E8A339:\ -B395CBA236BE9E11B5C71476E31EA33FCA07706F41F9FFC9:\ -AF32EA8D33DAD998 - -0FCCA7134678D5B1F19809BFFB:CB2DC5F7DD24CA55DB73DD90E4:\ -7F7B0488E6AF4E17A815C5C47D1A84DFE90023693D8513D3:\ -2166865BE0E1B2BF - -BC2C8412AAE144C3DBE5FB8FA904:84418EBA5D8723FD6C5C3E6D1E10:\ -34E5CE0294A97A0012E11E0EE2BAE03A701B28C969B50573:\ -58AA4511AE4AF26E - -F268A2E1569E166B2F32ED6AE8B56D:70FE2961AE8647134952D4100E1EAE:\ -A09FF56F666975A778577D50D6B12A21625DEF840866787C:\ -90DB7E59DA534702 - -B4D921E1018766F3B5B57B62752E1410:EAE2F2B0A7ECCCDA47CB780802BF8113:\ -E86ED5142A2BDAE2E15387E500FA176F496690BD009FD017:\ -7585B73BE2B46DED - -CA032FE8596CD58286FB89F89EE75449F3:\ -588DAB35EC88B532925D113F501F48A4BD:\ -89B6D2747C5C6595FC0763B10FCE3414B4B6800DF6FDE760:\ -ABEAEAD81F34ACCF - -DD8E581A456A3BBD5D4C0FD412F15DD4DBFF:\ -0C0B17BDF30BCD4F2DD40FA59878ABB182EA:\ -1379A08A06CE56C40C2F71402D063D2BC45E2410872D91BF:\ -06EEBB1BC203C72A - -E69BA9AE4A7890B935EAFEDC4C1533ECA048FE:\ -52AA3C6A5A75E905AA9CC6773D0D9B8B91C550:\ -B78843AB2868780685B364FA4EC7E7BF3D8F2FBBB85FA573:\ -3C84AE0D3AF5F57B - -B73A4B8FE9F8BADB0E976DF555257F9AF67E2FC8:\ -77EC0EB7DD2A673502F480EE6E2CFF32306D07F0:\ -56FB990986DDD678E179AB6FC26897C2996FEEC6E58226BE:\ -4E0A07D63752071E - -ED9A5313244B3B47B7D122EBF4CDE71BB21B823B52:\ -5E80D463E271FA56B1D8FE417EC70B36443224BE24:\ -B2FC5F8BF1C5D267DBB96D819A1C4F9579ECC5F50B45748E:\ -D95DDE49F3720F90 - -28B33AB62AA9110B5E51511444859EC73DCC385B9DA1:\ -91A005C130858BF53E572231CA53B2C12C79A45F7A57:\ -E52FFD655C02ACBD8A764EC1C938A34FB7A60BC3214EBA75:\ -44A5958F8539B344 - -078FD39F4D444A18EEE155F12297D177D0CF3A7DB53EE1:\ -BD3B9A1FAD86FFC6AB61987C5854AD31FF922B135DE763:\ -EF8BE118E57C9B007525AC36A150C3A21F619F12B472FD70:\ -7F117F99E20199E5 - -5DD649549E995B9435118A33234E698829D6BF5EC642D1E8:\ -D2CD69C30E2BB267910B91171E25D31EAC1F86A161422803:\ -1A96CAEA23524343EEAAFBE71F8932B30C08B93C603FD543:\ -332840A8D9799055 - -11785EC120BED9A3C964B24D0AD7165C541524FFB48CA729:\ -69F5A5058E69DBC79ECE72355AAE125D0727813FC5602EBB:\ -37CF60330343BF4B535DEED7B84F635CC54E3B4ED931312C:\ -E24659F0266162BD - -53A0E3F42907DB065E17B055B17E91FFD69B201759C398EDF81C22A6:\ -747B39DBAA9E9C52BA6462D0C6AEE746CB73609FE779368CD4EBF049:\ -7F681F49EDF476AB1D6942CF78F3EBFE9B7C9465B96FA3F5:\ -CD93A0B282C2C4A4 - -065FFB79B513457D79739421F97EC777B53B23BB88A656A4693247D5A7318DD5:\ -1C7B575F4AFD516208D90B19D5BFF8A848418987AFE195D7D683B5840651FBC7:\ -9B1AD76C8D5951C3CB503C0AE24CAD3D1F3015072E4D9C93:\ -3C6815A30F546E5E - -47091AEA1CE82EFE6992AF5C5C732D49B16C11EF4F00D120B41E2756CBF7784E\ -DB3B42A8:\ -F2CED7ED0345477521672A39852D4C006644BD2317521AD6D47F8039572896EB\ -64E543CD:\ -C4BC7CB98D99F12665A24433AB47CE6E351D07E6D800DB36:\ -901D49B1E9EB2097 - -945082A1B920EE6874BE05E3DAB5B7DD011EF6FF80952F01CAB29F9A208736A4\ -8042B6C44481F7CD:\ -D143689BB576083DD9F87D970584D10F7EC14849ADE29841D617BFB855F04BD2\ -3182AC9ACEB79376:\ -1D795895A23AF9D60938477D717A4C2F4DF0113728E8147F:\ -21380F578AFD1C07 - -583BBAD6BA61BB298BF65186F27B343D54EE47BE29B2469F0BAE0EF40856CFDE\ -1832BFC79A499CE164F7F01A:\ -C829FAF9118F73A6409A134E76BB74C1F3A0EA67C4AB1183E945E5750D9DDA60\ -6444B80C6BFB31430C6D038D:\ -02AC9E4E449CBE29D49CE0B25EF137AD592A7442377DCFCC:\ -6EB9BB6851B2AB13 - -FC80BDE6EE7C14BE8CF25C00D651839E53991824EF3415FB127881EE4EC73A49\ -C107EFFAE1BB017583B3233CFFCD18CD:\ -6BD12088E4A1B86D5063C5C07601C874DD11B8813DB48D54F7D808A2754D543E\ -9D1782B45AE293DD0C4E5A78F215319C:\ -F8040495E58ECEF0E923C616DC10A520274BE053D388AA9F:\ -81F4BC6CDC689C7F - -FCF9A0FBE89ABF12FE10F9D2D3B801C7551F109562BCB30E40CE8BEF295141F5\ -155F3F05FDAAEE194255DDC5685475EDAAADD7C2:\ -5ADA184FECCFAE942E0B689F05318AB134F48903B2BA4D8B180DE482188BCC2C\ -05FB0E610913FB5A06C2B8676D7BA7EAD9385A24:\ -6477EAA65B50A234927B8DCCDDEB3FBE7404E91FFD907E99:\ -5F04100C1A2A2557 - -BC91C5CA49644998D9CAC72B43E4FC7FDEC32C7C4E911B24AA37DC4ABCFE0983\ -47AC134A3D4F5322619ADB922B00A1DA123E0ADF678E195F:\ -E3DEB62DDE6F5D1D91FDB0234FB0D8A1CA29AEA3A6FACC9E265DCDD87E096963\ -5623037EE6D9F43B74C6ACB933F097A8782847CF80213E73:\ -2A1D76651411F489300592B31BB215A659ECAC6D2786D3E5:\ -8FE416B43B775A22 - -EDF122577185F6AD11F6C3930A565CC6BFCA6D9E9A50D5D2033D985142145723\ -AD5DFA28A8C9EB5D6A99A18294154B596581D63B1B551734955A9584:\ -FDEB456EA993FDD98BBF939E59FB0138689473E449D40D01F49740B02A1E6CD2\ -3F5908877DBA2724C4CC12A0AA25D37DF1CAE0F576608B0447D68E58:\ -FEDEF66C02B8A055A845B268CF5CC8992F330CBB7D04126D:\ -70802B6B96EDA29D - -6392479C6E5917082DB4D58112A213D5822B9443E555F2C38D6AFDC167E9E089\ -D31BC3F6CBAFCEE28DCA4F5EBC72E524E132D745E4043CEF7020BA568EEE228E:\ -F67C1DFE15EB8E5CEBDDCCDB495E6418CE29EBC243F8FCDFB82975EC4114F8CE\ -C1BBD6FDEE6C2C6AC0BF8BB3504909D09DE527E1C0BAE9F462241F7830F794A5:\ -EE761404DEBA9A33565220C27F0813C39A5EBB242853CBF7:\ -852F8EA440CB5BAC - -83F82618BF2DD4EF4310B5F14F25C2EE63A36987B811C0AABAE5172ED44E0894\ -1D8FB5262C7AFB846615F10A0FB4E9EE04CB1CF83986DD206A751FD5F8879EDE\ -4729F45D:\ -F675B2434E294DCB7A044A27463D68DD7DB781BC156ED7159F35E5F867D4842D\ -38DFC9A2ED0CF055B2F97D3682F65CAAD778BECB1F3E2EEE7F0EACF1B00B8085\ -0BFCCF6B:\ -229CC4B93365854F0D1DFC204B7A10D220CF4CE01502858D:\ -E671E23612AC6A6F - -864172019C96F6A967D57A67DC2FD7D545F7165ADD8054FDD6383E0B127802AD\ -16C09F300AFE5858A291727CC5554216B0CC3DB6496EDE43D050554B7259A947\ -190B2EE0EBF1AE3E:\ -376764C231B95E5F5286F913C01BBCECAB034D0DA9C7E462592D49F5FF47CD00\ -380684DA628B37D3B89B2DD661E91FB3CA8A7A0C9D81F84A20DB949A3B7E7825\ -C0F4912A283FAC98:\ -359DA8E7D9C83F855455FB211E858CBC1F22ABE0A392CC01:\ -F091D747023D2E80 - -FB67553B92328B078608B5205B130ACF891C3FBB4B8871E924A3051DE9809ADC\ -5DEA0923B576F2A9CF3773EAD9922AC29BF6BAA2BD9712161C8039F73E642EC0\ -3FC8A55A5BC4EC09495CE6ED:\ -3E667A7DB0ED4258AC8DF0114320EC8FEF6E65D0BC77ECABF170D5E51A53F895\ -9CE646C019AD3FC808F0160BA87B106CD80050B8F702643111D538F742F314CD\ -3D4214F8F2B16FCF8D5C47FF:\ -4093748D277BD6B2E9F584AECE71043C6E47683E9E4BD0F9:\ -F4245FF774721187 - -0C395E448D57AA17E8468456585DE8720557E994F63CBB77005073760D53EA9A\ -2B5613C9BCCB8401F1808BE933AEB42E8A01C497E8D97C8CBD502D24FB7E115D\ -D6BC798C07ABDE32A22D75A21A84EF6A:\ -655AEFA5C512A857897A1543A0898C012A4873FE27FD48510E1E9FBD677C4151\ -222582FB0881DAC3D4E5D02B0BEAA19703F463EBB92F2FB2322B52E4B3A6770C\ -1272D2B6B384914CEED77D776DEACDCC:\ -1FD50583DA3D8B0EC7A9BAB3AD14447D51AC817C231F30CA:\ -4192D0FBDE37BE33 - -AD4B3D07459B913F32336BF93DF71BEFAB6B7A7ACFC69EBC8D987E0DFF89B8F1\ -ADECAFC75DCA658693DE5B7424459403905E67E6BDEFEE705B71C4DCB27EB6AA\ -F080E15B5DB90AF93EBC9C42EABCB8C310FBC8B7:\ -0EC7B56ADEC94177911B969D69B587A675D8349F3CA94DD550F107C85CADBAE2\ -5E6EDEEA2E2D6BB686BBBDD5187B0E54A7AFDB0E9270E03FE7413138CEC8CEDF\ -9FA3A4D9ED1301EA91F3D8B453D94BB0894B5995:\ -5D05BF58A304CF94C90635D56F37C1A0E9BA10935D428D69:\ -F305C881FA1A1F9C - -8F0217CF21EE1748F05CA42E5FEEF1BE1AA09BB00AD495FC3A09611348591DD1\ -E54C62856C39614782190C38642D42A515D642360DE095C7D55E72DDD831C6EC\ -1489625F3361A1064FDBDC888C8DF7F90B4431775EDE1C20:\ -79844FD0E851C81D5626CB05EC9C2C34ECD37B5D66C94C1E0DE4AE752BFDBF51\ -B1BB83C312113EB395BCF6A5E33B8D1462A6289A244AE2D2773A7203DE87D762\ -80196068C9D4F9034A5298FD364AF7AA8CC4846B1898EEAF:\ -78DD18BE23235BB33E2DC8AFB4DD531D1F48A8757223BA0B:\ -99BC592318BBF787 - -9D38B62D9033DB573EC84257CAED2CCA0D04CA5F7A11B47E45FF523DFA9ADB38\ -C93E586AFC80B300835B02CDE13F123A8B2E5BC66CF5C333FD216DA06BA0C937\ -02871142064D0B2A91362D390924A73648DFD9BDFDF504D07CF735A0:\ -60D1C89500BB05D2576F602A93154CA6193678B6D58EE65FE5078118C771B644\ -F452F21C1A881373DC4208D0759DE25F4581D8C799CD82C12DC018D6A61B060B\ -32B3F42DD649526CFBD6FACA694DB906325E0F0AD786CDE5F9997BA7:\ -57DB251A06982C2AA7424E1734FE88DDA1CDB78470412CB3:\ -18F8895E0B303F38 - -B54C5278A5091743E81F45CE4FFAD2640423AF7E5D033CFCED96729392E2D3EB\ -D6550291054C41AD58A0F9FA55AA204F4CC94A1DCC83ECD019E5594FB398663C\ -4E8D50709C70661B5CE507D51451BCCEFD5815824EF1F68C641C86C959594632:\ -A9A7642E3C372CC2A270D20B2E68124BBEA0D1111191C62544E7149918119EC4\ -3641440EFB83B2EC4D3E27D94547005364F62687655F697C7EA87E8863EC4B53\ -BDC88FEB22BAC3C7974A79E2F0BBCA3BE3B4C6A760C13D5645F4BF37722CF284:\ -2D0D09FEF1AA8DFFC59187E9F33AFEF527559D2B51349CDE:\ -4685C00F9FD16505 - -FA8E29577C3EB4B8C49048A0D61DC6ADD84C02A9B8C7DC86E1DABA258C54D8D4\ -C367594C2726B99F443FBF597F1C7C003E49B019B02891872F1F1CFE8EBCD22B\ -3FEF3A5997BAC3459816BD43EE9137205CA0AFE70671D0C03ED01AC7E6F957B1\ -B3AF8F92:\ -E736CF427A53CEB8A4CE9FDCBBB346B7D84311F3F3E8AF7C4FB5FCA9CE1C0F01\ -F4AE272614E7556F6AE12C58D98DE1A1B841A9CE95921CBB6F19A2EECB7E1359\ -D28CA79AF677933D13D7EFF3C1BB894EE20A44BFE196303F228DDBD1C8A28127\ -17D791CF:\ -10423E81CA423035E6CF0402BB817816E754BF0E7D5ABE67:\ -588C7B44583F4338 - -7210EFD49BD2BBDF2EF3488D8DF261597DF326BD2B1908DCC116CA077B1D8810\ -FCD788DEFD57B2285771EA00C2A71B928072AD92CD6634C7637B91BD3E138E17\ -9FF15CA24D156A831317972D4EBA7FE1EEE2B654BEC5598DEF97DA4D9AC99E16\ -5CF5441F5B0E6D16:\ -C548B70BCC936B8E0CB009941629C83EC3DE6EB7A9C7D36E9F1A369CD8C2D978\ -D39796906C5AC405208AD38D6851A0B7D7E07B2E4791DBAE703CFC3D172F1132\ -B47393044F2551222AF03439B2AAD4DE66E9E3B1890133DF11A2D7EECBAE60AC\ -42E51F0210C033DD:\ -FB6BE4E0CE90E551B235A395A780587E265459F3A2FB9301:\ -DB17C1C5F76F8B2A - -01560CE12D17C6690ECB8C08087A53ECEFDBAF5EAB66860BB3BEDD35F16145EA\ -13F790818D974DB4D1F4469876A24F11599B63E48F70ABBFBC4CF8911F017854\ -832D61B742BDF877EB2B1D7D05D3413155EAB0DEEDB077ED8B3CE940D30700C2\ -45068705B24AA653A3E31CAC:\ -CB6641AF44AF5FCFBF38D74764EF26DFA72259FADCA3E4B78427789FCD098737\ -4A307C488FDBFBDECFF1549346D04E3A03FD7E8E2B3680267CF05F99E983B5BC\ -7F40C9EAFD4A463D88080E23A65A8706CEF65FE7DB3E437C7625F6F3833DD777\ -96043FAB943D44634240EFC8:\ -AB41F667999698A7F657ACEA04E70F61ED64B1CA8FCBDE70:\ -1D89DFEECFE84C7E - -19D7CFF7182D41F083066B2AE61DB10AAA7E2C8CF302D5313E27E9A86A548453\ -ED06EDCDFAC0C4800CE11DA1D415003A06E42DA380887EF7CA62C265C19B3A40\ -5336822490D93B76F0D51A5A4DF4CBE8C5249F53807C42E85711EEB44C72F7E0\ -3153DE0F836DF7D92C02AE80FEE343AC:\ -4632E56DCB6973AEC10ECA9D9EA95F0FB5A0318E28DEA69C9770591060420F0D\ -88197B154654BE281A405E36104408F9848BF157BBD9AC676326D4023D0B0C22\ -9D9D2828678A04EEFBA56CCFDF8CCDF3F1EB5AF8C78A120D2F8A7FD452A56C9D\ -65B6F6E8542BC5889FC515D93146675B:\ -E14ACE55594044D6FB3F49C1D3D2F57590609D5E4A489CD4:\ -11692B3F434F1E6F - -245548CBB355FE0011E7E07A5BA73ED0A0A02DCC8E5DDAD2D5D4031A08684491\ -8A0308B0F4A115C690FC12B80BD9B9CAE8E85275BDF2A636A98B41D1DCB9A8F3\ -3BA47871E931136FECD36555167C1C272BDF59B5428F1FD628285428B36CFDBC\ -400FBCD5BBCA23E310F2EDE5809BA9862875E12F:\ -DBE0660F5AA3D77611CBDCA3A76994F7D7638E8FC528BF57C32C25E7CD3DCFEF\ -15FE6C05E04B6A1023DA5948FDB68DF5646432E126EFCE3D3BFDFD34E5DC0923\ -36CBC1B1A22C458A3F862A659BF39143B5FA990851FDE7D00DCC91128E6EEFA4\ -0E66E417DBE2800DACA867B1E2446C1F8DC16D8F:\ -BA33A52369C5A7841F38C908DB1C428168D1B99A8D5ECC0D:\ -7C9D2C555EE392B6 - -132D28F6AEFCD811A8CD9C7377C92A761A337BF58107DF513B9F27D5D343C190\ -BAAAF96D1932A5DC3668BA1DDCAFFF175817A82C7A5930B089EFADD712EB493B\ -FF23D622D855E920BD254B540CF779C90F7DCFA78697EED2D27C4CF33FAD8C33\ -574F167648D5CE82EC073DD1855F90E66F1257828435D403:\ -8E76B60626715EB0A129E6C2385F2064CEECED23B08B1E0E1EEE9A1050C9BC45\ -C52ECC36D3F503566F68C4A73E8737020DE93FC9BF2E0BA132746370D45E21E9\ -E101291511C95102A40A65EADCB5BF3B70E30273122488F8E5A98F88B32492B9\ -07799D3F126DA27718C410B629BCB323199A4533D2BE1566:\ -5896B26A6C98A462BFF52F189E09CB9582E721BDD4435C88:\ -8DFE5071427CC54F - -AB017A9FFAD2C7B1447A426AC1D4F3C103315E37724D4C18532AE13A5A1CEDE4\ -9828C18DADFBB27785ABB9EE20CBD22D4DE7F61B59A818BF59A6EC9C1E748868\ -9AB46890105616F78C4B511E81CDBB48A5C4A9E2B60061C4D76E000C9589BF07\ -24E6730950ED9420053F554164FD358F8DF17EA944414BA63C2BCD4C:\ -19D963BF720D19DA2AC9636203F5B5D2451BB384A750A0B38B1DCB74A58C7E67\ -7E5EB7CF62281E9D625CB6B3455877E4D9EFB7D9844BF4808D6B35EE6E5FDF98\ -10D29EE6A257BA601BF35E44574D165E739FF91B8CBDB7DA5D742A9F896384DF\ -8A309DA75EE053D86CD0A45AEFC8F13365DEF0255BFBD11A3BA660DD:\ -9823976A01E5CA3A0072F891737F2E804243C022DBF67DA8:\ -1A7D40F7A45D3B21 - -D88169C7440D4B715D00D29BE2C56650C38B88848A78C7F3397950A89CFE477B\ -DC4D9BA25C7126A0BBF98B1B712EC31026987D549B285338146CF6460391BFE3\ -DE28BA02DA4DC03712DBF7576B27FF0A9BF70A8F8ED9834C278B9B7D7C5DF14E\ -6E96F417A731C94FD65E4BB53397EAE04F02C70DBB166BB06B51EBF5D0E21556:\ -6AB43161D47BAA00611CF93F1CD22111B37C484D467C671737D0DBC3CC230E8D\ -06CBFFA4AE13D655A3D5F5B4538278956120B26FA62F6664666279E0ADE80601\ -579BE3EC92C236D16B0F0952AD277CAF995758C15E48D7319CDBFD60251B8C16\ -04AC8E3665B3B55CD7C1AAE69C78A8079ADF454928834E7CE857AC1F7C1B5D32:\ -D15F4AD42AD3B5E3E96F3C1B80F841A4638FF494433F0CDF:\ -69BD2AE022B36B53 - -17B3CEE55049B8D5678308E1AA3AC851785500ECD0B549C88A79F4BE3919E831\ -FA26AE8CA740C8DC605716419CCCD0EDEC6CD26636C6DFF4502E475C5925B78C\ -728E2033A3CED070311C006F75105EC1250265736D128E484FC75B8FF59C1A0E\ -8B2F6D1509CECC99BFC7F0AEF053BE99A0876A77BD2C292DFB8E302821A322E3\ -19F6166E:\ -9A412BC48FFC5241FF472C0A38B7A6DD90338D07BA5819337EFD2A1DF6E55DD1\ -35611A36964A9130F1D66647C408B300D5A65F158E738F545333E87490D3D640\ -3450A87C97EFE05F4C2FB1AD93B6D1D3DD0B5DA919C30E2FD4FAB0DBEBE3E5F3\ -76D848246ACBE7EDA4EDA0BFDD3222952A4B3E089E91D759E8579A6A5CF22607\ -5378D6BD:\ -30649520453107ADBDB89755E6A45BBC2B1441CAE80664A9:\ -69807CF1461E591A - -F2573AACCF5AF3863190B964E06CBB3D3BFA62C0A249B3371B0954CA44EA671D\ -EA8DB66CA82F0F6A31F905E9A868DF84FA91F5EBD63213EE2EAC81EAA2D53E0C\ -A532524E663EDE2D669F22944363A228318AE7D54B78D9D357DA2153D4FA74C0\ -EE86CA4FD1A2E4C40F7BE5EA9EAB8972B40333E76CB668E252C2842FD3CEA4E4\ -D0B474C5655ABB97:\ -AE9AD8224CB1C13935BCF06D72B231DFF0E03C1329B4B095D1FD1025D27749EE\ -054BD5C5FC191C0FF6DF19114F3A723BBC31FD2FBAF568FC11DD6BB75582909B\ -47945780D81D384415AFB1C239E61A47993BA6B3D28BBEA3A7B989CF9D2B0961\ -BF215C029ED736F14D379FD7BDBD2811E1D0F4E0082F88FF80B450704CC07269\ -47F82E3E3DEC4E90:\ -44ACC9C403CBA1CBC379BA5728A82184E3C6C5EBDE9937AA:\ -864C402CB6C3996C - -A79D7AAB3CA5CC819051D9ADB71CACB435E66752D5705E080C6BD918212409BF\ -0E1C99143C7DAD3A19364816F7E055960DD413F45550A4225E178754EEB6EB36\ -C78C400B59ABF6138788D5C86182E2FC5EC8BB54D532E7C0E1352E56E9F4667C\ -4D5D6A06CBC657BB447E8A23E42ECA31B8B8CE70C44D1FA08BDC2221D7CDD2CB\ -A13C7DA5909D5809FAB74EF1:\ -D27B0B90C84AA11EA79C30B8B6D836A0C873F1EFED6D1D70A8CD4B9167218552\ -8CD2D8F9D7AA044CE2465E8C8750D12D220ED7DEE8DD7E967535B68E97F51614\ -C7F2DDFA8F0EF69CC20949C2D0A0F69A0CC0D668B934EA6ACCEEDFF36DC9C95E\ -1BD0963BA58532EFD2390BF782135255DB25B09EA7AC663BA2E981D4BC24C216\ -67AFD63CB8ED3996A415FA17:\ -8BE0F9A2BBBA3CEF45DE714CB47A1DA46ACFE8C8E375B5C0:\ -36A3DA85013D20CB - -00675A08365A2C219162AF373BC3907A3F315065ADA8EDD8F95C1C72C30C0607\ -92B7DAFA6C6517C24815A974EFB1578A2E45B2A85877CF7AF4499BB61CFEE555\ -974DE01502E40934B30CE648C5558515EB118A25F2EF9F68DBC6A56D47C03FC2\ -76F656FF72092E07AFAB6F7CA3B20805CF87062D5BC48F6809B0010443DB9096\ -30681609E489F84E40C6EB05E82BD154:\ -2DE3E2479861C3935C30F117BF2EE076FFDB3BE6CED29ECB4568C573AEEEECF1\ -2A7A2553CEFEEB385CFE2E148D3520C04C3E3FCA827277C35AB79DF07FAE2440\ -0A75FAFE4122AD1B8DD2127AE7BF57B7206C45C9B1DC31E5EE8E7E96FB488C40\ -2A4B247EB848957D29FAFBA44162E41D598587C4578DA0026F91FBDEED83A493\ -984AE7F21A92C34A3166FD22813D43FC:\ -DF1FC69356F3D84F8504E86162BF62786BA068AFA274CF1D:\ -714D51ACB680EECE - -422C787B610A81BDAB601533DC7FE9D2AA365AD8D0C6CE79D9B278EC2EFBEB62\ -D6F786A39BE2EB40C07964D7E51D6D799714B9ADF950F87A190D8AC6E5EB5AFC\ -69268A473270897C4918F1994BC6D13D5DA7997CCCB90B08DD1398C0679E8A1A\ -F2EB22261D347822A2490CDFD4B6AFE1E73073EF7D35D6396591FF36884C5502\ -058A987656EB76E7AD5C723A128D1D5DCC6B9EDA:\ -EF213F63D55E34C88D1077F3E83A4E34533F11D913F495E35D2F69CC871505B7\ -2792A49801F546E574FCFC555477D9268EB7F047A9D158A6B13E282F1F970B8C\ -4AC465DE3CEDDC9956BA78BD18248AD3DF634EDA11D4938C2BB8417C59068D10\ -1C426808E089B63CD06FB8DEF20AD2EBC1102CC3DAE5BC3968BC888FC565B24E\ -3D47666CA13D1EE29C2BF2093CB1E8514AFB4142:\ -3B04007C7DAEE3281F302A1E59C19DC27C5828BF1D05B0B0:\ -F0EA4B24D5C8C04E - -366F71A1A3538E604A3A7E8F2E31812E90717243C69D260CE76193D6D311FF31\ -358BD320F99775D6D15C245BCFE724825F9DE2FB56846834DD215B2D00CE23CF\ -1A6A7F008F9B1FD499F8B7BE608F1E31B08009ADD2BAD8AB09B4D9A3720403A4\ -85EDB1100CCA5FC9C7A5B21F9D7B647EA950137834226EB251A16DA15C8B0356\ -38E0054CB8405EAB05A682551CF75F73CD485E3086F6D335:\ -924E375EB5F65F2F96A728B9CC81E64C4A5D732A8F0CF4FFB671FF2F54EF0623\ -CBB46ECD916C840D63201F6D032E32AAB8E55D3716AFECD884A7A576FC91279F\ -34A2404F62ECA75734CA87C2EB0A4603C16FF51DAFA609C25F9B9AC84F5D4270\ -AF689112B474EE22B96EB6CD9235018A44BFD65660F0EEA2C4A189A89F2863BA\ -19BF4F392C619134B2AB9833A8CAF09B593508F9EEE6C762:\ -4CDCB5507304374CE290C9A740ED58662B52E63392E62774:\ -E186BA54C8C15814 - -C96B1DAC091798FEB0A74010ABC768D2D5CE0D781752AA3DF34F50A6D9618FEB\ -EE91532172589BB22F9EF3CC87220B4DEA792C10F082057F18D7AA18460A3A79\ -CBE91A08076C4EFE816C8C90736BF26408415F57AA82B17DFD1E5AC972A103CE\ -747E7F8E76216AC93B683E26A8FD9C06F4355F7D4A59A74EEEA737866AF7590C\ -4E1A41CEE3080FF29E0B6DDAB926B131A75ED34EB990A4E332D6E53F:\ -B5D10BDCEAD213950A981584875633CFB9EE6C8FAE1D1C317970E4FD2739B6BB\ -8E3F977D2FAB4448D412A6084B503C918E77DEDEC48D96BF968C66D7E1B4A6BE\ -A461AF9CD9CBA8F981ACADC71E93BB33FDD0C3E83F5B87CEED3711CF8031B550\ -5ACEA43308E67D6775951971FAE57BA329B69CD3B0AFCBFEEC4E92AF3358D7C5\ -4E675AA9279F9615C1963D64610F388724FB993F34024ADD1B549B31:\ -9ED95D56BAD11AEB6AB3E936ED432A6E8B845065C876991B:\ -2D8C0EEA9AD90D46 - -A50B4007340EFBA7116E5C7D147FFD08DF940C883D6F0065DF2EE1DBC11DFB4E\ -2027596A61F00956A2659D887CDBB8F3C768853BA53B3994EF8969582874EC4C\ -89582DE4E113A34B31E3D31D694150A0D7851FA266EAAFD5CED7E7A6889E998E\ -9498EDCD018DBE45C7B71052BC0BD49C2F8FCD705DEFC77EF77C228ADB027439\ -031F95AFB48CA336D821D241160A977117B08AFA9677F0485E45804CF2A31295:\ -AA0F41F20FB792774E319AA8D26E600F14F99123AEA292E25AC0F5E77B152437\ -5568846BF2C88A141CF38DF69D5F0A4A13BB48D59C580E22172E8A1F8EC90DF1\ -1AFD59BC03EFDF649BFEFC28D55B92F449C2862F9DCE8D2A38FF251C620F30F0\ -1E13F5175D94099D18AF5CAC2A1B2AD42A13788B5739AFAE2A5330C5FEEDD8E3\ -02B11F2FFD94DE4E7F23D30BA7CAEE4DB4D4E16781625A4D88AE920A5FCFE406:\ -3E83C2C42EDFF2231203B04175289C7A13664D28CAF0367E:\ -CFC98241E9ED13FE - -65052507F0994AE9CAB2FA2BEC34760B08BD89E993B9A459F1AFB9D120946504\ -56B11BB015BA54C751790F3709330ADC28C52612980BF5BBACCDC9794B063EF9\ -4B26136F89510052043825F456309F9E64885C8365E96FAEFDD81378E933C562\ -833786186A05BD87DFBE30C5461ABCE236E8884646EB36CB13F19A6C37F6D036\ -1AAC771345BA794065A13DA8F353C35DEF1B3526FE90F6108312CDE61714A882\ -1811A985:\ -9656F278A0B988E5BFB80B677CE62820F386997A6AC0289651E4965EB30CF143\ -5FC53C3A34CBAF23D0874F03684096303C946FBCCDE8186D200F28EC3E502374\ -056B15973FB605BAC197F577862FD81317F11946B6645A89EEE49EC947FB1CE4\ -9DC7939F8453BF7F4CD0BA94F08B454508BE41105F579D73DD76ABFF37D12185\ -987FDFDADCBA342500E013A9DCFDE437AFA5CCEA0A772B56ACCCBD1AB18A8069\ -1065B3E6:\ -BF60941BA2CE07621165363216B1A8662883B5789D9FBE00:\ -79E1E8AA48BAE8BE - -2865B3FFAC2D9193240D4E70F90BDA48BDBA9B8FE9DC80782E321CFBCAF19409\ -5E204D511B864743AF0F4059A955B47D53ABC0D79071300BF4304516F31839CD\ -EAE23E47C9365B52A451702928C311CEA1F8D039301B00ACCEB342C251B32993\ -8C9FD47F7642930B7F8A859B51808B8E51E422D9E387DD13AE68B4A1D1B07AC9\ -A16D5713AF9EA3D06B2BDDD97B615DDE709D0E8CBC3D1C7080B2F9932A16A1C4\ -B33746A08D70EE0A:\ -A6CD74B4EA815342265082C682689329A47AA7671CE9058760C453FAE6F468DA\ -8A3AD9B7ACFB31A947FEF628204C9A6F085E99104C1E38CE194F6DF422C3B624\ -9FC3464C25AB78E576A7BC980C3F6E15FCB4F8B0D2A269B4323B998FCB297C49\ -3ECEEE97FD8F6E94B08E83C0B3F090ADF2DAB04E951FFE2C2EAB6F30615AEFAE\ -3958539E9AA6861C7AC1E97AF4A6D4B8591A6431CB1735FD51B110D94E05D1C5\ -E5D34E9EBE6B8C9E:\ -442541939F8392881C213DADA197907CD53D37030B426DC2:\ -CC469CF927E806BD - -DED01389883B988753CB3BC1242041A7DA950842C0FF4BA038348972707EF021\ -5C3CAF324478FA07EC69857F93B4D5FCF59D95ED83B1DA6EB247DCB8924C839E\ -474FF125AB188F2173F0B3EE6C143E3B8D0E65A9028930D4FB52914CDA17D5F6\ -0C5CAB8CB304DB9A6B02636D336F568DD4FBD44FBA911B3F8D7D8F3B8A698EA9\ -0D5910550A25A0F48F201A98749EFA7767A9DA32D60397B6794F2A0F4B483D2E\ -6FD729EF8588FE34F8A02508:\ -1723BEE6242BEF711C3B984948427D5D3A272833EB63B70083C68F845A0DF444\ -74B01DE09634DB18918D236E244BBF19C28DFF774D8A23FFD6D02931CAEDC711\ -4B1D4B6D3D0AD8525B87ACCA6FF577479B610244559D1A28B837BD3453A182D8\ -D2F3718179DEB55926FE6946398B04A0FC1F320AECE0B3AE1DD372CEAF51DAED\ -3F30F32EF9BCC98A398B67C7EAA478F6D50ED5131377C3E97BB8ACC7FF62F037\ -F4282EBEFB97C75E4349A6F1:\ -19DA2B67A303BD41D9C14113367FF130DBEA0E586CC94032:\ -989DB8AF81ADE45E - -13BE60919E667B31C3F52317D68AF40FA32E701D947996D754EF21CAF1E0D2C8\ -C801B59D610FC2FEF59058A80E95F2164B6CFBFC0CA8EBA67565F655023B8BAC\ -6E22E0FDCAC92086AC5258A9F86FB0E6B0F77BD32711C8BA7830821D4AD7E5AA\ -D4B9E763615EE1CEAF11393CF8FC03862FD11505DC88AA80870E518C35F19C38\ -98C18D9EFCDBA4D665C716E19302571156DA8AB3606B5B859637C67C03445478\ -D7524F52803F419F0D1576CDA2D4E23D:\ -BDC26765ACF6111BC0564AEB8D98894F03BE142F7BDB5FFA2809E637B0EA2AA2\ -30370C822DDD92DB0C271D429F9FD9E5121E7C8F386DACFA628132E47D800E2C\ -3B76CE0157041419F2D652ED49371E809C1EF46B3891DF86B4CCB1DB94A47B04\ -48BCC21A1A32570B04A62720013872859C7660869E2773D75D25F123D9AA45FC\ -4840AF1F28706E2BCB4352817158F02CE90C2DECC16E163E23E3EC566DAF7A66\ -4F7DA73CC65855F87E128F520289EDC3:\ -34C1FB60E4F910716522EF7284BE762E12D92C574C7117AF:\ -CCD1117DD7CE8C78 - -0E08C9AD2B7C2CD3CF87F1D5F4D41C4F5578EADE1CDD1C00FFDF4F755B409307\ -AB07FCCC64CBC36D2CF9B4D9332DEB326B1A13BFD75E24223234AF7916F6FE9A\ -A37F2F73D9441A49C7E9C5E6CB598ED438CD7C334845F00E6FDAFDA24A164A4F\ -B285A5A7F3D6A992691F74E21F3E10F27B27AF202B77F9ACF985D5E6D528260E\ -A59D7BEAFDBE0980D4976CD59027670582E5745F245D474A9A6384CB7B19B9E2\ -D7531F2558243732D98681CCE406B87E2FD86F81:\ -BCCBD9A965628459EB4ECE80B4266C2F4CBECDF281E8FC0512E3ADDF66C5F934\ -CFCD9FAF78182C3A7578234BCAE6DB34BED44974315C6D29FCFB6C7501D5F09F\ -13E7D163FD8290A8CA2C883EF490F82A7EFA122D3598F35715DD0209617BF9C0\ -3F462613B1CC578A258D1A708C5323DB478296B09F83C55E8349A4F9A9E0B21A\ -BA659BEE4B34B86F6FB8AF8390520C52B9874847B874A61FCEBB625C44DAA344\ -10422610F411101138D9047C72A421D13E8F881C:\ -A954794C8C5A6583AC5574BD5267FA456CCB861B035BCB4F:\ -D1C4168D5EF23BD7 - -293D0A81E72071209BEE7B31E2C70A958B552370A0B5454CAF294A3AA7F0061E\ -7DA53DF903CE3537A93BEEBB2B2FD6048BDAF6E856454814C2308760E2C1D809\ -096ACC4B6F1675C6BEF9B0A4FA81A879329083EC0CE758650EC69196F5654174\ -5E805C325963EDAA2F4C000510DE7532A88D236D2A52CA5F4F8F4D3BC28DC7DC\ -1C9286EFF9978E95D666DE1A0E3782F67D9F06986207368C319DF75928E4CBF4\ -3AE35D916D4E8DC800F0D979B244E08933F355F10E227A51:\ -4E47991B92A21D08A1327BD558A743FFECA01E1747E2E05B27B5519B14668F21\ -23FA0875D5E25944A34209C5B67F980B04D5B78CC96670496E8B52B38098C54C\ -2A53CA9213A1F3E26FCBE8A2FC229492F026D97B6FDCCFDE0C449A1319D8DA63\ -1641B80486A9F13A5511FE48BDE85C828F8AAA346315ED5044916A7FF10FDF24\ -732A5AC648864FC3D3305EA609C03726148DF121D85BB66281C8EEC32E5E0C8D\ -8BD46A101D0F201096410BFABC7AE4702CEA5A7B49809B96:\ -B79B4914046D2440188552463AE7D4953CD632B74EF57D5A:\ -28AEB01F6AF445F4 - -16E18ED62ED56EB7DFDC9A16C2A550C9A3FF4CF7B2994750C4716BCCA13D01AC\ -3E9F4687552935685AFED40CC6355CA7B18AA4688F86D0FE9782696FC7FD3702\ -20D6E1E07D14425818A047DFC6A59F850C12DF38EA4601E1D5B5AF2AC29D2B0C\ -5866BA044CBC0ADADD671FCDB7122D8BD085C66E7500C1BF245E24EA357781A6\ -3100150CEECBD4C4C93775A12CD24D48C90BA2926CE0BD03A57894314F9FAD3E\ -A6266A7543AF46A82BB5942E87684FF30E1A01B68BBE1B9822669717:\ -855DA36F0F1BFF9176FBCFD921E84709C0C0B65EE2343E5FB716D3A535EBFB68\ -A3472F23F60166E0413E8403A4A6CB948A16B9ACEC25C9D9A77A65A849866079\ -396F8580FE8B54773F7746EBB45010EF701624A4AFACE8C0C4F2237359F21DD8\ -AB12A27C46F48339C6B65C32B3321B0D1FBB03800A46D49A478D725D23BF3834\ -97148DBCB54CE07191D61CDE1F3EC48735240750D7E1BC61DBDBCA3FC219B661\ -028CF1F178F52F1B4449358A72C740EC3623EF93310B644541F17996:\ -CF5A147B024229FE958B9F55854F36E59818E78FB84526BF:\ -179B6E26C9B56072 - -1BD797B39442A5169CC93A5B49A186E2EF27B95B34187C49DB78E204ADC7F04C\ -A5174C02F9691CF7883B64262B1B15CCA987A16058ADB5CAFAC12DC45569B77F\ -EEA2A3B5DC5D5B096C0A9CBE3F0C4B20FDF8738930929ED5738CFD7A21A0892D\ -AE31B56244BE85809AD136490AA87D02CADEE0DE2F422C93C19B4ECA1CD87432\ -353DA547105EB7C748AB0DC9B2A9377E400D92D66AB8ACA5D9DCF2718986796F\ -4B20FDCB06A0EBFD2BF4DEAAA23EC4D01CFAF68569E9B623FB8729626FC26E38:\ -9815266577A019A1A49C0940BD3697149A50D77086DA172C6CDAAD2FEBDC3CD5\ -56C60BAD7A5F44FC2F219255BA567D3F6392901AADC38398089D8008AD255E8D\ -39786C3DA809E1C499070F3C7BA4787DCDD930EC173E393AC34EEDEF71D8CD69\ -E6DA2BD2C76C814770529646FB3D9C15FF4D19F7BF926E0F72840E378FF5F9C2\ -1D464B7FA8CE6514E68BDD95352AC81C1B817E85CB2EF9212353A20DFE14C797\ -8909CA2C96C84A73C93A7C64049A18DB5071CAD15CDCCEBEF9E45D7A4D3FD8E0:\ -422E846979E8EA7AED9218616BAA4C96134D46B02FF4A911:\ -7D2F503105732C9B - -76B8C05B6006C39E3D91DE9AF1E018CC41202F3E8068E160183F81F40A9D9B8D\ -8BF163B89AAF149361C04616E5540C56DC69A050812CD08D9C128EFA11AA919D\ -EFEDBB0295E2239A54813A4DD5F826836E3504C2ABDBE530912970D3656DE179\ -F8CE5D0ECD700604F5680F67DEFD0AEE2AAEA49C1B8024869482998A7BEC10C0\ -D0BBC07F90FFBB4E3295C35B11BD99F4178DCD34101ACBDF5E17078D9CA9D965\ -A4A04E1C855610CFDCA417C963A7D6628615B0FB1F746558ACF2C23F7FAAD1C6\ -60027F21:\ -06F6497B084EC666DA6706B607DE07D8F31F93ED7F0EA18BE167941216CED455\ -79AE91CAAB9CA67AAE82422F4130A27837B5E6FEE5AC618542BC3A5F594ED47E\ -57F733A63D854ADC13161F35B06889F9D22958CE7016D0954C1E056975CFB961\ -A7E787F403FDECE30B6481ACE56DABACF5BB3875AFD291AC1CF42789BAED5933\ -E41BEB20F314002A56D47A7D4871EC82F0637EA2F5CBE514C7436F90510CB394\ -783AC9C5E5312FDED24FF9B112770E9DFA01CA9514882F57BCF6A9A7D79B6119\ -970F7052:\ -5A34EF1248E6886E476E059C42EE93EDA4E50A37A7D9384D:\ -901FB557894F2198 - -0C9CC3DD901AC951FF9FD311B0DE4C3FA05996B687FF0F9053044D5C30358404\ -E1F475F98EB7F998B0490B5138F9EDA12E0F792DC0464DADD92483EB44830729\ -33FF5FCD78030FD75D0B3269B5ECE51AD9B246238D10F4FA6E6A06C1A18085C6\ -24EEF9F561E50EC1F4972FD57654902A1592CC617DCF94E08630C460BB463054\ -C2F657057499C258BA23B250683F75EA6C28214B05430BC1CFD0A8659188C362\ -8E8653035FD20F3DBBA7FCBFD3BE9B7AFD3FA81179141D8D10031B5C0E335CC3\ -FF15F40A82AF84D9:\ -3DE407D6675240D9715357F3D343DBB491E2B5A4F6B3B76F2BFFE495A2715B90\ -50FABB764C58F53BB665AF5C5CDC9E539D32858B406FAE4F6649A1499E3527AF\ -C5174E29DEBD45F62DE2CD23B44B9599B63A822FB18BAD935B09D70E9ACFA9C8\ -2A28F2900FDFC97EDB08391E6420C726DC290A6509D2F6236F744EEC83A81E32\ -8B832C7FA9D3E949A7505ACE8CEC9468E31F874D5E1CD4A1654BD9DADDF36238\ -704C1D5537AD7259CFF95A38F21F156A24618CACECBFFE07C0478530DADF57EA\ -4B34F3B4E68ACF48:\ -B74C40F0FA6016C94745F73FC4E6C39B1796EEE217223B5B:\ -945F1E1536AC7FB6 - -7E36435753B7C289495CAD8E1E208917CCC9C925A2B898E87B622B1D2C7407A7\ -6CBD144631243913BB9D452DC6B42C759FCD01E4D3CEFABF9D80E2A29A6D8545\ -78868E7DC8C696738C538695A688BC67D1ED7C7EF3AF687AB99A8B0C691B0BEB\ -71131A8E518A40BAD6EB0AE991421A1927EA61A5FF96C408BD6C4F7BA26835FE\ -71F9EB16F2F477A99BAF3B4DC1DA366592C3CE89BB8287CD8E2942F097BF6ACB\ -1C334270E45345168CD402399ECC8CA5E19801732DCF181C1EC53DBBC61719F2\ -6CBEDD581F77DC8EEC036D0B:\ -7D3DDDCD5AAA7E0B1AAB81687919E03FF63F7F4E619E1016EF9B3F84C9680AFA\ -7CF530C0AFA9F990FCC19A010153BF10EB3CA0899A973A66A7A94487F8E3DC2D\ -31E13EC2B2B9E4946BC97C7676E2329F2F42C0FFB14883DF8B449E16F95A6843\ -C3058393E5C72199905E0986A79247D64882ECB6ADD4E6A250FA227253EF163E\ -C548F561CE9A00C43C7D9316E373EE1FB715140EB9CD882A1D9D5FF6805F30F7\ -39668E3C8C51E29EEB7DC8005689928D9267E3F74FADFF38107202171C02A7C9\ -20E8FF0A678F0AE7121E16D6:\ -7ADA51356F87873ECB47B3EC609214E484DAA4ABC9439933:\ -CCB4D4C48FC17139 - -6E804B62EA711CA8D09B7B9BBFCC1EB2A8938A6889BC31ADE4548051F8F4450E\ -693FF9182B1BC1A62F4C7998A024506F4AAA85E6733F81121E6BBFAF9EF2547B\ -D01C40AD657345AB0B0EE97A8581E837A515071D376409CF4952ED47BE5DF95A\ -2E07AE6921C497FF1CB8057E8B8B38D4D8D0D6320B9A1E4445266C66210CCEDB\ -0D3695549CB3D70D56E5E85DA85D2A096E156477D5F4A4B1FBCEE2E36518FD17\ -21ED2504DF5F19410CD9030A8477ADE57375E08DA2CA15E7B85BD010D76C8CE1\ -B3ECDD91B1B970AEC36B37FB32D9DAE7:\ -0B95E5E14AFB699FA86B5CE3129BA5819814FB7C3302AE95478DF30B3FD2CA7E\ -EA12DA1AAA0100172A3230EE6677A114394206E60A8EAAE1BD20135B5EE425BC\ -6814F2084A7FB5C66B85E6B443D79C68909ECA4EFCCD0347BD5A66791E8632D6\ -3640A98076C19D4467B636157849F9BE971124A20CAB9CDFD3CDB63CF18117D5\ -47F4A6F761C7AF916BAB021C2AAAB37598C0470E45E672498A0F3745844C89E0\ -E4878C2FF25895ED51681574CBC5A815E38363F25BE1A6BBE01A789799081766\ -1D95B38DFDE40F61457BB40B3CA5AA82:\ -13DF6263560C0A2971FD5B50AABF8A0244958379762C82A2:\ -BB4E0CCA3D31EC88 - -F7A5CCC27DCC097B0FEF1DD3E4FC28C513C17E9C843C97E23E185F403D5282F4\ -17640E4FA86C9D53231AA6E62BDE9D6605119528C5EEE8A9A4926CB023D59DD6\ -895F3FB4A2BFF78A63388FC843BBF97268AC6E2E0DEFF46E5A6F0CFB01532461\ -6A6ADDB278E14DEF8DCFE40656776E5FAAFCD4E8A72F7B9937FC86B2854F32FB\ -341727F469D323D1BD0B9F9FD2BAE760C5AC102D2EDD66599CB41B9399F2B99F\ -D9D28E50EEE442A1A7F94DC7F0F6918C559BF1BF09A6C6AB3C44ABADB4306631\ -7CBA83888FCE81A5AF3AA43FBE9EC69CB44B61D5:\ -12F3F5A8B6759F29F1AE80CE3A6ABE73802CD1A723E80F83867AC2DE7B430272\ -E6F105E530482D114D1D6E9117D821629DCCA11047CA4C187638F3A9BA8E513A\ -1634A7F740F8EE889FBA8E6E2FFEB7830619C882585E6D8083076E0418C011B0\ -95A7CA3D2BA84E224B6C993C6FBAB9585135EAB90B78ECF282AC463832AC2CE6\ -23659806217D7B490C234EA58DAD352D5AEB3C84F5F33C7BF9435F684A128CE0\ -F2456FB01AA7527787EAD3040CDC2607C16103F4E5A535B0C9A63DBDE4309C32\ -AD4A8EFD1B8270A8152DEC0CD3892F2225062558:\ -2E5B70B7269AB9586BF23E8BAE7E9E0BC063957008D46F0A:\ -943BDEA705D18073 - -6AEF7368204C0B8BF4C7F9D1FBF33CC7E559A0BEFD6B74D08ECDC5BED0A62970\ -E32E011B38EC1BE7A691B877BDE9ABD4A35E5863DE39220635B0C856C87D7CB5\ -C0A6328F27A573F07EFFEFB52A1124F45052DA579805D00D71049B396F445353\ -95D6AA92558CF12CB77DBD1302D9F75A868BC528E9AA0EFE897B01B94FFB29D3\ -084AC4957E64ECE3D1949BD04CB328B01845D046C289B144F5D42B4746915C13\ -8A859FF6930ED05AB9AD195758B3D35FEDB0655377DD1271F45DD4C0897501BB\ -50BD815FF6B9705E93625CD8CCCFD566C34ADFD11DEB5964:\ -75EA8AE76211A99049C39F35780C797221C41F662A988D53D07B4BCC058B841C\ -B2B259204F5CDF9B8110064B87E8236CAE4657F22DDCA568FCE3B1D81E14BC12\ -D1D445B22D4E50B90F71E5500F111F20AF05DB126CCE0BD4613ACCBB180C0EBE\ -16A04354DBDA0E796FCDA0F1BBCBD505281B93E836A1B7505A210EACCCBE6FC3\ -5D0014007CEC5A6F0CD664E7BFEAD74C01D6B3B88B86B2799D8E27B41B1B6C10\ -0890F47851F0F9C8F2808F76CDB20570A9F4FE1BD92725FEC28DF54146A9CE81\ -42FD0D8BEA470F52750A0937AFD4993A3D872D65EA84F4DF:\ -092B81DB2BD6AC885D46310109E1D53AFFAEA6AC59F0AA66:\ -1713E9C1DC895CA9 - -8580313684E3AD8BA9A1F091AFBE7F2170C6B61556646F395A2D4A182920BA82\ -BB9B9334367B81BD5CAE18A279BD55B7F5B639F28FC5CB613C44CB459435C583\ -A5B6EA105E34C6233BAFBF55A2D25D19C1589F9F1B3D254721BA872F5763494D\ -FE47F73EB4088B23221C489D52B0CBEFA53DCF74D46948455F373A95F0CDB3A4\ -2B2D37BE00C4CAE1C3E0A9206997E6BA6DD03CE7F76CCB30A1B6C10BF1251DC1\ -5C8FAE513B4430BBC39A7202983A857C205C84B872300820036795ABCB443774\ -F89588910BEF0E5808890831D9613D75E11A653DA91EC66964C56457:\ -07051E15F921E7D97F48C3BA31B5329E8410E45E36634463406C8E6BD36F35D6\ -27D0FBBCDAEE49E803625B25BD529AE208E8175EFD101D5826DF8D8A14879A3D\ -D7BF8C1CFCB73F1037447ADED05A71D9B1B077ACCA26BF18B894171C6BA58D9C\ -6608974A1648F9B967908D25DF1F0D93FBF4BE99E81302B7A871CAA59ADBFB26\ -68C0B5828468F7A208AD5538810C31CB2E131E18D008ECF8F596EABEF5160DD3\ -96AF5761A765C05D3C8C11096FCFF5BA27BEA42A17EE451FA75E2B7EC1F9D299\ -2E5AF048AE3104D6B70E2CB5FE818BF4C5F1C62233D13CA678CEDC23:\ -F73F51FFF788A91B32A016648E9086748E6B75180E1D39E9:\ -BEBA357FC01A0163 - -B4F95F247179350D3E1519771561421F8D6C8F54F54D51FA68D06270FE0AA124\ -E6206546F08490FDA3CDAA366167A2507FA834907BA3BF569D30EF793232D5A2\ -7559C8847D3B44EFE20B80A14C2421F7FE110D34FDD456885B7C1DE7CE170510\ -191819FCC7368598A97D0145F674DD172D965A90C3B52694292990B57F32ED0C\ -E7F9CEE9F9F14FC529678E3804821D611DC811BE618FC844037FB2EF1501F591\ -D5CB5F4ACE37F400D0F81BE9809E20FED067200FFB4666E40C5EBF53F779DFF5\ -4E8B89FB23D13907930F7D6DC7756512CD9981ABD64A5E3D3CA1B65090204607:\ -7DA67C7CCAFD319A38C9013018749BCC4F24C89688476DE6233444D9FE8B0AB9\ -DE4EC7836945314551D95D6CC6B45CDD69233C7B96377C4DFCAFA28F93C2271D\ -D79E5822A3B37BC608D6A8A63754BC0415C487D4A90500FA262683980543983B\ -A345DC7C67034E412D1C90522F88D84B088DF3CC2D3FE06CCE15EA905024ABA8\ -166E1A915F70B1796EB1C091041D31A4C870AC18F2D181701CE4BF6B838A2485\ -33475FD52120025484DC4BD92E43DA4B576EF0F12760FFD6C566996F27962FB0\ -443F20216039EB57845A5483C1B73A9D2E344928FB58E18932748F2BCBD62014:\ -8561DD8C43E15F404B4E48974A581FD9C533947F0434D8A8:\ -C5703CC501187E82 - -2621B208787D71EFC115DDBBC1594CB99F7F85EB4D853D78D1085590C9B0E2DF\ -4917B94C7CF171F839F0BFBF68A1C1B9ED073B650F1784576ED5A42368FD3705\ -B72D4A9EE3B2128ED2698626881A93599C981FCA80242569F15D3DEF06D6507B\ -ECDAB0193301739EE573570AB0C4BE887D69273D7691BD44D2401EAA90AE6666\ -D526D9BA785847C25FF6C91D3EE3A1AED72E08119AEB41F1EAA202BCC81BB0A4\ -9153BFB290E7071E03A1F1670029556AC62201EBE063A9EADA1FE08B60BD90DD\ -3C8F6D6934634BD39202BDA3DB7A0DB496643CAC964B20B76B6DD6B2F4098406\ -6328A67C:\ -10909490510DA488F96575A0315FBF02F01647F5FDC8A805AC05FF6139F4E102\ -C52642A55EF11307B17A2C83E528F943526D2A8B9E59AB2ED47A250169AD7D35\ -C64C29F5296C7A7C81B6A8825BC0EB4D983003B125C8729098CF3A68F1B02F00\ -DCCEF3A86EE88CA312213AEC4B0DC012D86D89C48118A300F29338CF5AD3ECD2\ -3157F6C7B46B51CFCD7E845B016CAE7EE671A736D680D5EC06C68CE6B3855E75\ -A1038C8A425A833B11D544732AF14043A14352D202F3F5C9DCDF0C45E29CFD03\ -FA569A8FD01BA411FB3BDDEC28AD19EBF66B3E2B513AB21E915CAA6C6FDFCE80\ -CE79DA30:\ -52A58D8795CAD4BDD915B1FDF917698154D11F94B8E0C01D:\ -CDBD875DD5066730 - -8BD4EECE9E921E4B11B72AE59C51C60C541262274F08E9CA850C21BFDBEF5190\ -A69E177B23B180A6C64EF704AF486C93196A6DBCD892F9A436DB0FFE4687C3EE\ -82E6CF38E105A7BF07F99E9F016A25E937E2FDCC085CEF7642DF7F1785188715\ -9575531B7ABE751B3FFFE35E627F4A86E7A263A5A41D4938839D31C82C50E171\ -9446B85D3FB56C6E6E5F9789548D8469ED2697363C56C8FD24BC0C7268853699\ -D570913AC858F6F1CAFD84C0A39FDCAF2FDD7AB6E4AF92D2E37F6F85DEDAB8A3\ -433C3E6062F20A738C8517D256167CBD40A0AC3DE23C29E98E0D1862DDA52E71\ -DF88C0DF1C0340FE:\ -8FACA5517EF40BC3FA2A6A7AFF133CD23810B253C1E455FF8127460569A7F903\ -39E6FA5D3DED80D956638E7CB0EB13D550CC25F369C2DCA686A455A2F7BCCD97\ -249A4DD908D9F4AC8AE06FADAFC52E76E6D603F023E8BC3BFD5BB00E585B79E7\ -CEFDA9B747133001B710ACC9EA8B879439D8B13EB7C381BB80A031E95CB5727A\ -62ABC4ACBBE7881DB2782F7155236595EBAB7659B1FA6756A097C0F0AA447C82\ -E3350515C02FD25FB214AE7029422A26DA4D10BFAF8B48CB522C68C90489F659\ -72A21570C23E60ED9ED5330661BE68C0AEC3E6686E2D68500EFD83B32EE2CFE0\ -E03E522849079D42:\ -BCC08F969399E4AE6BC44F7F33145B1B0C2321D577A75CFF:\ -EA02AE6ADC349324 - -5565DECD079BBE370E3C1EDA1486C027E58E50BC8F2BA314E247CCCE3E99AF32\ -0EC1D66F3E40418C2739252D97D09A89090DF9166E1C49EE0CB963DBE8689F49\ -BA75E034950D76552F349F7AC7670352A14DF520FAED9F02AEFD74E87B8F912C\ -40110B9D0ED55354235D628B99DCF7482E049BA0B5985031A61B973652ED28E5\ -3A73AF6CBFE87F4BC43A896DB8CA0A59E6E42CBBE07C42676C09DA89962CE405\ -324832CFF103B5C78848535923562B903867D7D95E076EA1F93EE55E0C36DC90\ -E9206A2AC1B56B4D66F37024BCDDBD01FA795D6E307D1998C624D4AA00E1574B\ -78A5556E8A586E8DE9585B9E:\ -424373A6EF41676A850D1836DF76735EBAFF03C57750EE74D61BC78464BD9B82\ -C7EAD992702C6AD9773156120C5B8BAE57353A4D49466ED8920E4C6DC45C47D7\ -08C5E264C64683B3472F2C45AE7AAEB423ED3F00189B382716C5E79EF2066CD4\ -C10AC071DC354C2E63728D80EE43350C4AFD42881B0F5D98685CEA6B20118EC5\ -86C0B79482BB84340B53F8E4B1CC141EFE6211EF6CD75ACD251E7BBA1BC1F53E\ -50C5C0060038613D262C4E0C4052987137562011510E03247A772CB95490391D\ -24AF3276EB3D741A8A6CE10C555F4D5D0D9566CEB69F7FC77BA15E65FE309864\ -2EB7E5BF071EF554B5958C19:\ -32F0B4E2C8FFBCCB7755AA909E46485E6B78446829FA26B4:\ -CB2004E37500BEEA - -42D274AAAAAFCCC109C78854F36861CD07A9B0E827188FE94F4CBA603B544A09\ -C8CE0E9B30C9FEFCB8079D10F027288D1D72C8022EEBB4CED8C5BE8E00252B01\ -AE9EA2C5F52725B5F22430335279C443963DBBE59FD5356665DA34F182E24AF6\ -1651BF78D823CD35DA526AA6D56344CB71961843CC12D1308BEE06C29D286591\ -C6A9EC564D625443C224B647ABE3EF97AA95E56BF40D432C79A96EF57E9A3A91\ -E7A706D50C9E9DBDCD98259318EC208D6F78E4090D0B8C564CFCD115C0306EE2\ -8B146D9A4DF1882B9F871FF525D3B9C3CFEA5FD31301BC35BCAEA31BD4FD15B4\ -446E92ACD7247BC5D546A4C0FC9C1514:\ -BEA9C3D615055504C15FFE50B4A25CA57955958A7F498D32AABA4A88E1B1EBD6\ -08455126A77C59937EB0D0CB10EE92D9607CBE85B5F3F419281D984DAF3AC3D2\ -3DEC8864FD7663261CF40CD7504C02EBD10CB194EBB6C9672C1C3D01C85A5B0D\ -F43431BACCAC3CEFDC275C388F32C393423B0DAA3EE9C76D48EDAA932B86D9D6\ -BC2BE5508D96F31E7775027E227A4A40314C4D6D096BA8C1FF8EF88EA96184DA\ -0E2C8B070BD846E89EBE92851EE18439BECE1349EEC82054EB452B6DDA35834D\ -B0C3390A28B071011A10D730887F6CD847C0ED613E5A217E1F290AE0E015CB92\ -6C59576337975DD63C423A91B6407FF7:\ -82A6EF12BAFD7699D461AF7338CE13E3752BCD601E00E6DA:\ -47555233CBB27325 - -FB8858FF168E5ED4B497EE55F9CCEDE93F749155B4158DB4A18574E5DE00C516\ -DC892F012D045DC5AEE72633A95B2B94101519E0DB99BDEBFF448167DAC475D4\ -00567EEA27562042D3A111FAF1FB5D3A6FD6BC0F29FF85D23AA959A4F0DAAC05\ -A8D2CF00D29733711EB524EA58C0E0566BA6ABB8BB5AB873F843EFF5AA5AFAB4\ -9A31235980E97641EB508B50BC99F0250A018420ABBA39CE95E8E2846B7AE7E1\ -E1CFBE690581D2DEBCE4E51148585BAC6F66D65E3E2C10B84F904F92AA823158\ -08C8F05EF0FA961EB6AEE6EC898E6559FB32DC99A8E5770B0F891DB8297989E2\ -CC7DBE703A536292677E41CF7F0420E3FDB18B28:\ -03E094A8CA5A895C73EE8E2EE30C90C2B0A10D3D9E67432AD2E91ECDE41C7726\ -71171FD84D6B6D660A9EFAEC2C9353FD511D9C2A932A6C8AB4DF0434A950682C\ -CCEBEEE6D874425E0F0287F6872D1DCB8311394AB6F6190065B7D68F0B3F65E0\ -D1EC4395E531B5B5789E37D7AA8CF6B3E41054B85B9FBAB74E0FBE556665A16A\ -4DC3C9775BBF3602378AE6D53A3DA5E6B0A7B399A394AD8D5748BFBD02CFDC4D\ -869ACE9B4B2571CB6E4A01A813E126370919130B4D844FDCC2A32C1895C4687B\ -D1B1DE69C48DF14CFBCC78DF6B49A67D25025204BD2EB2C92AE07542FF64E075\ -D22BBB1A7F1A815DD954A9C5F6D8AA511C9F00E3:\ -7E1FF62F578C880405AE520FA53BA2F0105C2132B6AFB167:\ -3FFCB4B540A3CFF3 - -BA5E4EBDFCD93ABE7030828501D28875DEE6CD0E2DCEEFF2EBE54579FDE16878\ -195C7FAACAE794E6C3089AA92954290D65F329C1511DB2B95F07607076249259\ -35044B9107B681F564D3DB09477B5B75A421842B88223B2CB7F7DFDE9B40C029\ -B40D136452DBA02AF1D9447DDACE19C3D427B007F0A737746E6A122C5DA8CC88\ -49BA80841087C4E27FA3771C71AA8F4FB3281835B8ADEE0965676567D9BEEEAC\ -0C3E2B7E844414A0988BFC27B682C1A3D8214C37759C4D8E793E9A275CBFB6D8\ -534536DA22AE947F696AF989A4F1D5202762F2F4CA2BEE376342E041A9B233CB\ -3B7B4749A79B38F822D9C51E6572F8D1AD5C59B8A635A06D:\ -0E78CC6E7508507EF8D3420589DC844A88E34F4F68591E806499197E6C0CD398\ -0F4ED5AC4B82F85720782558D85E704E5D726BC5BB746CE096B1E080C31F0D70\ -FBE9BE28BB8C7AA5BC6A460A5C7F6E86D7BA4F307CF5F7B9F1E9A4C1945A9CF3\ -4F8DAEF8CAB0E52767C866784E7B944D41292A708290ED75B7EEDD5AF68113DD\ -2B7AAC39DAFB865A8B5800DA465F70D527E417E0D13A9A8A7DBBFA83D9FBEA23\ -7B518C604E73C4C5C34C1FE79E230C71133FE97EEB723E333E8D4272F973CDF4\ -0C361CCCB45D4803189CA3610B00F422C847E512CAFBFBFEB81912649A926494\ -6B748395CB6E96A79FF195D8520B2E60FB07AB5A5DC58D8D:\ -832F6080CEE1BEC955AADD3C785D1BFA311F2967EED12EDB:\ -C034E1AD1B590649 - -6A1275FBC6098126FE0D33265FCF81A0485776A0967763FF22B12231B34398D6\ -28D5AEA33BB989BAAF759BE8A07103FAACD7D68A7719E23295AA67B940285400\ -833D7E322D5A6F9350F2B289F67C25B86138CF29A2BEA8F5020D0087B02CD42F\ -BA68AD34A7C0908608A64F4B5F4A7EAEDECAE68D260AB92D172CD95FB7462631\ -57DD1679BFEC2741D5664BD8A80A1C95EDC6D9E35B040C7A38EE1D06B9BDA80C\ -FF8CE8555413DD1B40E377EBF76150F223CDEA9E74F2AC07CDC6E0426CAB2DB8\ -13C6014D4296F86ACC0C07734F55E4A5DEBB510C47B4C019D5E59960A7B3D5B8\ -7257839AA29E6AE1F9558FF072F2FE6D8FF672525BF2BC056B206C1D:\ -6651BD59D1DDCDFF52EA95DAFFCE663758BC46571E0CC3F2CA83986FBC2CDD79\ -45A1D0284AF73D371EAEF53C5A405A9944267F3DA755BF053EB94518ADE628E8\ -CA10A936FD747E64C48A83C40FEDEDDC5959735E031B41FF4422BA64EC906F14\ -256673CF4520AE76F10D910DAD129C270392471FFDB1CE601C53E9C032BAE528\ -F68BE2A553BBA36EF555D4A8D6D7F8F43EDD91AF6AEC19DB3FB8FA1F33701D67\ -82138F9D5F7FBC9170F50BD02AB0DE07A29B4A9C3CB2981DC251E5933C17942D\ -394DAD2784B7AEA3F0FF46D59DD919C7C2BB3D3D1B3CB541920F9624EDBECFA2\ -414B3E6A6EF69F83F20628C914F373E5D5AC68ABEA3E2AA8A5CF9D2D:\ -8B0E057E6B9953488C98A8292C7F87E0ECD574376C416AE2:\ -994DEE000EFC0A43 - -234D9E59F8C211DA83A8145EB1887725530805EEB27D19D77BCC951E6F8035A5\ -452C290ECF72C5E69E030824D0F1A2670A817B0B6C966A10261A64A6383571E8\ -BAC63BA9CB4D880A27C583BFAFF3FC5D373E0F0BDCB8E398F99021DD86F7FA92\ -DB3D4830F6A29DC7C52C1556AAC457FBB679EC2D8321DBEEEFAB900D7E02DA7A\ -2957F18D87DA97B683696CB6E3A3CDD12A5ABD32639DA7B1788349C98A05170C\ -ADE1957DD983BB109BDE21549A3C0EC290807DA2917A79D143B9F1C98C4D3F6D\ -57E38D03F3B2473EB15F5F318E30C33F67B0DF4F1C79F56CA1D52E2D77752C25\ -9F47E219F63151DA18A55DA0388653104DCCA9FE04B949A57FFCBBED59AE121C:\ -3A89A8A7DA09A31F0F6D222C293338527AEF97944C7862AC1001B2E26DD82860\ -8662E6AA71B3F24337C1233ACB49D633FD743D2B16ED5C429D4D0087DE42E6BA\ -949DDDB4BA562BA277D951936F7AA9CECDD02261E5F36043EAF97511B65867E9\ -65B2A5B2E8AF4DB5629C0B5E5F869DDA458E20A3DB4D34A4CE1B1642C791407D\ -83E3EA46DF87B5680F06CC1A0F97627163A54A6010A60F37E93A9A3EE9D97BCD\ -9561DDD12CAE952480ED2C4180E051652DDB00FEE1053F3E0B822D77DFB2D347\ -9197E0E8353A3C4EB4E21B594EC86A8758ED48B24BB2E1114EA64C5F2C001030\ -707A9896045EF2B48F8127EEBE2B76A32D698E39CB069C67B971C6BE57678CDB:\ -51F37FA4348F5FC1BD179FA259358A009E608B35AB363DA3:\ -2C5CC0EC6434D1E3 - -AC691B1AE64C871A70F6436E4E65CE0E10A692ED41B5FB07D35540C7E2D0CA6B\ -7DC54026782D70AAF08916CD340C5140DDA2E27F0CB93F804D15470B17C62E0C\ -5CDA2091C5706DEDF94F720EA7F76370F2EED8830C657B07766689750D30D0DC\ -AD8EFCADEA596113233FD328B0053A10486F13F3F2644386D4B177BBC70815E8\ -D2F847EAFDDD2ED9FE418231597C958E53DDF0B1EF8E801654CA95303CCD0ABA\ -7FB4DB4B34B199B7DB2F0727C89194F321353F842FC6AC5AD2F6ED982CE27FD8\ -5F8553265345BBFE00D316D7B6237010A93D1967D02C4391C1A10BCE8FDC45B3\ -2AEAA4A61BF99C6C3EEC6C7DC1E82B274A97F47513BB55C7604992F0FC211551\ -9D02162F:\ -FDA6F4772BD2BFCFFAC7CADCA4002590E2985E00C3AEAB56F76B4A3DFAC43926\ -7C22792D6DC8E05DCB7D2D79C553BB7BECBD330F4AA4DA20C26E1C173A6A931A\ -F7E98E4E9ABADA91FE3C4ED1E718A85283C47A289779B911E9A806499634C7BA\ -B246DE4F09EB3616C1C7D2C8B7498B2E57EA7500CC538FAB913F655C23ACC9A4\ -BDEBB2125113E4FA3A9B1B3A607AFABA5A6043487FE6681152BAB584157B282B\ -2293CC80CCB8DA5F8593016EEFDF77784A516569768368A94EAA9E6163CFE457\ -59C09173449013EA16CA4D4359AC9A383EF8A3A05FBA28F3A6C45F0F6BCC384F\ -FCA5D5FD83EC79E528AE29B0BEB5B32D7B6596FC092B141C831EDF5D41CA586E\ -8C952243:\ -CA7536E20BDE645FEA57A3BBEC79B7D744AF652A55998114:\ -5CB81DE076CD674D - -1C640B4A7984BDEA3F5F750C5F36EF29BE31864683A8773B4F7DEA9F892483F0\ -3C56426F2772EC33CBB90D2BADD731DF6CE09EE74578A4BE2D3E07FD2B71836C\ -82AC48B02465AC8EE4BB783DF66640C51D145FE7C297ECCD40BE49170F910BD3\ -BB0DE70DA38F71C53EFF59237A7337AF6B22CCE4C724C8BCC3891394F29D9446\ -144D1A26ABF6E04983C99653FD2B698AF15647F8F94304809BEAEA3A05381A35\ -994D5815B404D9F8CD10C7EE62BE99FC29E06F6D07851CD34964503BBB6169B9\ -1EF8AC411FA56B528C1C5D269884457998C4A6000525D7AE70D4426095037946\ -45C8AEA41BC793933836CA570CF75D9A5E9138B6907BCBE07C88D4C1BB1F588D\ -186BDFBC8D96D6F6:\ -E369F46021B17D34E30623D14F78526C89F54AAA7017447A7AE2BCD478C425D3\ -F54983E9FB0963F8AFA3673C3F2DB38B3AD8D0F73174AB9F649B3FDEB40AD561\ -74F289A7DABF99F976CEDFE11EA6B8B12F239DEB2DBBB8E829C9E8491C49D6A0\ -EF12AA0404A7957E8F67887BED1A559BA3DFB8ED758AA938F9AE86082D2CB769\ -02372455C129589B1ABDAFCC11C6E37E85F41BB5A1B5E7FAAB0653A6C370EF04\ -13AB4123061EA984F804AE41121D89C9E206B4D5836A8B145A599C0AE79A61F6\ -5CC01C8FEAC1D33A2D703AFD4D5F0E5B1634DE35BB79A0588A30BA04287C0DCF\ -8AD9E81891A70DA0970DD21DFABD2FEEE3D2EF6CF66B3FA87B0B10C6B92950C1\ -4733F5407540B52D:\ -AE1AC30A6AF3371429672219CC6D777FDDE1C1285446D5D7:\ -CA8B1934A27AA9FB - -43544DFA22889BE0247AC5A56049E26E7F606004B8D4BA3111A94FAD81F7B3FE\ -93D231CD1CE7658A26230C76F6CFD8CDAFFEA88ABB7264427CF63A3A3C4A9A6B\ -01FA3D56EE3F618A18CB4BA88A311B30EA55C2CEA8AD8DB65D564D5F5A58D9E4\ -12E82525E4185B5B4170172EA69B1C573C9F6A8156849BF2452DF82301E3DCE6\ -EF4DD2642968FC418D97FB04E25818C41EDA3D23DE5F91329A9819D88B3EB2CC\ -8037BC45C0D77F30E8248F946438FA9709A995E2EFAB9DA0F614E04ECE2A76A2\ -AD5991557630E2C1C04E1816CD08683B16C9564257C28FCF81D24341BC9C4443\ -090D43E98558FDA5850F1F76A1D150BD5F7284B55A971DDB2E934B05523600DE\ -7070EE002C3F4F34CBE5BEFE:\ -9A8E2F26D5E0ACCA216FF6BE29CCFF21D126717ACFE5796E72639AEE4856D043\ -A232F971970558D8606BBE267EC0CCBB584CA96792E01B522F51B4F0A3ECD77F\ -44B063407BEBC74B9A920743E2BC7D93AB3DB84DC20044F699E776D58A01F787\ -76F03F0C5A0F0F8878B6A32823D0E332AA030F64852BCE48A5509F2E37D86665\ -1BEADF1BED4DA0A0B02A3CFFF9C36F6F59256DD467335A60E9484220A2771DA2\ -29D23E12B5FDC2595BFDAD34F0B8DA138D69D820A6E1DAFBF89CF37E82D7008B\ -28D233801F3ACCE6F53CFE75AAB257AB707CDC9B6643CD4A2905A9454ADE457C\ -92D168B818D332FE749FBA4DF9A787A410C6E9F50B02F070786EDD812EF03058\ -F95BB542DCB16770BDE5B0BC:\ -621707897A8FF24C3E8E3C6DC8E7F06E7C9147F5FF6B05FD:\ -F5BFA58BFD2717D1 - -615D2D36A997D95EA3195335368D4E7E00324C9A6158C06E58730740E0818F2A\ -2FFE0B9A383754E22EDE3CBBFB7834F387CAC353C83A943104EF15254A468E55\ -140FD516EF90AE2707288D6F898638EE0103E6014EC6379D4829BB949EA2FAEB\ -498F0B67A06CF6BF7CDC46CD6ED7B10F2A18339568B7D66484EF669619782E2C\ -F8ADE1181CE2356942CD36758E44D11E9E2DDD54B16EEEB7FFEE6A18D46AE6BB\ -A1433D5B30EBAC173C028E8861E27249D764330FFC694BCE053DE44EF98D2BC2\ -7FB04676AEFA2FCEA016B37CB5F128063CA60BF40939F688B2796D01255C78EF\ -96506EBC1E7DE11AE466A8D2EBB135400A16A5C5D7DB80690D2636C0C912ADB9\ -8C27C65C8E59DA432FCFF17B013CCFF7:\ -F73A0035289E85D72C8D977E4EFAB3998F19F2B63B89E9FCAF26E7EA7733158F\ -931099AEC9539DD337EEE372597A61E4ECBFE61DEB55B5005E90B33D743801CB\ -1F1B5C99169DBDE75F8FF22410B6A2EF0EB097C79A3FB7ADD583D72D2C61800A\ -B2DD2632AB14A006CFC3F259ED96604DAB8FA77BA56E9569A839A6B0E58EF576\ -C46DF43A09704650FF9530A8E4D092DF1801B6E82F969E5E67F4EF03AE22D3C1\ -5C91756A465B7C636B51D175DC6A2DCD87715F78CBBDF7E22CE3652929860E94\ -A6B6EBB6D9188E15A13D3CDF3A5971F347A687481D68FAB9B6ADBCA4FD3BE8AA\ -B0D8399C2549AD6DA76917D49CB4BEBA4D12B6B5201272993D2164251E02B093\ -706C280A6C90E843C2F1754404A47373:\ -7D5C37E1A2450913AE41090DFA935AFFD4CA2FDEAFB49436:\ -B7BF5E2C46E32068 - -4BAFAB7E53594A75E17DA9B26F9602B1B2074E23C688D3EC32C345074BF3213D\ -F7B1D2F2639823C1FE8DA4DEB631E13DC2230CB9A39FD1A37F088A7DD154C664\ -28A0A16F0D833AF3F16F5A8A5154DB8047CE9E011C71D785AB755BACBD33CDCA\ -CD8B0708F2BC362BAFE5254640F9EE08C3F6C8992EBFE34B802374A34E97C9EB\ -9C5FEAEED35DC5E0EDA01DD818DB69BAA6D59AE8A9DA52E5A050EB9B6EA766A4\ -65AF2438DAD5587D10E414CCB59F6BBDE7E677A85920962B48C575DF4D89A820\ -AB8B02DB4042667FBA2861A495EFA045235E994650D286EC5ACF753608FB2410\ -158F5AE557A98501E94CE74987144536F5CA787AC064D8746B561E2185147AA1\ -84C376C69250CC12CFBAA2659E3D14DA0403F8C0:\ -9433395CA8E804CD7A181025AFCF050D5EE235E66493EE5AF8E88ADDFCED5651\ -A7A9430D2457C98B162E0C76EE05EA2FCCAFE2C1B3438640B564501408F6FAFC\ -4F6B995465052CB7FB108F6F94A088D648659BE9363EFDEB16FAF59E2AB6D47B\ -4272384651614B82A292C8A9512A144162E8F7814980F82845661C0C3CC88373\ -3B54C9A8A87A026C315F74A8419342C1DFF246128418FCDACC6C2EFB286DE745\ -0B8BB1B992563A5C9120A1FC70425CF48C7012CC282E3B81289EF335C628A46E\ -4D7FFC0E326462881DFC7D08B44D0061DAF58FED53D4FEB9FC899D34BCBDE304\ -2454981FDD354F159E98CBF530809B5B46C81A6F866142280610DFB21CC9791C\ -39095E8A7ACA7557C40A340C87B35E8D00DB4E41:\ -87B28DD21E1726A0AC57A9F243B232E3A46C6D064CA39253:\ -9D36D9BC1DBD0EC1 - -F6EA75879B0600B62F1300799896F7B424A4E2ACDCD8FE5EFEE417C773C9B09A\ -648F010F9CC695A3342715C6568C0AB6853FCDE462645C2D549BCD36673DA23E\ -8CBDF5AA302E10AE04A1C354B619D72993F0640D828AF8D04CBBB68B1325C1CC\ -28627EFC445DFB98E2D199CD250759AAD254B161AF3862F57D4457397E9D1E04\ -1E8EB5539360EE8FDBF73AB99C8294A6C6D09A663B4D86A63741AB55069C55CA\ -9D161561D7F97118455D4FE71EFF91017C50A1B2F8175A8D09CC6C3E4B51C5BF\ -2C49EAB03D9D2C01D36C5B507BD17054091C12B0E4C89A273478F6849DD16FDA\ -A06E2F54F615C64B0BAB4EF8A1C93DEA8BC43E0555D043BD79422450AAA64CCE\ -F24916C8687DC6B65901E58CD3A8F4F18CDF72D0BDEE7420:\ -D15BF53D4D44F0A18B70D12BE3C4A6DED44DB06F553740DBC07B327C28C24075\ -60DD7C913F5D73E582885786E4B454ADC40C156F75B7146B8A618A9BE43D6CE2\ -05126D72880E582F8384CCB928DDB371403F307108F3EF6DE85CAF538FAB2163\ -62409F99DCDCEF7A0CA8E1D9662240C193DE430EED6B5B15B8D3C2A90BB799C7\ -D37C7445C3994F727E438C9ACEEBE89D2F1449D0E83DB2523C063FA903F8A115\ -8FDC7CDD21D899A6C01B18A8D1E1E749A9E09F49BA5331914993B87FCBDBB43A\ -DD276789952B520EB6052DEDEBD3D91A22437365FF12A46FE9822AEFED416AC4\ -15BAD2C0848A11628D14794FBC83D1007F0E23449820290FD81DB2896EA62309\ -4B8F9B1F1E903279CFE34AAFB287573574CF65C19EE5B709:\ -E84CA677BB9563FC2965F57DF2F0D9B78FBAE62EAAF71224:\ -5F5077413611A4C7 - -1225D5D4FD1F49FF2239D496FF327DA3E2C528703414099FD1400A024608DE7B\ -78FCBB9741BE38101AAB6388E54100653AE15FEC668FBE9F9BBFB39C72484CF8\ -BA23151A6DC4FAAFB627F35CE91F1B2BE9F3B1E1DFF258C0CBBAC425F13A5606\ -7C0CCC297FA6BEA5B97272C716099E9784133732BC359F67A2BCE94E62C7A21D\ -CB03EFBD1B387A3D94CA245973ED31BB2EBE771F11D69BEF0C241AD339F7D719\ -B892D37597EE729830602FE685C9C55D8420CB3F4B6DB04BA14D5DAA6E979C0C\ -113270ABA4601B8B66B3C8FCC3D09FBA846FDB22F1827EB27EB65BECEFCC5E48\ -B75FC4023CA0934F71406633C0EDE28D644472A1EC3C218C081752F41F1FF796\ -57C513AE4694522B83B5C5D0E3F4F22A237654EBC5B64C1A032DE611:\ -93E4C7F2BDB46F448FA1C987D10DE2CFEC3B48BE384AA4931F05759A3F43FA7C\ -09930585F0D113273B2B0FC1350AB9615B852C2598F190108D6D2073E1009D92\ -30B0EDDD2AC6812E2EB3939969727FADE44763A83A585416CC2A3357BCBE8D7C\ -4285CD1A3C237B6EB2A31C73CF7B1C935FF9EC27D6DBFFE2D7D3DDB19F11678A\ -EA84A13FA19CB2A574FA324A841709A171F0AE6D1C661089EE817043A56295F7\ -34E69BB7AB06684896C308EDCA833B61A1E60C39CDB3E69955FF29F350CD6330\ -6FFF655AB0F842ACAD1480808E66F8EA32E722E325689D14F9F5D6A1370D1659\ -D54ECFC326647F5F860C9CEE7CA1E9D888C5B99786278755164B104F74BFE3AB\ -408683EDD67C5A9C6A0DD8266EBEBF4A249867DD3C9EB51FB2CAB9B2:\ -6532565097C11A19DABBE33579B118B3CDFCFC57AC9EF78C:\ -261FF08A8A234373 - -FCBF1E7B10B708FB50FEA0C3CDD48C283F47524160068710A1A13742221353B7\ -BE18919379C0D55464372643E16A0E6C0FB02159E627792F0BFB2DB290A99015\ -7006EED144F382E693C8C3B170E7FE2B19F9F79ECDC604427A45BD472D897798\ -3294DD36D081427D046AFDD637592CA150A9E0139CE6D3560BEE9853BCC96A1D\ -D8C7F194E59312EFA76895EB110417837D95417A636222BE47DD1D2DCDD13199\ -2D734BD3E67BCD7E6DCEC606060D9F8E264AE12C047F3339BCA9B44108D469B2\ -2F44DADCA49247EC2FA1C76C396737E40149AA535A1E7C05FCB1B8181D5AE8BC\ -DA411F616B307B19ABAFB36643322A803B1B46A477D0D1048625369CAC798BDC\ -937F8E726D59C635447B667F125E26303AFCB7DC0370160E6152E514EBFF9020:\ -63A887E0D27501AFBEE5A1ADC4DCA5443F9E4AFE1466D71666CB28A22F1D4CA0\ -913AAB49C08378CD41E89035FF15E4150992528AC15300E92C1F73CF6333AE3F\ -17898DDF031712F6A0CFA2147D435AA3A69496DB67FC1789C601AF00C16A025C\ -93F64F1EB7CED97D4E22079CD1A422E3212B55A8687D191C295FAB74DEE44A00\ -10AC51E167F080B4C0E1DDC6A26103FE61F02EB3F62BE3DEA3D9A056E46CB18F\ -154AB72DC93A9FA16C1372FDDC1CBF7850EB671440E1BC6B065B897ACEA27B15\ -0A26D135F0152EA998AB004B16E543C2E401B8C8F39F4089911D84E1D232D4FF\ -8E2614F0FADD57F8EA4B0AC90EBC7564A604128227B64BC534BE39B474056D88\ -46D24604172AD1FAB6AECA830B74DAE1FC6FCF931AC3F95E9C1FF325D6B65AFF:\ -4BDB2B06847394FCD4EB83F67D41F06B0F111956FF1244E7:\ -BA6E8680024B3FC2 - -3DECC0B1CED05031E8FD762217792EECCAAB16D2633BC19F54C8B61AF8EE9172\ -7F8E74D1AF880A72637326E1D78D85C72D8150864D04413FF83D7A2B0E3EF7CB\ -D9568D25E3ECCBCA57126EACEE14E35AFF3F052029A2E2570382E7E4219BE8E1\ -E30C0656320C3E4B5E4B2191C46E3C5FCE6450B766B258A89B0DC09A95F9E85E\ -1648189A2CDB5A999846E9EC8333782701131046E286D0459192D70279445A2B\ -591CA7D5AD1A95022D2B2627772AF2A6D009B8EB1E2E4E6CDDDE3E85033CBC7E\ -B61C6B77011BCB96C93970DC9A921BE397466E21D418DD5A4B3F596244758073\ -0677E3CB4671050B6768470F8F3CD9742E7B9269703B8227F63B37572AF7A60A\ -F37F6B3F53F3F3658B06D9B7FC860A294E47480DF9237B53885797C4CF580FC9\ -07BB188C:\ -043AD473EDC7463C7A8864B3E5DE8B0B8FBF700E7E5654BBDA0214B680488D20\ -B9F02D931A8DD953A5D22C9477DF8E99F1B55F863D96DD285BE49635364B165F\ -02E3BB45FEF18C8BE5EC665F96A36F4F2CF85AF35E70A6F6EA756398294842C2\ -AA9696EE6B7157A47D381E6503B7EDB56754485BEDFAA5F125EA50C2B7EF0024\ -EC62D0BEE490C516F1763EFFA23A2772E841540CEED0733C0B6BD66FF2D3E317\ -500BBA4E8DC019EEE025B47E62BB4FA2157A938BFD0F623C85DB379EC731CDDF\ -7E9F924DDFA3E6C5081ED6C6C88BE1FDD62611D66E3E019DF0A9B9671302225D\ -F0C5292E7686D82C422079B85676DA81DF752A389A51C2BC2BD177C46E753D8F\ -34FA038F6CFC3CE925C84A0894731DD3D188761B9A0F4112253388214BED7DB8\ -81730614:\ -2B77F833E806D416FB381A09A6D05116AC049FDA023A5E2B:\ -13D0606E5CDAF6F7 - -7BA7B59BAC0A8C726B383E52F11A995405835ED09DA1EBAA6BB0F208EDBA84F8\ -B0C6A2EE46B817B6CE76A06CED89A0B01BD355DF6448735EE9FB73B2C7F8A9F0\ -388908546B539E51A7A06D6C53E5CDA9BF46575B28B92DEBA62685B0B5FCB55E\ -4395EA38CC14070F51EBAA40F67E7F4FD754BC2072FC11AFCC1C3F5159AC9135\ -AB07005E77017FF4428F375A0F6EC9E9E1E6BE66DDB4C2BEFD1F4DB489236B3F\ -C2AD63165C2599147C021E54010297BC746A4D2933866F963A0C9A81958458F5\ -9E14BA4756B71FAF702B9812C4AD2E5B04490C0EAFEE74CD95F1052FF260BE45\ -CEA022A0C0E524A6F2C9CB8054A59702D02606EAFEDB322E001D5251A81BA1CE\ -7B323F6F663A4C079F2E3887604581CAD699E754E5743D0D40B0F24CC3B0924D\ -AEB7103FBA938F4D:\ -14A45FFCFCEE25886B7067F1A4FE029AE21E7343CA9DB9242ADEA2B33221A514\ -6096808C4B623F24669D5D65B9BA4BC063920C08E51123D01F6CCB00A42984E1\ -CC8A7B408544686E7FC1E79EAA64FFBA12A012DE56C9FADA55F56FE79726D3DD\ -DDFE51E1549785F40DB5C2D5F6D2C49F9EC87B13675E2D1C0A6846EA97D8ED65\ -FEC59D38EA10FC038AA1BACA09A3998C2DCF2351B5B56AA136064C4FE0644161\ -DF09C41564186E2AE3A25095176C0AC163BB28C55181B6AF8396C21004BB0054\ -9161608CE44BCFF29B72C2F22A005E2B7D71213BC8B7417083661CECCB82FB7B\ -D615B0D93B40A09ED2830ECBF94ECBD6C25C3289B6A79DF46A164B19767BFDF5\ -DAEBADA5C5B9C04B8B288154009D52D21025531FDBE5CCC80CD79BCD0CBA21F9\ -98A05B516C8CE336:\ -EDD9BC31C48BA0254D32D297D7BF8E7253CA57041665D5B7:\ -A86D049A6B161AD6 - -3AC25EE64B98F11977CCF9947978F5EB570D35F0CA9DFE2742ECCC7CE11FD09C\ -6E921011EBC965161A0B932650545953168AD660BDCF4F88618060347CB9B411\ -4885EBEB0593B79DC00D358E6088B312D764FBC4A90BC3B31CF5B96EAAE2491F\ -DE168941CE3BA9BED3A5448681750FA7CC7294ECCD1CCD6A7C3F4BC106922055\ -933645B8E298ADE83C9697EDB48F2CBBDB42FD70F6CB98B38E1EBC3F72DD77A8\ -4188422A5A3DF5BDC31F59B30BCA323492B4F253C04766C7AC09B64289651584\ -94845B4D3BD13F36C549D030248E7FD19CC102DF2696C403AF58E5DF0854802F\ -B1646921BD8F38AE62A594CE32AA0221C521AE4153CA6B0178DFBC0B96F0131B\ -B4BAD83CA4199C6A9F30867D036CED549CEF76BE7C62F94F15DA0ABCD28514CD\ -DC0D6955E162779BD148339D:\ -46119F1EEE4A5F47BD814261A0C6BD218943EE4DADA6362BFAEEAF4D01FB8D6A\ -D8BB2B20C16E2B8E73E495BEBEF3C935E1FF49B00EBBE6F364F38B3AA3E628AD\ -214D95EECC6932DD3916FF8758169091EB1E24226501D94C67FB0C8A69DA693D\ -659A988484BD5BF3E6C41B00840838E5BBDCABD61868A3B2701F7CE9A6BF71DA\ -44CFA116A46B378489F41B3FB4D004C79FB5C21321BB65ED5F9BAE24C5B558B7\ -642D46DD14C2B8C9DD04F68EF91A703C45454B5C12AFCB66E4DE5E649614F09A\ -BAA1D3D1D75BBA2AC6871EE1DE4577A37D535653C2D24C6ACF1DF665E297C135\ -F70522477649C624E7997BC3ED8B99220E675CC9B1F2CD94979BC9B393E7A186\ -9A6BBA8CF74CE041940566B5200682B19CFD85065EBE6CC64F34DBC92A9E7A44\ -85C81D4C64975E73391AD83B:\ -48AB74AB57DE668C6FD29F1C98B730381E0763913F7E19A6:\ -7277C0208A8BFA09 - -4C44EBCD81E742D2B08DC7DBCC22411E92F57D9FA9AC3C7EE93C8D176A62FE2F\ -C7FAC96B77F98AA3776F7A974B5854F229C778DBAA0F244F5767A42077A7E5A4\ -A5BD3BD8A393C379D9C810DA5B6C97CEAA750F638500194499D439BAB2EEAC83\ -CE6A51BC1246A4DEA5BEFEF0A90BEA5B818778CC249F68D1507630D2E993BF15\ -4907A5C40F8CB0FD2BF88F5A59F6ADF0F1F5CE9DAA04EA4EBE16F041E321DBC7\ -7ECE9FA6799D097F903BE1B108E153A941CA0C8F1E02CB8130D6BD8C281FF8B3\ -D9BA7ECBF10FFE42EC66EC90A12A8A7506A929101E0F952373BCFB3B41ADF70B\ -A556D82B190E986AB1A8716161F7E8D33AB449F7E8D898D8F0AE1266437AE290\ -B23E36677657102FD6B0C3041F573E19234983202571413ED54B2F2D2610B9BF\ -69240D8CF6040B3ED4026A992FE89CD2:\ -4478B18390CAE6D3E435808A3324BCE26AC469E04D9BD81C9C462DD1CC631EF2\ -5881F29D211EAC5079644721461D55FD70806BE9CF8EDC8E9BE7D9580CAEDAA1\ -A03E6B63165575E4898C0A85DD8A12ABD09431A037EDEB6549E6FA92424C76F5\ -035FE5A7AB183A28A212A678C97C53D95080AF4C5170CD454CB11BB5C57C7581\ -394441DD647DE9F24E3962BC1CF9D011FB14515BD452D93BF16297E0931DC007\ -2CF1269E33DC40FEA1FDAF43D33E4B46F009A8E0DC2FFC0E70754CCF3AF4579E\ -1251175D2E29CA7AA9535CB9084EA6651DEDE9918A6F845108B759628F74BF0A\ -3EA029FC3AF80B0A087CE9923CD0B1D181E8661BB55F2D3A8503B5E03FA24595\ -776760C3592796879442B5CC2696633EA8D35566CCBB532B667B2A09BE6A6CC7\ -931364B42712CF6DAE481499702077C0:\ -DDF2257D6C7E3735A8656AA5FF8FF253FF3E2D83385492E8:\ -3FEE5005E1B52CF7 - -8C59975C6947091366941557DE83CBB2CEB8B4E9439B9CD7981676CC209BE56C\ -D9D6A37F334E0E83CC2F94AE5041A62328A0400F910815AB90D135F72278C97C\ -2228B8D17574FE907BF9FE1847CCC0E125AD7CDF9361EE9EDE30211077E6F7D2\ -2DF72FC3441DD8E548A3E668F67E7340496E8080B60129F77ACE77B86920E553\ -C7630765620A4BE0DDD04DB1D233A61F207BF5BA5F8EE378D48D60F8CCA73742\ -9C7DCCD0AD14B3C27552DEA11682781742B5275D689DC52B80F99D743B1860C2\ -D6897F6F32CD203C5D6FAE1EBA0DBD0DBB68EE455B82BA9EE46B0F427CE1356D\ -9581AEEF491373A02073CEBE04B22A97540188C226540F048C49376B1BD2C3CD\ -60D90B27B66907ABE96B9F3BCB324265383BE6F9B4FDA7CC4EA5BB119D2B25BC\ -A8B191D0AC899839E95827826AD0F4A9A2C90913:\ -2D4AB476FD236B6561A1A91D2C2A1F57493E1060DAA19F4A633A2857B07FCAD5\ -34443C557AEB8C25AF0B6DAEC2C47BB0F12192C6CCB7A03F99D840403384A879\ -832A97D7557F87328FD58F103EBCE3B826187C3D879B1F3D80CF08F41AED6612\ -7CC9B9784E53F8610364E16A587EBEC13E22ECE24BE3F9F3CBD6095430B381A8\ -B62838D439B1D74F9AF503C06375BC7E30D639CBFB4F6175E520FEE2BD2F0470\ -DAF914AA94137E90408B48B17FDC69FED073017CCF16C56014F531D343D6A960\ -CF09053CAF6FB9E15257D40AA29610CF644830C0CA5671B0836F877AFCD0E06A\ -2A437F299C3CD31837D719E8B370B96BEEEA44547606383B6418A2C8BAE9CA76\ -742E1C5885477B7E718996B3B17D74BFEBB87292518DDBB349209AA7C421E3EB\ -7FE93E9197E671426F8AF63AD7C60829334D962E:\ -182A5086C289C129D13D2DF876858C0B56779A9DF2BCB89C:\ -EE531FD00382D1E2 - -7155EB9E3EFD5AE2DA9B60C2F00364B00C002215AFD91E3BC564D9E436BAE0E5\ -EEDF8C93C0F8C72BF35E22A8B9D4700487BE870527CEA56391CC80F2E848C14C\ -C24A0FFBE4D743C256064B96DC3451E4F93C1B79081A2501A597509FDA1A2E9D\ -C02CCB49F1DC2F0623F3A56972BF3AA21D4EEC2D3072395BDCE99F909B611903\ -188904BF24EAB921E27E061C75C40937EFA66647AA0BBF9A2A8C088F08F497C2\ -E2CB9839FDB1B0D68652391418A2CD664718BA93336F5511CFA9504D92CA14A4\ -59FAA90C5FD724BF8F616C6BA695F75B361865154EE6AE0A2C7A801BB051CEC6\ -92B2704212A1DC65423299209A959B1A75758404DB8D889BB6261B444310ED9E\ -11D95C1C0A138272F19AD025995AB8F44729FF6BAE3D025856360C1286DC586E\ -0B64E898A658330E6B18D127DD8E13696DFD750A14EFB724:\ -2E7FAC33AB17984A53797887E665A5040D329732815B9047516DBA272092D7F7\ -07C9659D7AEE0C9487F1A44D2BAE2C1DAD15E3A4D7CA317C9F562739031D50ED\ -6391D67083C15432920D35A66EC7AF77A293B3B83F46E905AE05512864006A9B\ -AD7F3A317B9322F0F19492291E88EAD6D494D6A6C6BDFC7719109669E40B542B\ -313B4BE2A65D495C25AB42A034CE10BCDF8567DA3044E9C040B905AD5C6E5FD3\ -E7974B420108F839042946A0297B0FEEBCE5173CA8F99E877FBC8CAEFB26BFE0\ -452E997C7B60507B5F18561308770B0559A86C7F789A179C05A78DC5ECD1E702\ -6ACB510AC672D53EF6A077F99AC3D3564EBE697928C156A94C5C4CD59DD5002A\ -8ADA3C81B6190A0CC13F423BD7A494A98C84ADF56748103C4AE0748558AC7F1E\ -0CD0DD29A513102292A900B9E1498DA77E9ED1C65091B6A8:\ -9C0AF3A096ADA3E92633F7BB7B2FF15C94F3EAB3BFFA83B3:\ -53A6552D82EF95DE - -5DC9AC7086EBEDDF3AB0FEE8129617831CCB2192EBD42CA4F5196E4CB5506986\ -0D68D4EC183FD284E471CF6E9361445EDA907BBAD25164F0839EC3D2CCC2865F\ -E14CF7387F3F14A85E8EF447ECB55D3605D65CCCB6258385819A916324616A8C\ -57FDE027F7F3C8A591C22C83D3F337F699C21CA5A301F469695865EAA89D6D26\ -8D5CAA2B3CAB311F179E5254C1CDA4E8A21284EFDCBE49CD117AC990ABEDE4C0\ -DA999912F62B1094BBBE37EA4B5D904D8C4692F387D55D1F87A72D597878D17C\ -B9188AF62C313E8548C8CD16735D92F5C1866F2139EB2453B91A1C9EFEEFFAE3\ -6DD3F1B81E35F2186A63CEF19EEDDFA74B6BC90094DFD555B7527A654741C9A7\ -EF45EE962D1FB5FA7CDC9285D657C9E43E1B0164F64CA2A9735F1B48AD06ED06\ -6A7491BBB21C67321DECF31CE027835ECF76D296BA2F842AD4A450C4:\ -30EADD3110B2E6603EF5248E340C7FB693550FB0EA21C01F1DC1D2F35CFE1802\ -5FB1C96CAF5C0E5F22A6C5813C81EDA92D0582A3AFE68F4B9AFC7C9CA0CE4DF7\ -30D392C9B7F51B5D19EC73FF8FE1BBA520747EA1318AA126FB7FD94F700D08FA\ -C59F7EDE8DB6016C308767B0040D5F85272EA1F9183F5A4E62959A0A3E43F6ED\ -30C367A3A7F9B0C650832CB78842ECA78E72C707B7ED0405459E550AD6ACC8D9\ -009342C86328E69BE238AFDAD8462580DCDA1340C88E93A777ABF14D8A5A4798\ -125C9B8776237AED3D4902A21FC8E54A1D02F46B11ADAEEA85FD0274F39647ED\ -9F1C6825FC393729C0AD88706D0A0B1503951FB6AD606C6F13A8EA546EA5E4E2\ -877319E3A692E482002E50A1FCF8F7AEC1C289BEB26D69FF203961D64A973D3C\ -93455543CA3267B0F9C671A1773F1AAF1B7452FFCF474A1EA17B1316:\ -9D23110F8F59D9F55823EB31C933B55A8EA284B0AEFF654E:\ -0164755CBAF55AC7 - -9FA8622118B9AF70E0DA09BDAFF78886B3C49CF6FD6F27A7378C72EC153328F3\ -DEB71BB1E8B27A0670D847F4EBBA1166A4A0A43C9E83F5E4A80577A7FC217324\ -F5528023A87E6F030425FA4B328D60BD821BF03FB719F994F3E65756E1123469\ -8312B65C5965A386DC05B0098A7B69A9997811DCD28299EDA2E6F27FBFCAB280\ -FAF0A1EC84A8A6A57392F03D3F721B35951FC6949F67979FB2799E7F30B2129A\ -2A51D7C2F77F2AAB347A07F82DBF869F5EBA4DB0C12AB55627F92D7BA48088B1\ -D4913629BEC1410AB7CB63F5E63192D9B128C08C39ACFA8895A59202F2464D6F\ -AF26065440C8F6A53DF4ED4845BF04BE313E4CDD887C5AFDEC7725C4E4D8935E\ -41E9E5F68CDAEDFA7B18D8CD6DF8E7C2BD87F2607E61C4425FDF0DFA85D610DC\ -B9BD2B3147A1B7598BAED49BC0D59954CF47CCC878A8060C735DEC2FA0C738D6:\ -09E0D1CF073CA78918D504CF0D24199DDABB278EF99B34D0C3393D7DE02CED88\ -7BA0B4D3E185CF0BEE92FFD9F534CD186BCF917DE09432A48C1CB720D4EA8CEC\ -9BC90F949DD226BBC372AD3630B7A4DCDE75812816C56E7935918D14BA1E3658\ -4FE7D268791A36CA5E82EACB6B4C9BE622DA475D8226557D2402FAF7D738A141\ -1BED25D60FA5B3F9AE500ED047B1391ECFBA8D7653F93C75F30398AF955C4F1C\ -6D2FA44DBABE0D96EE7EDAE84408F33E462B41240588A0C1C477F67B2A325B54\ -1CFDE246A8B85B06DBB568354D89FDB193D490DFB925C9B7AA4FB98C71DAC643\ -6BCA02A645EF076DE340AC4E4F138602FEBF29FF55C10D024A0F424DD1E06615\ -FAC83A2A89B62249656DFAE27BA505EF0AC4F30A69A0EEA3C4352A95D40AA3A5\ -7147350F5873FDF12EB8BB74DD27CCD898EAAC4E4D4D0DBCF488F0B089738B23:\ -191E940A45F962BC4FAAC5E1BC5059F1C3C0FA0915AD1679:\ -3D6557C0235861CB - -9C468511DCE7310072F9DECA8CEF6A14C446F4B0156CA225461D1768D2750A5E\ -A9F208247B9F3E531766D40D74AD03E4705AF84D00F27559B4BE48C2D054F842\ -E7D81EA3D167C0EB6D4C5717A5BABE03748E29DEA88CAA3822F6B7602D60E583\ -85B6FA3929A14A14012F7C904C25870C4FD9ABBC95BEC25EFAE71BA1C0385A1B\ -7693A5C63E2D79D4EC32DF572EADED07DA55D8202176E9B99A9780145493DBF6\ -D8347159D84008E6D84AF0D73BC1A783BD9F71F9F06ADDC1CEE6A46826B72B1E\ -F695BFB253B28144B14BEE5CFB85507AC733E96C0CDEA44AB8612B08656D4143\ -FDC190348A15586DEA60EC95F87CE0E1B5A3322A15784F1F4D1CDC5E778CFFA8\ -A1258E042CA7AE34AED94F7993A49B37EE7C35127D786C47AEA6B43D4A744B8F\ -81AE7AA1361255A6E9CFCCCA4480C437978826A10C3647EE546EDDADAF0156F2\ -D4569D32:\ -42EDEB6FF33F92559D7CB43E1CB8F3D48C45D04FD6D11CAEE0D1585431E59B09\ -3DCEA6B6C959B6353563BF66E0918B66459EC33AE16BC409787DD400CC170E7F\ -BF13AC75E2BE17AB84D316ABC829459E5E193E1D4FADDF55DD8A7D5F6672D670\ -44B14A5508F6D34AAFC78C78A0E49CD7D4F4D281A9589DD8C3CADE623E90D03B\ -ED78D6C322DFF058A5E3BBA8410E3E7C3D0B9A7F8D0BF28D00867D32443240C0\ -0304E9B5BF0D5189B018B80A3C5D9A8377D9E3ABD833444C4CDB4989A84C6449\ -302FCD2C97EA218AFADDEA255BEA2D448835A5D4169A59ED5E59FD886218CE2A\ -27D83E6EE813BD77067A972C75A7136854A6078CC19E81AD345B36E5D51A7AE5\ -BC60EDF2996508984DDBA1CFE5B64A87F723753172E7B7EF22D374822D982D83\ -B064F5F6295A5672E31E7C6CFB21CD31FE7C96246BC315613489997E2A5B3E5A\ -93B60D15:\ -31C7F37AA0A1AB4FB908B47F03CDCB302815DE0720A4AE99:\ -EDDC65C8A343E51C - -B158FB5A3C15E554B00797A1B7E10A5333C2D3A0887D0D71F2CD147A0B945DBE\ -9B7A7579DE16E55D01E760F3CB95136D0150DB2559872EE12B26697EBE6EE9C0\ -60AEC6BA15E30882D82BB28E86C24BCEB33824F3277AD43FA4D343FB33317338\ -A3B0ED7D7BA3697F2FE6474F9A8124D4057A59A511DDE033A17F819A3B9D5DC0\ -7478F49DF0271843493D81A68C26A8E4482910BB86C6DB4CBD0EFDC6CE7565BD\ -1550F794A19C851E72BA7CA0297D0B06F0E605F376303122B09A70A7139A135B\ -F18D1840D4EEEB713F4FD1EE730F1F1782C749E598EFEDC49704278311A356AF\ -8243ED1E65D294824FFB5E9C9128D8D26761996C51F8DDA5BB17FB9ACB815194\ -B29C1E64897E23859C5226265C4B56FEBE32AF265F9C2A423583459395C7936F\ -304EC59838189EAAC9103C179C78C386FE67863989898CDC6B85FA1D0ECE8283\ -A58043CA30023848:\ -4F4BC6E672383981A7D27F0A3C9EDDD29E0698E2B9FB414EA316324C7968D51C\ -2F717387695A256DE8CE4A3B8AA83776DB6A57FAE0D95CF0BBC4350735032A4A\ -15B7AC93E199C49782575F968F1D349C0F6508A42902305AAEB10DEECA944864\ -62840A2AFF37B5584A6F762E99CAA6ED12D59D8BE4EB71C2F28181544DDDB550\ -C532398752C14DEB2E130BE59ECAA2602A95BBFCBB2C499BBF7C4C5B6436D5DF\ -EEE9808020906E8EE60E001E9928E5A73992D9A3749540AA387E55AC9B266C1A\ -8A468F73EB25B6DC9D662B650367211597403E2C8E4E0B1F3D3B175EDC7DDC6F\ -CE63E79CA565F7629DF985C06F99BA5ABE27B7C85BDBA9CA00C394F896ACEC0F\ -8B09BDD10AD0E9C4244092F50ADC183E0E0C600DDBB228DE3F28DE96B45CE8FF\ -728E9B928593235206F98FD15548F99E7DCDA988924DB6D00A8BD9204162B2C8\ -B36EB3C147C5644C:\ -46FE912C13C289A8AFD5154E6607C221A44A1AD98C4F6D2D:\ -C7F32A4E0B63DB4C - -4A1982707F10B83BCF502FD556351C83C4A56AF83ABAD85DA79B9817FCA8B669\ -1EC7BC38192F93838A4259B2179438A4F0B8FF65CB02468870A135E6E582F7DA\ -63E50CC4268B03BD8FB2C2DE222142BE4F1E2DFDC715AA1DCA197CE3756C92E2\ -218889B8B48CED73C1E83D4BF4B924AC6EDC39178FACC616EE7D303F4225D81D\ -0B4C6952E470ED3FBD7D91B919F03B938319167A0FEDA38B0A842B8474692026\ -EDA147E8573EC41C74256443D2540A01CF6739D120D03F365190D481C2594D56\ -69D98EEF2EF22BA4F6D3907F95F3A77DC0BCE340DBF09F6CFF7D82320D814F7C\ -B1F0B7A6E236E39186CAE234322B6D9D749DF3316CB492F90DAB3C86E3C1D226\ -932221DA62D93EC65D1FA7A17B9981D89044F7BBFDB04531DC6822C6FFCE98CB\ -4AD845EE647832BBD9C7ECA6961247279505B7341329C131FC19F08B8606A8C8\ -5A8DA80CC69348F8BA34A7BB:\ -CA89689CB39EFC596DBE373A82F3B267EA515134292D49C50509A4F633468F21\ -29137958FE78B26F6B689B160F49FFAF20DD39E0CD26456797E0C2A252C37E36\ -6D75933093821C939225455A51EA70217E5D67D62683E81FDD46E6933419C3FE\ -204598C57E2F3A814D5E908A645F8BF8249DD74A2EB535946E786D22C4067943\ -41F2BD50FA087AE97371A0AC653C6ABF665595ECB7A6260F3BA931F282F35B13\ -ABEF5C69BA2BE90DF2743020C02DA8EF873CFF5AC911E54DCA33EF4B821318F2\ -A0E11B06433E5735F7377953E2438BF8B2699B76800E9BEA31BA385E8CB80A4D\ -3E13CF611AFD1BCA4ABAAB1AC0417255A99A7B45DE9152582F51E7579461657A\ -168159F2BE071DF0E57F9DE527328DFE87CC909C670C04DB2B469DA69A954A1E\ -064C5914A3A6AB9B01FC80660E4257A90CD293E625203C97A28C35CC651F732A\ -AE167BC88A2FC593917976D2:\ -F96E066A5C72C480B8742FBFB78ECF0E87F539F1F3BCE4DE:\ -EE9B92CBC273579D - -2667F91D5E9F8F2C96D4233314F0CFBA7C538A15E695624183FCF895EC76867C\ -97C0D4635BDA8629C48743BA2D472D284672868216AF08240E35E61CD3E952F5\ -686EFE572ABEC5BB07CA5A2F5E1BB5DDBD920985756D81CD27960AF2B794A1EA\ -C32198BAFFB7EAFA9E4A125277C4C6931CE8CDDB030E884E90A48A59CF15F1D9\ -318A86697BC2CC7DEDCE842F71C6B4064E2F911D3C94DFE2F58F00188BA01054\ -FB3CFE5D93E82A71869A01CA5E15F34DDA22473ECFE577557687A7CA0FA9EBC4\ -2D2F25F13ADB8800EC3477EE176BCC89301F429E25D86BA8256C2AF18E9C68C3\ -7BD4A8FF1871BB834BCFFF968C5BE3696ACD2634106E9D53D3BA0DFCEFBB2B4D\ -8C42CA6168F03DAEA7960D5306E25EE81F453E268E0D4980F878448C7FFE24E6\ -C7F181DF6E0118FB091119CD4279E5F082EA4B031B0A7A1D3E52987F705EB24B\ -3C2F6DA806DF672274BFE45561B12900:\ -3136CC2F6BEAA4974DCA793E03DABA0CBE0AD100954FADCA66F829F1A0293FAC\ -96B001237E53084F6631816247622A835D3DC178A4C7EA87B51E141BA7F2128B\ -66903238E376EBCEAAFA6A8385FAAC87C39C7208A7D5DD985B3578A73817473F\ -C0166DC2C8CB55DD2C32F02A586F684486DBE321184AD2C7B7B59FF3DB4A04AB\ -4C5695D52C9F66D99C2EE8D4CA5D6116412E0E50EE800827EAD6B6B0786C669A\ -79DEC09732654D6F8C4847911AE24CAFE778B79754332E0F1991F34F4393EFB8\ -0309389FC409663C655BD22225E76D97A49407ABB0C4A30D26CA9B8C2A85C4DD\ -1CBC54FCD9987DB2F160EA600648A808438E08A690E136D58DD44A0886C3E28C\ -0AB82400E3744C1E571FD82982287BA7B9D6892DBE605C82372856E55B8E506B\ -AAAA0AB88EA4D2E29CCD9A0BBDC2BDD45796E80087481B6A11F4DDBD32FAF64A\ -8EFABB8F056C47DDFD110C0806E8C224:\ -7DC34DA1B3AFE3579FA7418BF69F20D7F1EAE634CB1E6755:\ -C23C44FD0BFAEA4E - -121173FB02C48D6DD5D46BA28BF7A1F336CA04377B920A3CC209238301D4DF48\ -44136DCFFFD09D78C23F1CCF59EC22E203B0DEFC678DCEE424448B88D6ECD00C\ -87F2EFA7ED12AC742AD2ABB85A4EEC20963039CD7D12072806B39AC212CE4550\ -520AE46ADE97D8292FFD4ECEF0105C806DD6C033C09E85BB853BE01B27A6538D\ -6268E3F78D5FE685166F7EB4886636E621C777A6B2A42B64106B5C5EE966BB04\ -8C1D29B0D89175D91F4F57742D95E85F52C2BF93AD9C8F2FDAC45A8A126CCC2C\ -56E14C5B13401F7B411EF92EB66D1D8B5F7CCCA0A6F9A46C4E2F3B574B276061\ -08E863427CD03F9491EA5F30C4313AF84B660EEB2FCFAD5CD771D0B29178E85F\ -35E7D3DA61F439D2998A4B5D319B824639323FB6F736C90B985CC6058A084E5A\ -C85F34B3D6685F4D5161712A56B3533722EBB1237AFB6232A02B5107ECFCE801\ -90B9EA1771CCC6E7DF7A12EB99E9130AA454A631:\ -13C1FCE97C6C4698F94D0F6EB90FA1C468A1AE1CE7BCA7D7DE2ACD91F2C012D2\ -6E00DA3640FACBEBA9BE29F2A63AAFE646816D93F0E1647FE0667BC4DD311376\ -27114B0F63D342C39C432C2B32193AFC84FBCFEE87372460345FD757D4D83C51\ -EB364631677ED6A46985E2C56D114833685C088D3CD60C1D698853B388F6B891\ -62302BA5D9D017C438F9670DB6871127B2FDBA1A0CF6EB765A44721365408A8D\ -A30ADB097EB24EE0C3560E3918D9D92E8E7E690F563823694836DBF18BCD809B\ -9548F33E42740F68408667D7E4B2312C1AA566DA6A442B5EBE11BD92D6DA1600\ -C105C09891B68FFF45CB83F4DB26DFC0EBF51695CEEE8B31D8B976866395247D\ -94F158CF3AE621C32E40EA208532D90608D6C805365FCC55FAF4C72EB8F3F254\ -4718CD59B88A4682D0A42E645CF015E14751028111723861EF6BCC99D13737EE\ -FC99922FC4B16A6D07DB278C67A585CA55484E1D:\ -82D1CEAB43D9EF707E12862E4BBF3CFA4EDC35E9C845035D:\ -4E71D4162FC6C69F - -9417290C8343D14BB905E866113A856BA9823645226C88406BF80AF3FD18A831\ -844466E8734047FD4A97990BD8FF8FE90DEC55AB372A93EAE25FD098D3A23128\ -8095E8E3383BFC3402B6424BB86A1B17BFF93177381C54043D297D3F9389FA87\ -55D8B41713EFC12EC553D55BBDA231010EAFAD2150909E04782E962B231C1207\ -DF918A4079B7DE2ABE356B214DDCAC516803F077D3128024C409103937988578\ -65937B8A5ADDE65AEE0BDEFC1E7F008F06D6332DFF02CE0B1C9027C02C471EFC\ -BBE78C14308CE073F69F0E436734146DD930210AB072E7A10CC9D1F87DA29F17\ -1B6D93613F631147C110F7628B6FB55DE1F67979CD04FDABE70EBB34183D04A1\ -F7BCDEF0527B4F116708FCC0B7B04F9BDF741CC67A4CA5983326A6B48F0C0EF9\ -6AC6ADC57516049B7E4038424568472EBE1A778B62B324CCAF1D7D40C7EFE4ED\ -8E594F5E57F737BF7889111762FC2B8509B60284C3696AB5:\ -9820B0B24D15FA03E40B521FB67C043D1E55AB938687A2168D04035B9A216169\ -D1D8CEDED2C86586C67DFF31F401B3D15CE4E287560DB0747E28F86C97FF21E9\ -27E32FA3D2FEB5DD33A1B739D3A2B7CE06473557DE2EE164794EF23570D96EE3\ -911DE796554865162ADA1D2B9D24ABACA986028277223B10AC4FC84210FE8A58\ -6479B8D410A7E4CBA24843352CCAF119DA31D4310DA471DB2A42078BAEA4DA68\ -FA0A41399BADD34036B9670BA9EF43B39F786A29C23E19E4F60D119CE2F9C9F1\ -7DC1091EFC85DCA051B095933ED9375E6DCF6DD60356EEB5B9DDBA04761A412B\ -E475D5AB927CA00C3B01F136A15C13EB2E1349CC8EF8B4A2E27254B9E2A0C05C\ -20B809B8FD72DBC1DE9ADDFB8D987D0FB31D95C8104F656D3C4DBF1B75B33ED7\ -98C594785172767B00C7699455B3CF3331D19E47C29C52AC844D8A5B90642C6F\ -3D478A84C8DE4FDEFC1D6B421E3938E2C7352A059F69ACC0:\ -0F5AAFDC62CF013302133CDB2658C362D683120239C9B73B:\ -CB628A161D5BB00E - -77D4ED2A5321D0C218C203D971CB425FC74497708B5E8034741B79D022B2E54D\ -7C7B196C6DFB1B5FDC1C8A18DE787672D47AAEE01C267518E693BD02D1FA7B95\ -42626DE007AA524A8B82F339882625843D67402FEDE26C15099F8F52D03F2299\ -23ECA62A43FBFF8E672316899DB117B1313FA9562F0F60598CB85EF42F7218D8\ -19AF309DE57A6B262F79E4593FFEA910C7BF7015A4D3033D8EDDA1C102323139\ -9AEBF65CBFD9D43ACBB9C28B58381AACF7B25182D20B4C7BE9A2C1E7FD026F62\ -80C72F806912EF26CC559BD64ADABCB6F57F1EEA44D99EEF62B80B5AC08B1A40\ -4B9DC1F11A2401C93F5713C88F9BF1864FDFAC23199F6591EB0C1E3F152DA4A1\ -DCD830ADD9567595A55505A7237D245585BE2F802FC483C81BF895CB7EE0A27A\ -8D3E46AAFC0F57A71EED36107BEF7658EDAE3093559B81E9C6DF08DC7DA87BB7\ -E17421DF412612CEAA7BEFED5342E5FA9EAABD52ED6FDCB3272CBDA5:\ -FDFEF44290CB510F15B987C0F6F2D37BA5BD3CB19B21C0D75BF6048174D64B8D\ -1930F1D4B13B024A60A9C1AA39D6CA247F2D4C6310AB01C45AFB6748D93B5C35\ -3EAE103E6559E17DECF28C11C4DE59223D102785BF95485430A3D3C6E3425C83\ -EE602716B990624C2CDB40BD0444EAA313B5574778AFF53BE5CC7AD505EE4A66\ -9B7F77DEC4E1BE571635B444C5C38DB46F9673EB6883E99E918554FF0DE64C19\ -25C1E7784D36B899B1F5151F7E3D5488CAC0937CB6C130141EBDD3467AC3FEA4\ -BC940DDC22434F1B1883C1A983FB59E53C44410FC99F1B977CE4671D41543638\ -52630A2887BB80B3E2F8F42C5BB81D15BE85A07FD24E7E8DB66F7FEDCBE28D61\ -26E2124DFEC6F61B584FA0312304C5DEB510146C753EB7CE6BDB95115D024A05\ -002499358D62C998F48DBCAAC7B1BFC42F450F407E838A40B5CAB429C75D30E4\ -5A0A8B767F1D7F1C1A2C1E71389AB6E42FD0F969CB7FCE517FDD5E8E:\ -913BBA8D3FB9A5A7D58F616A6A921C4644819277965087A7:\ -B637FBB2CC939539 - -5E379056DA626CE62D94AAAC8996988A6840CCB2963CB2EBC79C681F55F8A754\ -0B6C602671856561F0FE623B362CD303EB124359581E3BD0763BB4DB2EE6B71F\ -9C5F747BAD3A3D12618D5A510BB3F8C3AA30F49579B24E88A26C7EDC31F8BE74\ -6D1452583611A01E0364E704B64DAA5C9F5A0CA698A1A24FD2EED1B133042905\ -F28DEF9241F05F7F391A67B29999BC003CE9A488A5DBB111056520F9BF6D612C\ -163B62F4CD122AD9DF51F346F9D4EBBE6FA470ED444DE596ECAF10042FCF06E5\ -FEDC5A6BBBAE01F34FE529279DA999B086669094D97CA5C1F2F7DA853158AA76\ -AD9BA9F64CD920F85E4686158C27EC5F49A07F34B893C5A8F3CE5C2D407D2137\ -12A157DFD0B03DED3BD39B6A79FC81C6875D0E10F4E2E90D337AC0C54120E6F5\ -E5CBA808F824517B7E78254058DA6D8B0FD014160D65188164B76FC928C6CE50\ -FB912F098B943D67CC523C76603D44D256FA0825DD8AEB0937E2533B4FD2881E:\ -97AF2D0FC9B2E50F2C08941BD25CC5AC703F44EC717C3DE880C6459EFD4BB6F6\ -2C9ACF35CD425A68500BDEF9069026944E1F45F4E841615B6961DB2D9D80C31A\ -C4A6160EAC57F09DD1F44E0E3C4FDC5CD38685F0F01F6CC2210F5E83B10A5C9F\ -308FA922DDD7946E1D44208CF6992DA34906CB0AA37D42BC0A4F16B8282C8033\ -6CFEDE8BCFBD5878CC6B0D7810E99D5AE81934EBC338FCE4C03156C86FDAD10F\ -48A10E64DA1FACD9B79DBA7A650BA4B1B7D82D2619D15AAB2D0C9CE8CA361A16\ -244C246AECDAA8C3AA3A90E03CCC1D39FEE72509A3396FE6A8E60A93A534FC22\ -A758B1FA5E0189ED70E88E868C53C95613A9DCBD6D7C3DEC488618A4F4259B91\ -55691C094C4F5B920FCEF09592A7A786D1A28D5B1582519042E8A14477DE6FAB\ -54CD88626B8AE99D3875888932F9C66D7E710DBFDF56BC435F5ACF80003E21B6\ -B1ACFBE3CBB45DB9F36AE2E0B99CD574D11D2E7D007640802CAB0A73DF42844A:\ -E5A12BB39909DFA7BB14C3287A8050A764425C616C5AA1AD:\ -F4B8C64D45C46352 - -0E3633046E8C46E483E0AABD132578BDD9D5CBA67743BCBAF7B4DF08380035DB\ -2FC67A0DD2360C698088C274039EDE20BBC315CA5ABCB31894E620328D11E58F\ -F72DBBC972765C17D7894CAEF1E702BC2273315B799CB60B10E0E56D4E1DFA2F\ -FD7CE1CC42DF14E1418269C539D3FDF23F35D124F6966E982EC4ADBF8D1CA639\ -2C7CA25161EBA77CC54FC7EA02ABB40B40D34086B4BB4A13CCEEC89797F97615\ -8F4C4BD979648C67F3757A29F84C4D8D49C1A066E89AB2EE182430840BE258B6\ -E56948FF0B37EB6AAB0289ED63C71C4FA9594E4EA93D288E4BFFB9DADE004FED\ -BEA3BC3B1CFE8A8D994A3C35508FB635A79ADAA6EDE65E9B674ADB305625104E\ -263F7E4B2D8E9651B820BD74EC718BE43C6AEF4B52C0A1751360F4172D585907\ -AA79EE213F54796686D504B1DFE55DC7CEF59F4B422318BC8670D412D2597E6A\ -1BA6E12AE843ECC64049CCA3967100A0C132E5806AEED14D6CAAA96C951F1AA1\ -C6EF715A:\ -DF660A38FAECF3B338A9480E35AEF4E9D098AB643B1067B9F8D84AE5E4D1CA47\ -1797D326570A993B12949A35314E261E9D59195EF31E352317D2C63BE60FEB56\ -81FC86A447D26E09C8FB5A9CFD83F085536921BFBE6F92F9F9CB274AD0F97117\ -4E970F6B717E5F24686CA068653785697A5D690F4443773900526A780AEBF836\ -C56AE7BDED3E57E4D9A69FE12B0349C2026023D4AAD5808B69097D9AC3CC451A\ -902E95DEDA9E5E0F2426A1E2FF13249F1FCFDA34B4525674AAD772292158FB9F\ -D4A5B522314127CCBF2933382E4A126FFF48205D0F7EA1EF4813C34D5BF2B445\ -6D9565FEA30EDCC30F2D1165B629443C3C5DBE802F5214DD6FE458C745932B58\ -9CDA0813AAA6427C709B46C45D764885854693D9F04B364B308AB6E7EE15394B\ -34899D04E50B5BEDEE9E431C83643EAB7ED6F91180F9D64F334067F5B77AB88D\ -10F1093065BA0C0655E5AB0B88D9F60E20887C1F85CAA902678C177EE67AED87\ -B3B0F1A2:\ -C7A36EACDF6E22781E61F131273155506F778BC0B5DBE974:\ -377210AD91C659B5 - -CD3546634E4EBEBB21CB70D51E0E4ACE02B49928135B71D23616AEAEB26466BE\ -DDED0D8695C997D874355345AC10A9AD6CCB84BC61B9032757CBE2A9DB83B956\ -03D166990DA301671BD4C8385242CE21CE9CFA1F10671BBBC5833A4D013B5A44\ -515120E29E8E777EBDE51F289F8B9C29461E56F77EDEF58D833C7AC5C2B6F2A1\ -D6F7147EDD2D4916C2BBE51076D549BEB7E2D39EC96E8DD7BA14311086A3A8F2\ -8F697BD50E66E7FE51142D318BD6CAFAB3D40D8173AEC1F0C6CF518D40F34640\ -550D8D2B1A4722CAA02FB05FFC11AD77CFA42C83362F084639EDA36CC7B9011B\ -F3BF7A5820D465ADFA42A12E67B01ECF5EEB441BA68B10221F56FB177C21FF61\ -3B4DC732F384644609D9FD963911A6BE6DC3BDC782A0380A3F3CC49BAA540EE3\ -0B0809329AB9F7E9E6AF0D6DA78BEA036507F8B5C360FA12EF10D24567761107\ -C1CE99262FD64A1E11D5089125A8D70FA36A291F0BD7107565B39A421B66591B\ -7C415E10BF33E82C:\ -60C6C6F5FD0D60F2FE85B68151630FB20DB5126FB9B893139BAB6D4ADD721E66\ -B68F5DA7D09760F95DC5374E47C0A604E9C43D06F2C7DBAD6593FC160CB55C81\ -7BAB7A1633325BA3C23A2FE7BA0218408E8FA13AB5F7165879B9C9FBABF56224\ -56A72FA7F4447B8E6BF6096E6ECE793693DAC517E539E81CBA254B73D79851C8\ -F4FF3AF3D97B5237240B33AB538704C6DFB7887DB1EA49DC18057E8E98DCED10\ -D1CDD199EC91552F63D7E0B8270B9E4DC1EC174BD294463F6E2939461BFC8BEF\ -F2900EC92CBAD64B6AC273874A89B8FDEFE4D60B8982934EB9297765CC51380C\ -803AACED9BAE5CD76D08BD4CEE2CB0D1DE2CF00872120BEF37036DDBD3A2BD4E\ -54E26D383EB39C2CAD52437C31191406FC69A59FB1534624640DB35A685FE24B\ -79FDB4C092D3BB2D823C508FEA2CA0E97B1FE431F7C65850A15B153DBE7D4C22\ -CFDF60437B3C9D383278CD814CFB08A4DDC98AB529883FC139270FA32EF14A47\ -C9303DC5BEA28168:\ -465AD62084182C4E4B46F597C49B0EF00F6FF40BC98E03E3:\ -90C4BA4499805CC0 - -C78F74D057C2CD4BDFEF207FA11D425C46B48681194461266EDA582D7811CCC9\ -DC54C5A7038D35938EC37A2C38253B4A0A23B3358DD9E62A2ACDFC8171B9EC53\ -AFE95D45AB21428F00E03F3AF50184E5138B0D69546FBE02D5DDD760CA367EE4\ -C6AD61F94B21B0DF1D9993B8BBE873F77D5C5F868AEC81106ACBCE2E391D84EC\ -2374122C48324CB4731CA41CC715FEBD36BE839DFC22265347439B3272AF6325\ -17DBADBE1A232737703E763CBE5B2873413FE2A04E22282E375981A0D6DDD5CC\ -7E446CE4EB5ED6989A5AD028CB7E0D03499B7D61D8EB85DDC6A53F7A455A77CB\ -0C930B6B7A620A312A7F978BB5AF8791A2F5CB116A000EDB70CA0B47459746D9\ -4958DC0376B7CDA39510CC9658AE927630B635C38837B6BE3ED31935C1B66E69\ -1368054F61F7EC304D7E408387B0DA71FA571B18056E0256BA89167C169993D4\ -5F46FAF8ABFA9921310E262A1FD45DDF62909089848C74269EE8D7AAD250792A\ -403DE8F48B38924BA0266E2F:\ -B4FB5DC3284EBCDBC0104B29B6D110EE04DA689C1C53DDE963BB9820E3792F72\ -797B9CEA9DDFDAE25597D91AEC5C4A8FD9625A3E08B44630092ECC995A7BDDC7\ -ECECD070276153F785F0BFB51FF801FA375B5B0EAB6F4C8577FAB96B33F87729\ -D4F99646B51EF2096FAD2510045A5CDDD525298AA4EDB95DC36F19537E6F9C3B\ -D61DBBC4312B96AA8A53A6328934A526FF6DFE51E6C841D6BD417D307FF1925F\ -C27E701BFCF44372C2FEA7EB66A93FBD70A985D3D4F16417329663DA0EDFFD4D\ -7EB209CE4AA435D24D91616F4DDEE729D1658110BAC4EF271CDE886CB0556F85\ -2E89B0F070A75F41A2B4C19785FC1B2506A6001CC7FF39C0FB2E095B8E3C66D4\ -BA9B2FB6064EA4202F366BBDBC73A5079FB9218ABB11E63CAA1B05F1B3798F45\ -58D270E8616AED4E2B45CC79AB1E2FED02D82F88018B621764D24FC1197B6F65\ -FAD59476A81E1DB2A1A6E0E94B5325208ADF4F9DE15066F4FEABA6524BF2D567\ -B75B8457B1EC8284453370F6:\ -88091BA332085DC1451D98A8E5BFDDC9CABB29D761D3ACAB:\ -E98559E21C907103 - -727AFBEF333BDC8E5D25C882792C12E5829635F89950FD18C8F34F4B1A27F405\ -1270DC484B64AADA5AE9DDDFEB0BB8829844844DC02BE2D305905257815ADDAC\ -34CFEB18571A4D930AF2754F13AFE034831E53F8E4968BB799E9FDE8CF514804\ -A9571261F87467BCE23545D3858145508C81CD91E311FEA8482C03C0BEC7688E\ -AA15BB61474020C14B54B4424D20E4474E886527000DF5B8489C99C8E4D49C69\ -F8D2D1292AEC62CEFB7B4D84D1CB0702DB88B51F709B087C0D5D9581EACE9EB4\ -43D5C6C12AFD8120AD777B233442449C9210E4D69A5D01D663D6CAF1C0DAB7B7\ -62996143DF15D9F1B53B5972E2EF5B042F872BBC0B5BD8447BA1ECBFCD27F759\ -DA6A96C9B0EF0B99059D3894B76EE98781B23FDD52B288305BB48D7D5848F10D\ -CD82B418E63313056039A97B765AC220C1035331F655BF468E868B0C8B1FB3B1\ -0F6D474EBE0E2FCB59A37F3D8E9890596FCF7652CFEF3FC4277C3193226D99E3\ -DCE54CB05A3C90A594092C43F90F2739:\ -18333A60E2C7502E1E12B956277B5166890876617152C075C532269CB3BDC3A3\ -17D92E862FB7F4864B8AE4FC33F04DF6DEEEF266B58298223424732CC70B29BD\ -70967F8661013BCF606109D49C7F69E6A890EF80B3762C32EE76B10004A63093\ -9EC9FB3EF69BA4EF05BE0DE8F1841320584362667DF600FF85465F3F530777D3\ -E2B61A352D700C1A74B6D569A6BACF6A86A278A2B7C2F0F32FF5DB364CABB07B\ -716F39BA658D1C12BDE3D85CDCF7D9CC949DB7827DC3DE0132A4B0127D96076B\ -76770E838436C680B2DFD8FB71D40B2976645DF4B93BBC3FB33C80D60FBBE0CE\ -2DBABA36EC24C350F14C8042F8DADCD410D3642121DB95790898A08847BA9AAB\ -4864D7B77123836AA5781124BA1447CC87DDDB18242311A4FBD21612B1F9B7FE\ -BF831CE1EB068076E0B4CE29313B32EA8260EB0D626CC5C4891D4F42A71CB339\ -935525742EA2058CDE9897F28122F43E229398825DC0B5327875E334A9DF114C\ -AC531B235026C211F81C6DCD6C5C5813:\ -BA14CD753C30AD563AE217A001919404D1201EC9E60A7910:\ -71BF1C99162D23DD - -F28C92127196B168979D38CB588EC92F1E61F31402111A7C87CB1C0811951F06\ -8308247AB6052EE03971FEDA999FA8BEB94C31BA1E82DB9088E1435B631EC040\ -39B53E9222A3BF014AD308CE587AD481486A1270A58CBC2A72F5B975AB81D1A6\ -B0233CD64B20A24769057E163A231DD54E33751E1289398A4532FA2727E8A6AC\ -8BEE48D500C87311084723E6BBDBAF3265333C8D69DE71D6E43B6AE1A4847959\ -91C0C57BD55D5C0B6F05237D9EA41722399C4B7ABA5864F9414D8A7311FE5945\ -FC534745C68576F18A5E6A2F0A435968788894EC6F1430E45E698EFBBB7AA5BD\ -7C4A0FB40938B7C77CFCB2FB27838748DB6EEB356782C393AABD3F5380B556B4\ -786D1C8E01BE5B02E5BF4AD724302436F5E3BA69D5D9C463AB4ADABAA84E2AD9\ -7D2C2329EBF4429CBF4025AF3698430701063743A4AF9FCFCFFA9BE5C2D651FB\ -B9F243B64678A9AA308D2F6B5EDDD9C43810515E7CAD9E8A6ECBDDCFE0325785\ -8D948F1346E7600918731B1ED2AF7CD6343532B7:\ -C26079BD4967EE47AF00242430A6B84A36DCF190DF2808D3E7722ECC684E58E8\ -12F476F357EC5C73770FD5A06940C35E2F89ECD20E39FB931D4E024767F0F88F\ -12FB67885DAA739ABD57891761796B0DCA6CD8BE0CBB4C1C8AB5DC0D9C8EA94A\ -ED98E5F5CFF5BE15936B55ED6CC6D337D27F141E2068059D40D2A393A2FDA709\ -81067FD283945A6E01A90A1D9DC8C25A555F878A46C3F3FE73F895A0D06C877D\ -4FA4125C469BEDE4A38B80C88084028435DACE330E1DA4A2E52EB92F06EF17BD\ -AE79CD492A7A07A8F383EFCD60281E5CE04B14CCFC1F977C63E7286AA690DEDA\ -C273387876B6CDA430836033DEE7D000EEC58078E106395C37C5020F4C2ADDDF\ -0CC7361BB187D5CECA597BF1E0CBF2AD5AC91D4659C315EC039A80307E569355\ -3216519314D9981ED5AF611F2D82DA3A358FD027414B44EFAC31042439C8B4EE\ -3E4C0455769C8640C0CBD752195A0D4B7EBC80CF881C15BD7F41C96EAB2D6A9E\ -5F2EA83B0DD67FD52C6B50A516828059DF50CD40:\ -9BD657917B8CCC9B5279D3117DD99B6B676C983FB92C5E7D:\ -9048DAE814ECB6DB - -7D0F500100462BE796798CD42A5A133BC9128650616B9E72CCE8CB52343FF8CC\ -205F1FD9478C6D8FE84E421C03BFE852806D05A4BCC3645EFAE0D0F357ACDD85\ -E950CB794527092676AD8CB1EAE3E52F8EEAF4EA80A2F94B70F95CD10C42F786\ -7D1F0CE740394CDC9C8E8A4A5841751ECCFB3ECEB635D3E2E050851826E663FC\ -390A16C5A421F9BD71653867272AA649CDC77264F41DFA666087CD5E6DC9CEEC\ -DDF77104E78299B4B4159A7476CF833C2E85106B9706D9AC1538E834270F9E09\ -B05A36F42EC62B4F79CCCBC4CA44ADCEE91DA2231B39F70ED8DC2B47B36FD2A2\ -562934F7349C65278F3F7DCC612DE1B9A0D14478975EB2B9FFA495A82FBFCB52\ -66B5C757856C8EABF1A1C8E5E2049A8DB546C87AB17ED8830B1224A94E1406FA\ -7D5E4CFDF70AF4594297C82B2005C53C08098DAC78EFFCB69CB3B321922A247A\ -E861E87AC0D32EC8274AC771CEC33DEF58AC9EF56A32484AFA10E354AEB72F12\ -7E01138B3C4205AEB6D0DB89BC0BBF38985E74871819458D:\ -8BF353E8349D0711C4A0CE2D2ADE28DD23F9372DCE7FB9EBFB177DA3ACB8BB18\ -A97889538E51FBB8E835D9048066CDF72C65F355137AA7EA30E8945896FEF268\ -CE2F875815EE76F6CC48495D01FE7F8D4E57936133E65212EF4B16013B1BC019\ -72547B4D4DDA809E2E61CFA97300B1B09BC2B08F3E44515F756D3E073180B516\ -064F9C5C5CA7A4C3F6EBC5B9A76953151A8FB1403E64BA82B1308061AFBD5574\ -B90AA7D28A59DE2FB7CFE050E2D6F3384A3405C8EC56BA2D477320C33334184F\ -7C2CE6E2F95B1C465356E0599D88A3B9CADC4FFF6CFD1B0DA788167381A4A291\ -DED18CB3A4A33C289EC637FE574379E55D09807761538E0D80A538513D78D778\ -B4F7AD386E2F5F96CEB5706BC22476D3FE49B907B4C0B6437976919D8C1DF55F\ -CB97F5B142154F4B9F4457058862E583A42B5833732D2332D4809BC61AAC43B6\ -62CCE9FBEECE99D27E6D674C7DD17318E8855425D025A65803FEA4D70D0E294E\ -227DB9D5C8ADACC98A068E6C1770BE4AC94D94B519233168:\ -1FA041BB9AE7CB1FF1080589BC676B2D134181CF5CE95307:\ -BAD8E5E34E447ED9 - -8D29FA50F355F8E9812FD5B1727F14CB3059A1FCC348F0021E0AEA8718EF066A\ -EF2998B6DB2D9B2E0FC25D900B8BD51A577CB08EBB0F8D5420F924947E7951AA\ -CBE6A5778F6F1BE32EBB90D0FF0E68958C485742ED9605476AA7619CD555346A\ -3FBF3594FA73EFBF74670C9766570138D9CCC82A76F8F386E10BEE6021A13C89\ -CED94B919001E050E115356E62F5D7C5E1164AF2AA1A508823B8DE6C628C675E\ -BC2C95BBB5C2DA8E107D2478B453EC4D5E57EF15015DA8B9AED441927B032BB9\ -B4E9F4C8D60FF7FF039AB7339B782FF51E67EAC602C4081CEB86E27FAF5AE452\ -F31BDA99D3AD4BEA0CE6DE369586E4F98ACE39E9A2EA3A9EB9AEDFBC92062723\ -FF93B653CBE6142E3BD3014E589BC2E56226043EC635B6C114626859C59D1070\ -007C69C1B9B46E69B38CB0157FD723DD1B0BDE08F8F09C9279A287538304CC04\ -F8FA528E637F5E152B9953E5A8C10CC1220835F69FB5E33BC2CAB0B7DD625BD1\ -730C1E2C8DA73EBE769146CF98070D5B667939836E5731E31BD57CDC:\ -4E1996018990AFEEB4CAB81B90F1E1545C6D2130ABE4B302FD286840898F9ACE\ -8AA5B9E7B260D4910A4F247197F7320CD253459B7DC631CC65FD6C10092B6620\ -403DA2DBE8B43C8C8EAB90333A10456FE2C53CD753915B5E77015E44F1CF43FB\ -1743E1F29D4B178CA404D823CCFF9DC7B10DFCE1B2A73A0039EB3465C4E88F8A\ -FA02233C3C54BF464D8727481C38653AD6131C351678ECC08AF3683D97898B4A\ -EFBF60472AA3AA6D602F5C276C43DCEE815232199BB71A199382F5ED029389FF\ -2CDDA22B2A8954E91C17CD5D78B0D8FFA0EE627A423EF726F566BE44C81B7011\ -1F3B98F6555EE999FCD37E2010A7F7B497CDCE086F950FBD6705204AADE1F870\ -4C5AB27B769D02B438BD6C9AE66730D4CE7170F456A7C76F1FDBAE8439CDD323\ -0A7CE630F52D2FFDB31C505690BE6C2361A0B6774C758F57486D9014EE857A3B\ -A5BC1D9CBD6B40D24B55907DE5CFE361DF28C3549B5D236F204CEB6CD664B6E1\ -4D1AF0413D03D586C0DA1BBE56A1484DE06C91011956CADA5D2DB68D:\ -9ABCE6D84309211902FF54CDDBBC31BB25193A763DA562A1:\ -C9750AC233CF3FF3 - -F6BCE4F7C6AC3457474D4B5013ECFE114A58F6B85C6B104CB0BCC2389BBDCF5D\ -618441A9C0705488714912B3F6B12A15D3198A3E41760A577020280B7B6137F5\ -707CA945A0E2E0F6C14731DCF9A3179F02AB0AEFF7F054C018BF0C6412C7AFA9\ -1D856EF576C70D6A35F1515367E5899D9647C31ACB9F0EFE2D2A67FB5117CC1E\ -F7609EF69E9C9C3C55BB36002A96EDD2FB7449B5A704EB8DB814EE982CC2C5F9\ -65C38E6B151DA2F586F2140DCBB24AC96F29BB34A3AF1EC8A441EE4C701BC9D0\ -66D2DA71A869D5301FFC426E24812C29A4B1727659136D3B0721F4842D18C350\ -5E2FB31FC88835ECCB6682F9B83BF9A2D4E5D2F42102D80092FECB017E823C1A\ -BD8056D07D254815EE3E96DB094DBCF36561EA49F1AE928362E4C6DA05E71478\ -BB118F27C1CEFEA4F2AC510F3240E50AEE5BCEF9F1422B624AA53099081A9473\ -0FAB191E1CA71A560E61DE365EF3783E212E8FE11A4C9266F8F8F6542C7702B6\ -04488921420DF1E20BD832274A25AC410F86B58BB713B3DA022EF3F62ED2FD93:\ -C9875BC3D4BF3C2DB51911DDAEE617B69E77BBCBE26F307E136DCDA3F396AF93\ -8C12E1AB3892B4F6E1882376DB37192E2354DD269F3B9ACA70FB41991A71E12B\ -F3B0F5FE2D9C290EA1E514CCDFE05567B6DBED2057CD24BA5C218DFB45060279\ -BF466F53E7B72CD0D1904DE6F5C7DD5AD6577BFBF4E31F0B3BEC549456D31B5C\ -392B021831F81703901561047E4055D305BDAE4028D86DA2F69C51CDDAA67D33\ -C9CA14A8C6B169DF04ECF51C3E8BD33DB3A28B1292AEEB582691F4EE6CCCDD52\ -99CE4DCA4A31BD5DC8DFCE32AD19C38CB335B387C8341FE5A039D55652D462A2\ -ECAEBB0E8D3071E8A7F05E515F42DAAE6168FF097ECF99E505847672874D3287\ -738C8C97232B4FBDA9F1D10066C0C597A5796C770AA281417C390847566DF5D7\ -C9B6EB74D28739C3DBD75178B4972B08F090D5CAB0165B8F8FBF321D84BBD178\ -5F1BDC303F950008ADBC15B6752B3CC648AFAB4D5A24A70243F11584D97EAEEB\ -5A02E52EFA110CC9297154E2994078BB9D160341AE68CF52BD4702DE135A8E96:\ -68FC9C0059B999569EEB2258B4E190E97E1F5B35D899873D:\ -97C48E84CE8B42EB - -99003587F17DCD76B0ABCDBAEF378EE36D275EE2AB6DC61889052AA97EE06A8B\ -6B30C10E3936661222CFA985BA181646AA9316962C7CB83D84012C8110B34D0C\ -366064F662964153A2D4332C7BAC76A3E6BA7147BB0014CFE7158A1EBCDD5318\ -5096FA6585306E97555AEC33E2745275D4B00423F8EA4E4BA2CD4F848D3B4D9F\ -0F65023298AF2A855EAB8D60EF35A46C7308AB9CE16FABB20B2212900133E15A\ -D3AE639FF5F81CF212D8204AA09AC7824C6538DFE715B55E0C46DD75C1A48F78\ -86E22CAD48C38FDD3F80E0E159FB2997687F734B56B0C920C34B544EB81D8B19\ -F3CEC5827A0ED9DFCC952827F9A24E35AB6FB199A3B6381D2E7995F6431233FA\ -40CBB6915B5BD853A03E6885B077D8D10191D56E53E4113F1D88D90532ACE444\ -4314D74FEB56C6B2BDD6EF93D7E6B4224487EC068D59B6972F2AAEC5F0488F10\ -1D603A659D80FBE556EEFD0A1780FBAB3163EF1D03689ED3BE2AE1761492F0EE\ -A4DE741978B64C0F45668DC6DC1ACCE3D39875E18EB33DC5D01ED3F6A94C9914\ -982A19AE:\ -D7FCC6158E5B203214E7F2F90BEFED9408BB56569670EB7142F02434ED3BF652\ -112AB4AB32CB7689EDDCBF5C97D3A6F3D7E198C66A05774D1E69428500C24A3C\ -03B9C39F94896CC0FD6BE69E37C6D4244007EB55CB8EA40F0990234EF042A82F\ -A0F8028C7950073DC316850AD928122BEC8D810769AF5E1F35B9A7CA9F16AC46\ -65B8AA7EF70DC7F8FF874BB2240220FB2AE6CB7BD2ECC2E913A7E0C064EDCA49\ -17E588EEA69A13CB0CFEA09F4EDB366D22F6414FEB060C62C75F6DF41F4742ED\ -5F204343B39ACB58E115CAD56D2666D870BCE34B0A7796309C8583897FF62512\ -8E2DD5D7B98980EC06B086CAA4F3B6D4E4C2739E341016B58488103BB298CFE6\ -0D0F29A75E77E22D869F22BDBA2AD9EBBE96AEAFEB73C1EA50116248891151A4\ -EE6BA9C9A081D391F4D763DA00F14DDBF1E15C41D87009C6F313931BFFE51633\ -7C43C8A11F957B2954ED68F34B385FBF46AA8D200ED5DEBA8531F125FF2EF2A7\ -D94A661BC1D89A8E9A1A9BFE715A3D95F117547E91E175857F95BB83CC49DFB8\ -60120A74:\ -606807F4D893898C22936B09472EA44C4D86A8F22A863F23:\ -1EEF5BFFF8F70233 - -4AFB9076339A137B25D7D07486C971A75E66C024A563FB24DD9E89E0B5CE1278\ -C2CB378621E173AE9C667CBFA8FD7AA6B8497CBCECDEA7BE4041D192FC61B431\ -1923264246E2AC8285761D32FACBC520B0A2C7F0D6984325BD51604FDF0DB5FF\ -B1DBBE903C43A25728C5EB7EB98ED51784FB66A12D04DEC4514F8E7DFF5C87E9\ -9832192DC7BA3D429EB116426C0640F6BF82ACE1ACE11B5ED96C88A320EE5C29\ -CF5C6956CAA8C2A90854A2A467FE471E2D1968FA88241E1F130BDFD1695D8CEC\ -1B93803A3DC37824DBF9BE5685A35A33BFD60F099E10E6A5393001CE7C45D5AB\ -369DDF162BF602F7462106681204C7D52585176A20010A0D5C2C23514AD5DDF0\ -A6C4E5899B189376AC53C5CC2B7A87AEB8A3248A8514EF044FE4E6185AC96B55\ -F6E88A40912ECCA21EA1EC328D7CA3F0FE5963B1B7A73A2800181943151BBE39\ -161EAE78BBFA3397331549E7184EB04B34F35B6ADEAC72C196FCBA68F98FFD50\ -2B62964C805CDB34DDD4E57DDBA1D6AAE8006679A9DC8B0594C5B76C14E25177\ -D874EE25ACCA9191:\ -CF532173EECA015F6AABDA36A4311A11BFBA0E31F82FED5FF503C5910F3755AC\ -5A41D34E7C546AF0175CE1C9C43F78E14067359222868275F142D8967308B5C5\ -2274E2C223162356F83228522DBE91E45DAE0B41DA640ADADF73D9BB1B167486\ -26418072A4E9E952CB60D746C4BE433B185BE7572CABD8378B47DAE8D0A68D70\ -43CCCAA4D6671FF25FF1EA737FFA5D40EE6C4580F016E6FAE1DE15D421D3FDA7\ -EEBE50096E70291E5773C04F38125D28E55DAD0ACEA9F8092519F1B27B384527\ -ED7E4F530D77FB2AB4A17044B64D7040DF6E31221EA3C8E0450CC247C0D3D8F4\ -25587B0816195C090B4F9E5E5FFB06533713B52A7FB24A1422B43BA970183082\ -FA416D0B25A0F5B27348300241B97743DCCFB7A1A8AAD8DA837312FC078D5431\ -EFE3AC24CB8570A76A0A9FAF84687A83DF24E88CA3BBF15A375A3057AA60145D\ -2A622A9061FD1A714CBD0BE8720F1BCA985F6E77652152E3D3B62DB9E0AD8564\ -457312427014AAD9CB60CE37CD5F576DD6C6BBC60E53F4676210AF86BB20BB20\ -B03462CE1FD5C726:\ -9F53C60932FB8AF55FEEAF79B451A18867199258BB881CD0:\ -75B68C251C5B0DEC - -D92EEA40EEFFB04585F6ED202DBC5D660EEC1BAA52E2968A8CEF6EA2C03B7176\ -793E3FB4A59CF61E29AD72CC90EC049860FED7C0BB07F1EAE0DF101C41ABE8B8\ -CB5AFC63BBD98D5E84CAD4682E03FB0735C7AA0E4DFC105F12EA3F9B4C799D27\ -47576249841C2EAA26B232FC8047BC2F972EF0FEC0C70B5C41824E8F9D43E8A4\ -B1ECDDBA69826BF99384D3CDF75A6A137199DDA67BA48C223214AFB844244755\ -F0E560933F76D154E2B9659D5904F9867E37B5045D5E0E5D64E6E23EEADAE96E\ -0815ECCB1BE57E56FB49EE7AC399478A62335986AA94BDE631937310C9589B93\ -300A94B10598478732A65EEEAE87243B5111D854C4D11F6FBA956D96FFCC5286\ -FB1197A4C374B1B21B21767D6FB5DE19B351A6917E8A08151DC184149EE46214\ -90E4723A2D203787BADB7D721602D00C0FDB429368E3A2B4436528A14EA0A138\ -29367D91F75F156CE2A777DABEAD8E723CE2BDD8BE6B00468052ECE459C47181\ -E51368BDA4878DBE034445CA2BBF210CDABDA7D681B1949B21750B5A4C904483\ -7DF2D75D0E20D7F9BDE01035:\ -792E449C773073AC251764612F18A018CEC05E08663B55E3AC25E21078D53865\ -B20D4215DCFA3B0550805CB7652954560B8262441586701EC27E7EC79A59D9A6\ -903ADCA809DB48F2054C92096C685E50B5F42118F0DC133B9FB94CD3DAED452C\ -C592C25C30253CBEDD8498A911F214E07B956A074B9E36B3A263C6A156FC3383\ -6850014D49BD618E0F0CA52E30E1B628B4E3F7C7D68AC98B37DC54E6A2E7C304\ -72EFC0EE3E032BECFE660B50B88CDB968E220CF067122355263595BEE9819528\ -D558D06A04B55255899F0A3A704DFDFF4D49789FE55CD1EE96594AB571EB06A2\ -687277396847B14DC9CDB9262F808C2593A1124C7C473DEE26BC0880C26B267F\ -CA7A6F0D9810A2EAE7E412DBF804E4B3A543500100154FD58AD42509DE3F495F\ -D11593E9A7762AE20D0D25A2E3367A028E6224658F042ACDA555EF61E2AA03C8\ -B28FABC26BFE099897179645213A317FA2A01889B5A0E73185C0D902823B5588\ -78CC2C6B49F54D992A00BCB1E0FE975C04CC2A6257C9C21B4C34390D16CB6BD8\ -05E1DFCF337B485F66C56B47:\ -E5364A9AAF1931704A704A65B9836806DBF218AEDC852176:\ -5BDF21C0893E2C63 - -5E49C42B83923D159A0302BC310DC0552AD04CEE3563193EE8614EFC6382AA8C\ -86EF1376091C86AD82C7C98F6C034014A3037FA9451676B1C0FACD4CEC91785B\ -1D437305384241E8C7B5E479220150F9E1A48C3E045477273FE224E541C32937\ -4EAE0680CE64C6A370A9512104D7CED78E9F2A6C478BE0172825C1EE8266AD51\ -955756B55E409FC1014A6A6D838C6D66DB24C763EFFD5341F8ACCD6CBBB4F1BE\ -7965110E999D83EF873A5D77F531A059AD3E994FA1C62C1F05F97DCCA1C2B092\ -8E554452B83662076EB317300687665169484452ED3533728F331295E27E0CEE\ -E0EA20C9A37941342EF92C40EAD23BA35CCC052DD02D2E1E230232A8DCB796F8\ -A4EE5EBDFD51017CD22EB1CC247FD4AC0CFDC0B69FF8D59BF72103D7D1B12325\ -47ECCB1D6EA34AD1D0D037077AE6C43AB42F5041E692947CA3A58584E2875573\ -221F4075CDE145A4B07C50C7539866125B8B733E01342C10C9A9E1B6315827AD\ -312B9EE7ABE4981D4FBBC4CD6F744B071F011337D7653B6C43D93C6EA56586C4\ -0184DC2BE1E88C9DAAFEADC3E3A7A737:\ -48AFF615CCFF3B8F3A18154CADDB269F067DD85D0EF412A7880AE3E464EB9BE1\ -567BBCBB4BF07A975C1305B9111A6D45F899A8935A2B8B90AB40C9B8CF1FA0E7\ -4ED5CF56B654CE9D87228607AC87A8AC1B7EEB79FD83246D7BC5FAC28D26E735\ -400E2F6F5EFD7F729E7A6CE9A99ECEFEE04ED6020133B4DACCDE0756E5F3C150\ -8DE68BCECAFFEF5C30AAB454AF870049279C73E32B4072A0A037FD5C8B870888\ -9BFA7F89EDEC41A2AF01A01C9E3DD845F88B7754F4A5E7A2C110E3E617B75D2A\ -612525EFD62C63252E812A109E1BBBDEE5EDAF9FB8507D97FE0A13725BD7B79E\ -A0F1632755379FB00A6424CDB8D236F796870420610A4E0CDE1CB5A13AB14DC1\ -20CE241A33F56719FFAA73876EB855D5C25454F64B0E4BC57092D1D8C8285F73\ -CB077F1BAEEFC400DEE87EECC7C848652080E99274615874551B64B1CC2B3D0E\ -F3FD4ABFC18C5DA95A61D7D3706AB735B4B9066CEE2887C2A714CE8115B8F91D\ -7E01728EB68FBC0D7D632126C460870BE823F5C64399F3CE9E9D9FACD01799B4\ -5E0A2278F693C7A2C9F44B4AFFB74D2C:\ -481FA65B4DDAF7FE670D87EFA173834D41230B31AA3E8820:\ -AF5B5455F64B539C - -53BEAD5B17B878F07921F079761EF7A267D540BC5731BFDC201F1A454CF465AD\ -CA5B1760529A340F8D5D6461A094F20D3F79519496A649A70E5305F6A9CEE0B9\ -E6D6C7B1E7809A0D816A0ADB7B5BC992C2532BF94E21A3C2D2A350D8C5095D80\ -29AC899D53EFBF4C0B35AD7CCCC0CC5BD6C9C40D2867DC7CCFEF12078F3A5E62\ -4DA10B7FED2941A18401BE5EA2CBB17311E0FDBB9E3F0F46F3D1A83AB98F2614\ -1E2D8BF6F561AF5CE0CEAD369601C1E4C05387037AC53B9F2ABE6CB1F5581B04\ -DA79AB513F477F79CA7AC824B18ACE5A62AB112B3743FB9D811A730D1B3F9B68\ -208E7EC9AC7ACD233B4B70C134F3B297C4633E5CE00D22471AC88BF451604920\ -E6AD152EB2A49E7FC6AF77B29599163B01AC3AE64ED55C25BB73F4508F183726\ -C1260A6E8D6879F03450F06141BE1C892432EFEFCC8A71235288DF37B541C81A\ -8B8C2161DA0069DC12251A3BD988E2DAF48243F2BC81A8AA97988D7907AD4A5E\ -655557528A8A0E3B3338E26D0CFFE7C793332D2D0FFA2370CFB920E4B54762E8\ -AB8933048F2B528E898168F589C564FEADA4004F:\ -6B03D9D299ACC9DBF19DA4A032451BF8C400AD001E8614F93F398EB776A67F4D\ -8AF32224E92FAEF35D5D014210FD48BBCD0EDA63CD638B12D72CC921AE20F3B2\ -4DDEC670146B70E7CD40A309E877C53BC8B5D22BCEB757CD7E25B2062D5AD73D\ -2EA7B3C19377251820169B9CC87A787D5C6D27D1019A8E2E3B866C2191FA9103\ -9D9F0C0F35240B07357F0F857E0E8DE2CACC6313CC92B43B07A3757A2118119E\ -B056BA612F1306CB4F7BA10BBD0CD56850D1FA0A48716C86CEC9ED1F88B4E1FE\ -4B7E8CE6EA6BEA15FCC5858AA4FEAB8E66404E78F3E05432A0C8D6F6780EA94F\ -5756CC158AE4669B503C3B2E6325CF18CD356D04790BCA44C71F83127BCA0342\ -C22DF8FF89CEB6F81014DCD8EB344909CAF91251A76736CBED0E6700B0BE765D\ -293BAF3C6C039047363570DB741254DB1B221B8365753FB12E48B3D140D4CF3E\ -FA0FEEFD79DE5D7FBAB5280E8477C6C24EDC716EFF11FD71BECC21FFE7DB6E78\ -273D24DCC1939C42D2E5C4DE6C3A3ED5B09C2277939B756B5B6B3B1EAAAA75BF\ -2F23DF5DB4E97333FBB577F138F0DD71159AD509:\ -272814882601F9E7EEBD53044D05E3BFE735AF7DA5B4EF13:\ -55A3447CF08BB668 - -72B4A89C778C8A7D348E3B4447228E65E058AABDA94C50DD11B24954B9F27362\ -C11A9432CB32F1E2F9287CD4FE1DED54F83FF0D7BAB4960AA968F6D0A75685F6\ -51625E0064E939AD176CB40837D30209A2FBE85497FD26CC42ADE9B402C2E026\ -87CA259BA33DF4818979C9157E2F236968470F784C8DB4F2D1FCB38D4318706A\ -924ABE15FA31DF55F8DBD0B5FEE7A5B75C25B1000462BFF375231696CCB5D855\ -D8B6AF465254DC6DFADD78875023A027228E26286E803841175EE291129FFBB2\ -45E38C594A40463FFAAF2E39ECB165454EBEACAEDAFF9136E602E81AAFA02341\ -2056F307B02EB8F519610DDD864989C72EFCE631CB7405D28AB6EE6F641C3C40\ -F90D94DC3804D3400DF8F3700390B2D969D644C129570FF262397DF481CA5DAE\ -F635AE4E01BDC9A5DCE8404BED7730B529D77C5AB5ECAC912F8FCEF8CEFE7FA6\ -7A8F201D5598988A15DC385398D8268E93E4105969217CA8DCD3DDFADEB68AC2\ -F0B180792B8AA90BAECE7175EDB481D182E83A19EFD7A751DA5989419A28E6D3\ -720585D1F6E1A1662E44D0D786E1860E7B2BAA1F0CF6C243:\ -7F647B760303C695184EB427CF072D2CBE168C00CF8AC8BD67CB75B085503173\ -FD86208FDA2D1C24AE647B868E876FB473A399B4A6450D8A6B3EF30353B4D65D\ -3BC08625E965D35CFFC7BF1B362C9E01ADA3158A73E44F50DEEBE8C9EFD8EDB4\ -ACD8FC282902D805E1DA403BE81358E5152CAE7477BCD0249D81D5978DF90CBA\ -F6A6D34036A083A9A0B32967C192A3D19A42729B9DEBD767785F7A272A2848AF\ -D38FDF5FAC11FE4CD9139541F7152CA2AF440CD1DDE5F69CDFD5EC5436573298\ -D73BA1E76A4EFC03733657020A09C69877B2A4F2E4C697183F142FBC78922282\ -B4457B3501AE47325AE346CBCD8127459F365CFC2D407EDE24143E1CC3D2D0A1\ -99C40E1EA45F49E6B21C10B36C59816979EB18EBEA2285321C3B070173A332A5\ -85345ED422A944221F8BD6AD78674DA56A047BB3406AC25B9298D2AB518CD51F\ -236C3493B244E231F82EE92CFED77BB141211C4722C5456904B11851CE383E2D\ -2588179FC058E860695FACD6F876A2EE98C85A5059A3681F136DBD439C874C86\ -7E429FF582261E8E189DE58A3B1B69B45D8EEA8AFECABB9B:\ -9A35761DC115FC9DE294CBB241A2707F0E3734E8539E605E:\ -7FA6D62960F072F1 - -88AF6C82AD45DE6C23B0480DC8D4EF4DC9CF75C5D856FA942225C9BECAAAED90\ -F0ECB9634D5D19A0BF176FFA63BD67F3F6A177F21035A788E0664E8413BA55B8\ -D8470F940F356D6C7E1D1614F0B8D4E25C6C079089FE655E5C9DA7703B37A581\ -C00B2CE6E049577887C3871D40885B9B075D29F2D92CC9306B6F0B7E673A64C9\ -B1444BE371FB1584D894A740B3DD27DD43CEE1BC5B905F42EB6B3B1DA8D47F10\ -8F322A2CD1508ECF305E348129EB4494DF9ABC135D02748B1514A54033DAE13D\ -DB6969DA9B936D7946FCB0317EB71C2339C2B916E0311C83CD0DDD132CFD9D9E\ -7B29A552C899A832CCBEDFE8469863F11B4DA6D916CB15DB06766A95BA19EC5E\ -790F4959FE647D995A254EF52D1811525EC326583D1CED2983F19232746C0FEF\ -937C4A144E18619B62C28BAB3376810ACF2604D85E7DE879A3D5F80684A7CEED\ -448886226F894F536943EF7354EDBAB0CD789AE1B009297364BDAB0DDF265349\ -F47FC6A72CA1FFB2322BDB23A2D084BF07AD839FC1711AF0F551ED7428D0192E\ -50F69DD1E728DE81ACB71D566726CC6D3A878320C4CBEE936C19DC89:\ -748365BF0EB638BF7C3DE839631A62978A76C3015A93E582AA139D867A5FAAFB\ -10B6CADDB5CBF08991793D806F7D05B17F80449873087333CAD4DCD0DE97194D\ -55BA20CCEAFAC03BF2C310E38CBA00EA2305E7352316710D781261BC76B8272C\ -E8249B2456EA225FACD6BF93E255D68A8B38D062D6CB471D52C6BD4A30653BAA\ -EDBC7A7EB62C93CE94527860540A741F7AC884715E713187648801229803CF78\ -ADC5DF414B85C44B92E35845AF7AB2B474B8E2B983FB17BE603AAA050EF962FE\ -2DCB1BFCF094144BFA0851FFE53BCFCA33458287D2CA8D361809C56A99B3513E\ -2F415414462C93C0AA07F0664B5116DDE47A13FD085500FB29AED78AB1713C04\ -C3644DDF1503CE5A070154F18B601D3127A273F370405ABE1083CD8C6EBB97F5\ -D71A5699F18DFF8B5B96D1FD02EB83C151D86A483C2BB1B9F846DA47B48D7345\ -EB7318836AB1EB702F05B1E8F552ED990B8B1FB23A134003C33A83240FEECEB9\ -A9E16FD1B5EA15377577B41701299D0130C6DBB41AEAC395EC06C241D40C541E\ -E1D7192C39880FBEF4D190BABB216769CC75A73E12E0BB31BB4560CD:\ -46115B745C8196BF3E7B2EE39F9B660F4FA9213328B06AD6:\ -32DB4603B9CE7B8D - -880CB4AAA5E49F2E67301B8105C7C42E4C3A021067E37A9984F33E82850BD04C\ -C6D7948257D1B07264D3CBB5FE31AAACB30779859AC5075B9475D3B6C76B4D5F\ -E910E6BAA050F5E45C9253FB667F557FF6C7F3E56FD94EB5D3DDE72076935F61\ -9326BD3FC98FEB8BA62788796A1E8DD5738528B053C579F4FCDEC7913C919A88\ -4991692A94C12CA498E96012FE10732C30410E32943BD5960F560B31A19C4C88\ -BB868EB058B788AB5295D0F9B98C5AF21A4DE533368724F17A01D955212AA33A\ -6B96A081085F9FA3BBAAC39C88E55C851D72C24B96B7A3CB574DE516A2A6923F\ -3A17B7E896D5BFEE8E19FD0D1F73073C087890FFE0F2B0481F9FB454201ADCB0\ -AA1DC04484EA5DB2EB10175DA8E2C003D6700D0FE3F2C8559BFD52E89295FBBE\ -3BB2BDE1FBD452674F5A9ED11FE5E11B855D2770CC9EF058F173E64BD8282CCB\ -FA82451294ABE4B65F36AE2123F9EBC46AAD5FD70C1DCC9BC5896D8C701BD206\ -3C41C161FD8B7327D01003CB4F62832531DB9A964A10F0FC3D99138F138DE21D\ -F19D5B7A983ADC46D8BB6C7978BA5344029B7CFD9DF6C6F971791A12758A3194:\ -33175826628CEB8736FF891D93230BCA418002DD41AE0DCCA373E2E21C6D8A65\ -217A1435E18C9F6B854E8C8D37EF0EFBB6997216B5E7D65FE162749801322BBB\ -71AEEBEFDB066EAB2F03D80B9B82B648056EFA7D44D2AD3539D3C651316B83E2\ -1F2306E92F47DF77AA3D47E83E92F0C754DFEAEA6261241E5F2E916E8FFB09F8\ -8A22B47BAF07DA26C0B6A0DA63EAD82643E13DA28924F697FDEF14678465EAF3\ -ECF0DC9C43EC776C098B3434921679468BBF56890CF1AACF7F5A1347B2F27B73\ -B40AA13A060D02DF6748BB84E9ED73746FC30C6D2E5A70A61CEE51870060118A\ -06A3439522DCAE983DAD0F4B64FACA697ECB4ABFA57E9CE9FE4BF69DD67F2AB0\ -FAB9FE5A8E54E4E2E165DE9B400FB6FAF23C624528FEE78F13FE8808EF84D100\ -BE45C538EED4A291A2A615E6121BE2A9A37F79E73F3C3CBA7D38FF19104412E2\ -159BB93D07F1A125CB1669B351E5968FAE2B6BA0C201586C3270278C7C4398EC\ -88372B7C23E7CEBF3E8CF0C6A3F6852BCCC1D9DFB09A25FF0457467736F3EE82\ -4CA555C7DADFBD00DD27B30E8DE7D3A2E1ACA8E5ECFF75F7BEDA63C70F5E57EC:\ -D781238EDFE368CC4C03919FA36A22D58A732B8817486A6A:\ -348A67FB90EBE157 - -D184A02AF2E0E10A69A92C047726FF67AE431138668821856BC352973AF3BFBB\ -DBD33C7E822F47BBB6AED6B8D3C11DD18667E901625AAFD8A0F4605AC16322F8\ -2FDC90915674A5ADCF3BE6E1D9198D177282E6B09439428654F4B37082CDF2F1\ -651B2478892F2D8AB303E3A20A23E8EF90DC588AD3E36B26142F481ED9E8A922\ -EA4E8C1D599F11C87B8FDC197ABFA65C7B7F386CA77110FCBF66AD97EC1C5204\ -453CC156701D31A03B83A453CCDCC2B646DBA2F5A1D8EADD7F805A890FF5DE96\ -40DF414D3AF314D32D2EE33FD81DCF70BD775ED277A4B369EE45B3760BE8B637\ -138A1A747ADB52A5B196253612F969E9D417FA7D38DCA78D3E96E130965303A7\ -FBC7E090AB8D7AF28D7C386C76F5553A9ABD2F8DDEECC3E4A4D1B1E187A05E77\ -4980D9A69C4653B28FECCE1698576875ABC5289223483B2759790A6F7A964E20\ -7D058A5893E6D89A623E1C09C5CBA52C5BC3AB5A3098AE3F704B69A8D20D75DE\ -005C3F784787CA6C064CC03E4659C6BB7F4AE3C5D8DAE12DD3B94F8F462A636A\ -8247530A46DA3F1FA4478CFF03CF08780B50FE8572C3FFAC044E0E71231D4382\ -D4F31FC4:\ -7F4660F693F8C07345BBD6E74EF3203FF8B653E48E6735679DDEA31C052E73D8\ -616493FE2D601976823EF96C7AA411BABC632EF5DC6C3BADA97655AB3FF3ADC1\ -4A452573E51562AC3E85732150B20671028E64E0C9D938E398968C821C1BFEBF\ -5874AA628D6203C95566A98114FBD1C3D5C17238B8E1255BC02885633CC4B6DD\ -824AFF1B1E7C39990EE2E513A8F3B29490B6E46F0FCA78E7B91F9DFE1D87611E\ -95FCEDB64F64B4A0B95E001DB55769F23D0D5DFA929FBF0942CCB615D6A8A45D\ -7ABE6FF2C5E02BC158983600A04141A63A3575CE14B124738A4671262C75EBBC\ -5594727FC78569F7D83B4FA28E79CADF80942C0F8093473C09C23E0035B3F821\ -736175282F801DC82BA2CA6441B7CD49945FD9DC6539AA9BD15EE203298FA639\ -A34BE1631E724EB320A0FC215D71631F574B2F822ECDC8AD59EDE641DE94DE18\ -0037BB815D0D667088BEADC0C3EC88C075C9BD2BCECB8BC4CFADC5DAE8A1CCC4\ -131ED582599DF4BA9E72F9D0F103B8D8909AA5B9D0C3C14B4B85C801C864AC0C\ -DB39AF01F3E9BA0390CB744DB2976FC8541F7D46284B6698B4BA80A22F0E8A5A\ -796D034B:\ -CE99B2DAEB8D8D838770CD20797B92E9FEE44BC7E613FE26:\ -58EDDF8F4961EB95 - -C1E31324A12D13EEAE38DB3EB0B8ADA43A1AE6CA8B85ADE8574E0D21699A1720\ -24989014AD40763A5D91EE0FD0072BB253E7B9A7D12AE6ED40394FAC153E781C\ -7520CB682291B87C83CE0C1D6A16CBCB890891381E204D9CF9F54FAEA53BD70D\ -1AAD34A837B6208F848890C9C94ADD13E81C730C88835EFA0620EB9B3D714F20\ -CB5C7DAA0822062756748A8B601ED55A265DA8273EA5A3EF7AF27E15EE6002AF\ -65C6AC12B55890C3AF1EB6853503B6499FC3446DBAF92B77A98439CEFABE2DDB\ -72A6C077A94FFEC2ABDC91B1FE9DFDEAF49F58F6AB4E42036BF5A027086E57E7\ -6B67713ED090AA9D85402027D84632355606FC82B07B4F966CBED0FBB5937E88\ -59DB8E5AD58DC2BFFA7641D5E22A537D7C3B5C9F57BBE95D56CF68E3E0748D1C\ -CC0468D7E7AC1941B76D49BC957969B6ED6A28FDA9CF75834CC4747FA8908392\ -A2E82A9AE352B41DB44161616B35139B4CD42EDD31162B114C604ABAE5843B21\ -79AA0B617752468EE97398D1ACE2172FA68BF1C1D44EEEDB676D15789519DBE4\ -18D7ACC69314032E21E7316DAC522970B5F0EFAD2B1C9AF99A376FE9F7AE45E4\ -314A3CF728017C39:\ -EB31D4353BBFD4AB9F2AAD58E69B17992B8FC696BD0D1991443A51589F31D420\ -88D706B4D8E66846596FB317E3A3EF9A7D8CD97540B8A0421D9C8EBBBAB66CED\ -4FF8C57D95E330543F4FD0B80C9223C2D549D08C944923E48FAB6C087A052E56\ -842FA8E82F6A3F73C79DBED3CC018AD14F2896AADA099E7E8F3F864F0D004782\ -D7DF3D27B742FBEAB6657AEDF1FB467B014EC47F279EA04C02025A0F8D92BCC5\ -CF3C554183B58CC4C892613CFBD85D5AC1EFFB4A329DEA31BE1526E7597E4CC4\ -B8FCD8846F41605B9A65770CCDB6B4BD56BDC78BCAE87AC7DF34AB059587C5C3\ -5E2DD2592347220645FE3E1FCAA5809723340492286169292D4C0CB37ACB5B0E\ -119E0BB74C37900EBADFB433294686D7621A21DBBC8B3BE8BF0084E742C3BCC0\ -0580A847BDB76E47D05C46520438A831257F16EEFBFAAC29EFCFB661A3858EF8\ -44EBF3015C5E86B804BE3915FE70FA4085F4879F96D0DE84CD2D34D20DB39246\ -2CA346E35CF9B8A12B7C2B01613528940EBF6B7A46BC015E34A443FA95A2AB66\ -A8426D25BB4BEAEED5859A510F3C302312C8B29C8320B33DA38AC5F81AD0D3E7\ -D7882548E91309A6:\ -BE52BE195399CB2F2D84BB2C791573504C3C08DDB5430C12:\ -48E24F3FF595F760 - -5F1A8C0633F3404E9AB98D9E9D94030127CB19A98AFD74F0ADB29AEA593F88D0\ -1B427A871C1ACD6DA823CA06A7B4EBDFDF5B44C1D63D79FC2E42C4395AB01D75\ -D20314ED6710355BE34E273CAD52B09DCBB33780932FD34640B8F0E92ED4032E\ -2E60CD5E07CD7CB1FA3FA0C2A1D979D48195424E3FDC234C9469D8EB61A42DE5\ -FBD467C58899AE2EB9934AD2D2AE36366C2B0CF79F4DC588BCC6FBAB22F826F0\ -C528BCE766FF96B886749480489BBA399D26E1ADADDECBE0EBF8B560E25288FB\ -4D43DA676DCFF245AB8FAFFE9AC32BF57FEA4512F73E52F2B05C726DCA64D987\ -0E26CE296A3FF506478D88899D70E368A312420133205FFDB819CA71C56378F2\ -DC1AD4C57E67ED057D15A0DF21B5EC609E2636C88FF135544D13E7F68D59EAFF\ -1FD71BBCBD1AD20095708B672D07BDFB559301B8E26F94DC7DD5C85FB6F238B3\ -098B8293CAFF217BB1172E03948A53FBF1EA6382E46C24A2BBFF3B21973B9D09\ -E5FA2E24ECFCE4920C864DA539CB95FCB9F095357F2547EE9DA85D0793B3EE9B\ -B75E0FE66F27F9FCEC51911B037478F1722D98229AEB5C1A80109777F3D9B5C8\ -E3A3FC24A9CB654F9B3A1206:\ -DBF587B0D739DCCEE53F1534BDD606AD25597E238CFC584242E8D04D01366761\ -903052598AC508827D580A3ECF55FFCED31E33AD9010185F9851090D7EBC71C9\ -5DFDA4F7A1BB0F5B62D889CE9E8B086BD94CDFF73BD8C83EDB67380954911448\ -86A23A3846040FEAC5FCFA226951D32AF26851BE06609CBC2C983E6F510AC6D7\ -8EC94BF17AC64BA345580BDA6DC7373C487B1A2942CC0DB6231C847B3B33191F\ -A65A28E9C2DD5BA26C0F5C937EE8D61612E88661FF9F75EAE5412FB83E21D2B6\ -843DC810624736D474075D43A6BC30F2905462BE2CDC792D436F41A5B28A1E86\ -0F24ED4C163BFD3140029D39E78FAB3EA2428399F200A2FC03BA333B313F8B81\ -DA0A091EB27C6FBCA677C86E8E7D80FA52341C1AC478F93B9E2757322E1CB09B\ -1F784DEFD5F2C9F3D91D5A99E04CCF81760D0EB3D6D47E73363C1C912720F56C\ -F2FD9B3EB2C35D81E6B5D98A64B9ED907D09FD82CD2003ABDA05FCD89C460F2F\ -BE0CFDB7B915CC4061B6380142243DF57F2DB475253CF4205B8704EE664C9ABD\ -16CAA305F374837E2383D90B9DC40B71CA26F62983B5F3EC67A4AAA5B10137F7\ -6FCFBF40CA6F4C0547FF27C0:\ -7D0E35629102D2B43C05955BEBDC1149EA841DEF772A9236:\ -A62D0287246F56B8 - -7E20C76A0F6423C7B91237BA3146DA58C3A8FE3DDCC3929FA2DA53C7796EEB1A\ -763FF3E4D04CA218A0A2B0E4179BD20E75C847A20A8D1AFBC73947AE49F115D4\ -0A10FEDEBC814649FF46BD240D7ABA37E99FEA9EA531D6D9E796F29C551FF70A\ -D7534FAFF4F4ACD9F97437BE5D99D8216593B4EB4D5E0FE44E0725BB9D8B2516\ -A40862E67376FBA7D38A54F10E75A3D167BF5A0DBC39EA533CA0BD9348AD737B\ -F38FD4839F8FE6C49B50CCA89F035F02533B909861222FC6E69CEF8241C5A098\ -C9D35390BD757100B62643F1E406043F36AAA218FBED89808D07F8E98BE073B6\ -C5BE89B067DCA4AE7C711F66AB32B55E07A5A413B45AB978EA8B43AC0FC2F49C\ -A6C99322E99746EA2F5F6405A5EA22B66BDE570646F15E344B431558943BAF70\ -07DD1D3B466BEBE184F71D7C781FC6BDFD6A46788992786AE84FDD6A99FC6FA0\ -B32AAA2151534529752F319EF3F844612CDFACC3CD9BDEC29EE60667F36B4CD4\ -369CFA3831967D1619194CFE30024692CF8BCD298FC88F589412BABB55620923\ -F7C144FE0E81D3504DB4C2327F5739A698D52AA0212335AFBE7FBDB336DB943E\ -25AAD75B15B4CDC83E11FDD5F95E15F1:\ -5184FEDDACBC6FF99A0045F9F6D79B29A1C983E197890FCE048F1F2E112A04D3\ -D57C0CA49CC3F76ACC4A12A032E8E292AFECBE9E1D5EDA0747951232B085F466\ -FBB2D7237814B84B69ED5A9D93D8265DE6B8D86FFBC8F3E21013053CC6504144\ -489B7C119CF123DE78964280AE78D2A3B6898BF4C4F6B0AFD47FE8E02ABEC796\ -4B1FDC64EB7B4E4E738BF4805480D92201337E6E9FB7E6F1F3AA668FEB5F449A\ -BDD8E7B8039AC207A0B0A35B7CCFEBB13DD3BD450B2C43BDA09827A9A8692589\ -93BC14E58D4E53BE3DA2E4147DAC7CD5F950C3B14DF18E4C7B3B0CF3637D1EE9\ -8B38215736EFEDFA3DD21738A3D5AE9992E40D4D64DF376039CE58EC9500BF21\ -A8AFC81D13178958C65820B725A3B600FEC7B3A60799545CC8AD417DAF3A7049\ -A8D45047BD03A21A4BFB630F16690540CB77B676CAE494A17247AC715B7D273F\ -89C440944D8E0D741C17FB82F6A9A1C1020826BAF8212D34288F70BB50657356\ -236BC0E9D75DBB86AF0A4564D7E2663FC050FA971D152EC2A1ACD627885828AE\ -BB1780DB1264C4C00BE0E0711D871117A8080B2F16E44F63AE20E02F1522FC43\ -F2DB7FE71A1F869406F8ECC92DE89E74:\ -A1693B445C656AC857AE865C2F146522A6F1C7026637CB10:\ -FF32D0FA13F4B46A - -D5EFC2B4655D791EF70A683983F9A50BCA04535422BDE57B803378854522FE5C\ -052672D4C98C2AA6EBB1FD0B60D2A2279A9EE8D369A375C4307DAE948768C309\ -DAD74AFB5BC442BEC942B4E18B4009DFEB9B74C37A2D5AF18A1A6FFA5133DA3B\ -1FE97E9714158ED411E047EC6328D8A082A3C04FA058A89BDF8ECCFE7E5E9C19\ -2E8B7089FDEA66F25B75D8BA9EBDC98ADBFE50716DD58D65DA2B0E3CEBCA7AF6\ -0A18597CACF0A0541A63A52056D504C2DB3E8118F20D9D02B1D4B877A3EE36C1\ -4474D0535C786CD507F231B72FA64EC7BA0EFBBB320EE692E4EC9CE75206F804\ -0AC0125BD4D5F0B4879A6F9785570365821863F1D43551AC87A9104D82C4B083\ -7BF80C0F955F43F48113F01337B9B37B1E0BF0826B57BF5BFD0A0117EF5821E1\ -E833211FEC425DA8E5924FB5794A5CFB706BDC13B2D246A89770505BD4E67B17\ -0F2BE51301219FC97F4568232A98F4521886FF6A4928E07DE8849AC38FACBE21\ -B2D69BBF8B1FE1A44428A551F04FA62D00B2D8848AE83A42B3FA165D35E584AD\ -036AD0746374DFE44E650F25A4F72DF59D5BB974DDE6CB7E86C4691E825453EE\ -BAEBC13BEF7E279E63668DCD98C17CF86F309BD7:\ -85CA6E09A63C848C8CD3E1C88EF5484E30FCC585E268499279F1DBB2866C2069\ -A23141927AC4AFD4DC0CFA2CE44B0BA02729D5444BD946528B3CF0DA3E08481E\ -437A7A9717EE0DB2A4E9F99A5648F8A2B9ADBE5FD7A234541C1B5E8DA0B2DD22\ -7DE6783FAA9B79CEA7C9262946DF15FA04487982A514D67FD6D58EB6AB506E7B\ -D4663462862FA17C85E9AE1BD6ED106C639D67FEE6E85931935FB859F756EEFE\ -59EF340EFC30B2022F9973D9AF4967379BEC95574398F48E9235716AF57CCD97\ -81B7A404676AD1A3EB696FF7C2D05479541AEAEA281BF11DC4C16A186A9DB1A0\ -8A3DA311F9D9829A28DEA38C730B19C114A0EF1839C6A95C68487D90456603F2\ -9F29E23686B084A69253E4EF4FE70A54A9C6B3D3D4F9654BCA0A65F238AB2A11\ -55CC78AB23D0C8DA7A749B88B800307BDCD5FBF94F1317447E57B872D6AE9FA8\ -1B36C8747BC78AE1C357C115D541B8B83FFC54B02E36D0CF8FBA7E1D54A6B033\ -FA419A9A69C4B39040B20EA331438B4B468C0B43D929AC36A79ABFCEDC241A32\ -812EC609D44BDAF61B3F25466668DF9F912A075FEAC397B7B13EB872D05C5A7A\ -729F3C254CBF54D8BE179278A85D89C79C2CF370:\ -28714FA7BABF4E6A5A7E2C7BBF489209DB3826674CDE9828:\ -12612898F8DF5697 - -0B5CEF18737F479CF817386EF44A017C8B7793080D5133175703BF0AF6BBFDED\ -410B6F55A32E678AD3844E756CA9BE031028B9100B7A354E05AB2CED46CEADD0\ -31C7EFDF5CA52159BF669669997BE25DA8537E4E55CB5712385D00D4B209E475\ -D0CAFD2593C019D942AF863824A4B24B90B2B099717D9DF0ECE879EBA5143DEA\ -0AE4627BD11DAEA8670D5E3F52B7C5B899DFD8EBDE05619B0C349205A8837B18\ -81B7D16463C44AD99B6F0639EE8BBFDA413FF36A94991D9CF0ED4F0F517CB8A2\ -AFAE1CA57BE8DEE05DB161A10A1FE0C2E69673F6969F76C19F919021FE86797A\ -85111159D9793869754CC1AA3702B05BA590B96A18859AA1D64DCEE8AA254A13\ -3AE1C57D9F7788D956CDE737D5F67B1F31F86DD67B18EEB905BED8CEA6393696\ -17C78C2B70186059FD19B21B2E4DB1755A4F47A116AB39EAD06ABB4D8754FAF9\ -32EA369DB6E164F3577F2529B76368A19A0921D6A572C220431BB2CE1D20CCA9\ -7C3E7DF5E38EE718ED4FE5E64BCDF3274516AD1452D988091562447EF94F29F0\ -F8B1161F422A772272AD9D14AD16AAE0CCE7F9F368542C5E3728CA5A3E246FC3\ -E65783A106AF2823166E7707747CD4FB0ADDC8DFFDA8171D:\ -3F1C038C678EDB2951B044D2B28DC10839FD112830C5A124D0077E4DFC8C1AFC\ -8011D7FC5EA03FB9B71E96DE73E592F419A1097A7D3443B95F25F477CC6E2818\ -CEA472C864D87A260C19124B669F7CB132004845C87CB2B9BEA7CF36983E8A5D\ -09AB44A620B414C3A395B3EDA8034548BBFDC130584A025BF671E4662BE51AF2\ -6EF1E98045599322BDBFDD5E7DED654D8E8964692A611C292E97C7ACAE6A3C89\ -F58248F2D699DF3E9C899B6A323FE0D4BD833922A9C028C693687E076F840963\ -39A6B3627B2718E93F18097F6EFF14467B60040E81E0DB2FAC283D56BE1CBB3B\ -FB47863F36BCE01DB727AD280B394AC65BCB870954D04C6CC7F0431A6F72849D\ -25ED8D883F8319BCF21603F997461D7F9B9376A18307CBECC0D0C0FED7C6358E\ -DD10093B161525999B50C673A557FB36F11BB63A4CC4B3C37B47EADFD332E27E\ -6D1DFBF216C535D087FAE46A941AE6271C47736C47DA38008C78043F8097C0A1\ -41AAA2A9997013E9DDCAECBD3326D246EA06E8BCA96B13998574D9083870091A\ -97D3AA55133282C2348D3E5C9AC097FC7AF858A526F1A0B09224D393C968DFED\ -5EDC5E3AF267A991B1C01B79DA0AABA17CE292253C5A8659:\ -6103C50E4C8EC76B1376D2CD980363B4354FCB61ECE2A524:\ -4A9DC67DCE5428AF - -7368741C50FEB6B0262AC0A348ABD964A042080AFC2C95700060C35A2F732B19\ -C0E8E847D8980B81CDEFC8625291536C50D2543418DEBA82F18C807315DC5E91\ -93EDC66E6620F7D565215E2E8444016FE1505E696F22C97F9ACC3D459E25622F\ -84489AC227D0CEC84DA5BA682E9493489CABE454576FDEAEC803802C0CF86DFA\ -CC4A3F6561ADE9C0419DE9895DDE9AA64ED8E9E0CC5E1548A431D12C46773840\ -F741B5CF61534BD1D27BF100935F7217E1B469647045BAB2F63CD76E8AD4C2EF\ -60A33DB917B9B545CFD103895931DF1811471CD0BC2E48A363774A59D0DE1CE7\ -573E06AC7ED19126CDAD543E6CC41329FBE64781F66D275B2EFB2DC12F6C20E1\ -E52784EFC9C50B86285AAB90F30F01E50CBB22CCA499EF4FCCF8864572F27EFC\ -34584F5FACBD5B1A12F19EAE5D2B31AC085F3147751825CA9C679C70C353D989\ -559F84CEA30C24D33C0CB1FB9DF90F2F244661CE0E70E94EBE145F8D6ED08D4C\ -4F51FCDE422D2536389F1CF29E9BE85B906F30EDB913DFB6958684B542A09CE3\ -9C40CF80949D85A1B6300367D2D699C4FD71F2C632208E1F5A12B3B746315E48\ -17168C2EC4CBBA01CC6DC9F7CE84D7751EAA66A84AC639F34DAE9F4B:\ -125A71A64FD9BCF2F6199B9B7D0BFD4D0844BFECDDB70B9B3C58988F883CDA46\ -F3C8579BCEEF47270E0B371491FB40F0F64F95CC7B055B9F8D651203ECF52E6E\ -113998369D30C8195D18EB1CD2777814B1F8787F1B50C6E89B3CD953E04AD8FC\ -6D0B0FF857B2E3ED15CB5DEFEC6FE887514D06A053667C5069EE6A030705CF9C\ -32009188BA4400CA7E60884A4825F16210E2C4C4839887886EC173FB09A0FA7F\ -1B8C2C9C1DA193326C776EC43D70D5D2CB8ADAFF2E0DC0F437870C284A23DD9B\ -725335AA3228D047A7EDECD64CF8DC52669E72514DDFF6A2BFB0F0A9316421AC\ -2F62A767801FDD8A00993D7C5ABAA47714D6259E86506BE1C37F211F6F91F04D\ -B2F3FC3B26BC5EA2A9B66C91124178AA1219F15DAD459B1250C191E908C3D14E\ -7F42C4D8756287D3B6A68051599F0E74499D13826A1B5D863CB358027796819B\ -DC9A718EB7F62F3F5BB221B4E4406E17A6D6F04FB10ACD096CAB8FD11E602E0C\ -CAD15F119BC8BDEB68C50B382B5F6140E9D6053640CD09FA595C08584160F316\ -26E6EAE0CE40DE68E12717A4E174825B788448F324391C4249E0004031AB7611\ -B59B4AA1903E67448A9FB6A2E30C8CCDB4128F3D9CB48DC62342DAA6:\ -E27FAE46E89D6C1ED3A8739D081D0D8D2C8AE46D83DA11D3:\ -5A287BD3FA98DA9C - -D2E6EC03AAA82F6666418C4FFBF6974A767C92D2730837F3D4854037197A587D\ -DE7A1EDF6CC053B1CE3B9B218EC24EA0671246619E02CDD73E9A1206C9F99D77\ -0F96C9D1E561404FA23F7FEB51FB14B342A9652A5FB87F55E3958EF62E3CB897\ -9953A7835B2E51A4A68C9BAB7F2ABDB9119F4D8BA100A3CDB57A99F9BC95114F\ -16681A111914A424A9DA081B781450413494857B496AE4E63EE999542E9091FB\ -30E221D5F3902433EF4FC73E9E81C774D921E4CD86D6D6218A47AC50C053812A\ -FAC3DABD1CE064859C18AFEEF63897E5DD06F71E84936AEEAC3D2C55855665CB\ -C179E293C86DCB6CC34FCA9E32645DF23F41D3A56C1C7BCCE7C0A119B5FEE1AA\ -0CD4AEEA3FE84D79B7BB78D19FCEFC732CD5D2D72DC28E227190C1F4A0915EE9\ -A3C986D26EE7258C528F9B07BD377DFECB2B63BBC08621DA43F24FF2D901D408\ -2754BF3FEAC65328C87EB52826A85DDE1C856142EAFA2C23CF401857DDB200F0\ -A7245AC2DACE481B2463789B74CE52CF504427D6600B46E0848C2B170E8C7536\ -5E82EE1CE3A6A8F0A7091A30828DFF05A8FCC9123A17AE916D6895AECFEEC0FC\ -684DA570C3BEC0B2CEE4959E7AD2E74007C2B7A5DCCFD76A6A044BC5E94A96E8:\ -3A33C663146466F9B17841C6A1812CCE796F98588DCAA891E9C84AC8744B6BE8\ -99F1E1B1AA26CB3E80B6E3F9FA19ED187FDE0757B6E15E80269FFE667F83DAF6\ -9ABE7133794103641ADC35A9881B15F8DA308BF46ACA2C33B1AE937721371EE9\ -7A0DBBE65AD4DC6C18C9E2C6C00F278B8E13011BDB1F976AE8038DBA4B6DBE10\ -5663E28C2AC1E4375708433E988AFE5096FFB7C485D6ED7D57A82ACAA9755045\ -3E9BB5F2C25C0EF0468EC1C3FDBF881DB6075A8884235E23E3BE39816E29644B\ -37DA9FD767A853C899C3AAF91D0CF9FF31CC79AD965EE3C789583E2D35A2F1A3\ -505061F3EEF131A20E9042A75F0AA32DD4942A5B70E6BE3AA3F20CC621D8CC4E\ -31214AA99DCCF540A80CA3F5E2093161D59D62AC065EF5FF66D0388854DF6DE6\ -8F946E95DBDFCB48A52C495EB0D7BF1B00D79883A5EFD28536F0D5D99D521780\ -5CC4D308E6A50E75255B286902CB586FFAB43A62A49EFFDF2B7D39785D1B5EF2\ -97528509BD90AD7762AF4D62DBF9FDE7D6F26B35C183606DD1AEFDE10B79836E\ -6308AD751B25082F17011AA7B4FD91973277B8131BC20ED6E8064C9C92DD2C00\ -FF58B9354B45BD4D1C268CC078BEA5EB4371B8281EB060935274A1F071415BBA:\ -F82127A92B2B1CE42A944907BD71363921A27FBAFEEAFAC6:\ -4C10029042307407 - -B498E657E77F564CFB09C804645F7E40FB6E7C2FA60EB968E3C7D23513D5726C\ -348857B06EEE3116675596DE2FA6C576E0A01C2F95AD3B81C0D0D0D79088E568\ -09F87A67E81583828BCEDD7D154A645D73F3BC5E0D2D1DF790092019FC292D35\ -B73EB6CBAC179F95988BBD739BF3316DC8924F6B451AC11BFF0A01705A1B234D\ -F82166ABFB7EB4A4A99E9041C0B8EB7DFD89B2F110AA7D5F971F58B662906B9E\ -1EFE77B597660ED73861618CEA40535272BF1704E5349AE7A5FF16869AB91220\ -E56606E2F04B8A60DC5F667CC35AAB44CE8F6531A95DFB17CB168131DB2DA918\ -6ACB8CF395597FBBED3B0315F33E7AE148DD5D514DB1BCFE6153E39F4406B6FB\ -8F5A8700135B9F8FAE96ACC7A2E8954336F4B4F508CAECA1CA351AE5D02A0B47\ -A525E6D6171D9398EEA8BD969423EFF7704329E0249C49B3E7903C7EC514EF7E\ -543DA8A9444C8453C110F3A9963C23DA0D8412A4DA40A0C2279848DFB51FC093\ -2D5CDC742080B2080373A1B9D9D14518D1D8A9AB7F3C1E34837E3DF80FEB9D64\ -6E8E3143837F84031A894F5BB359AB194EF19851E965D0CF1531ED0011E8BCD3\ -ACB3C156361D0CA8FFD1B00CBD71444611DCD3E539C41B18F46C6036669C74F0\ -4FA49112:\ -141E77FA01EE4AC4495482C3E2D004DBC73907007B2D2A2C68349CA02738D761\ -E2F4C40F7A7A547B81B274014BE1B394A7440AEB67BAC6971522C1498A5977DC\ -390DDE6E40014BC654109F7442FA3DCBDC29DD1408D47C8C9FE39000CD5CD50E\ -E73C4D941AF0F6C0ADC66EA28EDE9A575EF66F486FB1E9FF16D70D7D6CBC2772\ -6C23356D6465923CE9637A68A145133850EDA4E743F19746E526FDE79E0B12C7\ -0E2AB8C5FFE2AA766563FAE99C0F2405AE4011CDE80764F2F8EFE1C6AE12AA04\ -9357085B25DC7E7BEF595837DFDE18C43DABB514D025B544D2ABB19A690D587A\ -7FE25BF9468F5A0E20EB4546916022E3B904C80A862CBB25DD03CDDFC4D842A1\ -D04A960C32E03AFBED6211FF003BD2ED384D379F5F8D02BD918CC47B40ABECC0\ -C0E540CC8D673D47D25BAD6F16BD12BE9A799B8B2538932D21677A0A481AD698\ -6FF193A455270451E6D4DA3CAECEEBD2FAB6FF6A15F569A29D09EDBA86B7626A\ -DB96FE9750E661C405A3542987F1E16CDB3655D70EFE3F6A1AE30C04EC069B8E\ -9D592051190306A571D5E8673E677E1AC0454A3769C7C3ACF2C222FACA2E7F03\ -9BD5C6972FC7782A96C6F350F64F4966A8E492369B6F5A911D38AB1940046F6F\ -F69D6198:\ -004742BB9488135DBAC7904BD58A56BF2F11A844821C41F9:\ -1EF01ADC9729DA44 - -013202D20D95E17606E6E7C77EDA4FBDCEF3CEAEA4E3665AF9B7AA6F4C7468A9\ -E03A382FBB0A998074552CD458522539C6ED83DBEF826DEA9EF830BCA6275FE2\ -1A9CC715C99ECBE6EA90E3AB58720B151AF341F5466FD9D1BC877C07725929FC\ -FF62A8D2B6F3040368734B3D1425F6A81A1A159EFD39E27E5D81E487B85B87E5\ -FE16C54E16E4D7DEDE7D8C4CC04789C8B0A3AE267968AD961C28A1828BF1DEE3\ -46E7662961DA3B207BB636BA0D2B5BE7D33D186D276002431BB17B549C3FAF8F\ -85582AFE78AD3E5879010E3AB3C1A4CCD14C776EF17E67A698AFD2B1941ADB45\ -F5D0444B4D06AC85051B61602233CC6162BE0360720CA01EEFDC157065D68052\ -5000ED8B1C9F633AED07420B9D04694745D0013DE91C0BEB7E7C9CCA02780116\ -91B5C47A912DDF87EEC336E12A4207370128003A347641515839A885189293F4\ -45C4BCB26148840AC667E4D48E952F68E9C89A7C5FF2B8C463A98F39B07C8104\ -A5DCDBF7B72E71E17C522CC5E0851BEFE4046E836410298EA4461569CEF948ED\ -12DCD73943435F948F431380637782D59EF8D9B6B31C175762ED6C44740D1AF0\ -84A64FA86968857933150B22595B0921D9EA37075914D638D768670F3F95F0E4\ -0D5660B2A023B17B:\ -29A49FCF039DDAF22E6531915769B12323D2A48CF1F06A71AB14AF22FF38C816\ -A8469B6678ACB7CFAC479B830C84E65F4E4090C888B5F5120347531332B3690F\ -A5A000C2904C25118BB1BCF045815DF8C0CEE58119CDECBE7A6D1F042E64DF5C\ -4578F1897900DC50D2C3567697593A9FB8929D646456C930085830929F59C4E2\ -D8262989F87146AF16A61C2A15E1C3126EE9AA97BD2EDEBAB648A098BA4BC6AD\ -5B3455FA539145E57943BA347E379CD24FE0D6BCA965DA723386FB569918179A\ -8DA0D246F70AF48C7B840A23DAC840E5D5588ADCD86BACDD5D9BB39FB71D1919\ -7AF5F3707154D14E2610DC221016FD9AA1B0755059382D620065C3EAD772AA41\ -87DD24C16BF481E21A017DA62D5E521F3DE2E60DB4BD96C3AD1BA09663143329\ -A4187C23F2ECD2DA585017071667F1C382FF3F3A3BC50BA23BF6E7863AEE19C5\ -E11032925F9BB28DDCF618F5A594B15F56D077D8123C015077F6AD464F787848\ -D195A970F1E0030978C81D2C86C86948B0DA7349517A3486480E29B827F18CDE\ -8BE517B2FE120E5FF6546575F2DFB2B45927E5C69B94FC016D44C5FC8ACEE3B9\ -6229491D8D46FB07E5158EAA021C6B69F720DD57718D928FB191B91F78DCF6AC\ -926DAAB34FA33133:\ -8190659CF5611333623FBD73CB27EBF6C9BDE2E0B4F564E9:\ -703710E9623D9919 - -795DBB320C532AEDB31CCA66CA67A437C694AAF459DA1F46F33633FDFFA9AD8D\ -E60FDC7BB6B10107177AD6540A8F6646A6632D9976479B10D7B54907C81F1489\ -09A807130A56EAA7D3DAE7F45F908CA14D9FFB78CAFCFFF2881A63FC9D60315F\ -5C35086FFDCA1A244F12DF72C5E76A8D004946911A4A8E56DD769A2BA56EDDCA\ -623CA5A67917EA3CD37E495CA925EDECCB0413759D7F2888A242ACFF15946027\ -C29243661AD28F07CBDF7CBD2159AD5FF710B31F2BBF8138857A5CCAB2A98628\ -A2F6A22B78B1F5E70B7F006CA702C6AE1A733031C70724BC1E9AA91807B5F7CE\ -D0A1DC49792B89C557B1C3C189F093471035D73ECD46557AE8111D7B7DF0708E\ -4CE1958D40D651FF4E5AC37C57F213F144B78CC22F701383AEF41F017BD4275E\ -672D9875272744C60D53F71EC77E55FDD2E4DDD7A1BF965690FF89C0FA6F0D87\ -6607A8D04A4AD292C4B2B528F376314A0378CCA764BBB4A2BB9A761EDFBA6270\ -827C222D4BD479F990ABE6824C8336021A76F4B5C5F777090787E1540254DBE3\ -C301E8103ABBF71B5016ADB11B6CE75A09ED4A5FCD6E1F593DF1A947E92E2884\ -3E807231CDC13BD5C98E245304ACE15566DC34E3AA5DB8BF2159E1997E903D64\ -DDFEACAE8E02126CB1D56BD9:\ -B943E172A63343A1DE25F7148E75DA6287C8B5B343546A2A280581112CEB3BDF\ -D270BBAABBC802249CA134027BEE0E96BC6A04EB7A34F81AB5749414558A5AB9\ -3B3D8B3686958B25B4A6423D40D6D8A743267EFB222D283AEF1032839A7804BF\ -2FB9739064C5D0D3ADA84861AF5C0C7EB7921F5B87E13D4B44E0841CC92C3C87\ -175117FFB932DB9EF0C546AE90209490B138CB9EFF67E32CC9EC218F55B596D7\ -B477F4C64924E91D7DB2FC249E24030049537CB120E3CBF63B1CEDAF930E8A67\ -5D863E21C4AFE3344057E4C368904CCED47BE9ADB0880707109781788AC56F23\ -513D014C9529E35684F519E8ED795937DEDC0734AF61A50DB9E48AF7401701F8\ -B18707D86244DDBC8E0330B2085305D0446924F30587D260FDDD6E18BEBDE4A9\ -687FA3ACE3995F386D3ED9B7B8D646DA4A44C664DF3DA832D58634F00A230261\ -1B81EB7C4C9A88C3115E1DCB55EB3B92E762AAE4FB80243B4F9C33E65179826E\ -73D57A04C0458070DC6A6C0428D1EBC4C01875B43361140B33EB67BDF3DD2C70\ -7B9B2AFCE9C7E5D2B193CB1E9ADD08AB31496D86B3F3786329CADBEE270B9BFA\ -84AAE8DE2059CE88B409FF6CB9743B2B5E4F59C4EB93565021C149CB309CF9E5\ -5F99D94B76C271ED0C89FFC1:\ -C56605CC3B7FDB9E645ECDD67F66707C6CD05B348F14CD2C:\ -4A2073674C9330FE - -39CB105721050C0EA06846CDCB0CF939692ED1A0EA2527BB8D92DE135AFBE071\ -417BAC099F3B7F7A06EA3EDD121BC333B7E670108B4BD0C3DF91353F75B452AA\ -F2B24E2D99CD0BAC055F7AC5AA4F6358719E8973E4E2E23E26E2912B93FFD5E9\ -E4CC61EF203D72ECED180F616D9ADDB797902E96337E517B481F8EF39BDC4893\ -42534703800AB246852EAEFD3E715E9DFC240515EE4EE5F74C819021A4A081B2\ -7D478C59ABB5BF83C8339E2DB5CF4AD779C62579543A8EE1CDCE1D8AF9D22EB2\ -67EB4E96D7A3771DAE1EBE3E92A1376BA6217CD351B1DFA28E76B871F55DC79F\ -2137F4A6271616DACC5DC1052BE7B01DC2DC740BE29CF8223633CA3994B6D970\ -E547F55440E2B57033BA1E412F25C97CD2417984EA264F2E95460F458C99B40A\ -D29753A43C789E8CC5D97813BF197CC64D7789DB8E7D01005596713DCBC24A7D\ -05257FAD9D635777F497BEF9B993620B76CFC8302AF18AC76A53864D53ABE4EC\ -08A02C7BEBE061ADD158C3D2805202B000D83DF112BCB7E120453AD4C347B5AE\ -CA76F76E1319639243B21591B938DAC089B828B381B0C3DDFA914011D658BD00\ -0355ECBCDF5D6A5C8086C8AF8CC6840439D9FA842DAADD0E5DFC14C87ED52FF4\ -6A33DEFAE485648A1D67588C716D4E9A:\ -5DA8B03C7F9041D7F41CF447322736D97FB954D89DB08BD936B215771583B2F2\ -20491501206A18144168EAD7CE59C279B9E8A28C7E4CCC02573A672AE08528FA\ -B030FDF7590B2A7403D960BB002460A2D1772E1CA43BD503931E13C9C4DDC2DC\ -4BD18C2982C9ADD95935E24B5D000298A3887AC27721E870D088FC2F8DD70BDF\ -0B2366CD4A2A9DA179E081DFC75532B4FD9F773C906E151CE8CF8167BB212B60\ -A0332D2AD96AA33A66D64A5752713B60637BD599AE5987CDE0B4D7B258903223\ -6050A74BD65E5D0D27828B9E3C11D1C08AE1F9FFC60A7CD735BCAEC5DBF179D7\ -3BD88639034E1F7C47E955F192E6D90F6A8B1F74F00C7CBB575755F3A21E0A02\ -7EB2F7A8A376E7695001B521154B4ACDA68E2B3399DC5FC62BA6ED1DEC3958F3\ -FBB453C957EB0610BCCC9F1177BA138FFEF23B91B2F8A45504A251302DB9690D\ -79638A25EEB406A42B759A6358EA8FF886FA9379A5223DAF765099DE4947C65C\ -DB30A3097DFD1A7467B3A739D376A48CD2942CAC17BED5E7D937ECE050D5DDE7\ -7041AFE7EBF1BB4B2D5EE6CA982492F50189EA1BDCEE220BA900FBEA1E125D64\ -83207658E46918A3B7A7D147799D56F3BCAD506F8849C327B293BD97D86FCD2B\ -7B5A3BF9241D821E5C96C1579206BD0A:\ -23410846065EA605C5720B0BC2053E5A2A331B486657D66D:\ -FD110946E8F54E87 - -FF164D432F068EF38BC3573316474CEF62A7509808F849B9657443D3118F4627\ -86DE31D174FF8BB86DE93B9D92E85117C1F2475D5B80A5CC7F8C91F2C576ADF9\ -3ED9F5B19065006C0D8D32FC1C1C13D3CEF6C93E5B018BF908C50AB8040A91BC\ -C433D56B770513E1FD2BF4B487B20ADC0767BA5A9ACE2757DD84E3411B09402A\ -FDE27B886717A71C043B00CF2F35DB291150756DFF5F748A5BF5EA6D3A66C0CF\ -08422673EF4AE2D939AD364FF6C892FF54723AF65F9E53FC93A5E439E1A09A61\ -F3E02C35F8237719C3787C16CB75077772A9363662BDCAF4D7A323D613FC2E5C\ -6611BFE8CF1D60BC20B6840CE89C96E28EF4828BC51B36C05C5BE257370718C9\ -D0F87B3B486789DB2007707B37C9CB4412E266D17256FE6C6EDED088B48DA163\ -36E0367DCD5560BA5C944F98D7AF3B113D6D6718CF7D530BB2F25B32170AF122\ -27379A542E3071EB880A999E390FEC21D772F428BBF23134A386AE761477CA68\ -D0860875A11E3B996DCABB5559FF87E64A33522BE02CB04B15C3399788940FB2\ -71167EF6E62AA26B3BF6FBA03B954342704C4007DF1780EF1BF8881B13B4BC01\ -23734D3A8DE5C38A864E40BDDED3753DD2E7CE955B79CCE31774206BE9DB4B22\ -BC8E83C6A473E76CD1A70C29B230359D741474AE:\ -C75174D425E5658053951488BB414F89A2EE1FB266DF278BE78E42DCC27461A4\ -ADC4F8F443D907A6D226189E69CEEF1801BCB7AE721F09FD2518CB0B95509571\ -AA91372B8752797E5723CA1B70949C1C9BA8F59B56777F230518932173D17E6D\ -5A7D4E8A2021902DCC244C39DEECD1DF9920A0F7A14ABBDCAF57B0D5EA207FF0\ -00C14C786786C710A0FDE97AA3D6A5F2988DC64C17138D0D45321C8409F36226\ -FDB59A73544C52AE279F0EC64AFF23623DB81349CA8753FCF7D7BB9E31FC1241\ -A88B9E701615A71D3B53B8E25A621F85F6608B01A1A07D8CB84DE5A5CBCD2AFB\ -6DF5571E13BD39011B97FEF0EFDE5446D5C2EC729176A2D715DB5B6DB96F70DE\ -E1ADEA964643AAC3D2D11FE277C8ABE07B53D4E2784D54E09CDED91CF09219C7\ -6448E6889E2E7F44FF0E908ED18511749496CFD0E2C923D6E7F6E94E8F50F6A8\ -A9F33358D612FB968A75CC73A86CF9174B0B99E14409CF1496056BF59FCBB5AC\ -504B4924AE7B2D7C62470CD35E847C0E3AFB86456366255912843832DBD393E1\ -27CEB9F87CE376247EB464E08C34DEA43E6876567B3215B56CFE5130CE1D39B9\ -F6967652182C9306CAB89BD6260FEBA65ED74908D70B00133553D022478B82DD\ -CFA7F15A874BE568BB37A6B2DB1D5E8CECF4309D:\ -9448DEFAB1274C6004C98EE85FCF97CF8E3841ED05AA05D6:\ -B909B4879F2AB8C7 - -94E86836C44E6AD45FF50CA1A0D74C5025C397B9EAF703F4912578A324DE2556\ -F06924FBCE0C7E865B129F9CB4CFAEE0837F9D101B5E8CE29272C7EE1A6AF58E\ -5EC397173B20C2682912FEDD5AC40FF0F01711010350AB88E4CB6B806DAC5D7B\ -BE7422AC1D1FD83B0DF3A8E4806B7A2921A165A02C0F22949E6D97EB6DCB0626\ -3F9519325025B7F4BA7EA7345946F575171D20150A3DEB031417F752E1092E55\ -D669052E1E24C0E550A4423DFBE018CE33197AD4CD7039C0FD962BCB900471B9\ -A1B2F001B5C0E8A40B7A3599DEE31B072DBFB81F5A459D4CDB975CE2CF984FE5\ -0144D8B29BBD1B2147197A79534AA4AB22108D4D20CA50CDFEE235B0B5AA9EB2\ -47D9E9B9873488F9E5CAFA91C1CB8839E6FC4AD39622D58300346FBB7910BD32\ -96D6827685EA80A24FD821AB914B20A7B9230CB34E056487E5A590F4E3CD2D03\ -E56CDAE09426361B608DC93D2C4E546F426C1DE6073132D497935E02A124D1CB\ -CF08E6368071E24F1D27DCD7A3B586CD66D7D215445257404D486008B7275216\ -EC6BBDDD4379AEC026AD02EAD7CA7E7B480F6839C74BB8D4FBD758FF3BA18026\ -7371CB83BF19AC6F30D9A54962CDD85BCA8FE323FBFE5FE55191370A450FB941\ -B77A7E89942F605275F8B61C8333FC189256B21D20E3C283:\ -D5AE51A811E1CD6F1BE11CED422314814B3D6CB6D8547E486AEB4C053227A39F\ -72E54DB1B517793581951534F4EAEC79D49C994D25DEFBBB96F0249B03880B73\ -0CBF723BB1C49CCB5D94A1A12D21BBEC2B8C9D58CCE5BD49475307F8BBF7F737\ -FEB52E433D516EB59EB48DA4E3CA3025275C190C4C3F306BA801E7175211EF6F\ -E4CBFCD8DF7CEE48A6A3936C0849075CFB31D572187EE18E6F057E7EEF784D37\ -D4BC28D36979E7A8D0715569D32CC6F09EEC8D27A604E07B218005EBA77537F8\ -56F7D883592D166BCB5FFEF722EB76DAFB12691A9BF8C635064F3C6C153BB8E1\ -8C1AE48D6DEC6632AB6047743C5BFEEA51B42FBA59F500426B17C3ADAD9ACDE6\ -0958C00EB25B592E183E7D54A79789D08E97B499EA1011D252C07C1ECF4389A9\ -2031B22AD673EBBC51CF30E8EBE997BDFF37E886227BFD88F3C3721EBA42C6D7\ -3688BFAD82CBD864BBC9919B2FC52B745E216D2AB8FBB6FD1A02A99D77A32D05\ -719CAA4C5438995C5456DD8E2725ABFCFF7FFCE426311AC632F3E0A929695262\ -C9709DF208EEFFBC9C02AEED55BFCCBA37998703C49279E0907FC091A17A74EF\ -43A0712996C2024F482F2988C6CF9219C21CD35A9E1DF0990C5EE26C14BE5F3A\ -7504AB439B406628161F09856E8314E83A9AEFF2000EBE4B:\ -C8F54AAF1AC36D94D2E0332FF63AF41FC4B83F9031463CCF:\ -33CB7CB2846FAB9C - -A3F7314020EB905728AAC9648E0E20A48E076775ECE129CA40332FB23F2E37D4\ -E30B5E7D7EA1917124AD8FA313430BAB8FAC8C68154F403699397A10B0D802D9\ -A933B663F4F8B4A4EFAE5C45F46ED57E0CB54CA070BDCD5D22ABD9079E7DBF09\ -598F0D97F4FF706736D52B46C197A89777E35B09FC5E5089D1F08164E90AFB28\ -D0ED03E8EF28AB434390BE895889AA6E1EBFADA0075A654ECE885B479C89135B\ -070F3B705619FFD7C42E7F0CAD0AA3B0584452D55E8FEC6EE245AE724216E776\ -2485ECBE03ADFA4E71C25AA8EBF3FFC6D570EC461A060A3E28A490F27ED34C7D\ -CEB7944BBB72D088FDD91B6CAC1B6C6975CA4B0ABC5591D167DC0EC84E172FBA\ -6887A875D59CE866ACD5ED6895B67902EDFF6419951DE5C1E337A357E7B1DC04\ -B20BB791BBEF56148AB3A5BC7EC6B9580EBADE1FEC6CDB1698EC5CDA5A99DFC4\ -B1FF10596243F6201F428DFE52F6D1034F4E31ED193165991C5EA3E6255B8F82\ -F3BF19FA2C1C9E949979DF32F665054AEDF199FBB530A9C3E91D5522504CBD51\ -A41D7EB885E12B952DE58EA1E1BB88B1DFE0D15B0DCBDA1D906BC03B1ECED138\ -6C413AC9B375687F0AE00BE6565070E019423844CE1999C20E61C5A9C216CE36\ -9510A3CBCEAE029AE651645797FB03530FADBDA8E3115191E0B3C210:\ -C7D08547D362AAF8FE7EBEA483A38C2889B0FEF3B4AC797A3529322FBE638F61\ -5338BC15A6C3AD0E779602DD2DBE821C441299B587636B5F90FCDD7215ABEBD8\ -910D3C528DF941D03CA84FE051868A782E907A8346367A353F0DCCBB7BAA8FA7\ -066B9B2E5BCF29E2D20C42F9D605C5B593B07FBBA4CD04FA9B5B587D555BE5A4\ -15C5658EBF26F774E3399E1C150E0F7CF45C9EE4C71A06D9E4D3DEDE7A51BCD5\ -36636779FBDB5FB616243759A731DAD1859012528F1AE29EC798645E951C6D36\ -9754E470ACC5C904D0DFEFC8830689BA946D7D2DE3B7CE502077B4C17337B647\ -D6EAB7AA8D48E9C1F1CE6893C69F2251DAEF2DB88259934D12AB1A4D1A4F93E4\ -9B5168C109700F9E716C7DCC6623390C3008508A0AFC987670DB44F9FFF8E5B1\ -D4021F4B121345D144ABF066757D348A0BC34D4DD9F75008066B5BA444C86ED5\ -CB02B8D8035DC77DFA56045EF607E559C3AE9389962F48AD3496D8E89236D77C\ -F668711862777B88E3E17E6680FC4A70526FA4F39688EC1C4B7E47C539FC2A20\ -3377E4ECA9F4090D9AF9ACDBA4C245F1B8342AD9093F6149D3D98A695FE5DB88\ -CD6A7961C6C56D739EEF31402EDD9EF3D80DC1D55E140A4C2BE8251D2FDFC267\ -F745682C3F67AA3BA8F5D1DC0330CD5D455BEE89AE1AB358CB490BDF:\ -2C73658F0111C07A0A75A1998E5B2246F7A3A77AD7257EDA:\ -0A8B3AF05B4687A1 - -AE7DFFE7F4926AEFBB5338070A74A9F6E91BBF11683B676653D92332A6031ED4\ -83118B948A940B211051606D97C23B26402EE761BFF6499CE4BB517702D9CC1C\ -853B42261E42CFE6626C92F026C78CB86771F2852BA6E334420D04294A453AD8\ -9CD84014EC614657C3F264D1F657C69D3DB370FBD19F338C6CA6F779540C8898\ -6EF698E484D51D87518952EE663AF8C066855624E8CFF94F9889CFA90A9E7F2F\ -6D4EC5119A6CC36F0C6551E5786A671A1EA74A5D3F6D9845A0D7764320F45FB8\ -0A8295D9C5756B91C711DFADB8535D3880CFA8025726AD4ADE8005867EBC5165\ -6C59B63AC950E1D2597CD6B353EEEF211340415CE4EC196E10F0749B890E483D\ -5FF600BAF56FE861F6DE509BDE62C57D9A50108F0D9F148677C3A4E350816C57\ -ADD907889137271A267D6943405D66D1C6F88B994CF7B9306EC688C4C0EB3E9F\ -2D7E24DB280ADB515B54C42BFE4DEADA12B164329FEF3ED502DFC5F20E6ABA1E\ -DB0F071D1248DB67B8CE6DF2B714ECC3FE760BBE70C5E99D532B797274899592\ -41AE6C64472BA435E0B0E51989D9C20F3469290C7A9CEF78DC9877D08B4A0D70\ -9E2A50A954E1F35AB9846AE42E4CCD466667EB19EC31F93946DE481738E812B7\ -304C70807ADED09A66E6783B96F017D95C86DF0BB39EBFE5581A4414644210F3:\ -50F8886790779DEDB925B5CA21E0F071605ED5418B440B79ECCA476281C85130\ -20752B6EFE34CA00DEF44AF65EA9E98AEADFA9B646BA3A65B8FEC36F414CD0D9\ -71AC921644DFCD11774BA16398160DA06C6A5AF3DB6F9A3D2D012E573499E7E8\ -4B4324395AC646B1DE374CA0C194FC325FEA7345F1A6FB8F0702044F61912C85\ -9F8143B4583D50041E91CBB1D520A5CE3AF83F00D4D2C6EED07494F275FE4558\ -B46669D66FA8E268AAE3FDDF663B0A9D36381E6839BC81E0512F767E32195F48\ -57BF604A9C0786E4F63F36E0650426A8858DAAB71616FCB822C69716AA05E0A1\ -2E0A7B37EC294593703525CE56EA77A554BEA5061E7AB7DB4076C035B0544C6B\ -49EEA6E968EDE4AD659359B8BBC52D81D547130B6581BA3138308598FEAEBF55\ -4276696E84B38BA0344AA9E80139363590685EC282FE2FC9E243897A28A24CA8\ -9254893DA7C5DF62B700992503BE2B91B8588080BFD61A5CD30F03C46A2099E8\ -8EC7E118A04080D55E064AD9D5D5CF3D00727CC66D1DACE00D3F0BAF5F24EEE6\ -EE80187A6183F2F3A9E98B6A8131F549D8F7AF8FA2BF63AF0CFD227661EA5655\ -51E1535EC45A6D4219BA9FB6DE4732FAAC383032A7D4F90149277486E5F76D8C\ -ED94FD80030E285E4F54DE215C8ED63402A963B6526BC3C9BE5E28C6B7C02D1F:\ -D6D8F361FFDD7D2DE03D13FFAE2C81551A4570312D58EC62:\ -F6A50F45C5AA206C - -653E5169FCBFC8E0C9CCF57474E5F19C88A359E1A19770274394EF9D9CDB4ED9\ -457A137ABA3D09644D26389CA6C0ED305A45A6C831AD15766F45885E245A6172\ -6B4A10592A8C09B2306096592B6457385CC9095952C19033C389CEFEE6C44EB8\ -8F330DE1CCEF569FF52AFDFA1A53DB226E6BFD0B5C27402C4443A466B494BEF3\ -1F24A851FA78AD668C159EEE859B24926ADAEB4F9D654F1954DA30F1A6CEB172\ -CD8CEA39B7ACC205C65F7AD550F9835D6B6C35DB88F7B79663B7B5A5317ABEC5\ -7C9412184AC42B5B3574571180CC808F5ADAAC97A5EC9F8D957F547742ED420C\ -1760B9176B37CA4251B393828C0BA648841812CA3137B1FC8B90DA7A1E3C0498\ -FD579F9E3DC1A590B6775EA5B5A23C811C0C8E638422ADE05F0432083CE498BD\ -CCE6D69B1C57C37C1A95C28471DACF424A1D94BEC17E7F6432E680E24757BF9E\ -1026585C65A40CD44F78C695C2185E7E10C364B760DCFE5FBCB897B4FECA55E1\ -488F95FC58E3BAD40B205F9C74B2F38924253D68929C6E7D3FA160E8D77045C0\ -5CC7517D6C7B960543DD8C04E5FC5D604BBD15E0F9CB5033BAD7B11EFAD14F99\ -0D7F887F555C19E01224035A4AC43D6EA6BEA8C6B796B5E991EF8DA089981E23\ -1A9EFD24B49CD38F8114F2A41C18489780F78E0A1A900152FAC2C253952C2720\ -9FC9DC04:\ -301759A39A270E4DA92FA0CE410EBF3DABB914CA0BCCE4683BA76BE517279174\ -846CEFB1A728F211826DD38ADF512BC2E2923068687FBF9C5EC9F602517CBABD\ -C190EE50E578D346A809EFDCB3A33294AF734FF6226643C7FCAFD86B37A5DB10\ -8379D6ECCC41A0BF30647AA85B4FAB76741256A5D1C45B509F57150E88EDCE9C\ -1EA8001E98C226252E2EE85F21FF7E75DD330FDC9054AC82CF4B8E3339BC6FF0\ -DEC415ED379810D6EAE3D94073606352857BC52AEC07D7AFA43A8B2461C5A617\ -022C2AF5FEAF05BC2423256FD148A68696B8604143132AE5F59A7AB984DFE6E0\ -50E3B279CA4294DD73E514B48631E20F78EAA96F40E749FD810FA48B3D5EEF1C\ -0FD66B14F82305FAF6D08D04A5755F2880036F274BA069D9364C8616B812F229\ -679805B707E6C24957D0F112F694AA89027E2524A0F624ED8E8CF9127A0D5A1A\ -748771CFFC646C819A6B30BCB1BAA11F906BA855DBE790516BB6BF97F7B03DC7\ -5AB06C81EFE4046A21212083CD62D30E250AE261FF119424603A32C199DBE118\ -0261A338128301F43557077EF35E4BFC8924D23BB9F7A3FE733583CF6D850C67\ -926C6F082C21B2BA7E0D9A52289D8B0E37E861BB8224AD24DB872A4FAEFFD93F\ -D1DEC41F8C1916B4F35D12FCFE4A5324A37D2F45C0D2C3F9BCA21D1554CB6ACB\ -A88FC548:\ -A9D0FDA8E66738A4E3E5E8B3C4B4A4E0F6D9EED74A1B5C77:\ -CDD7DA51E14D237B - -A2430BEE2B78B787A3711A1D3AFE40E0735C88610DD04F7AF71A1EC3FC6A5F51\ -6BCB72E6E6FC23F49902A86A06633C409333B0B7A10A6D795548008C8E62CDC7\ -CBE8910FF16330B39C9F440684382562F14CC2A2597A0474C49FFB8E7DA2A445\ -3DAF492062F69B7DA5EF4BD9E080B950A184B20639ACDF459EDEFCD4E43EECE0\ -524CE005144DCDB5BEF5143C5F6117EF49794AB8EA70A0DB889D1C2EEC121151\ -1B5C16C6C4000EDFABB59FAA6278864ABF61DC3B7B91D02272D69EE06BC195DB\ -463CC5E48138093DCDF26120F393A61B18212BE4844738CA17E51AD52B78665C\ -C4CEED7469511F2C01FBAA59A65A033A87792F4AD205A4DEDF9B9C91F0436622\ -7FA1322F6CD39DCDE3B8BFFFEB50AC052F48CBAB2CA14798458B3B9A16B62234\ -91C2B785234390339EE88E3C7EEAD5458EB03FA69A3F511933AE0F079A2A2D5E\ -9F2684446AD707F6F825CD792C1A50C50E47E537B816B89D2E9C126B9A2CC40E\ -0ADF33D56DCDBD344734CC651D5243080B0152FBC5EEABD59CF4E784325AC9A0\ -58D8460C6D557DA9B418D08FD836975D8E8D7B47C3531BF1E208A9AD1AAF3E28\ -62FF586927F344570F3DB06A3F7EACFF4D67554377645F850B0821343534EA46\ -2AD8127299D4D549CEFB21AED61A8FC921AFAC85A957CBD12262DFACAB9E269D\ -E4E42F1667B5E3C2:\ -BEE849F8FF046CAB988F6AE1311AF3C2FA5CA6CE594EE9DA7D8A7EBD065179DA\ -D6A141EDA654ED454F46821F8E484D805BB375FC081D0A53AC35DBABDA69C43F\ -20E8FD10CC5CBC65A6BA7FDDBDDCAA111B07FB5F6B091EE3A87660EF5518F7C0\ -86D8A8375243F9011BA6433ADD2223F3B8CFA96CCBF8059595ED3908C35655E2\ -7D97CEFE653321E48D1CEA8B8426488E50AA4CD30775EAF55C3A84BFF61761D6\ -2AEC030518ACE8B5417333B9E790C1072ACC36ED6FC3D40822F63ED74E183471\ -A2FAE3128F61D2100E2B842C4C1ED81CB6F2DB031F94B7F4E39D170B1FAB2024\ -70BD3A70F49E20141058B549013CC29DAC64CB3C56EBF50F0EEFFBECE9B226EF\ -7D40440DB8AC592CB7A16FA1E41190174D70DFCF04DE7F384EAB679D30DBA803\ -2E32472858F9154417DEEF3224992F1B9AFA4932233BCC6A03B049281E7061AB\ -092C820E68AE4C57E5B578728DC89C8095B814A50DBE15F3516611939D77DD6E\ -3A5DCDD9696A89C3C369AA2908E9ED3A771983BA81526F956D8B3BDAA33F6008\ -69EB76BE506AEF07B1C68BFE1E423AC6D10E4ECA7D40A35691FFCDD4109AEFC2\ -65C7BEF396545A052F24FDF563E73C767C934D8D1ED19BAA6D2D7CF72455B6D2\ -6F2C7DD1017E1C2C2651BB1E61EA71C9CE6D9E818AEEA5FBBC81797867B60658\ -2E7BBCE28538FD07:\ -0F33CEF21D511D5B58B022428E60664D17E853D031EFF74B:\ -0A6B64BC12561FB6 - -A33B7D0F50A3AE535EE81517D4776C461BCF7464C2F155449D563FF5C70CBE9A\ -749A13CD728133C778B31ED75C962C170EDDDC34F21C8D4C3492AF837DEDC247\ -57D1C344BB2A92E3F604981DE16E3222B73E5E3266D5967420EA25630117F84A\ -E70EED77C8B16E53F61901B7A936508D469CF3062BF4578EBE0FA3C70AE9402D\ -BF1DE0380AB20CE99656F5421C2B3436E1EFEDEC902D938371D01063B9C2F984\ -1EA22A896791C4916E42BE6952234E6AA29069EE8D61A10B84C44CCBD5AF7A4D\ -05F6BC02FE443AD794D32B18F05629CB52BD91DC514E7F99E61839A3D0E3FC5D\ -C34B286010B6B9761DC2140C5FF643869B860E2444C0097D89287127AD661783\ -2477CFB94CAF234D0F6877CD36D805ED65DB35B4B8BF4985D8FCA8C70D57C50F\ -1A41D43229A7C88EA1F4299CDD56508B6CCB07FD3AABB9AEC3579FC915483C9E\ -149B6F42A967F84831194C72B8AAC97484CFA2027FAB6FB876980479A7312F02\ -0C25E5C9071816039EDAE8A20DCBE76F89563337A7FEE287C51624621807FDC7\ -6769B375E7D98332DFBFDB8B4F5C1882E907FBD39FE2C8A908998AB7D3E663E1\ -73E13B9083316CAB80C8583C3556D25420C69E8418040BF621DDDBABC758AAF7\ -00115BF1372FA420F2E6E3D22B8CD448809CA1AECD4A276BFAD23EF020454EA1\ -459CF05EA99725C74FFF119D:\ -4B4C7B53B4E0BC28E7C7BEAF6AF925E324F3A3C0454240B7107560409FBEA642\ -566BD252DB8681FC83EFA4E6DA54C4C2ABF853B6A4FDAB91F9E4F8599455CB10\ -DB8FB7481CD2D1E69673450D882CACEBF3912078A1597A28FA8F6D30165696D6\ -EAB0B5F7800F6519193E18F01F736C0026666CB40CD38B66B43572847D4EBF98\ -1894D8DA25C69707C739995A5635F905E25C2AEB33EC5B972EEE04AF00EACCF4\ -3764B1819D6EFF7E5D97E35A167009C01FBC7F0C24C29838D6EDAB8E508BB1AE\ -A3FDD2E65B564A5539ABAFC877717A8D43A269AAAE8EF5F84B5CB290C60164F3\ -00F2DA2CFACD52476C5710C930CA033F832873B4B84AA15C557CCCF4A5895DE1\ -2F444C8E0CFC7FA722EF445C65F14C4A15A372AE3DE624B3BF4184DFAA65BF69\ -3147B50637D4465C62424F644760F018D36643D5C959BE24AD9AAD07C9AFEFFA\ -4E6751AA58CDB91478EBF536567F8614B6726F266A726B9B79B178CCCF5E2069\ -372B27640360A3D647FB7FF6BFB49BA29B3B8961316577D6423DA51703F8D67D\ -B5CF359EDD938361CF62CC84F7BBC9408B2172D08E574C347D2D669453D786DD\ -72A48074D283B6929B1EF4304722433C149614A6B25669111EDBA9DAB34B1D4D\ -9970C1310CDD9246A5D250DAE9D7AEBEFF16E70E2FFF073239A4202B17413B8D\ -D86C6E26D9DC90A7BAFFC357:\ -3F9EF31A91BDDC965C48D6DF92F1C2B094A47C2E5F5F0E06:\ -E0CFD4BCD2DC6B55 - -ABCDECCCEE654A4B3908E39259E750AC8875F1AED64A3B13D20CF3DF54B24F11\ -6D5C1A3CEE7AE3330D0EFAD04CF87E29BA14BF02AFF8C066B41B08A0A0AF3E87\ -A04933C4B947DDCCA09BC7ED0FF6BB1399FB9DF9A9202C8A7202BB8FB1642E10\ -14883FEB3D1C57F9D8030FCB20911AAF7410EA89F19DBFDDB006783A5B4D18F7\ -E8664DB8EA8E3E4511F82F3E12D9EB734523795213EEB54D3CC4C077D62E89BF\ -61C34670A07E7871C664756E4C4A2F645799C0F74BA9487EE7CEBF7EFB87ADDD\ -11087A39FD768C275BBCF5CC3CBBD8CFBCDFAECB405B16AD243782FAC87E348E\ -BD1EBA3DC7135DF6BB92E8D952D8AFB7A8198206ECCCC09291E0015D9C516895\ -B9AE4A31909936CD1D31D614E39166C8EDFA72424867B9EBBBF10654DE6122B5\ -6EDB4EDF03E0FA8B91E015543B8DFAE0034A46B49BC8755BE3C846524FCEF2BE\ -AFB3E845F0E84C77CBB578C5B911C5E76BD56317D7975ECFCCD490FC23E2ECA7\ -C1DC4EA41BB28129782ADA77E13ED32EF1CC4C5A3EFBC85AEEDF51A310913055\ -745B2C26C7C292C432934D1B9B3E6AB6FE58AE59CFCF95BDAC939EDC635D80A8\ -209CD418B65D1F31FC7C8B11F4539966E6AC0534A5953C88E80E74970A8B2A17\ -1232DC112E6BD67A9D2B07D020265ECBC75FE328951705E2DEA26B782FF879CA\ -13263348433820E18993FC2E22FF8732:\ -DDBB478CFC853BD0FF6E51D1FB5E84C5772FE3AB3FA46B59CEE71B6CF7E07D8D\ -16DBF7E14C13D16578A1988D47F64C000850DB304EEAAA5E2DFF5818567C2EC4\ -52174918EC045B54E59FC27D31695F9503FECDAEEC2E96AF8BC170D763390CB8\ -A2E2D215E521D8BC1C9A2F9B7FBAFE70B63202675B65F9A9F333F41154DAC6DE\ -0B14D0A614CA3AB325A765BC21A73FB333171959A329538AEFB9B30118DA972C\ -0A33B38A4D0FAF1C31E6C9E7867369720CA968642E56B828F8B4E8607E8D35B7\ -2196416B206335379E12CDB1EEF8C8F41BB00F6C9071940040C3B22D396851FA\ -C1A90CD7993E58B8B1D5D31CC594A3F439CBC7DCF70D19E53F0E3BFF3EFB9101\ -D7B63F2A175005CE8C2ACC01434C6AAA0F82433DFAF40EEFE3ED7C0B39C56546\ -1A22DF1899DC216892A41744DD623C58EF8C28B300E9D9137DC04396C67EE582\ -58E6681C95CBCD8BB23073FC886351F5EC6C9219ED95E0F42C72CF7B62B7F4DB\ -A8605D9B15E5C0018A41582DF3CBF3BA7764A0EF4D0140BA79EB698846E32DFB\ -9E0C84741A7E21B059F6C9F3B27E5C26D708A92A275BFF00D0C40F6E06A340AA\ -F2BB44D24A60A555FA59DEAF6AAF5790D927FD1F29EA0E0790181C5B2FED8772\ -846AE5A80D59BC9FF15A5276590FC8E64879533E862BF264CD539EFAE2C3775F\ -CF3ECD9D07B74F670E460CECE79E52EA:\ -E963967A40FA1B96CF35CA1886CB0A200974C968007216C4:\ -C7F1DA502B161586 - -0B9568AEEFAF01DE0FC072FA1F8F10EE4CC157F607EA37075752BF49C49CD914\ -81A7F9F62522C2BF8D7F4DA1232A86020EFF960C8F7B73AA6BA91C40A15A34FE\ -E766DD13E57B9AF0B24FC1A3D5154ED1B09956ECA158741B55F464041CC0FEE2\ -2A010270BC596A0BF988CE9199CFBDB82B3B0075C4EFD1F20EB9E1D915D6A907\ -58502EBB2EF76A6EF7BD565C6DFE8AEF96661ED4FD0078C0D3A97249473911D1\ -4F60B2BBD0ADE8EA6CBF99030BEA5210620670C9447A70D6ADD2EBA0064C8F0D\ -FA7C8B354C89209C760556F6DE1A586F898CA171A1F3460E370217E4E5143E85\ -5988C70981EEFA25F177095EA3F1E3EC6FC1CCDAA6BF5310C8849CBE5F5525A8\ -B9C0D2E12DB5730B750D29AD656A644310365B0839F069DCAC8868B60F5F68B6\ -510019EDD81544B0098179FC2D153D224A19BD2BF4889FFD4712E138ECB82F2F\ -2800C9759AB5FA2B49052BC63703CB2125D0BFD74BAD142DBE4613942B409764\ -3A233098B75C58584DEB1C31F8058D052A9BDA7EBAD241B1D4A3C62EE1A9F3F3\ -A64EA96C712088DF0D04D4EC00EB9A123BA4CA039374F8037C1C3BB49FF2E1D1\ -77669C0BF6AE9E506A226C569F2D27AAFF9F3B2C6D44B7209BE29E2959CF93E0\ -40EACBABCCAA898B508FF281AAE975308A3E4BCA8740A05C17D5461041BED828\ -FA34699CB19FD50CB7F502CF7F1A483ECEFD69E7:\ -1F68542DDD508744386AF7313C5B46B9B36CC1F862F26338948ADC490E1398F1\ -18ACC5244B5723DE0F44ADF5797D289E13A4D13378D33E3CA6E777F3762CDEA2\ -AC2083668A1D2EE9B330F2D688FEC8629515953848362EF3D77B5308E1637A0F\ -ED9DD590D42A88392B2B7E75E9B9A4077869A2BAE5585E60F2E3F0564578C3EF\ -F508EF1E202900698CAADBF3121621AB6C8B2A23076F114BE5F8249B4D3BC441\ -ED49F66160CF65FB5E5EAFA1CFB47B3CCCB142FBF947A4656E22313C7258CB69\ -180B97C5A6B94028E9A94CA95F392405E18DA31815F2ED7D8C921D0CE617458B\ -14782A597F29505A1DC68D3999548FFEFFBF5CED35279A73FD404DACA8AADE27\ -C3194F033CC08CA840EFD5621F97AD8E4FC5D7797D8465AFE168630543B4FB89\ -3A6428FD340FBA18496F5DB05FCB9E43EB009F10A4D44FA5F116E9441A32A652\ -A34E1703622F4C28FB77BB17A2DF9FE5B112E3695152693142E425753D246416\ -41951479A90C879ECEF77417503DB0CD081C13BC879ADBAF4110C13F19BF69C5\ -A7C260041847F394CF41481465C63F6E5F552543EF45DF25739C8B4CC46BD76B\ -2C9A8E43F614C37BC1D19AEC9ACCBADF07BDF053C5AF119030DEE90C485D359D\ -763F124E7DA7EC3D1D366BCACECF7FBFAEEE4E19772A7CC9733D4B03848664CC\ -D7D0A679ABD51D0A41BE05F62F3A120B381C4B16:\ -20EF4A13DF4132039A177078C0A095BB8B4D5CD990818535:\ -CFB3079EE79921DF - -22D74C51876400184E31C74A0F3EE5843ED57A59EBE4E5A556B56078F881990D\ -D2CF2DA5C7BD08FA877A62981E698927039F278FB7080EF036DCABB3F5AA742B\ -DC2AF907A9AF315B77C98B21E3581B668D9F131B42E4729F25597D277F912280\ -8870475CA96F15F0C6B9303B7BFD97B5BF79FC5BC2D190A52764841C2DD68E7B\ -3C5853233674E3238EBAC0FC9AAF0F9DA253D1215092CF192EBD573AD0A5CA4B\ -CFF708391EF0AE8154C393CEFF8CA5E5B7157AFEE5917C0DA6A4C285A5E2C328\ -205BAEF3BF39FA0F1E145DD072BF43687DE36E4F524E493169D01D274E6C97D4\ -1E9C592A5815FF839CF0C39877BAA2F479339D62B770AFAD555E44EDEA781185\ -C6D76D186C0FEF2F96006378A0C7CBEE19E7F8FCB52B774FD9564302FB494C87\ -A598BB9160B4D44C51B6694E3314ED52EF7619A7D98C33A6655A702E279DDF5C\ -8024A7E7922B148555E69951380250086BA3565D3E806B719399AED264637FAE\ -080ED33B4B0FA8B76CBA3C05B8D81B29CB43A79286B444ED84EA2DA7DA657F6E\ -F76BF338D28526AF9482E15ED69F8712CAD5293EA86B2540B9B1BFDC726243B3\ -C065D1FEC80C50601C6293CA822BB5257C60E5D49F14FA1875C46BC42054B414\ -DC4B1D6152C4EE939CFC7F1AC456E9BCC1CAAE61ECA6071437BAD0A6E21CB2F4\ -3B77E42C560DD1293DB5FD0EBFA36115DDB5943BBA34BC10:\ -A8BFEC976102A91234A58944FEA83171C7D93D24277350B3CF1123D62D50B78F\ -6E3EDB3EBDC2823881286614D6B3BA2B81B9445CC78B624D570BAF46C4EB2DA0\ -D1790856BB56AC46E8C418F7B82A315B0BDD5E1FF50AAE5CDD786A069767678D\ -A38A66DC351A563FC31C438B6D2BABD1EBBBFE576359FF35652E06E0539309A1\ -E32A924658BA34AC514E3417AD3DB053DA2947FDBB46875F5A2ABF16F7E8D34C\ -F067A7DB89B16226FD16F474822968D42C076BF52DAB16414711FD4986453E08\ -5CC78AE5E6B957B8F4168D85C0E2C4457AC11CCDD2BC42E6B3315623B091F0BB\ -BD38B2FC2DCCBDC4AABF610DC078621C50B07A6343A1A8442E0D5B9F8A0A9679\ -FDFBD4DBD44818FD92570FB1C66142710A40664F5788771FDADF877A8CF0542D\ -7582E3ADBD2C9464E329177AC757502A2AF907FCBE79F7C040BB4DE56539BAF3\ -24ED42045CAE55181E3EF43350CF2F8189A403C6AAE6D749F5B42F3D2327363C\ -B21F1CB805A041AC2E4F6C1AA399BB17CD856B513258C29945505CA8A1D8E287\ -1A83E56B69AD3806332D404EC2DEE586EB64DE316AEF8AAA65C08C4410395E21\ -3955CE27A7E036ED6E62F68CB4B6D342CBB2187311900489B9FBC78BF204964E\ -298C219AA10AB9B12B64621DEEA48CA6F73E8CD638123A4107FA392C5345129B\ -09533971A6DDAF22B462700AC85CAF79BB6A0241E0A1E6AE:\ -299C903D9FD23A9C5D88EE6837A09304A6BB359802D1DD02:\ -160A8EAD3112071E - -61FE1D3F0620C7BA9D93B5D457CF2433F7AB42BB25492F8A5BB7F55D031A5871\ -CD054A05544247C8F04DF692653A8C887E5FFB482F0DF760DC95EF6D3EEB6D89\ -50D0D3686E30F9464FB4F81B54F96B85F1F0A7B76E93E62B3DF152A44D3A82A6\ -AEF7817DAAA724BDB5B2AF4DBAFFD6BDE7E8FDFB30C5D112308A394048B59C2A\ -EF403A62F38157529E27668AB907CF97EA49A214D16CCF6F22D7B9F673E29C58\ -F44C2BE9134E12C1FC6AD13F846C3E4E2B738A3413810EFCC7BC8CBFC87D7161\ -1A00030B2306C3ED8B17A4A71749696A53FEDE8B5DE94707232BEE81C84AA07C\ -A7D0686FD026748AD1E2E813DE666D2C36B99CC18901B99503D53D2BF7EBAAB9\ -B58EB26AE05C0790FC002DA29419B04351E9BDD0D310FE3A4AA8D50209A0DE3C\ -312AF5C61FC3F9D7D932C37A8A8361D7AB813051B2A3DCE0B6F8B95BD4EC4475\ -6639465DBE1042A046C2719D5590020F6A4E1B295143545FA1CEA183FFC6A809\ -157678BD0F8212C3995A494FFD60FC58EE002129E56CB236169793B999D92B30\ -4026C28802A1F380DB4B35B89DDE35719E32A8C183FFF45C6F8BD0CB485B1B38\ -C508EB1DA4DA151A75A552CB2120CF7C5199B4E157606607119F7869167526A8\ -F3CC5BE02CFE4F37DE43CD5D026AA210984307C73E40329A5A4B503890B0B82D\ -BD68C79D2C8839FDF534F496755EAA0130DA0EBC0E31E64F561EAB12:\ -4CBC7466274898801916701BB98617BDB7A55A89561F4DB89B36B6C88E192776\ -F7FAB7FF4BF9039B8F2521F1D4F5E19F3EF57E18A91B7128C5FBD507ABDF4B15\ -95F99AF60C7F340578DE0523B2D5FD8F3BC81B997DEFC8E3F304C57A3533AF11\ -D3604621980DBF1A96A33FE89901BF65EAC0C7AF5184100689904C7D2C30CEBD\ -8398F4E33DEB2F3CCB9AFB41CC5895E614D690323DD5A32CD379247B2E325783\ -73281F6B53AC37009F9CC23947FE3DDDA14EB89D157425418A10CC0BF69192EF\ -1C63CF4869EF382EBEF0CD208788E3C7B5063E5FAB9079044520885D242979E5\ -78BF20CF1F04C6E5B623269F48715BC58D2F74C7B4F5B7145EDF96139F73F7EA\ -52072AD9ADD0BAE79AC1961F9A5359EC322DECC5007019B6C1B3F93E19CD2A16\ -17CC55F8E9AF9BBAA3E25577BE7393D30C23902DD524906B57F5FED71577C40D\ -072FCE4F0D61885E28321F4E6F1C5AE784ABBC154E348565602A8C9D16EAC8A8\ -7F0C4F18FB8B4C587E147AB26F57DEADA50C1E5C31BB0920E9B85E40CB050643\ -E2FF19A583CD50454CE26368BDC0EED0FE82710F43138C1F7AA514A53335B05E\ -65291827A1D829700FAE7F68810E4F82E9B58CBB66401CEA0B662260339A0736\ -ED29007DFDCDA45CB1FF76EC6548BA5AD6C4EAA0D8CE9CFA949652325EA9249F\ -2AE7A38F88F60E9205192E2CB997E415AF5FCEDCE4D850ED2B2A44DD:\ -0C3B364010A5C0D93A13532F4C8AAA223D50ACAE66A74136:\ -BC05FC6E02732767 - -FFF24DCBE1447BE1D5711BAE7EC2659303A3443519ECC5993F06C2B34A714F8E\ -C4EC862B2BB6B5F1733E5CEC90468EA8B2E1E722B4C2EEAEE6DF43DA3D4CC0C8\ -EE36260E45E71D2FD9067DA44A1F4E25F58552D4643F45079BB52E58CDB84B2E\ -2846AF57E6A583157D5C898030BD57DFE19870128DCF0B6D03BEF58334F7DF54\ -F620BDD8FE7E001506331C5F9C2D6B40F88D8AA79BB60CE6BB71D66E3675096F\ -1FFE730ACA82649B0FD3C52A6D52D55AB9FB385002E18849BEDAA8E075326224\ -F194EA2726A9FC412063FFA1ABE1F191A35EAE0AAF1A137F8BB3388CBBF4FCB9\ -804D2E24EA21501582ED7CA4F4A2959A032265D3BAB06F88F084C771761C4E53\ -9248859C818AE82DC4AE12291C4F4C107BAA031D4BB78E2B0636E0F825146D75\ -4AB87A420F8622B2C73667C50977EC0FB654D7612E2578B646DC5B84BB0EE90C\ -FD40C53831BB6F39940A98B1A0A9852CAFFFD3FB93A04676B736D1552996E503\ -ADD196FF5D99703DD3D2B91053F8BB45791331128D52972FF52A52A1D48FFB74\ -48DAE01FCCAA8B24A61CDEFFF171CF1E06038950C09BE254A7B64580082D09FD\ -CF17A8CC30A234ACE62F434DB980C0E4D54475BC0DFC755BFA84C1C912A5E054\ -5F8779E3EAD6251674C937DD3E43B74E87BE10FD1F947E7FA91F7BEADBFBAB9D\ -89FBB22997621BCBCC1A40F0389C68FA852E98FE19FB3CD7681D6111FD2B0150:\ -D5BA6D89EAD46B65918F5E7B48CA070405E60FA10D6128AE9EFB099E467C417A\ -0AAAB7C27A19DEE540A68F5D3C20399F9873419FEFB2A4444AC4392FBA747A24\ -86C1A7BD232089E182BBBEC20975D38EDE288DDC2EA0BA993D536A2F346304D5\ -9E90B7F47F4C877857FC812D53563189F81FAE9CF8DF19A40C6B68F0774A0E0F\ -F67E01CAAF18E725FDA8B1245FDD1783143A146A5AEEE6BF98EDE27A4916452B\ -B0EE509D26EA8EF2ACD80402C3F927A91F0F982DBDD7AE08E556720F195BACBD\ -AA30FB252F54BAF3DAB9F859AC8065EE6725DF20F05965BADB31C7629C664D0E\ -42CFE925C4D8FF4694DF23C48D33495A1D7A860B27B49F93ACA2544F523EC0DF\ -C10CAED0E7094F0C7582460C68EE922A1B9C93248979C23FA9DDE6FB17E2B583\ -285090FE61813C443AD3CE0411C9B53F3233088863074CBA8E63837F6EBA0A85\ -90963797E8E238608ED3A3201A472F561257238D5434D719037F35C4E2011E43\ -C5A9817DF6D4AACF056EBF68214BC1E89F3395D2838EA4E313606BCA816E813A\ -5E6C13471316288D03A6B4D9109480A3E3162FBF0C051553CAB4AB4BBCF2031D\ -156C81BBF40D115A9035ACA04EDF9F38A26D4533EE53F39F1D5AFF2FBD1F7261\ -F2DAB62D0931FC334D1F5AB869AB1BF11E687E18A8AAC18B35EBCB594D2CDB77\ -0F01648F6D132A963375049E137D756997F46ACA56C5EDCF347926E6B67277A7:\ -BA9FCFE6E8E1F77EA676F3A94DBDC534860D138668519AD6:\ -8782B005DAE54235 - -7E4A3175450AE6168E6647319B754D765EA933316AD38083332D3EC7BFC27B67\ -F3FCFA4FBBD513362BFCCB9B775BA250A2B32705A97F6188941EB58D7DF1FB54\ -DEB7DD98864FE8B0CF06F2BDE8C54DB44365061B0AC797D67895A593C7B93B48\ -1E0B16782B638821304676BC9CC6C4E8C19A5DED2C4D939D4A247005CCE4BE41\ -F7FC41128E45C5E4ABD528F440CF7DD9A0FDC4E56FA5B377282F9B582434F972\ -7D6A7015EE7EE2A250A0A63FDD4FD05C3C9ED401D3387C75C4B4E4E1BC3A9ED0\ -5D119E17557E89690DD7207FD8796F8DFA3031BAC20AFA355A97DD43EC97B5AC\ -AB96C0BBD8A4ED22D3A39B3DE7BCE65BFD3EA5F259EC0DF383BF9AF81CDBC50E\ -6287DBB64425E792279ADD9DBDDA90F409F4427A821FCD7141CA412594FA1BC0\ -A82918380181ABA6F906925B78F867247AA91D8DEE8500F1484488EC0151DA10\ -3AE98B51AA8811F394B4BB8D50D3A563D291E9A9C89B933765B39F31F8138502\ -83A9F1EEE6770FCE5432759D504F5DA1D221F3C1A3787BF1E9FA611A55FD6941\ -7F60D0C7CDA5E271602A72E8EB21AA9759F9D1BE29C72953F3CA2AFC95034D68\ -E2683A295F31FB799068886AD1ABCE47B87A2517C7CC234BB60498779E25CA3C\ -A3610C1F0AB186A2040F554E92F849FC1CC7E083CC6649575D037B61C3945CA7\ -DF0760ABAB83FE4D92906E3C4C8C2BA4C15AF61CC6E58EC4C8801E6C94141E9B\ -1EBAAB4A:\ -2111619CD276C8D5110EC5CCAA217AEA3728412FC53283EE1EB15EB6195DC4DF\ -15A9206EE1803858C7F8ED428397A353B29ED0B7F4C8725F3ECF6A1D23BAC955\ -ED57EE53BDF1DD04DD545DECD9617BFD562E89A17AA59E4621718AC2D533D73F\ -ED11AF9BEE9D4BB492872B4D9231D874992AACA5432A4C682961F008AB83E436\ -556863A9BC3392D4999BC26832F8189C1AFFF6A4C3D7EBAA913BAF4E422B7CAD\ -D8B0B8EA94E7D7728C2B6D459A3DF6733E0BE36B4EF63EDF9223ED0EDE17FC15\ -F556D79E1822BD9D1C0FA45A061F6CA43FBF97CBC64E96762AF59EC39E674492\ -E3E96AEF4F09C4F396E6033059ED0A87DC1160EC55047A4C48B48EF8A1E5BE8B\ -9DDA609697061D20E6E6964546367506CD3D74A87CB349D5A5760CAEFCD2C21B\ -5E005FB5D1C17AF372417EF157C6B32627C7459C031421145E20C08ACA84BD17\ -7D4F95426CA93F129DD9EEE74E532AEA737882B230A969F268DE722B97190ED7\ -EF538D05EEC2DFF4BC89002306FC139143C8503B2C77B8262C7C3DB0C43EE56E\ -9F41E8E038781951D67F5A1DF5268430683736BA03839CE52FF5AACC75B1459F\ -319282E072A6CE3800722F2550780C9EB5DB283A4214A9BE3D087CDF17B53CF2\ -53A303D5C3AD95D451AEE896ACB657C12B9DC42C6ADD5DC46D085D1CCA7DA9B3\ -29E1C5C7F5EA0D19773895EC10A9A5AA6716CF25126AF5DA6978003CB0E9CE4B\ -F723CDEA:\ -D78DC039B9F1C25BE368712FFFA0EEAD0F9373D1BFA68CAB:\ -4C079826FB98EA25 - -F47B2AACAF0711AD04EC04C760D5CF3BE9BE42CAE6272CFF7172F4B0F7F1235A\ -6B1195B0AE0CF39F28E919040EF7D34CC6FDED0872106A8BA2969CA6EEDE6755\ -6CABEC04DB7896892DACAD714C8D10CD3120B79E5D0E886972064786699FCE1A\ -9343982A08542B7C3D96BC02FF72CEF2381F240A2EF062687E108E5BB3F9CA2D\ -048AA03573B08792C0D89BAF4714D1D33CF59794C9A8C6D83F604B2DC920A5DF\ -13FAB79C6C58F32046C805036FD56B3DC271DC5885243A0317211835BB5CB852\ -A4CAA08FF5662A4859C06228B73320A0FD1354CD2A0AF64C4DF0E91337576C35\ -5ECE02728DD5BA5181CF6D35B6521D3649B4C6918B22652093E672C3F791901B\ -477C87EFCD4139E9D483271C56FDF33FB0BDFDB4E61C79EA7D504149B2C83EAA\ -17F1E79D327DFDDC0C5C0BBA35B02769B4B15241DF2EBE60AE06CF221B257BC8\ -3357F0B3256E14E66A143B458BDA48F346E8920BB599D32754E0F89ECE4A832E\ -2CE8C90AB7AEFBF2A2303B0DEC950B618FAB9B6944D99F8EDF7CBBD0A306FBA7\ -558CCE0DB1B2B02C315FC4E503957569AB5821E9C3C65D22B9BCC6C034B68C19\ -1A1EFA3216B85518EC923E131A265323AF45BC06F3F0F5FA712ECAB6CC50B037\ -8B04C58A7CDF84A7DA1153C58DA793D949B9F12A8AD611EE1A137913EEA42151\ -830EF9E451E4974D30CD2DC7C15C4B52DB58C837029B11C7E5C00FB1F8F5C52D\ -FE552190AFA39F69683F8FB8FDB843D40B8EA29BF5B26A09580B38072EC612C7\ -6F1A59BB36212C3AED57B546742402C0316CC5320D7D03E97470ED4161BC1176\ -C54FA92910EA05FE125E3B54422467C8BE2593A12FE303D882BCCFA393F436B4\ -62743B0C47CCFC9C8D9A878337B7CEE12117D3B6ACFD051930E270043B33B6C0\ -F581971FEC18067CFB6B5C16A7E74BF6F04151059FC04F0945CCFB31B2019BB2\ -B822E19099F08FC9E24BD45B6F6AFF87D58D7452F5C028A91849FCB08FF1AE5A\ -884BAE1222EA4D94F0704903AF009F9D87087D0410F0C68A574ED50E27FA2DD6\ -915228FF2050B731F5E25464F088A01D600BE49A0A2BA4A230833C6B35EF360A\ -06DAAA5FDAA31A35ADD1D16B1EE223B03FB8CB852B576A92488237323E017D6A\ -AA904B5D79A60B9BD8F8312124A125B7390925BC4179286155A7F77AB0D7426B\ -EB84D6F790A5166B97987EC2B42E84D251DE0F5DA59B849A9F836D3F5373C33C\ -E5153EE29756D325F400F77363DA2A29DBA537A26C530A57E9368BE2236A30E5\ -CB9D0B2C5D3C6B765375DBB6F0D79B31C27A6E0FAD4C7740095F6219B299BE7C\ -48A954E719051A5A48FFADC51BF96B2FB0389EAD449E63E42549667342FED323\ -A398507CEBCA8B202A99573040C384A251CEAB34D508955ADA861BF6AB73DC0A\ -9C1D291E4A9903E752C5A54FBDE4B73D4BDF38642FD1011F070EDAC8C2370FCA:\ -AA33DD431C05B53F558F5A9394D28B938F8E8149AA494CB5FDBC7A73E5E8AF94\ -EADA457D0A86C871CFD001E14E29A7718696052EF6392B4108A66A68A103A060\ -1AB1703AC6C7EF17981DFAE8BD1DB8AC47C211E241184B926FF6B3BC35B60E0D\ -FF1161902106AB81E463EE1DF41420729D7C164FDE18AA42E697F1C4E01B2C49\ -5FD4E9276FA34C45FAD5AC98DE47F137D1098C0918608853DB8506CBA17C1D4C\ -12A41A9CAD5F7F490D46C15DE97ADB0BC83854114E5F9A1872DB4A3AE8E400AF\ -ADE2D5A33A0C6663A394839423CA9B8EBF417F3C5F047C76D61E171F6654FD08\ -EE424C2078B063D118CB3F69665342A4C16864029259EF76F303E5A1E23A7789\ -F99206E43CF03E58AC070812B977A7D30FBB582429193CB0526211C6F002D233\ -94E9A6D2DECA4C83A3CF092B4047FF86E36E2FE1EB09BCAA1D7B929BF9ADB48D\ -EC871D67FEF35B0FCA8018EBEB3AB9527FBADE5AB45A47918C61FF6AE21C2108\ -387C9750F0B37155B7893E1A13B9226A9723B2597EADA5039938AB1679917DF8\ -4C491A2EE6E76C6840177E556B35F292DA3C785CF37E477BA53A1816D592D318\ -6E4FC4A15BEA60AB799C681D8B64A7E17D781EBB6F9139C9CCC789244A6A0E66\ -91E278ECA60A9654826FCEE4519E8725D209A6CE4180C91C17698A5C48EABBC7\ -BBE7F335AC4331D4D352A2C99B6784245E046A334179A29DDA41EF6BE685F634\ -FE02020A8B787659B123BA086536415BA7AF3C31ECB3A05E06FF1EAF2DB92D79\ -4817C89C568436C56608EFF8E6745C9DE92141C0CB99A13D137D723D23092E6E\ -06D084747E9D778D268CFE64BB2423D92BC5391E395AE4663EE83B2E8E703EA5\ -77E67EB00A6310C2C28119EE9D6C10849ABC97A55BABCA512FFEBA057857DA44\ -BB149B5FB0900CE09CD65A975AA29213D9B6E3849FECB62A12FD85FCF2E1EF67\ -D121FE8C9FAC0C20E1EF41C7C7F01FA177C66AFD31418ACBA38517B10CCCE164\ -4B5BA691D79D70E4C0AFAC83FE051D871A6149BF027938A0F8E03EB10688372D\ -65DF17EE27C8E193701066DDD5758D216C75775CFD0AED04232FDAFEA16199CD\ -3BE58F7C6EE1EFAF3BE8D08FBB179D1D3D4AD61B8772A076AECAD5F3C82BAF24\ -527A357DA547DD03DF1DD5D9CDB1C8DE65608E673378C1ECE400C1D2CCBEA486\ -7E4F24DEF07CA60EE21513C52180F93555DD75BF22391A0615EBA90A9B4CB4CC\ -95A3DEC8ADAEF579BFC78E5FCFB0AADF05223C1726A6F1367B96F9CFE7711620\ -DAE28644514E79605F70C8EA3B60C3CBCC93FBF414276A99AB1E1F28D63E4611\ -C1B1A0CEC1F32DCEB3A85EF7803C9B8499CFA7409E15D4488C787B2D04E8F58E\ -94256DDADFF89A0DF9A2975558EEB5E52E8322EA46B96FBE68DA49BABE11A6E9\ -54C6724213881A4DA032E361860AC881FBE19EBF199E4330DB9A7BEC002FBC6F:\ -385F7F95B75CD2676193034A2A842D8AFD585D1EC7A47288:\ -9176BDCAFFCFACB3 - -[Serpent/CTR-BE] -F3:3A:\ -740614949B42870F0851A0D639A37AC8288898B0F9CC3B326B983ADA69BDBB76:\ -3377FFD0C8093067A0E33B8700E2C2E1 - -3018:053E:\ -872BCAEFB1985B9C10B1F2DE2790E22CF31C362AC7276D437D0DD697F1682BC4:\ -53C8B7C9BA119E81AC5474FB70BF82FB - -C503C6:DC4178:\ -DE3317D05233577D476509E638486ED2ABE26ABFD847C13A8AAB189F322F46B8:\ -47D690C680A567B9942BBD0A2700B884 - -FC9B1F9C:89FC80B9:\ -A2B4D60F8F9B35C56168D80E8828F3931A5BDA190E65B9B06A814277DB2B4F63:\ -B3B98D928D3EBE1B9E07B291ACF9CD2A - -F1CDFB642B:2BEBCA6F33:\ -E39D7D09F410CDC21333D8EBE5E33E7A2E24872A99254AEDAFFC633061C32EE6:\ -107FA9631083DE98F5C72A383F541F3E - -9C3BACCD6154:DE9920471C92:\ -9F7268895714AFE229162D50CA59F1273744BDC28B198E1685F4323AFAE1243D:\ -68C5EEB64FC3DE106B99C0896CC0689E - -B5602241E6ACAF:2FD52D0292019C:\ -27757554DD1B5BE2E660576FBAEB238A0F7642F9A65771B69AF276A57FC04354:\ -9BB3DB1661C90DE853294D20A369B999 - -8E27C11E30E23C5F:0294FE7CC3F020FB:\ -84688112BE481C65B282D4DF9A953526AEBF05FDD2F3D84E7C32830E3BC185C8:\ -3ABFC6E1B2358A3B968E416B9087BBD9 - -A4CC3F182076E93409:00EE68EB6CC635BCFB:\ -967BA8A79CCD302B294E519813B72EB5C4D24BD86322FBDE08C292C2DC4723E8:\ -D7DB3A2BC532D1F1685CB612FBCF33A1 - -25B63E2B38DFF81FA490:E75F1A6DF39CC7A76D12:\ -6757B7CA6D7EEBFD0E679E18CB30D16ACC71D0B1A149DA27E439DA1BA0BA37C9:\ -3199830075CB5E87016EEAE5B0B26F13 - -310605508E614C101E829B:366A5DCEB8E76183C95CFC:\ -F92107A1778C99C45B4E229567BF5CCAB2C5B1204052B8720161AEDCCF57E36F:\ -378D5BF003FB48A4D183D5227151FE11 - -6A706D5F6526ED4AAEE00D7D:8145258ED5FE88C34E671101:\ -F892DD670B66CCF6B8E458A6F068FBA79F4A69AE3A028E43D8E219BE940BB826:\ -08BA9435AF764BE0E44515FF72D6DCBD - -FE62E34899D4115DF7FFF51A8A:66F68C5AEC9A4BB123056667D9:\ -BCE52007E10A2CF3077D00225C95F2D68FCDF380AC17304553FBC1DA10117B15:\ -3FFED78824BEB8D6D655CC80190124BE - -191D3CFE172BEFAC1A8A428DF951:7CE0D419C43342FD2CD8D56685BF:\ -534A1F49FCD2D99E2ED2F094E170809091195EDEA2ED94EA4DEE64F9A6F89E05:\ -D98E8D86E9BE95318429FD7286D528E5 - -2C92024B2587851C0F58C91B822DF6:36FAB117335A5F0C619826ED801670:\ -41422F58E73BE8C494D750910CA612B2FDA0A41D041ADDDAB4144DF30CE7B26B:\ -DF0771CEB11F1BAF934289FA42F54319 - -0CC08B6ED36673C0591901E14AEF4792:250C9E812F38A9192CC65C6EE5B9DB60:\ -EDA2AFF3C4923D3CE745EB78655B0D27DBDB5C584AFE56564C7B625903CED927:\ -95C67856E6EB7B0E98F0934A47DF6485 - -C6B6E1F1BC46E8377F6C397C136461973F:AA0C36B960BFC811185F74D22356686414:\ -D4FBFD37C5B9D12E5E43D1867E1692A2B331CAC9E6C46C228A45E95AFA303185:\ -30B9693B12B7F48C1C07F1441706821D - -CF1DAFB2581C47D06D8F178787729F8FF457:\ -10510051990A826CFFDF9014CA0B49481E39:\ -47E9CA81E014F6AA4F94A7C0B8A533B7A636FF14E76935D9C7A3CB01E3AD64E9:\ -DEE733BD4644E258CF98F7FE87AD8E5A - -EB95043E36EFDF2B5FB8F17B6806B2B021D1DD:\ -A739171DAE7EC95CEB492183803D37165D1A79:\ -6BBA2F42B85C58A4916F618A294553E084E223739F575159DE9EC4F5A63F3AAB:\ -0DCA755F625F78C363AC7EAB801DD471 - -3277ADC7055990FDA21C89F183F0A380E71B696D:\ -610369449E344D609EEB89210AFFD1C90B05C197:\ -F3702792DEFB775F10B142CAA78D05DB26A4A8061CEB39FA2B4A27106DE8D9DF:\ -5C8EF39AE0EDAEB76CF3C10B94D1A002 - -43733C60414C054EACF68F85C67D547AFD0003AABA:\ -E8F7CCA960B713991BEF20DEB3DF284ECFE912B479:\ -AAE83136AB1EC19B3BC892B0B5E8EC7A6E20FF5AC6C126DAF6189A7E2E344AF0:\ -C99EBDE92D57326A37B4B6F2C19363FD - -E2ACCDA4075886B085C7A7B71E39BD23F71DD16BC4E1:\ -7A0552BA9DBCE00A60AB31F8D0E590D79E2EBFC49713:\ -222373452D105C2F58E87F5DDDF07FE464E47BC8309718FB30674770CA24FD34:\ -A03B629DB1C399F8EE32A7C08C0FDDB3 - -33CF3C69194FBBD03B0496F1982C570B363DDE621303AE:\ -8D2763FAD25E2A3BA7F4EE3ADA3CC05310B453734EEC56:\ -CCD9F95EB29B2609CB35C959009B56FD43A60B4353A2F3D60FE78F2219074330:\ -884C24E8368B3DB123F47D03F3812F12 - -32DE0A03F6D52AA26BEECF4AB22ABF3A49768683F86EA983:\ -D4EE5E9BD04A09D73DFA9752A8DFAD00F151E822052B500B:\ -F7C88B964D55E40A04D8016900A3449015D6324DE16A024C0F9FBB1DE505C1AC:\ -308E6F85EE34ECE3C70C1EE2CB7E6777 - -52F14AAE8ADB041BAC458EF07FA247FE50B868888089587933:\ -BE61DB06D28CA4D3B418F10F463FC42EA254929C5C87D35418:\ -972C448AA251ACA8F589BE0F5793100D14EE3282DFB321CE5943FDE99D1F31AE:\ -11C202F46DC54AEDFBB543C3A55E7DB8 - -E56DFAD59ECA41C38A68C64388CA4D2CF94B319C65E033C26A8C:\ -DC4A5B96090CC569B623D54BB1DAA4A7B6D879F21BA420D80637:\ -DFFBD3EA5DB1F4D7D9613F069BAF8737F0E37A33BAC9A9AE2EC67FF20E37442D:\ -17E670BC9C590D7B320A233232D43311 - -A89CF708448D7D4B1BD8C252F9EF7A0A7D978A1E862713F807E0FD:\ -A244860FB2E83D608B25D77ED4EBBCAA7C2AF886708002C77EB5F5:\ -A14BB231478EBDBD7B6A7D7039559099AAA281D25D095F286B8104DF77DE0C8A:\ -5410153016A90F03A3863EC58BD66004 - -BA6C11D80E304AFD1D922E2B35A47C3ACB34F7DCB7826F76A3C469EA:\ -CE19CF171B181B3CC5261B5A38E9142DA7479F88A9B0F7F63E98BD7A:\ -B5C0F5A46D855F6CE47CAC0198FCAFB7432AF8810A3746A90CB440DC2AA1CC9C:\ -A1A57176001EF2B0417FB7DE1630AB54 - -90D97D574AFA947AD194F3B94D17D83073D6ECF2FDBDD5CEE09D3D553C:\ -5139448ECB4D8B454563FF5BC6CA47D9BD23329E772F03E4C661E4CFA7:\ -D684575372F4EC2F0131D786EF6B9666C38D2E99C2DAB7ADBD1C9FC805DA4229:\ -81301A434C73C64DDB94440FC887542E - -F4C312864C4FF38BA8D285608FC924DE8E60F4FF0E603AC7D3548CBCE1AA:\ -04823EE2C43AE04312C6F538F03DB4635D13026D546254A1E0BF5AF97B58:\ -7C3F63710A6B10B0131C5BF96BCEEF6AD226FC25880A975E355CC2547435D861:\ -B3F1E356BDCB368C8F1D306DAFF59684 - -9F188A9CC6957F8408FF2A93AECEABEC0D6484AAD13C88060CFA7C52F55130:\ -FA96B9A0FAA199FF22357287FA8DB515ED3D522039C3FA649E5BBFDE5D0D79:\ -8C263F3C683F2C78E8607AC7E79C703F0F1D872BFFADB07CBB9E07C62624291E:\ -1BED13CCADDA5A02EE6F3F529A7A97A0 - -6F129CDB56D48914EFAE7A534C33D03280CF30D12389EB5119106790B84BD73D:\ -29ED54DFD26F097312C42848BD496B78436F907238EC8DBDB5A22FFD76CE76D2:\ -69F48BB5EAA67974713FA974EE645B5DA6B8E5665CE0E40347575D050755EA6A:\ -CD6E4DDE0DEDEB87B7BCE9998F41218F - -49407E33C46EAFB24B01BDF5300DEA35AA5BB5AEDAAA2B5E47B2B63753A44F71127F:\ -DC0A9F56FB2F440305B288C1C0CCB896B21D89FC3F741034DD76B6887740C5CD4A20:\ -3AE57D49BAE4C54AFCA650206B3FCBA71306286F1B9A51624CE3CF08B5791CB3:\ -75D84A34073AA6331A8990572C5FF55B - -C34EF208CBE5F148CCF3E005BD2168C8D8346B18464EC8A6C8DD156A3ED34CE35C2A16F2:\ -878A83F17390490E68D50937BEC73D4A5BD4183ACCEB0D582464DD9D3ADE683E830E8C24:\ -F39D1CF76592D48DE487808FBCA14585C15F29FFB7C9EF9A4AF74B1DC29459BF:\ -50FE7E7F598B4FC4D0FF6D256135861A - -6732BDCFAF3C9681E5684208D5C49354C8C221FBB584080639E3A66C0CEFEE4662BCB787\ -FFD2:\ -2B40579DD8E87440DCBC664920573309D3342DB52463F76FC7BDDA45861F8775553129F9\ -48D6:\ -8B387194C2E79916F5D2B5E3145B4F7CBDF8190EEBD05B598A3F44D1480FE045:\ -6C7EAE05E72898C271A3D7F1668532FA - -3CC7B907609C374805F3E0625C2A8B77BBFE8C22860F749E4871541D27BE589B21773489\ -E08EBFC5:\ -FCE9006F2073F1C64AE42908C2E7F21EF88422526423ED8E341F869B2EC8E9BA679E9028\ -102C9BFC:\ -60FC4F62E03E3C0ED6DD21259BBF3D4C24031DFF6A20ADA2E2D637CD0FDA2351:\ -6BC92664DBE433FC2580850BCF0E08DA - -741C912167AB5A5AEE918FB21480A2EAE39C0038A458A34D4AF86F6968A97A945B4EBCD8\ -D74E5C1D7388:\ -116F94F7C970083C2F918454F7C5740F3F92FF83BD5A0C5F8DE592FF115171711879C6FA\ -739E14D0AFD7:\ -DCD3F3A96FEF4C6DAD109A65D574842D04029B155BEA7AD54D25D3FF8FBE5A2C:\ -DB7728ACBA219FE1AA8259448BE3D6DB - -CAD05D525C37CA43C187403F3357EBFB580ABB2F782CFA7B9661B1F71B1809920EF0D897\ -13598CA4749763DD:\ -C17D53A4B37EF4AF33DF4E0F317BCF8541ED66DFACDA662289B261ADACCA3D4C0066159A\ -BDCB108BBF5C707E:\ -0CBD7326ADF581A058CACF74A3404D3CF9EEDFAEC8E47BB30BC1AF1D3660E0E4:\ -C4DB5DDFAEE532C12B7313A9258CE63D - -6032DDB7CAAC7CE2CCFFF53592FE2F40280F8C79E312F4DDE307E90863A9CA18E320E0EF\ -27B21216216FFA8EA570:\ -5497807495FF72FFC8C994E00CB5E7F5C521C86965FB17AD3578EE6240233A7E2C9FCEDB\ -FF7F1B05FC6DACF4A0C5:\ -567AF81216E5B25179143BC1C3AC52D940F93EB4EAAD54AE0A6F33661CBE0EB6:\ -EBF6B3BFE42C2AC5AD0B02B7D294DFBF - -F3DB2D14DDC5CC45CEF2986CE9775A64C435B36D305DB04A75FFD3BC83ADB8595397EE9E\ -1B8137A8227535B3984A7267:\ -7BCED3DCD661CE1BFF9A6D1B52D957D12E657DD6241F64528C496B6D5A729783FA011AD5\ -788BE7DFF57D892A0ECE7A92:\ -818DD281DE7C051FE22A5CD1FF0154293556D693427EF49CB72D31E05B91FDDB:\ -4A3F1F5AC035B0D18543BC763D42D61A - -83EF6209E5EC332E9CB0A2F73EEFA34EDCA0DE7148188A5A5E8AF5812EC9F272147901F3\ -8B811FB759DA8060A1F93E972204:\ -C4D6D68DF04F55151A46D291F188C71E3C59C06319D4A6B40B86312E93ADA7EE4CCF495C\ -D56E0610ADA4EE49EB4982601DA0:\ -06ADD322678535E83B950851EC12D6DCA818D19F1041F69919A1E0A16D868ECE:\ -8842C25CB6F1E93F2485204B8DF65A61 - -14D9C539288AF393FD3552DCFCFAA4EF497514E7101ECDC92E875BE2D958D296FF1BE307\ -DC5AFD29F71460DD7F093A392C8210AB:\ -792DBAD92AF1F5F5E5AB14060E6245D4175A6D73910FBDBFF76A08493464827A108141E3\ -83E3104E3F4B7EC645FEB7740A426AF5:\ -2638477FF92C0A140CA99B62CDF46452AD58B01A2DA667BD5EB3D425E9EFB5C6:\ -FC9E9308891984AD0B305CF160A64B45 - -C4E76E643B92D878A7BC2693EA1D0E1E86A06FCCFEFBD91506D2B8C6024490FC965F037C\ -EBA97C607F808E48C9D86E40AAEA079FA7B6:\ -66BBC945447CD9FC87CB47AE7F72FCA83696BE3BE6396ADD9EFAB87A3BE17718CA2E49AE\ -00758AB922A2F2049BE84577DDFA228918C7:\ -ABB8BC67A8299C34C4B97105230E203F1BF8032C876E908E6024F31F0778C2DE:\ -03C8C55A12AFBE4B5930A8D8FF80F1C9 - -C8A5C5A939F5872E56BE199D24422A7B99F797617B5E39E02729AC05ECB1990CF8D287B0\ -8A718495D9F261E9110E4EAD62AC789918CF1CEF:\ -23D2A8B6508552F2075D340707541547F37E622DF4DF55EE3E0F4E0E610216B7E4218358\ -ABFD86EF3A6A5739A0EEA49267AAAFD89B28D5A4:\ -5DBF7CE56C2C431FC9B69EB80635D0B7BF58C7860A1EBC876914BD040978391C:\ -9E2DC1FD8EC1C9E1FD0D5273F1379D46 - -37B26B33453BC31C69BD09D5778E04AA8F5FFD7F367727B30246C81BB92F9ABC3DC9EF72\ -171C3F38B76CE887F647AE42D87319D4209857EBAC0F:\ -8F85405DF5DEA595B58FCE86713593BEAECD39B4F4BD11B43024A5FFBBAFA0F4817AD6F9\ -2C111C08506056654E003CFF9A60162147ABD56BB4D4:\ -6A3CD1AC06DC7198EB08F439CFED766EF40551B1361048BD17B1A88E9447EA27:\ -23783203B030B2AC2AF81621781FB946 - -44DE8E16D60C2CCB0E804ABE95CCF7CC597B1A9D0B3FD15BA2CE321273006322B4EBC4B5\ -BB90E1456947B3B289A9F6DF266FEA780FA13A2CF50A0882:\ -03BEF28AED188F7AA6128016647546160DDDBE80BA403CC4F29D9D90A5761075B170D1E2\ -7EC6ED96E7A329ABF59F7016F4BCF39F61FD82C010B4F7A0:\ -1CA7FD4782991006FF0246581729BE4341A6556C61FEED749EE9F48DE8037874:\ -7DD54BCD7665BD84E8DBC84F367AA008 - -8136A889B8105FBAB44325DC6114F395CEEA87EB6E69D35C6020AAE00B47942B262157FA\ -273B2317CE08255AF899CFAC6A83AAB7D4C5FE5729A64AD9F8B7:\ -2D6B1B438E8F7A70555902ED6FBFE2ACFC371DE250F32C9D5B75321913837E36646DAABC\ -E5B69AA971A0C6FFB5928E0A75A13E004BF241E73754B74F3947:\ -9E8BFDA871A63F32DC05F53D1859291E6B099E2B4474A43E570D6D167A2E99A9:\ -51027A0552EBF97D8372668BDF106F46 - -80E71459F0F7DD4E490FFD23063D1F741E44939770B6128F07BBFBD48323A2CC7558A4F4\ -CA4FD9C32A137C5AFBDB278A9ADCF66B0CA5086D0C09126A7FD5D20D:\ -AD68A517A73C9485AE996D79B90344B5ECAE6C11EABC4F268B165232F7A062F73FF46E7C\ -674C706F14BA70EF9C77D5E6DF90CBE09114AD4E60417A597FD896D8:\ -9ACDD36A9AAF77D9E2C6286DC456D461508356818F4FC2CBD001A94037E42E1F:\ -0EB87233AFD4C552D9D5ED5C415F03E7 - -0EFC9979CFC65020583D4141A6422CECFC1E816B8682A1BF73D05175E8A2E83DAB239DB1\ -5DC57C4ED427EED3C73491285767EBBFA20CCF1CCBA594FC45980A34C659:\ -ADECCA8B5879B64CF35C8AED809570D12BA0C0EB19C319C0B9FB1A0A33C04F48E2B755D2\ -CDEA8C0582019F7847DBCEC023A4AD27CF4879C07CC33CAC9DCE9C47A491:\ -B0B664A621FDA57B3DF93323B61DA43CD55EFE1B1954A8B86CDEF4963E082B5A:\ -63DE5E4E1401030D736BC327D9DB2BB8 - -FD8A05EA9F872847A37F33D66906C085D10DD980435028CC0F7FA168CE8363A8A5420E33\ -67DC06AB69C2DDB49C1BC0E32E1F1316EEF18C01A95C23B3342ADA89C131E42D:\ -B0A2C09A27F4128353DA11A0797B63AB54E2CE00BA58BB765C8F6F65930E69258F2C3F30\ -914FA964AADEC9B8DAFE39C58757D65CFF6702B955550C8A494B64056B906FE0:\ -6C62EF4976E50622F623337E32D70DBCE1E423B4CFF652C2ECB1D3DD194B8722:\ -B7F60B3D94FEE7768CD92148FAFEADC2 - -A592978733D8647858659889303CAC080E95C2B2B26642520CC6B8598C146DDEFBE1E4C0\ -68F3FC0BE9CB0EF3D61000F2E688AB2D9DE7B7A28C3B32AA3F8B872F91D2CCF9C927:\ -2B3D0D935877281412DF2AD20602D0AEB7E375826BECF964E5EE29A8EA1B20529943BE59\ -5C099BD2EA0F70ED95BFF11FDD52069274E8D21B00AC5EA11369BCA9E6052F1ECE13:\ -85357F480C3AC5C8E412523D2C6D45862CBC91394DAAE40BC20C58DC7FDC113E:\ -CB11FF4AC49C513BD56A79104FE48F89 - -60C42D6EF79C6FD920FEB2A9EE00EDDF34B3339F99BF13ED42FC65247166B19C42099DA9\ -089F8131856FAC9CF0703AB9C73DADDDF700290479146F67B49770CA9B53511D94F6D7A7:\ -35409AEBFB98BC6CC70BE661EADF99C7E1133F912D8FBB957A5A61AFC01E622864C1AD2D\ -B0898B0D3682042A510D65584C7EFE9517D0CEA31D3385C857AA334478BE651DC48E81DC:\ -53286FB5B6E08E9177CA17919D845A958B7D55361DDE5E9B09B40138BE3F68FA:\ -D7FDD75B3F672908845354CDA2EC33C2 - -55204AF292A15EF0907E3A05FEF0BAB2FC199A874FA3B72B1959CCF5CE59B1A63BC7D0C5\ -709A1EE8152A11423FF3D021726C9B914283610530B80114A6AB16F1821434CA0B5B66C5\ -1181:\ -790F49950B195EFFE12FEE3DEE248147793869ADE0B46B412F702C4AFDFDC92A95889D45\ -F1828CAD935CF281BFDEFEE68057906564E63509A464206A3939C9787AF559C2F18E857F\ -9794:\ -CA1AA91974D69777335BD4CDE41584FE09A0F90B4EFC1DAB01F5F6EE475C5B26:\ -A753ADB21556F5166B8D0EEA24AF4D20 - -F1B63FFD3C223E65972E716872206B656F036AB58CDC6BECF814B4372828651A28FEB0BC\ -6F7D5E008A0C9D069C5765D9613F75AE3CA564089840C2E5326AFCBB73E9677D60261C1D\ -11DDA8D6:\ -05C44E476B45156EFD1A73CAAE0CCB4A02E7A3BF461377AC5573624F3CDBB03E5F040EE0\ -0A628EAA819B84461B8F39D63308C5FCE21B823AF0508384E0A5784B99FA47AE0A15F8A6\ -31CADD11:\ -67EEEFDABDB4E221A3F5D331E021861D80B3E52EFD3662FBE4B7F96CEC220668:\ -ED8A0E2821ED9E46D9E47973CCF4FD25 - -415E13F78C19D639C7E2A262D03D17C33648D7852706B0787C5DBCA2F7BC09FCEB3C570F\ -CF3E121AD6B9E467515998EA53B59532A5D0C86125928ADA505D07E9C0683F0F2862A0A7\ -09B76B9F3E5A:\ -96D6DA75EDA6029E162A70667227790B28DD1D08731D08024FA175861A30D321CF95FA07\ -A96077F5F9F3BD0EF809CBA394726CDFCED17507C89295954F7AF19E7CD513D18869E7B3\ -418E193DE7E8:\ -BA8A42A5079A1211FF373CADEDDFEBE4230384AE50C0CADB777689E9FCE03021:\ -F2CAE7EFFDDCCC54DB0DE734347ABA8D - -5ECB18F27BDBC1469A4EE7273423D51CF53DA0BBCB3773C04F90934DF1A4E686B76A2CA1\ -9B325F91CBC13CDE9FBE0E7FB1D205D78EB92DF19A5AD39D9E5CC07A4329EF14115D5A89\ -4F4669D6B6C3E920:\ -47D37261C8ECBB954E6980BE6EE8A89CC31E83CD8703AF97B40308FC71FD5C204C9FFF43\ -B35BC9709CF9089BE6EDA572EC4B580F74A3C25741B147D3F2D06A7C5BE8AA35DF232546\ -F93B603A91A4D4AD:\ -00B1CFC598BCD9B708AC9CC600AD951E95228C4941FEA43D3E9F9C4C4DDA9F57:\ -AAA2D1218D7E5586150602486330D79D - -ADCBCF6C2797D693DAECD8B395FF2D8951D9D58748398E1886146CF39B6BBE94AE5725B0\ -8DAE80061365508ADEA2F7E27006BC2EB8296E441D9ECF3A1F105AEB72A7B7ED65C0ADAB\ -96DDB4C56D3E6CE7EF9B:\ -204B284617F9E475636543C231788FFF1566DAA35B7188BA5502116479D8CFA3571726F2\ -3F83EE62960DE1C5512364AD31BEBD71778926B4DBA86C69C87BF62D590FF01D43A7FCCD\ -9DF526738DA3ECC07313:\ -D9E06DC86E89570392B95234B2B4DD1D424FB5D96D8E5EE6522EC023247240CE:\ -555BBC29444DF1C9B19DCC36E8F526E7 - -D1E3667AE3F908CA70E42ADB571765C2977A7597AF1E93568BF144FE6B8774AEC889EBE1\ -C55EB673F2E05C9049FD38FA112413C1F5DAD6400104493225B2A1FA2EF314267671682A\ -96A15FED5A0920BEB7915759:\ -0D8B1A4D0B4BBA07DC3D66FEA6C79EB79845A303A99D0CA6A1363494FED39D9B2028323E\ -A66F48420620AE16522CA5C036984E431645D55BB71C9729786A2942D246763AE14D4D7B\ -E8182F4412706F88D745D29A:\ -8FA2C547E80F8370524EC80BE768591403BC8B84A31E823E1EA7B58D13C2C1A2:\ -FC552663E080DE3AF70F1843B20C2321 - -9E66CD55C5F5ABE2D9F479572D1867AE07654DDFC4B09603A7268BDB98CF22A15EB207C0\ -5946957927BF3442FB92CDF2BC64CB1AAB4267884C65AB29F7C7F1AAA0C797DA1BDC2FD4\ -7E02566998933F0371F054AF75F7:\ -4998F91D12BD0CD7C9C3E4D7E4AFF383D87555C75523452F7764B8CB017DE1C9775DEA51\ -AC4A84CBC77FEA7CF4D4ADB3F79279E73EB443513AC9FBFEF3F210F80C553C758149CEAB\ -515578E988A8F49D4B87CFC7C3CB:\ -EA2BA62A693024D30A6F86F92534B011D6D8ADC81E6DF43A15F1A38B077B47C7:\ -B09F47C60D4A913E80DBEB9572CDDA2F - -0B515541E94644E05C6D33B0DEC22322A23EC8666C40697D58B0D7E28FE278DC8C6747E6\ -0924A09442A04C167D48CAB29D095BDCC0EACEED2C841FBFF1010769D8829EC1CABB235D\ -CEE28CC09C4D905CA1CC8BE624298D76:\ -0FAD0D901C43395C015B252EBF61F66FF41713C2DF9AD2245E1EC1ACBADD2007412DE768\ -E5C986AF3F26FC489676AE5F7507AF559A8A23B56C417FA1452D92CC6671F6E4BA5C1F60\ -819811F9704953BF349CA5C4D3A0631A:\ -E659BCA785C4BB8BB49DD36F132EC4984397B2665B97689FFFE7509F1A1D7551:\ -069C61C342C4DBEC240C709C3CDB361A - -D2C5A20331AFA2FC82F0A0D64160B4EC447FA5572A26EC3C64C9F736E43B0915AA7C3E1A\ -B6A9D36BE4A15CB26820E29AACFE83024959676FF05376C1AE788D276079F199936AED0F\ -0F688E42E337329BEF9336FFA36FA4005399:\ -7DB91F84F3477868CDC873EE908DDCAB90CBCAF18C0A70791A120AEC86CDB215E6221A70\ -14482F9E3802EA3467001D3601A63C92C6AEDFB4946845F13A52351CDCC6D5F922D19DD5\ -B1EC236E822F62655427E62A4D0E84914622:\ -FA7AEFC8F4B784C193C785B93E90D08F8523FF065E19B2F8CE817FB401A21FCA:\ -A66594B33C8A53C811C2D97CA6D14303 - -7255CF6B4E647EBC0AC95A5695F0AF0E9AAF91E3D95749D6A49719093B1200B9C6BE09B2\ -6554E36EB6652041744605EB051062C0B6D1CC01257709F751EB7B9667AE7E329E43EFD7\ -44D96300958FADCA3C106AF1733CBCA1AAAF823E:\ -E3D3CF5237D3A038F5F6C89EA9FCA960FFF212211D3C2CB3490607C9957B553335B18C55\ -1BA25506EB2CC3BFE9F3EA6CF0AA9EC434AA592FF77B61BC06F0B2B95AFA8FF5FA494E94\ -DB731F57DE8529ED53A50C42F986C16EF7C7A940:\ -A26E2B0A05D0283D38D7169BC2BA47226EDD259B8D57B381FFEE069F1B98046E:\ -C4E7CE77538E9914BEEFD56DCFB571B9 - -AAD33FEFE3F84DF826588A512B14CFCC1D853F2AB84203C1D4D8F8B86D6AF3F7173F6A6A\ -A73843D5658489507104DA3D7BFCF5168D986464C3448F234CA69BE3DCBB6672575564B0\ -2ED92FA0F3877DDCC06D502A33D6957A0E33F2DAFFC9:\ -CD0C9764841179AC19328315A39CD34BAC626AB5DB485D0F9B46059F54E08C5492B908DE\ -07B85E7A44EF9462BA8E0A81FD1220C558295A948DA4DAE908535719C1F88B1560673BD8\ -07F5262483B40AB9BB0C64926FDCD1061E504B4EBD76:\ -6EDD7092DA78BAC7E1AC92E3770134A03D2739FF5D34430F7F4D4D6E9764B319:\ -8AEEDB0DE46407E08707969C750E38DC - -8168FC2661FBA3600E59774138459C2961176EFC931CBD6B5C33560078EF7518635D6939\ -A98B0767639E0E93074057CCA6883F7964A1668FF9F8210E95D0368F6FAEE9FA8D7D7779\ -2AC00EA2BE1146BF56204FE906FB865AD039577C01234AE2:\ -51A47CF78D2484F3451F0C2A43EB428379D1F6893C1B8A39FE3E60F685DC87C0B840E9B9\ -6FF58B5D5FF56AF2D9E6DD1B2701C68A0E845D4D5976BD315A353D67347BC8730CA8EFF3\ -AA0DF4BD6DC8E05F7EA07EAF2C39D7D47D9D84B474E7ACE7:\ -BBF6DF7DBF4037FB25B611E6A2930DABF072F65AF0A6457CB9DC93972E9ABE7F:\ -501092F826689BCDFE80F092C26B5EF4 - -81EFF330211A83455CB238BAB684E0067FE4067B8C991BC1AC8E7633D080339190E5D94D\ -B793154FC74FB0AFDAED0804E3C1CB51D2C1E13041FB81B2157BC60C1FF633D16CB4B9BD\ -331420AA12B95CC7AF57C713C24B727846B0C7227961F2C2D36C:\ -6886E3F70FD5F90852F3CE559925D769036D93CE8D9476835D517E0FB32E9C96D0388391\ -30C1C25E1B169ABE4BABA9B82C4ED74DD45F597867C5D53A0506AD37542F25CF58F4A362\ -BA222FA1DE9038A8FE543BBB44D85B2E0E4738067BDAE5DF7060:\ -432FFA626DF2A52CB0571B6E90C61ACED99991FCE9C16BE3B63F32BE944E2E56:\ -5C8A73A4AFFAD697BA8B1BCD810D8F11 - -EE2EEF94470FA795A889D2669CB2B80D3155C8B61BA73019CCEEF203FA4EB1D9AF6C1AD3\ -B2954F7315935535333C758A4EB3247E19B07308569400B897322A4752612F0FF13FF3A5\ -361DFE0DAA88394F3642B1C6270718F28BE8C76C89ED29B6A6B0BF94:\ -BA17AF1457C42E6E6FDF4F98C8E45C0FF78D4849039ADCE1A168A6ACEEB9F419F49125BD\ -F26E443EB783108219A2841F82499FCF6870724044D9CBD95AE1F4E2A3D4A4C44C54B2D9\ -90E0DEFA120414ADC438E66B298B72EBBFDD7BF38EBDC44143E16B69:\ -A249D7A363F984C302E92C5F94F8896DF3F776225C022878944FE2C2CC5B4C19:\ -5EE7A0639A58783D7E82D1FE5AE0DE2D - -577B77E72EFE7CADFD281160BEB544AF2F28B41CFE4B92C5D770B322D40DE7590090833A\ -12EF4FDFB0EE57CE0A4A36AA71C0C39B33E78EC4CE15CA6400936E1561FC6206916DE9B0\ -3BEB08F90930048F493C05BED453ACC98FE7AB2256B5271A1E8958D07AD3:\ -A34F475248B72AD9BA2F461A690921544CAD263EC739AB3ADB4E42652A547553B3A303BE\ -29F23BD9BE7977D6750E50A2106ECF52C0A6724AED2EE8D482D09D0D2B9AFADB78B357EF\ -0F52E027243D445B5066572B0CF8812F3E19475650FE85DE610EEC640091:\ -AFCEECF27458C2A9B8F34603C639A5FF1250F1D6DEC2849F0D74BFDFAAE36660:\ -5C453B6546216E318A6036E803322401 - -4A0F51F3716D41FC3E5264557D19CA35FE3B70E215AE6DA3990D1EFE383B9DE7E50DD085\ -5F751F95BC093EA76843089F284CA6176D2F25999230F6A5B9670059736CE084CC167274\ -9504BEC04B22F26045366030599337D1DCE783ACD0BDECB76DD4E9E8D4BE9421:\ -D747558707BE24371EB6DDA6B5FF138987CDC42BFD71D75BF1D6DA35591E4B35C32F9F07\ -A1C0B82A55AD28E4DFFE43764A814CA13D60EEFBDE3345BA454D49179662ED53A9F3FFE0\ -92D8DABE481E3DB0D7E34D6296102BC45D61E1719C864FD26FCACFDBA986A6F1:\ -EAA4738DE7B609D36A756B5DCEA1CF8F4359248FD8A423BAA925F0B6BCA7DBF7:\ -7DDE259B3EC5CD93A2734626A9B99FF9 - -D8D191D620CA6DC8AE66658AC39D87B8465D32BB2637128191F0F92E47C7E99E01FD4B8A\ -8BAF767C8D66EC280C77E877EA06435A7EB72EB477CC2BB6DE52160E7B66F305DF97AC35\ -C821F418E1FC56FF8617B9B595CE824207099A8D9CFE24B616F14EBCFAC508C37127:\ -6A320C22C68E984F0308A5D626C16343D268693F283FD71885860FBEF767B02E16834BFE\ -FAA78B6A806D2E0D1B54451532B4F77365989259B8B48AC65C0B730951DE373B4D51276B\ -0D364BED18782613DB2057C4EE9AACB56CEB2D0857BAD4CEB9A190AF7B9E04B8267B:\ -EA42B4BBDAB135C2B0BC54A539D5C9A3D9B6EDF21C92763CC8F468BCA9CE5D2C:\ -013847F7E5082E4F5FD6DC16D754A80D - -A7033720AE2A602FDA4BA5127C4EE042858D0376774704D582986A848B2A0DBA6DF135CF\ -3F1E5D65F68E8940858A35E9C61E7AE2469CD7B08BE72069354A2A13955FA21FF3B4DBC2\ -712647AA20D73428D426F9B279B5A0C82E2A2620F836B28B03BDDEF45FF3366DD9AAE66E:\ -7FA21E16C5213010DB8F3DDBBDFE1E5AA16696875F632EDE3CB31B4325C4E2135B9D2C30\ -42CEB5415306D0FD7AE237F26E3F135732BDE6C753D0D844AB8270A094D5B24F6C753EE8\ -6455B2E936F2F5EC5AA4058099F6929C95AA2AA6CF70CB2C519D6854579CA23192AD83BC:\ -AB8512537C3519628BDABF83E005E8685A180AAC1988E48E39A95030BD4FA6AF:\ -693E3B87BEBD7D144FDFC1796922F843 - -E84897FACE6ABD7B897B935DB435C22299FB4346BEE1C4381948622ECF3328172D0C3A48\ -A30EA2411201A5907778C994EBE29637A290EE6DD503B6EF1D53D368811D5DD731E7E44E\ -27EBB7382E6AD4C74F49FFB62CCF996FDC7710B943334284A38957EC822B4F448B7482CC\ -B972:\ -C5B740D2E9AE85FC5CFB4ECD1E375C05AD9E5040A8FBB149320C263150A83F2DDC3FBCDB\ -DAEE0BEB6C1CE6EBD3713DCA848F87200922C1879238E49DDCA5F931F1EA2CBC586402AE\ -B83F1BF2175341D4937CAA2B97F4BB51BDDA63C1F50686F2C40AACA7F1F049F08D43C6F8\ -7E06:\ -69BE0E539EE3C48F260249A10B2DCD3A63BBFBB5AFC85D9AF388B79240674A6B:\ -9A1C7753E6140825999B5695A2CAA7BF - -54D9C7F322D68ABB78ADA56EC4B23C1478DA181F30C32732C9ED38BBDCED81F063255395\ -C52E8EF6BCA23CD23A70BDE242DB86265C11777A13CBC9752F2ED55CF9D816C2F83AF85B\ -25001D486F5812E39F4F661044091E10C3429894E92EA4F87CC998E22ACBBF867D3B5B20\ -C97857C9:\ -1C4D79F2EABBF97E147FB8369933B4C7E7BA77C6A539F571AC2AA8E37C5D8BBAA1308DFB\ -BEB2F892BAE9064692A20B8A2CE2A1DD8879160C7E46E2E5039D5C32E50BDC961F3A7DBD\ -A36AD5043A87C9F0583EEAF9995994E764E19B62CA4410A87F33DEE40747EC23CE6E41F2\ -80858149:\ -B66821FAD6EA6320F3B5025EF909411DC68120198DB4B2A7BC148EA922F64DCC:\ -3A875E75096B58800EE21B31E39BF38B - -0EDFD9C739C9F72766EF8962032C1003669F5A648B0D21943E99DC5BF7A2507985223324\ -2187574B279FCFB57182F8F9832AA9E44D15ED2D8386AE4572986FBBE0E6E0D5D3AA4DEE\ -E2188614F7A8A381B335FCF9B899B86685320D457D85C9F761EAF43F49B9C9061AA606EC\ -A4750FE198D2:\ -87CB631FA8E039C050740F72698E74A93D758BF0D090B1993D6F7042E4E3A6360D0BDFE4\ -5EA8423B1C0FB9ECB9514769890BF994BE04E7A17874866FE1A15CB9C785B0A103F39384\ -A54AC746673A7A98D9F9E20D409F7E172592CE58EAAD74ECB2BB56C95C6CFAA6309887D8\ -956087009252:\ -33B871FD2A012F18E3914F1702AF7485BB793B7DA154804EAA715136B568BD6E:\ -596028337CAFA821457B88131F5E644A - -00FB363E56B460D690672DDFC0B71DF6E19F5A5E74E6E85E936937A054E8F7D87511FBEE\ -4A982792196FE8456A849AA1C2E8310E66D6C4BFFE084E791A5EDBFFCE270A4A50E5E238\ -2A18C3B9DDB1B71EF1E51B3568B75F423263E025D4E36012BD4350C226DC9805681D6F74\ -52591921AF631F6B:\ -33B7C9F0C16B82C6D6B08A42E1467592FC9F4D51DF70BFE52139614AAB3FDA3FDC97FA0A\ -235A2AF801134B58CD643E325A020AE796E333C9B3C3DF1208AA7CA5185B3FB1A7FC3B79\ -E717FE1A8B4AF71C96C2A58576CF14906E0CD7A8C4FADCDCF28145D26131DBD656ABF6BA\ -7D522FF9FF23AF29:\ -51D9223DE781C2931F7E2C08CBFE7FCE5CC2AEAE58D22819A60BD9D4A688C5DF:\ -0A55917388EC7A7648973240F8C2EEA4 - -85F25B5F5D3E68479A0F84CB9F1D92DFFE17975C864C8A974AE1E2DE60292D281712952C\ -AF99C570CED2854B6C98BDF025DED8D8A873AEC8276AA9A1A6711C49FA842C4B446EA596\ -3994F33C74F7C9074B4576750770BD5E5BD9CFA01EC26440A122A6BA0E9A5E4B490581FA\ -BEDC940EAC9D6BE86524:\ -E4BDC3821AB65D06994979873EAEB03796A2A8F5B4507411F6E96EE5A246118EBCE8BD66\ -9514E234A991D708FF1704CB811ADDE53BAE3A147EDF0CAD867ED1547F4C4CF7199B35B8\ -C548D037E494E9DB52ADCDA17129563FB928D13F8EB153A4BA85F330F263FED7B14E66B0\ -C37CDA03133158D1A0FA:\ -FA54E69192980C674DC51DF702B94A43311661E98AAC776DD7F09FEEFF530B6F:\ -DEE6D2C5DB36158D964F28370B147CB5 - -54E53C0739F2BA49B5A2080E324089051EBC24783771981AA4EBD0E63ACC86BDADCC32AE\ -88099729B4A72D8969D2EB1540F8A7FB3B79C5A0A7F769054EF2EFDDCE4BCA0294AD2B02\ -ECA48840A2A0AB20437D9085E905AA2074FC8C3561C564F1E992FBFB15877B7CB54DCDD2\ -7BECDDF9AB3A58699D4B901F:\ -6D4B53FC1B7FC8B97BA8E1D1526944490B415D3D59887437A24F8384CE850F8005512A8A\ -4BF1E79D03AC1245600DCC83EA21195835582B041B5AB2588DA8BD956D2FB69465485452\ -85C2DF36D26CD09B082F1CDB278F86FFB6FEF9DCC3C71E9CE6B629D7B2897B69CFFC2E14\ -510B4DEE8B9D957FC5AFA769:\ -D22A6E996F80C4AD83209F4E47A17D78EC0F1343CDA8890404FCA4103D038056:\ -3E4EDE2C0488BB09BC4ADFB3D1122E99 - -2A365C1E10368C49339B3F64A7F25D6682E34A3BB273DEE16D6679B7DEA80FEFCE351964\ -587CB68A939B36D705A32F1760995CB3B9276BCB06AFF5F68CCAD25ABB7CC702D6DFEF85\ -722303C4D27BD81B2D42D2C6A47A9BC4706CEE256B5CF3110705753929B95248761234DB\ -E773C05E79EC9FF958DFB728F8B5:\ -75BD73BB09EE09FF5B8E138D84D776BB8D9B26274D42B012B1D252C22A0E29C66B2C6988\ -0EEDEB0F02376EFDE6F02C85ACDC24BF7AAB725D1CE86688ACB31C5C91DFFB290968B415\ -F7342AC9D60A49F7CFFD35D350D4B63DE597127C5614D609CA27EDD1CCD869D3C4554C30\ -81450A67A2495BAE987239937DED:\ -7B7E24D8792EAECBD7CDD6A43A1D0DB9681C8964D1A55332103C3ED167B2CAD7:\ -8EB77D48DE2CB3E862CBCD9D53234A46 - -BB6817631F1F0A703F4D5896FF5C3CD94187A82F8287347B80924856B84CAAA3A05B892C\ -C8D8CAFA85F65DD1922F017728CE2E0ED7D4FC9CE844AC9FEFC79FE1EE7181939F4B7A91\ -213880D6B725FCB8348A4879641A628B7BEAB77673E4CAE70CDF36CC92D3784EF7D529E9\ -404C1E54A9086D0C33A50661295ABB24:\ -A2875C6E81960A33F8EC626B9E649747E956690DC4DE11801AE67EFD2B563695CC8C999C\ -1784FBEF30B753AF38C413E361D523C42521A4DA656BA0A1076E8773A335C854037DA8F6\ -E84EB48AAFBEDEF12D4451E9FF1636DBE938960753D3E0FE96165474298512792B8C457F\ -83A8664A4D679D06C22FAE43465F9549:\ -93C474796CFDA89D8FAC562ABFD5426E1611582D0FE40511A503119A48A07202:\ -81DB28BB02B082FE9F40675F752B9F7C - -AE29C830ED344F0072FCBDFEC9B9C634703819B24397D59C3D5418B47DD3861B5CCD2119\ -66B4DCB3FFC5E97F6B171F5C51D75B18AC13A78E2CDDEC9D4B23ED26CBCEAAE29FF78F01\ -C5B4201FCEBF7BC029C7730F7603EB456D2AFBD27581BD15941F85E816AA6EFB0D7408D8\ -5F83AF88AF157D3C90BC849031CB9B410819:\ -835993AD13882518F2A1662CA9B4160BEDC60E53083E1F8D72CA3AE2F890856E4B52832D\ -A83B341D9D992C0D9E489BB04C75149624C6D645BB9909E12711FC087C56E1210BEBA66B\ -DBCFC865520E4DEFAD4000CE0EC528916A415C4661E1ED7095E5777BF375DC31CED5F966\ -4C79CB3FB80C5EECC2067B4313CA27AF4F8E:\ -11C63D070095FCD408DC7E7596C177C0A09961B2BDCB6E7C0F300C918E7E830B:\ -41EF5DF5CF14D6D2C14CC4CBC4EADAB7 - -BFDA49CDF67A114D29A7949CEE9BBDE5D26FF8E35407A266E12F98FE1247D74A1005366F\ -526F7460FF5B5C45D6791069BDF075C8BD396BA71AED8B7F812F0A31403046F30418A11D\ -B134127434B14CAF1E696DE716B41AFAC8FAC96687ABB8A81E1EB37C0C518806673A7395\ -AFED27408AF1B83B3EDB1D1AAF54B3C754E8361F:\ -D645EE5B89B1FDDE1056BFE827B8F7C2DBEB72E89E8ABA4AD0915193916EA8E6AD540288\ -69D0B1E71E396881006482C013B25915563C492B55F6CFF5DEA950590228899EDCA68C81\ -9B9AC2A485CF40023CBD4465170232F429D06DBB42E4E2C9B5E201EC41E4DF5C9674A1D3\ -2DD33A341E2E0D13351CAA4267BD869BB5AF2804:\ -BF4DBB8609E7AB12773DEB38FA1FB31DEF23A89137E4B292EB569028B6A5F836:\ -FE53D28C28A8CD12C0D66B79CE6EE6C1 - -967DC68154B9B3957216DA8538588B899005DA3D2CB9500B1AB2FC4EE815232C01970F19\ -BF4068081EC07B041A6AC7A2FD97ABBB447C7AF73C0286EDCD99DBB6FDA189BA76212EC3\ -7B23A72FA8213D5C54AE716845E00262266400DC041D89AA69F1DE8B600F66B16485FFDB\ -5BFF89EA33625DADFB00DC35827C4CE73EB098B3A6639B26:\ -DAAC288ADD605085CBBC9867F0FBDD007472B15F34F8A7A91F16208CE15F0BD2DEF3FEF4\ -32DF84F66B1463777D3B2F0E3D2A41982BD845217383412BDDF2EB628EC8DF59240A32F9\ -FE442E334CA6670C6F3AFE7835C5D12E064F272C610F1084CE39380E029D050E5DC5676E\ -D7DD090FEF19A547EF90258670B3A49349728733E69CEC34:\ -B6E12C2EE1A50C4860591BC5AD7677BE5C77120BE31814A03B1B308198853950:\ -2E78B846599FB10E51D8AB906D7AC754 - -6A3C46C05E280864DA7660DD5600F4050AF7EDE52B786F246C2BCAD03C8A88B6BBEDAC3D\ -5FE79AD40697BD88EEE4CEB3F0C8DF2F0F5381321D8C6E89049728B0A0DA9A71AF00DF1B\ -9BA71565C73F042CE22FFAD7B9DE33084BEE400C11E6A6F8398AC35E816E63B42AC23098\ -E7C5CA9B4D78395019B6123EA198EFB6A2E92793BBE243B46B1DC872:\ -2178CB3861AC4ECCA38D4C31EF1EAB6575AE0012BB4AEE9615069F62013B920F13797DB8\ -E432A8DC486F62A9F219FEFA356B8AEE7B1BFCAECE0DFA4F94E22A2219F6468C2D15A69D\ -11CF93B67AFBBB98F185807D32B794C6FA8F22794EE880084F6BCCD8CB5A7D0C59D0B737\ -781A60B29F17290D39422BE10A6AE430AD37C717D5C461EABDF8862C:\ -91E98D4A6EE9D7FD83D643C3BA829746FF2EFF77FCBFA41D44CE95C4CD76CAF6:\ -7B659AC1248FECCA3EE765ABB8D93D1F - -B0B0645AFA0E15A28D3EB6ABCAF31C6996CEE3C93B76F957424FA82B174BB3E9945F3969\ -094C0E6E5544D64606B54575CB6CD6E40964B84E94DE2193E7B9A00D4C5D140976DEDEE0\ -40585741F7ABB55CF8EE815F7848C4CD48D30C16783E76ECC14D384F480CE896532CF6F3\ -67E23633642794E6A913B871BDD702934E8968EBE1B2859CC62C01BE12091CFB:\ -406EB5C237784660784E9A1F477E4B8655B07FC54D1C69515C1B046005C05B82D8065886\ -39EB44323FCAA1F797D210FC51C91E3A51AE8236C0C2D6C521F2FAB29E89361BDA2275C5\ -43B54110AF60C7829D6C5CBC42BAEE86FDB0FF22C08EE59E81E63F0A98A6781926770B5A\ -C7792CCEA9847055813F065225B49F387E474A333D8B50926E3D7864035D75C6:\ -DBD7D9C318FECB268FF109238110F96FCBF2400BE054071478C7A2AFF75B384E:\ -BCDEBB1E6BC37F18D49C0A4A1C7665A5 - -C47325105EFC7B78FF868A0E1CABEBB41B6A184780A52AA1D1E78A284C073089762B8029\ -9A628B3B22124250CC683CDB54DCE31E4072708C232129D437B89C0CB8BEC7A8F658291F\ -50AE9C66A0D62E26528032FBECD9B3112CCD022B7648BF995ABC46C57E821B3F3CE0EDA9\ -7358F31024F532C5D560D016CFD316A04FDD29588E6D50E681068EFDFB8361F93AA979F5:\ -D1043171968DF2B850257D7D14FBB7DE4E34FE62217E9972BDE0283E6EB2054874C6CB8F\ -B66A18A6F6885522D719EA965A0BE5F079370EB76587B8BBF5672FFD6B4390956C5B81E4\ -0AB21A15C8EF17D1189B6EF8E931A07B192ADDB3CEF0C66B28CF545774762CEC9968EC1C\ -06FCBA860BAEC78EE635495137D4E7B659100C59BD4496A850BC0FCF464531181F47EDAA:\ -B58E1583AFD26D09ECC1B81270BDA381ADCE90DA1A6096D27A61C8DAEDDD9F4E:\ -7BBB7496BA015237C080354FD061CBDA - -73DBE3EF41EA394F52138D24103977D8010166084F8FECFEA4C5327765735D5002FC7808\ -955D2DA9E786AC33F41A41E47D06E18B84344B4A5ADA2F925E536799ABE3367E0CB181EA\ -720EF44D286DF2223A34030E66FE161404724DB33DDB026FD5C88072D47AAE1BA89738DB\ -BE681D79E330856E4DDFCBD2E998E5065BBE6B3AB93DFFCC0EE04BBBB13E47080C511F74\ -61ECB802:\ -BCAA1E8F81FF49528EA23C4A62C40953CD98F16F91AE3EB6878C7DB5C3A6CAC4F8551A34\ -A5A624CC587A5A22E81CF9405E38913B77344DA59A53FA0BACFA1A4BBF64D234D1963AE5\ -E89159A24EB1237B93F25D652ECBB9EFD26E2881368287357D6783A8F3C1ACAB50FE60BE\ -7ABF7225F8AA0A06F54A63577634B9E930618A1CC8892D290ACD04F7933CF654A8A60AB9\ -00D8E0A1:\ -3A945A5C8FD52A46037A426C32946D59AA9B081C4993C634D9EAC2B7E144C040:\ -4C6D4D342E2582177F3641F777D337FC - -451FC9DCFBC3C8F106FC9C17A81D1C562E45341B4F05B5319C912CEBBE01743AE34D0693\ -0A5AAB36166780F9E75C154FBB1110375B271C297FC46D4B97BC70C1E8B378CB1E29F61B\ -5B0BCFBC8238E6D460054FEFB4A649430AAFDB7F01CF78A5406A3087E9C39FC2D60C4CAB\ -6CEE3DF6A3A8D2F0CD4134209C323D9CACF15308524519C40A81AFEC9736FF858D78927A\ -F66EFC5FCE806ECE:\ -C111527D486F8581AAB32257A7577B062AE1D781CF5B44333D12C3208BAF3C8E1276ACAB\ -0F4C325BC0D3FBF3913B13D2F06E8E64E2CF8017634AC9162EF32324A3465156613AFC57\ -779B9340CCCCBDEFC6476D2A4673DF123E435C6A98FBB8E59221C7667CB831EF2E7B5D49\ -26C9A022204F0B3564C66A9C8A7F494EBB337D148A8681982F70524C467D868BAABC86FD\ -50D5A2BC4C858342:\ -94EB2F6DAFC83A9FEEDF7081D40104F661916D4D68611AE3620A7E52D7C8F79A:\ -FCB50453BF443A452F735A2A7BFBC5D8 - -5C1DB0ADA94F46127F18B21406B6FA32EFD090B0FDEB549474CFC19EBF68D4BFCB3137F5\ -47C48174E79DC87CBF308E0E9306E68B5FA1F9F67E005A2E033DF9034BE4F1E8C53C5D47\ -73846E8EA3782C70E8B1026965C40CDC7D5884F763BE3E2B64AA7458F48B6BC76818B52A\ -FB743300BED3971A416C587BDDC713A8C5782E91AD001E8D3DDD0EBDB978427173AFA9AC\ -A2180F7DEE47FA5A76F7989A:\ -C8E1CCDE12CBE92D8E61F23DAEBC35123564A94BAF6F2511B4BAF697D04EAE69C9B1C8D7\ -8E6383F9EB053C6B09F9A2A91EC0EC1CEE7801B3B01AF1E9BA4A481A4C7B73B0DC086285\ -C43CE33919DA440C1EF892D9A254FEB9179BAA1183EF319702EDB67FA2EE08F43A719D5A\ -EE5D3D7E10F0599278C70F25104885DA2F3CE797D3064FE6400366950661B6F703C8FB9E\ -1F773D893DCAC13DA94162CB:\ -E667049150AA0CC53BAB66F3EDFD5C32FBCBA264A6EB12D4563EB5E1E73F2D86:\ -EB8D65B2A91A7003E9CB84241B1DC009 - -734BDE1B88BF91B571B7EF20524347DEA07BDFAEA8D194E00367A905DAB483F76F923087\ -B1E307EC990148E1C3B2E9DCDEF1694D9CEAE1A86A2D092D84B1247B5DD627B68E6CBEA1\ -7A539A5C650E8A6713ADDC2517B8FEEC7656264C795B1B0034B30B302DFBBEAAA12AA6C4\ -2BB3857A3C641A7A760C275F9C01521432A697984E12C2C7727A538834E90750D4FDF44D\ -F7083842090196A95D2E8143AAFF1D5E:\ -8289B871A4AE2E14F7398E510C5B522883893F59C8ABE42567FB879334A761E5332100EF\ -A7C6F6D4CEB8B6778D0C4B543BEA8B3EA58D198DC3FF02A8FB5CF063CB40E607087B5F08\ -DF86C906F14336ACB78832F20303533F8A7AE39A95C0AEBFA2985F97DB96E84EBB996F76\ -491D186ADC6D0C681F33F0FD3B42632E87E10DCEA36F222E4E7E8B4F2A5CF58D341BDA67\ -9516C829370C251824000BF463A75322:\ -F26DE261DCFE004B4F0B322D1CB4752F2D38279600B0A9421E1577C863A7978C:\ -2A4169C8E13B81AD96DC1CEC8723152A - -CCF6EDC92B1D17CC548C9973270FA54865DBEE4DD450683C7D542293BB2C59D2163027C2\ -29055943F7872D8CC2C9889B12E9B409D9EC55C346FE69998F013256A250FD23EC8C23E3\ -6B5412101FB35E7A0C78124BF23AD040327C608849E720EF644A552E35A2E98CB8ECC28F\ -FA8521BC4CD947E4BD24E4A70AE1A29572C746CDB98DE74477FF79101C9E75F45B55D6BC\ -2BD0FBC9CE24B569DBDC2DAB7FA88A07CF9BE2A0:\ -80FCDC8D13CDA4FD4653BE225654BD597279CE58C66A3CF67B95A8348DC976944477ADC2\ -0E9CD0E24C7913C928B2E0C531D43DD7F708FD4247D87954A7AFABE300085D169D280FCF\ -E16E580A0FF5AB435A7B64FAFE9928A11BDA14FD827D3B6DA14373879B4FF12F151BBEA4\ -17DB039CB8226AC91C8567B38DAE42015456FCBECE1C1CA8F0D2CAC3ED75F3D6F01D8F32\ -2F2822D2D4B0929D2831D9C0A801D49F77EEDA99:\ -32EA9D65FF14E80EB4AF36A9C6E8F663CB37CB6BFD131F14B49AB528614A613F:\ -3F1BFB148CB229C2E07719F6F99AAE22 - -428D69DB8D1BADDB36EA5950FB2F99124A78BCBB0A7A9B1398F84A7E121637B48D12BBF8\ -5F045718C3F0409633E263F62F4992F4C6D497AD7093BC8BB1BE5663B40789DA824AC2EC\ -929C5FBB5107969688A9DB02BACFDB400ED395091A98DA4F806CBD7A9229AB96FB12BF50\ -2243D810B6A9B905C48B7612F94AA37E671F543FAD6BCD9C6B181506F447E90F88F050B2\ -C7B7199B88AE55AB922FB1BF4A5EAD00F71E83EEA2FC4F25:\ -5050237A09192DB1FABDE4EC7E865E3969AECB8900CAFD72B223A8E08A34AF993B1F3018\ -32DB0620BFC6757BEE80D215DA0D6B23666371158876E0422D540B2DF889C9F8EA92D181\ -A79AA8BDE50ED123C0301527C0987C4EC1FC105E6B8C0EC12750AC13FEE9CFF30E5A6DFE\ -47A6E63992A803F94D6E79F5693292C4D12D963BAAF42727FB9F6B144F6AFBD819C54D37\ -B3558EDEB4A049C7947E83E68C6ACE0203C882D9A038727D:\ -4A1EA133F919B366E3084F80E89E091C87F5F703FC9185F5C8E34E14973DCB2C:\ -CC96182632AD38AF5273863621B25E55 - -C6092B37D8B6C14650D8AB31815C321B7923E9CAB069598003744F33EBEF1A693CC3E03E\ -B801BEE76182BBCE6CCAAFAA061250F5FC6BE6E07A3C39ED3F4344982E2DEC0A5075E5D2\ -A3218AD1C27F12C55D9BBC1B43BFBB79BAB35F74E1899517A839A54AD5274B8718F2AC2E\ -8F89A6CE94972A0AE020BE5256F8B5365B8AEBFEB63B886BAC9D263107A13B95E29A521D\ -3FBC7CCCD620E134D2D45082328AF1BAC6EB8B917B3F70A47B9D5CE5:\ -3F8FCC0A28C43035C055519FDBB13E8E5A4B35DDC04B62BD2AC7064BF7E4F7CA6C5194B4\ -0344F4C0D0C40AC3696C47A6CC2F800139EED2677E580BFF68399D8AA68DF7A28B95FA79\ -A1CD776739C1E2FB9C302EFB924013ED0FB2B06EB6B031FEC8AF7BB47E212859E1D13EA0\ -96E029EC051784317F63F5DFC2EB9C7E8E249BD88684537CC36785C54D8DA6F512450831\ -559BE2E67B024171A52F0481102C211DE9138120669D1C2A1F8BFB10:\ -C383B62616C48E3FCC6BB32DE3AFE5DC184E83ECB739AAEB94D82E942F0CFFCE:\ -52C109E1FAD94E490BD93584126E30A5 - -0D85590B10C077184BA269C135DD1558CAD1A3D792BEDFEF45BCCE14E9099CC4B64D9864\ -97223B4D3CC9193E37E31FDE74E31023C9D265ED49E8D7B1032F1FA13F50E486F68FBFA3\ -B449F671878BCACA4009CF4607556E85878A2769472D481D30CE43787E1065BAC0506045\ -A26456644E7D5149C54C5C8387F5E23DBCC762E4369D4E7E24C4EB7AA5F3FAC3D76EEA37\ -DB6DE27601FBD37EB44D4C3F30E5688B549A029C22EE2282E408F9EBB259A86F:\ -B317F91E9BABF4361F26F96D001E3D63F3A82F2C8DADC4E4080611711CB4A7D77FC58D71\ -9B6ED93D118C7ED676A5B65CD259B9E1AA77AC2813B62FB869C42DBB0A710D1C986C0F97\ -8517DB2EA942D0F76C06AAD414ADE04BBC908DC428A18729B4D55CA600874EAF530B38FD\ -4318F1B2D97513BD3FF17949BAF9FFF3BB84C3F0065A521B4595E9801B5233DB2023D17F\ -5204D87AE7ABE1ED73F091A63CEB338FE9BDB2B82463E6B6B05883FFBC0AABCE:\ -357D3ED5C533FBDB195DD88811F3D6D50EC133A5E0A36DD256BC0E561ED28CF4:\ -38670C0DFF42CB73FDC3295694CFA934 - -F8891DD530B83DD5EE3EF9050C7AA6A9C8A6EAAA4C8669FE126EC1C78A6F6583E57BEA88\ -84A368302C2D9C00D6F2D8DBBB98DC35152E43B1A9D744BF0FE1455A36B6164F09F55D4B\ -12290418E14A88F3F80A5EF558FF4EE01CA1ACE680FA028E81C12BF8A18A18792AE98513\ -636AB075C12320038C5BD733DCC8305551514D45E098E8E07EF0A293A489DA24BAB16973\ -D270E5D92AF34E6ADF9EBF945648192640BEE963281303D6DE6097E48D0AC4868E87A58D:\ -A54CF0CC7FF8A5B041A15C78F26EE7542BAC19254BD4D421E9A1843C66E9D8B136A80E28\ -31E6C52278CA54C79750CE64F6DAC5078BE3CAB44AE9F4D9019CBB310900282A6BD48313\ -7870CF8B0CDD002C61BBE679C2A87C7B1B1F1632DC57CC277FA4767D77BC2F0273879153\ -69012D0124BA8B2B85D8454499843C5F2FD9DBD584F9E2588BFDBA062C9F0761609BCE8E\ -0CF2B487F0F2C78A1C0B6D5C37D483F6B6EC52B7451B057C2D5FF2CD5F2BA443AFBA9215:\ -C2B6E94866DE53E7B7BF5827D5C0179A530094FE6AC5F44C9B3330D6C855E918:\ -A4EEEA6808FD5626B56AEB9206F86EF0 - -1712A86BFE8C268C84902ED230BACA2B7B1610B5E6837ECB817D5D945E009BF627039587\ -D42EFB7C3966B9E84FA3A8A5363E1077F287150387C3A9AF1719D91CD175A97156049340\ -13A8A39A90EF97974A419796DB11DF04F3AC7AD348F37969FCB4F560B02108674026C17D\ -59D191A92DA7C7E32292D3DBCCB6D3B29C09F794851BBABDF7F455A9F050A069578B6A30\ -315BFA63448CF7A6AE2EC87C507E0A762A18ADD0BE18DF7BBD4F622B1BDCB693B53AB440\ -6E88AA7E:\ -3C43430F459A8E942D7360E97A89B2AD6454DAC2E72F64A1B06233810334C549D63D0BE1\ -C90A419203632CFB5C52E205756B751630DD08008BFFD348CD67C96774AF48C50AF4057B\ -4A3CCEB8DCC2223481AFC79FE717CEA8EFA2759C4B64339B2987175D14B4C195CB8E1363\ -D4F4249BB6F8A769454237FCCA5F848BFC05158F1D27BF39E1777A3A1648B555A72DA4CF\ -5B297DE904DCD84E36EE569B3F0E1F943873576F97D65B8669ADCA2BDB322E4A864DA4A9\ -E09BFE3C:\ -CD9057AF000AAF8EEF7F304A770DA1394F8707E59917A82671449D336167E456:\ -4DF89B713AC1141D62E2C824896B80CF - -EC9A99CC500450A9EDC1E707A9480144E242DF106E840B9E8D3DEA995A0C9F63FCC02117\ -02E8807EC1ABA88F5E33645B754B2E28EDA71F1B88E25B4B03B0909BD075F3855B4F6E18\ -AB07406AD94E9C32730C09CEF69F7A4FEB3F09C83D46338926ED795ED4EFBD2917E47873\ -FB6F516F6E4AEDA8D0310A914DAA25A08CE4528D67C3E1DECA8754552619027FA6FE7CD7\ -A1D9638EDB529445113C09FCA8BD4AA540EABB931B6BE201BA372D213162E14141E3AD51\ -AF9E684896D3566C:\ -A7A266F5E6CADE688097C04788CFD45BD87FC636201D0F484927B42FADEE8F789EF93F31\ -19D0DDE8E3716C3176360B928D3006A9F42BDC12D0591817DBD82D75FBA44C784FDF2D86\ -5E11215AF461C7DD1F9E3B82A146942CEFC56DFA4F8F80C4F0CAEFDD323607F43B33FBDA\ -7B6BEDF9DDB2A8C908E6D172900D2B4CC633C610812B62CDF225CBA62E09A8A1A1D7CBDE\ -1BF1C14CBF4C24080678677AE59166314703A11607C983C5AB3C7F755B220F10DB049983\ -C1EC0ACCB1368305:\ -B86E45AB9929C8382C8B068D619CD8450FAC18D39F31D38310BE8DFB8BABC18D:\ -3B10255473C571368D678D36964404C6 - -02AD0113F276A03AE7A6C336B4DF4092F27AECFE4FE0DE526F6C548BBCA129FA24AAE385\ -0D0889FBB6F99324F7C01C749E5C7EA3F550594B98F4488F546C509CC256926174875DCB\ -99470F2D79EE7532E36A88BEAA0AB336197954B13171897727242BFE37DD15EE0F9BDEB5\ -E512A202AC3BC467C91191E83FAC86A80EEAFE0A8585E293558F7071C375A91824844347\ -5B57044ACA87243CDF11AA0838D9509A712626461E9DAFD0058A16DC7C4E8D69F53C165C\ -3CFD4AFAEC80E4F764DB4BE9:\ -7F3B26E6C98FACA940DE8DD01BF79AC15EBA4223AD8FF243909C321226B7497CCE5169E5\ -3A3A342FB1854C1802A38F87F393224EA8F518F633B04BB8EFB4ADDCD47CD2599249A40D\ -85A91CAC62ECE87834C028DD2F4FA50FAC1E6B591AEA8A454FE3BF3B41EF7C7FF533AD2A\ -5D4D690F899F5CCF8D4DF6D4FFF94E7F7567070B0309A905DC671515AA617018F7C37C13\ -763A445D48A5A4569D77815C1349A7E0BCB01D667EC0613A1EB0F12044DC748BFD1FFBF4\ -B173FE804CD0C91744302030:\ -CC207471BE9C6952378E60D263D69618DED46A78A21D8B7CA94E6BCBC4E3DEF1:\ -44F3D7AE3D2BA40BFBAA37A0709BEACB - -459C134A5BE569AFEBB4C7109D43FA4A5691B113D13CCBF47C06E90787A23C3F9C296B94\ -D47E2606B655C60C26E9DE647F4CC5BA5A49F5BCF458F40938E06BD259C20254F46F6932\ -C63C29EF311B63BE600E5BB7179FEA67EE10F7DA52C1A30E9EF1944D6321C3CE169123E2\ -E7D4B4074254D7C4998ED6C153BE0F79895CBE9B3462122BEA0FAE7B3FCCA09E5F980CB4\ -39A2F748D0E704C0184B56332921E85AAD4214EC7DA6EA8C6E852F7E1773A9602DF512C3\ -4895861E1C61D8EA0408F103E88702AD:\ -95042E5A21E494CF178601CE390B4F9AB388C698AB66ED4F2E7578A10984E30F63BED24E\ -BC839EA91BF852AB63AB170D8EAAF93FF2188D416DAFCF8C30B29455F70022284A6F934E\ -417F582B774B034ACC257C38C173556CC2909F5AF94C0E7E7CA69286CD7FC2C729DF2F6C\ -2543F4B12506DAA449CA990BFBAF39D386F36D490DE0932DFACA60644D7852007EA5532B\ -6EC98789F49E77239C236284FC94B77488FCB5EE37F0A3CF575541EE2F8FC0F2BFB67044\ -7A7E54C63AF122536C4B61B7A9C143F5:\ -DF3DE7C6FB886CE9DC51AEAC38374C29AC993630BEF81F21F725DFD4D6B799E2:\ -825A5B8F13472C46443D47145A1C136F - -158C45549636EE574B32800377F970320B9F861641425ED07021C9C4E44B5F1664046328\ -CCC1064397FCDB67015873B5EB433F52DF4936AB289A8CA161EC6A43E7459DC36332479C\ -704D956E18C86E11A8C1AABADD88E1EAA313A3D133004A34ADCF5E0F2301C3E0317834A6\ -A08CFEFD219DFB5F825CFA794DBA5971E6360DF22E3E0C15881021377DFD3EE69E53841E\ -F08B3F95D9D04CAA005ED15870B94557BB73CCE60B73495655C9C164098E2AFA19FA7420\ -6685D8103BFD9476808E38F8401FC582496A8EE5:\ -DF6250DDF592B446ED6D976462EEE2CB2D7830E67AB9567BC275CBA74CCCBBCF008441B7\ -B1593756DDAFAB05B1B728557F6D027A2A5EF2ABB072F456761AEECAA143795D93D6EC56\ -7D17F259013858513D20CB461BB51C3CD3D4204CBA768A5A3CD4B5D19563FADB62C4054C\ -9F7D8BCAF30F450F14AF29429E3E27C130FBC7B53840A00BACA0281A90293C6D60376B4C\ -6C455C771D1008A542E19B13AE1D4D14E3B8C69FB44550F74384C02861AF985BC210CF9C\ -4625012CEDA24B08842986E2DA30F9009113F0A8:\ -2DBCBA50DDC8EF3BFF1511BF0172A073CE37F42C83BA223D7573A82B13CFB813:\ -68A59DA89E8D3AEC1D4434F7A2EDD2AD - -F3087E4CCF4C82AA5B3CACFBFE367B2F501D1992D6455F10EA6C047A26ED06BF4393D53E\ -B0FD5B8B587B19ABE106269A74297B517D57D89D7CD26009B5DA7BD1B5CD40CB5B4DDA96\ -E495A02BF58108337A4F74E2A33C8EE14E730740F023560B70582EF4D1CE87C3AE5F5FE1\ -546F5C16683A0630342C319E2A5C43BBE7EE522BE44F955B4912A765B1AC476828C0C5E9\ -8948ABFC096ABCFC4FF2DD5077926C9A3F21F85D6B3EA941560A307BFB4714A11525C60E\ -4D70DCCA56ACF6FD3B95560CB6C3DE1342D8FF18828783C5:\ -996FC92E3A276EDF16CA8850CF8C9530364D170EFA51D1C5DFC2843A968E3CD1EFC50402\ -7C2E056AEB2E7AA5DC3EBED6CD25728812CEB545ED9FA552B1D0B1FCEFC4CDA5BC2646BC\ -5FAAA4C20B821A417980572112F737A7DDC93C39B533E9808D86A495547078087A678570\ -1D27D4632EA57D398F217BC191A30807999BDC509AC74AF3DEF4B1105FB8B904DD9F2CB4\ -158ED207614A07FC8F3803DC5BF81CAF15B709B099AC4F1F0968B7577A81819858D20967\ -77346AFC426792B9581202DDB4F1EB17EFFD81CDA476AF26:\ -B09FB55A95EDF75A610A03183D05A8D03D6CD9CCA7276530A72F6948CC074848:\ -0866EC523C35B5D03269F4F2FB004AE9 - -710647FB3C699E7E83D1601D49513706C54CADC3034E47F8C20E1523225BED6FAF93308A\ -653921AB1043732F142196A32329AB98094C580657617967787D738A4EEF541ADCAADE48\ -84113C020026F6AF952FAEB1F9745B6D450FC86A04A9C4D81F4AB15089DC0BF7B1548D4F\ -850CFD97C6732FEE47B2320A31BEFDA8398C4AB0D7FC123C43F642CE07AB8DFE87B114B2\ -28455479AF224BF82B04BC3341D257F4EC166D9CBDB1793946FC2BC08B72F7099128CB41\ -0140DF4FA38A2EA4A2569DDE2E3AFB3164DD2F9D830A831A323A09D1:\ -EE6EFF319198C6C10DDF6F10546A5F38490A9D9858E021F5DFDFAA8ACBBEF0A446358928\ -5E8F1EFA697D08ED42F9160C4E6EEAE1F15D78207FB207565B9DE9DFFCDD96E88766B2BD\ -A996CBD439E45578596D91E88F7706A94C9428CBCC3108E1F61CBAEB184C30E5BA0370E5\ -DEB1A9B8A42191BAA3D722CEB9DF9ADB69764820FA95BE1B48493BDA88030469CFD41F5F\ -13731A983FDC9B2CFE562881BC479253A126D57A8BD02BCEF2FC6DD8BF1AB265C924EA40\ -F5CF75F4E36EE10133923E2427E19BADB34F221CDF4673D871ACAD8B:\ -F6286D8D4FD9D8B373C7ACAACC517DD041E6E8A69578CD444B22579B4D3C3EBE:\ -621D087684EF405E7E49478F145FBD45 - -707ED22B1DE93A11A851C0B14B1CC4B09E6431FAF7F11E97730D1E9F5C729D9DF12E4DFA\ -53E88A5F8507FAD0AB721510E02EEBDB84EF9B34120FFA1FD80C5C0C3503AD02AF96E4F4\ -66C462C3B4F3D26C78DF8C08A551DC39AAAF7EE05B13D2E1B80DA5A1A532B13EF0D1B065\ -9D2A0B43246E52CF8B6CF4EC5918769C21C51C6D1DA8DCCD2F3B0360248480C36D4F5CB8\ -317973D42FF7DE23D34329FD57B204EDD045BB87DFA5913819F15C6D5049DF1DBCC696D2\ -4C34160249CD84AE0E94C9D50A5EC764C48B26C7C8E28BBBF418525F9FEB0DE1:\ -4F9221B68E45395D5C923C4A6F96826018E207CEECC5DF1560A7587D15427B75FF3188E2\ -19D5EA5F92F909B129D6CDA2AAFD9D52B8B0C05B9E9363E8117E9996923ED6C59287108D\ -A2F5FF3451823362B2CEAB17E862E622437A990F7B23A9FDB6791A9FBFC1C06214673C92\ -41164044EFCC6439AE42079D3B1130320A878581D2EBD264D4FB53ADF5A60091695636F3\ -EB58B73A3342D3CDF833F7E82D6EE1FAF65E327DBE4350307CBD631042517C448F91603F\ -2BD6038FBB847B53F98A8DF30205022C613365C8C69CC55C6B911CF3D5567004:\ -6886D97D7FB73175DA93375F14FBA49AAA7ABE901751EB42CD243B568AD6DC18:\ -9F9E1F292C86CFB45E0334700755C190 - -0612DA958E54589E58F7C2E70F374D0CC47109B326598E46FCFD23553E3D84C703475618\ -68DD38847E0096E2FDD36CE8997820679ECD5219FA16CC9FF0F2DF8AACF9116E6FC9F926\ -1674EAAC3142DE0B9941DE77172FCA477759531B77348D914017B5E1896DD87B3DC0CB84\ -4CF642C1919D25E21E2A94977065621A4433265F590DE23612FA6B16B031F6DB3648A42F\ -57DB126211F6FE7231849B5B54694DD736E512D1EEF0001BDD94DA84AF47C71FF61F4951\ -019CBFFAB709278DBCB60F17EBAFA7DDFC071ADB89EDD569CF4A8C7D566FF1B7E20CB0CE:\ -67943CFCC4B795A311DCDACCFDBE44FA84FAFD87889892F0410166017B032B78CE7B96D0\ -3D00222424E0D363DD321634F4D151E1E03C357BEE8AFC7C561E8629EC55EB52567EFC8D\ -906C2AF0E4C385A0011CCB9E254834E55F7870F10BB563BF0A732CD6AC6F8DDF19C0D3E9\ -AF3A7F54C38E66BBDF3CF7A00361FEC2F5A7EBEA03C4C42AAA0A74F11EC51D3F5E1F78B9\ -0B09CB524F7A5DC8CD561E15EB866449F4893FD49346290A63A8D478A0C5ACED66550BF6\ -4D2A0CC5AE29886DA6DF798D8EDA7258B74BECD3094D6E83A61A9288EA1A8D0FA91E6F19:\ -F1F03359760DEFBA1ED11309F0C1D27A311FA4DEC398107B2D0AB2E0EAA895D2:\ -2FF7028F78B7F5623CBE7D592EE5603A - -4202E5DAF05E4E2DA055A9B76CA4C678A5D7F1B5F130E68389A57A52AD82B1A08FD35CD6\ -1832A0964A5C66F91E9F7826DEA9C78F5257206DD3A78C099768524D1E3B01306A9AF70F\ -2FA7DFB02F9717C2C9D7CF037603B96AFB5B9A5C832FFD86793C0228F9F38593338D92FB\ -70CFE3EB0B4B0E149E52ECD784E0756C1934B3DE03B439292052C21B40CB5D39FDD7BF3D\ -81C314F927C6EF03FB4270BD1DFB796EF59F887AB566D2AC112C1EBBE1C98679D7F0B724\ -94BAA6735FBA58D3CD125ED42272E34A9D51407D5550FD3DBE0E06004D31CA3B5CC1874E\ -10A60668:\ -DB896F08DC3DD1224CAA35F8D841E6174E03595794F8C623987CD275AAFD213A0622D2CA\ -B9DA6C8FB847FAD852352CE37806529A4F06A1620AB065D157E8992981BC74DAAE1AAD30\ -0447E720146174D75C8C09F1A47D307C6492D93E7035A081D4B47EAA116BA2F2643CDF4B\ -26EE8B82BC90FAAE8BEDC463B93F2ABE99BB7A1FECFF8FBAADF907FDDC34AFE59484DFEA\ -97937C02EDECBD1F3827518F3183FAEE67798726A220624A7C5AFBCDCABA3ACCA8862B31\ -9DE90F4C59C13EF1B8FF43DDACBC0A18548F148676034A3D71E928B1D25609C539C3203B\ -7055498D:\ -8739533FF38CD3C2A5969CDF010BE33299B5772DA0F4A56FEFBCFB4C187A398B:\ -C28792697951BA0551162D5FAC70775D - -2A797C4F230EBA8E8D560B141D6F7498036F7C54D326F67E8A0894E7C7DEBB49A717E2FF\ -12E5020B8F4F3D00236075334BC1C1BE18609339FFE59A60DBCCA006446B05FF8C296E57\ -FCABA4121656638EB88214BB0252941598EAEE42966CC162D78D0DA6D54C037876AE0931\ -F94BA160CD17DE6FAFFACAA68C5F765CE64BC85B4B132366618C723B04ACBE5392991A1D\ -1570BB5D3FF257256473297D9DE7FA8901F69B8603C9BBC267E3629A33A6A79697CE70B9\ -37E6B15BC6DEE6C0298CEB375B40DB4E0FCEAF71D5302680DE2875F14750E45771D5538A\ -CA54A19EE9E438CB:\ -B0C2C84FA758C6144BC07E436E7C4A7FD9279C35256524329930F5934B6D7CF4BCE3C7ED\ -4D6603794393D85C28E4DB61D4FCD17A90EE2AA4E6C29E99FD6C4BE9E245329D4F33127F\ -05C903EE1360DC713132281D67D23BA2B738A0F8C66A071DD9C31A19E13489EB8681CA99\ -84B3020F497CC66E5CBB3979F09B0A7C5A043150D846EFE148E7871A45FA8DAC26416BE6\ -936E5D3289A5B7AB77762726F7E4EA82D00D3123183BAF7CC146C761A7FC483055C0D687\ -944BCF9072377A7F797EF2163FE07B7656A56083E351EF3F2026B19FF76C3162CAB2CC86\ -293C537407F0F569:\ -C7B7849FE8962C5670F745C8E26B979CCA21F1628305A75E9372A684EB8FAB87:\ -CE0C1E9870A5D615C9F6D8826D7B61A5 - -43328C5C5E30B0396CBCFC0E6BE81C49B9164FBCB9A9081CC22E223CA5CC5FD28922013E\ -4A9A95DEB0025DD15087D516FF4771182A67E2E69E55C19809A8B9BF4F77E02748DB3CD1\ -CC0718E37C0A9555E703C579F5761EE6DDC484BF619243A95BA97E8B0A5CE152F3C1D72F\ -D69519E9479F4B1C46C23194DD06050224A7C2F467BE08C7EFCB0AF1DF523E294FD7382F\ -4B60690CF7EE8B8AEC379363FF636111AD4CFEA81EF2953BF76C2C8E76DE5B29334FCD09\ -F01FD4902C1021C93BA381CEEE9ADC7CA08D18B00FB5E652839848999FABD577870DAD51\ -0E8115B01AFABDD683FB3CA1:\ -1775067911F026BEE6DAC1CB54B8FCD1AFEAAA98D610FE00C63524F9AB0EFFE7CB7861E1\ -C7B1243990514BFD92C1402305958731E5E730D2AC179916220291A604B479471A249874\ -D1B067558F0D61F29790DC82765A0C4B00DBC0AE2A3B1E608E9D1F429E64CEB08D2AC7E6\ -1DC0A3B8174D8F79CA27260991CBD7D739128012B6DF93DAD582B96603E61398BA8BEEDE\ -F70AF98CE871CB49F2557C239CD61BADE4F38E0CBE1EBDC4580B56CB1830B5A14179C55B\ -A1C3EBD60F60388B164CA51F1369900E9C3FFFDB39D0E9A594A329723CE60A21E7C87F8D\ -756EE5C92CBD45D7E5A57395:\ -BCCCB7F12DE82B841EF1C0171472BE0188C2468C8D660F268F2332530A2930DA:\ -570030C34B809C5D361636F477FA84CA - -033362424F88682DB69F71DFFB5C08A010BA4394CE1305A467B4BC7E6DFF93DFBBBD7FAB\ -DBE62567612AC8AC5581A7A506D13CB8FED0C856A89D84B4D14D98005C74616704E46CFF\ -43A878B66D1D6B3636949C19404EC55B61A1F5DBBC829AA720FB4A5D3FDB8919885E6CCC\ -35943AC13E655E4149A587C4A60DC54BEE8C64A0DF49656CD4F67FD5ABFE1A8090E48212\ -646D730B50E8255774A3A1756F63DDFBB33DC0D2EF5786B6BB6E303006A2FA3217143CD9\ -237D15F24FF27DF41A9099E53432EBCFBEAA0ECD5FD419D736857E57F8917DAB5C20274B\ -F0F61075BE07EC5383BDF320C8F04FE4:\ -11C73FFB2F85FE26E087184A4E7D0E74CA4769A072EC036EAAA0162984CBF53979926FC7\ -09BB59158685C6F131BB3E79886D13F0A644A420D14DE9DD497FBBF5C8CAF27E6C2CFD83\ -CFE6A5219EEB8B29DB9D2722FD7E1004BD1152F6698C4DADEC589BBBFA3EF96BCF4E90CB\ -1395EABA2F1D90D5B2F81F312F2AF94583B4F3A8DEF1EAB26FC8EC9C4C2663F4CBF856B1\ -BA593A3E3F54B3D3831E24B44C7A5217695F3FD36D834DF32488DF461A118A93264B2E66\ -57DDC66D246720E94EACD77ECF23642A036229143868ABD20F3B1FAE1B852C9669CCB0B3\ -334FBA0D8FEAFDD56D03E52F5D136E87:\ -2CFCC0880B1BCB48651602B2F653034A6B8406B143AED550F85F122DA3BC6E28:\ -68A553188B539B46214ADE17802A5ADB - -9481ACE7C47FEC3A22B41B81E1A72363D4F4EED3CB0C93200769415B4779755982EA26E0\ -F6363C973A7C59A43FD6CC4B2D1857EB38B5AE5BEA22DA4781AC36F5559A2A2A8EC111AC\ -33275AEB3863B2A7CAEF572A16523A1231FACDF0FEBAF9305B658A4E7B0CCB9A424D5838\ -4B385132389D5545ED6D2BDC3D615D229ACFBCE60205CE1119322C642F4D81ADAEA50995\ -E4DEEB23D9976A1FF4A9C8CE7F0CC7DE657690F9651E53DE4E58561E9570CC4526FE03DD\ -686BA1AF9557718D38641B080592C9BFB2FEAEE56AFACB4F811439FE29AD6BA8D6F0ACC3\ -FE3836369CE06AEAC64898DB676EA7640D7A7BE6:\ -8217EAB21AA0D8A541AB0CE258E96EDD82866A5460455B82C339F5157C2B159FD8CA8AF0\ -413BDB5995EBEE6AB6E1F8FBB03C67B086DD2E6AE05E0B37ECB43EC2C77E9510F24BA1D6\ -E5D4906A10BEDEC2D3ABC09019274E8D09CD3921B3DF7F9EA607011655C684C3FD435747\ -6F97C1FE8314A80AE372EC4C4B19B5D34469E66A94DDF0E0C5546A290FE42A3D00F071B5\ -846DDF4D88E320E4AFF2CE3D650DDCE965C16C3943F1EA5A63D9696F8DCA6D7D65C3FAA6\ -157549B214FC3B44E6C62D124EA327E97A91126256CC475A5C533CAF2EB3F6B08769436E\ -CCD52D2AB31A87E1E09D00D2F835BF9A7356EF71:\ -30A6450164DA25B43CA6DB430F827299AB79CA4A52C636C690F7BBDF82BA9B0E:\ -4A87D1FFB56ADFC374C09B2F8D021CE8 - -3F5E7DEA03EC52DD0CDB0030F676EDF2EC5B91C788D1AC9F8E88391FED510CC64123E47A\ -C2B685E5387365DC98DA305A832BE09C50F2E3E5B97E02C92F92EFCE59DD0A18E1227661\ -719B54397B0367359A1EE476E8106D2CAF3988E95BCA0947E2411574E3E61D79BC8C6FF5\ -F7D806BDA98E0C69E4F44F70E9B2F1178DA75DB504D3F8096AE002E2C7C36E95EA3D37CA\ -3807E760424D022697FD763B1B85E4D4D15D95153BFA3F74BADF46EC1906B1904D250E98\ -4D7CB5314EADD248A801373FBE2D9EF1B9D82AB3FB0C2CA0F3F9EC0F83268EB2464E40E0\ -C40EEEFC1B9C4859A357CC62C5537783D7437E6509689C6A:\ -E4E2000ACFA0762A90E16CE545060CB60961F69586A8845D37709DA643894EB7BB29B2A0\ -69E0533EABEA770AAEF101CEC381983F59278E7EF2A55B190F7B758DD97050315B3EF563\ -CF92CF9D2CF955F266C77AC4AC8BD7BBE39CD4F5EE6E57854C8F2DDC6462889E1F02DF8A\ -7C1AC02B65423A17299973745C7C4F17E4579F514F199932D98062E3F0E141A8133CD974\ -A4B1C8A066C4800CDDE54424F4BE19C4E0099A9AAF11692C27E182AA55DEF8A439A746E9\ -DDB83F674F76F297BBE8C1DD7F4A4582260DB38C14E6FC40FB1DD429FAD55769A89BCCF0\ -0677FBE04B07C5BF6380AC4DCF47FFE08AB15370ACF4082A:\ -9361EA127351940052051851106E32E21B5B74CAC5EE2C65A478DC07962653D1:\ -F6159606256712C7DCBB2F3E8ECEE258 - -378FB5CB6B0FAD01796C73A850C8EF78AF71CB2AAC0CF7FE9EDB58D64EFA6D138FB8FF48\ -4500C5E15F8013ED56BADC846334DB7AA6DD1B0C55BCD1A32B93A86B54B74D06F3224369\ -D5E2ABF310A13D76CD3C0E037E161047CCDB49C1F117097AB42E0CEEFB4B09EA86305C72\ -D1627D53C5D8DB79070F20BADF51DAC0F6D019C7520DF841978F0249E24F995D4C0823A5\ -CA663B67B25EEBB8A38A95D27F44E425DE53CF55E5E3811CADDB9C0AD3C415587DB968FB\ -1F2D93D3B02D5628BE64E09AAA0A79E9EB6B72D0088554E77574315F1152F489ECCC4B8B\ -9705B10C96CDF2368DD61D8A345570B4751DB4533643C8F10CA2E5E9:\ -6EC13D2297C89EBE84380FD858E68FEC5E09BA9F4974C03B0C1A098C42644170358B7926\ -01D88B40CDF56ABD6A2D8B7CA430AF87EC349C2B11D44731A0C219F0DF310832ECA798BE\ -E87C293C8834CD74724E96A6D7A1DFCEFA893DA180CC2CA8465274D176BB0D25B1FCD04A\ -3142EDE3B74A6D3E1ED86F3289DED1E37D32B9925C8BB51913B2850E5DA43159D4F70F64\ -06F5BCF600B1AFB2244BFEED3B40303C58892BA8A59151F8E2649964E767D918771E2681\ -26CE88156C4FA319F65CB1E2909F5A196399B45EF0B040C3DCA7E79232E4782041C7E6B6\ -5C9C82D8B4517B469493A46831B9E9094AEC31639E353F40D3AF1488:\ -2377222F39987D62CE8CB5F64E88437543E20EBB58F2DCB159E0AECAF439217D:\ -2DAD0FE823C71638F1910AB8D8924C87 - -41E99B44C7C94FD5B8978507A99DFCF6EC7A49304EC6099AD1C38DBF8BE918860AB5C37B\ -D13253B763406AA6DA1CE6779CED6F7F7B222CD51967BD3B61FA48F6B65B96891E34FB58\ -3E0935454ADCB3CF6419216B798A7C0CE5402A3232510940839D4DCA082247505CD68D73\ -B1AE4E352B9A95F6CD68CACF68F28A525CC3DAA1504DE85B51CFDC3B693DFAD28D4ED86B\ -70B93B02FAAA0BFE452544C81ADEEF99A59378CE0625234EA69E9F69ED52D5FBB6687F9E\ -E248479E1B29ACF0CC3BE7BA5B77537C29CAB662B2DD7D8937B9DEE577E7C8DE85D3CEF3\ -0912FF62687756C6F978FBB147E6B27E923C62F9A38BD7F50D8801E676FA07DA:\ -BC7838EBF0287786D89BAAEBA8ECA378E898BB36A6D3D6CC125938D71768BA704E30F9FB\ -7B09A43D85786790FCEEBB46A2A341C4EA50AEEFF3DC57005DFD7BE9C4052AB3CAB38B11\ -221EA39EA778AC6F4111CD1978E5D467301BC7ADDC54D084F36652A9AD3EDB8D70AE6380\ -3B077A39CF064017DC2A8CED0E4B1A7D6FAB58B0FC92684778B7B3F5D76477CAB7C6C1C6\ -AE6BCA1F661CF26DFEFCD1DB5DF58F1358D38406E3D880F30E43E1837132B5DEE65EC09B\ -7622CDA1F52A78F8EDF870D2AF375C7526C70E43FF650B8EDCF6A35D02CA479DD560A672\ -45C7087D0376C9915777FCCB390109115AAE52C4512ADAC046C8C1E9092F3018:\ -19F394E4AF235F4BDD3F0798E904A2E114041B351F0D71C5BB269845BB53D4B9:\ -093E57768A6107B8D6F31A083B23B3FE - -20143BDD828F687A93266C2E489909BFD6D85884A40018082FDE227841647D162DAFC241\ -40580495B6E0C393CFE2BBE80615C87CBF5E057D74A4CD7589DE69E136870A24AE67F9F0\ -FC7B92369903718B9268500155ABBD6C8D0E81FB1104403A02A56FC82F1DE4137EBA1433\ -AAD9CE7B34198ABE7D9845DC462DBB4FC6DA4F937EBEAC139339B405ABA51BFC9B06B38C\ -BF17352F47C6EF3968F06305123888130738B887911567A28DEFBCE943D18C73ACBE920C\ -386143E0B6B2C9EA30C84A7E4196481F93395C8BECE5F9B341725DA7883DD74792AD0140\ -7A05BE7A2121AFB2E9EAEBBA7574F9582D0455571A077603A511ABBEF9EABEF4553A48EF:\ -FC293D577FE018127C31A901490F19DD72D0A3212C828EA530B256E563874E03C7003668\ -84568B2F58B0478B8953F5A667E070BDC386404C47A45A862626D7F621C5E87C3F48A15B\ -8F7DFA5EC168ACBEE32E08551DC7AB5826F42A75CE8A0A61BB9E1F4AD5BE53AC87687961\ -388BB809ECEFDDD93782A956F9976242B20B1C2B5EAE31D28B48A44337AC677C6B865D89\ -954E1159353FCFA1741C287FEE15473CB4004E400FAF336995004964A79E2EB0FDF48C2E\ -A09120126443E8771F9700718BC94E5070DA8DAC17BB3F73555F3942AAC1C2830371D641\ -7EE51EBCB1ACB8B4C74BAAE38E6CED7F7622388FBE2B2153DB6945B77AADCF7DC99502D6:\ -BA516D7A4B7638995562CE54FEFC84B6DFB4B8A81A03F24BB065B060E4FA2966:\ -23C93FBB6EF742A576769819A5BC6AC3 - -[TEA/ECB/NoPadding] -2FA6A6449FB4F998EFA3F1679A638602:\ -4D3953E121FFDB4FD7F05FC74FC2ADFC:\ -F9506AECFD6B86C4E9D5D973B435E66B - -B4C8B417381DFC14CD6CFEDC0D83477F27B0B1BD842922D4:\ -7608D8A9F2BFFC14DCA6942B2867239BE3B4788D8748F314:\ -47BF1198D16C123C95496D0CCC9A5C8C - -18DE3130F51CD7A6172B3C79F6DF435B41F57D3B2D54DF7A436ECCE32ADB88EC:\ -58AA062B7B9EFAEA2E3ED1F9D19FA6F695B0642EA7FB6EB5C5ED914A4034134D:\ -3D8D2CFB7424BBD7B39BD9BB2C0CD794 - -64E00DCC29A3BE3695F2198E58EA42E323E99387CE99A0543F7594331E546EADD7163E62\ -5ED6B32E:\ -EA6EF6ECA267C02C2C98D03AED4402A85B8CC02326D1FFCF169D321F675C23BF530FD4E8\ -AF7A511C:\ -C1C1384840D2B15BF8751CBDFB2607CB - -CF70A73AD2C4714044C8953EA103DDD2848595C182BC6A703B2E6CB90E80357120AC671F\ -10C8060EB2A14451BD69C9F4:\ -FACC24C79AD55C3E2FDB55AD21F52595452E116FC526ED3F21C4386D0400F098F86D86C4\ -E630E638A24EFF839EB8AECE:\ -25EF77ACC4435B378B0A07AF35D7A283 - -5AAADAFF6BF18700ECF66DCDB2AA201A1B5C338422E654A9E769C0EC40982E2FD9A794E2\ -9951C6EF26AA3FBF41B29E7457B6A2BA4E39F75F:\ -260629AC2B3838BADABD4765B0BB6A65D34927FC51BD712A36C8AD74AF386422FC479EB5\ -1C5FA2072B4D4A3F259A761C4CDAC375E0FB7883:\ -B3763F385F9F53A76F59E9E9B8070886 - -10D5908E8AB77BBC4B6A2D89A13C899C9044E2823FCBA56FBE7312A7F475E16AB3B26E74\ -FA74390B5025C2399AC84EEA37326A6F8EF8D133A3E27EC6A01F97B1:\ -1421E0144AA1061EAA75F81B44E12A8DE1ADDCF46D4E29D636F17565AC1326B8B5E1F2EF\ -097E3BC22CA2FBB5B637E17BF164DAE5B8A0D503085EFDE1E36B82CE:\ -84A6AC5EDB9A96C8BA3BFF40AAD9ADFA - -C65601054E837A0BBC4D0A50CAC6CDCFD7EC9879316EEE2979F6FF139D881DBF7338DDAF\ -02F3700BBCD7ED67D605030187A588775A3604FFB20A989D6893FED3814179B336111DC4:\ -7F65DA6551B8C2A677054CBFA5BAC5B8CDFFE2593F3297B3C6014D8EE83B00DB0BF063C1\ -68A4C155705A7984BD961A0278BE247FAF01E3BDC6DF3EBA4D39A0566F59DBB3F1D682CA:\ -0B666EE6C0C5FDAAB1D3C528825B8262 - -73ABA32AA3A6D791EDF7C1FEDBDE65950ACA8E7CDA9AA303DAA259965726F7E54EE8E07B\ -6EC41EE05DF08A8030AC76CD419CAC55249E5454427C9EC1607721A0A8DFF4200175B5EA\ -B66D6A33CB1ACC08:\ -39D91242429514DB8B2715FF7CB1D12AE97AA9B31286E672DCD6D5FBF9FDF52739F50684\ -F629F7F8F47F4840E399725DB5383C4427FD920D0091B8466ADCE80AA86E945AB09F9999\ -DE7518991229A9DC:\ -6CFBA581ADFD1DEFA555D4B1F2924E67 - -A9956670B38BD99613696110B2717482945A798817EFCB34254271251C1D7912F966F78F\ -DD0D534BAABD440A80F75FF20C5D62C21327803FD957699302328B03F12F17A9D89CCE84\ -3227D99E3F223C2E1EB8541FA4DFFDC1:\ -27F0468A37ADD1F81E6C453DB2E89A741C4949D4994ED22D4473B40FE63642B0303933F7\ -4523055F9B2614DEB0A5E4BE8067C9EAE91C573C6508610FFC6CDE32DB8C3BBA9803F9FC\ -F1A1A3C8CDAD99F945FB9912BF38BF24:\ -35927642F001AF7BBA592C573D566B04 - -2AE6CFDEFCAB3176BB1D7C9125F75011127F87F068846B5BB17C04457AA795CAF2459C7C\ -351CCF870CDE051432CF0019A5C411A45979A3E318523366138501A8C167A05B959B4DC7\ -C8735B9B15691262F2828A22093EE2BC15BAA5CC06426663:\ -46594307F5E0E998848072D2690D97E32058FB1D4577521FE5AF518C325762D9F076B15E\ -77E04DCEA1C8A2C34A287EFC5F9A301B5FB4C75699A3DFDF7DB8B7EBD61D5BB2C1F880EF\ -CCDDA930A8478C7DD946A7BF9EA906F6C6C930DF1BCDC51F:\ -C4A3785214040158D8D9037A9D5FD25C - -BC139112FA244D06DF5FFFAA2E44F58F29AE8B092395B9A67ABB435610674E4FF71027FC\ -E2C3EB95F7CAF7E05DE6C095551AE224A97807297F64C87247A34BECC6ABDC900259EFD4\ -048D384AF5481DE995C8ADE6FA7F982A702A44422EC022699B783E7EA57B7A2F:\ -57D854129FB358772683BB1BA42AF91F7E945F1BFF27AC4EBE6B531A581914E8BB57834F\ -D16A9E287544CD2840475155E49B9F6859D9E3D235D56CF5E7ECFD47D43FCF50A378287F\ -9F9A33AF0E53983456D75A58FF5111E69D768F25DAF721AA9C69FBE01F2430A1:\ -4A9F7BC01C835442B5F4EAECC8FF50B5 - -51AB05548D117A49B3C47D2BDFD681A9FA39A1D270437AF03D5557BD5945C66D44842890\ -2152A2DEC23141E4366B55DA9A5FFF68C6C67CC2A7446EB28125986E945D6B7AE587EBAD\ -8EA14B066241B54A6485A9878837571346E7C416376908B74AEB4C5D022080BB79D0DA25\ -B837D53F:\ -BCF3B29D04DE30C8EB5345C444E3FEDC5D34EEAE60EA71BC355F21F69E31F759DED7AA43\ -6EC595505E1631A52F5416A41A529F39F6958499E99EA5DAAD023593A78DFE9C443C5AFF\ -B6E4D9EEC22BBD66545A67FB8F39799149A1601DA998694D7BD65AFF19AD1326F4B988F3\ -7E555D78:\ -A076529A62A7C604739522583E1EC20C - -EE99893A9B1087AC531F3C5C67902E6EE086A11F6D28B3A41A0A692A15EAD2E0A43A3432\ -AE88E9EB54944F4138BA95A4E52240B3CC34E1EA6B764AE2703696493F45467041578798\ -1CBB062910A3DA1D39ECFEE971EFD945B44A5FF4C4140B5893A89F6F454F9568D83AD429\ -272832258D3D0B82B7ECD00C:\ -641C64CD007BED6BA89AA7ABB2BA478717C84844D06D0F83251B8DCFB0AA02FE8991F06C\ -DF5328B4195B272807B242A0CD51D9C9CAFDBCA8773ED2048FA25360601197C1A8AAC3BC\ -AA05B087FF38F53072755C1AECB169CA4EDDECAE1B580433DA6CB30F4A7E33D02C6E3624\ -982853DC5A77BCE8E3E9217B:\ -7D9FC06731D5D44E7D137AFE5F7CB7AB - -E687266A896382127FCDF60A3F271BD3BD21C0306B8206FE9D9F2B00F4201418A4DACFA6\ -53DFD029639AAE03A6675D3E2B4ABA7E46CFBE14FED665E0F520F110BDCC4E5647BC3D82\ -723FFE0F588062E56DE991922E9F23FFBF2E1BE91625A190210654E0B2476664568B44EB\ -58117317C6B61645C6907ACCCCC4BE949C9D3ED2:\ -0058B2D35FDED2CBC91D454AA55F93B0A249152B3A5C9DFBE907E639CECF1B90580907A2\ -9920901AA5278EABF189DB980372C2A804B2B301F8262840D45A668564C634191E027F69\ -1630602423B9069279FFC20B181CEEB2CA6C15B5A66B9FDBBAE3B591FDEC91D41413AF30\ -36EF4A99E9E1B728E901405E5EACBAB539BD4796:\ -3652786521A31CD6A927E608CB2A87CB - -6A5A797BFCDB31CA65F7A0D720B679B5C7CBAD92508E93C565E3AC94DA5B84C041D2A0A9\ -7CE0D138C2D48E8F613C36F4C9A9ADA0A32EBD5E346A0A76078D2B49E559BDE592977285\ -77714F3EF016A607D3426297B4681CE7FFE958B5750F8DB6F88916C5DD61CA30DC2CD2A2\ -4742EA7AF3886C792E1D94ACD6DAD21649A8BFA6F907121166E51D97:\ -1DAFC103EF64B21BEA443931DD0111CB06D5BF42D1824C4E3F3A7D6718F2911756D94611\ -7A12CA4974F9BDE4A99012615D6D1B78B94349216FC73CFDF7BF91126F017A9206F78310\ -6E636AA89EA986A4F4942A8820FFF0D0B151E7A74397EA186AD85899DA5AF661566A3BCB\ -3C7305DCD5113F12E3532B803E0ABA376B232EC1328F3D0F1F884835:\ -FE97F4A2874358EEDDE14C5A1DBA9731 - -A420F0855799B02E78C5A8087857A62E10F6448E3B02257AA678A7895EB9CBDED44D0ECA\ -ADD6ECB78F06CD65ECB8ED2183F62691FB42383E4062A5EA5078F146964F1DE275CC4493\ -04D319A4EF99A07C09B35F4C59E6AE9F8799C074C42BAE060E463A25078A61CBBD1818CE\ -C67CCB08BB4CEC9A4D3B146007C990AF9E723F858F7D63B81D4536243694AAC2F4C02CCA:\ -6AA3148AA2E4676C3ABBEA8B883560168F04843310B7871174C21F906E4049752617F465\ -DAA843BDAC395FED435C32CD2B497D2A58993282E1FC36113060AE36620AD606E0A32FD9\ -E143578188FD408D98C36F2A4134B10431BC20779195F5BD01F915987C40622D6D813CC4\ -8684D043AC74994B61F2CFEC89DA1A8A8C44FA82355508605324B20346B62CBF42649803:\ -5F5B428DB8D1FF5165F7C6691BF21794 - -50A9163557E25C824A3DB605486E137772BFB26F3D60AF6431065B11DFFB65B5F46B4978\ -6612857935365BE801D978A860463351EB37A62BB66EE43E0B348BF509C3AB450334DDEB\ -1FB04F829311998D026F7A66FC6E06795F7268D0E4B71BCF674E42E9851AD830243EF28B\ -854A2CAA00541A5AF0A3E05EA7A4B445264204516A7B824CC8FEAABA992040939E2D13CB\ -832A821267928B88:\ -E905FBFB19EA75D647CAE71A3E4AD1FD1150101614109A06C4BEE3E8CE5E677FFFDE252D\ -BD7AD0B65E9A47683D10B32E5EA1DEC50746E8ABE6B562054F1F60AEDF267308583DD209\ -157ED0013F91C76A58740CC94D46584ABF2145D441C7721E5C41A7B33CBE13A09D05A569\ -C7C0E313232282FA72B2DDF8107930C6A697D9C87EE66DA240658EC5254A4F8E4A99425B\ -A77E6D36557FD32A:\ -93BFF08E9CC32466F4436111031037A9 - -BD4BCFC5B25FAAE48AA8F4DB7FE80F14ED076F13DED25A3EF4784882F38838EEBB4757B9\ -BFB1344D422DC20D93EF2947B5D741BF945BC679BFAD074EEA9DFF9CCA6E49B6C40EEAFA\ -40733AFD8A21E26E19E9EBF66074C1102AD6234D129B589AC7AF71096C128FD94566E1C1\ -29D07E220FBE9D4DDA25BC71112D62AE335702CAFB7B46DFAAD51F6D7B4462A86400D030\ -CE96B577F0F8C43DB342E4C700C21F89:\ -1C2FB8256D92E620276C95006DF21ECD2C0DC26BF5752369C57745A27538200A5FBA2A08\ -B3DC4C6B7037035E96A7E4F97DF66B5FFF4D0AABB520A15D83FBA17CAA84641142044A75\ -F675637143F2ABDEA9631533877D3E77CA68B615A4EB9DFC4B0C27BB777604EC60950D45\ -31D4C6DA5412661D2CFF573DB93D4D428EC974904BDC6CE92B0F137188891DCAE497084F\ -D3DD3A9BF0991E7D954C473DD7075978:\ -07EB031C2A50E81BFD6150BB8E279F6A - -C12B1B0A8CCFE8BB72CA3C353F855F7F226DF0F1FFA791785506E972E19D153A92DEF0D0\ -82CAC0B4318E5C0C597638EC01204BCA002AE8BE1624AA4DDBC50759B8813F6533184181\ -395AE665962CD6BA22D82C1B4CD82CC4D2DFC07884C784398D596095B4ADF4A4CB5561E5\ -2C5DD85A2EC4642EF902A91FFD4FA73094D9A10D410743B82B24FE1149A5BFDAC8469D4C\ -74282581DB20BF4DB73321184B29E08D0A3BEB0A56D12AB6:\ -06F1F55E98C7B67858AAB0EAB9ED413B2E8D7BCFDD95FBDE16151A76E3E314022918B276\ -403782EEC2810FB10B8E6742287685675C67935217023EBE32994E1B1C7FFAF3C8E18EEC\ -CCBFA47DAE25377A1D38CFCF9FAF92AC99EFCA34FC70F04B03D1A2E8685B2CB2F513EA6A\ -49130BD8F220267DA4FB22E2FA02AC9B4F2FF554395BA7E0F85C378474E185DE7B04E01C\ -8929560B399D768267B352CA4BDA75FEA3B022B2790146E7:\ -0347E502FE1FB58BCE93EBB16AF1671B - -7BCCB586FE4F343EB7DE9210AAF5A5F81E62CBA5ACCCD897ED221CDA61E2D4F177A25002\ -F5E12AE2AFA0B19113485EE793F3C85FF14D7BC94B23AF502ED0118E78192CB4FD680676\ -194A99157E9349353E907ED93A869A1A9BE721ECC94619E26F120A87C1E227589901C161\ -7328D76F6B1555693ABD6F847ADFAB14CC936D3DA4F8F47BC5B77E323F23BD4DD2488222\ -45213A03CE770FB50D40E174606D3318BE3F76FB07473ED7034314E16567098D:\ -B42FBD0AEC444319719ED521AF7CC522A2F1DD69ACB6C6FC08EF1AD52415DDAA4E94FDE1\ -A21BDF954DBD56681E2E3D89C6725E716414043C42B0CC842B6A326CD70770881E047D59\ -B611B6595FAE0385111BA18CB19359AA7FD318B528D48348EB51655AE17B6DF79DF383FF\ -2F3AD856BA42598DC2D94921B4A93E87BD12490DE43C454B30F4093B30878B5BDA7D6711\ -F68DCFBA6AD0AC92804E15B6DC141A0D06CB962244700554B0BA4D399BB9D935:\ -5922D69B966C705B91F8DDB19DFD15C5 - -7D578CFBB35A1026C7AE1B82405B5F93366BF2280C6E6FB42EC515374AA2294534B1ECB6\ -7CBC925E375D4F6B2E1451CA1BA569D494FD5C0FCE09F9637C83276AE3E1249815445D60\ -E47CA8DD9EC7B846449C73F1648640299EFA82C2E696A0F9CA9738DFA459F8AE04E3431B\ -B702D4F6D41526DF1543016A8E0FB1DE5E5258FAC9DF77CFC07CB297BA2A2921EFDBB0BE\ -4F355197409CEB98BBB08BD24F48748142321E66C9791E93E8156D3FEDF7B3CABC0C4014\ -8A866D28:\ -50E48B13EDB839D430DB28787D20DDD4C070730ACF59E9B235F101557E88905B2B8766F1\ -9421718D82EBFB7FD8075D1239DB19BE2151782075A761A7A1B78B1613D95340083BFE44\ -9B502D5744512CAF2C33ACDE1F1B18CB53B152AFF2078319399858A3356DD710A1D181A6\ -EAD0EB9C1ECA868CBCE049503E372BF3B9364B275A6D68D92F2DA3396FC045A816C2E9FF\ -E3797538483CBC25A97DD93E7CC997CF7469E66FEF432B9F3C5F2ADFC55235710EADD2E8\ -FCA5AFF8:\ -E5C7B48ADB3AB291EFE88CEBFDC612D9 - -FF2E2C4B8BF3223B6513D612666415DA018A608BEFBCE8141F40EABE933BE55782E1355B\ -5D87FD7A31374EDA7BEECD24CB798A458ACC60ED063322CBCDD796546C0D09AFC04042A3\ -48E30D83309DA1EDFC0D631F1D1264D02812AB2F1ACA5E71076FA681BEEBC71C0104CD63\ -807C1B1C5FA543A2F30D903FCA91B6E946923FD57E1F1396B33E4C44F057693AA8413917\ -002C185FE0E54C2E0FB478B324E7237C6F4A5B439C2B52E1AA4A190263F5B6941244919F\ -AA826358C3F5055A1F67AB4B:\ -44FC4977E72F10AD62AD3E3FC7D868FBB09C4B7CCAC299E9E299B3FD5DF116C837B5D985\ -7AF8F83E97699F021F673679296444F96EC481F2C71DEA77E571DDFC49D9E453235A9BC9\ -3DC7CF60B209F305A2420830777D4B3732ADAED70B55406C777EA7CBC71EE2E58F89FC1D\ -4A1AD84A80B8F57C958D887383EEC107D5EA2E8297D75D588B24C8E42C2AB11FB21322E9\ -97B11DCB9AD7C825638BCC25A04E7D9311F24638418095D28259C74E718123CE597D2204\ -1CCAAC3612D803335DB4E21B:\ -A830EC3F2B6EB4C27215F68C373D51CB - -796E00B9B9C314F46A6FC4D30E251CBC99C0A7EC1012D4C08B3C709F8C42A0A24B52AA86\ -A8B4EE6C0B40B9AA749751222CE2E40E97467F8E49498D3EE24BCA8C3F6271AAD7AC9F69\ -F56B6F911B8840AC28B10DD63EAB8249A85747F5B97CF2BD18CD163BAF26D57C8E5454F1\ -62BA6D9758151F53D3F45733C3464836491C28963962FEBC6985DD4BAD90418C5CC02758\ -F59E001179888D5C56310EF3BD19660C98B40F39618C12DB9DF20A1144E4D88F5849F2A6\ -19903B91A4F88EA8CB0448B2D02ED413C71619EE:\ -35D5A3EBBD297958E923D81114240262166A0E6BFC0C42EFA099C488005ED84257FB7432\ -4568308109E76AC28EC059E7F8E612C2F8639C4510F996D311581D898E13DF6031385A62\ -0C5ECE9FD0745C7E7BB28323A16186065AE236482CFC37F227C99B6EA79FDB095D2E13A0\ -0CEDF8D91648CBBCFE9A72423485899CFBFDBC2CA6AB2CFEFBEFB38522EF1CF2D07AC68F\ -29819E17E202AB863F0878713F1CE248349E4139DC8107328D9907FC8F4987FC0392B120\ -F06DB28B7767AABC735535BB9FE18178B5BB34CE:\ -201C9CFDE22F6BE8FC881A4BE6862199 - -85BD2383419FFC58425316A0B1D0EE6DB75CEF29BCB06C55D961F1880C930C4536BBD490\ -2DC33C528957409269CBF90C28468F4260225B30C1A11611F524B4FC28FCC6B1BA85064A\ -CD5AB63686E8DA93A938081F14FF0D7BB4FCDB12B68F9A2821B397A6FEF87511FF67B8FB\ -C20D4338A00B7AFBBBFC73CB832346030920A463617A8E046E5B9BDEE2950DB7BA80BBDF\ -04230094F8357062AC03E277AA68D14AEEF8DC810F7BE6C51FB8866CC9FD24BEDE265184\ -EF7EE936EA79B68C9ACD37EFB131F2647FC501826A4F4CC5D16D4666:\ -AD7D51359CF9E854759CB435669B098EA48DD89DCDF882E2781170086EB679D6C45AC3A0\ -4583FE8BEA6A315CB59541E3753F800BFB186E9177A8E299A9F55E1D034BF8CC876C2F46\ -3D1273E320FB6B35FBE5E6DE0C3C205B6FC0EFB2A0FDED8C606E0422B0C8D72222318BF9\ -B1A3D7A0B527253BEC8C9F66115655CE3175828B6659352BBC461ADFA2133808D872BC1C\ -DC597A2EEDC72A1D2E2644275C60144F6C7EC00C43B6BFE2E4433A6F42A4CD2073528174\ -C466AA9EE0AB24429726029FF1834254B7A839A0D8D4643C131C1BB7:\ -271A2BFE528BCBE7A13214409BAA2E12 - -89DCAACBE537D9028953B0BDD28FCFD1E745D6D457F48F9247F51A8F6E9719D85F106E8F\ -794C6CA57247966AD2F878421C35528E95CB5813413B6E8AAD530AB09168A012D0027068\ -D63ECF4D7D4783BCE8014D34852F5A52C66461E15C965B8750087C43176E70E24FD0D4FA\ -83D4B9166C6311E328E08BEDAB29DBF554AE268476E507D7791AB3475DFE90CA3F3A3B64\ -07BF67E4BFAA67292E3ABAF6967C5450E17C2CD3C096C501B0180BA891EA951E99FA418A\ -CB72BE2FCB74FF143BABE55264F6B1BCCA83B81856544B843FF59D9668BDCD7EFC2F1F0A:\ -91B44C174E57C20AFD631C5B21B329A8B438C3249B5E0A4587BB01EB3C3770BDF67C16B2\ -4DE0DE2D61A1ECF3E00094BF562A21B6E2B9DD904CED2FBBA18A18A4228B958EDB1C3FF5\ -5BDE7D544DDDE97C67C1EA5E1FA4F0B0FBD2775B93AA02F4E6E19A43ACC14D022CDA7DED\ -E8B2915D8D4D0EDAB2718E56B25A6AA3C79B63E5DC03D57F948CE7D78A15FE3C0C781B83\ -B5B116816D55D660F0B6ADDE327231069DE6015C622E456AD01DC1EBF527D05627AD3BF5\ -A09EBCAF9392BAD189B511F6E429C1052E05FDAA558CB8D720F5B08AF5C2B7E1D811DB11:\ -8588AF13229A77FB1006467AF02D6AF7 - -A3647B24A430D05146C564F62665B74242A393B47ADBF341DD56BB1855C0DEB052A6AD5F\ -4661A45F5107EF138BF5FBCF03F2DF6CA6FBDCE61D91CC9327D476B7D96061A4EFE06D77\ -A608A78A716541A4C1B4A9D99B473295D293F37F6F3E982CC8687B67ECD9C8B999FFE97F\ -1F28F23531F600D2D91865BD7144186A53B823887FBC4E5B25A6F233386393E40D9FABF5\ -B4119E83CB614CD4D302D999AE00E85F78F22687BDC1420784374B87CC7EB772BC468B01\ -AD895259E94FE55159FB5F6EC7FB5B7B1CACCD09884327F174A60C38DB31D6A8B8925D75\ -309D2D2850FE4E8F:\ -5ED0A794F77048023665D3B9FCF108C2794D98C4472136EC491F2EEFE3A2ACB89DC6A006\ -7DCF449AF304E0A43ACD79EF1C8118DCE1A73DEAB3CA002390E2DE166F24883619491723\ -AAE01FDCC31FCAB8996779604A36F22B1C8E418054BA9164D74CA8ABFD0C39E31A0FE97B\ -C4796802957CBCDA7ABC8AAF298C007F401B56EA023D26720B5DC3C9843CA604AA6F820C\ -EFFF2A38681A2B18DD37450CB853F5A5612C3F7083C78DE65CDBAAB5983337672AC050AC\ -CC013E6DF3EE7AAE6EBD91D328FEC89407668B5BBB40A94135E071A9E20D0420D24A9E71\ -9D0FC72A3136217B:\ -BFFD749F285E2BF09E6E1CF31F485D27 - -5A52582DAA9B17977B476F718A030152C8F4A9C8BFAC2CE9A3A78935B4B9D7DCBCE4237A\ -C8B51464E33568F6ED94CF29A2BD367D38D059116C57EC69BEEDD67858E9C06420C082C0\ -D4C18FAE8B617EFE427DE7BC07BA2BE9BC9FDD9CD15232FD9A9B8B3B9B9BDD2F801B69AC\ -5EFDA6FB9E2204FEEBC4FBEE4432407894C17DB0B8E0BBEAB451B15A3AEAD171B937E845\ -1664C3A80E9E28F8F4CFCD2F28C1B116CA3CC2775632BBB14832C36FC70073E6FF462B82\ -6F3EB092504BE6A14E78AA2E32148B2E63BB8EE4B2D7BED5E8E2E8F025852F03A65DA77D\ -3F9C6BB6B373C90F6B0D2CB5C2C1AC0A:\ -88FCDB413A956FDF038C69A5842363FC82F9D3BDF80D5574DC0C6867F7EE21EA4CF72DEC\ -9AD83D5F19F9A71B71A71EE76645A153047825B5FCE892CEFABE49F6B0D768951B2F03EC\ -A4EC7200141895AA87EBF85CC33AF12EBF0189DAE5F6218F4E485873E994BCEC2E007AB9\ -77BD2C8C77792F2DAC0F29B8F8161B2CA99C4E81DC9DA37FEA73E707200697647AB6C73E\ -0DD1D837D329801A7B5F56CB137A1C23F5FA66213E720156C9AB67398300DE5F979BF4E1\ -DB8C8DF0E927EAD3DD7F44302DC9B39AFDB4F287672114288E24BAB76CA10200DB56A428\ -A671CB66EB2E4FE80630B94152B06158:\ -C0DE2ED5FE62A1B2973360E18660DFB5 - -BC0990F88218EDE0DE9835353BCF340C5463CFA55FC4551DE21ABFE260A8173591D44A82\ -DCC62CA063F395396040F4B09E4CE63BFBC1C1F725FBCEC1A129124B111A9D393D53AE65\ -330569846DA3FD18A682B192773A76649BFA999859B9EC844C6B4496981FA13F8F7F0575\ -30879998BDBF8D3ACF090D5CF543ABA1E9DBB72B6A48B85794BF212BF5956DFCA7714BC2\ -38E5BC3E785916DF9D27A0FB4A0A391314B072EECEACF50DC8693D5777C45E932F5C0314\ -A882ED43AFF657935AFCA0B3FBCF97ADB513C754BD0EC82482DAAA8497D26A9E7F4320AA\ -382903AEEBC83B53CC297364446664424ED246037F063BDE:\ -41E85AED70C8464E353FC6E2D5975E0FAF5DB17A8573C7DDE4BBE0E29EB71CDEB210B794\ -D0FDFBF7ED7254B1EABEBD8CE203225CC4C2EBFF3B5D5BC51E3010F9946289BA3BBDBE4B\ -E7C3FEFE7E7A390B628E29798E732382B482D84D7863CB0A85F6F3CE1072CAB120960D05\ -FAE3510D36C9718DB4CB4750565C8745A076A7BE89F52A16DDE9D32A42CD635340F9ED1A\ -A39132E30DBDE32FB28354C1DBE9BBF817481903BD6EA8CA4805D03B42F2D5000B43475F\ -CC4103717BA2BEC3E2F1542BF308EDA7E2C71956F32F50680415685E8106E701E3F5303D\ -79F03214097A4874CFC0664BE4815BAE2769BA2CE11FD663:\ -C37E924EFECE82E275AA6115E2E2EEB7 - -C34B10E6DD28BEBD7DE1BCA43D8AAFC65917C51E848703C034284FAFDB04DB3FFC0F3059\ -9C923C6BDCF006B47786E1EC68B9D9BDE22D39294CA235E43CFD42DFDFD3D4C49FD778A4\ -F61F17198851FE3923CA6DCBC8A6215E2CD8F24E110DCBA58A63058CF169A4CA4A8EA557\ -8030CCB2EB03C95871AEDDF6A090FADF44F8D43D7FD36987F31E0409A7615687C1D3FC0F\ -25796973E96A4DE0382D0965824E9A81677D414EE29EEAE3547BCE77BF9F6D3E6ED1526C\ -F1F51130D7DF5B6B34E89EEC7D8866486E02D5E654C920BC42DA3DF7F08EAA0681F13504\ -62B29792166D951CE94E5125FACF103D591C0E819667E42082FDFB7763C8C559:\ -C2CAE1A03A0B7D37D3FB79D98E425DAFDBAA0E2BBCDBD0366690C05D495014915ACEBD34\ -D320614752D0D667BABFEB9E3D5EBF5C1501EAD8D3C9602E6D33843C18F2868E237DB697\ -6536FE28B02233BAF37E9EC308A4E163ABCD4BA5422F92F5AECC38818371FFFF5AF0FC66\ -CE57DE4E0692B1BD82AAF95CDA6FF3C3C2F85CE16C54C151E32F146FC20AEDD4985E13F6\ -8C2E2224C49226545A32EC6C47974D2778184FBE289B14DCB78CE6DE17377557B92AC2DD\ -3C1102B74B2B04EC74BDAF85D2FC8F659F4F067F6C3679709A8F2BDC2429BB7F78F5173E\ -B3026156F2EA8FC510D5AA4482E1F5639F5514EEA3B5E979A0E54324954D47C7:\ -FCE0F56F8DAE31186336ADE3B46D6FF5 - -2112DE278B42F0E058EBE6BF868F544F740F0AB25C30459B6F198F74E8CB4E8B677F59E9\ -15CFAE5C208770C3AE03AE597D5B41C97AC6497F67837C20B5D2AC3F01FA5E831C8F240D\ -8115279D81E315060A77B5971506D7DCA40939A81E377015BD6BAE084861A9044271D2CC\ -66EAC30473931B26B5ADBB14471B32591D405B2D7C9F30A1B0280D21D5EF49A1D24F0E80\ -783D31E2A156CCA3F12C7EED45E471BA42635A04057D3BE56E31936E0BEF6E705FAE0E46\ -DAB18F9AFF3582935BDE554F650B21DF6DA8BD4C5CD75A58BC9FE50C03FA3217CE60DB9F\ -AC52A4BABAB8223A05549532ED8386F6D621E2CB97B829C0FE9886DC67CDDA9E3A0D19E8\ -70DC8E09:\ -67315AF4A1B112817E9922FB3FC8D251CE6BB7CC1CBFBFED1927A172D14B0C1D20A9E382\ -833306A08A3222FF0E11F19FDAD5FDF44911E46FFE688D0226B096BB227A0777B2C5F971\ -01A386D65CE4E71CA590BA8DF68DE85D50511FE1CC08F6F569B9D3F47D37A93BA28B301A\ -72D9AA736B464343DEC323207FFCE6AE59CF22916531B6EB6E92E5674C226E06FFF18F5E\ -9306835957E93EBAD84711E4B059A19F554E3CB0F08ED7AD6EA58730BE7BA5572BECC892\ -28FF83BC11F3036EBD8BFE370C7D74ED1FA03530E86DE89638CC7A1E79EB121F7DF32EF1\ -64AA1D0570FA6191FD88F7D09C1CFF5C55F3C62618017879DBBE422C6BD51BB320F7B5FC\ -00276019:\ -A0C7A1DD857747698B49D1E6127F564E - -[Noekeon/CTR-BE] -21:D9:E6CB9AEBBEFE8C4EE3B4763AF201BAE3:\ -1B17F86B0A89CB174F5DC673C187803C - -0FA1:8EE1:A4B6826186ADDAE5E4E5055D899F56E8:\ -4247E4911362FFBF59B407BB5AF5CD82 - -193D02:3E6DA0:DD4A440EA6DB12B9A7B59F8A56F9E0E8:\ -81ED06DC0A1318D286945F012C5D5CD7 - -96C298F7:A47A2E54:323B98A8D64754A9A33FFE88A3611896:\ -3CBE77BDCA7742A28E46BDF357674539 - -E807140F0D:1954A24EA1:4784F2F3CC6AF39DDF680A99C7771864:\ -E26C455121A66ED165E6C99719572BDC - -5B15EC624053:037D86CA7EA9:8E525E8F28A847EE0F0CD2983CBD2218:\ -1798DFABC785ACA2B0947B2200EFA751 - -45E0C038C4EABE:1ECF07B2734A04:42A9DF33ADEFCB8829DB8E04325B84AE:\ -0D0DE03906AE076872ECF96A1C8032E6 - -366BB3B18C1EE9BB:7EFB806DD92DBF81:F427B0752E20A18707FE6EE3A5E618BF:\ -509920DDFB13129FB166D7F15F4F7A08 - -CA3574A484B30C861C:73C3DF6535E7EA2513:3D1493AB0D6FA0480759227590200870:\ -33C02954E7B23D691DC9E55487B93544 - -7B7C1CF2E041771A7C66:D5382A6934345A7CEAF3:C3F327FD724506FDCEF4A1CFE91FC19D:\ -83BAFDDA70B7F521325D4666B097972F - -6F7ECF3563E45900D78870:CD7B586F2A1F6F1C33A203:\ -9D193DDC4FF8FCF4059DD58B6619A4B6:\ -7FBCFAE85957F510D3BB234A8CE3EF48 - -5C354F161AB87D48978BED40:7ED102A25E2D50B7FA437F92:\ -F7307D92DB9AF3F4F3D86E07066F8605:\ -4951661393781B8C65DC17E14D0B6117 - -279745A7F70E9C8F8279870A5D:FE2C6E2726177A56F151497E13:\ -8EA31DF7E30BD06FCA94C76015FC7971:\ -1DE58DD80BF16E30CC11EA53DC00964C - -F803982606FD583BF5AC8CC06AF8:90CA27B45F3BBA71239A2B7D695E:\ -D139C37458AFC755E2152F71F3977A84:\ -CBA8F0E570AEC74BB05AD388AD00A971 - -EAB7D98D9394C39C8F8B414892D34B:00106AFF5E616269337A1D03F9A293:\ -30934136861FD92DB16CCEE4576FDE5E:\ -1FC104FA8E1F5E7A163BCE1393C9FE9E - -5F1FCEF49BB2CCDEE1B0F26E69A68979:EB5534749B9FEFB16AB0B8D5E4A581DC:\ -3676C4095C06E9013491AB481CB4D526:\ -8C3B99D61432DAEA2FF8D5A72FFCA449 - -4F9CFE3CE3E86BF2A01AA4925D922B2DE6:5FBBB53B53852E977E7FD7BC350B0563D1:\ -8E23F92D86C55185CB5121B04C366A58:\ -A1BF4B384F7BC0E154F081654D282957 - -921157A2FA3293584B0AE4A63326251D022F:8F9D3B44559151D9FE636DDE0B029C3140EA:\ -0B04F22C6219A26CE72D989F120FE3BA:\ -FECEEAB827516C3A7A35A0A4431234B2 - -AA30402A478C8FA4341A98F17C03CFDBC6CF66:\ -3D84E0B9FEBDD66617EC4CD40B8DE06E3A550F:\ -C7AB8FE20D48280AC05348EB99E60856:\ -9BB889897236F3D9934432E39A678C9D - -F268E0F11C1C53B18373F7951DC04DC85F69BB1D:\ -D8D4BF072F0D743D942F15F082A2F5662367159F:\ -9F493B0FD458928C9F4E14E3BBAEE80F:\ -E41AB5247E989AB4828CA3C2A65128F1 - -59D4C8631BF4F21C857334AEE6BCF1585F5F0C5CD3:\ -5FF9E4072585125EC1D08AB79B744C189136D8394D:\ -728E75F900674124142AA337CA1DD561:\ -A488B3EBBD9DCC78F4F63EEFD6F95DF8 - -BDC114F0241652BB4ADA3B33FDA18722F7C8CA0F0EA6:\ -A554815F48F5E97A9D79F074B40D4553B7614BC1E1E3:\ -B176CFEA51C6BD14EFF032BC66F6C7F3:\ -0F24D4CCAEF29554B886B75382B6CAA9 - -CFF7BA8451ABA766F874E708A2762CB5FA20B0B880EA2D:\ -DA5EE8406F03D84032207B50F84DD490E3B78C8DC9AE3B:\ -F47516C38DBB7B8E879F0226D29318E0:\ -F85828355C8913A3D52DCA893C6AF736 - -AE60C714E058625A84B905D94507FF7A0D91CF2FD28FCE9C:\ -4FE77BA0D3C58497290AAF37D5C129C22B7BB62B450C43ED:\ -3EC64B66F25B7DF1B6AF3F64E072A4A6:\ -A1F158D936BB8D54E10B590EC36FCCFB - -D776BF1BEFEBA895F63816B634836D04BE7925C360B847A7CB:\ -012A6BB13F3BAE6F9BDC69DECF667CE8753E2B6F5C2875B45F:\ -29561184F97395058CC4FDE45B78AEDC:\ -77DA790BDAF8445CEF0B3C7CB5682FFA - -A34724CE5BCFB822B3D60BA0CB5AB46C63B98424E46CDAC89A92:\ -D7FEADCB3909C594CEECE8BA38C3ECD2CE77508F117095350458:\ -B3C263C819CDBC8E7A7296D9D349115C:\ -7080A7A1ACB9BC675DE05186805CB4D3 - -F935DF934AECFEF97B2F3C289E8E5F444CFF6EC8043FED9912F5FD:\ -79C745EC22125C4A5EB67A98E56154C4FAC1749C8823C912830B47:\ -945EF1858BE2949562316E1AFDBDDA39:\ -F621DD4CF531940FE1EEE47774E3A6C8 - -2F7B4634AE008B66DC1424763FFCD771521DFE4A8C55B83B3EB59A72:\ -887D0AE0873FA0575CFBE21018E0ADC15ADDDC4CA446FE9961560B5B:\ -EEB53F967B99F636DAD0E691DAC87E7F:\ -4AA26B55083FF42C0106E35767FCA76C - -DAC816A9AD72387DF047FBCDF545B67939FCC12C589B1B4358944CC6EC:\ -C62DFFDA9DC4451A0A4356A2BD15B570BF93CD885784C8DB3709B93E79:\ -F1C8548CE25FBC255D6AAB47D379DEA4:\ -2F03398A4FA867F855D844EE45B8EBC8 - -7672DE06D10FD6B5F1B3E5AC61F2B27746586CAE09930C336E46BA801F0B:\ -22C85E005F98728A845775998F23F5F9CAA6631B05FE3AD786551CE8822F:\ -1F534B2B8F89DDB9F70B83A83D03984D:\ -53C876314889F9D06C990384D3641EC8 - -C1D9527AA95E22C82B06DD6179958B528CDFDBC982E099FF1BE20132AB85E5:\ -8D6FAE173EC8ED2CA49DC9991955926DF776442DC1B017099AE357B73B69C2:\ -51ACEC63AA4B0DE98B36531375EB30AD:\ -23DFDDDA97F97A1BC58A5E3B228271B5 - -F49311B047ED65667B79E02E347232C305E38DBADCE1557BC9766D0837C808CE:\ -33A4561CA1D8D7E59F3CCF80202C2BB05342C4BE8CEF2D1C413C5362E71EE39C:\ -AE1F2169BFEB95359CB55717D36631FF:\ -4694AE380F4932DC01A035040EE4DA04 - -FFDB5DD9D9A73FF949F98031B8E54CA7D086D7BD83F566E8CBE817F7A5930E68\ -27:\ -01B2143586C36DEFB4300F3179A9CFB0C981A1C3AB7FD6134E83632FBC5EC885\ -B2:\ -17FCC4B22BF006E19FE47A7F3D1ACDA7:\ -9B24E8C1B46791511094FA0822AB94E5 - -985BAF3296A7807B36605FA762CD74033B07A0D19A572032CC90144A30A22B7B\ -5AFC:\ -95C1717EC7071A9C9365E8E8AB56A63C3F6F5188FD56D071515E654769263E75\ -23B4:\ -A744181C72A954702461521205CE235B:\ -F1E5E566D925F72E67FD7C16742FC5BD - -A571D98D9FAFF69964D8FD5AE62D998AA948E64C3EC2114F2966273722DC9A85\ -361D4A:\ -2D3776235BFCB3F176C7B82FF34B821DB0C637B3F906FC5E6EB8517110385CD3\ -6B2A23:\ -5E752ED4C2A65DFF022F75750E622126:\ -04E3BC70FE0B5287FB8F3B563B4B39B9 - -5A96FB6B4022B903049C1DC7B209890DA31B16D9A4161E861DEF53FF461C98B5\ -0D18F805:\ -5C7B8E2A358CE90696FA9CEC20C5E2D8ED1A2A6EF5E4824DEEC0BBC0E843F39E\ -F74F706C:\ -690C8B04CB3AAD2265D6CFF3D1EA21F5:\ -7DCD6F2721D22132F53484918EBFE4DC - -77552AAB1804ACF379E9FF3CD8210D36CCBE8B5DDEF1C416668953B4747D4315\ -D1D5643BFD:\ -D6222DA67139F9CB63E66E51CEC9B8C7F2C371D3F1417AAAA99A47BCAD4BADA2\ -9F8E552B79:\ -6A6B6FB6F30634782A4AC05DC64186A3:\ -EB992E4B1255989D047D486DCAED9117 - -E139C1EF006AF64F6EE97E37FC12DF87F93317D7F9067BB80E93690CD03A54DD\ -F8009032B41F:\ -7FBFF983C5B55472AA881DE7D639B672E53CA89112C454FC1BCEA3D5CCB5360F\ -8325DFD38A70:\ -F304C4DB0E3669597A8D760A596C14A4:\ -3446DD04202AE3F7DF2FB86B324514EE - -658A21D4E0B513DD7609A820BE3A0F55C4BED000A009567BA41EBC3695719CF4\ -2A835B42AA8CF6:\ -1FA58300ADEA19460C194BFBD799EE58FCACD72C943A4999959E74EE4226A72E\ -CF022C95637FB6:\ -5993951EF368014469C049140FF4C774:\ -A8CA0BAD1B2F913D0907D0AAA8C40AB0 - -A4BB6603C8706616B4E3932F4D17392A71F7C1798C8621E7420BBA20B7FFE69E\ -76A43D732E851EF8:\ -BE78096ECEF8D4A521BCB2FAE811AC748177438FED3FA3B69DD294038B189AB4\ -7D3E6D1725362417:\ -C15284EBF517E72FF4D6E700240B1924:\ -0403E95837CA6FCE033E1609EBC2E137 - -1100C1895AC0A3A551BFBF4007E7D14CAF9F7F4C6EE1F70134D7EA376C819AF9\ -DD8A5387DB47A68C81:\ -CBD14325C9691735B07716B0137F9323B9FB8A09892382CA2E58613551A52D14\ -65577C2ECC5F516E8D:\ -630A843465F6748FEC11706E0C1A30AE:\ -C327AE44C20C6B7AAA39CD482B0FAC08 - -3D9EE4E182C06BAA806BE849E1EEE0F1204B4689CCBE5A76A3FDD8DC814AB2CE\ -102AB08EEF4F7166065A:\ -F930939B3DC17ABC2128B4F57DB554CDAE8FB753E5982B63923F0FC2B967A4D3\ -EC37694390A5DE94E5D5:\ -71CCC4B282A3B8683CF7B23212C9755E:\ -BC3BE9DEC1C4CA5753C7ECABBED3BA03 - -6A429CD60FA9DF30151381700B21B297FFA3B422A6E5743E1A17014F1B4DACEB\ -E5D4E1EF5046B88F347BC6:\ -78F328303105166AA2A007F5A781EA11A4BB64A333BF379F05F7D8615520E8F5\ -6339648C2FB0AB9FB12281:\ -365207F51C75603FDDFCA7FCFD0AA943:\ -6135D9DC5EFCD2336B7BD8504F318522 - -19026566E90BEFDE96EA10ACCB15475BDF4F051451FFC7F42E93B94B1FB59C33\ -94E21960374B4E694A94B79B:\ -2B3C08655920C3AA770231AA83D05316299EA120EADEAF94884A32714FC1B73B\ -0A9B3B573A53D12890683A29:\ -03D889839F78DAEE42EB1A64578B0735:\ -2841BD9252AB693AD1488E74572BFECF - -4964BE4642F182D57708C17AC58BE92555CDD0A0C2B9C0F373FF0093EADB02AF\ -E934E0D316FADACAC1AF457E3E:\ -EFEE5CF69CDAB2C2D1AC105C6EC38535D91020D1B54D04C56D2C37E592FFB487\ -06131A352330813F047686D534:\ -7531E248C3607BF709BDE889983E8BD7:\ -2C6804B5C23BBB1F41DC3DA8B9B135C8 - -320A987FFDADDBDBDA13911C14438966E2D44BE18270BA5B65DC6799C981E34A\ -BF277C49B0EB6F147528F0E05DDB:\ -DF6ABDC41BDB76425F2D8CFC5F6E372D269FA011AE3C2AA493DB30F569B75DDA\ -1552920A9A0AFCB574DA7EBE5483:\ -9B9E8F6A1E642D3F148141F44A702B78:\ -11237C7423EDA19C1EAE0C84F6BC3B7E - -9A891EB88E6F35BAD450EFBC09CEA0779C139A9679AEA59597C98EDCC8B3172B\ -36683AB62D3249E8E31538592C8668:\ -02A25E9C253CCB466B6D34FA3B36D113A287F7AC406823EFAF0E3EB21120DAF9\ -2F484E6E9A2C913EC2B8B86E913DE5:\ -0C8F881ED6BFD47B5B8F458488634ED2:\ -623F903A40E152910B828F7EDECB0CC0 - -EE2D21B3B4D7BB0963A524126B86ADD09F17E07FD7A41A4CD0B957EFC9A9DF32\ -047CC4626615B34FA5BAC3EE160DEBC8:\ -EF6064B1616A36CFE516DE3DE86C273016E2AC92BBD2B5345E3C3D25BBB6AE55\ -F1CB79C896A5115C61DF76BC93687DB0:\ -E0D6BEC46CBA9137A4C19DC9ACA26B22:\ -53088D58E6BB077E85B752DDBC902C52 - -61C4987F76789FE99F310290AB2444B4EBA482F29BA3738FE8FEEE66B4087BDC\ -2E2B0745EFB15B6F9FB93E60CA5A55A8EE:\ -61719F9D07B0F044E8FA6980C220D4E5297F7612427302DEE94F2F381F10AD59\ -26C133C496E65A3293498D2E2CA5C3F41E:\ -80254224459BB50962188755D792FE3A:\ -38063270D707EC6D3EEA123C6D4912B8 - -59ACE34D84974EF492E04A809FD3D45CA0B8B445461B59B6524F2CCFA3D2FD59\ -B018D4CEBA2094AB668F9671966B165BAFC1:\ -11D166C2ACBC481AFBC65D461864D9EE04C879A4ACC14A1693A57C07971A4B9A\ -A3A33BB094ADFD6BBFEF0AF61AFA0C311BED:\ -F340A9624C475D33A2CBCC1A5242FF6E:\ -7C76FCFB3D19F64CAC2A7278AF846A70 - -9B0E3DE0C6A835B46112E807B1BC3A8384DEE51ECCA166D6A757963FFF766AB3\ -2D0E1565861775CEFE8455C64E81C7EF6AA10D:\ -D17E90D24691B153B8917DA9C3520D405465D4F2C7FDB2DD82365D0E356DB712\ -C5909C594D83AE4EB079F5C392317BAD0EDBFE:\ -977184379DA6CE1B1E3132AEDB6A2FE4:\ -7445CC4DF79D018242B1E6B9EE22E9CD - -55A74416A6C1E33A09CF3C1514ACD9FBCFDE9741D0C386AB84F1F01815F3A7A1\ -626B1CBDF9D6D25712FF220B6DFCC91FC97E4842:\ -6268AC60330EBFBE8F3C7762B6B00DD92F0D85396098B57474BA98ADECE9FD56\ -8AF86B5695AE6918648BF883868A17BEB4359D3B:\ -A3A5F12ADF2EE262843B4489245A0A92:\ -57C202A720888F578CB6481BE5214CE5 - -10302F2893D19D0429A4B893763302849B8DD13F79DD01FC64168C938278F7FE\ -9F399DD4271C0B832CEC29F1C26BF1B5DB8B1BF793:\ -2C1F2FE864FDA7D93A08AF5F0FD4186B5ADE3A0833F7029DE495EF6991E72354\ -280F385430D16DFED118C984DB1E3065ED57DCBE7E:\ -E72BFE997F80D8D8B16657C6B754505A:\ -22F9E33AB71D200A64C2F05CC426A748 - -701BB84145F1DC20F7A457624AF353F0148F1C2091B840C49CB5FCC9B637A27A\ -ED4AB17BDEEE88FB982337E8BAAE35540283CBB38F38:\ -A8FD582216D3FF768FECAEF5F619B056362692D8F43C2E3E75694AD274D753C4\ -51B7AFE90089012445D470C5404A74F40B88494EAB5F:\ -5C6E15752D992AEF84C7D61385168ADE:\ -689EAE57ACACCDBC3C02265A42EF4965 - -CB1D8554194AC2AE0E3C9F9C2B7E3797848E6AF752690B2A30EEE0D545D41E33\ -6C2EBCB7C24CC5038D79265414F74453AACB5BBEBBDDE4:\ -BD19014FBC75D13E2F2EB1F18D8C1D8336B6DCFD2D17D7D27F62331AB78637BE\ -DF9C1F4378165D08C79034FBEAC9B2B90D4FD6F197177C:\ -C56BE3DF2461B1CE444FA14943E121E4:\ -284CBFEC11CFDC509E5EC53CC2E33AFE - -348A8FAD0985490F232862FAE0563E8AAF58A4463F9C6ABCD600B8F6662C7291\ -4666583653A4B9C3FB499C2594ADD05EAF82B8DDB27FACBE:\ -2F10D18D90F9471996EB7127D1219439D1867795EC1911E75DF16AE6019FF569\ -611D9A7043DBCCE61B9D261E1CAC663851C4A0303313DD47:\ -4740158FBCD99CF0DCD425A55783DCD0:\ -312B1208A28974B5135DD517D8F6C643 - -B15B6F7C6B48E6C6F9499E72311DBD707CC3C3C9534902C988729E520B9DC997\ -B3D246F009C93E16C7F54AA9E2DBB870DB6FC266F254A5EB97:\ -4A8E6487E3676E1111C79CD542FB77E20E0C6B27F5502FE47A70B0E328568DA7\ -5C736333E23707AD3A53D65C091B5A886B4F0121F7B90B714B:\ -435E6E1F17830FC1B3129CB31DC25BCD:\ -FC83C06D644CFDBD069B8C01ADA12184 - -8916C5F7DC966C0D7B9C6FADA33BE730674861B908E08392A9FB7F66A58DF32B\ -2BD3D8626274E848235C7A213BAAD607A3377D116CEC891B33E2:\ -56070C7041E650EA2C28902560BEF65100959E1FB2D2B53888E69286861A7117\ -48B7693FB597A657C27069E91F386D896727340BCFBEF79AADD1:\ -3FB7F70F55A40D38B40070F047F0A845:\ -101A58E039261D052C457D83FE99B7EA - -04DBF311335F163FEE6A1588FD6FCD433E3AF7D4CCB72FE8507C23853F3F6738\ -6DCF8019AF7C58B20A1CF7F0BF915E9C2C8C6785B702AD4EE599AF:\ -174F696EE3197A93384A8E53B1315C3C448E4F2B1AB0086AE68221383BF12C9F\ -43833283CF54E4EA421E09702724D59B4760EF4FE935692ACB837E:\ -F4CAFC7D939BEFC4B7C9BB5645C2863F:\ -DE8BACE1BCD71A743E153EDAB0F6C8B7 - -2F5249B8FC8326634C5D80DA4D6EE63E77162E211C4C562C100B861571034266\ -27C6182EC81439662BE17C3ACCDC8E23AD637CCFADB6EA97816C3395:\ -CCDBBF547E5F39797D5BB8BE1A7D840D16A8E60555F84494C551E10E1E9B2950\ -55A1CFA85CD0DF95A9E90F4AE6F43053BABB28604F88937A384225E2:\ -7725DFC7A01FA56A262FF5DE277C9C58:\ -4E856EFEED281F39164BB5D426AA42C0 - -B3FDFB3E75FC0B934C084152E96DFFDB625FCADDB005345732643419FBEE2760\ -CCF336B7B76E45A4E441AC88C94C87F70C48AD057C9440E032A20003B6:\ -021A9DB9599E243EE850AE3803359248169DF6F1E109B5DEFC3E3181A7F54580\ -B6655BD4B886802FC7E0F32872A93D3729B4C4E4CAB61DE7C5D9F3D687:\ -276AE6149D3D365BF4DB65B31BD3C10F:\ -E998FC4FFD8E0171069FF3F08F66D984 - -3D3FAAA063794263890F4DDECE9EAF9D8E8E89C11A8F779D82FCD178615F5E23\ -25ED84378682169835C7013C7E23CC9BE74C71BF9D6CF291C3AB3304C13A:\ -CD1C1D2E2539E6AC4198125E968C2E68D16427DCF681FA2006CC79AD23DEAED2\ -2CE38DC53D84445E5628F87AC621BD781E1BE45EB83B0979B922EC41D1FE:\ -86F47F53472E329EDE94D33D391EFD51:\ -3E9AD8839B92C6730D1E1B4BBDDBDE08 - -C7BE811918B7292EF452E75842F1C8C744A9FCC616B1267DDDC9B7761922B657\ -D2653DC1DFE1BE4D5F20BF76F3C196ACFE38EE1038FF3EC62470DB25825701:\ -E2128982F4EA238ADA0AC44FCA33D64F1FD1D3F8343EA61683BEE0E3D330EE15\ -6D18E8C26EEB4010F8CB0B20FA964E479DC129386D30460611253822A85507:\ -1305148EF4895A0FC12CD652FA9FA2B7:\ -BE33A68DCBFD831CD6456D77A2CD8E12 - -3A2BB9D146DB73B3CAC8C2ADD1A1D06BADD759A0968E978E36EA82E8C918AB24\ -A85F9AF8BADC2E19350B4C04E9F9894C8764B64C6BD00AF8C44AAC04588AB10B:\ -C03B4714C9E4BAF3A42E2EA7BF63CD28325828B25DA057FFA79BC56E63B7E419\ -C9C67BCC2F61085849665F549DC8A12FEB9026B4D6B041948060F0F0C9339490:\ -5580BE3D3A5A727F22B4595BE16E0F3F:\ -678ED31CDE4D6CAFC8BAA875713FF0B9 - -315FD1212F0B4FCCCDF9951DB7AE90F980E6CDAB1EC35E41332007F3FB00DB05\ -4FECC6F0B639BB916883F02423A768547144D5B8856DD1693B72329A73866459\ -9B:\ -8EC652D3962EF9CF22A2B1849730EF08730F74A0EB86FD0C4EE9E7751B45F45F\ -F6BD85167F9FFEDB8828F5D4F3D442A240180E1F296BCDE462CC4B7DE977C02C\ -FD:\ -0A127BC8C04D7718AD77F62927CF0B2E:\ -C97672CA375539D43E6CC3E06167A001 - -16B82523B23A8C431B7315C307EF103CFE366E76D7F8A6464FE6C7E3BC78B9DD\ -E6A2DA4D09D05D3DF2EC2CC71E2C5E2ADA89E2C4C263BDB24BFFE8300B0AB3CA\ -B673:\ -4A0E874F284057A72F55FE2FC5733F2A81E8DA3C35BA2B2758BB4376D8B88FB7\ -203932F4F664B0EB848A182AF957AFF953AE69A59480B40D13CF457ECFE4F4BE\ -E41B:\ -D5781536A2EDA21FFE45B78B49F5293C:\ -60D2607E881FDBBBBB215CA56F9E1855 - -83AA1A09444886437356E2833AFA415AA29EA1C16E8FEC269DBD7E502B1D4C09\ -24A42E357F8896C2D5FAE8389A369CB365F771F14229A506A5056EF2CA9381C8\ -08316C:\ -5A16F9A3E1E29371E72B3A96EF2BDBE312CC353AA464C88789D9DAFE2C5024A1\ -EE2E39FD450C62DD85E48566D3771ADDE03222178705D7128A6A4912A8AB1349\ -DC226C:\ -3ED48E0EED488B5D3F3B4D7A6C36679F:\ -659ECD5DC78B7435CBCB12B50836D477 - -86AB436404A846C845BBC3261E367E43B71C1CBFBE83A1E678259BECCF7E7878\ -5E2D473402FAB1DEB3781910B24FA07966634B8CDD3C8EACE0E0503196211001\ -F31B9738:\ -77E4424C70A4AA48521D003A917803CD0FBC72FB7E4E3F61D6618A84EE7436DB\ -BE3B103BF55B367990FC1607CA89E07E694D0E7E4237D0748E9370BBC6C99D2A\ -72024534:\ -0FFC4C7E8EDC3704A564CF4848BA0ADD:\ -A0B0AADCB21B64CE81E6FA519D9071B8 - -95B0C1A5D1D183C95ED5B77A473657CDAD06374613F94B2731157947E2008AF6\ -A0A343442A69FEF44EC1C3A9A526C1B850E3196E67966D8CA2467D2D8C8743B7\ -4EE755E1DC:\ -F8D5B408682F43946CB95B071F24AEC63E94C74F7812299C2CC7F63A6C9C3218\ -6FFCE730D98020748639BE446870BFE848AD881D02B8213A6287ADC00F430E5F\ -590B6F6F8A:\ -648A228F34AED9F09440653A56299825:\ -DC35F21F735FF7890B771720B46266C1 - -A65E02A60F709E2CB021CDA6BC4D3F580138DD86FC32014E3671D4B917077BC7\ -E81BD7D9BD4C61DC5791AEEA8CB37D18C0E2CAB4555C2C797120BE459F050F64\ -1DD876666D67:\ -05798DAA3D2815D7A6C84ED8CE2DB04E183B9072E7472176BC23D6D0F55A938A\ -8C1700C4838CABBC842D5313D389301C23E6B76D62A2A7BB6A605ABBB5A50458\ -2A1373A690AB:\ -C8473A5A85EC5D7D67B0DAE1BAF55F0F:\ -7FC23300A2B3F939AA57ADAD11EA06C1 - -4A2357AAA2042E7EF941158FBAD441083CBDED6F0361246B2A1C28751B657FDE\ -C5BD1A197A0E5F90AC47C84218673BC6CAF33A78E2E499E0FC5B7A08A300FC76\ -BE7FF78F045513:\ -C8659F0DCF964501606EAC3C3F91D17D0F6B8E6076E6C85CC8BB3D0410553E1A\ -261C4A4ECC6C19DF80EFED89999E67035AC997CCC837A2B19DC9AA514E7EA9F1\ -50A9A22BF029AC:\ -F4FBF67893DF61037133787730E27576:\ -11684438979AE34D371EBAAFA7E28C4F - -FCEAB567A1DB78D58043E922B56DCF529FBEC49ECFB44D4E90ED9B5352F1BE95\ -6B894C438202F32DB57D0066B2E2732D495B7B77B60BC3EADB3B8D22CB71861F\ -00710DA68D8CDB68:\ -96FA555FFD8542AC2185C67F6C2B1DE9D037F570716CEBB9AB31258637D9B066\ -AF2D2A46D0BC0F4F8DE7DBAA79E1D7771512B7CC788740FF68E5FA26A168DF23\ -74D8602D525AC547:\ -18B9EA7CD25DFDDFB21FCB5EBBCA965B:\ -58E6A7597E2725CE4151C2601432B094 - -9DD176CC9D27F2B8EEDB272E2C87FF9C7944CFA57BD12A9E1E7A4DADF9F256F8\ -BC33E959487CCE2CA07E04DD29A1642F0B8B7E16DE15E45EB0C5CCE687962483\ -8E43EC6BD4A1F68AED:\ -660549FFBC7351074ED0433212D7B57A8D4076DD137D83280DEE8DD50DD7242D\ -A3266ADBD2027CA03553F137EBD437083C86AE3D88136D190AD25431EFCF94DE\ -0E38406C9B592A3E5D:\ -AB1242B47A230D3CA9AA74A65AD314D3:\ -2DB97AE77EF56836261C2B2857B37C4F - -484971404DD0EE0EEFF12365C8960632134926A1C625BF847EA6AA61568F9961\ -4AEC5C688ACC889BA25BD0BE6D39230A422A997E6C861EFDD2724B307A9FFDB2\ -2AF4401ADA3AE4C269C2:\ -452D66F14FF4092DBE60FDDFC469CB7807A4BBF727EFE47F9DD3898B0FDF1D22\ -9F5864C7F22C60DB40DD6F6E4C6E726A949CBB297E251F9687B089AEB1EFD472\ -936FFD8B6890062FDF1E:\ -0F6E2F2743E2459AB610AA4905D3FB13:\ -044478F8EBABBCBA92283C03729CA544 - -9ECFAB84D359E87B8E46D6F0CFC6BB06EF2F8AA27D66864E36D2840D3606624A\ -BA8BB13E53C55371CE7D4BCB1BA5F012273E131F79CA0DC72D89222AB0A32A61\ -33FDE7740BAE09BB1E08E4:\ -CA9C5F1C3C49D22C03847418907DB46363A6B2BCF6AAE9D982B502B0CB8E02CF\ -DA5C2AC9B0BEC8E4162993C2DEE53B48458359AA7BFC2D8827D8B98227880419\ -32037A7DE2C6CAB4CC0762:\ -5188AA01382907A2F6A586FBC29EBBEE:\ -446D533F257AB6335457D53772391AC6 - -6878D201901DE244EC5CF495D04794918C150CB6F5C0D953E5B4F8B9622389D7\ -F2AA3317CDDC5571E0F7974A6B2415B7547FEDD7316747B949A224F0C7BFB46C\ -DD14BB7A332CED6C8813F668:\ -9EFB38AAF7FA4F5E249E128D3F17593537C39E317B766F256836E9F7E3A17FCC\ -C1409F1C5CFDA928E74969848DC43FB4E941FF5554F06C50185A1182617CDBE2\ -43E9CE7D9E7DC3597EEB91AF:\ -447CB21EAF8051964EE8781F901A8733:\ -36F18B4676A549C0DE722B2659BA5A8C - -23CA3DEA8D4D6E4F568BBE6EA90640EF95FC7429E2A4466FC30BD0D9BEEB83D9\ -B35014DF8E7ADBD38ECC65B46E6CA23D89664CF28258D73BCFDD3227FD428EA6\ -FA5B11F03FF154BE1598DBE70C:\ -ABC4F45E59A9071E2EAA2A58049B2579CA0595090139F08F66C27703F8B83327\ -62862924395D9D345360D082634FF4B5404B296509216E8E276BD81BBF180F8E\ -9FDFA80F43C7F285782EEEED1D:\ -B77551B5360452D628085B62AD73F5A6:\ -1D682D5795A81A894190FBA6B24C0F1F - -83C71BAD6F39E2A0CB7D925A2933D195FF186ADB4ED7CFBB9A0E4BA50ADC8250\ -EED58A02B37831DDE8D67C765535448FE1CACE1B63B352DE87BC9E10EA1911BD\ -A66C62FE3671AF87C6F3ACD24A3C:\ -90BEC207BDC7180A465F153A622EFA99BA31B01F4DF1AA9D3E8B2B85DDF4DEFE\ -D5991E29E45854CFECE24FEE5FC08353D4C25C56E19AE2FD2CB97CE01CF39D90\ -5315BE033828B4BF30AEF84B8968:\ -773FAFD175509B681A7AF4617A6F432F:\ -8550EC205F5C64480E294FE0C60D73E2 - -27EB2A8D1DC6DEF8142C2E35324F19BA17DB1B24F7C94836DE9E7508AB3AC9B8\ -37DEEED54723232B7ADEC3AB27534E1B726AA7A47C182003FD09991B5EEC8CF1\ -01BDE534BB8B486E1D74612D7D1568:\ -281B411FA4702FEA5930AA30F14C6CFAAD7CC47B84334C03D063CDF52D8339CF\ -12EAD9632AA3218476A953933FA4D1287FB0DE5CABB0EC8AE298DD0FEC1844D0\ -CEC638A1D167C7BA24619053F26D9F:\ -11074EEE43942BAB676A6A54C0F680D7:\ -B5F1FD9945A0693DF1372682FBEA929E - -A020AF13D35857A95FC8745EFA6DB000F6627A41E3B2429AC57B3A862828BCBB\ -22152F68530FD7FD7E2889C2AE6B4B203AB136E81126DEBDB673F1E8FDDFA1BF\ -53CFC7E2B8E00107BBA47E525D36D990:\ -E91AB36A19C2050F7AAB135988AA74F36CD5252EC92CC7F5E66E76279386FDBD\ -131A09BD655E5C788C9142A3418EB40C15A29F8262406E4BA790D364907821EC\ -7D77281F6F2B99E69692AF8D0BC229E2:\ -DDF28D5F03B45367C97AA207D351C92A:\ -53666B1F1E067310CDB1D4B22B419C50 - -DF2FFF4CD40DD8B4A6563C086F29A800C5D56517B28EDBE26BDB95EF2E51E40E\ -EC70B6EC5132830B8F64DEF59D8974597351F9124B6FBEECC054E76472A3D8D4\ -1DFB6C5CDEAF4F8F655818AB707AA711EE:\ -102FC701D542EC9BC687BE8DADBB953C2F328B009A4624BCFA17212387A13481\ -205A6C7F55CC81FBF97EE5A595597E4E6ED3903C4D91B4142B73B0B15030470C\ -6936FCFFCB15DA3C26CF8207659505D054:\ -83E81608A49F2F4CD6D4CE9E38F8F9E7:\ -02279A85D49830F8A904CD9484A87C54 - -F17144E09A92D6390CE9BEB91CAA4ED3E5D1FCC65630FC7FFD7CC70476E97F83\ -430EAEA112D52912DBE6CB77F774AB551EA321D755C4A62A7BE4FDA10BB0E89F\ -60C882A239ED2AEF199B3C8F48FB10013019:\ -ACE1B6EFDA7EE7407DFCDBE573B954B7ED7E8645DAAFBB25246E15446D2E4CA3\ -A3A2EDC39E66636E763153D8BF37F9D3DE907FC9D98C3ECC9782E8B510216CC4\ -14C4F4D28395821A35C4845A850382DECF86:\ -8E1F0454359FEBC2471FF02259561758:\ -AC18B91487815D98AB996E940EAF2287 - -1CFF90AB8BCF241A734AF795E3DD1FB0F63C196F423AFDB2FC3342F416C00D61\ -208AF7CF38F4C821B29F07E6A55DB219E8BC04C325765C47D87C281189ECF549\ -82F752CE7ED382D194B08D03B4A7534F916129:\ -DF5FB08A8AE10DC102D61877CC48DAA16843EA8CD807564AF2B6F4F82B4C3350\ -F318FC2A04D88E805098C71C63E0937CC8DBF7701A48A37E32A67E33304C2286\ -6743B83B1730BDBE219B93B695A24C6D18115B:\ -5AC6369174587D48E1AE1B7744F46C97:\ -1DE42C0FBCCD3D87301E750B0066E847 - -9CA6CD595F4C8A21F6D5947A0DE2B61C76E422D6C677965BD2C5559A11E0063B\ -4F93E09EDCB777D6B3EC51B379C5437BC88AF8EAB8E72F8504952B743D2215B3\ -3C1C98A1BB16B07CF3C1893ECB3C6F440B75E1CE:\ -6EA26BE272B9D9A53DE12B89F9EEFD6425FB9AEAA2642201B1545F6C3D97B0EC\ -B4BB6C37828AC99C9EE23AEA72DB4C8FBA438AF542EB262673BDA1E0D16BC933\ -4CE74FE1DE6B851C9C21EC245020F1AE124D58F3:\ -D73F74BB2331CC59766404A7FD68FC12:\ -C912AA5C9C69FE793F9B0D13E79A491F - -C0F380619D41DE3D3C0FC84C606DA8BE129644EED457395E263A3D56A9A109DA\ -BE2F925D4ACACF2176E8762C4ACAEBA27123C074DA90B1F71D6E30B283265B32\ -7B0C2DBD94EC65A70FDE2953B5E25AA9AC0DE428CB:\ -7DD11E74A9568DC2B22267E13AC51F15EFFBD02F64DE4388AB2EFEF3ECC7282D\ -930F52336E7A6283CA638CA4CD98708295997576AE4E4BEC3495CA57F2FF7B07\ -10B629E9F67FFCB91C99F7162F250956D469D41B48:\ -02CAB723734573136AA95AD75F64BB54:\ -5C9CACC35FE500E156BA2CE520CDB23B - -01513EE1D2E470ADCE8BE57112727AAEF1480C38D92E68FA99D568FF4979EC51\ -A3A63E21921933642002B99F41E590CBCF257B735AB586E3F2CFADCCA522946C\ -A1CED4EA49D07F5C70965AECE0A7678FF56DD9CAE320:\ -2FE8BF3C296F7E36517DF326103D7BBCFC7AA093B6034373E6571E1CB2AA808F\ -E0166EBC122458CE819ABCC6DA5BA4E6AFFE98F9C4DE2F7BE01225A265E57621\ -681F0CE8683DD642924F54734D510A660ADB7382E438:\ -4DE074EEBA050628135F6E0BB6153455:\ -7DCE705726988AC486109D330CB4841B - -158604D8D8A4508C2CACA26910C43941A7737304EF901B34ABEC9BCA8F7395A8\ -6B6395BC8B60FD952A12F4321A0C556280B7EB192673B758ECEFD4ACF1EDD738\ -5705E97B661B24CBDA98777737FC1939A7DD84DFA810FE:\ -A7C9B667DC31C97D5095776AC3967E9F3B2912C7E596FF507F2D10FBA8881C5D\ -6FC1F17643E83600CA5CF78B28E3104C4A97A3B3AD9ED537DE2AF85737572438\ -C200FD3D8E06644CA347618B85243FECAC8B062F9CDAFF:\ -529AE17D04AF5F81DF48B7BFEA78CF25:\ -D689379FE4A642D0A6E988BBC0B0A74B - -D93C5846F4647B17032AB3548D81116644B093B5B19E4E2AFC49198268DF9750\ -716F537D9BFDC9B466909C496FE259134F8950E2994336A3EA2D3B41226FEE6C\ -05A279B12D23370EFC7B09D6313CCA54D5940C828D066889:\ -527CB7BC14045AAEC07C679D842DE0F7DBEFDB86FC6DF79888032A872C91D12C\ -E8778F2F7A0AC7D2FFB3A6370398ECE9E532AB4550F269D0CBCDC116CA6C60B8\ -B2A161D34AFDB049A32665A90541BC97051B6C73E2264712:\ -F02044299833E58B08F0DF2E7CFB1559:\ -4B88F3384E330930637851DAA0FCBD6E - -BFC943E6F9FC3E8967A860BB09AD85EF183000779B202B5E5DE738F010D32768\ -3154F5C03E8BD2FB9B26C9385463B2B198F160DE25E7D6BEE423E4836524C636\ -87A31BFE042759C3BC94D3D2CB8219DE07C9444541D148CF24:\ -9DE102B2350C51B27B9A209001ABA87F74DA02B3EC7888EFD095D350B1670240\ -CCC2868B8DE8F75AC21DAF34A82BF8FBB585C8087F9309C30EE7FE1516BB8DE4\ -D93EFA938382AA834ABFF1069EAB633EA817890BE0340C7471:\ -5DE936BAB4C06AF24B4083D42006B6F1:\ -B355BA45A1690385C48B557E22DAAF37 - -D1592D0C67A705130543605408D6F919FC30A2BEF6D4D0CDAE5A7CA1AEBCEB4A\ -EDF779C9DC7F36E1742CDB993A8FE10C3DD02878F9B906EDECABB5B6ECA1CBF3\ -13B31B0A24C075626027E113A27D9A8D2AA466FFFBCCF0A69ABB:\ -D2F41E4F5FCBA0CBA4B116BEE8A18E07610AA1CCA0309E9FBF35ADBD2842AC71\ -7F996C569697F73BBBBC852622781D2F9D0A06F59070019109FACA505C91E70B\ -8C592020364C8DF7464C1F5170A0640D3910F74BDFB22BF10FF1:\ -BBF991E78408A06E251F1C3A5CE70D52:\ -9BD49245886221FBF69C849460E29BB9 - -1C1B4F2F4297E12CBCBA6309AF806D4484683299500447C0C7E89910679DDCD2\ -D4BF27F759A9D8E8D6FC5C3B358A510F69F4BE2A460DA4183985D426E1E5D171\ -D5AC363330FF4C42E893F20D9BE08CBA3FEF9E4EB56260B866FED1:\ -1DFD895B9E4C944D6965517F115729D6C6CBA48F1FA75B63CA669705FDB31EE7\ -D73973988F5B73CEED023AA6398AF1C01ED3CD9FCF9BE04AD675E3D49A50F9FC\ -386533C12F89BF5CC0C8800A2F769D2BFC01FE0E4D7BFBDB254FC4:\ -270DE1437695766D234EC8AA7550955E:\ -EC6DBCF2BF725BB446A026DECDBC3536 - -96E90DF1B05F9FCEBC85566B90AA6B54CB45B20F86A2FF093E09014109D01D82\ -BDDE0FC837D2BDFE461E8C280C517B1E9C4899D19E35939919FB29DCBDDF98CC\ -59C29298399A9E3B75DD0AD13061D785136112251DC93DC6458E354D:\ -F02AE9B596A60B1B55A0A1AED885AA41CCAC58A620ACFE54F222592C4F9FF9E6\ -38A6F8E57276420EB14104940F128DF0DCE8998427A1FEB6D0077D92061CA9BD\ -AB42554329C8D44597A346CAFDF19DD6EF1E271CB444E1594EEFF448:\ -65B0D4643037333894C2567F1200651A:\ -5CDFB2A7DCC2E1903BFDEC88954BD0E2 - -F41F334F73D002068F64A43533BAEA6A0AB6703D68AF6D85621AE7993CCF08F7\ -637E047C0B9E8F679B7228AAC16ECE23B3019F80900100AD079E5F9FE571C524\ -9C3CF9B8BA13C7566F0EFD29AF4F4827C1676D2E895C8C743DC9B48E33:\ -FF27467D014B193A4A435A0851A6F70C27BA92ED82A2E4ED18152EF20FD5E7DB\ -1EFA494ECB64588B29FFF34827A49EE511C29A93B68CA661732C286AFDB08727\ -1421D4F4AA8D0BC9E71C59E4CE6169227435BC2652EAB29F3A63F1E9BE:\ -37C4175403C4A0CE66F44A0D89398150:\ -2B447659DF9022B1EF5EC995B4EED6C4 - -0A17E8BC90EC5C507694C084AD918F6B42EBCBB0FA695794CB8A41A3B8F9F4CE\ -3ABC272B3B1F2E46F55A89E13A99A4509FB68EE322AA95ABDA5DD65519056210\ -FC327BCE11E8A772998ECEEAAE0718D5677746FF68E4E24E890C775AD3F5:\ -176F5728351F63009F37BDFF6D7B305E77CBFBD621140530BC4B9CFC65EB7761\ -13BFA8FC6282979907E78E0A14D2C7F97359B3648F841C98EEC4DDD0F15BA1D3\ -057A0EBE0212EA54D3F41ADCBF5315EE23926870408FCBDB0D47292A1F01:\ -30E5E7F3199B6F4B9B4799D0FF8DA9B8:\ -8443B0454B241D603E3A4CAC72D562CF - -1F322F9D6F5CF8D38AB21E1B655261316C1CA0BBA2236F9F2FF5550998B0CC0A\ -376826CF6142E3D1165B3949D172A098C6ACF50468BE1E498FE020CCE0B37C5F\ -DD32233CDB4DCC5BA2A70AAF1F27683B1DE6A210DF857AE6DBEAA5477320E1:\ -D3930D3B1915CD157DECA33D14B79F62D0BEC44F51A669E07F2899CC21A849D7\ -6011453BD064189415B726D9AF12C8F50CB887AB6714FBC71CF83E3953BF52C3\ -7FEBEB48D14C62B1A64F04F987BFC6F311BBC27C79F4520C2C710B69047BCE:\ -711E9F19B40F63409045565634E94FEF:\ -00D36E6FB099D38C94DF4CE767A26DB9 - -C830A4AA5EDD5AC64121F0D47441884D2E9CDEFA5F7138B4B8505DF55185170A\ -80164F8B1BF583A0EEBAA52ACA5BAA81471CAF81FF79E234FB5DD5066F8E1DDE\ -FCBEA047B9B02C80DA480FCC5B67378AA3554DDA138256696A875FEDDBB233F0:\ -35A8F3F1C7333DD3F1713680B1ADBB4268FF3DF157C7E1A83DFEC1C224723FDC\ -864559B9436CCF36A6F930AAA7BA03CEF94C2A01ACC587E3CBB334779833ADBC\ -22B873E71506207A4A1320FE881C0B5F6EC5B384B7C50E88FB8100AFE85C0E0F:\ -8D2FC9D115F014FB6F61AEA91DA55153:\ -0E0E45107F52F186FC2F38B35565B8D2 - -08155837372A1F8587F31553D0CC20BFF1B499D0EA035FD3809CC14F6BF2A5D9\ -565A734831A2EFCF4EA5939FC74BB76A0C8822958C8FC73E77D4C856339E5790\ -22EE3AE26E737A8E9C6E3A9481796EAC61035BD97AD45EC7CE746AA0D587369E\ -D2:\ -E9B72DEAFD9DF0839B94F32937C8F4571F83C648EA7E26193A264A75734DE940\ -006D9CB5F10E2647E5253D234898021118578CFD50F7D9A32E59C48A98859D05\ -7CFFB16F9C345002A0C577E875A561A15C78983771D75A7DF7286B8924EBA24E\ -59:\ -6F7035148AA370DE95DF32625C61DF1E:\ -89D60899E5C54E72C9E86AFC88E283C1 - -652D41B854C0D18458B8C583D5122DA3AC6B278ED180E9A98A2CBBD23854DB32\ -DBCF4377E44F339DD6571AE16693D9E5AD9834D38836A71002C40BF320C28EBD\ -C5824F6701EF35996C8D6C6F843C585C83A42C5F775073AC065AA1FBD61F7F18\ -D68F:\ -3C56B8394BDDFF0471148D0A9CD7B0F6B179EC21B829EA808D6E55450CA688E8\ -EDEE29B1AC3AEAC76B0C3A2D8604F09FF3E777085B522925CAE621DA0E66CD80\ -63440838FF3FDDDF09A64F3ABA5CB43B88FEEF6572C053076BAEF92454729C08\ -7AD2:\ -7CB41B5675945EDADD9065E47EB1A2D8:\ -883FECB5355C16D075A7DE014BA9A05A - -3756825A44E0C3D7E90C0F4EBFCB2FA4561EAA12C693E7FD8707AD206133D0BD\ -EEDA0BA65EF58030546076FC9904214E65CD9DF37DDAD962626868A3B32AB476\ -BB694534D37A77953D6F1109515C5B5FC239C88FCEE22BACF54C44E03E9E3784\ -CD9099:\ -FF9FC9F00DF578810D3D9F7D50B881B2578E9D7EE8328A3F8C702F9298800621\ -DCE4CDC2E55E2B75B0574A57A9296400F811FA6E899CB8214583B969C9D5CB03\ -EA966FDF32A2F1FCA8B0B64BE84C18CB4A7F7BD8DDEC03953E744520D95A6D65\ -FC735D:\ -21C9044F7F1F71AA0FB698E80120DE7B:\ -FDABFE4911247EFA953293DD7FE6D5DF - -FCD4675A023315724B2BB939E6E1A62E403B90C9DD267DD6C2E4B39DFD171117\ -4B9D13004827B08A65193BC21A9A6C0AAE8C2527ACE9C62AF6810ECAD8671403\ -CFAAF86BBD72E3BBB1875D9254D04A8209AE9E800E41A7BA5514F9913E94CD84\ -69A7B6F7:\ -5C7AEC623C486C256635814A95F07235A4D6932FC23CB54CD0A6C76ABD58DED9\ -EC90B9802B7D4366ED11E7AEDE696D3A47B716312DB0577662C1B8B8F8523EAD\ -62FFCA8F3C6D15CE2280B7DC8144782D9CDA5D609F871051C79FAAF9006F686B\ -068E9B97:\ -E06085A98E76F04B2B78476A4FEFA542:\ -9A619CF8924C6DCF2CBA067A34B3A761 - -9483B567F791C819D9F4F607AB82E0E2F75DC02BFFF7836563B1F89CF0F3C859\ -AD93852485A76A5D51260376C7877E2A875BE3C6528D339C6BE1597688805022\ -AF963A47A188112C714CBEC0435AE99B9441CB7D5D3B3048CF9C3CFB91C7D248\ -3C3CBABE75:\ -3FF3298943869CAD3CE99857B849455232AF6A0420985364BED603D012F1AB29\ -DAE327C27FB107FF25E061A60933772EE5F9FAB717378E739ACB6D2F09FD8A3D\ -1B02C2359E0AA8C07593367BFF1C5FB70C20BA8742D4EBA2A9D12678FE08CB75\ -8F17428DCC:\ -BB11666DCE893166774A99EB9F4E4A55:\ -103399E7EA5A24A0CA60FF24DC08B391 - -00080A114314369DF72FD1339E2A83F2427DF458221236C416ED129563D07E71\ -1BB378FFBA1787809C8AA09B031D23033EA418E0BFD8E694B0904C73B964D73F\ -975462D3264C3F8E09182F732E8E14A2FFE3F50E5A6F81BDF6D49D8579AACD98\ -52E699C23502:\ -04B30B016A92070ED18565327AF7CB82C4940B3289B28BA4A1208357B8DB6F79\ -930E885E05F617C5C152D619950C1B986CCCDFEB7F9BE26C41F2142DD05C25C3\ -B92857B87FD7944611AC6ECFFB66011CC313C2BC96581D7624931D061ADA6FAF\ -4EA4B72D2E73:\ -1A7031DBAD6A06FDFC79B25C77E9EB9A:\ -64D45D74ADDB71224104B3A4188916AC - -D5576F37BDE9BC6FB4BEF8F83BF565C8E710F05D9F2FE47E4266EB23875C54EF\ -63C5937A506B7BC3FF6ECA77D953EC905A2F3A84B36CAC6572BF8564D0D33C1F\ -F3BDC96F374AA75C7262F49338AFA81A6E6415FE60E4E61F3994CDD19589BF38\ -9CE4BA169B99FC:\ -BB5653A4C90F6BADB14DE8D41C55648BCFFD7017F8CE43CF7D78A4FEF9DE625B\ -0B9EDAA83C901C5079E7A3E2353E9679032A029CE34C5DCA41D917659E2D46AF\ -062728E7D170FD743C1E52851CB00AA95ADBC2216C109523B605041C1C220959\ -16EF8ABAB9C471:\ -B2414750A8AE2768688F7C82B6DB8C63:\ -04B8131DF59B53A0BA806FBD07EEF083 - -47621B4D2805AEE6DEF034678EEACB4D6C4395B39D8ADD4A60A9165E2CA7B388\ -0404B40AF1B1E9083AF8FA1D69CE83BC9530B67D2BCDFE9E36D1FF05D6FB6213\ -49FAF662C55F62727C447B35AB2336FE86ED7C4F3EA6880352EC6826B5E61BD7\ -2478941454973E3D:\ -95AE682E1A4A92FB00D8855C22E3763064BD8A771EB2AE675E0C676117AA425B\ -B885C63E7FFEE58402170FFEA5FAC4B5EAFB53AFF6998804C6F99AB09821F8D4\ -2F8B7EC788F0E10CDA6714788DF679976F928349FD8E8F14548C1FF4FE9025C3\ -547E486B0ABCC410:\ -BB7CF3E17CDE92291B4F5B97D5091ACF:\ -B5D12B6A1B4AC6904FC2C77DF2A76772 - -358B57B91E90956DD981B9AD2F570908502F1FBEF230A350B324316FC52E1BC6\ -E69A2CCF39990AAF1FCD59BC7B712CD1321F7F9915CE1A46D0A1CE9E3F500BB0\ -D0F1B9DB3E1EAA8CB532489AEF8FF6FA4F6970D7BC8045E0BC9F304E257145EA\ -7A5828902FFA9A6B89:\ -70607CBE0266AC893D82198992E0EB8687B6787350E8797A96B16FBD8444A092\ -058810420DD51854E87E532BD45402682C9FA77ED1499CE07D6DAFCD5C15D056\ -000052E3D9403FDEAFC91C479AD9DFA313DE0C9AA3700664D32190348B29F9FD\ -B5BFBAF249F10FF0B7:\ -2F5B82638FAB8E485826C4B65992577A:\ -5BD1063BED52DDA5D04D0F85486763EF - -B713EA5878BA973DB81463CBC2DCCEAB876AC10EF2BEF98F141428A933DC6968\ -BC657F53AB286B28FF6E141F6DEDA0D0E708B20F17BFBFCC0D994B443A853A29\ -2C94A254A8055B713122AA27D079CD6741BF813DBD9471A8981E433F824311C0\ -295225FB9553A4038254:\ -4A8D9EA5DF1462E152F8DE358A92B7283723D49565CDACB3DB050E4C93C152C1\ -4063265DDFB76D46FF2319309169C2086A31D521BAE0B9B3CA670E1C2C033F31\ -56BB9350B0BE208A7D41101A0B063F71771E2AE2A0A5984DB5341C76A5091CAA\ -A536AE7CE4695FD37B99:\ -8F4FCEC73EFFE3DB1DAA37494D1229E0:\ -82FB062F71C5984EE7A80643BDE0659D - -BD2C3B366C5480ABA112A5481AABC79A024ADD95F6FDED50B328EADC4109F669\ -103636F1C6DD7F1D57E307535F4FF3DC963C96A8DDCF51470FF02AB21FFE9100\ -08A8DF16EB2373DE599189DFF12CDC348D67A6F33357E86DFA5F813877FC1679\ -74AE1E835469497A682D68:\ -11CEE8C48CF3398082D0820F8FD1B200FF0D0BF29E8EA12F845EF999C1B4E9B0\ -938CE474755921C86DFF4658C29615F0A2D64179AF384FDEDB103B3B642D3FF7\ -99E24394BE70C9BBFFFC56194FE861B124C9A605629ECADA990CB736513C2843\ -5D1935E3145A3CC4BA754B:\ -7E3D876FBE4849C64A2E6FBD6935B8B3:\ -8699121F1CDCEEAFC4ADD47DD4822507 - -3E4A39011E58A44C9ABE3368A899426D034DB05E097060C01C63F0DE3149D0D1\ -69B9F185B7C38506AC7976E6E182DF704844F1DB5736821543E978B9299614D0\ -E3027B7D39B4FD4034E3562D71C685FBAFDDC16D0A6C4DD1A5B3DE255ADD980B\ -C2CA50B117CC6561CE792AD8:\ -D5445539FA5E9045304A7FB13ABFE5E535AA8BD830AE8FA0A8787FD0497A995A\ -9E42A622B2D9C00CBD66E48A74C4C32CB4862FBCB38BEA626DCF65408D7CFBC8\ -2527DD709AE68908D14A9F0AAE118A7A90A94BF970F6E4375E42C377609C04C9\ -D86F5F18109A8B21B22BEBF0:\ -4856224AF0495A558349E5A8A13EB199:\ -7E9E8FBF19BA323CB2B8060E79FB526D - -0178CC505660EE73D385D55A680C13F66811CADDACB97C303D90FB9AA735B91E\ -025A5871125B1F8F728A1A4CE1ABF2B68A1DD66F72E9CB6A28B7BF13190EE5C8\ -8D68FCDD44FFBE340935B0F32AE0E3071554B94F7CC069AE0C1E465B7FEFB643\ -04B84B4548A2B6BEB219CA9C03:\ -C43FEF0049C62915C5E7966A2D51AF66A61AC78A7E7725D007E41808C3BF0806\ -71EB8710CE36C78905B4EF0A2C4F294F702AE24D2DBBDBDA8FBB7E3DBC1EA0B9\ -7A884AE62B008770A08C909552D48F076268B9C14F94EC1BA17D504A63BB7B68\ -B7D2A7C0ED2AF76CCE495287BC:\ -1D8F327BF9485ECF42100325FCA85813:\ -28C5C1D3FAAF5703E95EE78096C53022 - -7A8B2BF9414A0648449541D609CE1DE8D3E8060BF09F449BE3F98FC4D6CA7B41\ -FB3DF2306B33BD700C767C99F934C78051BEFF6F21661F4C211A2AE7D8BC328C\ -57953B39E1B424994B0EF865ED752A5094A4DA28DB42F1D492435E7D4FB92B4F\ -E61D5034921D0371B0DA05E90A43:\ -28261AAFE01C7FEEC442ADE2C7E298C09F7BE36D8883A3A81C8266523B8CDF1F\ -A4C45B9C41E96FB53F8781EF4A91192342C473AE3E2B0D3C026803868D0978DA\ -488EBBE8282CC07AE95E8042C863EC66A73482481450B9715E8279D5D4FEF788\ -2F81913679FC022624BC9E800C9D:\ -D84FEF97E5FF1A5CB866B8965AE205C1:\ -56DD14E0C72D31557A35F16D93F36973 - -459F416851ACC54284A9E82CB878B82AA6C589A9EF96BDCF18F47663083F53A6\ -FB5596F976ECC5BB49078C07E7F31E68AFB84F6BE1C157E93A4D0D86505881DE\ -A2FCECFE477BA35FCDDA2CD2B9E85194A63FDB06DB8AB5CF6C25CA323C09D6F1\ -14BFEA93CE791FDB588A068D27BAEB:\ -D7E8EFCB3081AC49002FDC9B899FACD2326AA7D13ED97360AF2859F86ABA346C\ -C7A230E0889269DBAEE7E83BCDAAB0274CC84B4C3353EF0F75646C5ECED75AB7\ -BBFF646376155DB30EAA1CE5E0AFC3BA38D0EED7FC9EDEC2418FB6BD00E8DB24\ -8C07B2AC8C92D5696D1B26456F67DE:\ -E274D29F8D942F2DEA0F2EB56EA4A65D:\ -B060E8D64520B1F3FDD513421461DB88 - -2CC8CB49AF1488C956C3E065C6E4E14E40C0890BC5D0042E49F0B42E0FC54347\ -0D34C98A894FB31EBAEC18327888CDDDEBF3A6467DED49BDC7AB0EF1F3BE1DE7\ -B6A7C0B63D94F818E21823E9AD75D4416C55848FBB6BE2A9F06190089E455B4C\ -EC9B5E45AD86D93A31E4AA84508CF9B8:\ -16C084E323E61E22443BB67DD8BC82A4F42DDD86A187242802F4E6EBA7381D7C\ -9BAF5D439884B2B7231F93951AEF45E843EAE09AC7208D774B5F3798ADD4CE74\ -A41508E0AC7D7DB8A6C47AF8BBC49C41B96DF51867BF4C650EB39DCFFC6AC736\ -5952C585CFECA818C62BBBB2A653D426:\ -710DF4F3ED2C815B98B0D6100F79F9C6:\ -E79A134DBF61E5B7229C75C312F5C02D - -4CF8A7BD22E0EBEB7BA5D619A9964EDF83518B08A074597616385B8D48AF8A7C\ -1F779E728229B69FDC5A8624F95C9B891FD27153E5CA3BDD40C7BE56D2A5FFBA\ -E32CAF544B5BAE9A7A9669BBF1ECEFF913D037EF7DD016496C52199E3613314B\ -D78084518A5661F42DFA7E87ADCE83C5DB:\ -6051562B133B0AA03D3CAD98E8696FBFC45BC457D7888DCC302EF3A6CEC34295\ -FB6E96237B2168B8F7EC6566E49A28840D12A9B4A6429C57F2EF46A2B8F3EFBF\ -79252D86D7AF9C600AD4E01728791F349DFCF97E6B0C487CF14EA8D79FD72A54\ -88FCB6F728C5214BFA987B4A0521A22F22:\ -6B1E9BCAAC6D93564DBE4EA67AF7FE82:\ -EB899146B055647A2A32798D45EB8DC7 - -0C78FFF41C47BA8610D9EECE738A4451CA1AC3267D9F6268AF5E8EBE432E8252\ -FA8E378E0C4F0A7000C93B415249C66719BA3435593F216937E7F7DC64EC3E26\ -B38055822175D8D27979CF4AF86B3A61447E29BEE7EFFC249483FC29815B8A93\ -791DE7A8E3182AAEC0A3ECC4C5945A203D5A:\ -56562246286CFB3BA6BD411A3009CC25BFA6CCDFBBA44BC90C1EE7B4FB07A5B3\ -66183C2B230844108CCEED0FABD01B15168F82AA9B8315422A5175D86DB2EB6F\ -452837F2C9D4EA7956D6B254E4E4979F278518617A1985BE35B71F80B6CF5589\ -F076689E022EEE974F496147F29FE5810CAE:\ -641A4B7E4268220890E145488960C185:\ -59432C9E1519A223838B180634B51521 - -34B22337AC8C2D57B79208DF0CC4AD245FD02776876F0EBC5B3EF57A4E35BD52\ -2B8F8F3ED20F630F2C4C706845D1142FE636C69BBAF78E9A32C86F7ECECFF5BD\ -AB8ED1C72CECF59E7120D6C1A1C91BADF25F7E2E710FE6A8C97EEEEFBC2E45B1\ -49DF05FD33C1D8B7A37F7A31CDC43A56409961:\ -8D4133BAC7BC2644BCA4E525AB21D57036DFF7CF713C4A80B913E0E0DAAB1EDE\ -268B7D2629CD5DA5E69DEC179C64666AF7944482D051A43E3008DEF5E1871A1D\ -E6DEF3539AF563F42839F67AE0A36D1E18381C8D8A50E27E28998E3637BEF02B\ -409AE040DF719AADBE213EBA57B179FC5BB0A9:\ -D3BC0E0818C1D968378290A948DFAD06:\ -F9CFED1A6FD8B74DC354D25315A12869 - -6A70DF92C64A831F654DC3C347D12317441F012C3B34B62E3BFE9F4BC65F9EE7\ -7520B11A109D60CB5C97CC071504E900ACC32C85754CF17685C12178C40FF85A\ -453293404AFADFBC4369EE134AA1EA6E417BFD290B2FFFC5B244CBFF10008644\ -523D50962D7FA7779B818D20DF1032E0D08DBB36:\ -938BAC00576D4C6A3AA073F1AB7E06FF98F57838F17F7FFEE2BA079DF12DB2AE\ -79DB5225B274D943F90A1BBCF239755E2117AA9C7631AD60D93A03DC2D848E5B\ -BD3CBAA245621B4E124AA1772BA423DD3D6B86478C8DE0EEA53B43728A299305\ -E96A93FE337D06500DC4C19E96AD20DB495D2A01:\ -45931A0BC3F330A3390A1285121CBA69:\ -DFA9D41C68B05242052C49B3F9476722 - -1B46DC2A194A4EC1D6DECB3B4EEE8B9E815052293884070A0CE77818BDA476FF\ -820CE494A8A620358E560E978BE89F6753FF625E7B9FAA2183E173FBE7B8EC09\ -ED968733010412A31BE5155FFB5E1A31063CCE011425C2C0BFB6E7851BC6937F\ -324F8B6CD7409C14DABDDDE9D90054B97D01A9D030:\ -7C474EC6ADB6D2E9CC286690FDC89B3BBBB53DCCE2529FEE1E7385A73ED7812E\ -C1D0C07558218889872793A7ACE8AA08C2AF2DA5CC529E588A26896E96F257F9\ -5779B797353B3784870FD49706C9F53C0D3F7698264B92E437435431AC793ACC\ -740A68B2096FC4BC696AD35BC84BE379F08C2B75C1:\ -2BE723871AF751A8F29FE427EB4AFCF6:\ -9BD948CAEC0C63433EABC81058FC54D6 - -9B09EC9C26135DD7E328C616BACFC1166CB0A6DE265DE3930EE2F6C2A2F17A6B\ -9ECB4C695B1D6195903AAAE922EA99FA72F2FCDCB4A0CA4691904809E9835D2F\ -87ED4B8485F2B1378A8D14710E0CB21223BF4A031996FFD9BB053597B124FE42\ -D712369DF9E42662C4F353381B016FFB39117953231E:\ -93FFE4FA99138A95461489C915CFA41F0BD8E73DA1D02D6CD28B4516A1D151B1\ -CEB905E4F4282A586A41F567D324D6D90E1814CF86E463CCBBBC20C7F4A95174\ -4CB375A621FECCC418FBA8DAC781A8E89E003B34E1C3D95313543318517C02F0\ -2544854305DB91B05CED444B02956E1ABD7A464CA158:\ -3DC16EBE791AB24559F9B2F1F6C80D13:\ -EB15B43C7C1FA499E13972ABB38E5059 - -77D6EBCA61FC06C689515C26C8D13F7BAEF7539E63ECB3DED59B3A12A5277674\ -507A94EAB4F7333159929EE79BC000CD474AC416159E0CCDBD77C4218398C784\ -4A98B549BE8CBE06B7A3CFA269347DF9BBFF1C7E9346F6045548C922E1E5B961\ -84A0F5384242C404EF31CD0ECA6B5A0D3D1B825959F87D:\ -76AD0A59D48C62648DAA6AFE551A76D734EB420CAE0ED368EFB29ED715ECDF9B\ -A06BB58AC17986CF78307D12C8477F7FCBE77D47D14700F998561F8045C4CF53\ -C98B048E21C773AA68AA6DF4571C64084DE4D96CE838C103643C077E1CB35EFA\ -664820F478F4844312FACEB4FC014E4B8404B8BC8C3540:\ -62A399748E8768CFC4354749FE98E1AE:\ -9DE4950CA5BF39BA05EB3A5B867FCD59 - -8973F0C9A1AB4E76CC645D59DD60877081349151C5F39705D432C6AA3AC1AF56\ -5AF923F6CF1635919F59F28F18754462D0A63E909AF3901D0D4643CC627A3D75\ -0A737035A1C43E58BF43E90BF44F7B766CDAFC1001962DF30B54462DC1156A4B\ -A34FE80EC38AF8EE0715A01F2835907D2C2341FB624909E8:\ -D88924E63979C8990E1508D198C019573250A3FEF243ECF82B5C6F3D5977CE69\ -38A688C63F7D44890B1AFF1F0D82C78C21B2F2660E612093E161C5CFA9D02B0F\ -13C3689AFE54CB930370A24E8EC7AD90C3AABA0278CA36A14E938929117CBCE8\ -ABB102ABF2CA46E7413D4DC265AE42FE513954CE88C330C7:\ -00D7603484E89AA807CCDCCAA7FCEEFB:\ -B20E59D1782A9B2D156E82083F5F0AE9 - -6E617AFED34D6D72176C41071C562D462ABC10C698A3D30D7CCE1702669670C9\ -EF485FB7239DB3BF58B0CCEFF683BB57EA7C717B007D19358517E78DA5BB9B83\ -B336441F99367523E3824B842A6F58D8E4525D8A04BC011DBACF413F8B2FDE1B\ -2E69B59289ACCB6F67E8C74222FB8EAB8396DB82142C9C227C:\ -0D63C50EE0DF01B0D6757489B6124D16779A7756EF292C0D1527B9B12A9C1EDD\ -F14CF75B9AFE7AFFE082916D44FF3D7FD5950597A3D3507D9C25240DF0959439\ -1ABF42D4B9F126F9CE7C5022724196878C7FB7D845D28BFB7E2B8063D9BF1CDB\ -06632FAF53B05CEDF1BFBBF7FD9A900893C1A1BB80CBB13B80:\ -2BC487B3F0B5849461A34EC826530DDC:\ -A626101B94FB228B40D9BFE968B93283 - -8057464E6C7CA4832841C68AA8DAD0820D9B6F914B58152DF50D17DC0573EDB2\ -143EBECC208E15F85040624B1AC941A5739E36508964FB23DD6BBE4A869ACBA1\ -660E545794024D8CF79F2F7F47F7AD27132EBD9BD45DF4F0B4CB2E892F3B8F3A\ -5A6A4443825B19D2BBE1ABFF243050338A8E6A94E7299779C04B:\ -2152EBD90B8D0A132CB4A0FEAE79D17C415C64EF95C08D178B6D106860A1806A\ -BB36ABA214ABDD07EE9D188C6EC64281008739C5ABE99341BEAE5F3BE8947EAD\ -04CF713DBFC3E808EA1A25721298083736851F618541FD740F5037977157B751\ -C2C665AAB37B53EF2133416000861164309944FD2C7BAF01E0DA:\ -24EC777AD83D32FD0B3E273CBDC3D06C:\ -0A864DCAADFBCB0B21681045573805A6 - -9A1964D4FA2038D123902B51A09FA1A5EAA84B5F6A1F622E78F799D487EA90BF\ -44C6D591C5F1785628A98045DB7E5750C6782AF367186431B07C8782C1D5D5D6\ -E09455079DD6DD1F7B0AE3BD3634EFF698A19A6D86D91143179A7B350A956DE1\ -B44946BA9E111BD690DBB0277DBC2C79F5627E491C4BFBA09A7E91:\ -B13D67461B776D04C361BB32202C29F576A082BD63A58D4A059CCDA610546D32\ -87992D6D62B72DDE8FD2C828C8CF40D4C8E83FDC28457510F90C3379A394797C\ -D9375F139042116573728BD54F7A42B312813D656DDA88245318F957D4A560E4\ -5B395DECA5FAD456BBDD6EA37CD9AC21A87377D2FE18DDC19FC83F:\ -4C5C40C1DE409372518E3D2486181C44:\ -989F5547C5F79F05B04E40353DB89A76 - -70A6A74CC6C98DEA90BD6D18D8BBAFED2CB45F757184DACA942B1EB2728BAF94\ -A245CF5A3F27FC8CABB9564BF803EA75DE2B62DDF361454823ED68B691A1C4C8\ -6A0361543B950FA9D67FF767C1DC20E384B7FEB48518D0B251553520E39A05B9\ -50A7BB2B44B7B8737AEFEC2A875FDA8B901E130B3947B65CF9736103:\ -1254535BAE8A3CEEB81C5AA04851A3AD15CAEB906ADBAFC93F05436619C037C5\ -9ECC67B1B4419733B9D5BA4323225B4BE11CB0347BB750E1B40603E23FD06736\ -3C616ADBAE85C1526FE2C8F11AFED5CECAB321CF97EB314B999AB118F098E2AE\ -1F89E56F13FB501E77C02DA692E49C8BBEAA1AA9EE97E7551756C2F0:\ -F156CFAA28C87F157DC989170929E8A2:\ -94A82BC348B0AFACD194C3423AA8875D - -F5AD5AFB27665589C9F524176716C60BCFF9E3E41FC9F6C5E8B83C5485F956C9\ -BA7BFD0D8742F6F391D75178E6B560C0BB32AD3701998697C23EBDF74CE4876C\ -9B1C89E43736653D6A0AC442B143DEED7F2C5E84DD4874E1854E676CAC32F0FF\ -E5C0057F83DEA1BFF2044D5FBD4768D809A61FCFAF4A654AE21D233BF8:\ -FD66135ED18956B6F07BCE45BD57F0FD1DE39935B8CEEE781988DFEED303D189\ -CD49725F10BA59876F00569C1B7E941F3EEB21BA0E04D0B617C435D5638331E5\ -6EB7CE315C4FA4D875ACCD1C4B8660E15A3FDCDAA77398271E80DCB0B8B861B9\ -7A2E2B509234BD538FE0E8EAEC36BE2AD4CFC46591487297981769036A:\ -4E36103C8C67DE1AFBF8109D10BF10B1:\ -41EB43240037C71DD6D6B2CCA3261338 - -92233AAFE15359C0E59E8EF3595311AA370D18FBFAD06204346CA4F2F0BE6DE1\ -D3302819BE77F4898615C4D3D887F3F0209E66E77B002150CA32709C91099BE4\ -20E95B5E753D6F5C0C09F67B0DCB5DDAD0842F6CBD3CD16A187691E24A7B2F14\ -BC95EFC3359B80A2C3C93FDE2BEEBDB20020A3041F5D83EB5AE89FD09637:\ -7285EFB954C50E78998DFAD44F952F436CEB2C47D303DF1281CA8629145794BE\ -88B62AD6D8F35B00C308B321901C3EFB2AA32121276C64079EFA6FCD86F7812A\ -8AE11E99274DED703DA1DDCAD91ACDE50C3FB38900E07D4C1F6B74CD6010D6FD\ -6116B9BFD956BF0A3D391C39EA314236E14DDD9AEBDD03C1CC65C6337348:\ -11A8AF11A03B80A71452973CC6664AEB:\ -A46F37AB9C79CAE2C0067913BEAEFB52 - -9A94824C6C3551364320E09FD9586C515AABD15AFCDBBE31C2AF0E7188BBAFF9\ -BD249C3892FE6F4D16927C1B65D3106B3EA4977E1A1DBEB0F0BD88ACAC7492F6\ -D5834DCAAA12B9723DE2CB00D634DA187C15DC212542C7B0D495FAB7ECADF22A\ -F95C4CE4E762D18EBD4673F2A2AEA54F43D0048C80A907CB609EB3B3FC5F1A:\ -9F6DAE40324E5E369817F79A5B4D57474B75C5E9EED2A7450BAF7A5E94F1DFA1\ -194EC919030EC853A7B33BC1D3D5C0BAD403102C5BFD76383A8723C73E88B406\ -5267E075A5A42665384B1336E7435C36BCE4DD98B220D42770C6485175707427\ -8EE9654D9E9798F73BABA1CBD48C80178332EC159A5BBC7009D7D627FCD37C:\ -59AC380799FF7D4A6126A445ACE889D5:\ -18FFB0A05F2FF079D89E1D36082A4579 - -E71039961AC14FCF7212ACA932E1C6307696CF7D98A96048D888CACE6B95A32A\ -268EF802CD311EDAA92D96019938D7F6D1E12C70306A1A893341F610D387248F\ -00A113BE0BA43CE254B0958EE5DDCF10BDE3223EFF0BB7FB71C833A7A3AE52F7\ -8E00B7A294A23B76868A53B74737E23B93A7B89F6890791CBA7657715B9DA9BD:\ -E411BA4401573E11E51D6D7E318D6DDCF23E5927CA429DCA57C419BBC391CAC9\ -EAE01A2384F4705EAC94B06F151638BC7299DD8FF570404363430E9B06FFAABE\ -C5E1384485E7A085AAF6E2692742F7E9003B18A4B9FD5D772EB0A326655F38F3\ -9B2D49035C484AE4B4F12B14A7BC74A1F0ED2BEC9906E45C22C085C04679DB62:\ -F1E297E1C4E33229EA69EA943BDD5C41:\ -D43BE1D1871642996713B6400DA4B0A7 - -[TEA/CTR-BE] -0779B5A4D94C4B572257340F8F86FBDC5AE955DB72E588CB3D8298FE27ADC668:\ -6D787EAE01A5D7946C8526B75BAAF2A8D1F13CE4AF93E469A21B7C53965A1CE1:\ -F580309FD46FC90ABA15E05AD82078A4:AF4D336BEB213C0F - -6DC828712ECC5C470541DF1602B85F4007CF93FC070CC7762D7956B7BB549B6372DBC08B:\ -09DAE7B36CB22B70FD79C64244E6E45987B5F7EFC8CB0B8E3CA9F43764807BE1027B7BB9:\ -C86E8F484AEB12370C20A3A0EE5590BC:13DCCD64DDBC8E41 - -5B65BD1306636A3AD2E0022E02E85269F20F76F45B136EFDF4C899F8C9656129B4CA8046\ -2AE80783:\ -E89A69E8F2D8150C05B56F2A4A944857B645B16280612F58FB89B08EE8A20EBE11C862D3\ -9A1A59A1:\ -4C55B486E92B56E40276A86483AEE6B9:3967D01A6CA67F89 - -311BD2A8AA6E97C4E84A3C322A53181D72A6C189C7B1FE6DB283BE9EC3193EA91521C1CE\ -DE7304F0DE4995EF:\ -10C9482E1BC5FC5F3E0204D721A9840ED5921483104A783D46B376E9B74BCAD25C5C4632\ -F523CA72CC6733F6:\ -2803FC9BAF7D0373B2D479046AAAEDD9:B91B7AD2875C1EE4 - -55243E865867E2281B3DBF43521D984804AD038D8A4D113DD1E118358EF1366AA82854D8\ -7DEC5C8051C9915F685F55AF:\ -02BEBB951E42063A106A0797227CD7CD037BDF9FCF2DB5405645B1CE17C0D6C36A361109\ -7B9D74599AA5614E90BA6046:\ -B45B330DC5589E6AFFE1A11C09C4DC30:04F4F13187E04998 - -37B0677F9DDBD8DB1496F75439862C17100C2BC735087B9A0970DA487DFEB9520B2C5B22\ -EC089777A710FC7C5EF5B7AD83199993:\ -E8DF3BF04F4EB8209BA30532885CB16F4DC4CFCC9DAA5D195A8F92BCD9B41ADE5B7EAB7B\ -1BCEFED039E3A3F8810C2B34A3E3AB24:\ -9344248E661DDF45BCB9B6E529B39431:3444DD3711244051 - -DB572CD1DDEBF0C06AE910471B108064A73851F460F3F79A303E463230162B99452DBC0B\ -0BE88A17765D4E317B04BAC5693A5B2E5A1AFFE8:\ -19D1415407B422F155D1E8EF9C99F2C77F68B39516D4CCD3AD020A4B01A64244FC0E3012\ -A19FEDACCDD64D948372A2D8FD2F7B7BBDBA8CD6:\ -215C4753906EE909902B163EF367BEE5:A9C40171E5946170 - -98E56143F834948EC76D2D3651787E8B6D1959FBAA1E4A8A8917091E626D3A7FCAE23E59\ -726A9B7E6808CD6245ADAD71EC52EE49F8B6983AF90165DD:\ -A2F29D9B387237DE529BBF8FA26704D4246C68F0C71FB986A735BEFEB239DF8220B3EE66\ -F0C8BD4B764BD4C8DA951BF3F0589315F5AE3E7F172F3F17:\ -63689A7EA77EE56313EDCD9092EE74A6:4FC29C5D1A03780E - -05796CA4B977B4D81B3F898ADB404805F6418425C6FA44C77ED6CF8B3A5C6A4D4692A3E8\ -A1D0AA88429C73DC0931BEE46EBDF759E16C975D8528EBE66092C686:\ -B8AB041041D2E9E48909A193956F9CA68D6ADADA5C2EB9A6F6795BDB751E704B2F9F3E6B\ -5531F2A2449C7C710367B4BF7F0EB293FEAC04D3C387B5C3D4F1F2FE:\ -F6DB0F1401BF9E04BC31F0E5AAE3B6AA:FF0415F250ACEF92 - -5456E7301B77AF7E4E571D7A542B4DA79A6C3E198E29B973DD482CE44EDAD6C8BA2A7C6C\ -044B9187C0920BF626E55E844C8746F8FA3748DA84A49D2393AB68294304CEA2:\ -86927873D7469420C6E817A1A9382FC03BA4DFECEEC08400E3B0995F1C695D2599B3612D\ -DE5017E0B2422F233C86859CBA4A038D2F9E1DD886720ED63365A9184B1EDAAB:\ -CC5B8B7E1D9877A5845D9F2C4070061F:EF786B15E7F3F602 - -E7CE6B54133D74C1D1F6370AA96F6993354E1BA145221B91B689B5A759F808D7861A7384\ -BAD3A192FDA08A36E9287B20188DF4131BC2D47457FCD3705C0D510A565A6E7D8EF7B22A:\ -3F1DA63F3BC4BF2691FD10D71CDFEF4FEB29F9E3C918C432AA7A7BC8F804E693B0A25F2F\ -935F9F9A8009959A118884E626F23FBA1C624CF719951940690C890AA05E8C87E55E3098:\ -899D47EFFEEB386DE8342FE3A3242FEA:CE412E40677E5BF0 - -F2369B2BEEB9FB44CA09D59D3C9A22E107E960CA7588066E9B95EE6926DAD5E91ADC1320\ -6AFEFDBE39DB95BDD77655C132FB108F4721EDF687CEE1258CF5C43D60F8EC31D5A26B02\ -2B925EB2:\ -EABC0FE834E386A647EBCACC5FE48308E475C5DBB7D18F404A83F50FC2F93CE75E4591C0\ -334479B0A9920CC3D9389CFDA9E2D532B1C491B0F1F3057C797AEDBAE51CCEDF72023556\ -D98868B2:\ -08C7C0A9B04684B49554E83499D2F277:7D16029BCE205DD1 - -2A101F89BCCEE248AAAF5EB65D9AA97240B9644FFA73305AEE2498A085262573D23783BC\ -442D6C296F126017403421AA5AC8E4AEE44E020DA81BF52DF9D0652E42F2768F1428C43D\ -D25E63E2B2FD7344:\ -E70DC7AC1E4A4E1461F6DC51F64B0C236F3BE15D5AAFFECFC1D094A4D69063E14EB4059C\ -D14481A26FF7DBC6BA07059856C2C764338B07E1C961FA56275AA450929BF62399B42362\ -9565E3E7C1DEB293:\ -9D923AB332BA365F20DA39217C7D1650:49B9FB1F976B6EC7 - -375D52ADA62453CC4F83B43BEC349E85119D9233ACBA7328F3009041FBB9E83DB788B79E\ -E543D93859404A91D0166397908BE510D0FCB58F0033D3884A0AAFF9348E4E3825E3D4F0\ -E8B7D592C7ACFCBA11C2D9F7:\ -27F658DDDD613482AADFD44E832C372665EC2001697602A274D84BF3C2C76A5626D84C8A\ -80306E31FD8748256FBA279732AFD0CEA0102EB103511CAB71458F881841A3D49A43D450\ -558DAE85159310F67DB2B747:\ -7BD5159E4DD63ECF90DDA801DD608104:7A60E38CEE806006 - -F81D39C6A1A977FBEDADE7F2A1C516FEFED8621E0C3FE4CC01DDFC4035EFB3F2DFD468EB\ -8899C9368A4DD48327EBBE739E6A68B063BCD5C03A896B47C1DA723A5AF8DA8629964D43\ -73F38F297DA5FC11597E0F0AAC6A328F:\ -84DD988BEACF8442FB917A80408164008BFED0C6B66A05E5EF5F46CBF5C126108F3986F7\ -336E5BCECB7F4645FEEE00F20511C52A750029CA31D869340170F30933E92A0DCF703EAE\ -3A7F15AA004D84358F76C4D3965E67C2:\ -F0DCB57019B3CEA07D6F8B81F8A974C6:FBDD2704EA4830CD - -44176AC9FA9B8502B675B559FFC21164366F73BAD09982114F21D2CBDAA15F88651EDE4B\ -BE5B644EC78B375ED58DB3A4D814A6DF7563F282E8FEC7C9965668039AB4988F6E87DC94\ -13AB3367500C6AC1ED5968E5B31F44F176B02F7E:\ -DE0DC6FBA50CA8E81E265781993875746F2C30BC80F682F085C644C162AED09718D09B5B\ -FFA421F8B26FEF78F222D55C5CFC71048F805393377AFBE94775057B432D712CE65B62B2\ -E48A2F973D3882D10BA56AA3DFECD37DBCDD2D57:\ -92BEEED6E43A5D7A6F6211C85229D86A:6B0FFBA1B3FAB3D1 - -1788E3C83C04ECE0D95D27BEAE329CB99D5E84FC3EF4A45575C630C8B946365467386261\ -CAFF1FB8C615C840E6EC28FB0A42C633B373F5AC79C32FF90F4883E0DFABF01963C78681\ -70CEA96A30B4DA4BFC1107E31AB53D63A9543373E505C779:\ -BC545A4E753BF6BB554B13DE4CD53644AA7235F2593BB0B69B11EFD66B3CEC201790271C\ -83138945C5A7347635F788CA0883CECB6BB4B53610A64E384F769F6591D962620B660CAC\ -0A587FE9212B5A247001B5439D62E144F91608CE39756FAE:\ -2A70897594FA8D00C8792ADCEB16BAFC:530C2B6E298FFD38 - -4C8E284F44D41B80818BDB68A8D57BD63F267BC0888CDA54AA48386E32C561BF8E3B370B\ -CF9615A74659846F476DD0FA6CDEA8FF11FFD3FE7D5BA8590CCC66D419E9D96ED3CEE7A4\ -6CF559345FFE61AAFAE1ADC3868E6C9734AE56B41E35B6D8A2316E4C:\ -FD08FED590AA383CE472B91572CF6E2244A897AE7116F0821DCE23223AC1DDC28207EB5D\ -DDACA086188DC78FE5ABAE43D3FC4F0F259C521EC38B8DC0BDAAE7F80B7B27DB75B00E35\ -E8A88380FA5205B002961BC6F1A4E81BDE84F7A3079F10F8CE644588:\ -85EDC49CF905E1EE9A8205C3709E1304:82E743E483BEC9F2 - -F33FE0DF117BA01A850C2DEB6EF8CD86CB65433ECBB079FD69831A06096DDBFFFFB1EA23\ -F18EB4B4F397F51A5662462D8DC8DA6BE49F9DA578A90E12C8CA33F4579BBA602EC4F442\ -2D93C5FA8E8EC2C9640C0D3A0F0201A5F3D57DA94A163C25E185F5F4089F68BC:\ -17297C6EAB5EF458AAA16A1F0D7A1EE3496CAABBC623F2127307EAA81A78A756E4373F39\ -1DA290357927B703EE1F0623A3FF7101CB78C3525C059BFAC4A3DF3588021953445A521E\ -415AE2576948B323F08E3CE108989BE73EEF7F00FF01C1C587B312E5D80C0D6B:\ -F207A0C6B1A66ED1D50D256693DACDDC:6171F470E638F864 - -59170FF4B0A175B7EF8BC2B2E0AB81AF6C994FEAACDE9D255606A1DC476E89980A092763\ -2819B55DE0892DD43F0D7CBE5C4279E6251BF5296FA03C8A2F0260339BCE64DE16155F31\ -97792C2379F11D102A2F7825A97A03D6A62C85C3A1C5BDAA18E4BC25F6C0BA43595D194D:\ -64EDCCBCA6BC3C6880DFC6BBD62DA90084AD8CEC2A704A7FFBEA8751F467BFBB5DADEB43\ -039C6F17FFF1EE87844C7EFA72A2EDF1EAA332CC4F281E5E813672C7A7AF4F85FCCBCB1B\ -0AE11F869382015D7DCD676BD4B482D175A5AE61730C5A29DFE7B14F7549A7DA12579667:\ -358CAE6A62C661EB1B365BB5C37CB744:4F8E99D3BB7E3057 - -8FDA3A1460325CF70E0DED926596E870382B6B4D99FE89E86CDB6DC1B25C82C5816DD622\ -980FFBD4148AD82196865644B90A6B282DE1B92A99CD2AE0E804FB330F95724CA5B45A2F\ -C57B0926AB998EDCBB63E61E8673FAB199C2BC83998B7F43E8307B57222C4D76CBC606B6\ -B4AE8D1B:\ -55E3B003AC093190C81300E08533A11C4C96D30E3DF4E030DFBB1D2BE741A8F30188398D\ -AB8198972D85B44948AF438D6BBD9F47CB1307389F456F35238B1901F03D8FAB0669B66B\ -F7DC10619D5DB72AFA4990F52FEF4F96576542B55251B83E7EADFD984DE5554909C89758\ -65B78A61:\ -4ED8501303B4D3F924D5C7C4097E57C0:2B3A19E6E2EB6CA9 - -3599E1DB61A7B8E74620BE5965CB0E160A69767048BE47083BDE3FB650D0BAC5532976F2\ -5530580B7EA047A346F5E8D413B07CA19928444ABC3A94CC52C7DCFFA3CE402F395CC182\ -7B13DA3B33E4658041E2F7393D90C27D928EAF9731A5054F289F736429D6644FE7906440\ -58309B8607587B9D:\ -6AFCA1CE267A3A90C6CF0179699DCB96BE1C42F0E7985C2D4D8D725C5FBFD9F6996DFB59\ -C0A5BBD09A58418E1151C1BD847B44D58384837E9594E445CFD87F8E324A0BB938838AAB\ -D0A496DDA178C927810E674ED0E36D257EA79743261F555B0E04E1524460DED8C288D71B\ -330F5AB0A13A6FBA:\ -C8378142EA256625CDF42F9EF7DCB2BE:7E12641A0C703137 - -7B902233AF687EB4D0B8711FAACBCD2446038DE3F41FA72805BFBE69E00DC9AC5936C848\ -1539C1E97DABB61CFFE9D492D758F8D8DDFF7AE764DB8D4D946CB3207123A1F95F7DF76C\ -F0BD8B276004C9D685C93D123B407A78BC8342FAE45D91B5DCEB7EE5A2EAB15CFA38F4FB\ -3586C45E7279DEF3A5376CB8:\ -5554A20E71F2C86C77A13DCDB065D01EEA0880BD648F3C17937623934C7EFC77B37733F2\ -D1E96BEDAC273954C3F8301A749D14CF74AE76A9CDBFE559AD9643BA818080E1D8FAC761\ -B45B48D0E19F51657115E8ACFD6E81211D890EABF55E06946CB90599005B535A6D274E22\ -1F7A697B92BCA34D1F09FAA7:\ -DCBF96AF1456108A9B9227ED94CE806B:05C03EFCE65A8210 - -A226BAC3B9FAB88446697ABF579D5332EE60985E2EA7065AFC56FF26C16CD4B944C7BF3D\ -C3CEF4BD9AE3000F17CB304B649D3A30776EDFA7D067D439A5990F2B7BE3FA5A6447D22F\ -BAA0683E7ED683707C30557557E2291574A76C68F32BFBA14E2CDE9E1FABD5034FFA38EB\ -A9A18BA405412D3CAC48D0A6F8B5033E:\ -B22F813952B9667C95028571AD9F8731A41617A9192671573DAFEEC9821B1A82296C8BCF\ -6DFDFE16D31F2AEDD69E9B18E8B34BFEF7D08FE47466AC0299F8E08922E515307E284BCE\ -85E70C7BBD4F7783653BCCE054BB82A14EE89EEFDF53C772273442576D37F90D5E2E14C7\ -0769F2F3ACEFF8CF1E71281D4172BF65:\ -2B4B352CF67C87C3397A3CFD44E6758E:C5ACF3B41053377D - -C85A0F50724680DF59E0AC198F7412AEE6734C05E53F6957BDC33A89E40DDCFAA4F1E211\ -C1E3390EFE49F299478DCD9026CC2E3B49F35E893ABDF851C39F76ABCDF9B5E3E4FA2B52\ -0966A4E1AEB36E8EBD1BF5DDFFF64C9935E89B75DF0D78D1B54D9FA6F8A87A8A47215915\ -70B47E091B016A381A3E76B3AE92EA014EB03905:\ -13C3BEE2154D3C4A9109B1F3E0D1D21CF47FDC283A7ECEDF2338FADC4F893896A8EF03D9\ -98EBB98FB732FDD1B11061ED6FFCE2613DE72AA898931F4B5471BF1B96D35FA467629275\ -5C1B77AD5AB0345C6B3E8FF05F7EFACC393762A075D36E88CC5EE1AC3709DA398E21F452\ -CE9F255D93BDF03AD42444C2ABBE0211C38F9F84:\ -81BF9C41D2404B0A468380F8CEBD5996:2EC2328185E51927 - -EA03F0920CDB09256BB8D2DCBBF5E0F9C14FBF0449BAC0AD02BBC6F3C5646FD13F2995B0\ -B6E37B8BEFC5E85DEEEA696E4DA351DB87D694AD896EEC2F810538CEDAF434931E6A69A0\ -19A2C73C3309FE7FF028D7A8D387CEFF33A63C4FA3669B41EF3DD8D7A0A923B4AF8307E9\ -072C32020B42D4CA2F6933486762E8E3286582FEE0F1636D:\ -847772497AD58F8AD957CE4B2D83D16C8F6F0E7A693DED94B7D1D11832078CBBB9783AAB\ -878CC9AAD7CD731E74D314DE0B9E9B9F65A279C05ED1382D26882F8BFBF06192E587CBBB\ -EB2167B96DFB3269B4BAC805288365849EA703E56FAC7F13805AE140E894B8E684642E73\ -BAAC18E7F0EE1637FC17C42789525AF0DA8D10DFFD7BFA53:\ -5A6F131AD458C1E9B3C004109CC78E7A:FF6CC874B337996C - -4A90541507A87188EB104184D464D1A04B622CD3C706B5A800B57BEEFE5AFCA521568626\ -7D2BB696F64F4311D33A83C553022C482EC939A77D6F2961D668625E214AA9081056643A\ -CCB0FB9C67892D20B674E5AE2036214C41D162C7B44E453F87659943088A8468BC127357\ -41B2F3E7F3DDED053B73377E9E9CE47EBE52A4FD503245CDCEFA4919:\ -D3489D41497715E8CA4B828E86A03903AE435C170FC4DC149D599832EA64ED7917F30E45\ -91151B08E46986FD94C2983AF9713AF602DBECBA6B9F9692AF43E53A3A04AD8B8E33E846\ -B95C8CDE80AA03D46C923137938937FD7A285CF322D23405F2FFB8C836B2CBA663C4967B\ -FE61DB36860B6B741826BA4F22E5393879AB76330545BE2B62389491:\ -B0221D669075C7DA04EA353F6712C7FE:386BC7C0AA935689 - -8C52A4AFC465477D059AA22CE8CE343FF273987F10B249B1A19B6F95A69B0C82F122B22D\ -D4FC9AD3DA4AEDCA876DBEE1AF12101B5CF065EF20E2EFA1B50349659F77DA6928BB5108\ -BD9226424CA31C7ADF49C4F738F013AA5A55380ADD25E840A60A5113B08506D71B702A45\ -25DF234AA0BC459222879DE4EF24B305F6B6E7D5702E3EE7320D5C1FAEE2AC70:\ -B054E0553AE9BE63A3315509949DC984F145DD24B152E6FB15D712067AAFF77733F7AA8E\ -CC4D60E47E4CC1305BBEDD7D572ACEBEC9FA31F3E701E2DD5885C1C39B371B6582D14AE3\ -2D31BC04976E3805EE3BBA6C727A82C8009C1AE39F866C6C5C4333498B32337E435EDD70\ -0A48BDC28A7918B8DE08E02A6CD3BA196C7236379C12AA86FFFD0DAC3D7390AB:\ -5771D7A711C92CBB93CB776D54083382:7FC654F95497E5AB - -18AEB9393D3A19E52A9F83E7E419C40E533CD2547C186038B315787C3F9616CE14A5A022\ -C2718D35CF6B54227C4E496E1552D392CC060B87E843313705797996CC5E73BF43141BFC\ -11452B209BE877D7ECE2A7A4D4C02745179B90D5E6A205ACD8BB01405632D1813E31938A\ -37F43165A1F1C5AC87A1ABD8A69AE655D4FD70DB124FD3420D700726705224533C9F6713:\ -51E70E5CFD39FDB62418893CDC05469738E3E144E4915064F2ABB82F0DF1D1147AC59EC0\ -01A5EEBC6763AEA4748825814E4CB5A90B271007EB8FDFBB867A9911E9DAAABA4D692B1A\ -D9AE2465210037A18E64A742D831AF8AB925B696DC0D18F45B80C0F6A46A07E3322E26AA\ -DE193F64BC2BD998F819C440CD47781A4DC21B831476145093319BF8FF4C00FC9E33DB25:\ -CDE4F850BA8D7F1C9114149084656B49:A6250EFEB105609D - -9DEB4E27C4592FD5DB48D3DD21DE22342C3F6F1533F288D8BBF3FA65E67A66854479737C\ -03F2FA5C40E0001FD84D9EA4604594CF571F03BBFC06668D12DF9EE61CCC0385B4532924\ -3D5A5D06C19791389E89FB54A6B85D005B64C08EEAE5FFD7DC1C9F1DB87B5C55D06FFCEB\ -1C9BDC3F78E5CBD67E06AE24500546B17A756F9A1639DF24AA77CC53B6893A31D87435E3\ -3B1045C2:\ -44C52C48BC865C5FFBFD05C2B27C4D2B69F373CF704A2E91FB2CB0D429B957A6EB3089D7\ -9182311777705987FCB9D8539BB2CCCFA1FFC8D49EBE6820D01F10597315E46985F4B4A2\ -160FD97BDE4E5F5C7C7441E06E089540788121B761340DCC2BA676670432C0B0C712D6DC\ -3B565B25AC5C31177A50499F716522CB5ED67E9EC63C73E6FC6BC68B0C5C7B4102D4F59E\ -79439CF0:\ -44738E1E4B7A442D209F2661FBDA824F:6CEBF2964385D443 - -15DCFFF177841397C5B02A1586B9EC69250F7C397DAA9C0C2B172234B18072B894ECEDB7\ -6F839878EBD358AD6AB62D387456AAE59D865969E9398326B140B1B16867847F0BB30FEF\ -787EFD2E7F61ADBBC9CF13A519DBA56907787269D5FEB735F88A4C6A313DEA440C4FE07F\ -C374E01C83D65CA5A26631C745F35875BD58890A066F82F4A46846937792C9E893C87856\ -AABD0DEBC110AD4E:\ -C8065C6F95C74F52907EF0E1409608E15C1D9C97980891B93AC41A6100080658C4F84FF7\ -70F0BF240B653B60A91796AE3996C449447E6E1E19FD7C48B8A6C6481C2B5F59262C895A\ -57B4C65E0549DEF9603FBECFEFE9AFA60A26A417D5523B7E47E5C04F07323A88A447803F\ -40CC46D57ED5ECF43D6F1A1BF48F03D0D56D7594B83BBE856A476E9A49ED457A1FC76314\ -0EE67FE5F77D0769:\ -7D8DA95A23D6B81028BB069A712AFE2A:278E3C3D1962967D - -47743B5282C40BC1D37C6842C7DAFE01D49FEEC11D27D212DB0FBD852712416CD392ACF4\ -1E1A5CAD44B82032FDAE4E94BB5F94ED0ECF20EAF9C68B49F9F0D0D3A49A377C18210130\ -44070654606CBC11E69959DFF4E975868399C4BD3A3CDA32ACAAC037A8AF3155F8D20AA2\ -B76285C6EEDB5AF9E31865BE1A86E5615F8E0CDA4F0DAA44DD3EEB1360C262429038E8C9\ -D43054EEA4C67E9C26504FDE:\ -F7081D26253675F37E0E644CF5FD2E2DF27B760A57A2C9753B2BCDBAEE6EE70DFD83680C\ -B1B4166DCE85F48E52943A3A7E83969F4D674226323C12FB306F5BEE80B96A8BF99BC497\ -9753465E587E9FBB43BAD2003C8DA5F99CE06B6D198D024E7E41576539CA2176DE8C78EB\ -4926CFA264C108A153724F49E38B2215641BF885FDB366FE4975A6AE5B5C9DE89EEBE3F3\ -6406F0169F09FEDC9D582656:\ -D798EFF93075E16619C04C27B44B7710:81D4628D9577608D - -440DFA2B6F45BA97928C07323E7639678ED1B247376F8B51BD5107BC66538ACAE5D9F692\ -4B9060AC5CC37D360F951D81CC2680213B48BC1FB392235D9E74076BBB1A7277E4B4CC6D\ -A3D8B011A31B92EA82DDEC54E3A982988E9823F343E6638A6C8A8B4F9FA1020A81B7B707\ -776BB4991B5C7DBCC9BB9D041154122FAE8F6690675826AA20C251B29EE5647B160041C5\ -DEEC1B90BA21207B39FD0A657527D480:\ -6253441E82759549F5791B82541649A09600395E37DA34BBC9B075E084C1C027D3A533D3\ -1187C4F0F3FC26A2DACA5F10461953F3F2D8A0C152A367C0E2B99DB3831FB9691C815290\ -2954A26C0D14AB3B8B7B5DA82450FDC4B37D6904F8835326D35ABA9431F003E867AC26F9\ -170DDA423837F657E908493CFC06944B359A42D1761DB68A6A61D9EF03DA83DBD0B4F69F\ -020FDB560C687377021C09977BC8208F:\ -831246376C66B8468E7A6E6E897878A9:9955251D87DE0D7B - -D2F7A97B171A9C774D0DF23173044F51282364ED0F373E86EA57C6AA726F313FBF49DA8B\ -F30411F4D85BB62CA06C577396C0CD74D8F43DDA49EC5AACF46D9D3C20F68FC8E36FE6BE\ -E147040811CF9C6EE80F3B011494C828B6822DD83F635C1AE32A115FAB35E5A7186942C3\ -D5E3A25FB2A2D18D877994DC2F2066DFE5873889978DBC5E6686F24A9D4F69AB8F7B9F19\ -FB723D39982D2C22A68E0D526B35C3782518E721:\ -4B48E6C50D37471DB4D311A3303722020E874C6A578E4CFDDE95C44507906ABC4FBA603F\ -0494AD42CE4A660BF4CA06BC7FA1084DE0315DB0C85081D8A06CB823DC876930F948D594\ -020092F3AEB703F95DF7BC94DEE275572BF9D6D6A6FC51AEBF7579F0CD49369A8047D46A\ -B9E47B8D90C4EE61A24536F638987E4D343E2D66DEA1FD670CA98AC284DEA1FC28ED522A\ -B1F5AD0581357300799413CBE6A78C9571B134C2:\ -59C571414163AC80C5856A8E8EA9A524:9A6C05BA3212D92F - -0DFE5D7CDEF8C0EFA80C66136189518199FAC9A459DF9FA5369D4F1AE4E3938DCF790F65\ -939A4D8E27CEEB7F7BFA098607DF2C300D61B00E4821B3A52150F5C38A9B12983E0232E3\ -05419FCF9D01628CB18D22C88E69091EFC8ED328317894145BD9C7488EBC4C7DAEB5DC9C\ -ADC240CF47B1A0A6D720A8EBABB78A2BA0193F2C1485C77DDC47258A8B9E34A4F4066C6F\ -CA22E44AEAADC6FDD6C398EFECC6014662286D3BFB339D2C:\ -248E8FED5CED6F9FE5BF2F5FE9D668757A222AD0525861FDF8DC86BD52C75AAB502F3ACE\ -EDF16448107C65CEC8C462C50D9918C7CE84CD7C1F17BC16625D4D9CBA7A335E8DDF31CD\ -F86EB9A2CAB4E6D46136F05DB0FC7E9811CFFE1DFED75A1394860731187B3F4D053BE3FE\ -A79693327F6ED98C40277D747D8601447D5F02401C0AF31DE0816310F81F83683E405AA6\ -4CC47953CD922ECDE6ABA6AF4378BE5691B78FB0C2918187:\ -B69C5FBC4525445638D618F669F82347:346955985318F429 - -4A25E4F0F608CB42CE5E8EC7B48A822918236B42D074D0D7C8D1209E4F68E4DDC9F90B25\ -4BF967FAE9058DE032C1084A1BD9645B7647774FDE927DDF1776D5F829CA436C9E8F5D6B\ -4689B592E7EE0ED9F88C12D1C6F30165406BCB2177859523855BE160E7CB477EC73AE50C\ -66F827563B4173EDEEB4AA6DB82B3AFFD9E719BB0701AC3DF37AAE2992348F33BE426B85\ -151D7581F1553A0E99C339BC407CBBCD3EC9D603D3F9E7110CEC5A50:\ -89A0DDA3BA5012B8D10F97F1546BB16AD2123FB97A8DE83EDFD42222EF62A07920C93B8B\ -3A123F5CE5EAFE1F9645975DDBBF031AFA61166C90E2A5677A07590B483CF6FA9D1597CE\ -FF8734A3D9554AC4C946A4551EF8698CCCEC3AE7142595D3130AB2712719595A6A143856\ -53DB4B52FA784D75869926237F43C8077732A4DEE1C66220226815E0E77F868C68AF4268\ -BDD89ABD6DCCBE42CD2CD16617467E188D200517FDE85989BFF9A751:\ -14388CE990670FBE1D821E677B829621:E13F97C3B492F94E - -E0592FD880C54A90F4A3FC3F1057712CEBDED7CFCBDC017C9ADDFB9714C044F1A5AA11E9\ -300F9DE1C15F8368B5DAD6DDB87BE1B6B2D3A32EE21DDE6C1098D2B84787E12366B8734B\ -37130D010A91A76CB6CB153EEE3AB7736A2D6EA3F6FC6072870F5EF351FEE32777CDA4B7\ -936A1062CFA69CB94405E1624E2D56FA06CFF4D31616B20FEECC2D2CEE58C81E3DD0EB56\ -3EA825C87914C1F38FB9AC35C04812041F2D81A32A9C8546ABA9BD5AB6E71942:\ -003770A75B796934A5C6C8362381B47E9DD791DD860AADBF9F71D4F76D648D210EA1F16F\ -513FE403B0FC39EB84354F585756E95E9C114679A1FF6F90A98434110CB1EF5FE540280A\ -6A82C56855E3A0C83FEA2815C4BDCC22308DF7769A22033F6B2C91ABA1F6BA83D03CA788\ -2EA584E2C2183A1E74A75F1E934E3E0ABFFEE26515528704B669802FD6CDE0811B98BDE7\ -120BE82828E0E67837EBEE0DFC30FECFDFD5B4D5A251571DDD8A42E46583CAF0:\ -8E0E06D39EA04A2ED224FAB12F875169:4687DD18DF082821 - -01A8E66CFBC585451DDC5BE634C7C80DA329D3DF16239DE9EDE1B6EA4EC912B5106999EB\ -348DF1009AFD0ECB16FF5A7EE023BC8C4963D52FBD8BBBA5D99B0512D772608746FBBF36\ -A362761CDFD5DBA5A0AE5100D0FE1AF4EFF576CB1370A4B403DF7B06E22DFC37B1E1AB6E\ -1152E0DED0F1B5867CE72F924EB3D5A122EAD315C7EF570DB199DAF3042937205CA05E22\ -C101527F9B9187DBA80461DF3A0855CE0D32A80255DB81327849901FF16061A52BFF8410:\ -0FA83C7A283B563AD3A1D91FD96E5033EE3BD79C786E6398504D2B152E8174BB1F743D2B\ -5F209A7792E89D24B0E91F9A8B19FFB2AF659F0826C743E85F469E31BAFC645EF27DF183\ -CD7AE419ED8D83AD229D9CAC3C67E8C6F3B722215D24793B3AF04283A17DE3B36E34BD48\ -309B2C8DFC5A4B55C0DAFB7EF0E40355485B89C381E9227A7080C2353D05E2E97F58EA41\ -A72E3DABA27753D44EACF8B9C03F21FBBD96D5DE4D36EF0EE7F8E554E1B468126F5F3AC8:\ -282452A3EDEC7BA6850A6DBB481F18F0:AC2FC317AE3C2DE7 - -525585F116281D04FD8C06E92EFC21C91E936913C1247CEE67727653974C09F768F31F07\ -ED1F3FDBD6A21194846E9C7E96E94728D640639C77B299102A8D7F6CB35904B00DB8455F\ -1AF65B05DE83ADB6F2759BDFF79CBEE13FC46669771CBA432E6F777FD5D9C879C5B891BB\ -ABB568BB541CFC1A8E567D718DAF292697370206F4B69541F9F44DCE287FF966B62431BE\ -A035BEB6C13573E32233A9ED5C50A0D71457FD8B99390FF345D22AD61B23DCD0A0464B95\ -310097A2:\ -CD13EC2531031AFD1B215EDCE6B60C6F1E9E8FB13D83B9DC28EE9F586C3C82AB7FB3359B\ -6C2354703093C883C489AC1AA24D21255E2BDE7BECC0F77B55E23090B18129701553A908\ -ABF324C917EFF7CAB5B12D6FD4CCD0928748A223DB90F66B48D79333968EF22502A5EA9C\ -CCF588FF9FE70AC2DB669C2A56905EBEA7AF56BCF42031F3866C77E1D62A793F39827458\ -AB46132868CFB8D72216BD41327B8473F24F68FEF8D0F46F339D533949B609FC2723D953\ -C5F2BC6C:\ -A36BEA2CD9E5D98B4B63A2EED52F8C1B:C2BCD83BF070721C - -47A0196C08AE929B236B36A04B7441FA40E69EACAF3F087F160709AF390C5769E1452EA4\ -1F4325EEED011D33B82454C7B6CDF6775E0809BE8068772E66EC81CC0319A7D27BBB50C2\ -B7D0DCAA8040FAC70BF3947B6E57127422E979242ED79608566A4CE9C8E0EF3589249996\ -601013B4A32D3784403D52F6E0467FFFBED8AC31E2C200F169AF68ECEDAE791AD6D4E518\ -624D9BFF90116F154686DA7342B071E9A9435FC4AE2F42536FC93D98D6DA6697AEBEB47C\ -94451522116467E3:\ -A14B00431D6BB8042C402005AF87709D098F6366527099B8044FEA9C173323FFBE5F53C3\ -013DECC92616652FC26B8E46E0FE4116F3A44D8C2E5F08B0D2B0EFA3B42CDD4809D2B8BE\ -DC6940DDA928B58D7ABC1A7E753AD1DE54273C87FB18E77D58C4AA1867C7B01A6F8C291C\ -3EEC5DDCE8CD3722749F3DA01C9DCB4E7B62F220697B5EB47538FF8FFD78E4CE949A0265\ -E8346D2ABB62F5537789236072548D8588FFF3D8DABB7AA51634CE7051E824EB4BF7415A\ -2DE90CCC264E2917:\ -52874F3F111082522E9EF5ADED117EDA:2455286EA57BEB7E - -D32975CF8583D36F57C092295D8FBA7C44722ED0F385C102EF12E5BDBAE80037C5FF0725\ -E6B950EEC1413E628EA8088B9ADDF2CEA379235CD62FC01762AF3BE11DC766A17FC10F85\ -BAD826E94147DB78EF4E0974D4566900D87643370A8C88F42471C2479B7686FE97332D3F\ -014809711124619D13644E5C95FD083212F580F9FA3E2CCDDC0DC33D782C1D103093B9CD\ -54E4A3113B6C75A7822ED24D9A422D719B26C21F4FE73D74012E81D9FF58F13BF1B681C2\ -9A94068A47FF18B9610DDF80:\ -C8D6A2E21C15290F42BACC559380F1ECB797306B7B59EE22E452F971D049D24FC7C21BE4\ -DA40A91BC91A2FE47E35CDA7C6A63BA7F0F38D038002093FB5E83CF52D197B9DBD0160EE\ -6CD4BC690E0BAD9379352400453E85424E2583B9FB7502F2918C60E0976722395BD8FADA\ -4C1726B249E4E8BBEAB59AEA3EB8B0D833FDD9A934D43542404633299FCF6163A4327820\ -2CCAF90CEE44FF094FEEAAA88EB085606A50E96C447234CD2F4A6602C18F71522D58BCD8\ -02DD3B97D5247F61AF099FB1:\ -1CCD49253B736228C454B8331631042C:43666BD9D4555CB5 - -BD15B15611F5D38034351F16A47A50C53F9952D35B0C888663EE6164F5F228584F25536D\ -8EFC04FC9BB0CB228857440875E320CE25534AFED42F830F7BE88AAED5D91C128EFD7067\ -A30088B1A3AB3C00FCC3C658262230AE7541DB9ABD0E1288EC7B2091050FF3935575FD32\ -D7CFAC6D599655307F530304FBE4E16E647AFAA0EDFA51F4CD075182F2B6D1E8B2F15211\ -CD52A996430CB634B099965A37B442B1E1B8104AE9DA9978412F53FD9FB1F24E5AD0A2D7\ -BADA6011C87593392A629E1E916CF28D:\ -BA61E2BFF557EFD75AA4E9DCBDC95E3D02C4870AC3604E5DB01C38C5E489254CF4B4D062\ -FEFBB3CCB044B488909AF465ED13785E5034DC62F65DA7E7CD0B53E625D9090123E8DD54\ -8E377C4B9AB085A4AC083A2EF1815F115C08CD8AFB8B814C17B2DB422AF48EB71566F8D7\ -246C2001795FA20AFA9DC6F76519CBF7378267A1262B87A98E6773E61FF3211A5994E2D3\ -FE2E06AB52BA830CADA7EFD02A36A66F2D4C559CCEE4769C0339E56EF3946E736B048A39\ -F41C0FAE0C7650B3486DA5A2349624E1:\ -A9AB5A6AD1CFC14030B05F52CC27D166:81F7271353D4D8FC - -2AFE5901D507A488E8729205EABCB8158347BE7FCB6C4FBC5F20EB471F00AEF1FCD46892\ -E679EA9838E22882B80B1D68258D24392C219F9106EA1175D54F5AA495B6B3E0E60CE6EB\ -6E1E892F2CED18DFC18D62012A4328923FAD58CC04EC70F832E3E1B8B2F1327414C5EF9A\ -57DDA4D40C63289A5346520B7CF4909B41A8190B668EB9E5BE78F55155945936DB2C20E4\ -C184BD2D3F6DF976168373A1E465E89B0C2ED18E750643932EF45DB0661ABB74088AA216\ -3C06A19E917D7B6F513FD1DB784534D624EE5575:\ -4DDCA5CC4014C19993D857ED57876B384E8E06523066A86A4A4EE4EC597CCD3F1619D4C5\ -124C088B1E89E969335BDEF659CD3E2DBB2FE26079EF7F5352991D26B89CB324234E2608\ -A77BA1B66BB194D4CBAE3DFD6B80359ACCB81C3E69CE2BD30BF991930AA22FF0A2D02A0F\ -460951DC829FFD8F095CB245AD84A152BC59DF1925B0F1BCA25FC2355AD25B25D821B22D\ -C0AB2749AB7EC0442AE798674D8E11A87257AAA2767894914056C8287B139751DA5CB49E\ -8DBACE28E2D9DE52C508089F8DCA82C7386619B4:\ -E3D2CAB6F748F35DD4E72335A0241476:D97CFD5DEE5CAA6E - -4541B90A451368513D4A09BCBE2CD48155E512FDF240E76795905DAC75CA9BE0264E5A7F\ -924C4706925C7CD35392FF441031EECDF0D9EFCE0E6135E3F4C1CAE57286552C4AA4D407\ -4C9F7C922B53D0F4CAAF6914F81123EABF9B012AB45C9AB989AD979A197D7094AF9A0EBE\ -F2DA9AD8E32E5FF16E14475F0694A79346231E532660E0176224F21676E304A32405775A\ -937E26FD3C9AF3A4DA27F2FC131717805CBACFB554AD1ED56036C18456B5C8211F2CB2E9\ -E34AA5706E439D1FD5DF049FD63CF2490B74998AEEF3D63A:\ -37BE67361D55FDF19B8AD1A39BA3DD47210DA5B83614B00A72120BA2D9E5CD65890C58D8\ -1A3060A39A4E8CDABE0D2862419BDAEC7695B87E2894FA5A5B05E0E1D1E6B35D5369CE74\ -1BFE4EC755DE0BCAFCC1FC160A6260561AF899A735817258BA86062AC698CD50913E0043\ -AFA85640C52BD8F1B979011EC8A20A5A0C52BD73552B2E1DF1481C62F2BC74E8150943FF\ -4E888D944B253D0CC82848DFDC709792A2FD987EC564FA6D47AC98C3B271CC0A6ED3FA4E\ -DD159715AB1972E45D51926E42E88C309A95494AF55C9E7C:\ -801D788845FC6152E33E6A2CB42A2A22:5F5FC8B7D6B6C3A5 - -9550E29D3D0E9483B8746D24A72396DD16DD31F7538548C6090950908C51E4AA9250B171\ -3685E1A7337A1D917D197B72EE8A0969D58CAD94C73A9B24A63620BE8152013669BA44DA\ -A9652C99787B338FF96C6FC00ABD13561045A1C25214695C990360F505D83E9FF3FB3711\ -535164E06FFEA4A0050A09D7134FF72A98C67F3BD73BF90E2CCAC943DB049A788E7B62E9\ -2C9178E433255A5644DC67B17CBC87AF2AA145B3E4B657F31D28B9282B0E6B343C8759C5\ -1457D48EB5880CF255B2058A30388D306D896AAD42EDB05158223FBB:\ -22473327F8358F22AAC1473C942B78067FEA10319F52A6969A889AB87A09FB2A21878B30\ -8627C0FAB3C1358C5C30F198FD5EC27B9FFF78F4C4BB97ED9804443C18C01470CAC1D730\ -95E8B9E2CE4E6766EB4DBE31DB528CAA80B01AE979A3FB32F056F54B93704DE4E45D0EC1\ -9FC8E571294C279CE3C1DAB74DE63C741EDC1AA7C60A8DC1EEDEB738FD415F22F9E42A22\ -19A1BE56404E8921D95DB53F7B2873908C9A7E09A7B80EB40968319CAD1FEF85D31B916C\ -2F0810CFCEAC1E77976D0DD2105F71E9625209ABB16E7CCD3171AF38:\ -540E936A8F7DFA7E1069D1ECB6DA529F:7DD8BE5EED8A3B91 - -ED1ED1768831FE993379B5EA6091A5CECECAA6A1E4218F13755A75CE982B5901191B3F6F\ -EFAC14A3D68190F66D759389A4B72FC1965516E16412E1DAFAD962A23420E3D108738D6B\ -F1B7D8FD2B6DDDBD590E88EFE3353664085D1BFB7B8E2FF4169ADA322530724388BA3784\ -64B2DF93893FF936274E53916490A4917CBA6997BDCBB9A84ED1E7543B89B64AB70F8CF9\ -3713FF08A5E8EF164E33A6C85205173E9D2E3B0D31E565CBFEDE77FBDE48CF47E742F56B\ -A466AA124B725840B56A69F2F46543C31C5DB8E926A7FD968B94606B77CF9820:\ -6F5F24233FCF42897405065C047A15EDB1BD4AC5824498D186E76D44A01636E3BFA6FD96\ -B0FF5112FECC0F7D5E754505AF90F25F91FC121E5729D77E569744FA7095BE9C15216DA3\ -53AAF508D7A0BE30C64549A1D2F092FA65DF3C29144030A0B3407DF0C80D29A82CAFCB3A\ -FC106FDD282E3E3792D034262EEC388134F0A0ED182D29AD8EE98FFC3FC18256DAB7D237\ -4A31F293F88812AE33758A35521093334BD204CD2F01BCA1F914B9C1FEC402AD226102ED\ -6C77459CE4D20EBC89CFDAF01334AE4DCC07D48ABAC694B86A90A5DF236BCF06:\ -C3CCC1F40F2234124E8E44BE4D230D51:7BB01E9C965EEAB0 - -A9CA7C9133827D9AF63A9A2D98F12E96708714F3DBA3F887C044EE50BF508A4759124EE3\ -748CFF9E3F47976EFEF9E9E91DB6ADF75F2702C277D87E7EF2DECBC60E861FEAF695E93D\ -F183AFC6548AB8F5BFF6C12A25E62C81196F3AD2392FC77326DD521D374F54865532157C\ -75F1B77AA93EB2178F6117AF2AF8ABEAD69C2F4B3FCD3F0BCF24CA460FB596E47C4AC6D2\ -873A96C90788A425400D8CF579733E553B9C38E538F2B1C762D6201EFC132E92ABB69121\ -30F22547BAA1E44FF487D1C4B2B06B3A4768A1220716C44657F679E1F200164046325346:\ -1F1B86628E58A2F6220B26B25DC7723D22B02F2E5E011672C354C6D1CBF272100F066893\ -EE1A9E353E841AC24D0AEF62BBB5480ED978C84BD5B052F1424D6238641C9F11E5787D3B\ -94CD7D866FEA1D2DBACB58DE1B6A0582B6C103926953B3203C94CC8B87F0630E77650E85\ -1449A3BEDE5B2C1678A5F17F920234238C0C57C51181E5D1E7B1082EA9D4781F825574B9\ -3B69FFB03BE688210B74B0A6338370340C90442709591671D19FED7D44795B97409119B4\ -CAD30C84B296C7CD76C3C3B8ADB8B273A35AE34EF402D4B22458EEBB1992C7A32919D2C5:\ -A8E311DC7544747FA09537683A4979FA:F010A1D16F896398 - -CEF68DB7976679BD69BC5819CDBEA5749593FC2754D2B0860A87A3B16A680E9B634C7A23\ -EEB7ECACDBFCA2FBF26AD3AFDBF29E98230B43D410F27777010F09ABF76C69E0864BA2C3\ -7ED9BE1C0E812154E570509F0C8F07C45A52E5FBB3DF015FD54BE20D8DEE69FFDE644EFA\ -4DD93E7C8A7582DC19B5E1C69FBF190E43C7EAFA92C67083DAFB3890C25324E3590479D6\ -BAE27E8E90B6F28EC39BFD46A73CE92F17609B596CD2BE34700E37E423CC9B9160304198\ -D917357347E414627D7BD9D36ABB5BA07BEA6C9302F73F370D2DA6393F3CF310B65BBD45\ -374EC60D:\ -C8848BBA822123ACEF694A77E942F57FF02BCDAF6E6540FEF7A075B890A8CF32B9372A95\ -53B501526455EFF2B764B5C3E8C3BB08085074B4EA0FDE7D4CE94BF284603423068E8FB5\ -E9252C73DE7DB341AB624D1C44E79ECBC22874A73743004B99BD6316BD7C92415C1F2A54\ -675FC2D26B0EAEF760B329A1BC24D140BA8F28000649F1FF43F586E2899FE63C133A67FB\ -C542C87A4369539D8254DED0EF157425B379CF6F10BB0DDB7937441E3C091602C76424AD\ -5E856550CEA7FECB24D54333C437251122C72E4D21DF23371B01D05E32FE1907F198F18B\ -DBF68351:\ -6CEA1E32C1732B9AAF2F9A85A9022895:FCF3906F4227113E - -A7A87EEF419C8600662C5CBA01DA56DF0CE6977991502A27F5FEDAF68AC26AA89FADBD15\ -63ECF3810643174D9A2B6E940E65ECD0FC120281BF9F52C0AF2F768924111941FF1D8424\ -788E75CAF63FE7389ED1C736504F99BF1590C5B970DBD7E0D13C283209435EDE2360146F\ -4F734A06F1ED649324985857FD3CD80C82E896C368E44B52C35C958D5CDB1DE800BA7343\ -412CD66274A97037667767FB7C7E4B95C261106FF3D34A209B998C38F2639F74631D1BCE\ -BA04A436D8DDE90C2A1A38CB44EFA7AC782BD5EAD9F3A5FAC879AA63F6FEA44FF967D709\ -92533375BF94C2EE:\ -2F7335F36D102EABA78F04185805AB6F88BEFAF2ADC84DD6DE9629E34A00D934FF017D7E\ -C8195B8B7D380FAB765646FCEAACAC912EFCF6E522052531D04255964ADC147ED533AE5D\ -5917ED43F7E21BA784B121DEEB879B41B2D00C8A18FF075CD810F8C5DE84B8E3A137E9D1\ -911BAEAB91402AD0461E58A58F45AC901B0B741C63A78C13C82B4709B14F7DB1B3896206\ -7F5A08DE2FA8BCD91CD6BF3FC17950693D0DFAC9CB1680E68D9C9823AC12B1F37E4B6C16\ -63F5BBE7D8DAF7961C3D7B37C34FD2CB02918785E8B7B6777704AA4F11CD974EABCCD678\ -4504A583C56CFDA7:\ -808372C49B7BBBF65386566C6973A76F:805EC1D405B86CED - -4F25B31BA0783DD6842D607CEE8FCACF6ECD2D5D6D885A230874782F2441ED47DAEF2138\ -E6EC20333CFF9671E008481F80986EB91A46C08C9D22D2B6335F8E6BD10144324726FD7E\ -A311573B1A03E6E6262B89D145B01BFEEF14D7904E0C53966747316842DEF71AD1144CE3\ -B8C08C16980A2EBABE9A5501C89CF0B6F610808112123A56FE7F726639A20EDF2C531D8B\ -DD30D9F4032C9C3F9C165634A898442C3EDDB0D8A63A855CE44E650E428B60C536918BE0\ -45A902B0346F232545B27A0C5EB15F79BBD1190552A68EE7C1D29D04DF1C70A7CA254A6C\ -D47BCCECE1082A20F35E7E46:\ -AAA603EC1AAF270AAFC06A43317B6FEB2398633A9D1C130F2C67B6C19E9C391C9396914A\ -BD907B1419551202E6228FC7E06FB78FF669A2597AEA85DD4A372FDA60ED0E3C30E872E2\ -AF2A250DBC6972CBBE00A5F1B5BCB7353175B5D528E32CB035460E12C8A3DAF3D1D4B25D\ -0CE9CA5AE3F8250548EF24AF92F4346A0C5716619A640100922AAE13C7824341A938E14F\ -E9D51AD691932421669D958C252DBAAF943C5AAF64C89AC8B381602D3AD0937D8B8ED413\ -2803C2C9F40838CF1A2064D269A9CA2266DBB642852DEA101E4E6CCB40C377F17D195FED\ -673F030484DA66428B3C7D03:\ -299F9BF1E1B34A0D39E6D49B67DF754D:A4C997CF160DCAF7 - -3B0CA636F9F507E2D9CFDF06B3D69B44A3647FC9D6C824C3C1FF9F31162E7A40394D9558\ -9123310056EF2B668F59B93EA71CA45434D104A91878A6DD3C4349D374E39B7A4635FA0F\ -0841824D02BC92EA6EFDEC08BF8566CCA111E478C569A96B9F7A2306A2CD5464EC4EB0FD\ -642E91A01EFC0CBBD08EB28B34D99989BC3D55DBB5BF32FC8C0CFBC3E5B89DF3B01EC4EC\ -8FF3553DA1714004AC52A2F14EA090B3DBFACA8A7664053DE14A905339D2952964DD501B\ -638EADC396DC05814203C4568D5469D7E3FADE0302C14BED2FEEBBEE5A78ACD17D0D4425\ -9D4A47BEA7C4935967125BC0F0E228A2:\ -253D1DC003D0BA2B60422354551E3684951A5B77C142061BF86EB95DCAA1FA06E2E047F8\ -DD94D3080BA6345E2F72478110899AB51D5BCBC6E16E564C407AC37A08F34108FD9EBFAE\ -560FB59A6A37DDDE8F014EB525AE9F5F63046C263721E72B6E94151A129A3BD446D9AC21\ -602FE0D150251754B4334462A99B7C5792B901E03AF71FAB991AAC8B9A75C29B2FAF3517\ -8946735608DF583B27C80661A53FAA4AA581B5AAB2F7F034707C9B812C9A22FEBBBD21E1\ -BD4821C4E45E3A072F8301435E238C7489B23646CDF37800C9D40CE69BF17ADE4992F733\ -F71C2273B37D1F17B68D15FE61163E84:\ -CCDDD91BCCA1490EF312ABF7D7EB545B:B091FE75641EF510 - -74CF8F2B03009D38E874C23AC4A01855EC591D2014AC96C5F6C4D0BBA42C8C3764A3554B\ -9D5D44D9FFC259E266DD0A2649B5D299139F2ECDC1CF7E286C183F74051B150674E9407E\ -C8A6E151E174EE66012DA6E2303AAF3AE7F677C17BDFD546589F52756CC02ED3BF4483D1\ -B4BF49FFEA82F0A9111BCA3C2B5DE08FF67E5BEA7D2E74564D686D554DD9C31C291ACCDF\ -76A0AE0ECDBB17A427D4223BB53592EE37E398707CCDD0AA70F815AC3EF6585F35A5E1AC\ -D44C511CCB79CD85B5D1CFF534B0CC7F89C41CB4BBD351D8FBA99EC6717A98BCABDEB16D\ -242F4DE41CF5BEBA4BFFFFBE600386FE55CE9F0F:\ -2747D5D76CC1A15D8D410C081DFA56049B7421A90B01EBCDBE9E31B70C61A58E0D2D5985\ -596520528D6C0F64063C3F2386F4ACF2FFF68CBFB8A7C78B97A573FADA6AB69EC728CE77\ -666C89250F9942F80FA653CE60ED9B65949D491A38953C688821A1C4B39F88A72AD5F454\ -4D002456990F1C4F3CE293BDC8DD68BF8E13818A05454565D9B87AA9F4FC906E4AC61A52\ -3C1C65EE7467B498B5A06AF633A37B5287854365DF96A2675A3A454A25A345BC1F9A0375\ -E091C6BC55054E2FCA011B1E3BA1C964A3470DFCAE1A937F1286031FB8435FD7487768DA\ -018E69AD3029A1C6EF4EAFC302EACDCE8A02CC23:\ -80EB0BB542D844F4768820077D8B81C6:E6936F2688231B9B - -44F6EF40CB3EEDE73D0BCDEF4009F48EFE4045B1422ACDA5111D1BAAD4827B33B37911FC\ -BB51A9AF5E6E4D675A968F119DE1A64075DC4670B92FB83AD3B44796522B0D8187EDFF98\ -2D38C7E8EB63AD3B838FF50662685D4106BB1E0424B5631ECF069D988C446CD2E97CEFE1\ -A2C3194681873266F5E02C7018715A3DA9CD927FAECB6B8AE6366998141ACF652B49353A\ -8D6B9A6238C331138CDC90659BCADCE15CED1615B96D050250E5196F88F5601F6B538226\ -45825C88580AC543DF13FB4403BD895000A2CAAD12DDEB584D70A0CBB8C029573F5A530F\ -9E5BE2359E6011DDD4FC25E32397CACDE24178D0E0AB186E:\ -3AFAABBA1BA4E009171471B45D465F449D2F0DFE600893F2D60F9BD653B092C7CA980C4A\ -BA1F15C08028835A341C5E59423AF6BA5E6F5B3C34E69CB2CAAB42EE3DF6B1FA10F2A611\ -FB4871AF01815135426D60EB540D13B9058F154D6643FDB28542A079DA0549E9C62BFB6D\ -CF3F6FD40175C86B2CAF712E42538F3B6C5C57024D36AEE3FC93B5E70CACD49776302E51\ -CE84B4075BDA7B37FCD1968A6F561F625B1D32F3652D8A7BEEC11A11CD8737A9C9F87D1A\ -4CCC3F24D201BC8C1CE24589313CB0387C3911C924A572237705774C89840DB93D5BEAC4\ -7F75E04A10839355A775A02FD417FCC2A0BD104E81E3CA40:\ -89D3696A74D8D4A751C1219C3D742DA8:BCA7BD8D3A8B2682 - -950F2F4CD525EEC6CB634DEE121B847F35D083523526D9E20E329C263EB892E5FF2ED907\ -B354B057101C73C094476768A225268BCAE04C564EEE9EC9D855E478E192A9FC22F12D44\ -0803BC49C5F20683DA0CBB09CF704E4938AD0620A4C40CDA769EA03C236B0DAAAD30B432\ -84486A8D2619E94BD1B79F01B3AD9E70874BD6B929BAB1121FBD585CA2C0D25B799AA487\ -7FDF222097CF0B8CE95593D0CDDACC418FB1734ACC19D365B410DCB94C3E64B11B5E1C61\ -DB6B4BF2E291FE653E2EAA266C3CE7FA16857001FB6C2259BE0A9157F629B6E37BA037EC\ -3A716293AD59C1A254EA4FC60DE1B875F40BB328B5B6CC148D5FF5AF:\ -34E2E8205BC53EDB71913053F33227BD0CE67F1D509A0FFC5F70AE3B59A7226811821797\ -26A242F1AADA28E15C3B04589D5847C762A36A73B7D0696C7393D5AC73DFE5DBA39752C8\ -A06BC4DF90FB52372598B43726849B0907DD640C9D0D4C9990D5F2FDC9F1535400DBB392\ -1C046556B0F8DDF88C46D8D7924E954B177B936EBE1961C89D5616761C51D576D60C22FF\ -8973FD324DD7340B76D11F6612D80AE53CD3E5702AEA0EEEACB6FD21861B68CEF12AB12C\ -AB6BF023D6F6F3771B237A9F68D5516EB85BC0907E947D702AEBF2FD72C196A087EB38AA\ -F77E04BEA1F6798F6EC164BEAFAD1BDD2955B8721AA6717505EAB952:\ -F544BFEBA760D22BBF72BABC88528618:869958C2FDFA5C52 - -3F20E497CC4C46C5C0B145DC2D1208627A07F0426608F4C240CB2C0E1B78858FA22280BE\ -9DB77EA591738F57ECBB4F242386CDA36E926FDA022400566C2AA3AA885B5AC734DE191B\ -61B66817B9A81D9F9FA9AA5F061E85B75DEED7A7C8E4C047923C6BB484747C0447381452\ -444FDE4658AD1FD3FA214798B4119D0133DA8EEB08E4104F84B4485047E9E48195F4408E\ -3473565036388A53FB9D657A7166DB7FE8F0978F01FC8DB66DFAFFD2E9B9FCFAD241E05F\ -856A512BB70DDF8CB32B34F00A06F7A5547BA92DD905DED80937E3A1478142A549A34B19\ -05A2C0183975E4DE684458DB2F80F39138ADA478D425453909AE585EFA7A91E0:\ -AEB26738E31E6C09771AED38B68F236CC9B3B7C512B16DAE7BB44F2F8ED5BB38FA0FAA8F\ -B4F8C9E3BF003CC4342BCEDB7F978F0383C7677622468E5A4C76F9A91CE4F3C2B26B9547\ -E6384EE50BCA15D22A7EFF7BC69E749AFDF6F0BE7DA7E60BA86C399C34C580E18E5FB35B\ -2D52ABD64A31F508711C5AD753FCC47D38933C581AB33C6F57E90090C7824A345046492A\ -6A94293040ADF91673D8FF6FB1B6C989D0C0A962931504ED2E1E056FAE8EADE632D27B39\ -8D893F2D3B420AAAFCAE4EA0688AB45335BE5E8D5E1A7D70A4C6EF1EDA6BE64AA0CDE393\ -9230E8B027B400CBA2615525C0377E22D5DB9EF150C316680E545B28D5AB02BD:\ -CD3603440E0D4ABFB32196ABAEA29DBD:47D173BB5D14232E - -9FF2357073EA8FEB5696460CA5570F82A65C9C8B23CBBDB54161EDF09BBB952A57F9E02A\ -0E60B53B9B29E47F64982A9D3AAF92CECA9B1B4F899C37EC998679E1C6E608FFE780EC78\ -0517AE6EAFE48474BBDBC2F59FE732779AA27380BD7B003F1D9D9977DA835C52A6D67429\ -14276C92689190A1DCE67F31A165A08053063F08C01A5C25B5666540F0802C7F79E64DA6\ -A2E8EE51888918CFA3C5437891E1F7186ACD7B48CC2B7C6E961C95A10121D4B2F20D737F\ -74FE62D4401ABE8EE6EF748D646B02B117885D6F9F7BA65A01307454094C66AF68D25740\ -EE9F45D7B9E12D9FBE44C13D98BBB59FFBBDE75E4E217F9BF794968A4B55F2B16DF6DD40:\ -30E20775061AC476109DEBEEC9CA69882E3F6FF8D05B913CE1ACCCBFADEA87B15AEAB81A\ -8414EEFC3938D0149A0DEBC42E1B3E4CD4D6FA0CA171F7CA194A5F57BC2BA3221E43DE68\ -A269714F5BEDF0F12FA33C456F839D30C4A9C7667273350CAE1E25BF98CDE73BC10FC5B2\ -02F88C7477B2973A077C567DE8408C3FDE4EA6722056D7AA0AABA3E332D53B686423ECC8\ -D8C69524D3E94AE42FE6C70CDFE611C7DA0E300BD81FED416CC0952F008A9F4CC6795D85\ -DD0732228628A8A3266782BFD7E041D6D135C329BF7C02F209EA97C288C613049ADAA270\ -2F654FB81166C23F2EA91FB969679917CDCF22CD878AAFE6E2CD8BCA63468AB745762E7D:\ -7ECC2FA94DB28B0C4CD002EA020B6111:00519E7C6392488A - -7E508A73B21580529EF3C160A981240BA4A83989EC072F7F8296DC7DA3B9F785D11FA67D\ -A1843A31BEEDD09919738D6E98AC7F37402FA60968E0EA3890CD0A0238B31AE3A26EF28B\ -AE750FF2451D98D8B405FEC83672C3A531CDEE25AE5566EA23C51CE747CB44092B82AB89\ -D0C3D0731DE92D1C862E50DA27A7024338FD62311DBB7BD2029713263EE16F9FF37EACE7\ -1EE5F25AD185A9E0327173F4287A93BAF814ADAF5AF869F2436BAAD8D8D3EA4908A816FA\ -DEE43AAC1B7E408BC049D2383F91D25D4CFC3537784E0071B5BB1614CE40C8E1EB9FCEF2\ -99C8C10DF96597B10BFF0606CA3CDD6AB72BBF8D4341222E36675360FA3193A0E275C955\ -90056585:\ -A5B2EC64C27DDC68D99C9F82F0833898B11B2355DF8F1CAFA49C4B3D67327A2367AED1C8\ -330F5A700C788529F78AC260E0DB5231DF15E01BB616566CF4E3A64F1F42B503E4240386\ -7EA24A5DBB80E5B6403BAF272BB480E0B39C77E4D092FB8ED54360912930F36B91C94F39\ -689F6571D948D9660CE319E1D72EECC0AF93072417F4A65F0F1823581B9DCF874094E327\ -41BBA233F5A998C1CAEEE53C331BA9F9D437DDBA066160137AC5E7D006DE9EF709B1D033\ -145CE09F1FDDE0C5B278201665BB835726314E1B76E8DE23E4FBE36C22F5D7009E6B7DB7\ -F151DB23CD520666101F7D3F699016CDC3F286402EBAE4F59ABCCC3A86502112935EA87E\ -1A993F6C:\ -0C8D98BEA46840B22546EE369F77CFFB:4FD1822D02B9C1A3 - -[XTEA/ECB/NoPadding] -E197D59E064818B7C8AD72C29E227E09:\ -04CD161E422154E5BCA5249582B9D4C0:\ -DD0C8719A8DA117DD9D1DAA189E65654 - -AE53AA320088B4042EAAEE3649FE6E36445696F01CA40D3C:\ -A3B303C42178F97F719449529D51511491B41EB70E6101C6:\ -D8C8ACF6B4B68A837639320798994979 - -655A6B1D6970ABA078819E5AE1D08471A0E01E0A5C64E612504F4BD9BE4A8AE8:\ -7DB966E1A2B7C0E8EAA9D308EF89652A5857461D100DD0CEF9C6FE7BB4DFE33A:\ -24059EA6D8A9F0CA678ED6680362596F - -F3B1BB81C053DB02A8515885CA6DF124AB04927D2AAF6F0032BF17B4B437E1F2C7D82F89\ -BAD898DF:\ -215D5ABF53C4AA0D7571A0D9D05C3B6D33D65BF35EFFA4778FF59DEE90900ACDD4FC6645\ -368A294F:\ -2434D48F17E0A7D91F255FCE60F3D6EA - -06F0A1AD9F9EAA665044D0A2EFA10ABC30F7FBA3FC47C6AE1947B7E9B47733547E5C843D\ -AC59D09393835061D834971E:\ -066309B116A6692F279F2526FD284E75479BF7FB5F63096AD7108CFB0DB39062A2627594\ -F098F0BF5A3B4C67CF29E993:\ -18C1E1EB3925EEC61559DB74EC99491B - -2FA1106E95056E070352666F059A72DF6CC949BB3161D5FFD8FE46451444D096BBD606B0\ -BD443189AF001E5BBBA134DB1FEA7AE9B4587438:\ -1DF05B34A733F83B7DA1F194507904CDA99C374174AAB472CC598E06960263BD9DD0EFA2\ -F4C14CC8AF4039A55EC00125766D25FBB7139081:\ -5258617DB39A2968B1EB02565A2BDD1D - -E6ABE28FD1E9392CFC65978D586D31D344140673E345D6AA06C75E1C03E4E314831EB94A\ -BCAF6B23F2C34670A79500C6142EE722FD7E408D751DCB30E5C63F5D:\ -3EC6FE802F4EAA740DDF34EB79798F458049FE09190D12455EDD6129BAE85D22FF4E96AE\ -B59DB9413DC24D41730454F65C443C819265B4CDBFB87F5ADDE7F4EA:\ -C4A02982C1291093144C64DA1E7E3D67 - -213595590E62A55F241E3D4CFCA65C1BA23BF801ED05D25A8FD0A06A9846BE3C28B9BA45\ -A2B32BE80ED468E007EB6EFF0EECDA4460A700977B84464631B642135BAB8519248CA0E0:\ -5A6D52C19193A6C002D58C15BD2490CAA36550B684A726C33F1A12DFA2D4764FB75EA336\ -823833637765F37547103691B852FAB81BBD74EF6C20BB885AC42946998E74D2B8C2BB75:\ -58B61987700468A366178595E20A365A - -7DE080A1683521CEAF78AB4C3160D326A07FF4C6F446A94FEADFC0BC8464EB781D743694\ -734C5938F7D2DE4822EFFF34A82EF0C2E11F92CF1E0B2989786FA990DA3AAEC7FC647675\ -024BDB47F20C67A7:\ -1A5002651E1686F56A6BFDD8DC40DA9DCAE7E4773237720BAC8962DC2FEBCAAD885C4A62\ -F13476B303B2700150F5CBA1CA976A753E6971095F175E8BA2D97E1F1C18FEBB0F8658DC\ -E957E65DA18D38D8:\ -75E691CF7E511D4B1A114C0E80BC7C7E - -739D59F39F57C04D1450926AD161AE7CF1522C4929CB299C2EE03842E3DA7AFD54AF4DEF\ -19867E278678222C85D8901526E62A008D449478FE4249173B6E80980B9F91D09F7F5CA8\ -A174EC73A57AA878E74F0315B6F3E15C:\ -59E210F2DF601ECB05F4FBAED1077A9AE1B783526DABCB881881BCD103658E03FD6C1D12\ -2508DD039470226BA0AA50AA087D40732D77D137DD2CC96824E24C44BA8955D250297C02\ -E3D444F4F1E78F5A02C50C7314CE356C:\ -5161285DC54A3D9ECB691C0CDF987D33 - -3A483364A30C28F9B932A11152D741304802030C60453D1E9433823A21F033DF5A6FB43F\ -E9CCB423946DD363F9EEA9F0E60898652E8E4C4B6AB6410B468861CDCE22B3043BBF7252\ -0232EB34D1685274A3FDCBFD9753DAD0AE467CF7EE661145:\ -11AB2B4CC8CC30311EE2B979C6AF90C5EDF073CA2E483C2F0207E8E95AACC55F0120C9B0\ -DC689A2B645EA1560FEBF3D027F0F24E551205091D04A72657209E814A9DAF3457ED9653\ -9FC1CC8937D76E2EB4854313E2C067F86EF889757E014B35:\ -19B8DF4B8C9BEBE46AE4F71FDB4EF5D4 - -A9E72827F67035507B5F0747149A73AC2763000470087FD6F8F165FCB872AE7BA58CF568\ -E1D70D28891881F0464207E5FF67CD2A707B71286DA7635085B3B68F9228A646A186C8D0\ -9D3E31B56562ACABD0D5AA32F608C54086642AEBB72767643C90B7DC02FF772F:\ -5AC440B8C9AF2D5843B125711F519D34DACF4D86CDBC856933C96D5B3CEA980E9DEC2F0E\ -2BF6E8EEF38214D59B5562324C009953DCCC4ED2D6C6B55211AC5E0EDC7C8AD3F8760823\ -D55365D84525E09DD3145DB6D700D9BAA4A92F38EAAD8CE33000A0ED72A1FEAF:\ -3D29E84526A1D60D177C03632DBF1E96 - -D24A21AB1ECBCF2EF83A1FCBC1032EED930FE269AFF8EDCFEE26FB1A2DA9D063EAE522E8\ -41024B7FDEDCDD6BAA1126834C996B9FD09654901FA8830C64AB1F5CA3BE896D5E60BE29\ -D08C9E0A4F07956551E618F1FBF46DC8255A4E2F4DC8DE5729CCBB39FAECEA0A4C45F53F\ -CF5C3973:\ -2A2A34F1EB3F99FAFADAE4A68CC85799D9EB7B1F0277E71D56FBC395E3A93980B670D36B\ -87153B90B8154EA962C39A049088665EBFE6D43A5E9A04A93F4D683DD509E27BD3AC659E\ -5AEEE8B62EC3037C425EFEC0E726E8E572017940725A794E58817914308832AB59644B03\ -D1155D33:\ -10E1FEA37BE818FD0CC1421E16A3151F - -9CF0C3E72880B2C3FEB787D84866DB80D4B4EFA60E3708CE6FAF0ECC29EDED0C8D9EB269\ -57F1DF63FD39EB11158DD089B9622D161AA83E0BB921067F77D6F4479B17FB9C9F30C4F5\ -6A86EEF38733C8D557053BD4978E41B965CF1F2025402836AC90935E9564BF23F5FC76F2\ -9DDBA491446695A82D54514C:\ -3A8E38AC17AD900742F711491153A7FB93C04F981CF75FB34FC9B28A2C24A81C60AC4585\ -DFE04FC026B6731A8C2404E65DE9FDAFDD32685A3863EC4CC77490F8E0D3ED234152FAEF\ -3C8E1BCE7E4BAFD1171141D5ACE23BB3E5EAB0F20D000371DEF9E831BF716B6AC5EC2313\ -F013766071F3AAD4492FD780:\ -80477A99D76ADDF3DEBEF9E8FF185DFD - -C1BB0B801F25223FCDF8CF13251877AA8472CA6924C0F51F1C968E981CFEF665F99EC57E\ -4C33C3B083D7DC62DC0096B062CBB6DDF4D39DC28843A74E81A5F9558FD9F5F74D3857BF\ -01A341BA443A2440C85CF069A757AA0E1ADD2B67860F3BEA805EAE1316BFD5638C312E96\ -614607B5BD816B55FA16C301B71212B5B1203F2B:\ -D481D95387B075DDB6771A669D3E11AC591A629B53405802F016E710D5E919E195A4553C\ -F83337ABBBD506131F363D2BB5A8D3B542AE8A99B4D4641C373BABFE737C14AC6612FE46\ -6D2A83C867F42D4004685B230D3FC1C23D3410D767353A5C523B0B36E0D35D9B3D9605AE\ -9C8402D0F7679A3573F3354E6BE0F2D173355B6B:\ -978393BF38701AE612953AE4C060B632 - -0C0627A330788002C9DCDFBBF23F46ECFF4CF793D93D934CC553A64ABAD1DEA3710F775C\ -71D54412BB3B6361B54C5E2DE7244CED9B546D146F20D8730FDD8AA155EAFFBEF34C70BE\ -1F6199F67D88186ED039E00BB88B7DD13F071AA4C309CF92C10DE3882674B5C5C5EDB457\ -F826C2D62724E1AD328CC09FB4113E083E4C4D31717FFA66914890CC:\ -5AAE35C53504B9DB9CBD7C00B01AF71772BE3E911DC6EBE45C1EBD331DD81CAAE710F963\ -7B2B22C12BD16B0D84F0B41A59BF169938475F56B57347362C7E6EF4F9ABAEC9F44C3BF1\ -1BC2D02DD0DB00A8DB780A1D1B399C11485EAAE96E1AF12EDF48B4CF6FCCD343F16CD056\ -5E843EB4FE1DFFC1EE2FA8E0F73839D6F6E131442154A4972F552DC4:\ -9A4972A00B5C1B22AA07DA8C1C8B8FF9 - -F2DF92A7AF36169DF9F2CE6DAAB0788284FEFC9D1C43619FAE6CB75576EE173DA697A01D\ -96835B357C89B737794D0E5B2C7F02F8E5DB968E2D000AFCFDF9B17BFC8383832A2CA177\ -CBE99385C9314F94977350C2D4B4AC6D37E0EC8F36E666C54011B2ABAD25CA922946A7B0\ -C9FB5AAF54D618BBFE59C1751404200BA90051B5E54F64C7045B72B01681FCC6E7763F8B:\ -F090795579AE3AFE49B96ECD3A8C01D449DA8AD81AEABAC135EB9CBB904647D5B1522B20\ -8F325C0597A2294CC1A10164551549B69E96F5AE72DDE9A4656AA533FBD7E98A6E66BE29\ -663176D5621CD21F29494D1CF6D784432B1524BA56BC3E67E9FB4378190268B4DE6BA74B\ -8B2B0E1EA52B75C45FCEA715B8A00B7D2456BCE2B45B192EDC10FE777FE53260F8E25397:\ -8EBCF7F6F9025BD94D2985A4D3982A84 - -EE4C225C44528549B4F609723FB33467DBF135FAAB3F6C82DD9E3383714F39EBB31FA595\ -850389D1BB1C1E9DDC3D1E0439F21B819B3D294B15EF81EA1E95C36E75D20B4C0D7C3765\ -E97E9A2B9E03B5F5D5705DBB35C241779E232B0781EF9A3F371D89E451DC68F6F7E0AC8A\ -EB7F8E41DEE6A0A86ED9195CCF12BDBD820243865FDD31B8D0F33418023E2089BF65A5C9\ -D20E03DD7D4C8287:\ -355BDD01480727A7496347973315434AFD0D75AC1AAF3869A461F78EF5E5923A7C4F749F\ -7929C497CDCA398F4CA868A860E0296A952BC115C07B38D5460753D134E8111C0C108136\ -154EBC7A386921F754D1F116F474C4B7DC8B5515ECA301E30D1D4661FF2814621C0CE1CE\ -812B317C94EE900FD23FC2D941504B345B5BCB4DF7CC3A01BD3D759E4A7C4C4FA893B6B2\ -30D21FEFFB69C0E4:\ -C2A7EAFAE3BAD26025FBC1EC1F3B1342 - -FC2B09E77FD6C0DFAFA0EBA6AA058D2357A620E4EFE70E52E8136B5294EBCF97E3DB642E\ -3062EDA1DD93DAF24E97FB14F41C53D38729105BB46DB59507B6152CBF7747537F9FC8A8\ -CDAB5028AEBB26FA8B5E020D7E1D110C159425ADA07B6E2526106DB5C1B4E2F62B5FFDD3\ -98EF3581EEA831FC686389C19E679B394A79D24AA34403BAB37A8B313F82878605E027EE\ -D34926D390BCFBB1E786153B0379C382:\ -F330598D81495B8AEFCBEF71B791A872B394E7A472E4E9E4D4C4DAABF7C2EDA0AF52CC16\ -2FF5001DF22EB012792A509C25566AD0BEBA50529F015CF3C4E6139C80373604EABA6F75\ -93AF87B31E300A3A2C5B9DC10EB36DE921BDF7E5569BFE8A4155F6F5F272846194E0178B\ -228E15DF6787AD158F0907205FA941D76BA4A4F2C121652806B463CC1DB8BDDE50776BBF\ -19577A25A66B4DC3230870963E53A137:\ -86014B66CAE76E61371F64A580B3A3F7 - -2642676CAE2461ADAADCE76CB12F9BE1A85DA497B5B6FA3FFFDA136E5ED6E53ABE52AA96\ -1D3D12EDA92644D9CCF6EE1C0023744BE75786CE57FCA3102D0E4AEFB3F6CF7E0FC1C74D\ -37DDC4CBF3CD59560DE06209006A55E8C463156B8F1D81C7C9FDC270A39FDBD67F53A196\ -73514569BD75BD747076C2CDBCF51C98995EDFE830CA8372279EA41819DC68ECA82B2476\ -53BA8EB10A8F909A762B74D9D46D7BB3E29C725C74504D0D:\ -20401A5F52C04821DB0609B9113ECE78977DB9A614CAEF283062D84985985C50090D64F5\ -BE66BB90E68D75801900FEBFFEA8BD5790337BB0ED215011E541AE1285FB3B305E05F4A2\ -4E2CD6D3A62EE76CA4DDDD2E371A67E36DEA94EA5C26CA1D1B322F249DAD9C5DE435D770\ -4B4F29A7D960EB9582316EC193C97BB5B64BBB2ADE27F250C2BFBDD48D660825EBE99E75\ -C0E4354E0E5B84338E6361A5C9C368F095D3630C3E9878AD:\ -372ADAC63D66E934514CB2E26B388F25 - -26BA6EF5054908E2CE4618CFABAF79F8D87DA4605B7F33EFA1C6AA0F039E138CCA821C75\ -F0B2D17E52932B25CDCDE78DA2BC77432786E865CB153E0A0C637E9691D08679075095EA\ -47DC18F40435B2DDD071D066F3B2B792FA528C0A64725F2B07981A2FD91F658C49B75317\ -FB963B2BB68430EC9FAAE98963A8EA85F62AD4F77E115D3FD979DB421A773F2454E6AF49\ -BD950550B126921E2FA581EEDB2387EA285D652DA362BBABE6F7D8454074B6C9:\ -9CD37096F29ED2C56C7D2842883A79D712F6AB9F5F08AED655CFECAA2F482FF470D74597\ -188C280E8FAA0B19B51B56A4A8B2B8E3ACE48927A61787341F5DC153621C14110710895E\ -4AD3886ACE7599919C985C70A8B9A7891FA43D1CDDB30726A2D5027D77386E5E8B80BD7C\ -BCBAA250269C250A8F2276E052A88997182528B947751DECC3E8555A8D4C6D6C223F7B6D\ -431AE2C7931DB88200DA4D987FA0ADDF0C0C8997B7224E06F9701BFAAB2E99CB:\ -B4BB2D7C1DCCF12BF555DFBFF33BFA09 - -C1EFE0B080811DBEAB17EB4C00E62F695BA71BB8E27006187F6F224F29D83820BEF01EF2\ -6D3CD5FF85CD5B005FF0DE9A8795B20F31E4D98A3BAE15B7BFB60FB8642D77C12E488652\ -A26B5E32116AA0F7177D1E3F46C31DFDF212683B08E84C0EE72A15466974FC5024F3A0FA\ -2061F53AAA86B3A29114D165C150D6FBBF0F07645C91CB5C9EFBCB292ACCF7159203BF83\ -A28FD040E92711854CDB4679A6D885FBADD29438BA11E9ECBA68F8BCD4433F7DCC6C263E\ -41C3E64D:\ -781D45863F3047C63BDB423712F166E4E5D018A6CD05B70E1131622E93BD6E0CB56735B5\ -335001B9B971A671475DF0EDBEC0FAB32DDFD422504A941860C223D86B77EE2A4F7CBC44\ -34738CF7F59059EFC0CFE4693FA9BD553B5EF3C1F311FDB66C8B4117620126768A742278\ -74D9BC89FECA06CEBCEE39528378B1B5915543453E667860D94C0406543B341175650D86\ -5D245225B0964BE723516490D8F908DA7B73A72C790A5B6CD6B980D0FF8DEFE9BE085916\ -3D3527D5:\ -FB8C5F864EAD033E0F3D427E76B5C9F5 - -B863168DAF023E33D00F90F5BD076FA62F3BFADC93F0A1EE0E1466DC87507BE3E0420F88\ -4D40511F5C1A6DC912E70F33EC90D52E2F98FBE89EF076E3A95CF011F6ABA8A946B409C1\ -96ED86094597D35C548EF84ACAD0CB3E292CFC4D43183F4D97C43BFC5445A5DDF396159F\ -9662D0D844391075E5A209A00CFD49AA86519F7C3DE285D9DD02F3924D0836C725AA0669\ -F3B98C4B42AC893B90F55D4F07B83CAD7F693BF49D72423A369E7FC563D44229CBFB5F7A\ -25EEBB50DBDCA0852851D417:\ -3F22A08DF104CB891887000C0B975296A0A736B7D074739DBB7B16100EC96EA30F84438E\ -3C9B6F38063C2C4FD8B39262D828F000B8176D6793F8537598DA976A29228966AF45F698\ -BE394FD0FBFED864BB1B81BCEF8D9FED2BC7FBECEFC31D319D6C54648C9C0ADBB83B18A5\ -6E8C1D72DB37FD24EABA87F6C9767E3B3FA4566DA71D03539EB8E558390EFB8B1839AFEB\ -E11FCD2F81774674228FB965D4A78164E57F5348DB47E06C0D2507B9738F3750D1780D49\ -E485B9CF89A7C716F9A628AF:\ -4ABBB43F2BF9C69B02AED5D4D82310F2 - -FB669C4A5B01B8808E3A7A08E47D2ECE63202C4F896402163D88BDE3FA02A0C7EA924B80\ -8AC430A3A157B09FDA1991A18DE25F842E2DD3A221AD2804660791AE592E60D9991C59D6\ -D0E50CA49F1F4FF5AABA0C81DA2C36EC169B420745357B82201009C2E2EF15853C65647F\ -C93B587E25415AAABB8AAA7B441F8E1616A1DDBA24C83935C5A4755C19719837AC1EFC72\ -75B37E264B1AF004513D53BC94BFF7D6763AB8AEA592FFCE8725BF2CC06C711AA2691475\ -CDCDB82A28ABFBB1D166A20D3563B66060699F16:\ -EF73A9BB5596BC30BAF024316E5085A71F83CA9C8BBEBA4C0F5EACE57BD0F19A9688590B\ -4F255E048E90EE2F8316885ABBC82BD6F15FD6AD56C3C58D5FE6BF3BBBC6795E4E9D424E\ -B570CA5775B39EF117F4D0337F88E6B3096F0206F89D01F1EEB39A388F42C44CB03AD06A\ -6A4E914D545499852E2EC5F1F35556515FC7D04E884D48D92BB1ED179C485EE5E5B136F8\ -1BEDF14ABB843AC9292B80440FDB5CDD50EB573C744AF2444BDFFFD785FE3535F698F446\ -B533FECEFC1ADF7752916B2B77C68F1AD08A77B5:\ -8C366409428A56AD49CF09F5C790325F - -379AC957E6721F2C33CFA9C8E8FAA85B3AE28E346E99FAFE06C5F2497724D800C332A3DE\ -25424523CBDEBB0EA95AA31C88B8A00ED3CF0E90B42BC1CF690618CC15796E1966AA5706\ -7D5B7E172A1F818C1C7EAF58C27E6EB3F647879E9785FC8362210C8E8C458A60AF1CFDBE\ -F698869E3347645C6D9AE7407F8DC7A1F84B20C1CEB17E33320F9BECC4B3E8E450BE9F59\ -56F74CF33F764526F097DFCB63C57C9798F791B471C494062BB6675C374EA7273E69C12B\ -5349172AEED9C66AF0380490B74F2293AA22DA87976580994A5109B5:\ -7AE8556DD6A8EE6E86499658479AE39CC400452F06071044CD165FF5C2B85FD59DE4BFEC\ -7FBFE20F578C1E21A53BC896D3FE5D77C7F908FA96A68FADA439645F621ACDDD9E2F351F\ -1E4D87BE5BCA2D6C93584DC331DD623925B630EC01C296F64F71DF0DD92232C7B0A0DB82\ -1B1761A442CA73EC3FCBAB386B0FFA35754ED91B113D51CD9239DF73ED46BBE1485075BA\ -AAFAC363F541870AA96EE7F21C4ECDBC0DA9F309B2CAB1C77D6220B2BC9EF5F2319607D7\ -C3D32C9F007C21CCA676872818085C971FFB778138C5398EE372DEC9:\ -0D852CA9C6CB0FA6A95F2B0D414A6F19 - -84B35BBFE1FFE781B931EEA1556DBA23D38673BB229EDBAAEA95A93736104DF3805D4968\ -95F105FC5433F698CAC70526A74EB67935788C35D87E6ACB63A285999CB981173BA6EB6F\ -8402F89D4D2DBF0A5DE904D5BDFC4864C6E48B906090DC418E9A91BDA8BE63E3CB341B57\ -0EBA6C5095A478C0FF43C062E12FB180D0B74DA39F7B562FFE9F652B3FF4356BA024777A\ -C34D7F84C45FEA5EC21BBAB205C6FF43EC92782BEEFD471DD8703FBD5DE167A829443F5F\ -1EE398475A40049C2AB577B5A6BF2581420F38D22F46142B59C92ED80F44A22A49644843:\ -17B0379B31BE60CD613289C2176135F971DDAAC953B76C8B48BA9FFCA0A040EF00E97A32\ -0FD19C9D4CB269AC205DCEDA98DB7390992FA4FC567DE5A39ACF08DACE83858E03E3BDE0\ -7B75AB74CF4D90DA3FF2B95476F9A81853BFFEBD91450E71E4D5BB5291BEA641F8773611\ -12D65E7578390A71CA8778CFACD4D25F71C90D289AD29045358D1DC8E14983E75CCA03F1\ -2521969916432CB967202086B62B33AFE1FA5B5A68BD4BF19888922F814577ED0E4F09C5\ -0D884A7DAE5B08B2AABFA8FA159BEA131841CB0F3B63F826E36682208F78839D9E84D917:\ -C071C64B7DBA548A42CF9656521425FB - -AC1211AABCB5E081D8C95FDD138A42FD6F1D808E37077D65D8FEAC80791E5D169A32B2F3\ -33CED7B84CFA383B430BD7611726230664C2471C0413CE30006872B0707DBDA38F9640D5\ -E376D050DDD5526A3313AD1247B6CE98F1484D9FF0169B7190F8D4CBE10BC03234E3CA25\ -81EEB98DC5969E2EB57A4C5A10DD5B5619D80D5A9B9C3595EAD7E0B5B622A5A2F685D70C\ -D687BEA1876C74A29DE026C1F8F673D66F1171B1633A05393A9896705A8E504BC474083D\ -B285BF8DD893D3D699505345EB97985948DA52A17AEABF279CC28E9793D360E8D707D5C3\ -6C0047BDC6ABE83E:\ -40BF0E1D3B5D92417849BBAE059D7EA6F22D409F5563957BAD0A4398F963AC823AE33A6F\ -6E908AC004E94A5AB9E3E7C4184C94FC90EBFAC6CC70C60FE939453507BB65913FC9A977\ -21A730880EFE22439DF0C516009A06FAE30F6CED63D9CEB707C331D0EDC2945EE3561EDA\ -E176E525E66EEF01E4FE4880F8F7D79A32E45CF71300A262A5F78079C20D7A9EB543D226\ -9579EC077A33EBCFB9289EB85C979951923ED96ADAA2984D6DEB1F5B3FA9CDD859EF877B\ -7594E84B99E3A9D2C8B8F984428D18A1B59EBFB851CB8EF0B4719725CF07D73E580C18B5\ -37BE3AFB34186668:\ -BC12C0EA9A1D8C2F0CA4F4683EFB8E38 - -2D2E50EFC0C6378E1D6BF584C498600F883CB10A49E27325E20A018B0BB3F192C7462F1C\ -F76636CB86F3CE38DBE3A70502A7A6F72EEFB76990773407DA628C11FBEC2E8478EF2F98\ -F0BEDB6733F695CF0158B8CF5AF6097F84116CDF8B973F3B0A6BC863B12EFCEDF0AD18F4\ -755974E9A05E554654115EA2B309DC37D41B7C1C6686C6470A7A528BFD2E8ECA7E28657A\ -BB5BC34532C38365FA1BA9DAA3CEBC85A9F30195E6D4EB52EF8CD243AE7DB1D082501FCA\ -2A93A4A81C4E1DEF5F4E0625BB088D0B2F4C31DC26561179DC3B46DFCACE0E82CA9A0505\ -8E2118194F6021CFDBE0D8C1D7B6D41B:\ -A6A0348A6F587D6664381AE45F8A0BC69C51F7BF6C26755452CDDB4F1F101EA2224F61BC\ -DBA8E97067DA55F4BF59A5D7CF12ABCF4DF18B92E4B6921569051F5E70F25698FE0D6C19\ -B891B48A3E03EBD7FE4A79A250A8B5FE6662D4430725AC447B55BBDAFB259B323872B4EF\ -BB452FB968E979006EA49A789F4C3743DBC1306AFBF5A4B1F421C99A3AA07A2E98A47B4D\ -AF2204CECB2AA86FB9AB60125AD0CD94C799CF3EBEC65C6F4F2B864C11F513CEA9D6280C\ -DF16B1F0E1F943A444786E1DCB1851681572ACA9571699B82CE9E5275E6999A1EEB599CC\ -8A0583D11D47938324E95B67407A0D68:\ -A114856E299B436E09F437C57B15109B - -AFC793265B90D53B647275124998999B3D8C91440541DB7E8CB0E8837AEB4653FC35361B\ -55D659148D9F25E3C109B1BB92C037397DA8F91CD5AF0B6EDE7667BFCF1DDCEE76AE83F1\ -67D937EB67005D48A9503315476A43A45001F621444C562563DE6901E969F6662249A6BD\ -AB7A638405EA3AC01304FD2DB772CC7AC122CD3D65B749A3F31704910950B642C8E5654D\ -C10B07C614C65A07BDE2AB52196999066284CF0F6EB66CD1A62C29B683A436C5BBC15704\ -688BAB92972421903D53F2072F7B8D53B02B70F63E7A7503207360A4872E04CBADBFEB32\ -1BCDDEA5E89419FEDED04000065DF73BE58A79AB5BDF885E:\ -6CAE06C13E54BB2375E3D3C741E9C61D3813AB63CB157E54FAFD28E9A4D935E57D74032E\ -5E669844D277F211B480F0E54E4F0B09C2242FE1D5EEFF32E1313759A47E7450B55E09C4\ -37D1EF3F60A0572134C2D9B5258414BA5D84774D65FE545F1B80E7FC06BD7669D05AFAA2\ -271AEE74F8E0C247070CBA2FFCA62B6CE5BFB0B6E75055F099939AC44FEC6E9A3615FD57\ -B3723119FF14C927BA06DFFA36E91744E035AE7A9F21625D74BB62C41802782201D1043E\ -5B9AE266997FABBB42ED800EA1E2F2A4E78C265E3CBAA9979ED89A8FC6C9F16BC6802A5E\ -7D2D819A7D8357B9C40B5BCC50726EBA3DD0791E11489771:\ -C722C9F2A15369264DB7F54FEB0207B8 - -936C9695CF82D4241CAEDA1E8C80DA52CA4837BBDD2158E2CCDAA99EFEC6F1FA29D6ADDD\ -6FE3A660F50FC6C2AE456BF742081FB471A317707C523638AA27DD85621CDED72631C469\ -0A857512265A11C283193BE33BBA6E77EACD56E9DF9541BDC3567814E98F0E6D57D9B254\ -40FB7AB62AD9375B2A96F60C4E4B57AD02F62EAA06793D0C5761369447B9A0621EC2F9AF\ -BE8F52E8720CCF67E4A1BC7285463E8DEAADC248CD8207739F04FD13F72E0A7A0CDDD5EA\ -0B7111582A389C21F499BB4349E8BDFAB0925E4C299773A9A546913D37B7951C9052EE94\ -55391880A77CC66F133FB8AF5CBDDB2433F3F9D52F94A15D8A9143D0729F6D60:\ -8144D92331D338C920C0BA0C6B32C6EE28BBCE148F6B56B5D2A12D029734A41B8B4071E4\ -A7601A88E8CEB031DDD38E4588CCAA900E8E23AA1C3D4AAD39FB75B90A8C47ABE3641FC6\ -B04EA1E74FD4B4B9E72310F79D25509B3DCA63BEB093A08F7149A23E0D548DD5C20449C9\ -0FB41C88CBB6D1D51D35DE46D4112090926A7948563487E34E7507CCBA9825BB48EA8709\ -239CB49CBC0FC09447570E1FDE99E1316BC24A5CD38E53F613152BA9BAFEB065AE30CD73\ -DADEF90E4E907C0E55EA0488B9CDD20926B3893D8429E4C9FCEA17087B6933064976F250\ -3ACD2D8D0DF4CF6F10BFEC0C914B0C46E6FF575464FCEB1EDC01AFBE446F77AC:\ -BEF7E425E917D067300D40D19AE12ADE - -23D35E037CBBA0A76A46DD433B547E17B54A81782A51D13829BA301250ECBEB0EB598F76\ -BE470D8411E7E58516873B4C9BB87E4B41C4DA3BB941C3F8A9EEFAA507D30948692ADD5E\ -53AF8EF3CE42D6944D8E2994F45F4090B8934BCB09B94B3BF04726F42B00ECF9D9893BAA\ -ABFAF712E022F82317CFEC8AAEB7242BAADEF7526833C2EA481816856BD423CC652CC043\ -01C7212BBE69F251BEBFCACAF0F12A19F99EC4A88E4381403B24322133373ABE881C0F97\ -D706EE4CBF3F5F7E69B8624F50270E508ED0487B0B8116BE1AF904C23B4F704BCB8AF92B\ -118A912B5CD0D759C3F73A6331E1337B693B7EA65A017CB62C51A4E4AC7C6AB9530DE747\ -FFCEF27C:\ -D968A79959F5DCB6486FE846504AC0E8753E56410795AB9637BA84EDD9AFD692DA253ACF\ -DE1FCEF40280D30BAD93AF2386B755835AD1CB18D472DAF37D7C69109DE9898E09C69DD8\ -D5DAD6D6640246B28F905FC0B1329D44E9AD2DD4D5D467862AE364CE7A81D5433B00CAF1\ -1B9A1D7D54910CB2B01888348ED423A2BB40CE0CC23210CE10CB9B123AAA8F41A3B25114\ -398160C0E9241CEF67F52CC419AD31E5E04C4CE91716ED99702AE69E7A1D501C47A53F81\ -E611827C7694E9B4B9446F263FF1170F4CD70B432EFEF97F0916CC6BA81A8E11EC996526\ -E9202F6910FE8A427CD0BC8C7BFA23D0DCE30FDD6C2F36B582A3C9B698BC5CC6CEB3F951\ -B26D586B:\ -19796BDCABF22920277106075D0E0EB0 - -[XTEA/CTR-BE] -ABA78D16A7A85065A61F31B9C9CD4053444BA2A36C80E97C4C7BD0956676FA39:\ -4B33050781F6003A1A4CAD8B188DA93FAB60C28BBC1E5D822CF7551986E2A5C2:\ -EC1147D3A4CB70A20AA8664E88E60985:7A38520947DD623F - -14E75459D23667074E7A7373034443BB4B2C7CBF90EA1A18D59A93598090D92CAB4F8F15:\ -7C2E05A9570504B7751E4614FECEC7F7449FA1B25895C4435A29AD9DA8AB41A8CF06048A:\ -2FEBE8549A5DDDA945398955CBD4D3E9:2A95AD603EC4B59D - -9388E427E80A52FE5EB761560A2494526DDD7B4729FAD683E6C8B57FB46782B9D016AA0D\ -DFC9C313:\ -8020D203BE99C6EA448C64EC4CFC2F02AA220CC6194EAF81D938467E8BB69200B2F67AB6\ -D6CFF596:\ -62F04E49D6CC94750FA5CFC871DBDCCD:25723E1410D2EABC - -AE15285DF8745CF588C3D075C545591CE8C87E0840CD8EDC9336ED08E42D2A4A6BA0B7D6\ -045AAB25645208BB:\ -82777E8462001C6BE7990AD149ED8AA462CEF8FAA7F3377CDDF07BC89F0A2EB39439756C\ -31D21E932FEB672A:\ -F7E815767C7D7542BD8F0DB41C8C0E95:8FE94927EEB3ED8F - -94E0F6198EC8C7C7DF35262ED38CDFF2D5BC48A1FCA450D250345996EB01BFF3965F221A\ -F4EC43D8CB7FB89ACEB01B1A:\ -8468BE0862149C3CA03983C7AFFF1D61C33FAD83477714CC51D40C6F1F045530E9651757\ -DFFA70BB1C4780D6F44A0E9C:\ -B64DCBD21A7CB07620DEE39C74BD598F:74DFAD2D6C7375BB - -FDEBCC1AC9107EDAF4AF10F34B6E1C8EE15797901F35840504754EAB53BE680F30BDD571\ -E9B50289987C6292BF2CA838D932DE34:\ -76F9EC52A2E6C5EB209E7CFB4BD40EA0CAB974068A0CB4C3490349D3024CDC522D11FED4\ -D91D32223FFA8916B39D458999FFF43D:\ -728984B99C7E92CDEB49DE0B3FE42AA8:888F01082B9D2103 - -9B0E0711E375D8EA9735F98F38C58E9184E66EE71DD12B9E14F80095FFE53C6461A3A362\ -650D150C2FBB6F84DCB0789D6E7CF63D8DA9CD6F:\ -EC83CD5B6D2DD5B438CCFDE65580F1A45053D01E15370119219B39C124A4D99F8EFA44F5\ -001BE7F18C7E0033CB1411AAB97E104196434346:\ -E55ED01805B70BA13D785D8D859F15D8:5C8907CD33AFF98B - -22E53F89A5E86CD4A874D5CF372E51362E8F71728FD855730CC87BE1F57EF26577689C1F\ -5390C158B6E1ACDBFF1B5BA5D90D6B4F0C2D484D9F0F513E:\ -33F1FC8F0B7B13EA9F2676597870D55E285F7692B5F89CFCAC80127E5E85D1D3C5D624E2\ -2A4C36066F7EB9AF665AA1C7799863FF3F5EFA3FF027CB9D:\ -1D22726357C301EDA933D7910D3135B4:E046855FFD91DF19 - -C1EAE81700F699ABD728F04E671BC2623B70BE954A9CEF23CE43D492197DC55713406212\ -CF1E322EBEAE57601F2B717AEF4A3DD4EFEC18BD9FA55B226EC129DC:\ -25226E84529A261AF51E429148A35B389A88809B75D983720084586AD0A02F2851CD92A7\ -2372FAE97A65539219EA224A9B1BC6C7E8A0586CA4ED37C3D452DA4D:\ -065EC565D8BC713866CFF86B0ABC2BB1:27100BF3F22105DA - -325748DA5C629AFC738D34BF32C84DEB40543C276A3A2C13C6A4BF23B885B6AC348D2746\ -7BA3714BE4FB1B764B81FAD7EE2D062277B4EC428F0A6E6CADAF5EA55860F8AE:\ -A0FD6A60A1B8A729CC52D41FBDB2E5E7896EE8C9944E6E63CD1A769BF278AE2E8CF48115\ -ADEA864B00DC65B950C68D09079CD81D35459F5F483F9040FC38AD50778B4217:\ -6AA995999C4EA6C83070988AC0A795F7:01B5B1C6E92BBEE6 - -23019A5A7C61262EA124DAB215A517423781B9C1BE56B63E794BE6836026F7CD55531BFC\ -08665896FCC7CCDFDCEA09207A8785C8DCE932A00A5D105A2D6682A32604D1292207F195:\ -47CDB6D6BC25AEBAD70E99524CB0EBCDEB48E0531A35E505FFDA421A1F27ADD6BB9ADC57\ -C3525B989C0C1DCE37577877CE328E6D317D0655DFA80AA8B62273C7AE8DDDE05EECD178:\ -E6D35BBAC75EFAB74AB954C8C2D0D1C7:6582E6C1B4A47B2E - -9F8B703434DA473871B05A0D83EC424FFBB0DA17224C95D33178FD28641C1ADE87559E7D\ -ACD11F819CAED832B095F6F804FF63D4E239D620B8E6CE8DF1799D028926A3FFE28BF433\ -664B166A:\ -8E1F3C026E4885E3693FEEFAD56DB8A898269D61CC92CBFA0DE1DA833586619AE9D0B98E\ -54028A2AED24BF2878B1894F4BFE090CF0A7F2627106DC0700F43D31914586DD1A1CD7A1\ -A7F5D82A:\ -3145D3926C22A5AB4BBDCC163CE93E0B:CB8BEA9267176935 - -4592FFC1D25A2ADCC9FD5DE77DB143AA6E17934FF882E2F8E2BF0D8BFE6DFE10AA33D124\ -199BFAE8D3C2BC2B4B9EB37FC6289C0ED2A6CDDE407F78C035CAAB36653FF686FAC37E51\ -76B3A821E21CF7B1:\ -ADE67B169947C994E246676FB301C44204D8817BC3291DE6F35552E1E8BEFA5763F1C605\ -E2CA7442847030793EF1CD830F7103ECC9928FC98EE4B346872ADADF439464BA40CA0D78\ -63C4C9946E723E71:\ -353358DD5493234F6BE6E3AA3AA4D393:A17467FA740E2541 - -E3100B239057B16CE51A754047F20D6537DE016ADA61056761C1D9DF3939AC8C0AB155B4\ -2C9C3BCFF3B63BDADD21954C328B4CCA4F1EA6A57EA8B7A99BFCE72E57CA2C87C4ADF0C8\ -44CB76A4B8DA35BD0A3952AA:\ -AEBEC1E382AD5129278CB4C5A67EF92E64BAE93C1F4266FBD40AEEE0E28D5048E81B0CDD\ -2EB7851B7A3CA43BFAB751C54217DE5315D9EBCF94238FBA5A8114C28F1AF6B9110DBC84\ -EF13F621B8690AD7480E9E90:\ -C313724761DEC636790E38D93F299530:90C5A696C66726F2 - -6FEEE7F77DAE629397B0EEBCE6A4E7CD4FCB4F14EBC408A6798475F3EE5C560F0C38FB0F\ -9D2334E85B75C36632EB4C9ECF80F02B47EC1D589720C104B111197E5CCE4D08441FD98B\ -9D67E108BD5AE4313B5725F7B86BA4E6:\ -F73ED0FABED7812409A04F100F1523DA22E013055537803A3F6B2ABE9479A199B2DF80F3\ -F379640228C47C0475A68A86A455B4E53D2CC078A9EBB04F37764714EE9F0202BF15C393\ -CE87A6E339CD0EA52DA997091383D151:\ -3ED02192D605AB5AAE56CC630BE39141:09808B88D15118CD - -CC1B18F695290A169D5DAF220622250E4C3383C871CED8648365EC2DEC9A14D5A522441B\ -35B8AAA51FD6D06EF8E5C8F6A12F8EF068882B826E1B97844F0F088C1214DD1769E6F1B3\ -29CC62FEAE91D1AE9CA752AF80A966AFF9495BD6:\ -D86A1A79CE209972F3F5DCAB0389DBA578CB0EA6FF657E889CF6CF7C30C746131E71927A\ -3CB2DA42A823A19E176510CEFD9AEC30D7F648097AAB847840ED396FDFE4CD1EE0C131C7\ -63C17F551457E5D0D933EC1CD30ADABE4E69298F:\ -E53B03BD00F9E5817BBE38EB1760F950:D559750E3DC7CC19 - -D150BC8369DC06BA57F7CC241766549A52F2D49D7AAF9CF7D6BE0334FAE2327FCC76104D\ -E5EDF782E32B8CCF92669B62B25FC619DDAB77BF9AEBB2D175530AE97B56BE01065B9532\ -4EAF86AFDDED0C93DE01F139E6B0302DE8F59954F0B20793:\ -16DCB3F6A247FCECB4B5C7790796166540892230E00AACEF9EACE255ADF579F6BBAB2F2C\ -92E8389EC54A6F039963E980550B073C0CEC4FE554B2A23C69776D35AFCD128559104141\ -5CC9A15BD1A4A89AF43F702B06F1807FEA53490B80686A52:\ -48E7EF6FED168BCEC4069E3E622530BF:7C8A47B36E7EC263 - -1B1508A165845B4EA7692CD8BE5A38B42AB114B9A63E3243D3DC1AEA8D279E2A12BFFED8\ -88B7E4702CD51CE577E04B9E401C1D6ADAC4222FB87A5BC81CA331DE77BE79D3C9287839\ -8752DC9678D5ED422E40B469515A64D1E561DEC0D3599CBB88AD71FB:\ -AD25FC4AACEB3BF13B5620DD0437C0E5EC62869F5C0296C7A0666CFE974603D9509E2980\ -4075560D1674EC8DF26BB7FD8F9438731927DF583D8DEFC45E960F0F03CC71539E56F6F3\ -3FF324F265D4E3596F97630FEA0521C29210830BD5514E8DC390573D:\ -F931CF1396F15FE1FBED7A230961C729:5DC1DA62482AA6EC - -969875002E0CF955F29EC9651D8AC98B667A8700E96EAFB42AFEC3EFFC9A219B614BCBF0\ -C32028EA2ADBDDA5D0E3444E1658C7E0CE20362E00EA73B2428027FCA2061CF6B492DECC\ -FCBF06E519D05BCA2282342DED05B0CF2E1E25639F58DCD220922B690C5B5E23:\ -4A1A307B23136A6C15065ABE453209D1B87413260BE453F7231629F99709CC9F56D25FE6\ -D2976B2EB968B83C4F58DD21DDCC0DDB4434633181E4384EFB89EA93B679AFE93C77E477\ -6B28F504514DA0471C49F6E5E40BA90BF167B3849AC6D7D1C05460EB0D262936:\ -238F54FD6D70A8E8E03F305A8136A4C2:9C764FCE696A60F5 - -0116DE193FF6B1F703B18EDF87610137D14EBC3119A979CECDD460C38A38817CC12FE56D\ -2110442A56A1BFBBBF4A1CF701B502C6D37AD1A6269546E07539FB4EE8612216FD3E69CE\ -47513CDE9AEEA674D6DC1719EB4A08A513DA5CF063CC9C6C037425DF4A44766516E41FAD:\ -05CB3542A26697484D30EE15EAD8DDF8B5D940F5BEC00878DB6FA73D1015B758DA221815\ -AA1FE5F237AC3F9D6A24E946097A9B1F8DB04D5AC68B0B6F164596FD087E06649F05E750\ -3617BBDE7868085FA3053C79A1C878C8FB46CFFF98F782FEECCAADBD93A087497A9355AE:\ -84BFCFD08B09C9515D703EE5F629242E:8B22EEDB409EBD8D - -F8810BD894C82BA767986F98DE5CD7E7F9ABF6E82D88AFE84A6735547CBF1E13F285C35F\ -8C5B3DBDCD89D9DDA3AA4CC4C153426E573A585C9A21A77CDC1EC886F64874ECC2482458\ -706366950A1650A30BDDB73F9A619CEDA1B806CED6E1ED00F63650C09490CE87112F1319\ -431FA016:\ -8D2769AC11176C15B77F0CB8A72B34160A1E3939EFFA43E098B50271D9B031FB9F52E6D9\ -49B150AC630B2CFA85072F797C9AEAD9F15735C69274A9BFBFA4BE9E759552B8E02CDF6B\ -F07DDCBD6C5BEE9C01568D6129676D20DE0762C5D466252CB286E0A1B7C1CE6E4BB3FA4D\ -9B56761A:\ -EA279EDFB80A909C95158D9107E7BAB4:3D899C4A9C64C494 - -E1959869B615E838C4362ABDEB51A3D0BFF2CAC32AF78E27106B1161C5D6A893A5A31B78\ -FA92AC70DC3A9CF68DC62280D963BEE9C04CEA5F1FB32B15582B37FCDAEBA18DA3B22278\ -3D2E7484256508F26BA549AD56AFBA3F5B0161AB6A4A6EFEC326477E92B025FBFD29498D\ -DCE8B9D274DDE71C:\ -95936503497BB10E8C110CF1A819FBB13DB05DA88723055D8CBCFF2B15C8DCDF12BC7810\ -ADD4A82AE8A85DFD6D906B5936189B6F0B18B9979A0C55C08E53BDF37BE251AB364D85D9\ -E94F6AE957131AF7CA475BE7F19954B45CC3C00867B9EB574B614CAD4A66BB505EC9996B\ -7DF9467A39096CC3:\ -09EBFB4079E906C5F8BE9B2041A32305:998215883ADB9F54 - -8B2999AACD2CA034908EF05C394CCEF00F816E57FCA840C6010760EFCD6E3F3AA088784D\ -530AF024FD9E3BB2B4EBC5223FD3DB3493EB6E2E1876EBBFD4BD0090004ACCEFBF3756BB\ -82CD18EE4CEEF6FBBF09AB0DB0465134E848672FBCA3BBD6CF8AEB684C4A82244D7A5D44\ -468E0F31C41B908989B7EC26:\ -51BF0E20F1FDE6F5B7FD1B72749709999147D80866C7D12E8D37CA2896D67F889FD5510C\ -8F74C62B8D044F552EE7B009F943110CD3EEDACF20DB04F3522434D5BA4E0CCAA29DAE39\ -F18CCA49EE1CBB9515C13FBC38142775ECECD778BE72497487D5A0763F20A6F84BFEA19D\ -4674066E934D8D73ECA96C28:\ -809C0B33709493BA086F146697A9DCD5:F263A312E9A219B9 - -60C66BE7E8951C3E406F5635AA22FA1869BFC560F337DEB230EC6FBEAF805A778421CFBA\ -07166136F1C1F3AE674F895CE24BEED79C81BED23C320B12C45894AF037CDF91BD540563\ -7772D4BE4B06E72181286194BDA09BA7FE682972E1D8972A09096612114DAA9CABD80816\ -B5C50B2C1644FD6ED8521E7F82540F15:\ -64A20C4BD5F7949AD3583B00651404AAD4496D5C3C39A7D463CE22238A741DE32083AAA2\ -38E3320DE7FE007968BA55B1F14AB1E88064F2C112A0E97C37CDFA9D97355692E0E9552E\ -2A71D22DC2B5866902221B7AF4BA94810E74CD4D6FAA8E57263EA721C2959A240FB33634\ -6C602C177F95B40B11E0DE004CCDF6E8:\ -A794395BE934B5BF5FB38EBA5E0D5406:4ADDE2D9335FFEEB - -C37A738A4E6144F1E5EC5B8E1E61C71AA0449D83E3D207136CD63D1A8F978D8D0B00462F\ -3A10B193B2F5445D2BB8F0C71605F277388A23677CCAEF508041C406219D8FFF569E44F2\ -4D4DFD9216D261E244DB588FEDA33EC4B87A5114378984559004ACEE5DDC6C16C2A25D5A\ -FE42C961CD5C418B44E218A749A357351131CCE4:\ -64646829143CB4A25661723F772932F14BF4898344F70EEF3186889849AD9D1D98CB4805\ -26FFE8E7B6AA15F3A9346D10111E79C809FF435EB8851907A90530F2B96A2C0E1E1A2587\ -C8AE735222967BC82A8106C604C9F2FB15E4D7EF3D8F9806455ECA090A0027BA5D2D5228\ -7E0831422377336450F45D268A6D2BDDD474FD84:\ -D9653B71A3003270F83DFC49AA48C8EA:40E4D61971A2D857 - -2E3ACE745E2D36728751E0A18448971BEDA6F21A742E21DEEE68922E89E85747EA4BCA5A\ -BD903FDD7EF705359E847687C5C132BB2556634DE165F00BA0E4693CF364CB1DC100A073\ -253732050AAF7AD77C2983532908E888A8DAD84E43A4ED29335A5515940177F8325E5D36\ -C6892E42665EEB814E6689F0E06A3C5A69D042F50EAAC4DD:\ -287F31451FB5E6769B3EAAA58506EA403BC6F47DE662BC5BDB558523706DAA72B16174CB\ -F0DAA28C5ECA6EAF37EA0866467A8860ECE342104E63687A2191F2927A0FAA1624BAFFDB\ -8660DB0FA50627509D9AB5AC422ACD521436355FCE9DA020C11D402A02EBB46DA363A799\ -9F348DD815CF60B115166BA82581CC01358B5C7F52401E98:\ -F546A2AD3A1F291A995F4C058D9C9F78:7F993DF4D373BA6F - -F51E1F304ACBAA9CA94555934652761CEC135E591492912468C7FBDA2807A61EDABF838F\ -0EB47B99DD441C54A03C65AE73B2343A9E12C6B1B7474BA6E88755C90333110861AECF6E\ -EFE5CBEE18ECF2631FEDDABB3AC0FE36DC66B1E78D8FF5162BC5323F85932B2154089975\ -01E3FC0DAAD12A51AE1F1387C8ED8B132DEF421D0727AFE59788F4D3:\ -BED9B697D1DC34037DFD5245FB74D684103E9F6B649024911976336DF5451443FD4B32A9\ -AD91B2679BC138066DC9BA6C367277EB7A7AC67C505CDDEC6300D26FF5C9E5825420F356\ -532D78080459362399FB9F08684EC2693AACB90382E326431B1AE0822BC6E3C4D67DC93C\ -301951E8635E3A19A71F0EDB63D44E53951B097B5A0FE3681E2A472A:\ -B8A2DACE13F418A8C576AF7F5DC03E79:00C100EEA0489AE9 - -DD2B20530B72F4E675F1FD7AE4FA8B0EA84B2946F1ADAEBAC8DAE5D1168C4084744F879E\ -EB9507B340EACF728D0D10786A6E8A4408908A6ED0E6198D8D1675C918462B82EA0F544B\ -DB3E194ABDFC9B40E2AC4BE61E907A70352532648C1EB6D72FC114544DB439516DF681F6\ -42D487924ABF0524C068EE4B9E45009BB8E99DE5CA73372A2F7DE78439150ACD:\ -4A4EF7F6C0933D12A4825EF1C293FEE5F95DBC69521323B6BCF527437513B878D0DCC039\ -0708B64CCBB8C3D7D1D1FC574DE35C45C2D48770DA757A65A177F8AC25C3F1F59A848E5F\ -DEDC9ED2801300F1A3ED44EE8A9F5A79924BE7E9FEFBAF6836CF18E6F28DA81F87DD2ECD\ -B48CB009A448172B556D977315F798218EFA44A794F257D250CE73AF151F74B5:\ -3EC3D092356A5B6874DEE6031785E19C:96F16B8BBCECE7FA - -5BC87836612D3D7FCBAF662B16924062C237658471CEECC0F1300C84531215406420D7C2\ -02922DF63F6864345581EB8C3345BF47D5FD9769563EAABA49A042A21E1CB39F51165BC8\ -AF5418169C8A0A9222C4A333559CA6F3DAB374D6A342D8AE24E41C51424585520415590D\ -2874F93A7919F2BE0F25438F0953FD3F8FD2804435DBE1190660227330D5B0FB3BBBDDC8:\ -077DFDB7F6E7EDD024C475FD57BFAD68BEDDF0737C1A460A589A8647212A61B33827D953\ -A2FEFC7F48E2979C4DFBD4285D747C52E3CE232FBF2307FF9F04E39C3D817B7402FCE656\ -08E599E37F208BA8684611C8859B2DA1F7F6797DBE58132E0BB143BF990D1D3D8226C2B9\ -F6BC50E8A03DB6C6560582C03A3D68F48E781B054DD69615B5A63B6136F2AB75BB9585F7:\ -11132C6E22979CB5C213191045E750FD:ABDC21EA87125B00 - -673436400DC4FB49950303A83E0BDF18E477F638B5E768172D86C2223861A86E73A5C423\ -9FF593B84BC3B98B67C56897B6417C9E5BE8ABA361E4EDBFD95DC3B15FE96E51BA717742\ -C449F635C645CC3830CC7EDD36D1D34A1F09C46C33700BBABA29EE856A86BF6D146166CA\ -975B2BCAF3C7E3C6614A03FF47BDB498BF3BDFC328C79228303AFE01BD80FAB8D54A0F2B\ -E38FE911:\ -34723A46EED388E0A273E9DE120946892EEC04EA668325C654F43800D300970DB9009E29\ -9963EB08BDE37E4AAE1B3E540EA2BABE50534B93D3988DD1F93F0E49761D83C3F95EEA97\ -9241A22A80D969ED22D826686BEFF174896D74A1F7000CBD164DFC07B92EB66EDDAD1194\ -309CA143605094BB8C330F31F5232A0A24936594DD4E7BA41E6039A3CAA6205074656CD4\ -ACBEEFBB:\ -6A0DA91DBCA54101F99ACB1362CB882E:7ECFD1F603D67C77 - -B5FDD61F8E6110D7AF03DBA5AC5342F9119F2CC317F1985CB3305E7DECD07A1787EDBA37\ -BC47AD1329D0752F4400E506A098CC71B83ED798CA67A01863FDDB8BC2952C951B46BE9F\ -8D9F83B7E0FE32F8FF69FAEECD49D2ADFD62C405104DEC61B4C3AFB6088B5369E88D11C4\ -9E7B5F4DBA284CA2BF5846275C5C2DBDFF8EFCB4AEEF12E215AD6423E9D5E6213382D75C\ -27D0E6D14C78FC36:\ -E42423B8CE44B0C3F7BADCC2E0EC469969E9531CDD4A0B7DB8646014A5D4BDAAAE109619\ -8860270A1283724DCE0E886AC9489593FFDB00B478E8D6BEF839DE633D678BA945F26D5E\ -FADD08297AEF5D3618645D200C627D6B6097BE81248B23F825FA4442C34C2F25A1E41D44\ -5E283CA3BB723681E654DCD7932A637834958D0C80DE6AE92D298B72396BBA5119DCD873\ -A403358ED479D453:\ -08AFB509E7385CE045789878C4B13D46:A3E66AF196BDBAE9 - -CDD81737DA50063D7581BC6FC8918B542E0F161D0D4BA408B5890196320C71DA508651AB\ -850C565105C854872ECD8A336CDDB5511399219D1E15387F21ECE4CE0FD896508D041C3F\ -AAFA75EE42E24B6C5FB45BC7B98FBF17E734FFD7C9E7160571FED42DA5CCE42750D46989\ -CEBC803002B72C14390087AAD352BDA885B771AFF5EAE3E6CF1428AB628F2E792A92DE72\ -C5E0234BF0AE05599A15F829:\ -B492AA4DC9B8C4CB3CE1AE1FB256D0455444D5BA7495BA36D8EA9B6BDC89881C9AE6044E\ -FE078AA9525B71FA983D3DADC6A03B5B1E327262B21718CB7EC11F46E9CD18DD6D94A9C9\ -EA923A459DBC518578D17184C6B19647C6F6FD3A99CD1EA09B97508DDB6B7439FD6308FF\ -E609A7B1660B1399B07F637D7C20B8990A652177A3E634092784A6499A994F7B2644FC1E\ -A597EFB4A4E15F08749E5186:\ -178178B147A4454EBC944527EB05FE22:B3C0BCCC0FC8C398 - -45A13F4D44F679618C049E0F6451C1DF764CD6975A08ED9FC21B7F60938FAE7EFB90D9C1\ -FC9F6EE0653319532D6E5EF4C91415360C42B13F3E9C4467FB910D617AC9A73EF44AF243\ -75B1E8A7F5A5275E18024276DB173D723B9A834E4549980CCC09D5DC7D9AC3B6967C1127\ -9C3E3847C3D1E9BA98E7F9F577E322C1985E06ABF75557540E676ADC9741DB1C4B078814\ -A62E001C3F98B116E91A6E4601CA5F90:\ -59A7C4B96EE561294D33E83DBBD876250CFDFB91AD6A1F76E112DB95D9F0A2DC1C5BB58C\ -01F650C933C9948A18C879E2115DDCF59499DA33169481A521576695AE9A248A8078F5AD\ -D5DC1E63AD39A001346BA3E3B541A9FB101B327B0DE2363BF17FFDA8CBB33142B58484C9\ -C7D888E0CD7B4482CA3A883930E35D581C755537AD4A7876E1F028C8344BC76ECBBE2AD2\ -5BDE23FE9F5293C414D2FEB1FE94DC1F:\ -0A0035EE3EC39ABDD835B30D054E63CE:6345FFDCAEC79C12 - -36144BE61EC490E90F95D38A8FA17A2A9C00B4843AA12D8030D01536C349585814E7D280\ -F292BF5C8CF2F4F2E68CB991AB0253045626AF958C5F591FE34515B29694AF39899DC4EA\ -A1B526C3AB2BDFAF51378D0ABE33EC6892EF01D281CD2817112D1FC685C86693A2734C5B\ -5CFCF6C8145C990CAECC9B318EF7F5BE8B6740B280A39FBD8B9ABEC947277779ED62229D\ -2E67EDB26F34A9A72806FE1E93A4E2E2E5D119E1:\ -FFC4706302E667EC36B915B4298BB11B0D2D1FBCB0DA35A12D1255AD4048FF593B880E96\ -C2F9451C8AD38D304148E2DC920E9B26ABA72CC05603C6DFC21CBF7B528142422537CD56\ -4E0877FBABAFDA326B196814DDF9FA8515C91CBA0D45EA8D9550C6B95D8FF35DA3F3A1B3\ -CCA42FEFC562177FAC15DB5279CA50D6A7D342EBA98A426BC7943133F71A97E074AB87F5\ -B30F8F23CD26A8309D78F69D8B39FF2DCC3152F8:\ -EAD6297D0A3A3A8612A17C4C336E19D6:66B556952B67E560 - -9B46EF1D1046A03836BA53F6EC68FA57B382FAF02606B4F272404C754F368DFFB1225CA6\ -F9A26F22B0554818BB9F784F2AA5368B42E82A4C2C1052F656BD2C0272EDF95D997833EF\ -7D1547E08E407CFBE1C996E9DE05EA5166E1236FD6FBC70A494FCA1A6A17BF4B3AB12E92\ -A78939BDD5A538E55D39E789DCF2F4DF7A8F79452FB4ACEEC4FE364B973357518A79D761\ -10353CE90D48BAB713D7B7D63AE14AFD7913F4EE74F02B51:\ -6E9151C9F82CF529E7A2B63C97E451ACF59CF00971B9789FEA5E8B1FD3071A64B312FA65\ -65A89E42DAD21C9D6BB5197C7C944C69AD6071809316E8BE5B67A775916A7E8B633BE189\ -00DD59D26612FA4624D12AFEC3C1BC39D1C9146761E0B3815889D0B3C37B860D4D56DE04\ -2D163D9F7236D1293B42822870E4797EF63FC00D3A8900E85F5BE156EBF2D97A5B71B56F\ -B0AB95FBA03C4671CBF97B300D4E90569EE9D586A4305533:\ -4E7FC8BD2DCF8D0A6ED122C394D6464F:CE96ED105D3C7931 - -DD3C2F94FCFD7C101022B328D3F11A81E8A47A9CF36AB9C03AE81433B18581E5B1512417\ -BCE9AE91DFCFDDBC5BD6957FA2602E12223E98122BDF22F0DBBCBBDD4E88CD2A87C0334A\ -B108845CB44ED56BF25FE3C8AF0C1463D2A0C6E149C218B9942C20C4FA5F42CAAE9E0FE1\ -36B238B495FE1BB33EE712CD11FC78E2536D7DA293D5E624BFF86EFFDCBDEB7CCE8B05D7\ -FD4D6D4B926C6234E602D84B3E93FA5078EEA598C3E8CE3CD9BA61C8:\ -C749DB2D42DE856439612BFB902897122B6B57B6E5B3DBE2844312CF131DB3B7B65B4096\ -D1ADA9C665C95ABA1AF299385E8401310FE9A43DCF1D0239F4C88493827F7EAE7FF5B8AA\ -2F7A1F8E42F9D3B90EE84E92B4F136ADFB4D459B22195562AD525F0FF12E64C9072DEFEB\ -31CC0331B7AD8A78DAD43E18BF84A1AC2CEFA4858BA1895A15CD29F4AA29CED0B5D5590B\ -D1AE2DE335E795CF5645FE9F9253077144F30EDEDFBFD93F47DCA24C:\ -911E1A315CD2C8126019607442FD4279:CE1FB0B32F6FB617 - -FBE74B418AB2B39F83383824C6909FBF0750738CF218EBFE913492E6B458CD25BC79CF2D\ -1BBA62CD4EA9924F13E9BE3CAAE81F9393E1B01C213D13EC7B32D42C4B896614397EBD25\ -960F2543AEB59DAF8E061F80B2D34212202A91D35AB9E9E15F26A8BB1E20E9C8645EF0A4\ -0727C705EA03600CF88F58E2065E920DAAF41779281D02BA70DF465DEC7D34669F6D0D8C\ -527AC7BD9A0EC3519C8DF317A697D4745ED94B13FED3FC8ABCA76D6B4FFC1390:\ -79E20320F675AEDA7E1D50A32C6B6C17F1BE8FE14CA9818C30AE46830A41569059926D7A\ -1C238F7AF469C19705C5EDC127EAFFA45026A39F49A5E71E3034CF4EB738775CCE69ECAF\ -62CE39CEB45D1204709B26F809B53255D1513F3F8100DCE3EC915E162AB17C62EF70D804\ -8C24E2CA11D3958CA9D06A1F16E571CB5BB39B0F28478A68BA51AB7A5C14611DB5781C2F\ -3302A15A7635B60A849D9C0080C62D244FB03670EEC92A4FB403A7BD089027B3:\ -5283BDDEC2CFCE31E61A003516C9D151:7A2E404FB6C3B6BB - -5D22783F9FF3BBB0BD89621E7C18E4647BABA0C76563CE14EB2AD5C4F6F51A49C513A4F9\ -C12CEA6B8C24D27BFED626824109E9B39B7468F39FB856D6C3946AC95C1A211FAFB4F767\ -3717EC97182CB9EA000BDE3F2905439EA5F6579FB7E6A0E8BB33D2FA3F02A5D678F1002B\ -4F95B2FD4E1C2559BECFAAF1D712AD4E37F6EB9088F81484ABE54B3A959550A2B41F041D\ -AF19167E394FFB9410D71C2CD90682D0AA6CD22D8244B6C025B1F5E877DE97372286C835:\ -811F5009DE77855B575D9BE64ACD8272699862AEAFC0B6284F4481CFC5FC1D028BA072F6\ -A2398D1DD99A731261C5E4543A0FEB7E089DBC6FA7AE9DA555D0B92A58A4D8B16A39777D\ -3368B6F698144B3E5773EF0501A41EFBFB30A1FFED14E11CAF106AAA515AB9FFF8AD9AD4\ -917155083754A44FAAFE449205D47F5D7296CA3917C575FD3ED10B26FA6A218B00374DFE\ -8EB43AACFC5E7DA3B514CE47AD69016EEBEE87CA8AAD668CA270D6328F7BAF60B0647CAB:\ -D2EE5AD0C6B1277836223D2B8999EF6C:CE3B759B6881D0F0 - -87719A3ED11A24F7EB0AFCF7743456648E1E6F170A4C98AD8296CCE7DBC9C59F761CF8AE\ -0B7719E42798C45DB57477F8D6640B5BB5A07352DDCF46FAD9CC19FE8304C1000E2B177E\ -A8BB610BDCC989D34BE946F9F37C71BEC8922BB1B067EB8F6FC6295392DAFDCE5CA39419\ -87CF2072853297020A2397A0E1F71FDA7FA381196C942B01A8A3F82874AB7D6AA1BE59A5\ -B9B1FFA357F17302A8E717E0A664400505A183F5D1D89C1E7EDF87713C5C114E10D17412\ -C28AB68E:\ -1E52C0BE4B78C8B45805586FFD14DF7740DE330877913156D11D9185A2414BC5E1317CFF\ -85B416F2882E769B74F974F0161BF7D582D25FAD24820A08A4E1D43D214E8AE6B4EE382D\ -52C4754430628B26A4E5EC17FFD939A45C7C1EDB55329A20B3BDBDE7B62746D04A07CE7E\ -2F28BE210B6B188492719B6044ACDD221A12FE6977369FF0FA5D12E2A5F492A594992BDC\ -E86A62FF3CE6E5A42897830CA156E630EF707705D6BF171C250C965F5563E235E898BA0D\ -B9A30FAF:\ -B793A8EB1336E6F82E4CCBC6A2BABE79:B573079D57C8FEAD - -BC5477DFF13EC99549F3DBA37E83231F9182CEC72D1314BD587383E6585BF97CA9FC86BB\ -A7797EA49CEC4C09433946B82962FEEBFBA4DFDEC0BC60B38A9E142C92C0B3906B461D2A\ -AB94321860DF947F584E810D502F84097ACFF6223CF77801C59495ABB52EE88CB775DB7D\ -39D566B9C13DC47127A64A325D7AA12D9B7D63A272B92D2FCA91DF310CC58FFB5CB8B80C\ -F44B5F376AD8D06EB87C262456C10E3091ED47F85F6336F3FCE3BF04C2DB9DC0F622C158\ -0DFB14C9040DE592:\ -F2A1C03F2728F33CC8745FD021011F74D89F8EA351101CDCC26D5B164032E83BC7936562\ -88E124D597BADB78E0A1EE1DA1F2805ACEC4C6F5C45616465735362045C72650E48FE70D\ -8685A2B1F982C059FA7FA04E6FF22AE885BECC2D14F8540884AB6E0C438459E89AC8D4EA\ -C698FC0C516E59ADFE79800C3F49DE880C43E3745F9F3892E9808E24CC65DF92BCFB04EA\ -A60B37D752B73C5DF02EDD4805E5CB14398F2BFC0F15ED5556E653A4FE7643CB609AA7AF\ -839DDBB2772CB327:\ -639366B19DF1C6C56B84341ECF8DC970:874E59C9D25196C8 - -C55BA1C5035F6D543A356D3FAAE8E8227D29F3D5EE065592F980B8424CED3DEE76749570\ -8C0C720FE6EAC681146ADE443AF03055294294F138275D519E3466D698D8B48AC20164D3\ -9587DD97B26C1B6853B5B274183FC73A810F00F3D748B1E96E0E7B10DA3147DD917B314B\ -8DB75EAE7DAE87210D320BF5BB3E1A44A66761F91235BEED601C87EF419A4F18EBA54CD6\ -634454A5BA0675EF68F22A7DE5592D396A9BCC181AE411E9452F9973E4CC612F72F38CC1\ -0659E477E4293A46A4FD65D6:\ -66F3195F85BB50C69719AB217566E65C682D5571AA5A6A964FC013FCD12C0462124980D7\ -C8E423A9848BC784261924A4B76B8D3D56F2B0E5EA6BABED53C45FC11BD34B32C0AD7219\ -77FA61D896275584EA4AE3587101A5CE90DA4B9E874C1EB239FAFC0DA27487ADD0473591\ -5FAD188519B7C0451BE0CD042944F3E1BDA69C4617A6CA98D22A62DC6F1581983EC1A124\ -E76CF2AD611D7697C8EB76259C679917BF3535A1C04F53082003634F09111FA8467512D1\ -D69840BDA1A1A808B8664A85:\ -AF36BB2B821552C3949B694C33A04716:BCBD3B723C5FAF64 - -F8F640858D8A5169CFFE6F222302138E35DADF658FA53F9610C4A115F0460E9F44CF0259\ -AAF63714277B493E94FABD920F22E2585D0A3AE55812751A54D3E194E733FB14C6260677\ -E1D8B46F94B69E31B83F6826A93B6821C3F3CC6B64138650CAC4500447083D66422EA346\ -2D978FAA70A5D6369DE9FF066FCCC8AEAAF7C39705A3432C8F69D67179D92893CA230E8C\ -B0FC559E0CBDFF0AFB3108603C2A9786E2E7F6BD965F1098236D9910BF228FC8733F1687\ -27A209F57E7E4C6AF7EF620BB158C864:\ -4CB818690D084522ADD573C3ADCE75D50A65342D16C2BAB23153503E1D163B17E085EE92\ -80DC5C1D19B041B1D9ADC43D2426FDAD9B11B21CAB5E3AFE0FEC9CF3A9117C47F39066D0\ -041A1B7282E10F2F1791E7EEAC1DE2AC70A1A12BE2C646B2113F41216B5DCF6474B9ED8C\ -3AB2D1BE23A5AB533699D876DFD512661D6B18E9F29376AC0A0B12D7B6B2231EAB5D61E7\ -F7ACDA7503FF8E58E320980E83E877738B749C89C626FE24DF12089B973E50815EDB143F\ -21DFBA48C0B70DA7C1DDC43233AEEE35:\ -1CC4ADA25984BFF53CC86C7364278440:C9CB2BDB19911DBD - -BB97677E03C9259E9096A6B03EDFF049EF942C5FFEADD4C59B8FCC713E2F42BB547D58D9\ -487FACA73248BE2C38DCEDE9310B7844D68F3D0EFE4E1925433476D1618769306A571E2D\ -4768715398CD560B52CC492213F8BE3DBFFFBF35877061BEE5CEF46A8B8D43FAE2E41623\ -F0DED34DFB8DDE42D7492E75F2329CD4C17A8B86D60AEA10A8C68078955004B8CBE4BD80\ -E61FE9B01B9CA83EB5D902819D4A6D8997B75A7F1E86CABF7A5D7C8C44B93B66F8C80D32\ -A7438900740BDC2F7DEDF4B6E729FD5B8A1C8D5F:\ -B20E712CC5B0041E191ADDC5083A6014104E8DC5021B477CAA5AFA6395B7606E68640FB9\ -EF5E208FCF0515575BEA9C49FEB32749FEF89EB579A869DA3213F5DC86A4AE12CB02BAE9\ -D2F45AAD2B5FDFF1FAFC57AF290B70E47CD00648ADA75BC476D7E048DDE9D138133F081E\ -AA0C1475E0D1260AC0184CEAF6F99CDF5140CBBC282009F72272374E946A26BB2F0214C8\ -D7DB0BF7676CC582C8DB8D14048B99F7C99F550A4B6EC89D1B1D4A067591FD411D206878\ -A5F413F0A3E67671F0FE340811D6A77D55B6096D:\ -37910B573950EFE3AD2AC0F3229F34B8:6DC3FCC797E8B292 - -0BDF3471B6A535F918863F7C902519F33BF9A613CD5B265C20A4DA957AE43DABA8185A51\ -2C7215D58CE22B24567A986455AF60FF075232B9E540C6ECBFA71BEF3CBA65B275AA1A74\ -C91396CFEDDB7E39D2EB07C407C070CEB3486AD025295BE09FF74DDE2F1DD062EDBC294C\ -CFF0B0B3DA798E435EC727AA17E1088B6F9E2AE415A19F88A87F38B366EA6F3DD01BB05F\ -D65F73F8F97474EE5985400C25CECCBEA9D4F0118F81264933F6A61C307D148C43853C0A\ -5D93DF6EEF2A2206079850A05E08EA9876BA4F6B202E810A:\ -5D5C57860E0F0AF71142FED28B1FC0CEC703D8746AFDF5F93BC9B80F4D0A358A3B74EAF0\ -E128BD14A14A4F85BCF2FB40ECA5083D60473FFF6396C8C718EA44C5E64091F6C268CEE4\ -33D81B139E0532E7684CE4D2392B32383731C04829916A2B73F9FFB7D4BA1B9BC95E9D5B\ -BA4112FD0ABBF2BB0A3C5CD06FBF52CA87E91EF399E051309230BF61F84CAF9476787B59\ -10EC491855020A2838D19313FCCE4893030988162A8873A559522F1D4FA7BCC82183350F\ -31D0BD8CB4C846C72AACDA246330FD4E869D900004A5D655:\ -31AB675C93F77A7F5FE7A829DACD46E4:9200A442F4CFEA07 - -04DF7F049025BCBD7206B4A12F7E8B599C74A616A91A7B7A10F148DFA5DE56AAD4DA35DC\ -9F7580151EEF0F87FC3E630136AF059FC49AE77AA9809F7019ABC9A409E8EA5801F50671\ -672FB20D5CFB2ACF5B86C7FCA4805AD6864FA0062DBA39CCDB369FC7FC5F19047206A4E0\ -CBA96D0202AEDBBCADF69DFDAB7328FC40DA82491F429AA770E177D775F728FA32AD548E\ -4614162F84FD2EE5B8BEDA5BE1EF85460C4665782F44939DEB7571B6E2598EF78BF0661E\ -5D4E6DA2F493C1D0F2E6073302A19C26F2707BDE2D5A6936CB4F9F6B:\ -1111C0D8F2C9577D3707BC247D460104ADA84F30DFD8A8EDF6478092832F2E35200445B0\ -13BF16A419C6D231A66F34C76C4037C62C377654CACCF9B770F7339CCEA0DACAFF7DFC39\ -3535293E8B347DA29FB207C369853A9E3CD444C67CAECB7AE4DC42B60F3BF0EB2ECEC7A6\ -482F1BB767300C539E8FB9046B31A267D1C9ECBE997EDFEF4B46A0DB501F4FED4F81C99D\ -C15FEF56D4A7ADCAD808F8C6B16A4F62CC0A4C39F57BAEB0914F829E1D4E4B72D93D8167\ -BC3CAC068C327AF3D7C887B65B3400FC4C6E6400326945F7079C6EF5:\ -EB2BC3806990CEC6A01D863E1AA28056:7056216A1187E1C8 - -963524B3D92412DF49F8DF7CA10032FE6C56ABD03866ACCAFA9E45FDBA070FF683A52960\ -6900F1C7ECD437B56A74390858E4D3276DC8DCD04215470C0AC21611D8EC1EA9EF8E5120\ -06D876420F139007ABEE1397247BEB37DC37CD237E3909C75D576D8D37B5FF9F7B078D62\ -79A3B0500F308F991256394F78B7616B28CC6A622A98B43A9531BA25917F6D7BDFCA5FA1\ -9DA4F372AA871C7F253C065A4F923E734740A5534474B5B661164B00605430FD112B197B\ -8570D27A3B44A4C367471FC58F533146305CAE20D15DFD9539FA4C6920F09F73:\ -36FA83EAE79BCF08ED631AFA6C0619ABBC6731051763B61D2EA51B5D859E5069B0FFB480\ -1EFE8DC3EA79D9AAB849B98F0DC180C3A7BE4237A0283372B235553692A926F8C20B9466\ -935B5CF7254496FEE811BE2406563345C16ED4D37A1609683B3216DA5D01CEF1E2C0CC30\ -537AC8A9ADB668C0A8D7DE1EA14AD9619A064B1D9C11B8A224D76ED68838EBCA0D323D80\ -1E293EB2AB9D2F64F3C1B4588CBE074446A0EFE77C5E58F3715691FF50056B047444784C\ -154E230AB3C27A36DA7E61DB7774C9B402536013DF4DA7895E51AF1933A458E1:\ -7FD1AB8DDB8343643C4DB7D90BE1F9C1:F6CD6CE2D5F1DB56 - -C1EA094DE4B8DF3E530F4E75E08DC4793EB744FADB50E94D0C360CA08FD184E5B6E8B685\ -489335C6173CA117F2CF638CDCFF0F0E3329C36125D8780F4589EB76EF76AD722A359C84\ -632865A5ABC386F838EE6DA8E6DD96B6DD53C3AF3EF08315B71E53E442893EAEEF6D0022\ -AFC7D08DAD0DB051CD709608ADF4CE94988476CA95EEDF3CA63328B0EAB1211082655417\ -2E3F2ECE07C25C62992E81985B9B1D9E3186AC83B167D206EA7B180A656BB4A8C5F09DE3\ -9B2ECDBA96E1354706449717BF720E9F756FDF4074FA9F5B3C0016E32B94AAAB9484295E:\ -E66888E7F4A179F83B178AB7409D2C82E014922644F2276D4C308EAEB9A9F42F4062EB1B\ -DB77EDA72C4EE499CD970F1583F284523D375C33D5AFE5264220339604B46FEC19BF61C0\ -E7B07F7B710815801B02A4CAE2BF77F28A0EAAA026D1136580FE1B8AD1B1C40DB1A23FF7\ -878531DFE96B18EFB5CDC34198D23A22F005DD7DFEB91359DBC3BCB1E840A71EBF85DD94\ -663A906C315A1EAEA2E5FD673BB56B23B98D2F54AAF3E82370D75417DAA68C05CDFD15C9\ -592FB9BE87B5C37476A2559E56C4D95834C48ED6B6B0E4661A6F8017A358D0DDC9FF3080:\ -F674FCB74F8175532C3B888AA1F685A1:FD402E1071C463B0 - -47F823E98A8F3DC6E872A177EEEF167E82D23862AD0C28E8C2172EE541F28863A5530EC4\ -2EE5E6462A467BAB8372BE75990369F8FC299C13729CB508332906671E0F8BF40A82E865\ -51E9CA7FEB3E0FCF8BDD5EA5539756802A450D09637978E91A2DD4843DDCCA8C63EDCAD0\ -2B3AA18744FEF1C78D9618686E4B5A84E00069328F1988CE852AC7B17E2DC24280502154\ -D9B1604654CB54EA5E4D069643D6A43D988555AE9CCDF057F896CDB600ECA135406B5115\ -8694ED6C8BCC898E2E4335A9432157D306E12C77059CD3B296FD9C9A225719861D042ED7\ -26BE7302:\ -42300596CBD9EC098AAC697D227058DF9A88051904604063E95C509F9F03869C68AAEC10\ -63701259BD652E9AB275F07BFE164057367A74EED02C72A96B3673ED0510B782E6F4603B\ -ADA717221EDF098D13EFC76A41CF6261D36C64D7B747303B601B3114EA603F9BA42C12C3\ -B89642DF4AE2797569B8798604FCE8BC7906F09310858209A4F678748610DB9DFF24BE79\ -D3D5D41A4F0A449A7EA03628959E5D44B801048BD685A7541D57E9AEFD215D45227276BA\ -6B737908C2AB5066CD3FD555A69729B711ABC683E7236B3D0D82F112888006D30CB1DDC9\ -FD680FDC:\ -68101E5C1C4C16FBD08F90DD040E222A:F2B05714F3B87180 - -1D4C4CF8F819F57243A3CED7F2D8A284AF2588B0C808141A698C1C2C6B7470659344245A\ -D162D527A3E221AC8822668541D10A536B015E8AA35268321144D6D84A199FC147E12028\ -A3DA9171E8705CD65A54210ED4EAE211AB1F864383A2A9AA014E62ED69C60DC32B540126\ -71313B45319CAD64B0B26DDF9AA48E5D0AFBEA3EE2821459CBA5F4FCD798A8647526CF36\ -55E0421EAB46B558B57646C56DF3F6C62B92E8BA3D818811CE7BFF4975AE434B23E095F5\ -942827ECFDE9954C6823FD5198E0002E189C63006914672B08A61012FA7A37A800BCFB3E\ -C845D179DC210044:\ -1B98BAFD01369C2CDB5004819CA0E2075860A4543B1A6564B32F097C382F944436065859\ -9A71C29CE4791683E436DB052DAB361A68D6DBBE3587AB2F6AF60A102B59FB62DE152DCE\ -0737B968750174D95854AF51C95473D17060082051DCEC1766DCEFAEB2B0754D9B95980F\ -143DE1D6676DEB9FD6EEBD01652B4166072974DEB8F26CEE33D918CCCCFB915253797984\ -5E86428145E9225F69BFA8FDFCFFC80CDB0274B48522195CFA77F33328E472FD767B6C3F\ -F39B66CC42363018E38CFE221039EE5065B7A64FEFFAA441B6E87003DF7C60790B9CC46B\ -A6ACC7557609BD9D:\ -CE1972241FA1F27CF1AEE36A51432732:4DEDE955E0196744 - -2089A7FDB2728AEE9D176E603055E77ADBF6861C98A185B642BF02C04DAB8226570F746B\ -66C1AB8271FF590CC51A89E93F9C6108EA593F9135AE64CA62C11E165924C4734332BC34\ -C090E7383E7E1108392CBDC103C4BB847C443F7951F17AF7C610CA07889FFCB27B40AC17\ -F8E0594D6DEB391E3D6132C3998CF6F707CDABC13CB702F7F0E97F266175F0C1282682EC\ -FAC95C8A709CC3092010D48F58DF41DB72E04013C5B5323155CD2D9720E0D40B13BEBB08\ -1F97310FDEE5D00FCD7B5E5C7FEAA2A4FB756916FEFE38DC0025CE7381D83E52DE05B09B\ -1273FE3B16BE372DF94FDA35:\ -7DEC8416E69DCED8D5B6CC3B831307AFC33FECE9A0567DEE0A5999C804CF01FBC19AC1B8\ -555223D3DBE6CA50BB096A7A87ACAB5A5F0ABEB3111E98FBC09897708A18481B51EA78BF\ -E3CCB5AFFBA10F4B980E313E3ABE98EA7E13E38282778514F70D16F7940B6E382AA77BFB\ -4044D6F8EB9D95DA97A142DFC876746FB8338200787D3FA27905E57FCF861BFC8478745C\ -7C2DACC162115E5AFBC80917ABC5358957ECBB65B593010177CB1CE947235A94721541F9\ -0349011188A860D1D23CDD64C3B8D101A87114803690788337CC075B1D37DD21097FC730\ -E528D94FCDD4BE1E9D8FF00F:\ -17192110F1F1B1279CD586D5FAE45F4A:A01800F5D6B63103 - -6AB1E72EE86035D1E1E92B3E79DCE8E72C77E3AE2C4C17A345CE25C373C5B95833DF02C1\ -F34ED2FAC60F6EA77762C8F01AB976DCD2F24BD46136314AFC6F1336032ADCBEB1642A7B\ -46C8CC6B122D67C1EF3E578B6B4AADD9CC655FF37C2D7B5CD3878C32C3D5B0455A2C1DC9\ -FF743EF2ABBEFE2D8214D48413032133D821AB161F300CBEFFF376EEC0051D4A769F5203\ -E87B99DE52EB687EC12D747F2E55B84FF377F88E3F9B72900BD7A8B18E970FFD41BEECE4\ -D1978F25411B7EF8991122C4B4444F1FEB3E88A89E48B3CB721A62EAF0784CA549445852\ -10A91A593E2E3A02063D1F76BA62B997:\ -0D6121F6EC196C1AC20C818918A2F2683877EEE0189D94511CDEB2755D203F75851FBE49\ -8818C6013098FF6200E2262328B8084144CD2782DB5BD5C51E64B3FCC2F2D789B9CE3899\ -29E72BB65A264EB554213AB772140D7BBDAFFC818B2D6D0BF4ECBAD5E984BC17C1E7EB6B\ -1D435B92B2E1C5A8867233DD9534F3898C7F64E1DF8828BB765E382F9E2A46B5FC9C3802\ -2E1E5C7D09E791E187073DDB688921D22172AE4C972B1B6F802D4FD75A997803B9B87E9D\ -F2CBAE978C3E6E1FF18AC8D56CDEA3B9B1E9DAA74EF3FEFB018EBD9902AD4ADDC67BF010\ -0D9335569D6499563010DD12DD3E23C6:\ -190834E408E085E8CC3793E57146FEC8:1DD4835D46E42E15 - -12025BA46EB9326EB77DD3729B51E1A2E845C031B89DA66B8D73C02AD33263522AF4B92C\ -B5CB4BB254057012033B4D8A147AF3DDE90B7951DC0FBAF0C98D4530A367E945D6BA4C54\ -F57E9986A2452AFDDC8D64550823487168529B5D970A6CA0FB5A8B73D4E9576EA334E418\ -75DDB2955C1E81A8DBCFEAFE660C9A594AA169FDC78AB03783738175B4C974E28F8DC593\ -782C9AB44DBD49934C3AFA35E12A8ACE7F02A469B1A7847461D00B85D34BA01858B624B2\ -A50F192DBF4B7ACE9082FB2BD4B9E4C39CA49300FA69D3C1755B839C90184F7BFD322CEC\ -78F8221B0A9BAF3845AFE7447477EE4B1623B384:\ -6BF880E9AC252DA1FD73270B64018ECCEB005CCC89AC7D48B48A5E61F15D21F5524B0057\ -136BB21FBF084BB16B1E5D09C8BF6082AC285120945B63522255C943D137F76804F5B6B5\ -26459E9FA64B3B5CE1B2AEE7BBF621B864F42556E0251FC8829B536F565E929B5C61CB72\ -EEE11961B52A956E4B2D3BA81124952F6FD8B4EAB170544D0ACDD2D97977328549F851E8\ -9EFFDA3057D193189EFA71B60100C4719CF0D83132327828C48E452ED59EF0709F295349\ -E1141B003BC688800C86F3B778A18678403BA35309373967AD8B6F5B225B85D2F0C16C1D\ -5A155023A0010BD0FE1EF31139F18FF8CD9606C5:\ -B7029C1C72337170854CAEE83C38A031:DF167881D0D693C5 - -79E97D129AD18FC0B12C3CB00C872794D8AA7647BD743E507E0A67C0434BC32E58AF6F72\ -0668DC6FBB1CA58A0774F01AD16AD46A83A6A493719DE8D88B709632DD1BE56238F6C95A\ -599CC92B9B84EC18C43E2598C752BB9E2DD1AC58395A8278876AFE7F152F72934B903FD2\ -3BC1F76718A3518DB74DD8CE3E41918E62133B99742A5869450B09854ABA3E9466B7C44C\ -ADF80E126CBA30CD6117755701F6F5FAD161159425B197C4B9804B5A7940627D2A2257CC\ -D7645512002C4C5B09BC0DD4919AE3C96F70FAEEDD4E48CBBFAA2791109F2288B641F3AD\ -145B37EE68EA0CDE249F1669604E8B717A5D247A8BB25AEE:\ -7C5B40D0A68AFF288C04331EE8EDC20CCDC98512858E54C8888DBFD550231D7463F1BC49\ -3C23C9FCB93EE65F025ED0A0F470DA7E15A97B900F64D225B71D7C8CE6511A4B74EB0A7A\ -FE7E4EAD04517198635BEB48FE2C41D6552AD5DD48936CBDFBC9CDFC35248AF5BD85360D\ -D8A3BBF4CA4E87D6E345094CF9AC5725E32736B2AD12C0FDB4E9382372FEB011F6F7D222\ -175A92698D1D74B3795EA05C99DB64FD6E439B5DCF85859CB4D9398072C8843BA1D1F650\ -D5F2E2E2BAF2F1C3A66A10BFA879FFBF6203118771CF893982AA710C67C2347A8ABFD74E\ -B814400C306BB95458FF3EF850DA5E0300A1ED39A1B5611C:\ -F7430DF9CCACB9230AD4BC7AC46B52F0:F9059FC6D69FE7A7 - -57097A044B43E7A3E111EA95D9111CB2B7440A54A834416FE02A4F34C4C8C34741CB340C\ -F66750A9683E23DADFA23320EC4E0A0BBE692A8A2F816863BB078D7FCF6C056D5F2E8169\ -CD639B148A779618C32901CF37B85DEEE483DC0F30B522504070602CF032EB17CC48232F\ -86FECA67B63D06F0B25C717A62676B26DE840AEE70D39432567EA2868ABBE2EFEAED6E41\ -7BB02E0A2E9C30D7FF850503380343838E7EB155E1901547BCE29254F27DD1979C2608AF\ -0EE05696D5F3D3F678FD457AFB048E41CA852129B5D78A619231B60DE4E19B60E2F699CF\ -09E832CE02EB63543C02523C092B34FCFA10BF9BFD9E32766E412A27:\ -BEDB29A971B27E7959B48857AD56DC1FF2776EC258646F26C935928D4B1F0B874F0F34B1\ -6C5E1936D6F5E2263119EA967A9C441F016431059CF8B54CB1AF52A7BBD1D5F9C378E302\ -FB9C9910742D7E5FE8777F2F5D976A569D54CD54F37524A0FB9CB5BF5EA17763171F52D2\ -C823C1E12A99C2196C45FCB1AE3FF170B05D5EBF8EDAD51D7FAB7B6357B84AFFA19DF67A\ -DAE39C964CAA610889E1C79218C38762B7A4B522132D9F9235CCF8F8D810BC9D7EA44C77\ -599DCFD1404EC6BB219D1F1916C0685B23D79E57A280A1D3FF5356F948F15889527C4235\ -8A137CBDAF7ACD8750D5D317F295B821E450C7114279FEFFAB4121A7:\ -500E05FC7472AE721E0B9DF4629EE350:A791B3A28B063D6D - -AF72E9E989D375EF3D4B16E56B025B0B5E3732337894E5E5AA08D9763E905C625B782AF0\ -530E2E3C8BF1D3F336BD13208FC0A1D7F0A8BB91E3FCD7C9E45541C29809C8F7589042CB\ -AF994C56F5F96F10E2140AF452D376B5DBBA2C72542E1E59D63C99E08334ED6A82605737\ -236D4AABBD45A92610AF0C2852B2A63CE0A0C8D1D281D1002C8C37942791684475B10C1B\ -B81E8CC3E7CA9CA1BE881113AEE41857F25E5C6D404F903E93F16BF912D767ED6AD2604A\ -C8AA5937303699168D8B034DE7B15F25DD25002E22E7DF90B636457FD62E83731675E32F\ -6052BF1BEEADC5E65F1B2831A2702B0377816792EE9DFE04BC6410E9C597B633:\ -936EDF889D6629BC65F387545190C03C4AEF91B9A8A13E4E51B02A9DCAFE990CA303DD9F\ -F81EF1C83754657D4C2CD8A89BB5345DD280376FF8996F2204BF1ECADF126D992172CF45\ -2A5999C1CAA455A0AF9EAE12D8B5B8CB4992F215707542625DACB4C460ABE2A97B804ABA\ -14F365C4A99EBB92FE4174A59D74C0D942D75F920E46264D3FB929C60ACE11F4982F6E5C\ -DFC8AE73DCA838021D898E22916333075268A29D8BABC2A78AE5E54BC51791679203B812\ -C4CAC0A4251224C4E509F6677FB140B557665BD85AC3B3EF2D204129A84344654D6AEC97\ -A27C8FBE1D5FBFA272AB20615D2B97A31AD82D92F6457BD8B7A35A98CF8D8384:\ -19740BD949A0AAF7A2908411B588E75D:D0CB88F836751471 - -5C679ED0A8FA89F7763427FCEABFF3640D680E74B633889AF857418D8142B83322A084AA\ -E7521A5DFFF2C8F05A345D05359BFA873E24CE2259F98B9F40615F3CFAE9736629C988BE\ -0949924060A5A85A59BA733FD75F53F991EA3D37D9C53C58C4999F380DE813B73342F427\ -39B169AA3568834F3D3A8AC0912AF8E3F116B602DE32760D5F1A4DBF7F71F783E41A3AD2\ -73E54B76E4A6439C9739210F5A2B5FAE2806AB5811D22B8F5B5CF68E80B2921F2980C285\ -8861A66619CDBE4BA9A3B2F6094C9774B5F9C07D8B99BEE0E4FE02E0082ECD24497236C8\ -621A413E2F3DEE93F38E98DE28B95B621E8DA964C7419AB2DB4FBB5ECF3A9637697D35AF:\ -C5C9D588A11FC4EE03A6C8AC33064C73DCA48BF7C3813EDB9495FE0DEA94FE7F60B5E491\ -E802A06CD0593FB8169230144BED6A76CB353C564DFFEEC8793F28E659127CC9F4C25D33\ -1A0718AA2A91B463A3A686DA4A037C4217EAF907B70916A70229EFF66118D932F1EDAE98\ -7CAF21EA174582ECD8CBEFE7A3CE1F2683B408F56A6855A56BB9C8CA9F8B334F1C9F03D6\ -8D69CF500C0AAA729D0E7D8C40B9199D9A8484EA45F7A483E8052DF531541DD3E354A31D\ -7B2AC271A045A72AF306163DF714438930D6B16D15A1E0132804DF1A94C2CCE769FE37B2\ -0E84E147748653A2F4F6EB228AE7C1AD6BAEEC853F17C1AEF07756C42E2C09AD84538D26:\ -8CBEA7813B209C17DE9441053D8CF013:DB8858BD18B36B06 - -CBCB57CFD5F6E8E9FD5F987FB13C1ED23EDF09C2929F7C01FF6D4B0AE61E4F1B3A5CED6A\ -CBEEDF34831C96B9CAF72C2551BF6011A432DD25540EDD5C75E1018F34846404A912F23F\ -580BFFFFAF8CEB875E7274021B5E2B47F794ADB79699D3D1C6D26E0BF46203C3D4422754\ -6056CC2708224FF3FF9C5463733F41E10804A4F05F8DB4B2FF72B96BB4CF240A2EF2FBDA\ -20E7C91BD7D4E1F7F322533A03F3368A88DD08C36F21EB76CD59AA5C0C3E2537F7283B6D\ -42F6D24B8979246FB8970B6705B755D5EDEE4D7F71DF1595F9953E954D0775DAE56F1840\ -09764B5DF00C136920F887F4D78E8932E671455F98280317FAC41C0F5050E4A1CBB7CE46\ -0FE75EF9:\ -E5F790088393EC494F34AF1B4BE73B63666874BF31D74D64C749A0DD067F6BEC681AA339\ -6CCFFEB2E30572C7F9975727EF566827E98CBA94093499E4F666DF3BE4CECBB861AE5BBA\ -78D67B6686690A5A5069D47B1D3757F6BFD28F734A06F9E37980C574D2975F0A9925CA94\ -88A11926DB59F3B00639DF25C3FEC100688AA640AC67C9788103A9BB85D53E2420AB3374\ -953F00D49217A1AB8883B71D46D361E245C6F0A5F68A6154DD94D8380FA853F6517B7162\ -78F3CE4C75ADBB27B9F774C2FB749DA9FF98E1E52FA2C0B4746502BF360E77B56E623667\ -395A59F4FCC2EFF4D1C2476B014785404F62AC1570C464BB0DBDB3A767A2D8105BEB8955\ -1356289B:\ -281866EA198A1CEAD6E334039B2CA436:F8E76A4A26185CE7 - -# MARKER: Stream Ciphers - -# Stream cipher format is plaintext:ciphertext:key - -# A few tests from somewhere (maybe the original reverse engineered code, or -# the BSAFE vectors that were published soon after? I don't have those posts -# anymore...), followed by a load of randomly generated vectors by OpenSSL. -[ARC4] -0000000000000000:7494C2E7104B0879:0123456789ABCDEF -0000000000000000:DE188941A3375D3A:0000000000000000 -00000000000000000000:D6A141A7EC3C38DFBD61:EF012345 -0123456789ABCDEF:75B7878099E0C596:0123456789ABCDEF - -010101010101010101010101010101010101010101010101010101010101010101010101010101\ -010101010101010101010101010101010101010101010101010101010101010101010101010101\ -010101010101010101010101010101010101010101010101010101010101010101010101010101\ -010101010101010101010101010101010101010101010101010101010101010101010101010101\ -010101010101010101010101010101010101010101010101010101010101010101010101010101\ -010101010101010101010101010101010101010101010101010101010101010101010101010101\ -010101010101010101010101010101010101010101010101010101010101010101010101010101\ -010101010101010101010101010101010101010101010101010101010101010101010101010101\ -010101010101010101010101010101010101010101010101010101010101010101010101010101\ -010101010101010101010101010101010101010101010101010101010101010101010101010101\ -010101010101010101010101010101010101010101010101010101010101010101010101010101\ -010101010101010101010101010101010101010101010101010101010101010101010101010101\ -010101010101010101010101010101010101010101010101010101010101010101010101010101\ -0101010101:\ -7595C3E6114A09780C4AD452338E1FFD9A1BE9498F813D76533449B6778DCAD8C78A8D2BA9AC66\ -085D0E53D59C26C2D1C490C1EBBE0CE66D1B6B1B13B6B919B847C25A91447A95E75E4EF16779CD\ -E8BF0A95850E32AF9689444FD377108F98FDCBD4E726567500990BCC7E0CA3C4AAA304A387D20F\ -3B8FBBCD42A1BD311D7A4303DDA5AB078896AE80C18B0AF66DFF319616EB784E495AD2CE90D7F7\ -72A81747B65F62093B1E0DB9E5BA532FAFEC47508323E671327DF9444432CB7367CEC82F5D44C0\ -D00B67D650A075CD4B70DEDD77EB9B10231B6B5B741347396D62897421D43DF9B42E446E358E9C\ -11A9B2184ECBEF0CD8E7A877EF968F1390EC9B3D35A5585CB009290E2FCDE7B5EC66D9084BE440\ -55A619D9DD7FC3166F9487F7CB272912426445998514C15D53A18C864CE3A2B755579398812652\ -0EACF2E3066E230C91BEE4DD5304F5FD0405B35BD99C73135D3D9BC335EE049EF69B3867BF2D7B\ -D1EAA595D8BFC0066FF8D31509EB0C6CAA006C807A623EF84C3D33C195D23EE320C40DE0558157\ -C822D4B8C569D849AED59D4E0FD7F379586B4B7FF684ED6A189F7486D49B9C4BAD9BA24B96ABF9\ -24372C8A8FFFB10D55354900A77A3DB5F205E1B99FCD8660863A159AD4ABE40FA48934163DDDE5\ -42A6585540FD683CBFD8C00F12129A284DEACC4CDEFE58BE7137541C047126C8D49E2755AB181A\ -B7E940B0C0:0123456789ABCDEF - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -7D0EBD8586251EBA5612E7F0AE1461B85E7D6D01870ED72CAE875737359780097099D507F3F9:\ -2E -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -9E10A6E1E7C66081EE6B06A86F27B31528029DB35C156E571A7A39E09CD7FDF706DE80056CFE:\ -395C -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -193FBAE8145757A70ABF7E4B5DA4BAD3C8208916085ED2462C901EF01FE42818B027A6E0EB2B:\ -FEF6A9 -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -EB75D7A79E5F7C25156A5A63FECD9A6A67F48B97448EE49C3E3311C940ECE6D317F7CADDAEB6:\ -547BD96F -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -39979C6BC7B8DC7243AD1148C1AC76899922F9759DF1988CE2FEFE0FF91CF7E908F30777BBC6:\ -284CD53FE9 -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -309D05E88D1A980CDBB341930F0086CB0672C85F37BDFC2CDC36D80044AF6B02E3475E3D2712:\ -DE8C6ABE0052 -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -F409D463A1293AD11F4021982B7397D554F504E80C3AC0A6DC5C54CDDD090309BE00F9213E5E:\ -B4D915156C6488 -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -F76241985FDD3668E0860D9396012F61F338EC7E41CC23BFD0B62869119560DC2A0604CB3C6A:\ -68B5FEF1FBC10AB4 -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -61FDF65602F7A63ADF57B05792F6C3642241EF46B97CD86171AED28D26D67BFD6E1E66C7ECF8:\ -EC498E2BCA7AC2BB9D -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -75258D597494A88866F4FE45B09ED2BE41D49B7D653539508B4BA1A3B6F9A08C3C103267D820:\ -169D98FB855CDD15E205 -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -9FD90A643014F30D5D2BDCCBC37212904F0AD69FB23637B0FBCFA2B6E61A2A7B8DD9B6B3A344:\ -0C5710A5843C9AA2C675BB -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -3E04F9E7804F3F8267B2F5EABF4722183BCB17266F81EBE3A3EE8B00D5C9A727105F43131667:\ -837C0042EEA1A15CA24AD014 -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -FA9B2426AF83EC289356B58006370907DD5D8A7C1BA887F188B7F695DEB96F3DE94E5AF4DEA0:\ -4B5509356362D35FA63C5B8C44 -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -80ABD7170971295FA8D525B1EBB8CE95829CBC9C81AAD2472DEBED0F087558433B84E11CE574:\ -3F6CEBC8C94447FAAF9CEC4E778A -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -0C3E9A53C6862E2121F3D089737FF54F96916E469BDE5A645FA134ED4DDF76AB41B569649A98:\ -E0A97B4D129FB0BFDCAB24076DD5C2 -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -A68686B04D686AA107BD8D4CAB191A3EEC0A6294BC78B60F65C25CB47BD7BB3A48EFC4D26BE4:\ -97CD440324DA5FD1F7955C1C13B6B466 -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -07001BC046443693F173F723638A685CEB7DF1CD61D4E93A52E44B914063903A578138EA0FD8:\ -31DE7ED3BEB6EAF9131922D06201A19366 -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -8C68C80B6A01A6571642966D601BABA39B1644177C7C3B35A9D91669F7AE8D22A57308D05F1A:\ -368C7A9662385B308F696A0C58E5E57E768E -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -2A0BDB20E12B4BAA2E8C3D40B333B55ABBD0A156826BFBFDDE066F9D73398841E4A38CB78B5D:\ -F745ADBD90EF249FFC14183A9E20F69BC68214 -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -64ED1979AA8B458EE96EEC995E4EF2894DE0D029B1C0DA497A9BD7A81ECE4A408C253E9DA074:\ -872DE53D5116911D916A947041D22A0D50B7A5C1 -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -DE31449883D5E651E6F889E2F18C453F06276D13999607FADC393A2619DAF7E2182C214872C5:\ -27FBBBE2EEC453C3D5970A6BAF03FFE299EED3FEFF -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -81570047B8BB9E5968B15F9C286F3F2B6264F8BCEE5C64A698BB2F35B697E32FAE6372BD07A7:\ -1BCEBC37EF602F758CDFBFA1F1BCA61AEBEFDD79B179 -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -0D8BBBA8FEE3CCEE8CBB3548F52AA85D9FFA58E50655E19FFA31DFCC97F65116DA34BA775559:\ -6FBC9F1E72F7E6EE8D233C4B27EFB98351B5FEAE803732 -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -FA087B45D61566E102A2B099CCA04A499191C54BE21C67C17D40A2EE81B0AE1F525AD7E61BEE:\ -852F2F3CA64B0C256B080A577E135A54B01D9079A8785EF6 -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -0E79E4BD49A8CFC6BD1031FDB6DF4BBCDB96D64967AD1710C3BD96A8287064B211A984C82C4D:\ -8EB43FD27CF769A39BBF2FE02B9E4C6ABEE996DE591E5FC521 -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -B420CB807A85D5EF897AE3EC7C7CA53EB2580F11B9C815DC6870FD3D0DAEB8EFE5AA28DF2E9C:\ -C3CB4048B42619DBB1A16373749B8264960CF7CBB1EB6D3565BD -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -92762FCEB9FC304D2FF7994AA435E4774FFC1D97C9CB36F89722AED507310EBF028EDB0F6323:\ -A7F0BD928BBA925A49B117ACDAA68702B4D4342F8FD62503319BF8 -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -978D46FC073896B8875C7D4EB2F7EA35F58877550071F056584DC59E722E850E4E0DE75ECFF9:\ -3BC2C34F2653E210A1E15282FFA01149DF53AA6BFAF5FE04523DB614 -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -AE6AFEAF83A30B85D865FDC86362F95642E7A9CD157DA2F12ACFE9A718F3FB996C1C222B2432:\ -6538CBE80D306CD6AB1F027E4EFCAB804D407B00B281240B33A8C7F40D -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -D4192C0818E7E4CA10AD05FBB3181C41C4D0BEA1805A883708FDE321B70D6C7D8B5601079D7C:\ -B7793A33C33FE1C3EE024A7EE40BBD13ACEB02049159717F35279D67F730 -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -65029B1DD806694E4AEF4B63016D0685A8EEB682E86353C049378EC540BC0F4BB682740E3534:\ -0C9856E6B845A33EECC0F30BF1974DB4DB088BF02314EE48FC369B6515994F -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -F33562228D9339F23EFE694E45A6A5B4457F2865061384B064DD45321D399FD1DB1C3CCBE64B:\ -CC26F0F11FF7759081CC87B0296E46E1A29611FA042C0F09033F12FD06468624 - -5EF2DE98C92BAE4C15CC2194D37ED3558A44B6FBC7EEF695E85E33DCE1C2CB8CE0779A73D6DC\ -CD1B906CE940A4FD19C4436A7832D4BDF5EC87AC472BB281DE038D3A20DDB8791B2E12EE0B2B\ -3D273F14D90EDF7F07D32E03D74B261F5E501C0D6DAAAEA6E2474379AA983A54BBCFBCE08E6F\ -E0E48959F7DEEFC0CF9FF10FB67DEB51F78248D650D2432BB1FECBAC3347C541BAFFDF0E7072\ -89EB0CDD8C5FE960C5C8206D3DA9D4A2B43A9A3D2F449A7C2834C152E1A07DABF6BBD7BCF931\ -E238BB759D4005E540612A8F7921D368B906586A06AE9ED078C509E4AE7678F01F8ACB681AAB\ -ACD3D644D9579AE28937405F59161E45123CC61385B1BFC75B738D21CDF690B5D041AE425D1E\ -D7C9CA20583B79AC7BD28135CE4B9C1012A8FB7A7791F3B016AE27872CFA7F7BA29D5E1C267C\ -B30E2E7238CDA5FD6BCC1C904AF236EF9E7A88EC71DB8700A7FF0BDF09FB24110B121DB825FA\ -F79FC7587F0D8853AE90CAA6F479F5D3E221E4C832E27B6DE7340850F2231AE13AFC8E9C94E7\ -3BE0F631EE0549622A3BCB2C79C7D6440F694C77DD66E9F98A5CF1ECC80EC3F7D0D0A14B6D4B\ -FC1BFA5DEC3743743F7893E94AE563217546653E2F75271B1CE5B3DFDC01B0A3A5AE6E4796B2\ -6F8059B1B35BBD760A08B48BC60323BA42C8224E7EBEF5C3364544AB3D4C8D93A7805429F787\ -EE5B57D85A570F05268B8FCADB24F16FD4BB95BEFDEAC40C50C55EE32988E7B15334449F78EC\ -A703A61260FAAE9F695715637732837FA0559B6B6BB602D55915B7E401E2B53151D3633A933B\ -786210794111073B3238D16CA7B14D0993CEB7F04A7EC1515B1E79F4BF518B2195A29A5F59F7\ -595CCBB04314535BA452351D23811E01CED3E086F2A6132294541DFBBB6352D0D58AC70AFE2C\ -187842CC606C59527F3EEF330FE4923DA3D0CB838C7DBEEA26EAFC032F3C15C80FFA09C9342A\ -8910A968412DC31247831F1C2CE9B5ECF365A84880DABEB08213F6EBEF78D42899DF0A21349B\ -B01ADEB9AB51B1C312EF0F5E80E03BDC84CA28AA4F662F7FEF874F8572956F44F49477092F45\ -E0254CD941B70964706677C50E9D0B98A6CF838FF4FF81E60E0CC4706F0701AD520DA6D6123B\ -F6983EFCA5F081AE9E548464BC049BB66C28551D79F8FF465E406A12E5605FD236C57BB7000B\ -DBCB52429F2C2CA5B257BF065CABD0B19D4F1AFB91985FA20248BEAB707527B40ED4B79CFA28\ -329B4A2A83018DD00665EBA2E4F7304D665BBF4E05A179A0C0D78449A4A72493390B7DA66F2A\ -0206B8655714BCFF0E5804CE02EF3B718A14F7A1882EB763701CD6064409B545303F54736599\ -59F9219D5AE51E978525D1D564DDD6A4408D3E47AADF8870DF2B1AE657B1C077BCC231F70422\ -FE0BA5E86A7C82AE64A6D8739A57EF629C7D4BE277E6F5BE859F17AC4D960CBD09B13856:\ -FCDD62469810ECE85ADBE33A4D967BAE4FF6B63C6F0D7CD6116228D7DEFF2F741D7FDE4DFEFE\ -48DC89046222B23EA184B1E15BB70C2293CD25AC3C047BD0B53A246A78DCA3482E752FBDECC1\ -6104C9067ACDFE811D3537AA7AA750C10050A6746DE68F6B543BAC92C42E5F8A946A2CC843D6\ -79508A8FEB5D1904C5E61C151E5899849C3FE54700BCBBD009E10824953C41D367470690959E\ -951AD644D05999FC8ACC64A61F2889794235403EFE4B55AECF2DCE5EC6ACE52AB1ECD8B8E931\ -DD8F05E783CE446DFD41D7B4456CFED0E54838E38F4CADF51E33DED230D42300192F8E1B6D8C\ -7E78E5C94AD4C0227EB8AAC759CE436DBD22025D0B1D014898AD77902BC77DF45F137F51277A\ -C6AA476AAB193EFDFE0ADC781DE75050409A94B9B41C6EBC99CA065D99C5E6DDE5EFA43BF3F7\ -A011DB66713D44DBE5C818C29B89B37F2A17108D53DE0CE4D9FE3BF7480BB65E18B5531A410C\ -5060B0F16715D499C2FCB6B6C3506F1E6193B629572843888C18D796DD5D5F7C4A62C658869B\ -00EF502C620E110E5D9E2DB8729E4CE731925FE2F41D16A3B5A9B7B9A2062E96AC93A0F4A3C1\ -7988E46002EC10556DD0936444BFD2ED9C1F7D64FACB3439842763EA0D6554ECAE5515ACE038\ -7B1A96999D218C8F97151B0C9CEAC62AF1D05E7553909D789F9C6FBF0C8CB0921168675DF8A2\ -8A7A4A6125324BA9B5C5BACE51DBA568C25D77947D8781538A9BC667129C25DA915C70F2E0BE\ -E3823986BE2C3B0D84667BD0DE153EACF7A34AF495AF62452A2C3999886AA2F032C212DB60E6\ -E85A9ECEF1FC7EAC3AF28E4F56B0A432AE32A2F239EDD233375CE3C62F77D976FF44B4132779\ -189C0B2AB6316E057353ECE809188EFD7BFE1D1F845789386A860705BA66A9AFF09D1F05A542\ -C86C96083D1317C9053467621F6CC34469A0F61220E5CCD460F9144710571D5D920D70CE7687\ -CA0CC3838C1B7A27D915BFB071036962F7D3672D2FBD13E360980CB484CF9155ED528489A684\ -E4C69262021C9E77F094D1449E8D8F9D358B4DD8B4F7E4148AED8FC6265C1975675C67E5674E\ -4976A64BE3231191EBA7D379451176A02052D0A7AF4676B044414C0ECC075E9D67B117E225D0\ -669F5676ECCF3F2E3EE1A30AB100FF777CE9C51C78396051BD4D747B7B167D8D897FFA0DE5F3\ -1862FA55741CFA45E1C8AD935EDC6F734989CA9072F1F6148D133C09E6EB797A723DF2B45DB4\ -475AA127273A3977C1913860BACD285741E261750B2B7921DF53AE1F51538C328F94A3FB04C7\ -EAE66E1AAEFF01C02CF4EB6EAAA0D5EF2784414D2E3FDC6285B9F4713ED629F100AFBAAEFF74\ -E9F9C35ADE18142C4DDDBEC330AF3FCB6F3E77F05F2D773B6BA545DBD4BD13AC2E1D2B300BA4\ -C1614E779E761A9765D5C6F15EBB6A769290B3ACC8074761189F3DA0F3A4A804C2C3472E:\ -51 - -4F3657558B507F48C7E1C7D78C396B6ECCCD236154C94EC67D72A17E02AD38EB5719E50B558E\ -5AAA4A6364670A195AD3B932B1994BAA9ED914E11B939D92EC42DD4EA4F4D117FB286C3434EE\ -551884EA3CB4E6C83320AFD10A4BEED39E96E5D04257934E33E13296A18674393A3A5F23B6AB\ -EE2044322ABA0A4211F604B698FAB9296D86D2FFB41AA0AF73BE170193B486A37797819E2180\ -3851947EB4EED45AA56F0E9B1189A72DFA2690355220C122FF3AAA584849C65090DAD778E387\ -6D0E7461A459BC80CB334B3D9DF4984ADA808137DFD32BCDFFB7C59D7F15F239367B0C883994\ -FA4EBCBE89FE18BFBDAB6924F03FFE95C621C71D956809734B33398460DB4ADCDC0598BDCFFA\ -0311B4E35E570F89FEF167861CD57BB1A48764AE557CA475DA66021BF503E5EF5EB6F40260EF\ -2B8018916314459DDC1FAE820C492545F20F9A5F284A465DC1675150E7707F38C690E8FF0501\ -68EE5EEACD67DD48174A80144A057F5EBBB0B3A1D65D61AEF93532CC008DA66196D5B1200FCE\ -D7ACD48F2E9535A3F08D6CCB2F6E20983676244BF3F0C97CF22E496C99A9DCB8C76140C7924B\ -54F95A859C088CCAA8B3B925AFF6393BDAA9333346D1F3D18E6525C5C5584C6BA634AC465854\ -3CEE45121B5663FD99C106AB4479D844442C6577A28CA84C8D41AC3D05210E3994A793E238EF\ -A2797474D770CA030B092E835524B843970FBBA98B01C5FD64844EC271C2924B20AE17EF7EBB\ -472418FB9D31E6F7F065B40950536B697DD773F2C0C1E0FECCDEEF17AFCEFB8297219BB25887\ -0D32AABC8A91E4710B37723228113D5C9504005014D0358B133217CDCDEB164E02F57F30F7F6\ -316B5BD82255D7EADF98E27007E834E98A4AAE8EA0B42AA51B316C4D5201EB3F2CDC70A35D71\ -9A99DDBF0F4078598E1B5233387E20384932E4A59D9FAE8D3A4AF93D25BD5C18199353FBB488\ -D9996D44F0889C572DD74AC545BE159862352D3948EDF79085D812FA9CB1CB2A42A1AAC3E9D4\ -90DE90BABAB42B66C13618C18BB6606DB69FF9A737129F70C27828E95A8450ABF1F18B5C271C\ -0A48A63490BA622976FB7EA3BEF37A4AE7C6350E39A1ADAE2018F6003A7C5CFEBC7E0D934D01\ -9FC9E1F1187CAE86FD50CF003F08EB7F139078EDAD295FA175FF3F6E79FC015B37000DEA64AE\ -D28598FA4DE06EB62163B18FEC329C702F9EDB7561645143ED8027BD7863396F4164C632827E\ -90724298A24DEE1450A11F737C7B7DE56666DFDDADE45345961FE7DD9F95DCC7A5DBA76309F6\ -594E169B8706C21B19AFA85E312BA656078E7C072C125B3233C66A130249BEA9B8C33D501ADE\ -4F1A03747B1BA0C7BA9240C9D2DCD339158C52CB46238D09DCDB6B9090B797ACAACDA233AC4F\ -D5C796AA722F352BF3766C673060DBC7901EA9827FA7ACDB32C64E7D58966306E8959A27:\ -FD33B57D9ABE946FD81156CF3F6475849F742B7FFA9250B1E1A4546416A479A20C959E45E7D6\ -23279E762C85986D22B42F6E64C0F118994A540304E94FAE195691F858F77C2B12772B888D23\ -80344DB66003BAD5D0E305396255004C468A7290852B02C6E4A920C7EFB3B448E6334191A8A1\ -CF19BC3A70851FFF422C45B133555BA01BBE9D06D685665FC58A7CBCA76EF2B22C14504A5AC9\ -DD8BE5B4DC317B1E70E65194C04DB27600929221DE48D4B90F1A28F05B801580DC23BB79CA62\ -AE7B2FD9CE99D195A05776A7C779AF8ACFFA9B78F3C09B0036A875F7C837776EDC0DB1997C98\ -B8905896BE04A6FD1B408DC26926513D91A5E32BDD1E51D9E99284A2F32959E3282D4B8858EA\ -237DF3B4AA3A493D196734DC11362B67CF20276C48BB1CAA07CEB2FA37927773A0EE3F8C18D7\ -760907A1677A3C75B6FB07E98809C56E9D7AB64997CF6F54B292E56759E54A33132BFAFA5FFA\ -7183638A66D436E70616CC4A5724103A7FD3D5B61924A6B6DEFBE6200124EBEC929F61FCFF58\ -2766C2B5F78AB953835BC1FF7DA76701A0933A91DF9F2ED680E60EF410C96DD9C7E72C773DA3\ -CC610F80E9134A8075375B921A03FFA555C3C26A027543DC6DA55ED6F6FB6DB10B34075E4057\ -F74C01A97B9BC5A5B05B83A112FAAB2B975D3062A63534E38C9969E5374698BB585B0C470FA1\ -F74561C1CDF939C7E77CEC8A49F5667B08A6DE363D36B93FD2F719DDC27112DDF10DBA73CFB8\ -86834510E833A45C8835EBC19904D911FCFB10112D0E6E4F636DF88D9FE028E79F5A0818CA52\ -0AB3E9D4E049BF574B8B2F1C196E8A69137B497E11F3EFEFB750315254FB218411F5A7604FB6\ -BE3F2FC63F1ED170A1C53AF8273CAC3780C23974C98BAC1902754A672ACD09FDFBA2DD1B72B3\ -01A80B7F1EF004A08DA13AFF02F4AA8DF711480925C322D43EC25242D0FDD4420E200DF964F6\ -CCB4CE2FA5CD9071E2DA17B6A06492D99AB4E24810BF4132C1B73AE746D3864AF44D88B08AC3\ -CAE02E1DC44BA8AF450537B7C2642B7BD4731E14D3927729A65411851B76823324457A3A16DD\ -EC2D3B304E5F8CF9823E5A062439B5953F6ED9A7EF0FAF93F629FED8E71D024521C6AA922B03\ -C4267B964C65E83D9C2CF16067ED6EEAE9EFD3A3843085597A683CD80E91858DCF5C04AF5E1A\ -D937C4B4DB4EF30B495E873D0A92636AC2EF4F6A1F9A26A99620E6803C1BA230C50D339039D4\ -DF0E3C718AF32F24D80EFB446C160F8F5D3030172F924B8CC3996D454BDA5E958498823D86AE\ -9E55292D33E6E7ECC0CBEA239ABD10334AB9A3FB1763AE997F5F4764637C7D6137531E4D8EAD\ -4D05C39D825CFC3FB16FA17A760C9BEB4516563AD0C40AC607FB616E9845DF833B989207579F\ -5A32A29FB54E6D5D7FFB90FBEF64128957BEDEBE936293268BCE7FE0E8C455218B1DB7EF:\ -257F - -8554C25CEA8F0E19357FABADD66C519E97622F36CBE09828CB271DA5EE14DD3451CC8FD25421\ -45EAF13D7AD49A42B7092ABABF1C8796CE4B3C4A16BDA80FEC5F69049F2B94550283E5626B04\ -43F32FEDAA5C5BED3AD64E8D6C1DCD3C7C2C5CD3B38907653CED0D7E6BBB25686654DC0167C0\ -B0994C274F645F2AB1947C56CC64AE8E920C24690ECC1AC67DC4B95E69F321232E71A6B859FF\ -EE32657FAFE512B4BD33303C0838EF3E275562E09373A7E431E552489DE6284B58299058993A\ -44509F2E10B07B3DFA7B20103FB9497E6BFA6353C930A0F9D565A12F241697637E7ED81D1BD5\ -E609787F79A0C95C1B18422A42D7690DE2288F5E5C8E0AA8BEB5B3A68ED358E3196CA20AF163\ -C20316B8E64216581DDBE553EF330A717DABBE0AD1209B9A541A7BDBE70A22D77995BE26D99E\ -3903C0E251CBC7990AD08489431C8BD80AB62D63179EC93E5EDA73E46B22B4D518B8765C2C0B\ -3736817A9EA60C86A86A1A69BB7C3E2D05AE0AE4313B2C766DEA92481C7A7786EA82EDA96EA5\ -0964765A171D552037415A3D7F20B19104C7565265BCF660B4685B66707EB778E39B5B34D551\ -729CB39C8C4AD50E68FE2B988EA8F770749A336F79189D6B157E9F64D17BFE477F7ED5997918\ -C18E0CAFB2C7652CE554FAE70C52CD7A7319F768AC001C7C2D60C567D9D9A6501640544004A3\ -8243B4EFC37425A46ABA7BA98BDBC2CD7F106F69485819DA79FB483C2B50FFAF67EE27A4D0C1\ -84B20E98D9CD859FF2A336C1544745EF4EFD79A9906BC3B9D5B5E358BA1FDE3101D0B27E9F02\ -51EBE26EAE239EE8393E1DFF8947E6036FE4293253D223E89E7F6B439E1FA8C67A9440DCF5C4\ -0BD7744275E66EEC2175706046F67A55B8580A8D902F342E24A76509077AB3C2272AC4874E52\ -E15644A35A78D57C650692B297EBB6C9DA215357567EFDD6D2A64634C2F0FBDC39BFB6EF1707\ -9805A0D9C2506DCCF9C858441E2478B49030F0A741EE8303D3EDA6FE0D82EDFD38D5F66AEC10\ -AAB25AC72E39A46E0EDDA0AAFBA16F9CCDE84316195655569EAF463D2E046E3E9A2D56E78E8D\ -495BA69BF997BD972BB724901CCDDBA065491D7595211995C6F44644C63E275FE1EE3F2A6C61\ -BDB05E7223CAF113EBD060D9740344BF8FD878E820331427DB67DDF921DCD27C08C5B176B864\ -07578907ECD6A561AA6CC206CA6CE5F8BBCDB7CE3797D0111BC52DD1FF4082D6AF0D65001C9A\ -13F42F4F66CCC9079FCE07AE288EBA8735B7D983D8E3038B4A774DDA3A162AC943D27F8BB41C\ -90E14422E69E2DDD726819F613F08B1D2D7DC25634035B5BAF6CC0AAD642160DFDBF3B3862EC\ -AA88493F9153A5371469212FE7A223FF11A85C08D4D8834F2D3744F6975D06C9522505B0D107\ -44FA476690E9885D995777C6DCD79A0F49FDBB44ED03936A0F2629E4BD4483F94CA76DBC:\ -4BB0E901B9BE38A39A8E116C77C05704C8293F44D394ADB23B0E87AE8C66D9A9BDFD51BD5CFD\ -6ED04FF5366723074327E923BB63E200698184BBC24A47DEAEA92CFE39A9AC48F22A1E0B76A3\ -5B9729F8A14AC41B430FD4373B2C4D2AAA7560E3D60FF4EB63D1AE440C8271E3339C716B592F\ -1857BD63D9951FC38D334F75987FA381DDDD324D62DC9D1564EA417BEAE82B0F8D5D138419BE\ -02E69FCED4DAD1D4991DF70B701896E180ABFACCBD4CFC07E07D23625371EE0199D6C7BF146E\ -2987CFCE31EFEF4D6305682DE92015362FB1926822C672920359932AEA49C9969CD958742BF7\ -B436F03734B3E0B899A513D3B6DAC6A715633BFA7B30DB6988EA2E14EDE3095267BB5407CF7C\ -8B693A06227E990B256A3CF18D64FE3D2EA8D4D168B0DE71876F3A77F3563739C5A0754823B9\ -7BEB1B16B32804DF7623888D57E6877B2040E68BD1328A69A3F6F9F3796EB8300D53C68F8189\ -D93A11EDBE4608175C3D2522CB0CA8BEF0D0FB752EC50CCC7ED709EE5CE90CF44F788DB78613\ -692ACE14A617973914D9916D4FFDAA07D50673A5F0A60AC73031D3A96E89320C7A81A42D3246\ -D95099219F85FE5BA00631D833DCFDA19A029A7670F848CF16BBD271E64C8BD741DEEF9871AA\ -A68B10C08A64A3BFE2F99D7D04CB86A1F0CABE561654553131B3F903D420F2CE748068A81AA8\ -33609693C633F04BC1DF7BC391B2DF083B84CC9D4E14F3803E704720D7C884E5026861033582\ -D0E854D61C766274FCFB8C8ED428C5B9F2C8FAE0111611EE0A0278B72DC305033F51545744AF\ -98C6DC2F721CC42F71531D3FC8C0E003B6C9E65BA3588C42669BA65D3662160A8A6CD0B652F8\ -7FBEBA6F4FBD0499AA4D8B06B9B67F4F0144CFD8AB517C86B68F2D648E161029EED96979C24F\ -0C64D232D4E162C5EC93E2F5C8483920DE7FF0B23CE3FCB6E8675435D579031B36A10B08A4AA\ -F16B563DDC94C8C5C922D7AD8C72FB15070E00D1B9AA09C8F693CD179E8C3CDAAC20FE4CEC4F\ -14DE10478C419359A8543AAE601DF2C1205BE051A1BBF572E257DB5EF8C8659B6BA93683C76A\ -6979BCE9AD27C3DC4BDAC4122EC8FF7FE53FC651EE4B68AD38502157027F7741B30F013F0DF3\ -D2BB14764355FD6CFCFC855B838A18F06896817E9E1252E1F466408FE09184601DCF3B0EA47C\ -62AF09B84F890E5F94A8A6F94614E9BFC5A6EDFD2E7F2869ECEB8F03BDA424E2FCEB9FBD676A\ -3C051690E555DCEA6C124681D1255C2E0661B1023C15BF071B3EE3A8E8E6DA8DE8AEC78EC3CF\ -9C7A1C9EB23B8B706FD5E8703EA10A1F6FB29A0D42139D1D6EBD7EB145EA565ECE19A4485474\ -8908BDA769E9634DE30E3F06F3216D121A92323CA73374371012BE9BE82B158BCF9B634192A6\ -D58538C3208DC6DEC7A9BFA83905A69E9D6F78E2885499885B5FD8E88305BBCD2192216F:\ -D746FC - -72DA33B988192326A043A7B70419ABD6B89BF899D19E0AF5C1ABF6B3A2842492BA6D4F254E7B\ -ACCD74646BD6560FC87AD5E59B77750437045BDF17CAEFCEF0B07983BFC470A9F034BEC6218A\ -012EE7E6109E83849B5890833B5D2EC79A5D3570C7AF5DC8ECA37F4475A352FEEF4BD0C33F31\ -958D2E99113467D30CBCB9F6DABFA01D3728FDCB13B6ABC5DA6C7F470DCB2055DBAA0E779893\ -99AC345739674F4F4AB66C4D7B2D9F04DA0808848108DDCF1C6D70190A66FDF84D5B5F19FFFB\ -0CB28D47731EADBF183740E0E06CB33CBA47ADE2781EEE9A7B13335F4A7C629B2A1E808D92AE\ -ECBDB969659E67F93FE25E6A86EA9D471E5361FA961C35768AD89D8DA6AB16B9C1C4690C8AF2\ -3798AC217DCD23F77DA4F531CA9C25FD73C6EEDC174AC61B1D38BAAB4238AAF93A336DDA9C21\ -981EB80957059FFFA939D1A5FD2F6FA6131880E59C5CCB6A6FB73B077172AE85E6EB0700A3BA\ -09C9DBB0699628B24C8A50D57C5C6C8C9CFC6ED3B8FC8213BFB0D2277BE162E390DA561A1787\ -B6029A6908718A180046CC777087E271859C190C1B6F517EAE660FF7CB950BFC3B8E572BAADB\ -121B6E68077632AD28D27866D7A76F854808C68E69F3620E079A99839CAC76E31F259CCB1A9C\ -C04C05E2E74AB9323C619C0EC6E5744EBC1A22F951544D5B4AEC306D8921BF6FAD4E749A3FE2\ -5B7B8F206B558F14BFEDA34D29793AC53A4ACB9E519C05D0EEB9C22F785ADCA395EB0E7C2F6D\ -19D1C10FEC2A3EBA50A47990B64C108294AE6B26A7E3805E5599596DB55D2D820BFC27DDFAAE\ -C08970144DEACCA2544CB758EAAEA728B10ADC70686A07F4AE77B14F2D58BE107160D738FD53\ -A5BA74A1ACCFC1A7E90B888F397C4807BD347BA9739F2EA7421016EE9520E217CC7390A2C686\ -55F7645D1B8B44FA61AADC92FCA2DFAD3954E41DB3A15E1C7E529A32D6ABB68A636BE5538460\ -3CB605F6A42F8B4FFBE795F8F644588A27A7C3C406179C8E4128585D2980D51DDB831D3BE643\ -D180CA129C183337E08E3257201D77D56F84A8DB60582DE8941F70618DADA81C33AAEB0D9D0F\ -2A3C5E60A8042C329668EFAF8E50F72C806E2F17B785B355F2CDAB7E5FC75F86BE10ED77C982\ -34CE7881311A9639CFE5BE4373348922B0B4F368C376B8A20E04E154FB6F2AD6954A7B8FED2D\ -B2FFC94EFDDEB0BDE09EA6D64BAE5D670F4DD245E253F99341C1F80117598F9A5C404AAE1EF5\ -C8B225326A5F1E4B37315A328D635FFA212BAD1495AB583D1286439024C6C0C9BCA7AEBD4607\ -CA2AB18069B216E289812B847B33EF52F0ADE59A5A44AC63174DAA82CE6C1B80BC8440A814C1\ -8E5811FF086188C4EFEFB2692BD3C6B7B4A6438C61B29093E62666F5B760354DA1927D97E0E8\ -07D6885F44FEFC453A6397BAAE5A9F8BA53E8FE56895831D6B1A2DA44DFD3046881BCCEF:\ -E2B67D05FAE6CECFECDE72E33A41696FCDB48CC035033C1F53A8F6B4C1BA0824D7D553197FBC\ -22859B2B32BF2A636DE8F1999D54CB973CFF9D633D39F8F7C32E4D6248CECEA4222ABC898FEB\ -6764D4FD192758D14CB0EF7881C50E1FA07C0705AC4533B6536EB7FF6A430D8CD4A145E15679\ -6B5D280C5933F69E813E642ABD145E43A03CC1ABD26FD5F0C6430C5656998BCC126D522D5656\ -2DA04C6AE0B19293CB11E2A06765C64C18B20E5BBAED65E46807C0513E6BA36E3231A28B426D\ -62720278CC4986E1CF3F71C42D4F1CD45D7477475E7919E353FB498CF32BD81CFA4084BE21D8\ -698F2040BA110A32DAF535E1B1F4D6FD3A7278E55EB5314CD460B39704FFB019F1004176451F\ -029D473458CE705E62F2A461DC2EAE9DBA2BBEE77ABB320C6FAF2FCC5CE8DAEF599E3D379155\ -45332EF305D8386F34C5D9A2DCE8FCDA1A3517821B761856D777E311F918761C873DFF638D80\ -6967DFA28D5213A2C17DBFA0BAB947B7FDEEB4F6648F2F415FF09947E6E3EC01EAA96AE03C6D\ -07BEA5FF5599A47E23389A2D00577175FDA3620B4A3AC3C22092E8829CC12814976E38A5412D\ -8C8795C3EE89B76C8678FA6273C06F12AB9121BDA619948E1F2EB6D6C46844642C532E03E449\ -4CD7D89E7479F2B75CF3D1B072FAEC4E293B50E45DDE6936485EDFD091999899AB44059E192A\ -B81F6661FF98C5DA37C545980721C6741FD0CD84F65AD04DAA49CE4F494BE674CCE1212FB868\ -F22E81097E1B3D16C9EB43035979DE7FF557A5540A36E42A0BE4940280D3837C46115AF90F88\ -73AC0F26FC265DC0250FA0DC894B16CB77E0A5C80F4E86EF503DB8A42DCD9F800AB108EFB8CA\ -C4C3CB2683D73C1B4EEDBC3F80547C167F7B72DD0AED7E5980174124812AA97FF26F1AB6242A\ -387F8C5C921A93BBF6B132D20C3797035A131408561E5E2C51D7629DB47684D76672A5B508E9\ -A59AAB30C2E2E207689DB69F8F3D8F79A2142A8CDFD8D251DA941FE8BAFA507E9E8A7C69D6D1\ -6A272594CF0218052B981C0080676DD245F419276E9E07D8983F9688FC8CD9AB9B16756CABD2\ -1DD320A6A435EF40C4C88CCE50A98D79FC0EA58BDB4F11431AF00D4921B0A49995A9CAD78CB2\ -28A8274B7272E3F82671258418592D03008715A1216DF499197946B661293729DFAFA6239482\ -EBEC503B7836E4B7B20E47C2FE6BF62C845B9227069742B654056A4F31A0B4937F1056083921\ -25E63E82F9045A54799E4DE18D8010AB5E3E3B9FF008D494DFB5A2041A6A5B89CE72F68F777A\ -8DA398ED66ED6637AD105871A1BCD7679F55AF3989CD3603836E9636C8A1ABEF86D4AD3F6AFE\ -CB1D6417C7030CA8AC09E3C15E9C275477097D77FD32509B7643C5B96DD9F9213DE07A083B5A\ -8E5FDCBF4A41890D4D1B854604BBEFAB06B598D3193E57570FD137372DFBF983819CE35A:\ -48B842FA - -F3F1796F6C00243B96CF802443D16F213BE4D527551102892AA6BFED3FE95B1A4B3E0E3C52B1\ -D32595B83D7575379B34C36F4ACA0CF3D9CCBA91AC0DF206D9A98B39B48EC8F168FEE924E14C\ -D9DB1700333EE88992667774D31B42FCCA673A3C1A0F72473FACF463578619C8828604F056EC\ -6948DD3B6A12F7C92AF902F3F6C8DD2309D9B1DE9A2B83AAA8F3DC15B5D2B1ADD86077CEF344\ -6538F7CFD4469A031F91717A87C23473B8B6D2961484D675C0AA938207C326C1A98691809228\ -64D9E5B57361CF9004B613EBB2F75CAE2CA11D6EDE4944F54CD8CFDDA923BE42908EE94E8AF6\ -64CB9E4CCC86B31605C0FBEA52DCD22DD1827BB361F13C8558AA6087A420C3E2D6D7A67CD1DA\ -849456EF7CBF827BF856FC397B8F921819F6FACF26240D89D7B9365589240CA03C30B2FE3D29\ -B2E5889C683D6EFFF09F90385AA6B518AD5C0F581788D9D6F0B20FF8D2C05F16BC766C107753\ -07FD80FF2DEDBC64202527149547D784C7A97FF8AAF03820E8D3CE6D94FE8F4F09961BAB6ECE\ -873A099F49511A4F1AA527A0294F9D4C2C7CC13B66BFF754CA60EF76D0678AB6C247027C5658\ -506EA706784543083F83E6F11B3310C0375BA203A857C87F846727DCED355AE64773262F8632\ -58C77B8A3A8466283B5702C45FF6BEC024DF5E0D72BA36D81482A0B4E15EF0FE18609F925B94\ -BD8D42A9CED97E32DE17D90B8ACC07233F0A684FB85EEA4EB25A5F9F29B3B8897C8E735114BB\ -E4162869C1CC53908894A392F15B49CB1684A03822D0E02F1C89AF37BD4A22451145A97D28DB\ -88E3E85E9D17AC0BFAA8575676F4E132B20CC91C946FC973DB2B2E8EA35EF7B8CD1AE83951CD\ -62AE825F5209B1705A6FF0DBEF9D3D350426E5849A26CF767E44E9527D9DB39C7E19B79876CF\ -B38B26FBF3F3017671ED423FE20DF87A39BBA1463E894FC1B713D01E79488B4B751856D8AE26\ -75B136FCADFC0251C30FC472302368419452CE227BE74A3E167A76BF8B9B225A57781CAAF79E\ -FB924E4A050D1FCD723550205D04C17E4C865302F8C09CA68903D271C4A3AB420255B69A7C78\ -79C7411D6F2BFBC1E3EC555DB70D8536ABBC9CA80E620ADFCC00C088A910E686161DC9D6E383\ -C74283A0348D7D3C49EF028A549A5D9849CCED60064C25ABDBDAD3578013B4CFC4939A30FE1F\ -5D043E119CE8BA1B8CC67F23EEBF06C08DDB254693C3F66DA3E45739D284E2D797C3FDBD3517\ -830674EBBCD92E1C87BDDFF9C477C061BE575866AD1D6D81C5CDE36F32204A6ADC96CFB0019E\ -2A74742FA541BE8FB5F6A73928E5AB1A21489F8E385391261392A04241140D7EE97C57391B85\ -7C6D8599DA250270A2C07F3F05D64495F2E4FDFE7336022443343E7BFA9FC10077B2357406B9\ -68208775A2B0E07F657153B4AB3206EA83984EE3A5D03DAF44BF30AFF2F181BD2A1F02B4:\ -12E5CF2EEF42624BC53D8A0FEA029E604CC6D20FA927ABC186E00771A634C5002012D6AADD89\ -C5192C56B8E3E4B54DCF041056188A5671CCE981D4A02137DF7F40533A760D200648F24D5C18\ -BB08E3A694730EF165A1AAD4A117B8D800D0B8ED9F6AAC1D9850A0E12CE815796D5220376226\ -A5F29232810EE969E537459546110B9B747C1F0E441E59682216F27192E69C7034EDA3FD3BF7\ -B9F4D2EE0688A5FA20607FE37C5BE1051F5AC439903794F7C4F34C97E88CA61FFB46D948E5C7\ -8937DD683F5EFF633AD94015B51B9244C0B83313CCE16FECE79FD5BD26DCBAFC05E1A34DF5AF\ -398E09599E9CE94158D2FEA6F0E86C7B054DAEB531A1E836E05B1CCCF2E9F8AF048C94CA1EBA\ -E9FE7503F367FAA363DF74AA9E7E1C3D2A22E0C342DCA5A5266387F86A02A8F5B848D56B0F2A\ -5C119FD930B8408FBC801914295B0FB7797C0F214F8942AF336AEA5F24BEEB021994EF75A15C\ -29CE5B3FAD12886F934746CFD8E12CA0EDADEB86F89396D17FA0D7C992F24AD06A5045463345\ -C5613DB25967D87B9A72CBFF8E2B008DE3004F45CB6028EFD0AFF07602AC624E11A2B4F908FB\ -8B28605AD0B27A2F4F96DA80E5A4AD1247EC6F5F0F9702BA60845E5AD8E15F12F2A74F8E2D18\ -568AAD6753C2C0A91D6823C412A48053C877C6B21240941F14AB921911424F4DBADE8B02F20A\ -C65E68170F9FB64CDCA5288059C08D39BCEB78606693D17498D892E0C058AFD44A7269A8B2F0\ -A3C036A4B53B2218CD54B0DB5E2CE2F59B923124C304273F39365973151AC85244B054980588\ -CE632026B05EE656357D1D7DCCAC80256DC59CAE11FFE5C9C03742D192963802BF27351DA535\ -B087296A85658481054FE5E04CD072A5F77770C391742CCE3DF8FA3ED45CB29375F7F7D25A60\ -35264BC677CC116F27C58A61696C8FF4BB117C9F452A441E543FB95E8BB857E071EA4061118E\ -137C67E90F8F82134E477F1266BCA6C998D9EC25EECB1FDB19F0B11B3D58D2594DBB943D019D\ -4174ECB4A18D42681CE823CE33CD803CC68A00A89E9DA7D8D3441D5D6BCA1CD8B915E0B814B2\ -0C0D5526E67B0ECFAE0B318BC63318846620E9EEED3D981FEB6E2CC2A9AD1E115E1E29C1377B\ -8A173B166C579C7DF0713C88A8E75EE73149C2DD187EC6165E30B92F90C62F963531CA593602\ -DA6A2DCFC2524CCE80BC764AE1B24EA2D903EE25B7DDD545AE3D3FDBDB97987DDBA315788542\ -6EB2BE46612F9362BDD0E65BAC163B0BDDC1FC171BC91D3191243FE0851BC36E95F928342879\ -1C122BAC07B2F6BFE9362139854CD114B249F5F6413121F1D7F2A63318DA26F8E9717E1AB99F\ -D7F894610375B71A04A8E066140CDC42349D5B25128D401C784F2A5DAA7E6B6B331C8D2221A4\ -0EAD0357E72AC5346DA1712FC85D42C2E1BEB0569FC6FC31641D9785E1ACA85A67B69077:\ -B2771B8F57 - -190D0B444816CFE9A58BD72DF9C8257F5036A75386F85F20344E8094CC6A1445E7475CE75D3A\ -3F645084D9481382CD8F33AE9957BB977A49FAEBAE48F889ABDFF73C8CE67D3BDB99D6C7F764\ -1362A75D7BD1FDB2522E1CDD246F044E482FF989834C7C4CA7CFAB83F75675DF9EC88AE7FA04\ -FF16D1415DAF85B119DFA9A740A745FA632BF3662671ED20198CCC61549F63AD75B04C313091\ -F301CE2F9E9E7323677FC926ABF881E1EB1ED92EA0D4E6C9B2E2B74DE021CA73C651E93758FA\ -036CADB304CDCC3E685F7DB07CB275BFEE14B005A21899D3FBC79EE80BEDEB579F163C60FC52\ -5A231FC33650FCE48F798B6915D0D85B7551E93D99B8E053CCC2F81A808F73D2A5E7B184739E\ -FFE57F33536107457740FC3483E28CECC770D083BFB935DA436D19FC65DECF57C94896ACAC4D\ -C0C53A41B9B270853B10AE3D31EB205086D4AA8AC6E488BD82B39DF844B782591CF7943D78DE\ -06E189AAC9EAA1ADE0811D5CE37805FA53C76B2D8A1D4CA7E8D9C700F77300DFFC17818EE1F3\ -675AF79BF797DB6ECF3E60F34C0629A52D0F5C9389155EED7D4D9EE397BA77753C584900CCAA\ -F3C4EE0823644DAFBCB0DFBCE1E1516EE62128EDAC32D2B1463E4CFC98F0268AE4C2BFB12C45\ -0FFBE84D3601A0F62C30039628F66B779DA3984784122784CA667277FA504A1FE731DFB70479\ -0B7265C6EFFB40A3515D1E370BC879C74E77F7765E7F473E3E44397026AEA2F6B0E0C23089D4\ -9D7E6E218EBA7A1FD841A90301EB4C3782A6AC5C52DF861C6F495F6CEFDC1A597956F32170DB\ -C01CDD5F431ABE5229440EC56265490869F9E0B82D7847A40EB6E18CFDEC0483DA195A61EE45\ -BBD9B3098DC2EDFB19590EAC0225D10E2F4654C7EADD240E535785BDBC0A4FBE5BCE491AB773\ -B717516E369A95B7135E77EE18BE2387BCF450E18FB205A46CB2041B846269328A7C161D6A70\ -BF0C84BE33542045F837C31FDF12495444009DA082C5B1ACAAE10445B5CFC29294A19F81A749\ -2E05C04BBC6A7D47CE681E7978025ECA19B01B1D7A7D8F03CEDC9E651D9A0F0D2D3CEA75C0A8\ -00D88E79D550AA1A306839F080C7D9EBE010B6523141D9FD06B5AB40099B37B31DC592CF967F\ -C055027FC93BF4631454F5E0B4940EB2AC81BBFB3BF088CC00C84E5733F5B7620FAECFCCDF23\ -6DC9E25D2A07EBE9619438CA8EA09B03BDE999AF5F163B2048993418A47EB3D3B87CD96D5C5E\ -94F169E05BF998022D41C1C494D0538A49B47DB7BA9D4339079872421895941AD12946D74BCB\ -FD741DA2E18A268803FFFBABBCE8FF4DF0563ABBC4AB0F4C426561AC10CEFD47D1369439DB50\ -33EBBB048397BE3595E79A11420153FA157371388FFEF1D1525C4F5DB8247E048C8292ADBF45\ -511CFE147B2B374EA9D0D776F66C1312E13FEED497723B1EE445778EAF1B7FC0F419DA1F:\ -8F6EA7B4AF404A493EC11A2E3869D46B71CFC47E26537804E0CE258B6EE6A85164C35C547DA7\ -80653AE8D290CB34F3FA4E17528E5938E237EDCCAB9385EF5501BB0DB7AEDE91A32AEB7BE0D3\ -6477AEA80FE7D0714CC8056B8651394C1AC88A230721AC8A3415908A321B79003F42DC783453\ -898A47D5E3FD0A24F839D5CEEF4A9BB51C1DA54EF0481297B5293278985275723D2395C7BF28\ -A7F78618CF2E841AED31FD98C7DEDC3C821B92CC731714054B1A51FEA829470B32D83B63F087\ -686BBFE3E3B56FD6332695FFB8C7F24B243FED3E314EDDA8B3CC5E2D0F6B968092A4CB44E52F\ -AAF9A5D37866EBAC3358AAA4A1F725391D226D30D7561A8F88894416F0B055FCADCC55F19FC5\ -29D748828F2E3BF78CDAE9AD826067D266E4ADD86AB680F3DC5E8AFCDCFFFA1971B9A1B9A21E\ -0DEA1F3339F54D19973D75C812DCE634B792932B99724B1750FF95759EBF9B33DC92DBB3CC16\ -81E56F9B1AC1CC91E863735A96C9709166A5835B81862E0514D557F1748F3EC77B6A35204D68\ -7028F9597E35BC28AE8DC60029945AA216C2979BB9D87EA6CDC49CB43F48B5181C2CB9102005\ -5D7A33513D8C8F34A27CA058AE98D03BEC7AB1806010743C55F7351C9B6C552B8936F5F092DA\ -FFD9DA4B836EFC280097895A9C655E5CDD3BB1126F92528A94C1E8BE5B65F188FBF7D198F480\ -C26713C9D881FB760383039FB926AB578EF5EF7746CD531B9D8EEC55325C4CEC543C832A781E\ -AE64E06604A6342BF886B038DC672305925D72C8B8CFFF9DD99311A80F3BFBF6F5AA94059B30\ -F7ED70F65C022E9C148C338FECE35AD3147A0AFBC3034C9C4D876D0FF1CEC97C35AC3E5A9D7F\ -CB02ECC02D8F01550E961B283765EA7BEED4C3194CD054E14E2127280D117DDE0710D706FD65\ -1761FDB2AD33979CA5E44344BD615B1AD45E9ACB55F8562D18D7D15CEE6AD07EF245F7B07A23\ -E7F20C0E25D4C274A54CC030A6D21A12BA65F7D530D897435AF9162A609F91E7EF9F923BB5B9\ -A075DCCFFA99F075EC96155549027950F3DDF6B35D4E053B9E255EF4EB8B9A1DE30EE7BD516D\ -24D607ADF658BBD7DBD1F58FBA34C0A6FD81AACE142ECADF63FD763A03CA13FA4032CD10CEFD\ -D759AA1E34484625CAAC69939E796C1E8E4817E0EC17E8D3C456283C162183E6796EAB5D4613\ -D3ED080808DAAA70DA3A945CC0ABECA5B44649F234F0207C3811A9E4A0CA173096CAEEBF3DE7\ -A2136B5F48516DFB4051D9DC98D90C3A011310339947F1A40493FDAD6098B17AF61AAA9C610E\ -21131B97A33F94D8A11F7A33FFBAB4F85973A2CEFFAD0E7FC555FE5816D67FEB78E696FF34F9\ -EB76EADD09224EDAF9FF2B0C44E8346419D1100C223AF42976B031C10AD1A57D44A0A042459E\ -88D4265DA5A3017C31209411E67F468A5912457E8670D96BE6D460741866F5DE24BD45DB:\ -AADAD8921C1E - -239CF518A7A49CB68A264F57C1B9776D26D0E21264BBB25C552FA15915FCE66C2006D8AE6B5F\ -CF9F0D4F780C94925EDF2CF9193C2F0857C050E522F72D873EB3698CE789FFCBC7268EDE838C\ -C0277C6CF4135522E1B32BAF00DA4A63492D733222D451A3335892F83C560BB0C074157659BF\ -280198698261631794BBA5440FC2E624BD6CF0F9A3C014D3046E891D06AAD67C123D52373003\ -C9E9FF370B8D0F6F18E5D425B71F4F90110E3B9683B6A1162A0571B695C6D2C4269B1114DEDC\ -B345AD5C7687F889835D374683EE01CD3B290F70A66C3731981573A4B7FF0729E42801E94E29\ -BA0D3CFF7D5CCD6AEBA27A44C84B6F0A28F27ADD6277AE5A2ABF9738A9AE473DE4937093AB72\ -646B67839752E048C00C2EF7607C7863CE5DD7C761258013B176494C7AC826A19ADA853A87C7\ -F10F8D148627CF69D3755C77181847C469C8721A5F92FCBBDBA729DB34AF27C7FE37FF3F28CA\ -56587E22596378664EAE0E8BC1F76DD7F4D28717A4550E7D668C143215646BCF3BD759BBF03E\ -2671A1D01C071AA8F9E45638072FDDE82DA96617953DBAF76C22DF09F0C827B3A0439F1F86E2\ -E1873F3DC854C8F1C49768153B2091941ED2361528D7BFFC3158B548F9EEC81677EA1D1A4AB4\ -B24DCB221DFB055608BDCF25FE92DA59F87965F5B5C60363518BC0392C5F1FDCC5D2AEFE282F\ -B20587D0F609594F5A1FB5A0B9DBDC3227C59EB4174D0EBF1A5BB17E52E489825CD50C604D34\ -671C0224427E0DA9E6DA00C41465FCD836895215C14CE15BC4B304E3A06FA984094A887EDED8\ -AFF731FD07DB8F5CF871B2C27586C427A8E75BA1FB9D7A422E99F48F81E013257D2F580798D0\ -400BA3EFA12720F497946478C4AF612B280F18677F39EEFD539B66574F35B7ED8A918A8B0EBA\ -8870121DB7B55F3016AD93E865319A95C83BAD41266699F2F4D8DEDE59F181F6FD4AA179FD3F\ -16A9270CE16810F99E6F2AC5F54C7598E86534BECBA5D083E6B3B9C67D9F2B83EA704803EFE9\ -148E72096DCA3C97B296B1D86950607F5D17153C9050AC6AE97FD4C9CA448BA98E671BA92264\ -E2F87B9CAF1D63506739DC62FE4FD97CF6D1105E156FC4DC1B4F034D5C3AF8C9F675EAA460A4\ -DED2C847135A64A3B1980BD4625A29912415A3A947C0B4FCC9A2B8D3DCC6F3261B89E9898A43\ -AA60B8B274F01FAC72438D5B5581A05D6CA300B06BB5805CF0E86189DCBB8A60587DB1F19043\ -6786374F6A2ECD23FF8E460782A2E4D8EA98E167FA330F336CA7E4C7F94C03DCFA55AA57B6BE\ -D032C484EAAE0501F04B018901DA071E519009E0B26542822DC3E7B9799B34AA9EB69277FEE1\ -BAC2E98E80296F6554CB3D60B6DB62811EA97BE3BEFC12F156881540509988B92F42249FB4AB\ -8F39A21232E2ECBC30907F8EC123B0D773B1C8B67A8DB0B0770DB559F6EBC63B23CF806E:\ -3D1D43BCA6010739D96D16DF036C6B04047BF3EBE1CED4DAC2490559EFF84120E194923FE454\ -DCBDFC7F2FF02B8F3E70AF354D333D826DE8C4DECC83ECA6BCA35A42E7F16C088B970205C119\ -4A21F6A5B41CA13097E93098878EC5FB52D67CBCB36E3BD6643D407C2CE10F071A7EEB44D9C8\ -3DC579DF0ED3434B65A6C5606022A134674E714D02444D5BE22ABB4DE8DA93D928B2E6A02F22\ -07197A730BAD7C43A75BE382C495890631CFD4C943BDA20DBCABDB5BD5BBA0DB6B7A2A8CC985\ -A04D4732DE32536087259B73023A0994915884AE9A14222C5A7A57F838B15091FBE3A39B39AD\ -B962B36F03F3A81D52DEB13EF79487D58AD6F9591EACD2EC7BC256126D2EE696C611AC050637\ -F88594718D6FF391A794099963C9EE7E094048F36D605165BC7DFB8DCC57B59115AFDDD2C66F\ -EB4C289A00E85BDD6B08EA290D6788022A9D52BE4E87D2F433A52AC998109584E1AB7F8D414D\ -10728C58D50F8C4407FB9701868F3957BBDF48861905F3CEFED2AA6488A03B84E37F6848642E\ -CC0193FCA1841A44DC6E6BF30BD17E1FEF02ABA77492CA5525FDE471D070C5B2A3AB0E1383D3\ -E9C7AD274C2534E17741A4628EE9731CF69449796134F523F76C0934D88F0DEC7CDC67C45F4E\ -28D056B9E46F97DA29528AC6EA55662F3ADB6B5112B04EA807B40AADB0CE0B8D1B2149381EC2\ -7DD75513FBF8B271136E1CA59D87B0EAB956C37AE0BF57E099738074740E7B10D66CB01678D2\ -488C4F1F8D9011A717F68750902BCE93D9C389F29A53568E60E5B735431050469207E8720127\ -F18E4553329404289E15B1292B8DF3FD88562B981A9202E0D92E3A83710ED49AB83BBFBF4322\ -3584DFC9C47D7B5DA45D199F81F40E94DC4FF4C5AB7A92D9D246E690E053C2BFF4307AA5C212\ -48A2D1FA5BAAD7BE81A6F07C61509FC625121184D73A0AC1630C345662EB6030C660C911FE5F\ -658181B7555EC35DA7F8FA00EBD2BFD9BC809AF4C125F1B5CA88B65FF8B93EA758489B481BB0\ -D4DE2CCC0E68381D8F91C66815FC08A0546C0BCEBF52E0D918A61A597DF46A8817D8D5265DD5\ -59FCC426A9D7486D325F6650C5A078FF1E2BC11F27E298960A9A97007F173483C83EEE55159E\ -01370868C8C5C0FC139A9BD54F46F8A9DE0B7B82B80FE08DA0D34EB531D9CC2C46BC15F9CC23\ -814B98D38A39BB2E2E6DD9C7BC98C44BF822175610F78E034C5311432161B29A7A6653DE0040\ -A99EE878E8BB9B30F004B31ED464BADCCA96596F6568B508E04D82BF5D2D836CE4FF3613C529\ -B8A25DC5B8AB96C541C74E2C9B40880979ED2D60783089275CA75610FC2868F6BD1B5880D0CE\ -FF0A8E4DDFC233111267DF38535841E42231C3AED60BC89B965DBA6E805B429F5A15FE0F54BF\ -5ECC3207156A5DD019F18699090E8BC3A6E80FE9213C2F0B59DE9AFE60F1646382F7D04D:\ -633768D40512B8 - -24CF445438C0D1EE449DE2AD694CBD75526DCDC1D19EB4F67D679C87F5BA69FB70BB6903CCFC\ -332D4C6744F617DA3C61FDC45EA5731BE4C141030659CCD7C6A2120AF422CF31FE39806BC536\ -1172948D12D937A67E7FADA2A49F91A5EF107B1BC2C314732A64AA49198208466A873EB04F8F\ -F832BB4813384E0F9E395D51D1908C34488EE81EEF5754103907D8850FD3B013BC8B6BB1AA65\ -2683C46F7AACB7754C0AF944DDD2A94E7A4D5F8BFB4B134F2F834068096EF5DD82C198E101CC\ -7AEC73AE88F0E0E35FED59E7A53A959D8544875BCEF200135D309C27A2D74EA95F2645C3E2EE\ -82E2162057E4E47AE26AB1F3637DDE57023C4E97B83726CD47F2ABB1C6C7B880BB14F0C7FE42\ -A52550B282961BEDFCABD97B5BEAB51333E90637B29F6041A9CF0A3EC65318FC013E583A2E56\ -C89525BDB118FFAFD46BDE45CB3EF582647CCB40EBD6EF1C4EC7AAA9F79391F1A38B418D8810\ -5C24E49EA226766496EBF19983AB76C6C4EF3C9D1BC6DE59C2B975CD0E3F41BACD5E091977E7\ -C40F974FEE8919F6C0F58E126375B697BBCE04A584A64BDBC1343774D9F0146FFF543A0CF0B2\ -28C30B231693C98E7A67A8EE4294D136F64F7C150BFD06C989711AC42A35A78D96E04F98A4EA\ -2111A4FE5831E30A6EF96300F14875B217D1E94D12B41BE2D112BF81B30961BBC028BCA2B105\ -C97E841D1C7B02FB360ABB442217366F90F469A1AF64FDB5D95B9E50F85591F3CF499B440E02\ -9EC31A49CEF6EED2D7B6F15A49B6515539F9C3F5C5C4651A9B0442ED9534A863D15B035D581A\ -FC705DC598174DAD2B8E4B012AD4C4E5AB965B778B5382EF8BE6AE93108290B9905ED5A37EB8\ -5E819447A48113F61B9E004F42F3893808E2240E6355C69B007C42A33549F2AB08BD2C6A012A\ -BF27CBC4774002FFD1AEF10F971331B4413E632E020848C9E9972EB4FCFF9D7C0EF898F29931\ -3745247CA3F22A699F7D31DF7D7A908A64AECF10B9A9A7EE0ABA37910AB7C7187C4F5F028264\ -83CE39134A54D1DDFA183CB97C3A940A88159DE9F3390031219D3218B7166891171A7CE3D7F8\ -7CB701B9527280FBCDC429E285D645D01E668887F8462E2D21040928A06FA8F1F302C6CECDCC\ -7E97572AD1B46C2AF8DD02BC9701DFBC7B8D5A973A100CF332F780324BCCE3E8080EBE251573\ -FCCA30EDA25360F1618F25076289A92CA4AE2ABE59FBBDA609568EE283F747F255DB20074944\ -5022B78C0AF186AD7D8B599CF18EE9E78E84E81B8CDBEB8CFACA1886937D6262486DA8DFE9F7\ -E2C28921A09AB1C3BA7AD57BC7200AB49C12D562FFAC9F7C529A0067ADFD2FFB865B9EAC9C02\ -33C24D467C2B2267B36CD342EC88CAA672F77FF4359E1DC597FE50E82F29A2D973AB1DFBCDC8\ -68C373D4D6660FEFD160819F71A4AD464A9EC67A214562DB24472D5B278C5B2AEB3C1A79:\ -4917B75D7DD10C7DAAC6922C3807DC446A8AFFBE5B2007DFAAC632EE14AB8809D426B6C31A47\ -51F5AC0AD459AD4BEDB81E4E9A26A47A2E420D529F2D598F0D1597D21E36806386F142C00A2A\ -B18DBE21820206EFF2283082FBDF19B8CE53C324D5FAE648C1E67CF44AAA2F850E21E9A978CD\ -D5FC0F98A7F153BFB1C69A0982E357841BE6BBBDB0B994638BF7651CF0986F508BD69A21A4FA\ -1607B5054745D2EE18F2D11E115A1F7B6686C5E2E84CEC92BFE4A9525CE7573F31849B3AFD55\ -1A0A12387E3658B03730242318AAF5C8253265C116809936C0E0FC52C665F518DA04A78080EA\ -B0693240C3AD5BE4E9F08771F5D6A31B8EBC68708CD8188A44D9E22D67F9D839B27F4F91BDDF\ -7AAE3F5141A3FF4EACA4E2D6FF788E2B5B2E5F3BA296D55C62671E4F1CFDE3123C4ECDB2640E\ -CD477E0AAC5461D5A79AB67184BE38547C08ECEE1C51B45F2CF1E9B407EFF3B6A3BC14AAC5E8\ -3387CCE406B115C0EF7BB0FB7BFD563481A707434ADD742918DF8C711A7CEDCE355D34B5D08B\ -F07DF9630FBA1B712BAFBC784F3C914ADA7B28F9CE1359C951992627677A70C5171A63408A49\ -4C097A1C3AF7113AD5E2DBA66DA11876487BBF998B024AE60D270E57B89ED1C86BF0396F836A\ -B8940BAD499B20DB8F9631A7D104DC912BA1C0ED22FA0B1762011EE84183AE19F87615352C87\ -240FAABCC5F6B8D970B5A7544655B352DA64910C81E1C57B4FA410147EC16744DB0F7BDC5E91\ -8FC90CE7420EE31ACAEC353EDF5067B24BEFDA4A3C773C73876BFA2470405F44F683C6C54254\ -BF9613E2226A40DAA7A703A15C582FD8CEFA9CEC0AB2B8F28EB7C3D97E2FD44B6E6934E44997\ -4C5DF97F69E377E80BF02E81115F43A5C057D4AA68A111F9E7B5A4F87A7193C4AD026F06A85F\ -4D6C8C86B378F40F8860A246419F0B4036C6CCA20891F5AF3C804F05D32292121DE0FE7431AB\ -B29587F9E38BB3754CE18D1DA91589F4BDD28C472FF4FF6010391EFE83834A2E61AD7059CA60\ -241DDDE5412C67BBED50AEA0789911BCD56EF0612DD00F82C3EDF4E39151B9CE5EB12D4983F4\ -1EF9D756311083AD080A64CBA8518855A2E7BB50B2662FDA413469F7B906F6E7E72FE778A95D\ -3689553F7C7AF367E47BB47A7C052C3506D976FEF9F3F3389C456F84ACFE21A28CD3EF275CFF\ -A495E1577DA1B95E867D0050B27CEE11F3332E66E04586974E815B13C34E0704EC151EE0A9C5\ -85D7F6259C6241E7D50A78DFB83E6D45C0F988DF270E65175FA688741F0800E106C14068FE70\ -F03E3989B6AABBAAF4929B5DBB080BB559D1153735E28FAD7F32699382CC8AE5BB8F72AC5392\ -EEC4F92FEC0CFCCE3CF36F0AADB781D0E7CCBB43977BE203BD4A92336C4ADB4DD28770D39447\ -06E93360B54965DD846F4E17A96D301DC7DFF7073644F4C630B3924377E43BFBBFFFBD8B:\ -60B01F1603339963 - -C9C8A2527DED20D6CBEC16939C7012335A7E0BFC8D23D7CB7A819E63FB3FC39175D2F1964557\ -4D9DEFA9DD9096A00CBF062AB5A30F99CC110C5F67BBA32526C96B0A62DAA9A38BCE99F67DF7\ -3CF4C424C4EF673EA3B1EB32CFC0C44254566A74A9EA8610FF9FBF1BC8957E54E91A169AA98F\ -CBD119B24E3EC19E0E6E23FE9288D02A230BADA7A77391A691021F0565AFB0ED5BAAD85697B6\ -8A42BB71C1EC0ECC99B227BFF334F2F218922B56BC6BA15CE9EEFA0B3536465CB7D81AF4CDFC\ -59811C99B499A38A8CF945D9A83E1A15C4085AB27B2C413031CB54D818382C626FCB4996D738\ -CCC697A33A8ECDAD86B1082CB97B38DD8FE47188FD9D9D773A8F72D5EA74ABD533AF7C2300A8\ -F5C881277F274734D14279A08D90FAEBB4D6AED98C94299DD411EC1412CF34004DD2E7BF812A\ -8073E586800E0DFD62159F754FD01C3D89756DFC50D468D1647A4C77D0151727ECAF60257851\ -C06008D3A0BA6B74BA815456A789C3965102F5D5F1277B873792CCB0E40B44B373DBD2FFCAC9\ -BD674256BE1DFEDC78D7909FB375B607934921F3851C90BF8B82DCDDD91C42810143807C62DF\ -EE6183E59701AE53EC4D0347B127C0D609EF4D951FACA3667D29FE914AA449C941682D7A17D2\ -42B4A333DC970CDFD931D35288EA7076A7D4054AC233A6AC17E612FE32570A9ECAB968DB5B39\ -964E6E301E63B815F13DCB99793312C6D1AB998A1E87D6ADE96B497931FCC0FCD3D0ECF79C23\ -D44BE879ACAF1206856A4F12B948548BCDABB07664199E1291ED4B2C6CB0895FA7DA30486F26\ -C5C7BACF8C5A2ECD9EA43DA809067E1EF29F92A0DDCBB495AE07CF77A0D3E3973848CEEDE377\ -4BDFA19F802313665A64E7B9291B2153080F7BBD28E727624D5DB27561FB8CC4D45BB66F9A16\ -20BE69A759265CC089DCEA331508E495F770433966582058337C0D8CEBDDA660DC74E9FF1791\ -06E0831F9BAEA68839D98CFD2C2507F85942E7E0178581BC5185440C6E8470AE31794F422823\ -F80B4A424866918F7146235AEB6D69DAA7718A18EACCFCB05A6BD6CC8B656CB03FE0D8FF5AAF\ -936417827FD51D811E1182E4B726E0AAC3252FECE247CF120A0985D8FAC1A9574FC8882A5830\ -32BD4778997825D84A96CF7C939544BB358928D2BB64D695B6F5B002889505B3D8B98FFFCE5A\ -48F9A05E05461C462E8B30E566B95CABECA00ABE7385B65B5B9749DF238EFF814F5F0F0C378A\ -366179CAD80153A9F5172BEA4EE42CA2963778D70D4953907935BCC09C899EE3D8FD5EAD0922\ -F71576442A760522C4D0118C9AFB867C338131EA0ECE114AC44DCE202D4D998D585A9E37987F\ -0057556B526D39A472D66425580AE3AE64FD24B663B1B56C7EB14F543E3611BE367D31167B99\ -037AFB25A049E80DE1B4CDF8EC69CA049BA9B51101369938995D2A8F82244FC4E8D92A71:\ -DCC0C301B6C08825CEFA3555DEC86A5BBB7B86B015699C2CB7586E7D5B27B85237D0993B9E67\ -E77BD06C357F274781C52AE5F0AC9AFE42E8343E0CE46B77C639C18A1859A007F7B6C5F8F90B\ -13D88B7C041383FF4E6D5457AC473370331073684F248B998C0ACF1F5EC1B32B749C012E68F3\ -CB8F35368171AA4735A3B7DD988205E9662520D0916A425628F48A4A1AF94369835C2E042512\ -89F1550C7AA99AEE184152A86E00D121FA5026763DD8B106BF9ECAC68366362464A58335386D\ -E0AC155E344B5C687B3CBE126E18F4A237A20F8041831289D79F12D2F53CD1EF0163614BC2E8\ -2DFCC2714C02280113EF1908FD40D3763ACC6AEC03128CBD3469E152E81C2252DB94A972B189\ -1FD62D774AF979EE53BBFF7A4B6EFD30B28DA1FD5B8618CB6CE82B3D408CB165FA55FB8C2A55\ -3C3EBC448426F3691ECD20EE48F9F06607A4F10A16C2E9A186C1AADDD35908A34620C3AB189B\ -F8C666B9BBA5A9787D751550196569E7B5231DEBD02283B5B6EFF002FF33941E755731A1E2ED\ -27EDB322284716960E0E421F6C00D96E872474C6C18F6ADF6DB307549FE6FA29CEE34EBEAA1A\ -3B5EC7927CCCD5ED29FF0AFE7478F78D461FE000623775A010F9319E22D0417E9014CFD944B5\ -165E0A3A71758E7C15E4C64F26F455862B6A806ABCD8D542FC07358BDEDB48E06E07942BC335\ -92D44269009A079C6B5067B32C083277B43CD245BDCC9F32AF924A69B8FD6203E147E4F24D98\ -6462B4FCC19895DEDD69CF631D9362C21744004722B419ECEDC53266A419623188E9234BD0ED\ -D0B6B434A747050EEBCA6485CA81893BE4D488D181211161A7D1BA0D91BC2EE94EDCB99A45ED\ -F8160A9120E477913A225C336A24E08A7640A8329C9D4277FAB518B67EC41ADEE3E6845EBE8C\ -53C6F7273B0891E237A3939AB9CEA6839EAB641734AFA5206CED08100DEA1031CAD6DF653926\ -30A33B791A2B10036948CD441D20D013A1BFB2730A0D265FC7AF87FA58EB42CCAA6F954936DE\ -EADCE4A160045258A6B65771C8916396751C0B39D804FB642A7FC071887548268B6DDD38DFE4\ -22720BEB1BA13278C284321953F2CEEFCFFCDD051A0B847238ADDAD359720054869202346BC0\ -C0D2CF83408A68CA1657754C19BBAB2F1A302FA988B73CE061DC7C98E8EDF3918360FFA4214A\ -7F7AA75567A2A0E077661CB379B40743E719178D55B2132697E3D73C924C15F99925559E2D48\ -879C1A798FE2E18CF15A5B3819F36CA5A1DEA0F257EFFA7C9F1EED365801CFCEB2EC1798A543\ -4B0702E7339E4785AF3F558A7EC6CF8D9EF7BC5A57DBE2E3CD148A210F86DD59C9D75D949870\ -FC7656972118585DEB702E02B8EEB2A2C291F46078812A09FBA07BD5473F2415444540C615BF\ -D49F9635BA7E4BC935C27416509FA81B6787767CD67F296253F55F0B55B293B399E316AA:\ -9FB8C092B2A0DFDE70 - -A946842004EB370887F8E43D082718924A419A24F3FFBDA01CFEE2A57E061B5E939B2A38C798\ -F62EE5C62F46711D980A9CF38057E73F6ADB9DBAD2A1B4CBA828E79E5A587760D6DDB3B04AD9\ -F61CD53E501668DCAA42CFB5DE0769AA8688060CC7D2C9D845E181C18A842D9E3C45FA1FAC06\ -0CBE4E9D3F2C168B3584AC87269DD455112BE67218D5D4C027A1BE4ACF7C68FB33100E8DFB1E\ -A8DA8F63B7D89A5C972B2D4DD0B2627149759674CFD8C7C91FBAE6C6DC156D8F2D58F45252BE\ -A15B0EE577230386F6ABDA8B40579F216166C8492E1F9ADA792C42A987B270A2DD4ED6E21B8F\ -B5AB98A8D56A782F8039474D0233DB9CE6A0A2B8B28D16C2B7E69B8834D3E2579A8038CDA9D7\ -BC37D2E4E8E674DF39B6B62AC55BC76A83738EE0BEA1F236B938E0F2CA63D1C97362E00364D7\ -8BBA094AFA3546954461138F2012B04144E8C95046E4C1C5E8AD6D17C5C9F74721CE68F84000\ -D101FD25182AAF2888E3E75052EDE707D2E16FF382A04FA30488FAFCBB2D70E5B4C0294B8C8E\ -E04CA6C6A8624E476C25451BA7E1FF956FC0CDF4E8207E6961B1A017751E40A3888966644022\ -7613AD3C3A3BD853816C4B0E17A7D1267B2615A1482CB304EFCE54901A35F3A56E8A392F6EA5\ -F8B79309F69EE8A936FCAA6B1DE2D5C6108043DA1C11CD0E199EAB241385646F4ABB81315268\ -AA77404EFD3E2070E8342251C9D433E474C5FDE3546A2735C406194220CE42B830E6A483390A\ -2BA772BB36C9671068CF6E7BA70EA29AF7BAD1F9362D368E69E01E29566C27C6D3B926F7378D\ -0BD7195202D052B3148F7C5D5BE19C0772960B9D08EB31CF2AC357C2A98E4594AAABCA37221B\ -09529DB5EEFC26CFFA57F973AF90813FEE0D8E25CD49C7634B033E4A3AC8E370348EF6B76AFA\ -DE6DD823CFAC381AE795852F95763EADE551F65A729E3366538E8723BA2A7931F217C0E7554E\ -5C7F9E02CC2923717D6F285AC12E4E126006E99EA0393356A3DF5EDF1CE578B9A5242A8D3526\ -BEEE473B2EAEBAA89B593D93398250AC62A5B111E8FC473E77C4F64C61128AAD86887EA35362\ -E1F1AA1B72126846E7C00585EFD36D3C350BC9F2E6C99DBDC4CDFB18EBED3F9AB9324A58C944\ -ACF030FF70A196A6C125DD2C79E698C9995C9160095534B104D5859FE5546FFE5EA14FA398A1\ -2E15DCB0106E8D1962A41D229694F24F858744BC09C0BD303572CADBF0E389822BFAE830C71E\ -C5EED78C5F5903A30308331F8DE92E20F1F94561D74344049419C6158E533F3B29F6C8F0242E\ -832475DAC711D5F1A3AFBD853E4F48905F0E1B90E6C3EB4560A7F5265A10601C8B9EB7706B5A\ -A9C654366D4894BC88DEDFCD7E75AEE80476D5C7FBE5DB7F82152D98B0B27AE01161A4037E69\ -A96CBD11EB512259E178284FB41FF4A5F16A37053F7587C2F237F10059FC38699B86ADDB:\ -3B6BD8169D4643AF7E792FDBC9A2ED78BCECBBDF7EFD7B7C86FC7B96C4A1E089888BCBE572D7\ -15C2ADE3367E948E02C723DD7B4CB2789BDE1664375529E183C061E263A319ED240DA7193A9C\ -C7CCDCC188F651E1C2A875B06D6A27EDC6F7D7B4AAD7D725AAC9983E150F7B54A1DD8D36068F\ -65A505CE401474AD2C79CEDD0895E64AF67907D2867845D13286712FD294C4F1604582C2BA78\ -B540614A7FE2D72B4C943305D8AE39EC416E6D1FD9FC6BA6A6093BAEF7D29BF04F879166968B\ -3067228069FA0D1CC1EF70B870EF4FDC2484542CA88FEB946C8169F8E786DEA68D654986AFE6\ -493866943BF065ABA7DA02E9B225E1F9428B3466212C733E9CC293189E54B703C0C6F3DFA17C\ -A183F4F752CBB1E4803715B2B49B00D70EB36816CBDD856065BE5F86A5DE04A3FDF0FC5AF5C0\ -3E95895A28A806123559E642298CDF940912C7B58A1B0A536FE6AA9DE8A5F98C02FFA7C8A99F\ -1ABF7129BD0EB678F21B3273BA5CA047188F303E6F8A32A7EF864E49470478EBD7187C71EFF5\ -7EEA68147AD3D5C87CAC6133E3B8F71221E8B742BD60A4E73137978FBA51F459C22EFBE66D8B\ -496D9385A8BB9962071F997A2AB3E730A529269213F121583E1A02F7B1F15F754BF6BAFEA740\ -BEAE9DE0CC3103F9A9A61373956AA02A5D072CF658A2BB250557723F64BFCB7DBEAD7441F25D\ -2EB1A54AF9883B9BB25653539D5CA8289B8CA9C3DAA69486958D6B190183D677598CD9A4CF27\ -9DBCA1E323FF83B82DBDA3F416AAF6FF2C14DB6CE5052E5657DEAD8DE3C7F14C74A4EACA1C97\ -4DB989625E0B9548245A3D7857DF36A7066242261336E72347A3D9B765861DB6D9BF843F2274\ -6C063AFA1F724D83204E5CB3A9E8F1AC86C8AB62A83B323B48D52CEAC0C3CDF4630B35F26749\ -800DC95AAD88EF7F83844413E04A17136618E9CB799DFF24432798BA5777966A07C0A3F24159\ -963B9EA803DA5562D544A6CDE1FF21D6D5AA7CAF38D436B706F2706AEF6EC02F003A023D7476\ -D0FAAA3B5DC397524960DF83616EC5D5B11D2CB148BD1D2D6AF388AA4B978F1A2C2A2E6AD548\ -F5F7D12B9BB28C96C062FD13EADEAC01CBB32ED06B75A5DB7AF0DDC56DED1EE5CD509003C211\ -E3B5E673B7CBAEE0A2281B156BA5264CFA602080CEB2626A038BAAF69FF2C3778F06277F71E6\ -2375C78683B4809D2017725D9A4AC03FFF0D3474AE23AD183C012B201DE91ABF005944CF60F0\ -96667E506C6879771172EFDDCA4BAC2AC65EBA86BDE7E78E6F6970D59861708A01EAB138F33C\ -197997B98507E5D016D7B3AAF9F774A93F3A7152C22279D2DB55966F387118A0A23C36A539CC\ -D75DEF4367017EB0502F7E5E08CC7541074280A90A6CBE0E4D881154DD3836E6E50BAA61BFC3\ -BC4E4427BE0519D74ECADFC57A3D3CC3B3288A6195A4E1E91ACB74F7CFE2F4ED917BD7FA:\ -E8547EC6BB8CE2F8D4C8 - -18D660AF6D52144C394F285EC02FEE9AA28F11EA732D393CA23B6C68A1751EF3BE0F28159E00\ -55FE925E3EAA77308D9FED109C764405266781B890836069A817C8CC2F33476F02480ECA4F6D\ -389B2F44A7207F17AE94EDE443064A1C6DFEE28086033DD69C4AB8622A9BB65D1032E14C4F36\ -F753E70F9E399EDB92092FAC60F9540A2F8E6D2DFC418BCE35F56B1FB7ACB6128829B27326D4\ -A4CE6DE1ADD9755BB6429F5BFCF9779CE46A041466C3CE353534DC114F07A62AF0BF7472BB0E\ -760098E920F77D3F3F48145C9501C699ACB53B9821DC56875662E524C90EC65C3BAD9A2D2D15\ -2D504EEEE8C64CF87278F964EDB34A2B89889979C71E02581A4B87C3B6377287AE1FBDF2D777\ -900E318201B257A1818349EE5A247B755D4173A9A6E9393B136D92AED9D8420D40C91CC095DA\ -913FBC8C8976D61A2D1AB5191DFD0ACF9B9A694CDEE2BBE42DD8B600616F40B97E6399068FF5\ -A5FFF39456202427938AEF8D4DB27D8460FCBD4D91E8F2C16C1E9704479CF48AB364A26C85C5\ -C2531A7D624EB8A3FBFD5591E91FAB465EEA54296C0314E944588FC8B74D6BDC68363037C8CE\ -EF9EA7D97792F25266AFD6B2328E53E8AF6FA5D8D8DF625621FA21E29D809CFBB86C8CF7B018\ -6A8B90159724A57C5E6892161E6802BBDB36141DC5909D4BA3CFB59DBFE8A5833F3228A9AD92\ -54815D69D09C1BA3FD21CE5DA19B277D46B2EAFAB171DFFD7504A71FFB96AD17422E7DC9541C\ -FF16BD5AFBC498BFACAF7E5D5D79EB9072CEC455BEC783F0935ACFE8E2594DDF5252B598AC3B\ -B6F7F8DA99AB326B8C914DE01E4FFC0D174803CD4B69787726D9324FAE54CFC17C0E8A08692F\ -3E9854630A6EEE746864E0FD2D9785B426BAE60901C9E7478394159B4E7539869398282F7998\ -FDBDD29FA5D3218F05C623AF3B0EFE1D98AEF1B05DE593906A6BEC93CEAD1EBFC743E7D96832\ -45CFB6DD3D05A456868DC0730FD426066A261F27776B910244AE61111E4CABE88A0B75E97B66\ -4CA5B3E896FBAF5550948DE7E6A695C413021C702FA31988D734E4E2FB3B71CB33DE3E942035\ -A9D6D0D0C9FCD554C3BE6797173CA5BD7E2B0C7AAAEDA585BAFFB630BBEBA0AF1AAA95C67915\ -2248BCCB76470C2896FEE0821435F466B788AD81291B9BEAA98AE92731ABACFC67FF5CEDC3D2\ -F528243346CFE6A1113C71DC8E0E8F9F88637937B70863ACD5F413ACA4FD0916E9173A8ED8C3\ -0D14A2A3D017766353EB0A89762678A11D3AD47FB961E5DE31D9B24F98128A273E3C1F282A1E\ -214DEFB324D162F9025CE8CED03CCC1B140131CF0E17EDFF2EF1F53CFB3BEA8D7ADF14D84FC9\ -8D43CF9F5F771423703FCC3D034D108AE32904975D758C8234A2261ED6DB23B0C04212166DED\ -54B0BC15F62E6E1ED9B020D79192271A6A2714A9998B3DFD08A19E8E2BE334DAF2BA6626:\ -024CF54DA77692C014693C6FACABA08C52F75332A7D5084E2D12F3547CA2B166FDD6B71EC89C\ -F9FF02CC4A289B133DBE6AFC9E87A7A28D62E7C4B636E4ACC9370E77D900F089163961BB6277\ -64F444F013501BAFEC9F80F753C9FD0055D4BAB050FF1C1DB22C95517AD76E5686DCC7DE0D1F\ -08DC2EFB287C41E279DB75CF4F67E43C452D10537E8AA653D284039909D33C4EFBBB47FF0939\ -830CEA000B447FEF774BFBBC378008D0B212087A73D572C54BD9E665A7A4D2D533C7BDE9B976\ -B65FC7BD540F4E9C81B2D26DBCCE5EC12739863C8C76071AB93C2D18F84C9198E6C70976414F\ -CC1DE005251B308009912D6D2757AA9359BC20FF60130E12F4BE75725B69D5F29A4177DF104B\ -78CBD08F735E1DBDD51C0443268143CDCACD180726EA081A9B252B26A4A6C16CA6225CDA357B\ -E3CF4F72D7171C853DE6391944CA2065A32298EA17EE0CFDEEF2BF46A6A83BE4E06F076DBAA3\ -74ABF450B78CDCC3E5F3976EA2D9248CFAA75B292542C55497339A149268E895465B44AA16AA\ -A91021CBC32B761D1ADE1E5CEDD5403385C23A2DC36B468A2EB54DDD3A78A7B0491F2ED546F5\ -034A9D4A7BA067C10B920045A04A6D27629701F92EF442DDD3B81FD992C61D17D81625727516\ -F3163E9E2FC538486D5AF1C0F09226143E79661E6C52449DB9518E1DB541E0C0F862A7E783A4\ -EB78E916E9C9CCFFE358D139369D416E15B361740530E525FAC7FE1A5897C658A66C6E8C541C\ -B1C5B0DF7FDF1818341AE975E1CC0517CBD55F8166E499F48C78DC017FFD4A2FEE2318FAF150\ -34EC62D451F559DD47B09F4ACB5536F593194B43ABBB5B88C8AF87699F38C2987B4D212190E0\ -EDE8BE80E97B0E8FC7C5A71C694D2FC7CAC8470440D6E6225B415E6A6DA4BA879468DB40D765\ -9971A38DE502253EFD724AF9DC2C702B9F45D6613181877A2E3E7957D0CB6849101AAF3787BF\ -FB188264EEE9337DDFFC7405E80ADB30DC5CB367EA438D502E3B1DE303D5755A46A46D8B46AA\ -DA4E363CE08AC181A9E4EA6B1DB9B3AB551085DACF99849624DBD7933F1723B7AB4190CB429F\ -696D8DA5DDC92618BEA7E235E3D8CB423DA90E90A8540561FE3B27ACA309FB9F1D4373AEAB4A\ -C6C45D90E1D95C0B2F2B7A9A9DC468C8654779361CB4DA6D6713C7218328707DB6F8382A3B8F\ -274712FE3E70B439001E80CECF6A7385F91B720F815211CD9533764CF8245FCAB3ABF7FF7271\ -E93D25DAB94D6C75CFFDCBEA6199E5A6069FC13892085E713EAC8396988CD6554E0ADF4FDE2D\ -8C4CE6FAD62FB2A0C54D3DD6E55610E14F6DEBF5126FC552DF942F06651AA8E4AD9D4A35C10F\ -611822FDE83ADFCA8ABB678F9465FFDA3D5AE38CF0EA04DABF0763C68E95519ABBED916AFA17\ -1A487E72F54B6C88794DFD6F80660A23E2F26BB6E844FE27DE41B062910228FD1030583A:\ -2F2758E4C63F9C698C6503 - -F6F77F1E437560515CED6B16CE05A52D89B68DD10EE26E826F0E6C54264619B71A4AC1F4D56E\ -204947DC46804E29689E8EFC3950CE25482C4ABF907798691A3282374A822289F24E0253346C\ -0DA48BCD2D28EF6CA9485221612ED197A3E602810C97B644ABC1A43C40B29BB99C5DBAD8D641\ -146CD621EE1149A3E74C51B460A4AD695E77A574E23F4E74FEA26EFE64FCEF59844EAD15B28D\ -AF3FA97FD49DBCA5AFF113289E616B4E898CBE2C7073215C02C3E33D1D67261075D077414DFB\ -32BE4DE414A21DF902AD16AA76A176ED1B7A9AB8F6AD35635A38034757CB52C48B3F7BDAF5C6\ -87DF0836AE7D11E91A41733C721F68CA8D882F2B0A6B00C133B230422A9E9A476BF016082036\ -876D7607A34BC9021E867A24C33E1130589E3F6FB2C75273BC0271E849D6DDB84F430F6548CA\ -BC9227EAE780379BF9657FE9569460036A7C1CD8B4C63B3587F0ECFE522128A286CD8CF0F2B2\ -52D433B6A4BB4445AD845F9E56C35934B90AFEA01DD6D5671754C0B2132D4FA6562B9DB9488A\ -607BC6607197FD93F7EC345A0F0239514F1DCCAB1DD67A2A12B2DC2511FC789EE8257402BB64\ -A02C703D70EDEA45D64DEFD9209F9172C3DEB8948C0CDFA05E3B33AF4CEF56F5ADE10D8BE406\ -61742249F6FFE71E49031AA605054719B59B1667695E1A07C0D126CB477BC005C44E6FCB47F3\ -D08A7A39DB4A7B446A810EE60E71BBB3951890CCC182D0613119A65BB08309BF87214DB179A1\ -CE2D3F21C3F2132047F8EB5F4BEE3198F316C669E007A435921DBA101CE40A07DEADEB308D2D\ -C2B27EEEA201B75633476DD8EF2091FA1F0950FE713BA1BF06F1B55168CB416C181EEB0374AA\ -728531BFE226CB67D7B2F5F283EBA5D1F87F3FF90AAE06130F34EF44A8D2CFFD7E8A5CF9AF42\ -D3A7AC0FD4FF2DB47A38DAAEB3A7C22280205879415418B429800762F597CF5C4A4B07BE8273\ -827038F83D805A4E6ED95D415E9FA13EB8F5E401241ECDFA71DDE6BAC2F397155948770925A1\ -BA9AC1BF5A65B51C26381A09E8259D4AA8B62AA97454D3F257C0E5FBC9145A4F4A47BC743B3D\ -E964C2FC8E273DFB21B78B6FB42F8B6A66DC766F5729F1BA68426D4EF7D5BDF9E28BF39B964E\ -EEF5A880E2F67B8393A57A5DA788B51C181EFD35D919C20518D32425A4050022EC73C080D404\ -F1400D1EFA7FD2DFD8AE759ED20D3657795A4DA020D1890830FCD80093AE746DF9250F2749BE\ -C1143B8C7E20DBEC9E94F69B768DF054C202E17A0756C02D32A008AADC2F009D057AD556081C\ -68832EE240EFBA8F46D6D99F96F66B508360A42B38F0EEB367DF2AE78FAFF7C30B0A22CEB9EC\ -B05D683E3963E7B06EDCA94BEE20C8D991B1931D0C4A1321569679CBA497406F6E2F74B36F93\ -2DF3134B77747D321CF4A19C05ACDC25C548AE81F1676AA2C18B7C14E6465569AC436D46:\ -6F2A05211F8D2800394D5FEB91B7740DCBD71033C4395845528B814C495B9CC7E242905B5C6F\ -30F024532A50D8A1A4AA3E67ADB9B33159767DA566E5E50E7844C503F48BB9647B24ADB996E2\ -EDE2208521DA9B5BF15B344F748E215EA3063A3E5ABCB592F2C04FBE841BCF53A731DC1322BD\ -EE3F3E91310FAB216ADDAEBD5E226AEE12FE00ACA9022137478C2CF93DEA82B302AF5238EAFE\ -873FEBD1F222377DFAA177D8E1E313085AA5B1A28E473C7303BF0D131C5F8188896F2304FA95\ -83ADD474E92924FE1782740CFAC20AB4C2728CA3D0C41F6C369EC1662D166723E0262A7E4100\ -4F41A795EFF54585AD8F8D1137EFAE0F158F9B373ED73DC73DFFDFA00730AE381A71794D48D4\ -2C90BA49AF77EAC887AF0E01AF68665F081AE40757C6CFE430C3996EA4BB2F1EAE8E97413DD5\ -C04F1B1B64122C448F40701C60DAC75E34909B9B8B61895D819EA5F55B2FC6CA5492AF520E81\ -6AC2EC14498891D073FB65E3D33272CB5771A479188CDE2FF818881481A4747BDB20F0A60155\ -7E016C564B8F5FEA42694F12681A7D2906B2EB0DC0DCD8B98E763C5E3334D65B84AD23AB7C5E\ -7CF8CE1EBB34494E23FBDA3D34994BB20207AE5E12BFC95A217F3907565E742FED414060B86A\ -14C710F5F5DC79F0611F2B2532ACF37E210B123C15B51E03936D8C5362B2BCA153B19F7F255B\ -0BCDDD9FE6FFC5DAE45C42FB0277A56FC5F6B56CE49FBFA7B1C8C249E6A5EF497CC7C8D7CE32\ -0BEDC0D6EE2ABD5FD67F6E953F5D9BB025F7853B04E304C382E3BC80D6E5C87FE637E38A8293\ -05348CAB5BE542A7DA8A6B47A1186B6590934AA86356E58D6FD059D333D8AC6ACFD1315EF3CE\ -A933EACD22933C9F29A7455D83BA1A8DD9B69189A181038542026ACD15085129F824475E1EBF\ -76B591422951D96498F1FD5CF93701D2CEB12F466E701B1FEA1D38C6F57DA33A69D0CA041BE7\ -86A045BFC27451A76B0105F00F9640180A97A39D6BDA768D330E7DD5CEC42A78E12D518D7742\ -485717A383B983C8749315037D39A100248087F4FC40143873B11ED80FE496532DA3CD09C5FC\ -1E22311922A3445E07FB84F9924063503ED11369F70CAC8B6CF7D8367658C333A2C421447FEF\ -A05FDB39055F4A46BEC4AC90A2868664E47AED74AE0B0B5604C06CE8C33BD2DA41E8714AA852\ -8C68A84BE11CCFA67BE6F74AB4ED104342D76BDB9DDB8F38CCBF28E118888ADB1D7626122FB1\ -D265ADD42DFBE823E93AAD3EEDE4D472AB139A7DEFD026B758F3669EAFA7A1D99386A5E87056\ -0DB879884906C0CA9805290FB19187AD24E7C2BEC4DD3D4025E7B29667ED94599751378DC4D2\ -E0A5A916DD35D46518451328BC7187D60FAD9CF47CB13B8B4BBC9AD71C064BDCFA9A1F674AAE\ -15015B5EE1BC46B1FE3C4FA2A83DAD03239953B55316F49B5CE605AC9CBE41B02DB59965:\ -195CAE9B4ECBCB8DEBDC6C48 - -EAB25B3642470318B8DF509B4B1939289B9EC9CCF3A12181C8AABC6A72747AEB41A68F69AD8A\ -BFC1164765EEF06961714B7F49D8098088B245E05DCA8E52CC7AC8A5E97C6DDCCFEED8B6FFA6\ -1EE8DD8644BD31888D27F81D1A21C1681771B732747FAD3A238381C80B004244B0A1EAF51425\ -957D2380E7BD777F74833DE0A3E3CEE8953A921F9DB5B6B8B8BA19982C7CC2F8C2005D1BD8B2\ -022FB01A687D9E0DB6298BD42630A9660B25EC35B2CE6385C8C15A79670A23ABDD74ECC9CC79\ -14055063BD762659F41DDD1AE6F7912428A55EF0EE4EDFB257F05BC04C90EB67196608108599\ -887B5FDCFC265FE811ED1A21E71DA52EED2F1B37884BB888A23CA74752E1D612E3575B54F556\ -85FB6BA51743FF5BFE44384FED0832819BA014F613D7B19A046AAAC4C8902212C6F54BFA57B8\ -E9E5C50BED0E0A1F56AF878A323791DA52F173BC284F3BC38DE23D27E06CCCCBB4C1B7E0D6B3\ -F594FFB71E39120076D78EB85722A7EC25EFD39FAF7EE4D020B3D05D6ABDEC9318075EA81995\ -97E9056DCEC1678CCFB0907977BEC59338AF03D28A80669A629A70D6C7882484E2E4A43B9C01\ -EB5FB0E034D8A6E5B54238F3EDC82DF6741055D093F4E43C6AC4978A4F7D00DBCF4110E6266B\ -70F7AE7DD2A93A74B16A3FD7AA249F6182E84094611EAB686DDA57D091CC2E156026D72B7D8D\ -29965F9CF1583CD921DCFBD57BB0532B0B502F4F4FF6FB19DFD858AFC912BA411310122987E2\ -84D9463112C879E9B0DD686F9DB45923A69B3BD200ACDB83FF41366A2C417CA841D9B85B7CAD\ -21681B8992D0243A6C30476B85AC2B3024A6331C160CDEE694D09416300FE4C7FA1B76F05BF7\ -9E5FB6880ADB3A1DB894ECC980A10895163BA57D36060C5596ED1AD1621161EE6068184EBF42\ -719E9A9918A819B77394D25D26481BBE51858A4BB0EB3C693CA99DF8A504E3B1FDC84A497312\ -CC4396F7C4EF1043B70484499CC24002737DEBA24D9AE4C538410887830AAD0E5C15498C5AF3\ -A24597306DD953E6B342DDB22496A66E156BD753F4876C26421CE720E2C3C864982433374351\ -3617A426374D0DC812C9C1568950B68F8A8EA1AFEB581C4F2D53C48654E19E4AB76BEC7C8D38\ -4366F207EAD9D044F8E5C5652A6A73626F5AD08A0C3AFB50DC9E6541E24B9246370F834D6E45\ -B4C8EC8D7F4C64F01EB97D11E8DB1C1EE7A489926732E8C8CBF6873B7B947D98F96698D2F2B5\ -513F2AAD60F481B39D6CB49485633CC81D1B98F6A7ACD09CDC001D13F059C1921B7AA5F7E760\ -05C51291F902E6F566439B9D2AE60A4AF32E939714B55BAC5E5A8E2053AD063E05738D03A704\ -441BCA926D069CA0910BF5D4EE3F81B4D8940E1B5980038339362F08C293A2F28CD0385C28E9\ -0D542C36BDF80172504110A03B3F57EC6F700D38CE039E7227FE6BBC8463057D92ECA65D:\ -7D681C0CA45B1919BB9DB6102FABF4FBB21CEF49BBFF6744D4779533839A414C06FEAC76C278\ -20EC237A08EB003D46AF81CB4354B701A8D0C8CDD6BBDAEBA2C5D7D1D089B6D530B787BB25C2\ -9291239FC3DD2F7FA1BEF55D84E569C40308D792EF44BDBD9FC557CD618B6626157567C45481\ -4009A611698576378B094988D2AA04BDE298B96AF7942A1DDA481546F080BB0D3B093B288152\ -C1DE21C7A6429A6C794AF36D387391A5C71A388EE30D9A887268FA4FF2E8D249FFD62BB6905E\ -7FA605EA81AA0E21BC895B333CB7EC253693A6A035632DF8FB6AFC8DB3A59D05BBAE5A5C49C2\ -0E24235082C55F7EB8573F18B3D379DA4188DDA7DC6751C5F20DE416DEE4C09E8A43D60EFE26\ -6F0048A127617255653B3AF4DA277A11D3391C4C4DDF9088A7B7880F8CFBFAD185FD436363C6\ -B36E9FC45FFDD896E502061A7B154B67D5A0B715AC4B970D27645CEFF88770290A3B9ED84E18\ -F306FF39A9C70E9EEA4DE6E661BF81D6178336E556A36A87024D7C2EBF04C10E19B8E5F6BDB5\ -6C7351B51345F2D6C29D5D1BB28B10357818D482A2015221DEE8798F326C223D8E382EE38B3F\ -2B68EEEDEB726F94BB1A33C5893AC6EDF050A90B7DABEDD734E269B70C5E3ED5300C370E8EF0\ -DE215A69799145B11918D2DFBFF65F80C00BDAEC88153886BAA2219EBA027B6B93B6DD6D27E8\ -A70F7318326E3A0F2937C6C25301A33A521C5AA47E609980C4DC03EE018A128F7A0EE614CFFB\ -F6081A89C0CE27E097EA6C639FECC0B2241B18651177B3FE4EBEEFA15DC588562D08D4F63938\ -2C86C15B99BB96AAE55F841F14ED67C435BDCF48595C0EC4D2929D75B1C4A1833C9AED228DB2\ -0FA1AAC9EAF5ED8664E56C586B7E5A01C2308BA61DF95FA3FCE90FB91B049C51DF7E58141EE3\ -1744FA1536A9516E16BDAC93E223C616ACD2EF48CE973B6D6A123944DD0B3EE161007F3272C0\ -92E953A008B0F1DA7FB8E2B8A2506D762A82D89AB1A60E33D1D96AA189A23F6D475D03F7C19E\ -F77A6290C8456EAC591C40E92CCB5B60A5C5248EA04E6037AC206232F3EA830661A344B82517\ -3426B31A8EFE80CB6C4B9BE4144B48162C63A1B95CA6E3D173D9EDDDFD712D56D9D6215102F3\ -43B35F9B36ACB7566A3BFBDB376F48CDF0F0365330EC35BF414CA33C2919410E429699B97B57\ -AEA59FCF3F21C261286276E9E2CCBB1E50A970493BB1211324473EAD9360C98703259BAFC93D\ -424FD2CFA0DE257BCC90C328F7EA2890AB3398D173E19CFBF3F43902B43C080612A81DB02FF4\ -8D65C214727A81F9F19C8C4E4C6D40EFD03B0F5084A9595A5C5B330652036E611452EF24516C\ -A8AC71CA5B7874C209861A12DD5CAB8E310784E82058E5B574116D6CD88D7CB4C228E5C44599\ -6703C93E73460023CAB06462C9858B19DF2329214ACFFD82EBF2F9ABED4D1E62B38FC2C9:\ -18B309BB8EC6931F8C1F224D9A - -2549472387BADE846341B6E3BE1938D72EEC5E11805ABD34DAFF0E8C1226D5BB797FB149795B\ -1A1FA79D5F24D91A60D7C664D82ECD90803EE9E941AA5DECF159698727A984522CCB02B024E1\ -EEA19AA163A6886175AEAEF0259D1103AA35D44B3D64537992BC1452DA51C9C133F118A88659\ -42FFD9BD48DEE841294BB59308BC6173A4CB9840D4B118E31C479ADE52D9D281A9B97ACD9CFF\ -85504C2FD4859AC73653B2F08C1C9FE2712E0BBB26EBFAAE8D5FF3261DF6C1AA330FECDA2459\ -82D406E607602AE5058242D7040B8A0A0F8FE07131912FFC80895B0A3AA9E3E8E932A5083A4C\ -987D4DB0FD651DE6E00FA13B6454237C7C03D069C57ABE94F2CC23E23E648CA81DD010D06406\ -5CC225D70657A5145F947D4C8EA3DA0695D7DA7569FAC76033E01AA3C2770385E8633327AFF7\ -BFE3B36FED73CCF8323AA2949A3EF3AC72F2D2046DB3B98FEA69FE98B3B9FB9CEE71ECF90DB9\ -0B65B27417A8E1656E8444D5EB6DBDA3AFB8BB527A26C51BDDCC47938254E38D58853BAA1717\ -4CE36ABE1F4708871D41E77F240795CDDBF5115654CF724E0A68C776F705CF1623989B8D2E04\ -7EC25662CBD1075FA6CAAFE7D911C61E30604E3361925B922D1481A071918F0F2F28A4EEE8CC\ -BA7FBC6FFE2C0EDC102B0BE7361761E6C75B1441B9D8D22898238CEA6204B060BA4CAC3F174F\ -B103947C08DE40753F3CC319E0EF163193173560BC94C0A24646F298A3F24FF1C4E6D322399C\ -6F92201B288218D443EA102CF2BDCB016FB7F4E1EED7D48D4316081484109C4F9588F8D909D9\ -EAEB0725F6EB487E3F12A1E653A70F3EA5542F68983018F5E9907BA9B3AA86335FC55202937D\ -0F45D43389846C51A121346AF692A00F8C4627A3BF58451EA0E8EC047A5D2275F944F67305F9\ -F46E58B218360810C94CA8295BCA1A3F4997133360683E8F83EFEFB8D27EA6448AEA02F5507B\ -5C1ADDB848B5FC185A934FBAA03E6FB058C164FF4E0304E388487E1C37BB83D3FA64E713565C\ -E976F9D1C6C69BE7EB6519E67CAD95E90D4FCAA8AC90D43A2074B41E0A6F7773B618DAAA1607\ -5104D9BBBBD97DD219530EE47AB277AB0F5A8378F6345E045CEF9D9C625D82F568912C131140\ -B98FC8FD5DE20D5F2F33A542129EE85D8139D1D49FFE7C49C412439F9B62528A1D1FDFF6B7E2\ -FD645E63814F597BD52AAE1D90E0054B6B1A7D11D3A361A46D0F12FBE93D236911D2A2D06DCA\ -1C9E71B6A439B75A5513077D568EF9CCCED07181629277AEBCBDD6547E0163BAD4CCECCF5CB4\ -2A87FC1764AD39F289135557B5F3448C8903C75078D05A8AE2F77E60D5FC2BEEB2749EF604F0\ -5442E1DD139C97545456351E0CF51248E9DDB5C18E5FA8D66F8BAD3F87EBE09D0BFC51402096\ -0A4EF76D357EA5B7338898AC6F27C1259A52B1687900BA66C665D8351777298881A7917A:\ -CCCF1A77029D9C52B4C36FB1C15EDC2539FE0A4D6F51CD45E613AFF6D4D71427F104DF270B74\ -CB9370FB847CE64DF227D9CEEAE19EBDCE1C1A281B5D67EF617528B86BC5142E4AB877236AC2\ -9B8E290B941134B8C6F7FFE8C4AEFF033543E30B0811624C77E0B5AA06988B46EDF62AF7EFA7\ -1749BB1E18C302B5254AE3469BC14C640E01F38B608E5311C62A47D2FF307A7C5BEDECE1B8B0\ -1A56165FF8F6D68E979B5C35DF532933635E4D2A9E4127D2B7CBC84DA74FA6E7FB88A923D794\ -ECA14E45C33F728D5FE66A43965E13F535060CBB2941979F934DF418A5105F2AF9C587B0260C\ -E7917A06C03FE5F345D3059FC783DFB513378B215D17849A671089A3A5A136B79438320FC79F\ -05D03F96910BEB415B744B28B80438319BCBF2681DA358387201E74D68FC65DDE18F7A7CE9C3\ -8342E8156D685CEA43087B5811ADD784413F4A4898372522B341D40EFB7A4F37BE9A9AC48217\ -7075E0CBBC95A4616724A2697566A827F18789F4A788B6FC5B98EA8C52D4E5F57E89CB4F56A2\ -975017B39C23C7CE80DDEDEB0D4B008CFECE71043EDC59AFCFD7B880C246F4F4370D733D7671\ -B417A39CB1AAAFE237EEB78A84F3DCC396E12694FBB841C8625D68FC3289F56E99D0BB17579F\ -8419E0676C8D4067DA5B4E0588D0B0F9F2A0568740475CCCD9E1598E905F5D6E8D2B3FDA6126\ -CF3C954CCEE4997BA4BD27EE1486156362B19287AEBF1F6965796FDFE2EFE976007510C0B452\ -A97035A913999F690E43D23EFF7F97209E6FE6FEB3031C5D59D2E03CA437A5318F9AE8359045\ -8F64D39ACEDDA1457BC9B7E87AC666773580EB2C2B6763D98DF65B6CEA506CDE22513090F35E\ -E5EEC1511D707E271BD8B279B0FA06487F9ED4E462282BDF4E532231F9465D5084772A152E50\ -203F185335C02CB65E29F6FF02AD2C0069DA80ECF10C8A8794E98754929CB2305E2830B457D9\ -DDFC7C8589A91959373279A170C7D39B25EAAF3C0A9CD4B5FBC09915C9ABD9B3BE52B1A645CF\ -E72ECC29D86BEFE3FD4EA60858C674F4B80514FC223C9551BC5080DCB55BD3FF5C7D6E506824\ -236E9168B43D038EA0899925318CE4AC85BDF007B5586DCBC226D18B33D17D6A2B66F478827B\ -CED487D62AC73AC4A1DC503045DF98B3C5C60ED32B769E2464EE09D212A8D02A30CD0841AAA8\ -EC3F21EDA30B2D6A2B87F3BAAB38AF5B5478E004A9F3B1EFDA02C5024E8C83FBBDD780E7203D\ -81F08FB024EEA7508BB554E98A0270B732445E2F57D50B82A943BADD2729CB728E356F8F6456\ -4CA55B545332BFC24FE5C4FD6613E5F82AD6163A9D45E22E3F871F7C7FEC2C784E2A886E781C\ -3B45CA32863C729149714EFE9D345E3758F9BA83E25677DB261BED30EA50689FFE39862C225A\ -605897779FDA656B12DADAAC515B4D05453B4DB307D5D441BA48590D0215547A024A6654:\ -00C03EF75295806B9C351F89FCD6 - -40B8DA2DBCBB6C202250FABB2FEA9315D78BE5208437616A16646CADD9D0B0AA2239BEB7E698\ -A7C764CF33BE1F3A783F0FEF0746253DAA0DB5C912440C58A8B4D17A4289FBC819E1EDDF2639\ -5C7547231CFDD2ACF6D2CDB9DB04AC73BBA3841E5BB476AC18E39E010DCA432C171D18CFA150\ -A2F8C913B0F00BCF61A976480183A777A1EE9280075319DC3FE8BF35113AD2AF6A8869CC6372\ -89D8845E2DEAECE42244DF5F8C3610E0BB3A16089D32A41887DAEB15534259A0852555AEA52D\ -7BC7F4DA9E8E93D236151742522873153BA0E3F083F473C0F51BBEFDB322B34BDE7E9E3B2CC9\ -729C48AA3C6A27C54550FAB48F805FE4C073E1EE4B593CA15D6E702154B3825DF5936E97238F\ -6184A7FAEB6B33C25F9C5E92009A0A5684F299AE7DA60B84653B4233EF0254726FC4D2319EE7\ -3644E510625F80D02FB4D18D210F019013C9B76421BB833DF3A852548F7DFEB8FFFF3168B326\ -96852B85B7CC62EAE28D3B4BEFE4591BBFAAABB5A42B7B600F48FBC8A56555499292DBAB37BC\ -69D93BEAEE417580EBB8120BC6016E1031C9FFEE3BB793927B632D35E2573C067D3200377284\ -395F995FC6FF47FE26539A55D6697C5B8C52FB1836B7A8C0A691DEBCFF4F9DFC32DB43B3DB58\ -26D4DAC23A1332D2F8EB52DDC4D0CD1D48A59D89A168EC5DD80D3389F88694DD53464BD5BEE3\ -D60BB0C20805CB1D62BF86F232B0CF9CAF75D2162AF79980CC4989B6F0FBB505650EEDB31102\ -0FB8F3844C4EEE994274E190A42B783D01C7DB90DBB237713E38343E48D53D923426EC428491\ -C446421BA13DA837FDF7BB1A3810FB05670760F9009C117CB02E2FBB51E1184402FF351EAFD2\ -ADB05BD0B319E481B234B0F1512308E13C91411F9C2D983B615C48055CEFB1003562C1D0B29E\ -88903A6DB2815C8B5BF146075CFA14CD8CDF59DEA035A7624697B1ADFE64A8BE8980D26AE531\ -AD9139B1F9E724A2E431D4B170F46C42E84186747B163C39A1D3BB3C2AD0D73E2FC19C7E1185\ -E40F8BC81D8931B2A86CC56A4A4B0C422031F8B93D5BEB68E3A26BE266F737DF729FE815B08A\ -2877A6518DE1B753F4DF16CB655C0A27B420BBFE0DC997FDD7EDE4F95F04F5D53701C9FAC435\ -3D4D9370C9438F418231C593FBA37777BEE9F42A912A70FAA1B82B711300E84B2DB12E872648\ -EFB2D91B4DD25F5A0B9EC113F76C9410C0A43B48E70D7D37DE6F505654BC209A42074E3BBDB0\ -4B57C1DC2C15033D60666C49D97EDB5649D6265238B21EAB2C84E0B5205BC671D457BBD1BCED\ -41D57E07304A72830E26DBEAE598447AB16A767DEFC3487487880A81DE64DE84CCDB06754444\ -5DABCAFC048CCEE7E5AEB6782EA6F1E67609635676A0F13830C3D5291345090C822513FEDE4C\ -DA4D00137BDE30683DA84F58324413151D33099C1869FCE3660BB6A30E11EEFBAC191AF5:\ -43BE6EBB5571E9AE73D0A4F11405E5A09A248DBCEE76D9FFF09318E5FDA50B86CCE4334E6F0C\ -F79AA44083AA896488ADEBA02C038543F7ECA4DA5B5110EB3AD4D70DE2A21A32B568F05067B0\ -93697A1C715FBB4685E622ACB8F3E6FE2C9AEB11897969395C387B25791A648C7A697110D578\ -7F32DB5EAAC8B04B24A1DBEE72983054ECD00A57E37A5C2169D19B2EBE8E76F1A99312C6D119\ -11239578C1F2009DBC09EA9F38F706AC5E59BF1DD489AE38F7EEBA9692471B2F342E87A4E794\ -BE9BB0497546B9D4D45E381FF3D45500EA202DC2A680C16BDCA210335BAC87D274897CCF48E6\ -E813766AF5461084289CA27FD283561E82F144CBB08A704647E980C3795200C465D16A7668B2\ -238E70DA6A81D93DF64609037D22CA744E7562C0F58506B899FF1339B93371BFA5F0230DA588\ -3634DE5C5623C67232358D3D38379B82EF5A3B08BDAFC618E92F3E8E65B179822B2421A6FEA8\ -E385184F17FE136CC4D9288E2AED7F4BC8D9C26106E40F8AD7C8F158906A0579DED7181B04E6\ -EAB501DAD016A098A8C75D159CC2898AAE7E67E2F0D3422433C4688C566FC0FC214628F6BF01\ -26C354ECB7A626BAD22878764A370F20901B39A3D16E9E6AAF9FF74A532712DD9A4CE8E24B53\ -CBC58DDCD96B41ABD04A2BCB4A6B968A053D31EA7D8F8D656AB9466FD46374E452ADCBC69103\ -98441669A1A51E1F80514FBA635B807BAD7A18D00F0BF39E44C7FFFD97B2083C7361239A6773\ -1A1A68B53829CA92B0836F94B76DF5CED8A30DCED3F6D231C2C386D6FFC86B9F556EF871E0AD\ -C52D66AFEB91CA512494BA5ADC302B5D30F7F84205F593BABB81F07C3C5AEBA649E40CF6EC90\ -3350A01E30D1C24096D4AD06462E914492C0E342CE333D1D05D0089125C04B82676ADEFA258B\ -A8C925E57C221C5FD169BDB26210F147E56A1DFB1697E7C21F8131B9C2C4DC5D5579B8E7DAD0\ -4AD45B1E1B8E2EA6A1594DB7034995653C9740D05C13EE79FA642448F1005B3DC1FB2AFBD2FD\ -4B7C5D2CA9D96A3F22286C26852CEBA0765AE8C11E189D8E979B385A2DD77AE9DFBEE9EAE48B\ -A0A068F9689099D360EB4C8F99C1978D6DF0F2F3DD2B721A9079D475E0CD066E287D6708B924\ -B78B8619E7154571B055E6D9BEC0EBCEB74EF927E730A962764B09D8CFFE90EDBA0A782376B2\ -C0E9B840F7AAD85F8374C741A8D65D3D8FD2A4CE9848BC6F259CA5D01151C11E137D539991F0\ -BEF86854077180285813C8FDB5E65850EDC53A4238005191D798A0876BE174980E1C8FEEA43E\ -53EAEB2CBF02BC69862D6B9771F79BD3FE544835D9AAB1380069246C930BF019FC0138B6ACB2\ -BB330238DF7848B423964C8476A8E5A53E0CC259D4D58971E0889FF10A04357BCE979C640FDE\ -60ACFA9FDC8160E78490CC6884A637BBEC35D47F3C5E1E93A3198EB398C47850FDBB3600:\ -1FF724B44BFA454A160460164B97E4 - -92F94DFA72C653A73AC33A740CD9C917466C163873B9D90F4F4D6C8FF427BFD0F24350EA3491\ -783D175F73437D8EC634AB63AB445F5B30BCCBE09FA9825AB28E326FC52CC33EDB529E92E75B\ -9D5E447BBDBF9BA7D6F04967E90A56C144B5894D3A3C4EA2FD61CC59160E656B7AF60D6510A3\ -19F043F0FACE3E9E8CB195DF5D2FAE6D45C3300092E26EE90E1E714F41F165DD22D27026A3D6\ -8E150AB7C6A81484E2A39458849BDE93F2654A35333DF2DE42291235E2462647AEB37000118A\ -358B9A3E1CA8130F7B48DB7BC2AAF7B5279B6995DA28D8942EB41470E30F9885ED5278DDA22A\ -69088BBA20772AEDB1925261B7480F73CE7837AE3FB198E39364AC30BFA6C20E7A8F95D0A456\ -A20AE83C028434545EDC952E091B12537625B9EB8487FF705478A34F587F17DA64EEC9B0E9CB\ -B609B9AD290A6553709EAC85D50CA733B35914FFA3A39FA4E0A0F53D8E2AE80D13401C328F0C\ -51C45EBD0EEA1E73F1CE5DFAC5F04BA4D6FC92CDCE759B73A30515F7EFBC206FF5D2D5F1E638\ -FC827349FECB9221DCBEF64DB66387CF2BAACB9E97ED6966DCAC0919F1FB2E0A0044E48623C3\ -1E47B40DE61AA82D703E5ED5CC7984FB73F3EFCEF355ABBC5A75C4CEEAF34D41139A1DEACFC8\ -416150A231729C3A609D2976C2482D7B77C73B27D8B20369426F525E8D0A32D500A155BB4E2B\ -839BD10556CEF79EDD1549EDC8C78FA6718836AEBCF2DA9D5D182A543C76A37168C7B1CC201A\ -FE0559D2995449EDC7E11EEAC81577351684871FE7CFF80642C238C4E376A7C61E8ECE2E9B80\ -97AF9ADE84114B8FCD4337FB0832FF59E9B6EE2974F5659F8401908300FC99B93B5703B773CA\ -EA586413009982BBFA293F523F3981E80712F471123A7235458CCC242F4CFBFA2DDDF55084CA\ -62819D4CF4F01020BB2586701AB99EF0E40CFF2AB948A9AAFA44C1FC1EFA3D9F2F47F91BB8D6\ -45EA0699051B83A61187B48F1DA5FF1E9347F8AFDD042BA30A193E06636BD8D6AFED22A8E67A\ -2E9B4BDD7FBCC80492F9D37FECB107F44D93F4C352A5CDF6A603F3AB39E78062B046F679D6CC\ -80D87CEE0F9F718CE8EDAAA6C8B2D6C70AED59F58C02E1279F18D68928C4AAF2688E8D283002\ -15531C08C8E8FD91DF26C06355364684B27826322A0D247E5866EAEC66AA54A30C97E71AF538\ -B83DB2F89168B0FB6737F9E56617DDCC84CF7CDB9910CAAA582B2D18CE103D1466F554287CBA\ -C753FABDB92D4B3500D14CFB5DAB5BDA49FCDDA541569DB38B046C063B2D1DF35CAEFC183C71\ -42B4A8FEBFBEEB25671E4B7844E82D7B11ED990AB4CEAB28C876764C1B3510FC50D4E4DAD614\ -F8928592ECEB38FCA604C3ED3888A45A8AB951FADAA962BEB81F5A517821DE7B319DA9C6B297\ -D52112F5BA0FBE0242237082BA2B0081F21A3AC1EDF48DDD41FEE7A227D0A3B26FF0DD73:\ -598BFC4E02D49D5D82FF1031F230B1E9D289648EFB03F8D9E7818EB5023066F4E5FD2A1E401E\ -B20581A69C2A084E0DE4436AEAEDBEF9504C7C0560FD2AC6E94BFCEFD9703C8B959BB9EED253\ -F4AD7B6BF476E7F122B5196A45410C0D8D53FFCF7CA72DCAD7E3359ADD694EAFFC5BCC4D062E\ -129595490147C070FC21BB903F8964F234D69B890527985CF28E003B0E82143F87F91B7042F1\ -15AEA2CE15B49F1E8A2A9A6DB2B0F0478847880418B2FACCED2F54E7BD30BF766360871EAEF8\ -1758C750E8D1B032F299152ECFFACF43E726AA158E26EDF352B185DFEA6A452E0EE95DB05CE5\ -6E5FE2F75C1EAC692BFEB433B17203118BDEC883591EE735B889DFFEE6880721D11959910A3C\ -0008D0B148FD73F8C211AA4CCD86E1BFF6C4C02B87AB5DFD911C00841289B5969D481B798BC9\ -E0E91BF409C6C1F84299CC31EC2B7ED0A84FD1D4A26244EAD85F81121949CCE7973D1A333F30\ -1269A1C437CA998A225AFA8394027381D37E598FC00B62E58CD062E415CC2D6CCF325CF44FD9\ -B56EEBB1F9BEFF521710496C63CAC94FA1095B41745DD697138DBCD71C096915874615DA84CB\ -97FAF5269566B4530744726C911AD5D6F078F9812091C5E6B0523FC9070AAE823B9226CEC9B7\ -0A36465779D6766A9C4711B403B207C9170E1739E56443FDDB401E1937F86E8319C8E093D01B\ -AF7A9EFC41D84DE3D20B60A69A9D92591E1D91D4209E987E5DC413A65994EFC6DACA40E6BAF1\ -5E61495043FFD03E94A7DEC7E98004B93822FE56E4FE51392E24DA1F401EE1FDA7AED2EAB149\ -7459209FDA614B3A69DE3F3B6E8222962A5B29F0A28859254AA3200A1F59DB7F36AFE39E0F7F\ -2B89011725672FB8B3F282186881476F69C782689D6D7ED426B1D58F36B3F2E6372BFBCC89B4\ -017DB81D350A23F59FAEDDD3C3A125A6AB46FDF3E8C12CF60F850BF651FDF60943AF01FA55E4\ -0B4D9DFD31442892B1FECFD0C7402DFE97F15F33AF0A1FE70EDB72F555594E67C22304169913\ -6F9D011231AE19CF6F25F5B400683D07B2C5E91BAB306EA3D7BEEF47F10A951BA2FD7022AF66\ -8117BA672D9A3183F908EEA212F5FBE3D7BA26BB0DF0E1DDA4FE80989659FF10CF5EC682E431\ -D7D9F0F232C39059AAAFA376584BBFC7AFED07FAE0CBC9B241BE0CE4A61649D97536A47CBD2C\ -875B9AB51D255684CF74A99687E7DB759056C46ED1F826ACA2BD9B0763340FDE52236388FC68\ -DBA8F620F07D2452E7A8C67177B1A51C74CF8C142E33D89B78792A9AD20A7402C963ADCE6AFB\ -C5D36592AB284BA52C11365E256FF4E9309F00AFF74629DE4BADD779E1776A7D797256FC667D\ -E3C2D11E27127FD24020C84FBEC99BD8AFCA2BA1A3641B97DCF4594CA0DA9BA814D4F73349D7\ -E04D3379C548245241CD5EFFFEAA0CEA8AF3A88162B9B83B743DA7E5998D8F00E3955F2F:\ -9503468A21F5695D3D070FFC76E14A5A - -19B7000075DF02A525965B3F59A35D09F38FC2FEF8564F7DD39C34D875C692833BB9547E1606\ -5EF7238AE95F3A39175BE680C63B91AA592C9DA6D6AA31372F25A3B95FE40DFC0E9B4F45C703\ -CE60E7A2F3700D81D7FB70CB958F58A841E0E13D431FED62A4298D73BC4D0935E921B3EC670A\ -1260C20FF7557609166D40D32A59AA67682173EA2FF7B21589A37E05054C413E78CB3B4CA675\ -A32B32CF92A63C3CB115340DC75C3C8E45F33AF4B31D8B4AF466E7E054AE8D447BF359E5BE94\ -A34B52D1FF16DEA89AD84811159D7A48967A29BD8840AF80677A15DBE3912D2BF2DB8F998B20\ -516B2197B7350967A5C2185CD6A0AFAB165CDE4C3D9CE0DE066B25EA297FC710B3CC21CFF4D3\ -2A7F7A0529DA626AA0A3B17E890D6BD1CD6E9FECABD07B8DC7D0860E45E5F3A071A1AF0D461B\ -0D9C94A54EBD84EE1B6D8F0FBB432C0A73212ED19B16461A5B30F3257C93060390C1D5A81165\ -F8B341BAD0057034BEFD47025024E04342099F78973E46F6E3946E7AF975856D28EAF281D230\ -77BDA73F1B908B6B88FB40FAA0164B3D6C8A32BDB61BF081C2C043045D2B2126E34685C87721\ -126DBCF2D226E2584A2C1CB67676C06EB19C9BDD7F4DAEB02289E748C0812723FE99BB09CF48\ -37831B59420363A5FA7E7877715273F7C48AF2CF03050C0AB2AFB8888CAE62F5DC8B705DDD85\ -1B8354A30D9323B77D9BC4167D2715AA21AA6D566F1392F574B5A23229F9FEA21EACE9736F32\ -3553C2A6F294A4060C7724C5D2F8DEBB5FC7BE61AB25752881ADE4A6C1C1B9230EC89D181C2E\ -DCD9C0393BB0E5C22CE3279B918D990368B95F9D84F98A7ADF09C4C8DA5CCA026D10A4635131\ -0F63913EF23831BC66F7B405EA97BBFA8D74C049C328FFBAE1BEF8AFB5CE8FB7EFDFCA514D45\ -036BDFF84045A911814E5B28CC44CEACC7484BE3C399028E31A585ECA083EF18182DDF5E95A6\ -8C86BB8249FE534EB66625CD7367B032234CBB52CC5CA4C49E233148156D45BA7A80BEBE4DC4\ -BD412777FF38A6A9CA268ED707C86F1C9178F1C51B69F3BBA9A751758AA2A66240ADFFC178B4\ -428830B0D6FF04A2183224B627DE686526D460A4ACF890DAED0E4D2F181F692AE66336AD4B40\ -CA11302F0D4FF97AA219B60477E2FAE0A8682F4B87D4507AA2EE2DBF61F76E8A289030959812\ -D5BF2248271E10BA6D83BDB71FA6BFF16694EC5F8EEFAA2642B3C1C661BD3C60035AB7E4AFE8\ -A1361D2EB0845F6DD37CD5F8EF5AE403D9436DAB73F0D3DD408F9AC933442405B3A4C2156EEE\ -E9E4FEBCB41774A96259B7C45F513AC24A8B8AF555355FACA9732A8B95062BCDF1A18E09F75F\ -4B3D7538117E8E8B449A212A4ADCA3C6724799E3B2AEE646F31A3EA29A211A4209F93161E876\ -E9138C4B6A4B654A08184A4C2330F2D7FDA7F9C61784E4FF04F87ED6F30D95B857B022A9:\ -4D8DB26DD443C4495849B1A9F05D59A64B88C3BC7C6A8208E02571799891D1BB268DF842E162\ -43738DC811CFF37E10E0279C828AC5922191D2282E94B551896B6C86EAD7C05A7E25CB5854B2\ -7D1A3680EE75FF75E5F5C2E421BD7F3996B19F5074A2DDC87326F7CDCD0CA4E56112C6242496\ -1FE8A8FC85CA6E56006E5D9BDD1A29CB831B9421E89C2038BA958BD00D596CC7F6440C61E922\ -1F3642920ED9E1634924986D9AC1F889A8B02819182E1EDCCD96F71244A9BFAA2097EBE53B18\ -222FC15B219AB3E410D7272C8BC8CFEE1696A8B90E2B0F9D4044728DF3BD8CCFF988D5C1FA67\ -9BD78D51453F796022E7CF1AF96619E999C3A574EC2C2822D93B4E0E9FA31C26429019F59D36\ -2CB996764D2246A8DE9398043BCD292A1E492C794F7E1DBD02E3E0E73E7CD381257C4402A8FC\ -6AE3E686AE844241F191DD557EE254E1E8AAC99A3E946682D317563C473D653DF8CD5818F615\ -651EBEEBFDB2E8E27F744D4B830C72B69B235EEC4AA2431F8F35B8C73C359B718161444425EE\ -5A70F8D965FEACD187ED4557B56260AFF9632E75E0609090B9F130A9A9B81E53C83AE23B36AA\ -78ABB50AD0CEF64262D7B106AFA9CC1EE9D5F61A6EDB232F2152902BF0AD86101CB7DECAE8E3\ -CB63A515468AFB873D8AB5C3D3F132C2BCF29C8EE9C98E7FE3037DCE5E1E365D0F5BC3319089\ -2FBDCDCDB1B9C49315319DD3F508764EE6CF68394D46A9AEA9DFCBB03E3C60E70989C5CB645C\ -E060445D2FB569F8A7176B067423EF657396CBF0475F2A79BDF714499F642A064210A538EB16\ -2C16F505AB6B2C101DB317DC9907BD8FC42CAACA246E8A95A2DA8270E2F32299039E36CF1AD0\ -AA880707318D3D998C5DAEA87A5746C754E3B64D121E3D22F2359FFACF08D9C5EA0AD2D6AB97\ -60B4189CF532686C8E137255C220BED27969D24AE1DB6785355E7C789FD8021075E243FA9641\ -2D087010B9FB20B10479D055F7B7D631F4B8DACC3EB5DB5338A94775F9191D8361D095E8B29C\ -56A8206E04CDFBCFDEB8AC953D3425F41E1A6E313FDE132EA0425BE42BE8F4903D3091B894F0\ -8243F59760CD9F3FAF8D7ABF567A927A99C8660AC55C37D2E0BE845A91A47AB971C684A28889\ -BA53A2CB81072FEFCDEC751E7D5A0AFBA49E31A110B533335ABE1A7DD479E20BB84B73E87BE0\ -C6255F9A961C68BB3648309D2F8BEE5F24D4A30B8690890F0BDF36980981FCC7BD98889B8DB4\ -087C1D0C20022018BCFB0A1B22F330F0AEE6AB795C099C214215003087F337F574DE917E8595\ -745DAE00494E4339F634F3A2E98F80380A05F9FB871C1D14719D7E95241ADBD9E60D96EA5097\ -8234BF71BDF5330B2793B8E546E075527A0965E60064C8AA0B2CF5D2EFFC063241D4363B1893\ -271C6B3DBDC266FFC7B9D6644003C1BE5CE1C0F78A7FEC3346E31CE674EB59046327070E:\ -165013851816370C99C2B47DEAE6F41DFB - -6ADECF136BF4135FB584DC375E92B88C14F8EC184BBE9371A97045A7C3FD0825AABD14A4FDC7\ -F587BB5C0A7695F738DCA4A3CF362058700F4DCDD4420B6C236B5B527FC66CC6A13543A51CEB\ -9B42B21C9EF4B368B541EB880A2AE8A7C3D9A94AAB6C34739180F07645B7B523B3C05A97AD09\ -3B0EB7010433BA92CA744DC5190C05F96100E79A3C264A4B81D114CE98AA84F6B1935EC21C5E\ -A5035756C10399BAFDC1AC3A42BE5611713F5FD764F7A6CF3DAA97B36733C1AC71F4B4C3E078\ -D95A05D87424689E70CA8536233D733FB9C9AF9813AF8670CEBFD81DA31D3F0233E0B8AC6CF6\ -5F720E5A8EC0447CCF961A25A68A1E50D2D1D0F87E0089EAC17D5E778243408A9CA33AA73426\ -BED6EF146FE083197DAFEE1E7E08080A82A61ADFA9E2B69725618C3507215A9F599B29E43E89\ -800ECC4AB9D6050B094D4E22B4528F9874384CCB2B87D91875897544806A1BE8E141EC84B9B3\ -410DD33A1DAB0FEF1F65ED0B8CF2C43307D86F210B652E6684E6AD5A5CDF581AC46E5E7CFF68\ -E80252F1CD6A8A73D13855D5C338B8F24C8A52AB4C635A7C895B365D296AE3B80AA73A514299\ -F996A574D7FCED7C249CF14E3DA02F36810AA148FB2FE42BA08104FA3C04B2D363D17FF53363\ -D2D33FBE9DBA4777BECB70692BE9DF4A110327E89B1E322B9384655E941A12E16BEB88EA1600\ -A5657F5C699407E132E7D9AE03D3F39D3F0E3A0FB459761361DF949020CE3B75AC49B58047D1\ -D818F3443015DA8316B10DBEE7F8629E901F63AA8D2EDE58E77CEB5C0A94B05C4D87ACDD3B97\ -6EABFA39C4A5862A4528166364CF43C608AE1862158FDFDBD599F8DC1B67A3B6B6FBC296D538\ -78F5A01F5DD6C5CE02AB9D4BC7563929BBF3BFB8C7A8F603925E99F98E02C3CEC3130959F6CB\ -9FB0CDE693A3FACDDF06A33E4D766FC7E01B3C67BA4826B0656BD7BA9E7CEE5504524F47EDC0\ -642B707BE5E11ECB84908B95488848871FFD96DA278AE7176BD8704836E248CF9F00CBFCA2EB\ -EA155D240F1708112AB0F31904FA684C3AEBE5B9F5486D8EC0ADD1C9A877F3B49E5DC7305F99\ -B0DA97D453EB9D1ED41DB5CF025100D048404951DBC804F9152B976C0B08F02D0117DE4FF023\ -1158697E4DF098D3BE1395CA873BAEE64C36FE3138937EF55D5F098276D20EB4F5D19F99DBC5\ -FB88D57890DB2728EC97D1FEDCD38F1CB2D05FA103B66F591D37F4DFDA80D7F11378956012CA\ -2F5E32FAA082565420EB91476A337CD813665DCAC92FFEA96B4300583C6461C231C7654C8CEE\ -DEB775FD968E5B6F2BE3A3A29EBD82AFC4E475FC4F71ED41C6FD825596A3E1D653F09DF2E117\ -1ABFDBBC70F69A7AB8712A03A807EE56CF0A2E2C1077F8C7C5C25FB1E981A1F837720742D5F1\ -91D5F0B8C6FAD60D4046794F932A03956CC5436C74E9400C6F40E0F35CF54939C7851B5D:\ -3142889174F9F5FD84846155E4A752B91E7A9E549EC7EB806A046E3ADB941AB1A188C1BD0EC9\ -E93D60A1164F440D0AF639CFD40C6E17A20B24D2012479FA01819EF6DA4306C0E642A0EBC866\ -E0BD1006643D120D90C50B224BDB742BC398351FF3D64BB7CAC968615CEDAD679F64C304B49B\ -FC7E275DC66C0B56817F810DBA4BF8CC0F9A71A26AD4E784918F70597474C3C2D7C526F4856F\ -5BC7A939B5F129118DD1980C2044C8C843312C0DD803E9618EC77731F0E601DBD62FB0A4B2F0\ -9DF129E054448F59C965DEEC1B04E1865662FA4BFCDB9DDED13A8FA7A6D594F2ADBAF45BCEEB\ -EE017D04FD1CFE071012EC258647FA98BAAA9628F37460289AC598962C1080A33E31F2ED07E5\ -10A15092E0374BE6520D892F0621E95D4C7385D874DC8D6A5B79B18E942DAD742073B67AAD20\ -7FF9C7F61CA858157C9164592DD268C6627E7873C13831BE7FD0666FE8BCB7D2BEAF2FAEF2C1\ -FAB74A8F2B8E8964BEEE7B7CA9F4C3F58DC3242AA6E40991AE32B082BDAB5E784AA9BE0C69CC\ -386D4074D4125CBDA87C40FF4B6B563FFD8431EC4AF544DA3232D78CB944592BF3B48F912F2C\ -E5B8872631CB34FDE7B204C0E661FC9D5EF02070BCFDDD4EDEFCAEE5DE676740255BEE02087B\ -8DA08A6242679838DF4263EA73C61FB73B5423427DECDC131E1AB0A485C87ADE2A3E6A413059\ -48010B49D03F1AB428243CC98C43407BE41B715752E9A7B4342C21B16EB9BD740511C75646C3\ -C5BEB0A8A66D2A640BAD624387D8B0889EFB7193642EB0E8A7287EDEADA7DB365202C1645B62\ -2B0EAD1A8BF2290CBA6EBE9937428A61F3C5C843997A72C4E1AA71622394533630EA54436061\ -EA3F34FD4259CBB3694BE5E5303718FEE8D548F6C9BF03EB82F5693F4152638A66116249E32D\ -68F02973258D516B9DA2ABE8D13C5F189D79A61284B6C0F4204E6FA9B8B7F0401E95B569C460\ -6F3E5D8619311129BE3D63489DBE29F47F4116E786A1312EC53540FDA97F8B2C118541D8660D\ -33BA282B7BB43AE1993DADF500394C519F32D2EC5BBA04A1BD02E9AAA084E127736C7486C878\ -C1DA4D82CF94CA06732723197A0718B99FEB0504F01C8B7BAA2F09BE0DF739658A703ECA0098\ -9A0B608F9FB4627D56FF08009DAC83876AE0856E42B24B3A5DD6DFF8D83CE07EBA0F21B570C0\ -F206238D44E966D63DC94A2D715C9A56A7F99309F8A512801D57000BC59E57D2A856CCEF243A\ -C153822FCBACEE87C41A75153B71ADA7B884B75AD7E5010FD3C9230230A2545E784FD029C0B8\ -6F81DC4E6DA708F03F6A5167C5C793EB8FC29F51A3263D67457A631B37D65769BC9A252B761C\ -2F3E982C4E9F1CEDE6A7E3736DB8A7433FC58136560AABFB36A2C3495AA8C1E0EFE79BE95CA1\ -C93F3857A9D8E8AF64978D4B0814C480906A3CAD1F34FE90003B2C7CA883977ACC62D148:\ -BE6281335EA5230E73E784D383537496C36B - -4B5B723AA28E9E0E919A276F20AA4375FC4FE86BA5E9A3C62BE3A5CCEAFA5D9245D4840F5CB5\ -0B75312CCA8A65BC43B4138379EFFDFEDBCC90E6DAEA4BE65ADD65C765AFBD0D4D76CEE405C1\ -2C56DFACD8B17A1F4C1F91E108C30E529B8EE8544A8B7130AECBD2C208BB841F5D50BFE6ECA6\ -D262BC2912A1FB4EFE644C9E64FAE643A9C8D554B6DEA630D4BC2112E898CD8C2F9BE95FAF38\ -F7263113336A2FD99D2FB5F3C1D0F977CFE561019C51C92A171D7E271FEC0EB225B55A776414\ -2754DE8A2F9145BD5B9FA8CB9847D3813FB5358043799C7E3A78FB7DD8938FCF4E064D79782E\ -01DEB5CFF083954A687EAA095169E02F1C8CC3B5084617BA9B89D542EF9B93F213DBA1B4ADF4\ -5B87B14394E6AF7C17C6D79F136DCBF909DF8FAF62AA70726998CCDAEC519AEF238D71FC031D\ -CDAB3E79DCEBE2A7A6241207FDF5B66916CE31DBADE4093222B0D1ABF69A9FA90F9BADA3373A\ -75F18625FBCCC20318B7B7C1339CFAE3122A7AEAECBDBF807D0C4C2BA882467E1FB72458B70B\ -31BFB10451202CD10AA31E12587493E66B5282B2D8FBFAD823472BEE1A66F63F0471E985F10D\ -A9FD43B7ACD6EAF23C56AFFC83192A383D9B69ACF3033A1216EB9732F88944334EFC31F81892\ -588F1D197ED9BCF0DD40F7EB3CC5A9C22CFDAB86CA0C89C638D1035C978A54E3BA544EEC2AD4\ -6A8D57AEC61E534139EAB0ED4095EA8CD5EB132DCA6CB7F988C7A6E0B9DC9D28F61781415666\ -036C39304A62C6482B851819F2E0A513DAFD2CDFF8C8EDC8B6A3966A2F2A9E7BE68655CCCFC7\ -68FD92DFB3565A28AB967CB569F940E09FED962BB21515D5C753ACAA3AB2F76C1FAD84F30CA9\ -5809772032E23E2FDE043D563FC07D1289989E9859CDB8074B361D06384C295B2943182D7C46\ -2E88E8E0C599D1377389602CE931142C5CB30AD4DB3AA6D01BAF616EEE1922379B30127C643D\ -59C134298BFAA172376BDEBDF0DD47B52879172F96B766E30F669252D126E5C0837FECE300B0\ -7EA6926BDECBDA66C8EA66B636EEDA74814486E1B3D20FBCB1B4F5DB0A915E3E4D2B1AE7C7A9\ -F13557110CDCC0E71AD28CDF566D97232458F01A803AF9BE6DA0313979D66791130A8E3CB111\ -101F8A2710D0404F32B0CA2F4677B5DCC34542B651491DD5D173C93247657C181074F68223E5\ -440D5386217899F939835BF19889AA6FFE59027A75A38B32CD6975C3A543B37FE3FC52F4DB66\ -BC012A14EA0E2EFA6CABCB6DE0BCA100E60BC25BFB54FD5B23DD0C1A8229CD0BE80B7CEE710C\ -A8598F6B6B5CBFE3F5566B8B15CDFAFD928851E07D6A6FBE26439F1719CA648ED6F4396310B3\ -E128A34C4D5A17CBED908A2394D17186ACF6F46848A6D32FBD5FD8BD14D320E5346CBB73D2A2\ -FDC323F5A6216559D7D0C177803FC1D9EBC9859F71E85E34D3C00A4C364068088609A5F7:\ -251E008BB0445ABD75C166586B0AFC536ABF124C9C7A5FB568EA647330B5D7EC79DFB57048AE\ -CDCAC37400DD26BE375884DDD8F7B6EFDC93DB9F62F393C1987C45B7857ED49747F7FA57244F\ -63F273F3B51D86FD2AF9CA6755568BBA9FA528E0FB43798EB0315653F495727914FCDABC0FE4\ -3EA93AEA5893A1E1A9488D5889D7D3ED05584174CB3CD206D7CD4C117933487768A3670E283B\ -295807C6B1E15AC03F46782D70DF796F3A9ABD41D8F1928502F7197A99AA6112919D7B6CE336\ -2787A6A770CABFD4650EF223D1B566B1A86EDC96DC294669161AF5FB414D6EB0912ABFC11436\ -9815BF5B9805EFDFA17BD57C8C28CD22A34EB7FA23A1ACDD32A66BEA2B382FBB29FD1DB18B8C\ -3E539B42A2BEC7A14EB06907BAADC0E003FDD9689E26712B3D99261B4714FFE846E5425B1BDD\ -90039FD225EE93C0310583B7D7FACD3CB9644C9219DD9EF05BB58394C6C3C2FAF455AD50558A\ -80B7C6D7C9F4DC2B7086C6E31EBBF9446665F8727FE0AAFF7C483DCD3AAB34EDD181CE00393C\ -93A28C280EC9F6513F0787689C3EF4B98408C110067BF3990553E902D5D3CE1F7C4473E7C9AF\ -84CAF731B5A31D5994E5DC9D7820820EFB514C8BECD773CBDF6E818DE24AA4E461613F7859DC\ -0BFAFF61375BDF20956F66EB534694D14DF29A78A0488CE3766BC85C1FBD3999765572889BDC\ -A13897C09FA11C10E2FC2B24C591B3E3DEFE7E0382166CB2551606876D98B2C77B01B84634BF\ -34C26EFE2C8B4C360DD248D63734ED6B7C9FE0487321E0AB25D428A0486404DABD837884572A\ -0B0E9F343562D7B767F2A5C94856E6B9E3832CBF063B525352DD472275103CBBFA032CE5D952\ -911F00BA5A6F33461D2D536E341D09C3C1F1B5C1BB9BC1014AD9BB25F2F19D4AC04347DC5440\ -581D4BACF25DAFE6B82F526736875EFCC056FD89A01DCDF72FEB0DC70E12C2243AB8A28F9637\ -8B1633C9BB08625584F10E80CFF77D050A81A2925231D08F215E381ACDBCF11AF61964185611\ -435EB7C70CC18A2810EDA5B55EF5A622F6484D8E579C7315E78F0EFEEF6E4C85A7712259682D\ -E4003FECE559542554B36AB37CBA4B8BCF07F88241665D806A0A213FBE1F98BCE2895D3BF642\ -0AC591A8FB947E6EF53780E2729F45677E06E425DDF65D545A9177FD99B53BA47B46AFD200CB\ -9301001B309FCDEA4CBF2E8EB9427C84EC9E560CA4748061BAEC60D6FEEF6E3A70679C77066A\ -428386050D6AF7A358A92E3357804DA0C61DAF3335EFB18750519B9B7AD2F3677462C5562461\ -1B8F0B4278388422AB646A90705AB52D65B2C6FC4BF295E59EE88CBF8624F1B03BE99513F1A3\ -C922F129ACF665797D56877283F60B89BE4DC0F803762F6072EDA1212C9A6E3046942BF97933\ -2386F83F4E6938A2FA6B951C4D419594A37C6016253B88DECBC7C9DD39E1164A9CE64BAE:\ -99972572DC537442E8C105AC248DFD511470CE - -A29E49FE59317DB85DF4CAFF962DA6D4DC94594BB7B195DAE82B7E32ECD55854762C857CFEBA\ -610B39D2F9D8091B38D6A225AD2A2CC2195DCD5A80ABD06CFD12BE30E914C1FDDAE3BDF398E2\ -3E994F6877095BD1EC8E48105804650D6F872229C7F0B17C8C9BB9199A1E137BA50A34D8A626\ -C0DFD6AF1875DB00A498CA6F36DCDA712B2A0EB8FEE3AE69F2B6BABB9D779798234165886033\ -D91F5B74E86A91E03513817FE24CBB71D4DCDB3D0AA421E7256E3F1D7F332FFD974403EAC2D3\ -DF374881F9D95258B29E46315D326F08EF18909B2CA4DB8526BCA9B06672940423D9B039362E\ -1CD8EEE68296584D94EEB2162C3735E099519F694D94EC732D59F4E1413601E8177D379CD4CC\ -788DF64CF234A8B1FCE575A803DF5FB44014484D7C9A527B95EDDE983A072DF17D042026DAFA\ -0E3B2328626AA8F84C8FCCD98E321C8012B896C32762FD7BED3F0636C6B9DBEE15EDE2AD9634\ -477F9D9F0C7F8287A1D1C77893E08A2F5C2590A6B8260862DC4AEF39E7A0A4993605064BE04F\ -F8E47E5659EDCD0AE97F800A520E587674F423728EE3A70DE8681B929CF6046551A6B90D13D4\ -9A8855A17EAB3F4C3BC4ABFC09A5D3A1876FF119CC8A75623DF7A8731AE551687FBC8E93468C\ -9E3FACC033A254E46A20AB8D0B9FD4EDE15AC81DE9056145339FFBB450F01CC801E5443229DA\ -BD75E391EE7C2A62678F851F5F1D6C4AE6FDC878B12608A218BAA1CB258D42C16A84DA809A66\ -772B5EDC39D0AFAD4EC22653FC98C15A033698F1B4671B8EC331A277B489D1B166759A0CDFB9\ -97C19CBE2A500F474E0C856B1583AC5C86A655208D2715E3D47A553BE7000C8286B749C850F7\ -15F99A971C51CD21AA58FC37ED1E7F2857B21E1FBD183AB8C5C29457C9F5072D5B94A45A5391\ -796ACDF93431E494D18958C79AD5FD9BE02D42C1FA05BFD360A62D43A4F07406A8AD0C677936\ -35C3EAFF28F24FC01360E4598AA651C35E9944CDF1A5A4ABDB0F925C03CA2ED9F3B0C4C76114\ -80023BD8812C47BD61622CC01FB7DD8255279C6B17A57CA938329B80604C36AE7E847D7624D8\ -D296656573A24970EEBA52BBE8420AD06E9D312F05B6FB5D1D45689A072701B0F39AA226A4D1\ -78876821B54430F96D480693E5269B551AC45D5E48007D026C451FB9FB9106AF072E7591C6D2\ -9803C75D5345A6BA0AA27A9DF7C7E15FFA47EA7AC241304B6D3D511ABD0E4ED9D56502204009\ -0ADA249C10EBBB9FE0F7E02922005234428561C7D4A96414443FFBC3144D4B354B50EE52DD31\ -DADDF3DDC8B7B2C221F631279D5055CE38FC5ED54D5D811D84EFD1413EF352B17C94CA7DA223\ -9398896B1559B1EF78C657AD8D6E968CAEC86CA22BF4706FC8CC1D419C6FD40F502C010C65BA\ -AC9394460AA133332E342904C7B4106D1B84A7F6C73599F7F3FA2BB0255E06C133556CA5:\ -C107C43BCCD34DB295D0C6C64ECAA5E37D50DC0A88275976E4C82D93527BBA3F038FAB94F84E\ -F875F0E8357E5459AB23BFAFB1DFF7926C7F17B11B47E93EA1D5E8DA1295C0378DD812A9C87B\ -7F52C21E546462063EB11767774C83D95730EB5FCD1A8DEEE223B95D6F4F5BF16C6A00B5BF84\ -F2DEF735FDA064DE08F192E2D240FE7A77CF4912DF51BEE784A36680F5CBDEF5B85BB912104D\ -6B0B888FDB40B4B90456662E1FBEDA2BEEF8B19E171C0B70B454E10A847ADA2C0760331ACBC2\ -3EDE26010ABB1D8166165A88D3F3A6D629695CC614048529CA98DFF0D801687587A4857DA083\ -2D14BC954ACA4E1FE5000B9D37D2DDFE89115F43811F2DF4E73A31B7A0752CC80ED33C53ED53\ -B1E333C2C9EB63843A46B2C40D81315321B657A2426711DF4652CA64EB671E1365C3F32AA90A\ -29441709B77E7D18D9F2206B70BD91ECD39A2B17240508BFCBB2C2EA04EADBEAE814DFA98EE6\ -CDDF7F8023CDAAA12B5E0B6219EFBAC1E4E4D108AF25ED9CCCFF52859CEC02FAF3E809413859\ -EEDD622BBB2B45570364E8205ECFFA530BC98F464093F5A4473FB6C3868CC1691A36CA4F4AE7\ -65312DA992E74135EFEAC2F5FF8F8EBA3B17B88247293D6C183418A50E5C06722E0721FE105C\ -EBDBD404714E23355EE78116FE3D0A561EA5C6DD06F509EF38B31EE88B941E13682A3A54648E\ -D7ACAF6DDAFF80746363E7F0550B7A306760480894F6D4B9C449C714F9DCCAC680A494E07336\ -8C04450FCDE296960C0021F05774C2E53308668A2828BAA39CB4D98809BD852A3A3864ED1370\ -48AD86E121953199C35D955F606CCCF2AA11FC873EE4532F884D9C5E72DBB48FC220D2FB3E53\ -F78BC1DFC39F8631254800A47C83D85953DF95A58FFB94DBD5EF36B456E42C513D083CAF5A5B\ -DA7014759CE8646EBBB99E5AA6F8B996B5389DEE8D4FE2F945EE68A6FEEEA1DCE81CB55478BB\ -87C60EAA1F2D5D7E4F0380FCE0ED00FFFC05F60BB1B685F1E9AD0AD42A7330A9A70F63D54BAF\ -837136FB53203458919882F2F67EDCFBD631D0EFAF6AE2DCF75193C6891A164BAE455E1BE35E\ -93FF1F907B049D56501EA27DA959792E9716F7357182C87E5E68A78A92E603EB82EF4D175445\ -7504D07EAD8F6C13A855A2A458FCFB3D6264BF0C8C79BF7613A1E703E44EDBA5FC4424F86556\ -BC98D89CBF9CA2280F4614AE53AFD3B31BC0A45AAE6FF0744ACCC3579EC6BDA9EFF4332F2EAE\ -C9EC99024D8255C72AD5CA75B2E97004717D04ED6484B9B13B1F3BD1E9B39B0762A5560E8F02\ -DBDAB9BEC8972B1283F4267E55885DDEBF764E26D050D9A148AE386850DD857BD5A3568A0FF8\ -F172F5B9754CCF16D1BF4BBC6FDFE79A51466E9DEAA38C5EB9144AAEDADF7867D7B866A7D76B\ -5BCBD25165BBC7392A3E51ACD40F71919957FC23E19ACF21C5B62DF36337249CAE5FB22A:\ -388E2850F2A8DE89492204876A7DD8A3DF568F58 - -40F2EF525F91C2B7A8DB54A86E4CF21B08EF3C7C34450374A358FDE05B75C166B02ABBA087ED\ -9DEFCAC5C38F970EE7B83E932FF490B7DB64C8FE3DCDFA7105C5CF67A159F3DB52A6093147E8\ -C8B7E066723912A8E1D8B9618BBEF57B1696B7DADD547C246F74912282711303E22FCB202171\ -F5357BA41C6D5B5FC32D1FBCCEF5B0A090670AD75C15A7469717FFAEAC7BC588A8D9DFD5ECED\ -D786BDE5EA70762CAF3F2A159CB1FF8DCA307D2DB822C2DF5B1C3D81FC9D992781B6D5215B3F\ -4442537E1DB75F3CB1DD53E2F26765F9172DF5ECF9A0E572774E8448ABCBAB3A63176B7A8090\ -984C5EBA6AE2CFC0872AA364A5A90F0FE6C72AC3EC5873FB84B908487438242C8324CCAD23C7\ -9D03928832C3153DA6D5D5EBE50D00F844B85928F04DA60B3D4C2A81C9DEA01EFBCB94FC7FF0\ -B66AE81E2A85D1C28C5387CC2B6549AA7B6A5FD940E57057EE2B9A98D490DE3A40FBD493CFFB\ -B71D0FE44F58110C2830DD18AA017C0F45480C7B404C73A3FA756C807C8C569C29339933321A\ -74EB2D1001754C5CDCDCF80C8CD3DDDC5E64BA3736FECA5FD9801B54EF8F6F780FA4AD09BBBD\ -B87DF9A07D88B005E803AC7670B236F0C508CC874D120BE45BC9997CE2D56B55F94A547172E0\ -46A01C18A63BFF3BFA7D60FA49D1856E002B36EF6D38DF71CD1E45CD6FAB59264F6550DF8459\ -1FB7145BE757993AE5B9327CCB5FA23C2AF8B35D50F17662C6A8CFDC0F0B47270D84F4CA8FD3\ -5597D18C757D4D474E788098B759705567A1740818D508E9CE6593191820F1735A48B7C43806\ -28F725D86BF1324843A4D85C2DDDDABAFD0EEC45265D95FEBE3F9FF87363F073F1C96E569861\ -5E9C841BAB30EEE72D2C559CFEDBCBD21AFEEB6391EF578B8E6F393577D9B3A36D269E65E673\ -FAFB0FC582DC899C8145DF1DCBBA1689E3819DCD784106EE6642945ACC8C9DC44E45015C02C4\ -084416CE7E19322DBBD5FDD55B35385AEC50308A4CF06EB4261A638D681344F48DA7CB2E0EAE\ -5326F54DE4589E8951B7BC42BE7994FB64AEFEBDB7FBF8949E6D7FC360EE722883A3D06ED3C3\ -C2D0EBC6AEAA0606543888C600EF69C444F08C1DFDAB3671F44C85B0BAB0FC91712D50C1AD97\ -9F32C25F3C9CAFCBA9E8C82817D4A1180EB4766CF7844A27D47067ED7376E071BC7DEFCFAD0B\ -8C138324D77F54E3E41D4BB8C33892B84860F97468223D3F155B04698019256A11B2A20E1720\ -E6F40BA100B2D887240F78EF499A5C253385EE2D4A491CAE743FCEDA6C1A0C585992167B6039\ -954774262A9F604A972438AA52C4228A4A30C7830272AB66E23458BBF3CF055EBD6566832951\ -51B7C60979A87D806432FCC107C5F533C32BEB0D4C412A0EB7932840B1B1414A3B091BB69201\ -589E2BE699029E09720285581958F71A350A24438541F3D05CD921FDA0FAD525BFFC30F2:\ -59CFBDC7D164AA6051360ACD53540489ED573B013B52305E530F3D51BCF8FDDBD35DA519C9A0\ -66AFA8E8D38E9AA32894EBE216D09C6B28454B2D1CB1E62947E3C7A19A33B95EAE69B6158D7A\ -179EDDEA39CB308B36B8F446EF02AD0EE039225376000A6717A27D8C7692E3D9F210B521C561\ -A8D46E022D56BB93F232FEA37257EB30EF41C92C727126FF7058A7DCA2C5649C3A5AE6CBDB5F\ -B9C5CEE676885A27773433E1E3756218041AB4F95E71771DE5D52E40A425FEE63C3D93A0886D\ -4C56E69E0C01954249210F792B19BFC25C3FB872EC1D9BB94CCDCD695F43F5D7D1210A803539\ -AD9B68BBBF893FE055D715A8EEC0A289D77A3FC8FF9F2B7B6994E476F16988E6DE7E002F0083\ -EBC007F0CC0FACFF5E0238ED1C0598CACAC390FC03F75B876E8B8AE1F35E1A64D3F2635ACC52\ -618004A21B0F8FC204AAE2F8A84FA419A930D266C619D4F736AFF6D2C1028CBB129C355678B5\ -518645316A3F9C38E37707548CD38A24428A989E14EABD3AA8D3BD1252496E458193C5CCFC39\ -19602987E4CD4C8264E1B8279B598A910C235D7FC9C861B517B59ECAF0B797F18519420A993B\ -016C9A6728D707EE7EFBAE8FDCAE866DFA3686FB5C65CCB11A9DB7C7B3D15E8A747679BC9DFE\ -B2177698BE98A216514009BD1BE3C62A0234252DF983DF15969E97F99DA7913BA518C52017B7\ -EEF0B789BDDDC3A083BC1FF8018622CD3455EE108FE7DD5BABCAE1E0E88264016C0A1FED524F\ -EDFAC1BAA8D9D4CA330A27128E2F774F3134CAD49A41548D0BA303717D8EFDF9EBAD46FDC719\ -24FDD61989E1516E4C2CC6AB099CF68A3721AAF8B4FEDBE794D2A5D60F3A618F1D4E697A60C8\ -8014E0A9B465538E82FC37F94FD368AB1B0EFA99FDBAD037F2162554C714E1A539F5DC35E620\ -CF81454912E92943AA12CE4447B83DAB8B75EE124A34038BE4297D8C88C6DF3EC8361912B883\ -D4BEBF5858F5116A3B8F9A818E0C19B42D11499A70A75A577E46B9793BEA5E6195F23394EC4A\ -F1F1F4BBBD10CB1B672568795AC479865C4EA8540BCFCE77F78C7F0B0600693007A5B69B6827\ -5617DC6ADD55B5192D6A4C8BCFB8B822CB6C9DC831C4357AD605ECE9F15C5C3C0953807E65FB\ -3E06FA59A8FA4314111564691962AC895715053CB22358A69A2DD658F14239C4BEA0D1940F7E\ -786A53E1390B74DF3B176D54272B62B1D61245B958884349A7ECF2ED98198244DD0001FCD5A0\ -FC8B3302B0B659CD94953AA0C3A0003E74A074673E9C3C39DA5DADCBEFD0A638CB7B3711FC17\ -967E44C01B65A64EDF9E9A0DC1DB5E810E8D3096A959C918E9813E2934C8CAF1800B55C623AD\ -350FF26006E97919D250C2EA700A54231E28FC85E2193162F4783027BD86F859B01868678F2E\ -1C911F23364E350F4628570FBD639D15F30AB2BDD7512BDA269C631C3D4DACB0B3FA6F84:\ -C2F4F2996C7BC1F19B88BA92B41BC6F42BB4DDDE56 - -1F9093D9F61F1FBED0E57C530B3A38755A4F8E09AEE810FB7033F47E7461A4B6BB2EB898EBD7\ -9B3BEAE94B0BA1F3D43DD186D33F7B0469BD9357B4A8CFF6CA3974D795C11B55F7218FA5F7A6\ -5AB3799F7CB571E670F12C5318F734B9A63C0ACF016214EBEEAC2FC77961BACEBE48681EC078\ -C933C24B2A1431AD0D4910859F98BC3D3CFEA2CD07D5062639D5189A0C439D3E8078669B8123\ -EAD0038B9B702A82260014E6A07A965C2E7BC16D5AA7BF8CE23970677144FFDBD4902E4C195A\ -66811CD6C0B3E6F38525B3854620F1FA4B2B699108CC090EC110DFBAB90C289C37171414AB86\ -AB0A1F09EC28A844B21A2A3803D832E3C1704339CECA91B93E98014124E15F7EF2ADA34C2267\ -C5FF600385B6176C2E8DDB02266628EE51A58716F1C6ED39FC82553AC1D646B16208601DCBFB\ -9C75B1821BDE1BBCFCE0EF4134759D1CCE23DCD4BBAFA24D5BAD86D09AA3B9EEDAFAC4B405FB\ -DD6B107D6C65B0BE3194F41EDCECBD1116C19ED72BAA7E1FE91684CD430E683D72AF2E7ED471\ -D210189E9651EEF40943111F5B19D9A05B453006E32323A9489D1FEA7EDCBD486EF8CBD8369C\ -B342048F63E0A8503E61C17A4BA2AEDE680C48834B28B43A7436AE84C1737F68E0E6ED6983CF\ -C17E33515D6C2303AD08971F990793EF2F6596BF67AD773104BD01EC4848122567C6A4BFB0AF\ -C89122296839B9B01A603AEAACCC0EA7A8C0801562F50C107B9FF06990DA929B3A6FC51955A0\ -010FE2C412044DFBB519B0BE5F151AC8FA5A3E537276D8C6D18B9666E607C03E886F74D9F4BD\ -3BC20122C5A111E6CA07C14D3D12D43BB80B5D3D69C11538A56A9CEA77FDCB9BA0A73D992B60\ -64F96FB32A513E310261E87BEB457382A6897334F486323F90D85620C4AD93A7F88A3F310513\ -ED54A38743D9918C4B12714373734862E6EC1E5681E85BCFA8FF283BDA08D7333B95596195E9\ -4DBFB5E65EBB0DA07A1A913AC2E936EDF3075A8C6CFD07C80E60B3254C188ECD0661A4E276A3\ -DC4A729E6E5FD18AEDEB28B81694421885924C5D6CF5EFD257AEDCC39B1A8B88406200D19BBE\ -E9AD2346117F576F5AAC7A82BCDE6CB19A1BDCC70F335EF6543E9E25F157E189EC8624DC3B8A\ -6724DA2691E2FCF06CA9AC2D92E9335B70248EC33E8F83532DBEECBBF4B1158F3B2766BBD2D0\ -11C931005FCD3EBE3AFB23F252E19D12AB9304410DE599FA6A4D37EC7736155D92B668D7FBDC\ -BE5C2CA70536A5D401822261801D9D0177C81287A33984A56E9FA0DFE02D150A0A3A223BC86D\ -2D7C0CC50E8FFE77151CB709D6514889750165A2306E7F204BC0571BA1581F4059DFFF9D748E\ -B45303362164B24C975926549EB6EC3B4372530DA1A4E3293F1B0403A0B7C0C4EC72F18AB1AD\ -83533791E8846191F0D27A1B8BD6F91A3A8012A18E3B34ECCD8374AC203BC644ADAB06BD:\ -22D743189DA67A78A29148D4545DA4B72DE285A43B42D9CAC731B34D12DDD16541A0EC412A77\ -5E24EFACA5C206081E5C3328F88E2BB0C06BA703044E05CFFACE073068830D9C856B2920CC6B\ -006257796A7FE2ECB3CE6644913FB5AE98F6476DBEE36936D386CAC9C39B0D9766CACF5DE9C6\ -0084F09B36282DE5F109417FE711E0425BE00FB55620F386C81F0EE91F4E2306D8D134A1A458\ -13E36DCC9F045E4C7A18BF1427BF5C3780E3EFBAFED3E4714A6EC62C0309803C7C187F97C780\ -2DCA176EEE313A574B49C81DF25E427C8C373A9A5EFD6B290AD9EB6ADFB52BD7E3A4B86B056C\ -E75D50AD4564F5755A00F148ECB36673985F8F17F084D75BBB251FF261C06BB1972EF6F5AD98\ -A8221AF8E962A869BA395AF096ED24B58B810C7449E20DA628A69B69673278C6A1DD2DFEB5AA\ -FD226575923095CB6FD06A1379404945925B782A09E25FDAA51ADFDDCF2F8384FC1A8D53D36C\ -C3423099B54B03F0FBF5ED17CF363B140EDD3B4C20B982024A9E4F26C1B330D2A9360B737A13\ -90163E7347EF8FDC960F03C5F9194F8EC838CDFE1FE4452300548857F424ED392CDA3D88F831\ -58347D931E87E11F938BEFC178C2E191FCD5D1FB6087D09C2A25FCF65AC3286401A908420472\ -02825D6BBAE5D937E3117F61C1E212BCD6520BA984C04D1A9A03AFC01793063AD19288FB9AE0\ -324106D305D9CBC1AE8D4CE73808911DC45A3D543B8FB87347E5BD3103E95BFC51245DEA0C6F\ -4AC7E9D40B28CFB48866930D91464C1B602238C7E2C4752640F1B4344DDAB38C34BA694B93E0\ -9DC086FC49DFAD08F37C1F543B2768806C39E9386CA47DB9373EECB375BAD545DA04742C6725\ -5668B63E2408C564DA1FA44EC9833689DD4EC5EC8AA1525137CF7E935F079979B7E09E211E60\ -2A991AEABEB423A939FCCCFFB9EABDD6B03F24D2D0DE2D01FB40638F069234A66A7A60E3D667\ -6A82D7927306865FF74D4456E9B73E498B88CFED4C0678613A74440886DC0A17F948A1FDA388\ -7C99DB2133EC4D8A09CCB6DACE059373250F8BDE5EFB11C3897D592E1B9E080C185A4ADD3C9E\ -047C5DCF9781C228F194DDD075423D89E8DB2053FCC1DEA35FFA3909C791447E1CC85A77B5DA\ -82D2E012AF8D2C23017219ACD2E4245DE9197A0F4EB43EB3B203C930D48287321845567AC0F0\ -1B639442715A07BDA9457B38DFE779905990C0CAD83696514BF524F889DF87031B0CAC938265\ -18321921523BFD2676636DE5526C3D10C176AB27012A609992B3BD01D822F11AEC3C88AD3E1C\ -AC3F9F42FF60D4CA0ABC2BC93CD8096D66C135C4FD6E7835F506D26FD5C0A4405FB353FA10BA\ -DFDB343419FF6102052362D5CB6841ED111E55B7B609195A36A6E79932C363D7924E6725D28D\ -F66FC871357EF8F78CAD93AF7C20B9CA1C9590EEBF12E15B1A2EBF02D9EC43A78B7C6AFF:\ -B49715EC3C39DFB191BDD75B46A2151C033FEF2652C0 - -8EDCB7A73161A699F571C3E4837B05B8510F8B47C6177E293F376EC69B607781280EC24A8EA3\ -F1B57C6D4A842746A35EE44B86D6463997B8F506168C3395ECC8613E1DCC181A26CE0B541551\ -511CD570D3B912F0E7F10EE18E51B9C83EEDD4E81FA6F14529E886A5E6F3D1A815847881DBB5\ -D432745CC24D2BCA39ED8641F35297A46ABFB5E06FBBDC9B23404B42B4F6122E0A29DD945AA3\ -A9374531E60CF973D4E42B5F21385F2BAFA38372DE67205335EA1BA7B9C6E75F85C9437E8F69\ -D48524971B6FA192D6476B16EBD6434A9C802AAABE857389A9538870B7A17D1A62B2033AEEA4\ -C84666EACAAED730D8B7557C7B3D4421F0074372606B95D74518B017D8725E691995E215407F\ -51C745B09390AE6E7ACEA17ECAE1C9786AD70CBBED26A522D215B4EDDD5C5239612BFC9B400A\ -6F33AB66F5D4E96D497E0BBA951084496D8BE3621DE03754321A6B2A9C4394B04FDCDF606933\ -0D5651177FCDD78132ADB1C52910BA87BB544713911CAA9B8491907AA9F1FBE1650A8B03D216\ -5A97E68AB092E26A03910472347D1E12F9868B39B872F3339FA8817FD5427F073527FF6642D2\ -0F3DAED64C670598BF3E6163D88333F66F0D6F50952CAB037F29F2C6F5E7985C5C23CFC1AD2A\ -051BC94F9A0116E28B6075138B207DC639FF8D6C96D4ECC9DA9B5365FB61338EE7F398862A03\ -D70819403DFB08301AACB19D5E20BD17A428AEA172A63353D6EEDB8B39003912ACF52C6D6EB1\ -832629F151835D3F518A2E018BA9F9A4D192EA9683AF1A726403BE65C1E97EBF80E55CC8BF9F\ -DC4C7692003E8E5E10B62179A669B7A87E88B8395255344609DE906F474E90A74EE6F88D25F6\ -022DF4BB9C2491F20D0A6AE16FBAD102CDA4A99214BA494D7105CF54D34904C67B76A73B75AF\ -F13D9F9597F07B2C2A72103759A6EA6571AD68AE11BEA14BC8A02EF623137F349036DEB2B105\ -8A26C58502CC55629F3E5EFB9A3F30BFACD1BEB34D26B73666033BC3E8957D5CAB95DB5BE1EF\ -3AC844E6179F5C3DCAE207CEA301937C7B6F6392B7A3C885E291A2772B0F9998D98853623177\ -79E9EABF3E5281CAD5A9827EADCAE9371604ABD85BB9811E9DF0A7DBC9AFDF8C0D2AECEFE899\ -6A6B8C355C49E5638230CB00B552BECA580928987C7A958F95AB3E4C0EB30D2C89C2946F0F7E\ -2DF961C02F8DE4676636A0EA87D5941DF710C55EB37EAF9E2D0CDDF0406065EE6877F259BE55\ -11853F777BCFF730E642C671C12807B4A590D59D40D69C3E4278A32EDC63658F47B0F01A3361\ -136AF4F777DAC44AE1173BC71812A335B8119B06F71324642560A609289B9A7AB6271AE98B3D\ -3EF010200C4222077110CE34558F860C7252E96AB61127F39C9767BDB716EE2E812F9AA39577\ -AD4820C5F3580BAC84D6186C72D11DC2B994F72E7885A08CBAF3D6CDCA020D86B4D885E4:\ -7CEA4FA938DAA9A9E01D791409298E10C3921441647AE602446766820A0059E6289EEC102A51\ -EC6C884E2B007052B9FC863EE06E21429392E2AED8831125E8AABCF6E184BFDE646279340448\ -F61F1C6351FC6739E088F4213A63BB95B38FC6B83BF38B8FB45D27FABCEC411B6F18A8B9E3B0\ -F4A4CE3DA6FDE2464FA8F37AD06C99362CCB716DE824CCB62EF8F5D8873D8237837F020C6797\ -CFFDB23E004D532E3640A0869577ADA434FC7DD3C1D287083CB2547CB6FEEA2AEB3774629775\ -53960FB634700115D677D2C12DB25AADD1DD7D52602CEF1F8861E291CECDDCA69DB08D98F2EA\ -CBDBFF1FDB7EF5D08B704FC6C8F7B4AAF2A62A68267BF50FDD92FDD106C56393CF431DF3D7FD\ -82A3517609D32787DB418E2E41C55EED489E3186244DA744D5D50FF4CD71EA8F58C4CCE5D84E\ -BC4D5A37BBF7A7D93994B3B8D41F4D2D2367A4A8CCAFEC61F4D1D8FE637C9FD275CCB15B0496\ -4433F8F0A8220EDA6D3B0E96853447BBE97BB9EDCF60899896A0829FD2D0E17389F5A55FBA37\ -1C55E7D3E93F27ABE89474A243B2867A1F16F474E6972FD54B8A683884360159F0F8109D05EE\ -799731A1C36CA22AA6D0320BC9B25FB1FBF9F1CB98886CF53DAF959E1FCB277173339C1CDF59\ -702E4E3894843C336B1E527F5CE2D2DA9A22824D68FEA16222810C42A78E70B574BB1D5CB42A\ -A6E318EB0A71E415E9CD0FF6E98001B16134B6AA8CC258652E156B16407FF5F7ACFB27FC869E\ -A07835E38F4476B4D9D014CFD6FE90DA6D9D64C24934DB12D6237F9B782BFE0537F30E1B3115\ -D875DB468721FA0201541D4EC6760C6E3E7D0EEC428B34ADB6F44928739BEA013996A9AF4E1C\ -E74585C8BEED9A8C778633753930AD8A05589138B647828E01A841524B1A87071B77532D7DF3\ -3173AA606A196DAC31A26C3B7225CD18A0DDFDEE85CF90D8C2796B1782BAB320116101A63BC4\ -B7C4FCF336968BD2DF51D329E6BAD996923FBAB99E9F198E067DAD4C8267B0B80587C88E9773\ -755D1BF62FB694AE313DC6AA85A4C0740E4983E2527E5CA9C860327BBD67A53B9DB1FBE524F1\ -8B422F8DA23323926ACBE1BF751188C01264AB49F0A3DC5107E85C2F5C3897B9DA326D04BEAA\ -8C9DD5490938934855E67C3A0F34C5F74F25D710BBB4FCFF65AFEF6877E51B05739CF64573C4\ -F18EE1D2C19CD4F966C8A037B93ADD684A956091F82D91EAC6D929401A660FEC7A969B2D4D44\ -523362F50CA7EA5D37E0047384F24411CCC9506CF1484F8583344EC6DEA320784C5C496CA9BB\ -D30066A57D5452AA33CD03D041638DEF81D2761DA24E2AEFAA6A128E86926DBEF4F6CD832A1C\ -0E120B0F7E10B8C970754E5E0919A4CDD9C288EC9316E2BCE4357B8E3B708C8BDCDBA04080DD\ -1E986317E1316E95A7B0DB6C87DACDE723BA6E59277BCFFE4607ECB5B8FBAD0340631D7E:\ -A0B8CA1B1F83F3303578B0CCC449871843D7C8360F93C6 - -DBECB1C042AA98E8593629327CAE8C1984169010D5EAE745ED9122E71827818ADFEBE013E774\ -ADDEC8A2628EBEB1473A8864E2FAB7C9973553993689D72166197B31DA18F5B0A95363F4E765\ -A419756BDA665E66C10DB27D712ABF7146ABD48F9DB2638FF3CB3099FB0BC26B6CD4C64A6652\ -63112AA378F6A093C11891B641C74D2C0F816FD5E52F37F01BF84BE64F9AB3727D8031213A79\ -1F9C6BC1EE49A259CCAD511D5CA26DB3272DB3751D73C2E56BE46684D6F9E952DB9DB1C9E879\ -797C487F56993420102418AA512F50B1C1339ABC6FC13E905DBADFFC651CBB420D6D9BCD7B86\ -FA66083DEB317FB538A5381636F73CEEA73F28EACA590F6AEB4153B5DE87B25A7D58A7E89659\ -DE2673C751343C72CA13B2B5ACF96129DBD9587DC1F427485DF9D75366C099F186B6E0821805\ -977C728C11269C4650DC21D8ED1ED60CD00C41F0A362B9E8F938A20E7B68B51A264750D4F825\ -3CF216D17DE03191360D6C9B33CBE7D2ED1E6214D0665C34D03EF11662C7CD7B25E9CF939B05\ -C77943ADC1F8F4D3B861842D5F4B147529113C414A66269CFB33B0334D7C18A80821EF56C151\ -1A2079AEC4A2C9E5A1FA2212A358CB5D994BCFB43042D5696F895A7E2F24D1F9F1C9EA37F56C\ -2F41824B1A628FD1ACB5D0BA64B858F68816C76B11D3154337E49BB54CBB894E7F4781087FEB\ -75123B50F59D34E12E99D3BE1CDD6C1167A45D4DA1B5E4A0657BBFABAF3CF360C1BDECD6C5B2\ -9F268CBE1CE12A08B7C3EBCCCDE1521CA93C16259ACDA418D48319BCB93AD13F6E379D6CA25C\ -7277CD5CCAEF1EB90B2036D6CF7BDE5E64CD038C469F936F56D86D2DDCCDDA23810C2391958E\ -FE7C76512F66F11F44B9E9F1CBD24AF6E5A728D01C7FDEB95A17214C48F52938404BDE078254\ -872B6003351A464D824424DB0D573BE4A2A8D836F342022B87097F8D20EBCB3AC56D26FD4720\ -77845CA68200D60261B79C4B60C6477A1A597C81E72D09BA38BD4B0E5E692B436CD1B541D4E2\ -E72C24DBC766022ECD4F6556499AAFE062B260E104903C4FE3AF208B6D25A5738760B2FDAB52\ -D1A5E66B7348F7172924E15E0A4F00D0FF01F6504092555973DAB665AAA68D9E6E54141805CB\ -409FB511507C66F76578C40A034F7398D88576B47AB98EE94CD18CFE6D99471FF56EE064B70B\ -224A43E691AF4166D97CFAEE55A6B73CE15FEE6AF7214D12C092A5FEA66EC489D868902D5293\ -48B212D5A478A33F918974620818C12CDB01B150610C1A2B5DA3B693617C64FB9D084B293C3A\ -1E460776A5ECA6CF50419B4E6DB18FAD314F0C7877213FCFAE640E11B4D64B0EA1801D0CD7EC\ -123A9EA0E290872A8238FCC8FD358586EA73F2A065E0C9B8BE847B836077B6F3867F23539AE1\ -9E6CC3A245A059D1C3A17E70C68F92C69AE400351B9AEE6BD3E896547622262D02370247:\ -8E536C2B3E9964DACDEBFF25C78DF2B29CFD2F423E3B85EAC810F536E18CE420763AE2F07E9B\ -EE944437DA35D5843BDA0FDAD0F5C0C70474B84402D56B7CC1EDCAD0F6FD87ACA8ED695BB2FA\ -F60F916C401BBBB744B0C6BA13D12C8557EFBC024441AB86B0E63B40D86082B51677AA296CAD\ -65B16335740DD87F75614A2BE2A025278FABBC19FACC257F01B395D803B3868177AB0E8B258A\ -931A9F41F2F3D08EEE08B4A8384BCADC8348B199443853D97C2DE47E896142244B123B98D22D\ -281F6C5999E7ECD0AF5DEEDA96B65041807A7520BAD6525F9D2F5DFC19630297C5C738510C94\ -78C0F105765B0E15995042A8E1F255D572C14BB7F8556E45BBB38FC00ADEC00DA5F7BCA78B26\ -B8E38B37DCB845F968010DF7E908078504D4C6B09246140E27044D9796112005C878C983C27C\ -0ECF9C12F2ACD41078EFEA7B1BB1CC5A6A288B3D2FA67E2FFD0C42046F06862CCFBFF191F435\ -07450409670E3076DB2C6DA71550DAC99861E7D011A3998D3A27A268D93B09DAE44D7263DCE2\ -37CC7D136D977DE988B24FBD7A0AB103669733E4C1AF667EB71961F242C0E5551DEDF1037FFA\ -037BE420458B8921D59C6076F9DFD257EE563B922E703846F709E8498C584B9D2963C16C2160\ -7E4E3F4A8E72C41C54A51EDF14BF9DD69A78EF3BF0F0420FEA75D62BA644389F5DCB01D95B5B\ -BE6A268ACBD7A0C8FCFB7BA6076EDF1DB4BDF8DCDCFF73E5D99E864C78A6E909DBDAAABF7326\ -C572CBC82DAC8E276CEEF2E75A29916990B1C0B9AE8E28106233DE6EBF15407BE06D20B4C201\ -28F15FAC31841DBE8CFDB93EEAF7204BCC824933F80615C1123419AA8E28737D11AE352C36D2\ -F69CA9A348EDBAB3952AFD8136B4FDD2261A57BE6C42206742A8C54F94432D480A52DAFF7ED6\ -25E6F5D1FD5CC409392400B80D62F1052190314B64694003022D154F7B12FCE34E3B9CEBB498\ -1A722E2C344475134F9685DD95BB419ECBA2AACB502B28747665F4A1650A881B37F6D45280B3\ -35E68AB613D826757E1BAFF076E0E45CF5899A73384EAE2468CD16B12B5041E736723A771CA1\ -F93E80FA664BCE73A5D88BBEBA76DA2FB3521D70FB06D61532EA28D7AF279BB6C0EE77FC3EC9\ -C8C4B1652CBD71D64FF5E55817921E5C6088F0BE653A754335D9A030C89B4AAAA3586E77D8B2\ -3D969B5D1BFBE7B5E8D0C4A612B38270E51A63591F7DAEB0815DDE403F7ED968FD1077F94270\ -94C5B212D03B4DA47C7E968FB8F982C81398BCCA00A304A1F098B451D9A2EEA2DBF9C2561097\ -F0C16666C8471FEA676CE01A6DEA5EBCA591C509C3C0C943F5AAAF8456E1E98508E5527040A2\ -8DF9F3010AB8DD3C7EBF25BD7416BF65590E5B3B3BEA45477C063B90FA0207D56D716D2577D3\ -F5808C4C40941DFEEE64D2AA91710A5B2169FF77E21369A595F3A1EC1A956D916DBBAC22:\ -E09C01FC9C5EB8AE01A145C966D18B54D86962C307539BE8 - -510F5C74619D838446DFE399B6D460EC17CCFE8EB1FB0A32E65D6C8FA1C36E2D02CE83C39603\ -AD466C16DAD9528CEE7E3644AF881CE6E764FC8F6C96B51B7E3467D9E52A779F091C174748D4\ -9BE6FF831AEAE0D9317DFD0F9054E6F6E9AE61F491D23860FCA94E6E99260A7FE8311A91A337\ -57B140B9E08EF8CA4CB62EBA23FC2001D5F817F861A901076DCEFC95324E426F839AE0ACF452\ -7F70EB3C218FE15C2FFE7CB522F7F8780AC620E6E86CFE47C0F37ADFE0057A9E66D4DAB6B83D\ -1478D57819291CEBB798C1D97363337B15188705FCC6108F1F4CD55B956304DD270CA10BE504\ -FD93B68A7224C02A065F2877D93CC48FEC8A5BD5969629BA11169F0812A6C268FF5D09346F0E\ -848118993F240F25FFCAEE40FAA3CA451F08FC167C5A2BC3F2F43907A03B116BCC93C7320C62\ -B3DB61039CCDBFECC1D9686144EE8EBB884020C5D7B7FA8AD199CEB512EC5224149A911A96F8\ -8E6F4D000C72B20CFAB17B0028876C777F5ECE01720BDB7DFB73C2BA43DD77032B1A23712439\ -459FBC5D539C63A16DC168BAA923784AEFE68C403733AFA0C9B70101358EEBF05C81518181F7\ -ABB606FB180937799D256437281984017D56AADF3CAC1064FB198D54BCC5FF354961B1C11845\ -973F93BF878080C3206DD1976106EFEC6768DDD4A00039168E00A7515191A1C06145A5460BC9\ -323AC9204AC1A4AFEEE7CCE1662C034C63566DE3FEF9671FB4277702F4A3429B2D7B8FE1B7E0\ -34E00B2CA548DEFBE7DF7BF3B77FCBDBDFBBC105E375E9B9870E7FAA4ECA36FC6E25A6D4E04D\ -1001C5E0EA40ED893B59C6E7B16536028CDDCE2DB3ADF756504A546CD7CA1E97FD83D7FED79E\ -C25DC4780544FEDF3675FAE8474323A8BBE081C401D097572E02DDFD088117C7DEEBED761490\ -F812A2F2FC1C38EF62B597710655AE6C28D290D003A41C322654395FA3EA0B5389B3FBDD5EF7\ -C9D3E159924FE179B2B8C25F36EA1A26D883DE42B2B800C9629CF99FF280B9ACCD51495C60BD\ -A9E6963EE0007D86963BCDD00589333B7C84B8474BCB2BD28B6B5ADAAD16B452152ACBB951B3\ -A603283623D2A445E70F991A9C5C5B883237BB6200A47A7D601915847AEA550F3663CD366A33\ -981B123BA770ECE42ED5B933FF829682594422D1F3341D04120C1FF547A1F80C08F097E64D50\ -F7A9E1E2B28638543BD36A603C40ADEB9CD5453D572FC0309516AC24763303E652C170DCE7E2\ -F30CF22EB5C8E1ECB222E1EC2650334DE8C7504985CE290A48A0702EAFC9C5752E87510484A8\ -A4706AEE25350DE1D691547CE9F474E440FD3A8C22706F9362D8F4A6D7F2DA1D3B6E458FAB7E\ -601C0811A10FF6BC5CE7AE7B5E7CCB9FEF3216A883EC88853340B306336D58F744659D67BF7B\ -C738D0E89FF18C7B386D786B111B2C90BAA220267A7454E5229A4E800B94D2C9D78C8753:\ -C813B0E5702C0C6DE3328EF88A7E1F823ACD43EA6AE2A3339FB3F40E71DF4085142161B6414D\ -BDCA3450B5303E2489E7D0A943E836FFCA6D99C473F46664818F5FD0CCE69A5B0DB47749C1C5\ -B85BF8B93DBF8685ECA343B7274800D757C3D482E9E27DFAA293C37CFC4E6A87A51B8E283796\ -8D9D71E0CBCA79D7F7CA29C849CDBFE3C0E1A67212AA88D55C2667E7E18FC77ACE1325C6C497\ -01D0E51BDF69216EF105FE3EE23234EEE479FF85DE0451F0245515DA9C7696EA7B589922D44C\ -65DF23DF4FD437D2A68130EFE72A5BEF60754D7087692B09CAE3D964CAC2CDF2E4E47152DCAB\ -D0C1E9EAB1ECAE68001A934EB8BF08B35BAA4857A085A477AAC48D3C33104712947053A3A6AA\ -E9420761A148F42AE11F29507595DD468F9A0B24BD667C58D52E303673C5BE286D9ACC26FA8A\ -401E8B4A2FC327BBAD64E7E27FFE5C9ED91FBBC7EFFB9DA538121567D934F43B89A10A9086E6\ -94818B3F9F076BCC04DF8BE4C39E0C8FF4891E45B0147D435A946BD2A099C64D4DD6E3BAB8CA\ -C7A44FB825FC10A0CFCF2E07144BF92513B4B468F89BD04B451A59A0F36B0B1768C8520ABA30\ -6EEBB7BFA6470BAC3C99F570034C3B8C73824A14719AB2A7C9177176C626447F2392DD1CE5EA\ -E77F66F3EFACA292420E947C96074557912526ED5340A282581825055327454110F16A601058\ -77F16346CE130514CF938DC48AB7C5B6BB5814860EF7342087AA12283BE3F4E5D052740F74FE\ -A37011E2FAF3A991F6F64ED4D0B27359646AF04177033E9A85A70E1292EE24F17E3158605F3C\ -4F5E50115E3FAA01584D3615617EF0A78B6301B4ABF79E0F13F227C03AA55EBECBA7253A74C6\ -DD3539F9A9651AEEBC0444A7F2D69F175D757B25B53006CC424947AD0FE57A722B3B5C994992\ -74AA31A994EC8981A18A29695414CA397F3EF2571E165002693CBA1F54A72B9A2E0E0EF83C40\ -18C864472474A52A53CDEF878471648D2748FCE41CCBB9B55A1DF82AFC07B378B814D57EA8A6\ -F60F8872ADF7D0CE4FB942424602508D1550711365BE45433656E1A4734BCE2E1729038BA26B\ -9D3BB3D47C960A7E1A3286A41632B47147F533F8514A799B96B740BE43DF9E5D9596DE6FACE8\ -F75517B97E6764D700AE9B0F4EAF9259DDCA66972EE5CE74D376D59D9A7F921D92E172368191\ -CC21FA0B367A8522F9A05DCC89776596BFDF7DC34B71B2171E8D74F8E87E26592E84AE240DCE\ -A4F8236F7E13FA1D254EE7CA048F36DD359733A5097090293E676638C54348DA584F38BFF03F\ -67E61A38331D31769D41BC04C8EC73CFD9A66C95656F87563E17BFD7A5CE3C1B2BEAB42BCE01\ -7DA00249A77AB05EB39A99999E8C374FE9EFA7323A542C7ECE218B1005B100A171C94A5A7169\ -F679E0C89F6AFAC45202B3344F1C1F11FC749FF120A7B1B2E30DF2AB3A1A20247D8EBEB4:\ -BC7974BF2DEFA077AD76ECF9B5FFA109B688D685A736A03F42 - -A3878B8AD4FA1EB390BCEBD93724540756966688C1ED1F877932E75D50C1253CD20E79BC6FA7\ -1285DDA89BA56FA95BFF11E2EE1B171DD95F698971B3B850EE1BCB8EC181C3921A8D9857203A\ -2A96260818B0B7807F1F93C32BE2DE700E75C81D3EF9A515B708C516327DFBE7C642C14238E1\ -F2E2348F92547B2A1F8058E467611E3D139D1616FC616715754E8593678E32A49B2BF820BE3E\ -55AD895B388F43B587596103A3A01271DAD456205BD53C03BD8ECCD9C7182B1BDD24BEB7C845\ -CC775D56150DED9E059BCEA42AF4072803778040E1CD33EF81A21767006D0824C90185C54948\ -8D9092CB0EF9175AB351B394786611C6CBE7B47F1762BAD1F39AF185B9FBDD3DEA790D1BF5FC\ -A6A80E4EE953DC61C54F7905F45F373AC9299C67C9A543AA3597E84653C43D80D11BCFCDB635\ -E12A846CB4B0D4F82CBC40DE236E6D8DA39BD9C90A03C8C9C47C8302CB53518A2D7328BD0463\ -B2931EEC975F3699C28C8B2A08C3C40ED78931C6FB807441B0B154F8EB0F8A0D811482864A3A\ -755E96C62CA19609A63AFFDE31F11A65CA9A98268F7797E883558A9221C57F32E126F156945F\ -E4AAFA2C5D9E4A2B383794F23D0E7296613DD73558F5B16576E7D8F0D87D4F2AC6D3196C2827\ -4822C648175C919559D85C13B97870FAC56C5151CBAA305CE02A23621F3C50A53E4C39FC6ABA\ -9A957F32DEBF5DF62FC34BFB94B186D376EE4FBEF617EF511AD2ABB1B3FB8CA56735BDF60D9D\ -38BF4AAD71D91F194DB1B8AD003D803402B047CD714EEAAB30C9B7A672958265E032CD9F1BA2\ -55856CE3CC55FA29589610624F25A68AD3A0B668F69426C5D91D17C5FD721628B0038ED397D0\ -A0D88D4436F317E78AA05446B8DCA1F3E7A1B16F754046001146487B06A6C1DDB8C98D3D0727\ -D9CA9F5A99A428C63018EDCB49D810BE4C3D77E2F006F9787DC1C0745062A4AB11734EE71175\ -DE27FB2FC04502E1A8E127E374FBC983227FD935035DF6D99A99C9700213EEF4BE0AB6DAABAC\ -727D6FC09CF528795E7FC36481EFD8E982AA5721895AC421D73B902B01CA30103AFB77594F8D\ -62B021C7770CFA088549B8B6292481901AE54D542AE2B547A41C8A2E54AD264A511965065E1D\ -5352CD37E0F0E9A17A0A237E894618079F5FDFF5019A2DE7037CB7073426F1933FE7777933D6\ -F212DB8C5686613D73A82C070CD06ADD134CADD2C746B8B175CC73DC606F0F2206B269E3E2BD\ -7070AEE53EE4BDEB702C8F5474305D3A99527779967DF66785AEE17CEA574FED7250CCDC111B\ -BA529548FC52B9FF81F1CECB530BD3A5D8799DEC62074C0C5F2927E0AD6677CE90B57FFB1796\ -D9F62157C4D4A0FC09F4A376D8D6E96EB58AB67073BE683E1A0B3DFB6BD5331A73CEDD91C104\ -DD8FBDEEEBF4F80CF2C79653947AB84F10663621160D20C32D60F15622EDBBFA4B1B4435:\ -30C59A448D99C6CBAE0C75F3012A728713BC357DCF1E814FB0E164F2502D8E1838C20A053FF5\ -41E0D51EB389D0932357DEA124126D40AA8EED077239B429DB16D18FA4537D2694A7E78AA8F7\ -B5CA9E2E4C62379A860D4BFEF73A23509359517C8F191C83ADE0351EC54855449441952B8D83\ -40F9A8E9692B79C9E52A48F55F7D281D5A093DFC313E704DAB8897B35142D3055E2B26816D11\ -8A1B2102580D87E888B5BE5C26E00FC6BE2A8A2DF05E35D0F34B43191F1A5BB5865D2F9F0695\ -B5F163F5AAEB43A21190C81344927DE4DE397DE23905509F4A94144276EC3085E353E9409BBB\ -FB4CB4871F67C11F93E772BF800DAD9B56CE49ED9E807A7AA2E82E9341FC5531EDE9D39C5DA8\ -1158501B0C0A23894E04418DDF6B3106FD980C676E65B7599197FCE7BED861FAC3E3DE4B6113\ -400933C276733FF335B725889885D1F05B104D60621E823E9E1EF47FA982445FC5F5FAEDF701\ -BFAE44EA5DAB480861FF4940C13D9E4351BCA2B84C21FB3EA23433FF7F2E9C56DDA92D645180\ -E6EB610B39309ED073A700C891BA183AB048FD285476EAB85042605B2BA614B390F5B0062647\ -31E736D9D266A56B62344A25AC7B95F88A53916BC0A764B373CB04ED7B1F84290A368D2B2F37\ -E794CBCDDE38AAF38915C1E0035B190C7AE546C9C3641829FA089F3E454373A90BDCF7BF5FFA\ -1E91D89BC026C28B00275EF96EED2A3E311CE73A3F8BE58C5E30380D67E55BB16CFDEF9EB6D5\ -2FCC797C0C017A4DABB554FBB4B3AD7D4EC0520EE5CB63BE6FEA34F8EF1B9B94CFB1202F4A1E\ -D694ACCE6B5D0A07147F0C15A554A6B05BF0224092A4CD3EEC46DB5CF93706D6EC1184AC2280\ -9617A6A9FDE605794947A10B11F5EBE05E674DD48908F71DE8045C71F345D22851607353201B\ -0B0B0FE0744063FF262B91894584784D216E63A7E0A550680053C85687C98DC8E8D31AE8EBEF\ -ACBBDC2AB15176136042A72F6E80A12168462723C42FB6F759392F40E4C38C74685B164A7AEF\ -478CCB598B39F3A84646A945CBDCE3339E369720A5BAD10C32058C07F7AAD768A693B3CCB9FC\ -677B5AE21CD4EC66992B8D1EE676DC0108A9C2E4344FA37B1AAC704D6A9AEDAC68741DE35FBB\ -8D103DE27CABEADBCF06E214EAAEB615051528456AB7477CE95BE4DD899975806D8F21055CF4\ -5DE6C98456F5A8F0B30AC2647B5A61B7A10BB77C91D7353541CCDD5CC98B24B5B6CBC28AE123\ -713AF68D9352407A232E65316400C25647840F0B60B8172325D3338561B797A9DE775C847A28\ -8D535E9A42530057487A8D4DB74A9E8D989B1A6CE6A9F66AC9121B8FD1FB4259275CE1BB28B8\ -25D1825DDA3330AD4AFD6B94B166C4C2B069C77B134AA105857772657A42976FC1B671F21B68\ -67F6F2F79DDA6AD5E207602B57055B0654FAF0ED455F164A7033F6B91E28054232030D56:\ -9F442E3FB2EA592A0CB7B0CB8D8CC4EF5257C2DAE393C21BA0BB - -C3E72DA2352F1272F2A862C1802DE449E63051F6D9DFA19260EA094B450FB888C40A82AB5283\ -AE400000BD786852E0A9502FC25AFEBEB3BD6787887DEEAB68A7DA7614A9446772DF7FC0BE33\ -BA1494FC76DBF30F7894E644FA1DF0191612BE7516420A850C46CF65389CD5AF7C5A534E7A40\ -CF76C90BF322166E26057A3CEDF2497B57742ABF06774C0E4A8675199F3CFC5DE26402B40BB3\ -CC303EAEEAED2F7AE6A0ACBD24D54549EDF40CF1EC6180B59CA17D4568201D211E400EF9D47A\ -320514F62404B010F730D40A1ABC45D4FFE475997A8692202E88D8A4BE2E3891D41096AE609A\ -19105E5CF74CE58EC9C574F0815DC470DE7E36F3780684EA0CC402610327879AFF283DCE3FEC\ -687D4F4A58CD4DE931DD5F3DE319C93E775BC417C29E6DB8B875F2F441B0BF7119980322C071\ -AD77B723E0823C5062D479820EB6D53F9F39AFF69D69C741C8C1C39EEDEC6A15336E0F25FE17\ -92B17D236C0567D14703F6C64685707C7221DF34EF5E3849CD44C3199C9D7953F132C0DCDA32\ -DB03D1A1C97511AE7A6D440277CAD76332251201B1E2FAC46EBA667C2905C00206145A08B25A\ -8FBD1478084E52300BC8187B3AD4EFD51CD7E2AF440BF7B61C52BDB5E25B2EE89E186F8FCAED\ -91E557DEBC038E3E0EAE0F894D89F1843E12C9A450721977D74ADDE7DA2F13C4D1F20884F03E\ -BACD1DBBCCC6815FAF755554DEA59BBE56B54F3EDD76220F35F82D9EF760A72E5EB70A20F45F\ -9458B2F42CEA0068133321772EF76C79760ADE842ADD7A9449B30C9E88D9B707BADCCAF72986\ -8EDD11B9460B39BEC7605A54CC156AD27B6D96A474D183EB1C0D2C5EFD388DB9ADDA2EF38B06\ -D723A0E11D94D0610701E20A8DF084F8AE67FF6DFD52A8D7EFC25D73802540FCA4C7E99008BE\ -15BCF36461FD9D5D3F66AA25510DB2DC7C715A5A1D40ED8DE77F3145BE7918BE39A579BB1AD3\ -9B64750436A2619A96094EBC67B6C7095A9CE54D32D866DA097AE970C5254113940BE9E89497\ -97F8F0FBD38281206D2F36AD1D4E0DF47FF3917173FFB99652F74EBDF85E0C26BE6E88661811\ -F285A02A8995CDCE78820711266D6A9ED3B29220DFE13D7FCADD3B3460903460EDC6C877BFEE\ -1705C0688C6B19B8AA29A712864BAD9D221A973D133317EBFD85095706D553452A31E9FA1C2B\ -18E11269524A8C585D0D852B5CEF5C20C898776C36F269F09BF33A645C860460263399864151\ -F13B10DE554AC09EFC791652451FE761D93F6B159CA6CE312AEFE8989A0C173F0C9C3D185DA1\ -ECA468B1C246F9EFE6D8CD7BCED96DE3D6E6F34ECE1EE378AE4A3D386EEE3775DA3192617163\ -DB46D1E7BCE606B6A43E07A9C17C6FBA952E2A6EAC4DFC3D4D31B447C85750361B9F08B0ACCC\ -87887CD270CF7A898B8C0DE907E28337F9E011F20E219D313E3BFB708A3273149DF69193:\ -EFAA6D16D871391B565E2CD61AC153AD5A52CFB19535E0F0F0C0AD361D70053885367ABDDCE4\ -8793DE9FDCDDAA35ACCF7E99D76A98DDC4FAB05C31A1F39B971F20D2AF515B4EC62C686AFE08\ -6E7571EF15629281B76988CAE44892015C3DBF8F44731CE3D2C862F8A1B0600BD7C10B6DD5CA\ -276FF73AE22C411A6FFB7177819132DF0C012675B59364231EC6222A270F80004E403C20A63E\ -0EEAFE8F8B1D7F389F53A27BEF11BD9486FB83678A971A49D584405C9010F1A28EAED00FC2AA\ -F4A763659C28D73D0F79429A65BBF18F4736DED48043CC8D9E4BBCE9C8742FA66F566CDC64B6\ -C77F0D4C5EB39C45B65B748F86E00B0A94850B4A3EA2BAE4508DCE0C2C040032E714FAD46A91\ -08CB9053E5DE1108036E816027BB28E8A4F9BC8FC4E0532C0F734247EAB51C3EFF525FA160F8\ -2AFF051E3E0879A5C0B37BE3EA7FB811CD473D711C45DA6C35A499BF6F4CD9A61FF77FE4D62F\ -F750EB353427496F34C46741A612597BEFA6E78EA7F73C3A9AB06D66C46E0254F5BD2634FB8C\ -87B188A7ECBCDA62E7C60A60629EB89630760DC9946C898FC6A8FA1CA72AABB45A44EC09EA7C\ -B7A83E32088957703617C53FC8612EDC540F2B9F12263EA3DBE1C137B7401C4BBC79601C8986\ -02E0FF0F9FA82CC31CDFCFC876C8692727982F95081B21BEB36664A103D743BB4DC43FA4D886\ -853C555787BE2EF4BCECD3F960271494B3272FFBCFD15DB4F13C808B43A93B18FA2D412ED8EE\ -94798D45177F25B64BE91681901FC0067D78CDE05797968A4A5A17EE2DA3B13D05CCAB6C9BA1\ -DDA97AA52B7D54348C902EEC725B2F27C0E30F080FEEC33ED2406172833EBCF7324AA784E34E\ -EE33987AA71B631CC63577FF8DEA298986EEA883FF69E95EBA40D94AD348AA8D92997F4718A9\ -1A963FC2954D6912EE70297B365133822978C251E4F8A3CA7233A6A928E36D0CCC15BAE70BAB\ -7D6FD849F2EE215206CB09E91A879B475832EB839A19032985A3AD58C99E89042080B4BEBC24\ -A4643BE342057385E33C6C08C8C66E9E842051B5D53AFC272EFF54B6287CA60A54A45DE35B9D\ -83B0ACF58A5EF76A9562630DCE413E2650AC40E6AC286D170A0FFCC03EFBC6E19F0BE6A7A694\ -10F019FAE61CBEEDD64AF69D9346ECE739B4F0DF179406293B16137510060206B34D47069ABB\ -5CF345E8273C6E614B9140DCDC7721920FAB33FEB009E51A1A65E2A004C5E24FDE771A4FA06F\ -692D8D8FF6E41CDC2B6CCD81E001EA39E529367B7CC7DB6602927E5A7916410AEAEE2267545B\ -79E3CFBBC6CE1EF761555E387524990EF18539BC4B69F65C5E7F6BDBD4C304105C7436F445D6\ -1B69578ECFA9DDC357BACBC0919C2A796B17778EF65FFAC0D55CA5055AA2042B00B1B92F9227\ -B061EBAB643853CEA690A77138B4276840E895EF691370E6A36434EC092A815FDFB12AA8:\ -98D9C8D2899042442EE0AD2507DF56B749696D07D2B3BEDAB9D13B - -70FA4F489BA7A72EBFE10B8A591FC75809D116425A300FD9DBCC0B8863EE25A11D531CF58FF5\ -FF93D05346FBCE189515B84C8AB100CE6B802A340E11D522EC771C1EB4071A1A3874674E285A\ -C4A8AF302E95BCFAF741B3FBE85ED098EBC177E509FF2B120DD48FD41C914354A8818A4AA8D3\ -6EF2926CCE7C71FA19B0FF67ED6B9D2A3AC3FDB6108E3A68477C92897891176D4B03D4E26292\ -B79FD0AEA177B0F058D3F0917D642D39F4DDC8D02773C1C75F705529629E25B10E465148C498\ -62B0A89F1BF62AC70711AD6313387BB0185E8AD71F8CB4244655011E7170A304DBD9D1FF3EA5\ -CECE7C3207F3F94F838CB61754672BFBBC8F9F7BF255012D759E6A2E07E90C7DCBD8E0F87FAF\ -CE0B095957A07F5CA27D6754F3B1FB5090D4F971486F533BE5012BF3C1CC4ED7F7963854EC84\ -932B8B0DC8690F1402E201C0821A345CBBD7B65BBA2849287B4EC1C62D822919AA1F1F46CCE1\ -ECB1E01FFA7445A38B1BB8A7AB84400159C8B1738EB3642F6BF12DD4418F2C2A4B5262891F16\ -E5496561C6348286DD2C1DE2C8FC1657E49A0C039AF09DF56C5EB561DF4CB947FA0A932A07BB\ -0970B3FBC018D9B17A4CB87AD93E51CB2F3CB13164AA6C3FD719419F4B67D1B03E3A9308FAE9\ -D6DC94B4B1C0689C9C97D9BE77D395071825C3ADB32D0702109F702AC8D7B762DEC9A1AF5038\ -59F98F7AE75AEF4691F3A55174623200205D7DE038071CF8B02736C99A3A18E92C10E866F6D6\ -9F416EAC0EF9420DAFF040BFE3CD7AB9A240268C03B9D66F603C6A1AD1254D736BA669F9350A\ -EEAA647D3B7FF0CB3456A9C39EA5F936C5F6B124281ED41F760BCB1E49056F74142A0F6A6BB6\ -4B85958F8B25CF7A9B90345ACB5C3ED17B285977125A090F7C7FA391DCA1FC2F442746EDB895\ -C466D665C949BDF2AD3E56049A3F62C916987AA911CB3D72969F920FBC4883AB0B365109502F\ -D5AADB0DA1B79324D3299DE64C6944776C0E9F575DB1812C408FB263F7CC7612007216741B5B\ -397F7F3E7CCADE3E9F9A891FA1FCE70CB46DA29E520F7E7BC049A954D6F6997E82A7B49C1E98\ -0BEBFDEE9AC11D43C152988C1BD90B9E643A1761898993BF642B4465DC05D87FD83F1BB98CB2\ -6F1CFC986DFAAF1BFE98096C65ED8FE76AF4D085837D46F63AB58FCF5FADC6E098D319AD7172\ -E0B2CD6AF62E10C41A46C5F08B2A401C212D49E4ED6F7A372B5565D7164897CF6CFF57E0F25C\ -C814A1B46B01C78D76391D76EAD6D9A9F37B6DDE47BD32E153DA5CA8AAACF436D4C91BD5BC85\ -AC9550D4181A3FB20F6B0DE6E136161DF570D6BC72C52AB743BE670F3B83351ED71F3018B333\ -6DD861CC0DBA507BC2A16B6EE7E0F29E7472772E7FDF47DA7AA4BA19253CA2CB69BB5EBAD19F\ -30C6321EDB5D908DFAF162550E06BA90276B9901BAC6E7F1F21D9E7E6895396ADD9E6DD5:\ -B2511B9C8A29E538FAF6C9FBC0C5EFB8B53548000F3B69A8192D1074ADEF8A589A68F0ABD991\ -5F869AF21281EA9910C20FF08006AB2C558FAA5E42D2C3117DE89C276C1977E36EB8DC80AB91\ -9B142D35ED73382D4736F9135E16F58B64D5FF75D235637AEBF4ECF8677F214C039EA29D2B95\ -37F88B9B20C20F590B26A8394A2B9D4A4798EBA65EAA6342F370E732459DF8A13BFBB49F5331\ -B5B0B60526FB42D093271807F7873DFF03F5303725CC3E2AA847EDA1E413E8D11E9B8BC85C9E\ -2B95E14F38991CB01164EF054076D028D9C0AB1EFBAC1D0CAF727194DBD817A6FDCA84965434\ -495FEFBF6A5B28D8E816680002B03754178FCA6C5EC96FC069D30CCE54307EC1EF1D4EEC73F1\ -45240D4BD8C86BD1C42A79456683A8D1720B24B839ACF53FA450A5A5AA6350E8DBEF67B8E072\ -F1DEAC1FF5940D1BF7EFFF618DBD461C66298EE462230CD07AA44D1B145432995F17EB6BC069\ -6F9260614FB1839AAD3AFB70B767232EA053D3A03AF278BFC4396B31176082A97E96B11E88ED\ -DE6E419BD34079C5E2C0E3063EEA2E8D285B11F886B1AD177DAFCF6C5159ECD12393743FB6E8\ -734147DC08F681C79B8ED889ED4BC2908D37168604740F92F13C8407A2F7F1138217154FFB55\ -4D1CBA031337867EB64B03FC343C35CA899E2B279A3879F1A282535E53B7C54E1429FADE2FDC\ -31D371BB3A0C6FA886E592CA9E3A41864CE3B3C1A4C64737A835C40678F2F22A48BC2F02BB63\ -462BD9BC8A0108DDCF3A96FD4426EF9F5F9515ACE83D9B37DEB30D9FB6612E1F8509E7B55730\ -2A86F491A6DB9E7BF4FAF867D8237A491D41EF94F36A691892275248AD721092A5EBE87CE010\ -9D497221E17B6582A0C6AE2E6D9486B8CDE0046A196FE4F6E9490D2D3341DA9AD473BC94C341\ -E1B003E5579CE7C07C8ADECD38AF583A226EB1365C853FB512F27B25CBA25FCC210F3093CF7E\ -C680A2A32CE434E7AA563236D86442E7935DCFF3050681CA2CD516054DA3D94C159A935EE03C\ -96D2906391BF5128D82FC106A2948649E8AFA0C5A3496F42206DDEEB12168A248B4066D9939C\ -036CB94E54570B18E234429EC67AB15B8760EF62053F2834DD41667C3CC57291C7AB37395908\ -7A101AD986AD201A7BE01E79DBF19D392DC119796382C7F1748D86418110309C27451A89F111\ -24F41F8D497DFC0874C9618C8DF99199D2E366E7147E8DE0D84FFB122BB24ECBA72ED6F42AC0\ -E0A4B73924CB2E193E4DE685B9C0C557F2AE0441B93838003F59A014EAAEF999B41ECC3E0A9F\ -F58C38406178BB2271F2DFEDD3B8F4611E1795755EC713F5E7F4967919BD21AA336E767FBB31\ -0E2B305EBEC9E3CFD2F2DCE6F2695D29C3A69AEDC81344D1975522B20E2A39BDAFE01F370C4B\ -21AF921E5D39A47D5F9D0373F69BC94E154A95DDA966B83E9D72AEE63A3C3F01FA45F7EE:\ -3EDB5024B4439FD8463FB27E72DFB2A0EEC2A108770C9EC58D91D5FF - -13AFF54F5FDA5CFB464DA7CB2B7EF98B3E19DC7BDB50302DFD044BC96A26F889A3C869F861DA\ -D16F832D9095855385F7CEEB11C9FF029E270A82AA00B71D62951AB702C24BF5AB04E72974CB\ -70E575995F093E28E3AC8B74931B77FA74BFDD704E841D3AAC4C3CCD41829B052ECBCE10CC90\ -9285F644CA5EE801434B95B7BFE1E8D13B8BBF0DA6D608CF438409B9A5BEA68CFD03A0C040DD\ -53698F0CCC5A23AF583848CE756821435B9DD99B431CDB9EF5419B8D595260CE0D129A475CB7\ -8105EDD56C24B55860A56CA0A404B695852637C8220E7B26CABC0EF8477191FE4CA80356D693\ -DA691FBC7881AE3740D17740B5B39C01FEA3463484A016621E1320D2503F1B680F62FA2F45F8\ -5D9CE530CE7456257D86C68198338BAD10CFF149DA46B4AE5F4B4942204DF5D45887E8171581\ -283BF27B420C99314556C74FAEEE06FF34492F7D6B9E1DDFB4C7B0C68AF0DB1309548F3B0C14\ -DB47D59CFA2B990C67AFE1A68E765180F7F28B9A022FE1B9D46BEB9CA70FC84848C640BD2658\ -22BDBB22ACF459A83ED381DD01C1B4FD8F560EBAEFB47798116BA55D7401F876F841DD7CD7B7\ -A868D8E25F177C856F9DE63A800FB38DB1B75A1AB8F5DAE7F17F78158ADBE74B74F55BD6D2A5\ -853DDB39052B7F8320266734019EBCC808EEAA974B9B25DA57CA946FE338E551DD1ECAE44098\ -5FC7EBE545C7DDBD2DD6D9F8B998460788C1B9BF031A3919F56D425B08ED00BF8B413A094D88\ -F5BBFA5C080D1E9988DAFC03CB7DC3DA3963FF91A57C35803263821EAE880A90F4A50BE0E253\ -4498E8360AEF2E6DCDCE3BF0C9B44B865E82B26644010A5560E0C94E6C12BA664399849B71F5\ -27F74411D41D408C938805C3E9674B8854B8505EAFD47EFA6157CAAE3CB05E11F2A689AF1449\ -9895104A59778EF19385D6640466CF19E45DCE6B7367D55F802AFA2BEC0553C730EBFC603CDB\ -6BCA10B5066BDDB55EB6E81AD2012D7B9802ADE7A8AE708CC5816CB77E52B44648032FAEC763\ -942C3AE1B6E226F2B89590D9D738A9BCBB8D8F1C92F3F5C84DA4628ADD590E71AAB74E91B7CF\ -558459B641A5F5496B93A973EA4F40A1A3DBEBBFCFC01559B0F081F01A83074C16F101E46563\ -9B159ED430C194DC78D398EE03B779D978FB4BAA7BA417B12BCFF174F22F71020264B5F49D91\ -0718DE1EBACB8D80DC7D45882EDC842DAE134679F60C5D59A0B8B71082009A5D0C335CD44389\ -9E62A2D693EA93F593F1CB33A0519EFB246421F3BAFDE66A44D6061BEDB0E93F1C5DD6CD6D22\ -864FC0407664349C83AD6C3362978DC255F0C9DD421D9247536401887301E5BFF9286FBF0D71\ -ABA606A4C3DE065FC95D282209ED7A18221969C79147191FE629076234C62995A07F9550CDC5\ -201966645DE98A12FB2F36AFE4779FDFC1AD49A59992AFF96E372AB59CFB056A37F3CB56:\ -7037C2E54E86E1F52D497FB4E60229BDBB7357FD617924EEA72AF90D68BD5075267A9B02B8C0\ -2EBF86782C0B4BA174D9FF66014B2AF61184C722D5398C531218054D7D8F30EB6FCB0A871115\ -2AD577B2D51179E6266173B6F4CC868AEE184AD2C39D06432AA31D672BB75FC710A8BED7CBC3\ -B3CE303C13781E243441E7B6A1B6D223A32D4472EFDC8E50F6947AD601F4B07EE405AA66AA71\ -313612F904626550F6DDBC71A24B3FD9F036ADACAE04A035C13E2DF78AD9458174DCF3677776\ -BAF8ABDB1668D39F4D4B513A2DFC8D36869154DF1D3F45EED4DAE86E77090FA21B0C2514CE24\ -EAC2A0D928EB487843CA5431D3C6FF527BA67D8C337DAD9163EFCB9001E027A4EA629624474B\ -112EA2DCBC213365EF44B1388EEA3C76D02AEBF1C2731FC54AB6D197821984DA98D22FE979DA\ -6920C15A2A4F19FE86A7A49C1045421149548BF31A48254D1908F56B885F39909BE3553D8242\ -2FC41AEC0C63D047DC65A1DD9C7413097A8B986C3964A498C3C99C2E7A4DE23205265734C29D\ -457C32A2FD4E598C136C2B74A51511024F75E9CFFE60278D7DD4E674EB07F1EF7149B9859A3B\ -A40E06CE8DE91FA588CD228765D7FAD214DBDED8B7BFD6726A51CEFB803740CD87D8F23E7385\ -5691B6FBAC114C929992BEFE46465FFAAA6C592B0570C9F9EA87D36856448B9A5881A8F3446E\ -9F884FA0D3F6F396AA1B95CFF30873141CBF22DE721E355675BEB018E2A725B296F029E9A683\ -E43B9FA417A3DBB5E9F5756EA1DF3C3797E70E54960A9ACCB28CCAC4A4635BFE1F4A2A2CA5F8\ -4A9F2FF6B2498C7F4F93ACE34128B73BCE971BE0A5920E9A938F37402F1BC4DFB2B651A7F30A\ -DFBC991263418BEB635E25C1CE3E748A0BF9D9C6D4CF3EE48646033EFDC377FA5A5472375349\ -900D1F1DB1D313DF7E64B9B34C4A7CDE434E16A9D93797C07D50400D13E7F65486DADF196099\ -FE9F71554CEDD782D89B92AEC58E007BC903BE82C26DDDF2C86B8FCBD52ED64A19FC2920C74D\ -7F0B47AAE7FC176851AEBA05E33EE2081DD244B751BE89D8FD1E74A798EEE60A493CC36AFB34\ -DD96C34541EC3A2C32F1285DDBD88BC71138DA04E373DC80D958CD369C64FD5F26485369ADA4\ -1B93F5D43C47E2DFF1CA55320A70A0E07903964571DB66C75FBC691691B0520A2D31A3BD0CA5\ -22D842576D01B57AE4580B8AB4A6160159A96DA5FED007FD02E4D63ECCAFAC155251F316BB54\ -FCE1390AABA68E296756AB4F0189F92816FE9710C3E190F4679687631E99981F17429ABC4CA3\ -482C56C0E42061171BAB63AEEBCAA30B3CC4883A74ED71E47D5D8930A700F6D5DBD39627996D\ -9B93B978A8ED52D6E87752CA617331543CEAC386A6E3A8F43ADBCBDB46053F570119B3F19B2B\ -D92477AD98AF4197C274C2B569E013A7FA7850D8425F65AA425581B720E27BF9D9399A76:\ -4AA2A4958F5A0F91B928D76B91C36506F6B4C7C3EA41EBD6416DE2AECC - -2407970735E9026331AE5641300FE86BCDF45897190370274A476C8790502949D887AF8DFFB7\ -D1CBEEE0BA4BBFD0AD393E2D0698FBEE8F3E56C6E08C3ADC37A2B2AD1BC1A5AAE25B21B6E779\ -E41DDEF6C1FAC6EE571284F4DEB791EE1F079DB666E2E64C1378763C3EEBA9B998C27C757E70\ -8C680CE0E9C64B3767B4711C62D2C10F7905364DEE5C4A7DC533299BFF6D55086941F876CF1A\ -803F04EBC45EAE5D48612FCFAA1E6FF325CC8643DD77B48B16CD6C01E767DC11499644B6C301\ -565E16BCFFCE712676FEB37841608CC173456A4BFCEF5F9A40FF521CF94A9A38E20622277426\ -EE49330442455945510EB10259B6FB360F1C38535CDE3CC563DC44F36F978A1766CF91D49592\ -1BE0ADF59EA0C659D97E1C321BED0113B840350085179AFA32426A6F30AD9CF478A727D89DD5\ -693A087B16AE1C40010984D8AE35323FA84598B3F7A13BEF741A6BC59B47BC8D5250BE51E563\ -BF30BA364E54B68B75955FDE0809C56C25B79831EBCAB1DE292095DB60DD5E6F8C68386EEC70\ -4CDF5FD9B21D2011A955DF9425E62E94E7B5400801E549959B1D7512A5F69494226824FD4E14\ -80D28ED9D41094AB13D280D6E324DC2C61AAD4141F82BCE5B2342654F2A78F08A5C272501617\ -ADA60BD42A7E5214072B104A6EB88916E59694D4C72ABACD08D31130C88A6BFB1CAA47E3F142\ -8F4EF3D55DA9593408A60CAAC3058FCB5520C86D6B5A127A2D711180313690B79EDBFDC16EB8\ -3496C458426F00B56F5DA2AE368A297A76E2F6E86974FAD93297E55269E03E59EE09EEAC0DF0\ -2655DFECF618C83575EC012F36D6BB05196CF85D49F82D99C5DD164AC87AD9C5AE7698B721AA\ -293A63EF98535F7547BB044A3EAF9E9F3970DDB3DFB6E1BACB4A457E7D8D63780BEA7CBB1068\ -D66123C401ACDC047E0819A4BCAC745C2F4EFFDE8249B1FDC0428972EA8FBAA981F004C7CB4F\ -652326E43819BFF7530D44D8B42E52CB52EF56E897DCBAEFEE5984E9369E3EE7BFE5EC40FCC7\ -30E2C15C05D6319483329E117B79F94E441F1F4BF0814501418AA5349EFBD62F7CA3E5E67257\ -D9FB373C8D3DAF0080493F181EEFBC69C5B9F8D2EADD3D9D18774CF76C2C063C9B487FDBDB12\ -A9B5A104D1B6B5C4081E6A83EDDDAB5026EC6A5236D2360550372AD28461A60D9E5ECE6E1005\ -405252035365C61DA77ECB6126C7CCE1A5F1F2B5E8B53A50A49B6626159175623A537D0593FA\ -142194E7F137A88950B5BBE35B30DAE7A6375831FA9A3AF07E35A0C92BB60EECAD8F6AFD225C\ -D68B7F77BB8D96CF9225324527F5575A17CC29C380650B1D6C8A4F273FD3492A30EEA845B028\ -3EFD0DC9E7D2F241E77218342F4B263855D3C4DBA5279891BDE280942CA5F39A48A73A605F65\ -42E64B8D234DBBF3765A6A142E20EF90D4D30F5C93B243E39D86411A5EC1C04D0BAF7157:\ -1587639AD9EB4304EA3BDB1B51BD4A3E928941107B3E4D0BD637C39676F1EC92F01B7139A4A2\ -5AA3060945143EC36BF7A6D38478ACC037988AB7D334C8DE4D0C4163F8F8180A0B45CA17BA0E\ -4D850E169DD0DA41EBF7EBD08B6E059AA7E5012286BBA63201F44129C0B214C31E338C0924BA\ -E2552EA450659AA96464B34250DE693E4A1B917B63EBD1528BFF6DEC61BB70E84309245195D6\ -4E9B30A880CCFAD7E39EB3C526E657DDD41183A13E16C23B9E18194F14372EACB8DFB31B6DC4\ -18614C4A2679C1D101A4259DB50781795C55FDFEBA2A5621831A2142461D3BCF80799DBFCD41\ -26C85398EFD911F7039C62A32667C4067E155C1BD9DEB210E6006FAE5DB67ADDA8EDBE2DEC75\ -B5BBA1570C2CF3E3118C0DB8E5890A94708A9C089BA5822CA7F59F897DE20020DE3EC4F6D092\ -DE2159A93367083FB15A302F5113F49A521BA8C863161080EBF49FB603990D1F920FF5C23455\ -E1560C1D54E5E7E4227DD35E86298E12B344FB30F1F9565382E073A2946D7AC8B3CB903D7649\ -01A04E79F5F09E563E6A84FBF60EC88990ABFC71B071997FB6024F1BE56B94159EDEF135EB59\ -FE37EEE584BF4E066D014CEF83151103C21B64D623B115F84E0ACC52435DEA7D39C11A68B608\ -332C56CA5B9CF0EFFE59040FC386F947170D22F2453A8EB948E3FEA25CD482A4822335005DFF\ -5A6ECA44221231E7EE7CA8AF990346B049AF59A95CEB2A7C884A5DEF765BF8D837817F4019C0\ -C323B2087159CAF7B9E6EA2678DAE509B4C607134F6293DD2591DDEB92D9884D96295A811593\ -89D44CE9617921842F6D7249738500F3CF2B73EFA762B9EB399F8E2DB5B29EFD71F1A6AF0B37\ -97DFA41651947F330361A5AC495C0D3A2B9E4F34FA5D186CD946EDE0665F861EF99AC831F0D6\ -7351E848D9C9FBB74EB97F4CE03B5B9D70C103A7530063C4A7A3EE331F9A6314335E1B433D77\ -D158AA36563ED4DA4CDB9B635C5EFBC5B7A840A6F74B0DBD906D949BD419FC7503AD21E285B2\ -EB01BD7123BF7AF375D05DAAD012121310CA7A9A5ACDA2218D5FBA47596F2BA86FFB59090040\ -40CEA480E2EC50AF9953D379CAD0A00E375CF4AF2F225C4C66B2BC26F751B3FF35512CAB8B94\ -4A5120EBFE7606281BB53C7AA3CD5012592638A9C6B8D855264940A980DB68FAD2441691384A\ -C8ECB31C6529787B5B51B534E94F1DD21E75E8D666F74485642BF4FFFBA1DB6D8D4F40442127\ -6BF1CC7B5AFF5E57241B1E14BBC4DE84B137EF7BC9E1434DD36FB9A91B551E82A9E82F87FB53\ -665DE96A33B5B3871EF88A18560AF91C050AB6476700C7FBBA84F861E1A738691BE2BCE485C6\ -FD4E6D958CDE8DA49BC4B2ED3ACA18D12E8802967BAD848CE3C5CCD25B4941BC96B0FBFC745E\ -802D86C8E11642F3A0C2AA1026ED148D15D4EA27D68B26F7A73A15F05C056A68FD8D1D3A:\ -FD7760119A0432CB5928F24CB65E989B523B540161A3703E2E9370EEF544 - -BEC2A17A991E96730F4189382AA0D0B9FB9F3DC9478D3DA9BE077815332DD60D74A5B06E2EE8\ -91E2DE94FB011BDBAFDD287053B792FE58B6C0DDAA56731A160CFF5140FBB15AC775C99E5265\ -42D2F885902869689561B6CC222F216231537665F3055258B99CAF7E24A756AA64F9F5F93C7B\ -9C790F0F56C83CF32F265C75A1FE60A0D03E2AAEFA99EBF6F3B5C3FF6D12CC8C8D1BD9F13EA6\ -E3EE9C41963824CAB090305A928B7732F96C8538489AC959AA38CCA32669D3477E25102349C0\ -59E47DF8CF161E174B75918249D61F5F8BC5F5010B48A84484AEE8149822750112052557DBD2\ -FB46C741338C1AC533FED2B753906A47AD8FEC3853BA882A35461FA5BFD649DC1349FC9D8A04\ -117029FD146E54B4B434AF5ABCD0194C226FF3AF3FE22070DF5FE6B927D27AC30B3CC304FEB8\ -A8F087ED668700E1268AE6B2A575E44ADA0BED14592410F4252585A2559F6A59E4E226F53F5B\ -4DB4A9F886E6BC044580B20EE79D5EFB6C035DB9D24A2684286071DBCDD5BEBD4B38DBE2F990\ -E7D0C30E4BECD54607D673A6FE226946D54BF84F11E4B10FD44C7EA79AD5A523BF38CF23D856\ -311AFE8BE54A9E417CAB529A77BB210AA8E3DD8C0A9F810FDBDD9F7EF1726F489F907BB6AC2B\ -AA5E6B7CBFFD864B8B47E91D0CEAB50ABA28245A1A93C3C6A3B0A907F678F2424FEE8C25FE94\ -AE69C454158F8ABD844F499F4BD39ECE28DDDB373C8A1C40C0B060927C7A879E1FD03876830A\ -7C2A67E9AAD1AD7B41B960C27D0912039FCA6E49075D1CC86619AD7A8FEC8422BF3AF1DFCB45\ -E2826D96DDCD8616FF4EB4CBCF2634104A09250739D6FE762CD05619A9D552D33B8AAF54CB8B\ -9AE834DC2EC340530DFD16D8E122F46092B03CEBD8AC54B70D0157F0D30DD4F1CA25EDB7F527\ -741AC5DC48E2AC752BFF7CEB19FC1618008A4F622C9DC1B29B4CC13C2170E7F771ABF40D3A63\ -4FAF580D97A3D7F7014EFD71425639EA7E026557123C347B3E2E57C7A7BF14BAB4B86EA05B2C\ -7DDA0787F4DD4EDE1A2F7675DAE9661E3F13D200FDBC64649B977BBA5AAFE6DEF9EE606E3152\ -675144015D012B663C219434A9F413E4331503B0EE68B7D53C71CD30429A33A6FC421C3EF8CF\ -7C63954B071D36A0EA1A9973C0BEF37DF9FF62C3FE6C9CF9D5F040CA663EFE4D9501CBA1F9EC\ -71F55DA295954E119A2172252618EB74DA2A931AC8532F9745BD6FF660E9E851D58976882ABE\ -61ED14DA8B2C0AB5A16EF9CC949B1F8854103F4D8C55E02802E9CAC30D0B0C8D5FE26D987BA7\ -F63C195FC376DA3C0518D2B8D9D7CA945EAF8ABE2BEF78F99FA8EF19133FABB845BA842E1CA8\ -6927207452C129FA12ADCCA3E4752635675C4226B473749817E57986BE452B67F9D6D8845EFA\ -0B1642905D0A9A1FDD6F4741111E578370095FF5623EDBD4DD92D7C4A9E51AC4660FA2E4:\ -27E92D9318FB1F44542B1FE1D040204690E57E289012A86D785E230A6A473A0CC3FF61846382\ -6C5A6BE0EC29A42424539114D11325B75D7F84B8BEAE7AE78122AC69E8537FF94D1E5514F12D\ -5B2A985DE39B68996471E15FE5AB14E533D36D61EEC01B70EA9749BB431AB9533D1DD1DCE6D5\ -69696057DC693C0BCAA9BF18DB7B6DB009230D492D01E7FF2DECD0BEF61E4425E1706FD396FD\ -2203818AF5EC5833BB7C902D325F47E3ADD947DFD7F7773CB791C7878FFF63916FC373642F38\ -B3200780C9831D8C173389AE404C6ACB29E844B96487B8F59B4A5C64CD03F1BB0AE9F5200E3B\ -C642D2FCF3A422FADAC4A23788B44B4D085D25C346A381D43782BA28240AC89C75BE6E346E0C\ -098CC65D785D3B522EA3F03DA743D84471A2FDA73B637A849C0D924CE9DE42E74F77AAEBC64E\ -844E69FAC8D1125AEF4770957ECBCB1E7F3183780E30B188101D598D7F89FA6A8B32051C3D44\ -6F9DF12A850F418282F819CDD06A95B0A08FCAACAB87D1D9CC91FCB3A762EA11427CA8045C6E\ -AED46D823E6813D2C1C9D496B726A3F06DE1C5D70B943CC41E39D7904105875E9D6D1571D07C\ -3FD63007A759210CF93D8581529D0C3CE80CC60EBDBE318DBF63F914F1BF0E991F51932DCE90\ -08DFF7C6C29EDCCA1836BDADA487BA7080A6D154939FB82A0F41800397576636804E97DDAC08\ -F36508DF60A2538F0DA657ED17A54AEED2F46A9D924B97C5A8442611D12E140D5584B7375C2E\ -47389F339469022C055E7303A144D63566069DCBF40432EDF8A6693D2764BA19E590114B44FB\ -CAD4F1699FDCB64F89AB053D34355915E987F260E09D657283CB7758FE7633143FDBAF479598\ -6A9E480E8448FBB16EA49C51E6359491A5215DE7947E3AE0FF018E8DA065FA6C17AE90D07431\ -F8F4B6B956884B3288937F40F72B7A90E36917043C994B354DE67E3DEAAF15B683A62B023BF9\ -DC0E6DACA05D75FA9B8A16CCB8802355B0ABDF961B34E18853220E5D01BE63449F002F23799E\ -7989E9EA37BA15B525AA053B200B4AE796DB432242B9EECACAFD1EBBB9037C90D837AF20407B\ -194ECEE1A4D468BB95EA0135C84BDD8079818C822768728CDBEE416FF0B5311A3AD893437D57\ -60A14A94F4ADE9A0C4D7F2CD33AEFB982B8C05E4CD0D8E7C50C9591AC3678E1DB93796004E71\ -9705288C15F8FA49CAB636757ECB0037B852B755B2B519552EC3F1D9EB79676DFB793806043E\ -880319E9781B9702E3A39C80D8DD30A9ACDF993319287ADC774EF961670FBF74EF41CCFC4EBC\ -CB2A571945DD5652F7FB85B20C5BA4FB4B7AF0993C4ABE8DF1231DB8E635BF7E6B5F73DA5FDB\ -042E699F68EDA254EAA50E9B180341C1AC72E0DDA1275205AC0AD31388F2D002E3DD3FFE26FB\ -8CF8B69D9728E583B1369F3688AA9F3EC3F1C306836635E3F14F37FC6FDF7FA8578BE943:\ -8B73381DC14BAD9CCA68FD348320642E282C53740BD4E479F9FB21A740C4E4 - -B5E5EC7969BE71F2CB23A1B3F03683D760849D250CED76939779CB56F68A1FB0C5203E70C709\ -AA3BD5F46BEF4810F7A1D5D3DF80C7E887BF8D8AAF851D22A70663CFB11F9FAFF3C7C3CF7989\ -A62D3D51A317F5AB3F34E3E666FCEF0AF7565831C148AE441EC5B944267D2A5724225EA7FF93\ -B39A3B4840FFE9F379598721C1C8E5C72DFB37999932C75D16C5F43D77199BE6FFC9F19EB8C1\ -9296AE5C06CF2B7263941D6CD40EF0D68E3D4E309E46794EB0CEF97FFC79A2209B49657CA501\ -0257AB977BEB3070192E13672E94C99E8250CBA79BA46A23C1613D46EDEB7DF6D2AF8F092811\ -5CC002103BE69BD1E7BA4D81EC5CEF372DD1A6FE6B2BBD643C04E0C7AFE61BAF19140C0A45A7\ -226D059D66EBAEA5346F6C79B32F234813CA2365D3F45E13F77ADE50C16A216ED9497BCC77AD\ -AE50DEDA9636E67504C71D499707951CB28EDCEB16974A7F8015170E7CD9A2962D529EA97877\ -281DDBDAB23988502C46A0F2CDA4700DE1923334CFA6F344F4F8514DEDE2DDC82C0079729840\ -A459A59DC89C57FE7CA34784178FDD70D1AD7F46C1D464DCCA8D0D9CFEC542A0689441360C33\ -F1EACC4B882DE9BFE1B593459A13B73E86BD8C0B0282C69387B0506FAED80D13A2CD8A61FD55\ -6AA52CA111A250A9759B65C9815E8917A81248E47F7AB963A5D26ED23F07F1DC07F74490F97F\ -0EE79AC55532855E44BF85AC6870ECDB6EB454F04332297D1A219E76CDD92BAC023036C580F3\ -311D5255201F6617AD800A7C1BD4E0014AB554840B72BC2E6492CF27E246DFEEBFA679789260\ -0B13CDDC4B71F644492950476B21315B6BB6599355EB2ED3B41DEDAEC9915803204A77B2BA17\ -F5EE77143D62939326C6B0E47D013C8B4CA35EFD56969CD9922DF373DA3361692F2215D1D79A\ -620179B399ED509B75D64229E678D50BA5DE297D4E3F43E63910BDE9F50D81477C4204205F74\ -3F94168FE1B1D49BF0DF9B4CDC54043BB0992D1D8D2DCCA0E2BC3D16BC9750DD2683C8B60313\ -E9A8E613DE853B5BAA0A6F987F6E7DD4753E285ED6FF895D521BD38567588F36DCAAE3CFC13E\ -A204DA65E1D8FDBDB8406FB10F99C977D2523B0556C989D7A13E4B6CFCE1C92CAD06F513D4E9\ -ABF607D88FECECD8C47413ABD8814DE84075C4BD8315EBA45571247DB384BF6C84661B93E4CE\ -7ECAE02CD3B2E5C93F08FD020AC41B583B73E5C1534D5F101058B9EF51BE65959D30E2A74F64\ -3F55A71DAC6441D3C03A117A675F6472AC5BE7C3D05791E85134CB10CD4C8A4F9E62EBFB24DE\ -64FD5713CE856BE832F4D6C409390EDEA43E8B1BBEB195C38478342B33BE0595334B3D0EC5E3\ -92BABACF0052B3686AAE8AF9A9D49093EBDF6507E073EABAD120CAF75A172E08046542B14958\ -8AFBDA53A1713D91980F04E95A048BA7A92B98C4C090A622ED1C9E9BBEE79D1F24E36DA1:\ -A497092296A16CBAB0B6A592C33FEAB468D38BC809F666492B55F6A0FA8C02B38856A0ABFDB5\ -EB16423C8FE8C50DF5522C27CB55251A8560E25633B97CD00434266786B57AA4CBFF2334D072\ -CC32652917F8371F17EEEB05B46B520F97D63EEE0DBEB2FAC94896C49D13EA71EC1D6553B05D\ -C266D1C2B8AB82932B5821A5DE558317B0C42DD1CC86DB784564BBAF915F5467701FD7C28C9A\ -A51DE741D90FCB60A16FB21504F77E7EDD65CEF98E1C88CDC657BAB27039C3A89A022B18783E\ -65FB6F7DB2D8DB623BCAF56FD94634FCA45C9537BDFA76C6DBA3F4A7F39037C2B935C25DD517\ -AA2DA9CD8F5E83AE7D3E95ED63025E925253D1C5FCDBBBF18310954C22CE7851ADFB0527C057\ -B51EAA8504082D138DC6569F9736EAB6C11BB0DB9243BBBEE576A1CB9390F92362F7A3581E91\ -F27B3B47FA0E2E375584D8B7588BF5B5EF1EC2CA21267685AD9E76B985F5887B0A6E313BE827\ -5E3F7C0BBE87228DFED01E37A7213349150191860B1AD3E20C91DD504C2FF642AB869E4B427B\ -11B1C22A6D1029BCBC7610EDF9B2F4A2834A8897303A9C5A313D7C3B18796CB0F0F968B175D7\ -CA252ADF80CFDB258228FB6A1A9AA52F8847E18866C4F1038B28A6A3EB14C51098049C519FFF\ -83136206BE095094C66CF3F683BC5757D2394DE9E0808E42DE433988FF30326AD87C4AE38521\ -A2B8E4BE8BD7634FC62FE02E450510A190A767B3475639A86ED3F31230C21B2C9BE5C1285C8B\ -127BF153B2F3D082F4F6B18BC2AC3380BFC4BCAC748C7C8F781F58CD674DA01CC6351C354FA7\ -5879E002A6C95986A516035F6F2A9C50FC8BE5AC79B7E9EBE8FB4F4DFE1683C52C966DBEAC35\ -5965A04F9AA6C91833BD55F508B04100A88FDA58F14E5C260859EC7CB60F625928EDD7CAF8B3\ -490655E234CC511B523C40B56BD07CB9A6A08A3642DA96C3D889C1D95176C9FAF6E28E74A548\ -FD6F8C3B0FBCEC237A5BD739A2DCF7EA93943DAB8CB5F228E0C752867E116842EA867AB7FB0B\ -4A6D031E9FEB8780C1318DFDBD6CD335122568E7B7294DD851C800156E13B445D64B22E9CB46\ -49B07E4BA64D2D22387173727EB434AC69D7A3F5580EEED15F7D4F15B6A6B190630C3B4BF6CC\ -BE98549152E5E6EF47FD02E5ACAA8D1C7E8621FBA77C4C712C6B91EE273B81C9CB4B0F5C6103\ -03F700C441DEE3C05540B793CD4E72C787F262F711EB788057486250076C2B1F09B93B2DD962\ -098CDEFC48CF50A90DE67B97819FA4248D45BC29B3325C4EC1EF95C9C2B1701190BD7420FEDA\ -9976DDF8CF70AFCAF1A8799738C5311757616764701CECEFF27D2676B1F55E3749751080358D\ -D9E9A9125287342FCB08E6BD33C776B0E0E2A6F28A043F52A6508DA1C7F867512E13A64A20DB\ -83D86884B50141254C71B7388F6A7D65EFB2D069A815FECB0970A3300CD5C5AA73776E2A:\ -8E3BE5C3118FA8382BE650BF4727BF6B84F6D962367AB966A072BD5913335457 - -# This is quite trivial. These were generated by OpenSSL. -[MARK-4] -97212EACFDB13D5BBC037B01A81CBB736B8136124E275E2F25823B8B98EDD3C4BF7F6AD52D:\ -EA57CEA491D69813935D09E0DED97221B4E909BC5C59CC8C1202BD0E7BA82C53DBD27540D6:\ -AAC76CB1CE2BF5144EE9A543328AFB95 -87742937D3EB3D9729D4C668273DFF01D6096DE237BCE72B598727935704DE047378453395:\ -120EE944C947D8EAA10A446BD6E65BBC1D5821764262F2129FE2C37B65A38C5FB41D4A27DB:\ -141619BCD6053F33E5D479E32F937222 -B0B0488DA6A74775D3C3B3459309D21E20D00798B45EAC2C6FAD29A1A8C1743E744D34D1B5:\ -AE1EFEE98A07A2654C42B68FA24065C02714D43EED8C0AB336EFEA1DA1906ACE3586C96DAA:\ -A2F81CF25695060C04A2ED2E6F92339A -9BC14F96CEDDCF5440130D170608752B75A2D1BD7227F8CA2B991AFEFEC0EB3B9656ACFA53:\ -953A60AFE169AEAA288638AE7DD5DBC2120418F44470194E6B869584BCAA13D7E0FBA35FC6:\ -4404423C571E0843B8EC4F5B0380EB60 -7B083BFA430729619537DF5BF575777CF5A433206CFCB8B175AA4BB5AE46EA82A69A15C2E6:\ -80206B94450FA80D81D44D3E751C8541E15B9DCFBCC05DC6007425E52851DF51B8166A9EF2:\ -BD348966C075CE6B78BA2918258538ED - -[Salsa20] - -# From linux-2.6.25.9's crypto/tcrypt.h (all zero IVs) -0000000000000000000000000000000000000000\ -00000000000000000000000000000000000000:\ -2DD5C3F7BA2B20F76802410C688688895AD8C1BD4\ -EA6C9B140FB9B90E21049BF583F527970EBC1:\ -000102030405060708090A0B0C0D0E0F:\ -0000000000000000 - -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000:\ -AE39508EAC9AECE7BF97BB20B9DEE41F87D947F828913598DB72CC232948565E\ -837E0BF37D5D387B2D7102B43BB5D823B04ADF3CECB6D93B9BA752BEC5D45059\ -1514B40E40E653D1839C5BA092296B5E965B1E2FD3ACC192B1413F192FC43BC6\ -95464554E975030844AFE58A811209:\ -1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A:\ -0000000000000000 - -# From Crypto++ via Linux kernel -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\ -404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F\ -606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F\ -808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F\ -A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF\ -C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF\ -E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF\ -000306090C0F1215181B1E2124272A2D303336393C3F4245484B4E5154575A5D\ -606366696C6F7275787B7E8184878A8D909396999C9FA2A5A8ABAEB1B4B7BABD\ -C0C3C6C9CCCFD2D5D8DBDEE1E4E7EAEDF0F3F6F9FCFF0205080B0E1114171A1D\ -202326292C2F3235383B3E4144474A4D505356595C5F6265686B6E7174777A7D\ -808386898C8F9295989B9EA1A4A7AAADB0B3B6B9BCBFC2C5C8CBCED1D4D7DADD\ -E0E3E6E9ECEFF2F5F8FBFE0104070A0D101316191C1F2225282B2E3134373A3D\ -404346494C4F5255585B5E6164676A6D707376797C7F8285888B8E9194979A9D\ -A0A3A6A9ACAFB2B5B8BBBEC1C4C7CACDD0D3D6D9DCDFE2E5E8EBEEF1F4F7FAFD\ -00050A0F14191E23282D32373C41464B50555A5F64696E73787D82878C91969B\ -A0A5AAAFB4B9BEC3C8CDD2D7DCE1E6EBF0F5FAFF04090E13181D22272C31363B\ -40454A4F54595E63686D72777C81868B90959A9FA4A9AEB3B8BDC2C7CCD1D6DB\ -E0E5EAEFF4F9FE03080D12171C21262B30353A3F44494E53585D62676C71767B\ -80858A8F94999EA3A8ADB2B7BCC1C6CBD0D5DADFE4E9EEF3F8FD02070C11161B\ -20252A2F34393E43484D52575C61666B70757A7F84898E93989DA2A7ACB1B6BB\ -C0C5CACFD4D9DEE3E8EDF2F7FC01060B10151A1F24292E33383D42474C51565B\ -60656A6F74797E83888D92979CA1A6ABB0B5BABFC4C9CED3D8DDE2E7ECF1F6FB\ -00070E151C232A31383F464D545B626970777E858C939AA1A8AFB6BDC4CBD2D9\ -E0E7EEF5FC030A11181F262D343B424950575E656C737A81888F969DA4ABB2B9\ -C0C7CED5DCE3EAF1F8FF060D141B222930373E454C535A61686F767D848B9299\ -A0A7AEB5BCC3CAD1D8DFE6EDF4FB020910171E252C333A41484F565D646B7279\ -80878E959CA3AAB1B8BFC6CDD4DBE2E9F0F7FE050C131A21282F363D444B5259\ -60676E757C838A91989FA6ADB4BBC2C9D0D7DEE5ECF3FA01080F161D242B3239\ -40474E555C636A71787F868D949BA2A9B0B7BEC5CCD3DAE1E8EFF6FD040B1219\ -20272E353C434A51585F666D747B828990979EA5ACB3BAC1C8CFD6DDE4EBF2F9\ -0009121B242D363F48515A636C757E879099A2ABB4BDC6CFD8E1EAF3FC050E17\ -2029323B444D565F68717A838C959EA7B0B9C2CBD4DDE6EFF8010A131C252E37\ -4049525B646D767F88919AA3ACB5BEC7D0D9E2EBF4FD060F18212A333C454E57\ -6069727B848D969FA8B1BAC3CCD5DEE7F0F9020B141D262F38414A535C656E77\ -8089929BA4ADB6BFC8D1DAE3ECF5FE071019222B343D464F58616A737C858E97\ -A0A9B2BBC4CDD6DFE8F1FA030C151E273039424B545D666F78818A939CA5AEB7\ -C0C9D2DBE4EDF6FF08111A232C353E475059626B747D868F98A1AAB3BCC5CED7\ -E0E9F2FB040D161F28313A434C555E677079828B949DA6AFB8C1CAD3DCE5EEF7\ -000B16212C37424D58636E79848F9AA5B0BBC6D1DCE7F2FD08131E29343F4A55\ -606B76818C97A2ADB8C3CED9E4EFFA05101B26313C47525D68737E89949FAAB5\ -C0CBD6E1ECF7020D18232E39444F5A65707B86919CA7B2BDC8D3DEE9F4FF0A15\ -202B36414C57626D78838E99A4AFBAC5D0DBE6F1FC07121D28333E49545F6A75\ -808B96A1ACB7C2CDD8E3EEF9040F1A25303B46515C67727D88939EA9B4BFCAD5\ -E0EBF6010C17222D38434E59646F7A85909BA6B1BCC7D2DDE8F3FE09141F2A35\ -404B56616C77828D98A3AEB9C4CFDAE5F0FB06111C27323D48535E69747F8A95\ -A0ABB6C1CCD7E2EDF8030E19242F3A45505B66717C87929DA8B3BEC9D4DFEAF5\ -000D1A2734414E5B6875828F9CA9B6C3D0DDEAF704111E2B3845525F6C798693\ -A0ADBAC7D4E1EEFB0815222F3C495663707D8A97A4B1BECBD8E5F2FF0C192633\ -404D5A6774818E9BA8B5C2CFDCE9F603101D2A3744515E6B7885929FACB9C6D3\ -E0EDFA0714212E3B4855626F7C8996A3B0BDCAD7E4F1FE0B1825323F4C596673\ -808D9AA7B4C1CEDBE8F5020F1C293643505D6A7784919EABB8C5D2DFECF90613\ -202D3A4754616E7B8895A2AFBCC9D6E3F0FD0A1724313E4B5865727F8C99A6B3\ -C0CDDAE7F4010E1B2835424F5C697683909DAAB7C4D1DEEBF805121F2C394653\ -606D7A8794A1AEBBC8D5E2EFFC091623303D4A5764717E8B98A5B2BFCCD9E6F3\ -000F1E2D3C4B5A69788796A5B4C3D2E1F0FF0E1D2C3B4A5968778695A4B3C2D1\ -E0EFFE0D1C2B3A495867768594A3B2C1D0DFEEFD0C1B2A39485766758493A2B1\ -C0CFDEEDFC0B1A2938475665748392A1B0BFCEDDECFB0A192837465564738291\ -A0AFBECDDCEBFA091827364554637281909FAEBDCCDBEAF90817263544536271\ -808F9EADBCCBDAE9F807162534435261707F8E9DACBBCAD9E8F7061524334251\ -606F7E8D9CABBAC9D8E7F60514233241505F6E7D8C9BAAB9C8D7E6F504132231\ -404F5E6D7C8B9AA9B8C7D6E5F4031221303F4E5D6C7B8A99A8B7C6D5E4F30211\ -202F3E4D5C6B7A8998A7B6C5D4E3F201101F2E3D4C5B6A798897A6B5C4D3E2F1\ -00112233445566778899AABBCCDDEEFF102132435465768798A9BACBDCEDFE0F\ -2031425364758697A8B9CADBECFD0E1F30415263748596A7B8C9DAEBFC0D1E2F\ -405162738495A6B7C8D9EAFB0C1D2E3F5061728394A5B6C7D8E9FA0B1C2D3E4F\ -60718293A4B5C6D7E8F90A1B2C3D4E5F708192A3B4C5D6E7F8091A2B3C4D5E6F\ -8091A2B3C4D5E6F708192A3B4C5D6E7F90A1B2C3D4E5F60718293A4B5C6D7E8F\ -A0B1C2D3E4F5061728394A5B6C7D8E9FB0C1D2E3F405162738495A6B7C8D9EAF\ -C0D1E2F30415263748596A7B8C9DAEBFD0E1F2031425364758697A8B9CADBECF\ -E0F102132435465768798A9BACBDCEDFF00112233445566778899AABBCCDDEEF\ -001326394C5F728598ABBED1E4F70A1D304356697C8FA2B5C8DBEE0114273A4D\ -60738699ACBFD2E5F80B1E3144576A7D90A3B6C9DCEF0215283B4E6174879AAD\ -C0D3E6F90C1F3245586B7E91A4B7CADDF00316293C4F6275889BAEC1D4E7FA0D\ -203346596C7F92A5B8CBDEF104172A3D506376899CAFC2D5E8FB0E2134475A6D\ -8093A6B9CCDFF205182B3E5164778A9DB0C3D6E9FC0F2235485B6E8194A7BACD\ -E0F306192C3F5265788B9EB1C4D7EAFD102336495C6F8295A8BBCEE1F4071A2D\ -405366798C9FB2C5D8EBFE1124374A5D708396A9BCCFE2F5081B2E4154677A8D\ -A0B3C6D9ECFF1225384B5E718497AABDD0E3F6091C2F4255687B8EA1B4C7DAED\ -00152A3F54697E93A8BDD2E7FC11263B50657A8FA4B9CEE3F80D22374C61768B\ -A0B5CADFF4091E33485D72879CB1C6DBF0051A2F44596E8398ADC2D7EC01162B\ -40556A7F94A9BED3E8FD12273C51667B90A5BACFE4F90E23384D62778CA1B6CB\ -E0F50A1F34495E73889DB2C7DCF1061B30455A6F8499AEC3D8ED02172C41566B\ -8095AABFD4E9FE13283D52677C91A6BBD0E5FA0F24394E63788DA2B7CCE1F60B\ -20354A5F74899EB3C8DDF2071C31465B70859AAFC4D9EE03182D42576C8196AB\ -C0D5EAFF14293E53687D92A7BCD1E6FB10253A4F64798EA3B8CDE2F70C21364B\ -60758A9FB4C9DEF3081D32475C71869BB0C5DAEF04192E43586D8297ACC1D6EB\ -00172E455C738AA1B8CFE6FD142B425970879EB5CCE3FA11283F566D849BB2C9\ -E0F70E253C536A8198AFC6DDF40B223950677E95ACC3DAF1081F364D647B92A9\ -C0D7EE051C334A61788FA6BDD4EB021930475E758CA3BAD1E8FF162D445B7289\ -A0B7CEE5FC132A41586F869DB4CBE2F910273E556C839AB1C8DFF60D243B5269\ -8097AEC5DCF30A21384F667D94ABC2D9F0071E354C637A91A8BFD6ED041B3249\ -60778EA5BCD3EA01182F465D748BA2B9D0E7FE152C435A71889FB6CDE4FB1229\ -40576E859CB3CAE1F80F263D546B8299B0C7DEF50C233A51687F96ADC4DBF209\ -20374E657C93AAC1D8EF061D344B627990A7BED5EC031A31485F768DA4BBD2E9\ -0019324B647D96AFC8E1FA132C455E7790A9C2DBF40D263F58718AA3BCD5EE07\ -2039526B849DB6CFE8011A334C657E97B0C9E2FB142D465F7891AAC3DCF50E27\ -4059728BA4BDD6EF08213A536C859EB7D0E9021B344D667F98B1CAE3FC152E47\ -607992ABC4DDF60F28415A738CA5BED7F009223B546D869FB8D1EA031C354E67\ -8099B2CBE4FD162F48617A93ACC5DEF71029425B748DA6BFD8F10A233C556E87\ -A0B9D2EB041D364F68819AB3CCE5FE173049627B94ADC6DFF8112A435C758EA7\ -C0D9F20B243D566F88A1BAD3EC051E375069829BB4CDE6FF18314A637C95AEC7\ -E0F9122B445D768FA8C1DAF30C253E577089A2BBD4ED061F38516A839CB5CEE7\ -001B36516C87A2BDD8F30E29445F7A95B0CBE6011C37526D88A3BED9F40F2A45\ -607B96B1CCE7021D38536E89A4BFDAF5102B46617C97B2CDE8031E39546F8AA5\ -C0DBF6112C47627D98B3CEE9041F3A55708BA6C1DCF7122D48637E99B4CFEA05\ -203B56718CA7C2DDF8132E49647F9AB5D0EB06213C57728DA8C3DEF9142F4A65\ -809BB6D1EC07223D58738EA9C4DFFA15304B66819CB7D2ED08233E59748FAAC5\ -E0FB16314C67829DB8D3EE09243F5A7590ABC6E1FC17324D68839EB9D4EF0A25\ -405B7691ACC7E2FD18334E69849FBAD5F00B26415C7792ADC8E3FE19344F6A85\ -A0BBD6F10C27425D7893AEC9E4FF1A35506B86A1BCD7F20D28435E7994AFCAE5\ -001D3A577491AECBE805223F5C7996B3D0ED0A2744617E9BB8D5F20F2C496683\ -A0BDDAF714314E6B88A5C2DFFC193653708DAAC7E4011E3B587592AFCCE90623\ -405D7A97B4D1EE0B2845627F9CB9D6F3102D4A6784A1BEDBF815324F6C89A6C3\ -E0FD1A3754718EABC8E5021F3C597693B0CDEA0724415E7B98B5D2EF0C294663\ -809DBAD7F4112E4B6885A2BFDCF91633506D8AA7C4E1FE1B3855728FACC9E603\ -203D5A7794B1CEEB0825425F7C99B6D3F00D2A4764819EBBD8F5122F4C6986A3\ -C0DDFA1734516E8BA8C5E2FF1C39567390ADCAE704213E5B7895B2CFEC092643\ -607D9AB7D4F10E2B4865829FBCD9F613304D6A87A4C1DEFB1835526F8CA9C6E3\ -001F3E5D7C9BBAD9F81736557493B2D1F00F2E4D6C8BAAC9E80726456483A2C1\ -E0FF1E3D5C7B9AB9D8F71635547392B1D0EF0E2D4C6B8AA9C8E70625446382A1\ -C0DFFE1D3C5B7A99B8D7F61534537291B0CFEE0D2C4B6A89A8C7E60524436281\ -A0BFDEFD1C3B5A7998B7D6F51433527190AFCEED0C2B4A6988A7C6E504234261\ -809FBEDDFC1B3A597897B6D5F4133251708FAECDEC0B2A496887A6C5E4032241\ -607F9EBDDCFB1A39587796B5D4F31231506F8EADCCEB0A29486786A5C4E30221\ -405F7E9DBCDBFA1938577695B4D3F211304F6E8DACCBEA0928476685A4C3E201\ -203F5E7D9CBBDAF91837567594B3D2F1102F4E6D8CABCAE90827466584A3C2E1\ -00214263:\ -B581F5641873E3F04C13F2771860655E2901CE985553F90C2A08D509B3575556\ -C5E95690CB6AA3C0FFC479B4D2975DC443D1FE947B88065AB29E2CFC4403B790\ -A0C1BA6A33B8C7B29DE1124FC064D401FE8C7A66F7E65A91BBDE5686AB652130\ -00846524A57D85B4E317ED3AB76FB40B0BAF15AE5A8FF20C2F27F409D8D296B7\ -71F2C5994D7E7F757789308B59DBA2B2A0F319392BC57E3F4FD9D356289744DC\ -C08B7724D952E7C5AFF67D59B244051DB1B011A50FEC33E16D1B4E1FFF5791B4\ -5B9A96C553BCAE203CBB14E2E82233C15E769E4699F62A15C69702A06643D1A6\ -31A69FFBF4D369E5CD7695B87A827F2145FF3FCE55F6951008771043C6F309E5\ -68E73CAD0052450DFE2DC6C2948C121DE625AE98128E199C8168B111F669DAE3\ -6208187A254928ACBA71120BE4A2E5C75D8EEC494021BF5A98F3026855037F8A\ -E5940C325C078263AF6F9140848E5225D0B0295305E2507A34EBC94620A83DDE\ -7F165F36C52EDCD11547C750406D91C5E793951AD357BC5233EE1419225289A7\ -4A2556774BCACF0AE1F53585307E594ABD145BDFE346CBAC1F6C960EF481D199\ -CA88633D02586BA9E59FB300B254C6741CBF46AB97CCF85404070852E6C0DA93\ -747D93995D7868A62E6BD36A69CC126BD4C7A5C6E7F603045DCD615E1740DCD1\ -5CF508DF5C9085A4AFF678BB0DF1F4A45426729E61FA86CFE89EA1E0C74823AE\ -5A90AE750A74188905B192B27FD01BA662072501C7C24FF9E8FE63958007B426\ -CCD126B6C43F9ECB8E3B2E4416D3109A9508EBC8CBEBBF6F0BCD1FC8CA86AAEC\ -33E669F44525863A22944F00236A44C2499733AB36140A7024C3BE043B79A0F9\ -B8E776292283D7F294F44149BA5F7B07B5FBDB031A9FB64CC22E374049C33816\ -E24F7782B0684C711D57619CD94E5499471328733CBB0090F34DC90EFDE7B171\ -D31579BFCC262FBDAD6C50696C3E6D809AEA78AF19B20D4DAD0407AE22904A93\ -320E369B1B46BA3BB4ACC6D1A231533B2A3D45FE036110851769A678CC6C8749\ -53F98010DE80A2416AC33202AD6D3C5600715106A7BDFBEF3CB59FFC487D537C\ -66B04923C447100EE56C7413E6C53FAADEFF0744DD561BAD0977FB5B12B80D38\ -1737357B9BBCFED47E8BDA7E5B04A722A731A12086C71B99DBD189F494A35369\ -8DE7E874118D74D60737919FFD67503AC9E1F436D5A047D1F9E539A331AC0736\ -23F866181428340FB8D0E729B3044B550141B2758DCB96853AFBAB2B9EFA5820\ -441FC014227561E8AA19CFF18256F4D7787B3D5FB39E0B8A5750DB1741654DA3\ -02C99C9C53FB39399B1D7224DAB739BE133BFA29DA9E54646EBAD8A1CBB336FA\ -CB4785E96138BCBEC500382A54F7C4B9B3D37BA0A0F8727F8C8E820EC61C759D\ -CA8E6187DEAD80D2F5F980EF1575AFF580FBFF6D1E25B740616A395A6AB531AB\ -978A19894440C0A6B44E30327B13E767A98B5704C201A6F42899AD2C76A378C2\ -4AE6CA5C506AC1B0624B108E7C1743B317661C3E8D69F05A71F597DCD145DD28\ -F35DDF537B11E5BC4CDB1B516BE9FB3DC1C32CB971F5B6B21336798053E8D3A6\ -0AAFFD5697F7408E45CEF8B09E5C3382B04456FC0509E92AAC2680141DC83A35\ -4C8297FD76B7A90A3558798E0F66EAAF516C09A96E9BCB9A3147A02F7C71B44A\ -11AA8C66C564E63A54DA246AC441654682A00A0F5FFB25D02C91A7EEC4810786\ -755E336997E42CA89D9F0B6ABEAD98DA6D9441DA2C1E89C4C2AF1E00050B8360\ -BD43EA15237FB9ACEE4F2CAF2AF3DFD0F31931BB4A74841752322C7D61E4CBEB\ -80381552CB6FEAE5739CD92469C6953221C811E4DC36D7933866FBB27F3AB9AF\ -31DD9375788A2C94871A58EC9E7D4DBAE1E54DFCBCA42A14EFCCA7ECAB430918\ -D3AB68D107994447D683853B30EAA96B63EAC407FB432FA4AAB0AB0389CE3F8C\ -027C8654BC88AF75D2DC6317D326F696A93CF1618C1118CCD6EA5BE2CDF0F1B2\ -E535901F854C765B66CE44A4329FE67B716E9F5815677287648E3A4445D476FA\ -C2F6EF8505187A9BBA4154ACF0FC59123FDFA0E58A65FD3A628D832C03BE0576\ -2E5349979433AE408115DB6EADAAF54BE39870DFE07CCDDB02D47D2FC1E6B4F3\ -D70D7AD9239E872DCE87ADCC72050029DC737F64C1150EC2DFA75FEB41A1CDEF\ -5C50792A5656718CACC0795069CA593265F254E4523876D15EDE269EFB752E11\ -B510F41773F589C74F435C8E7CB90552244099FE9B850B6C223E8BAE86A1D279\ -05686BABE34149ED15A18D402D61DF1A59C9268BEF304C884B10F88DA6929F4B\ -F3C4530B895D2892CF78B2C05DED7EFCC012235F5A7886436E27F75AA76AED19\ -04F0B312D1BD0E896EBC96A8D849399F7E67F02E3E01A9BAEC8B628ECB4A7043\ -C7C2C4CA820373E911DFCF54EAC9B09551C0133D9205FAF4A934C8CE6C3D54CC\ -C4AFF1DC114426A2AFF185757D0361684E78C6927D867D77DC7172DBC6AEA1CB\ -709A0B19BE4A6C2AE2BA6C649A1328DF8575E643F68708686EBA6E799F04BC23\ -50F6335C1F2425BE3347804556A3A7D77AB1340B903C9CAD445F9E0E9DD4BD93\ -5EFA3CE0B0D9EDF3D62EFF24D8716CEDAF55EB22AC936832055B47DDC64ACBC7\ -10E13C921AF323782BA1D280F412B1208FFF2635DDFBC74E78F12D501277A860\ -7C0FF5162F63702AC096804E0AB493355D1D3F56F72FBB9011168FA2EC47BEAC\ -56012656B18CB210F91ACAF5D1B7392063F169204F13121F5B65FC98F7C47ABE\ -F7264D2B847B42ADD87A0AB4D874BFC1F06EB429A3BBCA4667706A2DCE0EA28A\ -A987BF05C4C104A3ABD445438CB602B041C8FC443D59AA2E44212A8D889D57F4\ -A00277B8A6A0E6755C82653E035C298F3855AB3326EF9F4352FD68AF36B4BB9A\ -5809091BC36546461DA7941823502CCA2C551997019D933B6386F2036745D272\ -28526CF4E31CB51113F1EB21C7D956822B8239BD6954ED62C3E2DE73D46A12AE\ -13217F4B5BFCBFE82BBE56BA688B9AB16EFABF7E5A4BF1AC986585D19353D37B\ -09DD4B106D84B01365BDCF5209C485E284741565B7F751AF55ADA4D122547094\ -A01C9041FD99D75A31EFAA25D07F4FEA1D5542E549B0D046623643B282157550\ -A472EB54271F8AE47DE966C5F153A4D10CEBB8F8BCD4E2E7E1F84BCBA9A1AF15\ -83CB72D03379002D9FD7F12E1E10E445C0753A39EA68F75D1B738FE98E0F7247\ -AE350A317A144D4A6F47F77E916E748B2647F9C3F9DE70F561ABA9279F82E49C\ -89913F2E6AFDB549E9FD59143649406D32D88542F3A5DF0CA827D754E2632FF2\ -7E8B8BE7F19A953543DC3AE4B6F4D0DF9CCB94F321A07750E2C6C4C65F09645B\ -9290D8E1D1ED4B42D737AF653D1139B6248A60AED61EBF0E0DD7DC960E65754E\ -29069DA4513A10638F1707D58E3CF428005A5B0519D8C06CE515E49C9D719D5E\ -94291AA780FA0E3303DDB73E9AA9261837A964084D945A88CA35CE8102E31F1B\ -891A7785E3416D324219237DC873EE25850DF83125791B6F7925D2D8D423FDF7\ -82366A0C462215E9FF724191917D3AB7DD659970F68D84F867152011D6B2557B\ -DB87EEEF55892A592B078F438A593C018B6554A166D538BDC630A9CC49B6A81B\ -B8C00EE34528E2FF419F7E7CD1AE9E253F4C7C7CF4A8264D5CFD4B2718F96176\ -48BA0C6BA94DFCF53B357E2F4AA9C29AAEAB860989C9C240392C81B3B81767C2\ -0D324A3A6781D71A3452C5DB0AF56339EA1FE17CA19EC135E3B1184567F92238\ -95D9343486C6419415F95B41A6878BF8D5E11BE25BF38610FFE6AE6976BC0DB4\ -09900CA2650CAD74F5D7FFDAC1CE85BE00A7FF4D2F65D38C862D05E8ED3E6B8B\ -0F3D838CF11D5B962EB19CC298E170B9BA5C8A43D634A72DC992AEF2A57B0549\ -A7333486CAE49623765BF2C6F15128427BCC768FFAA2AD31D4D67A6D252554E4\ -3F5059E15C05B72748BF07EC1B13BE2BA1572BD5ABD7D04C1ECB719BC59085D3\ -DE59EC71EB89BBD00950E1163FFD1C34C31CA110775398EFF2FDA50159C29B26\ -C742D949DA582B6E9F5319767ED9C90E68C87F512242EF49A455B636AC09C731\ -88154B2E8F3A08F7D8F7A8C5A933A645E4C49476F30D8F7EC8F6BC230AB64CD3\ -6ACD36C2905C5C3C657BC2D6CCE60D87732E7179160663280915D88938383DB5\ -421C0824F72AD29DC8CAEFF927D80786F7430B55153F9F83EFDC499D2AC15462\ -BD9B66559FB712F31B4D9D2A5CED87758726EC612CB40F89B0FB2E685D15C78D\ -2EC0D9ECAF4FD22529E8D2262B67E9FC2BA86796121F5B96C61453AF44EAD6E2\ -9498E412934C92E018A58D2DE4713C474CF7E6479EC068DFD4F55A74B12B2903\ -1907AF90625C6898481611029DEEB49BE5427F08FD16320BD0B3FA2BB799F929\ -CD20459FB31A5DA2AF4DE0BD420DBC74999C8E531AB43EBDA29A2DF7F8390F67\ -63FC6BC0AFB34B4F55C4CFA7C804113E1432BB1B3877D67F544CDF75F3072D33\ -9BA820E17B12B5F3EF2FCE72E52460C130E2ABA18E1109A8213344FE7F353293\ -39A7AD8B7906B2CB4EA95FC7BA7429EC93A04E5493C0BC5564F048E55799EE75\ -D6790F66B7C65776F7B7F39CC560E87F8376D60EAAE690391DA6326A34E355F8\ -58A0587D33E02239446487865A2FA77E0F38EAB030CC61A56A32AE1EF7E9D0A9\ -0C324BB54928AB852F8E01363852D0BAD60278F80E3E9C8B6B45993F5CFE58F1\ -5C9404E1F5186D51B25D1820B6C29A421DB3AB3CB63A1303B246824FFC64BC4F\ -CAFA9CC0D5A7BD11B7E45AF66F4D4D54EAA49866D4223BD38F3447D97CF4723B\ -4D0277F6D6DD080A81E186893E56103CBAD7818C08BC8BE253ECA789EEC856B5\ -362CB203BA99DD7C48A0B0BC9133E9A8CBCDCF595F1F15E256F54E0135274577\ -47C8BCCB7E39C19728D384FC2C3EC8AD9CF88A619C28AAC5992043859DA5E28B\ -B8AEEBD0320D527809563FC7D87E26FC37FB6F04FCFA9210ACF83E21DC8C2116\ -7D676EF6CDDAB69823AB233CB210A0535A569FC5D0FFBBE4983C691EDB388F7E\ -0FD29888818B4567EA33F1EBE997552ED9AAEB5AECDAE168A89D3C847C053D62\ -878F032128950C8925224AB093A950A22F576E184219540C5567C61149F45CD2\ -E93DDD8B48712100C39A6C857428834A1B3105E10692E7DA85737845207FAE13\ -7C330622F483F9353F6C71A84E48BE9BCE8ABADABE2808F7E2148C71EA72F933\ -F2883FD7BB696C2919DC84CE1F124FC8AFA504BA5AABB0D9141F6C689839897A\ -D9D82FDFA8474A25E2FB33F45978E16885CFFE5920D4051D8099AEBCCAAE0F2F\ -6543348E7EACD3932FAC6D143D0207709DA4F31B5C36FC017334850C6CD6F1BD\ -3FDFEEF5D9BA56EFF49B6BEE9F5A786D3219F4F7F84C690B4BBCBBB7F285AF70\ -75246C54A70E4D1D01BF08ACCF7F2CE314895E705A9992CD0184C8D2ABE54F58\ -E70F2F0EFF68EAFD15B317E6B0E785D8232E05C7C9C4461FE19E492023244D7E\ -2965FFF4B6FD1A85C416ECFCEA7BD62C43F8B7BF79C085CDEFE198D3A5F7908C\ -E97F806BD2AC4C30A7C6616CD2F92CFF30BC22817D9312E40ACDAFDDE8AB0A1E\ -13A427C35FF74BBB37094B916F924FAF52EEDFEF096FF75C6E1217726357C7BA\ -3B6B3832731B9C80C17AC6CFCD35C06B311A6BE9D82C293F96FBB6CD13913BC2\ -D2A3318DA4CD57CD133D64FD06CEE6DC0C2443314057F17217E33A636D35CF5D\ -974059DDF73C02F71C7E05BBA90D01B18EC030A95324C989846DAAD0CD91C24D\ -91B089E2BF8344AA287223A0C2ADAD1CFC3F097A0BDCC51B8713C65B598DF2C8\ -AFDF1195:\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F:\ -0000000000000000 - -# XSalsa20, from NaCl via Crypto++ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000:\ -EEA6A7251C1E72916D11C2CB214D3C252539121D8E234E652D651FA4C8CFF880\ -309E645A74E9E0A60D8243ACD9177AB51A1BEB8D5A2F5D700C093C5E55855796\ -25337BD3AB619D615760D8C5B224A85B1D0EFE0EB8A7EE163ABB0376529FCC09\ -BAB506C618E13CE777D82C3AE9D1A6F972D4160287CBFE60BF2130FC0A6FF604\ -9D0A5C8A82F429231F0080:\ -1B27556473E985D462CD51197A9A46C76009549EAC6474F206C4EE0844F68389:\ -69696EE955B62B73CD62BDA875FC73D68219E0036B7A0B37 - -093C5E5585579625337BD3AB619D615760D8C5B224A85B1D0EFE0EB8A7EE163A\ -BB0376529FCC09BAB506C618E13CE777D82C3AE9D1A6F972D4160287CBFE60BF\ -2130FC0A6FF6049D0A5C8A82F429231F008082E845D7E189D37F9ED2B464E6B9\ -19E6523A8C1210BD52A02A4C3FE406D3085F5068D1909EEECA6369ABC981A42E\ -87FE665583F0AB85AE71F6F84F528E6B397AF86F6917D9754B7320DBDC2FEA81\ -496F2732F532AC78C4E9C6CFB18F8E9BDF74622EB126141416776971A84F94D1\ -56BEAF67AECBF2AD412E76E66E8FAD7633F5B6D7F3D64B5C6C69CE29003C6024\ -465AE3B89BE78E915D88B4B5621D:\ -B2AF688E7D8FC4B508C05CC39DD583D6714322C64D7F3E63147AEDE2D9534934\ -B04FF6F337B031815CD094BDBC6D7A92077DCE709412286822EF0737EE47F6B7\ -FFA22F9D53F11DD2B0A3BB9FC01D9A88F9D53C26E9365C2C3C063BC4840BFC81\ -2E4B80463E69D179530B25C158F543191CFF993106511AA036043BBC75866AB7\ -E34AFC57E2CCE4934A5FAAE6EABE4F221770183DD060467827C27A354159A081\ -275A291F69D946D6FE28ED0B9CE08206CF484925A51B9498DBDE178DDD3AE91A\ -8581B91682D860F840782F6EEA49DBB9BD721501D2C67122DEA3B7283848C5F1\ -3E0C0DE876BD227A856E4DE593A3:\ -A6A7251C1E72916D11C2CB214D3C252539121D8E234E652D651FA4C8CFF88030:\ -9E645A74E9E0A60D8243ACD9177AB51A1BEB8D5A2F5D700C - -093C5E5585579625337BD3AB619D615760D8C5B224A85B1D0EFE0EB8A7EE163A\ -BB0376529FCC09BAB506C618E13CE777D82C3AE9D1A6F972D4160287CBFE60BF\ -2130FC0A6FF6049D0A5C8A82F429231F008082E845D7E189D37F9ED2B464E6B9\ -19E6523A8C1210BD52A02A4C3FE406D3085F5068D1909EEECA6369ABC981A42E\ -87FE665583F0AB85AE71F6F84F528E6B397AF86F6917D9754B7320DBDC2FEA81\ -496F2732F532AC78C4E9C6CFB18F8E9BDF74622EB126141416776971A84F94D1\ -56BEAF67AECBF2AD412E76E66E8FAD7633F5B6D7F3D64B5C6C69CE29003C6024\ -465AE3B89BE78E915D88B4B5621D:\ -418078FE843F5984DD3C7975D1FF51AF4DCEDA640999AAA3C28618AE286CA150\ -51CB4D55F9DA22A213EF14A2B905B52C99A557854C7F2A6D6ED6F69C1C6649F3\ -FB67B8628468029B3367920C2E1148AA1F3B9C695CB1426F09CE84045842946E\ -0454E41AB1EDB32CAE4B95669DE4E2CCAF00BA86FFEAE6A9C5FCE4153BADDB0D\ -8998A600537A9649939CB7D7A9C4E8CBCA0FAB77963ABD516699879DE0B1971D\ -C7328668111FF5B77C253B9E6346D1A2CE6E390CD736156AD7F44B339CFB141F\ -00E7A766C06E130B0C31D88980D2AD8814A2D641599162AB8AF25D93067F06A4\ -9637EAF6523806B8FA07D56628BB:\ -A6A7251C1E72916D11C2CB214D3C252539121D8E234E652D651FA4C8CFF88030:\ -B2AF688E7D8FC4B508C05CC39DD583D6714322C64D7F3E63 - -FEAC9D54FC8C115AE247D9A7E919DD76CFCBC72D32CAE4944860817CBDFB8C04\ -E6B1DF76A16517CD33CCF1ACDA9206389E9E318F5966C093CFB3EC2D9EE2DE85\ -6437ED581F552F26AC2907609DF8C613B9E33D44BFC21FF79153E9EF81A9D66C\ -C317857F752CC175FD8891FEFEBB7D041E6517C3162D197E2112837D3BC41043\ -12AD35B75EA686E7C70D4EC04746B52FF09C421451459FB59F:\ -2C261A2F4E61A62E1B27689916BF03453FCBC97BB2AF6F329391EF063B5A219B\ -F984D07D70F602D85F6DB61474E9D9F5A2DEECB4FCD90184D16F3B5B5E168EE0\ -3EA8C93F3933A22BC3D1A5AE8C2D8B02757C87C073409052A2A8A41E7F487E04\ -1F9A49A0997B540E18621CAD3A24F0A56D9B19227929057AB3BA950F6274B121\ -F193E32E06E5388781A1CB57317C0BA6305E910961D01002F0:\ -9E1DA239D155F52AD37F75C7368A536668B051952923AD44F57E75AB588E475A:\ -AF06F17859DFFA799891C4288F6635B5C5A45EEE9017FD72 - -F4EA120B47D15466ADE07DF0F2FF508759D9CB1035CEEAB43920E9094FA50B86\ -8673B07173557D4B994B1E9D35078C1C7369DF6B6ADB2EC0E6BFD280FEA8AC31\ -DB44BEB0C2A4DDC6198957BD0592E3E587D304863B893FF8EEE0EFC70CED5D71\ -2651C3E9DD1A0DE0480FD8CCCBAE4C50DCCBACB83DCDC3E2CEF7DBC645F0AF46\ -8163FB0E015EF48AD74694DFBCE2DB8430A6E91645FD16ADBB72E21A0FBAEDF5\ -ECFF829CEA9CBC22F82902748AA52DA5CE903D9F2BDE77EFEF5FA3970C720E89\ -F25DD05157247BF0DE2D2129C3F856238D4FAD:\ -46F396F0D2D54189968BF56B5B2F35588C3AD851E00FAC6507598F3EA0193A58\ -6C00B18677811CC305B0261D9AEBBB9C0485A5800C940AA4F09C4FBDEDE12553\ -824C429C7954E0B8DAD889203D292517B98A64E8D7A37C1364EB0934751323D9\ -B9F8498F50D729E977FB742880222F22AC5D7BFEBE6905A4C344D82027398A70\ -C334635792DEB0F20B83861B05E731F5627AEE17DF20413C79957556E66A9700\ -85E9AD40A73D9A964381584976C6F111619A916FBB5F5D305DF862D5A56BAC9F\ -F9B436F31C85F34FF890B5AD3299EDA2B8642D:\ -3070F0DB09C523507D36404DAC79038A393E9F0E3CF5F870B16D2A06DA68DCD3:\ -4AFE87BF79EB938D786BA54C26FD6D7E62261EEAE8B62202 - -[Turing] -0000000000000000000000000000000000000000:\ -696626BBDC6E09F6DA9ABAB5B56C14878246DF18:\ -74657374206B65792031323862697473:00000000 - -000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000\ -00000000000000000000000000000000000000000000000000000000:\ -B64B97325A32BBAA3A967545D99A50889D7EFAC385A4A20E3C30C87D799DD84173802D01\ -6513022FE0FDCAF79625DA0FF7F66E76DA56926D3115D9F87A939E1C1B27A87386006244\ -B1A5360B0E5BAE03FC64C766B348A4FC18C9D95516B4BBE0F4BBAE2B:\ -42A6B922EC35FC7709EAE8CA0F6AA212DFBC0D6C:FFAA3441 - -000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000\ -00000000000000000000000000000000000000000000000000000000:\ -0847AA490901FC9BFB07F12590622DC3E672ADBD42813B79BB28B4C4DDE2A519751363EC\ -00EBEDBB684E4D1FFC02CBDD1FA2E3F8E593AFEE8648461DCC054D32192A6517F41AA4D6\ -C3B75DFFBED80CEEA3D28397D6B86722185CA6BABB64088D13A75DFB:\ -53A6B922EC35FC6609EAE8CA0F6AA212DFBC0D7B:FFAA3441F4BBAE2B - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000:\ -833E62C8D5E8B0B723F8ADAC68340288319D6F73762E7655EE35F2AA8E2E21DDEC2C1D2F9C48A1\ -BC05DA8E7A87A650114C6A065E21DCE06142D4E6C40B4616AEE65E869C1D3A1040C7DA1A44E6AD\ -F49C51B12058824D79B7622614C0F8E1B968F7F99A94959ADF845B7BED3B5771B6F7E30C32C2BB\ -A8463B2FFDEE4C4623CB69C66A7AA4E1CFADD429DFFA3F9BFAE9C9CBBA44246765699B2F7211E5\ -4AB6793969835AE9F5EB2F66DA83EE07701031DA84F357B2DE473D7A7952462AB42940294E6349\ -C73F6B91BD769E07B0FD9A212D551A66E7D9B7C6F8077D16DEDEF30EA0AF61226DBA8333293870\ -C8693C8AF52E5D097CCD94AD9BE287139A5F5AC9E3448A1CA781B068F76B64D362AD99080B38F7\ -5506A5E81BAC8F4BD82A4F35A8526909D35023C3C7D9F13F54CAB1D16413774815F20D07CD98DA\ -EA8200D4399C43494F769000C84752A9B95561B23626E8DE135FF44651C7243488C1DCDCEC0A6E\ -C8FA9A1A6FF8706EFA6AA8A664727A4BD2EA3416E0631F4911F1D135CA96A227004930D8BD4135\ -56697B941F03519489DEEF118E44F54EADA077F1E253C33740CC79305F869CE1E857D368A7E0AD\ -8F1714FAF0BF4756295E9A5A57BA1CE7DF4CB44C324B62A78534CAA2FE00913638A740AD9225C1\ -6D29096DA4DE452AC6C1A2BF0CF1C5F135A1D214E2730246724A1FB37D7AE6BCFB19F3D191E1C7\ -5B024B8442:\ -C3B75DFFBED80CEEA3D28397D6B86722185CA6BABB64088D:\ -0847AA490901FC9BFB07F125 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -A1D8F7780442DCF29F883A8379319273C91B3297E87441290B3121B7FE0F72E68D9D507703159E\ -457942A4F6A7E6C5C0D6B82204FC70605B16641376AD819C8268F208A3E727DE352FC57CAB0DC4\ -2FC9863C9952BEEA6A79D059FA52DCE5BC1815C1E3B2018E3A5CC93E86D162787C9A38B30808:\ -510D879D383902C3A1287F58ABC5FB35 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -8D8EA275C14DB64CB19760D598A38073E3BE840A016889DCCD5387B3052483E8B72AF6FC590FB7\ -C2365AE8F64EACDF07163D24EC80F390A714BFD910A15A7187CFFF1CEBB7F9A07E187C5E7D24BE\ -21B468CC90F6387D63FCD4EB8244921395C5104964AD85B8A4815BE83EA6D77DBEC292F50F8B:\ -0F57C4CDFE6F6317EC7C50CBE8100603 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -3D220053B6F702E7CAEB74DB867FA24D792968D4C2A59CCA308F806C3A5C00147A00293309248B\ -8A6EF0C50B7214B442E440E44991E419D4723CB59B6E42C53864A9AB62ABAF837DB330A5E1FA86\ -3FD5EF5D2ECACC9F04382807E537859E97D2615A9FA70B1BA046C006A37EA20FF3DF6123D0D2:\ -197F3A50A197CCB854AA6C85D608F93D - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -DF9C919108DA643347B191C2332715F4AC01AA13CAFF0CA525E214659E928F8C2903673BADF322\ -C52BA8C60E6D682BF4447704C8B653AA386562B7F20D880B23A73E573FC5E6E1FA797307B0541D\ -42BA1DA70A7096235F28F059325F4B02A178360D14CCA63E1ECF4F24DCB06872416D72E8BCD2:\ -743C96AD88706814461A15FB11EBCA52 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -54B42471FFFD76D364CEE2013A5FB8B145915408860C3E3F6F56F75E41031CCEB973FA92C9E67F\ -DE4A0FBA7AEABFAF65DDAD8C6CA7AF13656867BA72ADCA70373F304E4CE9081367F179FC65988F\ -5224E6A4ECE1C3299C9ED1D0B699E4C5481D907877441F5E4B02526A91EB134DC7BE551137E5:\ -AFB5E81BC51672AB968B33AAB54E40FC - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -35108EA6DFCB3251ACFEA14C7978A1AE729E3E20D1AED75FCC26713DD2416855C1F03F0121A0DE\ -010C1CCA302706DFDBC5F0DFF3E6B3F6C0A6C90BA96DEC940616FCBD4406662B822ED87A5F826D\ -14C612C8A5BAA10A4757BC278C0C3638C8AEFBDE11608E30087B08D957B23A0FA7C73FBC4981:\ -ACCADB90F6DBC430AF5B9CACC069C58C - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -C77753E149061AC705815FBC5E6DF1E6B022BF45CEA31959D671A1938A0FA7622ABB2FFA8687F2\ -05A7DB417F61CA5968A88E6E5447CF2639BB8813C66DD0A12A8FCE3C4FC893AEC2B2A5786AA1DD\ -27BE50633198341E224BB3761381F8E5CED9B17CEECB08D2017D4800B584F4E078A33BC75BC1:\ -76DAC1C77B73EC50F7380129345991BF - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -E3D437F8F4E2B5C79BED77075E618682EE2823BA800F59FCE2E6F18C355314903FE3CD41349931\ -323413F3B85248D0EE4F79BB4AA67DA37CAF06902C99EFA396A79DE4AA2CB3B0E67A0B87356D63\ -261ED20287425AB3E7455375AF21453536085D529D3D07525FC578455D9E43D529A7230A2510:\ -6E35E3D8E6D332E27C0BE03C8A5471A7 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -334554121BFE766D9E1D99C66E66E9580C9362D6A239A8A392153FB052BC9D5BDA4AA20B28C90A\ -16A40BB68240A41A55D5FC245FD5CEDEBABAE81E92171B850E50695CFE6E0AF004FEBE4D8AFBC7\ -8DC82D270CF66176F0B00BEB5F14D2FD261AFEE2A2B49370E6298EAE5DEBB86750E8EFF5974F:\ -C8E48F6BBCB573B8006B0A6B0523FAE5 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -631D5CF348368BC46C49DEF8FC8BE88FB53A3D0D8B6B19D9B4296D556B9DAF82D9D3830DBDFA74\ -6E09EABAC61E54878916966ED13F55570A76794B52366494D46B0418927116B5F466BC262F1655\ -FE2325D89FF2087F6545F0CE710CA99F603DB5B7D967A3EF00694F07EEF4D19920E30DFE3640:\ -39B1805E219B7784D334E1DA137B71ED - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -44CDEDD31F2EB9D7E5C52BB62E3D89272472981B6A56B0D0056A6210A836F4C7CE02BCE4120FDC\ -B1F8346810D4273CE45A957FDB4534B332D05DF7BD67D2B116FC0355AD416C77D8A42FEFF6CD9C\ -D4986F5CFFA6E85F30B5968D2D11BC407309B7908C7EA28451B85B3EDF3B1081596E300890AE:\ -A783DB338CA910BC771BE1BDFFF3D7D1 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -8F5BF391BB2FA4A3D727122BC05DEF4473C936FFBFE6E0A37276657418F18235A84C9B1B817BD1\ -63DC8D414F61AF31E1CFA51CF692952CBB501F117643F2EBC7470C3F870CB173C55D93CF810D4B\ -BA9AC41570A93ECA91CBB204A006A484956AF9473C50FE281BE39EF0A23E324137BABD00C4C6:\ -DE89AD958277237ABF4143BCA129B902 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -92A18810C64D4598C7CE3FF3D2CBAB42CB3DFE4976DE40D95621134C4BE3C066D11220B2E68DC3\ -054CAF977838AB5684214FAA05D27E5E110ABC7B719F184A64EE825A730D9B390D35195E452FA3\ -362B0E6880E547F983ED4C7199D321680497C9722C930D61EB11FE15807CFCBD81036D4AB6B6:\ -9BAFD22926AFE2BB782E07E3E9713A47 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -BDC0B3934130AB769D5FA9A2D43BCF3B3BFBA90CD76F04AB3955B287058298C4E627C2AB7F3951\ -B5BC44DEBAB33E3DCCC471E17162338C3BB42E418B7E33D5275547715BC7AFB94669BC5E3D30DD\ -A55C91D2BA23396ACCF20094D2CBD425CE273BACD304EFE61A01768C077DE5D4BD38307C25F0:\ -9AE5CEA10D25D4980E0D848D14166BD3 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -BB0FC7E77790B8922EC54D8EE7B74764C057B6066CA342FD2BA2FF5945EC9EEFF49F568011C64A\ -039CA7256ED642EC7CA86715293D8A94D3ED32E6EA74B4E437948187C29B5EDA90468FD52B6AE2\ -711D9B72B97534914D73C6E4F24D8B8D4B78328C891801FA94C6058EE687BCC0FAC6AB3E0775:\ -5DC3289BDF8E0AC2E11A6A846D6D3555 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -749223E6659B4990E3FBD44C422131460CDFDDDA81A0A90426114C09183B308FDDA2668540E468\ -3F0D2DA5BA5225CE30BBF4BA350441123E390D85C0A90CA5C34BA7D4624024807BC42666894A00\ -D2A3AECC60308117F3C7E14859CEC97553145FAE37796DC3DD869AF7CCD112450DE85A13FE5F:\ -9028DC083356F6539CAB46B85943CD28 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -7F55CF196A7704A73CAD784B3C9747615CF0AE344F576614CD5C4448979D1F2F58787B25DEE890\ -4A6DA1907ECD3B9BF7CA2399C794FA099380D1E9396D170B2CA89D1540469003405160DE22F403\ -E09D75DBB55AF8C8F346260569D7B09242EE7AAD06BE1B46C26DD9F72E6B7F99C83DB9B7C194:\ -119830CB54051CF9515FFA349A97EAC9FCD97433 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -66881BEF696C04B312B95D664FE71EEBDC95EE998C85B57D6237769EFE0D7D471DA4D2FE41053D\ -4DFDE1442C8A3EFD14F22C41292749375A902746A86B117929F46BED63F16D94073836DFAB3201\ -419E728F2A8901E4E543A5C7C021FFB321F275A4921FEA3F3A2CC54E05CCC985AE50BA731B6A:\ -1A1412B8FB13AEA84475FB158B5EE83A99DC560D - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -FD771ED1DBF5BC652A502E75BF74251FB72F67DD83276D6238C8A88A9BC667BFE7FF46AE6B62A5\ -BDA67499001617893DE1CB83BC08793DC6DAEF2A294315D53F3F6E7AC704350C456460A4FDAF4A\ -6F683664CBE88C476F2AE6F47C7B23AA1F024D13AA1DAB8F952D4142B51C984E55C2899862E8:\ -A6E318E21447AAB02FE846D51CD0CAFE6D020F6C - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -0523E8B622F04A650A50AEE32CDDBD3A4B25DF714094A6CB5783898C7323DCA8986477FE389AF9\ -42668A44CFA42ECEE4652A1709BED798154E5131F6840726E3EDD8F7A5374ACB66B25B60E193CF\ -6D2D7E1212FB04E841ED5595B9C38020433D9CB390BBA523118206A0BFF01DC67E0D46AFEDF6:\ -28845F13275E38336B32B99554E6F3A195D1AB28 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -1142B12772A584401A94ADF193D301C320382C62038452064C10B06B8A1B311678CCC4D0D2BBCE\ -25DD343DD733D4D7FD5EFB6D9456C7F690F9EFCB28862E2789316CF649A3D868A6273B915EEED7\ -A5EB401E59740D7899A7E7306E2563F086FF419A4827143DB9550E145D468876C67F33BFD092:\ -FFB05F0DC00FF74F159CFC3CE7B1BA5A09779483 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -02B4201C31F165C497154DB1EAFE1C082F88931B9010FCAF8E110926985C37A9BEC4DBC680ECB7\ -B9F45D024D521299466AB9246E7F4E40F8C5B402B5DA0A318248675B6A006B67E5B02198EF6063\ -24CAD5173E6A6684715CA91479B352E1A5711F6DABDA6C835BC1674E74504E02717EEFEB26E6:\ -FD79C0D751B8B9DA3C40C85B944EC105EB3BDC1B - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -5E3AA5F59F746A8481F1F1CB6D63822AB4ED3D4B7F94304A1C0E9DDD9646C617287038AEF0933E\ -90C523BBD736905EC5FD0332356C24E4D6B006D0FABCE86C09EFDC958EE748926D6AA9BC37B1EC\ -879FDA063FD134705AB21439768CA8791A6F7D996A722B45707904BD13984D61A4E5DCD587B2:\ -18A0DCE520BF4DD0724F5173022106C8EB370B5A - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -6CE98801210B00DE4F71DE0CB62E2D281C98D932C96CB34A009E1F3430F50FE287D66CA2FFCBED\ -C97EEA7CF2FAB70E3592C5CBB8625723B91A13D078C8DE1279F393D277419FF78E84B49180E7B4\ -E9B3E48F0F66579AC34566A271CE963581D7DE48E747D79660C78ADC308347597DD7862FC72F:\ -7480690DA8C0E3393A161E29C312139B007131A8 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -32E8CE4394B86237E45BF3CBE2AE3355FECE63BAFADB0ADE19C6EBA100ABA5FC1777688CA8FF0A\ -79F3657688458E4BAA47E9D7AFD9A4C1243F5F083809E367C59DDEF9A515D3CF395FB5C0AC44B5\ -F5D96884AF0BF1368C4D00EB8E06F0D805496219D9D8E8866E901C592D60E1449CF50D20E983:\ -0E31E26B5374E9DE11F528A6E7E57B03CB6B983B - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -F76855E776AF2E29D139ACFF506BA0C1C917265A172242A2A5652FBF9D8A90872503A12F9A4620\ -11E0894D9E34CFF08D979F37CB2553889A2CD0B8932C2B7A47130C0F724DDA8EA904F8D9FA5127\ -498ECAFA9D94D392642EABE1BDD8433A1CEC7ABB0BD065D9AA0FD04B68368E49A0FF08D10117:\ -B4B6FA36F7F42D89DBDB51D887475D5376CC27FA - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -7E42E03FDB2966552705EB79ECF02C652B2A62EFB7DC204E25439E7BC5C41D80F90D756C14A6AC\ -F0C79C15975B713E547623F71F225A073FFA501202031C6AEFD6D794B093A56E1F88A5BD8E76D3\ -E25921E1BD75B33D9604820A5F92415A3BE2C028BE60D4C764890F7FA8F89E9911DA716E36C8:\ -C2D17692AEBC93A9CD87248FA0496EE027B354CA - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -295C77B2D2CFCF4376DF06D4CB168A5FD315A46816986A024030685D35D6BBB62E0519B8753ED9\ -E6919BB94A828A172B9C01DCB6058915DF9889D1AA0AEEFDA89724D25FAC07BBE1208BEE8A3CB3\ -5509CB9A12AAB14B75C4B0FF0A8C0F444AA96D6C9E3457669C3BFE0AED6E17599A53F614EAC4:\ -1DC5682D883D41FFB9C6D9146A19DE5596351DAE - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -D2252875127726975223224C5B4E66ADFB573582539A796770B84C86FCE47B886A1CFBAD755C15\ -C49EDDC9932D3C0CF4FD41EBBA79D46C1A883F1B3B2B1626BEFD26B4708A26995C896B90354300\ -F1BBA09945D441C7DFD1EF152154520C1FA86D435C6B3205AE6FBE012F835C6B621A73A98B71:\ -DBAD2FE9A4B89C17AA39AC48BA3A1709543ACA62 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -9CFB54F9B1D66A5A96EDF432EF62841E52D33E90E399E049C554DE679B887E056A8F78D0653206\ -B6B80E0DB45C0AF1A36303159F4D1EF034B28A4835D04EDF61251F9C40493CAE5695EEC6E10AA0\ -91B760B7146159A491CAB476CCA1E39DD1D1B3A08FBCF327C15122D83197909B8BE0F72485A2:\ -E4C4AA2357758D79D8528C833607FA757CA50D6D - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -8F0A8C023B79F012A1A2788B5A20E5861397481AAAAF72E70467C06209B0049E7C3FB8762A31CC\ -F8D2C939C49FB5A0D31D8C64C78B2412EEE0185A846A8AE5974A1A0D55DFCEDEFEF3644845BA9D\ -17229FBC258C59605F75071F356C01C4959F7F1BD8FA294D65037C077AB2CF6C58B62759E8D5:\ -3264792868880D91C28949655BF9EBF87779DE78 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -FA183B4B91F78B2D16E8B7289D2D86259362F253CDB65B0D1C2FE45CF7B78921EA7BBB516327B7\ -454EAB0E3138AFFC09BD0DC6BD85D264321D33429496098DBA7B5F7F677077FC907A717E93E141\ -732FAE7E4B68DB130A928CEFC90062865FD8F83B071C3F22539AFA812955CE00B156E34426EE:\ -1D297636D3B1B64BC13420645E9A6CE6C6699289 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -AEA85A57F3F752FACE718C71531426067D6FC70DA997D59AB23013635D77F65D92864D76272491\ -71B2E655CDEF807E85D86A42B7722047DD38434975FCD6BB71A56292938FF230C75FDB57D9161E\ -DD6C64252AF0B39930DC8E38748B0BF399B93728189AEC248F9322455DCE6E9555B9EA097E42:\ -F0E946A71123EB5A6DE6B8BC44F843FD45285564ECC20881 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -B36A7DB00583F48EEC653314FA1C7D2B052F34251507FD176F12D955F31528A6E9FAE66DF4BA7F\ -2787982E95CCF1FC600F2C3DD7546CF2B0ECEF1A4E02111F391C99E6E9C51BA359F8BD211D2554\ -89F1C85D57D867CE43377B4674EF4C626CD7F40AE55584C390D4CB226DD71C379A0D0C930425:\ -BBDE3BFB69D2301556CDDC0C34DA8827D10217F607DAE9A1 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -6D608E00EBD99EBD4E2CB2C8159969EF2E9B21212FF4A1FC4165E4E048A4569BC1EAD2D943EB96\ -19D68BBB806F72A5C0ECD1584CE7B0CA6F322AB0467B64318E3041E5B0468D88234BEDFB91FDA8\ -026551BB4585E423D6C2D6AD0A0909B9849A6C329F9F44CB53B8AE2A7C00E3C3AA1F42DCBA84:\ -D09DEE33E299290B4FF3262A259BB29BB52F584A25723F0E - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -95CFA8627DF9A518B3ED1A5DC93BB27AF30A9B37C46E1313FEA680F94B434B5A39A4DD74C75C9F\ -9D1B2EBB7F154436027F3A6C6EDF84DBCFF604536409CA6B8FF2A66501B02AB95BA0268A41B511\ -0342976B9DC96E5F2B4F7E32979B4F6C275D3BD0CBF7871AD03FBF78E383A8EA9E7C9E9082A9:\ -65298E00B106B798D808647F16572A09C15927E24B8F7DB6 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -94D2C237DBF27F6D25B1F22735AC74BF4F92D0A7F8378DE493F82153DD3A28EFEA69B99A4EE1EF\ -ADDE786134327D0AC17585C66F1245466FF98F6B41F69D84333121603DBBF76B654135BD4271D7\ -19DA93196511B5DE8B5256A906EB4341C029A016382C40B726B30BC46B6CBDE97CE6F13739EF:\ -0681EB738C45B44BC134112E8CB420A1C3780D71A8413422 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -160B99E09742B020BFF397E0FB1890052D1A03B145C8905FF61A604B19AE0F5F7FE6A8AE1E75B6\ -502AD879DA2D081F5C6CCEF60C2B1E4B3C5023D9271857BA043585E87F2B480556295410C0AA55\ -642DC4B3426210D7899369976E11F4D5CFA86C27FF10A5C261EEB6D70A093F20733C34EB3C76:\ -75E916E939A8B762371C349082B56F7CA5342D240FC310FA - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -2E8039CFD8E4BDC9BF718E5FF80E19723F9E67042D4160106E50620362550632C08DBEED7B2CDC\ -71DC56C452ABC0766D883B657A04538F7353D9ED5B5BCB65FF035D8CB97051D2A5FD2C96EE1BF6\ -AECAD901E005D2B6A62F9FCEA63FF6CEE0E1AD27468D175217C50FE00F44C23F777CF551009C:\ -B76EDE68222C46E013F96F2112E6ECC52C079050BDC7BDFD - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -200B3DA16D1089B0EAE8814400688690E611FA120459AC843EF81AC08FFF4589B5DEB62944C851\ -667E6CFA21323B1BB063B4F803A11AB28856FC81D11C4097E2FA710B2AAD0AA0101F7E8B575F63\ -E74960AD851D055039411CA2F3029AFAF2E8A8B85EFB677958BB66D7F8D28483DC2F3AAD2ADD:\ -C119544812869B717339FCA3EBC5DDFEE645DB6193E6010F - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -F3B0AC1ADB198D82D68845EC4C0F354948FA2834A3739C8C8BF95B674A5D7A2C811AF0B517BCEE\ -62D9D5365F44A0A5B5C3B75F952383AF0248CE8E728E64959B672162D44E15CCAD0DF0D80EA2C5\ -1BC163F25AECB4E49359C93BA9338DC57C5AFA50FD7371EEDA38EC1BD0D77913C64BCFC93D5C:\ -E866DA8B4439CEE798D394FADEEC2108C5C2802829C1486F - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -E01640C6FB90ADE04D5F4BC99A42EC5C25E27E4EB59B2991FEE3B3B90119357A5F6E6FD4EF2EA7\ -52A79FB92A3133541EF6DF00E8B243A47F93485BF4110DD61AFBDE83EA7C0EB4A338849130D9FF\ -FE2F18EE7E32F3359464A488128559A7A61DAD85DFB909D4A4C95D321656D2C7F3B6D9876453:\ -B1A1E8A1CDD487E053E8EA1A85366A956116B0BBF3DBA2D0 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -F94EE0B40A4E97A792FB8CE1A09E0E2F1577D29FA6A7EB0517DA02AAED5A952150F57E105B9D55\ -EF9440F591A19931965F78D326A0F45E6BC179AC8B826872D3BBD1478F43B62C22B471EDF82BF4\ -E6ACDAF260BE3CB14F4A70BF947F0F70ED5C133FCFE06A805F06CE41FD4340A02CCED54C46FB:\ -D7C76ECF8F3E333986D0727FEB74A933FB078ACDA732E8A5 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -0194823D67E3D53DFAADE5625420EB0BE7E58C254E47A54858C52F42427005D6DE162DC1FDAC14\ -3780C202F6E1A0573250C2B050B4985B147440F024E0F7222794D70EDE913CAEDCF4F997E32402\ -25B5EBF179D179E1F1B35146250D42FF59431BDCD213DC2E0E7AE0FA4C20B1483B72A225C9E5:\ -4043315440250D9D80D6CDD850AE06BB000B2CAE4CF3E4EC - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -DCA07BDA8327FFAF65A6200C0163ABAF7B267BF00665319154CE603BCF1D971923D8F6A877D3C3\ -C991CE741F92AD78DAE00B6FA8A07F4B5521E9607D248B25EE2A6ED0A2E62032E3536FF5D420D4\ -C3197D24F79019ED6F98D0A91D424738E82FE4DD2F6EC8C35C5DF2A36D0A5F6911C3247F3FD2:\ -2B9B3D6C5CCA6FF1CB13E304A3E33E359AE5698C43BAF498 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -4ED372793A4B85C9D0FF69654D4BBE78DB2B4258A385DC046C094629AE232F136E63EF18FD3150\ -E9EB93504D06B5B2D354D1D3DBDBAF1B99599435B4DCC0419F278868465B43658ADA435E6492C2\ -0438DCE19435323B5E6485F384CBFF46D166E6E3CF97F32095C03F388BBF4E627A26BF35B9A2:\ -6D7A73687DEFAA9FA22344CCD67BAD74B4BA6A058DC7BA9C - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -F3D3E04261645CEDD6B423A102168281535EFB7B43EE0F07B925B710FD6171E8C38F815992A133\ -DC16B6EC99FDE8BECBB29205C185DDACEFABBEBA824424C1F910DF7FFFB81D934FA2FD1D41344D\ -7397BCA30D26BA0EE1CD7A430FCBFEE31483C6EFC9D577A2E3CC0B8C5A1F6619A1C0F85B0B16:\ -C49C6CFB09608BD78CDD826009220526AA030F2216DC6229 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -FD3866800048B2E0BD760ACDA846843D421B61204EBD31097EC45C6CAACE840CF611F01A9F5EE7\ -DEF380269A1C805239080B88549F19FC30365129B8B75117C2FE3C8B8F98D85CFA9FEC85BF5D95\ -D196F939E8A6140EAF06834DF13F0D1D4A3630E350666BAB04582DC7C6DDB08A6CEB8C54DAB3:\ -55D7A1004D57B763ADAE222CC95C90D91453EC7A006D922E - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -647281CBDEC5661CF5B3BDDA1E711505F4422309C4079F9D1B3AE4A49866D9DE180402A5300CA4\ -F65603DE7A797F497C326342B6F1DFB91B247094C99358C0BC875367F3407ED1E7BEEAB674E575\ -9ED55ABF01FED9AA360F4F049C4DFB60EE680C6AADF6880C5A52AC4592A6BD8A02653231900B:\ -9E232577306C0F1B81125646AE9D18C4C9CB5A41BD1F49C2E7213C31 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -5657DD6E9316DE1934E7C04681F88549FF92BBDC43E1DE589C08AE609119E05357EE5A5FA205C2\ -ED588E7EF53C316E3C5023923E1185352DF17605E0AD8CFDE15BF56B2B3C4015142B3D9B3B4893\ -241150ED83E5B956034F91033FC7C83749A77B08C37AED9E919781265E7A41CBC32154E45FE0:\ -64FC422E55B6DE470C8EFD59F894D238F566B94BDA07916ED9A7EC97 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -53368F208092A0D7B842B885D2E910F22E9BAFA33DFAD2548139B6FFD845C1AF579B77D40840A6\ -95A6BC0FFF8FFDA411A42153D7A349C6C61C21C78D9F664ED84AD1FDA1CA7FAC8676525E8011E0\ -CB22E89F8BA394B962F84CCB0C7117388CDB6B0F6C4C1E0A466F48395472F3BF02363C24E81F:\ -5834B00FEC3DD4650BFAE554545628CF93E2C4CB47310082888295BC - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -4E4E29CE1CE2A1BB216F6BD85844244731E8E2998886BC15234DB5E95DA1FDF09DA6F8491590A9\ -AF2719ECA6860F7BD1D2DB7FE6BB05C1C38DC2402A95DCC6EE556524E373EBC003D56EF2A03B91\ -DBEFDB3EB0BAF3BD0058B9BD77AAD361655B42229791D6C6684D1DC62BBB8A69E0B9B3577DEA:\ -AB02C30031CB74190E31F994D3EED4CB516002717F7F259BFC8CAA00 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -358996611F1464D8F0EC63833E3354C9258D358EAAC807DB66841FD48F5711495FF4C4A278018D\ -3AD15E14613B4EC54AC78DCF4A7EDC299AC237213882F10BCB027B01DB9B453BD0D33BD88531B4\ -0F9977FA9BB54B9448E1BA9EEFA984C826A65CF0D241863B945B8684F59E006449A740C92D58:\ -9C697CAA308F7E76DFDDA9588D9002E9B28C8FF79858C7E02D4BDDC5 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -873EF326CFBDEE5506BA5BD86EF7C37CFE5F649A4064716E38135C9FFE206C1267CBF14A1646B8\ -3CA770B1F86D1EA1438C216E753234C2AA08475B42883DAD3A2B67892E01D6D2DBB8CAA21D1A1C\ -87B66B895842D4E3F3A2E3753FF936AC8AE734D9A2EFE9789830DEEC38ED8AB0F15F1A91ECAF:\ -B2F3D97249C90040B9D09F0CF30DAA31BF586A7717E911D1333060A8 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -FAD37FCF8378422A2257170B1B87DB04076E366910CBB6381B822A8F66CF6FDAEE1953F4A5B36B\ -211B0B73B7E93E3566DD9CE06004F49B683E803D443E601938E8C84C6E2757E4C1666002B9C915\ -412CB719129DDBFF748E1D379B724C09082DCA39B056691B9ED21F47A4E3857C498C63E9E91F:\ -39D944EDA34DE7D3E92BCB1996196BDBE7D0D6AEA85F540333252008 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -A63D061A64D62DB78C51E8DD7A293BF15CDC65FB4A182296B8804A902D039925F13D5D9DE52702\ -7A116D581D2F77FD306C6D675D13526A4C3505364670C16139FD5D479F9B9363919E86B6C33A56\ -28FCCA1970EDBDF2B683FB9E54BFEEAFEC001551266133F0A5E72FDB8A0D8670EEE71F21BBE1:\ -59ED6E2136849971FEE7F5DDC529B7CE30C18A05A2308480FD792A5D - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -F8B9AC6B917837E768DAD946B8274C1A1623846A88ADB68D5A75934E8C3BF3447971FA635FBD24\ -0E626F226E5F00E5F5A11F5297BFC67711C557B308FEAD4A9FBE170793814F0E78FCE0FD18A91C\ -88B93E38BA31EA1AF2A173582DC432C5A00D1B08BD87D6AD25A11A902A9AA761911E894C8E15:\ -60BD44AD1B7E9895CF569D087BE7F8AC9EE737169C0861A0B0097A5F - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -417152A3907586B9E8F59D2F62CCEA5FF9556A6B286B61FABA146B067FB56A1B549D9E9409228D\ -5C5FE54B577F6902ABC9D4D5F0258D6ECFBB214E0A08A361DA479DADDA854C96EF80CFBE8BD277\ -A1D01D801F7079F94B4B92F3A42587104B44259F894CA375C0E4597926EBF769203C922AFB0E:\ -7F050CD0C1D36397C06231716434969D8D0514E92FCC1D550B4B2933 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -B2EB626B3C6A8485425F75273E8B771B263F1CBFAA40A0786ABB5042D04C7D6AF7FF96B63842F8\ -E8FBACF665538964881BC1BD0A0F0D33CB038DBCBCBEE96459282054BDE39AB31E82E7409CC564\ -B2166E6C03DCABBDA449E99BD094A32942ED21BA03A3BFD93620DEC36A86F299B7B018F4D325:\ -63320839C85CE863EE1FBC962C057C623EA2531B9854B58C3AB10216 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -076777CB3F25CB914EC32439031667DDFAD29EA5EC4DAD2A8CE97134966A4B21CC2374D4C31103\ -6CFC8175C55A9C4D1647589B73A8866EFC30BA1E3F7B7688F2F819B868B884111A12E90D78B3BC\ -350C41BF9EE79DA16D27C1C28ABF12932AF23E6F57F50DEB79682829A5FB4D95CCBCEE8BF01E:\ -09292F664BC64AE5A21DBBE7DA2E2EDBE3F6D87446A0BBEA9CE7E6E1 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -A4ABC46FC552EC00DA3745959C1198733C064521B7BB0E8F7F5384051A4A23C6FA5CACB2A762E7\ -5E8FF44DC41DB1B1B3A72BFF0116DCECEEA3257E88FC863E562C32B9BD55112CE7B2825DA8BA6F\ -ABE9458BE0ECA65901A671FBB7369B62A3579C47029F6212F775E01ED3BB9E2A70284D49C9E3:\ -56D4718FEFD691064778EAB35BCAC749ED62931F9A5B46137BF6C4CD - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -8D8AB1E9E8385824E18C6560872C73D7B2D567B9B4061EC447B0694B3109D05D89955A4AB47541\ -2223BE082AF95066146D77E22EAA042DFE360AAE8000FA375B4185DC1A056E48DE3E6282F4FC2D\ -9BE215BF09C7C5ECAB95CD29E9286542C35654AB23982221C2BF5352358D8FF27A6BBAA34AB6:\ -E48054A763E7A3EA9CD093B565D664248218A872E58DEBBBE1419B91 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -9287CF8EF16BFCECA5ECEAD6AFCEF50FEB39FB637DD78E0C875EB68B162A70EFF53C08FCF888E4\ -14E4EF0AF8793BDB5F5641671BD8616E1610264B364E4BC5584EFF564FFCBCED53A9AFCBCD205F\ -8A7C60F2125550D93102121A25E233DA212FAEFBC7A453DC8CE2F2BAB2D3D02CC1F41F7B677D:\ -F0549B6B0B6F1382593F986E3AD9BBC541AE11D1ED9A2C4D7CECD236 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -2DC8D0716265CBCBFE491B26B0CE8144C51636D7A5E45F4558DB6EA78AFE5CC65EABB4CE1D3E4F\ -D2D1C7266767DB75B331635DF7CF3E46432C2D37ACF08BEFC73C9A544B121AF5B48FAF56944357\ -2FA4B3B4F9FCFF215D0D813116E398C1945F2B072251A92FF2ACC078DD82E298B63AC9FDF2CE:\ -81580051D3030AD104AB6D1D0A03E00AD011BD5A2C48B407DFE79188 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -6188BAF16DE19FFCE9051A868B3746988E699825AFDDA484C242FE08867E19F2BD27C3AAFC51E3\ -856BD6ECCD5CAF43F79B4192ADF5EC7B13CD476D6F8566044646DB685B32AE0E83F23A33E31DAB\ -A93585272646A9CFEE0626AC517DF92642DFBFAA26BA5E2158D7101A7E3E319AA200DBD0ADAE:\ -7BC01C35F8977BE59CAF0D4139A65D1D52A3088482C72B3DCDFB30558B1BFE0F - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -35F87088FDE70BEDAFF51621580A0032902AE95DFC7BF73466EFA2CC5FD2ABC72F4B958352FEA3\ -3CDCFE675A0E971A9CFE809794E1DD4C951548BDD9A6EF3A2ECBF2C404E291BEF95A42A1A4EF22\ -85304E7F23157F4509BE3B482F59067143BD503210208C6D0AA05DBED3640F30926C04D0CEFD:\ -B0E8BF51536BA3FEAB51E6480730F80114F50DE1A41EF73A477DC524809CDB98 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -91682FF67AF5D75F08768D1385CE7257FDD619992DD1634F6E6118BA4CE94EF9D8F6D620E94296\ -C523B8C780BC50F2761EB35B0F243788EAB761951FAB2F7742DB766E80E96D1080E5C0C6513D68\ -25885B9F865398D7A5CC7CCF1A9A976302B4933EACC4CE9E1E213C7D95326D70BDD34CDED8CF:\ -EBBE1D35F01304D1CB6B400664B70E57C80FAF6B630A6719826DD79E4FA8200F - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -607A183B7C5F03BAC0D00D7DADC446255AEB8C78078DFAE6B167CB43A25815C295FD4D134EF8EB\ -9A5858240E39CEC6D4C9519D681BF884274248346639CE90DCCFD55990174B960817ACEA2508B4\ -9C9263ADD321F11F794C681CD8D191F57911C60D9B7AC6018837A8A13651E6BA4DEF8E890070:\ -F9BA1DFA6B93C46AA579CA6BA81AAD50B1E9B1EBD81D26FD36B20C0EE2C251B7 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -82137497F0E3EDB4C6AAC483924F051E5460B8E91947E0A3FF9CEECC7645E519D262A4F1E0611B\ -CD3760C4D1E8293E814713C61A07AA7C12F1C0F206C97DBEFE191170FBA988347B52DB7241594B\ -252800B7667BD1DE9042F4B88A51B13F507925254C0A03C7AE3C704A7B4F9AD96AD5992E9997:\ -DCC24C1F5D2C7240EDD9BAA530E1BDD68739F0CFE59226977C508AE8D4C87323 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -CCF9B2CC2419FAE9D04C92E246385E4CDD87E29213092C677B9D699B7905AAE392AA270DC013B3\ -FB7DE8AE837C81023C8EDFB0F03DB6A548D4D460075490507AF6DB17A32F48C1F99A6069CA94E9\ -75D1FDD78271EA47AC9EC196F37286B53A8B540E44A8B8835709DBEBC7A7EB246971DD0F4722:\ -917D882FEF03ADFD6669CE45EC62CDDF5FF1C03721FF3193C21C5930CF1272EE - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -05164B3F11E848547D665D426B1145559B69322F8FBF7D28B4E0E96E59390132AEAD0D39375B38\ -3C216728DADAE7279CB9059E725D3EE4772CC41BA8058B88C5A0DDC3B5E8F710C2D4CB55B4A680\ -7243B569440FD548A13F2996269F1BCD38911F7B811AD2204D35DE8E99FF129E9248CBCDE2FC:\ -1FE748157BE5CF6DA0AEC0DCA0E7720BC1EFEA43BD409F719FD2A7BADF8794CC - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -6ED1A789681A608231E66A5E07023C61DC71901C4EBE810A22D1416C011702CC66D33C06365F65\ -055ED9CC152B7F6729F9A69FC5957D89FDFDCF7955156D0C688D94588FB73DFBCD5B7CDF9E0FC7\ -8BE9389158A395028ECD0D91353E3692192481C676503FB1849082FF38BB90DA4FDE760FE5BE:\ -2C6825ED9252193DD2F4F96CCDD9223DAB33524EBA2DD3D254852D8F40A4FC6D - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -F4B7357D06DB0100897B838AF028EA1148D7D955653E1ACCC1FD919BDDAC4981329DFF1288E06F\ -0E2805468F6BBBE88F3E27ED6C5B73ECC63D946C4B90D841BE5D3007AA205E2685EB112C7D10D3\ -6E3F0449A4D2F773379722846F4CFBD85060025C41650E7AAFD97D348959AE3652A8E93F80DB:\ -0ABBCDAA3E91D88CBF4C38CB284BA3306FE470A1388C2B96E46936BBECE1CC3D - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -0CD874631E7080D093A47992DF9816EB03F83A23D9CFF79FE7FD068403FF3E0DC3D4D881952B10\ -7BABE1C83FA226A0D37DA5621161F478BE0E986E76D477ADDC2CBCCE3CA94BB29DF6E4387AD9D6\ -2CB8550553EC5D19A24BE2E7E386AFF65331483662E155F38EB3DDE79F54A1C75B0AB9F83E7D:\ -800A51F252F9E6D431FA3DCDB426E3D4BC3E1A34AD5706385F8D063FF5B716B6 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -1B907B35122B8E5D9CB6EC43BB6BF6F0F5C2FD7B65E98AE1F4360E4B4A9EA3165CDD59342B0A22\ -54AF793A09E2AC76F6230413ED204ED47B9836EAB4DF6D82469CFD1B5393E39DFF9E0DA74EB56C\ -99BA357439F1B01C158742C9CBEE4F7CC8E15AB181DAC526380A2CC650F7125C93D20AF80640:\ -E14E65EBFD403DE7EF39C663AD4E08B99ADB01D00B2AD024176E0EE35CF11A42 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -FCFFF45F031BE2C3D6B85032C754D39B83688D3470587ED1D13D9DFBC74CDE191F33D5567BEA4E\ -3665F0058AF27C7C8FFC45EE5F012CF340B836824D508EAE7145BA2067B6BC926C5007F7803FD4\ -67084B06EE858F1A1059C9EF0CBC85E9BD7C454010AFF2B0CA04A9AEEEC54F07AA48634A5F53:\ -8FA304D1DFF976D5649AF564FC3E3917AAFFA59F0E4D560D415F27490FBBEC37 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -0F34E8E8517206BB8EB2426A684694052AFCD7DBCDD3419303973A24113B58CD08530000527098\ -E72A0EDDDDD78380DBDFD60EBE30D5150475ED2C95CCFBE860DDD94BB45F6E40E81C5263C7B2CC\ -B79F1C6CE75AF6D2F1E572B43823EE63A3CA73E1256AF44FFD6F0C67E396348D489CA663E478:\ -FB9E93C4F43B223837F9EA773DA68A03842496B8E2BBE7141673855DC3F73114 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -32EEF5793FC730D20B8A8B9DAF7E54BEFC79B9713F8B19FE252194831E8A2DDFBDE392C5190573\ -62EE1171331F1256120D693CE463D187A5ED1F8FDAF5D5BB9D483C3E912DE8ABECD2E70EF9D921\ -E1DEBA85FE051BF3D25297AA9EFA0C8A836982184254703ACF1694C65A1B2BAD491D9395FA1F:\ -C506703121027BCAC2DC90AAB30B5CD30AA87773B98D3B182115B8F1E32F4BE7 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -5E779BE50FD31E25442C0B04D5FBF92E83FDB492F22EA12899A435E468C9CBE839CE66A349B299\ -1DE381389A310F653D85D972B9D9F2C875468EF1ABBE2C9F8DECFE452055164A1EAEFF4DE0962F\ -B3E34848672D1D1CC1F91CD4332D520254C0A9B49525608C462292CC4F189B15F4FCE120555A:\ -18CF7B4A85C5D9901E1D92DEB6487B6292C0A94589183151575207C4F776F4C6 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -3586BB52787EBFE1033261802E9C88E29933425EDFBB199C7650FBC56A2223EF0F12A7450DA282\ -93812ADAA43E5EF663440EC16905BF2EB9E4626F539D94D41D0CB11231D1BBBB145A3A19E384FD\ -645667CA2104A0C1D56F90848508B2D37D194AF882EE2C198EBA68A10B112A3EC9E6265B6726:\ -45DE118319AA726809A10C56D46915A88595811603B9A146DDF183D24DD0EF1B - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -9ECF899E3F58E481103B201C076C52EB93148CDE72B6EBDA0EFCF452E13195D89FC48BEF1A9117\ -7364C49DAA87F296CB8B91B67E40635648445984928207379C85E8126D94015A223F2DBF696FF5\ -3958AE5FD52E9CB8F5575730A874CFABB1E097F85E69177A47776EFB1C1CF90C1A1D62CA34BD40\ -10006E432403F8F16012F6F4B440854A19A208629AE54BDDD860A4BE4A1159BAF061E3FA861339\ -636815C3DE489782D7895BF4472AE48DCEB1D3836EDEDFED8EEE4F86879E4A9864100BDDFBB854\ -8CD4C7109FB0DEA6E8709A89F6704D0741E69538D11F151D67C991B84A257710A8A22E42BE4E68\ -065E77FA1F2A6F5F2CE7C09FB221C86CFE8299501E547ABC79AB1EB9F7C3BD2418E2EA3205BD51\ -51163CDACE8E334EF82E8970164D0CDE7E0A86817387078B10FA562A09820E0BA2ECB8D6342227\ -0E18370B0DE7F5D5B875B226A365A3CA40835E84C3743A50632615AF9ADD11B8D2FA4D0E4DD885\ -2DAE6FD3C24CEC2CEAFBE759627B59FC7AF5CF91A5DF974ECD1FCA9B062DABC4A1809D80C18931\ -C713820DD4C5F6FB09E02D419E4E461E4419C20686E7269A2BFAC1F114D9943B96E26D4509A44F\ -E5D9EA4E2D50F0AF4B7AA476AD21EEECDEB09DC1CD19B3E501C2C42EDFC830DC94E35EFD7C461A\ -21E05A3EA4EA83D7496CFEEB0D44A25D756A09367D353F1D0B694533D57801AD0D9CB03D3B4072\ -EAEF914C46CEE34201C25DFAE244612AC425B5F1E932A0E4FCB73EE2209872BC107F77DF5828C9\ -58E22CFD979DB435337F6FBF85133A5534E685E3C07EC607F92CB8FA7AA5CF2E1A8C52F69462F0\ -07BF759DCC4E51D183D88A541829A279AE3B4EC70822B6E6A3C6CF08E9145B84AF7FA76C6A792E\ -35C6F39992C568D6846C5987C9CA1EB7E730F6E298D199A6F0609D6BEA3473321261253EC5B276\ -0FCD458B6766123F0BAEC522ED99AA9AFFEF817A491F41CFCFCC0882D3E0C3E7E6E1E3F948464F\ -95CC9C9BC8E4543BD50C305A1822063224697AB2AA2FB210F776FB705C326530E50AA5CAB2929E\ -5F972BC45A3F8056078BDB203E75531A58AA279A3EE84615DA808E2018EA49A3FCE1CF6AB487CF\ -ED6EEB611182D1FB2D5B6E050C443F6C61833B0A16CED574DC2A72676F55AED91CBD5B3D518D06\ -678BBF5300CFDE4E39A35A3291A270D5442EEA2459B76EB8611F37388ACB558A76E8CE5C5C08D4\ -21809FC3A15BEAA37361A80D58D5CE60E5119D6B8173E464EC4F01EDE72F3D1BA6D4E7089A606D\ -CEEC5CB5181C7AEC6ED1CBB84F1779D3CCC2F54C341B96F96A8E2042AD7BD3FC5819EE1B741179\ -211588106D5561334180B4EF9476ED01B44140C4594D2C0D6EFEB0C167BDCB20772505B894A2:\ -71CFE52667B4A931A046532C71D60787 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -24660DFE3352E0C6FBC9FBB3A981589A2873679C88693EA1D12022A3BD95F693FE99CDEED2B828\ -347414BC75DB4907D60AA1DD9C54DAD229F29351BBA0646A668FA57FC06FDC44E04E40CF9CCD47\ -1A82976F14AE7CE835F89E27BD607CFDCE54464C4871BE8CC4A2CB9D62760CD08F7896648BB032\ -18EE30D5855A20114081CFB5B402461E098B5B2F561E628EA3FE0E8313CB955B077BA58B756522\ -3ADC84576F10BDC0608800003EB5E5D705A563399341550047C1265FD9A30C4E5A3A8B603CE2F7\ -7D6EC6168A6598278FE662FF3B7B923F54348E12FDEBE2A74E070D4F4A7A75A3949FD36F393D83\ -D48B80604A5CC32762E72916EA951C4D8FC4114B9699C092F316078C1AD390CB8374653F0F3977\ -15FC80908894FF89FCA4FD3E27F8CB15CFF26239FD79F212B91084031C45110C23BE81BFF98180\ -25ABD3190C767075B4284A433FB87ED5C551DCDC30F9FF937918BE347FA95DAD0C5BEA42C24C61\ -22F476253A0C976874F57E824C3C15FDCCDC225CB2B74D4CF0C9439ECE94417A805C91FCB399AE\ -5127B28D6B5FD82C24496CCC901F265EC169AFE8B5ABB4BE5BF98831EA1D5BBD95CD30194FF346\ -1E04353450DC7B82E48A796B1C5A5871A1DF22E5558887556CDE9FB342D420F338E5C5E0FE9DCC\ -F97679FC22F743F4E853FE459E3C8FE402BC05B22F2E429511D3EEE94F422037527140CB914C58\ -0FE1E0AD937869A4E246A83DEE4E65D63DC109EA44F6081F45D08590D0CC30397251BFAF74F981\ -09D052C92EBA9C3C1DF373B52A5DE581A212405AD9AB62B2BFF1395DD26BE790A9591C21238881\ -AE8E4F034E389CEA9E7960AE05A097C4AF623B4EB14017E42940ECA45483D78F40BE6BF986FE7E\ -7CF75AF15E5840CA3DB75B9877D2895435252395C1659DFB195335FCF2DB3DBB6400077D9860D3\ -8F9D93984136BDF8542C46ADC71434B17B9D5FED0785D282C44FE6D08C5CFEC856DE0EA33D6A92\ -CB313D17074966436A757F94402164D3883A7353D65AADFA2B39EC9E979E574AF9964A34BA636D\ -761B448CEA9A10B5B7114B3B1B53AF5F5793FADD06BE1465114519C2829F3D23329D11F99018F0\ -1FF9F9855A744A97494B90282288022ACCCC58D6AC48BEF73B7504715B6565578EF875A9ADB904\ -CF1B53B933FF6F0F19FCBB3FFB87443B64DBAF472A16FF3A29ED5CEFC6179AFC478707D7C4E58E\ -8F3C82A9AB4696FB14C4403CDB6F2F5D423F39A346F809E7EC5CB2A21C9A5949E4C4F888FA0A98\ -4A5F2324C1A810887D0E960BE3728173F9B8BDCAEB471B8CCE8B837C6D424468D92831C06DA69A\ -4505F2CD98DA06F73326839FA913974172E4EF2BF1D8BC9CBEBC8943768EEA1D49FF05C2D86C:\ -98DBAC0E4C2624FBC6474652ECEFB1E7 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -9633FD518CFCD7EE436ADAAF7276B57B740D98BB4395362FF04485A69735B816A59C1237481A70\ -948E0948F354DD4EF220A1D066975A00E758D87159D5A5A9B0F76BED463F27A7E2F9628E38A749\ -F96A446CCCA40A70E387D39CCE3192A6C090FDD3C70160B51EE3B2FFC39B46E6B443C778776CC9\ -65D691D35E61298F41ECEDC4D80C28CF72484D79782336B56A95B282279EB2DBE7F1300E0509F2\ -55BFC7ABEAD61C6628F4EE410D12D1A8B48FFCF3021D95A6002D8E2C0E1E8F4291855D941AFD86\ -6F5D93E43EF630AF63AF7DE546B518BB8FA0E7936CD2CD59FF48F542B1795B1AAA36800ECB054C\ -CEEA862418E33AC76697996B627B8F9A15344685E2BC087FC9DFFE48C8A842AC70E5BFEF0A8D32\ -5E86C7BE2A217A2581D37F2D185D07E09C4B859D98B325D03C399C0B36D1FC8B46BC20DE9F1985\ -EE87362797B984E3E5D5B5DB580CDC916012BB40F3C97DA934DED61996882A00A0EA65C2C3DCC9\ -4B5E88733EE2E8664275FE26810707EE2D8C8BCC3E4A42614AA1DAAA7DDAE0434F9137A9B4B88F\ -E89D12B99684C58906260DA869EAA396BFBC71F9367F191E475AAF4A0CB8831CD39BE94C51D95B\ -2ED63987DB37E4FA59E48DD7FC4B9E524208EDA0D5896199DAF89A645D6B419EC27899AA1A64DD\ -496B2F7914B69952DBD6927D191FA74A7561EC6C577F47CC115D8F24C738406E1E51698AA45266\ -2DFFFF81807CF1429C754C6ABC3CFED8E7697F08267A4AB6F403EB167FD42A2BC386A07BDB3ED8\ -D59D98E8AA85A92B5EFA2B9D3801B81AF1A12F351DB4F275A30CE635276068AC86597337AA1AC6\ -810EE0658EAEBA4CB872C5CCC2FD5525B81EAA690498DE590BF4ACE022E9AFF53C533D40A938A2\ -C9459E0EE809F9ABE118E143CD40C284E986E053F7250D2DA54E77139E2BB248EAC2403AED1E46\ -0C4CCBA8AAFE729478F180754A9330F8CCF999580D63B9AD63142DD865A94920E1F37B974EBD18\ -F6246820370B0E85E9FB9BB27FA4F98F48B10E659F9849B51DBE89E62A545EBAC0E91087928643\ -4E303518E0F19B19293D7F70A91CC0FA7EBE39C0A4DF4D142D9060451D6D4EE029473441C20C06\ -81CC5ED84AD7F8E0712DFFA9D3FDFC319030253AE11330023B3C74990DB102523234562664DCFF\ -AD0A26B3AC1418E97C08AEC16EF934A61FF508593360275021294969A0BB17EEBDEDF8A63FB4B6\ -C2C64FD875D472CD6CAE8B6085F3FD30237D3B31297A4BFD1235296CB0146DCCB8526BCBC776D8\ -347C21BF4D716FE3070227D72C3C70B3F0BDD0172FDC73F69C37DB9512D1323FE57D60CD1B99D7\ -7BC95FC0021F9D98FFE142CE8CC764549039520F7479F092AE10A2CAFA06AEC496FA24331F5F:\ -FBCAE48796A9AE72E0A4D218BDC0859B - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -A14B6E9A9551094EB317924F60FF52AABC369053AACF65FC84B5A49A1CA7EA17F874EEDB3B622B\ -04415EA80821203CFA4C6E7F5C0F88CE49DC7E49DC58FDF15DAACE114BF7FFC13666F3C5954795\ -4A664FD9DD0BCC5779EE33B858B767B155A167DF2A3C93A5735C8D54F0E29E1037386EA2BE9277\ -CF1E1618F96F1164DEAFD2F6FFE62E550B1D7DCDC737AE66E2DB6032559946110742036201CAA3\ -6E3A0897AC470DF4CA78134266302F15307EF18A0E21146F3404B5BEFD22ADF97E5888A2207D9C\ -F9A16E329171558C83D5270A3BAB99CB941E36C4B308A4F27FE98FB8AA84818B63FCB44DD6FA97\ -C30A86D87E8B7656CD05D722A7B3483C9C338FB12D7581EF94FCE7639221DF785C9CC52DC27CB6\ -CD2FB396066AF964065ED0A9FDAE5A8B202336378EAE2B5CBFA463C9F7668B0656B0DE6EED47BF\ -B062DE72E8E721EA5C3363CE2749FD0F3A67899E532B19EC5E54FDD399CB2BECF16CF0A91FC404\ -364C0A8E46D52389D7D1B2B7CA0270A650713D8F6F812DBAA7F06CCFA24E200B7C8438B04323F9\ -D29C163E0F734B40B0389B1AB5D0EA77265B2F189650164661AC14B1B49287AFEEF33014D52C59\ -FA06540E5F7090DCE8C77ECA6CAEF38E9293A79875E9E04DC2B79C8B2FD9A7419A9522DF5FE5C6\ -66D6EFDFD8253EB54E6FFB41AB6ABF957784FD88646AED00672DCF495A777AD8A0A4F91C9F4FAC\ -F930949F2B59008C2A1CBB2D3E5FE0D4A8E0CEB63AF23E4758C995382178C4FD07D0777906DCA8\ -A919FF9B38CF2F9F7CD9FE276F12FC7B0DE1DD31F3042DC74654ABCEADFF0D196644FF8175854F\ -8EE3C65178C45AF19E6E43659CF1DC46409336A48EC5935E941593300FDEB7FD738232A5417F1A\ -2B3CFA16CD08A3835FA08FF233208A385723D566952C7385192BBF1C2E73A2B1376015B7484998\ -9CBAD04866DF8D5EF484C09B640D543635852DDB3A80F2F85926D4154575F999714C4C88AE7435\ -EAFB151BC90A5BC7951BD6E4A1CDD568B5D0AB42F9B1E1CDE0E7D42F6C29337359AC383168F001\ -F43A79DC440E153EC16E62D5218EA23C2F8CB80201EAD61131BBE1EE5C85414FBF0D0BF50F2B74\ -B89A94C391E567229745C15B8E7459BE663C6AC83DA708F5BA562608F5814A3713D040A7452513\ -C8EB36A3F5088F09C9CCBF9A1B26F1211ED41F33DDFDB77CA9E5319DDE52A749C88CC7E0907BE5\ -0802C63EBDF5702B93E09CA89EF9FDEF41A8A47352D166401FAF92A8B35DDF43ED66B98417E304\ -29DBB317C8718D39BA5C364597F6C034B20F585271958AB284D184DA758650AE8C9DA359BB922E\ -DE4450DA14666AD5F02ED6135DCEDB532ECD6CEA61B071FDD364421B941E03DE48ED1DBD73DE:\ -BB1B359766D442D2E9FF3F7995A26473329055F8 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -5ABDB1C683F4DC2946F45916427260563A2B99D6A45693A684DCB02ED3FAEA19867E3D4199CBC5\ -906A4416E1AF936E3277F5B46722A7EB85DB2502C830C49C39B526DBA34EFB08B96C161ABC60AF\ -3466751BF5F1974E29DA846F9FE0A77A7528CD2EC911673301A5FD70708A088739D4D2CD991515\ -4BD06BBA1A0CC682CCE16BD1D0C68A72D2C85CCA0B33F6091DE098A599C3444FAECF15E7DA5769\ -1B7BAB3E458069D5F03FB5BC7C068B80B47DB1EFBCB075CD860D3B391158F615935EE977193625\ -61C99D06F0763F9DB85C987801CA9D44D66E8EF8B64B45289BDFEA52B514DA12A2359451B92641\ -983991F17F4F9DDD0AC174054CAB0F70171083A18A103405D861BB4F2530D077BA68C528058C46\ -E497006CA82E7FD407A3B78EF7C7A8FBC4359ED109337083DC8EA9F6CDC9AA694C353642CCD20A\ -344A5B47C42F31F25EEB82EB1368A2171B5DB13E4CADFA21558D0DDF10EF45E7E79E8143C556EC\ -DAAD047CEF149404902521DD965CCD0BC9B8354967CEF3C1C50779443B08BFA82AE49BE9927330\ -609AADDFB49E7DE339447B73BFDE525DF8A4D54D2D7C4FF0FA285D39DF0F2DA25E66F0A77DDA50\ -913CC00E5531B449D8499198E0D326D07740A29D438E2393D9D6F49606573F35F924F3125A3727\ -F5C3BC485CCFE6DBA28CC7688B6D8B88C7AA62F405F38887F2970FAE4BB38DDA60531011DF615B\ -B58207BF10BB0E3087E0F1736A1192BDE595668AE6B4D7A370ED2572C388901C23122A8684E025\ -6BA3AC3F7F547028E31AB28EC0EDB31E922F3FC3BA1265ADB8C19A87774A89DEFE0D51B0B70047\ -0321993E671224CB07D017C4C0C057AD7DC2DCD634CD88C53E74454248C4D562707EA3299E6C14\ -5C4A86EFCFC3567678B24E5B8D7481CAF2BC6D2194490B29C0F2A6A19CD33240114F44D5AA852C\ -69B12951B89E599A36E42C32020DC5D45E1080B510E898BD08784FA7418D6DC1BF8D089206684A\ -EB0513A0F4D431C44423B4E2666B9BBDAE879C0F1DEFCABFFDA4A45DA816AC4C6CAF1DE1F35D19\ -5C88F05733D60509E20301CC64FFC1AC3B07DEFFB364A65B6C58EC10E588FD5420189FC3D5A3D6\ -7CAAAA3C6B85986F29984B11A81CCD904E96290EE31DC937D26C84C0E19BE0097952E8F5D0312E\ -D44AAA311C09EB98D275268AB6FA7075D60C8881AB1CC3516DC79563F7E04D4136221E41827589\ -DA880A812D85D91AC9A8DB37B547524CEB835F033B1A452587A39DCEA47C26C9AD418749C82786\ -C96927B8BDEF0DC2149F38836D3A3522904E08288300A69B16F0F5E7F5DA6B6248D7D2800786E0\ -CAD44E36E32F89870A28B8D9D6685DA341A85F9DA2AC526B39E9A9326E5AF5D3E38D8C99976C:\ -05C3DCC6D59016C8A56E2A005CDC423B9E79B2E1 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -66E3E90396ADD580D0CAB8120EBA8B827B94F8EB5CF151E6DE08F163F540E902C98F6B069D4952\ -B8F0D4469C3B90D67FF87A60DC75063B69AF405A72B3045A7A878820804ABB23ADCB1D4717C9E8\ -9BB90ADA72714255F3DFADE1CFDCAC240F4AFA5D5AC955106390AED2E72E673EA8B45E2A92A166\ -C6131B5EDC7F3FAE3C256E586C56ED9CEACC32CDC249E6F812D4EDB4783ADF31CE6C83BC81F77B\ -6705C1ED1C37061A9D3BC91D7C0F889F5C91E574D80E3CFCF19754201CE5FD4379EF087369CEC7\ -F68587907915FAA2195544490DAB9D3434AE49832556232A77CAA32A1D6FB6D797F0E388DE8A98\ -D7A7B2D5FD71BB4983BC4790A652F8FB99D4A7D0E18DF328BF376FCEBD2FE8EBEB67AAAB608881\ -85706F0E320765BFF8516280F45F53677BCEBDA244DF9F5604FB8C816E21478F25E44DF83903D2\ -A3CA94BD8AB15565B60A4D41B08A155C42E7AB92922505C793C1796EF03CDE688F1FD0E4527888\ -6F0098A72FE0AA2FBE87F56DE1D2F2B8A3EA2533FEACD41880067FB69FEB8DDB8C9B7276ADDF0F\ -5DCDFF1FEE3D4A9DC8E66361AA16931D1C737F08CFB7F5A874F1294B25BC2DCA5757F65603B8C7\ -2E7985723628AE7A6D9A0B5BA1BBA655F639410C681C80B0A9C3FEE24752FCDDCE948314E3D341\ -22270608F563A623569412F5BA073E54B59EB379672DCC5A85D6247648397804EBE8311FA5070E\ -1DE5CD66EF2FD736D5598791BDFB0F6EE30C617B3471E9BCB49759A679D8BD1D8FA86748F54C7E\ -A97556AFF98F0F49A1EDEC49F97652C197C5D6618E227306DED51DD5F44D800B23DB2FA2BA2599\ -A215B7DE3F34AFF7ED3911A5C6F7F57CCFEC6A47C7DAF1F2728FB58AE10400C3D8B29E4B1DC819\ -14D3890C1D09B6F52019D4D28A1701A9CC86EC9150ED845BBC5DBBD1DC26318B0420C64A1825DD\ -9AA0C8E1B47836F5C8C4C2B70F6B758476E9BE624FB42EF954DD94F8E326B8EF51666861702A5D\ -1D65D62135F89E3564D3A913061AD00A3EBC3C5AD3C52CB732304792D0FD2F14BD0644A5E3BEDA\ -6491E35EB1B0CD52FA3FF75228F55230FA20444C272AB54DC0C0DBA7971C923AB8CD6E72148284\ -019321302E2B1A3580A20A4923BB6B6E104529D948B5770E18BD2C6CF34B389F1A4A9BDBC464CF\ -8FCE544891145D980293DF4F0FE6F35DF22117939BC26C89735D027541B562A93D0C611BD7CB87\ -1B556A3E3F0FCDF1F5DBC7A9D795C1B45E1DF6D91E6C7AFEA00E00E44CB6D25CB6C2D658D0032D\ -67C7609A8598BB427FA9B8767FE3E3BE1733CB352318E6099F7EBD3B1025DDA5FEF1F4BBB7B173\ -5828D291B77236E7660A23393F116EDFEF8CFDE2DDDC3017480B4E6D8A16AFC5EB4955AE855C:\ -0C68CEDDD3BFF23048B47C9BD966A19E46F7E2D4 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -99350D7C2BCCB1F021C0E1269D7B764B0C3015839F0645127820CD4A8413E987892E8704AB3C3A\ -E99150F2BDBF9FB7745E7BBD3FC99B573C5DCED0E842D98242D8F31E5DD69B6A8100C7DA0C0E33\ -ADDEE224B9A7ADD35ED065743ECDE4D38A47D67B3553FBA06C4D2F5B7A53B423C367DEE0AC3CF9\ -4B9A7C620743609E27F16EF8AADBE74FED3A727B00F8666562461D126038067B44B3CF1D7D41AB\ -BFCEEF122F6BAB5403EC7AD66B8B60F790DF1DBAF330A040B1E542E783DDED48C1D8E196A9FE32\ -A5B7EA6F63446E9BFF93B0B3892CAF044F87002381F92D9CCD7FF554E07EA42CA7A44577C47B54\ -97A212157EABCC342D650A41F3CEDEC99E5207FD0AB916697D85A619BFDE3AC899FF424AB3EFE1\ -7C9C8B96F58AAA9362DE3DDCF097D7E88EA3006BE01FEF9BD9481CF9E1DA674FA133D114D5910C\ -4D61523CF20FE135CA48F3379C0A29D0B05AD4A41E782968A1520BA8DC6268830C55BC92D19232\ -EFFCC65F351194430EC4F25DF2413DFFC08783876B87A0F6AC630CDF04A4FE19EC6C56CCE07515\ -4866E7CB687FF5537C880679DF8DEB23D7278ABD4AD260D445388132F6848D8B6191FCF90D0D66\ -D4B95B3EAC5439D6C6303CAAA73B968FC385EBB727B6A5526B0162E2AAC32401C62B3FB150C598\ -846241854996E412E99873BA2CAF040B137250F7706EF5376ADAD52FF13B812DD74A8792E2474D\ -ADB993C2239494C9CFBF860F1216EF02246911AA8FEE28042A22A5BFE311406E9C1F4EF8233587\ -10A6E55C07A31F59B19D70500835FE15B3B36BB119A4971A67D66F3BE04E27175069C21EAB2F28\ -737C5F564552CAAF7D45CA4BD7FFCBA429E7593E603975EE81A97E8BDBD2C5CADB1C18818DD494\ -D7186D36B36F289118A834297C2B8C3BEA35F716435F49E32559DDF80910C3767CDBAD107070F7\ -37EC37DC47F5E3529F863096FCAFFA389E848D8F411B54CAF289C382C0AAAC6C781C03E78BAB1F\ -D299C8C14D2A37916F2287D6B5B1195D0A176613065D8C3038096A5ED63DCA5F9EFA2E3A5D5445\ -87DE1BCD995CE4CF371873D0F5032AED6B1A08686E4134B1EC63BD9E755863771B885CA610E03C\ -86DB96CA77E9E7CC0C4D97A185297501C20A5953D70664CE9712D4143B0F8CA7941BF6F114F8A9\ -2ED16C5ACAE4B2BDB940CC573B86AA7918167BA3AEA93AF833B51590A09D4CA299DFF975C2F1CC\ -B2E3112CF5684C60344917F6400D1B1B6FF0A986A1CB955987354EA8B69B4203A664882F6F1544\ -F71B5E89D104CBE8AC412E4FFE927F9181F54F1DC4A06B488D7058FF1B59D67A47B42276E9E4F5\ -5807CB1131340C5C7D5FA901A75999B3EEA02E853868E6DC4DA82A2DEF303E2473A8D7D6C0DA:\ -D9A5B1BDEAA3E8DEF14E7692D97F502C48A9ED21C2429BE6 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -354FBDA4E986570038B707CD6A79CCB72E00640B07DD1418643F2EC5BD5B281D022EBA2413CB38\ -0D061EA457CD4F60208F7A99412F0CC511005371CA55BDCEEA21DFC3AB42CC654E0A5E0BDE063D\ -63E4080AB120959D0B298273F02A070BE9355CE28583844CB85049FA9813DCB0A1762322501073\ -4578E48A543AFC3BAB1F7D50E3A2FA561440D08488BC6135EE12047E89EA92A22E175F1FBF370B\ -E1C4B596E14F77BB4462F34418F6BCC1526173FC8F030A0604F24ADB94AA01C9602745803BA767\ -255721F0907B2F387A5F31C3B45780CB1F8F526169E5D710CA88901C5585CA980B4B39D8DC6EE3\ -D563EFF3725E3E149D6EBA1B2239662304D504FDFD53619D17F35D6C2597BBEF1257CF40608548\ -4540FE0FC2FBAEA3955F49A6BC71028D984804F7DB46C6E2ACCF9CEA144781D795BD4F65332E3B\ -0FCCE28A63028ABA2EA2D03C8BBF76BCD8DCF50343FA40D53C133736A632E78B11D3D5CFE6A990\ -4CD9598CE9DED58F3350BE38937867F59B66115248946F701998A9A3724185595B114E696742DB\ -0EB92398CD9E93BD93AEEC0006B9449EE5EF94D7DDDFF9221336ABF8280738617170D89D2B6B5B\ -8BE4570430F6721C2DF50A94679A7FBC3D6D5E32953D93F8C2192C70CF945B2EFC73D3BF5AB1E5\ -EBA34EEE60B755918E2C3E71CF61D666607FF099D2594AE8EC91B9882DBC27FCD235C4AD01A568\ -CA39B426624948D732F7DB11F277EABE1F53AB877F9841B4DDC3C1886FD6F37B20F3D80BDCB874\ -8E99F3A30F12E5D3FC5407D40D95BFCEEBB41515C4120267A543892D115C1830220964F841AEC9\ -563368DDE3E837C3721DB4B5E082073FDCCD87914D495AAF07890B1673FD8A614E5873634EFCE9\ -E223C2F5B83DE8453B773A86E4346DCEEA885D7BBD5D9B50EA3275A7C7A9459F5FF974AC0296FD\ -6F2B7DDB178E123112D56463F2B048829D3680020B549D16AF318C8FEBAB7CC6798AFD96F67347\ -BA86EFF75BA5425833F1FB581E9BBB3EB668F80A441C69F61FE290D03830AC59E2B9805677995A\ -DBBE6ECB0DF9166385ED4F896D4F4A8A12B94EB26001D7429D4A81EC3FE613DF395E08D2A59D56\ -ABA82F9E7196EF2B9CD024CFD3DBA7D50863344BE7E291B8295B46E8DCB765078DAD3C3C2DF539\ -84BDD216BB5BB596A5CE204762737AF55328AD03D0CC0BD11823E89A59802FD2D774C830DBB16B\ -2AC25EF359454F853FB85142BE2745A6A325F421FBBB41F6EFA4F4F931B01707E137B5E66F96B2\ -C76A34F866940F0C34CC8B6560D55C18B468BACBE4220440B5A07228F4BC635CAA92325BC5F670\ -BF0BF3F1C48AF93A85A7A245FC4EF214ABA06CDA6351920C3229468C547B0BF9C7CE3CC7142F:\ -57426DC52887DADEDA58D6297A1680E85C1E65EFB9285D99 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -B01557E5B83A7C68993572EC916B133F1EFD32358EBAA3ABF519CE1FF7BAC100E603DA5A16DC49\ -FD5ACF9B04DE9C4ED5A862AEE3C9E301392D32246461D3DA41DD69240B47C4554D6B036CFFE7A8\ -3C67D32785D77049A056A4BB9AAC1B94A43516D56C2B23DC4F0F8BC203614144E296F48065ECFB\ -812FE28B0622A24EA973B6BA4D35F9CC1263D6B6DE14FEDA3A2B62B7608A84BE07743F1C911806\ -EAD62CBC130C55DD6465960C8041D17AB27A2EB0661D2D6FE03B284773D84EEFD68AE37BAAE934\ -0621D3656785CC409846E61D7D44B327F2D5CE6247740929C42C193EF515A283365A6C22368518\ -9F32522C12F8D6FD67BBCCA7D5BFA7275E0E1877C3A16033CBD35CF07C7655C9D1AAB6F08F984D\ -5FC420F07B498BCCF77C310DB9358BA43E015780F0C79E42CAFE0AFFA5F7A47ACBF79D5921EA8D\ -3869E74D7A56CF05A3BAA75C8E6A38F78BD7638AD9842CD095A9E6D5140184C99A35AB3DC6A0BB\ -CA717014ED032FA09C4AE182183113594BC6D78731A0211D82C91F41F6262FBEF6D1EDD2FF973C\ -1173C70071A6F516DFC34FBF6EDA87CD097EEA24A693F19D8474E6E53B02B5B682B4B77D25E159\ -2DDC9B9EAA12B19D166F78F3990A1F557CB6DC795754C00E8066A7607861779237798C100D0BD9\ -75354F1E307BA6E10870817482E4DBF633293B67670E27E81C88BE245C0FDFBBECD2668B1300E9\ -1D53D0011BD0F67399EEE363FD6B63C8BA86807A866F3B5A00A2C0224C40CD6838B717BD2A58A2\ -4115CCC0D8CF174C3ACEAB7D98482AA1E29F29DE27F7C3B60BD5D991B73803345EC59347C1922E\ -CE2896A6D8772BC7451D665B210E7A7CD1631EE2C55893214111CFD2CC3944080F212AC85CAA45\ -9D44C669B36CB59D6A09E15B2146A0739EA5AEC2275000E5CE45A3EC36921C2917DB20042A7635\ -2C28B32D912665FA5857C7D6961BDE4FC9F9279EF39D9EB2B826D77293280730231B0F530BABF3\ -C3A25DFDBB5E5348C5AF8690844DC8CBCB55754F5E5D5BF3C6B0EB639038D58BE4F631299600F8\ -781906ED42D6603A432037BCB72FF07592497A288F9AA7AA379358395F7BE07602E547D6C37DA0\ -C3F22C395068BBC799E2BD00BC306CC5624D00CC55CF46C0BA5CE9D722051C9BE866BD244197FA\ -CB9DC70A124AF897396877B92DBD891C57E6439F51168D9F43EF740A7E810966EF6009F8973663\ -E695FC97946184BCD39D13130B4DCF218087F16A7344036AC7FE0111C7050464A4D32EDE1081CC\ -EAB6A15777D9CCA0BC644CC82EC660BEA8F416B53DC14421E811436C4088A37CB1B46B83A95A35\ -3BBC54FBB836618D1640AC53A2BF916965A81F6E1149C0EA89D50D182B652D97A810F5B43819:\ -55255DE499962F4597F5C976155D223EEA3740A7544D6BD9 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -23AC39460E6746D760C584C6B35EE1F579B43161AFB94B725AE5E3D1DB9B5E85D70068A81161F9\ -CCEC724CE1D2ACCC9C5CF21AE056BF733F9134AD16B2121F16644E43CF1D38C498DB715F134FF2\ -677DEEB796B43641C9C508103016F94B91EAB0311DD2C8E81D4E1F4115CB329B63F34F68D62314\ -BA4C77EBCA6DEA17438B9689537CD849CC08AA11665FF59BE715E2341072DCD3BD6FC12E21E176\ -FDF969CBA0FC63705250609BB745E8578BE290B74E990993E2D09F8B3EAB2DD36F360734EACC54\ -E03A4A588ECE8C622DB610C0CA883A699EE4E97E31F6BFA1F0771AE380A1502D178AEFC0916BED\ -F4A0BF876B18C23245C9FAA024CAF00832A60A083052D17E6BB8A6FAAA99CA1272CA2D166A3CFE\ -60D19AC01F1A0101E8E39508BA99E10D66D0611F01E4F212434642A2742A6B454E948EA7B55BAA\ -AD242420C052EFBFB531BEAD83C60B7015B4FE943FD6962B08B1FD6CF2767D5E045EB1F223011D\ -83B061F0AE6653F7BFA64C0774AC423C74F17877C7BE62669B095DEFE73F389D4C25C8BD78CD4A\ -C76DF63C36A19082C97473B08B3F2FE8C5D89143F4D8177E9372414673D340B301A85C5D9200FF\ -B36D5BB12ECE203CF00181AA5034C09A7BCF3843F98E22A02EDFC1A50F896774252D1CAC93F578\ -9BA684431BDF3C7978F3647696DEF4489DA921B76E56D46E208E31F2B320DEB6196E723698CBF4\ -3204E68EC8B86DF48344E2575F3E9F1818A334C66A942EC3C3D6439CDDF970D4419EFD0206E413\ -C99ADD9D48527676672C96B268683F49832EC8C1B5750B900715A7955DBCF06A2AA6995475D15C\ -7D5EB440E228899315101E6A8A45842EDBE41785AA4B2808956731BEE81AC9ED8741884052DC10\ -090FF82CD9CCCB2CBCDAEF343143C5D7ABD58A730AF8229825EF2591A253FB52F1A21C8E5CD64F\ -E327FDD55BA792CB1E8AE92A3EF84F035D72F808976350165ABA7675D8A520B9EF9CA7D04F3D26\ -B8ECD7E5CD61A19D0CC13DAFEF2283808B808B4C5DD01E9A6DE54662D4FD21083120723D84EE76\ -2C197D33277E0D87E777FB2B619A597DBDEC83A93F87ECCAAF64D3223CA1E2CD2F7A46092EC5FB\ -0CA5350D575828AA20D60DA75379C7D883D662A0F66880C7170E11BAFCFCA74556A180F140E173\ -6612FF94CA2B5782FB8990408CC77D39FA68262C738A607F27CB5247A00482A7C17C19CE01147E\ -536898826372F81157939C70BF693C9A194619BFD5F9D56B5C63C0C61B3AD6AFA5F03BA313E4DC\ -69C6E0F1DB8FF4A3019C5A4E990886197D5C1A31A7C108D94B285FAC00C617D68B177C26576CDE\ -8F621A6FDB021FC25C9534BF7E7E1755611200C59193D8C28C7B2CDF47A05CE9D7A3D89E6103:\ -2AE43BAFF61783491A33341B26F65F7CBA8E393B19C1E97BE420FE58 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -040AD7CC43206F37EF55970D545AB43710E0BB8AB6FB66F7E7CF60869F5C61C018E869CA7FC0E6\ -E3798649BA2A1B7CBEFB1C59EAD2A3117AD370CC3CC9D5714430429A002BB092098BCC6DFDB593\ -E1DE2546D8E410773F3EEB2E10A15AD39D51F7A87EB244818BDF53DC3536C955982A733B5121B7\ -2BD5FCBA34D479F246F505BDABFC6A0D95CB0FA64EF6287052A0BC26133718958D19C7387BA152\ -10DAF602037E407A731B918F681FC2005A6CDDE141E405493BA0987978424C7B189C94B13BA8A3\ -0865241C1D6EF06A8E3EF3DFB9D0E2443B7F47A4FDB1D02B5FE31BCEC51086CC38BFC7CFA2ADE3\ -A75ECDC3B4D01F3A9FD71EAD8E5A0E9870C605DC4A6F1BC3932937EDF7F4C72794978C582A4819\ -2C12156B142D9F8D00D837057296D2E1263BD7939D56F56D31FBE031BC7B1194E2B19A7E3A83B4\ -82BB57AADF5FC8FCC653227ABD1C895CB3CC7FCD5B7BDF86FEF7C55B78323DE51E2BCFC370880F\ -A872BFFD4CFC0909A9F79B8089EF50E7E93239E679E158D6D518F7C5555F325953A36221C1269A\ -E5F235CF338BA7A8615EB1D0B54CDE65291F6EDB3C2FE41FCBDE0457CF050E5E30149C857A91FA\ -F767743C968C56B94FF79A4CD6F798356F20091174187EF169210706E84FCFADF57D96B7077433\ -CAB883C73C060475C207E611E679B9A795428FDD891626CFD6B868203714F71BB158086F93D86C\ -A5499C0B9B8109E1CD0F7E6FDA5B0840CC3FF0C1EBB4CEA6DC5562BD64BF08EA6E675EC6298C9D\ -5E1296B327B4EC150C0373580011D105DB11CD4E8FC8F3E49A64E2AD9D1D2261C85FAD9A31BAB8\ -6C7D92837FC297CA387E945DC82CD10255D14ACC503606C0A9BA7E2F4F1C72A5E17801091ED1BC\ -B2B9BBE91EC4EDEE5A908EB3BDC51EC443BECA0E99F5BB8A2656702B49723B0A3B37F6C7443BF3\ -E85F77CD3DDC39A7B016F1F53683E75C103A4C78217D2CF5D5E156E2293507E25E17CDC7B22136\ -92E0A15C0ECDAD687DA2ADD96D59B609A7A9956DB3705C22E38460933FF5302343C5B36ACE8DDF\ -022127C5F1046EB03B4CF2BA625989C2EE484D365D04D69DE3612D3961491FEE3F101A9CC66543\ -BD52D0BBA41819CA542E56C58F1B2861C224EF4A9A50AA4CA7CEEFBD3BFFEDBE82D5FDACB315A6\ -B9A4F99A01BA7B09FB9D826DAF4AC7B913D8A9EE93894B834B8F2A9B242F515D7D6C3A2FE9FE59\ -7583497785A299DA86185235FF8D255A17BF45851C67DCCADDDBADB5D5B49D1E357793AF60FC39\ -E15F201B6082999E5252B6C34B542003C209A8F28DDAA58BEA27763AB060510D132219BFBB5CE7\ -D8F6759D64E2D25604156E4657E3EA764B2C3D2A0710EE44D5AD6EB9C7407FF852C2DC161D46:\ -2372F9B0FF27B8B5FCF2735FA58AEE77083942303E1378D777407E0C - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -063AAC01A9FD95C649CB7891779D91D9DD1EE283A256083007C910D584A8A967412B486E9C302F\ -EFA2E4B3EAB48160CDFB924C3E4818315C2E8939BE010349D20A80E34886BE789BEB3403CCBB3D\ -A87FAC97F60EE091656565843AAC43EBDE6B7A65FA71AFE86DD8B00431A75A84F7B40231061806\ -491AE5E20143F09949FF991997C93950E209313E28D1B1F17FD790AA03F6E9530C934566A44FFA\ -4F059C681DD6C9018E1FADD0DE1D3F48E6CAE065013B1CDE175A6714DC64ADC360700D2E36C120\ -70BC591FD06A4DD02E5555B26E9A319F9AFCF1FB446183DA03C53631D97DA89925ADFAADDBABBE\ -11B118FADEC43A6B726F3FA10087E6FF75AF9DBE1D0BCDC29F88CF2C31492CCD38C834F237FF58\ -709ECFAEAB5688C3287D1632CCECA70ED625840256F93BF7D21F05E7AA3E4F10117C980826B9A9\ -6CA135C510BC1413A1A2ABE79DCC335667771EB5D327DD9FD8659D8385A79526AFCF88D15529AB\ -76955E6D5D4C3E452CD22EEDA7576ED1ABDEE5D75A003D24307F861DF68335A2E071010F5F74E9\ -C5CCB0ABCA73B474E7EFFDFE50F8171B4BF4322E7B5E1B555E50B16F27F078BFBD7EDCC55E7E4A\ -D0752925226E2EF083AF2BDDAF3F49AE3E4BE98D174F9EFDB42FF413B336248FB6551ED9AD42EA\ -2F619B25E9BC3C26F7C29733692A091C754C23B60925EC99E013D002EAC4234BFD35BC420B7AB2\ -69419BF731E1680E6715D7B268C463298FE1CFC554CE6A0875D09177E679035A9E4980E828B894\ -87CA9D8AEE9406943EEB4AF2B715EAE982C0B129655B392F765C4BC59CE9AF4049FCDD52C50600\ -D4423045D61D4F917B2BBA7D20CE7086ADA6786000CFCE344BCFB937F829FFBD9388553B5F4E90\ -71BF8AAD6326859B78E4BB9F96FED01D84E0C22AA6FF48FD3A2171DA8BD32556E010E8FD120C65\ -02EFCBC0FE8F3BCF58A021B1CDE9156EFE82DA463805504309D515A7DF571BA206508CAD4B9715\ -8130576BBEEB5757F166E7ABD74CCA2F68417DF7076E2F7DA29AB4A4242545B41EAF240F1018FC\ -12E581A9C023FE555AFD6FB4E08D6016A465B03566EAAA4FC5B6583366639DA696CEB701B446BB\ -B320E649536C14454B091840C0DED9BF51111E3EDC26E7644CB8CD342FE5F19E8D81D9F21FAB9B\ -5B4C0FCB020E4468C8D5C4C6C42312745827DF00E8BAC1DCE0838BCBDEF39C05A50489D8E0B9D1\ -230729F544C5ECFE071F67900A394C2B5F3E993F0B1EFE487DF0C92B0C9C378D6ED097C4DD09CF\ -59A5470EA59E0CECD91129D26BB8FF8A145E2FA70C1F2AF7AA615712797E24546B22ABF8542FEB\ -F3C7948C328E7D8470AAE32E44A4E71FEA0974CB76B7775617CC450999BDBABEB98CECCD756B:\ -6951EF357C02124B4D1E31E956FB7A3E1F8EECAEA99C2E3F379D9F10 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -5E45AD93CA54638C779AA42B69C9CA40E659E8169C53F968126C05D39F08C5794136E206FC9CCA\ -51F496C6E781AAD51424188D80CC2AB68745A5B277538ACC82AF5F9C2F7E24A2FBA1801DDD7E2D\ -FB8D1C0A599E6E7DB9EE28483E9A2F1E02CF0C0640988C66B57F4B60018D1A7E251D4FD87D8D15\ -2BCC74BDDACBA9AF2460C3738505DB119029B4261A96BF5A95F385420713C283E843BE2797DC28\ -1C3F1A77548E97BF9B6D764C523D2C462F77DFE2121A9BE7B436CC4B4D6D00D8810E1B80DA3D53\ -C28D20B06272CC48E665150A309DC80B8E4B2C8457C73E0A81B734F82F0431877167F116306954\ -6FCBB7D0C828A8F92C60F28B679825CCDB9AD1FE0C20B184753AA2357B04DB9EE3AFC26615DC80\ -B7A080748709D2237CC22ADF374D74B3B4A1CD4265FD247E4B138C9E8AA4FEE4DAB218090D9C4F\ -6CE5CA6C092F109C5D0740F0D9BD298FE75979B5EB122E3EDC0F1B5829F87E3D92EF91895B00B1\ -5CBB36CA712BF71FBAE7D5FA4F912C324C6BF8C7E2F35441F9F38982E6D33299160B058843CECD\ -911A64473CFB46683B3AC23AC940E2B4E253F47B160522A76558CB8F487C87CE670DAF81E5650F\ -FF511DBE2DAA34344B1133E57DF8E7455569FD89C2763D7D3214E7B158320E795FCCC78AB535ED\ -A3FBEACB25CDC81EF7DDCB0A7C7579F78D6585DDBF6EB1234357495EB8A36B7B7F81F50B3CB7C4\ -185C208425DF40950363DC9917D129A681466B1C8F0F02ABD5A45BF240ACBD2263C74E8AA2D9E0\ -DEF480ED29773AA0D6BF518C0FCB8B6B005A2A41A04FAEC5C650EB280B3E92326244902DCEF85A\ -581517EC6CC917BCB2A69F2A070F9D8E0AC15F79790B0DCE9E508A8C55512E2C1476BB63018D01\ -4E101F13FA8B0B5CE0D5D6531DB60BF1E0C709C5154BEBA3CB74D8A7FB21C65857E692B2438722\ -8E48CC4EF259E94C2BFBD7B8D6EEF502E5B30227D08F8D9B31F61804220CD7C0B36FAE7567E664\ -FDEDFF60C3021B1E4FBC8234EEE749E01F0E3E4D6AB2AEFE5B170C01CE7C7875F12D8DF551EC46\ -46D9AFEB43D5A47C8D9CDCC2200BAD5D32624492444BD7552B7E0077292AD15CE6B26A8FA036C6\ -7CB71338BEDEB6E9AB0A17C1452256AFCC6F9E457525F9D285DE4BD16FC66309A047260C932EBF\ -F33E2E3E6EE3C0B3E54301E0FB5382498995E9C5D8078560A539CEB8BD22600486BEF999F8C506\ -E3B40BF2062D3DFA98A3303C52423C8134D713B2E7F5DF254237460655B4FC668AF7B3886EFF4B\ -9214ABBCDA6D33DC7E7C9FB9D67B056B9ED2ED7FB31892EDDAA32BD99C77C533223B4E85808F3A\ -0C50A2B196A6B091C1E876587E9631959BC0FE1A6711242D52AFB80664397C4F00A14017A2A7:\ -3CA260A152BCE7AFBC673137B4B258DFCBCE5E4946B909468F727B54AE3171B6 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -85DE284F504C0C624AE145B4AB67FB7D91EC26D0E9C3873106C16D5C09BC7CE453B4D495199873\ -BC375B31ED963978074F6F28ADCEFEF618DDD53B2393D4C99F6FE8F09B307403538EEBAC5B7647\ -449323301689751FADA050BD6C8B8AC14C0B645B0847957C803D9F336229D9C59D3A276491D4C6\ -06FE6CC1F936A97246F1EEBF398A4109D75DE8BCF372F8966579CAAC9A254C14DCB573F6868C08\ -E8D932A63905C8E318E28DEB26134CCA2CDD631389B130B1D0469B86C462BAF826EBD48CC9B775\ -CC5D0002D87CCFA7DF9F0E90A80B1DCC0F0741A3CD6F39E51FC10CA683DF6611D3ABE6C453CC27\ -675F825AC3DFF2F7A521D132C71E230E84C520BFCC1437905624C398B4C5908A0260E7C17D8C7A\ -DFBF75B059EEA93B87CA731D82A0505C590587796C7FDD614DBCEEC4A984E0612EDDCC055B63BA\ -DD66DA0541D35E4AAC9E766CD67CEE5CD75177387C5C8D94C86434ABC1B14639FA2599812532CC\ -CF2D72B3443145F5DBF2312C74263A48D8B7D09E8E622D9FA1723029C84C6D904609C253AF8FC3\ -0D574559247BE10029265C2DE89E12C4C4505434969E8703AF5906A278AC9F3E7E01D2A8FE09F5\ -2C121CB3A97C7C3A4B9BE17D146E8BC2213189A356E4D9959DB4170F1D004BB2D4FAA7B56FF489\ -8AF5DEAA337B1807B52C63B474E1FEF110AFACC1D57ECA33A2DD248BD830A16309CD9549BA44BF\ -D33724FD447D217E5E543AFE7DBE74C503383C5BAC4CE75D20632BBB92FF02DB888DA566BD7E59\ -4B613C3754E1FFCEB7D53C0BBE678399BA448B9E35F0F2BB0477B767B1488EC90CB4733F1956E9\ -6E1845535BA97224E569799551F07B8CEA084FA8852B17A9D8B34C0047A15F8D2754011C3B523E\ -3E5F5763EDF6A06269AA3FD281B8F9F1B263705A9F5170C34B9E7C46F40A3048E7B98D21CDBC6F\ -721250670E82DC60DA8326427708105C297BC05D8BDE97B0F78E55E00D5B65C65DB5B11849290A\ -6D58FF4F3B88697879993509FC7A5092AD6E194C35BBBAA74C2452FA12150CE3B6F1ED8DCEA0BD\ -600F529EE4D4A84400EB8E756770E7BCB7E279626F9EE6B30B9E9F952DEC4150CC71B0F9939809\ -C7D2DEDF98D01112A9A58821A0BC96D267AB9A2B77C21AE53F1135F9FD390FEDACCFA9A6817121\ -FA5719ACE8C079DBC8391C1B4BE6AF67ACDD52016933A99C9F2BF62093D5299D093EEE7226C49D\ -5BD519ABCDE8AD8230E3B3652F374ECDA7F0A6BDB84A8EBC9C657213B402EEA5EA5FF2F426BF8E\ -189517255E38E19ACC793971CB4492E8D346D25C10EB626CD709DD670631B2F19C95752879DAF3\ -DCD2A07109625F4D8403B6E153E3536521B78B6D6AA7ACCAA42B0A2CF47048099441A5823F64:\ -003776133C69B7D16F80023FFA5657C44DE96400BCF49A7F7ACE7BA18B224F21 - -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -000000000000000000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -09CDB68A29150A0DABA207A6515339A0AA10470318DD7C6C9CFE89F8DD520B6E5DC9A612C6E365\ -91159E162592D695B03300A2C5C4C28C8912DAD980E9AE05533ED8D7F05A5B55A8DBE01418C1A7\ -1F01FFC89ECE38B0B457FFE586AB48780E0F297EFBC7A27F713FC54D0E8217D760D545C6A384F7\ -5865C02F0DDF49B0FDFA7D920F57D988B3220DC1BDAFE0325EDCBB37E94C09EBD0E17E42FD0E91\ -F86B958D9BCDCCF525F8FC4F16ECF2404077257EE35C6E86DE6264910E33621535316C30752500\ -EC0D52BF3256BBE976B38390BEB6F960A6EB1954356F8D94EE248AB021CA09192F808F8026C34C\ -C95DB1C5FAC16255C518A2E3B0283EAF066F6B31A03B2170377C08C1D83D350762347E61365B04\ -D8DADA99FBADBAEF87D8008BF09EFA3153CA0C79321C0EEA989E74252CCE2E2A34F0FDE7AF1394\ -D94E2DC52E98B25680E5DF6A1F99E6178580F3FC6FB1217385E5BAEE4AAD33B434CD74F56CB95A\ -8F9F263A0CB5CE04D5939AB62077A5852F7F1EF8E7AC72A8DB2C7B13616B061262BB6A18970CAA\ -340A469BA8F86EE8D1776B3B5E2F20F64E4D02F6A3571C7B5DB810746252B6C51E584787925164\ -67B0B564A6C92935C7F05A856AA6080AF0BDB0639921A281983FCC406E3612B0A3626805ABDBD9\ -01C7E0E93B69505170CAEDD8B811AAB18698F3ECC6B6B0856FAE92B7D72CFE805931CC3C8BB65C\ -784162C1B88D53C50BEC2370982C0F4F0419D26D17CFA4E6757C782605B9419134FDA2F09C568E\ -50BCF07626B9E6B401F55B43036C72A339570652EA50EE4BA5CE3AC1E098F61AD23300D51F95F3\ -AF334CCFBBE3413D418A1009137CB9EF22ED141680CDA3FF7727BAEE26C2E35780F9FA8B63F122\ -9B24CAC1DEE900F52C03B734F54CE6F5E5F32D89E4C991D3788786DAAFDAC3C262906DADE08612\ -FB9F8EF1364ACD2EDF23416F1AD0BC3E23D5A5EFD11C3838D3E4694D065E04C349F97AB5B9B4D8\ -C0272CBA7AFE0998BC6CD51F1614476285F11163D20470073BBCE0A06EABD199EDD2523C9D595D\ -47D211D844929E3D614C26A75F7CB90734DC3B9DC7005DFBB66101D9B0C3DFDCB03F972087D093\ -4EBFCDD1C9BAC0F62D50C5437E5A9834DA80FCD750D8C577DF7703A63B847D75B9505C522FD241\ -10C1237F7A2DA2C6610661E154FCA6326A0272BDD16BB78C9891D3F94B1BCF064A1E0DA24B582C\ -962FB807C3A69B4489AF0EF8488C59530EA5D92A95A12B7C00F28889AAB6A91E0D9D6593944AB4\ -C89CF11AAFDCA2D72A1C0C793CB4C18ABA658207517B041C7830B3799BA802841623F3EC6C3D6E\ -2E1A11E0E33A1D1F97A4E6D771D120B11C52736AFF0AD3FEBA59FF03FCC087F50E36839B4119:\ -085A85EFA966BC844824B45AE82708DB927709623911A1FD7877636C62EEF2C5 - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -0C79B2CE647574C631FD55BCCB1DB3BE69BA847E0F23AFB00C21B7D41794C10F3B8F61929227:\ -1510BFDF958D2C4BEC1EDBFD675ACE6F:6D1DDDEEC1BA73C15CE4851DE0B6CB0E - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -DC61600D30CAE1E33CCB50E4F7CBFCF7C889CE9DC780B264CEACDD1C21133B49F9E1BC4EB879:\ -0ABF45AC5AB91F794B98DFA5FA0CD894:00DA828DA37D94E0841A484A2EFA4C19 - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -6072A1F5D942825E92CD02CD362FD79B209801622723A30DD7F99AB5D7830DD88DF4BBB29E24:\ -A6787289DDC9376947BB930EFD48CCC6:FD020136FC6D6B8BDFE9C13CC6E3F2F7 - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -846C5C3DD0BE453FDA15DE04706DF957036BF8771305D35A99D57E5EEC0276A0F8C69928D05C:\ -15175F1FC90E93CF104366657D8BC80C:874B703E2D1AFA6A9DB2CE90DC30F76D - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -A134A7EA12EFCA03BB8B0D2420A2234C7CAB5F9D990A83D9C2E014F6DD6427F25044FAA47977:\ -51846E247DD72812FD39BE78E1B2F50AC36EA2E3:7487C24E287E5BCD87B20A15B9A5B7B7 - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -69A0D15F8D18562FA4754B77601184755E99E3C42E618D497F8A165F25B393CEB6B00FC7B723:\ -3803A2009424E2AE8581075A53ED058A274EA8B3:E359E0E5888FE70D570BCF0AF6E89E0F - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -7876DE9ECF5FE512ED7E96B24466CB3C642EB6AF65FF7BC6151A92F08DA4BD8CF110866E698F:\ -936225367409CF84A999E6FEF051FD5E75882295:99EB3466CC3DD02A69420C158FB77159 - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -BB7D4F56219322E943A1F8B23EDAE9D510760CD9F9F6DBFD8F4D88DCF237980B64AAD59747D8:\ -0EEFE7FA570C584A0A256B8192C964D86D37C3ED:4AFC9814F82675F50C84CC306E758A8C - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -C47122CD6BE53F777B20E91324A92307589A731711BC29FE6902935C307CB61BE8380E261794:\ -0DB2B86717F826082435438568139119BC66B0BCBEC2BE20:\ -B254D36F8AA0429EF8E197245B6B92CF - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -1050A35FD348E0EB6FF6FAC7CCA1A342B471FE1085B3B7928239E1926735E3832627FACEAC22:\ -31A10A2F283FBC4B9723794D41C935B03395746408A69787:\ -B69D21D86FE5C58FE8936043477CFCD7 - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -F9D965BA84542E60148704BF612E95BEAA5F6E1747E22EA8F59DCA7FED5D4888431B1C0CF164:\ -8A8062489A1A70F9BE06B6FE1567CECACAE292DD7D7AD296:\ -B030A9DCFAF8393C46696F79D6599428 - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -CF2485D29FB99F8ABB7BA07CCCA2982945BC033427EAB654711318911750AF51B560DB75B9AF:\ -1A738B670621D0F433D38AE8C527E3A534002882D5487EBA:\ -0B1211AB1B6266EEC19B7CE5EB1B2612 - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -C5D1027641C9731930CBC636D34C027A561D787E008859E2C97FF3CDFADCE02A126298842372:\ -2273D359BE54CD6C8F5F3D5E0D5CF19D9247DFD19F5CC7F5F09076F8:\ -C9B2B798B7B4C57EF9EBC67C2DC036C4 - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -1C50895355461A627EC16B84FE6B8490AE09CDA0DC6312FAC2402CEDCD7C3B211745083CEF54:\ -BECDF3EF2461DDC8BB7153C4DA7047CDB396DB9060A8C23746CE6089:\ -DE503503CB0418F161D46E03EF29FB53 - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -E042BB60BDD972CBE0E76304378A5763AAD9E142FEDD3FF7501FA2EC0B49EEFAAA91F5ABCBB4:\ -0FF69687B5BAB2235F7F00BA631ABAA80623F7998C643B2C3CAEE314:\ -272EF1CC3DE16447EBC186209B8BC4B8 - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -79A412224B54CC67A462A02A97E800CF052F39B083F628A6C2F2CFD3BD2028704426EE7ADF4C:\ -1CF78658191C43325399D78B8F88128629FD623ABC455944FED3EEC9:\ -B13E3072909CA56B16C01F27F5DE34A1 - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -AFF10AD6FBD068C28D5E1F7A29149A49D6C29768996FBBB61142D6AD74C9C399A9133F3498D9:\ -FA90065E64D8493DB9C16ADD882D3BB51CA0C0B9C06B3FFBA5E04A2284D3AEF6:\ -95784AE2EAEEDD1AB38C40C810E66EEF - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -7E2060D913D10A1A1C936B7357A65449D590DF4E75DF36E4271F244E4A492A8EEE05475F8834:\ -4F0D8A0D3E14455A155BFFB5FE4ABEC0067C01E943FAE93E81983A0A76EAD0CD:\ -F919E073CE8C9205FD228079DB3F8BB6 - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -C441EEAA8FA7661E14AD10F2B38D1210DA891FC230D298EEF4D9504C4C950B753D9D33E05961:\ -B2A5718C5A08671772836723C357A15BD6FDFAE38EE748ED2E94B5921DCFC1A7:\ -0A8B2DFFB1D0534252D8F20A35FC28B6 - -0000000000000000000000000000000000000000000000000000000000000000000000000000:\ -1B7713FA6B8D47BB8EBFCF6F154788C0A47C5FA71A6EC061AE6D84EEC62649DB8DA7D8651CC8:\ -35758E318556EAF61FCF8B83E9C10F70DA4C1BD85336E087E3A2E72540B83177:\ -926F710B6040C8E755AA2F30F5A1F093 - -[WiderWake4+1-BE] -1234ABCDA0B1C2D31A2B3C4D55667788:0DF79CF5E34C6DCD0596ACEDD702AAD9:\ -1234567898765432ABCDEF0110FEDCBA:BABEFACEF0E1D2C3 - -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000:\ -0987CA45C360D114EB012D9E47459ED88C0B95B927E5B3B6D0A34A13C20A7A3C\ -B9B5A2BBFAA44A1924B40BF469E7CFEAE869CD443717A45F01AFC0A8231F8BE4\ -C6175BEC707A80826A73CCD57A2207C93B2A22C86DF66CB4823F11BF8C60F48C\ -16E1C18B95097CF2B4A762102D13E3F40D230FE8C183303AF32E43A6E4641B5B\ -792CEC33CCC1351E194899D7F6D9B35E921F1ADEB65C103717B3DF71792C4426\ -9DBFD7F7F76678F355ADBC402B1F4BC0AEE90ACC054888596CABC597EF56D8A5\ -2B0CAACB3147E5E450429990BE7D4267412600B4E700FBB3D0D3E5AE542FE5FF\ -46E5FB796080F4E03FEDB133D598CA782ED9353AC777BB7CD457A525A8163D68:\ -F234567898765432ABCDEF0110FEDCBA:CAFEBABEDEADBEEF - -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000:\ -5C2AB1625BC271890886964C53FE7B994896042A9047059316035D4ADAB67AFC\ -C18414F17EF8891D3D49952D31CC01A4BCB98F2A81EB3D82602FD2AF18430681\ -E21DC6ED32E6F2A45FFAACD4BB81898FFFB504DFFA1E8B1953C474AA61FFFA97\ -0BE71A02E9ACC64DE7F2EECD5E7C1965548E290DB3108F79620B3F2E381143D9\ -D5ED2A7EE66C32D697E10ECDE7C7907FB011EB9E9862094B9384490484F3B3FF\ -E4B82648D57D9F22F2410F603BB12C3D22B48A9AA72215BDD62E849755A33B75\ -025252D67C80BA5FF8EAED75B62669428F791D1FA9B39789266E41C2848AF99C\ -90E10A1DAF45A4E1EBBE00C9E1E436D550DBC547BD0818E8E6E580BF911E879D:\ -00000000000000010000000200000003:0000000000000001 - -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000\ -0000000000000000000000000000000000000000000000000000000000000000:\ -C65409182C9BE91884D6DA11EF91971717C3FBBA228B4088E616478FD11C5D74\ -076B8226F824AD7DB07B7F4FC38B8A442BC51F6AA51496911D9DA5E21083A7C3\ -DC45860D0385BFF75404A641581E2F87EC2BE542A2F70A075A10F4A2AE8DCDAD\ -4BD1396978866C9497F4DAAFBAF75A7B8437D09686800C0F819A6E7DE6BAEBF9\ -DBDFB5C4B3493AFB55311E06EFDE37C848CF99C0DC3832D2BE701FE121E1F27C\ -32563D559CA5E2CED8B66E4000FD280C8BE9116E91DE032E8D3C20760AC5FA5F\ -0611667720ADBF0DE5CA79A8DA58D5EF9237C2E722840AA596444BDA66B15AE7\ -C513431DDD22D67ED170ABE6A3E7CCB9EF8D7D5D44897C5916FE0EFAA827E86B\ -0C3FCA6A413F8C7D8BC7735A649AFE06CD64DD4086A6F3E80FE6CD663D61C0D4\ -00BA48E6FFDD1C971DBD4BAF46B5D6502A6EAA6096C48D5DAB484CB9095F5942\ -199B35DDFCEDAB9E573B19417829347087C111D2F87D3FBBA5EA2160055B1F56\ -234254251868D5EADE48F0DF21C1182ECBD201220251B080342B4AAC08C1AE8F\ -9F8410D93E732360ECCBB3D2105C3273CBF4772A4477E95BA924DD2C61AA8719\ -1FF467AF970B323BA61DEC5E08FF012E51F3E6D5EB8599C76E29BCF6B07190E3\ -E37FEFEAF3A1D0B0431A0795F319A1C9DC09500D648481C645F7C268691D465D\ -46BA742B49241BE0E46E7164493F78E523DCEFD1063487133D7D10C408AB5655:\ -771C23C6FE5A4873C5185CFFF61F58EC:59C17CCD08C4D7AB - -107C217F5AF5E15ED2C0AC85FE26742C53A70D8ABBB47DFC319F2E307A3327ED\ -C74ADD0C982C5D438852743889CA15742B5A1272F1FA85889F100D294D3A0C36\ -3F7052CBCF23E9FBA30FC8CB0AD7757FFB40166AF2A1509611AC6EC8438D2FDE\ -66046532C346EA79CB1840BACB9850050368FF5EE1790011244522A20B1C3B30\ -61FEF9DC132E74BDB37E835298E698FDFA60DDB9FE72DE583494621734609855\ -C5C99B58E863A0B3CD6A82BBF59D2F3EE03AC6464AB98EA087D33B978C505E55\ -2210EEFBA7D0F81B7435BD4FB9340C0BC75F7AABC90DE789CE3FF899058CA40B\ -F57502AC6ECE700381443577C6F807809212CE91E70DE4A5272A5FF11E403F9C\ -7CDE160D7A14C13BEA47C8CFEE4E6E6576A7B7A93C0E203D947ED5CD9A124434\ -914A0907B68A5DE1061D537956FC3A3C3E2CFB82641F2C33000361DC665FAA61\ -5EDDA3862DC54B463D5138E2CE68AFD0DF520F999FB0A0CDA0B09455BBD7BDE0\ -ABBE9939479EDBDCD2B9812207400EBD486234FA19ACD819F2DBA6C09F930EC0\ -4665EE163597B69C6B5C13B1026517836BB23679E9C308B1AB119D52DB48682C\ -2776E2524C00233D69435A201BC7E01AAAAE6CECF70F25F26D253AAD23B15DF3\ -79A48EB973434FBBCF807AFC7BB6C5B5CED51F8E8BD47C45A26594F89E32F36B\ -2A8D28791625DAC0993548A49C2011B4CDF4730D7C85C93CCEE16C5926A9D67D:\ -CF329218A3A3B6B08B89B0D9D8889F488B0CE31E621EBFE7EAFC5E45814E82A6\ -A2FBDB762922BEF71F969E5FB2F0C81060AD765E86A4A664B77C4E028535809C\ -3D6B78CBCE1D5D4F9D75D0198D3A7E7BC9F5B24D617821DD5B5386DA2E629FD6\ -0DA58E4810380E18D3D6F056B5117F29067AF8AAE29BC6E591DC2F7D38C3EBC7\ -6760A297D351EE92513D2296F3B2656C7B360717D51BA235B3C6581AE6264FE4\ -0494C2DD159935A7F36F040252DE647C0688B1DAB9853A47DA378A04065B3E72\ -CD57D1C52085C3E7EE99A33BDD305E318184A1E132BB8C673ACEBBCE7DBBB261\ -B66039AB388D3D94DD625058B0B582D1C261A61DFF23D6078E7B4114958AE0E9\ -7FE3F4E9D88289F57C9B31B31CE8F8B8F72EEA086314F9B117F3EAA024393125\ -298BE358444E34BDDF2B4DAE77870588F8C92199AFDB218A15E8D88361483B65\ -DEEBB0C33C0B5E0674CA4296996E756439BA809A180FE192A3ED89BDB5207956\ -1D2E935E5AAABDF04F7C5562BD371C41844CE9A29CEB6E5D3E1781C86689C59D\ -E57276567EE3F08D0EAB63B67DD949B58E47C22162E263B84EFA4EC6534AB0D2\ -2931F5F89B405147B2057BD37C1C93F45BC65EC64019D70F6BA6BC684239E12F\ -E164DECAE9A2640F47E0A1D8C0F4CB70B4C2B1417CF1D4E82CD79599BD4208CB\ -786EC8499954410D58756D21551223987BAA744DCBD4DC1709F392ECD3FF30FC:\ -50E3C199E9D556552E79026253E2E9FD:69EF9A725A8DC78C - -83A1729A280FEEB72DDCFBAB631C322C6A5FC558A49879F144A35FBF8B0636A9\ -CED7D1C96B6E86C406387C67A2395675FA362408F088811AF5EDDC95BB2190BF\ -2E06E34D00BC54058E4BA434F8DD1FC932CF1FA4C06EACD36938631FE67A7EF4\ -7542F6B566F6819C3D77FEF2CA072ED30F8A98D7CDD8D292190C61CF27BCC49D\ -5407E2C84F7B24148AD89ED31ECFF089ADE4DD97D7D23DDB13A980D9CD54759F\ -3B7FC287D63BEAAAD241CF4C3237E4751D5FC96BFF9EDD91514D1A598D5B7056\ -AF1EBAD0F908841D07B0D848316C181BB48212034E5FF696CD3212C605720A6A\ -B7606370BD2996C80FE30E924D2A9AE0D6F432446CC9033740A41A9F749E49BE\ -9E1307F7F1012F13DED442835C6E961F47879D259871E763EBC1F8EAEE02853A\ -5409E6E207C48F16AEE1973F517ACD71990CA26888B71621EC7B4435649E9277\ -1F842DBB87F52C6C0AF908B99050C4C5BD774F40AC9055CA2D869DF5D837A484\ -8C43F70600297A4BFE9D5D91077557C9C67D186473DABD022483CDC96890A8C6\ -AA1411048B646BC3499597BD6AA8BF9BFE2FDCB050CF2F2701C6F06ABFD4FF7D\ -80A6074511E975B628A3C185D76864D198383B69312536831889714CDAF904B8\ -A518B47B5FD89C0D5900A1043BEA33351929710F4ED6F85A0FB03607942C48EA\ -047371A191EEA22447D88C200D5A0D10C62528C83329D0BDCF9122DDA3C01C65:\ -AEC06F99E3408F738F040C16DD934157ADBDD9489B19727298BB426433A5D1F4\ -2CFD9CA4D5C946D31C069DEBC1BD9BCA52FB28BCA8EC84A32218DE629231D46D\ -F052558743E60F3A7042AC71D917C979EFEB8794006F0929B853F5C8D9C1741E\ -44EB8B85880BAD4C013F2047FD2ABCD06708D5A1483E9AE03B48F197D1BBECAA\ -B7C18F7F8332CF797A4E969AA032827D37BC63F49A64644DDDA852FCE8BBF890\ -A0E03DB5EA89CA05B11466A40322E2A1DB398120A8C84C522871357E92F954B8\ -87F86E14841A127E74D102178CCA7F83F2D5B142A9D05A9F224F27E93CB70C33\ -24D7C783FF0D3C475195CCD7535B9631DD1B520924EF14EA0A9BD5EC8380C39A\ -774234E41624D3A7E89FC2051F3EAD8DDB37DC8D9350452887DA9E7585949D6B\ -BA846A6AE0F3F2B469DB68F3EFFB3D52F828D91ED02234A17F4AF974B9DBEC92\ -B11813F0CB8289CA2F4465DD1A6182C3570AAEADCAF50632754986FF2B550780\ -DD069775FCEF49156422A63DA7CCDDA14DDAB1FC0DE5DAC3D8793F605E093B11\ -76407E3EF5B326DD3361BC4AE824B96237E34B67BE42BDBFEB7332D19DF1CFE6\ -ADE42FE5ED3CC3460FE6D1046A38E83B7FFC3BCBD26A49AF2FE5EE09C558D474\ -D0A2EEC22DCCF56BF208D7A1DA1CDBCDEE3A71CFFE3C205A8913D555363E3362\ -31D766F1DD3E0C78931F8D5FA9CBD3213BAB06929A5D9EE04E772646D32832DD:\ -ED507AEA3196727632963F503ED26A50:D5A58B8F626130C7 - -# Checksum format is input:checksum - -# Randomly generated by reference code in RFC 1950 -[Adler32] -:00000001 -35:00360036 -5EC8:01860127 -679496:02F60192 -B32AB23D:04EF01CD -8CA9455795:07770267 -D37EAD077220:0B3B0298 -E2210CD33A1068:0BB90295 -5BB33F53C9D00795:111503D6 -537A0E6291C9DF5E4B:130F0420 -387900E329FB770A78FB:167204AD -0CE184B96C789E7E0A6EEC:207D058F -773870CD456F8797BC61EB73:2547063A -E5FB7B41CDAA1C4FB21D195467:33B00622 -60D382B3CB4341FB141360855BD8:367006F2 -E48EBC5C8730639FFB47C12D238856:41FA0775 -4A25B557982801088B8B4E45AFD7DC0B:30AC065B -A864D51DA8BE2CED6E2498FFB1E56C4EAF:54D809A6 -580E32B4D34F21CC2978076EB3A6D0FCCFC4:47CB092A -5B32E288EE8AA4E866678D65DDF844F5B3CAB1:70720BF7 -B014940A8D58C8550E9E1BAB1E96540ED0AFA6DB:54DA08ED -2A085FB051FD798552D6E1F60DE222AC5F595AAF73:6F340A7E -C1A30E3E8EEB24B5350A75D1D38255FE834CFE6C638D:7D950B59 -A8BE4CC3005FD904F6E58D5DD60AF8AAC3928F2FBB2B45:97790C37 -C6D1E2B2B546867A22ADD3A422F2111ECE6ED49CE85F0ABB:B12A0D68 -A28FC69AE1044743338EAEB08DD876267B9DE4780182568D82:A7F70C7D -5C575A7D25204220C994D3E130B48E14650477D64FE646890033:8F750AB6 -C3AEDA730EBFBFE54DCE695AD46CA06C4D2D197680C4C42645D60E:D2A40DBA -D28292D1255B080A66BE9CD5C213844C2564DB843A95416E5A8DC215:BE1F0CA8 -A8E22320693BCB2368267AC0F4D448825F36A080CA2C6DFD67DA66D124:CFAD0E6B - -41BA45D14C618EBE7C0AE0150F1D18EA457E54164DD6E3FE8227EC874D65A085A5BC9B06\ -C5399B4C5D47A5D639B9F2E1C1211C46DDD56728D2269C7FBC1E9EA82B1DB5FE2974AF83\ -D33F5E7039E3C44DFCD9359492DE314514068E483EAF1637ABD215117D53755229962A37\ -B91176170EFD1AA0DC751B53059D32DD4FAB3C0AAF52375854B9FFD2BBB303CCF617874B\ -60CA368AF6AA6C149BABF22885F443F0D2870EE9A8E5E429BC00B7AA0942025838D8ED14\ -89114D4BBA666678BCB6C75B66902559186BA330ED378EA5905DC8B41C474ACAF54BF191\ -A0B20FCAE96DABAD046241C58324A6C1CCA5F50D1FC4C35FD565B53693D0FBD874D5959C\ -8327CCAFF79760FCEDF5C0CDE1721054B443FDE8D771B5621A9AFB0F935409F5C63638FA\ -AFB99BD5A3519408A30452A5BFF41AA62DD077AEF418942F076F730D10277ECDA8C1A71A\ -4E16FDA1F61FE45660AA554E530D31562818EC961EB116AD5161687A23B8DAD5E0F016BD\ -7AE0AB63E710B20AFAE8928C616292D5DF207042617BE830401C30A49FF8308D9060AB7E\ -124417B139FAA303AD73C7B102DF81D763CD239C5EEF3A5FB60C374216263A48B68C9CC0\ -2121CF90AE72F906BE21C87315FD88A24237215A725992F4B18855D2217A4D033F459744\ -0567736AE9BCCA4A7187479399B03E75CA828736614209FE0D3F71A9C90CA6310BBBF387\ -F983BE221729763B290C986B8B43BEBE7F3AF9A895BA29663C4B204935C0F7182549E96D\ -96252DA545ED4C54EEE6C1A174AC74CE9C22DF29159F8EB12771CB8396E6F07D0FC43EAF\ -930C0AF228D53527235637E5408A234B785A9E2CC8A30C7E27E1FC55FE6FAB0B3465616F\ -5EFC59B1B52F2FE8A4BCEA7EE470AC47E148165CF025B99808494865D5FFE9263150821C\ -10BD916423101EE3B8640CFAA74A4EEBC86349DB8C8726ECFD1F4B603E6755FFA0586304\ -196A11EFDB7F892B5C7E0EF1A41E99ED60ABE3402D5017240869A26F0447017A31392293\ -2FFA53E56BE913A0EA465A95E0370C0B5A8418733BCC2FD7D294F23C474E3C3D331E2B7F\ -42051E7BAF2026295B56837F497865D4D60B02EB2E76058756D2E306519046B6A3B71522\ -36D73B2C698A8F0155C4E8F1D634D5737C3D7005B5557E2FDF1EC77B2B16239B5C21D105\ -AF86B8BE5BFBF52E00D63349568CBE25E6735BABF057E3B01CAB9520D5D03D2C4F7CEDBB\ -7C6FE4943B95B27CECF671AEA54B8740074445D4F14C17C9B9A12E581B559CB17149A131\ -613FD35ADF9ADE4DE981DD01E45262002B480B2FD524E39B307BD5A6D1CF9178B59B98F2\ -B43EA4CDED27513AAC550E1754DD6452A9434BB59B1186F9DA61E174D6610C2B286AECDB\ -AE9E6CBD4D2BFCABE0B83627A13F87288ABE927A891E372163A87A437CD1F4AFC91A940F\ -F55F5DC6CFA5AADF689946192050BE7C:9DA7EB84 - -# Randomly generated by reference code in RFC 2440 -[CRC24] -:B704CE -A6:47CC72 -E5B0:5AB692 -C52385:9B469A -8E69FB27:2B8005 -4A87C90369:452CCE -DC10A8E4AC5D:60375E -6B48125403AF14:D8948C -0BDE9946163348C4:6DC026 -384EB1EC12064AED51:29B27C -AF4F16B80F0AC808B595:1158E2 -0C571D708F3CB0A234196C:24D7C1 -7FE77AEAD433AD02533EFEFD:E25DC7 -D990831F658D306DEF60A10D5C:E0C845 -826CE458F0983CB46E68BA73D27A:BB86BD -995BFA6433F4185E76DC67F6D30C35:AEC6AB -C7688868D06251C906A919F011ED7FFE:B9B9EF -AA1E9FECA8E4FE3CE31928FC262A4015B8:ED74AD -5273E2B97EC0AB37B1F3004C1BF69E7A0C77:BE8A43 -2F68AA285719E8F8B6C1C01227EC83F2C6ABCB:A852E2 -CFD75FCCDAF1980008AD554AC7FAEE2E60317121:D6F9B5 -29AD5BCF5F4FD710F0CD859DF62AD678F66DEFC0FF:3C15F4 -C70CE8FB338D808338FA51A0125FA9537206EB6961C9:A210AE -141240BD7DFAF34FB8AA5ED107A899AE8CC29201B4CF32:822081 -10C4F0E357A90F7FAC078282A92E9E10E347D356199427B9:D7C1A5 -A982A5BEB78D751C6999B8F487F2A186CE587A0B558F3BD39D:1AC0DF -D6AA6D70B1E5DC2985D0952FCCDB6227F1AEB01CE24B8B2C2F3B:6BF464 -C95155A2CB524B40F1F7DE80D2E0718406B309FE818AF6580B88EC:BB641B -6E68D0055FA2B284183000188682F36D31B26F8D04950E381F965DBE:C62516 -260D0ECAA0E8E9F595C5AC8E1D7EEA2DA7603A96BF83251B3122C80D07:876037 -80E559D244C4188ED223ACF70E358CDE3110B6161F70C3289266873E7802:B8184D -637C9217C88420128CB3CACFF911FAAA2257CB093715B882AE7B708E2EFE46:E39818 - -D2272C22FDED6F8F1012F230FD29B56622D8B25864101E801EA80AD0038577D043F299B2\ -CFF639EFF4E083808D8C9A11DA0C6BDE91B58A6E1BD6F6E17D860E4860493EC7B90D3884\ -73A85332E39DF103D0133B7B3CE83BB88DE9333D80C09837B882B231DD2D1C33676BFD77\ -D5596B6AD4BDA0BA63150310FED783496BF0E10107889E10A95D81CDEC48C06319492BB6\ -AD17EC9D13A29294EE578377D772377E18727C38D96952322791143F63D4B8B849808448\ -400D2DF85E9722BD8E766A4A33F53F77F2DFD3BDF8AF16153886C9CC7B47D62CF957448E\ -326DD9E3E01C558F1D68230EF8D0B8F8D9CC427C94EAB99CB5ADBA109ECF52604CE483D2\ -CFCB12A11486900BEE7A78B9FDEDEE60E00DE69703C2AC0756D3A0D74A155BB6FAE5C78A\ -CA3137FE28928AD124742449F9B874E8C10B159C4E508771B6848F9A71DC4F16F42D8EAD\ -F4B0ACDC38D83A9F1A1E73A6D46C437A82B575D287AA0339F3A3390F9DA40897F6C9EF94\ -F4816234B9C92F9FD7D0E4D29F21D97A1465EC5341516F8E7614190D9CCA97DB96AAF91F\ -EA4420DAE08C43289775FA96156F8DCD8CD02B34C01297A79E2CD34EB211F3464463D33B\ -07DB91519C4C53AE9A8911E5740CB564F628344203A830356E106C45DAE9BD29CFEC398D\ -D7DA04FE67CE1A7DBCB8B0B35373DD241690A391899940833F570972AB9F49726DEB55B9\ -5F60173E7B32E81BB67B9141826862646F96BCB8331A8458615C2614076F5FA8C860DAFF\ -2684570384716CACBB375813E2331F809C4A7BBC3134858E69032814812D90BA2AD8CFE2\ -C5DDF24B8C802F857CC424842A1B9340A00A6824C6CCA9374DF99A882401B466C72BC690\ -2E467C9932061A27FA3DD75253DEE2F9FED87FC9E5963B1674628B3D227F2B476DA8CE3B\ -CE3C845B582A51D46D975A86D0C347A0ABED6AD55E24941FED982ED0BD92A01097E02ECD\ -E37F00442050B8F5FC22C295B4CA3EB66CB4A424E490CEAD354B263F2E0EDD0DA0D6BA6E\ -7F0CD84C13667958F936FF18938C657B0CF0951A554C06934C132030FABA32C7B038266A\ -91DADC4C5D65EFF7EBC76E16969D5A7BF0FAB573295CEB76C8623A79922EEA61B9C48E40\ -2AE547381D412F5C2C4590452A2651921E3BA8C5E3AE5313E1B61D83624DF2DB092834C2\ -9185DE44355B2D5E4B90AA81769040AAB8CF59F91776FFA86A7AFB78BA67BF90F71C9996\ -296C497ACC2AAAFCF6DF4BB59D1657C97D189E4CF4C14F834E562F55D0A2D2A0B3576E89\ -6A7F6D567BB78B8956AE4924FB573D509A5BAE3C75065D76EE5ED2B5D4AF0B55F17A4406\ -BCF38DC7302D8E68C3A34A5211F06BBB555525BA3312E4BFDA85CAD2BCD5F08C45010D51\ -00A0AC4679B54E518DE2FDAFCA039AF8E02DD713813A91292FE6CFAFA1E92712C2652586\ -1D3C48D2A0253AFD14A952871052130C:97E8E2 - -# Randomly generated by reference code in RFC 1952 -[CRC32] -:00000000 -AB:930695ED -9112:DA3AD8EC -7814EE:CCBFF8D0 -B833E34A:3CF5EA01 -E82355DFC9:E26E344C -0AE1C79DBDCA:31666AED -E03ABB0006E852:4B755129 -6A9F7E0C99AB3BED:3E3D892D -901D636199E6900216:A627CC4B -B56B114E357B346E3248:83845B2C -9F85F4ED02899207CE7EDC:CF52BD20 -37548C6B4F99996A9E243790:90D9C1A6 -183C1DF8F8808870F6DA2A3FB1:079BD60D -6213908DA80D4FB2DF29ED8737DC:994C68CD -8852141FB4405E0C3CC6A14EAE64D6:256409AF -B8BD524FF91CD2699195636E7035B241:AE189D30 -F1BA35E6503D50A6DACC2B3B3038B6261C:130A8886 -E3F51AA78DFE8C2083C0721BC280EDA90F4E:A10398A4 -BBEF661E8064936B079B7D398137C7DF7E9B50:67A1B46A -172949BC62843B24357BB0BE815A231E076011DE:B1FC384E -B81EDF9309B0FEAFD9D3C33DE2AC278A39604A5F5A:4F204EF1 -8B93D005AC5CB91F7422B1BB110070442C9B9D3DFED3:F2E02E35 -C2AAA8A9116EF67071A7B89BD930219A0D93B4D429222B:9DD0E0B0 -7EABAB1422497A99C6B99F91F6E69DE1915A3A87DD71E637:72EC609E -CD3FCB8FFC0DD5E163E8B6CD76A39C2804BBE91821D780576E:ECC18144 -DA267A57335B8E73F77443B2C74596851407D4C5122F1B22B055:A0B5C467 -EFD26D48E020D6C8014ED651A47ECB61142BD1E10A0EA69D41ADA5:74E5B3B7 -3A2A70233F5A5BFAFB76A58B9131C877B6C1691F05D7B79AA7F1AB28:E84AA432 -21D411056F80656AD1077C1F785F4C44A8BB8C87FE5DFE14469890B52B:CA157CA5 - -# 1K of random bytes -ECE01CE672A42EC6007EF3FD6298DD8554BD3D01BE8C8D9A945E150F087A1567BB17266E\ -EDF2DE3BE79C0A14ACA1E02C247C4C5E126C941F0F123546BF6AA6B15C1639215C38F79C\ -1E441E8AF2F812ECFC89F2F9A358AF8D65F29A63AA49F42028B232F6AF3EBCB80E2CADC0\ -07A62879A065B0253239468043504C081FD6B5FBE1184F69C4D157883BC25E9D5985C0DD\ -0DF137D0AF6278B07CD9935F5397DD98FF1DDF2F47485CDDF642ACC901174F664D218770\ -D1C05246FE7E51B5435626A55C41900DD97663951FDF2EFC18F3087C24FDF23603676D73\ -2B7BE9A00E55DEE023077196114D9F516BBA13C93DFF4930F045484193B2FC6D41B7C9FC\ -1C6F362232ECB643CB5F74B637DA845D9510B881049FB651A47D1439D187020A89F48581\ -5D683509EF570023DD9D6E60DABBB244E7B94D56D2FE9E37D3ECD2CBC4EED7FD9840FFA5\ -47B44C06AF2102BEB08616C22FB45994372CCB9EF1AE5FCEBEBC7DB1F0A74EA260A50C32\ -32A36084CAE7A95FC54A61CC7B022096DA821428D9DD21A0F108A5885AFB11D777ABCD63\ -62FE011CDB7E2B36FC943C3548AC643357AE81917A7FB508202255727707E87B801C5594\ -3769152ECC6A8BD98D4ED4CD74D823D4176A66D3B059D711A58F7BA890E93933E81AA735\ -27FA1B7044406C8A38F14C19936C26A09FB1F4C380210E55A55A03557D72EB7EF1D9FC77\ -45817BDF4A328CAF340E7F6AF05182C08DA2165806263A28B0748FB5E33AEB8ADB4D4C95\ -5C998CA82998C26049CC549F77A77756A08986A2AE5C84E0C1EA8A7E9EA9E44F653A0C90\ -FD5BF615AA8F7E5398063BCE72E1EE15A32A7A96EFCB6D5365FA7E33CEA17CF0CA310DA1\ -67C6EEA1494A4C581420AEC2489ACE5F67F92F92D8D871B96F6583C7619E156495828C9A\ -3A08A33FCB4980522E2BCD7A9D5994C841A7E684F132BF8AEF668C1045BCED0C6C7E5B0D\ -FC46E24190B2A28EF0C34B5C14E16D36BDC3A87089297360A47D6B6121475274128D9C9E\ -BB10CD0220A1BE87A8A015DFACF19578075572836B4D2E54190FD709D95636BBBDFD2420\ -F893AF11AB4B33F489EB2C884AC4EF3505072162663698361A1FD5E9980236481A23EEC5\ -10EEE798AD558ECA4067C363B5E892A489A9913DB71506241C2B743F2402DF8D75F07F55\ -1B9E2CEF1ED9667BA421E658ACB9B10FF4531C0174C34F17D96F869DE142FE6A56EE1DDC\ -F0FB3CF47E856E3718ECEEBEAC912CD0A057C81C46F806AC8814F3F66B29B2433409129B\ -23224FFAC15ED1F21FEA148C41DE6B6F6157251B60B4A5E3CE91961EC36618BED42759B7\ -0403EEF65388F0E5AA28F305B48E66DE1E21D0891D64EBEF281DE976FA877324DDBCB104\ -02926EF8B6D0F7B73C55759E8B35756B393F12190E5EB0495DE818334F3459B6286D7FF6\ -D8C1D4BD9C3086F1FDA0ECD33C4FFAFF:72D73FE9 - -# MARKER: Hash Functions -# Hash function format is input:hash - -[BMW-512] -:\ -6A725655C42BC8A2A20549DD5A233A6A2BEB01616975851FD122504E604B46AF\ -7D96697D0B6333DB1D1709D6DF328D2A6C786551B0CCE2255E8C7332B4819C0E - -CC:\ -0309CD7A44E6022671E84C43CDB92F613931D1C6B71467C039034B1263C2BF92\ -203E27604BC53FCEA9C2DF3B10862C9B6FB6E8C617754EF49A2B80F51C74ACD3 - -41FB:\ -1FD4AC6551D39EF27B5F1F886D7A3A72EC60E0AE2966649C3701952F29B2DBF8\ -58AB6E18101D038BBF019299C7FE5F62A4BC3973E089EF929AAF25B9A8BB7D39 - -1F877C:\ -8987D458CF27D4C1B1DDD115FE5C15A67AF431561812B1D2028C3AF0A52FB8F7\ -334205CBE003CEAB1446261550870EEA6921C2315D750F9C49AD7877590A9BDE - -C1ECFDFC:\ -5A443348F0B3330CBA5060B16EF21D5597ECDD597603B3E86999099C5595BE38\ -F726D10090472DAF5EA77315B6BA62B2507A7C08A1B6786DCB30148DD1517882 - -21F134AC57:\ -C1ABFEF8AC91FDC20900045A226EA8D5FF2E3E5D0F00CC9194D19F6546075558\ -7F72492E5D5F5A30AE63F95E9DFEE6F07051A8E9856E701451BE1CC58D320E3D - -C6F50BB74E29:\ -B1EC7BD5A91DE2480BEE26C93A84E38030E2B2BC469B7D4A8D91D32CCB889805\ -436739DCB5A14B1D4C0811EE2A0D9A667C0FBA00F48800F39AEBE8D7DA7EDF1C - -119713CC83EEEF:\ -8652D6C03E8B42F46D96E2357DE252C9B4CC483C32ABCADFECED70A07C8E1C8B\ -637A6FA1E278C8BDF651D6FDD8A29A48DAA8ACA71C2277F709A83A80C62C5DA5 - -4A4F202484512526:\ -86E05AB43DEC6C078B18369AC5485B4FAFCA9C55C36E736BFB08E169A2667C67\ -C14A7D0409FC735B18618E84483E1B39DA47A41E48915096A8DEBACA7A148A03 - -1F66AB4185ED9B6375:\ -E072E9D923E334A5C0E129E46D4EE6E5FA2A1494F6CFC4D1498B80470A0B920F\ -2B2D56575A771D8271205D973F23A8DA0FCD3DE5E569269B50B3BD823DC8D955 - -EED7422227613B6F53C9:\ -6D8B04C1DAB6BEACDF7410B9FDBC96E74D9FB11A949DD164C817BDF4ED2DE978\ -B61ADABF27BE4FB8DDFE6B9AADEF8038C217BC56B17C78D19A80922CF84DF8F5 - -EAEED5CDFFD89DECE455F1:\ -66022F69F321D34378271556AD6793DEE887BB6DCD07344CB0C9F9FD8F6C9080\ -F296B99D7D42A6B4242A84889F41894258419CE871D54F21D78AD5BD7FC81A7C - -5BE43C90F22902E4FE8ED2D3:\ -BF48CFBDF5876FF02D095482F4DB28693A3D09B9FCE1DD25BDDB2F80D1100AA8\ -1D166E37421A3281B9F25A981DCD6741272E3F4E596B5003FD86F85C9C31BB92 - -A746273228122F381C3B46E4F1:\ -99F9C27A26186098430839356FD651A6C203E39ADC06EFB3A6C35C3265FE37F7\ -CD3B4EE520218D820F3189B44341EAA6CD753A472A8FDFD7386CB5E3A1D9DBB7 - -3C5871CD619C69A63B540EB5A625:\ -2630080B86DC7DBF5AC325F645B94E0A5FA967913AE02BCE4B762DC03E8DAC4B\ -463A881DEA606FCCD2767F6044040DFACFCB774E19FBDBB8CE89AF937077EC0C - -FA22874BCC068879E8EF11A69F0722:\ -9828CAC020097A5A74E5817EC37034DC0346F07E0CC17AC03E386C7045B6977B\ -9B276EEE6C591E970D0D1F2402515BB63E520C6737B4131BFD114E8D58B4F035 - -52A608AB21CCDD8A4457A57EDE782176:\ -7BE3BD61CECEE09EF1160C1CF7DBCF94F5E1BEE3A30F2B27B0580C3BAC5D2592\ -8291372CE81237B867D4CA09868A0CC7984F2CFA4EF14479761E2EA58FB78BA6 - -82E192E4043DDCD12ECF52969D0F807EED:\ -68A2B3C34D5E023F3BCA7508BB0B5E9BDA5375E245FA394D2CF508A03B48AF97\ -005B3A4DBFFC0D38CA4416ADF504745F94FE9B0D3F5CE334DA9805F1F3ECC978 - -75683DCB556140C522543BB6E9098B21A21E:\ -345692802192594F5516D2B22215DECB648E6611B9A24D159FD2978BF712846F\ -1FCB61F1E5A5AC25832D7E7BBCC0D0FF2E55EC2C9C90EC1E0078697117ADCFAD - -06E4EFE45035E61FAAF4287B4D8D1F12CA97E5:\ -3E3CBB918CF27C6A73D0145CDD3A8F159C56AEF938F69884AC6FC8C3207593FC\ -8D3E712ADFF0CE52FEAB8B693D8933D87DCF8A3F58BE330B4B5DF14EE3D635FA - -E26193989D06568FE688E75540AEA06747D9F851:\ -D1C6A2F12589D77610EC236DB751DCAFEF5A9DFEEA63E307DE01FB4B852DC577\ -6CD59CC6DC2369584B9DDB214BDDF5D5C89D0D1EAC9FB8F7C0F041452CBC11F7 - -D8DC8FDEFBDCE9D44E4CBAFE78447BAE3B5436102A:\ -64659D7B159C8F276DB1295039EB6FE2435405DC1A81BF4575B9C27A2C41208A\ -0BD331F34A60DFF31AD29F8730C0786ABDEE4ABC767092D448CEA3F97C7A6976 - -57085FD7E14216AB102D8317B0CB338A786D5FC32D8F:\ -6CEA91D04E9D4A3C994BE9BB24FEFAF967B4DE36D2566F368C04CC2ED9FAF736\ -DB71170C207F31A7F08B7B8D634E7C38FD591A38948DE4ABE70CC64F3A2EE108 - -A05404DF5DBB57697E2C16FA29DEFAC8AB3560D6126FA0:\ -5B5CDE06BF8B5AE80A67D96306AC7E96AD15575195B269378EA65C6F23DFF53E\ -A4E02639F3EC61D640D3D9B2776DEF2FBB3B8AFA1FCA3AA55BB5208788671770 - -AECBB02759F7433D6FCB06963C74061CD83B5B3FFA6F13C6:\ -0374C843999A2898BD79A0CC8DFB924E7BB9E5CCAECDD151B502C1A234F1D369\ -1F3CE29D0BC6F044A2CCA8174F7537078F3FF0CA73E8CF1D2040D25D1AF3295D - -AAFDC9243D3D4A096558A360CC27C8D862F0BE73DB5E88AA55:\ -7F1E7A420B60E6B42622E4B5E2900D6CF01230C962565A6F7CB8270C8CBCB4E4\ -77D171E183B3C856FCE7369FD25D5E285E21777E3C738090215D97E25ADF1FF6 - -7BC84867F6F9E9FDC3E1046CAE3A52C77ED485860EE260E30B15:\ -52A8179F441682C0CCF7F781C0CB905442ED82CA60ABED14BF032DBC5202CCE9\ -1A66369424DEC0E4C45AC16F156A9AC7982FA4A7AE941B4F24F8DA7A4FEEC4C7 - -FAC523575A99EC48279A7A459E98FF901918A475034327EFB55843:\ -50EC175DC458FB3DED1E3AF7CA87DD6CD08FD89B0BA403EF666E98787D3E38CA\ -48946DB41F38C8FDFB82FD0AA71B08D9069E7136775D22E0583BDA3D8228D3DC - -0F8B2D8FCFD9D68CFFC17CCFB117709B53D26462A3F346FB7C79B85E:\ -47BE44B33C90FD2EC18B839C5A60175EB76DF0A8A587D6EF4A6712868CADBCC5\ -4AC88BE47987F7A4875C16C31B8A6D691939C007B6724139187E76413716F226 - -A963C3E895FF5A0BE4824400518D81412F875FA50521E26E85EAC90C04:\ -E0F91DA11320E76952D42C897503DDF79670C841DFD059AD40F41D9C5BAE0526\ -27887F5EF09A214AB6F2E5425AA1C634C29C533C596B1BE95B1D39EA06335694 - -03A18688B10CC0EDF83ADF0A84808A9718383C4070C6C4F295098699AC2C:\ -0CF4B313265173B60D2F99B87E81E76C10E855A0F67FD5F2D61216CAEF046A86\ -BC2B7E907412C5499A162BD1D019729653F2A80969A534776494A00C8193B8EE - -84FB51B517DF6C5ACCB5D022F8F28DA09B10232D42320FFC32DBECC3835B29:\ -B3483C99D6B488DC2E34F5024BBEE33B55D9A66B7EFE39657748650AC4301BA6\ -DC64A3E3E8C15945575DA963D29399BA0B1AC3A6CECF549E132A5E2DB3B5BBE7 - -9F2FCC7C90DE090D6B87CD7E9718C1EA6CB21118FC2D5DE9F97E5DB6AC1E9C10:\ -DA79A14B066580178121D3F60E0D3370F667A297FD9C0435CF8C65D35BB3B4AA\ -894AF7946F65CCAA5F7D9FC199CBCA9BE3FBFA958C0DABC992A50DB2236ED51C - -DE8F1B3FAA4B7040ED4563C3B8E598253178E87E4D0DF75E4FF2F2DEDD5A0BE0\ -46:\ -4A7873D42769DA269B9869E0DFD5695AE343DBD69FF8A68D93542B5EBBE79480\ -6B2D84ADC69DEAA58F54008164FB3E2AB02577865FBDEA88A8BE7D23EAA9441C - -62F154EC394D0BC757D045C798C8B87A00E0655D0481A7D2D9FB58D93AEDC676\ -B5A0:\ -CF42B5F7ABF540B69018484583A7B1CD1A38064C6E4208CE0ACEE27B7EE74CCE\ -C544FB2FA1921E95B5CACC12546D35C628ECA4C7053F37FD236E63346D474D00 - -B2DCFE9FF19E2B23CE7DA2A4207D3E5EC7C6112A8A22AEC9675A886378E14E5B\ -FBAD4E:\ -9F955DF8BAA1A5ECF0BDFD408002B1EAC93B89C8AEDFABB9E5239D6D1AD1C129\ -9901E96C822BE23207570E1EAE9CB82429899158313AF79FBB06EA3915436F7A - -47F5697AC8C31409C0868827347A613A3562041C633CF1F1F86865A576E02835\ -ED2C2492:\ -0FD1772A21CF32F0D43C00DF44754096704B0DBBC3B323500C3B231C7FC47B8F\ -35E8F10017F4B1061E82E5CC1D823014DCD54AD7F3588614E2149020CD8989B4 - -512A6D292E67ECB2FE486BFE92660953A75484FF4C4F2ECA2B0AF0EDCDD4339C\ -6B2EE4E542:\ -41D2D44C32A90B30ACE1C7F6E4AF5C3DC3ABDB1AC7365262C56CB1AE6DB6B5D4\ -2AD2BCFD9228D9DFFD5664756E326E9E88D053FD3A3D252211463B7171F5CB5C - -973CF2B4DCF0BFA872B41194CB05BB4E16760A1840D8343301802576197EC19E\ -2A1493D8F4FB:\ -4AF72DFCF27B0CDA02F35AAD1A90C67378B63523E80DD50A2AB512F2CFF2969F\ -A48DD8EDDE239F6BD5484D98FB26F0757831D7AFAAB5A21DBADB1C1B5BEA2336 - -80BEEBCD2E3F8A9451D4499961C9731AE667CDC24EA020CE3B9AA4BBC0A7F79E\ -30A934467DA4B0:\ -7161CDE092AE657F61BFA5957B5BADB16712A173EADEA014F622BA0CCF8B4BF9\ -E0E87B92032A5E1EF762FC7B734BD3B2AA526303C7EDE369885CE63DA6DD6DAE - -7ABAA12EC2A7347674E444140AE0FB659D08E1C66DECD8D6EAE925FA451D65F3\ -C0308E29446B8ED3:\ -52E566F481EBA7268B1C9440CCCC29EDFA7E03B4D5BE7689D9E6B9C0E097FC07\ -E378D7F189A144A31A7CA4280B3D566732C3DF2213A534B37D19A1AEFC332E90 - -C88DEE9927679B8AF422ABCBACF283B904FF31E1CAC58C7819809F65D5807D46\ -723B20F67BA610C2B7:\ -CFB6068414E7ABFBA715292306824859C4A8034964CC77C5DB1208FAED6274C3\ -7196850F81071E904BDA8CD1ECE8D66ACAB354EC5802846CA42A217941186AC3 - -01E43FE350FCEC450EC9B102053E6B5D56E09896E0DDD9074FE138E603821027\ -0C834CE6EADC2BB86BF6:\ -7CBE1D832F1530C7527FB3D8BB8F0BF7A2AF523A507EFE68AFDD1DCDE2852DD7\ -89AE87BA2DE8C6CE85AA0D6FD8EB2C4C0DC9E489A1D10105B56D4FFB1260EC0C - -337023370A48B62EE43546F17C4EF2BF8D7ECD1D49F90BAB604B839C2E6E5BD2\ -1540D29BA27AB8E309A4B7:\ -2B4F480C3799B7FF87DC0DBE2DC4348E2D42522EE803D89165002E8810734373\ -7B8605909795397DCA7442CD95799B91EAAB9993641F0578D4C86C7D01F564AD - -6892540F964C8C74BD2DB02C0AD884510CB38AFD4438AF31FC912756F3EFEC6B\ -32B58EBC38FC2A6B913596A8:\ -1556B21828CD8C1F98BFCC63415D4A4F9A916403EE0D65ACAB7AF2280FFA044F\ -5A0B773B7B6210C2D390A17464A791F52398264714FA89F990B03E810155BEF4 - -F5961DFD2B1FFFFDA4FFBF30560C165BFEDAB8CE0BE525845DEB8DC61004B7DB\ -38467205F5DCFB34A2ACFE96C0:\ -C17C6DD9964329D4F1AB10C57967E985A15EDF1DD3DEF79436198459A4D33136\ -7FADE1D20967BF3EAB50A8FBB892F0E71B0BAB981BB1D3EC64EBAB88447A66E9 - -CA061A2EB6CEED8881CE2057172D869D73A1951E63D57261384B80CEB5451E77\ -B06CF0F5A0EA15CA907EE1C27EBA:\ -81B3181C9610CA1EB3359A05329F597A7EFB663B86B413246C0755583B04B0D8\ -B266AD0343AD5813195DBFEDD031AE5CECE6DBA846803CB1C1787B838D66F295 - -1743A77251D69242750C4F1140532CD3C33F9B5CCDF7514E8584D4A5F9FBD730\ -BCF84D0D4726364B9BF95AB251D9BB:\ -48D1EBCCBCEE10E72A9AEE1785A2E97D0612BA7443152514A6F59A232F6D1A17\ -EC4415044A946DF2073FB1B979501B24ECE23C380EA1246C3F09B024C53D83EC - -D8FABA1F5194C4DB5F176FABFFF856924EF627A37CD08CF55608BBA8F1E324D7\ -C7F157298EABC4DCE7D89CE5162499F9:\ -6470A4A9540F4B9DEBBAECF5A95D05AFA9646FAC17B57944602F37740BBC3FA3\ -1C8F1D199013D15D4227209F89C333A493C4D83C8AEB186A9394619EDD1EB8DA - -BE9684BE70340860373C9C482BA517E899FC81BAAA12E5C6D7727975D1D41BA8\ -BEF788CDB5CF4606C9C1C7F61AED59F97D:\ -4446970CCDF75D54F79CCB3881A1ACA24D6CA8DEFBF0C248FD6E477223F2758B\ -9369B8140EE48BD0229B097F514E7A688506A890605C816714279105BEFDF112 - -7E15D2B9EA74CA60F66C8DFAB377D9198B7B16DEB6A1BA0EA3C7EE2042F89D37\ -86E779CF053C77785AA9E692F821F14A7F51:\ -4FEB1F07404D63A06BCDB2BCC319480CA02BEB7981972A092AF5C27001042EF6\ -3500955E57F5C3C54E0E964BD94ABC50BBAAC74F635E522D9ACF6740F26FC4CC - -9A219BE43713BD578015E9FDA66C0F2D83CAC563B776AB9F38F3E4F7EF229CB4\ -43304FBA401EFB2BDBD7ECE939102298651C86:\ -DE3F70F58116EF74466997946469929B5283B0289513AAF1F8DF770AEA21D9E1\ -308A5D1A30CF3912F4351BA6B1ADC4C2B35185C6479E5D160D678EE34BFC6CE5 - -C8F2B693BD0D75EF99CAEBDC22ADF4088A95A3542F637203E283BBC3268780E7\ -87D68D28CC3897452F6A22AA8573CCEBF245972A:\ -89C23F143C74B2A3EA4E1B52765B01CD38725DD432813816CFEDCDEF7090C01D\ -9964DAF8F0EEC99A23B20F1502CC8CB41F77CD35D1E1B1CCFFD96821525705E2 - -EC0F99711016C6A2A07AD80D16427506CE6F441059FD269442BAAA28C6CA037B\ -22EEAC49D5D894C0BF66219F2C08E9D0E8AB21DE52:\ -770FDA46E0435A36A9F4B9E81BB9945CD82F05ECCD6B46DAD48FF92825E2B4F5\ -D21608AE6B945AFAC4650F2408168D3538488FC20A8447FD01EC2DFDF55F8F36 - -0DC45181337CA32A8222FE7A3BF42FC9F89744259CFF653504D6051FE84B1A7F\ -FD20CB47D4696CE212A686BB9BE9A8AB1C697B6D6A33:\ -6FD2A68D85527B6A15F4E7499FF2C6028C74DE9CD2AD0837DFA4FDF64FEC3164\ -6BB89A80125F27D244718C635B5997D7CF014B5ED30A7CC5547C6C24C188B223 - -DE286BA4206E8B005714F80FB1CDFAEBDE91D29F84603E4A3EBC04686F99A46C\ -9E880B96C574825582E8812A26E5A857FFC6579F63742F:\ -0AE21935400D5DEFDB036321F900999BC9AFD61703510168190CC8D36D2BE4F4\ -9DE95C902C286DBAA91F516D231EC4D2AC55425D05FCDEDD211E67A3EFE51E12 - -EEBCC18057252CBF3F9C070F1A73213356D5D4BC19AC2A411EC8CDEEE7A571E2\ -E20EAF61FD0C33A0FFEB297DDB77A97F0A415347DB66BCAF:\ -24DCD83A82A389C7DCBDE997F9F1D0A52A64566699E5D8B8CDBFF0F88A427AAE\ -7C6BBB419F013B8CFC780D47101616BAF0B2C41CFDDD24BAF46610364FC82A03 - -416B5CDC9FE951BD361BD7ABFC120A5054758EBA88FDD68FD84E39D3B09AC254\ -97D36B43CBE7B85A6A3CEBDA8DB4E5549C3EE51BB6FCB6AC1E:\ -DD99BE3D8FB3C4A307E6ADFB18B638904CC12A033D61D1095DDFDC0F6FC62AE5\ -27CC5AF45084D2BE4A416E1BDED2E855650A9CEC6FE618B0856563FA1FDDFF38 - -5C5FAF66F32E0F8311C32E8DA8284A4ED60891A5A7E50FB2956B3CBAA79FC66C\ -A376460E100415401FC2B8518C64502F187EA14BFC9503759705:\ -359D189247A6B503F66FBA5CCE4BEBC7F6551239301BFCC608CFCCF8E9896305\ -5A6E6DD96F6813605B486403BB943A747EDE6C9F8AC586ED6E73DD4D4DC0296E - -7167E1E02BE1A7CA69D788666F823AE4EEF39271F3C26A5CF7CEE05BCA831610\ -66DC2E217B330DF821103799DF6D74810EED363ADC4AB99F36046A:\ -347E5762FA00809092ED5E660E399CF51EA861687AF8AD6D4EA50BE431764442\ -5000D1B33D9F3B05D7A961E2B385C4AF3ED5B5E767E4580C931747E5D3005CC8 - -2FDA311DBBA27321C5329510FAE6948F03210B76D43E7448D1689A063877B6D1\ -4C4F6D0EAA96C150051371F7DD8A4119F7DA5C483CC3E6723C01FB7D:\ -710B3E6D37198D55FE6DF676CF727F982E2B24E38456627D711E18C789AB9D99\ -6276C12F9605A567D1B7FA524296DB2E53D4DAC2F6089874CA099EBBB10E2071 - -95D1474A5AAB5D2422ACA6E481187833A6212BD2D0F91451A67DD786DFC91DFE\ -D51B35F47E1DEB8A8AB4B9CB67B70179CC26F553AE7B569969CE151B8D:\ -9E8D69EEDAEEE8F426D478B39693767D1B28CAC4CB47CD1416C73F82E29EBE06\ -2FBC41AD10A398F4EF4C124A70D96384EC5DBD2BE869DD84C9BA6808BAE6368F - -C71BD7941F41DF044A2927A8FF55B4B467C33D089F0988AA253D294ADDBDB325\ -30C0D4208B10D9959823F0C0F0734684006DF79F7099870F6BF53211A88D:\ -8F109A4B2F65CFC881CB456966630C91EF26E79838CF1E090488B9DC348FAD9F\ -F050197B373BA326AC5F42FD81F3D9C944238918E748453233EC309FA0000670 - -F57C64006D9EA761892E145C99DF1B24640883DA79D9ED5262859DCDA8C3C32E\ -05B03D984F1AB4A230242AB6B78D368DC5AAA1E6D3498D53371E84B0C1D4BA:\ -A94A8BBAAF30DA2D1BC52EFCE0541B8BD109663AD73830261B6179CA31D08CC5\ -ABF512CE3DE1118DE1230B31AFD5A01B5D6A49B370BEEE77A3988F9CBD32618C - -E926AE8B0AF6E53176DBFFCC2A6B88C6BD765F939D3D178A9BDE9EF3AA131C61\ -E31C1E42CDFAF4B4DCDE579A37E150EFBEF5555B4C1CB40439D835A724E2FAE7:\ -548D7A65D8BEEBE56C466DA17F8DD80722A7A2A59352465A150F58C1CDC75E80\ -49F5734EA16F32F5CE5B339CDFD99D930D20A6B8655B6F20DE4E7E7438C405E8 - -16E8B3D8F988E9BB04DE9C96F2627811C973CE4A5296B4772CA3EEFEB80A652B\ -DF21F50DF79F32DB23F9F73D393B2D57D9A0297F7A2F2E79CFDA39FA393DF1AC\ -00:\ -19152CBECBB159ED38D70436671A47CC9373EBC74EBB31FB22E36DD22E0DA921\ -15745AD7B1B0114596F940B6BC90C19EDD53A9AD012BF1F5B6B419FC8A1A6597 - -FC424EEB27C18A11C01F39C555D8B78A805B88DBA1DC2A42ED5E2C0EC737FF68\ -B2456D80EB85E11714FA3F8EABFB906D3C17964CB4F5E76B29C1765DB03D91BE\ -37FC:\ -F08612959457304C50026B146FAED6FEFE60EC27008F986130DE8D487C9BB29F\ -7A6A5F51F5083C6EEDBD2E9DE7A7B7658B8C10AD6F01807B4460FD3B36FC01BC - -ABE3472B54E72734BDBA7D9158736464251C4F21B33FBBC92D7FAC9A35C4E332\ -2FF01D2380CBAA4EF8FB07D21A2128B7B9F5B6D9F34E13F39C7FFC2E72E47888\ -599BA5:\ -436A9BAE3CA9FA4E8627C359D8D2628B0E2C341C75502B3EA80253E5448A6A52\ -4201DFABA2A2B42185DF0F94B06A8074216F057E300E16669A0271AE69B1A54C - -36F9F0A65F2CA498D739B944D6EFF3DA5EBBA57E7D9C41598A2B0E4380F3CF4B\ -479EC2348D015FFE6256273511154AFCF3B4B4BF09D6C4744FDD0F62D75079D4\ -40706B05:\ -BDDEB8D9A990C8B92FFD27D8B0EDA074D9F1DAF0E3FCA1F1D708D7B3922D5FB7\ -A92BD49523F74516CF373ECD835E399EF6E8ACFEB2C7A61166FA3FA9FEE0B5C7 - -ABC87763CAE1CA98BD8C5B82CABA54AC83286F87E9610128AE4DE68AC95DF5E3\ -29C360717BD349F26B872528492CA7C94C2C1E1EF56B74DBB65C2AC351981FDB\ -31D06C77A4:\ -76D74B7AA7C1787F7D2689144A9665416AABBA5B2646EC52C22F7DF5A20C7F6F\ -B2B1FD5C45668EDB0EE468A99567766F594D3E18F1D8162321445EF8F25A3D20 - -94F7CA8E1A54234C6D53CC734BB3D3150C8BA8C5F880EAB8D25FED13793A9701\ -EBE320509286FD8E422E931D99C98DA4DF7E70AE447BAB8CFFD92382D8A77760\ -A259FC4FBD72:\ -2D26A2CA37790EA1ED334F854CB6127F9D6EBBC716341A175B7C6625511974AB\ -1B6ADBC71014F258677089C2BB397F0669C34F686C008706E1DEB560B5D43DEE - -13BD2811F6ED2B6F04FF3895ACEED7BEF8DCD45EB121791BC194A0F806206BFF\ -C3B9281C2B308B1A729CE008119DD3066E9378ACDCC50A98A82E20738800B6CD\ -DBE5FE9694AD6D:\ -B28CF291DB775DEC4E87BD30792BC2CCF1B528F62537176C9206CF255F8B7959\ -10C65E3C308FA2275B021FFD737F88856107BDA44AEB4199EE5675471E789A81 - -1EED9CBA179A009EC2EC5508773DD305477CA117E6D569E66B5F64C6BC64801C\ -E25A8424CE4A26D575B8A6FB10EAD3FD1992EDDDEEC2EBE7150DC98F63ADC323\ -7EF57B91397AA8A7:\ -DABF7F4D5455F3C9505CA6B49CABD8ABD3EE4928CCEF88DC60FAAC08607CD686\ -1C316294D3954AA514672A289182C3FBE49B15051D4645214C5D01A6FC783899 - -BA5B67B5EC3A3FFAE2C19DD8176A2EF75C0CD903725D45C9CB7009A900C0B0CA\ -7A2967A95AE68269A6DBF8466C7B6844A1D608AC661F7EFF00538E323DB5F2C6\ -44B78B2D48DE1A08AA:\ -D4B8A36DE3B40CBCA69B5819C5D4E524E8C36FECAEB8092A5B02FFD12C19A17D\ -EA1B09F1430F1F62EB046CB0F7697233FB51E3EEFEA61CA2C320E97B34BA6ED8 - -0EFA26AC5673167DCACAB860932ED612F65FF49B80FA9AE65465E5542CB62075\ -DF1C5AE54FBA4DB807BE25B070033EFA223BDD5B1D3C94C6E1909C02B620D4B1\ -B3A6C9FED24D70749604:\ -61CD40E83B900F9730DE8BC331EA9F75F81D138992E500082FCFA41610BEEBBB\ -5ACE85FFF570462D9960D17A67A2D2BDC8CAD0D401DD642957386C553310CD42 - -BBFD933D1FD7BF594AC7F435277DC17D8D5A5B8E4D13D96D2F64E771ABBD51A5\ -A8AEA741BECCBDDB177BCEA05243EBD003CFDEAE877CCA4DA94605B67691919D\ -8B033F77D384CA01593C1B:\ -DBE49B8A74C886BA4B5E3E1FBF23274D8122019F7E66C61DB04CF5F61D75340D\ -34811558A575B179F2B45C7C7B60D3FDC1C5D9BB8F6DE53591AB9BC905702157 - -90078999FD3C35B8AFBF4066CBDE335891365F0FC75C1286CDD88FA51FAB94F9\ -B8DEF7C9AC582A5DBCD95817AFB7D1B48F63704E19C2BAA4DF347F48D4A6D603\ -013C23F1E9611D595EBAC37C:\ -826E66301DC5F89FA5559170A9AE0E07B1DCE27A5EB90029DC4E7C9A2F005D25\ -EE319DBD74A0F2D3034027ED03566F2D6D768A4F4BF88BF208AED0AD623D339E - -64105ECA863515C20E7CFBAA0A0B8809046164F374D691CDBD6508AAABC1819F\ -9AC84B52BAFC1B0FE7CDDBC554B608C01C8904C669D8DB316A0953A4C68ECE32\ -4EC5A49FFDB59A1BD6A292AA0E:\ -70FFCA06DC5C2ECC63E938915A70755843AE11990C4285FF4448D5DECCF9CF00\ -4C04774B6419E80D5E96CACF830F16595C995F37F629D4C82D7D5837AF28E6FA - -D4654BE288B9F3B711C2D02015978A8CC57471D5680A092AA534F7372C71CEAA\ -B725A383C4FCF4D8DEAA57FCA3CE056F312961ECCF9B86F14981BA5BED6AB5B4\ -498E1F6C82C6CAE6FC14845B3C8A:\ -E5C313F54B334BAB5746161EDBEA426AB1EE8FB01521C0BBE3B10B41F88498C0\ -A53D14D4F0951C0BEF8110ED3DBB4FE93CF0C538E7B4FC04D9D87FF98B690736 - -12D9394888305AC96E65F2BF0E1B18C29C90FE9D714DD59F651F52B88B3008C5\ -88435548066EA2FC4C101118C91F32556224A540DE6EFDDBCA296EF1FB00341F\ -5B01FECFC146BDB251B3BDAD556CD2:\ -40A3015076E0BD34B7A5EDDABE5C948A93C0C62C84470CD24EA4B624CADDB37A\ -FF2A9C654988231085A216F619697175F5AA2B6211C9E32D0FF4253EA95FD7D5 - -871A0D7A5F36C3DA1DFCE57ACD8AB8487C274FAD336BC137EBD6FF4658B547C1\ -DCFAB65F037AA58F35EF16AFF4ABE77BA61F65826F7BE681B5B6D5A1EA8085E2\ -AE9CD5CF0991878A311B549A6D6AF230:\ -F69BD0F7B6AEF0BA7FCA622865756298B881A4E747090C77F48B5BE74BA70DB2\ -2BDFAA758FF43698CA821472A121D46B3CDCFC62D139243B757A9456660843B4 - -E90B4FFEF4D457BC7711FF4AA72231CA25AF6B2E206F8BF859D8758B89A7CD36\ -105DB2538D06DA83BAD5F663BA11A5F6F61F236FD5F8D53C5E89F183A3CEC615\ -B50C7C681E773D109FF7491B5CC22296C5:\ -7DC20435E62DEA8C32FA4D6F90D16D711F4E43A14D74FA29F648EC2D0F0FD22E\ -10BF36220A639AC67AA2F5DFA0454565C9AF02A90F97F0202A1EBBEFB5859A1F - -E728DE62D75856500C4C77A428612CD804F30C3F10D36FB219C5CA0AA30726AB\ -190E5F3F279E0733D77E7267C17BE27D21650A9A4D1E32F649627638DBADA970\ -2C7CA303269ED14014B2F3CF8B894EAC8554:\ -9C7CFFFBFFE1E8783080510B7F9F11E04B3F9C5A6D17F5ACA02E07650347C352\ -A3CC60096FBCF21055385B0BA1EB3C6E4282690BFB32413FD55DE09E06403BE9 - -6348F229E7B1DF3B770C77544E5166E081850FA1C6C88169DB74C76E42EB983F\ -ACB276AD6A0D1FA7B50D3E3B6FCD799EC97470920A7ABED47D288FF883E24CA2\ -1C7F8016B93BB9B9E078BDB9703D2B781B616E:\ -A0E94AEB83183E924DEA9C94DE5F76EBDED8FB2D344C3CDF46FA8D738FF331EF\ -1061F96FD3D5D1F75EB95525B8388F4AB481D5BF9A48B9DE8E5DDE2F6C0B526B - -4B127FDE5DE733A1680C2790363627E63AC8A3F1B4707D982CAEA258655D9BF1\ -8F89AFE54127482BA01E08845594B671306A025C9A5C5B6F93B0A39522DC8774\ -37BE5C2436CBF300CE7AB6747934FCFC30AEAAF6:\ -FAC419F422D0A0C09653EB9938D6FEDA794CFE6162FEA02D35AD0C53F70CDFBF\ -5D60C4D33A5FAE394AC6938371A088977413172BC2284EA3C78623508726508C - -08461F006CFF4CC64B752C957287E5A0FAABC05C9BFF89D23FD902D324C79903\ -B48FCB8F8F4B01F3E4DDB483593D25F000386698F5ADE7FAADE9615FDC50D327\ -85EA51D49894E45BAA3DC707E224688C6408B68B11:\ -3722EE99604E8C8C7069FB1CC07B67F9DB082BE5BA359AC8FBBA285FFCC00204\ -39F96DFAD898124A779E758D3E8D28A41F3B59990C027F6E88D1FAD75112779D - -68C8F8849B120E6E0C9969A5866AF591A829B92F33CD9A4A3196957A148C4913\ -8E1E2F5C7619A6D5EDEBE995ACD81EC8BB9C7B9CFCA678D081EA9E25A75D39DB\ -04E18D475920CE828B94E72241F24DB72546B352A0E4:\ -BC30D45D62D909FC5ACD1B87B9C70065228D2722A360A1D25F726A8469F725FC\ -163496C39E7D31AA2B3BD9016A2253D7CD05E4D678A35358847090A778D8CF8D - -B8D56472954E31FB54E28FCA743F84D8DC34891CB564C64B08F7B71636DEBD64\ -CA1EDBDBA7FC5C3E40049CE982BBA8C7E0703034E331384695E9DE76B5104F2F\ -BC4535ECBEEBC33BC27F29F18F6F27E8023B0FBB6F563C:\ -E1DF1CF42A685BAD183FE9E7C3A21DF52826174DB659CA114E8EAE39569E5B20\ -EACF33A97ED436207F95568248FFBF922833A1D7153785FD869BAFC494ED82B1 - -0D58AC665FA84342E60CEFEE31B1A4EACDB092F122DFC68309077AED1F3E528F\ -578859EE9E4CEFB4A728E946324927B675CD4F4AC84F64DB3DACFE850C1DD187\ -44C74CECCD9FE4DC214085108F404EAB6D8F452B5442A47D:\ -B986BEA853B9CA92ED1F11D2205CDD09ACD3DD7DD4A4F48ADB1892F9B0296AB3\ -99B4CEDD69A6EC8C1E8E4FB30FD3040EB7057CDD3C0104EA910875196F93C53D - -1755E2D2E5D1C1B0156456B539753FF416651D44698E87002DCF61DCFA2B4E72\ -F264D9AD591DF1FDEE7B41B2EB00283C5AEBB3411323B672EAA145C512518510\ -4F20F335804B02325B6DEA65603F349F4D5D8B782DD3469CCD:\ -4DCE35639B8F219455E77AB4E0B99A94CB2DE19842D9213F11552EE9DD7A57E8\ -54EEB7E91F7E13152F757068E40105BB355306B3F16540991B11D215C02E8B80 - -B180DE1A611111EE7584BA2C4B020598CD574AC77E404E853D15A101C6F5A2E5\ -C801D7D85DC95286A1804C870BB9F00FD4DCB03AA8328275158819DCAD7253F3\ -E3D237AEAA7979268A5DB1C6CE08A9EC7C2579783C8AFC1F91A7:\ -E71B2170F0F3761D1FFF4C20A01374886E483724954F5F683120E4CDE589011C\ -7EAF775F3E0CD93953513DC0A119412E12611757F3BA846A33545FD257E5591B - -CF3583CBDFD4CBC17063B1E7D90B02F0E6E2EE05F99D77E24E560392535E47E0\ -5077157F96813544A17046914F9EFB64762A23CF7A49FE52A0A4C01C630CFE87\ -27B81FB99A89FF7CC11DCA5173057E0417B8FE7A9EFBA6D95C555F:\ -29036EEE2CFF84925CE84157EC3B90EDE0A434B52AD89C0F91E84D0F2CFD0357\ -1F610E18829B9B69984BB57FA055DE6288F43C33A9A19CF71B4045195B2908AD - -072FC02340EF99115BAD72F92C01E4C093B9599F6CFC45CB380EE686CB5EB019\ -E806AB9BD55E634AB10AA62A9510CC0672CD3EDDB589C7DF2B67FCD3329F61B1\ -A4441ECA87A33C8F55DA4FBBAD5CF2B2527B8E983BB31A2FADEC7523:\ -06E45A1A77F1CA437BB4554E9AC2791C74D7C3E7202D94C64C6ACF258FF7217A\ -46A8FCC49C6C9E56B53ADE741FA30060E35E365FFC9CD7BD3AEA92D011924D7E - -76EECF956A52649F877528146DE33DF249CD800E21830F65E90F0F25CA9D6540\ -FDE40603230ECA6760F1139C7F268DEBA2060631EEA92B1FFF05F93FD5572FBE\ -29579ECD48BC3A8D6C2EB4A6B26E38D6C5FBF2C08044AEEA470A8F2F26:\ -3A08CE7F48E71FB89CA12701C6BFB6D6ACBC3847351E0C4840CEC0FEEF141B69\ -A7780128837FA082E6803FCAC832DD57E5E8AA776B058ED5062AAEE0D3B10EA2 - -7ADC0B6693E61C269F278E6944A5A2D8300981E40022F839AC644387BFAC9086\ -650085C2CDC585FEA47B9D2E52D65A2B29A7DC370401EF5D60DD0D21F9E2B90F\ -AE919319B14B8C5565B0423CEFB827D5F1203302A9D01523498A4DB10374:\ -797015514DF48346879712ED2AD3BE484DB7F19B94DD8A4A77DA987287298674\ -F68E331432B15CFA0CEB395E40E2BD424B850293CD3BEE39B6F042B58469FE54 - -E1FFFA9826CCE8B86BCCEFB8794E48C46CDF372013F782ECED1E378269B7BE2B\ -7BF51374092261AE120E822BE685F2E7A83664BCFBE38FE8633F24E633FFE198\ -8E1BC5ACF59A587079A57A910BDA60060E85B5F5B6F776F0529639D9CCE4BD:\ -8930CF8606BF372E0F355E6036146EA14AC2F0605B2C192CCF3E60DEE5DD95C7\ -730581274AAF4DF61438051FF8A566B0A537E1ED13FF250F11EFD7F3257F9F60 - -69F9ABBA65592EE01DB4DCE52DBAB90B08FC04193602792EE4DAA263033D5908\ -1587B09BBE49D0B49C9825D22840B2FF5D9C5155F975F8F2C2E7A90C75D2E4A8\ -040FE39F63BBAFB403D9E28CC3B86E04E394A9C9E8065BD3C85FA9F0C7891600:\ -375AD74C0E39D401D4022174A5FA4363447C85D72ECCF1D380845149240DFD32\ -09F81E4AF263F429B8FB6116062880152AD9E40F01EC23B61E390EAB9AE3F502 - -38A10A352CA5AEDFA8E19C64787D8E9C3A75DBF3B8674BFAB29B5DBFC15A63D1\ -0FAE66CD1A6E6D2452D557967EAAD89A4C98449787B0B3164CA5B717A93F24EB\ -0B506CEB70CBBCB8D72B2A72993F909AAD92F044E0B5A2C9AC9CB16A0CA2F81F\ -49:\ -B0DD4E0619AAD0B8C44B30D106A0A57B8C10172520E072865B6CF5B12CFCA23A\ -F742AE9FE222C5D900C84BCE529C87F93BE4264331A7EDF7A1C0071F2265B1F5 - -6D8C6E449BC13634F115749C248C17CD148B72157A2C37BF8969EA83B4D6BA8C\ -0EE2711C28EE11495F43049596520CE436004B026B6C1F7292B9C436B055CBB7\ -2D530D860D1276A1502A5140E3C3F54A93663E4D20EDEC32D284E25564F62495\ -5B52:\ -4F70DF19FFAA4650A834B1BF154B61F077C76467F2EB38B3A60E26D82702294C\ -7E91611C63522D62B1EF007981516018833F9C7030BDA0A3661373F4739C8E94 - -6EFCBCAF451C129DBE00B9CEF0C3749D3EE9D41C7BD500ADE40CDC65DEDBBBAD\ -B885A5B14B32A0C0D087825201E303288A733842FA7E599C0C514E078F05C821\ -C7A4498B01C40032E9F1872A1C925FA17CE253E8935E4C3C71282242CB716B20\ -89CCC1:\ -24B8C31CA0EA5A1C627BBAEE4BA822323AC4198415FB69D99B90B26DAF42520E\ -6B489F05F9C48AF52BB7E11FC4D72C37CBFAA04433559EFC388CE9C83008C9F6 - -433C5303131624C0021D868A30825475E8D0BD3052A022180398F4CA4423B982\ -14B6BEAAC21C8807A2C33F8C93BD42B092CC1B06CEDF3224D5ED1EC29784444F\ -22E08A55AA58542B524B02CD3D5D5F6907AFE71C5D7462224A3F9D9E53E7E084\ -6DCBB4CE:\ -E1573F9C0D6D49D8A1D6B29663DB387A1EBB5F107C37A4E6330673B1A23DF7D1\ -B1475E14EA001319D683CD902CABA8E33B90A10FB7F1C5468E9A4FDBC7BFD2E1 - -A873E0C67CA639026B6683008F7AA6324D4979550E9BCE064CA1E1FB97A30B14\ -7A24F3F666C0A72D71348EDE701CF2D17E2253C34D1EC3B647DBCEF2F879F4EB\ -881C4830B791378C901EB725EA5C172316C6D606E0AF7DF4DF7F76E490CD30B2\ -BADF45685F:\ -669CAA7CE8599AF49B6AA8963FF4C19E43247953E0EAA7453EB954217AB9CA86\ -A82245E4C0916F7E9631F763A12B8EF516E5AB33DAC41D8FEB1F88B8778BF185 - -006917B64F9DCDF1D2D87C8A6173B64F6587168E80FAA80F82D84F60301E561E\ -312D9FBCE62F39A6FB476E01E925F26BCC91DE621449BE6504C504830AAE3940\ -96C8FC7694651051365D4EE9070101EC9B68086F2EA8F8AB7B811EA8AD934D5C\ -9B62C60A4771:\ -B0D673B7F25D73616323175F04CD969285914F163CDD0513CC97350C4BC50574\ -228BF1271026013A82260281554EAF29471F4CE3CC4472AA8030A6CF20982C32 - -F13C972C52CB3CC4A4DF28C97F2DF11CE089B815466BE88863243EB318C2ADB1\ -A417CB1041308598541720197B9B1CB5BA2318BD5574D1DF2174AF14884149BA\ -9B2F446D609DF240CE335599957B8EC80876D9A085AE084907BC5961B20BF5F6\ -CA58D5DAB38ADB:\ -61FE4777C89455B9FA259F9F8DEA012CBE1DC51538C54E77CE7D95EAC48E73F9\ -00B77B51B00018A6AF84C407877EE9B0DC3FF5788638A52AC8B150E823416640 - -E35780EB9799AD4C77535D4DDB683CF33EF367715327CF4C4A58ED9CBDCDD486\ -F669F80189D549A9364FA82A51A52654EC721BB3AAB95DCEB4A86A6AFA93826D\ -B923517E928F33E3FBA850D45660EF83B9876ACCAFA2A9987A254B137C6E140A\ -21691E1069413848:\ -2227BF50BD45C41592EB42EDAB9FEE3E78DD0FCF0497BFA733B99D9B5699D3A2\ -7932F4F81F7D4AF43A23E94CA7A9A88D82C2781602EF5E1ECF4712CE6F72E8F4 - -64EC021C9585E01FFE6D31BB50D44C79B6993D72678163DB474947A053674619\ -D158016ADB243F5C8D50AA92F50AB36E579FF2DABB780A2B529370DAA299207C\ -FBCDD3A9A25006D19C4F1FE33E4B1EAEC315D8C6EE1E730623FD1941875B924E\ -B57D6D0C2EDC4E78D6:\ -67F82DCA717D47E9E0854BEDC55A1756CD624F58DF755CF9702DE5CD73B57F6A\ -EF7BBF40922A915F383D7D3A910FF95936EC74E35B3B2AA6146F30E11AF3725B - -5954BAB512CF327D66B5D9F296180080402624AD7628506B555EEA8382562324\ -CF452FBA4A2130DE3E165D11831A270D9CB97CE8C2D32A96F50D71600BB4CA26\ -8CF98E90D6496B0A6619A5A8C63DB6D8A0634DFC6C7EC8EA9C006B6C456F1B20\ -CD19E781AF20454AC880:\ -83665C2BCA49C95BBE584DF52242068193F7A9DAAA67B0EE36FA9A81516E4CD6\ -A3D15A222F95A2DDB7494C5DBB7E83EB30A72BA342DC98060D1F78B9C8F0E893 - -03D9F92B2C565709A568724A0AFF90F8F347F43B02338F94A03ED32E6F33666F\ -F5802DA4C81BDCE0D0E86C04AFD4EDC2FC8B4141C2975B6F07639B1994C973D9\ -A9AFCE3D9D365862003498513BFA166D2629E314D97441667B007414E739D7FE\ -BF0FE3C32C17AA188A8683:\ -C505A3841C5589D0B2A428D684C9D14520C6359A5AAED6A560663947899E42B5\ -88D5D7BE55D580931B25AC2E2FC5F3AF360D60741C0BA82D5A94BE61D2CCC830 - -F31E8B4F9E0621D531D22A380BE5D9ABD56FAEC53CBD39B1FAB230EA67184440\ -E5B1D15457BD25F56204FA917FA48E669016CB48C1FFC1E1E45274B3B47379E0\ -0A43843CF8601A5551411EC12503E5AAC43D8676A1B2297EC7A0800DBFEE0429\ -2E937F21C005F17411473041:\ -EB6FD4B2B90F79F0071C8D2744C352DBDC7807D40EAF5979DBF21410CEFC2CA2\ -B867010A213C34090E3AFD0C8EA65F43D1AC48EAB67721AF5508D6F193031611 - -758EA3FEA738973DB0B8BE7E599BBEF4519373D6E6DCD7195EA885FC991D8967\ -62992759C2A09002912FB08E0CB5B76F49162AEB8CF87B172CF3AD190253DF61\ -2F77B1F0C532E3B5FC99C2D31F8F65011695A087A35EE4EEE5E334C369D8EE5D\ -29F695815D866DA99DF3F79403:\ -FF96DEEADD3C3668F9C9FCF23EABB6C08A908D89B997ED4005FDB4ADDFDBC165\ -D47CBDC2A9A064D95BEDDEDFE1F5AE0D7A05EED7D1B30D3DC1D3AC8850425575 - -47C6E0C2B74948465921868804F0F7BD50DD323583DC784F998A93CD1CA4C6EF\ -84D41DC81C2C40F34B5BEE6A93867B3BDBA0052C5F59E6F3657918C382E771D3\ -3109122CC8BB0E1E53C4E3D13B43CE44970F5E0C079D2AD7D7A3549CD75760C2\ -1BB15B447589E86E8D76B1E9CED2:\ -E0269128AD1687BB7C35926E98CC9A9C7670C1276C3F10C37853928AA6C0AE7F\ -E414D379FCBAE20DF0161781690053B9322D8AD14D66C1A4B7B35FFFF9CF3F16 - -F690A132AB46B28EDFA6479283D6444E371C6459108AFD9C35DBD235E0B6B6FF\ -4C4EA58E7554BD002460433B2164CA51E868F7947D7D7A0D792E4ABF0BE5F450\ -853CC40D85485B2B8857EA31B5EA6E4CCFA2F3A7EF3380066D7D8979FDAC618A\ -AD3D7E886DEA4F005AE4AD05E5065F:\ -CA5FA777561C6C13ECBCAD526527343009BB1EB77B4BCE263FC24E00A5A5FB92\ -96D2BA13598A646BF936397E43A7BF9D303CAE83E3654CC25F636F7FAB03C2B1 - -58D6A99BC6458824B256916770A8417040721CCCFD4B79EACD8B65A3767CE5BA\ -7E74104C985AC56B8CC9AEBD16FEBD4CDA5ADB130B0FF2329CC8D611EB14DAC2\ -68A2F9E633C99DE33997FEA41C52A7C5E1317D5B5DAED35EBA7D5A60E45D1FA7\ -EAABC35F5C2B0A0F2379231953322C4E:\ -FBCAE8C494C5FD0ADB640CEB4A15BF634293EC37CCF119AFF5BEC95F55578ED9\ -0D26861A045E0F242302158D3EAC801185498D6D8033662F2E0E6BA5B6F04ACE - -BEFAB574396D7F8B6705E2D5B58B2C1C820BB24E3F4BAE3E8FBCD36DBF734EE1\ -4E5D6AB972AEDD3540235466E825850EE4C512EA9795ABFD33F330D9FD7F79E6\ -2BBB63A6EA85DE15BEAEEA6F8D204A28956059E2632D11861DFB0E65BC07AC8A\ -159388D5C3277E227286F65FF5E5B5AEC1:\ -28500180D6F48671A4ACD83C9BB5FE3665CF9A6163D8797A2A2F9EA3974619B3\ -12769F67C1BB279A409C05A6B4E371F57FC658096923B5EB086D920EE8C748E8 - -8E58144FA9179D686478622CE450C748260C95D1BA43B8F9B59ABECA8D93488D\ -A73463EF40198B4D16FB0B0707201347E0506FF19D01BEA0F42B8AF9E71A1F1B\ -D168781069D4D338FDEF00BF419FBB003031DF671F4A37979564F69282DE9C65\ -407847DD0DA505AB1641C02DEA4F0D834986:\ -B205C2E223BF2A741F35294E9B7E1C33EF745A31F5CE2A00F6EC43B05044034C\ -4993D5112E4BA7CEB2BDA4C2E2C8E09B52CE6C2AC7B5374260BFEED8752B65C1 - -B55C10EAE0EC684C16D13463F29291BF26C82E2FA0422A99C71DB4AF14DD9C7F\ -33EDA52FD73D017CC0F2DBE734D831F0D820D06D5F89DACC485739144F8CFD47\ -99223B1AFF9031A105CB6A029BA71E6E5867D85A554991C38DF3C9EF8C1E1E9A\ -7630BE61CAABCA69280C399C1FB7A12D12AEFC:\ -38FA9FFE97CA84452F56C26702F561BBB105D1AE19D78C3528132DAA809B006E\ -E2359EFE54EB35FE0760699070D2B33B2401A5C12132797DF0BDAF96A8DDB04A - -2EEEA693F585F4ED6F6F8865BBAE47A6908AECD7C429E4BEC4F0DE1D0CA0183F\ -A201A0CB14A529B7D7AC0E6FF6607A3243EE9FB11BCF3E2304FE75FFCDDD6C5C\ -2E2A4CD45F63C962D010645058D36571404A6D2B4F44755434D76998E83409C3\ -205AA1615DB44057DB991231D2CB42624574F545:\ -F5D3FCDDF5C8E2E0513700B11775B0B3C73CD16B18AE52BD3ED225306EE9B5E6\ -B5E402334BC5A4FD1AF5D47138D44217DABF5CBDFFD6978B956EED71C21E05CF - -DAB11DC0B047DB0420A585F56C42D93175562852428499F66A0DB811FCDDDAB2\ -F7CDFFED1543E5FB72110B64686BC7B6887A538AD44C050F1E42631BC4EC8A9F\ -2A047163D822A38989EE4AAB01B4C1F161B062D873B1CFA388FD301514F62224\ -157B9BEF423C7783B7AAC8D30D65CD1BBA8D689C2D:\ -1A25D0833B2CC0A1A0D7C892639D0DF281D10334860F70878287DD4015A3F731\ -2093AEF197D49A1BE99F1615EA38D52A5F3665AA87BF20E89DD7A04E3DC09CA7 - -42E99A2F80AEE0E001279A2434F731E01D34A44B1A8101726921C0590C30F312\ -0EB83059F325E894A5AC959DCA71CE2214799916424E859D27D789437B9D2724\ -0BF8C35ADBAFCECC322B48AA205B293962D858652ABACBD588BCF6CBC388D099\ -3BD622F96ED54614C25B6A9AA527589EAAFFCF17DDF7:\ -0942326FEECAAD788EEB7D50863FD9280211C9F63B16ECD51AC874A80B47988D\ -61799A10D3B23DC23AE26C179ED5EBC9E32B7697B0566079852BBFA5FA21FFAC - -3C9B46450C0F2CAE8E3823F8BDB4277F31B744CE2EB17054BDDC6DFF36AF7F49\ -FB8A2320CC3BDF8E0A2EA29AD3A55DE1165D219ADEDDB5175253E2D1489E9B6F\ -DD02E2C3D3A4B54D60E3A47334C37913C5695378A669E9B72DEC32AF5434F93F\ -46176EBF044C4784467C700470D0C0B40C8A088C815816:\ -E9F908BC91CE95ABBA48644FC7C1F8E211E3D2EEA459021FF7E4496C6F1AA3EC\ -A73AEF2813B33819139CEB6ADD5FCFB4EBEBCE72AA1E30DC328454CA69FFBF31 - -D1E654B77CB155F5C77971A64DF9E5D34C26A3CAD6C7F6B300D39DEB19100946\ -91ADAA095BE4BA5D86690A976428635D5526F3E946F7DC3BD4DBC78999E65344\ -1187A81F9ADCD5A3C5F254BC8256B0158F54673DCC1232F6E918EBFC6C51CE67\ -EAEB042D9F57EEC4BFE910E169AF78B3DE48D137DF4F2840:\ -5CEEE2800816DDF676BBD3C8B7D95012808E62A1838CD292893B05085DD08B95\ -EA245FB84283BEF479FD0E2B8BF9DD1BA722344E83DC391A85AEE2C930F985C5 - -626F68C18A69A6590159A9C46BE03D5965698F2DAC3DE779B878B3D9C421E0F2\ -1B955A16C715C1EC1E22CE3EB645B8B4F263F60660EA3028981EEBD6C8C3A367\ -285B691C8EE56944A7CD1217997E1D9C21620B536BDBD5DE8925FF71DEC6FBC0\ -6624AB6B21E329813DE90D1E572DFB89A18120C3F606355D25:\ -ED0C620D495F5190D8667F0F9B50C9FEA28FC01AE9B219027973A341BA87118A\ -821451D5EEE580C4FAEE46DAD21C43C72523AE86A8579576247EB8E38D0C6BA6 - -651A6FB3C4B80C7C68C6011675E6094EB56ABF5FC3057324EBC6477825061F9F\ -27E7A94633ABD1FA598A746E4A577CAF524C52EC1788471F92B8C37F23795CA1\ -9D559D446CAB16CBCDCE90B79FA1026CEE77BF4AB1B503C5B94C2256AD75B3EA\ -C6FD5DCB96ACA4B03A834BFB4E9AF988CECBF2AE597CB9097940:\ -138F2DF9686F705E5C55020B89F04AB66654B0CACCC1A8D374334B6BF6534335\ -C7514206B6F772DDB0550CFABA22D22B913928D3ADF78BFD25DF9DD517B2E3A3 - -8AAF072FCE8A2D96BC10B3C91C809EE93072FB205CA7F10ABD82ECD82CF040B1\ -BC49EA13D1857815C0E99781DE3ADBB5443CE1C897E55188CEAF221AA9681638\ -DE05AE1B322938F46BCE51543B57ECDB4C266272259D1798DE13BE90E10EFEC2\ -D07484D9B21A3870E2AA9E06C21AA2D0C9CF420080A80A91DEE16F:\ -3348F4E8C4768C3EF687A8E2A02E307FD8591B41235F8C14E5983AE7361968D0\ -CB877AF488B975001AA1E7ACF0E5844C107A102BF028FCEE89CFE751266D88A3 - -53F918FD00B1701BD504F8CDEA803ACCA21AC18C564AB90C2A17DA592C7D6968\ -8F6580575395551E8CD33E0FEF08CA6ED4588D4D140B3E44C032355DF1C53156\ -4D7F4835753344345A6781E11CD5E095B73DF5F82C8AE3AD00877936896671E9\ -47CC52E2B29DCD463D90A0C9929128DA222B5A211450BBC0E02448E2:\ -CA7257AC51700539DF617C3B7EE9ACC7C4576332996F905D9D3733F1AAF3287E\ -2F852BE394E533F64EA19733276B0E448496F88500770675835E133904E4071B - -A64599B8A61B5CCEC9E67AED69447459C8DA3D1EC6C7C7C82A7428B9B584FA67\ -E90F68E2C00FBBED4613666E5168DA4A16F395F7A3C3832B3B134BFC9CBAA95D\ -2A0FE252F44AC6681EB6D40AB91C1D0282FED6701C57463D3C5F2BB8C6A7301F\ -B4576AA3B5F15510DB8956FF77478C26A7C09BEA7B398CFC83503F538E:\ -ADB3B6E2083CB37ED5F822D1AA2ADA18560C663011CB16CFB804A5F24C0525F3\ -4D8CB10D19528BA02BB43BD501BF0D0AC67968B0687DCB21C013527A99AE9D84 - -0E3AB0E054739B00CDB6A87BD12CAE024B54CB5E550E6C425360C2E87E59401F\ -5EC24EF0314855F0F56C47695D56A7FB1417693AF2A1ED5291F2FEE95F75EED5\ -4A1B1C2E81226FBFF6F63ADE584911C71967A8EB70933BC3F5D15BC91B5C2644\ -D9516D3C3A8C154EE48E118BD1442C043C7A0DBA5AC5B1D5360AAE5B9065:\ -EA781FDD2DDDE4B42E1A6B75AB70CFCF17DC413CD9591254F91F1E9741811916\ -56EDC92823A3145DBE4AB491E86233DAACD748CCD2A86B551D6D47EDEA943C82 - -A62FC595B4096E6336E53FCDFC8D1CC175D71DAC9D750A6133D23199EAAC2882\ -07944CEA6B16D27631915B4619F743DA2E30A0C00BBDB1BBB35AB852EF3B9AEC\ -6B0A8DCC6E9E1ABAA3AD62AC0A6C5DE765DE2C3711B769E3FDE44A74016FFF82\ -AC46FA8F1797D3B2A726B696E3DEA5530439ACEE3A45C2A51BC32DD055650B:\ -B2DCDDF444C51976F2D71D020BEF76810C8CCAE2B94C34178C600CCDD04B233B\ -A2D27DB4E8F07EE01D611E490564B6071858BC8B8F8D23BC6B8DA746DAD4A132 - -2B6DB7CED8665EBE9DEB080295218426BDAA7C6DA9ADD2088932CDFFBAA1C141\ -29BCCDD70F369EFB149285858D2B1D155D14DE2FDB680A8B027284055182A0CA\ -E275234CC9C92863C1B4AB66F304CF0621CD54565F5BFF461D3B461BD40DF281\ -98E3732501B4860EADD503D26D6E69338F4E0456E9E9BAF3D827AE685FB1D817:\ -447C299F7E5C90CEE70A7577EC148FEF194F40BA7C3C8CBC96FF81D14490A16E\ -397CA01F3C0883E050F805239FBD4189122B45B1101EE1F303281D2AC1580E2C - -10DB509B2CDCABA6C062AE33BE48116A29EB18E390E1BBADA5CA0A2718AFBCD2\ -3431440106594893043CC7F2625281BF7DE2655880966A23705F0C5155C2F5CC\ -A9F2C2142E96D0A2E763B70686CD421B5DB812DACED0C6D65035FDE558E94F26\ -B3E6DDE5BD13980CC80292B723013BD033284584BFF27657871B0CF07A849F4A\ -E2:\ -E21AEB7109CA41F1C41F4B66E80A6A4248AED43341F1EFFABB61341C3F0B6355\ -EFE3DAA8D28D60F9BF851E6837625BF2EBFD8A68CDCB50718660D5CCBFD93910 - -9334DE60C997BDA6086101A6314F64E4458F5FF9450C509DF006E8C547983C65\ -1CA97879175AABA0C539E82D05C1E02C480975CBB30118121061B1EBAC4F8D9A\ -3781E2DB6B18042E01ECF9017A64A0E57447EC7FCBE6A7F82585F7403EE2223D\ -52D37B4BF426428613D6B4257980972A0ACAB508A7620C1CB28EB4E9D30FC413\ -61EC:\ -FC015B69F1AE0DC7004343FF941378B8A23AA45A3825310E9A81C2A9EA2D4F96\ -1F4C9B8CACBC91F0D2414590C389D24ED482B95252F37B5A6CC6BFAEA5C98C32 - -E88AB086891693AA535CEB20E64C7AB97C7DD3548F3786339897A5F0C3903154\ -9CA870166E477743CCFBE016B4428D89738E426F5FFE81626137F17AECFF61B7\ -2DBEE2DC20961880CFE281DFAB5EE38B1921881450E16032DE5E4D55AD8D4FCA\ -609721B0692BAC79BE5A06E177FE8C80C0C83519FB3347DE9F43D5561CB8107B\ -9B5EDC:\ -45CCB97F9524BA87A7E69354030C71A07D875C5E958EA167EFF581703B1D5037\ -BD91B8806980E3D4EAE0ACB010D210CD89F781DED33F5697DAC285AEB37629A4 - -FD19E01A83EB6EC810B94582CB8FBFA2FCB992B53684FB748D2264F020D3B960\ -CB1D6B8C348C2B54A9FCEA72330C2AAA9A24ECDB00C436ABC702361A82BB8828\ -B85369B8C72ECE0082FE06557163899C2A0EFA466C33C04343A839417057399A\ -63A3929BE1EE4805D6CE3E5D0D0967FE9004696A5663F4CAC9179006A2CEB755\ -42D75D68:\ -142922E983887BFF20D0EE26BCBCBA34A1A70717172B8FBDE0AEABC5CA258C39\ -85B00F7908A21A75C014D4B2542A1BFCB7469BA9454F66670B6C05BBBD7A92D3 - -59AE20B6F7E0B3C7A989AFB28324A40FCA25D8651CF1F46AE383EF6D8441587A\ -A1C04C3E3BF88E8131CE6145CFB8973D961E8432B202FA5AF3E09D625FAAD825\ -BC19DA9B5C6C20D02ABDA2FCC58B5BD3FE507BF201263F30543819510C12BC23\ -E2DDB4F711D087A86EDB1B355313363A2DE996B891025E147036087401CCF3CA\ -7815BF3C49:\ -41DF07681C94633DC430AD7FFF9AB7146F1CC3A66DF3A81D990ED3D247D8F9A5\ -880EFF20C2652FB6C6631EA41F54D6C331651FDC20783EED65B83AF458D0AC72 - -77EE804B9F3295AB2362798B72B0A1B2D3291DCEB8139896355830F34B3B3285\ -61531F8079B79A6E9980705150866402FDC176C05897E359A6CB1A7AB067383E\ -B497182A7E5AEF7038E4C96D133B2782917417E391535B5E1B51F47D8ED7E4D4\ -025FE98DC87B9C1622614BFF3D1029E68E372DE719803857CA52067CDDAAD958\ -951CB2068CC6:\ -9BEE78530C0A93CE8564AEDE785D7086CE066CB74C3B8F70D3851CD57DB8E647\ -E67DF0D543EAFEDED491613BD3268CC7CE8DE34614A79D6413C3FEE218B6965A - -B771D5CEF5D1A41A93D15643D7181D2A2EF0A8E84D91812F20ED21F147BEF732\ -BF3A60EF4067C3734B85BC8CD471780F10DC9E8291B58339A677B960218F71E7\ -93F2797AEA349406512829065D37BB55EA796FA4F56FD8896B49B2CD19B43215\ -AD967C712B24E5032D065232E02C127409D2ED4146B9D75D763D52DB98D949D3\ -B0FED6A8052FBB:\ -E2548952816803ED478241CBAB10F69DB4CBDD98447BFAF4E92AF9A3179B6EFA\ -CEC56C757944B519C69D1759811732FE3C52912611271231342D9D62F3472967 - -B32D95B0B9AAD2A8816DE6D06D1F86008505BD8C14124F6E9A163B5A2ADE55F8\ -35D0EC3880EF50700D3B25E42CC0AF050CCD1BE5E555B23087E04D7BF9813622\ -780C7313A1954F8740B6EE2D3F71F768DD417F520482BD3A08D4F222B4EE9DBD\ -015447B33507DD50F3AB4247C5DE9A8ABD62A8DECEA01E3B87C8B927F5B08BEB\ -37674C6F8E380C04:\ -0E673628FA620668F73E652DF7927EC7D9DF9426F157B055E39D23AD7FA9CCCD\ -C8013FB8F6A0D2EFFEBE00BB5563B100B5361F33808AE20E23580D414F909CED - -04410E31082A47584B406F051398A6ABE74E4DA59BB6F85E6B49E8A1F7F2CA00\ -DFBA5462C2CD2BFDE8B64FB21D70C083F11318B56A52D03B81CAC5EEC29EB31B\ -D0078B6156786DA3D6D8C33098C5C47BB67AC64DB14165AF65B44544D806DDE5\ -F487D5373C7F9792C299E9686B7E5821E7C8E2458315B996B5677D926DAC57B3\ -F22DA873C601016A0D:\ -1B0E41061FF47E71F22FCD508E8560F8E4C9748DD8E520A9CA478F3E3827330C\ -6F19E299E221367E6B02E1606A1B23F2B3F66762D0F408B3A68C9DA9018A45DD - -8B81E9BADDE026F14D95C019977024C9E13DB7A5CD21F9E9FC491D716164BBAC\ -DC7060D882615D411438AEA056C340CDF977788F6E17D118DE55026855F93270\ -472D1FD18B9E7E812BAE107E0DFDE7063301B71F6CFE4E225CAB3B232905A56E\ -994F08EE2891BA922D49C3DAFEB75F7C69750CB67D822C96176C46BD8A29F170\ -1373FB09A1A6E3C7158F:\ -FEE0EA0269154ADD8FCC28BC61D290CCE0CA04FEBD3EF646D5AEED6542461D4C\ -DA983932BE7ABF3E0C2639ACF75AE2770D1B511D996E19536542FB4D76505F69 - -FA6EED24DA6666A22208146B19A532C2EC9BA94F09F1DEF1E7FC13C399A48E41\ -ACC2A589D099276296348F396253B57CB0E40291BD282773656B6E0D8BEA1CDA\ -084A3738816A840485FCF3FB307F777FA5FEAC48695C2AF4769720258C77943F\ -B4556C362D9CBA8BF103AEB9034BAA8EA8BFB9C4F8E6742CE0D52C49EA8E974F\ -339612E830E9E7A9C29065:\ -82DFF74AC5CDFFA0D1D03049F2FC227DCB77E373381C2E74FA316BBF9F6D55AE\ -B7667A95AE4D4D367130620217E245E9DDC641AFF823475AE40E4E3CE56FCD40 - -9BB4AF1B4F09C071CE3CAFA92E4EB73CE8A6F5D82A85733440368DEE4EB1CBC7\ -B55AC150773B6FE47DBE036C45582ED67E23F4C74585DAB509DF1B8361056454\ -5642B2B1EC463E18048FC23477C6B2AA035594ECD33791AF6AF4CBC2A1166ABA\ -8D628C57E707F0B0E8707CAF91CD44BDB915E0296E0190D56D33D8DDE10B5B60\ -377838973C1D943C22ED335E:\ -97D7C677B7D8EA600DE069CC23C492C0C293EB8E9B8987978CD43B2CACE445A9\ -0D1CDFA4E0F347EC9B7E6394DEF55702A13DC5DE3C5E43B8B08F260BF0E654D5 - -2167F02118CC62043E9091A647CADBED95611A521FE0D64E8518F16C808AB297\ -725598AE296880A773607A798F7C3CFCE80D251EBEC6885015F9ABF7EAABAE46\ -798F82CB5926DE5C23F44A3F9F9534B3C6F405B5364C2F8A8BDC5CA49C749BED\ -8CE4BA48897062AE8424CA6DDE5F55C0E42A95D1E292CA54FB46A84FBC9CD87F\ -2D0C9E7448DE3043AE22FDD229:\ -A0A9203714A9DCAE2402958E6BCF759B7E900D13D5A8654501ADAC70B5CEDF27\ -D21F5E92219DAD31DDC8466D8F559470C638D9F9B45D4F539D36C54651C4852C - -94B7FA0BC1C44E949B1D7617D31B4720CBE7CA57C6FA4F4094D4761567E389EC\ -C64F6968E4064DF70DF836A47D0C713336B5028B35930D29EB7A7F9A5AF9AD5C\ -F441745BAEC9BB014CEEFF5A41BA5C1CE085FEB980BAB9CF79F2158E03EF7E63\ -E29C38D7816A84D4F71E0F548B7FC316085AE38A060FF9B8DEC36F91AD9EBC0A\ -5B6C338CBB8F6659D342A24368CF:\ -E6D9B97F5BDB0BB4F5D2322CEFF8A1A747361BB937BCFA69EB8C23D98BEA5C5E\ -E25F9587648912D5E7F90E73C031A27E27FB11276CCB63E47C25B18649AE5DD8 - -EA40E83CB18B3A242C1ECC6CCD0B7853A439DAB2C569CFC6DC38A19F5C90ACBF\ -76AEF9EA3742FF3B54EF7D36EB7CE4FF1C9AB3BC119CFF6BE93C03E208783335\ -C0AB8137BE5B10CDC66FF3F89A1BDDC6A1EED74F504CBE7290690BB295A872B9\ -E3FE2CEE9E6C67C41DB8EFD7D863CF10F840FE618E7936DA3DCA5CA6DF933F24\ -F6954BA0801A1294CD8D7E66DFAFEC:\ -0A14506B804455218133711A3BA8307615E4F80A5334B86555B9CEC77C93450A\ -92F6A18BED9BD55B1848F78C2A49A76057FCF3509663F2E9010C39D94FC9918C - -157D5B7E4507F66D9A267476D33831E7BB768D4D04CC3438DA12F9010263EA5F\ -CAFBDE2579DB2F6B58F911D593D5F79FB05FE3596E3FA80FF2F761D1B0E57080\ -055C118C53E53CDB63055261D7C9B2B39BD90ACC32520CBBDBDA2C4FD8856DBC\ -EE173132A2679198DAF83007A9B5C51511AE49766C792A29520388444EBEFE28\ -256FB33D4260439CBA73A9479EE00C63:\ -8D03AFCB3940007FCBCEEB023C105918E6540D87658E59109CC6568CF804BD3F\ -A2B3968C28C650E55276218482BB8E42944272673D6A137D326477A1BAFE8F3D - -836B34B515476F613FE447A4E0C3F3B8F20910AC89A3977055C960D2D5D2B72B\ -D8ACC715A9035321B86703A411DDE0466D58A59769672AA60AD587B8481DE4BB\ -A552A1645779789501EC53D540B904821F32B0BD1855B04E4848F9F8CFE9EBD8\ -911BE95781A759D7AD9724A7102DBE576776B7C632BC39B9B5E19057E226552A\ -5994C1DBB3B5C7871A11F5537011044C53:\ -4862476DDDADDCDE60A35260AB6C448B9B6DAD7ED296FC48B81E288D0E397E69\ -4535CC8999F4D7F2F3E09F5CE034DB0F71EF5C812F3C6BBD73FBEF14B252BC55 - -CC7784A4912A7AB5AD3620AAB29BA87077CD3CB83636ADC9F3DC94F51EDF521B\ -2161EF108F21A0A298557981C0E53CE6CED45BDF782C1EF200D29BAB81DD6460\ -586964EDAB7CEBDBBEC75FD7925060F7DA2B853B2B089588FA0F8C16EC6498B1\ -4C55DCEE335CB3A91D698E4D393AB8E8EAC0825F8ADEBEEE196DF41205C01167\ -4E53426CAA453F8DE1CBB57932B0B741D4C6:\ -4B239C5B1C8B83924AE736E9D30582D16BF00A547023244247B389259BC62649\ -81606439AC9DDE0A7D371B73A34CAC998823803D7BD62ABF8905C9BD550EBAB8 - -7639B461FFF270B2455AC1D1AFCE782944AEA5E9087EB4A39EB96BB5C3BAAF0E\ -868C8526D3404F9405E79E77BFAC5FFB89BF1957B523E17D341D7323C302EA70\ -83872DD5E8705694ACDDA36D5A1B895AAA16ECA6104C82688532C8BFE1790B5D\ -C9F4EC5FE95BAED37E1D287BE710431F1E5E8EE105BC42ED37D74B1E55984BF1\ -C09FE6A1FA13EF3B96FAEAED6A2A1950A12153:\ -2B0D1C2780D8826CCE4B71A77C9833AE59C2BD0213789A8892CCD7B4FFF1D8A7\ -80E81AD4C2C1228D55DF5BA3625DE4860DB05743E4D07934C434BAD5A769131B - -EB6513FC61B30CFBA58D4D7E80F94D14589090CF1D80B1DF2E68088DC6104959\ -BA0D583D585E9578AB0AEC0CF36C48435EB52ED9AB4BBCE7A5ABE679C97AE2DB\ -E35E8CC1D45B06DDA3CF418665C57CBEE4BBB47FA4CAF78F4EE656FEC237FE4E\ -EBBAFA206E1EF2BD0EE4AE71BD0E9B2F54F91DAADF1FEBFD7032381D636B733D\ -CB3BF76FB14E23AFF1F68ED3DBCF75C9B99C6F26:\ -0880376CD5FFC7EBCC6E80FAE0D78DBB3532500BAB96CD4B755584D23E68CF59\ -F5297A34AE0A90184773412BC9548A80E4C54391B4CB59CE292D704C614DD1A1 - -1594D74BF5DDE444265D4C04DAD9721FF3E34CBF622DAF341FE16B96431F6C4D\ -F1F760D34F296EB97D98D560AD5286FEC4DCE1724F20B54FD7DF51D4BF137ADD\ -656C80546FB1BF516D62EE82BAA992910EF4CC18B70F3F8698276FCFB44E0EC5\ -46C2C39CFD8EE91034FF9303058B4252462F86C823EB15BF481E6B79CC3A0221\ -8595B3658E8B37382BD5048EAED5FD02C37944E73B:\ -E725B8C82C8D1F3963A77D505B0A929FD58846061BEA2BA7040B7D3B2AD95EE3\ -781CACA60B372EB5258A44A65BB9EE655A1EF9102F8BBD9E41FCFB2871DAEC7D - -4CFA1278903026F66FEDD41374558BE1B585D03C5C55DAC94361DF286D4BD39C\ -7CB8037ED3B267B07C346626449D0CC5B0DD2CF221F7E4C3449A4BE99985D2D5\ -E67BFF2923357DDEAB5ABCB4619F3A3A57B2CF928A022EB27676C6CF80568900\ -4FCA4D41EA6C2D0A4789C7605F7BB838DD883B3AD3E6027E775BCF2628814280\ -99C7FFF95B14C095EA130E0B9938A5E22FC52650F591:\ -31175C65FF1133F5F53DB80DEB90F6B2E79727D4C8E77C5E3F5DEF70525B871B\ -50249C6F2EE1CA6F11A7CD9C578CF13D5FCBD74DE1D05AF6076A5459E10B4B9D - -D3E65CB92CFA79662F6AF493D696A07CCF32AAADCCEFF06E73E8D9F6F909209E\ -66715D6E978788C49EFB9087B170ECF3AA86D2D4D1A065AE0EFC8924F365D676\ -B3CB9E2BEC918FD96D0B43DEE83727C9A93BF56CA2B2E59ADBA85696546A8150\ -67FC7A78039629D4948D157E7B0D826D1BF8E81237BAB7321312FDAA4D521744\ -F988DB6FDF04549D0FDCA393D639C729AF716E9C8BBA48:\ -870B40EE6B774B732E15DEE647F75BF3D5DD6FD364C7E1BB184D8AC1F0C991E2\ -486DCE6BD6CEFA1DFFE13C50260D4A0FB6C23E29D7E62CFF0F8DE785CA53C2A2 - -842CC583504539622D7F71E7E31863A2B885C56A0BA62DB4C2A3F2FD12E79660\ -DC7205CA29A0DC0A87DB4DC62EE47A41DB36B9DDB3293B9AC4BAAE7DF5C6E720\ -1E17F717AB56E12CAD476BE49608AD2D50309E7D48D2D8DE4FA58AC3CFEAFEEE\ -48C0A9EEC88498E3EFC51F54D300D828DDDCCB9D0B06DD021A29CF5CB5B25069\ -15BEB8A11998B8B886E0F9B7A80E97D91A7D01270F9A7717:\ -8FDE68D448144F3B4BD12011DF94A463C40BE946821F80EC8197E36EB46554F7\ -AD8B6CA9F6FCC8C05B3C0C2C909966AACBA2A1AA6E980E57AEA1CB35B01DC991 - -6C4B0A0719573E57248661E98FEBE326571F9A1CA813D3638531AE28B4860F23\ -C3A3A8AC1C250034A660E2D71E16D3ACC4BF9CE215C6F15B1C0FC7E77D3D2715\ -7E66DA9CEEC9258F8F2BF9E02B4AC93793DD6E29E307EDE3695A0DF63CBDC0FC\ -66FB770813EB149CA2A916911BEE4902C47C7802E69E405FE3C04CEB5522792A\ -5503FA829F707272226621F7C488A7698C0D69AA561BE9F378:\ -F19E37E56DE97B6EF009CB1B0A8FEB42891DE80A9895C7413367C71FF34815F9\ -77A053FD621C30738C347262DF2B07EC3E455DC729803FA3D68BFBFF42415500 - -51B7DBB7CE2FFEB427A91CCFE5218FD40F9E0B7E24756D4C47CD55606008BDC2\ -7D16400933906FD9F30EFFDD4880022D081155342AF3FB6CD53672AB7FB5B3A3\ -BCBE47BE1FD3A2278CAE8A5FD61C1433F7D350675DD21803746CADCA574130F0\ -1200024C6340AB0CC2CF74F2234669F34E9009EF2EB94823D62B31407F4BA46F\ -1A1EEC41641E84D77727B59E746B8A671BEF936F05BE820759FA:\ -BC3199569054F2DBDC66744F3B6B7DC23D3708BCD96A8C7B7C5D9E58087E2E4A\ -5D5606CEF88AD63044C9A4F0D019358846EE83FE98CFE9C5B03B29A2D31B3134 - -83599D93F5561E821BD01A472386BC2FF4EFBD4AED60D5821E84AAE74D807102\ -9810F5E286F8F17651CD27DA07B1EB4382F754CD1C95268783AD09220F550284\ -0370D494BEB17124220F6AFCE91EC8A0F55231F9652433E5CE3489B727716CF4\ -AEBA7DCDA20CD29AA9A859201253F948DD94395ABA9E3852BD1D60DDA7AE5DC0\ -45B283DA006E1CBAD83CC13292A315DB5553305C628DD091146597:\ -C44780E409877812578CF0D738A6394B1EBF7183941323C2891D9604B93E5748\ -EAB2FD4732DCE6D9A5D1F27B7FADFD5DFDC87264BE97F86F700AE87A5D1B8227 - -2BE9BF526C9D5A75D565DD11EF63B979D068659C7F026C08BEA4AF161D85A462\ -D80E45040E91F4165C074C43AC661380311A8CBED59CC8E4C4518E80CD2C78AB\ -1CABF66BFF83EAB3A80148550307310950D034A6286C93A1ECE8929E6385C5E3\ -BB6EA8A7C0FB6D6332E320E71CC4EB462A2A62E2BFE08F0CCAD93E61BEDB5DD0\ -B786A728AB666F07E0576D189C92BF9FB20DCA49AC2D3956D47385E2:\ -98474C61C2639BA15B58D98429F0E3489504CC6ED3BF638ACCF6859443AF2BCB\ -F85EDBEF50191EDB6923636B21C2E76E985831F187575BA82E9AB4CA40CC482F - -CA76D3A12595A817682617006848675547D3E8F50C2210F9AF906C0E7CE50B44\ -60186FE70457A9E879E79FD4D1A688C70A347361C847BA0DD6AA52936EAF8E58\ -A1BE2F5C1C704E20146D366AEB3853BED9DE9BEFE9569AC8AAEA37A9FB7139A1\ -A1A7D5C748605A8DEFB297869EBEDD71D615A5DA23496D11E11ABBB126B206FA\ -0A7797EE7DE117986012D0362DCEF775C2FE145ADA6BDA1CCB326BF644:\ -F94556B89FA106C94D32F723061D2E88EBC4164B1B02D0485851782F84CC3229\ -7D7A3AF9A1CC430702B78B5BDC9E50ABDD703201AA73F8811AEB4A80A5992C64 - -F76B85DC67421025D64E93096D1D712B7BAF7FB001716F02D33B2160C2C882C3\ -10EF13A576B1C2D30EF8F78EF8D2F465007109AAD93F74CB9E7D7BEF7C9590E8\ -AF3B267C89C15DB238138C45833C98CC4A471A7802723EF4C744A853CF80A0C2\ -568DD4ED58A2C9644806F42104CEE53628E5BDF7B63B0B338E931E31B87C24B1\ -46C6D040605567CEEF5960DF9E022CB469D4C787F4CBA3C544A1AC91F95F:\ -60440509E00573D66609563D8F1504A196AF06D46F6CDBFEEAFF61FE46AD0845\ -6EE24BCA13DDED11818776CAC19376AE7415338A3D4F0035FF276188BF11420F - -25B8C9C032EA6BCD733FFC8718FBB2A503A4EA8F71DEA1176189F694304F0FF6\ -8E862A8197B839957549EF243A5279FC2646BD4C009B6D1EDEBF24738197ABB4\ -C992F6B1DC9BA891F570879ACCD5A6B18691A93C7D0A8D38F95B639C1DAEB48C\ -4C2F15CCF5B9D508F8333C32DE78781B41850F261B855C4BEBCC125A380C54D5\ -01C5D3BD07E6B52102116088E53D76583B0161E2A58D0778F091206AABD5A1:\ -2D552519EC54E5BBBFDBB543EAE5482D9B964A952E880A88567E7DDF1DCD0D5A\ -A353F7BE15D7634ADBDBEFA85355839FDA2B738DA987BA568103EABE2CB53D23 - -21CFDC2A7CCB7F331B3D2EEFFF37E48AD9FA9C788C3F3C200E0173D99963E1CB\ -CA93623B264E920394AE48BB4C3A5BB96FFBC8F0E53F30E22956ADABC2765F57\ -FB761E147ECBF8567533DB6E50C8A1F894310A94EDF806DD8CA6A0E141C0FA7C\ -9FAE6C6AE65F18C93A8529E6E5B553BF55F25BE2E80A9882BD37F145FECBEB3D\ -447A3C4E46C21524CC55CDD62F521AB92A8BA72B897996C49BB273198B7B1C9E:\ -AFB37A28A4F216A6CC3D6AED09E82F40B93E445F892040F21D1AABAFE99AF7F0\ -01837CF0AD8DD2E2983282F35ADFB9DCEB49B2C80C85153772A8E587ABE7F18A - -4E452BA42127DCC956EF4F8F35DD68CB225FB73B5BC7E1EC5A898BBA2931563E\ -74FAFF3B67314F241EC49F4A7061E3BD0213AE826BAB380F1F14FAAB8B0EFDDD\ -5FD1BB49373853A08F30553D5A55CCBBB8153DE4704F29CA2BDEEF0419468E05\ -DD51557CCC80C0A96190BBCC4D77ECFF21C66BDF486459D427F986410F883A80\ -A5BCC32C20F0478BB9A97A126FC5F95451E40F292A4614930D054C851ACD019C\ -CF:\ -721B1BC60845499B1A50B716F97FA9FD584132C1E30A1705779DBBAE644CBB57\ -51AD1B1B379CC91BA4C3054BD060B88050BABA98BE1864B1B96C3691A096EF21 - -FA85671DF7DADF99A6FFEE97A3AB9991671F5629195049880497487867A6C446\ -B60087FAC9A0F2FCC8E3B24E97E42345B93B5F7D3691829D3F8CCD4BB36411B8\ -5FC2328EB0C51CB3151F70860AD3246CE0623A8DC8B3C49F958F8690F8E3860E\ -71EB2B1479A5CEA0B3F8BEFD87ACAF5362435EAECCB52F38617BC6C5C2C6E269\ -EAD1FBD69E941D4AD2012DA2C5B21BCFBF98E4A77AB2AF1F3FDA3233F046D38F\ -1DC8:\ -EFFFB02598398243D8784EB8ADA33D314C8D396406BB7FB6A668085B23438AB4\ -580BFB5258E5D616F9030C6A8928F4F753D6800C90EA2812482BED268A806E8E - -E90847AE6797FBC0B6B36D6E588C0A743D725788CA50B6D792352EA8294F5BA6\ -54A15366B8E1B288D84F5178240827975A763BC45C7B0430E8A559DF4488505E\ -009C63DA994F1403F407958203CEBB6E37D89C94A5EACF6039A327F6C4DBBC7A\ -2A307D976AA39E41AF6537243FC218DFA6AB4DD817B6A397DF5CA69107A91987\ -99ED248641B63B42CB4C29BFDD7975AC96EDFC274AC562D0474C60347A078CE4\ -C25E88:\ -F1CF53FFC952C446EEF49F9D89370757C74CB8F2D99223C47EABD296151161CB\ -86C6A34833E7AC6B75E8119A8274FD2B9066EBB9B787A4A37C9036E6E01BA9CE - -F6D5C2B6C93954FC627602C00C4CA9A7D3ED12B27173F0B2C9B0E4A5939398A6\ -65E67E69D0B12FB7E4CEB253E8083D1CEB724AC07F009F094E42F2D6F2129489\ -E846EAFF0700A8D4453EF453A3EDDC18F408C77A83275617FABC4EA3A2833AA7\ -3406C0E966276079D38E8E38539A70E194CC5513AAA457C699383FD1900B1E72\ -BDFB835D1FD321B37BA80549B078A49EA08152869A918CA57F5B54ED71E4FD3A\ -C5C06729:\ -F1C9A73B10BA528A61AB86F91A9A05261B447049C7ECCF37AB1E0C1219F14F0F\ -0F2C5B419A7595550F2D651A17368C3FB7538A14FF9FFC4C4D9098803D942D3B - -CF8562B1BED89892D67DDAAF3DEEB28246456E972326DBCDB5CF3FB289ACA01E\ -68DA5D59896E3A6165358B071B304D6AB3D018944BE5049D5E0E2BB819ACF67A\ -6006111089E6767132D72DD85BEDDCBB2D64496DB0CC92955AB4C6234F1EEA24\ -F2D51483F2E209E4589BF9519FAC51B4D061E801125E605F8093BB6997BC163D\ -551596FE4AB7CFAE8FB9A90F6980480CE0C229FD1675409BD788354DAF316240\ -CFE0AF93EB:\ -5A1A31490BC85FACC5101EE18093BEC7C2CB717A54AFDEE47F98660032D912F2\ -3792F1D0AB0BE8A3C7F0D000DAC238DE843CC84178CBAA910090AC827197AD85 - -2ACE31ABB0A2E3267944D2F75E1559985DB7354C6E605F18DC8470423FCA30B7\ -331D9B33C4A4326783D1CAAE1B4F07060EFF978E4746BF0C7E30CD61040BD5EC\ -2746B29863EB7F103EBDA614C4291A805B6A4C8214230564A0557BC7102E0BD3\ -ED23719252F7435D64D210EE2AAFC585BE903FA41E1968C50FD5D5367926DF7A\ -05E3A42CF07E656FF92DE73B036CF8B19898C0CB34557C0C12C2D8B84E91181A\ -F467BC75A9D1:\ -24B5A99041785BC5C5519190B4AAAF92770E35D07213A6DE55EB8811324CC63E\ -3AFCF61F973A896CFB30315873C0071E2BF3BB976A53163422A01192915B9C1E - -0D8D09AED19F1013969CE5E7EB92F83A209AE76BE31C754844EA9116CEB39A22\ -EBB6003017BBCF26555FA6624185187DB8F0CB3564B8B1C06BF685D47F3286ED\ -A20B83358F599D2044BBF0583FAB8D78F854FE0A596183230C5EF8E54426750E\ -AF2CC4E29D3BDD037E734D863C2BD9789B4C243096138F7672C232314EFFDFC6\ -513427E2DA76916B5248933BE312EB5DDE4CF70804FB258AC5FB82D58D08177A\ -C6F4756017FFF5:\ -7FF6491E79CD3F743C3D735A0AC1BC5EC3395950C65111D7BC2E5E3719AB0FE9\ -20DDA443B1FD8A8D557633B95E68354EF8F78A91A769CF0798871F8B11B77478 - -C3236B73DEB7662BF3F3DAA58F137B358BA610560EF7455785A9BEFDB035A066\ -E90704F929BD9689CEF0CE3BDA5ACF4480BCEB8D09D10B098AD8500D9B6071DF\ -C3A14AF6C77511D81E3AA8844986C3BEA6F469F9E02194C92868CD5F51646256\ -798FF0424954C1434BDFED9FACB390B07D342E992936E0F88BFD0E884A0DDB67\ -9D0547CCDEC6384285A45429D115AC7D235A717242021D1DC35641F5F0A48E84\ -45DBA58E6CB2C8EA:\ -0154D5832EC5594FF994034BE3FD3E61E7EEBC8E43C20C6CC9910F15650FBAED\ -2915087AC641DBF60A2083FF14AB084A27B5CC9A4E84C54A6B361D38C72746D5 - -B39FEB8283EADC63E8184B51DF5AE3FD41AAC8A963BB0BE1CD08AA5867D8D910\ -C669221E73243360646F6553D1CA05A84E8DC0DE05B6419EC349CA994480193D\ -01C92525F3FB3DCEFB08AFC6D26947BDBBFD85193F53B50609C6140905C53A66\ -86B58E53A319A57B962331EDE98149AF3DE3118A819DA4D76706A0424B4E1D29\ -10B0ED26AF61D150EBCB46595D4266A0BD7F651BA47D0C7F179CA28545007D92\ -E8419D48FDFBD744CE:\ -5B617AB6F6FFA82197ED058D4CFDF54398FA3CD95074A745D389C05D8DCE1B9D\ -4B9E88CE4B519017EA3A55EB89D06D2CE321F4801D079D5867EAC366BC270968 - -A983D54F503803E8C7999F4EDBBE82E9084F422143A932DDDDC47A17B0B7564A\ -7F37A99D0786E99476428D29E29D3C197A72BFAB1342C12A0FC4787FD7017D7A\ -6174049EA43B5779169EF7472BDBBD941DCB82FC73AAC45A8A94C9F2BD3477F6\ -1FD3B796F02A1B8264A214C6FEA74B7051B226C722099EC7883A462B83B6AFDD\ -4009248B8A237F605FE5A08FE7D8B45321421EBBA67BD70A0B00DDBF94BAAB7F\ -359D5D1EEA105F28DCFB:\ -1D96D1CE0C82A43D4135ED8A022A5F145AB42FDFA024C894939D6FA422EC4F62\ -1A1402113E1105A96273DD4F7884879F63EF41830A1EA0B4516937BBB2DBE44D - -E4D1C1897A0A866CE564635B74222F9696BF2C7F640DD78D7E2ACA66E1B61C64\ -2BB03EA7536AAE597811E9BF4A7B453EDE31F97B46A5F0EF51A071A2B3918DF1\ -6B152519AE3776F9F1EDAB4C2A377C3292E96408359D3613844D5EB393000283\ -D5AD3401A318B12FD1474B8612F2BB50FB6A8B9E023A54D7DDE28C43D6D8854C\ -8D9D1155935C199811DBFC87E9E0072E90EB88681CC7529714F8FB8A2C9D8856\ -7ADFB974EE205A9BF7B848:\ -DE1255FCB5A191E19B663DF4A9DC5471F39F13BE5F8A9CC1C3F6FE2844EB8CF0\ -38E7FF1825D26A8F135AAA77120925ADDB6ACC12EA1BF0E60DFA236FBE38458F - -B10C59723E3DCADD6D75DF87D0A1580E73133A9B7D00CB95EC19F5547027323B\ -E75158B11F80B6E142C6A78531886D9047B08E551E75E6261E79785366D7024B\ -D7CD9CF322D9BE7D57FB661069F2481C7BB759CD71B4B36CA2BC2DF6D3A328FA\ -EBDB995A9794A8D72155ED551A1F87C80BF6059B43FC764900B18A1C2441F748\ -7743CF84E565F61F8DD2ECE6B6CCC9444049197AAAF53E926FBEE3BFCA8BE588\ -EC77F29D211BE89DE18B15F6:\ -B17A24CA14830ED093C39E8323EC0DFD903172458D023D10FE4125D0EB4AF0E7\ -578B1EA1D5148348AB8D6CAB98B20B18BCC52A6CBA85851D2B74B20735BE6E48 - -DB11F609BABA7B0CA634926B1DD539C8CBADA24967D7ADD4D9876F77C2D80C0F\ -4DCEFBD7121548373582705CCA2495BD2A43716FE64ED26D059CFB566B3364BD\ -49EE0717BDD9810DD14D8FAD80DBBDC4CAFB37CC60FB0FE2A80FB4541B8CA9D5\ -9DCE457738A9D3D8F641AF8C3FD6DA162DC16FC01AAC527A4A0255B4D231C0BE\ -50F44F0DB0B713AF03D968FE7F0F61ED0824C55C4B5265548FEBD6AAD5C5EEDF\ -63EFE793489C39B8FD29D104CE:\ -602B683C28F25E9F20C413D2B357DCDF3E339945C5BD41FCA69FFFD2E1658F9F\ -B654B94B62BEE72087EABEF2F2F6AEDE72C7DC45DD4549CBC75465CC10D4C554 - -BEBD4F1A84FC8B15E4452A54BD02D69E304B7F32616AADD90537937106AE4E28\ -DE9D8AAB02D19BC3E2FDE1D651559E296453E4DBA94370A14DBBB2D1D4E20223\ -02EE90E208321EFCD8528AD89E46DC839EA9DF618EA8394A6BFF308E7726BAE0\ -C19BCD4BE52DA6258E2EF4E96AA21244429F49EF5CB486D7FF35CAC1BACB7E95\ -711944BCCB2AB34700D42D1EB38B5D536B947348A458EDE3DC6BD6EC547B1B0C\ -AE5B257BE36A7124E1060C170FFA:\ -E90126404BFED0DCF726CA50A6D0620305D1A84EFB0E768044D2DB920FB041E7\ -DEAA465777D312E2867E6E9E50559BB5ECE3A4ED6F844504C39E12988917FFF5 - -5ACA56A03A13784BDC3289D9364F79E2A85C12276B49B92DB0ADAA4F206D5028\ -F213F678C3510E111F9DC4C1C1F8B6ACB17A6413AA227607C515C62A733817BA\ -5E762CC6748E7E0D6872C984D723C9BB3B117EB8963185300A80BFA65CDE495D\ -70A46C44858605FCCBED086C2B45CEF963D33294DBE9706B13AF22F1B7C4CD5A\ -001CFEC251FBA18E722C6E1C4B1166918B4F6F48A98B64B3C07FC86A6B17A6D0\ -480AB79D4E6415B520F1C484D675B1:\ -D98758D0CBE6C5FEF11A4EDD8E9170FFA7F37F40914B4D836025B3FD71FA2B51\ -8164266D974A40AE2D7C3C359CA675E94B04D08D3EE56346A51B82366F1EF0F0 - -A5AAD0E4646A32C85CFCAC73F02FC5300F1982FABB2F2179E28303E447854094\ -CDFC854310E5C0F60993CEFF54D84D6B46323D930ADB07C17599B35B505F09E7\ -84BCA5985E0172257797FB53649E2E9723EFD16865C31B5C3D5113B58BB0BFC8\ -920FABDDA086D7537E66D709D050BD14D0C960873F156FAD5B3D3840CDFCDC9B\ -E6AF519DB262A27F40896AB25CC39F96984D650611C0D5A3080D5B3A1BF186AB\ -D42956588B3B58CD948970D298776060:\ -7EA57C6B9741AE7C07E11766DC6F69C83A72533126ACAFCA968832FCBC7A28DF\ -18968BB582E6933898672E322235C9D8FA310F485169C55E04672FFDA2A01099 - -06CBBE67E94A978203EAD6C057A1A5B098478B4B4CBEF5A97E93C8E42F557271\ -3575FC2A884531D7622F8F879387A859A80F10EF02708CD8F7413AB385AFC357\ -678B9578C0EBF641EF076A1A30F1F75379E9DCB2A885BDD295905EE80C0168A6\ -2A9597D10CF12DD2D8CEE46645C7E5A141F6E0E23AA482ABE5661C16E69EF1E2\ -8371E2E236C359BA4E92C25626A7B7FF13F6EA4AE906E1CFE163E91719B1F750\ -A96CBDE5FBC953D9E576CD216AFC90323A:\ -CEFB46600FC757512E917DFA063BEC761DA6140893D3B7BA01677C6D142CA296\ -0B4B016CCF9C9A175D8E83CC2F1A9D4171D6074E2405B866CDEE57683BD4334F - -F1C528CF7739874707D4D8AD5B98F7C77169DE0B57188DF233B2DC8A5B31EDA5\ -DB4291DD9F68E6BAD37B8D7F6C9C0044B3BF74BBC3D7D1798E138709B0D75E7C\ -593D3CCCDC1B20C7174B4E692ADD820ACE262D45CCFAE2077E87879634716806\ -0A162ECCA8C38C1A88350BD63BB539134F700FD4ADDD5959E255337DAA06BC86\ -358FABCBEFDFB5BC889783D843C08AADC6C4F6C36F65F156E851C9A0F917E4A3\ -67B5AD93D874812A1DE6A7B93CD53AD97232:\ -EB861B333F0763CC1F0747ECE23FF46B98962B096CBF95335B6BA9992F291611\ -5887E77A812CE6F78B00530194C71B97ABF4082F31C09F547B025B4388199E75 - -9D9F3A7ECD51B41F6572FD0D0881E30390DFB780991DAE7DB3B47619134718E6\ -F987810E542619DFAA7B505C76B7350C6432D8BF1CFEBDF1069B90A35F0D04CB\ -DF130B0DFC7875F4A4E62CDB8E525AADD7CE842520A482AC18F09442D78305FE\ -85A74E39E760A4837482ED2F437DD13B2EC1042AFCF9DECDC3E877E50FF4106A\ -D10A525230D11920324A81094DA31DEAB6476AA42F20C84843CFC1C58545EE80\ -352BDD3740DD6A16792AE2D86F11641BB717C2:\ -51CBA976ABC7E8D55F67B1A056B311B861FEE85D2FD69BED53DD274024D87DBD\ -269C41B85F6A1C19FF3D32C444CC7BD8F11478147BBCE99DCBD29E34988EA808 - -5179888724819FBAD3AFA927D3577796660E6A81C52D98E9303261D5A4A83232\ -F6F758934D50AA83FF9E20A5926DFEBAAC49529D006EB923C5AE5048ED544EC4\ -71ED7191EDF46363383824F915769B3E688094C682B02151E5EE01E510B431C8\ -865AFF8B6B6F2F59CB6D129DA79E97C6D2B8FA6C6DA3F603199D2D1BCAB54768\ -2A81CD6CF65F6551121391D78BCC23B5BD0E922EC6D8BF97C952E84DD28AEF90\ -9ABA31EDB903B28FBFC33B7703CD996215A11238:\ -10863687D6D1144DCF9D03C10CB66B33E9813EFB9118EEFB947FC68997E6CCF6\ -D93DCD4C2E33A2D187F5E6F5569D291F16B985908F4015599A6214C24AF791B9 - -576EF3520D30B7A4899B8C0D5E359E45C5189ADD100E43BE429A02FB3DE5FF4F\ -8FD0E79D9663ACCA72CD29C94582B19292A557C5B1315297D168FBB54E9E2ECD\ -13809C2B5FCE998EDC6570545E1499DBE7FB74D47CD7F35823B212B05BF3F5A7\ -9CAA34224FDD670D335FCB106F5D92C3946F44D3AFCBAE2E41AC554D8E6759F3\ -32B76BE89A0324AA12C5482D1EA3EE89DED4936F3E3C080436F539FA137E74C6\ -D3389BDF5A45074C47BC7B20B0948407A66D855E2F:\ -DE8591FD57ABD6D73CF01C94083F916C897FC0CABC1049BCD75D64C768D3B4C4\ -2F05BA4DEAAB83BB643BA451CC224B0A61110647FA35AC14F63D9C2FEA5231C9 - -0DF2152FA4F4357C8741529DD77E783925D3D76E95BAFA2B542A2C33F3D1D117\ -D159CF473F82310356FEE4C90A9E505E70F8F24859656368BA09381FA245EB6C\ -3D763F3093F0C89B972E66B53D59406D9F01AEA07F8B3B615CAC4EE4D05F542E\ -7D0DAB45D67CCCCD3A606CCBEB31EA1FA7005BA07176E60DAB7D78F6810EF086\ -F42F08E595F0EC217372B98970CC6321576D92CE38F7C397A403BADA1548D205\ -C343AC09DECA86325373C3B76D9F32028FEA8EB32515:\ -4E529B73E0AFA555B75A7EF2B43F32D71002045F0ABF519C5C1E31F7213AE10B\ -B1474BED81450E9956779216B0DC2D4067B181744D9E66AF3F34306CEFD5FDE8 - -3E15350D87D6EBB5C8AD99D42515CFE17980933C7A8F6B8BBBF0A63728CEFAAD\ -2052623C0BD5931839112A48633FB3C2004E0749C87A41B26A8B48945539D1FF\ -41A4B269462FD199BFECD45374756F55A9116E92093AC99451AEFB2AF9FD32D6\ -D7F5FBC7F7A540D5097C096EBC3B3A721541DE073A1CC02F7FB0FB1B9327FB0B\ -1218CA49C9487AB5396622A13AE546C97ABDEF6B56380DDA7012A8384091B665\ -6D0AB272D363CEA78163FF765CDD13AB1738B940D16CAE:\ -CAD6B2E517A3A890D69C8058B427CF4CE48C775B84EC7E47D12C3D2BFD746D3F\ -6DD1814F6721B5DA519A6630E581846F999F727970C67940DFFF70015DAE9053 - -C38D6B0B757CB552BE40940ECE0009EF3B0B59307C1451686F1A22702922800D\ -58BCE7A636C1727EE547C01B214779E898FC0E560F8AE7F61BEF4D75EAA696B9\ -21FD6B735D171535E9EDD267C192B99880C87997711002009095D8A7A437E258\ -104A41A505E5EF71E5613DDD2008195F0C574E6BA3FE40099CFA116E5F1A2FA8\ -A6DA04BADCB4E2D5D0DE31FDC4800891C45781A0AAC7C907B56D631FCA5CE8B2\ -CDE620D11D1777ED9FA603541DE794DDC5758FCD5FAD78C0:\ -24C90C5D7F0C9471FA119437C8CA847E81D556F66FB6316DD0FB53DD57DFB3BA\ -7D14AC4D1C9C55F04FB6FE2EA9E67178890A3501567059015B7D993256CA1C54 - -8D2DE3F0B37A6385C90739805B170057F091CD0C7A0BC951540F26A5A75B3E69\ -4631BB64C7635EED316F51318E9D8DE13C70A2ABA04A14836855F35E480528B7\ -76D0A1E8A23B547C8B8D6A0D09B241D3BE9377160CCA4E6793D00A515DC2992C\ -B7FC741DACA171431DA99CCE6F7789F129E2AC5CF65B40D703035CD2185BB936\ -C82002DAF8CBC27A7A9E554B06196630446A6F0A14BA155ED26D95BD627B7205\ -C072D02B60DB0FD7E49EA058C2E0BA202DAFF0DE91E845CF79:\ -4BA61EFF8CEC62389A932E24775211189098BDCDFDC6615AE79948914D6361C6\ -BBC45B7DEAFB4A58B78AF4ABFBEB8991EDCF30A2A586BE8C6CECF9875C734D7A - -C464BBDAD275C50DCD983B65AD1019B9FF85A1E71C807F3204BB2C921DC31FBC\ -D8C5FC45868AE9EF85B6C9B83BBA2A5A822201ED68586EC5EC27FB2857A5D1A2\ -D09D09115F22DCC39FE61F5E1BA0FF6E8B4ACB4C6DA748BE7F3F0839739394FF\ -7FA8E39F7F7E84A33C3866875C01BCB1263C9405D91908E9E0B50E7459FABB63\ -D8C6BBB73D8E3483C099B55BC30FF092FF68B6ADEDFD477D63570C9F5515847F\ -36E24BA0B705557130CEC57EBAD1D0B31A378E91894EE26E3A04:\ -1F6CD40F56856615AAFD4103618908530C8EEF746389ADCE64E2CADFFBACB9DA\ -B4E5F973CBB86E607AF00F32948E4CF8BAFD2782653710B38FBF890922773AE5 - -8B8D68BB8A75732FE272815A68A1C9C5AA31B41DEDC8493E76525D1D013D33CE\ -BD9E21A5BB95DB2616976A8C07FCF411F5F6BC6F7E0B57ACA78CC2790A6F9B89\ -8858AC9C79B165FF24E66677531E39F572BE5D81EB3264524181115F32780257\ -BFB9AEEC6AF12AF28E587CAC068A1A2953B59AD680F4C245B2E3EC36F59940D3\ -7E1D3DB38E13EDB29B5C0F404F6FF87F80FC8BE7A225FF22FBB9C8B6B1D7330C\ -57840D24BC75B06B80D30DAD6806544D510AF6C4785E823AC3E0B8:\ -2E6D38768361D7BA583A5314947E43FA294E29F87BD7CC2D6F49890912885F90\ -7D8FA6BEF24B4824A4FF777C5FCF04D655FB0F9C2A6C7ADABEC9B92A6698D33E - -6B018710446F368E7421F1BC0CCF562D9C1843846BC8D98D1C9BF7D9D6FCB48B\ -FC3BF83B36D44C4FA93430AF75CD190BDE36A7F92F867F58A803900DF8018150\ -384D85D82132F123006AC2AEBA58E02A037FE6AFBD65ECA7C44977DD3DC74F48\ -B6E7A1BFD5CC4DCF24E4D52E92BD4455848E4928B0EAC8B7476FE3CC03E862AA\ -4DFF4470DBFED6DE48E410F25096487ECFC32A27277F3F5023B2725ADE461B13\ -55889554A8836C9CF53BD767F5737D55184EEA1AB3F53EDD0976C485:\ -EB395350C2557F16601D19DC75031348103F059A0FB890CC2A002932E0619CE8\ -E52F0F39688DF0DB724CB095B69A5643154C9336FBBA50F35C6A4C05477737EC - -C9534A24714BD4BE37C88A3DA1082EDA7CABD154C309D7BD670DCCD95AA53559\ -4463058A29F79031D6ECAA9F675D1211E9359BE82669A79C855EA8D89DD38C2C\ -761DDD0EC0CE9E97597432E9A1BEAE062CDD71EDFDFD464119BE9E69D18A7A7F\ -D7CE0E2106F0C8B0ABF4715E2CA48EF9F454DC203C96656653B727083513F8EF\ -B86E49C513BB758B3B052FE21F1C05BB33C37129D6CC81F1AEF6ADC45B0E8827\ -A830FE545CF57D0955802C117D23CCB55EA28F95C0D8C2F9C5A242B33F:\ -01449772284E566C1E31A6924A2D9157BDCDD694B5ED1039370BBB11F58851FE\ -5677B25276EC84FDD8472426735C532BCA3D59ACB6FDCE13C0DEA9376DDA8AAE - -07906C87297B867ABF4576E9F3CC7F82F22B154AFCBF293B9319F1B0584DA6A4\ -0C27B32E0B1B7F412C4F1B82480E70A9235B12EC27090A5A33175A2BB28D8ADC\ -475CEFE33F7803F8CE27967217381F02E67A3B4F84A71F1C5228E0C2AD971373\ -F6F672624FCEA8D1A9F85170FAD30FA0BBD25035C3B41A6175D467998BD1215F\ -6F3866F53847F9CF68EF3E2FBB54BC994DE2302B829C5EEA68EC441FCBAFD7D1\ -6AE4FE9FFF98BF00E5BC2AD54DD91FF9FDA4DD77B6C754A91955D1FBAAD0:\ -5E4DE3451E6BF67CEC13F960D86FA9035B1AA4A824F0AFF446271D39784A0E73\ -5FDD00AE53D6347DDFEC4EC6A552AD78AF145BBA1CD4C34C300E3AAEEF88838E - -588E94B9054ABC2189DF69B8BA34341B77CDD528E7860E5DEFCAA79B0C9A452A\ -D4B82AA306BE84536EB7CEDCBE058D7B84A6AEF826B028B8A0271B69AC3605A9\ -635EA9F5EA0AA700F3EB7835BC54611B922964300C953EFE7491E3677C2CEBE0\ -822E956CD16433B02C68C4A23252C3F9E151A416B4963257B783E038F6B4D5C9\ -F110F871652C7A649A7BCEDCBCCC6F2D0725BB903CC196BA76C76AA9F10A190B\ -1D1168993BAA9FFC96A1655216773458BEC72B0E39C9F2C121378FEAB4E76A:\ -814E7B36373B0276718212ABA4E0D9760E433B680FC59869533E4F1D34010047\ -977C91FA33C0C6DFC2F6A4DADCE34BC897A3F7E2CA9935B99D8E5425AB46060D - -08959A7E4BAAE874928813364071194E2939772F20DB7C3157078987C557C2A6\ -D5ABE68D520EEF3DC491692E1E21BCD880ADEBF63BB4213B50897FA005256ED4\ -1B5690F78F52855C8D9168A4B666FCE2DA2B456D7A7E7C17AB5F2FB1EE90B79E\ -698712E963715983FD07641AE4B4E9DC73203FAC1AE11FA1F8C7941FCC82EAB2\ -47ADDB56E2638447E9D609E610B60CE086656AAEBF1DA3C8A231D7D94E2FD0AF\ -E46B391FF14A72EAEB3F44AD4DF85866DEF43D4781A0B3578BC996C87970B132:\ -9B28504942E11B4FE971337FBB905DD772EF9D4982AC4D5EC7C3EFCEBBD1F32D\ -6BC7EDCE173A75DE81C5651A3D1DD22A5D63A2763986356331F18BD02D77B036 - -CB2A234F45E2ECD5863895A451D389A369AAB99CFEF0D5C9FFCA1E6E63F763B5\ -C14FB9B478313C8E8C0EFEB3AC9500CF5FD93791B789E67EAC12FD038E2547CC\ -8E0FC9DB591F33A1E4907C64A922DDA23EC9827310B306098554A4A78F050262\ -DB5B545B159E1FF1DCA6EB734B872343B842C57EAFCFDA8405EEDBB48EF32E99\ -696D135979235C3A05364E371C2D76F1902F1D83146DF9495C0A6C57D7BF9EE7\ -7E80F9787AEE27BE1FE126CDC9EF893A4A7DCBBC367E40FE4E1EE90B42EA25AF\ -01:\ -563AAB317672C0DAFC3578FD23DD1416A577D76099B850801C82B03A7FD9037D\ -DC84E7960817B893C2AA5444C46CC5ACED01821E0A299A8BFC13860B6DE3A0C2 - -D16BEADF02AB1D4DC6F88B8C4554C51E866DF830B89C06E786A5F8757E890931\ -0AF51C840EFE8D20B35331F4355D80F73295974653DDD620CDDE4730FB6C8D0D\ -2DCB2B45D92D4FBDB567C0A3E86BD1A8A795AF26FBF29FC6C65941CDDB090FF7\ -CD230AC5268AB4606FCCBA9EDED0A2B5D014EE0C34F0B2881AC036E24E151BE8\ -9EEB6CD9A7A790AFCCFF234D7CB11B99EBF58CD0C589F20BDAC4F9F0E28F75E3\ -E04E5B3DEBCE607A496D848D67FA7B49132C71B878FD5557E082A18ECA1FBDA9\ -4D4B:\ -7365A562E0A02312B2B26D583CA242C479A96F50827B4E87B4E7D4F4B4174C39\ -A76E843FB1D3D2F3731B06161A02BA5E64860D916E607BB5954765B34F57072C - -8F65F6BC59A85705016E2BAE7FE57980DE3127E5AB275F573D334F73F8603106\ -EC3553016608EF2DD6E69B24BE0B7113BF6A760BA6E9CE1C48F9E186012CF96A\ -1D4849D75DF5BB8315387FD78E9E153E76F8BA7EC6C8849810F59FB4BB9B0043\ -18210B37F1299526866F44059E017E22E96CBE418699D014C6EA01C9F0038B10\ -299884DBEC3199BB05ADC94E955A1533219C1115FED0E5F21228B071F40DD57C\ -4240D98D37B73E412FE0FA4703120D7C0C67972ED233E5DEB300A22605472FA3\ -A3BA86:\ -8B9F0CD8D4D56DCB17BB67DB05580A6B67296D4CA8297CA8A705ED9C9948EA9B\ -1DE211D205DF7836DA88C2CEA2ADDA29124E9DD9D5A95AA7E300BFC52E8931DB - -84891E52E0D451813210C3FD635B39A03A6B7A7317B221A7ABC270DFA946C426\ -69AACBBBDF801E1584F330E28C729847EA14152BD637B3D0F2B38B4BD5BF9C79\ -1C58806281103A3EABBAEDE5E711E539E6A8B2CF297CF351C078B4FA8F7F35CF\ -61BEBF8814BF248A01D41E86C5715EA40C63F7375379A7EB1D78F27622FB468A\ -B784AAABA4E534A6DFD1DF6FA15511341E725ED2E87F98737CCB7B6A6DFAE416\ -477472B046BF1811187D151BFA9F7B2BF9ACDB23A3BE507CDF14CFDF517D2CB5\ -FB9E4AB6:\ -34C0FFBFE39B0ABD5B261D66499A8508F360B0D61296DB24E2496C2EDEBE80C2\ -642C12976FA54EF41A766F6722393D7B154AA0BC5C4E20A2CE0527F9A16C3AAC - -FDD7A9433A3B4AFABD7A3A5E3457E56DEBF78E84B7A0B0CA0E8C6D53BD0C2DAE\ -31B2700C6128334F43981BE3B213B1D7A118D59C7E6B6493A86F866A1635C128\ -59CFB9AD17460A77B4522A5C1883C3D6ACC86E6162667EC414E9A104AA892053\ -A2B1D72165A855BACD8FAF8034A5DD9B716F47A0818C09BB6BAF22AA503C06B4\ -CA261F557761989D2AFBD88B6A678AD128AF68672107D0F1FC73C5CA74045929\ -7B3292B281E93BCEB761BDE7221C3A55708E5EC84472CDDCAA84ECF23723CC09\ -91355C6280:\ -2EB1C4BD6D8E41981756A7F83A41D5DF0FC770707AFE22DADEE6BF92DF54096F\ -C4AEB6E0114AC3CBB33BD8D6A47260BAF4127CDE97371979B21E8E32EA205265 - -70A40BFBEF92277A1AAD72F6B79D0177197C4EBD432668CFEC05D099ACCB6510\ -62B5DFF156C0B27336687A94B26679CFDD9DAF7AD204338DD9C4D14114033A5C\ -225BD11F217B5F4732DA167EE3F939262D4043FC9CBA92303B7B5E96AEA12ADD\ -A64859DF4B86E9EE0B58E39091E6B188B408AC94E1294A8911245EE361E60E60\ -1EFF58D1D37639F3753BEC80EBB4EFDE25817436076623FC65415FE51D1B0280\ -366D12C554D86743F3C3B6572E400361A60726131441BA493A83FBE9AFDA90F7\ -AF1AE717238D:\ -18485311BE9C848C38BFA25EC4C557196F1E39A4AC812B77AD2975182A9C2768\ -706905562B0722A2A1B92A56EB47E2500EC1621F59B6B0059EE6FF8C2DB29326 - -74356E449F4BF8644F77B14F4D67CB6BD9C1F5AE357621D5B8147E562B65C665\ -85CAF2E491B48529A01A34D226D436959153815380D5689E30B35357CDAC6E08\ -D3F2B0E88E200600D62BD9F5EAF488DF86A4470EA227006182E44809009868C4\ -C280C43D7D64A5268FA719074960087B3A6ABC837882F882C837834535929389\ -A12B2C78187E2EA07EF8B8EEF27DC85002C3AE35F1A50BEE6A1C48BA7E175F33\ -16670B27983472AA6A61EED0A683A39EE323080620EA44A9F74411AE5CE99030\ -528F9AB49C79F2:\ -753B20F511FD288F732ADE82C0F97D7A05DC4E6B931F7D1D0F266911A3C7DDBA\ -5DB2BB233A12D9508DC071E760844F376AC74CDACC5C8321DB2E6DDA9EF2F9D1 - -8C3798E51BC68482D7337D3ABB75DC9FFE860714A9AD73551E120059860DDE24\ -AB87327222B64CF774415A70F724CDF270DE3FE47DDA07B61C9EF2A3551F45A5\ -584860248FABDE676E1CD75F6355AA3EAEABE3B51DC813D9FB2EAA4F0F1D9F83\ -4D7CAD9C7C695AE84B329385BC0BEF895B9F1EDF44A03D4B410CC23A79A6B62E\ -4F346A5E8DD851C2857995DDBF5B2D717AEB847310E1F6A46AC3D26A7F9B4498\ -5AF656D2B7C9406E8A9E8F47DCB4EF6B83CAACF9AEFB6118BFCFF7E44BEF6937\ -EBDDC89186839B77:\ -E4ECE8FA8A82C0C44328A5B11C0C0EAB3B165A919555B8ECD121A828B0892E16\ -86EF62EAAD10C87B41BCCD85E60F37AEAE96503FBCE970D895E1E1E551CE1A85 - -FA56BF730C4F8395875189C10C4FB251605757A8FECC31F9737E3C2503B02608\ -E6731E85D7A38393C67DE516B85304824BFB135E33BF22B3A23B913BF6ACD2B7\ -AB85198B8187B2BCD454D5E3318CACB32FD6261C31AE7F6C54EF6A7A2A4C9F3E\ -CB81CE3555D4F0AD466DD4C108A90399D70041997C3B25345A9653F3C9A6711A\ -B1B91D6A9D2216442DA2C973CBD685EE7643BFD77327A2F7AE9CB283620A0871\ -6DFB462E5C1D65432CA9D56A90E811443CD1ECB8F0DE179C9CB48BA4F6FEC360\ -C66F252F6E64EDC96B:\ -0C2A1D85CB308CEA8D84108224FC6DA66A2654496A14CAB4457B672EF9BD2D25\ -F0D14098334846F0187D01D74CF8B18C22B3CF9E00ED31F1BE30E960E3C26AF1 - -B6134F9C3E91DD8000740D009DD806240811D51AB1546A974BCB18D344642BAA\ -5CD5903AF84D58EC5BA17301D5EC0F10CCD0509CBB3FD3FFF9172D193AF0F782\ -252FD1338C7244D40E0E42362275B22D01C4C3389F19DD69BDF958EBE28E31A4\ -FFE2B5F18A87831CFB7095F58A87C9FA21DB72BA269379B2DC2384B3DA953C79\ -25761FED324620ACEA435E52B424A7723F6A2357374157A34CD8252351C25A1B\ -232826CEFE1BD3E70FFC15A31E7C0598219D7F00436294D11891B82497BC78AA\ -5363892A2495DF8C1EEF:\ -46C390535747C9C16A4797C28DDEE9C2CECC3B8F1A89EE67C91A0D06220E6633\ -9E7B4A7D6C6B2B27D0A011D51BF7EA0DD61E6124D329269BCD4B92273C2A311D - -C941CDB9C28AB0A791F2E5C8E8BB52850626AA89205BEC3A7E22682313D198B1\ -FA33FC7295381354858758AE6C8EC6FAC3245C6E454D16FA2F51C4166FAB51DF\ -272858F2D603770C40987F64442D487AF49CD5C3991CE858EA2A60DAB6A65A34\ -414965933973AC2457089E359160B7CDEDC42F29E10A91921785F6B7224EE0B3\ -49393CDCFF6151B50B377D609559923D0984CDA6000829B916AB6896693EF6A2\ -199B3C22F7DC5500A15B8258420E314C222BC000BC4E5413E6DD82C993F8330F\ -5C6D1BE4BC79F08A1A0A46:\ -6C7060DBE2F17BAE9F4503FA61FCB2B3C6F9F8E1710FD2092CAB5865E05C6E3A\ -9A5D2E5A94E4C9DAFB9F3E47E52A6644990D8F397C93DAD4546A7C1C35BE8CA7 - -4499EFFFAC4BCEA52747EFD1E4F20B73E48758BE915C88A1FFE5299B0B005837\ -A46B2F20A9CB3C6E64A9E3C564A27C0F1C6AD1960373036EC5BFE1A8FC6A435C\ -2185ED0F114C50E8B3E4C7ED96B06A036819C9463E864A58D6286F785E32A804\ -443A56AF0B4DF6ABC57ED5C2B185DDEE8489EA080DEEEE66AA33C2E6DAB36251\ -C402682B6824821F998C32163164298E1FAFD31BABBCFFB594C91888C6219079\ -D907FDB438ED89529D6D96212FD55ABE20399DBEFD342248507436931CDEAD49\ -6EB6E4A80358ACC78647D043:\ -A614F68BE815612E5E571B06DC69C3C86A8A4EFF9BBA9A981413F60C7B612B90\ -6A7805BE3E292F1154CB0E1B003B86F40B23B99C579DA381D06C734E60A49806 - -EECBB8FDFA4DA62170FD06727F697D81F83F601FF61E478105D3CB7502F2C89B\ -F3E8F56EDD469D049807A38882A7EEFBC85FC9A950952E9FA84B8AFEBD3CE782\ -D4DA598002827B1EB98882EA1F0A8F7AA9CE013A6E9BC462FB66C8D4A18DA214\ -01E1B93356EB12F3725B6DB1684F2300A98B9A119E5D27FF704AFFB618E12708\ -E77E6E5F34139A5A41131FD1D6336C272A8FC37080F041C71341BEE6AB550CB4\ -A20A6DDB6A8E0299F2B14BC730C54B8B1C1C487B494BDCCFD3A53535AB2F2315\ -90BF2C4062FD2AD58F906A2D0D:\ -402CC283CF76060F64F0DE59D14910D710221F63537D5E30A1388496CC2260DE\ -1E3BCACE354FC1AB344458DD9BEDF3FC36336D67B10EF21FC6D6F48ACD265C8D - -E64F3E4ACE5C8418D65FEC2BC5D2A303DD458034736E3B0DF719098BE7A206DE\ -AF52D6BA82316CAF330EF852375188CDE2B39CC94AA449578A7E2A8E3F5A9D68\ -E816B8D16889FBC0EBF0939D04F63033AE9AE2BDAB73B88C26D6BD25EE460EE1\ -EF58FB0AFA92CC539F8C76D3D097E7A6A63EBB9B5887EDF3CF076028C5BBD5B9\ -DB3211371AD3FE121D4E9BF44229F4E1ECF5A0F9F0EBA4D5CEB72878AB22C3F0\ -EB5A625323AC66F7061F4A81FAC834471E0C59553F108475FE290D43E6A055AE\ -3EE46FB67422F814A68C4BE3E8C9:\ -AEF42FDB10807FDAEA631638A64C06A9125CDB7F94BB91AB345E1EA30E606FC5\ -FBC6322075A50FE2D13D19FD34AB072C41B96CED205CC5143A1A5C98DEA311D0 - -D2CB2D733033F9E91395312808383CC4F0CA974E87EC68400D52E96B3FA6984A\ -C58D9AD0938DDE5A973008D818C49607D9DE2284E7618F1B8AED8372FBD52ED5\ -4557AF4220FAC09DFA8443011699B97D743F8F2B1AEF3537EBB45DCC9E13DFB4\ -38428EE190A4EFDB3CAEB7F3933117BF63ABDC7E57BEB4171C7E1AD260AB0587\ -806C4D137B6316B50ABC9CCE0DFF3ACADA47BBB86BE777E617BBE578FF451984\ -4DB360E0A96C6701290E76BB95D26F0F804C8A4F2717EAC4E7DE9F2CFF3BBC55\ -A17E776C0D02856032A6CD10AD2838:\ -391C3A33EC4B5D75C910DF0F00F6AD5D4E8844CDB364B2D7B0155BDD4F9C0E1B\ -6C7825938F642840D06CD0E6F67F87DCCC34F6FD83587FD9266D603CA625548F - -F2998955613DD414CC111DF5CE30A995BB792E260B0E37A5B1D942FE90171A4A\ -C2F66D4928D7AD377F4D0554CBF4C523D21F6E5F379D6F4B028CDCB9B1758D3B\ -39663242FF3CB6EDE6A36A6F05DB3BC41E0D861B384B6DEC58BB096D0A422FD5\ -42DF175E1BE1571FB52AE66F2D86A2F6824A8CFAACBAC4A7492AD0433EEB1545\ -4AF8F312B3B2A577750E3EFBD370E8A8CAC1582581971FBA3BA4BD0D76E718DA\ -CF8433D33A59D287F8CC92234E7A271041B526E389EFB0E40B6A18B3AAF658E8\ -2ED1C78631FD23B4C3EB27C3FAEC8685:\ -E51079072C571D0E44C975F232F052F78B497A1C85995E194691A85AB026E4F8\ -0A4993D3A2B4D69F607558CEFF54D766915E5A4E0C7A42C8D307FA03C6DC4C74 - -447797E2899B72A356BA55BF4DF3ACCA6CDB1041EB477BD1834A9F9ACBC340A2\ -94D729F2F97DF3A610BE0FF15EDB9C6D5DB41644B9874360140FC64F52AA03F0\ -286C8A640670067A84E017926A70438DB1BB361DEFEE7317021425F8821DEF26\ -D1EFD77FC853B818545D055ADC9284796E583C76E6FE74C9AC2587AA46AA8F88\ -04F2FEB5836CC4B3ABABAB8429A5783E17D5999F32242EB59EF30CD7ADABC16D\ -72DBDB097623047C98989F88D14EAF02A7212BE16EC2D07981AAA99949DDF89E\ -CD90333A77BC4E1988A82ABF7C7CAF3291:\ -019BE27AC6E4B1FB3F1602025A8DE3EFA7AD6E1D0C6975E8D2D519A997328154\ -FE0738A00366205FDF8467B36D8970A92EF450C20F5BEC013BA4CF8091F571CB - -9F2C18ADE9B380C784E170FB763E9AA205F64303067EB1BCEA93DF5DAC4BF5A2\ -E00B78195F808DF24FC76E26CB7BE31DC35F0844CDED1567BBA29858CFFC97FB\ -29010331B01D6A3FB3159CC1B973D255DA9843E34A0A4061CABDB9ED37F241BF\ -ABB3C20D32743F4026B59A4CCC385A2301F83C0B0A190B0F2D01ACB8F0D41111\ -E10F2F4E149379275599A52DC089B35FDD5234B0CFB7B6D8AEBD563CA1FA653C\ -5C021DFD6F5920E6F18BFAFDBECBF0AB00281333ED50B9A999549C1C8F8C63D7\ -626C48322E9791D5FF72294049BDE91E73F8:\ -B996713F0A3AB5F0198C127B5C3079DACE7D4D98A9433D9B790833B62395A379\ -7B7924EB8B9F586903079A8413597E37448F3222B751DEBE8A5B83385864F7B8 - -AE159F3FA33619002AE6BCCE8CBBDD7D28E5ED9D61534595C4C9F43C402A9BB3\ -1F3B301CBFD4A43CE4C24CD5C9849CC6259ECA90E2A79E01FFBAC07BA0E147FA\ -42676A1D668570E0396387B5BCD599E8E66AAED1B8A191C5A47547F61373021F\ -A6DEADCB55363D233C24440F2C73DBB519F7C9FA5A8962EFD5F6252C0407F190\ -DFEFAD707F3C7007D69FF36B8489A5B6B7C557E79DD4F50C06511F599F56C896\ -B35C917B63BA35C6FF8092BAF7D1658E77FC95D8A6A43EEB4C01F33F03877F92\ -774BE89C1114DD531C011E53A34DC248A2F0E6:\ -FB71A3351EA2FD4C44E271EA793596B245C6F0634E79ED1EC72C6A4CC9DBC892\ -A9498A7ACA0915AB20B0DAED223FAD794A6F3822C847CF52B3F217D0BC605B76 - -3B8E97C5FFC2D6A40FA7DE7FCEFC90F3B12C940E7AB415321E29EE692DFAC799\ -B009C99DCDDB708FCE5A178C5C35EE2B8617143EDC4C40B4D313661F49ABDD93\ -CEA79D117518805496FE6ACF292C4C2A1F76B403A97D7C399DAF85B46AD84E16\ -246C67D6836757BDE336C290D5D401E6C1386AB32797AF6BB251E9B2D8FE754C\ -47482B72E0B394EAB76916126FD68EA7D65EB93D59F5B4C5AC40F7C3B37E7F36\ -94F29424C24AF8C8F0EF59CD9DBF1D28E0E10F799A6F78CAD1D45B9DB3D7DEE4\ -A7059ABE99182714983B9C9D44D7F5643596D4F3:\ -DBD3650B1739E8DA775381B5521C5CFDD689FE81309B3A69A4B3BCDC62DD6C45\ -68B84670E5E3B1B4E0E834600C36167E3447C5C1009E680C7932DB2BD91057A9 - -3434EC31B10FAFDBFEEC0DD6BD94E80F7BA9DCA19EF075F7EB017512AF66D6A4\ -BCF7D16BA0819A1892A6372F9B35BCC7CA8155EE19E8428BC22D214856ED5FA9\ -374C3C09BDE169602CC219679F65A1566FC7316F4CC3B631A18FB4449FA6AFA1\ -6A3DB2BC4212EFF539C67CF184680826535589C7111D73BFFCE431B4C40492E7\ -63D9279560AAA38EB2DC14A212D723F994A1FE656FF4DD14551CE4E7C621B2AA\ -5604A10001B2878A897A28A08095C325E10A26D2FB1A75BFD64C250309BB55A4\ -4F23BBAC0D5516A1C687D3B41EF2FBBF9CC56D4739:\ -55B84F2AC0B917467F20E9EC5F6CE98B3987C59A1ACAEFE3AD73D1C26D724CA0\ -C4D8052CE82E3C704C7834499BEC67620D4B073BF3DA41AAD2DE69AFA4943E3B - -7C7953D81C8D208FD1C97681D48F49DD003456DE60475B84070EF4847C333B74\ -575B1FC8D2A186964485A3B8634FEAA3595AAA1A2F4595A7D6B6153563DEE31B\ -BAC443C8A33EED6D5D956A980A68366C2527B550EE950250DFB691EACBD5D56A\ -E14B970668BE174C89DF2FEA43AE52F13142639C884FD62A3683C0C3792F0F24\ -AB1318BCB27E21F4737FAB62C77EA38BC8FD1CF41F7DAB64C13FEBE7152BF5BB\ -7AB5A78F5346D43CC741CB6F72B7B8980F268B68BF62ABDFB1577A52438FE14B\ -591498CC95F071228460C7C5D5CEB4A7BDE588E7F21C:\ -AD4231D8A6C04C1517D1091D399110019055D5C5EE1D3D75456DA17C5572C10B\ -B8B808493C3A69EBD668AFFD15A9E92A692A3C7A394F929B1E7798E692979665 - -7A6A4F4FDC59A1D223381AE5AF498D74B7252ECF59E389E49130C7EAEE626E7B\ -D9897EFFD92017F4CCDE66B0440462CDEDFD352D8153E6A4C8D7A0812F701CC7\ -37B5178C2556F07111200EB627DBC299CAA792DFA58F35935299FA3A3519E9B0\ -3166DFFA159103FFA35E8577F7C0A86C6B46FE13DB8E2CDD9DCFBA85BDDDCCE0\ -A7A8E155F81F712D8E9FE646153D3D22C811BD39F830433B2213DD46301941B5\ -9293FD0A33E2B63ADBD95239BC01315C46FDB678875B3C81E053A40F581CFBEC\ -24A1404B1671A1B88A6D06120229518FB13A74CA0AC5AE:\ -70CDAED98ECA25B7099C73201427DE23F51D7115160A105DED7A2FB6B20F2DEB\ -31B6A2734CFFC2AA6189DAEA538291B34D0AAC7CA9C57CA7063A31EF202F38EC - -D9FAA14CEBE9B7DE551B6C0765409A33938562013B5E8E0E1E0A6418DF7399D0\ -A6A771FB81C3CA9BD3BB8E2951B0BC792525A294EBD1083688806FE5E7F1E17F\ -D4E3A41D00C89E8FCF4A363CAEDB1ACB558E3D562F1302B3D83BB886ED27B760\ -33798131DAB05B4217381EAAA7BA15EC820BB5C13B516DD640EAEC5A27D05FDF\ -CA0F35B3A5312146806B4C0275BCD0AAA3B2017F346975DB566F9B4D137F4EE1\ -0644C2A2DA66DEECA5342E236495C3C6280528BFD32E90AF4CD9BB908F34012B\ -52B4BC56D48CC8A6B59BAB014988EABD12E1A0A1C2E170E7:\ -45186098139174A1D4D657A79B71E6E4FB3AE790A52FF0A1690D787FCB6FBA70\ -25CF74E3CDBFAA5B2B6D1880699315FAC59FB18714C65D5EA66E6B1D47AE17C4 - -2D8427433D0C61F2D96CFE80CF1E932265A191365C3B61AAA3D6DCC039F6BA2A\ -D52A6A8CC30FC10F705E6B7705105977FA496C1C708A277A124304F1FC40911E\ -7441D1B5E77B951AAD7B01FD5DB1B377D165B05BBF898042E39660CAF8B279FE\ -5229D1A8DB86C0999ED65E53D01CCBC4B43173CCF992B3A14586F6BA42F5FE30\ -AFA8AE40C5DF29966F9346DA5F8B35F16A1DE3AB6DE0F477D8D8660918060E88\ -B9B9E9CA6A4207033B87A812DBF5544D39E4882010F82B6CE005F8E8FF6FE3C3\ -806BC2B73C2B83AFB704345629304F9F86358712E9FAE3CA3E:\ -7E804307383AFF5BCC80306043721A173E61461E401C1331ED95B8ADB1CFF5CD\ -0943CB3BA8C9A7A02987DD9B6EA2912368284CF14A55566BF264CC244A353227 - -5E19D97887FCAAC0387E22C6F803C34A3DACD2604172433F7A8A7A526CA4A2A1\ -271ECFC5D5D7BE5AC0D85D921095350DFC65997D443C21C8094E0A3FEFD2961B\ -CB94AED03291AE310CCDA75D8ACE4BC7D89E7D3E5D1650BDA5D668B8B50BFC8E\ -608E184F4D3A9A2BADC4FF5F07E0C0BC8A9F2E0B2A26FD6D8C550008FAAAB75F\ -D71AF2A424BEC9A7CD9D83FAD4C8E9319115656A8717D3B523A68FF8004258B9\ -990ED362308461804BA3E3A7E92D8F2FFAE5C2FBA55BA5A3C27C0A2F71BD711D\ -2FE1799C2ADB31B200035481E9EE5C4ADF2AB9C0FA50B23975CF:\ -8B907F2B968634263C0CC229E917FDF0AD93D637299C10D8F76EFFEE6C6A6B83\ -85803FABEDEB1694EACBC11D94FD00CD310C287C2C537BDE39B88A4A15735DF3 - -C8E976AB4638909387CE3B8D4E510C3230E5690E02C45093B1D297910ABC481E\ -56EEA0F296F98379DFC9080AF69E73B2399D1C143BEE80AE1328162CE1BA7F6A\ -8374679B20AACD380EB4E61382C99998704D62701AFA914F9A2705CDB065885F\ -50D086C3EB5753700C387118BB142F3E6DA1E988DFB31AC75D7368931E45D139\ -1A274B22F83CEB072F9BCABC0B216685BFD789F5023971024B1878A205442522\ -F9EA7D8797A4102A3DF41703768251FD5E017C85D1200A464118AA35654E7CA3\ -9F3C375B8EF8CBE7534DBC64BC20BEFB417CF60EC92F63D9EE7397:\ -4739DB195476A74B06835BA91DD8DFDADE704A06557307E33019738083F36714\ -3C96ECF28523C1BE8CA272ADF7E0EEBB64EEF31FE4C5EF03CE7D46ED6FC86A71 - -7145FA124B7429A1FC2231237A949BA7201BCC1822D3272DE005B682398196C2\ -5F7E5CC2F289FBF44415F699CB7FE6757791B1443410234AE061EDF623359E2B\ -4E32C19BF88450432DD01CAA5EB16A1DC378F391CA5E3C4E5F356728BDDD4975\ -DB7C890DA8BBC84CC73FF244394D0D48954978765E4A00B593F70F2CA082673A\ -261ED88DBCEF1127728D8CD89BC2C597E9102CED6010F65FA75A14EBE467FA57\ -CE3BD4948B6867D74A9DF5C0EC6F530CBF2EE61CE6F06BC8F2864DFF5583776B\ -31DF8C7FFCB61428A56BF7BD37188B4A5123BBF338393AF46EDA85E6:\ -68B8AA5731F7D00D547D7E3690761046B54E91257984A46E2CF9BA2835ADB621\ -CE3DDCF81A02A95308300F1E992E3BEDF832FC0433F0A64D5CE277E679933E47 - -7FDFADCC9D29BAD23AE038C6C65CDA1AEF757221B8872ED3D75FF8DF7DA0627D\ -266E224E812C39F7983E4558BFD0A1F2BEF3FEB56BA09120EF762917B9C09386\ -7948547AEE98600D10D87B20106878A8D22C64378BF634F7F75900C03986B077\ -B0BF8B740A82447B61B99FEE5376C5EB6680EC9E3088F0BDD0C56883413D60C1\ -357D3C811950E5890E7600103C916341B80C743C6A852B7B4FB60C3BA21F3BC1\ -5B8382437A68454779CF3CD7F9F90CCC8EF28D0B706535B1E4108EB5627BB45D\ -719CB046839AEE311CA1ABDC8319E050D67972CB35A6B1601B25DBF487:\ -2CD87427875CC3480CD19F567B049B1181D7F46B85F3CDE505005452A0401A51\ -7E0E3D2A2157D789A6D63C8484386EFA9F9717498D35B20CA2A0FD2FDDDF7E15 - -988638219FD3095421F826F56E4F09E356296B628C3CE6930C9F2E758FD1A80C\ -8273F2F61E4DAAE65C4F110D3E7CA0965AC7D24E34C0DC4BA2D6FF0BF5BBE93B\ -3585F354D7543CB542A1AA54674D375077F2D360A8F4D42F3DB131C3B7AB7306\ -267BA107659864A90C8C909460A73621D1F5D9D3FD95BEB19B23DB1CB6C0D0FB\ -A91D36891529B8BD8263CAA1BAB56A4AFFAED44962DF096D8D5B1EB845EF3118\ -8B3E10F1AF811A13F156BEB7A288AAE593EBD1471B624AA1A7C6ADF01E2200B3\ -D72D88A3AED3100C88231E41EFC376906F0B580DC895F080FDA5741DB1CB:\ -5E0A947E07586E1A7EB441B4F44211F3731595E273FBE30FD5478E762C08411D\ -B9DDAA9F9B9D860F5768DF78FBEAF9EFEB9ECAEE9A9874FD38E9EBDE9DDF11E7 - -5AAB62756D307A669D146ABA988D9074C5A159B3DE85151A819B117CA1FF6597\ -F6156E80FDD28C9C3176835164D37DA7DA11D94E09ADD770B68A6E081CD22CA0\ -C004BFE7CD283BF43A588DA91F509B27A6584C474A4A2F3EE0F1F56447379240\ -A5AB1FB77FDCA49B305F07BA86B62756FB9EFB4FC225C86845F026EA542076B9\ -1A0BC2CDD136E122C659BE259D98E5841DF4C2F60330D4D8CDEE7BF1A0A24452\ -4EECC68FF2AEF5BF0069C9E87A11C6E519DE1A4062A10C83837388F7EF58598A\ -3846F49D499682B683C4A062B421594FAFBC1383C943BA83BDEF515EFCF10D:\ -B8098CB26FCC5ACD64C492919EA1C7ECDC9B3DE4854D69E7947E05BD0BF6E84C\ -240FA83ACEE02C829A959614107CE03DB8ACA40D38F9CC57B7F94C3C220DEEEB - -47B8216AA0FBB5D67966F2E82C17C07AA2D6327E96FCD83E3DE7333689F3EE79\ -994A1BF45082C4D725ED8D41205CB5BCDF5C341F77FACB1DA46A5B9B2CBC49EA\ -DF786BCD881F371A95FA17DF73F606519AEA0FF79D5A11427B98EE7F13A5C006\ -37E2854134691059839121FEA9ABE2CD1BCBBBF27C74CAF3678E05BFB1C94989\ -7EA01F56FFA4DAFBE8644611685C617A3206C7A7036E4AC816799F693DAFE7F1\ -9F303CE4EBA09D21E03610201BFC665B72400A547A1E00FA9B7AD8D84F84B34A\ -EF118515E74DEF11B9188BD1E1F97D9A12C30132EC2806339BDADACDA2FD8B78:\ -0F4C4ECFD9A8431D5AB9A245A77CD70974FB75F1824FE68583E9F25E73BA5725\ -88AD0C328D73BEBEDF1FC99D898B7D1C9EB9AB048896CD0446A3E932A97710AB - -8CFF1F67FE53C098896D9136389BD8881816CCAB34862BB67A656E3D98896F3C\ -E6FFD4DA73975809FCDF9666760D6E561C55238B205D8049C1CEDEEF374D1735\ -DAA533147BFA960B2CCE4A4F254176BB4D1BD1E89654432B8DBE1A135C42115B\ -394B024856A2A83DC85D6782BE4B444239567CCEC4B184D4548EAE3FF6A192F3\ -43292BA2E32A0F267F31CC26719EB85245D415FB897AC2DA433EE91A99424C9D\ -7F1766A44171D1651001C38FC79294ACCC68CEB5665D36218454D3BA169AE058\ -A831338C17743603F81EE173BFC0927464F9BD728DEE94C6AEAB7AAE6EE3A627\ -E8:\ -C90025BE7F02FA18134B63681B5A635A51C06EE37878C4833E0A853FA474AEFD\ -06BEEBA4597ED8E59255EE4DEC81B34D6EF3DF617A885F50B79F6EF9E47B4003 - -EACD07971CFF9B9939903F8C1D8CBB5D4DB1B548A85D04E037514A583604E787\ -F32992BF2111B97AC5E8A938233552731321522AB5E8583561260B7D13EBEEF7\ -85B23A41FD8576A6DA764A8ED6D822D4957A545D5244756C18AA80E1AAD4D1F9\ -C20D259DEE1711E2CC8FD013169FB7CC4CE38B362F8E0936AE9198B7E838DCEA\ -4F7A5B9429BB3F6BBCF2DC92565E3676C1C5E6EB3DD2A0F86AA23EDD3D0891F1\ -97447692794B3DFA269611AD97F72B795602B4FDB198F3FD3EB41B415064256E\ -345E8D8C51C555DC8A21904A9B0F1AD0EFFAB7786AAC2DA3B196507E9F33CA35\ -6427:\ -5C21E22D8B2887134F03D05945D91282B6321F122E53640C046FF9B1692F1210\ -CA46CD8471E95F3C74F7FEB1DA0DC8A421EEFFB3699351825F16BA621015EEEF - -23AC4E9A42C6EF45C3336CE6DFC2FF7DE8884CD23DC912FEF0F7756C09D335C1\ -89F3AD3A23697ABDA851A81881A0C8CCAFC980AB2C702564C2BE15FE4C4B9F10\ -DFB2248D0D0CB2E2887FD4598A1D4ACDA897944A2FFC580FF92719C95CF2AA42\ -DC584674CB5A9BC5765B9D6DDF5789791D15F8DD925AA12BFFAFBCE60827B490\ -BB7DF3DDA6F2A143C8BF96ABC903D83D59A791E2D62814A89B8080A28060568C\ -F24A80AE61179FE84E0FFAD00388178CB6A617D37EFD54CC01970A4A41D1A8D3\ -DDCE46EDBBA4AB7C90AD565398D376F431189CE8C1C33E132FEAE6A8CD17A61C\ -630012:\ -F1A7011447E8515E1502A3AE56F8BE61EB4200BC4D21C8E1875B73AB2A42DE46\ -13D6404B17A740B60B57F742C92F45C07880498C44C989C15CF1CD37B3F26E77 - -0172DF732282C9D488669C358E3492260CBE91C95CFBC1E3FEA6C4B0EC129B45\ -F242ACE09F152FC6234E1BEE8AAB8CD56E8B486E1DCBA9C05407C2F95DA8D8F1\ -C0AF78EE2ED82A3A79EC0CB0709396EE62AADB84F8A4EE8A7CCCA3C1EE84E302\ -A09EA802204AFECF04097E67D0F8E8A9D2651126C0A598A37081E42D168B0AE8\ -A71951C524259E4E2054E535B779679BDADE566FE55700858618E626B4A0FAF8\ -95BCCE9011504A49E05FD56127EAE3D1F8917AFB548ECADABDA1020111FEC931\ -4C413498A360B08640549A22CB23C731ACE743252A8227A0D2689D4C60016066\ -78DFB921:\ -02BE97BE60F581D73527490734CD5F8739DCB9A5089CC49C7619277CEB30D9A6\ -9B85C53EFC55C780A6494DD172B8BEB2B69F86DD4B7CBFA3E47F1720ED394383 - -3875B9240CF3E0A8B59C658540F26A701CF188496E2C2174788B126FD29402D6\ -A75453BA0635284D08835F40051A2A9683DC92AFB9383719191231170379BA6F\ -4ADC816FECBB0F9C446B785BF520796841E58878B73C58D3EBB097CE4761FDEA\ -BE15DE2F319DFBAF1742CDEB389559C788131A6793E193856661376C81CE9568\ -DA19AA6925B47FFD77A43C7A0E758C37D69254909FF0FBD415EF8EB937BCD49F\ -91468B49974C07DC819ABD67395DB0E05874FF83DDDAB895344ABD0E7111B2DF\ -9E58D76D85AD98106B36295826BE04D435615595605E4B4BB824B33C4AFEB5E7\ -BB0D19F909:\ -38652A2D6674A539559F3ED0996542C23D48D8D108C2AF9C10DA45C9DBC11906\ -CB4AEE8EB04C88789B763C66B743356336C8950303B950D72A8FCA05B9C67CD9 - -747CC1A59FEFBA94A9C75BA866C30DC5C1CB0C0F8E9361D98484956DD5D1A40F\ -6184AFBE3DAC9F76028D1CAECCFBF69199C6CE2B4C092A3F4D2A56FE5A33A007\ -57F4D7DEE5DFB0524311A97AE0668A47971B95766E2F6DD48C3F57841F91F04A\ -00AD5EA70F2D479A2620DC5CD78EAAB3A3B011719B7E78D19DDF70D9423798AF\ -77517EBC55392FCD01FC600D8D466B9E7A7A85BF33F9CC5419E9BD874DDFD609\ -81150DDAF8D7FEBAA4374F0872A5628D318000311E2F5655365AD4D407C20E5C\ -04DF17A222E7DEEC79C5AB1116D8572F91CD06E1CCC7CED53736FC867FD49ECE\ -BE6BF8082E8A:\ -BC091874BAF2195324C56EE8386E13AC3F49FDB329C2D5835848AF2A3653BCEA\ -26EC8C370912CBCFB1C20D3EB9AB53C6160CDD5351836527C5719084A575EF64 - -57AF971FCCAEC97435DC2EC9EF0429BCEDC6B647729EA168858A6E49AC1071E7\ -06F4A5A645CA14E8C7746D65511620682C906C8B86EC901F3DDED4167B3F00B0\ -6CBFAC6AEE3728051B3E5FF10B4F9ED8BD0B8DA94303C833755B3CA3AEDDF0B5\ -4BC8D6632138B5D25BAB03D17B3458A9D782108006F5BB7DE75B5C0BA854B423\ -D8BB801E701E99DC4FEAAD59BC1C7112453B04D33EA3635639FB802C73C2B71D\ -58A56BBD671B18FE34ED2E3DCA38827D63FDB1D4FB3285405004B2B3E26081A8\ -FF08CD6D2B08F8E7B7E90A2AB1ED7A41B1D0128522C2F8BFF56A7FE67969422C\ -E839A9D4608F03:\ -D8025F57C003DDCC6ABDDCE2CCFFDB9C11BE984311A749A632D7EE4EB073C58F\ -0074096C17CE0A46B37700581D9FF074143F34322D5460C4BD1E9EE6AD497F40 - -04E16DEDC1227902BAAF332D3D08923601BDD64F573FAA1BB7201918CFE16B1E\ -10151DAE875DA0C0D63C59C3DD050C4C6A874011B018421AFC4623AB0381831B\ -2DA2A8BA42C96E4F70864AC44E106F94311051E74C77C1291BF5DB9539E69567\ -BF6A11CF6932BBBAD33F8946BF5814C066D851633D1A513510039B349939BFD4\ -2B858C21827C8FF05F1D09B1B0765DC78A135B5CA4DFBA0801BCADDFA175623C\ -8B647EACFB4444B85A44F73890607D06D507A4F8393658788669F6EF4DEB58D0\ -8C50CA0756D5E2F49D1A7AD73E0F0B3D3B5F090ACF622B1878C59133E4A848E0\ -5153592EA81C6FBF:\ -99812EB8737BF609B3BF4B8ADE116403183DD7332DAB4F43BB4917DA0B62ABC5\ -A4772D572BDDA22FD555AF55309D31FB93492ED3EF4455FDE4FFFE7BF8DF84AE - -7C815C384EEE0F288ECE27CCED52A01603127B079C007378BC5D1E6C5E9E6D1C\ -735723ACBBD5801AC49854B2B569D4472D33F40BBB8882956245C366DC3582D7\ -1696A97A4E19557E41E54DEE482A14229005F93AFD2C4A7D8614D10A97A9DFA0\ -7F7CD946FA45263063DDD29DB8F9E34DB60DAA32684F0072EA2A9426ECEBFA52\ -39FB67F29C18CBAA2AF6ED4BF4283936823AC1790164FEC5457A9CBA7C767CA5\ -9392D94CAB7448F50EB34E9A93A80027471CE59736F099C886DEA1AB4CBA4D89\ -F5FC7AE2F21CCD27F611ECA4626B2D08DC22382E92C1EFB2F6AFDC8FDC3D2172\ -604F5035C46B8197D3:\ -6B242888A6E956F10A8BE75E09287D59CC25155B0AA8D8BA02E095D0AFAA2910\ -4CB2051AA4B3430B724D500AD0317208C3BA9FB1265BF19A974E90F4BF0CE006 - -E29D505158DBDD937D9E3D2145658EE6F5992A2FC790F4F608D9CDB44A091D5B\ -94B88E81FAC4FDF5C49442F13B911C55886469629551189EAFF62488F1A479B7\ -DB11A1560E198DDCCCCF50159093425FF7F1CB8D1D1246D0978764087D6BAC25\ -7026B090EFAE8CEC5F22B6F21C59ACE1AC7386F5B8837CA6A12B6FBF5534DD05\ -60EF05CA78104D3B943DDB220FEAEC89AA5E692A00F822A2AB9A2FE60350D75E\ -7BE16FF2526DC643872502D01F42F188ABED0A6E9A6F5FD0D1CE7D5755C9FFA6\ -6B0AF0B20BD806F08E06156690D81AC811778CA3DAC2C249B96002017FCE93E5\ -07E3B953ACF99964B847:\ -FF77EF8DE1483F8A498E3554083BB69F7567FCED495E6BF0C9902CDCB5247FAC\ -6A4B50D1CF9CEE89C400ED3E4E6FEBB642F1AC3BBD018ECC04CB1A43A1331ECC - -D85588696F576E65ECA0155F395F0CFACD83F36A99111ED5768DF2D116D2121E\ -32357BA4F54EDE927F189F297D3A97FAD4E9A0F5B41D8D89DD7FE20156799C2B\ -7B6BF9C957BA0D6763F5C3BC5129747BBB53652B49290CFF1C87E2CDF2C4B95D\ -8AAEE09BC8FBFA6883E62D237885810491BFC101F1D8C636E3D0EDE838AD05C2\ -07A3DF4FAD76452979EB99F29AFAECEDD1C63B8D36CF378454A1BB67A741C77A\ -C6B6B3F95F4F02B64DABC15438613EA49750DF42EE90101F115AA9ABB9FF6432\ -4DDE9DABBB01054E1BD6B4BCDC7930A44C2300D87CA78C06924D0323AD7887E4\ -6C90E8C4D100ACD9EED21E:\ -83E0BEDD263922F016CF539F9E7B43ACAFDDF35C8CE730434EE3E92ACD264006\ -031073A705F5585BFB66E53EA6A733901AE40634B6F4D86FB554CE0EBC5CD807 - -3A12F8508B40C32C74492B66323375DCFE49184C78F73179F3314B79E63376B8\ -AC683F5A51F1534BD729B02B04D002F55CBD8E8FC9B5EC1EA6BBE6A0D0E74315\ -18E6BA45D124035F9D3DCE0A8BB7BF1430A9F657E0B4EA9F20EB20C786A58181\ -A1E20A96F1628F8728A13BDF7A4B4B32FC8AA7054CC4881AE7FA19AFA65C6C3E\ -E1B3ADE3192AF42054A8A911B8EC1826865D46D93F1E7C5E2B7813C92A506E53\ -886F3D4701BB93D2A681AD109C845904BB861AF8AF0646B6E399B38B614051D3\ -4F6842563A0F37EC00CB3D865FC5D746C4987DE2A65071100883A2A9C7A2BFE1\ -E2DD603D9EA24DC7C5FD06BE:\ -E063490AC5C915BAF98C37660EB17A85798D728FB57CB0ACFAEDE8AFE847C902\ -5D8BF55B6EEA096A6F0B443B38D0BC77DD0BCB8228ED2681BB03A013D15CEB79 - -1861EDCE46FA5AD17E1FF1DEAE084DEC580F97D0A67885DFE834B9DFAC1AE076\ -742CE9E267512CA51F6DF5A455AF0C5FD6ABF94ACEA103A3370C354485A7846F\ -B84F3AC7C2904B5B2FBF227002CE512133BB7E1C4E50057BFD1E44DB33C7CDB9\ -69A99E284B184F50A14B068A1FC5009D9B298DBE92239572A7627AAC02ABE8F3\ -E3B473417F36D4D2505D16B7577F4526C9D94A270A2DFE450D06DA8F6FA95687\ -9A0A55CFE99E742EA555EA477BA3E9B44CCD508C375423611AF92E55345DC215\ -779B2D5119EBA49C71D49B9FE3F1569FA24E5CA3E332D042422A8B8158D3EC66\ -A80012976F31FFDF305F0C9C5E:\ -2F2FBA371016CD20ADC35C032B61100C298FBAF81506E83CC6E9BCC61244838A\ -D83465658A6436BD488C55D27B82BA3FFC5223BB97A03AE33E05CA750FDF56E2 - -08D0FFDE3A6E4EF65608EA672E4830C12943D7187CCFF08F4941CFC13E545F3B\ -9C7AD5EEBBE2B01642B486CAF855C2C73F58C1E4E3391DA8E2D63D96E15FD849\ -53AE5C231911B00AD6050CD7AAFDAAC9B0F663AE6AAB45519D0F5391A541707D\ -479034E73A6AD805AE3598096AF078F1393301493D663DD71F83869CA27BA508\ -B7E91E81E128C1716DC3ACFE3084B2201E04CF8006617EECF1B640474A5D45CF\ -DE9F4D3EF92D6D055B909892194D8A8218DB6D8203A84261D200D71473D7488F\ -3427416B6896C137D455F231071CACBC86E0415AB88AEC841D96B7B8AF41E05B\ -B461A40645BF176601F1E760DE5F:\ -783AF05873F418BAF09AA3479FFBA6CC9949F90D7CB9DF1355B46B020712EDD4\ -0477F7B2980DEFC4474B2D3C24BF92ECB5DA64FBDF167EDD9D9D48792D2B4DF8 - -D782ABB72A5BE3392757BE02D3E45BE6E2099D6F000D042C8A543F50ED6EBC05\ -5A7F133B0DD8E9BC348536EDCAAE2E12EC18E8837DF7A1B3C87EC46D50C241DE\ -E820FD586197552DC20BEEA50F445A07A38F1768A39E2B2FF05DDDEDF751F1DE\ -F612D2E4D810DAA3A0CC904516F9A43AF660315385178A529E51F8AAE141808C\ -8BC5D7B60CAC26BB984AC1890D0436EF780426C547E94A7B08F01ACBFC4A3825\ -EAE04F520A9016F2FB8BF5165ED12736FC71E36A49A73614739EAA3EC834069B\ -1B40F1350C2B3AB885C02C640B9F7686ED5F99527E41CFCD796FE4C256C91731\ -86C226169FF257954EBDA81C0E5F99:\ -B53D11E8514950F60345F266290DFD57B8550C011F2BBC1C7CD718E74CAA9847\ -3E98CF794975661C7D46D6DF10E14F0AF2E0EFBD480A350AC60E0881EA7090FD - -5FCE8109A358570E40983E1184E541833BB9091E280F258CFB144387B05D190E\ -431CB19BAA67273BA0C58ABE91308E1844DCD0B3678BAA42F335F2FA05267A02\ -40B3C718A5942B3B3E3BFA98A55C25A1466E8D7A603722CB2BBF03AFA54CD769\ -A99F310735EE5A05DAE2C22D397BD95635F58C48A67F90E1B73AAFCD3F82117F\ -0166657838691005B18DA6F341D6E90FC1CDB352B30FAE45D348294E501B6325\ -2DE14740F2B85AE5299DDEC3172DE8B6D0BA219A20A23BB5E10FF434D39DB3F5\ -83305E9F5C039D98569E377B75A70AB837D1DF269B8A4B566F40BB91B577455F\ -D3C356C914FA06B9A7CE24C7317A172D:\ -0E21302B185191492D2625F0FC4A3380ECD75D8EA945E35FD6E57EB7142DE249\ -90EEE2B6711392F8856874DE50E6D2FDF1D23A228877298C668251FD0F06B709 - -6172F1971A6E1E4E6170AFBAD95D5FEC99BF69B24B674BC17DD78011615E502D\ -E6F56B86B1A71D3F4348087218AC7B7D09302993BE272E4A591968AEF18A1262\ -D665610D1070EE91CC8DA36E1F841A69A7A682C580E836941D21D909A3AFC1F0\ -B963E1CA5AB193E124A1A53DF1C587470E5881FB54DAE1B0D840F0C8F9D1B04C\ -645BA1041C7D8DBF22030A623AA15638B3D99A2C400FF76F3252079AF88D2B37\ -F35EE66C1AD7801A28D3D388AC450B97D5F0F79E4541755356B3B1A5696B023F\ -39AB7AB5F28DF4202936BC97393B93BC915CB159EA1BD7A0A414CB4B7A1AC3AF\ -68F50D79F0C9C7314E750F7D02FAA58BFA:\ -1A77E749C8249D06F08943F5CDFEB5D65C804F1052B036CCD7A6F16120315AF7\ -B20C6BE56CA65861A2568F7E726420E909FAF47E4ED96A3C299AFF94EDFBF6EB - -5668ECD99DFBE215C4118398AC9C9EAF1A1433FAB4CCDD3968064752B625EA94\ -4731F75D48A27D047D67547F14DD0FFAA55FA5E29F7AF0D161D85EAFC4F2029B\ -717C918EAB9D304543290BDBA7158B68020C0BA4E079BC95B5BC0FC044A992B9\ -4B4CCD3BD66D0EABB5DBBAB904D62E00752C4E3B0091D773BCF4C14B4377DA3E\ -FFF824B1CB2FA01B32D1E46C909E626ED2DAE920F4C7DBEB635BC754FACBD8D4\ -9BEBA3F23C1C41CCBFCD0EE0C114E69737F5597C0BF1D859F0C767E18002AE8E\ -39C26261FFDE2920D3D0BAF0E906138696CFE5B7E32B600F45DF3AAA39932F3A\ -7DF95B60FA8712A2271FCAF3911CE7B511B1:\ -CDF5CC029A5946BB96A524D865C6BAB024A2B598A9A657EF631FA582ED9BEBF5\ -6C18D955528A3DD5BC0D2466F7EE0EF8AF1C814E3858E5DA3A2BA951BB2D79A0 - -03D625488354DF30E3F875A68EDFCF340E8366A8E1AB67F9D5C5486A96829DFA\ -C0578289082B2A62117E1CF418B43B90E0ADC881FC6AE8105C888E9ECD21AEA1\ -C9AE1A4038DFD17378FED71D02AE492087D7CDCD98F746855227967CB1AB4714\ -261EE3BEAD3F4DB118329D3EBEF4BC48A875C19BA763966DA0EBEA800E01B2F5\ -0B00E9DD4CACA6DCB314D00184EF71EA2391D760C950710DB4A70F9212FFC548\ -61F9DC752CE18867B8AD0C48DF8466EF7231E7AC567F0EB55099E622EBB86CB2\ -37520190A61C66AD34F1F4E289CB3282AE3EAAC6152ED24D2C92BAE5A7658252\ -A53C49B7B02DFE54FDB2E90074B6CF310AC661:\ -2A4B61FEAAC1BC466DD77EBE6E800F87950B28532F71BE5E4D56DE28F93C1F7E\ -61C793745A91B8CCDC29914989730B7DF933E6C7F1B1A08638953F966F092560 - -2EDC282FFB90B97118DD03AAA03B145F363905E3CBD2D50ECD692B37BF000185\ -C651D3E9726C690D3773EC1E48510E42B17742B0B0377E7DE6B8F55E00A8A4DB\ -4740CEE6DB0830529DD19617501DC1E9359AA3BCF147E0A76B3AB70C4984C13E\ -339E6806BB35E683AF8527093670859F3D8A0FC7D493BCBA6BB12B5F65E71E70\ -5CA5D6C948D66ED3D730B26DB395B3447737C26FAD089AA0AD0E306CB28BF0AC\ -F106F89AF3745F0EC72D534968CCA543CD2CA50C94B1456743254E358C1317C0\ -7A07BF2B0ECA438A709367FAFC89A57239028FC5FECFD53B8EF958EF10EE0608\ -B7F5CB9923AD97058EC067700CC746C127A61EE3:\ -A40028E17CD5DA2DB800437A58861565E0A55CD3DC017FE48C7D3F2D4706D7EC\ -742A21170CB86B32B5B9A1496C5C5DDE4E283915BFCDC883F08039679E29ED43 - -90B28A6AA1FE533915BCB8E81ED6CACDC10962B7FF82474F845EEB86977600CF\ -70B07BA8E3796141EE340E3FCE842A38A50AFBE90301A3BDCC591F2E7D9DE53E\ -495525560B908C892439990A2CA2679C5539FFDF636777AD9C1CDEF809CDA9E8\ -DCDB451ABB9E9C17EFA4379ABD24B182BD981CAFC792640A183B61694301D04C\ -5B3EAAD694A6BD4CC06EF5DA8FA23B4FA2A64559C5A68397930079D250C51BCF\ -00E2B16A6C49171433B0AADFD80231276560B80458DD77089B7A1BBCC9E7E4B9\ -F881EACD6C92C4318348A13F4914EB27115A1CFC5D16D7FD94954C3532EFACA2\ -CAB025103B2D02C6FD71DA3A77F417D7932685888A:\ -2A1F1C7FAFBE676D2A7BC67BD80C9387F493643E2395852AF8A6846A5DDC191C\ -B17FCAA17BB82266FEA390B3E45DED4A15408A29DF5AE390A1BC945D5D97C1C7 - -2969447D175490F2AA9BB055014DBEF2E6854C95F8D60950BFE8C0BE8DE254C2\ -6B2D31B9E4DE9C68C9ADF49E4EE9B1C2850967F29F5D08738483B417BB96B2A5\ -6F0C8ACA632B552059C59AAC3F61F7B45C966B75F1D9931FF4E596406378CEE9\ -1AAA726A3A84C33F37E9CDBE626B5745A0B06064A8A8D56E53AAF102D23DD9DF\ -0A3FDF7A638509A6761A33FA42FA8DDBD8E16159C93008B53765019C3F0E9F10\ -B144CE2AC57F5D7297F9C9949E4FF68B70D339F87501CE8550B772F32C6DA8AD\ -2CE2100A895D8B08FA1EEAD7C376B407709703C510B50F87E73E43F8E7348F87\ -C3832A547EF2BBE5799ABEDCF5E1F372EA809233F006:\ -80C5090FDDA7FB8B550602FBB156D650958E0EE131E21C09FCCB57FAA9A9C868\ -C5947E409BC5CFA89C8616619E625C7D1DAD8686FF59C2CD1D9940E336472145 - -721645633A44A2C78B19024EAECF58575AB23C27190833C26875DC0F0D50B46A\ -EA9C343D82EA7D5B3E50EC700545C615DAEAEA64726A0F05607576DCD396D812\ -B03FB6551C641087856D050B10E6A4D5577B82A98AFB89CEE8594C9DC19E79FE\ -FF0382FCFD127F1B803A4B9946F4AC9A4378E1E6E041B1389A53E3450CD32D9D\ -2941B0CBABDB50DA8EA2513145164C3AB6BCBD251C448D2D4B087AC57A59C228\ -5D564F16DA4ED5E607ED979592146FFB0EF3F3DB308FB342DF5EB5924A48256F\ -C763141A278814C82D6D6348577545870AE3A83C7230AC02A1540FE1798F7EF0\ -9E335A865A2AE0949B21E4F748FB8A51F44750E213A8FB:\ -A779BC3D4F6315BEFDA9CBBBDBA4C9E24D810CB46074D81A6E2D66947A30F62C\ -4D3EB92AFC6D9BFBF42DF3D8528982FCF7AECA66740D0E753040A2C6F71AC1DB - -6B860D39725A14B498BB714574B4D37CA787404768F64C648B1751B353AC92BA\ -C2C3A28EA909FDF0423336401A02E63EC24325300D823B6864BB701F9D7C7A1F\ -8EC9D0AE3584AA6DD62EA1997CD831B4BABD9A4DA50932D4EFDA745C61E41308\ -90E156AEE6113716DAF95764222A91187DB2EFFEA49D5D0596102D619BD26A61\ -6BBFDA8335505FBB0D90B4C180D1A2335B91538E1668F9F9642790B4E55F9CAB\ -0FE2BDD2935D001EE6419ABAB5457880D0DBFF20ED8758F4C20FE759EFB33141\ -CF0E892587FE8187E5FBC57786B7E8B089612C936DFC03D27EFBBE7C8673F160\ -6BD51D5FF386F4A7AB68EDF59F385EB1291F117BFE717399:\ -46D64790833ABF3E17BB4B8CCDB4F0A2DCD23FDFA3135744306F4916A658CC5B\ -0BB60DD65DD2287287CA645C0B5904A7227ED1B40730A6F335BEC41706769E9D - -6A01830AF3889A25183244DECB508BD01253D5B508AB490D3124AFBF42626B2E\ -70894E9B562B288D0A2450CFACF14A0DDAE5C04716E5A0082C33981F6037D23D\ -5E045EE1EF2283FB8B6378A914C5D9441627A722C282FF452E25A7EA608D69CE\ -E4393A0725D17963D0342684F255496D8A18C2961145315130549311FC07F031\ -2FB78E6077334F87EAA873BEE8AA95698996EB21375EB2B4EF53C14401207DEB\ -4568398E5DD9A7CF97E8C9663E23334B46912F8344C19EFCF8C2BA6F04325F1A\ -27E062B62A58D0766FC6DB4D2C6A1928604B0175D872D16B7908EBC041761187\ -CC785526C2A3873FEAC3A642BB39F5351550AF9770C328AF7B:\ -29EBB2B1BF14463500B983F8C9FE9EAD506514E9AF11202A9E0930B225EBC525\ -8A09324010C52FF35E902647D9701293A8F8A007ABC3D6A7BE629C5078A42BED - -B3C5E74B69933C2533106C563B4CA20238F2B6E675E8681E34A389894785BDAD\ -E59652D4A73D80A5C85BD454FD1E9FFDAD1C3815F5038E9EF432AAC5C3C4FE84\ -0CC370CF86580A6011778BBEDAF511A51B56D1A2EB68394AA299E26DA9ADA6A2\ -F39B9FAFF7FBA457689B9C1A577B2A1E505FDF75C7A0A64B1DF81B3A356001BF\ -0DF4E02A1FC59F651C9D585EC6224BB279C6BEBA2966E8882D68376081B98746\ -8E7AED1EF90EBD090AE825795CDCA1B4F09A979C8DFC21A48D8A53CDBB26C4DB\ -547FC06EFE2F9850EDD2685A4661CB4911F165D4B63EF25B87D0A96D3DFF6AB0\ -758999AAD214D07BD4F133A6734FDE445FE474711B69A98F7E2B:\ -8DB46A5D23103103746C2FE2480CEEC56FD9796AD357F5BC45BF0BC2D2E8B95E\ -A0C286090AB858183C2A051B80FCA8776670FA3DA8722329848F057C6EAD4991 - -83AF34279CCB5430FEBEC07A81950D30F4B66F484826AFEE7456F0071A51E1BB\ -C55570B5CC7EC6F9309C17BF5BEFDD7C6BA6E968CF218A2B34BD5CF927AB846E\ -38A40BBD81759E9E33381016A755F699DF35D660007B5EADF292FEEFB735207E\ -BF70B5BD17834F7BFA0E16CB219AD4AF524AB1EA37334AA66435E5D397FC0A06\ -5C411EBBCE32C240B90476D307CE802EC82C1C49BC1BEC48C0675EC2A6C6F3ED\ -3E5B741D13437095707C565E10D8A20B8C20468FF9514FCF31B4249CD82DCEE5\ -8C0A2AF538B291A87E3390D737191A07484A5D3F3FB8C8F15CE056E5E5F8FEBE\ -5E1FB59D6740980AA06CA8A0C20F5712B4CDE5D032E92AB89F0AE1:\ -BC933D42AD3267F608AB201D2813E54250499D87ECEEF837863F59D8ACE4ED6A\ -3239C4C7CD7E172F3CF3CDED5D84950E066E2F549A767BA421CAD4A223313C1D - -A7ED84749CCC56BB1DFBA57119D279D412B8A986886D810F067AF349E8749E9E\ -A746A60B03742636C464FC1EE233ACC52C1983914692B64309EDFDF29F1AB912\ -EC3E8DA074D3F1D231511F5756F0B6EEAD3E89A6A88FE330A10FACE267BFFBFC\ -3E3090C7FD9A850561F363AD75EA881E7244F80FF55802D5EF7A1A4E7B89FCFA\ -80F16DF54D1B056EE637E6964B9E0FFD15B6196BDD7DB270C56B47251485348E\ -49813B4EB9ED122A01B3EA45AD5E1A929DF61D5C0F3E77E1FDC356B63883A60E\ -9CBB9FC3E00C2F32DBD469659883F690C6772E335F617BC33F161D6F6984252E\ -E12E62B6000AC5231E0C9BC65BE223D8DFD94C5004A101AF9FD6C0FB:\ -D84DDA22FBE020F57EFBC8C612B2F781EAA81E4C9B0F013BFC1B3C926A5BA778\ -28F8C6684A25B2C567DAD1B705E7BB417F5EAE6D8BD2BFA6ACBC7284F3C19E81 - -A6FE30DCFCDA1A329E82AB50E32B5F50EB25C873C5D2305860A835AECEE6264A\ -A36A47429922C4B8B3AFD00DA16035830EDB897831C4E7B00F2C23FC0B15FDC3\ -0D85FB70C30C431C638E1A25B51CAF1D7E8B050B7F89BFB30F59F0F20FECFF3D\ -639ABC4255B3868FC45DD81E47EB12AB40F2AAC735DF5D1DC1AD997CEFC4D836\ -B854CEE9AC02900036F3867FE0D84AFFF37BDE3308C2206C62C4743375094108\ -877C73B87B2546FE05EA137BEDFC06A2796274099A0D554DA8F7D7223A48CBF3\ -1B7DECAA1EBC8B145763E3673168C1B1B715C1CD99ECD3DDB238B06049885ECA\ -D9347C2436DFF32C771F34A38587A44A82C5D3D137A03CAA27E66C8FF6:\ -C4966858DB87DFC7DAE95CB51A8B19DD481F75B3FF554B18458C0F25A285F613\ -5D73FF6F1B498B957E8481F16612D8B52E187BDE76B3A8D1A6324A3899F056D8 - -83167FF53704C3AA19E9FB3303539759C46DD4091A52DDAE9AD86408B6933598\ -9E61414BC20AB4D01220E35241EFF5C9522B079FBA597674C8D716FE441E5661\ -10B6211531CECCF8FD06BC8E511D00785E57788ED9A1C5C73524F01830D2E114\ -8C92D0EDC97113E3B7B5CD3049627ABDB8B39DD4D6890E0EE91993F92B03354A\ -88F52251C546E64434D9C3D74544F23FB93E5A2D2F1FB15545B4E1367C97335B\ -0291944C8B730AD3D4789273FA44FB98D78A36C3C3764ABEEAC7C569C1E43A35\ -2E5B770C3504F87090DEE075A1C4C85C0C39CF421BDCC615F9EFF6CB4FE64680\ -04AECE5F30E1ECC6DB22AD9939BB2B0CCC96521DFBF4AE008B5B46BC006E:\ -DEF5B398B53E2B884AAA19D86186EC7B386974386B24F5C993417C1B3377449D\ -0EE19D00AB789E2D63A56B01101E44692815644147D1C2D66A9A68579BEB2B50 - -3A3A819C48EFDE2AD914FBF00E18AB6BC4F14513AB27D0C178A188B61431E7F5\ -623CB66B23346775D386B50E982C493ADBBFC54B9A3CD383382336A1A0B2150A\ -15358F336D03AE18F666C7573D55C4FD181C29E6CCFDE63EA35F0ADF5885CFC0\ -A3D84A2B2E4DD24496DB789E663170CEF74798AA1BBCD4574EA0BBA40489D764\ -B2F83AADC66B148B4A0CD95246C127D5871C4F11418690A5DDF01246A0C80A43\ -C70088B6183639DCFDA4125BD113A8F49EE23ED306FAAC576C3FB0C1E256671D\ -817FC2534A52F5B439F72E424DE376F4C565CCA82307DD9EF76DA5B7C4EB7E08\ -5172E328807C02D011FFBF33785378D79DC266F6A5BE6BB0E4A92ECEEBAEB1:\ -59D674C09E78B40FADD298EE83FB2CB4468CA96AFAA75CE3F4B451C0D353C28A\ -632A0DE753800D49FDBD6EA190025C5340036910BDBACC91C2D988B6FB2F8789 - -724627916C50338643E6996F07877EAFD96BDF01DA7E991D4155B9BE1295EA7D\ -21C9391F4C4A41C75F77E5D27389253393725F1427F57914B273AB862B9E31DA\ -BCE506E558720520D33352D119F699E784F9E548FF91BC35CA14704212870982\ -0D69A8287EA3257857615EB0321270E94B84F446942765CE882B191FAEE7E1C8\ -7E0F0BD4E0CD8A927703524B559B769CA4ECE1F6DBF313FDCF67C572EC4185C1\ -A88E86EC11B6454B371980020F19633B6B95BD280E4FBCB0161E1A82470320CE\ -C6ECFA25AC73D09F1536F286D3F9DACAFB2CD1D0CE72D64D197F5C7520B3CCB2\ -FD74EB72664BA93853EF41EABF52F015DD591500D018DD162815CC993595B195:\ -7A3E81CDEA3E783B0D2E77373D7E3AD3E069DF3C9F16EA87E41CD7178EBA02D4\ -9AA344C562EA9DB6FB20645F5F3DB9B62EC1F18ADFB5C10C77C1EBACEECC5E25 - -3139840B8AD4BCD39092916FD9D01798FF5AA1E48F34702C72DFE74B12E98A11\ -4E318CDD2D47A9C320FFF908A8DBC2A5B1D87267C8E983829861A567558B37B2\ -92D4575E200DE9F1DE45755FAFF9EFAE34964E4336C259F1E66599A7C904EC02\ -539F1A8EAB8706E0B4F48F72FEC2794909EE4A7B092D6061C74481C9E21B9332\ -DC7C6E482D7F9CC3210B38A6F88F7918C2D8C55E64A428CE2B68FD07AB572A8B\ -0A2388664F99489F04EB54DF1376271810E0E7BCE396F52807710E0DEA94EB49\ -F4B367271260C3456B9818FC7A72234E6BF2205FF6A36546205015EBD7D8C252\ -7AA430F58E0E8AC97A7B6B793CD403D517D66295F37A34D0B7D2FA7BC345AC04\ -CA1E266480DEEC39F5C88641C9DC0BD1358158FDECDD96685BBBB5C1FE5EA89D\ -2CB4A9D5D12BB8C893281FF38E87D6B4841F0650092D447E013F20EA934E18:\ -B26C758C740DA514E7BE7966C2E371F96C263796688A771A955005D907AF23D1\ -9C47FB0FF920CA3DEF21E13B4C827E4AD586DBC3D28F3576DBC6694F48E8BC37 - -023D91AC532601C7CA3942D62827566D9268BB4276FCAA1AE927693A69616526\ -76DBA09219A01B3D5ADFA12547A946E78F3C5C62DD880B02D2EEEB4B96636529\ -C6B01120B23EFC49CCFB36B8497CD19767B53710A636683BC5E0E5C9534CFC00\ -4691E87D1BEE39B86B953572927BD668620EAB87836D9F3F8F28ACE41150776C\ -0BC6657178EBF297FE1F7214EDD9F215FFB491B681B06AC2032D35E6FDF832A8\ -B06056DA70D77F1E9B4D26AE712D8523C86F79250718405F91B0A87C725F2D3F\ -52088965F887D8CF87206DFDE422386E58EDDA34DDE2783B3049B86917B46280\ -27A05D4D1F429D2B49C4B1C898DDDCB82F343E145596DE11A54182F39F4718EC\ -AE8F506BD9739F5CD5D5686D7FEFC834514CD1B2C91C33B381B45E2E5335D7A8\ -720A8F17AFC8C2CB2BD88B14AA2DCA099B00AA575D0A0CCF099CDEC4870FB710\ -D2680E60C48BFC291FF0CEF2EEBF9B36902E9FBA8C889BF6B4B9F5CE53A19B0D\ -9399CD19D61BD08C0C2EC25E099959848E6A550CA7137B63F43138D7B651:\ -919998132C03BB57E2748C5715C4D3CCD72250633983A61174E5A9B53BFD3ED7\ -FA7BA8698BDF766B31B29E387B1E44E1C10402C3A9F4FCE845865803F805CB18 - -20FF454369A5D05B81A78F3DB05819FEA9B08C2384F75CB0AB6AA115DD690DA3\ -131874A1CA8F708AD1519EA952C1E249CB540D196392C79E87755424FEE7C890\ -808C562722359EEA52E8A12FBBB969DD7961D2BA52037493755A5FA04F0D50A1\ -AA26C9B44148C0D3B94D1C4A59A31ACA15AE8BD44ACB7833D8E91C4B86FA3135\ -A423387B8151B4133ED23F6D7187B50EC2204AD901AD74D396E44274E0ECAFAA\ -E17B3B9085E22260B35CA53B15CC52ABBA758AF6798FBD04ECEECED648F3AF4F\ -DB3DED7557A9A5CFB7382612A8A8F3F45947D1A29CE29072928EC193CA25D510\ -71BD5E1984ECF402F306EA762F0F25282F5296D997658BE3F983696FFA6D095C\ -6369B4DAF79E9A5D3136229128F8EB63C12B9E9FA78AFF7A3E9E19A62022493C\ -D136DEFBB5BB7BA1B938F367FD2F63EB5CA76C0B0FF21B9E36C3F07230CF3C30\ -74E5DA587040A76975D7E39F4494ACE5486FCBF380AB7558C4FE89656335B82E\ -4DB8659509EAB46A19613126E594042732DD4C411F41AA8CDEAC71C0FB40A94E\ -6DA558C05E77B6182806F26D9AFDF3DA00C69419222C8186A6EFAD600B410E6C\ -E2F2A797E49DC1F135319801FA6F396B06F975E2A190A023E474B618E7:\ -F0EECEC5514F8001BD7AF333B78AE40E0D20944AAA2710EB3524236ABE3EAF3C\ -999DB788869647B5737B60FD4BE4753722C2CA6E905E030EFD04749BA46251A5 - -4FBDC596508D24A2A0010E140980B809FB9C6D55EC75125891DD985D37665BD8\ -0F9BEB6A50207588ABF3CEEE8C77CD8A5AD48A9E0AA074ED388738362496D2FB\ -2C87543BB3349EA64997CE3E7B424EA92D122F57DBB0855A803058437FE08AFB\ -0C8B5E7179B9044BBF4D81A7163B3139E30888B536B0F957EFF99A7162F4CA5A\ -A756A4A982DFADBF31EF255083C4B5C6C1B99A107D7D3AFFFDB89147C2CC4C9A\ -2643F478E5E2D393AEA37B4C7CB4B5E97DADCF16B6B50AAE0F3B549ECE47746D\ -B6CE6F67DD4406CD4E75595D5103D13F9DFA79372924D328F8DD1FCBEB5A8E2E\ -8BF4C76DE08E3FC46AA021F989C49329C7ACAC5A688556D7BCBCB2A5D4BE69D3\ -284E9C40EC4838EE8592120CE20A0B635ECADAA84FD5690509F54F77E35A417C\ -584648BC9839B974E07BFAB0038E90295D0B13902530A830D1C2BDD53F1F9C9F\ -AED43CA4EED0A8DD761BC7EDBDDA28A287C60CD42AF5F9C758E5C7250231C09A\ -582563689AFC65E2B79A7A2B68200667752E9101746F03184E2399E4ED8835CB\ -8E9AE90E296AF220AE234259FE0BD0BCC60F7A4A5FF3F70C5ED4DE9C8C519A10\ -E962F673C82C5E9351786A8A3BFD570031857BD4C87F4FCA31ED4D50E14F2107\ -DA02CB5058700B74EA241A8B41D78461658F1B2B90BFD84A4C2C9D6543861AB3\ -C56451757DCFB9BA60333488DBDD02D601B41AAE317CA7474EB6E6DD:\ -E57A285664BF66D2D2C7F8AAB8B75224A793C799D16A4774BC0C8693976F33E3\ -10979C84FDC302822542581BAC488F68CA0987E7147A782B036DD211DC798408 - -D1890B4704E169C28E44DDF62A1091450404910539FC2DAEB26E8ACF4533B024\ -E5215C2D02820DD8FB2CFC1743955CBACFF0F8F35DFBB5E3F942F36247F68211\ -D518F3F601AAE12A1CDC000BAB43D4C973F287E80741DD1FCF6C34F2E6B4B6C3\ -13D01C4FF3CBF9166F26946F18EF2D58271BA9233F09A6B77BFD4F48B36EB3D7\ -3D1133C4F842A7DC3907F680B0B773242C11E3DD973A44327EA7CEA9C0F8E07D\ -682B6651E506B587559FE01ED721000BAF570A16FBDD9EA29FA3DEF4BE912058\ -321A8B720C5C102E48A6E7ED6F8838D400DD57D06EEDBCD15323F86D855C94B2\ -1E41B14EC9E1BBC8019211FD88138C91F9ABBD9BB3914D26C1DDC21673D2D512\ -63B39D66E741D924CF2B192C5D2C1A140126A3D64A2C77BE6C2C6EBE8599978A\ -E90BD36CBB9AF64D078910C4094AB3BF399C34F2AB8EF843E9FE1BF88BF443BA\ -21E4377E5F49C07FD9653B526E14562237F02D11B904BCA6AC31AE721A43E3C4\ -910A24AF6F4D80C031C109FC0FE49F15274BCA92BDA04C3B4196C192F6CE489C\ -63A806ACFC895AB52CAD657C1783B528E12D0ED856E1F8FC91F2AAFDFA0A9249\ -8D68530772EE73B359FCF1418D1096C46B34DCF90E5B468BBB2970BECBD70089\ -CFB039D64CC50FFF5EEF26384D34F24515A6558B06A1FDD88F1050C5BD78CC6E\ -D83D4C2B0E882AEBCF84AFB0430D0BF09F2FB42B8B4589158093A7709AAE75A7\ -90910E211EE1333FFB6FD80778DA3BF73858978E9DD647978841B18001DBAAEA\ -43CA0C0A03DBB9BCF30CE76A6F4B2CF2A9B6531B3E4051E7E05090CD421BC66C\ -4731E7122AD129FC42DEDC83BB460E3F889992FBD3CA072686E56B72C720FBC9\ -8D723EF7F247286F77CCDDC728738E941B1A74D4F16671C21FDD5643A115DDBC\ -B88EE7EC67EA66FD2BCE718DF6E085D4B5FC71A72696636A8F7B3A68AFA51A89\ -6771FAAA7F1F827430AC5E8089DBC0D4175E1B22A057BC5F1724EADC1A41E78F\ -A3ACAA8B97E5F2E19EF9D59AE12B04E7F0E8A621E098A66910E2A5ED2102B824\ -CD3EA044A854F1CD0B33E61E7F737414B2953549F25DD34D19AA1981DE7CD564\ -9FF6C6364A4F25312EF62395A747AB88AAD722C05AEC40DEEA8EEE5E779EF458\ -A68840BC6BD5D29AD40F98B3AE010B6213372ABB7BB8B8:\ -53BCB0FD89D9CF4A3738A01154D2B280F03B1D68EF7B512F6C657A0264488CA1\ -093D70F88C08DFE60CD418E938D74FE18EB3D525CD0492C8BF85FD2B2709516A - -4FA3DF1DEA75AD4B9C379206A95FED930000482E5B683FD2B17DC8E7D5C4BC1B\ -73186CCC13C9FF2DD09FC1D4F68034D120E84CA73A00B71A3B46D1EFC6FF88CF\ -2EDA65810B098CC5E651D9CF064E87076D5A871849F3B405D3D58EF5B1F10520\ -A9FB4FC84A81A87B13DBFBF9D8674943E28C257E46D8AD7BE1785F1DC7C9B1BD\ -574AD1DDA48F0255C853D2490BD3D63DA22A8369CFD02594999A2EF443308FB8\ -298266A11EFA177102C75DC674E89FC9DCC1A0D3C863BC26141102175D2678EB\ -6E13D90BBD9A5EB89AE8C0CB47D7F340D3D32042A2762BC9BF2B40EB40E87FB4\ -2610FE7E357051F01494704FBFF73321B47301A0799B7EE3FE5E62200F397A61\ -ED4509A62F7106ED0EFB0ABD6AE9E4A1FE9B02C092DCDC75015CF602F3B9A898\ -8B609E6C0D1C5C3E219FF57875C2EF01615F89447EA602DFC94EEC17A398C014\ -BD346691FE209A002771DC8164422CD166AFB457A8B3071282178A3EBD201D9B\ -07B27E711E7EE7D33AA5210ED4E4E92486775D14A6CED092E34A7AC826709399\ -48FEC149F9C018FCAAD3FC597D315713F44FC5E1725F448ECAED40E8D841BD02\ -F1E81C019B08F99412E360C0BD378391C67D964B47F50C26F0A483ED66402361\ -6B0FC9AFE43620DBE9CCFE070EF295C049EAC754C2123130C6B2C0232F6403AA\ -7F0DC35A5999BF95D34AD612234C6289277ADB60E4F72EC2DF570F05395B3BE8\ -A0A3C78B732821AA08927C524E15D65F66A3DB8C1C96FB70BC0686AAC310051F\ -469FC5EF880C0F66947C1C328F97684EA24CBE63BAED8D114F40507C2901034E\ -6AB3893F366D53F1CFCA309309218CABCECA4722FA9CCBC7249B87C12FF8397F\ -40487EB00082E7F551D27E301C3BC7B5389F7042534BF7E692DFEA4DA24F7C34\ -B8D2FF145F54B517FC97134EC5AC2CB925C508D7A6BD01FE7B764648274972BF\ -08560D30802E0EB7EDCC57AF4797BBF92E8688268606B0F1BC901FCC22136281\ -665EC16393FA9601C4FBDB18CD1D1EE382BC07973903E91FFA87399D1141D49F\ -4F0C064ACF3AC9897891DF10BCA0116F2C3FEF180FE6A8E937C478F2EF293AE9\ -186DCB1F76B6E48101DF64E57EA7C64C5C0025E221C8F5CBA5CC92D9CEC62814\ -0996B26D17F439B780F59A999301122F82D0495F8AB5AE1EA5790F45E992DFE0\ -0D5F82A7FF1354AEFDCEFC0D2D1731D22FA2B75AFD4FDA25AB194055FA962838\ -1055247C8C7587D22E73C60136C4282452D47AE03AA035FEBC26FCCD42A1CB79\ -CF866DB6418A49FD8261E877DDBB839CC39514DDB87A8A40D795532626FEA4A4\ -C35D13E028F9ED1BC09B06BE999B8DDD2258AA0596BCBBF72AF67E10BEDD58D5\ -99B8D577A583D676BF5561F80CE5E9528729A92DF578FE75DBC70474B75747A8\ -D55DE70E57BDD62D4344DC2115ED4DD62F1FC98BFA1E7421FC0700025C46D0ED\ -1BEF35C3B778563211B9FA9E8BA4BBCBF01C2FB626AB7EF325CE9F468DF2CACD\ -B178D36557CD85D542C067C289E926C1EA2F20ABD329E984168BB6DEF1DDCCF2\ -14DCB6A53AFD462F0E7E7A19E8C88F049244125A6D7DD41E58BC9B2FF7FA2478\ -DF76AF73090CB1AB59E388BA20E2C297C967737A1AF61793B68ECD7439444C48\ -E28E2D09C48FADA5E0D1D15E5B340A52F8B3B854CCA479F0A598445E14F53B3B\ -A36891050C79673DF3E2B5825C955A29E5C9A22F3991D0AA785718CFEA1D2385\ -F8E47E4A75ACBC7988D0558D541D71C4E6C5F1CB15B60CEA0C34A67BBCE105D7\ -A896025E0254DE7D7AF724C9027D44B8642192A08AB8E1EF3046DDA6014DF7F4\ -C9E63C635E48AB2E70B640D480998EC9357E665F99D76FE5529EF23C1BDFE017\ -C3A66CD4EB2DDB42EF85EA0CD65534:\ -6A6ACBD03B4A2CF63356C7B40B1C11B4E407349F13BE2A5EE0162D511B053760\ -CA9869B3036FE9D68475BFE3957B7007E0380F174B2CEC30ADD94DB65E43B4D0 - -523DE8B1F4CBB65E81FF0B6CCD6EB8EF0A0F0A691ACAF4A77F25ACD2D66AD4B3\ -EFD25BE70308853C094412A518A32020E3020A9F6AB32F0CD60EC0D7A194917D\ -6C457B168A54A4B46F7B0D0C71BD61CD202F4C718776A701E0770B0EFA054187\ -70F98E4E79CD066366FB3300E8BE359A98B82B764BC2FBBF59C7E8F94A157B01\ -C6C7577B1428138CD422BC47330F8ED99F4C0AAB0D984287445539839389EE08\ -D6345108AF26ADED0EC1D7BE774CFB8C5205DFE07CF6CAF8C1AFE37C7A2E4FE6\ -013B93EB2463DE4E0971C7178D6A76B16A0E8960C984CE8BBE71B3B466EDF044\ -5B835F09414D01F14C7B6167FF78FF118127BBD5F812C27FACD57B3B120E2BCF\ -E87315C7A92B82EF5D50CA14A7174D1BEA7E056523E055A6AE42EA3765094E55\ -44E5ED003C989C2F98F38A17E3DDA74DBAF9C669A319638A2698B0E4A611480D\ -8AD3CF016792ECD1034925F42B9811A7214D623D047ABCA31997DDEB03275F80\ -DD21F40DDC80616E7AD3D481E8EBC0A1A6A398E16A78369215541ED10B75671A\ -DEB1AAE6E11142A1CF665FC1B7332DFBB0E10C21A2B48F78E57319AC9C58DFA8\ -B1C2548E2979EF1ACCFEB215AFCD6C2C1B46FE97DD491758378330EFFC728366\ -1D2CB84FA05281E9E517408508D24D042E7B9BCD34DB87CE972E4CBCDB98615F\ -B93093369DFEDC782F44BCD03E81CF93051318B2401FF29F753A264BDA65AF19\ -9E3FCBB8B5D39C838A67D6C7A3DB046DC56C323DDBB5340CBC229E47CFF8C9D2\ -9B7A49AC0EC8C1440AE498C7D150EF91C29BEA7DF3EFCC2871A13A1D72D139CB\ -4603D9FFFE85F6DDD544850EF63C3944FB35DBC00D4308CEAA6394B6E23F650D\ -323F8F7EF50DDB68F1486EABF989BF44451F620EC9485C0B52D1415D3C909A2C\ -FBE9D77DB19D069D33BAEE4D77292E63FCBF65C1EBA24BFFDDEFE95211EF0AAF\ -8ABFDA9F94445E582976F986F5382CB669506AF2B4A5A0C43000A3C72C5CA4AA\ -CDC9D3D39FC5C492A393B6C341B86DACBBF6BA8B465100CC683EDB2D9B9F83ED\ -F9C6A32645F51CC79ADC22A52A007BAACA618BE35E356D1FD1CFBDA73F1ED092\ -53039DEF609450FD2D5943B9CD49CBD52A318EE3510D7CF3FD8FB388AC6CB9C6\ -EEFEF3D3CAD8501B91CC04A888D33E16D6A4C9666F5F5F3B257193F2B46DEDDE\ -11842909D8C48ADE57775B0B272E2DC9CEF1A083EB2CE58F4D1F211922FD6ADE\ -D1B82FE6F5B11251CD396E5A3666ED9626036E4E356231C146BBA0A91AFD3648\ -EB7BFE0B9C14F15AF2F92309826F468945CAD0AC422DE3D6A773B76178422107\ -CE0270E7F580B5CCEBA82CA0184AAFA8341141E65E39859885768FBC5CE63B96\ -5A0604B659E71D9DA2C7A43646088D8071D76926163AAFC69E25355BB0A222B7\ -B2DA9F0A20C021ADC462E905A9C3BF31C16D87FBEC3F014F3957A720F1432E17\ -41553092052FB58A198640479ABCAA51B104CC93E2636E1460643EA812BD44E8\ -19C2166EB6B349BA5BDEBAD59078910B5C22A56F004B8D9E4B1224D8D204B48A\ -BE7355548A402736C5CB110F3A1476ED631FF168F4F3EFD89B38DE4751536548\ -647523D334FAD7CC2D142973F2DB3C1FE08FC5CF83F9F2BD2DAA524B37864816\ -AF29EE05951FA09D1C51D9D14EE4F72FD7BBF18B1A724FF5A0958A063947C430\ -142AD2356E4400AAECA442E163372A8F1CD36E2DB988E7781165E5D4E7074ACE\ -40858E8370E883694AF09977704347FB735C8717C42BC4EEEB2AAA50DFE637C6\ -40909CE379BFB9E2608F88751377038D1669F248178AD580A908D7A1B8DCC7E5\ -3E01801F1E485B5893F103F03E0F53B2B1440BE95644D85AA7F6EB7EDFBB4665\ -2196695EA23C08573397B111FF909025E20C5201293B4D223BF7AA01DE7CB28B\ -94714370434B9588097E2401B62C7A0DEF1FBF89809E810749FD3CE9EC3C07CE\ -4BF4C43DC966429B2BEB4D711FC6C448A12097B36F1E6817EAF4937A983F85D9\ -CF3E62CC1B2AC6AE1EC9EAA8CD8EE2C3322239CFE5DB3D4E8786282E630A7D25\ -9C2FEFECA03031C960A66A71E436A3ED6F2F3CFAB4BD77C660D14205ABF606FE\ -561A346F7D849B69475AC9F6822D80B9A2E56D5D495E4B309B0EA963C9FC5C7E\ -F94B217EE5337989AFBC7107D233A8B362AC27C4F69DF9E191CD65AE97D6EB9E\ -5484EB6F10349575E4CAE51452380151F902415AC9CF42C824EB23C9541D2DA1\ -C26DB85F53CDAFB06A12B8393CD580A8E494EDB6710C720DCAE30832967E33E6\ -303A92B1DF0841D7724284FFD2E00B95C6D623B168D21AC1BD3C675EDA33182A\ -2C22370998DE1E5EB905372CC6EF32D5B765F5C94870DF4842D011603BE4CDB1\ -C227E41EB2F2E8542CD325884FEDC9C5C7BB07A92D20D64B836215C59F162A3D\ -A8BB67D6FC13FEF97CAB6ECB8A29E431A6519A6261C4521CCB90E6E609869E6F\ -E398404AE047F64EC4263566DEFEE66329DD40AC985EB8A08D26529A544891B6\ -F57CC235C63C09057AB6B6ED720EF41A3C9AE65768B43F6DCF4962A103DD93C2\ -13171DC2C9194E43265C689B49331450281A3FEBC618D1AA4D65A135137051FD\ -46B568CE294C89:\ -DE11315ECF713973B7D6E548DA33F68B53D8E9BC11F7E89C3CDD334EF748A58F\ -84B03B296F1B05357A8873449CDC49CEC6C893A629439B48B6DB517F4B0C9773 - -F5080D4C59E804BF8F34B334CABBCC7D32011BDE3677F4B9069416AC204114CD\ -9DA7A0ED0F4B4D8344416336EEC15553EF526B6DEC267B1242657DD0B508AF81\ -FECF9CFF9C82A6A7A9539814DD7E097615EF15373836B5D2F765CC8D5F82E904\ -49F13AA741D5EE2FE63898E55ACD85116846807606FE1E2E29F98F9940B067D0\ -D1DF01F080211B2EE4B0A30803782A7BC2EAFDC5EBDBA91EB05F7D7DC8E34BF6\ -D44FEC05824F53418F235FB64E899EE147BCB403C8855E94AF378D182D79C3EA\ -F977CB4E9D4A16D990A6C388CEB567B97785E6F2BC6745102B99AE765E960B6B\ -32BAF01E2379CD6ECB74D3E1A56552F5976DFE5C742BC92BE596CA742FFC3D0F\ -A032AC29F9F7C1A5C43BCCA62DF7D9DE35D0C7C179DB2E1AA255CEDCCA55064C\ -2049FEE1AF2CE5EF696ED4BC46B7C55BDD51F2D44C8713FB2475C0B85246AC01\ -03CC3863B7EB026AE076A600313F6FB40A4DF62A2AF81B7E917951EA870ECB31\ -B3401928B5046D9A1E62D14B30FDEBAF262868517318FE17EC3C0D52524F4412\ -0ED8ED3BA70C643300CD0BC70DA72C964A88F52C3A91EC20BFEB5CAEFCD4D9C7\ -685D8407476B5F34676C5EBD1E88A6CFF1C625322F8CD59B9ED60CEFB21F9491\ -B95E72791F7AC7EAA3C16159FE9DF7A989ADD6C2282C47585E11397EDA9F47DF\ -2B40166E03BCDD6186B46C6835118268DDBEF19A28BBADE1BDE0228FFD7E8B3C\ -3C598D89E24B8CDEE79C940254DE26CC6814BA2722E42F7571600B7325E1FF30\ -0251D52A895B8CCBD049B2953B8D231445F68F7C26EC25A4B8695C8AC116F736\ -BE939EDD762C9B4743E463C9B9B2F88E0BC0CE78781CDDC3BCA825ACD463C7CA\ -C2AA6C430BBE820EA94AF9A40B1B5C006E9641A2FFA6E427379E1AD49C81B983\ -20B3431FF0030DC683D61026438BC6A6D34B2C73704D9F62EAEB13ABB3E4B056\ -2B4E0482CD6B2D7AEBC0367EA29A88F4A76F3D76FA1197E1DCA92C8216C84C1A\ -F9B8C78C9E3A7799A4A79A783033B0F5547E8E75E69CF3615AB04EF989FE1A46\ -3B1672C571D50AB56972896E8A50C242F22C7F6E27CA4CA793F627E79608680F\ -5421B28BDD2589F05E65430DF774EE873FCD1234064F7A33CF5A1FA4E368137F\ -F9C1597F1FA0FA36493F20538077669EADFD3B06F788C912C715FB5D334DB6BE\ -D133A8FDC40F5496E66AD63881F0BA3727416715865253DC5290327B515BF68D\ -A188DD5B4B0EAC7CA712CAFA8FCAE0C5503FE58A219182F1C30DA6D0C19CFEE8\ -97B7D837C97996A35F4CA8CF0537A01D17E7DE0CC9C129E4DA0ADAF1FDA85030\ -DF9127BE628263B0624F372C47C3AC87EB945A57F5C732BEEE81A74030017989\ -92F3DC944114FF3D54C4666AC5AC8C98D0D5596CBDEB420665F5EDAAE747D54C\ -F7EDD37B162E372249D135938CF17D174D12D88279CB4C32BD6F018C766DA698\ -3D4EA51D6BD8FF0A9B34E9A93BBDA70CF1B4B867D60A74811FD98D52FAA559B5\ -2C755CB70A76C94BD19654CAE7017CCD70222BF08C5D7AD1F5E4E6344FDB3ABE\ -703452C29A696F39F9826ED8BC510A4A148E5BF8A5DBE6B82D7220164F08011C\ -05AC5159D52CE9D45D758B645BBB248C2D341DBEFA1F8602C5D458A64F38F3B0\ -4DB39089807B6A10E1BB52770B92CE72E2D3BB0C2241CDED35054B84558D1CC0\ -99EF7B2296951951D5B6A22F93BF962AC5EF8FB55EC6CC2B316428EDF12078ED\ -1B66D525D022819CBD489E1BEDB02FFBD507D55F9B5D4E22F6396EA233453754\ -688D20151A09C70044B8A5A9AC033C3C3B847AD833D5C05B33407666EE82F958\ -1DF9034EE15A9CA67D52F1D9B634B84C1B8BA9E515F1F060A5AC5CBAE2DE75F9\ -4E112F7198E239DF08D3103F065627438995026DF511C6E5BFDEEE5667D511D4\ -181850C7C5D179107C1B86D24D5532A88A4149A2810DCAE73731B0E1247281A6\ -FD31613DF6891B4C17B7A6A9AD9B77468254B93F85958AA0F01CEFC10B25169D\ -C46E035D3F24557B4BF0E7D60174219108D916FFDC55E25BFFD9809EFD058E12\ -C14F39C69D8FB73D3EC6458F47F2F8DB901BA76C86550B11B54D0641D4DB3EB0\ -00057DD00F2E511FB7A47E959A4402A3AC5462234B40B184020FCF7A0396C4D0\ -0A987C8741A4537BC17102A5C42AFEAB9F71EA66ED4CBC7B5EE682FF04F56F4B\ -A1EA0BB326C4089930F9E3F3FFA3E06637CCE32113881A06CC3A13837448145C\ -2BD01307A580FDBC385D8F46FB92FFEDBC8918D269DD1871164D4B3E2023441E\ -C8B99C82A5F09821CDDF6B38C9ACC3BF3A38D5628016159588C33EAA29D9463A\ -537C000A16AD8C177DC4CF716E625F46FC4CA8C19FBD8EF320F1D680639195C8\ -B195B0A02738E0665F4190D6287E589CD6DD45B9E8CC23B08E1681BFC6F66B88\ -DE6B091E825EA4BBFBD697E10BC407570AE4F2A3EBE569554639C2B8E051656C\ -C30C837F5A92260EAD1D552B45801B6D28134166796C87F900225CFDC3CC49D7\ -2DFBC18D8D95B1E160ED3CAFD5C3467D48AFF87402CBCB1E1420E3FCB588AA19\ -C8F42753B59DB6FB6A9FDBA127CA806DBA7DD97F2488FC2E438EEF57A4CC85B8\ -8DCFDE76AE1FF61225A1CA8BF4A14F729950322EA681B16D6492902506702DC8\ -F348E4D3AE7FB55FAC1231FDE82091B34F1791B6AE37587B10325F6FF5E23B85\ -5845B86EAE90785B9D10D90A16644D01BB626F343B908A9591F4069B21822CA4\ -ECF985C1E710475F33DF9AF4764CFB0FFE649063775338F15BEA7CFF29F16467\ -8160960A80ED148C9B7FAA58E9139911D3DD9536F69646F718F083DC9029D629\ -4FC4C607688AA75AF350AC2C0B001A157D023D73D86ED8133809FCB9592D1208\ -9CBD7A1BB6BBA882FE227C09A53FF088907CB4BC2FB4B7F62D41D3D397C4FE0A\ -D12BB3964370E21712951C679814D506E738C0201E42181D231136A435AE0397\ -B61CCBC5E8BBEBF8EA77C8BC48BD6211F29248F9D498D818E2B544D28A5E60BA\ -727F32EF4BA2707962230C900076FB764D0ED5CE078C9DB14DE894BBB836C6DE\ -9E83202AE89F9A8D8CB0341E1C81B5FA8B16731B8E231E969C0F1EF95336D4E7\ -3EAD6DA23DE3AD1EB608ACCE4D4D93996DD76EC1F5F2C576F6B3B76E07BD8A81\ -0FF5D88B00FFE48C42700B61CC499336E7FB57AD72FF44FC631C7222C9A3D1AB\ -F6E77B5ED7FE2F7228FED6C849BF7142C4103989A80F7C15642AE61650CDCA7E\ -854EB25E9E72F4C3E3768E6CCC8BFD556B56D3507EDDE9E5C331DDEA75568B07\ -813D20E8F4C9547838ED28448F2E67158ACF0C00B131473847816C5E2DC215:\ -740168046E1DE04598A62F5B92372B5198F2C44F579094D274EB5171CB4CD777\ -0763D54CB75D070184921C3CF65FA371E96F8FEC8138E7E1E1590CB0CA26007A - -08944CB473B828B118A31986DB67FC757F238182E790553404B792AA4F0095A6\ -A83291E287CDD16521A3AE8C48F56FBC909DFCCFAA7BCC570C2159F26592DCD6\ -B15BC4DD55CC05595AC634B2C3DE15360B0F07A03B5957BC9333CC5097919399\ -DD9973ACE15E55940178C4C96BB5E0A0A10BAE175769548EBCE11E0D7D9DB296\ -47F197D4B87F7039F5D4E59E016531DBEBF55A797AC9A6835032CDF34240A7EE\ -7423E89C09124829CAFC5F89431C8AFC54FD979E50D48A82B47A53523C84B600\ -4DAA323EFB708203E5388A6A5110C6CE2E341048A65FDEADEB3837A03420F9FA\ -DDC3F02A544F1E46D96B07C90C7971A7040A179E8198E90AA019268E00367120\ -D5F3D98A5CCE82C885E77144B1AAD66EE682847776B04F01F501DCBEFE390308\ -0A8058B3B8F1D823D917ECF31FC2D5B0795BF95A55C7093ECA7C801DD0BD0DBD\ -BEDE7D56513128B29FC0B4D25A6240B24C99E017BDFF7ACAFC8F8DE9FAF5A294\ -4384AECE82BEA04DCCC6D51FC6E6F27AA38F131B7959B13681A09B311D242E62\ -22A1CE5687DE5C080508B1DB16B6F8290D33A3CC0D0138AC61FD9093825E9D37\ -52889E9F20DB9F80F92750EAC88B38AC81C0016D40371EAB4A87E845E91446B0\ -A07081B84F559CDB95340CB020AF22AEA1BFF2FDA12F7A42973FF163A1C6F33D\ -B8B8214AE27ABDF1C54F5B03E29310FA210125E1296E8AF93A2996DBAEFBADD4\ -C51C2C3B8A3E2BC9FE060C42BA32768F6992A99599206CD2291CCC5BBD50856F\ -7F8D2D0AE1EFB5892C15A799B77482DE4553736B162ABB06631F1688F6746E7D\ -7A37EE7EF24E6CC901175F04960C01990178F81E957E941DEAAC8846B3704E24\ -204F43DDB0765C433F3F7D4D201459CD65682B7DDF3D47E95CDB31B96A4CB229\ -07F08BA6E92A4A07703B2DCF150F922C4B7CF181380303FB72547847305999C3\ -C8F9AC877D05D9DC4159DEB8A13D36AD1D533A56950E20F906D29D51DDC45BD1\ -5C1773991707480E37B827044BDC6473181B760A9036E0D3FA491C2F08C55130\ -D8CDD5AC8E97D0813164AF3D28A585F0C2EC7004D498F95C6B62231A632A56C2\ -D0C48FC3A6992D4051957B9ED6D9A86DBCCD962A8883CF82CAF01DA2F51A203D\ -56B6089BC8FD0B1BD414C8063031ED469555E22EF872689C130B1C101034D572\ -FD8CD0EDDABEC9EF1503D7F728B0941EFE2B9512438C7DDB176BE2EC2D9FFCD5\ -6495A4511428DF02819CDDA18D1ED5D3B16C6F42AA0AC681A9FAB51E8A1A856C\ -15C51A3EC1031427142EA12543014DD4ACAC640B8A7729E63AB7DF1051112CDE\ -FD4B988A2258334FA9A7F5B3A87A02074B9F69DD81B83FC74089A91D76AA4041\ -259E80FA255F2084902AEB9E996AC2288AB464BDEC47AAB26A28A2A819498975\ -5D48FC9A5C9279285F2F1DBB8B8018F3E4E13115D78A879792E45A8F4F24ED4A\ -317440BA63E6929056EFC1D2529B75A709D6C0097DC2D97F646F334EBE6195EC\ -5630132FDE58E25DBC17DAD822D9FA0938A2A2C926B105D108403DC29CF371C3\ -504FF73BCE9C7ACF9A74C4954CE6A32DA96B21CF3211B3E49953DAB78C49C3E5\ -32A349003C59C62F7D40261CBA63A9EA21C89A38AA63CE431C43AE261C4D9999\ -B1CAF491FAB8E7BE6E8C3454F1BE8793B2D27141FC107DA599A4694C41353D77\ -85C05B5E31440458D17C6DB66FEB8A9C5C073FB946A67AC0312BB669D9B12FAB\ -AA5272CA6631379EF4ED420A4424A5CD08526384C047C33A84D5D7DC0C215366\ -3B54C73DD799A3568C01B818992CDF8143F1DADD6B50CAE6EAE13AC66F31FFA2\ -B362CC4D2880592B7FEE4B9E4CD6AA5E5DE27AAB9B5DAD9F7D39407AE927530C\ -AB2B61CD7394A21EF47BFB813B5EA6091458D239664923280ED0D5CCA8285BB2\ -281A2F9FB3FFECC8E9147E1E8FAC957D90C9E5F513738745A47C2AD0C31FD898\ -6EF3B6388C6E821F166513811D547AB4336B5E04643497FC9F8D6E380EF6478B\ -82B6E2F5F65DD98A63C68C32B94610E1D3B9538F13A7688FBB1EC3448BE9BD77\ -BB93A34546172AE8D614F85228988E7FEB18C9A0C9827699E8B3CBC69750BDFE\ -CDA8268F694F4C509BEFC1A1166F85C829725299D173F867A300987A2D36D1BB\ -BE37BE3208FB8EFE9152A41A5F0E931B6382FF7F9B18937958FB180E61F2A8C2\ -8F36C3C80C3722935AACB81C24AA17FB3E7A1026F7031A7449818ED62BA7705C\ -A27C2D3268F90B6322921683DFF800A306CFC186CF2A61B37F35837B217E3B2C\ -ECB0843D84EAC67431E3D689F01522D4A4C73618B7C2965C9DABB15C0BE637D1\ -0CEEF72271CF39A7B803B41767BC34433C3E6FF449A439AE13DA1EAFA038CB9F\ -2E1C84F1CE39C05DF56FE3D7B82386C4E628B6E27CBC5D575C66ADA3510C246B\ -D04DB48F4AFC2D7352966DA2266C2BC9831532F53655D8BE42B421AC0D70D8AD\ -1D3587257886DBF93668E907E861BA64F45999BADB0F766EADCE5238B5ED397F\ -265935194812C03C5769137BAC97140525303CF48D65F39004A3F59B1FAB0989\ -5CEE05335D15B9B12265892F4ABB92AB1DD2002ED00CF3562CB67DFE1055968E\ -4AB3306BB34BB87D0F64B26848812A2F7B50424A21FF94081A7F70F7B684AB0F\ -092B2B085DCF84CA38414CF7290F607BF79C37EA84253ABCA8D4184D2DBE2E90\ -0200B81479E1CE8B71DCF2BD6E3C557A8E431D627BA669C2EA03068E0F7EA62C\ -29777B22142D7A1D451BD541EF8EBDDBBA4E3BD8FFCD340E935BE7C66EFC14A1\ -3EA48134F655B0DE3180101F09D204C379743A357E6DF1268B55A9F7524398EC\ -F3A59849A27B142239059998083E8FA91785E91C4D220B2FB17E3389EBAA384A\ -49D89B5D78136DD2454F06CDE9837F096B744D53221127869904AC227CDF30BF\ -EA78CC5545583F999B9C42A1184E2FB9FF3EC095B9DA0D138205C4EAC4C8C480\ -C43153608849F63E161135C79D8B6C9CFE9B8DFD8AFAB559D8B595DDD4383503\ -3B4BBD391E028BB2A60832D9B697EE61408F149744DCE71AA11BB2B0436C1E26\ -26AC3A27CDA293366B90B9CDE2D927855130758D3946B867192DCF3FCE9A3B9A\ -5276E8C37B8CB136FC90A6DC22650F95E796A9886EFD3F424BE63A66DBB1041C\ -B3D4A06F4E7EEE89F0B6D15C36F9EA010C66B332011C8888E8E4AB2B3AB52231\ -91E1388613A0FD0F07C1B26D7CC7CDF1AC62A226454D6291B431CC3EF2DB2B24\ -42B37DEFB942117FA247096BEAE598611B8104F37BEBEDD8BB8B949A89B5BF8E\ -228ECA1D8F16BFEC75A02FFBB4EEE3A6D4A6087C43634D675311E72A9F3253BB\ -5DD364E07EB4B9C84F586BA267BAFFAEFEC79E03B83B18595FE06D7E063EE604\ -FF287004D141C1A43AF0CA7C5651D98F633FA875B4743353FB07BDE59B6567AE\ -25F7095F1D9EDF30570E2F7D7EC194216898D910F9E295A41DFEE072CB56F914\ -BB78CC9854129250F9874B63BB3EBE9A1CDC6EBCB0916E1C440354DED6AA818F\ -2811DA913912A21D3961AC94A39F0827D3A419616905DC45842C8E69A43004B8\ -AE922C8DE1E8CD0668674A7760153213835BC63FAE4F8D65614AFD74A34D42AB\ -AD5025B884B34639340B45D49CCED423771916E18AA077291923017CA50795F3\ -B7A3F349A3D29923833CE57801C631576E23B838A7767CA1BDA92B82AC502DB3\ -688FFC83C09A4E40CAC31D20D9D32FA6724A80BE7091CDE9C7A6560CFB326B46\ -7CADDB9E9B7A491EDA283EFB0B61B4A1116DD859D5C0897EAA2A3FB2CD82FFB3\ -3770BF9E08091363B6B81D23E61C2A647D2BE440C5C79EA89690656D9F10B1F0\ -7942834E1CB6E2D2DF106EB6D6A21FA23819E65028515E88BD279F9317BEAFFD\ -394EA51F8639371C3A89F11305A4CA35FB0711F5E2C7C3DD1659C79024581211\ -3204B4ED8AAE9FF09D43C6DDB13F5070D98831B2C7639FB6B9B01C288812DDFA\ -8861DB32DC8268C07D30CF969953042B3DAD530D9D744C06AABE7A886C0FE57B\ -09B7F42D193FB3E9C06329818251A2F7E6474462C95DED:\ -9EF7A93FB957D1B7EF09E156186699159E65461C9C5F478CA8F1B25C6C6AF982\ -AC15F65E57ACD3ACACA75CC15C38616E0016685417E37DED05B4FE579EE2955D - -1A3DEAFCE70AF6F3F55D66AD9CE78D5F4D5C5F2638A810AFCD07D67E9F9A1380\ -D6B34BE482EF030C22F1E978F544609CCE35A74C5109EE7038495B6210CDBCA8\ -DC82C6E9E7B0D593FAD9665382B3C401AB8941DF71307DD77EBAF140AA66A1F7\ -6316478850E58886A9610631E9C722F459FA00C0B53124FB4F12778BBBA37608\ -26D3DBA67CD030A96B654AF93F8E395F5F439549489F8161683F124BC980E693\ -9C83A6085E4B6CAAF8BCD89A0E01ED70DB487166CC29735D9235A9CDC57B80C9\ -C2E591DF6322F5BEDD32937073F781A30389552AE83FBE147D1B3D3461A3DF96\ -C15CD96900C56718EAAE838417057579115936862679F5F2A45DADF65D14108A\ -F1641DF987B57986384FA1433789F5DFBE87E90BD4E9D8D4D0741FCDA7348322\ -B967B566B18612DBB8FE64F151947C3F7E361EE868676BCCD0CB3A1AFE046BE7\ -0057A05ADD3E65AF31E3FF414A627C0183E8FF583B41B75B203650420216E6DF\ -CAB289665F054CFE3EA0943647528518573BBB1D0F27E1449E98739EAF0D0094\ -32DF0C1EDC1625264B94A71DB762659FF5A3A7A867F182D1F1FD34B341A4A181\ -221870DC4A494013091A7E3B2B07E0160C438F1EE1E8A2B989C4FFEC36B5083E\ -A427606767C29672F44779A8505B422B25A56907F565B27690D011426A62DF00\ -36D57D967CD1D14E915BBC2691E7AF818C769D9E1F9EDD40894BE88FA1D7A595\ -2AFD898E837716ACD73953BF2D1D448123FD1A0276D2C2EBDC760A4B787416CF\ -AE5E963FCBDC8B551CB70F91DA0ED4A8090FEF178E879F2C34F3A269DFFFF097\ -72D44A13D7A17468B5834C460957D5243C325F63F05F89D4ED98D361E7F0AB8A\ -83948A64D0CFF8514841AA21C7F337920A9983E59BE4A0F1339E1E462F92DC1F\ -C070126206012458A499A8111FAE078E00B0CA3BC1D6C7087CD318D5603C1C7E\ -0425E6F729CEECA5F35B82F8A42E0E9B950EFB0904C5FB5C06D91D239913665E\ -D1F1EE4B82185A01BA86CA2D3EA94E5A8842231A94C05280183B7ACA28998410\ -3F122203EC2FBA4A382E6F5236D6F68DA05E3BB0C558421F0EFAB91DCEEF6D1E\ -CDC60F9B88F8BEFE31CDC3C2F024A1AF2C7336AA5D151E8CDA814A5FE898BADE\ -B9DD680E337E682EBC22BFAE445417E37D2D89A338659A280AB1206DB74DD42C\ -6F25639C1803BFDF2156DF613B0F5924D209F7F9003CE8794F989F4F27B82121\ -210F4F65EC5A1F7723305CEE438C41F793EE04496BBE337BBD2FD3023830B1C8\ -889C6F4D0C1192E364EDBE1CD987BA5D66224EE9C9405E1DFCEC0EEFFC5C73D3\ -123F6731C6295D1E6B854B884FD22B6A3BBBE5395312585CD138BCA67532C6AB\ -71BEBC6657C50DA87D2AC6068FA3970202C5E15EB7B4B3D2676C0134BCF1EAC2\ -B26BA46930B5E660B16060894884C88BFACD6779276B86F685AB6F17C6D53F62\ -1275FAD66D021D26D1D480AFAB4B5EC75E0E763FFC45F599EA02504DA5D91EB5\ -EFC3E4AE196F219E45E7CB05594958C876FF474A020EF73C1F09B1F7F7457E81\ -6D3AF51D86663D4D461754CD5E907456691E02446D6CACFD33516206A3187054\ -3D574592087773653D4086C2BDCBAB3C9B65CA11AD0D4E58DDDA8B4403099898\ -57103929549B7300CED42651D4086661694092C42875CB62858E6D1BE5F7274B\ -4BCD83AA4DA05CACA186A30902830790F9FFA24418E1F9DB00FA40477E83B05C\ -2D11AD7D81DDDB1E31F94A9DD5E9E13391C22479B570976E3AFC1BE41086D3BE\ -6689D87CA4326A7CDE8E5B396A678D3CDB2C80FECFBA2BC799AE8B1528E96D88\ -0CD098DDE910D097EAAE660AD4D7EA51C18F18AA1B39614299A172512521DFD2\ -31B9840909839EB69C892EE23F1BCEEC1FADBA75786C7DED93BC9983F74CEAB3\ -97EB8BA84F7E4130B34258D628594A6F9E2348FD91BA2594E07B8057E8A2AE3A\ -DFEA0EF919555385977041C5B6DC4F3880569171F7217AAA9A85F2F5BBDFE3FF\ -DF79248F2A35FD4DEC34980C67290339B1C0A5A6AB8838157AE2F5140B4A2492\ -4A6688AE5CE72A48103EE9029CE8A0F15B1FBB19A12FAAB80A7CD9C0E389FC27\ -75833E3190F1CF735ECDFE7F6B6C326506AA82613CBEDA8DD3691B81F4C1E3B0\ -FC32D7E6719CBFC12F4A26E0FC29D6417953ABC9568DB4ED9A294B9FD5F2A666\ -DDA546ABA301B1C60985033953EFD6F4538333B5C7DD3148814A3FD7927C366F\ -40B3D7ABBDEB2332DDB586AF80959097663CFAB2FEECAD6D368AE10EFF9663D5\ -F8BAB95935D25F45776F7F04B46817D05165A9DD4770509ABB92F8B9E7373CA7\ -80703569981754A51D6D376D65C57F55CD70E2DF5FDF5A6B829AE30CE3BF9428\ -15C8B4BE858DB58151D02A68AAB9FD373E047EFA51BD1A0CD1B61744D9E97CEB\ -A3334B3BAAFEA3BC9E43AE097CF2C3D713EECC247FF43EC74D54907D8BF45E45\ -B2E0E11D82B126A8179D3F66C055E11F69EA67AACC5FEE8AF01FAA379E51998F\ -5070F9EE0FD30A2EB22A925586FB1B39024EB5EB1E127C76A149E7F02AF1B73C\ -16E9E5A5DBE378E08A9FADF1194C625132AB3FDEFE8FE9A89BB8E0035A1A3AC5\ -278F5D3D0ADE0E41C81C6853A41C4AC45BE3F68180FE23F27F18BE2E339DE1D5\ -59D75DE63ADF7A32BAE42B037AEAA3E123A5314891BCD35CA48D57DF4C17540E\ -97202A8EA1328DA25B1FD6BE2B56AEC1E5DEB209F3B7A13ADB1CBE53EB645956\ -E577A7621D74E42376D70BC5C4AACD239A852FBB7B3F62CF59FE10438C1DC8E1\ -E46566325DA0CA43AAA63FB7E0B450A2DB3E3A2204704D894DB24B72B3078106\ -E096CD543DCF027650CB4965E38AC36A8AD588C5962B4E26548AB88F0BC20E10\ -ACC1C3FC00EF415B3C32499264552B14E2C0E789A3B8A8BFF9620FD939D0B34E\ -806177EC696A4B3B1CA4B32BA979B2690CFB3A6B17BCEE6877FFCE757E4116DA\ -01099FFE82ADD5A0C593E73449A96DB9CC2B9E846D166B095174F2CAF8B35DD8\ -78C836D9BB6EEEAF8E1BC5D0E149C739828CC480D731DC16B35B80D4AD82ED7D\ -29BD05018239EFECF8DEAE180C6A459DBCBFE4AAB9A5E2C1E1BC31418CF2EEEB\ -31FDF8BA02C9A91525E9163F672BAE2EDEC38C1BDB84EA237B4EF86BF5C0F0FF\ -E178E3761E82D94F66E5EA40BA8170BF768409E1B4177AAFD9937BCE3FBFF590\ -320D7C445372463FBBFB34F57447F42C16E026F179CBF82F617C86D1E8D42F6C\ -908F9C6B77E38D25D51303DBD781FFAB569B4CF31FD0B947C45E1768A2E9DFE8\ -369F520DC38D77937B69B821DB4FFEA8F50EBC404F0587B5598189F54B5A5B98\ -966FD16801C87DE2C3C7813DD70DC600824D426D88C55E89D47214D59206A7A6\ -5A65DA7CA2E42FA62ED17E7AA5B3ED446BCC71F17FEC8593BE96D2037BD07F94\ -76D4D732B32BC5DF8C921316B45699004716FC89F8D45BAE402C26DBCDF1A340\ -847B932FF882DBEAFBEDD252E126C89A1E1FDD8908A1F67D15D8E432DAD8E08E\ -950A3BC46B96CB89CC5BDAC703B3FA3E986EF1C6E7E6606E6845BA1EB2FBDCFE\ -E744B5E45206F4A419E1CB103C8490EB293EE9AEC1F0A0D294F9D3847737413D\ -30873F3C94740E8FD072817815EBBCE3F09EDEC9D1211A9E99547D620B2EC56C\ -89E9CB8144AE9E46636324BD13C6CCA3AB9CD9FD8F7F937ABABC598232384427\ -A2D4CE0CBF9765F7225E208C3CE128602B0AD08A1BAAB77EDB3111F0C6CA7BA0\ -EAC9D89D5B4378EB82C17F6EA08308A79A53D150D3F85EFAB77294F02EE0E288\ -5EE2AB2793392B87DB11FA77992F5B4FD75EF2F1A822E87407A4878894215AB8\ -9B6CC4A120F5A78B3C31AB80FFCC9ACEF53FC6F7F85685EB9D56D30D87C21ABB\ -F1652EEF8F32C7C567BD1F08623B09C29F33561D42727A5649A3850071AA6C11\ -735AE63C4FD31559CE560B27A362786A83353FE460B37074664A9421D3B2F6A8\ -64D5ACA087187B27E2B82F31CB3DF5E985CEA271C609B94B4E58356D40C7D5C7\ -FF2E5990FB39588154843EA5FCA92F120075D4C4D006661A0FA1B0585454BEA7\ -25473EEF7D58117D5840C8348999003736C5EEB7858FFD273A1C3EB2812F5697\ -C59110275B08F6BEFBE84C92497D5F73B7B6F794A849713B23AC5F29D5C7112F\ -B2E7A6E89EB54DDFA3122E6C79624C1BF25EBFB9FE5CE6DAA779F3ECB2984DA4\ -2F8C6ADC77B21DD291E684FCA50E46070962A2D4F00813D8DE1B8ED33FED9715\ -180C7EA8E2BB74FA65D9C7F6E142F3C81CDC59172E1020F62F65CA5A12CF2BED\ -9DEA04A4D8CABC2948F7BE823A3E792625275B3925A6C8D8E2B428C75A5DB0F7\ -120278CD7D6CAB768755C7FE2FBF89FDED1FB38AC7F76A2F8798CA36ED42CB7C\ -07F006271205F546A4812C20077F050D4CDC79459FA686E97F0704B7A9FF7DE1\ -6318E862C53D361BC635A55A264BE15016545DBFCE3C6D6849576ADEFB6884ED\ -D768214E0B438B0231B4F2692C2C0B5C177674F8A0DE236EACD9E0CEC7C8647E\ -4E9A5861B957EC834A2F8572F01304C3FD6A06019E5F1499B62BAA8670B65246\ -7FA9A4F10F053263BFE9743CC7D933F86136AAE3A6FB56754D7D238397A0030C\ -EBEA87CB255AF36138C373DBBAC41DD4A697032E4796C552AD9C9B3FA713C3A4\ -E09E0EC5581E94BE7F31065157662F9E9C678B1EF1B8B8A847C51789C22B1841\ -BCFC855820AF3258AF9E08231090B45D10046A00178E89BD515616B8A44E77BF\ -57795DABAF40687B2CDA7A5014168F:\ -A2C211D36CF26297E82789FDC7E1564AB1A615FC6277E2AE77E1FE7370C0FEF4\ -FB7B360424C44F393FC4EC2AD5061E633AFBC8D3FBB961322CDFB7AD5A4A443C - -1633256AB03B20CE079196B708A1C02D1B6072219070712C8589EE21341D5075\ -2ACB6CFDA17E982D828BBD6CDF54BC7232FD418A323D64939928597B9B52F07C\ -F488250C5E42BFD3AB48012D709F8D747225839296386FCE5FC5AECC4BA7A107\ -6D089DEA8ECEFAA0CF66FCA8602395719C12A04F929321784D7AB8239FCE2FF3\ -BDAE046A266132B5C2AD9F7261F3014E87B389A6695978693D9371D0B1FF9C40\ -5F338C2FDE4687359603950A54CF4B9CDD9B24480B239ACC5405C14C886BBB03\ -78391CEF0662A38882BDD09E3866AB9A66CFBD28EB5EE4F8009BDEFC4AEB1670\ -0EBA7DC557B489190A71FDA75E85F7EF841697F70FFD4FEA185E7A67C81C5B8F\ -273BFB97B2CEF695C1C74446C4B425BE6B2E66DC0AAACB247E4467B7C7D84EC3\ -3B6B5AB8FA1979F503008BDCFF948CDBF1226B1B066CBCF34797298F3BA8C60F\ -A01E0AC8B803223C656112FB91435D75453BAE4707B63330467DD13E0A4B992E\ -6F7E46995899A2D95D23F4AC3D0802B2A6E7D024DEA19CA408C4BBE053F14C9C\ -E264F129724A18BCB18F385B1CA091A11434EA96D98C8D0602E98EDC8DFA1414\ -1AF93ED0BA66E885E9FA108591AE59E109AE34D6B9F5586E4B4D75E7DF7C3295\ -8A65E88A9BAF41082A0A3F11539DC4EA2CBD9E1C6C3C439B622F1DE574FA7547\ -0C8C939B51D2D1C2A7204B859881D43086BFD8FB90346218D099C5AB36846F3B\ -98A7C847318BDFA01E09717943FCD864C5A8A17B6CEB89D98E872D388F20ADC2\ -BE5E2006846904F41682FB1283214F3D20DBC9FC9E0FF571844A1282E88590D7\ -C085B2C568EC5ACC4462B389FEAA5757F7033187E2DE31955FCE55FEDC909255\ -048B327CCAB2E582BBC9D8054BF5CB45145C7D3A3AF9CD5CF6ECBA490C634ECF\ -00E646BF95E8642C43A4978EF08A574EF1F78F6CE57C3B34B5A123D123617FC8\ -EC9B2AC0F9B70A7F6062D38DD7B8E9FB4ECCEF13DED5C0477483ADDAE4F1CC0C\ -FCA274B1307ED0DE72FBCB819154CDA897D7575213042615F1741A8CB646A39F\ -8D134FDF9E60E000EB8220F65CC30F5FA52C431B9E3B6101B96E25B8D0440B96\ -E572A18A01747C02AFCD7513542F7AACE194632099D16274F31EBABB60DDD94F\ -E43DACCE900EC0902EB5E686D48ED8D09AE63DA0E15C736809903A0297A92DE8\ -4E0260F11F446E1FC448E0EBF59FAEA3C726F97925C57CBDF85B1F77078D3625\ -7C85D56CBBEDCE180FE12B687ADA2DC9912FAC60334166BD2CEF06B089ED5C95\ -63844D71D8FEAD2F3A93F3C07C52537336A8A70BF5B596B9007B9FDF2D082000\ -F20E6B70D2A7E6C7ED27C4146895A6D85A246F623C1B9258A2F891F823ADE4CE\ -FFD59D4FFAD077351E2F506E9A5BDD3900F0204B9E8969AFE72F5DCCB9CDF986\ -D197AE4C4DB53014041AE6221B750E5290E307AD292C8DE6B899235212EF8CE9\ -54785537DC9435AF11E0F3427A9C7B22EFA752EA0B7EADE5F6EB4093BACB7867\ -6E506698139E4F774423B8942166F9A7D22480D814FC0AE19CF4960FBF6E01FF\ -A65C8DA5BED4F1AE2B9ECEC5BE7B3C38DD4045B0C93EE6CC77A7E61E85D331B2\ -3C0D164B104518B3405497054445A353E9B48F2AC5E8E96298D6655614336CFF\ -E6D8C9C915E387391519AD2632366AA3BC935030FD12927EFCA17505ED74C946\ -50C778539004854DF6C24269AAB9C273A493D3E5B0B1D687C33C2FACE46B4BB3\ -742D6DF743D09164D2E0EE7F6BA128BD5FBA2E3B33C199AE80FA9DEE3AD811D0\ -2BAA3D42A6362B2AD47BBA8A2C5CD00B46CF22CFE367281488A4852EB8B7FACE\ -79F0CA6F8E78D32578DFEE01711C4DCF3C26D0BA13F3075478E708C5C5315AFD\ -C2E4C0062D16458213BEC506A9E991A61825FF78DA9BA1BAABBEFA56B4A8C9E2\ -E7B60EC4B7B541C8E0F79C86BB5F03F736761A37169B2AAB8884EC6EA217B02C\ -59035F5BB327243D126B78D4AAB430212439B5A75B80618DAFEB66AA3AFF866C\ -4DAEE47D374B512E74ADA933EF24A841BA271C6F02C870E8AB950FE06E93C91D\ -F0E99165DC01BCB190E411ECCD85358FD4A88127A22E4CF4266A90845124BF97\ -B25D7B1C46D3A0D68A684F84E2A638C692A52CB6E8C651A3AC492B0460004073\ -D5349E35552359CA37660F77B2770D6B2B3F7B1922424AC4A8598B4C61A6DB50\ -7608A72A6A7D573CC055206276E14005A28A0EC41F28D7E260611D40F089FFE5\ -E529375691412F4E9E12E62C3BE2C563C26D2444EA9C69E6C935FEB4DC4E802E\ -5FE3906F8ACEF4798D940C3CD574BB5E74506C3E0B70CB62454A25F589EADB6B\ -0709FE3B50417CD1D98F08E08B7CF68A04CCCF8D6588F9FC2F31E533CDA6159B\ -AA4297FA446450D71C16EA2324EC09773E7C8817ECF680ED12F64A04863EFE3D\ -9D8760F34DE5B0860B3991FF0EE5EDBA22C4D69120DE19D5429E4AAE91C9E7CF\ -05CC807159A58F13B480872AC1609D87E7009DEDB71C09CEAAB640A2B6135855\ -CEAE4AC2954933A0255B425D9FDCD9C246F82AEB7C3BB78C6E73E03DB7AEC424\ -5A28693FBD36EF4938D59CCE19EAFC00671A0851612406A075713C5D1154D8E1\ -3B59B7C5B0902239D4BACFA386AC817AC5EE02A181A9A47C622B3ECF287E1484\ -3D452AF347110498A620B34AB4E116308D976062C9EE9CD35DB6CB79805B93AC\ -9A15AFBCB52F1ED4309879D1924A4BA190B0B86E60A516E77D34B4E0A49D4EF2\ -CEF3CC2F410FD8EC901363FC9EBD75EB460D4D8910BDF27CE26A8B4AEB94F9F7\ -6242401DC35D0644842B99FB6C439B82D82ECFE1AF0D01F9BECB15BEC83F13B2\ -60F7F714AA381032923FDE8F8018F3518547451435C9A5207294D08A907C7369\ -6F6CB000745E072E25B73B3EE11595433D27A1F11468686F08094F1D31F5ADA8\ -1F11F0677A29D72EBB2E1C4792CCC607CB938647E1F153F9EEF03D982595C631\ -E49B6B7C1FA003A6EB8D59CB8892CD0888B05240F12701753F89007C859515A2\ -FEF944BC60B36003A26702AC6FE04D2E942978FC31A97EB29871D6752399D352\ -1720729007B6A7215A4282B2A4EFC2C56BD129E74C9B00847692B96FCC71CF7A\ -7F19F3FD6B45C519FD73B4860880A2DD74E5727B31A93F0A87F0078155344AE9\ -F7BDBF00D83393B634B5DCA88A398E42C320EB95C4A826ACEA90B65E4767B2EB\ -A748F97C247568393E2FD3A66075CC12935B6D7EB5C2FF5282185CB62C73972A\ -37B3CA508004B4F796BDF82B83B5BDF90D6BFD32B5089B0CA2683DC7FB2337DE\ -42E650ED911DBEE1EF98257F9BA5AF54B1A54B04C0087A5A64BA779D86461BA1\ -5337C2E7D4955FDD777A025DE226306A17C384F1C52CDB5946FB0B46DD5C13BD\ -7A55FE2E27E4C6D40D61D6FFC024468F8EDFC7C7992DF5DC5D05063FE7231992\ -24F53678E48F25250EA28BDF1089718EB8B730D1C06735C2F871164E2EB5E885\ -A8DFD2A083BE97EDC94159CE9BF75D2433F1D782762F771903CBF9A1C9D13F71\ -0BA0E151B079DC0A8262BCEB1DBCBBC0F35DF6EECF7BAA7105B9808745853C96\ -B4372E95E482035916B726DAC7BE95A72B19DAD48DB1B19E6EB2EDAB5AC1B301\ -3839E7806625ABC129F41813E6D71EE4AB2040D81E42E6ED73ABBA64FF2EB433\ -B910EA7D4F5ED3D8D27D39BB454EC019DF6114F544D7B155549D0C56D14551FA\ -F353994A80F30F3C97E863A4F2AF316468A568038EB4D799350A6FACAFF90ECD\ -44E0F44EFB6DC42EE4B0DC2C59EA9C1827326DF08C0A6E55CF4F9C3EA0E78CFF\ -3635F5D08E44F1400D20F638D56BA84B4832090454DE57EF04B6C8805A36F63E\ -5CCC6E830C87FFC164647CED20E4C486D09DE7A5F9E4B68D5456CDB22B0DDED2\ -B95B3BCAE529215C2D25D6823C7D66A4FAE0A1E9F022BA5663204F2314DFA51A\ -1F10E11D6D62A8BA6C28B6AE7DA1DEB5B57F2B65D7456059AD9F03DC5A524054\ -DA39DD100D74EB657DE219795E3C45A0E4C762BA22F9DA9D8159E425A1EE783B\ -4B22C250D8894CBEC706CE16D5CA393404FF478F141BE7CC69E45B077BA1955F\ -1F49EFBE4847C795347F703300F672334F490ABF8B644A34B56DA00EC45A3503\ -14B9ADF27CAF7C51CB7DBA0C5477E7D37662F4F23247BCB8F7DD5F3E9CB8BDA4\ -0FA97568832AF0ADC68F71422E412254A6BFC8943BB465B01FCC8DE0B957677C\ -78BC1F7566953E9D2446239F602C682A521C14F741FEA98C7E27AABEC339B6F5\ -B94C78287A894AFDAE971F8DA7C7E4A4C92C8DA47BE82DC2532EC2DA9BACEDD2\ -BE6DB2B2FB34DCCDCB34116507376578CBCA105E5E443BEC0F2EF23BE34CDF86\ -2EDAB34F0FF21335E3ACD92F59688B419F824EA61EEA82BC80E3463452192377\ -131BA51FB0795E089FC077D0ECA8012E58B0637AD7022206887FE9EC00EE5DF7\ -AD2E26FE819EE35C7A179C579098AA3DF645D9064CD557DA90BDD21F871CEB04\ -8CA56DF9653A10ED60F5E9F0ED7F8D89BCF5C22D1143CF44718FF2DFD8E10CEF\ -8AABB67D2305F18177C1426BD4CD03F2625E459CE905067826A214E08E56D8F9\ -455593E6B324E72DEDCC429D3BEFE2AE0599E360DF95E80D453A3A849E48389F\ -A745635BEDE30E7932DE6A3816E31A2217F98D5E40238963D0A36C159FD4EC32\ -D8A5CF59D433DEF3378634AF6887FDB3F3EDB96FC8840FE1B538C329674AE810\ -E8C8B2B46DB208716D38E9D1AEAB097068AD83ADD7DD2647839B3A7388B0615B\ -DE26F8692E9C07D8ADECC2A875203C3D3A9C6CB1D7D06307E9E1D9C3BC536DD8\ -EB271E9A2159C904E61E8C9357FE759F36366AEF5A3D14CEE82913CD2708AA60\ -69369CED763C8E830D70924E82E9015C2998E86EFC1DCE6AC2EBCB49455542A6\ -D7DAB265AD6D7381FFEEE1AA40F8FAC0659B6FB56BB03CD8CAFAACD48D13672F\ -7D524EB9684CFED4DBB7476E99149C28EC08F33BA6AFF839AA178F86B8EEAF17\ -39C829177BA78547AD394136AA3FAD451A11E9642506568B39668B2436610E06\ -EA45FA11D04D3759B033B5382645F15B3C39270B81B80487643913A24F2F1C1A\ -1ED57C85CCDDC8CD6D59B62FA67CC80572968C8FD01894F0153634C88792A7C4\ -A407A4A4CE46CEC5FE5D2569F95A27DE242444EA0C715B357518CAEA23E767E8\ -545983F0D3A4DF66111B4AA1D399CCAFD796D7A80E592D5A51D2B3F60B5B04F8\ -D9C009CA56CBD4DD84127A29B72ADB7645FB7279C9818B2B43963BD605F45B65\ -75A5E2E369E0B401F5EC10EC703F1179B0AB9D4A89D6F096573952E513827364\ -A84D38922734137E969D8167D6959B70F42F2BDA37E4C989ABAA8024C1A84ED6\ -BEB74780927F78B32EA736B9B2B4A795C355C0319811729D9CC399D235197303\ -38D62E16E5035FC52A817090703FE776D65EF9FEF5BA5F4FFEC3CC8E9EB2E312\ -C50A479BDD4E6AB0A56C18C2DF69ED408417BEE28BB41DD13F8366FF6EDA4B34\ -090FC9BC045271:\ -B5BA769BC397D0F2B541E1C996C40F64C3E6BE52950898BC0380513F8E6F754A\ -41025B104D2B5BD872D1D427A8E98F089C9AAF3B5071668C65437F0EF48855CD - -[Comb4P(MD4,MD5)] -636F6D62345F696E707574:\ -FD1A64F7BC61608FD054303AFA2E31608AA3F3788E3034821D63A0288A70B573 - -[Comb4P(SHA-1,RIPEMD-160)] -636F6D62345F696E707574:\ -2B5F61CB57F94E7C7E6D7439FFF2600286658539\ -88224E0AD8C08C2FAA61963C8F761654AC529325 - -[GOST-34.11] -# Using the CryptoPro sboxes. Generated by OpenSSL's GOST code - -:981E5F3CA30C841487830F84FB433E13AC1101569B9C13584AC483234CD656C0 -616263:B285056DBF18D7392D7677369524DD14747459ED8143997E163B2986F92FD42C - -730B3A80E44DDB0AD9A04D990D22F84009A86E5E8A2E00164EB168CEB279:\ -DF252A7F37EBDCF4995B5419394A6D3D2C782D30AB5FAE89F3665F86A4BBF78F - -67C6697351FF4AEC29CDBAABF2FBE3467CC254F81BE8E78D765A2E63339F:\ -EF35DA69225241950EBA3F20E6EE2D86A6286707EBE04819A81F79AD71DB62E2 - -C4852EB81C5EEE208BBDCAA019F49142FC132197EDAF0E02374187066A9E25:\ -CEA05A7CA858638868FB64A1BBC015296980A6096B4EB09B03F1C8B075FF25EC - -12FC7387466C9687EF618EB38BEE08D4F67564BC48DFDE8A477EBBBC425C2C54:\ -D1E138CD1DB357091037E6041E6BBC7F58E32C4294F938868A9FF5E66E174EA0 - -A040EE298C760CD98EB6467BC03D839A31598922758D475AA389881F465A8BE79B:\ -6AE26456D06C682AB63DE2DE3D0A8A932370B12204BAC4B04F78472665A350D7 - -3679B590CDB17A11BB39575C88F02BA1EC7FD72A454D3A30E702073A9451F7CA\ -CBAC5B985ED5AA190E017597F2A038DE1F0F08655D429544459C7ED9EE75A4B9\ -21FF517FD4FB98E2FD0D79EFADB1CDCD:\ -F2D03BA660317AB8AE88490C6B25B79D74B2C307AF0DF128E82E98204C3504E1 - -B3980FFE5331EE30B407FC8EFA18FF6CE35C841C1622C405C93A51CBE8B2EC9B\ -4AFC999E2D87CEE18FCA7089E26FF5C5CC7AE1E29CA6E766E03831C8EA1D6335\ -19FCD34683A128126B989C4D079113D30BF4B6A89A9D0E7AD63F42C05CA5F576\ -A1C8BC2569E437D47CD3228465355770290D18C4AB263E81658141C2263738C8\ -FFF4ED69D9243D55F85FD95D9431CDBE3EE682E90CC06A7241AC3468E36C30E2\ -601D4B3941898F39E868967D99643BD84ABDC1567D2CC8BFD8FC27BB68579DC9\ -74E902B57291EF5AFA85D793E9126B33CF2D8A4D59520C314F33ECB78A8980FE\ -7283B3E414A23F0E2816A211290D45F83ACF45932151C47084B0:\ -D8A200CD03364E0FB2A396FAB05E67E0EB1195672316B0F54D1D05425E2005D0 - -D658E6C4786E9CA4E60B8961514C406336F46691F29A9B2B1C07784E7EDC6C55\ -355219ADC0B551A6C0DA07112748745D3CDAEE2E748A599091D2DF0FAE4B64E3\ -9D7D915D33E204F3BD0B05E45379418F542FBDC8B917594AE9385A9783BE7B20\ -3C0C7D6FEE8162AB8D678FE0E1D07035002DFDB94456042D8E5EC5111C403158\ -4CAFC73A302AE6BD91759E72460EA7463BA5FF80FB03AD8A61729B7EB2CDD6FE\ -7C9E39ACC81F6A599408CCDA167320511820D114237F9E85F13903A406D9A282\ -77DB2F3FFA99998FA16569B7D88A08F1AADA05CD59A3524ADC55EEE32F9165A6\ -6C94E6672D7FF6CEE45F85BCE98EAD9368B261C155B30B3209FA15388B7ADEF7\ -0FC45E3C43540B27B490E49D1E913186449247994553CB4E4DE086D85B65CF6A\ -292EA66D82B194364278D4600A05E74E972EE7DC81B32BCE93B1A6EE16765840\ -A4FFAD26B0415DF2BA3153C4363A12CD68F9A9EAACD4B840865F2E9CD587DC79\ -86899F36CBFC29852D7C4963B65B301E54DA0801AEC14134206FD1F5F6AD6E7C\ -370DB3020ADC873758D09B0E2BCB2C7FA5358054F6C1881631590B270779A43E\ -8657409033C7C88B976399C22EC541D4FAC228F083B006B40A11DC118A804F11\ -D78FA10A566995EDCC2EAFFBF3F0CFEEB2F7DE36A7E5EAB1F6C6C2814611921D\ -A03327F69DBCE369EA9264DE8333CC352AAA6BD28F5683861C460763579980F8\ -CCA8EE6964D2D34F64372DE76BF91D95A3886733DEEBB9FB31C05E8859DE8025\ -866F8FEB41623AA599678D0460AA9A0332013611ECEF0C1DAF6AA60848262ECF\ -95BDBAD61FF47CB85B09BDBBB357BEE558F5F645E40262946C089CB52FCA84C4\ -873E9BA632175F8D201C48D37306B8CBFBAF10E0B173741E7B10D3AADB576F62\ -950A09C721685441849C14F7A2CCC29E7BD37E2D46F24BC1021E6CDD75DB400A\ -E549D106B1254735C15B2C6327EE01A3C17FD007711BC974393551AE1091B8F5\ -DA89FB8BAE42C06F9DECD2C4DBD4679C5337A4C5526D398BA28A39B21CF1A7F6\ -7AA28228E44297812F6A450A3EADA691E44A5637B78FC2591AFC0B36EDB22C68\ -54AE9038F128B92092FF2AD0ACD061901BB8C7D2478A2C6186379773EAC4DB3E\ -726C7763943083262FADF6DB7E576C990F336B57BD97B843CF50B7B91492F786\ -FE6EEA929F6DB8CE1BAEAA9906163215499D6C0735254A047501BD8994B40F92\ -23F925C267DD90828C3A1B92504DA79AEA14A11F39EB23AEEDE03781954613B8\ -40387AA7160A29A24544349591DB2F7BEFD09B28BCBED6A99F0D2A34543DEC94\ -76663B8C70642EB5A8624B393D7AB42D4B4F55070E2CB0AD39DAE18D17CD218D\ -335C19A3C0475968A9A4A1E71E561469A56970B3952060CFFA415C120E7E9F41\ -DAB9E59B003E03AAE2A59100FBA56AA00EDA54A4FBB473F5F6CF07044DA74628:\ -12DF46E869E72CB058629D3554917D7ABA7C6D9D432751F58600138DD5862BFD - -# From TTA.IS-10118: -# "Hash Function Standard - Part 2 : Hash Function Algorithm (HAS-160)" -# Telecommunications Technology Association, Republic of Korea, Nov 1998 -[HAS-160] -:307964EF34151D37C8047ADEC7AB50F4FF89762D - -61:4872BCBC4CD0F0A9DC7C2F7045E5B43B6C830DB8 - -616263:975E810488CF2A3D49838478124AFCE4B1C78804 - -6D65737361676520646967657374:2338DBC8638D31225F73086246BA529F96710BC6 - -6162636465666768696A6B6C6D6E6F707172737475767778797A:\ -596185C9AB6703D0D0DBB98702BC0F5729CD1D3C - -4142434445464748494A4B4C4D4E4F505152535455565758595A616263646566\ -6768696A6B6C6D6E6F707172737475767778797A30313233343536373839:\ -CB5D7EFBCA2F02E0FB7167CABB123AF5795764E5 - -313233343536373839303132333435363738393031323334353637383930\ -313233343536373839303132333435363738393031323334353637383930\ -3132333435363738393031323334353637383930:\ -07F05C8C0773C55CA3A5A695CE6ACA4C438911B5 - -[Keccak-1600(224)] -:\ -F71837502BA8E10837BDD8D365ADB85591895602FC552B48B7390ABD - -CC:\ -A9CAB59EB40A10B246290F2D6086E32E3689FAF1D26B470C899F2802 - -41FB:\ -615BA367AFDC35AAC397BC7EB5D58D106A734B24986D5D978FEFD62C - -1F877C:\ -6F9D2898EFD096BAAAAAB2E97482DDB6389B8E6CAA964B7A0E347E13 - -C1ECFDFC:\ -E405869DA1464A705700A3CBCE131AABEEBA9C8D2FE6576B21BCBE16 - -21F134AC57:\ -5573DA2B02216A860389A581F6E9FB8D805E9E02F6FA911701EEE298 - -C6F50BB74E29:\ -163C9060163AA66B8B7C0CFAA65D934BFF219BCBC267187CABA0042F - -119713CC83EEEF:\ -CFC04C6F8463DDAB24CDF8B8652BD11DF23DD1B95F118328DD01580E - -4A4F202484512526:\ -7A5C2CB3F999DD00EFF7399963314CA647DD0E5AE1BDDEC611F8338D - -1F66AB4185ED9B6375:\ -A5A75806083AA9307074EF8FBD7DF592985E5F714611E812216C0449 - -EED7422227613B6F53C9:\ -AC78FC53A1DB90A634F1AAAF90119C889C8C24B59B98B7366029CC73 - -EAEED5CDFFD89DECE455F1:\ -672CA6826686BEDB258532830D606B258C6DE60154EC0957CD8B858B - -5BE43C90F22902E4FE8ED2D3:\ -D98CA07E172B0BC53D679D2F8D002C63FD24A6307F2B7E1EEEF28BE0 - -A746273228122F381C3B46E4F1:\ -F122BE39C91A6C17CD5900F531E680D54CEDEFD4F0E3D113D26543D4 - -3C5871CD619C69A63B540EB5A625:\ -2A26D2AD2015C67CABB7895EC5FA25473D4D1433FAE92B9B2CDA31F0 - -FA22874BCC068879E8EF11A69F0722:\ -A69E4EC1648CBBD595558EE4EA345E4196C2881E85E853739B1F4604 - -52A608AB21CCDD8A4457A57EDE782176:\ -5679CD509C5120AF54795CF477149641CF27B2EBB6A5F90340704E57 - -82E192E4043DDCD12ECF52969D0F807EED:\ -455584A1A3BBFBB977AE08DDEE93DA5ACAE0F2F4C3CDAAF089728AAE - -75683DCB556140C522543BB6E9098B21A21E:\ -BB779E7267CAF0E891547EE3E3BABF17837671CF731ED56334F61CC3 - -06E4EFE45035E61FAAF4287B4D8D1F12CA97E5:\ -E7B181DAEC132D3B6C9DFBF61841135B87FB995BE20957B8CD095E2B - -E26193989D06568FE688E75540AEA06747D9F851:\ -44729646A05AD0503A876B448F88F177A0A263AB746CA6E30676ADB2 - -D8DC8FDEFBDCE9D44E4CBAFE78447BAE3B5436102A:\ -05E15793E417DD4E02CD6C5636D42C1638C164D70B79F717F25D1A15 - -57085FD7E14216AB102D8317B0CB338A786D5FC32D8F:\ -2C4077A8858966EF79AAC3EC6D82855EAD22867BA45D617A68CB926E - -A05404DF5DBB57697E2C16FA29DEFAC8AB3560D6126FA0:\ -2E897B479FBCBF42D2139F6768DF147A3B85C36A5B3F3C066EB0565E - -AECBB02759F7433D6FCB06963C74061CD83B5B3FFA6F13C6:\ -BA76FFEFD006B81EF5991E697D0425621B16818EA27C11056E00904E - -AAFDC9243D3D4A096558A360CC27C8D862F0BE73DB5E88AA55:\ -1C1E758D87399A36BF7C8A2E6A55CE6A4F0C498737956959959FD2AC - -7BC84867F6F9E9FDC3E1046CAE3A52C77ED485860EE260E30B15:\ -DDEA76409C61F6D1873F01A34251C74C37B34F28F7F482A84395B5F3 - -FAC523575A99EC48279A7A459E98FF901918A475034327EFB55843:\ -777C523CF42D0006ED1F88F1BD0C3A5EF21814723794B8461A375C3A - -0F8B2D8FCFD9D68CFFC17CCFB117709B53D26462A3F346FB7C79B85E:\ -8D7474ED6DEA4626AD3C1D06D2AD5B198CAAD07B12077C680CF6D89B - -A963C3E895FF5A0BE4824400518D81412F875FA50521E26E85EAC90C04:\ -F525D4515D3CA54A2FAB9C679E93561FE151EA0960751352CD7F591A - -03A18688B10CC0EDF83ADF0A84808A9718383C4070C6C4F295098699AC2C:\ -9A8455F41F693B91B3DE46BF66FF09D42DC300B856B1DC2DFD12555C - -84FB51B517DF6C5ACCB5D022F8F28DA09B10232D42320FFC32DBECC3835B29:\ -81AF3A7A5BD4C1F948D6AF4B96F93C3B0CF9C0E7A6DA6FCD71EEC7F6 - -9F2FCC7C90DE090D6B87CD7E9718C1EA6CB21118FC2D5DE9F97E5DB6AC1E9C10:\ -A27A051A36A1501974AD8E9873E9DF231AA9AD90EC1D7A8BBF8F639A - -DE8F1B3FAA4B7040ED4563C3B8E598253178E87E4D0DF75E4FF2F2DEDD5A0BE0\ -46:\ -F217812E362EC64D4DC5EACFABC165184BFA456E5C32C2C7900253D0 - -62F154EC394D0BC757D045C798C8B87A00E0655D0481A7D2D9FB58D93AEDC676\ -B5A0:\ -5CA92B5F5830E1E5F8DF4391339DF7DF1F23BB31AA05437C103F1652 - -B2DCFE9FF19E2B23CE7DA2A4207D3E5EC7C6112A8A22AEC9675A886378E14E5B\ -FBAD4E:\ -9F01F07D930F40A26407760104EFD10D4436295F6B8C41FE2A4E09EA - -47F5697AC8C31409C0868827347A613A3562041C633CF1F1F86865A576E02835\ -ED2C2492:\ -22A3FED1F4E298C37A1D7BA0C80E994B11D95F290F3945A3CEB2E2E6 - -512A6D292E67ECB2FE486BFE92660953A75484FF4C4F2ECA2B0AF0EDCDD4339C\ -6B2EE4E542:\ -35F1AB1263211F738D3F97D0E4840C387E09369F23BF9239150D0306 - -973CF2B4DCF0BFA872B41194CB05BB4E16760A1840D8343301802576197EC19E\ -2A1493D8F4FB:\ -34CC708B874D40478E82324BF3AA32FE9F85AFF8C60B4BADF97003E3 - -80BEEBCD2E3F8A9451D4499961C9731AE667CDC24EA020CE3B9AA4BBC0A7F79E\ -30A934467DA4B0:\ -5F339B2F87E7F695B236267C819BA1705D97644AD72E0871C7E3A913 - -7ABAA12EC2A7347674E444140AE0FB659D08E1C66DECD8D6EAE925FA451D65F3\ -C0308E29446B8ED3:\ -8E20D5C83CDA8226B58CEFD74C293CA7579CBB3949CA9EB2F61565B8 - -C88DEE9927679B8AF422ABCBACF283B904FF31E1CAC58C7819809F65D5807D46\ -723B20F67BA610C2B7:\ -606255348812CFB5082F4D4BB6BBC2FEEF044E381FEB0E346061AA4F - -01E43FE350FCEC450EC9B102053E6B5D56E09896E0DDD9074FE138E603821027\ -0C834CE6EADC2BB86BF6:\ -C885274CC3BF110995FEF1154A86772F28B41E745E86E935B4E3A03F - -337023370A48B62EE43546F17C4EF2BF8D7ECD1D49F90BAB604B839C2E6E5BD2\ -1540D29BA27AB8E309A4B7:\ -EFA7F7E7BFFA6A5E7F7D1C24E7A0A9DC9A6F72B3E9550A0AAA06CCE6 - -6892540F964C8C74BD2DB02C0AD884510CB38AFD4438AF31FC912756F3EFEC6B\ -32B58EBC38FC2A6B913596A8:\ -ACA7DCCC6B809D511F4C248CAA5D1374E734C1ED6B995760CC3C56D2 - -F5961DFD2B1FFFFDA4FFBF30560C165BFEDAB8CE0BE525845DEB8DC61004B7DB\ -38467205F5DCFB34A2ACFE96C0:\ -6F1EF55CCC6EF9B68DE54C14448487901022452AB761F84644E9A127 - -CA061A2EB6CEED8881CE2057172D869D73A1951E63D57261384B80CEB5451E77\ -B06CF0F5A0EA15CA907EE1C27EBA:\ -B297F61FF06021BFE1B9D350B3F54D810BC16ADE17001BAE1B4CD4A2 - -1743A77251D69242750C4F1140532CD3C33F9B5CCDF7514E8584D4A5F9FBD730\ -BCF84D0D4726364B9BF95AB251D9BB:\ -BE9A75436C3988FB2FE21D0C10EAD9B9C807DE2E13A9BD8437F13332 - -D8FABA1F5194C4DB5F176FABFFF856924EF627A37CD08CF55608BBA8F1E324D7\ -C7F157298EABC4DCE7D89CE5162499F9:\ -4304582C3892942B1960822C965788B22DE19F1C6D5E204476ADFD26 - -BE9684BE70340860373C9C482BA517E899FC81BAAA12E5C6D7727975D1D41BA8\ -BEF788CDB5CF4606C9C1C7F61AED59F97D:\ -0480EF8519C32F89C65B8DD450025EC49CBDADA6C4CFCFC6FB4F1C61 - -7E15D2B9EA74CA60F66C8DFAB377D9198B7B16DEB6A1BA0EA3C7EE2042F89D37\ -86E779CF053C77785AA9E692F821F14A7F51:\ -0BDE9CD50D70F00EED97CCE40C3DF22BB4904C08C4177C3A95985D97 - -9A219BE43713BD578015E9FDA66C0F2D83CAC563B776AB9F38F3E4F7EF229CB4\ -43304FBA401EFB2BDBD7ECE939102298651C86:\ -3BF3ADDB761AB32A38B7B47047AD45B68EDFD88ED475227447EA1B1E - -C8F2B693BD0D75EF99CAEBDC22ADF4088A95A3542F637203E283BBC3268780E7\ -87D68D28CC3897452F6A22AA8573CCEBF245972A:\ -6182614C8257EB05E9AC0950E15E6044872E5C0AB2AF4540764CA0C8 - -EC0F99711016C6A2A07AD80D16427506CE6F441059FD269442BAAA28C6CA037B\ -22EEAC49D5D894C0BF66219F2C08E9D0E8AB21DE52:\ -0B5DC722EEA2C348325FD9B3D7F08F365B71D5B582C27BEB79B51D5D - -0DC45181337CA32A8222FE7A3BF42FC9F89744259CFF653504D6051FE84B1A7F\ -FD20CB47D4696CE212A686BB9BE9A8AB1C697B6D6A33:\ -29C2B817C75B6417BC89C262AF9D58F0C18FBD991F59F4181F237038 - -DE286BA4206E8B005714F80FB1CDFAEBDE91D29F84603E4A3EBC04686F99A46C\ -9E880B96C574825582E8812A26E5A857FFC6579F63742F:\ -62C5876694D88007709B50900EE2E6CA9505CC90067EFBF4C1D95B0B - -EEBCC18057252CBF3F9C070F1A73213356D5D4BC19AC2A411EC8CDEEE7A571E2\ -E20EAF61FD0C33A0FFEB297DDB77A97F0A415347DB66BCAF:\ -D362BE7896B2AC3CA4DC3161B7F6C5B3FBE65F32D040402B8D306B15 - -416B5CDC9FE951BD361BD7ABFC120A5054758EBA88FDD68FD84E39D3B09AC254\ -97D36B43CBE7B85A6A3CEBDA8DB4E5549C3EE51BB6FCB6AC1E:\ -D420C7BDF8D86D7B1CBD1AF7868EBC4FF17245595B94959A0714333C - -5C5FAF66F32E0F8311C32E8DA8284A4ED60891A5A7E50FB2956B3CBAA79FC66C\ -A376460E100415401FC2B8518C64502F187EA14BFC9503759705:\ -2E04DAE6E3FDF2A47FF40E6F3E61B371F3E51A5864A31CC11D127620 - -7167E1E02BE1A7CA69D788666F823AE4EEF39271F3C26A5CF7CEE05BCA831610\ -66DC2E217B330DF821103799DF6D74810EED363ADC4AB99F36046A:\ -22817A21CFCEC4FD2348B6BE8A7042A37754D76A3F33A8F818312CC7 - -2FDA311DBBA27321C5329510FAE6948F03210B76D43E7448D1689A063877B6D1\ -4C4F6D0EAA96C150051371F7DD8A4119F7DA5C483CC3E6723C01FB7D:\ -68CAF2203317A8BED30C1792E888910124F2F0EE1D24D47274BCC856 - -95D1474A5AAB5D2422ACA6E481187833A6212BD2D0F91451A67DD786DFC91DFE\ -D51B35F47E1DEB8A8AB4B9CB67B70179CC26F553AE7B569969CE151B8D:\ -7BBAC0C0F192D2C479348358D2247E4C08966A512F73D40445B52EC7 - -C71BD7941F41DF044A2927A8FF55B4B467C33D089F0988AA253D294ADDBDB325\ -30C0D4208B10D9959823F0C0F0734684006DF79F7099870F6BF53211A88D:\ -D226D9E1F36EC4222693699B6D0383C1452E391C41EFD7645289F8E3 - -F57C64006D9EA761892E145C99DF1B24640883DA79D9ED5262859DCDA8C3C32E\ -05B03D984F1AB4A230242AB6B78D368DC5AAA1E6D3498D53371E84B0C1D4BA:\ -294A1E5A0629A2736F188691A35FE1ABB55472785DAFF6CD88C6D537 - -E926AE8B0AF6E53176DBFFCC2A6B88C6BD765F939D3D178A9BDE9EF3AA131C61\ -E31C1E42CDFAF4B4DCDE579A37E150EFBEF5555B4C1CB40439D835A724E2FAE7:\ -C533DCF88CD1A5DFF22B914D3875BD57FC17B2E1F474AE360C3877D2 - -16E8B3D8F988E9BB04DE9C96F2627811C973CE4A5296B4772CA3EEFEB80A652B\ -DF21F50DF79F32DB23F9F73D393B2D57D9A0297F7A2F2E79CFDA39FA393DF1AC\ -00:\ -C9B7AD7A32B70DFB5A8A2FF9D98B300E484B996ED752A732D84DB6F7 - -FC424EEB27C18A11C01F39C555D8B78A805B88DBA1DC2A42ED5E2C0EC737FF68\ -B2456D80EB85E11714FA3F8EABFB906D3C17964CB4F5E76B29C1765DB03D91BE\ -37FC:\ -CF646D5E5C81818C97A01F393F8033CE3CB7CCD07FDAC9988766BD1C - -ABE3472B54E72734BDBA7D9158736464251C4F21B33FBBC92D7FAC9A35C4E332\ -2FF01D2380CBAA4EF8FB07D21A2128B7B9F5B6D9F34E13F39C7FFC2E72E47888\ -599BA5:\ -D411E8A7CF50AAF91076A8CC5F01BF5B6BB2CCAE8046BF47871891FD - -36F9F0A65F2CA498D739B944D6EFF3DA5EBBA57E7D9C41598A2B0E4380F3CF4B\ -479EC2348D015FFE6256273511154AFCF3B4B4BF09D6C4744FDD0F62D75079D4\ -40706B05:\ -E094C0303D1841C6E4C0864857CF36CFC980E3CB4D78F18E301117C4 - -ABC87763CAE1CA98BD8C5B82CABA54AC83286F87E9610128AE4DE68AC95DF5E3\ -29C360717BD349F26B872528492CA7C94C2C1E1EF56B74DBB65C2AC351981FDB\ -31D06C77A4:\ -51948E1772C2C2EE49158D02A975B27477BD041262954C3E60F5ACC2 - -94F7CA8E1A54234C6D53CC734BB3D3150C8BA8C5F880EAB8D25FED13793A9701\ -EBE320509286FD8E422E931D99C98DA4DF7E70AE447BAB8CFFD92382D8A77760\ -A259FC4FBD72:\ -8214A2B0E8BB60CD3E4DFB0D0855D0F6C4BA6D2728D0687BDF75F79E - -13BD2811F6ED2B6F04FF3895ACEED7BEF8DCD45EB121791BC194A0F806206BFF\ -C3B9281C2B308B1A729CE008119DD3066E9378ACDCC50A98A82E20738800B6CD\ -DBE5FE9694AD6D:\ -8A2AE6B9AA7B1E08F8C7DC3BF5AE876660D30F79391714A175381091 - -1EED9CBA179A009EC2EC5508773DD305477CA117E6D569E66B5F64C6BC64801C\ -E25A8424CE4A26D575B8A6FB10EAD3FD1992EDDDEEC2EBE7150DC98F63ADC323\ -7EF57B91397AA8A7:\ -702B1906A63D0F924AFEC3BB5E5C5742E85F9834EA6F5306644811A1 - -BA5B67B5EC3A3FFAE2C19DD8176A2EF75C0CD903725D45C9CB7009A900C0B0CA\ -7A2967A95AE68269A6DBF8466C7B6844A1D608AC661F7EFF00538E323DB5F2C6\ -44B78B2D48DE1A08AA:\ -BF2101511220B7DFE54B127C2476EAADFD4EAB7FD0F6BDD193078AC8 - -0EFA26AC5673167DCACAB860932ED612F65FF49B80FA9AE65465E5542CB62075\ -DF1C5AE54FBA4DB807BE25B070033EFA223BDD5B1D3C94C6E1909C02B620D4B1\ -B3A6C9FED24D70749604:\ -B07ADBED912723A07FA5353F665EC14FF82D85E90BE3E5A1F5C90FFF - -BBFD933D1FD7BF594AC7F435277DC17D8D5A5B8E4D13D96D2F64E771ABBD51A5\ -A8AEA741BECCBDDB177BCEA05243EBD003CFDEAE877CCA4DA94605B67691919D\ -8B033F77D384CA01593C1B:\ -D1718F0D387AC427111A7E90E575DE5F04778EA2BA147A8451914FF0 - -90078999FD3C35B8AFBF4066CBDE335891365F0FC75C1286CDD88FA51FAB94F9\ -B8DEF7C9AC582A5DBCD95817AFB7D1B48F63704E19C2BAA4DF347F48D4A6D603\ -013C23F1E9611D595EBAC37C:\ -FAF7D793024E6D05E77C5231712478822C915292FCC1427E6ACFD3CF - -64105ECA863515C20E7CFBAA0A0B8809046164F374D691CDBD6508AAABC1819F\ -9AC84B52BAFC1B0FE7CDDBC554B608C01C8904C669D8DB316A0953A4C68ECE32\ -4EC5A49FFDB59A1BD6A292AA0E:\ -A375D756A8F39C72F67CA489C95F99350FFD0515B151A3BFF288CAAA - -D4654BE288B9F3B711C2D02015978A8CC57471D5680A092AA534F7372C71CEAA\ -B725A383C4FCF4D8DEAA57FCA3CE056F312961ECCF9B86F14981BA5BED6AB5B4\ -498E1F6C82C6CAE6FC14845B3C8A:\ -1BD1B6F3144A3DEE93DEA1DF03C0E958F485B8AE164DCEE55F973413 - -12D9394888305AC96E65F2BF0E1B18C29C90FE9D714DD59F651F52B88B3008C5\ -88435548066EA2FC4C101118C91F32556224A540DE6EFDDBCA296EF1FB00341F\ -5B01FECFC146BDB251B3BDAD556CD2:\ -BE88B495D0CD90281AF2094B8D7E72EB417288CA16F751C09694B682 - -871A0D7A5F36C3DA1DFCE57ACD8AB8487C274FAD336BC137EBD6FF4658B547C1\ -DCFAB65F037AA58F35EF16AFF4ABE77BA61F65826F7BE681B5B6D5A1EA8085E2\ -AE9CD5CF0991878A311B549A6D6AF230:\ -7DAC046254808464024617D63A038267FE2CA65052BDEB569A0A9C15 - -E90B4FFEF4D457BC7711FF4AA72231CA25AF6B2E206F8BF859D8758B89A7CD36\ -105DB2538D06DA83BAD5F663BA11A5F6F61F236FD5F8D53C5E89F183A3CEC615\ -B50C7C681E773D109FF7491B5CC22296C5:\ -89F6B320EFABE42CE13C9E20E4829F31A7848EEE3FC854E603FBD46F - -E728DE62D75856500C4C77A428612CD804F30C3F10D36FB219C5CA0AA30726AB\ -190E5F3F279E0733D77E7267C17BE27D21650A9A4D1E32F649627638DBADA970\ -2C7CA303269ED14014B2F3CF8B894EAC8554:\ -A805DBD3B8DF5E03E05EFFFDE1B94B35A23C5D77C2797D984E56656F - -6348F229E7B1DF3B770C77544E5166E081850FA1C6C88169DB74C76E42EB983F\ -ACB276AD6A0D1FA7B50D3E3B6FCD799EC97470920A7ABED47D288FF883E24CA2\ -1C7F8016B93BB9B9E078BDB9703D2B781B616E:\ -F05742CC1DB422A3113AC49602E8D0DD6CB472E7ED26BCE40BBA09BD - -4B127FDE5DE733A1680C2790363627E63AC8A3F1B4707D982CAEA258655D9BF1\ -8F89AFE54127482BA01E08845594B671306A025C9A5C5B6F93B0A39522DC8774\ -37BE5C2436CBF300CE7AB6747934FCFC30AEAAF6:\ -45945F867B7E1E75EE496E0FC4AAFF71A0CC539841D153439AED4DFC - -08461F006CFF4CC64B752C957287E5A0FAABC05C9BFF89D23FD902D324C79903\ -B48FCB8F8F4B01F3E4DDB483593D25F000386698F5ADE7FAADE9615FDC50D327\ -85EA51D49894E45BAA3DC707E224688C6408B68B11:\ -5A8AC7533E1354068B564CCD214EB2A2E097DD60E08BD69FC782B0AF - -68C8F8849B120E6E0C9969A5866AF591A829B92F33CD9A4A3196957A148C4913\ -8E1E2F5C7619A6D5EDEBE995ACD81EC8BB9C7B9CFCA678D081EA9E25A75D39DB\ -04E18D475920CE828B94E72241F24DB72546B352A0E4:\ -059F7EB983362FD44E94E2BFD59CCED43CAE959C9A483EBD5E6E2036 - -B8D56472954E31FB54E28FCA743F84D8DC34891CB564C64B08F7B71636DEBD64\ -CA1EDBDBA7FC5C3E40049CE982BBA8C7E0703034E331384695E9DE76B5104F2F\ -BC4535ECBEEBC33BC27F29F18F6F27E8023B0FBB6F563C:\ -22D62AD272FEFC89F73256EAACE00C7B8E998FB322C8EB67DC1EAC6A - -0D58AC665FA84342E60CEFEE31B1A4EACDB092F122DFC68309077AED1F3E528F\ -578859EE9E4CEFB4A728E946324927B675CD4F4AC84F64DB3DACFE850C1DD187\ -44C74CECCD9FE4DC214085108F404EAB6D8F452B5442A47D:\ -A396EA905EB612554BD00E4FC1BB4C5247D73FDE4BBAF5380ED42DD0 - -1755E2D2E5D1C1B0156456B539753FF416651D44698E87002DCF61DCFA2B4E72\ -F264D9AD591DF1FDEE7B41B2EB00283C5AEBB3411323B672EAA145C512518510\ -4F20F335804B02325B6DEA65603F349F4D5D8B782DD3469CCD:\ -D8B5B24B9E92326FDE5DB1058EEDBEEDB0B65982925734B6E2844036 - -B180DE1A611111EE7584BA2C4B020598CD574AC77E404E853D15A101C6F5A2E5\ -C801D7D85DC95286A1804C870BB9F00FD4DCB03AA8328275158819DCAD7253F3\ -E3D237AEAA7979268A5DB1C6CE08A9EC7C2579783C8AFC1F91A7:\ -FDB9015B20DB446F79575E6B8C73A98EAC731CFE2E59BD46DBDA0E35 - -CF3583CBDFD4CBC17063B1E7D90B02F0E6E2EE05F99D77E24E560392535E47E0\ -5077157F96813544A17046914F9EFB64762A23CF7A49FE52A0A4C01C630CFE87\ -27B81FB99A89FF7CC11DCA5173057E0417B8FE7A9EFBA6D95C555F:\ -DF1B47E73E8CBD2CA852CF58AD68B5F8BAA1169C0795961041E8A918 - -072FC02340EF99115BAD72F92C01E4C093B9599F6CFC45CB380EE686CB5EB019\ -E806AB9BD55E634AB10AA62A9510CC0672CD3EDDB589C7DF2B67FCD3329F61B1\ -A4441ECA87A33C8F55DA4FBBAD5CF2B2527B8E983BB31A2FADEC7523:\ -1E8A90918D6EAD31E446D4EE2673871ECC5C7DA9B18ED511E1632E0D - -76EECF956A52649F877528146DE33DF249CD800E21830F65E90F0F25CA9D6540\ -FDE40603230ECA6760F1139C7F268DEBA2060631EEA92B1FFF05F93FD5572FBE\ -29579ECD48BC3A8D6C2EB4A6B26E38D6C5FBF2C08044AEEA470A8F2F26:\ -1060AFD1E1B9F7F41291A4861774B3B0C95A812788A41D7EBEF4A893 - -7ADC0B6693E61C269F278E6944A5A2D8300981E40022F839AC644387BFAC9086\ -650085C2CDC585FEA47B9D2E52D65A2B29A7DC370401EF5D60DD0D21F9E2B90F\ -AE919319B14B8C5565B0423CEFB827D5F1203302A9D01523498A4DB10374:\ -EA91EDC393491B4CBC035B8538DF08E3C6B8CAD18338053C81FE2E08 - -E1FFFA9826CCE8B86BCCEFB8794E48C46CDF372013F782ECED1E378269B7BE2B\ -7BF51374092261AE120E822BE685F2E7A83664BCFBE38FE8633F24E633FFE198\ -8E1BC5ACF59A587079A57A910BDA60060E85B5F5B6F776F0529639D9CCE4BD:\ -DF1AF149E5C92CB29174C1EDB6ED891EBCE4366010DC7CBFC9B1D757 - -69F9ABBA65592EE01DB4DCE52DBAB90B08FC04193602792EE4DAA263033D5908\ -1587B09BBE49D0B49C9825D22840B2FF5D9C5155F975F8F2C2E7A90C75D2E4A8\ -040FE39F63BBAFB403D9E28CC3B86E04E394A9C9E8065BD3C85FA9F0C7891600:\ -5F698408BFF0246B05BAD96CB342B2FD2F11B6804EF2FA07A81B0920 - -38A10A352CA5AEDFA8E19C64787D8E9C3A75DBF3B8674BFAB29B5DBFC15A63D1\ -0FAE66CD1A6E6D2452D557967EAAD89A4C98449787B0B3164CA5B717A93F24EB\ -0B506CEB70CBBCB8D72B2A72993F909AAD92F044E0B5A2C9AC9CB16A0CA2F81F\ -49:\ -EBE6D61E8A946E0D45D3889F9E360ACD3A1A7D6C4B1307448E6E7357 - -6D8C6E449BC13634F115749C248C17CD148B72157A2C37BF8969EA83B4D6BA8C\ -0EE2711C28EE11495F43049596520CE436004B026B6C1F7292B9C436B055CBB7\ -2D530D860D1276A1502A5140E3C3F54A93663E4D20EDEC32D284E25564F62495\ -5B52:\ -1B7F6BCB2271AC9C3B558E95F85285EE756B03B767A01AC57D7C6E94 - -6EFCBCAF451C129DBE00B9CEF0C3749D3EE9D41C7BD500ADE40CDC65DEDBBBAD\ -B885A5B14B32A0C0D087825201E303288A733842FA7E599C0C514E078F05C821\ -C7A4498B01C40032E9F1872A1C925FA17CE253E8935E4C3C71282242CB716B20\ -89CCC1:\ -436D1BCD6B3DE2677A72B93E2CEDB60C84A4FE125A802E2997EB2E67 - -433C5303131624C0021D868A30825475E8D0BD3052A022180398F4CA4423B982\ -14B6BEAAC21C8807A2C33F8C93BD42B092CC1B06CEDF3224D5ED1EC29784444F\ -22E08A55AA58542B524B02CD3D5D5F6907AFE71C5D7462224A3F9D9E53E7E084\ -6DCBB4CE:\ -62B10F1B6236EBC2DA72957742A8D4E48E213B5F8934604BFD4D2C3A - -A873E0C67CA639026B6683008F7AA6324D4979550E9BCE064CA1E1FB97A30B14\ -7A24F3F666C0A72D71348EDE701CF2D17E2253C34D1EC3B647DBCEF2F879F4EB\ -881C4830B791378C901EB725EA5C172316C6D606E0AF7DF4DF7F76E490CD30B2\ -BADF45685F:\ -1186BEA0880D0A96F6A56BBB431F4D264838BB0180DCF66EF0B599CA - -006917B64F9DCDF1D2D87C8A6173B64F6587168E80FAA80F82D84F60301E561E\ -312D9FBCE62F39A6FB476E01E925F26BCC91DE621449BE6504C504830AAE3940\ -96C8FC7694651051365D4EE9070101EC9B68086F2EA8F8AB7B811EA8AD934D5C\ -9B62C60A4771:\ -383D2F41ECFDA5994E815432999D192E1A282FF5663196A4A268A67D - -F13C972C52CB3CC4A4DF28C97F2DF11CE089B815466BE88863243EB318C2ADB1\ -A417CB1041308598541720197B9B1CB5BA2318BD5574D1DF2174AF14884149BA\ -9B2F446D609DF240CE335599957B8EC80876D9A085AE084907BC5961B20BF5F6\ -CA58D5DAB38ADB:\ -E2594A633B2DC671FD0DDFD3BF7238332C425520827C524FB0E19778 - -E35780EB9799AD4C77535D4DDB683CF33EF367715327CF4C4A58ED9CBDCDD486\ -F669F80189D549A9364FA82A51A52654EC721BB3AAB95DCEB4A86A6AFA93826D\ -B923517E928F33E3FBA850D45660EF83B9876ACCAFA2A9987A254B137C6E140A\ -21691E1069413848:\ -234764AAE8C39B1571D7741BB176FF86246070EC9AC97A1B2EB35472 - -64EC021C9585E01FFE6D31BB50D44C79B6993D72678163DB474947A053674619\ -D158016ADB243F5C8D50AA92F50AB36E579FF2DABB780A2B529370DAA299207C\ -FBCDD3A9A25006D19C4F1FE33E4B1EAEC315D8C6EE1E730623FD1941875B924E\ -B57D6D0C2EDC4E78D6:\ -A634D7EBAA2BC0043EB5E237690E38FF1E05EE5A042882A233A2D92A - -5954BAB512CF327D66B5D9F296180080402624AD7628506B555EEA8382562324\ -CF452FBA4A2130DE3E165D11831A270D9CB97CE8C2D32A96F50D71600BB4CA26\ -8CF98E90D6496B0A6619A5A8C63DB6D8A0634DFC6C7EC8EA9C006B6C456F1B20\ -CD19E781AF20454AC880:\ -EF03FBB1EF3296EECFB98909E416D113B5741E44962EC57993C6DA5D - -03D9F92B2C565709A568724A0AFF90F8F347F43B02338F94A03ED32E6F33666F\ -F5802DA4C81BDCE0D0E86C04AFD4EDC2FC8B4141C2975B6F07639B1994C973D9\ -A9AFCE3D9D365862003498513BFA166D2629E314D97441667B007414E739D7FE\ -BF0FE3C32C17AA188A8683:\ -210D245CC8B5A7B4C1B118A9890ECDDC34A66EA92805B7A7C19A944A - -F31E8B4F9E0621D531D22A380BE5D9ABD56FAEC53CBD39B1FAB230EA67184440\ -E5B1D15457BD25F56204FA917FA48E669016CB48C1FFC1E1E45274B3B47379E0\ -0A43843CF8601A5551411EC12503E5AAC43D8676A1B2297EC7A0800DBFEE0429\ -2E937F21C005F17411473041:\ -517BAE010715A020435CFDB531B856C5704E0EC611360F60D5B76161 - -758EA3FEA738973DB0B8BE7E599BBEF4519373D6E6DCD7195EA885FC991D8967\ -62992759C2A09002912FB08E0CB5B76F49162AEB8CF87B172CF3AD190253DF61\ -2F77B1F0C532E3B5FC99C2D31F8F65011695A087A35EE4EEE5E334C369D8EE5D\ -29F695815D866DA99DF3F79403:\ -79D478B4BC5E6FC2D406BB1C3834A5CE397A88E80135F55D8FE32C5E - -47C6E0C2B74948465921868804F0F7BD50DD323583DC784F998A93CD1CA4C6EF\ -84D41DC81C2C40F34B5BEE6A93867B3BDBA0052C5F59E6F3657918C382E771D3\ -3109122CC8BB0E1E53C4E3D13B43CE44970F5E0C079D2AD7D7A3549CD75760C2\ -1BB15B447589E86E8D76B1E9CED2:\ -F7BA7A56AFC1C58E62841C3B98F5677199F24B534B0D52D9A5C95495 - -F690A132AB46B28EDFA6479283D6444E371C6459108AFD9C35DBD235E0B6B6FF\ -4C4EA58E7554BD002460433B2164CA51E868F7947D7D7A0D792E4ABF0BE5F450\ -853CC40D85485B2B8857EA31B5EA6E4CCFA2F3A7EF3380066D7D8979FDAC618A\ -AD3D7E886DEA4F005AE4AD05E5065F:\ -78A90B769E9A326C93D5A6A6105AEE031DCEB2C8D222B36E02F27DB6 - -58D6A99BC6458824B256916770A8417040721CCCFD4B79EACD8B65A3767CE5BA\ -7E74104C985AC56B8CC9AEBD16FEBD4CDA5ADB130B0FF2329CC8D611EB14DAC2\ -68A2F9E633C99DE33997FEA41C52A7C5E1317D5B5DAED35EBA7D5A60E45D1FA7\ -EAABC35F5C2B0A0F2379231953322C4E:\ -3D9D5C2FD2F60F4BB89E11FD3BC2FBD65602EB3F3F38D6FA03BDCE2C - -BEFAB574396D7F8B6705E2D5B58B2C1C820BB24E3F4BAE3E8FBCD36DBF734EE1\ -4E5D6AB972AEDD3540235466E825850EE4C512EA9795ABFD33F330D9FD7F79E6\ -2BBB63A6EA85DE15BEAEEA6F8D204A28956059E2632D11861DFB0E65BC07AC8A\ -159388D5C3277E227286F65FF5E5B5AEC1:\ -E1FABE16152560387FADAD3324CBB94D8AF968786C3C994C8F926D32 - -8E58144FA9179D686478622CE450C748260C95D1BA43B8F9B59ABECA8D93488D\ -A73463EF40198B4D16FB0B0707201347E0506FF19D01BEA0F42B8AF9E71A1F1B\ -D168781069D4D338FDEF00BF419FBB003031DF671F4A37979564F69282DE9C65\ -407847DD0DA505AB1641C02DEA4F0D834986:\ -CEF84F1966215B1511F5E0DB564D6827898184FBCB88BE0213FC563F - -B55C10EAE0EC684C16D13463F29291BF26C82E2FA0422A99C71DB4AF14DD9C7F\ -33EDA52FD73D017CC0F2DBE734D831F0D820D06D5F89DACC485739144F8CFD47\ -99223B1AFF9031A105CB6A029BA71E6E5867D85A554991C38DF3C9EF8C1E1E9A\ -7630BE61CAABCA69280C399C1FB7A12D12AEFC:\ -8E4B5A2B79FC1E7D0526AACB5B9AC01A569635644C9249DFFEE3B927 - -2EEEA693F585F4ED6F6F8865BBAE47A6908AECD7C429E4BEC4F0DE1D0CA0183F\ -A201A0CB14A529B7D7AC0E6FF6607A3243EE9FB11BCF3E2304FE75FFCDDD6C5C\ -2E2A4CD45F63C962D010645058D36571404A6D2B4F44755434D76998E83409C3\ -205AA1615DB44057DB991231D2CB42624574F545:\ -BAFF55CDAD66AA77AD677E13A138B2F17286B504EA6B94EFFD9D9A95 - -DAB11DC0B047DB0420A585F56C42D93175562852428499F66A0DB811FCDDDAB2\ -F7CDFFED1543E5FB72110B64686BC7B6887A538AD44C050F1E42631BC4EC8A9F\ -2A047163D822A38989EE4AAB01B4C1F161B062D873B1CFA388FD301514F62224\ -157B9BEF423C7783B7AAC8D30D65CD1BBA8D689C2D:\ -B4EFBE1167755F5A75B72CF15E0601662D036A16CAC8602A909FB328 - -42E99A2F80AEE0E001279A2434F731E01D34A44B1A8101726921C0590C30F312\ -0EB83059F325E894A5AC959DCA71CE2214799916424E859D27D789437B9D2724\ -0BF8C35ADBAFCECC322B48AA205B293962D858652ABACBD588BCF6CBC388D099\ -3BD622F96ED54614C25B6A9AA527589EAAFFCF17DDF7:\ -FA4BB608F8F60841E1189F8770051695CDC9935BDA7187C36419228A - -3C9B46450C0F2CAE8E3823F8BDB4277F31B744CE2EB17054BDDC6DFF36AF7F49\ -FB8A2320CC3BDF8E0A2EA29AD3A55DE1165D219ADEDDB5175253E2D1489E9B6F\ -DD02E2C3D3A4B54D60E3A47334C37913C5695378A669E9B72DEC32AF5434F93F\ -46176EBF044C4784467C700470D0C0B40C8A088C815816:\ -B3A877231519C24E2EFA424E6057128EA105B54C65E58074B5B1583C - -D1E654B77CB155F5C77971A64DF9E5D34C26A3CAD6C7F6B300D39DEB19100946\ -91ADAA095BE4BA5D86690A976428635D5526F3E946F7DC3BD4DBC78999E65344\ -1187A81F9ADCD5A3C5F254BC8256B0158F54673DCC1232F6E918EBFC6C51CE67\ -EAEB042D9F57EEC4BFE910E169AF78B3DE48D137DF4F2840:\ -9F385C0B645DB8DB8B73C98C40BE264FFEE6151C7B5A0964E67DAA9F - -626F68C18A69A6590159A9C46BE03D5965698F2DAC3DE779B878B3D9C421E0F2\ -1B955A16C715C1EC1E22CE3EB645B8B4F263F60660EA3028981EEBD6C8C3A367\ -285B691C8EE56944A7CD1217997E1D9C21620B536BDBD5DE8925FF71DEC6FBC0\ -6624AB6B21E329813DE90D1E572DFB89A18120C3F606355D25:\ -BD6C865993082EC7B3808C13FD140FE0C0667B3EE51B9F8F1F4DFFD8 - -651A6FB3C4B80C7C68C6011675E6094EB56ABF5FC3057324EBC6477825061F9F\ -27E7A94633ABD1FA598A746E4A577CAF524C52EC1788471F92B8C37F23795CA1\ -9D559D446CAB16CBCDCE90B79FA1026CEE77BF4AB1B503C5B94C2256AD75B3EA\ -C6FD5DCB96ACA4B03A834BFB4E9AF988CECBF2AE597CB9097940:\ -8CA844ACFCAABD3B969F86C2F1ECDF1620574EC8C24426BE2DCC1BB5 - -8AAF072FCE8A2D96BC10B3C91C809EE93072FB205CA7F10ABD82ECD82CF040B1\ -BC49EA13D1857815C0E99781DE3ADBB5443CE1C897E55188CEAF221AA9681638\ -DE05AE1B322938F46BCE51543B57ECDB4C266272259D1798DE13BE90E10EFEC2\ -D07484D9B21A3870E2AA9E06C21AA2D0C9CF420080A80A91DEE16F:\ -E8D549FF8D53745A4C5C75BDAD92314025DA877A77CE49EA134840FA - -53F918FD00B1701BD504F8CDEA803ACCA21AC18C564AB90C2A17DA592C7D6968\ -8F6580575395551E8CD33E0FEF08CA6ED4588D4D140B3E44C032355DF1C53156\ -4D7F4835753344345A6781E11CD5E095B73DF5F82C8AE3AD00877936896671E9\ -47CC52E2B29DCD463D90A0C9929128DA222B5A211450BBC0E02448E2:\ -E6BD80787F8704FFF73112E8B368ADFBA3A1109162C769491349DCEF - -A64599B8A61B5CCEC9E67AED69447459C8DA3D1EC6C7C7C82A7428B9B584FA67\ -E90F68E2C00FBBED4613666E5168DA4A16F395F7A3C3832B3B134BFC9CBAA95D\ -2A0FE252F44AC6681EB6D40AB91C1D0282FED6701C57463D3C5F2BB8C6A7301F\ -B4576AA3B5F15510DB8956FF77478C26A7C09BEA7B398CFC83503F538E:\ -BD7D9E6CF9D2C1030F892533E01B72B5288E174B0864D81D71F8C6E6 - -0E3AB0E054739B00CDB6A87BD12CAE024B54CB5E550E6C425360C2E87E59401F\ -5EC24EF0314855F0F56C47695D56A7FB1417693AF2A1ED5291F2FEE95F75EED5\ -4A1B1C2E81226FBFF6F63ADE584911C71967A8EB70933BC3F5D15BC91B5C2644\ -D9516D3C3A8C154EE48E118BD1442C043C7A0DBA5AC5B1D5360AAE5B9065:\ -A5312E8C7F0A3594A8ECD1ABC5CBC14B2585F0B1FE32A4E1FA0A2E25 - -A62FC595B4096E6336E53FCDFC8D1CC175D71DAC9D750A6133D23199EAAC2882\ -07944CEA6B16D27631915B4619F743DA2E30A0C00BBDB1BBB35AB852EF3B9AEC\ -6B0A8DCC6E9E1ABAA3AD62AC0A6C5DE765DE2C3711B769E3FDE44A74016FFF82\ -AC46FA8F1797D3B2A726B696E3DEA5530439ACEE3A45C2A51BC32DD055650B:\ -2E0D739386AAAF37980EE421AA8C19B19AF52E70F59DC0A6988471F5 - -2B6DB7CED8665EBE9DEB080295218426BDAA7C6DA9ADD2088932CDFFBAA1C141\ -29BCCDD70F369EFB149285858D2B1D155D14DE2FDB680A8B027284055182A0CA\ -E275234CC9C92863C1B4AB66F304CF0621CD54565F5BFF461D3B461BD40DF281\ -98E3732501B4860EADD503D26D6E69338F4E0456E9E9BAF3D827AE685FB1D817:\ -AF3E0CC6E64501F10FD39722E852355FD6D80D32190631E2F06C22AD - -10DB509B2CDCABA6C062AE33BE48116A29EB18E390E1BBADA5CA0A2718AFBCD2\ -3431440106594893043CC7F2625281BF7DE2655880966A23705F0C5155C2F5CC\ -A9F2C2142E96D0A2E763B70686CD421B5DB812DACED0C6D65035FDE558E94F26\ -B3E6DDE5BD13980CC80292B723013BD033284584BFF27657871B0CF07A849F4A\ -E2:\ -F009E05D1AFE2D33D2C5F4008B46F31468A7BF5299D4F0AB0EFE4FD3 - -9334DE60C997BDA6086101A6314F64E4458F5FF9450C509DF006E8C547983C65\ -1CA97879175AABA0C539E82D05C1E02C480975CBB30118121061B1EBAC4F8D9A\ -3781E2DB6B18042E01ECF9017A64A0E57447EC7FCBE6A7F82585F7403EE2223D\ -52D37B4BF426428613D6B4257980972A0ACAB508A7620C1CB28EB4E9D30FC413\ -61EC:\ -76281BD1613843A3ADBCBC78D1923AFB5B8AA2DCBC48934DEEC84AAA - -E88AB086891693AA535CEB20E64C7AB97C7DD3548F3786339897A5F0C3903154\ -9CA870166E477743CCFBE016B4428D89738E426F5FFE81626137F17AECFF61B7\ -2DBEE2DC20961880CFE281DFAB5EE38B1921881450E16032DE5E4D55AD8D4FCA\ -609721B0692BAC79BE5A06E177FE8C80C0C83519FB3347DE9F43D5561CB8107B\ -9B5EDC:\ -DA7C79E04FCA2B69AAA58199CA69105B6B18FE67E29F380501AA7FA8 - -FD19E01A83EB6EC810B94582CB8FBFA2FCB992B53684FB748D2264F020D3B960\ -CB1D6B8C348C2B54A9FCEA72330C2AAA9A24ECDB00C436ABC702361A82BB8828\ -B85369B8C72ECE0082FE06557163899C2A0EFA466C33C04343A839417057399A\ -63A3929BE1EE4805D6CE3E5D0D0967FE9004696A5663F4CAC9179006A2CEB755\ -42D75D68:\ -70ECB261757371A282903C696715DC03F106A339F076203BAB436E94 - -59AE20B6F7E0B3C7A989AFB28324A40FCA25D8651CF1F46AE383EF6D8441587A\ -A1C04C3E3BF88E8131CE6145CFB8973D961E8432B202FA5AF3E09D625FAAD825\ -BC19DA9B5C6C20D02ABDA2FCC58B5BD3FE507BF201263F30543819510C12BC23\ -E2DDB4F711D087A86EDB1B355313363A2DE996B891025E147036087401CCF3CA\ -7815BF3C49:\ -740D3CB455133173EC652AA04709EF0F549F19A9D4CC6BEC9E876B5A - -77EE804B9F3295AB2362798B72B0A1B2D3291DCEB8139896355830F34B3B3285\ -61531F8079B79A6E9980705150866402FDC176C05897E359A6CB1A7AB067383E\ -B497182A7E5AEF7038E4C96D133B2782917417E391535B5E1B51F47D8ED7E4D4\ -025FE98DC87B9C1622614BFF3D1029E68E372DE719803857CA52067CDDAAD958\ -951CB2068CC6:\ -663835A81A2A38D5AD3A37BD9BC96618D27CA32286E9091834A0871A - -B771D5CEF5D1A41A93D15643D7181D2A2EF0A8E84D91812F20ED21F147BEF732\ -BF3A60EF4067C3734B85BC8CD471780F10DC9E8291B58339A677B960218F71E7\ -93F2797AEA349406512829065D37BB55EA796FA4F56FD8896B49B2CD19B43215\ -AD967C712B24E5032D065232E02C127409D2ED4146B9D75D763D52DB98D949D3\ -B0FED6A8052FBB:\ -2594153AC2DE681F4DEE340FA344EC388773A377D5B89E503254FD2E - -B32D95B0B9AAD2A8816DE6D06D1F86008505BD8C14124F6E9A163B5A2ADE55F8\ -35D0EC3880EF50700D3B25E42CC0AF050CCD1BE5E555B23087E04D7BF9813622\ -780C7313A1954F8740B6EE2D3F71F768DD417F520482BD3A08D4F222B4EE9DBD\ -015447B33507DD50F3AB4247C5DE9A8ABD62A8DECEA01E3B87C8B927F5B08BEB\ -37674C6F8E380C04:\ -42275C296937745758FF2B7BEE9A897191AE87E42BD10198D9466C19 - -04410E31082A47584B406F051398A6ABE74E4DA59BB6F85E6B49E8A1F7F2CA00\ -DFBA5462C2CD2BFDE8B64FB21D70C083F11318B56A52D03B81CAC5EEC29EB31B\ -D0078B6156786DA3D6D8C33098C5C47BB67AC64DB14165AF65B44544D806DDE5\ -F487D5373C7F9792C299E9686B7E5821E7C8E2458315B996B5677D926DAC57B3\ -F22DA873C601016A0D:\ -143F9055EB1F736729C77721FB65ED5EE142F6E969132FB22989C11F - -8B81E9BADDE026F14D95C019977024C9E13DB7A5CD21F9E9FC491D716164BBAC\ -DC7060D882615D411438AEA056C340CDF977788F6E17D118DE55026855F93270\ -472D1FD18B9E7E812BAE107E0DFDE7063301B71F6CFE4E225CAB3B232905A56E\ -994F08EE2891BA922D49C3DAFEB75F7C69750CB67D822C96176C46BD8A29F170\ -1373FB09A1A6E3C7158F:\ -449A0313CCAB4427032B6BE9D66F827FFB4C71B538B2104F9D14D14A - -FA6EED24DA6666A22208146B19A532C2EC9BA94F09F1DEF1E7FC13C399A48E41\ -ACC2A589D099276296348F396253B57CB0E40291BD282773656B6E0D8BEA1CDA\ -084A3738816A840485FCF3FB307F777FA5FEAC48695C2AF4769720258C77943F\ -B4556C362D9CBA8BF103AEB9034BAA8EA8BFB9C4F8E6742CE0D52C49EA8E974F\ -339612E830E9E7A9C29065:\ -21E2760644A19ED18ED0CD74C4E4C071D770132AD215EB6F7D42B01D - -9BB4AF1B4F09C071CE3CAFA92E4EB73CE8A6F5D82A85733440368DEE4EB1CBC7\ -B55AC150773B6FE47DBE036C45582ED67E23F4C74585DAB509DF1B8361056454\ -5642B2B1EC463E18048FC23477C6B2AA035594ECD33791AF6AF4CBC2A1166ABA\ -8D628C57E707F0B0E8707CAF91CD44BDB915E0296E0190D56D33D8DDE10B5B60\ -377838973C1D943C22ED335E:\ -D5534C72BE2E4B1FAAA813118B0D29DBB86F624067EA34515AFA08BE - -2167F02118CC62043E9091A647CADBED95611A521FE0D64E8518F16C808AB297\ -725598AE296880A773607A798F7C3CFCE80D251EBEC6885015F9ABF7EAABAE46\ -798F82CB5926DE5C23F44A3F9F9534B3C6F405B5364C2F8A8BDC5CA49C749BED\ -8CE4BA48897062AE8424CA6DDE5F55C0E42A95D1E292CA54FB46A84FBC9CD87F\ -2D0C9E7448DE3043AE22FDD229:\ -C0CD413B1CE000A1BBE3A2CD103C7F8F95925AC6C8A5C922AFB5F96D - -94B7FA0BC1C44E949B1D7617D31B4720CBE7CA57C6FA4F4094D4761567E389EC\ -C64F6968E4064DF70DF836A47D0C713336B5028B35930D29EB7A7F9A5AF9AD5C\ -F441745BAEC9BB014CEEFF5A41BA5C1CE085FEB980BAB9CF79F2158E03EF7E63\ -E29C38D7816A84D4F71E0F548B7FC316085AE38A060FF9B8DEC36F91AD9EBC0A\ -5B6C338CBB8F6659D342A24368CF:\ -93C6BF585E994B1669184AC71DC8E772B53443E668DA0786D528090B - -EA40E83CB18B3A242C1ECC6CCD0B7853A439DAB2C569CFC6DC38A19F5C90ACBF\ -76AEF9EA3742FF3B54EF7D36EB7CE4FF1C9AB3BC119CFF6BE93C03E208783335\ -C0AB8137BE5B10CDC66FF3F89A1BDDC6A1EED74F504CBE7290690BB295A872B9\ -E3FE2CEE9E6C67C41DB8EFD7D863CF10F840FE618E7936DA3DCA5CA6DF933F24\ -F6954BA0801A1294CD8D7E66DFAFEC:\ -BFE15BB51F680F2F489F0FDEB32F271090A09D1563F29FEAF92104E0 - -157D5B7E4507F66D9A267476D33831E7BB768D4D04CC3438DA12F9010263EA5F\ -CAFBDE2579DB2F6B58F911D593D5F79FB05FE3596E3FA80FF2F761D1B0E57080\ -055C118C53E53CDB63055261D7C9B2B39BD90ACC32520CBBDBDA2C4FD8856DBC\ -EE173132A2679198DAF83007A9B5C51511AE49766C792A29520388444EBEFE28\ -256FB33D4260439CBA73A9479EE00C63:\ -6D735FB7579135F61B771B2BB0D81514CDE9C977ACCF6FEAF6EDEBF0 - -836B34B515476F613FE447A4E0C3F3B8F20910AC89A3977055C960D2D5D2B72B\ -D8ACC715A9035321B86703A411DDE0466D58A59769672AA60AD587B8481DE4BB\ -A552A1645779789501EC53D540B904821F32B0BD1855B04E4848F9F8CFE9EBD8\ -911BE95781A759D7AD9724A7102DBE576776B7C632BC39B9B5E19057E226552A\ -5994C1DBB3B5C7871A11F5537011044C53:\ -6D93153145904CEBE0E8A66C272BEDF4F0D0A3C53AB30264135431A7 - -CC7784A4912A7AB5AD3620AAB29BA87077CD3CB83636ADC9F3DC94F51EDF521B\ -2161EF108F21A0A298557981C0E53CE6CED45BDF782C1EF200D29BAB81DD6460\ -586964EDAB7CEBDBBEC75FD7925060F7DA2B853B2B089588FA0F8C16EC6498B1\ -4C55DCEE335CB3A91D698E4D393AB8E8EAC0825F8ADEBEEE196DF41205C01167\ -4E53426CAA453F8DE1CBB57932B0B741D4C6:\ -AFE30535675A7021BF618941D94DDFFCCEFCAA1EF06CDE306D5D7A75 - -7639B461FFF270B2455AC1D1AFCE782944AEA5E9087EB4A39EB96BB5C3BAAF0E\ -868C8526D3404F9405E79E77BFAC5FFB89BF1957B523E17D341D7323C302EA70\ -83872DD5E8705694ACDDA36D5A1B895AAA16ECA6104C82688532C8BFE1790B5D\ -C9F4EC5FE95BAED37E1D287BE710431F1E5E8EE105BC42ED37D74B1E55984BF1\ -C09FE6A1FA13EF3B96FAEAED6A2A1950A12153:\ -916501614891BD99400A8AEAABF69326FA98B833AED82386AB19E507 - -EB6513FC61B30CFBA58D4D7E80F94D14589090CF1D80B1DF2E68088DC6104959\ -BA0D583D585E9578AB0AEC0CF36C48435EB52ED9AB4BBCE7A5ABE679C97AE2DB\ -E35E8CC1D45B06DDA3CF418665C57CBEE4BBB47FA4CAF78F4EE656FEC237FE4E\ -EBBAFA206E1EF2BD0EE4AE71BD0E9B2F54F91DAADF1FEBFD7032381D636B733D\ -CB3BF76FB14E23AFF1F68ED3DBCF75C9B99C6F26:\ -9C3759905E47E49CC7057C9237545D444F758535F991F7E8728F3A51 - -1594D74BF5DDE444265D4C04DAD9721FF3E34CBF622DAF341FE16B96431F6C4D\ -F1F760D34F296EB97D98D560AD5286FEC4DCE1724F20B54FD7DF51D4BF137ADD\ -656C80546FB1BF516D62EE82BAA992910EF4CC18B70F3F8698276FCFB44E0EC5\ -46C2C39CFD8EE91034FF9303058B4252462F86C823EB15BF481E6B79CC3A0221\ -8595B3658E8B37382BD5048EAED5FD02C37944E73B:\ -733ACDF9CED47F2E43936ED6C2AC0F824F4F5B5D2942522D4DE5F6FC - -4CFA1278903026F66FEDD41374558BE1B585D03C5C55DAC94361DF286D4BD39C\ -7CB8037ED3B267B07C346626449D0CC5B0DD2CF221F7E4C3449A4BE99985D2D5\ -E67BFF2923357DDEAB5ABCB4619F3A3A57B2CF928A022EB27676C6CF80568900\ -4FCA4D41EA6C2D0A4789C7605F7BB838DD883B3AD3E6027E775BCF2628814280\ -99C7FFF95B14C095EA130E0B9938A5E22FC52650F591:\ -530438B7A86B16434C82713EF7392D25C5CF814C7C6408368C4F2EAF - -D3E65CB92CFA79662F6AF493D696A07CCF32AAADCCEFF06E73E8D9F6F909209E\ -66715D6E978788C49EFB9087B170ECF3AA86D2D4D1A065AE0EFC8924F365D676\ -B3CB9E2BEC918FD96D0B43DEE83727C9A93BF56CA2B2E59ADBA85696546A8150\ -67FC7A78039629D4948D157E7B0D826D1BF8E81237BAB7321312FDAA4D521744\ -F988DB6FDF04549D0FDCA393D639C729AF716E9C8BBA48:\ -84944EB018F8A124E3C969C037464EE32BACF8E58901D2E22291DF9A - -842CC583504539622D7F71E7E31863A2B885C56A0BA62DB4C2A3F2FD12E79660\ -DC7205CA29A0DC0A87DB4DC62EE47A41DB36B9DDB3293B9AC4BAAE7DF5C6E720\ -1E17F717AB56E12CAD476BE49608AD2D50309E7D48D2D8DE4FA58AC3CFEAFEEE\ -48C0A9EEC88498E3EFC51F54D300D828DDDCCB9D0B06DD021A29CF5CB5B25069\ -15BEB8A11998B8B886E0F9B7A80E97D91A7D01270F9A7717:\ -1311DA757C405F2A0EAB110B0C515F05FCD59F5495A9704252DA5AB8 - -6C4B0A0719573E57248661E98FEBE326571F9A1CA813D3638531AE28B4860F23\ -C3A3A8AC1C250034A660E2D71E16D3ACC4BF9CE215C6F15B1C0FC7E77D3D2715\ -7E66DA9CEEC9258F8F2BF9E02B4AC93793DD6E29E307EDE3695A0DF63CBDC0FC\ -66FB770813EB149CA2A916911BEE4902C47C7802E69E405FE3C04CEB5522792A\ -5503FA829F707272226621F7C488A7698C0D69AA561BE9F378:\ -B5FDAEAD7E68333CEDB5D4AD636AE7059EB31305E2C831787FD51265 - -51B7DBB7CE2FFEB427A91CCFE5218FD40F9E0B7E24756D4C47CD55606008BDC2\ -7D16400933906FD9F30EFFDD4880022D081155342AF3FB6CD53672AB7FB5B3A3\ -BCBE47BE1FD3A2278CAE8A5FD61C1433F7D350675DD21803746CADCA574130F0\ -1200024C6340AB0CC2CF74F2234669F34E9009EF2EB94823D62B31407F4BA46F\ -1A1EEC41641E84D77727B59E746B8A671BEF936F05BE820759FA:\ -2919FD6C376AEC9F502893A9970B9AC6591855227C0E137BE01705AC - -83599D93F5561E821BD01A472386BC2FF4EFBD4AED60D5821E84AAE74D807102\ -9810F5E286F8F17651CD27DA07B1EB4382F754CD1C95268783AD09220F550284\ -0370D494BEB17124220F6AFCE91EC8A0F55231F9652433E5CE3489B727716CF4\ -AEBA7DCDA20CD29AA9A859201253F948DD94395ABA9E3852BD1D60DDA7AE5DC0\ -45B283DA006E1CBAD83CC13292A315DB5553305C628DD091146597:\ -8910E7ABC3DAA506974EC13E35C43133EBFA91DEEC99BFAD4954447E - -2BE9BF526C9D5A75D565DD11EF63B979D068659C7F026C08BEA4AF161D85A462\ -D80E45040E91F4165C074C43AC661380311A8CBED59CC8E4C4518E80CD2C78AB\ -1CABF66BFF83EAB3A80148550307310950D034A6286C93A1ECE8929E6385C5E3\ -BB6EA8A7C0FB6D6332E320E71CC4EB462A2A62E2BFE08F0CCAD93E61BEDB5DD0\ -B786A728AB666F07E0576D189C92BF9FB20DCA49AC2D3956D47385E2:\ -F8B4A4A6FBB8C8432712B5B815B36685C86656C3F67D05BDBB44B49A - -CA76D3A12595A817682617006848675547D3E8F50C2210F9AF906C0E7CE50B44\ -60186FE70457A9E879E79FD4D1A688C70A347361C847BA0DD6AA52936EAF8E58\ -A1BE2F5C1C704E20146D366AEB3853BED9DE9BEFE9569AC8AAEA37A9FB7139A1\ -A1A7D5C748605A8DEFB297869EBEDD71D615A5DA23496D11E11ABBB126B206FA\ -0A7797EE7DE117986012D0362DCEF775C2FE145ADA6BDA1CCB326BF644:\ -926FE0044B12422D3E4BFA52C59252ACC91DBF09C488AE9D31C7EB63 - -F76B85DC67421025D64E93096D1D712B7BAF7FB001716F02D33B2160C2C882C3\ -10EF13A576B1C2D30EF8F78EF8D2F465007109AAD93F74CB9E7D7BEF7C9590E8\ -AF3B267C89C15DB238138C45833C98CC4A471A7802723EF4C744A853CF80A0C2\ -568DD4ED58A2C9644806F42104CEE53628E5BDF7B63B0B338E931E31B87C24B1\ -46C6D040605567CEEF5960DF9E022CB469D4C787F4CBA3C544A1AC91F95F:\ -A4E4B4A573F7B8865D77D7E57F7D840A55261A96E5FEDD763D0811F4 - -25B8C9C032EA6BCD733FFC8718FBB2A503A4EA8F71DEA1176189F694304F0FF6\ -8E862A8197B839957549EF243A5279FC2646BD4C009B6D1EDEBF24738197ABB4\ -C992F6B1DC9BA891F570879ACCD5A6B18691A93C7D0A8D38F95B639C1DAEB48C\ -4C2F15CCF5B9D508F8333C32DE78781B41850F261B855C4BEBCC125A380C54D5\ -01C5D3BD07E6B52102116088E53D76583B0161E2A58D0778F091206AABD5A1:\ -EBFD796B29F6059931732F98602185B6377C4E6E40BD26C810D6DA96 - -21CFDC2A7CCB7F331B3D2EEFFF37E48AD9FA9C788C3F3C200E0173D99963E1CB\ -CA93623B264E920394AE48BB4C3A5BB96FFBC8F0E53F30E22956ADABC2765F57\ -FB761E147ECBF8567533DB6E50C8A1F894310A94EDF806DD8CA6A0E141C0FA7C\ -9FAE6C6AE65F18C93A8529E6E5B553BF55F25BE2E80A9882BD37F145FECBEB3D\ -447A3C4E46C21524CC55CDD62F521AB92A8BA72B897996C49BB273198B7B1C9E:\ -3FB7392A6621B852312A374C14A679AFB0E3D2EC6A2D147BD5E873F6 - -4E452BA42127DCC956EF4F8F35DD68CB225FB73B5BC7E1EC5A898BBA2931563E\ -74FAFF3B67314F241EC49F4A7061E3BD0213AE826BAB380F1F14FAAB8B0EFDDD\ -5FD1BB49373853A08F30553D5A55CCBBB8153DE4704F29CA2BDEEF0419468E05\ -DD51557CCC80C0A96190BBCC4D77ECFF21C66BDF486459D427F986410F883A80\ -A5BCC32C20F0478BB9A97A126FC5F95451E40F292A4614930D054C851ACD019C\ -CF:\ -8B3750655AF5ECA10CC4F291043590E2D19759253047A4C1DBC86577 - -FA85671DF7DADF99A6FFEE97A3AB9991671F5629195049880497487867A6C446\ -B60087FAC9A0F2FCC8E3B24E97E42345B93B5F7D3691829D3F8CCD4BB36411B8\ -5FC2328EB0C51CB3151F70860AD3246CE0623A8DC8B3C49F958F8690F8E3860E\ -71EB2B1479A5CEA0B3F8BEFD87ACAF5362435EAECCB52F38617BC6C5C2C6E269\ -EAD1FBD69E941D4AD2012DA2C5B21BCFBF98E4A77AB2AF1F3FDA3233F046D38F\ -1DC8:\ -D3A5004477BBB21CF7D0FCA84E51A7A57E93FAE7222570C01B00E89A - -E90847AE6797FBC0B6B36D6E588C0A743D725788CA50B6D792352EA8294F5BA6\ -54A15366B8E1B288D84F5178240827975A763BC45C7B0430E8A559DF4488505E\ -009C63DA994F1403F407958203CEBB6E37D89C94A5EACF6039A327F6C4DBBC7A\ -2A307D976AA39E41AF6537243FC218DFA6AB4DD817B6A397DF5CA69107A91987\ -99ED248641B63B42CB4C29BFDD7975AC96EDFC274AC562D0474C60347A078CE4\ -C25E88:\ -75B77C36E394711DFD35C11AEC8C033DCD7C18712F3B06D1FEDC1077 - -F6D5C2B6C93954FC627602C00C4CA9A7D3ED12B27173F0B2C9B0E4A5939398A6\ -65E67E69D0B12FB7E4CEB253E8083D1CEB724AC07F009F094E42F2D6F2129489\ -E846EAFF0700A8D4453EF453A3EDDC18F408C77A83275617FABC4EA3A2833AA7\ -3406C0E966276079D38E8E38539A70E194CC5513AAA457C699383FD1900B1E72\ -BDFB835D1FD321B37BA80549B078A49EA08152869A918CA57F5B54ED71E4FD3A\ -C5C06729:\ -E52DF7FDF957269CA0B0F46553D554FE2E6367019B379A1E4F4C7A9F - -CF8562B1BED89892D67DDAAF3DEEB28246456E972326DBCDB5CF3FB289ACA01E\ -68DA5D59896E3A6165358B071B304D6AB3D018944BE5049D5E0E2BB819ACF67A\ -6006111089E6767132D72DD85BEDDCBB2D64496DB0CC92955AB4C6234F1EEA24\ -F2D51483F2E209E4589BF9519FAC51B4D061E801125E605F8093BB6997BC163D\ -551596FE4AB7CFAE8FB9A90F6980480CE0C229FD1675409BD788354DAF316240\ -CFE0AF93EB:\ -41853CD54692DBD478BB1E2D6CEDCDA1D139C838AC956A37C87F098F - -2ACE31ABB0A2E3267944D2F75E1559985DB7354C6E605F18DC8470423FCA30B7\ -331D9B33C4A4326783D1CAAE1B4F07060EFF978E4746BF0C7E30CD61040BD5EC\ -2746B29863EB7F103EBDA614C4291A805B6A4C8214230564A0557BC7102E0BD3\ -ED23719252F7435D64D210EE2AAFC585BE903FA41E1968C50FD5D5367926DF7A\ -05E3A42CF07E656FF92DE73B036CF8B19898C0CB34557C0C12C2D8B84E91181A\ -F467BC75A9D1:\ -1F2727D5132C453BD321A9FC7AA46FB8B3341D90988C41DE8439D2F1 - -0D8D09AED19F1013969CE5E7EB92F83A209AE76BE31C754844EA9116CEB39A22\ -EBB6003017BBCF26555FA6624185187DB8F0CB3564B8B1C06BF685D47F3286ED\ -A20B83358F599D2044BBF0583FAB8D78F854FE0A596183230C5EF8E54426750E\ -AF2CC4E29D3BDD037E734D863C2BD9789B4C243096138F7672C232314EFFDFC6\ -513427E2DA76916B5248933BE312EB5DDE4CF70804FB258AC5FB82D58D08177A\ -C6F4756017FFF5:\ -5E745F8966D91EEE013B061281BC20C79B0323000A15BBDE7E0D25AE - -C3236B73DEB7662BF3F3DAA58F137B358BA610560EF7455785A9BEFDB035A066\ -E90704F929BD9689CEF0CE3BDA5ACF4480BCEB8D09D10B098AD8500D9B6071DF\ -C3A14AF6C77511D81E3AA8844986C3BEA6F469F9E02194C92868CD5F51646256\ -798FF0424954C1434BDFED9FACB390B07D342E992936E0F88BFD0E884A0DDB67\ -9D0547CCDEC6384285A45429D115AC7D235A717242021D1DC35641F5F0A48E84\ -45DBA58E6CB2C8EA:\ -CD2EEB7D48D0260986BADF16F15AA09B5229B7830C73EE95B8CBF85A - -B39FEB8283EADC63E8184B51DF5AE3FD41AAC8A963BB0BE1CD08AA5867D8D910\ -C669221E73243360646F6553D1CA05A84E8DC0DE05B6419EC349CA994480193D\ -01C92525F3FB3DCEFB08AFC6D26947BDBBFD85193F53B50609C6140905C53A66\ -86B58E53A319A57B962331EDE98149AF3DE3118A819DA4D76706A0424B4E1D29\ -10B0ED26AF61D150EBCB46595D4266A0BD7F651BA47D0C7F179CA28545007D92\ -E8419D48FDFBD744CE:\ -3322FA727A0089F500A6A99D67419A76C7AF77EF2893E8D385B42720 - -A983D54F503803E8C7999F4EDBBE82E9084F422143A932DDDDC47A17B0B7564A\ -7F37A99D0786E99476428D29E29D3C197A72BFAB1342C12A0FC4787FD7017D7A\ -6174049EA43B5779169EF7472BDBBD941DCB82FC73AAC45A8A94C9F2BD3477F6\ -1FD3B796F02A1B8264A214C6FEA74B7051B226C722099EC7883A462B83B6AFDD\ -4009248B8A237F605FE5A08FE7D8B45321421EBBA67BD70A0B00DDBF94BAAB7F\ -359D5D1EEA105F28DCFB:\ -234C1BC03FD4C3D38DD4C736B59A9107911210D54E98B3A372F57236 - -E4D1C1897A0A866CE564635B74222F9696BF2C7F640DD78D7E2ACA66E1B61C64\ -2BB03EA7536AAE597811E9BF4A7B453EDE31F97B46A5F0EF51A071A2B3918DF1\ -6B152519AE3776F9F1EDAB4C2A377C3292E96408359D3613844D5EB393000283\ -D5AD3401A318B12FD1474B8612F2BB50FB6A8B9E023A54D7DDE28C43D6D8854C\ -8D9D1155935C199811DBFC87E9E0072E90EB88681CC7529714F8FB8A2C9D8856\ -7ADFB974EE205A9BF7B848:\ -BF229F4017E1674D4CB87B70D3D777C7114F085D77216437B860D641 - -B10C59723E3DCADD6D75DF87D0A1580E73133A9B7D00CB95EC19F5547027323B\ -E75158B11F80B6E142C6A78531886D9047B08E551E75E6261E79785366D7024B\ -D7CD9CF322D9BE7D57FB661069F2481C7BB759CD71B4B36CA2BC2DF6D3A328FA\ -EBDB995A9794A8D72155ED551A1F87C80BF6059B43FC764900B18A1C2441F748\ -7743CF84E565F61F8DD2ECE6B6CCC9444049197AAAF53E926FBEE3BFCA8BE588\ -EC77F29D211BE89DE18B15F6:\ -F95DE3F40E5FAF58D3320B5B24ACEC7DE6B4B7E54C2F80F6D314AB5A - -DB11F609BABA7B0CA634926B1DD539C8CBADA24967D7ADD4D9876F77C2D80C0F\ -4DCEFBD7121548373582705CCA2495BD2A43716FE64ED26D059CFB566B3364BD\ -49EE0717BDD9810DD14D8FAD80DBBDC4CAFB37CC60FB0FE2A80FB4541B8CA9D5\ -9DCE457738A9D3D8F641AF8C3FD6DA162DC16FC01AAC527A4A0255B4D231C0BE\ -50F44F0DB0B713AF03D968FE7F0F61ED0824C55C4B5265548FEBD6AAD5C5EEDF\ -63EFE793489C39B8FD29D104CE:\ -04B3BBBDDFEBA441005A48CEBDBB1C6B6A674C2D9B224DA29844374D - -BEBD4F1A84FC8B15E4452A54BD02D69E304B7F32616AADD90537937106AE4E28\ -DE9D8AAB02D19BC3E2FDE1D651559E296453E4DBA94370A14DBBB2D1D4E20223\ -02EE90E208321EFCD8528AD89E46DC839EA9DF618EA8394A6BFF308E7726BAE0\ -C19BCD4BE52DA6258E2EF4E96AA21244429F49EF5CB486D7FF35CAC1BACB7E95\ -711944BCCB2AB34700D42D1EB38B5D536B947348A458EDE3DC6BD6EC547B1B0C\ -AE5B257BE36A7124E1060C170FFA:\ -6C1809CD88A0EDB211986359498E0AC37E25E8EB62946938C37D3C26 - -5ACA56A03A13784BDC3289D9364F79E2A85C12276B49B92DB0ADAA4F206D5028\ -F213F678C3510E111F9DC4C1C1F8B6ACB17A6413AA227607C515C62A733817BA\ -5E762CC6748E7E0D6872C984D723C9BB3B117EB8963185300A80BFA65CDE495D\ -70A46C44858605FCCBED086C2B45CEF963D33294DBE9706B13AF22F1B7C4CD5A\ -001CFEC251FBA18E722C6E1C4B1166918B4F6F48A98B64B3C07FC86A6B17A6D0\ -480AB79D4E6415B520F1C484D675B1:\ -D2744A1BBB34718FCBB614C21E1FCCD0FF88615CB82AA03803AB9460 - -A5AAD0E4646A32C85CFCAC73F02FC5300F1982FABB2F2179E28303E447854094\ -CDFC854310E5C0F60993CEFF54D84D6B46323D930ADB07C17599B35B505F09E7\ -84BCA5985E0172257797FB53649E2E9723EFD16865C31B5C3D5113B58BB0BFC8\ -920FABDDA086D7537E66D709D050BD14D0C960873F156FAD5B3D3840CDFCDC9B\ -E6AF519DB262A27F40896AB25CC39F96984D650611C0D5A3080D5B3A1BF186AB\ -D42956588B3B58CD948970D298776060:\ -F6115F635D98B572FD1BA85763ECCF8BF273FBF7B96F0DB0120CA8AD - -06CBBE67E94A978203EAD6C057A1A5B098478B4B4CBEF5A97E93C8E42F557271\ -3575FC2A884531D7622F8F879387A859A80F10EF02708CD8F7413AB385AFC357\ -678B9578C0EBF641EF076A1A30F1F75379E9DCB2A885BDD295905EE80C0168A6\ -2A9597D10CF12DD2D8CEE46645C7E5A141F6E0E23AA482ABE5661C16E69EF1E2\ -8371E2E236C359BA4E92C25626A7B7FF13F6EA4AE906E1CFE163E91719B1F750\ -A96CBDE5FBC953D9E576CD216AFC90323A:\ -5EE73A4F13A08A2D9B1E52DF88972FFB9F03B843A387EE52B00EDCEE - -F1C528CF7739874707D4D8AD5B98F7C77169DE0B57188DF233B2DC8A5B31EDA5\ -DB4291DD9F68E6BAD37B8D7F6C9C0044B3BF74BBC3D7D1798E138709B0D75E7C\ -593D3CCCDC1B20C7174B4E692ADD820ACE262D45CCFAE2077E87879634716806\ -0A162ECCA8C38C1A88350BD63BB539134F700FD4ADDD5959E255337DAA06BC86\ -358FABCBEFDFB5BC889783D843C08AADC6C4F6C36F65F156E851C9A0F917E4A3\ -67B5AD93D874812A1DE6A7B93CD53AD97232:\ -44BC64559BDB910B7079E0261FF8B49DBA141B32ECBCB70B3ABDFBF9 - -9D9F3A7ECD51B41F6572FD0D0881E30390DFB780991DAE7DB3B47619134718E6\ -F987810E542619DFAA7B505C76B7350C6432D8BF1CFEBDF1069B90A35F0D04CB\ -DF130B0DFC7875F4A4E62CDB8E525AADD7CE842520A482AC18F09442D78305FE\ -85A74E39E760A4837482ED2F437DD13B2EC1042AFCF9DECDC3E877E50FF4106A\ -D10A525230D11920324A81094DA31DEAB6476AA42F20C84843CFC1C58545EE80\ -352BDD3740DD6A16792AE2D86F11641BB717C2:\ -DE82ADDE823C312F83B3D4C0BD35AA0395AB747ABBC22A70973E2A6C - -5179888724819FBAD3AFA927D3577796660E6A81C52D98E9303261D5A4A83232\ -F6F758934D50AA83FF9E20A5926DFEBAAC49529D006EB923C5AE5048ED544EC4\ -71ED7191EDF46363383824F915769B3E688094C682B02151E5EE01E510B431C8\ -865AFF8B6B6F2F59CB6D129DA79E97C6D2B8FA6C6DA3F603199D2D1BCAB54768\ -2A81CD6CF65F6551121391D78BCC23B5BD0E922EC6D8BF97C952E84DD28AEF90\ -9ABA31EDB903B28FBFC33B7703CD996215A11238:\ -B1BA910C9F5E126607FF2531AFFECBA791261E354E2C1A81FDA7A756 - -576EF3520D30B7A4899B8C0D5E359E45C5189ADD100E43BE429A02FB3DE5FF4F\ -8FD0E79D9663ACCA72CD29C94582B19292A557C5B1315297D168FBB54E9E2ECD\ -13809C2B5FCE998EDC6570545E1499DBE7FB74D47CD7F35823B212B05BF3F5A7\ -9CAA34224FDD670D335FCB106F5D92C3946F44D3AFCBAE2E41AC554D8E6759F3\ -32B76BE89A0324AA12C5482D1EA3EE89DED4936F3E3C080436F539FA137E74C6\ -D3389BDF5A45074C47BC7B20B0948407A66D855E2F:\ -3EF8D4A6BB8E172374E806E8D65D5F81B3FDB36299DE1C0CCC26DC65 - -0DF2152FA4F4357C8741529DD77E783925D3D76E95BAFA2B542A2C33F3D1D117\ -D159CF473F82310356FEE4C90A9E505E70F8F24859656368BA09381FA245EB6C\ -3D763F3093F0C89B972E66B53D59406D9F01AEA07F8B3B615CAC4EE4D05F542E\ -7D0DAB45D67CCCCD3A606CCBEB31EA1FA7005BA07176E60DAB7D78F6810EF086\ -F42F08E595F0EC217372B98970CC6321576D92CE38F7C397A403BADA1548D205\ -C343AC09DECA86325373C3B76D9F32028FEA8EB32515:\ -1C89D6460B3F13584BF8319EE538F24C850CA771A51ECC547652BAE3 - -3E15350D87D6EBB5C8AD99D42515CFE17980933C7A8F6B8BBBF0A63728CEFAAD\ -2052623C0BD5931839112A48633FB3C2004E0749C87A41B26A8B48945539D1FF\ -41A4B269462FD199BFECD45374756F55A9116E92093AC99451AEFB2AF9FD32D6\ -D7F5FBC7F7A540D5097C096EBC3B3A721541DE073A1CC02F7FB0FB1B9327FB0B\ -1218CA49C9487AB5396622A13AE546C97ABDEF6B56380DDA7012A8384091B665\ -6D0AB272D363CEA78163FF765CDD13AB1738B940D16CAE:\ -99981766CFE3B1888F2A008EFA1088016CB29993567F9BB74B5C4D3C - -C38D6B0B757CB552BE40940ECE0009EF3B0B59307C1451686F1A22702922800D\ -58BCE7A636C1727EE547C01B214779E898FC0E560F8AE7F61BEF4D75EAA696B9\ -21FD6B735D171535E9EDD267C192B99880C87997711002009095D8A7A437E258\ -104A41A505E5EF71E5613DDD2008195F0C574E6BA3FE40099CFA116E5F1A2FA8\ -A6DA04BADCB4E2D5D0DE31FDC4800891C45781A0AAC7C907B56D631FCA5CE8B2\ -CDE620D11D1777ED9FA603541DE794DDC5758FCD5FAD78C0:\ -0215E91EF992DCC7E82D16A2C9B27921C1310C182F59DF8BED5151E8 - -8D2DE3F0B37A6385C90739805B170057F091CD0C7A0BC951540F26A5A75B3E69\ -4631BB64C7635EED316F51318E9D8DE13C70A2ABA04A14836855F35E480528B7\ -76D0A1E8A23B547C8B8D6A0D09B241D3BE9377160CCA4E6793D00A515DC2992C\ -B7FC741DACA171431DA99CCE6F7789F129E2AC5CF65B40D703035CD2185BB936\ -C82002DAF8CBC27A7A9E554B06196630446A6F0A14BA155ED26D95BD627B7205\ -C072D02B60DB0FD7E49EA058C2E0BA202DAFF0DE91E845CF79:\ -E52EA6714A3978810DC19E999C32516D4ACF0CBCD67E917A4FEB56D0 - -C464BBDAD275C50DCD983B65AD1019B9FF85A1E71C807F3204BB2C921DC31FBC\ -D8C5FC45868AE9EF85B6C9B83BBA2A5A822201ED68586EC5EC27FB2857A5D1A2\ -D09D09115F22DCC39FE61F5E1BA0FF6E8B4ACB4C6DA748BE7F3F0839739394FF\ -7FA8E39F7F7E84A33C3866875C01BCB1263C9405D91908E9E0B50E7459FABB63\ -D8C6BBB73D8E3483C099B55BC30FF092FF68B6ADEDFD477D63570C9F5515847F\ -36E24BA0B705557130CEC57EBAD1D0B31A378E91894EE26E3A04:\ -4C3D6321133EF74810E60D3190FFF3CF20C8521CAEA6FF782D7E3BAB - -8B8D68BB8A75732FE272815A68A1C9C5AA31B41DEDC8493E76525D1D013D33CE\ -BD9E21A5BB95DB2616976A8C07FCF411F5F6BC6F7E0B57ACA78CC2790A6F9B89\ -8858AC9C79B165FF24E66677531E39F572BE5D81EB3264524181115F32780257\ -BFB9AEEC6AF12AF28E587CAC068A1A2953B59AD680F4C245B2E3EC36F59940D3\ -7E1D3DB38E13EDB29B5C0F404F6FF87F80FC8BE7A225FF22FBB9C8B6B1D7330C\ -57840D24BC75B06B80D30DAD6806544D510AF6C4785E823AC3E0B8:\ -B9F006DBF853C023DEBE2F40035A7E83C49CDE656EC86A4621950F3E - -6B018710446F368E7421F1BC0CCF562D9C1843846BC8D98D1C9BF7D9D6FCB48B\ -FC3BF83B36D44C4FA93430AF75CD190BDE36A7F92F867F58A803900DF8018150\ -384D85D82132F123006AC2AEBA58E02A037FE6AFBD65ECA7C44977DD3DC74F48\ -B6E7A1BFD5CC4DCF24E4D52E92BD4455848E4928B0EAC8B7476FE3CC03E862AA\ -4DFF4470DBFED6DE48E410F25096487ECFC32A27277F3F5023B2725ADE461B13\ -55889554A8836C9CF53BD767F5737D55184EEA1AB3F53EDD0976C485:\ -0A5AA6BC564B8CB2F5FD7255455C0E7A5DACE0050C3BBD259FDE2AB9 - -C9534A24714BD4BE37C88A3DA1082EDA7CABD154C309D7BD670DCCD95AA53559\ -4463058A29F79031D6ECAA9F675D1211E9359BE82669A79C855EA8D89DD38C2C\ -761DDD0EC0CE9E97597432E9A1BEAE062CDD71EDFDFD464119BE9E69D18A7A7F\ -D7CE0E2106F0C8B0ABF4715E2CA48EF9F454DC203C96656653B727083513F8EF\ -B86E49C513BB758B3B052FE21F1C05BB33C37129D6CC81F1AEF6ADC45B0E8827\ -A830FE545CF57D0955802C117D23CCB55EA28F95C0D8C2F9C5A242B33F:\ -8CA4E085F04956B5B16520E3A767F8BA937364FE5F4460288AD4F231 - -07906C87297B867ABF4576E9F3CC7F82F22B154AFCBF293B9319F1B0584DA6A4\ -0C27B32E0B1B7F412C4F1B82480E70A9235B12EC27090A5A33175A2BB28D8ADC\ -475CEFE33F7803F8CE27967217381F02E67A3B4F84A71F1C5228E0C2AD971373\ -F6F672624FCEA8D1A9F85170FAD30FA0BBD25035C3B41A6175D467998BD1215F\ -6F3866F53847F9CF68EF3E2FBB54BC994DE2302B829C5EEA68EC441FCBAFD7D1\ -6AE4FE9FFF98BF00E5BC2AD54DD91FF9FDA4DD77B6C754A91955D1FBAAD0:\ -C0AA34391CB3104C41995F3DE782F012D421585E5384E047A997062F - -588E94B9054ABC2189DF69B8BA34341B77CDD528E7860E5DEFCAA79B0C9A452A\ -D4B82AA306BE84536EB7CEDCBE058D7B84A6AEF826B028B8A0271B69AC3605A9\ -635EA9F5EA0AA700F3EB7835BC54611B922964300C953EFE7491E3677C2CEBE0\ -822E956CD16433B02C68C4A23252C3F9E151A416B4963257B783E038F6B4D5C9\ -F110F871652C7A649A7BCEDCBCCC6F2D0725BB903CC196BA76C76AA9F10A190B\ -1D1168993BAA9FFC96A1655216773458BEC72B0E39C9F2C121378FEAB4E76A:\ -33C10010A0B810386AE62F3F927DEAFC0D5AF0AF3DC7A8355CB779CD - -08959A7E4BAAE874928813364071194E2939772F20DB7C3157078987C557C2A6\ -D5ABE68D520EEF3DC491692E1E21BCD880ADEBF63BB4213B50897FA005256ED4\ -1B5690F78F52855C8D9168A4B666FCE2DA2B456D7A7E7C17AB5F2FB1EE90B79E\ -698712E963715983FD07641AE4B4E9DC73203FAC1AE11FA1F8C7941FCC82EAB2\ -47ADDB56E2638447E9D609E610B60CE086656AAEBF1DA3C8A231D7D94E2FD0AF\ -E46B391FF14A72EAEB3F44AD4DF85866DEF43D4781A0B3578BC996C87970B132:\ -842A2E13D2728CA55B42D784BB6BC4B889E56775AD56BF75789CC57A - -CB2A234F45E2ECD5863895A451D389A369AAB99CFEF0D5C9FFCA1E6E63F763B5\ -C14FB9B478313C8E8C0EFEB3AC9500CF5FD93791B789E67EAC12FD038E2547CC\ -8E0FC9DB591F33A1E4907C64A922DDA23EC9827310B306098554A4A78F050262\ -DB5B545B159E1FF1DCA6EB734B872343B842C57EAFCFDA8405EEDBB48EF32E99\ -696D135979235C3A05364E371C2D76F1902F1D83146DF9495C0A6C57D7BF9EE7\ -7E80F9787AEE27BE1FE126CDC9EF893A4A7DCBBC367E40FE4E1EE90B42EA25AF\ -01:\ -A576281CFAA89DCEFB1D37772400BA4CABCEEF33CBA2F833336A74F2 - -D16BEADF02AB1D4DC6F88B8C4554C51E866DF830B89C06E786A5F8757E890931\ -0AF51C840EFE8D20B35331F4355D80F73295974653DDD620CDDE4730FB6C8D0D\ -2DCB2B45D92D4FBDB567C0A3E86BD1A8A795AF26FBF29FC6C65941CDDB090FF7\ -CD230AC5268AB4606FCCBA9EDED0A2B5D014EE0C34F0B2881AC036E24E151BE8\ -9EEB6CD9A7A790AFCCFF234D7CB11B99EBF58CD0C589F20BDAC4F9F0E28F75E3\ -E04E5B3DEBCE607A496D848D67FA7B49132C71B878FD5557E082A18ECA1FBDA9\ -4D4B:\ -B1579476972D42FA388FEEB8424834672C4D1A4225EE2DB89DEA7359 - -8F65F6BC59A85705016E2BAE7FE57980DE3127E5AB275F573D334F73F8603106\ -EC3553016608EF2DD6E69B24BE0B7113BF6A760BA6E9CE1C48F9E186012CF96A\ -1D4849D75DF5BB8315387FD78E9E153E76F8BA7EC6C8849810F59FB4BB9B0043\ -18210B37F1299526866F44059E017E22E96CBE418699D014C6EA01C9F0038B10\ -299884DBEC3199BB05ADC94E955A1533219C1115FED0E5F21228B071F40DD57C\ -4240D98D37B73E412FE0FA4703120D7C0C67972ED233E5DEB300A22605472FA3\ -A3BA86:\ -A32EC69648B4FD9BA2431ED0FEF036188C19788D7DDF0D25B6B03ECD - -84891E52E0D451813210C3FD635B39A03A6B7A7317B221A7ABC270DFA946C426\ -69AACBBBDF801E1584F330E28C729847EA14152BD637B3D0F2B38B4BD5BF9C79\ -1C58806281103A3EABBAEDE5E711E539E6A8B2CF297CF351C078B4FA8F7F35CF\ -61BEBF8814BF248A01D41E86C5715EA40C63F7375379A7EB1D78F27622FB468A\ -B784AAABA4E534A6DFD1DF6FA15511341E725ED2E87F98737CCB7B6A6DFAE416\ -477472B046BF1811187D151BFA9F7B2BF9ACDB23A3BE507CDF14CFDF517D2CB5\ -FB9E4AB6:\ -2B8CF4C8D9E6717EBCE4F0584ADA59A8ACDFAB98AD7E33F355B77095 - -FDD7A9433A3B4AFABD7A3A5E3457E56DEBF78E84B7A0B0CA0E8C6D53BD0C2DAE\ -31B2700C6128334F43981BE3B213B1D7A118D59C7E6B6493A86F866A1635C128\ -59CFB9AD17460A77B4522A5C1883C3D6ACC86E6162667EC414E9A104AA892053\ -A2B1D72165A855BACD8FAF8034A5DD9B716F47A0818C09BB6BAF22AA503C06B4\ -CA261F557761989D2AFBD88B6A678AD128AF68672107D0F1FC73C5CA74045929\ -7B3292B281E93BCEB761BDE7221C3A55708E5EC84472CDDCAA84ECF23723CC09\ -91355C6280:\ -E583849474F3C759B7A3093C7ABADD61425073AEA2678E278215708D - -70A40BFBEF92277A1AAD72F6B79D0177197C4EBD432668CFEC05D099ACCB6510\ -62B5DFF156C0B27336687A94B26679CFDD9DAF7AD204338DD9C4D14114033A5C\ -225BD11F217B5F4732DA167EE3F939262D4043FC9CBA92303B7B5E96AEA12ADD\ -A64859DF4B86E9EE0B58E39091E6B188B408AC94E1294A8911245EE361E60E60\ -1EFF58D1D37639F3753BEC80EBB4EFDE25817436076623FC65415FE51D1B0280\ -366D12C554D86743F3C3B6572E400361A60726131441BA493A83FBE9AFDA90F7\ -AF1AE717238D:\ -10795D3ABCC077F4A1F5B5653C478F9DB42110EA9F34925470B3CD11 - -74356E449F4BF8644F77B14F4D67CB6BD9C1F5AE357621D5B8147E562B65C665\ -85CAF2E491B48529A01A34D226D436959153815380D5689E30B35357CDAC6E08\ -D3F2B0E88E200600D62BD9F5EAF488DF86A4470EA227006182E44809009868C4\ -C280C43D7D64A5268FA719074960087B3A6ABC837882F882C837834535929389\ -A12B2C78187E2EA07EF8B8EEF27DC85002C3AE35F1A50BEE6A1C48BA7E175F33\ -16670B27983472AA6A61EED0A683A39EE323080620EA44A9F74411AE5CE99030\ -528F9AB49C79F2:\ -31A843B4A9F332F3B6B099843540AA70651B26B80E0BD75B77F3AA9B - -8C3798E51BC68482D7337D3ABB75DC9FFE860714A9AD73551E120059860DDE24\ -AB87327222B64CF774415A70F724CDF270DE3FE47DDA07B61C9EF2A3551F45A5\ -584860248FABDE676E1CD75F6355AA3EAEABE3B51DC813D9FB2EAA4F0F1D9F83\ -4D7CAD9C7C695AE84B329385BC0BEF895B9F1EDF44A03D4B410CC23A79A6B62E\ -4F346A5E8DD851C2857995DDBF5B2D717AEB847310E1F6A46AC3D26A7F9B4498\ -5AF656D2B7C9406E8A9E8F47DCB4EF6B83CAACF9AEFB6118BFCFF7E44BEF6937\ -EBDDC89186839B77:\ -1029CA117957D80F3C859E8394DD34969331CA3BCEDC436B1EAB0849 - -FA56BF730C4F8395875189C10C4FB251605757A8FECC31F9737E3C2503B02608\ -E6731E85D7A38393C67DE516B85304824BFB135E33BF22B3A23B913BF6ACD2B7\ -AB85198B8187B2BCD454D5E3318CACB32FD6261C31AE7F6C54EF6A7A2A4C9F3E\ -CB81CE3555D4F0AD466DD4C108A90399D70041997C3B25345A9653F3C9A6711A\ -B1B91D6A9D2216442DA2C973CBD685EE7643BFD77327A2F7AE9CB283620A0871\ -6DFB462E5C1D65432CA9D56A90E811443CD1ECB8F0DE179C9CB48BA4F6FEC360\ -C66F252F6E64EDC96B:\ -6096E9914C1AC93A6809DE7AD91119C637B00BBD64DCC3E1FAC1E1ED - -B6134F9C3E91DD8000740D009DD806240811D51AB1546A974BCB18D344642BAA\ -5CD5903AF84D58EC5BA17301D5EC0F10CCD0509CBB3FD3FFF9172D193AF0F782\ -252FD1338C7244D40E0E42362275B22D01C4C3389F19DD69BDF958EBE28E31A4\ -FFE2B5F18A87831CFB7095F58A87C9FA21DB72BA269379B2DC2384B3DA953C79\ -25761FED324620ACEA435E52B424A7723F6A2357374157A34CD8252351C25A1B\ -232826CEFE1BD3E70FFC15A31E7C0598219D7F00436294D11891B82497BC78AA\ -5363892A2495DF8C1EEF:\ -F583F07DF2327887C6F10A9B1D509A744F3C294A4227976E3C3722E8 - -C941CDB9C28AB0A791F2E5C8E8BB52850626AA89205BEC3A7E22682313D198B1\ -FA33FC7295381354858758AE6C8EC6FAC3245C6E454D16FA2F51C4166FAB51DF\ -272858F2D603770C40987F64442D487AF49CD5C3991CE858EA2A60DAB6A65A34\ -414965933973AC2457089E359160B7CDEDC42F29E10A91921785F6B7224EE0B3\ -49393CDCFF6151B50B377D609559923D0984CDA6000829B916AB6896693EF6A2\ -199B3C22F7DC5500A15B8258420E314C222BC000BC4E5413E6DD82C993F8330F\ -5C6D1BE4BC79F08A1A0A46:\ -A9F43B9621FC5902DF2458FD53D0CDE90AAE7000855C67D853C7937A - -4499EFFFAC4BCEA52747EFD1E4F20B73E48758BE915C88A1FFE5299B0B005837\ -A46B2F20A9CB3C6E64A9E3C564A27C0F1C6AD1960373036EC5BFE1A8FC6A435C\ -2185ED0F114C50E8B3E4C7ED96B06A036819C9463E864A58D6286F785E32A804\ -443A56AF0B4DF6ABC57ED5C2B185DDEE8489EA080DEEEE66AA33C2E6DAB36251\ -C402682B6824821F998C32163164298E1FAFD31BABBCFFB594C91888C6219079\ -D907FDB438ED89529D6D96212FD55ABE20399DBEFD342248507436931CDEAD49\ -6EB6E4A80358ACC78647D043:\ -E9675FAAC37C93AA61FF9730679A3D1209ADBAD4652582DFF5B1BAAF - -EECBB8FDFA4DA62170FD06727F697D81F83F601FF61E478105D3CB7502F2C89B\ -F3E8F56EDD469D049807A38882A7EEFBC85FC9A950952E9FA84B8AFEBD3CE782\ -D4DA598002827B1EB98882EA1F0A8F7AA9CE013A6E9BC462FB66C8D4A18DA214\ -01E1B93356EB12F3725B6DB1684F2300A98B9A119E5D27FF704AFFB618E12708\ -E77E6E5F34139A5A41131FD1D6336C272A8FC37080F041C71341BEE6AB550CB4\ -A20A6DDB6A8E0299F2B14BC730C54B8B1C1C487B494BDCCFD3A53535AB2F2315\ -90BF2C4062FD2AD58F906A2D0D:\ -CDB500740812A0D70C68D0097DCC7ACA86EC066C89D36642879A74A5 - -E64F3E4ACE5C8418D65FEC2BC5D2A303DD458034736E3B0DF719098BE7A206DE\ -AF52D6BA82316CAF330EF852375188CDE2B39CC94AA449578A7E2A8E3F5A9D68\ -E816B8D16889FBC0EBF0939D04F63033AE9AE2BDAB73B88C26D6BD25EE460EE1\ -EF58FB0AFA92CC539F8C76D3D097E7A6A63EBB9B5887EDF3CF076028C5BBD5B9\ -DB3211371AD3FE121D4E9BF44229F4E1ECF5A0F9F0EBA4D5CEB72878AB22C3F0\ -EB5A625323AC66F7061F4A81FAC834471E0C59553F108475FE290D43E6A055AE\ -3EE46FB67422F814A68C4BE3E8C9:\ -66F205D7147991A940AFFB7401B692275338519A97608C584362FFEE - -D2CB2D733033F9E91395312808383CC4F0CA974E87EC68400D52E96B3FA6984A\ -C58D9AD0938DDE5A973008D818C49607D9DE2284E7618F1B8AED8372FBD52ED5\ -4557AF4220FAC09DFA8443011699B97D743F8F2B1AEF3537EBB45DCC9E13DFB4\ -38428EE190A4EFDB3CAEB7F3933117BF63ABDC7E57BEB4171C7E1AD260AB0587\ -806C4D137B6316B50ABC9CCE0DFF3ACADA47BBB86BE777E617BBE578FF451984\ -4DB360E0A96C6701290E76BB95D26F0F804C8A4F2717EAC4E7DE9F2CFF3BBC55\ -A17E776C0D02856032A6CD10AD2838:\ -909FB29277AB2C4CE4279C485D4FBA7E18FF1A88C66DAF7ACF630310 - -F2998955613DD414CC111DF5CE30A995BB792E260B0E37A5B1D942FE90171A4A\ -C2F66D4928D7AD377F4D0554CBF4C523D21F6E5F379D6F4B028CDCB9B1758D3B\ -39663242FF3CB6EDE6A36A6F05DB3BC41E0D861B384B6DEC58BB096D0A422FD5\ -42DF175E1BE1571FB52AE66F2D86A2F6824A8CFAACBAC4A7492AD0433EEB1545\ -4AF8F312B3B2A577750E3EFBD370E8A8CAC1582581971FBA3BA4BD0D76E718DA\ -CF8433D33A59D287F8CC92234E7A271041B526E389EFB0E40B6A18B3AAF658E8\ -2ED1C78631FD23B4C3EB27C3FAEC8685:\ -ED535EC075C983A08F7D7AD5714EBC846F25E8661492B2B31978EDF2 - -447797E2899B72A356BA55BF4DF3ACCA6CDB1041EB477BD1834A9F9ACBC340A2\ -94D729F2F97DF3A610BE0FF15EDB9C6D5DB41644B9874360140FC64F52AA03F0\ -286C8A640670067A84E017926A70438DB1BB361DEFEE7317021425F8821DEF26\ -D1EFD77FC853B818545D055ADC9284796E583C76E6FE74C9AC2587AA46AA8F88\ -04F2FEB5836CC4B3ABABAB8429A5783E17D5999F32242EB59EF30CD7ADABC16D\ -72DBDB097623047C98989F88D14EAF02A7212BE16EC2D07981AAA99949DDF89E\ -CD90333A77BC4E1988A82ABF7C7CAF3291:\ -87F15CC2AEC24168D8BBAF188825F3BB0178CFB5C5899F2FD042CE89 - -9F2C18ADE9B380C784E170FB763E9AA205F64303067EB1BCEA93DF5DAC4BF5A2\ -E00B78195F808DF24FC76E26CB7BE31DC35F0844CDED1567BBA29858CFFC97FB\ -29010331B01D6A3FB3159CC1B973D255DA9843E34A0A4061CABDB9ED37F241BF\ -ABB3C20D32743F4026B59A4CCC385A2301F83C0B0A190B0F2D01ACB8F0D41111\ -E10F2F4E149379275599A52DC089B35FDD5234B0CFB7B6D8AEBD563CA1FA653C\ -5C021DFD6F5920E6F18BFAFDBECBF0AB00281333ED50B9A999549C1C8F8C63D7\ -626C48322E9791D5FF72294049BDE91E73F8:\ -31BB872545217FDBF11077E86B1EE451475C31DC5E0E636EFBE50825 - -AE159F3FA33619002AE6BCCE8CBBDD7D28E5ED9D61534595C4C9F43C402A9BB3\ -1F3B301CBFD4A43CE4C24CD5C9849CC6259ECA90E2A79E01FFBAC07BA0E147FA\ -42676A1D668570E0396387B5BCD599E8E66AAED1B8A191C5A47547F61373021F\ -A6DEADCB55363D233C24440F2C73DBB519F7C9FA5A8962EFD5F6252C0407F190\ -DFEFAD707F3C7007D69FF36B8489A5B6B7C557E79DD4F50C06511F599F56C896\ -B35C917B63BA35C6FF8092BAF7D1658E77FC95D8A6A43EEB4C01F33F03877F92\ -774BE89C1114DD531C011E53A34DC248A2F0E6:\ -26D69F0AE8E4DC61C6354FF570FDD913CAF21C18697F0371F2D323AF - -3B8E97C5FFC2D6A40FA7DE7FCEFC90F3B12C940E7AB415321E29EE692DFAC799\ -B009C99DCDDB708FCE5A178C5C35EE2B8617143EDC4C40B4D313661F49ABDD93\ -CEA79D117518805496FE6ACF292C4C2A1F76B403A97D7C399DAF85B46AD84E16\ -246C67D6836757BDE336C290D5D401E6C1386AB32797AF6BB251E9B2D8FE754C\ -47482B72E0B394EAB76916126FD68EA7D65EB93D59F5B4C5AC40F7C3B37E7F36\ -94F29424C24AF8C8F0EF59CD9DBF1D28E0E10F799A6F78CAD1D45B9DB3D7DEE4\ -A7059ABE99182714983B9C9D44D7F5643596D4F3:\ -175393534D90B614B158105C95E18A1052A56D0E775EA1CF51AD5853 - -3434EC31B10FAFDBFEEC0DD6BD94E80F7BA9DCA19EF075F7EB017512AF66D6A4\ -BCF7D16BA0819A1892A6372F9B35BCC7CA8155EE19E8428BC22D214856ED5FA9\ -374C3C09BDE169602CC219679F65A1566FC7316F4CC3B631A18FB4449FA6AFA1\ -6A3DB2BC4212EFF539C67CF184680826535589C7111D73BFFCE431B4C40492E7\ -63D9279560AAA38EB2DC14A212D723F994A1FE656FF4DD14551CE4E7C621B2AA\ -5604A10001B2878A897A28A08095C325E10A26D2FB1A75BFD64C250309BB55A4\ -4F23BBAC0D5516A1C687D3B41EF2FBBF9CC56D4739:\ -3DECD71DA22639985CF242F2FAE7172459042C826495C8D8D95C3719 - -7C7953D81C8D208FD1C97681D48F49DD003456DE60475B84070EF4847C333B74\ -575B1FC8D2A186964485A3B8634FEAA3595AAA1A2F4595A7D6B6153563DEE31B\ -BAC443C8A33EED6D5D956A980A68366C2527B550EE950250DFB691EACBD5D56A\ -E14B970668BE174C89DF2FEA43AE52F13142639C884FD62A3683C0C3792F0F24\ -AB1318BCB27E21F4737FAB62C77EA38BC8FD1CF41F7DAB64C13FEBE7152BF5BB\ -7AB5A78F5346D43CC741CB6F72B7B8980F268B68BF62ABDFB1577A52438FE14B\ -591498CC95F071228460C7C5D5CEB4A7BDE588E7F21C:\ -2D0A56864BBEC6449FBF7B2EAE53DA46647183B56FA4EDB1602E5163 - -7A6A4F4FDC59A1D223381AE5AF498D74B7252ECF59E389E49130C7EAEE626E7B\ -D9897EFFD92017F4CCDE66B0440462CDEDFD352D8153E6A4C8D7A0812F701CC7\ -37B5178C2556F07111200EB627DBC299CAA792DFA58F35935299FA3A3519E9B0\ -3166DFFA159103FFA35E8577F7C0A86C6B46FE13DB8E2CDD9DCFBA85BDDDCCE0\ -A7A8E155F81F712D8E9FE646153D3D22C811BD39F830433B2213DD46301941B5\ -9293FD0A33E2B63ADBD95239BC01315C46FDB678875B3C81E053A40F581CFBEC\ -24A1404B1671A1B88A6D06120229518FB13A74CA0AC5AE:\ -A0FF9E11FBB451943A17E3AC510DE0B582BB072B16DC4E03F9E4019F - -D9FAA14CEBE9B7DE551B6C0765409A33938562013B5E8E0E1E0A6418DF7399D0\ -A6A771FB81C3CA9BD3BB8E2951B0BC792525A294EBD1083688806FE5E7F1E17F\ -D4E3A41D00C89E8FCF4A363CAEDB1ACB558E3D562F1302B3D83BB886ED27B760\ -33798131DAB05B4217381EAAA7BA15EC820BB5C13B516DD640EAEC5A27D05FDF\ -CA0F35B3A5312146806B4C0275BCD0AAA3B2017F346975DB566F9B4D137F4EE1\ -0644C2A2DA66DEECA5342E236495C3C6280528BFD32E90AF4CD9BB908F34012B\ -52B4BC56D48CC8A6B59BAB014988EABD12E1A0A1C2E170E7:\ -4FEFBE74645949A1291C6F6F05EAF4B780EA01EC5EA5105ECDCB984A - -2D8427433D0C61F2D96CFE80CF1E932265A191365C3B61AAA3D6DCC039F6BA2A\ -D52A6A8CC30FC10F705E6B7705105977FA496C1C708A277A124304F1FC40911E\ -7441D1B5E77B951AAD7B01FD5DB1B377D165B05BBF898042E39660CAF8B279FE\ -5229D1A8DB86C0999ED65E53D01CCBC4B43173CCF992B3A14586F6BA42F5FE30\ -AFA8AE40C5DF29966F9346DA5F8B35F16A1DE3AB6DE0F477D8D8660918060E88\ -B9B9E9CA6A4207033B87A812DBF5544D39E4882010F82B6CE005F8E8FF6FE3C3\ -806BC2B73C2B83AFB704345629304F9F86358712E9FAE3CA3E:\ -7CC9EEBBE0DF46A398233FA31286F8A530292B53E48BA54B6AE40472 - -5E19D97887FCAAC0387E22C6F803C34A3DACD2604172433F7A8A7A526CA4A2A1\ -271ECFC5D5D7BE5AC0D85D921095350DFC65997D443C21C8094E0A3FEFD2961B\ -CB94AED03291AE310CCDA75D8ACE4BC7D89E7D3E5D1650BDA5D668B8B50BFC8E\ -608E184F4D3A9A2BADC4FF5F07E0C0BC8A9F2E0B2A26FD6D8C550008FAAAB75F\ -D71AF2A424BEC9A7CD9D83FAD4C8E9319115656A8717D3B523A68FF8004258B9\ -990ED362308461804BA3E3A7E92D8F2FFAE5C2FBA55BA5A3C27C0A2F71BD711D\ -2FE1799C2ADB31B200035481E9EE5C4ADF2AB9C0FA50B23975CF:\ -03D718DA677C4018E52288BB30E4E6E732A16144931176F0A8C73970 - -C8E976AB4638909387CE3B8D4E510C3230E5690E02C45093B1D297910ABC481E\ -56EEA0F296F98379DFC9080AF69E73B2399D1C143BEE80AE1328162CE1BA7F6A\ -8374679B20AACD380EB4E61382C99998704D62701AFA914F9A2705CDB065885F\ -50D086C3EB5753700C387118BB142F3E6DA1E988DFB31AC75D7368931E45D139\ -1A274B22F83CEB072F9BCABC0B216685BFD789F5023971024B1878A205442522\ -F9EA7D8797A4102A3DF41703768251FD5E017C85D1200A464118AA35654E7CA3\ -9F3C375B8EF8CBE7534DBC64BC20BEFB417CF60EC92F63D9EE7397:\ -A9ABB430FC1B3D8C6CDEB5319878E7B12B118E2E03F40562A376418C - -7145FA124B7429A1FC2231237A949BA7201BCC1822D3272DE005B682398196C2\ -5F7E5CC2F289FBF44415F699CB7FE6757791B1443410234AE061EDF623359E2B\ -4E32C19BF88450432DD01CAA5EB16A1DC378F391CA5E3C4E5F356728BDDD4975\ -DB7C890DA8BBC84CC73FF244394D0D48954978765E4A00B593F70F2CA082673A\ -261ED88DBCEF1127728D8CD89BC2C597E9102CED6010F65FA75A14EBE467FA57\ -CE3BD4948B6867D74A9DF5C0EC6F530CBF2EE61CE6F06BC8F2864DFF5583776B\ -31DF8C7FFCB61428A56BF7BD37188B4A5123BBF338393AF46EDA85E6:\ -4A7A58B337872189A06B53B6BCC50C29EF9D0BBC491832907AF14EC8 - -7FDFADCC9D29BAD23AE038C6C65CDA1AEF757221B8872ED3D75FF8DF7DA0627D\ -266E224E812C39F7983E4558BFD0A1F2BEF3FEB56BA09120EF762917B9C09386\ -7948547AEE98600D10D87B20106878A8D22C64378BF634F7F75900C03986B077\ -B0BF8B740A82447B61B99FEE5376C5EB6680EC9E3088F0BDD0C56883413D60C1\ -357D3C811950E5890E7600103C916341B80C743C6A852B7B4FB60C3BA21F3BC1\ -5B8382437A68454779CF3CD7F9F90CCC8EF28D0B706535B1E4108EB5627BB45D\ -719CB046839AEE311CA1ABDC8319E050D67972CB35A6B1601B25DBF487:\ -808E01CD273919BA1BFF011E0E7094EC6D5C4962912B08F11965AB58 - -988638219FD3095421F826F56E4F09E356296B628C3CE6930C9F2E758FD1A80C\ -8273F2F61E4DAAE65C4F110D3E7CA0965AC7D24E34C0DC4BA2D6FF0BF5BBE93B\ -3585F354D7543CB542A1AA54674D375077F2D360A8F4D42F3DB131C3B7AB7306\ -267BA107659864A90C8C909460A73621D1F5D9D3FD95BEB19B23DB1CB6C0D0FB\ -A91D36891529B8BD8263CAA1BAB56A4AFFAED44962DF096D8D5B1EB845EF3118\ -8B3E10F1AF811A13F156BEB7A288AAE593EBD1471B624AA1A7C6ADF01E2200B3\ -D72D88A3AED3100C88231E41EFC376906F0B580DC895F080FDA5741DB1CB:\ -DCBCC30B6909FDF00650F1A10CFBBD419408F9D37F378C5CA693B803 - -5AAB62756D307A669D146ABA988D9074C5A159B3DE85151A819B117CA1FF6597\ -F6156E80FDD28C9C3176835164D37DA7DA11D94E09ADD770B68A6E081CD22CA0\ -C004BFE7CD283BF43A588DA91F509B27A6584C474A4A2F3EE0F1F56447379240\ -A5AB1FB77FDCA49B305F07BA86B62756FB9EFB4FC225C86845F026EA542076B9\ -1A0BC2CDD136E122C659BE259D98E5841DF4C2F60330D4D8CDEE7BF1A0A24452\ -4EECC68FF2AEF5BF0069C9E87A11C6E519DE1A4062A10C83837388F7EF58598A\ -3846F49D499682B683C4A062B421594FAFBC1383C943BA83BDEF515EFCF10D:\ -BE077F12762EF51859B6C520B19231E30442AC268CE4FD47366FF9F1 - -47B8216AA0FBB5D67966F2E82C17C07AA2D6327E96FCD83E3DE7333689F3EE79\ -994A1BF45082C4D725ED8D41205CB5BCDF5C341F77FACB1DA46A5B9B2CBC49EA\ -DF786BCD881F371A95FA17DF73F606519AEA0FF79D5A11427B98EE7F13A5C006\ -37E2854134691059839121FEA9ABE2CD1BCBBBF27C74CAF3678E05BFB1C94989\ -7EA01F56FFA4DAFBE8644611685C617A3206C7A7036E4AC816799F693DAFE7F1\ -9F303CE4EBA09D21E03610201BFC665B72400A547A1E00FA9B7AD8D84F84B34A\ -EF118515E74DEF11B9188BD1E1F97D9A12C30132EC2806339BDADACDA2FD8B78:\ -25C425265AB07D0A8EC659D4D5EE618BDE87003B7255FF4B5315F1C7 - -8CFF1F67FE53C098896D9136389BD8881816CCAB34862BB67A656E3D98896F3C\ -E6FFD4DA73975809FCDF9666760D6E561C55238B205D8049C1CEDEEF374D1735\ -DAA533147BFA960B2CCE4A4F254176BB4D1BD1E89654432B8DBE1A135C42115B\ -394B024856A2A83DC85D6782BE4B444239567CCEC4B184D4548EAE3FF6A192F3\ -43292BA2E32A0F267F31CC26719EB85245D415FB897AC2DA433EE91A99424C9D\ -7F1766A44171D1651001C38FC79294ACCC68CEB5665D36218454D3BA169AE058\ -A831338C17743603F81EE173BFC0927464F9BD728DEE94C6AEAB7AAE6EE3A627\ -E8:\ -046CF62C41CE9B0F54B667558063023F59887BADA9CC288414ADEE7F - -EACD07971CFF9B9939903F8C1D8CBB5D4DB1B548A85D04E037514A583604E787\ -F32992BF2111B97AC5E8A938233552731321522AB5E8583561260B7D13EBEEF7\ -85B23A41FD8576A6DA764A8ED6D822D4957A545D5244756C18AA80E1AAD4D1F9\ -C20D259DEE1711E2CC8FD013169FB7CC4CE38B362F8E0936AE9198B7E838DCEA\ -4F7A5B9429BB3F6BBCF2DC92565E3676C1C5E6EB3DD2A0F86AA23EDD3D0891F1\ -97447692794B3DFA269611AD97F72B795602B4FDB198F3FD3EB41B415064256E\ -345E8D8C51C555DC8A21904A9B0F1AD0EFFAB7786AAC2DA3B196507E9F33CA35\ -6427:\ -37E3844080986179FDA99E9B8C54E294643060795B66E810E3E25D9E - -23AC4E9A42C6EF45C3336CE6DFC2FF7DE8884CD23DC912FEF0F7756C09D335C1\ -89F3AD3A23697ABDA851A81881A0C8CCAFC980AB2C702564C2BE15FE4C4B9F10\ -DFB2248D0D0CB2E2887FD4598A1D4ACDA897944A2FFC580FF92719C95CF2AA42\ -DC584674CB5A9BC5765B9D6DDF5789791D15F8DD925AA12BFFAFBCE60827B490\ -BB7DF3DDA6F2A143C8BF96ABC903D83D59A791E2D62814A89B8080A28060568C\ -F24A80AE61179FE84E0FFAD00388178CB6A617D37EFD54CC01970A4A41D1A8D3\ -DDCE46EDBBA4AB7C90AD565398D376F431189CE8C1C33E132FEAE6A8CD17A61C\ -630012:\ -3B503D615E54132B42CAC1A0450A0D7E2EDC63ED87BF109C509C7987 - -0172DF732282C9D488669C358E3492260CBE91C95CFBC1E3FEA6C4B0EC129B45\ -F242ACE09F152FC6234E1BEE8AAB8CD56E8B486E1DCBA9C05407C2F95DA8D8F1\ -C0AF78EE2ED82A3A79EC0CB0709396EE62AADB84F8A4EE8A7CCCA3C1EE84E302\ -A09EA802204AFECF04097E67D0F8E8A9D2651126C0A598A37081E42D168B0AE8\ -A71951C524259E4E2054E535B779679BDADE566FE55700858618E626B4A0FAF8\ -95BCCE9011504A49E05FD56127EAE3D1F8917AFB548ECADABDA1020111FEC931\ -4C413498A360B08640549A22CB23C731ACE743252A8227A0D2689D4C60016066\ -78DFB921:\ -CB40837DAF4A882538464DEC0A999DA482B4AAE08708EA6D5D7FF461 - -3875B9240CF3E0A8B59C658540F26A701CF188496E2C2174788B126FD29402D6\ -A75453BA0635284D08835F40051A2A9683DC92AFB9383719191231170379BA6F\ -4ADC816FECBB0F9C446B785BF520796841E58878B73C58D3EBB097CE4761FDEA\ -BE15DE2F319DFBAF1742CDEB389559C788131A6793E193856661376C81CE9568\ -DA19AA6925B47FFD77A43C7A0E758C37D69254909FF0FBD415EF8EB937BCD49F\ -91468B49974C07DC819ABD67395DB0E05874FF83DDDAB895344ABD0E7111B2DF\ -9E58D76D85AD98106B36295826BE04D435615595605E4B4BB824B33C4AFEB5E7\ -BB0D19F909:\ -EAE911E66661DCD3472B458A48B74730468923C7ABCAC7F311F02463 - -747CC1A59FEFBA94A9C75BA866C30DC5C1CB0C0F8E9361D98484956DD5D1A40F\ -6184AFBE3DAC9F76028D1CAECCFBF69199C6CE2B4C092A3F4D2A56FE5A33A007\ -57F4D7DEE5DFB0524311A97AE0668A47971B95766E2F6DD48C3F57841F91F04A\ -00AD5EA70F2D479A2620DC5CD78EAAB3A3B011719B7E78D19DDF70D9423798AF\ -77517EBC55392FCD01FC600D8D466B9E7A7A85BF33F9CC5419E9BD874DDFD609\ -81150DDAF8D7FEBAA4374F0872A5628D318000311E2F5655365AD4D407C20E5C\ -04DF17A222E7DEEC79C5AB1116D8572F91CD06E1CCC7CED53736FC867FD49ECE\ -BE6BF8082E8A:\ -307D5A8BA5865A4D281ACB2F3C5EF16E3B11BCD8C0F82D22D47C2CC8 - -57AF971FCCAEC97435DC2EC9EF0429BCEDC6B647729EA168858A6E49AC1071E7\ -06F4A5A645CA14E8C7746D65511620682C906C8B86EC901F3DDED4167B3F00B0\ -6CBFAC6AEE3728051B3E5FF10B4F9ED8BD0B8DA94303C833755B3CA3AEDDF0B5\ -4BC8D6632138B5D25BAB03D17B3458A9D782108006F5BB7DE75B5C0BA854B423\ -D8BB801E701E99DC4FEAAD59BC1C7112453B04D33EA3635639FB802C73C2B71D\ -58A56BBD671B18FE34ED2E3DCA38827D63FDB1D4FB3285405004B2B3E26081A8\ -FF08CD6D2B08F8E7B7E90A2AB1ED7A41B1D0128522C2F8BFF56A7FE67969422C\ -E839A9D4608F03:\ -58666B325D81CBE6A4BBAD91720E2BA93C70EA114E7F77323C5BE486 - -04E16DEDC1227902BAAF332D3D08923601BDD64F573FAA1BB7201918CFE16B1E\ -10151DAE875DA0C0D63C59C3DD050C4C6A874011B018421AFC4623AB0381831B\ -2DA2A8BA42C96E4F70864AC44E106F94311051E74C77C1291BF5DB9539E69567\ -BF6A11CF6932BBBAD33F8946BF5814C066D851633D1A513510039B349939BFD4\ -2B858C21827C8FF05F1D09B1B0765DC78A135B5CA4DFBA0801BCADDFA175623C\ -8B647EACFB4444B85A44F73890607D06D507A4F8393658788669F6EF4DEB58D0\ -8C50CA0756D5E2F49D1A7AD73E0F0B3D3B5F090ACF622B1878C59133E4A848E0\ -5153592EA81C6FBF:\ -BC296FFD39381CF1C96228A9F380F41C871B8788C654ED9B384C17FE - -7C815C384EEE0F288ECE27CCED52A01603127B079C007378BC5D1E6C5E9E6D1C\ -735723ACBBD5801AC49854B2B569D4472D33F40BBB8882956245C366DC3582D7\ -1696A97A4E19557E41E54DEE482A14229005F93AFD2C4A7D8614D10A97A9DFA0\ -7F7CD946FA45263063DDD29DB8F9E34DB60DAA32684F0072EA2A9426ECEBFA52\ -39FB67F29C18CBAA2AF6ED4BF4283936823AC1790164FEC5457A9CBA7C767CA5\ -9392D94CAB7448F50EB34E9A93A80027471CE59736F099C886DEA1AB4CBA4D89\ -F5FC7AE2F21CCD27F611ECA4626B2D08DC22382E92C1EFB2F6AFDC8FDC3D2172\ -604F5035C46B8197D3:\ -0CCEAE713E5E39BCEFE7A2273004816FE005D5EDFB2A965CC9AC9948 - -E29D505158DBDD937D9E3D2145658EE6F5992A2FC790F4F608D9CDB44A091D5B\ -94B88E81FAC4FDF5C49442F13B911C55886469629551189EAFF62488F1A479B7\ -DB11A1560E198DDCCCCF50159093425FF7F1CB8D1D1246D0978764087D6BAC25\ -7026B090EFAE8CEC5F22B6F21C59ACE1AC7386F5B8837CA6A12B6FBF5534DD05\ -60EF05CA78104D3B943DDB220FEAEC89AA5E692A00F822A2AB9A2FE60350D75E\ -7BE16FF2526DC643872502D01F42F188ABED0A6E9A6F5FD0D1CE7D5755C9FFA6\ -6B0AF0B20BD806F08E06156690D81AC811778CA3DAC2C249B96002017FCE93E5\ -07E3B953ACF99964B847:\ -7997FDF30837D8B25E85FC01316E31B61EE814490DA002A04816D7CA - -D85588696F576E65ECA0155F395F0CFACD83F36A99111ED5768DF2D116D2121E\ -32357BA4F54EDE927F189F297D3A97FAD4E9A0F5B41D8D89DD7FE20156799C2B\ -7B6BF9C957BA0D6763F5C3BC5129747BBB53652B49290CFF1C87E2CDF2C4B95D\ -8AAEE09BC8FBFA6883E62D237885810491BFC101F1D8C636E3D0EDE838AD05C2\ -07A3DF4FAD76452979EB99F29AFAECEDD1C63B8D36CF378454A1BB67A741C77A\ -C6B6B3F95F4F02B64DABC15438613EA49750DF42EE90101F115AA9ABB9FF6432\ -4DDE9DABBB01054E1BD6B4BCDC7930A44C2300D87CA78C06924D0323AD7887E4\ -6C90E8C4D100ACD9EED21E:\ -9897B479871AC73DABBE6221E27BFA67278F2BB044E3D0726FCB2B81 - -3A12F8508B40C32C74492B66323375DCFE49184C78F73179F3314B79E63376B8\ -AC683F5A51F1534BD729B02B04D002F55CBD8E8FC9B5EC1EA6BBE6A0D0E74315\ -18E6BA45D124035F9D3DCE0A8BB7BF1430A9F657E0B4EA9F20EB20C786A58181\ -A1E20A96F1628F8728A13BDF7A4B4B32FC8AA7054CC4881AE7FA19AFA65C6C3E\ -E1B3ADE3192AF42054A8A911B8EC1826865D46D93F1E7C5E2B7813C92A506E53\ -886F3D4701BB93D2A681AD109C845904BB861AF8AF0646B6E399B38B614051D3\ -4F6842563A0F37EC00CB3D865FC5D746C4987DE2A65071100883A2A9C7A2BFE1\ -E2DD603D9EA24DC7C5FD06BE:\ -EAD2620FBC4BDFB14AEC8C7B9AA882BA3EB2AACC9A15D7D36DBA086D - -1861EDCE46FA5AD17E1FF1DEAE084DEC580F97D0A67885DFE834B9DFAC1AE076\ -742CE9E267512CA51F6DF5A455AF0C5FD6ABF94ACEA103A3370C354485A7846F\ -B84F3AC7C2904B5B2FBF227002CE512133BB7E1C4E50057BFD1E44DB33C7CDB9\ -69A99E284B184F50A14B068A1FC5009D9B298DBE92239572A7627AAC02ABE8F3\ -E3B473417F36D4D2505D16B7577F4526C9D94A270A2DFE450D06DA8F6FA95687\ -9A0A55CFE99E742EA555EA477BA3E9B44CCD508C375423611AF92E55345DC215\ -779B2D5119EBA49C71D49B9FE3F1569FA24E5CA3E332D042422A8B8158D3EC66\ -A80012976F31FFDF305F0C9C5E:\ -545E59812C7AEA1BD1CD48880D6650117DFD9E58A791DAC1072B19DA - -08D0FFDE3A6E4EF65608EA672E4830C12943D7187CCFF08F4941CFC13E545F3B\ -9C7AD5EEBBE2B01642B486CAF855C2C73F58C1E4E3391DA8E2D63D96E15FD849\ -53AE5C231911B00AD6050CD7AAFDAAC9B0F663AE6AAB45519D0F5391A541707D\ -479034E73A6AD805AE3598096AF078F1393301493D663DD71F83869CA27BA508\ -B7E91E81E128C1716DC3ACFE3084B2201E04CF8006617EECF1B640474A5D45CF\ -DE9F4D3EF92D6D055B909892194D8A8218DB6D8203A84261D200D71473D7488F\ -3427416B6896C137D455F231071CACBC86E0415AB88AEC841D96B7B8AF41E05B\ -B461A40645BF176601F1E760DE5F:\ -7C2FA00961BCF020B95A0ED7193EA3583340BBD37898EF6A464C1940 - -D782ABB72A5BE3392757BE02D3E45BE6E2099D6F000D042C8A543F50ED6EBC05\ -5A7F133B0DD8E9BC348536EDCAAE2E12EC18E8837DF7A1B3C87EC46D50C241DE\ -E820FD586197552DC20BEEA50F445A07A38F1768A39E2B2FF05DDDEDF751F1DE\ -F612D2E4D810DAA3A0CC904516F9A43AF660315385178A529E51F8AAE141808C\ -8BC5D7B60CAC26BB984AC1890D0436EF780426C547E94A7B08F01ACBFC4A3825\ -EAE04F520A9016F2FB8BF5165ED12736FC71E36A49A73614739EAA3EC834069B\ -1B40F1350C2B3AB885C02C640B9F7686ED5F99527E41CFCD796FE4C256C91731\ -86C226169FF257954EBDA81C0E5F99:\ -232DB22EB2C19109AFEFB71918EA2DAA7C0D76652E1884EA7A8AE646 - -5FCE8109A358570E40983E1184E541833BB9091E280F258CFB144387B05D190E\ -431CB19BAA67273BA0C58ABE91308E1844DCD0B3678BAA42F335F2FA05267A02\ -40B3C718A5942B3B3E3BFA98A55C25A1466E8D7A603722CB2BBF03AFA54CD769\ -A99F310735EE5A05DAE2C22D397BD95635F58C48A67F90E1B73AAFCD3F82117F\ -0166657838691005B18DA6F341D6E90FC1CDB352B30FAE45D348294E501B6325\ -2DE14740F2B85AE5299DDEC3172DE8B6D0BA219A20A23BB5E10FF434D39DB3F5\ -83305E9F5C039D98569E377B75A70AB837D1DF269B8A4B566F40BB91B577455F\ -D3C356C914FA06B9A7CE24C7317A172D:\ -DB85AF5CFCE746240E6D44E73CEF66A72CE5968284D35FFEF7FBFF6C - -6172F1971A6E1E4E6170AFBAD95D5FEC99BF69B24B674BC17DD78011615E502D\ -E6F56B86B1A71D3F4348087218AC7B7D09302993BE272E4A591968AEF18A1262\ -D665610D1070EE91CC8DA36E1F841A69A7A682C580E836941D21D909A3AFC1F0\ -B963E1CA5AB193E124A1A53DF1C587470E5881FB54DAE1B0D840F0C8F9D1B04C\ -645BA1041C7D8DBF22030A623AA15638B3D99A2C400FF76F3252079AF88D2B37\ -F35EE66C1AD7801A28D3D388AC450B97D5F0F79E4541755356B3B1A5696B023F\ -39AB7AB5F28DF4202936BC97393B93BC915CB159EA1BD7A0A414CB4B7A1AC3AF\ -68F50D79F0C9C7314E750F7D02FAA58BFA:\ -A1EB42FB0792361F0D6809A2E8DC062F09F2855B39BC2C4B7F54311E - -5668ECD99DFBE215C4118398AC9C9EAF1A1433FAB4CCDD3968064752B625EA94\ -4731F75D48A27D047D67547F14DD0FFAA55FA5E29F7AF0D161D85EAFC4F2029B\ -717C918EAB9D304543290BDBA7158B68020C0BA4E079BC95B5BC0FC044A992B9\ -4B4CCD3BD66D0EABB5DBBAB904D62E00752C4E3B0091D773BCF4C14B4377DA3E\ -FFF824B1CB2FA01B32D1E46C909E626ED2DAE920F4C7DBEB635BC754FACBD8D4\ -9BEBA3F23C1C41CCBFCD0EE0C114E69737F5597C0BF1D859F0C767E18002AE8E\ -39C26261FFDE2920D3D0BAF0E906138696CFE5B7E32B600F45DF3AAA39932F3A\ -7DF95B60FA8712A2271FCAF3911CE7B511B1:\ -1AF4A3AB9A07CF064C254D122CC7DE15E0F0D3CA3DFA50EA1C43A78D - -03D625488354DF30E3F875A68EDFCF340E8366A8E1AB67F9D5C5486A96829DFA\ -C0578289082B2A62117E1CF418B43B90E0ADC881FC6AE8105C888E9ECD21AEA1\ -C9AE1A4038DFD17378FED71D02AE492087D7CDCD98F746855227967CB1AB4714\ -261EE3BEAD3F4DB118329D3EBEF4BC48A875C19BA763966DA0EBEA800E01B2F5\ -0B00E9DD4CACA6DCB314D00184EF71EA2391D760C950710DB4A70F9212FFC548\ -61F9DC752CE18867B8AD0C48DF8466EF7231E7AC567F0EB55099E622EBB86CB2\ -37520190A61C66AD34F1F4E289CB3282AE3EAAC6152ED24D2C92BAE5A7658252\ -A53C49B7B02DFE54FDB2E90074B6CF310AC661:\ -C14D43525E18892C79142D887D2AD3992848B72CCC087F64F0F1D621 - -2EDC282FFB90B97118DD03AAA03B145F363905E3CBD2D50ECD692B37BF000185\ -C651D3E9726C690D3773EC1E48510E42B17742B0B0377E7DE6B8F55E00A8A4DB\ -4740CEE6DB0830529DD19617501DC1E9359AA3BCF147E0A76B3AB70C4984C13E\ -339E6806BB35E683AF8527093670859F3D8A0FC7D493BCBA6BB12B5F65E71E70\ -5CA5D6C948D66ED3D730B26DB395B3447737C26FAD089AA0AD0E306CB28BF0AC\ -F106F89AF3745F0EC72D534968CCA543CD2CA50C94B1456743254E358C1317C0\ -7A07BF2B0ECA438A709367FAFC89A57239028FC5FECFD53B8EF958EF10EE0608\ -B7F5CB9923AD97058EC067700CC746C127A61EE3:\ -116C0462D50D57F948015EC74BE9015707313712B45883C02FE84E1E - -90B28A6AA1FE533915BCB8E81ED6CACDC10962B7FF82474F845EEB86977600CF\ -70B07BA8E3796141EE340E3FCE842A38A50AFBE90301A3BDCC591F2E7D9DE53E\ -495525560B908C892439990A2CA2679C5539FFDF636777AD9C1CDEF809CDA9E8\ -DCDB451ABB9E9C17EFA4379ABD24B182BD981CAFC792640A183B61694301D04C\ -5B3EAAD694A6BD4CC06EF5DA8FA23B4FA2A64559C5A68397930079D250C51BCF\ -00E2B16A6C49171433B0AADFD80231276560B80458DD77089B7A1BBCC9E7E4B9\ -F881EACD6C92C4318348A13F4914EB27115A1CFC5D16D7FD94954C3532EFACA2\ -CAB025103B2D02C6FD71DA3A77F417D7932685888A:\ -96F7111176641F6373701BA594090079146D4220F30B5120C12498BA - -2969447D175490F2AA9BB055014DBEF2E6854C95F8D60950BFE8C0BE8DE254C2\ -6B2D31B9E4DE9C68C9ADF49E4EE9B1C2850967F29F5D08738483B417BB96B2A5\ -6F0C8ACA632B552059C59AAC3F61F7B45C966B75F1D9931FF4E596406378CEE9\ -1AAA726A3A84C33F37E9CDBE626B5745A0B06064A8A8D56E53AAF102D23DD9DF\ -0A3FDF7A638509A6761A33FA42FA8DDBD8E16159C93008B53765019C3F0E9F10\ -B144CE2AC57F5D7297F9C9949E4FF68B70D339F87501CE8550B772F32C6DA8AD\ -2CE2100A895D8B08FA1EEAD7C376B407709703C510B50F87E73E43F8E7348F87\ -C3832A547EF2BBE5799ABEDCF5E1F372EA809233F006:\ -9EDDAB2C9C60B122503C1C30EC6E74050EE13C7E103A05F9ED41D992 - -721645633A44A2C78B19024EAECF58575AB23C27190833C26875DC0F0D50B46A\ -EA9C343D82EA7D5B3E50EC700545C615DAEAEA64726A0F05607576DCD396D812\ -B03FB6551C641087856D050B10E6A4D5577B82A98AFB89CEE8594C9DC19E79FE\ -FF0382FCFD127F1B803A4B9946F4AC9A4378E1E6E041B1389A53E3450CD32D9D\ -2941B0CBABDB50DA8EA2513145164C3AB6BCBD251C448D2D4B087AC57A59C228\ -5D564F16DA4ED5E607ED979592146FFB0EF3F3DB308FB342DF5EB5924A48256F\ -C763141A278814C82D6D6348577545870AE3A83C7230AC02A1540FE1798F7EF0\ -9E335A865A2AE0949B21E4F748FB8A51F44750E213A8FB:\ -54CC87B9655180C0E1C6672350AE1952DDF51EE5D7E215569652AA2E - -6B860D39725A14B498BB714574B4D37CA787404768F64C648B1751B353AC92BA\ -C2C3A28EA909FDF0423336401A02E63EC24325300D823B6864BB701F9D7C7A1F\ -8EC9D0AE3584AA6DD62EA1997CD831B4BABD9A4DA50932D4EFDA745C61E41308\ -90E156AEE6113716DAF95764222A91187DB2EFFEA49D5D0596102D619BD26A61\ -6BBFDA8335505FBB0D90B4C180D1A2335B91538E1668F9F9642790B4E55F9CAB\ -0FE2BDD2935D001EE6419ABAB5457880D0DBFF20ED8758F4C20FE759EFB33141\ -CF0E892587FE8187E5FBC57786B7E8B089612C936DFC03D27EFBBE7C8673F160\ -6BD51D5FF386F4A7AB68EDF59F385EB1291F117BFE717399:\ -4629C97F9BA98698E0DDECA5E0A3B6DE210EA9E84BF942C2CCF4EC68 - -6A01830AF3889A25183244DECB508BD01253D5B508AB490D3124AFBF42626B2E\ -70894E9B562B288D0A2450CFACF14A0DDAE5C04716E5A0082C33981F6037D23D\ -5E045EE1EF2283FB8B6378A914C5D9441627A722C282FF452E25A7EA608D69CE\ -E4393A0725D17963D0342684F255496D8A18C2961145315130549311FC07F031\ -2FB78E6077334F87EAA873BEE8AA95698996EB21375EB2B4EF53C14401207DEB\ -4568398E5DD9A7CF97E8C9663E23334B46912F8344C19EFCF8C2BA6F04325F1A\ -27E062B62A58D0766FC6DB4D2C6A1928604B0175D872D16B7908EBC041761187\ -CC785526C2A3873FEAC3A642BB39F5351550AF9770C328AF7B:\ -F45034AA94C1A2686EB849EF4262F2F5BA9ACDD0E8EA32401E060B43 - -B3C5E74B69933C2533106C563B4CA20238F2B6E675E8681E34A389894785BDAD\ -E59652D4A73D80A5C85BD454FD1E9FFDAD1C3815F5038E9EF432AAC5C3C4FE84\ -0CC370CF86580A6011778BBEDAF511A51B56D1A2EB68394AA299E26DA9ADA6A2\ -F39B9FAFF7FBA457689B9C1A577B2A1E505FDF75C7A0A64B1DF81B3A356001BF\ -0DF4E02A1FC59F651C9D585EC6224BB279C6BEBA2966E8882D68376081B98746\ -8E7AED1EF90EBD090AE825795CDCA1B4F09A979C8DFC21A48D8A53CDBB26C4DB\ -547FC06EFE2F9850EDD2685A4661CB4911F165D4B63EF25B87D0A96D3DFF6AB0\ -758999AAD214D07BD4F133A6734FDE445FE474711B69A98F7E2B:\ -62153F592C49D3C0485F80073319049A510C730327940CD9D52F3698 - -83AF34279CCB5430FEBEC07A81950D30F4B66F484826AFEE7456F0071A51E1BB\ -C55570B5CC7EC6F9309C17BF5BEFDD7C6BA6E968CF218A2B34BD5CF927AB846E\ -38A40BBD81759E9E33381016A755F699DF35D660007B5EADF292FEEFB735207E\ -BF70B5BD17834F7BFA0E16CB219AD4AF524AB1EA37334AA66435E5D397FC0A06\ -5C411EBBCE32C240B90476D307CE802EC82C1C49BC1BEC48C0675EC2A6C6F3ED\ -3E5B741D13437095707C565E10D8A20B8C20468FF9514FCF31B4249CD82DCEE5\ -8C0A2AF538B291A87E3390D737191A07484A5D3F3FB8C8F15CE056E5E5F8FEBE\ -5E1FB59D6740980AA06CA8A0C20F5712B4CDE5D032E92AB89F0AE1:\ -ECDE4D6EB0CF28010B45D0D310E7D05F08B80AFC44B8A359BE7E1923 - -A7ED84749CCC56BB1DFBA57119D279D412B8A986886D810F067AF349E8749E9E\ -A746A60B03742636C464FC1EE233ACC52C1983914692B64309EDFDF29F1AB912\ -EC3E8DA074D3F1D231511F5756F0B6EEAD3E89A6A88FE330A10FACE267BFFBFC\ -3E3090C7FD9A850561F363AD75EA881E7244F80FF55802D5EF7A1A4E7B89FCFA\ -80F16DF54D1B056EE637E6964B9E0FFD15B6196BDD7DB270C56B47251485348E\ -49813B4EB9ED122A01B3EA45AD5E1A929DF61D5C0F3E77E1FDC356B63883A60E\ -9CBB9FC3E00C2F32DBD469659883F690C6772E335F617BC33F161D6F6984252E\ -E12E62B6000AC5231E0C9BC65BE223D8DFD94C5004A101AF9FD6C0FB:\ -3BFC5018CF15CB88007929924B3E014635EF135C91F9671B29BE8731 - -A6FE30DCFCDA1A329E82AB50E32B5F50EB25C873C5D2305860A835AECEE6264A\ -A36A47429922C4B8B3AFD00DA16035830EDB897831C4E7B00F2C23FC0B15FDC3\ -0D85FB70C30C431C638E1A25B51CAF1D7E8B050B7F89BFB30F59F0F20FECFF3D\ -639ABC4255B3868FC45DD81E47EB12AB40F2AAC735DF5D1DC1AD997CEFC4D836\ -B854CEE9AC02900036F3867FE0D84AFFF37BDE3308C2206C62C4743375094108\ -877C73B87B2546FE05EA137BEDFC06A2796274099A0D554DA8F7D7223A48CBF3\ -1B7DECAA1EBC8B145763E3673168C1B1B715C1CD99ECD3DDB238B06049885ECA\ -D9347C2436DFF32C771F34A38587A44A82C5D3D137A03CAA27E66C8FF6:\ -22715559AD15717722B1FA0583996090C79C3DF16CC1E6E0F6D3E898 - -83167FF53704C3AA19E9FB3303539759C46DD4091A52DDAE9AD86408B6933598\ -9E61414BC20AB4D01220E35241EFF5C9522B079FBA597674C8D716FE441E5661\ -10B6211531CECCF8FD06BC8E511D00785E57788ED9A1C5C73524F01830D2E114\ -8C92D0EDC97113E3B7B5CD3049627ABDB8B39DD4D6890E0EE91993F92B03354A\ -88F52251C546E64434D9C3D74544F23FB93E5A2D2F1FB15545B4E1367C97335B\ -0291944C8B730AD3D4789273FA44FB98D78A36C3C3764ABEEAC7C569C1E43A35\ -2E5B770C3504F87090DEE075A1C4C85C0C39CF421BDCC615F9EFF6CB4FE64680\ -04AECE5F30E1ECC6DB22AD9939BB2B0CCC96521DFBF4AE008B5B46BC006E:\ -2F36FF8AB7264F7A5766DE025018E19B5A64D90994B743B8FBFBDCCA - -3A3A819C48EFDE2AD914FBF00E18AB6BC4F14513AB27D0C178A188B61431E7F5\ -623CB66B23346775D386B50E982C493ADBBFC54B9A3CD383382336A1A0B2150A\ -15358F336D03AE18F666C7573D55C4FD181C29E6CCFDE63EA35F0ADF5885CFC0\ -A3D84A2B2E4DD24496DB789E663170CEF74798AA1BBCD4574EA0BBA40489D764\ -B2F83AADC66B148B4A0CD95246C127D5871C4F11418690A5DDF01246A0C80A43\ -C70088B6183639DCFDA4125BD113A8F49EE23ED306FAAC576C3FB0C1E256671D\ -817FC2534A52F5B439F72E424DE376F4C565CCA82307DD9EF76DA5B7C4EB7E08\ -5172E328807C02D011FFBF33785378D79DC266F6A5BE6BB0E4A92ECEEBAEB1:\ -5AF56987EA9CF11FCD0EAC5EBC14B037365E9B1123E31CB2DFC7929A - -724627916C50338643E6996F07877EAFD96BDF01DA7E991D4155B9BE1295EA7D\ -21C9391F4C4A41C75F77E5D27389253393725F1427F57914B273AB862B9E31DA\ -BCE506E558720520D33352D119F699E784F9E548FF91BC35CA14704212870982\ -0D69A8287EA3257857615EB0321270E94B84F446942765CE882B191FAEE7E1C8\ -7E0F0BD4E0CD8A927703524B559B769CA4ECE1F6DBF313FDCF67C572EC4185C1\ -A88E86EC11B6454B371980020F19633B6B95BD280E4FBCB0161E1A82470320CE\ -C6ECFA25AC73D09F1536F286D3F9DACAFB2CD1D0CE72D64D197F5C7520B3CCB2\ -FD74EB72664BA93853EF41EABF52F015DD591500D018DD162815CC993595B195:\ -E90F81AE86D72DCC2190AF545A345150A629EE7DC7237C1958CFCDBC - -3139840B8AD4BCD39092916FD9D01798FF5AA1E48F34702C72DFE74B12E98A11\ -4E318CDD2D47A9C320FFF908A8DBC2A5B1D87267C8E983829861A567558B37B2\ -92D4575E200DE9F1DE45755FAFF9EFAE34964E4336C259F1E66599A7C904EC02\ -539F1A8EAB8706E0B4F48F72FEC2794909EE4A7B092D6061C74481C9E21B9332\ -DC7C6E482D7F9CC3210B38A6F88F7918C2D8C55E64A428CE2B68FD07AB572A8B\ -0A2388664F99489F04EB54DF1376271810E0E7BCE396F52807710E0DEA94EB49\ -F4B367271260C3456B9818FC7A72234E6BF2205FF6A36546205015EBD7D8C252\ -7AA430F58E0E8AC97A7B6B793CD403D517D66295F37A34D0B7D2FA7BC345AC04\ -CA1E266480DEEC39F5C88641C9DC0BD1358158FDECDD96685BBBB5C1FE5EA89D\ -2CB4A9D5D12BB8C893281FF38E87D6B4841F0650092D447E013F20EA934E18:\ -C1C80B60ECBE67B7A49940DF5E3EE7F31C1304844D9A333A172983FF - -023D91AC532601C7CA3942D62827566D9268BB4276FCAA1AE927693A69616526\ -76DBA09219A01B3D5ADFA12547A946E78F3C5C62DD880B02D2EEEB4B96636529\ -C6B01120B23EFC49CCFB36B8497CD19767B53710A636683BC5E0E5C9534CFC00\ -4691E87D1BEE39B86B953572927BD668620EAB87836D9F3F8F28ACE41150776C\ -0BC6657178EBF297FE1F7214EDD9F215FFB491B681B06AC2032D35E6FDF832A8\ -B06056DA70D77F1E9B4D26AE712D8523C86F79250718405F91B0A87C725F2D3F\ -52088965F887D8CF87206DFDE422386E58EDDA34DDE2783B3049B86917B46280\ -27A05D4D1F429D2B49C4B1C898DDDCB82F343E145596DE11A54182F39F4718EC\ -AE8F506BD9739F5CD5D5686D7FEFC834514CD1B2C91C33B381B45E2E5335D7A8\ -720A8F17AFC8C2CB2BD88B14AA2DCA099B00AA575D0A0CCF099CDEC4870FB710\ -D2680E60C48BFC291FF0CEF2EEBF9B36902E9FBA8C889BF6B4B9F5CE53A19B0D\ -9399CD19D61BD08C0C2EC25E099959848E6A550CA7137B63F43138D7B651:\ -230620D710CF3AB835059E1AA170735DB17CAE74B345765FF02E8D89 - -20FF454369A5D05B81A78F3DB05819FEA9B08C2384F75CB0AB6AA115DD690DA3\ -131874A1CA8F708AD1519EA952C1E249CB540D196392C79E87755424FEE7C890\ -808C562722359EEA52E8A12FBBB969DD7961D2BA52037493755A5FA04F0D50A1\ -AA26C9B44148C0D3B94D1C4A59A31ACA15AE8BD44ACB7833D8E91C4B86FA3135\ -A423387B8151B4133ED23F6D7187B50EC2204AD901AD74D396E44274E0ECAFAA\ -E17B3B9085E22260B35CA53B15CC52ABBA758AF6798FBD04ECEECED648F3AF4F\ -DB3DED7557A9A5CFB7382612A8A8F3F45947D1A29CE29072928EC193CA25D510\ -71BD5E1984ECF402F306EA762F0F25282F5296D997658BE3F983696FFA6D095C\ -6369B4DAF79E9A5D3136229128F8EB63C12B9E9FA78AFF7A3E9E19A62022493C\ -D136DEFBB5BB7BA1B938F367FD2F63EB5CA76C0B0FF21B9E36C3F07230CF3C30\ -74E5DA587040A76975D7E39F4494ACE5486FCBF380AB7558C4FE89656335B82E\ -4DB8659509EAB46A19613126E594042732DD4C411F41AA8CDEAC71C0FB40A94E\ -6DA558C05E77B6182806F26D9AFDF3DA00C69419222C8186A6EFAD600B410E6C\ -E2F2A797E49DC1F135319801FA6F396B06F975E2A190A023E474B618E7:\ -34A58DDFC5C2222281FA73EB34BFB5E152272CC3AC7FE97AC58C08B0 - -4FBDC596508D24A2A0010E140980B809FB9C6D55EC75125891DD985D37665BD8\ -0F9BEB6A50207588ABF3CEEE8C77CD8A5AD48A9E0AA074ED388738362496D2FB\ -2C87543BB3349EA64997CE3E7B424EA92D122F57DBB0855A803058437FE08AFB\ -0C8B5E7179B9044BBF4D81A7163B3139E30888B536B0F957EFF99A7162F4CA5A\ -A756A4A982DFADBF31EF255083C4B5C6C1B99A107D7D3AFFFDB89147C2CC4C9A\ -2643F478E5E2D393AEA37B4C7CB4B5E97DADCF16B6B50AAE0F3B549ECE47746D\ -B6CE6F67DD4406CD4E75595D5103D13F9DFA79372924D328F8DD1FCBEB5A8E2E\ -8BF4C76DE08E3FC46AA021F989C49329C7ACAC5A688556D7BCBCB2A5D4BE69D3\ -284E9C40EC4838EE8592120CE20A0B635ECADAA84FD5690509F54F77E35A417C\ -584648BC9839B974E07BFAB0038E90295D0B13902530A830D1C2BDD53F1F9C9F\ -AED43CA4EED0A8DD761BC7EDBDDA28A287C60CD42AF5F9C758E5C7250231C09A\ -582563689AFC65E2B79A7A2B68200667752E9101746F03184E2399E4ED8835CB\ -8E9AE90E296AF220AE234259FE0BD0BCC60F7A4A5FF3F70C5ED4DE9C8C519A10\ -E962F673C82C5E9351786A8A3BFD570031857BD4C87F4FCA31ED4D50E14F2107\ -DA02CB5058700B74EA241A8B41D78461658F1B2B90BFD84A4C2C9D6543861AB3\ -C56451757DCFB9BA60333488DBDD02D601B41AAE317CA7474EB6E6DD:\ -0790649A6F6ECC4DCACAFAFB6AEFBF6C6F7EC883C72671DB211CD163 - -D1890B4704E169C28E44DDF62A1091450404910539FC2DAEB26E8ACF4533B024\ -E5215C2D02820DD8FB2CFC1743955CBACFF0F8F35DFBB5E3F942F36247F68211\ -D518F3F601AAE12A1CDC000BAB43D4C973F287E80741DD1FCF6C34F2E6B4B6C3\ -13D01C4FF3CBF9166F26946F18EF2D58271BA9233F09A6B77BFD4F48B36EB3D7\ -3D1133C4F842A7DC3907F680B0B773242C11E3DD973A44327EA7CEA9C0F8E07D\ -682B6651E506B587559FE01ED721000BAF570A16FBDD9EA29FA3DEF4BE912058\ -321A8B720C5C102E48A6E7ED6F8838D400DD57D06EEDBCD15323F86D855C94B2\ -1E41B14EC9E1BBC8019211FD88138C91F9ABBD9BB3914D26C1DDC21673D2D512\ -63B39D66E741D924CF2B192C5D2C1A140126A3D64A2C77BE6C2C6EBE8599978A\ -E90BD36CBB9AF64D078910C4094AB3BF399C34F2AB8EF843E9FE1BF88BF443BA\ -21E4377E5F49C07FD9653B526E14562237F02D11B904BCA6AC31AE721A43E3C4\ -910A24AF6F4D80C031C109FC0FE49F15274BCA92BDA04C3B4196C192F6CE489C\ -63A806ACFC895AB52CAD657C1783B528E12D0ED856E1F8FC91F2AAFDFA0A9249\ -8D68530772EE73B359FCF1418D1096C46B34DCF90E5B468BBB2970BECBD70089\ -CFB039D64CC50FFF5EEF26384D34F24515A6558B06A1FDD88F1050C5BD78CC6E\ -D83D4C2B0E882AEBCF84AFB0430D0BF09F2FB42B8B4589158093A7709AAE75A7\ -90910E211EE1333FFB6FD80778DA3BF73858978E9DD647978841B18001DBAAEA\ -43CA0C0A03DBB9BCF30CE76A6F4B2CF2A9B6531B3E4051E7E05090CD421BC66C\ -4731E7122AD129FC42DEDC83BB460E3F889992FBD3CA072686E56B72C720FBC9\ -8D723EF7F247286F77CCDDC728738E941B1A74D4F16671C21FDD5643A115DDBC\ -B88EE7EC67EA66FD2BCE718DF6E085D4B5FC71A72696636A8F7B3A68AFA51A89\ -6771FAAA7F1F827430AC5E8089DBC0D4175E1B22A057BC5F1724EADC1A41E78F\ -A3ACAA8B97E5F2E19EF9D59AE12B04E7F0E8A621E098A66910E2A5ED2102B824\ -CD3EA044A854F1CD0B33E61E7F737414B2953549F25DD34D19AA1981DE7CD564\ -9FF6C6364A4F25312EF62395A747AB88AAD722C05AEC40DEEA8EEE5E779EF458\ -A68840BC6BD5D29AD40F98B3AE010B6213372ABB7BB8B8:\ -97495BFEDAF1CAB18E85190B374729F5543FA3F1CD88438156F01A0C - -4FA3DF1DEA75AD4B9C379206A95FED930000482E5B683FD2B17DC8E7D5C4BC1B\ -73186CCC13C9FF2DD09FC1D4F68034D120E84CA73A00B71A3B46D1EFC6FF88CF\ -2EDA65810B098CC5E651D9CF064E87076D5A871849F3B405D3D58EF5B1F10520\ -A9FB4FC84A81A87B13DBFBF9D8674943E28C257E46D8AD7BE1785F1DC7C9B1BD\ -574AD1DDA48F0255C853D2490BD3D63DA22A8369CFD02594999A2EF443308FB8\ -298266A11EFA177102C75DC674E89FC9DCC1A0D3C863BC26141102175D2678EB\ -6E13D90BBD9A5EB89AE8C0CB47D7F340D3D32042A2762BC9BF2B40EB40E87FB4\ -2610FE7E357051F01494704FBFF73321B47301A0799B7EE3FE5E62200F397A61\ -ED4509A62F7106ED0EFB0ABD6AE9E4A1FE9B02C092DCDC75015CF602F3B9A898\ -8B609E6C0D1C5C3E219FF57875C2EF01615F89447EA602DFC94EEC17A398C014\ -BD346691FE209A002771DC8164422CD166AFB457A8B3071282178A3EBD201D9B\ -07B27E711E7EE7D33AA5210ED4E4E92486775D14A6CED092E34A7AC826709399\ -48FEC149F9C018FCAAD3FC597D315713F44FC5E1725F448ECAED40E8D841BD02\ -F1E81C019B08F99412E360C0BD378391C67D964B47F50C26F0A483ED66402361\ -6B0FC9AFE43620DBE9CCFE070EF295C049EAC754C2123130C6B2C0232F6403AA\ -7F0DC35A5999BF95D34AD612234C6289277ADB60E4F72EC2DF570F05395B3BE8\ -A0A3C78B732821AA08927C524E15D65F66A3DB8C1C96FB70BC0686AAC310051F\ -469FC5EF880C0F66947C1C328F97684EA24CBE63BAED8D114F40507C2901034E\ -6AB3893F366D53F1CFCA309309218CABCECA4722FA9CCBC7249B87C12FF8397F\ -40487EB00082E7F551D27E301C3BC7B5389F7042534BF7E692DFEA4DA24F7C34\ -B8D2FF145F54B517FC97134EC5AC2CB925C508D7A6BD01FE7B764648274972BF\ -08560D30802E0EB7EDCC57AF4797BBF92E8688268606B0F1BC901FCC22136281\ -665EC16393FA9601C4FBDB18CD1D1EE382BC07973903E91FFA87399D1141D49F\ -4F0C064ACF3AC9897891DF10BCA0116F2C3FEF180FE6A8E937C478F2EF293AE9\ -186DCB1F76B6E48101DF64E57EA7C64C5C0025E221C8F5CBA5CC92D9CEC62814\ -0996B26D17F439B780F59A999301122F82D0495F8AB5AE1EA5790F45E992DFE0\ -0D5F82A7FF1354AEFDCEFC0D2D1731D22FA2B75AFD4FDA25AB194055FA962838\ -1055247C8C7587D22E73C60136C4282452D47AE03AA035FEBC26FCCD42A1CB79\ -CF866DB6418A49FD8261E877DDBB839CC39514DDB87A8A40D795532626FEA4A4\ -C35D13E028F9ED1BC09B06BE999B8DDD2258AA0596BCBBF72AF67E10BEDD58D5\ -99B8D577A583D676BF5561F80CE5E9528729A92DF578FE75DBC70474B75747A8\ -D55DE70E57BDD62D4344DC2115ED4DD62F1FC98BFA1E7421FC0700025C46D0ED\ -1BEF35C3B778563211B9FA9E8BA4BBCBF01C2FB626AB7EF325CE9F468DF2CACD\ -B178D36557CD85D542C067C289E926C1EA2F20ABD329E984168BB6DEF1DDCCF2\ -14DCB6A53AFD462F0E7E7A19E8C88F049244125A6D7DD41E58BC9B2FF7FA2478\ -DF76AF73090CB1AB59E388BA20E2C297C967737A1AF61793B68ECD7439444C48\ -E28E2D09C48FADA5E0D1D15E5B340A52F8B3B854CCA479F0A598445E14F53B3B\ -A36891050C79673DF3E2B5825C955A29E5C9A22F3991D0AA785718CFEA1D2385\ -F8E47E4A75ACBC7988D0558D541D71C4E6C5F1CB15B60CEA0C34A67BBCE105D7\ -A896025E0254DE7D7AF724C9027D44B8642192A08AB8E1EF3046DDA6014DF7F4\ -C9E63C635E48AB2E70B640D480998EC9357E665F99D76FE5529EF23C1BDFE017\ -C3A66CD4EB2DDB42EF85EA0CD65534:\ -6297DABDC66A68A28E2F32FC95E5864035001CCB7A0DCF592467D415 - -523DE8B1F4CBB65E81FF0B6CCD6EB8EF0A0F0A691ACAF4A77F25ACD2D66AD4B3\ -EFD25BE70308853C094412A518A32020E3020A9F6AB32F0CD60EC0D7A194917D\ -6C457B168A54A4B46F7B0D0C71BD61CD202F4C718776A701E0770B0EFA054187\ -70F98E4E79CD066366FB3300E8BE359A98B82B764BC2FBBF59C7E8F94A157B01\ -C6C7577B1428138CD422BC47330F8ED99F4C0AAB0D984287445539839389EE08\ -D6345108AF26ADED0EC1D7BE774CFB8C5205DFE07CF6CAF8C1AFE37C7A2E4FE6\ -013B93EB2463DE4E0971C7178D6A76B16A0E8960C984CE8BBE71B3B466EDF044\ -5B835F09414D01F14C7B6167FF78FF118127BBD5F812C27FACD57B3B120E2BCF\ -E87315C7A92B82EF5D50CA14A7174D1BEA7E056523E055A6AE42EA3765094E55\ -44E5ED003C989C2F98F38A17E3DDA74DBAF9C669A319638A2698B0E4A611480D\ -8AD3CF016792ECD1034925F42B9811A7214D623D047ABCA31997DDEB03275F80\ -DD21F40DDC80616E7AD3D481E8EBC0A1A6A398E16A78369215541ED10B75671A\ -DEB1AAE6E11142A1CF665FC1B7332DFBB0E10C21A2B48F78E57319AC9C58DFA8\ -B1C2548E2979EF1ACCFEB215AFCD6C2C1B46FE97DD491758378330EFFC728366\ -1D2CB84FA05281E9E517408508D24D042E7B9BCD34DB87CE972E4CBCDB98615F\ -B93093369DFEDC782F44BCD03E81CF93051318B2401FF29F753A264BDA65AF19\ -9E3FCBB8B5D39C838A67D6C7A3DB046DC56C323DDBB5340CBC229E47CFF8C9D2\ -9B7A49AC0EC8C1440AE498C7D150EF91C29BEA7DF3EFCC2871A13A1D72D139CB\ -4603D9FFFE85F6DDD544850EF63C3944FB35DBC00D4308CEAA6394B6E23F650D\ -323F8F7EF50DDB68F1486EABF989BF44451F620EC9485C0B52D1415D3C909A2C\ -FBE9D77DB19D069D33BAEE4D77292E63FCBF65C1EBA24BFFDDEFE95211EF0AAF\ -8ABFDA9F94445E582976F986F5382CB669506AF2B4A5A0C43000A3C72C5CA4AA\ -CDC9D3D39FC5C492A393B6C341B86DACBBF6BA8B465100CC683EDB2D9B9F83ED\ -F9C6A32645F51CC79ADC22A52A007BAACA618BE35E356D1FD1CFBDA73F1ED092\ -53039DEF609450FD2D5943B9CD49CBD52A318EE3510D7CF3FD8FB388AC6CB9C6\ -EEFEF3D3CAD8501B91CC04A888D33E16D6A4C9666F5F5F3B257193F2B46DEDDE\ -11842909D8C48ADE57775B0B272E2DC9CEF1A083EB2CE58F4D1F211922FD6ADE\ -D1B82FE6F5B11251CD396E5A3666ED9626036E4E356231C146BBA0A91AFD3648\ -EB7BFE0B9C14F15AF2F92309826F468945CAD0AC422DE3D6A773B76178422107\ -CE0270E7F580B5CCEBA82CA0184AAFA8341141E65E39859885768FBC5CE63B96\ -5A0604B659E71D9DA2C7A43646088D8071D76926163AAFC69E25355BB0A222B7\ -B2DA9F0A20C021ADC462E905A9C3BF31C16D87FBEC3F014F3957A720F1432E17\ -41553092052FB58A198640479ABCAA51B104CC93E2636E1460643EA812BD44E8\ -19C2166EB6B349BA5BDEBAD59078910B5C22A56F004B8D9E4B1224D8D204B48A\ -BE7355548A402736C5CB110F3A1476ED631FF168F4F3EFD89B38DE4751536548\ -647523D334FAD7CC2D142973F2DB3C1FE08FC5CF83F9F2BD2DAA524B37864816\ -AF29EE05951FA09D1C51D9D14EE4F72FD7BBF18B1A724FF5A0958A063947C430\ -142AD2356E4400AAECA442E163372A8F1CD36E2DB988E7781165E5D4E7074ACE\ -40858E8370E883694AF09977704347FB735C8717C42BC4EEEB2AAA50DFE637C6\ -40909CE379BFB9E2608F88751377038D1669F248178AD580A908D7A1B8DCC7E5\ -3E01801F1E485B5893F103F03E0F53B2B1440BE95644D85AA7F6EB7EDFBB4665\ -2196695EA23C08573397B111FF909025E20C5201293B4D223BF7AA01DE7CB28B\ -94714370434B9588097E2401B62C7A0DEF1FBF89809E810749FD3CE9EC3C07CE\ -4BF4C43DC966429B2BEB4D711FC6C448A12097B36F1E6817EAF4937A983F85D9\ -CF3E62CC1B2AC6AE1EC9EAA8CD8EE2C3322239CFE5DB3D4E8786282E630A7D25\ -9C2FEFECA03031C960A66A71E436A3ED6F2F3CFAB4BD77C660D14205ABF606FE\ -561A346F7D849B69475AC9F6822D80B9A2E56D5D495E4B309B0EA963C9FC5C7E\ -F94B217EE5337989AFBC7107D233A8B362AC27C4F69DF9E191CD65AE97D6EB9E\ -5484EB6F10349575E4CAE51452380151F902415AC9CF42C824EB23C9541D2DA1\ -C26DB85F53CDAFB06A12B8393CD580A8E494EDB6710C720DCAE30832967E33E6\ -303A92B1DF0841D7724284FFD2E00B95C6D623B168D21AC1BD3C675EDA33182A\ -2C22370998DE1E5EB905372CC6EF32D5B765F5C94870DF4842D011603BE4CDB1\ -C227E41EB2F2E8542CD325884FEDC9C5C7BB07A92D20D64B836215C59F162A3D\ -A8BB67D6FC13FEF97CAB6ECB8A29E431A6519A6261C4521CCB90E6E609869E6F\ -E398404AE047F64EC4263566DEFEE66329DD40AC985EB8A08D26529A544891B6\ -F57CC235C63C09057AB6B6ED720EF41A3C9AE65768B43F6DCF4962A103DD93C2\ -13171DC2C9194E43265C689B49331450281A3FEBC618D1AA4D65A135137051FD\ -46B568CE294C89:\ -2C700B4059916AF3F47D9017F5725F42B0D51895331F090048C276A0 - -F5080D4C59E804BF8F34B334CABBCC7D32011BDE3677F4B9069416AC204114CD\ -9DA7A0ED0F4B4D8344416336EEC15553EF526B6DEC267B1242657DD0B508AF81\ -FECF9CFF9C82A6A7A9539814DD7E097615EF15373836B5D2F765CC8D5F82E904\ -49F13AA741D5EE2FE63898E55ACD85116846807606FE1E2E29F98F9940B067D0\ -D1DF01F080211B2EE4B0A30803782A7BC2EAFDC5EBDBA91EB05F7D7DC8E34BF6\ -D44FEC05824F53418F235FB64E899EE147BCB403C8855E94AF378D182D79C3EA\ -F977CB4E9D4A16D990A6C388CEB567B97785E6F2BC6745102B99AE765E960B6B\ -32BAF01E2379CD6ECB74D3E1A56552F5976DFE5C742BC92BE596CA742FFC3D0F\ -A032AC29F9F7C1A5C43BCCA62DF7D9DE35D0C7C179DB2E1AA255CEDCCA55064C\ -2049FEE1AF2CE5EF696ED4BC46B7C55BDD51F2D44C8713FB2475C0B85246AC01\ -03CC3863B7EB026AE076A600313F6FB40A4DF62A2AF81B7E917951EA870ECB31\ -B3401928B5046D9A1E62D14B30FDEBAF262868517318FE17EC3C0D52524F4412\ -0ED8ED3BA70C643300CD0BC70DA72C964A88F52C3A91EC20BFEB5CAEFCD4D9C7\ -685D8407476B5F34676C5EBD1E88A6CFF1C625322F8CD59B9ED60CEFB21F9491\ -B95E72791F7AC7EAA3C16159FE9DF7A989ADD6C2282C47585E11397EDA9F47DF\ -2B40166E03BCDD6186B46C6835118268DDBEF19A28BBADE1BDE0228FFD7E8B3C\ -3C598D89E24B8CDEE79C940254DE26CC6814BA2722E42F7571600B7325E1FF30\ -0251D52A895B8CCBD049B2953B8D231445F68F7C26EC25A4B8695C8AC116F736\ -BE939EDD762C9B4743E463C9B9B2F88E0BC0CE78781CDDC3BCA825ACD463C7CA\ -C2AA6C430BBE820EA94AF9A40B1B5C006E9641A2FFA6E427379E1AD49C81B983\ -20B3431FF0030DC683D61026438BC6A6D34B2C73704D9F62EAEB13ABB3E4B056\ -2B4E0482CD6B2D7AEBC0367EA29A88F4A76F3D76FA1197E1DCA92C8216C84C1A\ -F9B8C78C9E3A7799A4A79A783033B0F5547E8E75E69CF3615AB04EF989FE1A46\ -3B1672C571D50AB56972896E8A50C242F22C7F6E27CA4CA793F627E79608680F\ -5421B28BDD2589F05E65430DF774EE873FCD1234064F7A33CF5A1FA4E368137F\ -F9C1597F1FA0FA36493F20538077669EADFD3B06F788C912C715FB5D334DB6BE\ -D133A8FDC40F5496E66AD63881F0BA3727416715865253DC5290327B515BF68D\ -A188DD5B4B0EAC7CA712CAFA8FCAE0C5503FE58A219182F1C30DA6D0C19CFEE8\ -97B7D837C97996A35F4CA8CF0537A01D17E7DE0CC9C129E4DA0ADAF1FDA85030\ -DF9127BE628263B0624F372C47C3AC87EB945A57F5C732BEEE81A74030017989\ -92F3DC944114FF3D54C4666AC5AC8C98D0D5596CBDEB420665F5EDAAE747D54C\ -F7EDD37B162E372249D135938CF17D174D12D88279CB4C32BD6F018C766DA698\ -3D4EA51D6BD8FF0A9B34E9A93BBDA70CF1B4B867D60A74811FD98D52FAA559B5\ -2C755CB70A76C94BD19654CAE7017CCD70222BF08C5D7AD1F5E4E6344FDB3ABE\ -703452C29A696F39F9826ED8BC510A4A148E5BF8A5DBE6B82D7220164F08011C\ -05AC5159D52CE9D45D758B645BBB248C2D341DBEFA1F8602C5D458A64F38F3B0\ -4DB39089807B6A10E1BB52770B92CE72E2D3BB0C2241CDED35054B84558D1CC0\ -99EF7B2296951951D5B6A22F93BF962AC5EF8FB55EC6CC2B316428EDF12078ED\ -1B66D525D022819CBD489E1BEDB02FFBD507D55F9B5D4E22F6396EA233453754\ -688D20151A09C70044B8A5A9AC033C3C3B847AD833D5C05B33407666EE82F958\ -1DF9034EE15A9CA67D52F1D9B634B84C1B8BA9E515F1F060A5AC5CBAE2DE75F9\ -4E112F7198E239DF08D3103F065627438995026DF511C6E5BFDEEE5667D511D4\ -181850C7C5D179107C1B86D24D5532A88A4149A2810DCAE73731B0E1247281A6\ -FD31613DF6891B4C17B7A6A9AD9B77468254B93F85958AA0F01CEFC10B25169D\ -C46E035D3F24557B4BF0E7D60174219108D916FFDC55E25BFFD9809EFD058E12\ -C14F39C69D8FB73D3EC6458F47F2F8DB901BA76C86550B11B54D0641D4DB3EB0\ -00057DD00F2E511FB7A47E959A4402A3AC5462234B40B184020FCF7A0396C4D0\ -0A987C8741A4537BC17102A5C42AFEAB9F71EA66ED4CBC7B5EE682FF04F56F4B\ -A1EA0BB326C4089930F9E3F3FFA3E06637CCE32113881A06CC3A13837448145C\ -2BD01307A580FDBC385D8F46FB92FFEDBC8918D269DD1871164D4B3E2023441E\ -C8B99C82A5F09821CDDF6B38C9ACC3BF3A38D5628016159588C33EAA29D9463A\ -537C000A16AD8C177DC4CF716E625F46FC4CA8C19FBD8EF320F1D680639195C8\ -B195B0A02738E0665F4190D6287E589CD6DD45B9E8CC23B08E1681BFC6F66B88\ -DE6B091E825EA4BBFBD697E10BC407570AE4F2A3EBE569554639C2B8E051656C\ -C30C837F5A92260EAD1D552B45801B6D28134166796C87F900225CFDC3CC49D7\ -2DFBC18D8D95B1E160ED3CAFD5C3467D48AFF87402CBCB1E1420E3FCB588AA19\ -C8F42753B59DB6FB6A9FDBA127CA806DBA7DD97F2488FC2E438EEF57A4CC85B8\ -8DCFDE76AE1FF61225A1CA8BF4A14F729950322EA681B16D6492902506702DC8\ -F348E4D3AE7FB55FAC1231FDE82091B34F1791B6AE37587B10325F6FF5E23B85\ -5845B86EAE90785B9D10D90A16644D01BB626F343B908A9591F4069B21822CA4\ -ECF985C1E710475F33DF9AF4764CFB0FFE649063775338F15BEA7CFF29F16467\ -8160960A80ED148C9B7FAA58E9139911D3DD9536F69646F718F083DC9029D629\ -4FC4C607688AA75AF350AC2C0B001A157D023D73D86ED8133809FCB9592D1208\ -9CBD7A1BB6BBA882FE227C09A53FF088907CB4BC2FB4B7F62D41D3D397C4FE0A\ -D12BB3964370E21712951C679814D506E738C0201E42181D231136A435AE0397\ -B61CCBC5E8BBEBF8EA77C8BC48BD6211F29248F9D498D818E2B544D28A5E60BA\ -727F32EF4BA2707962230C900076FB764D0ED5CE078C9DB14DE894BBB836C6DE\ -9E83202AE89F9A8D8CB0341E1C81B5FA8B16731B8E231E969C0F1EF95336D4E7\ -3EAD6DA23DE3AD1EB608ACCE4D4D93996DD76EC1F5F2C576F6B3B76E07BD8A81\ -0FF5D88B00FFE48C42700B61CC499336E7FB57AD72FF44FC631C7222C9A3D1AB\ -F6E77B5ED7FE2F7228FED6C849BF7142C4103989A80F7C15642AE61650CDCA7E\ -854EB25E9E72F4C3E3768E6CCC8BFD556B56D3507EDDE9E5C331DDEA75568B07\ -813D20E8F4C9547838ED28448F2E67158ACF0C00B131473847816C5E2DC215:\ -B4978F5DE02905355D9D40FA09E6F8A297CA546AC8382CF10152B2B3 - -08944CB473B828B118A31986DB67FC757F238182E790553404B792AA4F0095A6\ -A83291E287CDD16521A3AE8C48F56FBC909DFCCFAA7BCC570C2159F26592DCD6\ -B15BC4DD55CC05595AC634B2C3DE15360B0F07A03B5957BC9333CC5097919399\ -DD9973ACE15E55940178C4C96BB5E0A0A10BAE175769548EBCE11E0D7D9DB296\ -47F197D4B87F7039F5D4E59E016531DBEBF55A797AC9A6835032CDF34240A7EE\ -7423E89C09124829CAFC5F89431C8AFC54FD979E50D48A82B47A53523C84B600\ -4DAA323EFB708203E5388A6A5110C6CE2E341048A65FDEADEB3837A03420F9FA\ -DDC3F02A544F1E46D96B07C90C7971A7040A179E8198E90AA019268E00367120\ -D5F3D98A5CCE82C885E77144B1AAD66EE682847776B04F01F501DCBEFE390308\ -0A8058B3B8F1D823D917ECF31FC2D5B0795BF95A55C7093ECA7C801DD0BD0DBD\ -BEDE7D56513128B29FC0B4D25A6240B24C99E017BDFF7ACAFC8F8DE9FAF5A294\ -4384AECE82BEA04DCCC6D51FC6E6F27AA38F131B7959B13681A09B311D242E62\ -22A1CE5687DE5C080508B1DB16B6F8290D33A3CC0D0138AC61FD9093825E9D37\ -52889E9F20DB9F80F92750EAC88B38AC81C0016D40371EAB4A87E845E91446B0\ -A07081B84F559CDB95340CB020AF22AEA1BFF2FDA12F7A42973FF163A1C6F33D\ -B8B8214AE27ABDF1C54F5B03E29310FA210125E1296E8AF93A2996DBAEFBADD4\ -C51C2C3B8A3E2BC9FE060C42BA32768F6992A99599206CD2291CCC5BBD50856F\ -7F8D2D0AE1EFB5892C15A799B77482DE4553736B162ABB06631F1688F6746E7D\ -7A37EE7EF24E6CC901175F04960C01990178F81E957E941DEAAC8846B3704E24\ -204F43DDB0765C433F3F7D4D201459CD65682B7DDF3D47E95CDB31B96A4CB229\ -07F08BA6E92A4A07703B2DCF150F922C4B7CF181380303FB72547847305999C3\ -C8F9AC877D05D9DC4159DEB8A13D36AD1D533A56950E20F906D29D51DDC45BD1\ -5C1773991707480E37B827044BDC6473181B760A9036E0D3FA491C2F08C55130\ -D8CDD5AC8E97D0813164AF3D28A585F0C2EC7004D498F95C6B62231A632A56C2\ -D0C48FC3A6992D4051957B9ED6D9A86DBCCD962A8883CF82CAF01DA2F51A203D\ -56B6089BC8FD0B1BD414C8063031ED469555E22EF872689C130B1C101034D572\ -FD8CD0EDDABEC9EF1503D7F728B0941EFE2B9512438C7DDB176BE2EC2D9FFCD5\ -6495A4511428DF02819CDDA18D1ED5D3B16C6F42AA0AC681A9FAB51E8A1A856C\ -15C51A3EC1031427142EA12543014DD4ACAC640B8A7729E63AB7DF1051112CDE\ -FD4B988A2258334FA9A7F5B3A87A02074B9F69DD81B83FC74089A91D76AA4041\ -259E80FA255F2084902AEB9E996AC2288AB464BDEC47AAB26A28A2A819498975\ -5D48FC9A5C9279285F2F1DBB8B8018F3E4E13115D78A879792E45A8F4F24ED4A\ -317440BA63E6929056EFC1D2529B75A709D6C0097DC2D97F646F334EBE6195EC\ -5630132FDE58E25DBC17DAD822D9FA0938A2A2C926B105D108403DC29CF371C3\ -504FF73BCE9C7ACF9A74C4954CE6A32DA96B21CF3211B3E49953DAB78C49C3E5\ -32A349003C59C62F7D40261CBA63A9EA21C89A38AA63CE431C43AE261C4D9999\ -B1CAF491FAB8E7BE6E8C3454F1BE8793B2D27141FC107DA599A4694C41353D77\ -85C05B5E31440458D17C6DB66FEB8A9C5C073FB946A67AC0312BB669D9B12FAB\ -AA5272CA6631379EF4ED420A4424A5CD08526384C047C33A84D5D7DC0C215366\ -3B54C73DD799A3568C01B818992CDF8143F1DADD6B50CAE6EAE13AC66F31FFA2\ -B362CC4D2880592B7FEE4B9E4CD6AA5E5DE27AAB9B5DAD9F7D39407AE927530C\ -AB2B61CD7394A21EF47BFB813B5EA6091458D239664923280ED0D5CCA8285BB2\ -281A2F9FB3FFECC8E9147E1E8FAC957D90C9E5F513738745A47C2AD0C31FD898\ -6EF3B6388C6E821F166513811D547AB4336B5E04643497FC9F8D6E380EF6478B\ -82B6E2F5F65DD98A63C68C32B94610E1D3B9538F13A7688FBB1EC3448BE9BD77\ -BB93A34546172AE8D614F85228988E7FEB18C9A0C9827699E8B3CBC69750BDFE\ -CDA8268F694F4C509BEFC1A1166F85C829725299D173F867A300987A2D36D1BB\ -BE37BE3208FB8EFE9152A41A5F0E931B6382FF7F9B18937958FB180E61F2A8C2\ -8F36C3C80C3722935AACB81C24AA17FB3E7A1026F7031A7449818ED62BA7705C\ -A27C2D3268F90B6322921683DFF800A306CFC186CF2A61B37F35837B217E3B2C\ -ECB0843D84EAC67431E3D689F01522D4A4C73618B7C2965C9DABB15C0BE637D1\ -0CEEF72271CF39A7B803B41767BC34433C3E6FF449A439AE13DA1EAFA038CB9F\ -2E1C84F1CE39C05DF56FE3D7B82386C4E628B6E27CBC5D575C66ADA3510C246B\ -D04DB48F4AFC2D7352966DA2266C2BC9831532F53655D8BE42B421AC0D70D8AD\ -1D3587257886DBF93668E907E861BA64F45999BADB0F766EADCE5238B5ED397F\ -265935194812C03C5769137BAC97140525303CF48D65F39004A3F59B1FAB0989\ -5CEE05335D15B9B12265892F4ABB92AB1DD2002ED00CF3562CB67DFE1055968E\ -4AB3306BB34BB87D0F64B26848812A2F7B50424A21FF94081A7F70F7B684AB0F\ -092B2B085DCF84CA38414CF7290F607BF79C37EA84253ABCA8D4184D2DBE2E90\ -0200B81479E1CE8B71DCF2BD6E3C557A8E431D627BA669C2EA03068E0F7EA62C\ -29777B22142D7A1D451BD541EF8EBDDBBA4E3BD8FFCD340E935BE7C66EFC14A1\ -3EA48134F655B0DE3180101F09D204C379743A357E6DF1268B55A9F7524398EC\ -F3A59849A27B142239059998083E8FA91785E91C4D220B2FB17E3389EBAA384A\ -49D89B5D78136DD2454F06CDE9837F096B744D53221127869904AC227CDF30BF\ -EA78CC5545583F999B9C42A1184E2FB9FF3EC095B9DA0D138205C4EAC4C8C480\ -C43153608849F63E161135C79D8B6C9CFE9B8DFD8AFAB559D8B595DDD4383503\ -3B4BBD391E028BB2A60832D9B697EE61408F149744DCE71AA11BB2B0436C1E26\ -26AC3A27CDA293366B90B9CDE2D927855130758D3946B867192DCF3FCE9A3B9A\ -5276E8C37B8CB136FC90A6DC22650F95E796A9886EFD3F424BE63A66DBB1041C\ -B3D4A06F4E7EEE89F0B6D15C36F9EA010C66B332011C8888E8E4AB2B3AB52231\ -91E1388613A0FD0F07C1B26D7CC7CDF1AC62A226454D6291B431CC3EF2DB2B24\ -42B37DEFB942117FA247096BEAE598611B8104F37BEBEDD8BB8B949A89B5BF8E\ -228ECA1D8F16BFEC75A02FFBB4EEE3A6D4A6087C43634D675311E72A9F3253BB\ -5DD364E07EB4B9C84F586BA267BAFFAEFEC79E03B83B18595FE06D7E063EE604\ -FF287004D141C1A43AF0CA7C5651D98F633FA875B4743353FB07BDE59B6567AE\ -25F7095F1D9EDF30570E2F7D7EC194216898D910F9E295A41DFEE072CB56F914\ -BB78CC9854129250F9874B63BB3EBE9A1CDC6EBCB0916E1C440354DED6AA818F\ -2811DA913912A21D3961AC94A39F0827D3A419616905DC45842C8E69A43004B8\ -AE922C8DE1E8CD0668674A7760153213835BC63FAE4F8D65614AFD74A34D42AB\ -AD5025B884B34639340B45D49CCED423771916E18AA077291923017CA50795F3\ -B7A3F349A3D29923833CE57801C631576E23B838A7767CA1BDA92B82AC502DB3\ -688FFC83C09A4E40CAC31D20D9D32FA6724A80BE7091CDE9C7A6560CFB326B46\ -7CADDB9E9B7A491EDA283EFB0B61B4A1116DD859D5C0897EAA2A3FB2CD82FFB3\ -3770BF9E08091363B6B81D23E61C2A647D2BE440C5C79EA89690656D9F10B1F0\ -7942834E1CB6E2D2DF106EB6D6A21FA23819E65028515E88BD279F9317BEAFFD\ -394EA51F8639371C3A89F11305A4CA35FB0711F5E2C7C3DD1659C79024581211\ -3204B4ED8AAE9FF09D43C6DDB13F5070D98831B2C7639FB6B9B01C288812DDFA\ -8861DB32DC8268C07D30CF969953042B3DAD530D9D744C06AABE7A886C0FE57B\ -09B7F42D193FB3E9C06329818251A2F7E6474462C95DED:\ -C1756C010C173E999B6CF11E3B6BF4400C8C866A18C2673A4705DF79 - -1A3DEAFCE70AF6F3F55D66AD9CE78D5F4D5C5F2638A810AFCD07D67E9F9A1380\ -D6B34BE482EF030C22F1E978F544609CCE35A74C5109EE7038495B6210CDBCA8\ -DC82C6E9E7B0D593FAD9665382B3C401AB8941DF71307DD77EBAF140AA66A1F7\ -6316478850E58886A9610631E9C722F459FA00C0B53124FB4F12778BBBA37608\ -26D3DBA67CD030A96B654AF93F8E395F5F439549489F8161683F124BC980E693\ -9C83A6085E4B6CAAF8BCD89A0E01ED70DB487166CC29735D9235A9CDC57B80C9\ -C2E591DF6322F5BEDD32937073F781A30389552AE83FBE147D1B3D3461A3DF96\ -C15CD96900C56718EAAE838417057579115936862679F5F2A45DADF65D14108A\ -F1641DF987B57986384FA1433789F5DFBE87E90BD4E9D8D4D0741FCDA7348322\ -B967B566B18612DBB8FE64F151947C3F7E361EE868676BCCD0CB3A1AFE046BE7\ -0057A05ADD3E65AF31E3FF414A627C0183E8FF583B41B75B203650420216E6DF\ -CAB289665F054CFE3EA0943647528518573BBB1D0F27E1449E98739EAF0D0094\ -32DF0C1EDC1625264B94A71DB762659FF5A3A7A867F182D1F1FD34B341A4A181\ -221870DC4A494013091A7E3B2B07E0160C438F1EE1E8A2B989C4FFEC36B5083E\ -A427606767C29672F44779A8505B422B25A56907F565B27690D011426A62DF00\ -36D57D967CD1D14E915BBC2691E7AF818C769D9E1F9EDD40894BE88FA1D7A595\ -2AFD898E837716ACD73953BF2D1D448123FD1A0276D2C2EBDC760A4B787416CF\ -AE5E963FCBDC8B551CB70F91DA0ED4A8090FEF178E879F2C34F3A269DFFFF097\ -72D44A13D7A17468B5834C460957D5243C325F63F05F89D4ED98D361E7F0AB8A\ -83948A64D0CFF8514841AA21C7F337920A9983E59BE4A0F1339E1E462F92DC1F\ -C070126206012458A499A8111FAE078E00B0CA3BC1D6C7087CD318D5603C1C7E\ -0425E6F729CEECA5F35B82F8A42E0E9B950EFB0904C5FB5C06D91D239913665E\ -D1F1EE4B82185A01BA86CA2D3EA94E5A8842231A94C05280183B7ACA28998410\ -3F122203EC2FBA4A382E6F5236D6F68DA05E3BB0C558421F0EFAB91DCEEF6D1E\ -CDC60F9B88F8BEFE31CDC3C2F024A1AF2C7336AA5D151E8CDA814A5FE898BADE\ -B9DD680E337E682EBC22BFAE445417E37D2D89A338659A280AB1206DB74DD42C\ -6F25639C1803BFDF2156DF613B0F5924D209F7F9003CE8794F989F4F27B82121\ -210F4F65EC5A1F7723305CEE438C41F793EE04496BBE337BBD2FD3023830B1C8\ -889C6F4D0C1192E364EDBE1CD987BA5D66224EE9C9405E1DFCEC0EEFFC5C73D3\ -123F6731C6295D1E6B854B884FD22B6A3BBBE5395312585CD138BCA67532C6AB\ -71BEBC6657C50DA87D2AC6068FA3970202C5E15EB7B4B3D2676C0134BCF1EAC2\ -B26BA46930B5E660B16060894884C88BFACD6779276B86F685AB6F17C6D53F62\ -1275FAD66D021D26D1D480AFAB4B5EC75E0E763FFC45F599EA02504DA5D91EB5\ -EFC3E4AE196F219E45E7CB05594958C876FF474A020EF73C1F09B1F7F7457E81\ -6D3AF51D86663D4D461754CD5E907456691E02446D6CACFD33516206A3187054\ -3D574592087773653D4086C2BDCBAB3C9B65CA11AD0D4E58DDDA8B4403099898\ -57103929549B7300CED42651D4086661694092C42875CB62858E6D1BE5F7274B\ -4BCD83AA4DA05CACA186A30902830790F9FFA24418E1F9DB00FA40477E83B05C\ -2D11AD7D81DDDB1E31F94A9DD5E9E13391C22479B570976E3AFC1BE41086D3BE\ -6689D87CA4326A7CDE8E5B396A678D3CDB2C80FECFBA2BC799AE8B1528E96D88\ -0CD098DDE910D097EAAE660AD4D7EA51C18F18AA1B39614299A172512521DFD2\ -31B9840909839EB69C892EE23F1BCEEC1FADBA75786C7DED93BC9983F74CEAB3\ -97EB8BA84F7E4130B34258D628594A6F9E2348FD91BA2594E07B8057E8A2AE3A\ -DFEA0EF919555385977041C5B6DC4F3880569171F7217AAA9A85F2F5BBDFE3FF\ -DF79248F2A35FD4DEC34980C67290339B1C0A5A6AB8838157AE2F5140B4A2492\ -4A6688AE5CE72A48103EE9029CE8A0F15B1FBB19A12FAAB80A7CD9C0E389FC27\ -75833E3190F1CF735ECDFE7F6B6C326506AA82613CBEDA8DD3691B81F4C1E3B0\ -FC32D7E6719CBFC12F4A26E0FC29D6417953ABC9568DB4ED9A294B9FD5F2A666\ -DDA546ABA301B1C60985033953EFD6F4538333B5C7DD3148814A3FD7927C366F\ -40B3D7ABBDEB2332DDB586AF80959097663CFAB2FEECAD6D368AE10EFF9663D5\ -F8BAB95935D25F45776F7F04B46817D05165A9DD4770509ABB92F8B9E7373CA7\ -80703569981754A51D6D376D65C57F55CD70E2DF5FDF5A6B829AE30CE3BF9428\ -15C8B4BE858DB58151D02A68AAB9FD373E047EFA51BD1A0CD1B61744D9E97CEB\ -A3334B3BAAFEA3BC9E43AE097CF2C3D713EECC247FF43EC74D54907D8BF45E45\ -B2E0E11D82B126A8179D3F66C055E11F69EA67AACC5FEE8AF01FAA379E51998F\ -5070F9EE0FD30A2EB22A925586FB1B39024EB5EB1E127C76A149E7F02AF1B73C\ -16E9E5A5DBE378E08A9FADF1194C625132AB3FDEFE8FE9A89BB8E0035A1A3AC5\ -278F5D3D0ADE0E41C81C6853A41C4AC45BE3F68180FE23F27F18BE2E339DE1D5\ -59D75DE63ADF7A32BAE42B037AEAA3E123A5314891BCD35CA48D57DF4C17540E\ -97202A8EA1328DA25B1FD6BE2B56AEC1E5DEB209F3B7A13ADB1CBE53EB645956\ -E577A7621D74E42376D70BC5C4AACD239A852FBB7B3F62CF59FE10438C1DC8E1\ -E46566325DA0CA43AAA63FB7E0B450A2DB3E3A2204704D894DB24B72B3078106\ -E096CD543DCF027650CB4965E38AC36A8AD588C5962B4E26548AB88F0BC20E10\ -ACC1C3FC00EF415B3C32499264552B14E2C0E789A3B8A8BFF9620FD939D0B34E\ -806177EC696A4B3B1CA4B32BA979B2690CFB3A6B17BCEE6877FFCE757E4116DA\ -01099FFE82ADD5A0C593E73449A96DB9CC2B9E846D166B095174F2CAF8B35DD8\ -78C836D9BB6EEEAF8E1BC5D0E149C739828CC480D731DC16B35B80D4AD82ED7D\ -29BD05018239EFECF8DEAE180C6A459DBCBFE4AAB9A5E2C1E1BC31418CF2EEEB\ -31FDF8BA02C9A91525E9163F672BAE2EDEC38C1BDB84EA237B4EF86BF5C0F0FF\ -E178E3761E82D94F66E5EA40BA8170BF768409E1B4177AAFD9937BCE3FBFF590\ -320D7C445372463FBBFB34F57447F42C16E026F179CBF82F617C86D1E8D42F6C\ -908F9C6B77E38D25D51303DBD781FFAB569B4CF31FD0B947C45E1768A2E9DFE8\ -369F520DC38D77937B69B821DB4FFEA8F50EBC404F0587B5598189F54B5A5B98\ -966FD16801C87DE2C3C7813DD70DC600824D426D88C55E89D47214D59206A7A6\ -5A65DA7CA2E42FA62ED17E7AA5B3ED446BCC71F17FEC8593BE96D2037BD07F94\ -76D4D732B32BC5DF8C921316B45699004716FC89F8D45BAE402C26DBCDF1A340\ -847B932FF882DBEAFBEDD252E126C89A1E1FDD8908A1F67D15D8E432DAD8E08E\ -950A3BC46B96CB89CC5BDAC703B3FA3E986EF1C6E7E6606E6845BA1EB2FBDCFE\ -E744B5E45206F4A419E1CB103C8490EB293EE9AEC1F0A0D294F9D3847737413D\ -30873F3C94740E8FD072817815EBBCE3F09EDEC9D1211A9E99547D620B2EC56C\ -89E9CB8144AE9E46636324BD13C6CCA3AB9CD9FD8F7F937ABABC598232384427\ -A2D4CE0CBF9765F7225E208C3CE128602B0AD08A1BAAB77EDB3111F0C6CA7BA0\ -EAC9D89D5B4378EB82C17F6EA08308A79A53D150D3F85EFAB77294F02EE0E288\ -5EE2AB2793392B87DB11FA77992F5B4FD75EF2F1A822E87407A4878894215AB8\ -9B6CC4A120F5A78B3C31AB80FFCC9ACEF53FC6F7F85685EB9D56D30D87C21ABB\ -F1652EEF8F32C7C567BD1F08623B09C29F33561D42727A5649A3850071AA6C11\ -735AE63C4FD31559CE560B27A362786A83353FE460B37074664A9421D3B2F6A8\ -64D5ACA087187B27E2B82F31CB3DF5E985CEA271C609B94B4E58356D40C7D5C7\ -FF2E5990FB39588154843EA5FCA92F120075D4C4D006661A0FA1B0585454BEA7\ -25473EEF7D58117D5840C8348999003736C5EEB7858FFD273A1C3EB2812F5697\ -C59110275B08F6BEFBE84C92497D5F73B7B6F794A849713B23AC5F29D5C7112F\ -B2E7A6E89EB54DDFA3122E6C79624C1BF25EBFB9FE5CE6DAA779F3ECB2984DA4\ -2F8C6ADC77B21DD291E684FCA50E46070962A2D4F00813D8DE1B8ED33FED9715\ -180C7EA8E2BB74FA65D9C7F6E142F3C81CDC59172E1020F62F65CA5A12CF2BED\ -9DEA04A4D8CABC2948F7BE823A3E792625275B3925A6C8D8E2B428C75A5DB0F7\ -120278CD7D6CAB768755C7FE2FBF89FDED1FB38AC7F76A2F8798CA36ED42CB7C\ -07F006271205F546A4812C20077F050D4CDC79459FA686E97F0704B7A9FF7DE1\ -6318E862C53D361BC635A55A264BE15016545DBFCE3C6D6849576ADEFB6884ED\ -D768214E0B438B0231B4F2692C2C0B5C177674F8A0DE236EACD9E0CEC7C8647E\ -4E9A5861B957EC834A2F8572F01304C3FD6A06019E5F1499B62BAA8670B65246\ -7FA9A4F10F053263BFE9743CC7D933F86136AAE3A6FB56754D7D238397A0030C\ -EBEA87CB255AF36138C373DBBAC41DD4A697032E4796C552AD9C9B3FA713C3A4\ -E09E0EC5581E94BE7F31065157662F9E9C678B1EF1B8B8A847C51789C22B1841\ -BCFC855820AF3258AF9E08231090B45D10046A00178E89BD515616B8A44E77BF\ -57795DABAF40687B2CDA7A5014168F:\ -98E40C176C8C8EC46AB940688D47978B8D1CACEFF37C700FDD06CBB5 - -1633256AB03B20CE079196B708A1C02D1B6072219070712C8589EE21341D5075\ -2ACB6CFDA17E982D828BBD6CDF54BC7232FD418A323D64939928597B9B52F07C\ -F488250C5E42BFD3AB48012D709F8D747225839296386FCE5FC5AECC4BA7A107\ -6D089DEA8ECEFAA0CF66FCA8602395719C12A04F929321784D7AB8239FCE2FF3\ -BDAE046A266132B5C2AD9F7261F3014E87B389A6695978693D9371D0B1FF9C40\ -5F338C2FDE4687359603950A54CF4B9CDD9B24480B239ACC5405C14C886BBB03\ -78391CEF0662A38882BDD09E3866AB9A66CFBD28EB5EE4F8009BDEFC4AEB1670\ -0EBA7DC557B489190A71FDA75E85F7EF841697F70FFD4FEA185E7A67C81C5B8F\ -273BFB97B2CEF695C1C74446C4B425BE6B2E66DC0AAACB247E4467B7C7D84EC3\ -3B6B5AB8FA1979F503008BDCFF948CDBF1226B1B066CBCF34797298F3BA8C60F\ -A01E0AC8B803223C656112FB91435D75453BAE4707B63330467DD13E0A4B992E\ -6F7E46995899A2D95D23F4AC3D0802B2A6E7D024DEA19CA408C4BBE053F14C9C\ -E264F129724A18BCB18F385B1CA091A11434EA96D98C8D0602E98EDC8DFA1414\ -1AF93ED0BA66E885E9FA108591AE59E109AE34D6B9F5586E4B4D75E7DF7C3295\ -8A65E88A9BAF41082A0A3F11539DC4EA2CBD9E1C6C3C439B622F1DE574FA7547\ -0C8C939B51D2D1C2A7204B859881D43086BFD8FB90346218D099C5AB36846F3B\ -98A7C847318BDFA01E09717943FCD864C5A8A17B6CEB89D98E872D388F20ADC2\ -BE5E2006846904F41682FB1283214F3D20DBC9FC9E0FF571844A1282E88590D7\ -C085B2C568EC5ACC4462B389FEAA5757F7033187E2DE31955FCE55FEDC909255\ -048B327CCAB2E582BBC9D8054BF5CB45145C7D3A3AF9CD5CF6ECBA490C634ECF\ -00E646BF95E8642C43A4978EF08A574EF1F78F6CE57C3B34B5A123D123617FC8\ -EC9B2AC0F9B70A7F6062D38DD7B8E9FB4ECCEF13DED5C0477483ADDAE4F1CC0C\ -FCA274B1307ED0DE72FBCB819154CDA897D7575213042615F1741A8CB646A39F\ -8D134FDF9E60E000EB8220F65CC30F5FA52C431B9E3B6101B96E25B8D0440B96\ -E572A18A01747C02AFCD7513542F7AACE194632099D16274F31EBABB60DDD94F\ -E43DACCE900EC0902EB5E686D48ED8D09AE63DA0E15C736809903A0297A92DE8\ -4E0260F11F446E1FC448E0EBF59FAEA3C726F97925C57CBDF85B1F77078D3625\ -7C85D56CBBEDCE180FE12B687ADA2DC9912FAC60334166BD2CEF06B089ED5C95\ -63844D71D8FEAD2F3A93F3C07C52537336A8A70BF5B596B9007B9FDF2D082000\ -F20E6B70D2A7E6C7ED27C4146895A6D85A246F623C1B9258A2F891F823ADE4CE\ -FFD59D4FFAD077351E2F506E9A5BDD3900F0204B9E8969AFE72F5DCCB9CDF986\ -D197AE4C4DB53014041AE6221B750E5290E307AD292C8DE6B899235212EF8CE9\ -54785537DC9435AF11E0F3427A9C7B22EFA752EA0B7EADE5F6EB4093BACB7867\ -6E506698139E4F774423B8942166F9A7D22480D814FC0AE19CF4960FBF6E01FF\ -A65C8DA5BED4F1AE2B9ECEC5BE7B3C38DD4045B0C93EE6CC77A7E61E85D331B2\ -3C0D164B104518B3405497054445A353E9B48F2AC5E8E96298D6655614336CFF\ -E6D8C9C915E387391519AD2632366AA3BC935030FD12927EFCA17505ED74C946\ -50C778539004854DF6C24269AAB9C273A493D3E5B0B1D687C33C2FACE46B4BB3\ -742D6DF743D09164D2E0EE7F6BA128BD5FBA2E3B33C199AE80FA9DEE3AD811D0\ -2BAA3D42A6362B2AD47BBA8A2C5CD00B46CF22CFE367281488A4852EB8B7FACE\ -79F0CA6F8E78D32578DFEE01711C4DCF3C26D0BA13F3075478E708C5C5315AFD\ -C2E4C0062D16458213BEC506A9E991A61825FF78DA9BA1BAABBEFA56B4A8C9E2\ -E7B60EC4B7B541C8E0F79C86BB5F03F736761A37169B2AAB8884EC6EA217B02C\ -59035F5BB327243D126B78D4AAB430212439B5A75B80618DAFEB66AA3AFF866C\ -4DAEE47D374B512E74ADA933EF24A841BA271C6F02C870E8AB950FE06E93C91D\ -F0E99165DC01BCB190E411ECCD85358FD4A88127A22E4CF4266A90845124BF97\ -B25D7B1C46D3A0D68A684F84E2A638C692A52CB6E8C651A3AC492B0460004073\ -D5349E35552359CA37660F77B2770D6B2B3F7B1922424AC4A8598B4C61A6DB50\ -7608A72A6A7D573CC055206276E14005A28A0EC41F28D7E260611D40F089FFE5\ -E529375691412F4E9E12E62C3BE2C563C26D2444EA9C69E6C935FEB4DC4E802E\ -5FE3906F8ACEF4798D940C3CD574BB5E74506C3E0B70CB62454A25F589EADB6B\ -0709FE3B50417CD1D98F08E08B7CF68A04CCCF8D6588F9FC2F31E533CDA6159B\ -AA4297FA446450D71C16EA2324EC09773E7C8817ECF680ED12F64A04863EFE3D\ -9D8760F34DE5B0860B3991FF0EE5EDBA22C4D69120DE19D5429E4AAE91C9E7CF\ -05CC807159A58F13B480872AC1609D87E7009DEDB71C09CEAAB640A2B6135855\ -CEAE4AC2954933A0255B425D9FDCD9C246F82AEB7C3BB78C6E73E03DB7AEC424\ -5A28693FBD36EF4938D59CCE19EAFC00671A0851612406A075713C5D1154D8E1\ -3B59B7C5B0902239D4BACFA386AC817AC5EE02A181A9A47C622B3ECF287E1484\ -3D452AF347110498A620B34AB4E116308D976062C9EE9CD35DB6CB79805B93AC\ -9A15AFBCB52F1ED4309879D1924A4BA190B0B86E60A516E77D34B4E0A49D4EF2\ -CEF3CC2F410FD8EC901363FC9EBD75EB460D4D8910BDF27CE26A8B4AEB94F9F7\ -6242401DC35D0644842B99FB6C439B82D82ECFE1AF0D01F9BECB15BEC83F13B2\ -60F7F714AA381032923FDE8F8018F3518547451435C9A5207294D08A907C7369\ -6F6CB000745E072E25B73B3EE11595433D27A1F11468686F08094F1D31F5ADA8\ -1F11F0677A29D72EBB2E1C4792CCC607CB938647E1F153F9EEF03D982595C631\ -E49B6B7C1FA003A6EB8D59CB8892CD0888B05240F12701753F89007C859515A2\ -FEF944BC60B36003A26702AC6FE04D2E942978FC31A97EB29871D6752399D352\ -1720729007B6A7215A4282B2A4EFC2C56BD129E74C9B00847692B96FCC71CF7A\ -7F19F3FD6B45C519FD73B4860880A2DD74E5727B31A93F0A87F0078155344AE9\ -F7BDBF00D83393B634B5DCA88A398E42C320EB95C4A826ACEA90B65E4767B2EB\ -A748F97C247568393E2FD3A66075CC12935B6D7EB5C2FF5282185CB62C73972A\ -37B3CA508004B4F796BDF82B83B5BDF90D6BFD32B5089B0CA2683DC7FB2337DE\ -42E650ED911DBEE1EF98257F9BA5AF54B1A54B04C0087A5A64BA779D86461BA1\ -5337C2E7D4955FDD777A025DE226306A17C384F1C52CDB5946FB0B46DD5C13BD\ -7A55FE2E27E4C6D40D61D6FFC024468F8EDFC7C7992DF5DC5D05063FE7231992\ -24F53678E48F25250EA28BDF1089718EB8B730D1C06735C2F871164E2EB5E885\ -A8DFD2A083BE97EDC94159CE9BF75D2433F1D782762F771903CBF9A1C9D13F71\ -0BA0E151B079DC0A8262BCEB1DBCBBC0F35DF6EECF7BAA7105B9808745853C96\ -B4372E95E482035916B726DAC7BE95A72B19DAD48DB1B19E6EB2EDAB5AC1B301\ -3839E7806625ABC129F41813E6D71EE4AB2040D81E42E6ED73ABBA64FF2EB433\ -B910EA7D4F5ED3D8D27D39BB454EC019DF6114F544D7B155549D0C56D14551FA\ -F353994A80F30F3C97E863A4F2AF316468A568038EB4D799350A6FACAFF90ECD\ -44E0F44EFB6DC42EE4B0DC2C59EA9C1827326DF08C0A6E55CF4F9C3EA0E78CFF\ -3635F5D08E44F1400D20F638D56BA84B4832090454DE57EF04B6C8805A36F63E\ -5CCC6E830C87FFC164647CED20E4C486D09DE7A5F9E4B68D5456CDB22B0DDED2\ -B95B3BCAE529215C2D25D6823C7D66A4FAE0A1E9F022BA5663204F2314DFA51A\ -1F10E11D6D62A8BA6C28B6AE7DA1DEB5B57F2B65D7456059AD9F03DC5A524054\ -DA39DD100D74EB657DE219795E3C45A0E4C762BA22F9DA9D8159E425A1EE783B\ -4B22C250D8894CBEC706CE16D5CA393404FF478F141BE7CC69E45B077BA1955F\ -1F49EFBE4847C795347F703300F672334F490ABF8B644A34B56DA00EC45A3503\ -14B9ADF27CAF7C51CB7DBA0C5477E7D37662F4F23247BCB8F7DD5F3E9CB8BDA4\ -0FA97568832AF0ADC68F71422E412254A6BFC8943BB465B01FCC8DE0B957677C\ -78BC1F7566953E9D2446239F602C682A521C14F741FEA98C7E27AABEC339B6F5\ -B94C78287A894AFDAE971F8DA7C7E4A4C92C8DA47BE82DC2532EC2DA9BACEDD2\ -BE6DB2B2FB34DCCDCB34116507376578CBCA105E5E443BEC0F2EF23BE34CDF86\ -2EDAB34F0FF21335E3ACD92F59688B419F824EA61EEA82BC80E3463452192377\ -131BA51FB0795E089FC077D0ECA8012E58B0637AD7022206887FE9EC00EE5DF7\ -AD2E26FE819EE35C7A179C579098AA3DF645D9064CD557DA90BDD21F871CEB04\ -8CA56DF9653A10ED60F5E9F0ED7F8D89BCF5C22D1143CF44718FF2DFD8E10CEF\ -8AABB67D2305F18177C1426BD4CD03F2625E459CE905067826A214E08E56D8F9\ -455593E6B324E72DEDCC429D3BEFE2AE0599E360DF95E80D453A3A849E48389F\ -A745635BEDE30E7932DE6A3816E31A2217F98D5E40238963D0A36C159FD4EC32\ -D8A5CF59D433DEF3378634AF6887FDB3F3EDB96FC8840FE1B538C329674AE810\ -E8C8B2B46DB208716D38E9D1AEAB097068AD83ADD7DD2647839B3A7388B0615B\ -DE26F8692E9C07D8ADECC2A875203C3D3A9C6CB1D7D06307E9E1D9C3BC536DD8\ -EB271E9A2159C904E61E8C9357FE759F36366AEF5A3D14CEE82913CD2708AA60\ -69369CED763C8E830D70924E82E9015C2998E86EFC1DCE6AC2EBCB49455542A6\ -D7DAB265AD6D7381FFEEE1AA40F8FAC0659B6FB56BB03CD8CAFAACD48D13672F\ -7D524EB9684CFED4DBB7476E99149C28EC08F33BA6AFF839AA178F86B8EEAF17\ -39C829177BA78547AD394136AA3FAD451A11E9642506568B39668B2436610E06\ -EA45FA11D04D3759B033B5382645F15B3C39270B81B80487643913A24F2F1C1A\ -1ED57C85CCDDC8CD6D59B62FA67CC80572968C8FD01894F0153634C88792A7C4\ -A407A4A4CE46CEC5FE5D2569F95A27DE242444EA0C715B357518CAEA23E767E8\ -545983F0D3A4DF66111B4AA1D399CCAFD796D7A80E592D5A51D2B3F60B5B04F8\ -D9C009CA56CBD4DD84127A29B72ADB7645FB7279C9818B2B43963BD605F45B65\ -75A5E2E369E0B401F5EC10EC703F1179B0AB9D4A89D6F096573952E513827364\ -A84D38922734137E969D8167D6959B70F42F2BDA37E4C989ABAA8024C1A84ED6\ -BEB74780927F78B32EA736B9B2B4A795C355C0319811729D9CC399D235197303\ -38D62E16E5035FC52A817090703FE776D65EF9FEF5BA5F4FFEC3CC8E9EB2E312\ -C50A479BDD4E6AB0A56C18C2DF69ED408417BEE28BB41DD13F8366FF6EDA4B34\ -090FC9BC045271:\ -82698AD78DFC9E39665C9DFD54C7BC44DB0EBBA2E741E80D5292669B - -[Keccak-1600(256)] -:\ -C5D2460186F7233C927E7DB2DCC703C0E500B653CA82273B7BFAD8045D85A470 - -CC:\ -EEAD6DBFC7340A56CAEDC044696A168870549A6A7F6F56961E84A54BD9970B8A - -41FB:\ -A8EACEDA4D47B3281A795AD9E1EA2122B407BAF9AABCB9E18B5717B7873537D2 - -1F877C:\ -627D7BC1491B2AB127282827B8DE2D276B13D7D70FB4C5957FDF20655BC7AC30 - -C1ECFDFC:\ -B149E766D7612EAF7D55F74E1A4FDD63709A8115B14F61FCD22AA4ABC8B8E122 - -21F134AC57:\ -67F05544DBE97D5D6417C1B1EA9BC0E3A99A541381D1CD9B08A9765687EB5BB4 - -C6F50BB74E29:\ -923062C4E6F057597220D182DBB10E81CD25F60B54005B2A75DD33D6DAC518D0 - -119713CC83EEEF:\ -FEB8405DCD315D48C6CBF7A3504996DE8E25CC22566EFEC67433712EDA99894F - -4A4F202484512526:\ -E620D8F2982B24FEDAAA3BAA9B46C3F9CE204EE356666553ECB35E15C3FF9BF9 - -1F66AB4185ED9B6375:\ -9E03F7C9A3D055ECA1D786ED6FB624D93F1CF0AC27F9C2B6C05E509FAC9E7FCA - -EED7422227613B6F53C9:\ -CAAD8E1ED546630748A12F5351B518A9A431CDA6BA56CBFC3CCBDD8AAE5092F7 - -EAEED5CDFFD89DECE455F1:\ -D61708BDB3211A9AAB28D4DF01DFA4B29ED40285844D841042257E97488617B0 - -5BE43C90F22902E4FE8ED2D3:\ -0F53BE55990780B3FAD9870F04F7D8153C3AE605C057C85ABB5D71765043AAA8 - -A746273228122F381C3B46E4F1:\ -32215AE88204A782B62D1810D945DE49948DE458600F5E1E3896CECA2ED3292B - -3C5871CD619C69A63B540EB5A625:\ -9510DA68E58EBB8D2AB9DE8485BB408E358299A9C011AE8544B0D0FAF9D4A4EA - -FA22874BCC068879E8EF11A69F0722:\ -F20B3BCF743AA6FA084038520791C364CB6D3D1DD75841F8D7021CD98322BD8F - -52A608AB21CCDD8A4457A57EDE782176:\ -0E32DEFA2071F0B5AC0E6A108B842ED0F1D3249712F58EE0DDF956FE332A5F95 - -82E192E4043DDCD12ECF52969D0F807EED:\ -9204550677B9AA770E6E93E319B9958540D54FF4DCCB063C8561302CD8AFF676 - -75683DCB556140C522543BB6E9098B21A21E:\ -A6D5444CB7AA61F5106CDEDB39D5E1DD7D608F102798D7E818AC87289123A1DB - -06E4EFE45035E61FAAF4287B4D8D1F12CA97E5:\ -5796B993D0BD1257CF26782B4E58FAFB22B0986D88684AB5A2E6CEC6706275F9 - -E26193989D06568FE688E75540AEA06747D9F851:\ -CFBE73C6585BE6204DD473ABE356B539477174C4B770BFC91E9FDBCBC57086E6 - -D8DC8FDEFBDCE9D44E4CBAFE78447BAE3B5436102A:\ -31C8006B0EC35E690674297CB27476DB6066B5FA9825C60728E9E0BB338FB7C3 - -57085FD7E14216AB102D8317B0CB338A786D5FC32D8F:\ -3B8FA3904FE1B837565A50D0FBF03E487D6D72FC3CEA41ADCCE33DF1B835D247 - -A05404DF5DBB57697E2C16FA29DEFAC8AB3560D6126FA0:\ -37FEBC4DF9D50DAEABD0CAA6578812A687E55F1AC0B109D2512810D00548C85B - -AECBB02759F7433D6FCB06963C74061CD83B5B3FFA6F13C6:\ -2329810B5A4735BCD49C10E6456C0B1DED5EAC258AF47CBB797CA162AB6D1BA8 - -AAFDC9243D3D4A096558A360CC27C8D862F0BE73DB5E88AA55:\ -6FFFA070B865BE3EE766DC2DB49B6AA55C369F7DE3703ADA2612D754145C01E6 - -7BC84867F6F9E9FDC3E1046CAE3A52C77ED485860EE260E30B15:\ -B30761C053E926F150B9DCE7E005B4D87811CCFB9E3B6EDB0221022F01711CF0 - -FAC523575A99EC48279A7A459E98FF901918A475034327EFB55843:\ -04F1B3C1E25BA5D012E22AD144E5A8719D94322D05AD9EF61E7DB49B59959B3A - -0F8B2D8FCFD9D68CFFC17CCFB117709B53D26462A3F346FB7C79B85E:\ -AEEF4B4DA420834FFCED26DB291248FB2D01E765E2B0564057F8E6C2030AC37F - -A963C3E895FF5A0BE4824400518D81412F875FA50521E26E85EAC90C04:\ -03D26AEEB4A7BDDDBFF7CFF667198C425941A2776922DF2BEC545F5304E2C61C - -03A18688B10CC0EDF83ADF0A84808A9718383C4070C6C4F295098699AC2C:\ -435CFC0D1AFD8D5509A9CCBF49706575038685BF08DB549D9714548240463EE9 - -84FB51B517DF6C5ACCB5D022F8F28DA09B10232D42320FFC32DBECC3835B29:\ -D477FB02CAAA95B3280EC8EE882C29D9E8A654B21EF178E0F97571BF9D4D3C1C - -9F2FCC7C90DE090D6B87CD7E9718C1EA6CB21118FC2D5DE9F97E5DB6AC1E9C10:\ -24DD2EE02482144F539F810D2CAA8A7B75D0FA33657E47932122D273C3F6F6D1 - -DE8F1B3FAA4B7040ED4563C3B8E598253178E87E4D0DF75E4FF2F2DEDD5A0BE0\ -46:\ -E78C421E6213AFF8DE1F025759A4F2C943DB62BBDE359C8737E19B3776ED2DD2 - -62F154EC394D0BC757D045C798C8B87A00E0655D0481A7D2D9FB58D93AEDC676\ -B5A0:\ -CCE3E3D498328A4D9C5B4DBF9A1209628AB82621AD1A0D0A18680362889E6164 - -B2DCFE9FF19E2B23CE7DA2A4207D3E5EC7C6112A8A22AEC9675A886378E14E5B\ -FBAD4E:\ -F871DB93C5C92ECD65D4EDB96FCB12E4729BC2A1899F7FB029F50BFF431CBB72 - -47F5697AC8C31409C0868827347A613A3562041C633CF1F1F86865A576E02835\ -ED2C2492:\ -4EB143477431DF019311AED936CAB91A912EC1E6868B71E9EDDB777408D4AF34 - -512A6D292E67ECB2FE486BFE92660953A75484FF4C4F2ECA2B0AF0EDCDD4339C\ -6B2EE4E542:\ -9A0C1D50A59DBF657F6713C795ED14E1F23B4EAA137C5540AACDB0A7E32C29FC - -973CF2B4DCF0BFA872B41194CB05BB4E16760A1840D8343301802576197EC19E\ -2A1493D8F4FB:\ -BA062E5D370216D11985C4CA7A2658DDC7328B4BE4B40A52DD8FA3CA662F09D1 - -80BEEBCD2E3F8A9451D4499961C9731AE667CDC24EA020CE3B9AA4BBC0A7F79E\ -30A934467DA4B0:\ -3A083AE163DF42BD51B9C664BEE9DC4362F16E63383DF16473DF71BE6DD40C1C - -7ABAA12EC2A7347674E444140AE0FB659D08E1C66DECD8D6EAE925FA451D65F3\ -C0308E29446B8ED3:\ -4876E273AC00942576D9608D5B63ECC9A3E75D5E0C42C6ABDBCDE037785AF9A7 - -C88DEE9927679B8AF422ABCBACF283B904FF31E1CAC58C7819809F65D5807D46\ -723B20F67BA610C2B7:\ -4797BA1C7AB7197050D6B2E506F2DF4550E4B673DF78F18C465424E48DF5E997 - -01E43FE350FCEC450EC9B102053E6B5D56E09896E0DDD9074FE138E603821027\ -0C834CE6EADC2BB86BF6:\ -41C91BE98C5813A4C5D8AE7C29B9919C1CC95B4A05F82433948CB99D9A6D039C - -337023370A48B62EE43546F17C4EF2BF8D7ECD1D49F90BAB604B839C2E6E5BD2\ -1540D29BA27AB8E309A4B7:\ -EE354290E3F9CE9123C49BA616E1A2684A90F3DDD84E73A1D2C232F740412B18 - -6892540F964C8C74BD2DB02C0AD884510CB38AFD4438AF31FC912756F3EFEC6B\ -32B58EBC38FC2A6B913596A8:\ -FBEC0B6D71696EEDE900B77AA6D7D25F4AB45DF8961CA9C8B3F4F9B51AF983AB - -F5961DFD2B1FFFFDA4FFBF30560C165BFEDAB8CE0BE525845DEB8DC61004B7DB\ -38467205F5DCFB34A2ACFE96C0:\ -9D24AEEA08F9A4B5FB8B6DE85A2296F5F4108DDD1EEA4F8EE58819CF84EDB765 - -CA061A2EB6CEED8881CE2057172D869D73A1951E63D57261384B80CEB5451E77\ -B06CF0F5A0EA15CA907EE1C27EBA:\ -732034CAE3FF1116F07FC18B5A26EF8FAF3FE75D3DBCA05E48795365E0A17C40 - -1743A77251D69242750C4F1140532CD3C33F9B5CCDF7514E8584D4A5F9FBD730\ -BCF84D0D4726364B9BF95AB251D9BB:\ -DEAC521805BC6A97C0870E9E225D1C4B2FD8F3A9A7F6B39E357C26414821E2DD - -D8FABA1F5194C4DB5F176FABFFF856924EF627A37CD08CF55608BBA8F1E324D7\ -C7F157298EABC4DCE7D89CE5162499F9:\ -AD55537347B20D9FCA02683E6DE1032EC10EB84DA4CBD501E49744A666292EDF - -BE9684BE70340860373C9C482BA517E899FC81BAAA12E5C6D7727975D1D41BA8\ -BEF788CDB5CF4606C9C1C7F61AED59F97D:\ -B1F990204BF630569A3EDC634864274786F40CE1C57165EE32D0E29F5D0C6851 - -7E15D2B9EA74CA60F66C8DFAB377D9198B7B16DEB6A1BA0EA3C7EE2042F89D37\ -86E779CF053C77785AA9E692F821F14A7F51:\ -FA460CD51BC611786D364FCABE39052BCD5F009EDFA81F4701C5B22B729B0016 - -9A219BE43713BD578015E9FDA66C0F2D83CAC563B776AB9F38F3E4F7EF229CB4\ -43304FBA401EFB2BDBD7ECE939102298651C86:\ -F7B0FE5A69FF44060D4F6AD2486E6CDE9ED679AF9AA1ADA613E4CC392442BEB5 - -C8F2B693BD0D75EF99CAEBDC22ADF4088A95A3542F637203E283BBC3268780E7\ -87D68D28CC3897452F6A22AA8573CCEBF245972A:\ -24204D491F202534859FC0A208237184471A2D801FB3B934D0968D0D843D0345 - -EC0F99711016C6A2A07AD80D16427506CE6F441059FD269442BAAA28C6CA037B\ -22EEAC49D5D894C0BF66219F2C08E9D0E8AB21DE52:\ -81147CBA0647EEE78C4784874C0557621A138CA781FB6F5DCD0D9C609AF56F35 - -0DC45181337CA32A8222FE7A3BF42FC9F89744259CFF653504D6051FE84B1A7F\ -FD20CB47D4696CE212A686BB9BE9A8AB1C697B6D6A33:\ -5B6D7EDA559574FAE882E6266F4C2BE362133E44B5A947ECB6E75DB9FC8567E0 - -DE286BA4206E8B005714F80FB1CDFAEBDE91D29F84603E4A3EBC04686F99A46C\ -9E880B96C574825582E8812A26E5A857FFC6579F63742F:\ -86F87E75C87F9BE39E4AA6D0C5A37A5964D6FFDC462525C0642C9DB010DE38EE - -EEBCC18057252CBF3F9C070F1A73213356D5D4BC19AC2A411EC8CDEEE7A571E2\ -E20EAF61FD0C33A0FFEB297DDB77A97F0A415347DB66BCAF:\ -959FE007B57C2947C36D1D66CC0808D80DB7DF45D68A34852B70D2DDA192C25C - -416B5CDC9FE951BD361BD7ABFC120A5054758EBA88FDD68FD84E39D3B09AC254\ -97D36B43CBE7B85A6A3CEBDA8DB4E5549C3EE51BB6FCB6AC1E:\ -1A93567EEBC41CC44D9346CDE646005D3E82DE8EEEB131E9C1F6D1E4AFD260F7 - -5C5FAF66F32E0F8311C32E8DA8284A4ED60891A5A7E50FB2956B3CBAA79FC66C\ -A376460E100415401FC2B8518C64502F187EA14BFC9503759705:\ -549DB056B65EDF7D05BD66661B6D0A39B29B825BC80910F8BF7060A53BFF68E1 - -7167E1E02BE1A7CA69D788666F823AE4EEF39271F3C26A5CF7CEE05BCA831610\ -66DC2E217B330DF821103799DF6D74810EED363ADC4AB99F36046A:\ -794ABFD7EB622D5608C1C7B3F0A7821A71900B7172847FB0907AA2899972663E - -2FDA311DBBA27321C5329510FAE6948F03210B76D43E7448D1689A063877B6D1\ -4C4F6D0EAA96C150051371F7DD8A4119F7DA5C483CC3E6723C01FB7D:\ -9CE89958CBDDD8DCB22F66E8CBA5F6091A51953189464803BDC773ABC7FAA906 - -95D1474A5AAB5D2422ACA6E481187833A6212BD2D0F91451A67DD786DFC91DFE\ -D51B35F47E1DEB8A8AB4B9CB67B70179CC26F553AE7B569969CE151B8D:\ -6DA733817DC826E8DA773BECA7338131AB7396417104EDA25970980C4EB2A15F - -C71BD7941F41DF044A2927A8FF55B4B467C33D089F0988AA253D294ADDBDB325\ -30C0D4208B10D9959823F0C0F0734684006DF79F7099870F6BF53211A88D:\ -66C9CDC8E8C6C9417D7FFBEF3B54B702EEE5F01A9BDA8DD4E28FE3335DEBBB51 - -F57C64006D9EA761892E145C99DF1B24640883DA79D9ED5262859DCDA8C3C32E\ -05B03D984F1AB4A230242AB6B78D368DC5AAA1E6D3498D53371E84B0C1D4BA:\ -24AB37A93674CCB1CEEC9E5681EFC8BDF9FCC7721CF1CAC175E0B20E461575B8 - -E926AE8B0AF6E53176DBFFCC2A6B88C6BD765F939D3D178A9BDE9EF3AA131C61\ -E31C1E42CDFAF4B4DCDE579A37E150EFBEF5555B4C1CB40439D835A724E2FAE7:\ -574271CD13959E8DDEAE5BFBDB02A3FDF54F2BABFD0CBEB893082A974957D0C1 - -16E8B3D8F988E9BB04DE9C96F2627811C973CE4A5296B4772CA3EEFEB80A652B\ -DF21F50DF79F32DB23F9F73D393B2D57D9A0297F7A2F2E79CFDA39FA393DF1AC\ -00:\ -1947E901FA59EA789845775F2A4DB9B4848F8A776073D53D84CBD5D927A96BFF - -FC424EEB27C18A11C01F39C555D8B78A805B88DBA1DC2A42ED5E2C0EC737FF68\ -B2456D80EB85E11714FA3F8EABFB906D3C17964CB4F5E76B29C1765DB03D91BE\ -37FC:\ -0C1B8C1AF237E9C5501B50316A80865AAC08A34ACF4F8BEDD4A2D6E7B7BCBB85 - -ABE3472B54E72734BDBA7D9158736464251C4F21B33FBBC92D7FAC9A35C4E332\ -2FF01D2380CBAA4EF8FB07D21A2128B7B9F5B6D9F34E13F39C7FFC2E72E47888\ -599BA5:\ -C4315666C71FEA834D8FF27F025F5CC34F37C1AAE78604A4B08DAC45DECD42BE - -36F9F0A65F2CA498D739B944D6EFF3DA5EBBA57E7D9C41598A2B0E4380F3CF4B\ -479EC2348D015FFE6256273511154AFCF3B4B4BF09D6C4744FDD0F62D75079D4\ -40706B05:\ -5FF8734DB3F9977EEE9CF5E2CF725C57AF09926490C55ABD9D00A42E91A8C344 - -ABC87763CAE1CA98BD8C5B82CABA54AC83286F87E9610128AE4DE68AC95DF5E3\ -29C360717BD349F26B872528492CA7C94C2C1E1EF56B74DBB65C2AC351981FDB\ -31D06C77A4:\ -1E141A171CAB085252EA4C2F8F1F1087DD85A75AB3ACD0B3C28EAA5735D349AF - -94F7CA8E1A54234C6D53CC734BB3D3150C8BA8C5F880EAB8D25FED13793A9701\ -EBE320509286FD8E422E931D99C98DA4DF7E70AE447BAB8CFFD92382D8A77760\ -A259FC4FBD72:\ -EF763F22F359DD7F5B3FE6A745C423D6B641EC07BA5235232A0701510F74426E - -13BD2811F6ED2B6F04FF3895ACEED7BEF8DCD45EB121791BC194A0F806206BFF\ -C3B9281C2B308B1A729CE008119DD3066E9378ACDCC50A98A82E20738800B6CD\ -DBE5FE9694AD6D:\ -6A769F93F255B078FE73AFF68F0422A279939920E4690B4AFF0E433CFA3D3DF3 - -1EED9CBA179A009EC2EC5508773DD305477CA117E6D569E66B5F64C6BC64801C\ -E25A8424CE4A26D575B8A6FB10EAD3FD1992EDDDEEC2EBE7150DC98F63ADC323\ -7EF57B91397AA8A7:\ -C06DD4261638C44AFCB186F0AF5DE20EA53AA63316FBB71728F874FF3DACEB0D - -BA5B67B5EC3A3FFAE2C19DD8176A2EF75C0CD903725D45C9CB7009A900C0B0CA\ -7A2967A95AE68269A6DBF8466C7B6844A1D608AC661F7EFF00538E323DB5F2C6\ -44B78B2D48DE1A08AA:\ -B5D84B1809E83B5E75AA53BDEE79E3A97F3FE3A7D3162EBD4908240FF69131D8 - -0EFA26AC5673167DCACAB860932ED612F65FF49B80FA9AE65465E5542CB62075\ -DF1C5AE54FBA4DB807BE25B070033EFA223BDD5B1D3C94C6E1909C02B620D4B1\ -B3A6C9FED24D70749604:\ -CAD7ABB5BBA5905B5181DD2DBC4E68CFD01BA8659F21C8290D3F835C1A68BBE5 - -BBFD933D1FD7BF594AC7F435277DC17D8D5A5B8E4D13D96D2F64E771ABBD51A5\ -A8AEA741BECCBDDB177BCEA05243EBD003CFDEAE877CCA4DA94605B67691919D\ -8B033F77D384CA01593C1B:\ -83CA09C1F418B5DAD0A7F64A904A2E07C3314F7D02D92622F8F4674BC1F6AA3D - -90078999FD3C35B8AFBF4066CBDE335891365F0FC75C1286CDD88FA51FAB94F9\ -B8DEF7C9AC582A5DBCD95817AFB7D1B48F63704E19C2BAA4DF347F48D4A6D603\ -013C23F1E9611D595EBAC37C:\ -330DE3EE16AEF6711461A994863EED47AF71B362D4C2F243534EF432F63A091A - -64105ECA863515C20E7CFBAA0A0B8809046164F374D691CDBD6508AAABC1819F\ -9AC84B52BAFC1B0FE7CDDBC554B608C01C8904C669D8DB316A0953A4C68ECE32\ -4EC5A49FFDB59A1BD6A292AA0E:\ -B5675197E49B357218F7118CD15EE773B39BD59B224D9A45CA71C6E371D938F1 - -D4654BE288B9F3B711C2D02015978A8CC57471D5680A092AA534F7372C71CEAA\ -B725A383C4FCF4D8DEAA57FCA3CE056F312961ECCF9B86F14981BA5BED6AB5B4\ -498E1F6C82C6CAE6FC14845B3C8A:\ -CD9038C1066A59990DF5752107B066EEBBE672CBCA0F60D687D03A9D821934BE - -12D9394888305AC96E65F2BF0E1B18C29C90FE9D714DD59F651F52B88B3008C5\ -88435548066EA2FC4C101118C91F32556224A540DE6EFDDBCA296EF1FB00341F\ -5B01FECFC146BDB251B3BDAD556CD2:\ -D3172CA263AFF2B9DB6FB13337F2543C5AF51151801A76194012F710306C14F6 - -871A0D7A5F36C3DA1DFCE57ACD8AB8487C274FAD336BC137EBD6FF4658B547C1\ -DCFAB65F037AA58F35EF16AFF4ABE77BA61F65826F7BE681B5B6D5A1EA8085E2\ -AE9CD5CF0991878A311B549A6D6AF230:\ -9E3D4BCF580EECE39BCF13E5716E5BB8F5E8C3FC3723F66246F836D8DB1238F1 - -E90B4FFEF4D457BC7711FF4AA72231CA25AF6B2E206F8BF859D8758B89A7CD36\ -105DB2538D06DA83BAD5F663BA11A5F6F61F236FD5F8D53C5E89F183A3CEC615\ -B50C7C681E773D109FF7491B5CC22296C5:\ -EDC2D3B49C85B8DD75F7B5128DA04CD76BF4878779A0077AF3F1D7FB44F18931 - -E728DE62D75856500C4C77A428612CD804F30C3F10D36FB219C5CA0AA30726AB\ -190E5F3F279E0733D77E7267C17BE27D21650A9A4D1E32F649627638DBADA970\ -2C7CA303269ED14014B2F3CF8B894EAC8554:\ -80DCE7F04DD6AC17CE709B56CF6EA6C0A57190649BB187B5E6D95FA18100C7AC - -6348F229E7B1DF3B770C77544E5166E081850FA1C6C88169DB74C76E42EB983F\ -ACB276AD6A0D1FA7B50D3E3B6FCD799EC97470920A7ABED47D288FF883E24CA2\ -1C7F8016B93BB9B9E078BDB9703D2B781B616E:\ -49BBD5435D2706F85FE77B84A5FA15DDD8259E5D2C20FB947F139373E5C86121 - -4B127FDE5DE733A1680C2790363627E63AC8A3F1B4707D982CAEA258655D9BF1\ -8F89AFE54127482BA01E08845594B671306A025C9A5C5B6F93B0A39522DC8774\ -37BE5C2436CBF300CE7AB6747934FCFC30AEAAF6:\ -6B6C11F9731D60789D713DAF53D2EB10AB9CCF15430EA5D1249BE06EDFE2BFF6 - -08461F006CFF4CC64B752C957287E5A0FAABC05C9BFF89D23FD902D324C79903\ -B48FCB8F8F4B01F3E4DDB483593D25F000386698F5ADE7FAADE9615FDC50D327\ -85EA51D49894E45BAA3DC707E224688C6408B68B11:\ -7E738E8EB3D47D18E97D87C7B3FC681F86417883CED92BA93C3077812BBD17E7 - -68C8F8849B120E6E0C9969A5866AF591A829B92F33CD9A4A3196957A148C4913\ -8E1E2F5C7619A6D5EDEBE995ACD81EC8BB9C7B9CFCA678D081EA9E25A75D39DB\ -04E18D475920CE828B94E72241F24DB72546B352A0E4:\ -A278BA93BA0D7CD2677BE08C9DFC5F516A37F722BB06565FA22500F66FE031A9 - -B8D56472954E31FB54E28FCA743F84D8DC34891CB564C64B08F7B71636DEBD64\ -CA1EDBDBA7FC5C3E40049CE982BBA8C7E0703034E331384695E9DE76B5104F2F\ -BC4535ECBEEBC33BC27F29F18F6F27E8023B0FBB6F563C:\ -9C0A9F0DA113D39F491B7DA6C4DA5D84FE1CC46367E5ACC433CA3E0500951738 - -0D58AC665FA84342E60CEFEE31B1A4EACDB092F122DFC68309077AED1F3E528F\ -578859EE9E4CEFB4A728E946324927B675CD4F4AC84F64DB3DACFE850C1DD187\ -44C74CECCD9FE4DC214085108F404EAB6D8F452B5442A47D:\ -6BED496D02FE4CC27D96DCEED14A67DA7BDF75E19B624896DFF6B0B68E4FCC12 - -1755E2D2E5D1C1B0156456B539753FF416651D44698E87002DCF61DCFA2B4E72\ -F264D9AD591DF1FDEE7B41B2EB00283C5AEBB3411323B672EAA145C512518510\ -4F20F335804B02325B6DEA65603F349F4D5D8B782DD3469CCD:\ -ECD2E3FAF4BA4DD67E5A8656CEBEBDB24611611678E92EB60F7CBD3111D0A345 - -B180DE1A611111EE7584BA2C4B020598CD574AC77E404E853D15A101C6F5A2E5\ -C801D7D85DC95286A1804C870BB9F00FD4DCB03AA8328275158819DCAD7253F3\ -E3D237AEAA7979268A5DB1C6CE08A9EC7C2579783C8AFC1F91A7:\ -634A95A7E8BA58F7818A13903EC8F3411B6ECB7E389EC9AA97C0ECF87FADD588 - -CF3583CBDFD4CBC17063B1E7D90B02F0E6E2EE05F99D77E24E560392535E47E0\ -5077157F96813544A17046914F9EFB64762A23CF7A49FE52A0A4C01C630CFE87\ -27B81FB99A89FF7CC11DCA5173057E0417B8FE7A9EFBA6D95C555F:\ -A0FE352BA2389B0430EDBE1201032EB09C255514C5C5B529C4BAAFCEB1AC9817 - -072FC02340EF99115BAD72F92C01E4C093B9599F6CFC45CB380EE686CB5EB019\ -E806AB9BD55E634AB10AA62A9510CC0672CD3EDDB589C7DF2B67FCD3329F61B1\ -A4441ECA87A33C8F55DA4FBBAD5CF2B2527B8E983BB31A2FADEC7523:\ -9A0BFE14F9F3127ACA86773A620945731DF781A6D7DC82930CCDE2F69DAC8F94 - -76EECF956A52649F877528146DE33DF249CD800E21830F65E90F0F25CA9D6540\ -FDE40603230ECA6760F1139C7F268DEBA2060631EEA92B1FFF05F93FD5572FBE\ -29579ECD48BC3A8D6C2EB4A6B26E38D6C5FBF2C08044AEEA470A8F2F26:\ -19E5101BDE60B200A8B171E4C3EA3DFD913E10111D96F9682ACC7467282B4E31 - -7ADC0B6693E61C269F278E6944A5A2D8300981E40022F839AC644387BFAC9086\ -650085C2CDC585FEA47B9D2E52D65A2B29A7DC370401EF5D60DD0D21F9E2B90F\ -AE919319B14B8C5565B0423CEFB827D5F1203302A9D01523498A4DB10374:\ -4CC2AFF141987F4C2E683FA2DE30042BACDCD06087D7A7B014996E9CFEAA58CE - -E1FFFA9826CCE8B86BCCEFB8794E48C46CDF372013F782ECED1E378269B7BE2B\ -7BF51374092261AE120E822BE685F2E7A83664BCFBE38FE8633F24E633FFE198\ -8E1BC5ACF59A587079A57A910BDA60060E85B5F5B6F776F0529639D9CCE4BD:\ -9A8CE819894EFCCC2153B239C3ADC3F07D0968EAC5EC8080AC0174F2D5E6959C - -69F9ABBA65592EE01DB4DCE52DBAB90B08FC04193602792EE4DAA263033D5908\ -1587B09BBE49D0B49C9825D22840B2FF5D9C5155F975F8F2C2E7A90C75D2E4A8\ -040FE39F63BBAFB403D9E28CC3B86E04E394A9C9E8065BD3C85FA9F0C7891600:\ -8B35768525F59AC77D35522AC885831A9947299E114A8956FE5BCA103DB7BB2C - -38A10A352CA5AEDFA8E19C64787D8E9C3A75DBF3B8674BFAB29B5DBFC15A63D1\ -0FAE66CD1A6E6D2452D557967EAAD89A4C98449787B0B3164CA5B717A93F24EB\ -0B506CEB70CBBCB8D72B2A72993F909AAD92F044E0B5A2C9AC9CB16A0CA2F81F\ -49:\ -955F1F7E4E54660B26F30086F2DDDAEDD32813547C1B95D305D882682B4FF7A0 - -6D8C6E449BC13634F115749C248C17CD148B72157A2C37BF8969EA83B4D6BA8C\ -0EE2711C28EE11495F43049596520CE436004B026B6C1F7292B9C436B055CBB7\ -2D530D860D1276A1502A5140E3C3F54A93663E4D20EDEC32D284E25564F62495\ -5B52:\ -8FAC5A34EBAFA38B55333624A9514FE97D9956E74309C5252CD2090D3BBE2F9E - -6EFCBCAF451C129DBE00B9CEF0C3749D3EE9D41C7BD500ADE40CDC65DEDBBBAD\ -B885A5B14B32A0C0D087825201E303288A733842FA7E599C0C514E078F05C821\ -C7A4498B01C40032E9F1872A1C925FA17CE253E8935E4C3C71282242CB716B20\ -89CCC1:\ -62039E0F53869480F88C87BB3D19A31AAD32878F27F2C4E78FF02BBEA2B8B0B9 - -433C5303131624C0021D868A30825475E8D0BD3052A022180398F4CA4423B982\ -14B6BEAAC21C8807A2C33F8C93BD42B092CC1B06CEDF3224D5ED1EC29784444F\ -22E08A55AA58542B524B02CD3D5D5F6907AFE71C5D7462224A3F9D9E53E7E084\ -6DCBB4CE:\ -CE87A5173BFFD92399221658F801D45C294D9006EE9F3F9D419C8D427748DC41 - -A873E0C67CA639026B6683008F7AA6324D4979550E9BCE064CA1E1FB97A30B14\ -7A24F3F666C0A72D71348EDE701CF2D17E2253C34D1EC3B647DBCEF2F879F4EB\ -881C4830B791378C901EB725EA5C172316C6D606E0AF7DF4DF7F76E490CD30B2\ -BADF45685F:\ -2EF8907B60108638E50EAC535CC46CA02E04581DDB4235FBAC5CB5C53583E24B - -006917B64F9DCDF1D2D87C8A6173B64F6587168E80FAA80F82D84F60301E561E\ -312D9FBCE62F39A6FB476E01E925F26BCC91DE621449BE6504C504830AAE3940\ -96C8FC7694651051365D4EE9070101EC9B68086F2EA8F8AB7B811EA8AD934D5C\ -9B62C60A4771:\ -BE8B5BD36518E9C5F4C768FC02461BB3D39A5D00EDEF82CEC7DF351DF80238E0 - -F13C972C52CB3CC4A4DF28C97F2DF11CE089B815466BE88863243EB318C2ADB1\ -A417CB1041308598541720197B9B1CB5BA2318BD5574D1DF2174AF14884149BA\ -9B2F446D609DF240CE335599957B8EC80876D9A085AE084907BC5961B20BF5F6\ -CA58D5DAB38ADB:\ -52CBC5DBE49B009663C43F079DD180E38A77533778062A72A29E864A58522922 - -E35780EB9799AD4C77535D4DDB683CF33EF367715327CF4C4A58ED9CBDCDD486\ -F669F80189D549A9364FA82A51A52654EC721BB3AAB95DCEB4A86A6AFA93826D\ -B923517E928F33E3FBA850D45660EF83B9876ACCAFA2A9987A254B137C6E140A\ -21691E1069413848:\ -3A8DFCFD1B362003DDFA17910727539E64B18021ABBA018B5F58D71F7A449733 - -64EC021C9585E01FFE6D31BB50D44C79B6993D72678163DB474947A053674619\ -D158016ADB243F5C8D50AA92F50AB36E579FF2DABB780A2B529370DAA299207C\ -FBCDD3A9A25006D19C4F1FE33E4B1EAEC315D8C6EE1E730623FD1941875B924E\ -B57D6D0C2EDC4E78D6:\ -FA221DEEE80E25E53C6C448AA22028B72501F07D1FF2C3FC7F93AF9838B2D0A9 - -5954BAB512CF327D66B5D9F296180080402624AD7628506B555EEA8382562324\ -CF452FBA4A2130DE3E165D11831A270D9CB97CE8C2D32A96F50D71600BB4CA26\ -8CF98E90D6496B0A6619A5A8C63DB6D8A0634DFC6C7EC8EA9C006B6C456F1B20\ -CD19E781AF20454AC880:\ -ED9C8B87FCE27BE4E95610DB1DDD0C035847F4699DFC8C039A798A30343A6059 - -03D9F92B2C565709A568724A0AFF90F8F347F43B02338F94A03ED32E6F33666F\ -F5802DA4C81BDCE0D0E86C04AFD4EDC2FC8B4141C2975B6F07639B1994C973D9\ -A9AFCE3D9D365862003498513BFA166D2629E314D97441667B007414E739D7FE\ -BF0FE3C32C17AA188A8683:\ -A485CC9CF4CA4F659F89A0B791A4423953424AC57146B879D385A9E4062AFE52 - -F31E8B4F9E0621D531D22A380BE5D9ABD56FAEC53CBD39B1FAB230EA67184440\ -E5B1D15457BD25F56204FA917FA48E669016CB48C1FFC1E1E45274B3B47379E0\ -0A43843CF8601A5551411EC12503E5AAC43D8676A1B2297EC7A0800DBFEE0429\ -2E937F21C005F17411473041:\ -93CD4369A7796239A5CDF78BCE22EBB2137A631C3A613D5E35816D2A64A34947 - -758EA3FEA738973DB0B8BE7E599BBEF4519373D6E6DCD7195EA885FC991D8967\ -62992759C2A09002912FB08E0CB5B76F49162AEB8CF87B172CF3AD190253DF61\ -2F77B1F0C532E3B5FC99C2D31F8F65011695A087A35EE4EEE5E334C369D8EE5D\ -29F695815D866DA99DF3F79403:\ -3751CE08750D927EB5C3AE4CA62A703A481D86A4FA1C011E812B4BC0A2FEF08D - -47C6E0C2B74948465921868804F0F7BD50DD323583DC784F998A93CD1CA4C6EF\ -84D41DC81C2C40F34B5BEE6A93867B3BDBA0052C5F59E6F3657918C382E771D3\ -3109122CC8BB0E1E53C4E3D13B43CE44970F5E0C079D2AD7D7A3549CD75760C2\ -1BB15B447589E86E8D76B1E9CED2:\ -A88C7EF7B89B7B6F75D83922B8FD00F034D719F97C67884121434447AE9DD3B9 - -F690A132AB46B28EDFA6479283D6444E371C6459108AFD9C35DBD235E0B6B6FF\ -4C4EA58E7554BD002460433B2164CA51E868F7947D7D7A0D792E4ABF0BE5F450\ -853CC40D85485B2B8857EA31B5EA6E4CCFA2F3A7EF3380066D7D8979FDAC618A\ -AD3D7E886DEA4F005AE4AD05E5065F:\ -2B4F8F9EF7D6ED60BB4881E635E0F887A51B0C1A42BAB077976B43D2C715E11A - -58D6A99BC6458824B256916770A8417040721CCCFD4B79EACD8B65A3767CE5BA\ -7E74104C985AC56B8CC9AEBD16FEBD4CDA5ADB130B0FF2329CC8D611EB14DAC2\ -68A2F9E633C99DE33997FEA41C52A7C5E1317D5B5DAED35EBA7D5A60E45D1FA7\ -EAABC35F5C2B0A0F2379231953322C4E:\ -586CFFDC434313CC4E133E85AC88B3E5DEA71818ABCAC236F0AAE418F72B6CDE - -BEFAB574396D7F8B6705E2D5B58B2C1C820BB24E3F4BAE3E8FBCD36DBF734EE1\ -4E5D6AB972AEDD3540235466E825850EE4C512EA9795ABFD33F330D9FD7F79E6\ -2BBB63A6EA85DE15BEAEEA6F8D204A28956059E2632D11861DFB0E65BC07AC8A\ -159388D5C3277E227286F65FF5E5B5AEC1:\ -52D14AB96B24AA4A7A55721AA8550B1FCCAC3653C78234783F7295AE5F39A17A - -8E58144FA9179D686478622CE450C748260C95D1BA43B8F9B59ABECA8D93488D\ -A73463EF40198B4D16FB0B0707201347E0506FF19D01BEA0F42B8AF9E71A1F1B\ -D168781069D4D338FDEF00BF419FBB003031DF671F4A37979564F69282DE9C65\ -407847DD0DA505AB1641C02DEA4F0D834986:\ -B6345EDD966030CF70DFB5B7552BC141C42EFE7A7E84F957B1BAF4671BAE4354 - -B55C10EAE0EC684C16D13463F29291BF26C82E2FA0422A99C71DB4AF14DD9C7F\ -33EDA52FD73D017CC0F2DBE734D831F0D820D06D5F89DACC485739144F8CFD47\ -99223B1AFF9031A105CB6A029BA71E6E5867D85A554991C38DF3C9EF8C1E1E9A\ -7630BE61CAABCA69280C399C1FB7A12D12AEFC:\ -0347901965D3635005E75A1095695CCA050BC9ED2D440C0372A31B348514A889 - -2EEEA693F585F4ED6F6F8865BBAE47A6908AECD7C429E4BEC4F0DE1D0CA0183F\ -A201A0CB14A529B7D7AC0E6FF6607A3243EE9FB11BCF3E2304FE75FFCDDD6C5C\ -2E2A4CD45F63C962D010645058D36571404A6D2B4F44755434D76998E83409C3\ -205AA1615DB44057DB991231D2CB42624574F545:\ -F0BF7105870F2382B76863BB97AEE79F95AE0E8142675BBCCDB3475B0C99352F - -DAB11DC0B047DB0420A585F56C42D93175562852428499F66A0DB811FCDDDAB2\ -F7CDFFED1543E5FB72110B64686BC7B6887A538AD44C050F1E42631BC4EC8A9F\ -2A047163D822A38989EE4AAB01B4C1F161B062D873B1CFA388FD301514F62224\ -157B9BEF423C7783B7AAC8D30D65CD1BBA8D689C2D:\ -631C6F5ABE50B27C9DEA557FC3FBD3FB25781FCB1BBF9F2E010CCA20EC52DBC4 - -42E99A2F80AEE0E001279A2434F731E01D34A44B1A8101726921C0590C30F312\ -0EB83059F325E894A5AC959DCA71CE2214799916424E859D27D789437B9D2724\ -0BF8C35ADBAFCECC322B48AA205B293962D858652ABACBD588BCF6CBC388D099\ -3BD622F96ED54614C25B6A9AA527589EAAFFCF17DDF7:\ -3757A53D195B43B403A796A74AAFB2064072A69E372EE5B36CC2B7A791F75C9F - -3C9B46450C0F2CAE8E3823F8BDB4277F31B744CE2EB17054BDDC6DFF36AF7F49\ -FB8A2320CC3BDF8E0A2EA29AD3A55DE1165D219ADEDDB5175253E2D1489E9B6F\ -DD02E2C3D3A4B54D60E3A47334C37913C5695378A669E9B72DEC32AF5434F93F\ -46176EBF044C4784467C700470D0C0B40C8A088C815816:\ -0CC903ACBCED724B221D34877D1D1427182F9493A33DF7758720E8BFC7AF98EE - -D1E654B77CB155F5C77971A64DF9E5D34C26A3CAD6C7F6B300D39DEB19100946\ -91ADAA095BE4BA5D86690A976428635D5526F3E946F7DC3BD4DBC78999E65344\ -1187A81F9ADCD5A3C5F254BC8256B0158F54673DCC1232F6E918EBFC6C51CE67\ -EAEB042D9F57EEC4BFE910E169AF78B3DE48D137DF4F2840:\ -F23750C32973F24C2422F4E2B43589D9E76D6A575938E01A96AE8E73D026569C - -626F68C18A69A6590159A9C46BE03D5965698F2DAC3DE779B878B3D9C421E0F2\ -1B955A16C715C1EC1E22CE3EB645B8B4F263F60660EA3028981EEBD6C8C3A367\ -285B691C8EE56944A7CD1217997E1D9C21620B536BDBD5DE8925FF71DEC6FBC0\ -6624AB6B21E329813DE90D1E572DFB89A18120C3F606355D25:\ -1ECE87E44A99F59D26411418FB8793689FF8A9C6EF75599056087D8C995BCE1E - -651A6FB3C4B80C7C68C6011675E6094EB56ABF5FC3057324EBC6477825061F9F\ -27E7A94633ABD1FA598A746E4A577CAF524C52EC1788471F92B8C37F23795CA1\ -9D559D446CAB16CBCDCE90B79FA1026CEE77BF4AB1B503C5B94C2256AD75B3EA\ -C6FD5DCB96ACA4B03A834BFB4E9AF988CECBF2AE597CB9097940:\ -71B4F90AC9215D7474B1197D1B8B24449FD57E9B05483D32EDBEBCB21A82F866 - -8AAF072FCE8A2D96BC10B3C91C809EE93072FB205CA7F10ABD82ECD82CF040B1\ -BC49EA13D1857815C0E99781DE3ADBB5443CE1C897E55188CEAF221AA9681638\ -DE05AE1B322938F46BCE51543B57ECDB4C266272259D1798DE13BE90E10EFEC2\ -D07484D9B21A3870E2AA9E06C21AA2D0C9CF420080A80A91DEE16F:\ -3B3678BB116FADAB484291F0CF972606523501F5B45D51063797972928E333C0 - -53F918FD00B1701BD504F8CDEA803ACCA21AC18C564AB90C2A17DA592C7D6968\ -8F6580575395551E8CD33E0FEF08CA6ED4588D4D140B3E44C032355DF1C53156\ -4D7F4835753344345A6781E11CD5E095B73DF5F82C8AE3AD00877936896671E9\ -47CC52E2B29DCD463D90A0C9929128DA222B5A211450BBC0E02448E2:\ -4068246495F508897813332962D3AE0B84685045E832A9A39AD5E94C154D2679 - -A64599B8A61B5CCEC9E67AED69447459C8DA3D1EC6C7C7C82A7428B9B584FA67\ -E90F68E2C00FBBED4613666E5168DA4A16F395F7A3C3832B3B134BFC9CBAA95D\ -2A0FE252F44AC6681EB6D40AB91C1D0282FED6701C57463D3C5F2BB8C6A7301F\ -B4576AA3B5F15510DB8956FF77478C26A7C09BEA7B398CFC83503F538E:\ -82696259536520E5E4D47E106BD1DCB397529AAFB75878F332D2AF2684493F1B - -0E3AB0E054739B00CDB6A87BD12CAE024B54CB5E550E6C425360C2E87E59401F\ -5EC24EF0314855F0F56C47695D56A7FB1417693AF2A1ED5291F2FEE95F75EED5\ -4A1B1C2E81226FBFF6F63ADE584911C71967A8EB70933BC3F5D15BC91B5C2644\ -D9516D3C3A8C154EE48E118BD1442C043C7A0DBA5AC5B1D5360AAE5B9065:\ -B494852603393B2B71845BACBDCE89FA1427DFE4AF9CDF925D4F93FA83B9966B - -A62FC595B4096E6336E53FCDFC8D1CC175D71DAC9D750A6133D23199EAAC2882\ -07944CEA6B16D27631915B4619F743DA2E30A0C00BBDB1BBB35AB852EF3B9AEC\ -6B0A8DCC6E9E1ABAA3AD62AC0A6C5DE765DE2C3711B769E3FDE44A74016FFF82\ -AC46FA8F1797D3B2A726B696E3DEA5530439ACEE3A45C2A51BC32DD055650B:\ -D8A619C0DFBED2A9498A147B53D7B33DD653D390E5C0CD691F02C8608822D06A - -2B6DB7CED8665EBE9DEB080295218426BDAA7C6DA9ADD2088932CDFFBAA1C141\ -29BCCDD70F369EFB149285858D2B1D155D14DE2FDB680A8B027284055182A0CA\ -E275234CC9C92863C1B4AB66F304CF0621CD54565F5BFF461D3B461BD40DF281\ -98E3732501B4860EADD503D26D6E69338F4E0456E9E9BAF3D827AE685FB1D817:\ -D82E257D000DC9FA279A00E2961E3286D2FE1C02EF59833AB8A6A7101BC25054 - -10DB509B2CDCABA6C062AE33BE48116A29EB18E390E1BBADA5CA0A2718AFBCD2\ -3431440106594893043CC7F2625281BF7DE2655880966A23705F0C5155C2F5CC\ -A9F2C2142E96D0A2E763B70686CD421B5DB812DACED0C6D65035FDE558E94F26\ -B3E6DDE5BD13980CC80292B723013BD033284584BFF27657871B0CF07A849F4A\ -E2:\ -8D5B7DBF3947219ACDB04FB2E11A84A313C54C22F2AE858DFC8887BF6265F5F3 - -9334DE60C997BDA6086101A6314F64E4458F5FF9450C509DF006E8C547983C65\ -1CA97879175AABA0C539E82D05C1E02C480975CBB30118121061B1EBAC4F8D9A\ -3781E2DB6B18042E01ECF9017A64A0E57447EC7FCBE6A7F82585F7403EE2223D\ -52D37B4BF426428613D6B4257980972A0ACAB508A7620C1CB28EB4E9D30FC413\ -61EC:\ -607C3F31342C3EE5C93E552A8DD79FA86DCCAE2C1B58AABAC25B5918ACFA4DA5 - -E88AB086891693AA535CEB20E64C7AB97C7DD3548F3786339897A5F0C3903154\ -9CA870166E477743CCFBE016B4428D89738E426F5FFE81626137F17AECFF61B7\ -2DBEE2DC20961880CFE281DFAB5EE38B1921881450E16032DE5E4D55AD8D4FCA\ -609721B0692BAC79BE5A06E177FE8C80C0C83519FB3347DE9F43D5561CB8107B\ -9B5EDC:\ -0656DE9DCD7B7112A86C7BA199637D2C1C9E9CFBB713E4EDE79F8862EE69993F - -FD19E01A83EB6EC810B94582CB8FBFA2FCB992B53684FB748D2264F020D3B960\ -CB1D6B8C348C2B54A9FCEA72330C2AAA9A24ECDB00C436ABC702361A82BB8828\ -B85369B8C72ECE0082FE06557163899C2A0EFA466C33C04343A839417057399A\ -63A3929BE1EE4805D6CE3E5D0D0967FE9004696A5663F4CAC9179006A2CEB755\ -42D75D68:\ -4DDD6224858299F3378E3F5A0ECC52FA4C419C8EBB20F635C4C43F36324ECB4E - -59AE20B6F7E0B3C7A989AFB28324A40FCA25D8651CF1F46AE383EF6D8441587A\ -A1C04C3E3BF88E8131CE6145CFB8973D961E8432B202FA5AF3E09D625FAAD825\ -BC19DA9B5C6C20D02ABDA2FCC58B5BD3FE507BF201263F30543819510C12BC23\ -E2DDB4F711D087A86EDB1B355313363A2DE996B891025E147036087401CCF3CA\ -7815BF3C49:\ -EC096314E2F73B6A7027FFFA02104C2F6DD187F20C743445BEFD4B5C034B3295 - -77EE804B9F3295AB2362798B72B0A1B2D3291DCEB8139896355830F34B3B3285\ -61531F8079B79A6E9980705150866402FDC176C05897E359A6CB1A7AB067383E\ -B497182A7E5AEF7038E4C96D133B2782917417E391535B5E1B51F47D8ED7E4D4\ -025FE98DC87B9C1622614BFF3D1029E68E372DE719803857CA52067CDDAAD958\ -951CB2068CC6:\ -FE71D01C2EE50E054D6B07147EF62954FDE7E6959D6EEBA68E3C94107EB0084D - -B771D5CEF5D1A41A93D15643D7181D2A2EF0A8E84D91812F20ED21F147BEF732\ -BF3A60EF4067C3734B85BC8CD471780F10DC9E8291B58339A677B960218F71E7\ -93F2797AEA349406512829065D37BB55EA796FA4F56FD8896B49B2CD19B43215\ -AD967C712B24E5032D065232E02C127409D2ED4146B9D75D763D52DB98D949D3\ -B0FED6A8052FBB:\ -BD6F5492582A7C1B116304DE28314DF9FFFE95B0DA11AF52FE9440A717A34859 - -B32D95B0B9AAD2A8816DE6D06D1F86008505BD8C14124F6E9A163B5A2ADE55F8\ -35D0EC3880EF50700D3B25E42CC0AF050CCD1BE5E555B23087E04D7BF9813622\ -780C7313A1954F8740B6EE2D3F71F768DD417F520482BD3A08D4F222B4EE9DBD\ -015447B33507DD50F3AB4247C5DE9A8ABD62A8DECEA01E3B87C8B927F5B08BEB\ -37674C6F8E380C04:\ -E717A7769448ABBE5FEF8187954A88AC56DED1D22E63940AB80D029585A21921 - -04410E31082A47584B406F051398A6ABE74E4DA59BB6F85E6B49E8A1F7F2CA00\ -DFBA5462C2CD2BFDE8B64FB21D70C083F11318B56A52D03B81CAC5EEC29EB31B\ -D0078B6156786DA3D6D8C33098C5C47BB67AC64DB14165AF65B44544D806DDE5\ -F487D5373C7F9792C299E9686B7E5821E7C8E2458315B996B5677D926DAC57B3\ -F22DA873C601016A0D:\ -A95D50B50B4545F0947441DF74A1E9D74622EB3BAA49C1BBFC3A0CCE6619C1AA - -8B81E9BADDE026F14D95C019977024C9E13DB7A5CD21F9E9FC491D716164BBAC\ -DC7060D882615D411438AEA056C340CDF977788F6E17D118DE55026855F93270\ -472D1FD18B9E7E812BAE107E0DFDE7063301B71F6CFE4E225CAB3B232905A56E\ -994F08EE2891BA922D49C3DAFEB75F7C69750CB67D822C96176C46BD8A29F170\ -1373FB09A1A6E3C7158F:\ -ED53D72595ACE3A6D5166A4EDE41CCE362D644BDED772BE616B87BCF678A6364 - -FA6EED24DA6666A22208146B19A532C2EC9BA94F09F1DEF1E7FC13C399A48E41\ -ACC2A589D099276296348F396253B57CB0E40291BD282773656B6E0D8BEA1CDA\ -084A3738816A840485FCF3FB307F777FA5FEAC48695C2AF4769720258C77943F\ -B4556C362D9CBA8BF103AEB9034BAA8EA8BFB9C4F8E6742CE0D52C49EA8E974F\ -339612E830E9E7A9C29065:\ -810401B247C23529E24655CAB86C42DF44085DA76CA01C9A14618E563B7C41BE - -9BB4AF1B4F09C071CE3CAFA92E4EB73CE8A6F5D82A85733440368DEE4EB1CBC7\ -B55AC150773B6FE47DBE036C45582ED67E23F4C74585DAB509DF1B8361056454\ -5642B2B1EC463E18048FC23477C6B2AA035594ECD33791AF6AF4CBC2A1166ABA\ -8D628C57E707F0B0E8707CAF91CD44BDB915E0296E0190D56D33D8DDE10B5B60\ -377838973C1D943C22ED335E:\ -9F01E63F2355393ECB1908D0CAF39718833004A4BF37EBF4CF8D7319B65172DF - -2167F02118CC62043E9091A647CADBED95611A521FE0D64E8518F16C808AB297\ -725598AE296880A773607A798F7C3CFCE80D251EBEC6885015F9ABF7EAABAE46\ -798F82CB5926DE5C23F44A3F9F9534B3C6F405B5364C2F8A8BDC5CA49C749BED\ -8CE4BA48897062AE8424CA6DDE5F55C0E42A95D1E292CA54FB46A84FBC9CD87F\ -2D0C9E7448DE3043AE22FDD229:\ -7EC11DE7DB790A850281F043592779B409195DB4ECEDEEFBB93BA683D3BCA851 - -94B7FA0BC1C44E949B1D7617D31B4720CBE7CA57C6FA4F4094D4761567E389EC\ -C64F6968E4064DF70DF836A47D0C713336B5028B35930D29EB7A7F9A5AF9AD5C\ -F441745BAEC9BB014CEEFF5A41BA5C1CE085FEB980BAB9CF79F2158E03EF7E63\ -E29C38D7816A84D4F71E0F548B7FC316085AE38A060FF9B8DEC36F91AD9EBC0A\ -5B6C338CBB8F6659D342A24368CF:\ -A74AF9C523B4A08D9DB9692EA89255977A5919B9292B7CD0D92C90C97C98E224 - -EA40E83CB18B3A242C1ECC6CCD0B7853A439DAB2C569CFC6DC38A19F5C90ACBF\ -76AEF9EA3742FF3B54EF7D36EB7CE4FF1C9AB3BC119CFF6BE93C03E208783335\ -C0AB8137BE5B10CDC66FF3F89A1BDDC6A1EED74F504CBE7290690BB295A872B9\ -E3FE2CEE9E6C67C41DB8EFD7D863CF10F840FE618E7936DA3DCA5CA6DF933F24\ -F6954BA0801A1294CD8D7E66DFAFEC:\ -344D129C228359463C40555D94213D015627E5871C04F106A0FEEF9361CDECB6 - -157D5B7E4507F66D9A267476D33831E7BB768D4D04CC3438DA12F9010263EA5F\ -CAFBDE2579DB2F6B58F911D593D5F79FB05FE3596E3FA80FF2F761D1B0E57080\ -055C118C53E53CDB63055261D7C9B2B39BD90ACC32520CBBDBDA2C4FD8856DBC\ -EE173132A2679198DAF83007A9B5C51511AE49766C792A29520388444EBEFE28\ -256FB33D4260439CBA73A9479EE00C63:\ -4CE7C2B935F21FC34C5E56D940A555C593872AEC2F896DE4E68F2A017060F535 - -836B34B515476F613FE447A4E0C3F3B8F20910AC89A3977055C960D2D5D2B72B\ -D8ACC715A9035321B86703A411DDE0466D58A59769672AA60AD587B8481DE4BB\ -A552A1645779789501EC53D540B904821F32B0BD1855B04E4848F9F8CFE9EBD8\ -911BE95781A759D7AD9724A7102DBE576776B7C632BC39B9B5E19057E226552A\ -5994C1DBB3B5C7871A11F5537011044C53:\ -24B69D8AB35BACCBD92F94E1B70B07C4C0ECF14EAEAC4B6B8560966D5BE086F3 - -CC7784A4912A7AB5AD3620AAB29BA87077CD3CB83636ADC9F3DC94F51EDF521B\ -2161EF108F21A0A298557981C0E53CE6CED45BDF782C1EF200D29BAB81DD6460\ -586964EDAB7CEBDBBEC75FD7925060F7DA2B853B2B089588FA0F8C16EC6498B1\ -4C55DCEE335CB3A91D698E4D393AB8E8EAC0825F8ADEBEEE196DF41205C01167\ -4E53426CAA453F8DE1CBB57932B0B741D4C6:\ -19F34215373E8E80F686953E03CA472B50216719CB515E0667D4E686E45FCF7C - -7639B461FFF270B2455AC1D1AFCE782944AEA5E9087EB4A39EB96BB5C3BAAF0E\ -868C8526D3404F9405E79E77BFAC5FFB89BF1957B523E17D341D7323C302EA70\ -83872DD5E8705694ACDDA36D5A1B895AAA16ECA6104C82688532C8BFE1790B5D\ -C9F4EC5FE95BAED37E1D287BE710431F1E5E8EE105BC42ED37D74B1E55984BF1\ -C09FE6A1FA13EF3B96FAEAED6A2A1950A12153:\ -290BD4808E5676EB0C978084E4CD68E745031659A26807AD615B10CDA589B969 - -EB6513FC61B30CFBA58D4D7E80F94D14589090CF1D80B1DF2E68088DC6104959\ -BA0D583D585E9578AB0AEC0CF36C48435EB52ED9AB4BBCE7A5ABE679C97AE2DB\ -E35E8CC1D45B06DDA3CF418665C57CBEE4BBB47FA4CAF78F4EE656FEC237FE4E\ -EBBAFA206E1EF2BD0EE4AE71BD0E9B2F54F91DAADF1FEBFD7032381D636B733D\ -CB3BF76FB14E23AFF1F68ED3DBCF75C9B99C6F26:\ -70999AB9818309AFA8F1ADC4FEA47A071A8ABD94012F7CE28CC794A0D997C5CB - -1594D74BF5DDE444265D4C04DAD9721FF3E34CBF622DAF341FE16B96431F6C4D\ -F1F760D34F296EB97D98D560AD5286FEC4DCE1724F20B54FD7DF51D4BF137ADD\ -656C80546FB1BF516D62EE82BAA992910EF4CC18B70F3F8698276FCFB44E0EC5\ -46C2C39CFD8EE91034FF9303058B4252462F86C823EB15BF481E6B79CC3A0221\ -8595B3658E8B37382BD5048EAED5FD02C37944E73B:\ -83120033B0140FE3E3E1CBFEBFF323ABC08535C0AA017803F5D2F4ECB35F5DFB - -4CFA1278903026F66FEDD41374558BE1B585D03C5C55DAC94361DF286D4BD39C\ -7CB8037ED3B267B07C346626449D0CC5B0DD2CF221F7E4C3449A4BE99985D2D5\ -E67BFF2923357DDEAB5ABCB4619F3A3A57B2CF928A022EB27676C6CF80568900\ -4FCA4D41EA6C2D0A4789C7605F7BB838DD883B3AD3E6027E775BCF2628814280\ -99C7FFF95B14C095EA130E0B9938A5E22FC52650F591:\ -5584BF3E93BC25945C508B9188D0502C6E755BBEBABFC8CB907FA7A252EF464A - -D3E65CB92CFA79662F6AF493D696A07CCF32AAADCCEFF06E73E8D9F6F909209E\ -66715D6E978788C49EFB9087B170ECF3AA86D2D4D1A065AE0EFC8924F365D676\ -B3CB9E2BEC918FD96D0B43DEE83727C9A93BF56CA2B2E59ADBA85696546A8150\ -67FC7A78039629D4948D157E7B0D826D1BF8E81237BAB7321312FDAA4D521744\ -F988DB6FDF04549D0FDCA393D639C729AF716E9C8BBA48:\ -C234B252C21EDB842634CC124DA5BEE8A4749CFFBA134723F7963B3A9729C0B4 - -842CC583504539622D7F71E7E31863A2B885C56A0BA62DB4C2A3F2FD12E79660\ -DC7205CA29A0DC0A87DB4DC62EE47A41DB36B9DDB3293B9AC4BAAE7DF5C6E720\ -1E17F717AB56E12CAD476BE49608AD2D50309E7D48D2D8DE4FA58AC3CFEAFEEE\ -48C0A9EEC88498E3EFC51F54D300D828DDDCCB9D0B06DD021A29CF5CB5B25069\ -15BEB8A11998B8B886E0F9B7A80E97D91A7D01270F9A7717:\ -645F25456752091FFFCAADE806C34C79DFFE72140C7C75D6A6ECFEEDF6DB401C - -6C4B0A0719573E57248661E98FEBE326571F9A1CA813D3638531AE28B4860F23\ -C3A3A8AC1C250034A660E2D71E16D3ACC4BF9CE215C6F15B1C0FC7E77D3D2715\ -7E66DA9CEEC9258F8F2BF9E02B4AC93793DD6E29E307EDE3695A0DF63CBDC0FC\ -66FB770813EB149CA2A916911BEE4902C47C7802E69E405FE3C04CEB5522792A\ -5503FA829F707272226621F7C488A7698C0D69AA561BE9F378:\ -2D7CAC697E7410C1F7735DD691624A7D04FA51815858E8BA98B19B0DED0638B5 - -51B7DBB7CE2FFEB427A91CCFE5218FD40F9E0B7E24756D4C47CD55606008BDC2\ -7D16400933906FD9F30EFFDD4880022D081155342AF3FB6CD53672AB7FB5B3A3\ -BCBE47BE1FD3A2278CAE8A5FD61C1433F7D350675DD21803746CADCA574130F0\ -1200024C6340AB0CC2CF74F2234669F34E9009EF2EB94823D62B31407F4BA46F\ -1A1EEC41641E84D77727B59E746B8A671BEF936F05BE820759FA:\ -F664F626BC6B7A8CF03BE429155EE1F5CD6ECF14816DE49A5E229903F89A4DC6 - -83599D93F5561E821BD01A472386BC2FF4EFBD4AED60D5821E84AAE74D807102\ -9810F5E286F8F17651CD27DA07B1EB4382F754CD1C95268783AD09220F550284\ -0370D494BEB17124220F6AFCE91EC8A0F55231F9652433E5CE3489B727716CF4\ -AEBA7DCDA20CD29AA9A859201253F948DD94395ABA9E3852BD1D60DDA7AE5DC0\ -45B283DA006E1CBAD83CC13292A315DB5553305C628DD091146597:\ -06425E83E4AF817D735E9962C0CDDCE2CD40A087A6B0AF3599719E415AB9A72A - -2BE9BF526C9D5A75D565DD11EF63B979D068659C7F026C08BEA4AF161D85A462\ -D80E45040E91F4165C074C43AC661380311A8CBED59CC8E4C4518E80CD2C78AB\ -1CABF66BFF83EAB3A80148550307310950D034A6286C93A1ECE8929E6385C5E3\ -BB6EA8A7C0FB6D6332E320E71CC4EB462A2A62E2BFE08F0CCAD93E61BEDB5DD0\ -B786A728AB666F07E0576D189C92BF9FB20DCA49AC2D3956D47385E2:\ -E8C329149B075C459E11C8AC1E7E6ACFA51CA981C89EC0768ED79D19F4E484FB - -CA76D3A12595A817682617006848675547D3E8F50C2210F9AF906C0E7CE50B44\ -60186FE70457A9E879E79FD4D1A688C70A347361C847BA0DD6AA52936EAF8E58\ -A1BE2F5C1C704E20146D366AEB3853BED9DE9BEFE9569AC8AAEA37A9FB7139A1\ -A1A7D5C748605A8DEFB297869EBEDD71D615A5DA23496D11E11ABBB126B206FA\ -0A7797EE7DE117986012D0362DCEF775C2FE145ADA6BDA1CCB326BF644:\ -C86768F6C349EB323BD82DB19676E10BD8AE9F7057763556BBB6D0B671E60F2A - -F76B85DC67421025D64E93096D1D712B7BAF7FB001716F02D33B2160C2C882C3\ -10EF13A576B1C2D30EF8F78EF8D2F465007109AAD93F74CB9E7D7BEF7C9590E8\ -AF3B267C89C15DB238138C45833C98CC4A471A7802723EF4C744A853CF80A0C2\ -568DD4ED58A2C9644806F42104CEE53628E5BDF7B63B0B338E931E31B87C24B1\ -46C6D040605567CEEF5960DF9E022CB469D4C787F4CBA3C544A1AC91F95F:\ -D97F46F3B7EDBFB16E52BFEC7DBA0815B94D46E4251E48A853EABDF876127714 - -25B8C9C032EA6BCD733FFC8718FBB2A503A4EA8F71DEA1176189F694304F0FF6\ -8E862A8197B839957549EF243A5279FC2646BD4C009B6D1EDEBF24738197ABB4\ -C992F6B1DC9BA891F570879ACCD5A6B18691A93C7D0A8D38F95B639C1DAEB48C\ -4C2F15CCF5B9D508F8333C32DE78781B41850F261B855C4BEBCC125A380C54D5\ -01C5D3BD07E6B52102116088E53D76583B0161E2A58D0778F091206AABD5A1:\ -51D08E00AAA252812D873357107616055B1B8C5FB2AC7917D0F901DFB01FAC47 - -21CFDC2A7CCB7F331B3D2EEFFF37E48AD9FA9C788C3F3C200E0173D99963E1CB\ -CA93623B264E920394AE48BB4C3A5BB96FFBC8F0E53F30E22956ADABC2765F57\ -FB761E147ECBF8567533DB6E50C8A1F894310A94EDF806DD8CA6A0E141C0FA7C\ -9FAE6C6AE65F18C93A8529E6E5B553BF55F25BE2E80A9882BD37F145FECBEB3D\ -447A3C4E46C21524CC55CDD62F521AB92A8BA72B897996C49BB273198B7B1C9E:\ -C6A188A6BDACA4DD7B1BC3E41019AFE93473063F932C166E3242B7F52A3C6F8E - -4E452BA42127DCC956EF4F8F35DD68CB225FB73B5BC7E1EC5A898BBA2931563E\ -74FAFF3B67314F241EC49F4A7061E3BD0213AE826BAB380F1F14FAAB8B0EFDDD\ -5FD1BB49373853A08F30553D5A55CCBBB8153DE4704F29CA2BDEEF0419468E05\ -DD51557CCC80C0A96190BBCC4D77ECFF21C66BDF486459D427F986410F883A80\ -A5BCC32C20F0478BB9A97A126FC5F95451E40F292A4614930D054C851ACD019C\ -CF:\ -2B31FBC565110110011AB2C8F6CC3DA8FB55D41B1AE5E04310283F207D39682D - -FA85671DF7DADF99A6FFEE97A3AB9991671F5629195049880497487867A6C446\ -B60087FAC9A0F2FCC8E3B24E97E42345B93B5F7D3691829D3F8CCD4BB36411B8\ -5FC2328EB0C51CB3151F70860AD3246CE0623A8DC8B3C49F958F8690F8E3860E\ -71EB2B1479A5CEA0B3F8BEFD87ACAF5362435EAECCB52F38617BC6C5C2C6E269\ -EAD1FBD69E941D4AD2012DA2C5B21BCFBF98E4A77AB2AF1F3FDA3233F046D38F\ -1DC8:\ -1351F5DBA46098B9A773381D85D52FAD491B3A82AF9107F173DB81FB35ED91D2 - -E90847AE6797FBC0B6B36D6E588C0A743D725788CA50B6D792352EA8294F5BA6\ -54A15366B8E1B288D84F5178240827975A763BC45C7B0430E8A559DF4488505E\ -009C63DA994F1403F407958203CEBB6E37D89C94A5EACF6039A327F6C4DBBC7A\ -2A307D976AA39E41AF6537243FC218DFA6AB4DD817B6A397DF5CA69107A91987\ -99ED248641B63B42CB4C29BFDD7975AC96EDFC274AC562D0474C60347A078CE4\ -C25E88:\ -DFFC700F3E4D84D9131CBB1F98FB843DBAFCB2EF94A52E89D204D431451A3331 - -F6D5C2B6C93954FC627602C00C4CA9A7D3ED12B27173F0B2C9B0E4A5939398A6\ -65E67E69D0B12FB7E4CEB253E8083D1CEB724AC07F009F094E42F2D6F2129489\ -E846EAFF0700A8D4453EF453A3EDDC18F408C77A83275617FABC4EA3A2833AA7\ -3406C0E966276079D38E8E38539A70E194CC5513AAA457C699383FD1900B1E72\ -BDFB835D1FD321B37BA80549B078A49EA08152869A918CA57F5B54ED71E4FD3A\ -C5C06729:\ -26726B52242EF8ECF4C66AED9C4B46BF6F5D87044A0B99D4E4AF47DC360B9B0E - -CF8562B1BED89892D67DDAAF3DEEB28246456E972326DBCDB5CF3FB289ACA01E\ -68DA5D59896E3A6165358B071B304D6AB3D018944BE5049D5E0E2BB819ACF67A\ -6006111089E6767132D72DD85BEDDCBB2D64496DB0CC92955AB4C6234F1EEA24\ -F2D51483F2E209E4589BF9519FAC51B4D061E801125E605F8093BB6997BC163D\ -551596FE4AB7CFAE8FB9A90F6980480CE0C229FD1675409BD788354DAF316240\ -CFE0AF93EB:\ -25E536315F08A40976ADECB54756EBC0B224C38FAF11509371B5A692A5269AB5 - -2ACE31ABB0A2E3267944D2F75E1559985DB7354C6E605F18DC8470423FCA30B7\ -331D9B33C4A4326783D1CAAE1B4F07060EFF978E4746BF0C7E30CD61040BD5EC\ -2746B29863EB7F103EBDA614C4291A805B6A4C8214230564A0557BC7102E0BD3\ -ED23719252F7435D64D210EE2AAFC585BE903FA41E1968C50FD5D5367926DF7A\ -05E3A42CF07E656FF92DE73B036CF8B19898C0CB34557C0C12C2D8B84E91181A\ -F467BC75A9D1:\ -AB504592AD7184BE83CC659EFB5D3DE88BA04B060B45D16A76F034080DDE56C6 - -0D8D09AED19F1013969CE5E7EB92F83A209AE76BE31C754844EA9116CEB39A22\ -EBB6003017BBCF26555FA6624185187DB8F0CB3564B8B1C06BF685D47F3286ED\ -A20B83358F599D2044BBF0583FAB8D78F854FE0A596183230C5EF8E54426750E\ -AF2CC4E29D3BDD037E734D863C2BD9789B4C243096138F7672C232314EFFDFC6\ -513427E2DA76916B5248933BE312EB5DDE4CF70804FB258AC5FB82D58D08177A\ -C6F4756017FFF5:\ -5D8EE133EC441A3DF50A5268A8F393F13F30F23F226AE3A18EC331844402FF54 - -C3236B73DEB7662BF3F3DAA58F137B358BA610560EF7455785A9BEFDB035A066\ -E90704F929BD9689CEF0CE3BDA5ACF4480BCEB8D09D10B098AD8500D9B6071DF\ -C3A14AF6C77511D81E3AA8844986C3BEA6F469F9E02194C92868CD5F51646256\ -798FF0424954C1434BDFED9FACB390B07D342E992936E0F88BFD0E884A0DDB67\ -9D0547CCDEC6384285A45429D115AC7D235A717242021D1DC35641F5F0A48E84\ -45DBA58E6CB2C8EA:\ -712B1CC04C009B52035CC44C9505BB5CB577BA0AD1734EC23620F57EEF3D37FB - -B39FEB8283EADC63E8184B51DF5AE3FD41AAC8A963BB0BE1CD08AA5867D8D910\ -C669221E73243360646F6553D1CA05A84E8DC0DE05B6419EC349CA994480193D\ -01C92525F3FB3DCEFB08AFC6D26947BDBBFD85193F53B50609C6140905C53A66\ -86B58E53A319A57B962331EDE98149AF3DE3118A819DA4D76706A0424B4E1D29\ -10B0ED26AF61D150EBCB46595D4266A0BD7F651BA47D0C7F179CA28545007D92\ -E8419D48FDFBD744CE:\ -942E39E230A2251FFDB2F85202871C98597008401B322FF9840CC90CC85B337D - -A983D54F503803E8C7999F4EDBBE82E9084F422143A932DDDDC47A17B0B7564A\ -7F37A99D0786E99476428D29E29D3C197A72BFAB1342C12A0FC4787FD7017D7A\ -6174049EA43B5779169EF7472BDBBD941DCB82FC73AAC45A8A94C9F2BD3477F6\ -1FD3B796F02A1B8264A214C6FEA74B7051B226C722099EC7883A462B83B6AFDD\ -4009248B8A237F605FE5A08FE7D8B45321421EBBA67BD70A0B00DDBF94BAAB7F\ -359D5D1EEA105F28DCFB:\ -B542B6CD8EF2DAB4ED83B77AC6DC52DAF554ECDA4EF7AB0A50E546BEBE2D8E5A - -E4D1C1897A0A866CE564635B74222F9696BF2C7F640DD78D7E2ACA66E1B61C64\ -2BB03EA7536AAE597811E9BF4A7B453EDE31F97B46A5F0EF51A071A2B3918DF1\ -6B152519AE3776F9F1EDAB4C2A377C3292E96408359D3613844D5EB393000283\ -D5AD3401A318B12FD1474B8612F2BB50FB6A8B9E023A54D7DDE28C43D6D8854C\ -8D9D1155935C199811DBFC87E9E0072E90EB88681CC7529714F8FB8A2C9D8856\ -7ADFB974EE205A9BF7B848:\ -F7E9E825722E6554A8619CCA3E57F5B5E6B7347431D55CE178372C917BFB3DC2 - -B10C59723E3DCADD6D75DF87D0A1580E73133A9B7D00CB95EC19F5547027323B\ -E75158B11F80B6E142C6A78531886D9047B08E551E75E6261E79785366D7024B\ -D7CD9CF322D9BE7D57FB661069F2481C7BB759CD71B4B36CA2BC2DF6D3A328FA\ -EBDB995A9794A8D72155ED551A1F87C80BF6059B43FC764900B18A1C2441F748\ -7743CF84E565F61F8DD2ECE6B6CCC9444049197AAAF53E926FBEE3BFCA8BE588\ -EC77F29D211BE89DE18B15F6:\ -14BB22B98EAF41A4C224FD3C37188A755F9B04F46F3E23A652DA3DB9E25D2F2C - -DB11F609BABA7B0CA634926B1DD539C8CBADA24967D7ADD4D9876F77C2D80C0F\ -4DCEFBD7121548373582705CCA2495BD2A43716FE64ED26D059CFB566B3364BD\ -49EE0717BDD9810DD14D8FAD80DBBDC4CAFB37CC60FB0FE2A80FB4541B8CA9D5\ -9DCE457738A9D3D8F641AF8C3FD6DA162DC16FC01AAC527A4A0255B4D231C0BE\ -50F44F0DB0B713AF03D968FE7F0F61ED0824C55C4B5265548FEBD6AAD5C5EEDF\ -63EFE793489C39B8FD29D104CE:\ -EB5668F9941C06E5E38EA01B7FA980638B9536CA1939950C1629F84A6EFF3866 - -BEBD4F1A84FC8B15E4452A54BD02D69E304B7F32616AADD90537937106AE4E28\ -DE9D8AAB02D19BC3E2FDE1D651559E296453E4DBA94370A14DBBB2D1D4E20223\ -02EE90E208321EFCD8528AD89E46DC839EA9DF618EA8394A6BFF308E7726BAE0\ -C19BCD4BE52DA6258E2EF4E96AA21244429F49EF5CB486D7FF35CAC1BACB7E95\ -711944BCCB2AB34700D42D1EB38B5D536B947348A458EDE3DC6BD6EC547B1B0C\ -AE5B257BE36A7124E1060C170FFA:\ -913014BB6E243FAC3A22A185F8227A68C2311DC0B718E276BBBDB73AF98BE35F - -5ACA56A03A13784BDC3289D9364F79E2A85C12276B49B92DB0ADAA4F206D5028\ -F213F678C3510E111F9DC4C1C1F8B6ACB17A6413AA227607C515C62A733817BA\ -5E762CC6748E7E0D6872C984D723C9BB3B117EB8963185300A80BFA65CDE495D\ -70A46C44858605FCCBED086C2B45CEF963D33294DBE9706B13AF22F1B7C4CD5A\ -001CFEC251FBA18E722C6E1C4B1166918B4F6F48A98B64B3C07FC86A6B17A6D0\ -480AB79D4E6415B520F1C484D675B1:\ -0284418C10190F413042E3ECEB3954979B94AFBF2E545FC7F8A3C7DB2C235916 - -A5AAD0E4646A32C85CFCAC73F02FC5300F1982FABB2F2179E28303E447854094\ -CDFC854310E5C0F60993CEFF54D84D6B46323D930ADB07C17599B35B505F09E7\ -84BCA5985E0172257797FB53649E2E9723EFD16865C31B5C3D5113B58BB0BFC8\ -920FABDDA086D7537E66D709D050BD14D0C960873F156FAD5B3D3840CDFCDC9B\ -E6AF519DB262A27F40896AB25CC39F96984D650611C0D5A3080D5B3A1BF186AB\ -D42956588B3B58CD948970D298776060:\ -8FEBFF801787F5803E151DCA3434A5CD44ADB49F1C2FFD5D0CD077A9075A492D - -06CBBE67E94A978203EAD6C057A1A5B098478B4B4CBEF5A97E93C8E42F557271\ -3575FC2A884531D7622F8F879387A859A80F10EF02708CD8F7413AB385AFC357\ -678B9578C0EBF641EF076A1A30F1F75379E9DCB2A885BDD295905EE80C0168A6\ -2A9597D10CF12DD2D8CEE46645C7E5A141F6E0E23AA482ABE5661C16E69EF1E2\ -8371E2E236C359BA4E92C25626A7B7FF13F6EA4AE906E1CFE163E91719B1F750\ -A96CBDE5FBC953D9E576CD216AFC90323A:\ -EA7511B993B786DF59A3B3E0B3CD876C0F056D6CA43CC89C51C1B21CCDC79B42 - -F1C528CF7739874707D4D8AD5B98F7C77169DE0B57188DF233B2DC8A5B31EDA5\ -DB4291DD9F68E6BAD37B8D7F6C9C0044B3BF74BBC3D7D1798E138709B0D75E7C\ -593D3CCCDC1B20C7174B4E692ADD820ACE262D45CCFAE2077E87879634716806\ -0A162ECCA8C38C1A88350BD63BB539134F700FD4ADDD5959E255337DAA06BC86\ -358FABCBEFDFB5BC889783D843C08AADC6C4F6C36F65F156E851C9A0F917E4A3\ -67B5AD93D874812A1DE6A7B93CD53AD97232:\ -BAAECB6E9DB57971D5C70F5819FF89C5093254DE19EF6059C43CC0AFDA7C5D34 - -9D9F3A7ECD51B41F6572FD0D0881E30390DFB780991DAE7DB3B47619134718E6\ -F987810E542619DFAA7B505C76B7350C6432D8BF1CFEBDF1069B90A35F0D04CB\ -DF130B0DFC7875F4A4E62CDB8E525AADD7CE842520A482AC18F09442D78305FE\ -85A74E39E760A4837482ED2F437DD13B2EC1042AFCF9DECDC3E877E50FF4106A\ -D10A525230D11920324A81094DA31DEAB6476AA42F20C84843CFC1C58545EE80\ -352BDD3740DD6A16792AE2D86F11641BB717C2:\ -56DB69430B8CA852221D55D7BBFF477DC83F7CB44AB44DDD64C31A52C483DB4F - -5179888724819FBAD3AFA927D3577796660E6A81C52D98E9303261D5A4A83232\ -F6F758934D50AA83FF9E20A5926DFEBAAC49529D006EB923C5AE5048ED544EC4\ -71ED7191EDF46363383824F915769B3E688094C682B02151E5EE01E510B431C8\ -865AFF8B6B6F2F59CB6D129DA79E97C6D2B8FA6C6DA3F603199D2D1BCAB54768\ -2A81CD6CF65F6551121391D78BCC23B5BD0E922EC6D8BF97C952E84DD28AEF90\ -9ABA31EDB903B28FBFC33B7703CD996215A11238:\ -F8538F597F4463CAD7A91905744B87156DB33C65BA87B912427FEC3669F425D4 - -576EF3520D30B7A4899B8C0D5E359E45C5189ADD100E43BE429A02FB3DE5FF4F\ -8FD0E79D9663ACCA72CD29C94582B19292A557C5B1315297D168FBB54E9E2ECD\ -13809C2B5FCE998EDC6570545E1499DBE7FB74D47CD7F35823B212B05BF3F5A7\ -9CAA34224FDD670D335FCB106F5D92C3946F44D3AFCBAE2E41AC554D8E6759F3\ -32B76BE89A0324AA12C5482D1EA3EE89DED4936F3E3C080436F539FA137E74C6\ -D3389BDF5A45074C47BC7B20B0948407A66D855E2F:\ -447EDA923CFE1112A6F1A3E4C735BF8EE9E4F2AEE7DE666A472FF8CF0FC65315 - -0DF2152FA4F4357C8741529DD77E783925D3D76E95BAFA2B542A2C33F3D1D117\ -D159CF473F82310356FEE4C90A9E505E70F8F24859656368BA09381FA245EB6C\ -3D763F3093F0C89B972E66B53D59406D9F01AEA07F8B3B615CAC4EE4D05F542E\ -7D0DAB45D67CCCCD3A606CCBEB31EA1FA7005BA07176E60DAB7D78F6810EF086\ -F42F08E595F0EC217372B98970CC6321576D92CE38F7C397A403BADA1548D205\ -C343AC09DECA86325373C3B76D9F32028FEA8EB32515:\ -74D94C13AFEA4DDD07A637B68B6FE095017C092B3CDCCDC498E26035D86D921E - -3E15350D87D6EBB5C8AD99D42515CFE17980933C7A8F6B8BBBF0A63728CEFAAD\ -2052623C0BD5931839112A48633FB3C2004E0749C87A41B26A8B48945539D1FF\ -41A4B269462FD199BFECD45374756F55A9116E92093AC99451AEFB2AF9FD32D6\ -D7F5FBC7F7A540D5097C096EBC3B3A721541DE073A1CC02F7FB0FB1B9327FB0B\ -1218CA49C9487AB5396622A13AE546C97ABDEF6B56380DDA7012A8384091B665\ -6D0AB272D363CEA78163FF765CDD13AB1738B940D16CAE:\ -CC11196C095BFFA090A05BA0BC255D38BDA7218D9311143F4F200B1852D1BB0D - -C38D6B0B757CB552BE40940ECE0009EF3B0B59307C1451686F1A22702922800D\ -58BCE7A636C1727EE547C01B214779E898FC0E560F8AE7F61BEF4D75EAA696B9\ -21FD6B735D171535E9EDD267C192B99880C87997711002009095D8A7A437E258\ -104A41A505E5EF71E5613DDD2008195F0C574E6BA3FE40099CFA116E5F1A2FA8\ -A6DA04BADCB4E2D5D0DE31FDC4800891C45781A0AAC7C907B56D631FCA5CE8B2\ -CDE620D11D1777ED9FA603541DE794DDC5758FCD5FAD78C0:\ -8C085B54C213704374DDD920A45168608BE65DFD036A562659F47143604144C2 - -8D2DE3F0B37A6385C90739805B170057F091CD0C7A0BC951540F26A5A75B3E69\ -4631BB64C7635EED316F51318E9D8DE13C70A2ABA04A14836855F35E480528B7\ -76D0A1E8A23B547C8B8D6A0D09B241D3BE9377160CCA4E6793D00A515DC2992C\ -B7FC741DACA171431DA99CCE6F7789F129E2AC5CF65B40D703035CD2185BB936\ -C82002DAF8CBC27A7A9E554B06196630446A6F0A14BA155ED26D95BD627B7205\ -C072D02B60DB0FD7E49EA058C2E0BA202DAFF0DE91E845CF79:\ -D2E233264A3773495FFD12159EF7B631660C1B3E53A3DA0F24AE14466F167757 - -C464BBDAD275C50DCD983B65AD1019B9FF85A1E71C807F3204BB2C921DC31FBC\ -D8C5FC45868AE9EF85B6C9B83BBA2A5A822201ED68586EC5EC27FB2857A5D1A2\ -D09D09115F22DCC39FE61F5E1BA0FF6E8B4ACB4C6DA748BE7F3F0839739394FF\ -7FA8E39F7F7E84A33C3866875C01BCB1263C9405D91908E9E0B50E7459FABB63\ -D8C6BBB73D8E3483C099B55BC30FF092FF68B6ADEDFD477D63570C9F5515847F\ -36E24BA0B705557130CEC57EBAD1D0B31A378E91894EE26E3A04:\ -FFAC7CA5FA067419D1BDB00C0E49C6E1A748880923A23ED5DD67DDE63D777EDB - -8B8D68BB8A75732FE272815A68A1C9C5AA31B41DEDC8493E76525D1D013D33CE\ -BD9E21A5BB95DB2616976A8C07FCF411F5F6BC6F7E0B57ACA78CC2790A6F9B89\ -8858AC9C79B165FF24E66677531E39F572BE5D81EB3264524181115F32780257\ -BFB9AEEC6AF12AF28E587CAC068A1A2953B59AD680F4C245B2E3EC36F59940D3\ -7E1D3DB38E13EDB29B5C0F404F6FF87F80FC8BE7A225FF22FBB9C8B6B1D7330C\ -57840D24BC75B06B80D30DAD6806544D510AF6C4785E823AC3E0B8:\ -5B2ECA0920D32B1964BBF5810A6E6E53675ED1B83897FD04600D72E097845859 - -6B018710446F368E7421F1BC0CCF562D9C1843846BC8D98D1C9BF7D9D6FCB48B\ -FC3BF83B36D44C4FA93430AF75CD190BDE36A7F92F867F58A803900DF8018150\ -384D85D82132F123006AC2AEBA58E02A037FE6AFBD65ECA7C44977DD3DC74F48\ -B6E7A1BFD5CC4DCF24E4D52E92BD4455848E4928B0EAC8B7476FE3CC03E862AA\ -4DFF4470DBFED6DE48E410F25096487ECFC32A27277F3F5023B2725ADE461B13\ -55889554A8836C9CF53BD767F5737D55184EEA1AB3F53EDD0976C485:\ -68F41FDFC7217E89687ED118BC31AC6ED2D9D1E1A2F1B20A2D429729FA03517B - -C9534A24714BD4BE37C88A3DA1082EDA7CABD154C309D7BD670DCCD95AA53559\ -4463058A29F79031D6ECAA9F675D1211E9359BE82669A79C855EA8D89DD38C2C\ -761DDD0EC0CE9E97597432E9A1BEAE062CDD71EDFDFD464119BE9E69D18A7A7F\ -D7CE0E2106F0C8B0ABF4715E2CA48EF9F454DC203C96656653B727083513F8EF\ -B86E49C513BB758B3B052FE21F1C05BB33C37129D6CC81F1AEF6ADC45B0E8827\ -A830FE545CF57D0955802C117D23CCB55EA28F95C0D8C2F9C5A242B33F:\ -FA2F3DE31E9CF25AB9A978C82D605A43EE39B68AC8E30F49F9D209CB4E172AB4 - -07906C87297B867ABF4576E9F3CC7F82F22B154AFCBF293B9319F1B0584DA6A4\ -0C27B32E0B1B7F412C4F1B82480E70A9235B12EC27090A5A33175A2BB28D8ADC\ -475CEFE33F7803F8CE27967217381F02E67A3B4F84A71F1C5228E0C2AD971373\ -F6F672624FCEA8D1A9F85170FAD30FA0BBD25035C3B41A6175D467998BD1215F\ -6F3866F53847F9CF68EF3E2FBB54BC994DE2302B829C5EEA68EC441FCBAFD7D1\ -6AE4FE9FFF98BF00E5BC2AD54DD91FF9FDA4DD77B6C754A91955D1FBAAD0:\ -BA2AF506C10DA8D7751E67ED766CFCD47D048D6EF9277DBD2ABFE2FD5D787B79 - -588E94B9054ABC2189DF69B8BA34341B77CDD528E7860E5DEFCAA79B0C9A452A\ -D4B82AA306BE84536EB7CEDCBE058D7B84A6AEF826B028B8A0271B69AC3605A9\ -635EA9F5EA0AA700F3EB7835BC54611B922964300C953EFE7491E3677C2CEBE0\ -822E956CD16433B02C68C4A23252C3F9E151A416B4963257B783E038F6B4D5C9\ -F110F871652C7A649A7BCEDCBCCC6F2D0725BB903CC196BA76C76AA9F10A190B\ -1D1168993BAA9FFC96A1655216773458BEC72B0E39C9F2C121378FEAB4E76A:\ -3CD33F8811AF12183C53E978528F53AE7D559432724029E55FCFA9B990B91713 - -08959A7E4BAAE874928813364071194E2939772F20DB7C3157078987C557C2A6\ -D5ABE68D520EEF3DC491692E1E21BCD880ADEBF63BB4213B50897FA005256ED4\ -1B5690F78F52855C8D9168A4B666FCE2DA2B456D7A7E7C17AB5F2FB1EE90B79E\ -698712E963715983FD07641AE4B4E9DC73203FAC1AE11FA1F8C7941FCC82EAB2\ -47ADDB56E2638447E9D609E610B60CE086656AAEBF1DA3C8A231D7D94E2FD0AF\ -E46B391FF14A72EAEB3F44AD4DF85866DEF43D4781A0B3578BC996C87970B132:\ -3ECC9D27994022045CBEAB4FC041F12419CEC8060C8F6F9F0372884DF6074B5C - -CB2A234F45E2ECD5863895A451D389A369AAB99CFEF0D5C9FFCA1E6E63F763B5\ -C14FB9B478313C8E8C0EFEB3AC9500CF5FD93791B789E67EAC12FD038E2547CC\ -8E0FC9DB591F33A1E4907C64A922DDA23EC9827310B306098554A4A78F050262\ -DB5B545B159E1FF1DCA6EB734B872343B842C57EAFCFDA8405EEDBB48EF32E99\ -696D135979235C3A05364E371C2D76F1902F1D83146DF9495C0A6C57D7BF9EE7\ -7E80F9787AEE27BE1FE126CDC9EF893A4A7DCBBC367E40FE4E1EE90B42EA25AF\ -01:\ -1501988A55372AC1B0B78849F3B7E107E0BF1F2CBAF670DE7F15ACBB1A00AD3D - -D16BEADF02AB1D4DC6F88B8C4554C51E866DF830B89C06E786A5F8757E890931\ -0AF51C840EFE8D20B35331F4355D80F73295974653DDD620CDDE4730FB6C8D0D\ -2DCB2B45D92D4FBDB567C0A3E86BD1A8A795AF26FBF29FC6C65941CDDB090FF7\ -CD230AC5268AB4606FCCBA9EDED0A2B5D014EE0C34F0B2881AC036E24E151BE8\ -9EEB6CD9A7A790AFCCFF234D7CB11B99EBF58CD0C589F20BDAC4F9F0E28F75E3\ -E04E5B3DEBCE607A496D848D67FA7B49132C71B878FD5557E082A18ECA1FBDA9\ -4D4B:\ -5C4E860A0175C92C1E6AF2CBB3084162403CED073FAAC901D0D358B6BF5EEFA9 - -8F65F6BC59A85705016E2BAE7FE57980DE3127E5AB275F573D334F73F8603106\ -EC3553016608EF2DD6E69B24BE0B7113BF6A760BA6E9CE1C48F9E186012CF96A\ -1D4849D75DF5BB8315387FD78E9E153E76F8BA7EC6C8849810F59FB4BB9B0043\ -18210B37F1299526866F44059E017E22E96CBE418699D014C6EA01C9F0038B10\ -299884DBEC3199BB05ADC94E955A1533219C1115FED0E5F21228B071F40DD57C\ -4240D98D37B73E412FE0FA4703120D7C0C67972ED233E5DEB300A22605472FA3\ -A3BA86:\ -272B4F689263057FBF7605AAA67AF012D742267164C4FAB68035D99C5829B4F0 - -84891E52E0D451813210C3FD635B39A03A6B7A7317B221A7ABC270DFA946C426\ -69AACBBBDF801E1584F330E28C729847EA14152BD637B3D0F2B38B4BD5BF9C79\ -1C58806281103A3EABBAEDE5E711E539E6A8B2CF297CF351C078B4FA8F7F35CF\ -61BEBF8814BF248A01D41E86C5715EA40C63F7375379A7EB1D78F27622FB468A\ -B784AAABA4E534A6DFD1DF6FA15511341E725ED2E87F98737CCB7B6A6DFAE416\ -477472B046BF1811187D151BFA9F7B2BF9ACDB23A3BE507CDF14CFDF517D2CB5\ -FB9E4AB6:\ -9B28E42B67EF32EC80DA10A07B004E1D71C6DCE71D8013FFA0305D0D0CE0469D - -FDD7A9433A3B4AFABD7A3A5E3457E56DEBF78E84B7A0B0CA0E8C6D53BD0C2DAE\ -31B2700C6128334F43981BE3B213B1D7A118D59C7E6B6493A86F866A1635C128\ -59CFB9AD17460A77B4522A5C1883C3D6ACC86E6162667EC414E9A104AA892053\ -A2B1D72165A855BACD8FAF8034A5DD9B716F47A0818C09BB6BAF22AA503C06B4\ -CA261F557761989D2AFBD88B6A678AD128AF68672107D0F1FC73C5CA74045929\ -7B3292B281E93BCEB761BDE7221C3A55708E5EC84472CDDCAA84ECF23723CC09\ -91355C6280:\ -EE53F83D2E2CCC315C6377EADDA5F42F42F3AADD664E3E895C37CBE9D0E9B9DE - -70A40BFBEF92277A1AAD72F6B79D0177197C4EBD432668CFEC05D099ACCB6510\ -62B5DFF156C0B27336687A94B26679CFDD9DAF7AD204338DD9C4D14114033A5C\ -225BD11F217B5F4732DA167EE3F939262D4043FC9CBA92303B7B5E96AEA12ADD\ -A64859DF4B86E9EE0B58E39091E6B188B408AC94E1294A8911245EE361E60E60\ -1EFF58D1D37639F3753BEC80EBB4EFDE25817436076623FC65415FE51D1B0280\ -366D12C554D86743F3C3B6572E400361A60726131441BA493A83FBE9AFDA90F7\ -AF1AE717238D:\ -21CCFDA65C4B915303012B852AB29481030F87347C29917E21F210F2BD5EFC9C - -74356E449F4BF8644F77B14F4D67CB6BD9C1F5AE357621D5B8147E562B65C665\ -85CAF2E491B48529A01A34D226D436959153815380D5689E30B35357CDAC6E08\ -D3F2B0E88E200600D62BD9F5EAF488DF86A4470EA227006182E44809009868C4\ -C280C43D7D64A5268FA719074960087B3A6ABC837882F882C837834535929389\ -A12B2C78187E2EA07EF8B8EEF27DC85002C3AE35F1A50BEE6A1C48BA7E175F33\ -16670B27983472AA6A61EED0A683A39EE323080620EA44A9F74411AE5CE99030\ -528F9AB49C79F2:\ -F5BF70710DA440EDB43AFD3EB7698180317FFEFA81406BB4DF9C2BB8B0B1C034 - -8C3798E51BC68482D7337D3ABB75DC9FFE860714A9AD73551E120059860DDE24\ -AB87327222B64CF774415A70F724CDF270DE3FE47DDA07B61C9EF2A3551F45A5\ -584860248FABDE676E1CD75F6355AA3EAEABE3B51DC813D9FB2EAA4F0F1D9F83\ -4D7CAD9C7C695AE84B329385BC0BEF895B9F1EDF44A03D4B410CC23A79A6B62E\ -4F346A5E8DD851C2857995DDBF5B2D717AEB847310E1F6A46AC3D26A7F9B4498\ -5AF656D2B7C9406E8A9E8F47DCB4EF6B83CAACF9AEFB6118BFCFF7E44BEF6937\ -EBDDC89186839B77:\ -E83EA21F5BC0976953AF86069A10EB6024A1AC59D609688E4A9759BB8B6C9441 - -FA56BF730C4F8395875189C10C4FB251605757A8FECC31F9737E3C2503B02608\ -E6731E85D7A38393C67DE516B85304824BFB135E33BF22B3A23B913BF6ACD2B7\ -AB85198B8187B2BCD454D5E3318CACB32FD6261C31AE7F6C54EF6A7A2A4C9F3E\ -CB81CE3555D4F0AD466DD4C108A90399D70041997C3B25345A9653F3C9A6711A\ -B1B91D6A9D2216442DA2C973CBD685EE7643BFD77327A2F7AE9CB283620A0871\ -6DFB462E5C1D65432CA9D56A90E811443CD1ECB8F0DE179C9CB48BA4F6FEC360\ -C66F252F6E64EDC96B:\ -A2D93C6367E1862809D367EC37F9DA44CB3A8B4319C6A094C5E7D7266FE3A593 - -B6134F9C3E91DD8000740D009DD806240811D51AB1546A974BCB18D344642BAA\ -5CD5903AF84D58EC5BA17301D5EC0F10CCD0509CBB3FD3FFF9172D193AF0F782\ -252FD1338C7244D40E0E42362275B22D01C4C3389F19DD69BDF958EBE28E31A4\ -FFE2B5F18A87831CFB7095F58A87C9FA21DB72BA269379B2DC2384B3DA953C79\ -25761FED324620ACEA435E52B424A7723F6A2357374157A34CD8252351C25A1B\ -232826CEFE1BD3E70FFC15A31E7C0598219D7F00436294D11891B82497BC78AA\ -5363892A2495DF8C1EEF:\ -3C647B195F22DC16D6DECC8873017DF369EE1C4696340934DB158DC4059C76DF - -C941CDB9C28AB0A791F2E5C8E8BB52850626AA89205BEC3A7E22682313D198B1\ -FA33FC7295381354858758AE6C8EC6FAC3245C6E454D16FA2F51C4166FAB51DF\ -272858F2D603770C40987F64442D487AF49CD5C3991CE858EA2A60DAB6A65A34\ -414965933973AC2457089E359160B7CDEDC42F29E10A91921785F6B7224EE0B3\ -49393CDCFF6151B50B377D609559923D0984CDA6000829B916AB6896693EF6A2\ -199B3C22F7DC5500A15B8258420E314C222BC000BC4E5413E6DD82C993F8330F\ -5C6D1BE4BC79F08A1A0A46:\ -3BB394D056D94FDE68920CD383378EE3ABCC44B7259D3DB9CD0A897E021F7E2E - -4499EFFFAC4BCEA52747EFD1E4F20B73E48758BE915C88A1FFE5299B0B005837\ -A46B2F20A9CB3C6E64A9E3C564A27C0F1C6AD1960373036EC5BFE1A8FC6A435C\ -2185ED0F114C50E8B3E4C7ED96B06A036819C9463E864A58D6286F785E32A804\ -443A56AF0B4DF6ABC57ED5C2B185DDEE8489EA080DEEEE66AA33C2E6DAB36251\ -C402682B6824821F998C32163164298E1FAFD31BABBCFFB594C91888C6219079\ -D907FDB438ED89529D6D96212FD55ABE20399DBEFD342248507436931CDEAD49\ -6EB6E4A80358ACC78647D043:\ -43640F408613CBF7393D900B921F22B826357F3B4FDFF7168EC45CBFB3EF5EFF - -EECBB8FDFA4DA62170FD06727F697D81F83F601FF61E478105D3CB7502F2C89B\ -F3E8F56EDD469D049807A38882A7EEFBC85FC9A950952E9FA84B8AFEBD3CE782\ -D4DA598002827B1EB98882EA1F0A8F7AA9CE013A6E9BC462FB66C8D4A18DA214\ -01E1B93356EB12F3725B6DB1684F2300A98B9A119E5D27FF704AFFB618E12708\ -E77E6E5F34139A5A41131FD1D6336C272A8FC37080F041C71341BEE6AB550CB4\ -A20A6DDB6A8E0299F2B14BC730C54B8B1C1C487B494BDCCFD3A53535AB2F2315\ -90BF2C4062FD2AD58F906A2D0D:\ -CB3713A5D5ABBC6AF72F8B38A701C71269B3B51C62EC5116F96AD0D42A10FD90 - -E64F3E4ACE5C8418D65FEC2BC5D2A303DD458034736E3B0DF719098BE7A206DE\ -AF52D6BA82316CAF330EF852375188CDE2B39CC94AA449578A7E2A8E3F5A9D68\ -E816B8D16889FBC0EBF0939D04F63033AE9AE2BDAB73B88C26D6BD25EE460EE1\ -EF58FB0AFA92CC539F8C76D3D097E7A6A63EBB9B5887EDF3CF076028C5BBD5B9\ -DB3211371AD3FE121D4E9BF44229F4E1ECF5A0F9F0EBA4D5CEB72878AB22C3F0\ -EB5A625323AC66F7061F4A81FAC834471E0C59553F108475FE290D43E6A055AE\ -3EE46FB67422F814A68C4BE3E8C9:\ -B304FC4CA22131857D242EB12FE899ED9E6B55717C3360F113512A84174E6A77 - -D2CB2D733033F9E91395312808383CC4F0CA974E87EC68400D52E96B3FA6984A\ -C58D9AD0938DDE5A973008D818C49607D9DE2284E7618F1B8AED8372FBD52ED5\ -4557AF4220FAC09DFA8443011699B97D743F8F2B1AEF3537EBB45DCC9E13DFB4\ -38428EE190A4EFDB3CAEB7F3933117BF63ABDC7E57BEB4171C7E1AD260AB0587\ -806C4D137B6316B50ABC9CCE0DFF3ACADA47BBB86BE777E617BBE578FF451984\ -4DB360E0A96C6701290E76BB95D26F0F804C8A4F2717EAC4E7DE9F2CFF3BBC55\ -A17E776C0D02856032A6CD10AD2838:\ -A3CA830D4771C1BAA7FADA76C5FCEADD0F3CB9736E19CFEC52E9E74F56BFDD55 - -F2998955613DD414CC111DF5CE30A995BB792E260B0E37A5B1D942FE90171A4A\ -C2F66D4928D7AD377F4D0554CBF4C523D21F6E5F379D6F4B028CDCB9B1758D3B\ -39663242FF3CB6EDE6A36A6F05DB3BC41E0D861B384B6DEC58BB096D0A422FD5\ -42DF175E1BE1571FB52AE66F2D86A2F6824A8CFAACBAC4A7492AD0433EEB1545\ -4AF8F312B3B2A577750E3EFBD370E8A8CAC1582581971FBA3BA4BD0D76E718DA\ -CF8433D33A59D287F8CC92234E7A271041B526E389EFB0E40B6A18B3AAF658E8\ -2ED1C78631FD23B4C3EB27C3FAEC8685:\ -CA158C46370E64A9F032F5BA8E091460FD555EF700EDF7087E56BEBFFA261DE7 - -447797E2899B72A356BA55BF4DF3ACCA6CDB1041EB477BD1834A9F9ACBC340A2\ -94D729F2F97DF3A610BE0FF15EDB9C6D5DB41644B9874360140FC64F52AA03F0\ -286C8A640670067A84E017926A70438DB1BB361DEFEE7317021425F8821DEF26\ -D1EFD77FC853B818545D055ADC9284796E583C76E6FE74C9AC2587AA46AA8F88\ -04F2FEB5836CC4B3ABABAB8429A5783E17D5999F32242EB59EF30CD7ADABC16D\ -72DBDB097623047C98989F88D14EAF02A7212BE16EC2D07981AAA99949DDF89E\ -CD90333A77BC4E1988A82ABF7C7CAF3291:\ -5901CDA0CD1510DB5455D072D2737A6721AD9EE3272953A19C7AB378BF3646C5 - -9F2C18ADE9B380C784E170FB763E9AA205F64303067EB1BCEA93DF5DAC4BF5A2\ -E00B78195F808DF24FC76E26CB7BE31DC35F0844CDED1567BBA29858CFFC97FB\ -29010331B01D6A3FB3159CC1B973D255DA9843E34A0A4061CABDB9ED37F241BF\ -ABB3C20D32743F4026B59A4CCC385A2301F83C0B0A190B0F2D01ACB8F0D41111\ -E10F2F4E149379275599A52DC089B35FDD5234B0CFB7B6D8AEBD563CA1FA653C\ -5C021DFD6F5920E6F18BFAFDBECBF0AB00281333ED50B9A999549C1C8F8C63D7\ -626C48322E9791D5FF72294049BDE91E73F8:\ -F64562D6273EFB5EBD027E0A6F38C3FB204A6DBE894EE01200EA249B747CFE66 - -AE159F3FA33619002AE6BCCE8CBBDD7D28E5ED9D61534595C4C9F43C402A9BB3\ -1F3B301CBFD4A43CE4C24CD5C9849CC6259ECA90E2A79E01FFBAC07BA0E147FA\ -42676A1D668570E0396387B5BCD599E8E66AAED1B8A191C5A47547F61373021F\ -A6DEADCB55363D233C24440F2C73DBB519F7C9FA5A8962EFD5F6252C0407F190\ -DFEFAD707F3C7007D69FF36B8489A5B6B7C557E79DD4F50C06511F599F56C896\ -B35C917B63BA35C6FF8092BAF7D1658E77FC95D8A6A43EEB4C01F33F03877F92\ -774BE89C1114DD531C011E53A34DC248A2F0E6:\ -E7D7A113B3A33175D0ABD2CF4F9ADD8E41DC86C93C9552C5B3588277FBCAA24A - -3B8E97C5FFC2D6A40FA7DE7FCEFC90F3B12C940E7AB415321E29EE692DFAC799\ -B009C99DCDDB708FCE5A178C5C35EE2B8617143EDC4C40B4D313661F49ABDD93\ -CEA79D117518805496FE6ACF292C4C2A1F76B403A97D7C399DAF85B46AD84E16\ -246C67D6836757BDE336C290D5D401E6C1386AB32797AF6BB251E9B2D8FE754C\ -47482B72E0B394EAB76916126FD68EA7D65EB93D59F5B4C5AC40F7C3B37E7F36\ -94F29424C24AF8C8F0EF59CD9DBF1D28E0E10F799A6F78CAD1D45B9DB3D7DEE4\ -A7059ABE99182714983B9C9D44D7F5643596D4F3:\ -3B40C1493AF411AE7849904D478DF2407254BF62B88E9BFFD7B42BD2A60CE0FA - -3434EC31B10FAFDBFEEC0DD6BD94E80F7BA9DCA19EF075F7EB017512AF66D6A4\ -BCF7D16BA0819A1892A6372F9B35BCC7CA8155EE19E8428BC22D214856ED5FA9\ -374C3C09BDE169602CC219679F65A1566FC7316F4CC3B631A18FB4449FA6AFA1\ -6A3DB2BC4212EFF539C67CF184680826535589C7111D73BFFCE431B4C40492E7\ -63D9279560AAA38EB2DC14A212D723F994A1FE656FF4DD14551CE4E7C621B2AA\ -5604A10001B2878A897A28A08095C325E10A26D2FB1A75BFD64C250309BB55A4\ -4F23BBAC0D5516A1C687D3B41EF2FBBF9CC56D4739:\ -FEEB172AEAB2F0DEB748FB77801CA22D3CE99B7A9F9789E479B93D1F4B1D227F - -7C7953D81C8D208FD1C97681D48F49DD003456DE60475B84070EF4847C333B74\ -575B1FC8D2A186964485A3B8634FEAA3595AAA1A2F4595A7D6B6153563DEE31B\ -BAC443C8A33EED6D5D956A980A68366C2527B550EE950250DFB691EACBD5D56A\ -E14B970668BE174C89DF2FEA43AE52F13142639C884FD62A3683C0C3792F0F24\ -AB1318BCB27E21F4737FAB62C77EA38BC8FD1CF41F7DAB64C13FEBE7152BF5BB\ -7AB5A78F5346D43CC741CB6F72B7B8980F268B68BF62ABDFB1577A52438FE14B\ -591498CC95F071228460C7C5D5CEB4A7BDE588E7F21C:\ -B240BC52B8AF1B502E26BF1D5E75FE2663BFBA503FAF10F46754DC3D23CB61C1 - -7A6A4F4FDC59A1D223381AE5AF498D74B7252ECF59E389E49130C7EAEE626E7B\ -D9897EFFD92017F4CCDE66B0440462CDEDFD352D8153E6A4C8D7A0812F701CC7\ -37B5178C2556F07111200EB627DBC299CAA792DFA58F35935299FA3A3519E9B0\ -3166DFFA159103FFA35E8577F7C0A86C6B46FE13DB8E2CDD9DCFBA85BDDDCCE0\ -A7A8E155F81F712D8E9FE646153D3D22C811BD39F830433B2213DD46301941B5\ -9293FD0A33E2B63ADBD95239BC01315C46FDB678875B3C81E053A40F581CFBEC\ -24A1404B1671A1B88A6D06120229518FB13A74CA0AC5AE:\ -3EBACE41F578FDE6603E032FC1C7CFEEF1CB79FE938A94D4C7B58B0BA4CB9720 - -D9FAA14CEBE9B7DE551B6C0765409A33938562013B5E8E0E1E0A6418DF7399D0\ -A6A771FB81C3CA9BD3BB8E2951B0BC792525A294EBD1083688806FE5E7F1E17F\ -D4E3A41D00C89E8FCF4A363CAEDB1ACB558E3D562F1302B3D83BB886ED27B760\ -33798131DAB05B4217381EAAA7BA15EC820BB5C13B516DD640EAEC5A27D05FDF\ -CA0F35B3A5312146806B4C0275BCD0AAA3B2017F346975DB566F9B4D137F4EE1\ -0644C2A2DA66DEECA5342E236495C3C6280528BFD32E90AF4CD9BB908F34012B\ -52B4BC56D48CC8A6B59BAB014988EABD12E1A0A1C2E170E7:\ -65EB4BD5ECCA7164CE9B66727F112C1AC6120DDD200DCB5CE75B7487843FCDB8 - -2D8427433D0C61F2D96CFE80CF1E932265A191365C3B61AAA3D6DCC039F6BA2A\ -D52A6A8CC30FC10F705E6B7705105977FA496C1C708A277A124304F1FC40911E\ -7441D1B5E77B951AAD7B01FD5DB1B377D165B05BBF898042E39660CAF8B279FE\ -5229D1A8DB86C0999ED65E53D01CCBC4B43173CCF992B3A14586F6BA42F5FE30\ -AFA8AE40C5DF29966F9346DA5F8B35F16A1DE3AB6DE0F477D8D8660918060E88\ -B9B9E9CA6A4207033B87A812DBF5544D39E4882010F82B6CE005F8E8FF6FE3C3\ -806BC2B73C2B83AFB704345629304F9F86358712E9FAE3CA3E:\ -D7155F6D3A90801F5E547689389FF62A604C81B7C1583D9204AC6B0194F0E8DD - -5E19D97887FCAAC0387E22C6F803C34A3DACD2604172433F7A8A7A526CA4A2A1\ -271ECFC5D5D7BE5AC0D85D921095350DFC65997D443C21C8094E0A3FEFD2961B\ -CB94AED03291AE310CCDA75D8ACE4BC7D89E7D3E5D1650BDA5D668B8B50BFC8E\ -608E184F4D3A9A2BADC4FF5F07E0C0BC8A9F2E0B2A26FD6D8C550008FAAAB75F\ -D71AF2A424BEC9A7CD9D83FAD4C8E9319115656A8717D3B523A68FF8004258B9\ -990ED362308461804BA3E3A7E92D8F2FFAE5C2FBA55BA5A3C27C0A2F71BD711D\ -2FE1799C2ADB31B200035481E9EE5C4ADF2AB9C0FA50B23975CF:\ -AA7ADAF16F39E398B4AB0ADA037710556B720B0248D84817B2CFDF7600933595 - -C8E976AB4638909387CE3B8D4E510C3230E5690E02C45093B1D297910ABC481E\ -56EEA0F296F98379DFC9080AF69E73B2399D1C143BEE80AE1328162CE1BA7F6A\ -8374679B20AACD380EB4E61382C99998704D62701AFA914F9A2705CDB065885F\ -50D086C3EB5753700C387118BB142F3E6DA1E988DFB31AC75D7368931E45D139\ -1A274B22F83CEB072F9BCABC0B216685BFD789F5023971024B1878A205442522\ -F9EA7D8797A4102A3DF41703768251FD5E017C85D1200A464118AA35654E7CA3\ -9F3C375B8EF8CBE7534DBC64BC20BEFB417CF60EC92F63D9EE7397:\ -B195463FE22A160802BE0A0464EE3AB4D2B117DE517B331C7BF04C8BA90C6120 - -7145FA124B7429A1FC2231237A949BA7201BCC1822D3272DE005B682398196C2\ -5F7E5CC2F289FBF44415F699CB7FE6757791B1443410234AE061EDF623359E2B\ -4E32C19BF88450432DD01CAA5EB16A1DC378F391CA5E3C4E5F356728BDDD4975\ -DB7C890DA8BBC84CC73FF244394D0D48954978765E4A00B593F70F2CA082673A\ -261ED88DBCEF1127728D8CD89BC2C597E9102CED6010F65FA75A14EBE467FA57\ -CE3BD4948B6867D74A9DF5C0EC6F530CBF2EE61CE6F06BC8F2864DFF5583776B\ -31DF8C7FFCB61428A56BF7BD37188B4A5123BBF338393AF46EDA85E6:\ -9F9296C53E753A4DE4E5C5A547F51763A96903B083FBC7A7828EFFE4763A7CE6 - -7FDFADCC9D29BAD23AE038C6C65CDA1AEF757221B8872ED3D75FF8DF7DA0627D\ -266E224E812C39F7983E4558BFD0A1F2BEF3FEB56BA09120EF762917B9C09386\ -7948547AEE98600D10D87B20106878A8D22C64378BF634F7F75900C03986B077\ -B0BF8B740A82447B61B99FEE5376C5EB6680EC9E3088F0BDD0C56883413D60C1\ -357D3C811950E5890E7600103C916341B80C743C6A852B7B4FB60C3BA21F3BC1\ -5B8382437A68454779CF3CD7F9F90CCC8EF28D0B706535B1E4108EB5627BB45D\ -719CB046839AEE311CA1ABDC8319E050D67972CB35A6B1601B25DBF487:\ -51DE4090AEC36F6C446476C709253272CAB595D9887CA5D52A9B38086854D58F - -988638219FD3095421F826F56E4F09E356296B628C3CE6930C9F2E758FD1A80C\ -8273F2F61E4DAAE65C4F110D3E7CA0965AC7D24E34C0DC4BA2D6FF0BF5BBE93B\ -3585F354D7543CB542A1AA54674D375077F2D360A8F4D42F3DB131C3B7AB7306\ -267BA107659864A90C8C909460A73621D1F5D9D3FD95BEB19B23DB1CB6C0D0FB\ -A91D36891529B8BD8263CAA1BAB56A4AFFAED44962DF096D8D5B1EB845EF3118\ -8B3E10F1AF811A13F156BEB7A288AAE593EBD1471B624AA1A7C6ADF01E2200B3\ -D72D88A3AED3100C88231E41EFC376906F0B580DC895F080FDA5741DB1CB:\ -87A17400F919F2F53232B2205E1E8B14BD5698A76E74B9BDD5638A5C7BA5DE1E - -5AAB62756D307A669D146ABA988D9074C5A159B3DE85151A819B117CA1FF6597\ -F6156E80FDD28C9C3176835164D37DA7DA11D94E09ADD770B68A6E081CD22CA0\ -C004BFE7CD283BF43A588DA91F509B27A6584C474A4A2F3EE0F1F56447379240\ -A5AB1FB77FDCA49B305F07BA86B62756FB9EFB4FC225C86845F026EA542076B9\ -1A0BC2CDD136E122C659BE259D98E5841DF4C2F60330D4D8CDEE7BF1A0A24452\ -4EECC68FF2AEF5BF0069C9E87A11C6E519DE1A4062A10C83837388F7EF58598A\ -3846F49D499682B683C4A062B421594FAFBC1383C943BA83BDEF515EFCF10D:\ -9742536C461D0C3503A6C943FA8105DBCD1E542F728D71CCC0517CFFC232EA68 - -47B8216AA0FBB5D67966F2E82C17C07AA2D6327E96FCD83E3DE7333689F3EE79\ -994A1BF45082C4D725ED8D41205CB5BCDF5C341F77FACB1DA46A5B9B2CBC49EA\ -DF786BCD881F371A95FA17DF73F606519AEA0FF79D5A11427B98EE7F13A5C006\ -37E2854134691059839121FEA9ABE2CD1BCBBBF27C74CAF3678E05BFB1C94989\ -7EA01F56FFA4DAFBE8644611685C617A3206C7A7036E4AC816799F693DAFE7F1\ -9F303CE4EBA09D21E03610201BFC665B72400A547A1E00FA9B7AD8D84F84B34A\ -EF118515E74DEF11B9188BD1E1F97D9A12C30132EC2806339BDADACDA2FD8B78:\ -AE3BF0936497A2955DF874B7F2685314C7606030B9C6E7BFB8A8DFF9825957B5 - -8CFF1F67FE53C098896D9136389BD8881816CCAB34862BB67A656E3D98896F3C\ -E6FFD4DA73975809FCDF9666760D6E561C55238B205D8049C1CEDEEF374D1735\ -DAA533147BFA960B2CCE4A4F254176BB4D1BD1E89654432B8DBE1A135C42115B\ -394B024856A2A83DC85D6782BE4B444239567CCEC4B184D4548EAE3FF6A192F3\ -43292BA2E32A0F267F31CC26719EB85245D415FB897AC2DA433EE91A99424C9D\ -7F1766A44171D1651001C38FC79294ACCC68CEB5665D36218454D3BA169AE058\ -A831338C17743603F81EE173BFC0927464F9BD728DEE94C6AEAB7AAE6EE3A627\ -E8:\ -5FE0216DCC1BDB48F3375B9173B7B232939AA2177C6D056E908C8F2B9293B030 - -EACD07971CFF9B9939903F8C1D8CBB5D4DB1B548A85D04E037514A583604E787\ -F32992BF2111B97AC5E8A938233552731321522AB5E8583561260B7D13EBEEF7\ -85B23A41FD8576A6DA764A8ED6D822D4957A545D5244756C18AA80E1AAD4D1F9\ -C20D259DEE1711E2CC8FD013169FB7CC4CE38B362F8E0936AE9198B7E838DCEA\ -4F7A5B9429BB3F6BBCF2DC92565E3676C1C5E6EB3DD2A0F86AA23EDD3D0891F1\ -97447692794B3DFA269611AD97F72B795602B4FDB198F3FD3EB41B415064256E\ -345E8D8C51C555DC8A21904A9B0F1AD0EFFAB7786AAC2DA3B196507E9F33CA35\ -6427:\ -C339904EC865F24FB3F88F142A8786D770934E006EAEDDBF45ACBB6B38431021 - -23AC4E9A42C6EF45C3336CE6DFC2FF7DE8884CD23DC912FEF0F7756C09D335C1\ -89F3AD3A23697ABDA851A81881A0C8CCAFC980AB2C702564C2BE15FE4C4B9F10\ -DFB2248D0D0CB2E2887FD4598A1D4ACDA897944A2FFC580FF92719C95CF2AA42\ -DC584674CB5A9BC5765B9D6DDF5789791D15F8DD925AA12BFFAFBCE60827B490\ -BB7DF3DDA6F2A143C8BF96ABC903D83D59A791E2D62814A89B8080A28060568C\ -F24A80AE61179FE84E0FFAD00388178CB6A617D37EFD54CC01970A4A41D1A8D3\ -DDCE46EDBBA4AB7C90AD565398D376F431189CE8C1C33E132FEAE6A8CD17A61C\ -630012:\ -4CA8B7FEBDF0A8062E9B76185CF4165071BB30928C18F14338C305626789C6D3 - -0172DF732282C9D488669C358E3492260CBE91C95CFBC1E3FEA6C4B0EC129B45\ -F242ACE09F152FC6234E1BEE8AAB8CD56E8B486E1DCBA9C05407C2F95DA8D8F1\ -C0AF78EE2ED82A3A79EC0CB0709396EE62AADB84F8A4EE8A7CCCA3C1EE84E302\ -A09EA802204AFECF04097E67D0F8E8A9D2651126C0A598A37081E42D168B0AE8\ -A71951C524259E4E2054E535B779679BDADE566FE55700858618E626B4A0FAF8\ -95BCCE9011504A49E05FD56127EAE3D1F8917AFB548ECADABDA1020111FEC931\ -4C413498A360B08640549A22CB23C731ACE743252A8227A0D2689D4C60016066\ -78DFB921:\ -23D2614420859B2F13AC084453DD35C33FE47C894DD50C087FD1653FCAEEA00B - -3875B9240CF3E0A8B59C658540F26A701CF188496E2C2174788B126FD29402D6\ -A75453BA0635284D08835F40051A2A9683DC92AFB9383719191231170379BA6F\ -4ADC816FECBB0F9C446B785BF520796841E58878B73C58D3EBB097CE4761FDEA\ -BE15DE2F319DFBAF1742CDEB389559C788131A6793E193856661376C81CE9568\ -DA19AA6925B47FFD77A43C7A0E758C37D69254909FF0FBD415EF8EB937BCD49F\ -91468B49974C07DC819ABD67395DB0E05874FF83DDDAB895344ABD0E7111B2DF\ -9E58D76D85AD98106B36295826BE04D435615595605E4B4BB824B33C4AFEB5E7\ -BB0D19F909:\ -5590BB75247D7CD0B35620F0062B90FFB2A24DE41220ED629D9E9A7ABCADFB51 - -747CC1A59FEFBA94A9C75BA866C30DC5C1CB0C0F8E9361D98484956DD5D1A40F\ -6184AFBE3DAC9F76028D1CAECCFBF69199C6CE2B4C092A3F4D2A56FE5A33A007\ -57F4D7DEE5DFB0524311A97AE0668A47971B95766E2F6DD48C3F57841F91F04A\ -00AD5EA70F2D479A2620DC5CD78EAAB3A3B011719B7E78D19DDF70D9423798AF\ -77517EBC55392FCD01FC600D8D466B9E7A7A85BF33F9CC5419E9BD874DDFD609\ -81150DDAF8D7FEBAA4374F0872A5628D318000311E2F5655365AD4D407C20E5C\ -04DF17A222E7DEEC79C5AB1116D8572F91CD06E1CCC7CED53736FC867FD49ECE\ -BE6BF8082E8A:\ -E5932441B012E503B0B0C6104703BA02613E472AD65655C085B0ADB07656B28F - -57AF971FCCAEC97435DC2EC9EF0429BCEDC6B647729EA168858A6E49AC1071E7\ -06F4A5A645CA14E8C7746D65511620682C906C8B86EC901F3DDED4167B3F00B0\ -6CBFAC6AEE3728051B3E5FF10B4F9ED8BD0B8DA94303C833755B3CA3AEDDF0B5\ -4BC8D6632138B5D25BAB03D17B3458A9D782108006F5BB7DE75B5C0BA854B423\ -D8BB801E701E99DC4FEAAD59BC1C7112453B04D33EA3635639FB802C73C2B71D\ -58A56BBD671B18FE34ED2E3DCA38827D63FDB1D4FB3285405004B2B3E26081A8\ -FF08CD6D2B08F8E7B7E90A2AB1ED7A41B1D0128522C2F8BFF56A7FE67969422C\ -E839A9D4608F03:\ -21C0D84EB7B61774F97DB5D9ACF1DFFAFB662C01ED291A442BEC6F14D1334699 - -04E16DEDC1227902BAAF332D3D08923601BDD64F573FAA1BB7201918CFE16B1E\ -10151DAE875DA0C0D63C59C3DD050C4C6A874011B018421AFC4623AB0381831B\ -2DA2A8BA42C96E4F70864AC44E106F94311051E74C77C1291BF5DB9539E69567\ -BF6A11CF6932BBBAD33F8946BF5814C066D851633D1A513510039B349939BFD4\ -2B858C21827C8FF05F1D09B1B0765DC78A135B5CA4DFBA0801BCADDFA175623C\ -8B647EACFB4444B85A44F73890607D06D507A4F8393658788669F6EF4DEB58D0\ -8C50CA0756D5E2F49D1A7AD73E0F0B3D3B5F090ACF622B1878C59133E4A848E0\ -5153592EA81C6FBF:\ -0D1E6BB88188B49AF0A9A05EB1AF94255E6799515A2F8EB46AA6AF9A9DD5B9E0 - -7C815C384EEE0F288ECE27CCED52A01603127B079C007378BC5D1E6C5E9E6D1C\ -735723ACBBD5801AC49854B2B569D4472D33F40BBB8882956245C366DC3582D7\ -1696A97A4E19557E41E54DEE482A14229005F93AFD2C4A7D8614D10A97A9DFA0\ -7F7CD946FA45263063DDD29DB8F9E34DB60DAA32684F0072EA2A9426ECEBFA52\ -39FB67F29C18CBAA2AF6ED4BF4283936823AC1790164FEC5457A9CBA7C767CA5\ -9392D94CAB7448F50EB34E9A93A80027471CE59736F099C886DEA1AB4CBA4D89\ -F5FC7AE2F21CCD27F611ECA4626B2D08DC22382E92C1EFB2F6AFDC8FDC3D2172\ -604F5035C46B8197D3:\ -935DED24F5CECC69E1F012B60B7831ABCE7EF50EEB0BEA7F816C3DBF2B4ABDC1 - -E29D505158DBDD937D9E3D2145658EE6F5992A2FC790F4F608D9CDB44A091D5B\ -94B88E81FAC4FDF5C49442F13B911C55886469629551189EAFF62488F1A479B7\ -DB11A1560E198DDCCCCF50159093425FF7F1CB8D1D1246D0978764087D6BAC25\ -7026B090EFAE8CEC5F22B6F21C59ACE1AC7386F5B8837CA6A12B6FBF5534DD05\ -60EF05CA78104D3B943DDB220FEAEC89AA5E692A00F822A2AB9A2FE60350D75E\ -7BE16FF2526DC643872502D01F42F188ABED0A6E9A6F5FD0D1CE7D5755C9FFA6\ -6B0AF0B20BD806F08E06156690D81AC811778CA3DAC2C249B96002017FCE93E5\ -07E3B953ACF99964B847:\ -6755BF7E60E4E07965BAC24E51B1DE93E3DD42AE780F256647D4CC2EF8EFF771 - -D85588696F576E65ECA0155F395F0CFACD83F36A99111ED5768DF2D116D2121E\ -32357BA4F54EDE927F189F297D3A97FAD4E9A0F5B41D8D89DD7FE20156799C2B\ -7B6BF9C957BA0D6763F5C3BC5129747BBB53652B49290CFF1C87E2CDF2C4B95D\ -8AAEE09BC8FBFA6883E62D237885810491BFC101F1D8C636E3D0EDE838AD05C2\ -07A3DF4FAD76452979EB99F29AFAECEDD1C63B8D36CF378454A1BB67A741C77A\ -C6B6B3F95F4F02B64DABC15438613EA49750DF42EE90101F115AA9ABB9FF6432\ -4DDE9DABBB01054E1BD6B4BCDC7930A44C2300D87CA78C06924D0323AD7887E4\ -6C90E8C4D100ACD9EED21E:\ -62C9F5E5B56E2994327A7F9A03888DA7BAD67E387593803B1807482B137B4509 - -3A12F8508B40C32C74492B66323375DCFE49184C78F73179F3314B79E63376B8\ -AC683F5A51F1534BD729B02B04D002F55CBD8E8FC9B5EC1EA6BBE6A0D0E74315\ -18E6BA45D124035F9D3DCE0A8BB7BF1430A9F657E0B4EA9F20EB20C786A58181\ -A1E20A96F1628F8728A13BDF7A4B4B32FC8AA7054CC4881AE7FA19AFA65C6C3E\ -E1B3ADE3192AF42054A8A911B8EC1826865D46D93F1E7C5E2B7813C92A506E53\ -886F3D4701BB93D2A681AD109C845904BB861AF8AF0646B6E399B38B614051D3\ -4F6842563A0F37EC00CB3D865FC5D746C4987DE2A65071100883A2A9C7A2BFE1\ -E2DD603D9EA24DC7C5FD06BE:\ -9927FA5EFD86304E73D54AA4928818C05B01504672C529471394A82E049E5F95 - -1861EDCE46FA5AD17E1FF1DEAE084DEC580F97D0A67885DFE834B9DFAC1AE076\ -742CE9E267512CA51F6DF5A455AF0C5FD6ABF94ACEA103A3370C354485A7846F\ -B84F3AC7C2904B5B2FBF227002CE512133BB7E1C4E50057BFD1E44DB33C7CDB9\ -69A99E284B184F50A14B068A1FC5009D9B298DBE92239572A7627AAC02ABE8F3\ -E3B473417F36D4D2505D16B7577F4526C9D94A270A2DFE450D06DA8F6FA95687\ -9A0A55CFE99E742EA555EA477BA3E9B44CCD508C375423611AF92E55345DC215\ -779B2D5119EBA49C71D49B9FE3F1569FA24E5CA3E332D042422A8B8158D3EC66\ -A80012976F31FFDF305F0C9C5E:\ -84E056BF7BDFC73A3AAA95B00A74A136D776069BEEB304423BEAD90120DB6350 - -08D0FFDE3A6E4EF65608EA672E4830C12943D7187CCFF08F4941CFC13E545F3B\ -9C7AD5EEBBE2B01642B486CAF855C2C73F58C1E4E3391DA8E2D63D96E15FD849\ -53AE5C231911B00AD6050CD7AAFDAAC9B0F663AE6AAB45519D0F5391A541707D\ -479034E73A6AD805AE3598096AF078F1393301493D663DD71F83869CA27BA508\ -B7E91E81E128C1716DC3ACFE3084B2201E04CF8006617EECF1B640474A5D45CF\ -DE9F4D3EF92D6D055B909892194D8A8218DB6D8203A84261D200D71473D7488F\ -3427416B6896C137D455F231071CACBC86E0415AB88AEC841D96B7B8AF41E05B\ -B461A40645BF176601F1E760DE5F:\ -401C3BE59CC373453AEF9603F7335C1D5FE669909A1425D7671DCB84A49887CA - -D782ABB72A5BE3392757BE02D3E45BE6E2099D6F000D042C8A543F50ED6EBC05\ -5A7F133B0DD8E9BC348536EDCAAE2E12EC18E8837DF7A1B3C87EC46D50C241DE\ -E820FD586197552DC20BEEA50F445A07A38F1768A39E2B2FF05DDDEDF751F1DE\ -F612D2E4D810DAA3A0CC904516F9A43AF660315385178A529E51F8AAE141808C\ -8BC5D7B60CAC26BB984AC1890D0436EF780426C547E94A7B08F01ACBFC4A3825\ -EAE04F520A9016F2FB8BF5165ED12736FC71E36A49A73614739EAA3EC834069B\ -1B40F1350C2B3AB885C02C640B9F7686ED5F99527E41CFCD796FE4C256C91731\ -86C226169FF257954EBDA81C0E5F99:\ -020485DCD264296AFDB7F643CA828C93356F1714CBCC2FBBDD30F9896C3F2789 - -5FCE8109A358570E40983E1184E541833BB9091E280F258CFB144387B05D190E\ -431CB19BAA67273BA0C58ABE91308E1844DCD0B3678BAA42F335F2FA05267A02\ -40B3C718A5942B3B3E3BFA98A55C25A1466E8D7A603722CB2BBF03AFA54CD769\ -A99F310735EE5A05DAE2C22D397BD95635F58C48A67F90E1B73AAFCD3F82117F\ -0166657838691005B18DA6F341D6E90FC1CDB352B30FAE45D348294E501B6325\ -2DE14740F2B85AE5299DDEC3172DE8B6D0BA219A20A23BB5E10FF434D39DB3F5\ -83305E9F5C039D98569E377B75A70AB837D1DF269B8A4B566F40BB91B577455F\ -D3C356C914FA06B9A7CE24C7317A172D:\ -F8C43E28816BB41993BDB866888F3CC59EFBA208390144D3878DBF9FBFA1D57E - -6172F1971A6E1E4E6170AFBAD95D5FEC99BF69B24B674BC17DD78011615E502D\ -E6F56B86B1A71D3F4348087218AC7B7D09302993BE272E4A591968AEF18A1262\ -D665610D1070EE91CC8DA36E1F841A69A7A682C580E836941D21D909A3AFC1F0\ -B963E1CA5AB193E124A1A53DF1C587470E5881FB54DAE1B0D840F0C8F9D1B04C\ -645BA1041C7D8DBF22030A623AA15638B3D99A2C400FF76F3252079AF88D2B37\ -F35EE66C1AD7801A28D3D388AC450B97D5F0F79E4541755356B3B1A5696B023F\ -39AB7AB5F28DF4202936BC97393B93BC915CB159EA1BD7A0A414CB4B7A1AC3AF\ -68F50D79F0C9C7314E750F7D02FAA58BFA:\ -4EA524E705020284B18284E34683725590E1EE565A6FF598ED4D42B1C987471E - -5668ECD99DFBE215C4118398AC9C9EAF1A1433FAB4CCDD3968064752B625EA94\ -4731F75D48A27D047D67547F14DD0FFAA55FA5E29F7AF0D161D85EAFC4F2029B\ -717C918EAB9D304543290BDBA7158B68020C0BA4E079BC95B5BC0FC044A992B9\ -4B4CCD3BD66D0EABB5DBBAB904D62E00752C4E3B0091D773BCF4C14B4377DA3E\ -FFF824B1CB2FA01B32D1E46C909E626ED2DAE920F4C7DBEB635BC754FACBD8D4\ -9BEBA3F23C1C41CCBFCD0EE0C114E69737F5597C0BF1D859F0C767E18002AE8E\ -39C26261FFDE2920D3D0BAF0E906138696CFE5B7E32B600F45DF3AAA39932F3A\ -7DF95B60FA8712A2271FCAF3911CE7B511B1:\ -E4963E74AE01FF7774B96B4F614D1CB2A4CF8D206ED93C66FA42F71432BE2C3F - -03D625488354DF30E3F875A68EDFCF340E8366A8E1AB67F9D5C5486A96829DFA\ -C0578289082B2A62117E1CF418B43B90E0ADC881FC6AE8105C888E9ECD21AEA1\ -C9AE1A4038DFD17378FED71D02AE492087D7CDCD98F746855227967CB1AB4714\ -261EE3BEAD3F4DB118329D3EBEF4BC48A875C19BA763966DA0EBEA800E01B2F5\ -0B00E9DD4CACA6DCB314D00184EF71EA2391D760C950710DB4A70F9212FFC548\ -61F9DC752CE18867B8AD0C48DF8466EF7231E7AC567F0EB55099E622EBB86CB2\ -37520190A61C66AD34F1F4E289CB3282AE3EAAC6152ED24D2C92BAE5A7658252\ -A53C49B7B02DFE54FDB2E90074B6CF310AC661:\ -0F0D72BF8C0198459E45ECE9CC18E930CB86263ACCF1FC7A00BC857AC9F201AD - -2EDC282FFB90B97118DD03AAA03B145F363905E3CBD2D50ECD692B37BF000185\ -C651D3E9726C690D3773EC1E48510E42B17742B0B0377E7DE6B8F55E00A8A4DB\ -4740CEE6DB0830529DD19617501DC1E9359AA3BCF147E0A76B3AB70C4984C13E\ -339E6806BB35E683AF8527093670859F3D8A0FC7D493BCBA6BB12B5F65E71E70\ -5CA5D6C948D66ED3D730B26DB395B3447737C26FAD089AA0AD0E306CB28BF0AC\ -F106F89AF3745F0EC72D534968CCA543CD2CA50C94B1456743254E358C1317C0\ -7A07BF2B0ECA438A709367FAFC89A57239028FC5FECFD53B8EF958EF10EE0608\ -B7F5CB9923AD97058EC067700CC746C127A61EE3:\ -DD1D2A92B3F3F3902F064365838E1F5F3468730C343E2974E7A9ECFCD84AA6DB - -90B28A6AA1FE533915BCB8E81ED6CACDC10962B7FF82474F845EEB86977600CF\ -70B07BA8E3796141EE340E3FCE842A38A50AFBE90301A3BDCC591F2E7D9DE53E\ -495525560B908C892439990A2CA2679C5539FFDF636777AD9C1CDEF809CDA9E8\ -DCDB451ABB9E9C17EFA4379ABD24B182BD981CAFC792640A183B61694301D04C\ -5B3EAAD694A6BD4CC06EF5DA8FA23B4FA2A64559C5A68397930079D250C51BCF\ -00E2B16A6C49171433B0AADFD80231276560B80458DD77089B7A1BBCC9E7E4B9\ -F881EACD6C92C4318348A13F4914EB27115A1CFC5D16D7FD94954C3532EFACA2\ -CAB025103B2D02C6FD71DA3A77F417D7932685888A:\ -21BF20664CEC2CD2CEB1DFFC1D78893D5CA1A7DA88EB6BFD0C6EFCA6190C9E15 - -2969447D175490F2AA9BB055014DBEF2E6854C95F8D60950BFE8C0BE8DE254C2\ -6B2D31B9E4DE9C68C9ADF49E4EE9B1C2850967F29F5D08738483B417BB96B2A5\ -6F0C8ACA632B552059C59AAC3F61F7B45C966B75F1D9931FF4E596406378CEE9\ -1AAA726A3A84C33F37E9CDBE626B5745A0B06064A8A8D56E53AAF102D23DD9DF\ -0A3FDF7A638509A6761A33FA42FA8DDBD8E16159C93008B53765019C3F0E9F10\ -B144CE2AC57F5D7297F9C9949E4FF68B70D339F87501CE8550B772F32C6DA8AD\ -2CE2100A895D8B08FA1EEAD7C376B407709703C510B50F87E73E43F8E7348F87\ -C3832A547EF2BBE5799ABEDCF5E1F372EA809233F006:\ -6472D7C530B548E4B47D2278D7172B421A0FB6398A2823DD2F2B26208AF8942E - -721645633A44A2C78B19024EAECF58575AB23C27190833C26875DC0F0D50B46A\ -EA9C343D82EA7D5B3E50EC700545C615DAEAEA64726A0F05607576DCD396D812\ -B03FB6551C641087856D050B10E6A4D5577B82A98AFB89CEE8594C9DC19E79FE\ -FF0382FCFD127F1B803A4B9946F4AC9A4378E1E6E041B1389A53E3450CD32D9D\ -2941B0CBABDB50DA8EA2513145164C3AB6BCBD251C448D2D4B087AC57A59C228\ -5D564F16DA4ED5E607ED979592146FFB0EF3F3DB308FB342DF5EB5924A48256F\ -C763141A278814C82D6D6348577545870AE3A83C7230AC02A1540FE1798F7EF0\ -9E335A865A2AE0949B21E4F748FB8A51F44750E213A8FB:\ -2AC7FF80EE36D500995C973B8746D8466715E6D8B0F554AACB5D2876D7F5B874 - -6B860D39725A14B498BB714574B4D37CA787404768F64C648B1751B353AC92BA\ -C2C3A28EA909FDF0423336401A02E63EC24325300D823B6864BB701F9D7C7A1F\ -8EC9D0AE3584AA6DD62EA1997CD831B4BABD9A4DA50932D4EFDA745C61E41308\ -90E156AEE6113716DAF95764222A91187DB2EFFEA49D5D0596102D619BD26A61\ -6BBFDA8335505FBB0D90B4C180D1A2335B91538E1668F9F9642790B4E55F9CAB\ -0FE2BDD2935D001EE6419ABAB5457880D0DBFF20ED8758F4C20FE759EFB33141\ -CF0E892587FE8187E5FBC57786B7E8B089612C936DFC03D27EFBBE7C8673F160\ -6BD51D5FF386F4A7AB68EDF59F385EB1291F117BFE717399:\ -9FF81D575F7BF0C4EF340B4279D56E16CE68821AFCDF2A69105D4F9CADADD3CF - -6A01830AF3889A25183244DECB508BD01253D5B508AB490D3124AFBF42626B2E\ -70894E9B562B288D0A2450CFACF14A0DDAE5C04716E5A0082C33981F6037D23D\ -5E045EE1EF2283FB8B6378A914C5D9441627A722C282FF452E25A7EA608D69CE\ -E4393A0725D17963D0342684F255496D8A18C2961145315130549311FC07F031\ -2FB78E6077334F87EAA873BEE8AA95698996EB21375EB2B4EF53C14401207DEB\ -4568398E5DD9A7CF97E8C9663E23334B46912F8344C19EFCF8C2BA6F04325F1A\ -27E062B62A58D0766FC6DB4D2C6A1928604B0175D872D16B7908EBC041761187\ -CC785526C2A3873FEAC3A642BB39F5351550AF9770C328AF7B:\ -09EDC465D4FD91C5E86B292F041BCC17571E1F2E17D584DFF21DD7DD8D8BFF35 - -B3C5E74B69933C2533106C563B4CA20238F2B6E675E8681E34A389894785BDAD\ -E59652D4A73D80A5C85BD454FD1E9FFDAD1C3815F5038E9EF432AAC5C3C4FE84\ -0CC370CF86580A6011778BBEDAF511A51B56D1A2EB68394AA299E26DA9ADA6A2\ -F39B9FAFF7FBA457689B9C1A577B2A1E505FDF75C7A0A64B1DF81B3A356001BF\ -0DF4E02A1FC59F651C9D585EC6224BB279C6BEBA2966E8882D68376081B98746\ -8E7AED1EF90EBD090AE825795CDCA1B4F09A979C8DFC21A48D8A53CDBB26C4DB\ -547FC06EFE2F9850EDD2685A4661CB4911F165D4B63EF25B87D0A96D3DFF6AB0\ -758999AAD214D07BD4F133A6734FDE445FE474711B69A98F7E2B:\ -C6D86CC4CCEF3BB70BF7BFDDEC6A9A04A0DD0A68FE1BF51C14648CF506A03E98 - -83AF34279CCB5430FEBEC07A81950D30F4B66F484826AFEE7456F0071A51E1BB\ -C55570B5CC7EC6F9309C17BF5BEFDD7C6BA6E968CF218A2B34BD5CF927AB846E\ -38A40BBD81759E9E33381016A755F699DF35D660007B5EADF292FEEFB735207E\ -BF70B5BD17834F7BFA0E16CB219AD4AF524AB1EA37334AA66435E5D397FC0A06\ -5C411EBBCE32C240B90476D307CE802EC82C1C49BC1BEC48C0675EC2A6C6F3ED\ -3E5B741D13437095707C565E10D8A20B8C20468FF9514FCF31B4249CD82DCEE5\ -8C0A2AF538B291A87E3390D737191A07484A5D3F3FB8C8F15CE056E5E5F8FEBE\ -5E1FB59D6740980AA06CA8A0C20F5712B4CDE5D032E92AB89F0AE1:\ -1AFC9BA63EEA27603B3A7A5562E12B31E8FE9A96812B531E9D048385FB76D44F - -A7ED84749CCC56BB1DFBA57119D279D412B8A986886D810F067AF349E8749E9E\ -A746A60B03742636C464FC1EE233ACC52C1983914692B64309EDFDF29F1AB912\ -EC3E8DA074D3F1D231511F5756F0B6EEAD3E89A6A88FE330A10FACE267BFFBFC\ -3E3090C7FD9A850561F363AD75EA881E7244F80FF55802D5EF7A1A4E7B89FCFA\ -80F16DF54D1B056EE637E6964B9E0FFD15B6196BDD7DB270C56B47251485348E\ -49813B4EB9ED122A01B3EA45AD5E1A929DF61D5C0F3E77E1FDC356B63883A60E\ -9CBB9FC3E00C2F32DBD469659883F690C6772E335F617BC33F161D6F6984252E\ -E12E62B6000AC5231E0C9BC65BE223D8DFD94C5004A101AF9FD6C0FB:\ -9B5E15531385F0D495FDBE686E3E02ECA42B9F1B1CE8837AD3B3E42E6198050A - -A6FE30DCFCDA1A329E82AB50E32B5F50EB25C873C5D2305860A835AECEE6264A\ -A36A47429922C4B8B3AFD00DA16035830EDB897831C4E7B00F2C23FC0B15FDC3\ -0D85FB70C30C431C638E1A25B51CAF1D7E8B050B7F89BFB30F59F0F20FECFF3D\ -639ABC4255B3868FC45DD81E47EB12AB40F2AAC735DF5D1DC1AD997CEFC4D836\ -B854CEE9AC02900036F3867FE0D84AFFF37BDE3308C2206C62C4743375094108\ -877C73B87B2546FE05EA137BEDFC06A2796274099A0D554DA8F7D7223A48CBF3\ -1B7DECAA1EBC8B145763E3673168C1B1B715C1CD99ECD3DDB238B06049885ECA\ -D9347C2436DFF32C771F34A38587A44A82C5D3D137A03CAA27E66C8FF6:\ -216FC325F942EED08401527A8F41C088527C6479342622C907EA08FF3290F8C6 - -83167FF53704C3AA19E9FB3303539759C46DD4091A52DDAE9AD86408B6933598\ -9E61414BC20AB4D01220E35241EFF5C9522B079FBA597674C8D716FE441E5661\ -10B6211531CECCF8FD06BC8E511D00785E57788ED9A1C5C73524F01830D2E114\ -8C92D0EDC97113E3B7B5CD3049627ABDB8B39DD4D6890E0EE91993F92B03354A\ -88F52251C546E64434D9C3D74544F23FB93E5A2D2F1FB15545B4E1367C97335B\ -0291944C8B730AD3D4789273FA44FB98D78A36C3C3764ABEEAC7C569C1E43A35\ -2E5B770C3504F87090DEE075A1C4C85C0C39CF421BDCC615F9EFF6CB4FE64680\ -04AECE5F30E1ECC6DB22AD9939BB2B0CCC96521DFBF4AE008B5B46BC006E:\ -43184B9F2DB5B6DA5160BC255DBE19A0C94533B884809815B7B326D868589EDC - -3A3A819C48EFDE2AD914FBF00E18AB6BC4F14513AB27D0C178A188B61431E7F5\ -623CB66B23346775D386B50E982C493ADBBFC54B9A3CD383382336A1A0B2150A\ -15358F336D03AE18F666C7573D55C4FD181C29E6CCFDE63EA35F0ADF5885CFC0\ -A3D84A2B2E4DD24496DB789E663170CEF74798AA1BBCD4574EA0BBA40489D764\ -B2F83AADC66B148B4A0CD95246C127D5871C4F11418690A5DDF01246A0C80A43\ -C70088B6183639DCFDA4125BD113A8F49EE23ED306FAAC576C3FB0C1E256671D\ -817FC2534A52F5B439F72E424DE376F4C565CCA82307DD9EF76DA5B7C4EB7E08\ -5172E328807C02D011FFBF33785378D79DC266F6A5BE6BB0E4A92ECEEBAEB1:\ -348FB774ADC970A16B1105669442625E6ADAA8257A89EFFDB5A802F161B862EA - -724627916C50338643E6996F07877EAFD96BDF01DA7E991D4155B9BE1295EA7D\ -21C9391F4C4A41C75F77E5D27389253393725F1427F57914B273AB862B9E31DA\ -BCE506E558720520D33352D119F699E784F9E548FF91BC35CA14704212870982\ -0D69A8287EA3257857615EB0321270E94B84F446942765CE882B191FAEE7E1C8\ -7E0F0BD4E0CD8A927703524B559B769CA4ECE1F6DBF313FDCF67C572EC4185C1\ -A88E86EC11B6454B371980020F19633B6B95BD280E4FBCB0161E1A82470320CE\ -C6ECFA25AC73D09F1536F286D3F9DACAFB2CD1D0CE72D64D197F5C7520B3CCB2\ -FD74EB72664BA93853EF41EABF52F015DD591500D018DD162815CC993595B195:\ -EA0E416C0F7B4F11E3F00479FDDF954F2539E5E557753BD546F69EE375A5DE29 - -3139840B8AD4BCD39092916FD9D01798FF5AA1E48F34702C72DFE74B12E98A11\ -4E318CDD2D47A9C320FFF908A8DBC2A5B1D87267C8E983829861A567558B37B2\ -92D4575E200DE9F1DE45755FAFF9EFAE34964E4336C259F1E66599A7C904EC02\ -539F1A8EAB8706E0B4F48F72FEC2794909EE4A7B092D6061C74481C9E21B9332\ -DC7C6E482D7F9CC3210B38A6F88F7918C2D8C55E64A428CE2B68FD07AB572A8B\ -0A2388664F99489F04EB54DF1376271810E0E7BCE396F52807710E0DEA94EB49\ -F4B367271260C3456B9818FC7A72234E6BF2205FF6A36546205015EBD7D8C252\ -7AA430F58E0E8AC97A7B6B793CD403D517D66295F37A34D0B7D2FA7BC345AC04\ -CA1E266480DEEC39F5C88641C9DC0BD1358158FDECDD96685BBBB5C1FE5EA89D\ -2CB4A9D5D12BB8C893281FF38E87D6B4841F0650092D447E013F20EA934E18:\ -59E904B2AA0CCBF2A9D127446F113B7CC3D07B970E07A322325ECEE66AE0C9CA - -023D91AC532601C7CA3942D62827566D9268BB4276FCAA1AE927693A69616526\ -76DBA09219A01B3D5ADFA12547A946E78F3C5C62DD880B02D2EEEB4B96636529\ -C6B01120B23EFC49CCFB36B8497CD19767B53710A636683BC5E0E5C9534CFC00\ -4691E87D1BEE39B86B953572927BD668620EAB87836D9F3F8F28ACE41150776C\ -0BC6657178EBF297FE1F7214EDD9F215FFB491B681B06AC2032D35E6FDF832A8\ -B06056DA70D77F1E9B4D26AE712D8523C86F79250718405F91B0A87C725F2D3F\ -52088965F887D8CF87206DFDE422386E58EDDA34DDE2783B3049B86917B46280\ -27A05D4D1F429D2B49C4B1C898DDDCB82F343E145596DE11A54182F39F4718EC\ -AE8F506BD9739F5CD5D5686D7FEFC834514CD1B2C91C33B381B45E2E5335D7A8\ -720A8F17AFC8C2CB2BD88B14AA2DCA099B00AA575D0A0CCF099CDEC4870FB710\ -D2680E60C48BFC291FF0CEF2EEBF9B36902E9FBA8C889BF6B4B9F5CE53A19B0D\ -9399CD19D61BD08C0C2EC25E099959848E6A550CA7137B63F43138D7B651:\ -6C2A841318066B90A9604D0C8ECCB2986B84A0C8675CD243E96957D26E9C1CFD - -20FF454369A5D05B81A78F3DB05819FEA9B08C2384F75CB0AB6AA115DD690DA3\ -131874A1CA8F708AD1519EA952C1E249CB540D196392C79E87755424FEE7C890\ -808C562722359EEA52E8A12FBBB969DD7961D2BA52037493755A5FA04F0D50A1\ -AA26C9B44148C0D3B94D1C4A59A31ACA15AE8BD44ACB7833D8E91C4B86FA3135\ -A423387B8151B4133ED23F6D7187B50EC2204AD901AD74D396E44274E0ECAFAA\ -E17B3B9085E22260B35CA53B15CC52ABBA758AF6798FBD04ECEECED648F3AF4F\ -DB3DED7557A9A5CFB7382612A8A8F3F45947D1A29CE29072928EC193CA25D510\ -71BD5E1984ECF402F306EA762F0F25282F5296D997658BE3F983696FFA6D095C\ -6369B4DAF79E9A5D3136229128F8EB63C12B9E9FA78AFF7A3E9E19A62022493C\ -D136DEFBB5BB7BA1B938F367FD2F63EB5CA76C0B0FF21B9E36C3F07230CF3C30\ -74E5DA587040A76975D7E39F4494ACE5486FCBF380AB7558C4FE89656335B82E\ -4DB8659509EAB46A19613126E594042732DD4C411F41AA8CDEAC71C0FB40A94E\ -6DA558C05E77B6182806F26D9AFDF3DA00C69419222C8186A6EFAD600B410E6C\ -E2F2A797E49DC1F135319801FA6F396B06F975E2A190A023E474B618E7:\ -0EC8D9D20DDF0A7B0251E941A7261B557507FF6287B504362A8F1734C5A91012 - -4FBDC596508D24A2A0010E140980B809FB9C6D55EC75125891DD985D37665BD8\ -0F9BEB6A50207588ABF3CEEE8C77CD8A5AD48A9E0AA074ED388738362496D2FB\ -2C87543BB3349EA64997CE3E7B424EA92D122F57DBB0855A803058437FE08AFB\ -0C8B5E7179B9044BBF4D81A7163B3139E30888B536B0F957EFF99A7162F4CA5A\ -A756A4A982DFADBF31EF255083C4B5C6C1B99A107D7D3AFFFDB89147C2CC4C9A\ -2643F478E5E2D393AEA37B4C7CB4B5E97DADCF16B6B50AAE0F3B549ECE47746D\ -B6CE6F67DD4406CD4E75595D5103D13F9DFA79372924D328F8DD1FCBEB5A8E2E\ -8BF4C76DE08E3FC46AA021F989C49329C7ACAC5A688556D7BCBCB2A5D4BE69D3\ -284E9C40EC4838EE8592120CE20A0B635ECADAA84FD5690509F54F77E35A417C\ -584648BC9839B974E07BFAB0038E90295D0B13902530A830D1C2BDD53F1F9C9F\ -AED43CA4EED0A8DD761BC7EDBDDA28A287C60CD42AF5F9C758E5C7250231C09A\ -582563689AFC65E2B79A7A2B68200667752E9101746F03184E2399E4ED8835CB\ -8E9AE90E296AF220AE234259FE0BD0BCC60F7A4A5FF3F70C5ED4DE9C8C519A10\ -E962F673C82C5E9351786A8A3BFD570031857BD4C87F4FCA31ED4D50E14F2107\ -DA02CB5058700B74EA241A8B41D78461658F1B2B90BFD84A4C2C9D6543861AB3\ -C56451757DCFB9BA60333488DBDD02D601B41AAE317CA7474EB6E6DD:\ -0EA33E2E34F572440640244C7F1F5F04697CE97139BDA72A6558D8663C02B388 - -D1890B4704E169C28E44DDF62A1091450404910539FC2DAEB26E8ACF4533B024\ -E5215C2D02820DD8FB2CFC1743955CBACFF0F8F35DFBB5E3F942F36247F68211\ -D518F3F601AAE12A1CDC000BAB43D4C973F287E80741DD1FCF6C34F2E6B4B6C3\ -13D01C4FF3CBF9166F26946F18EF2D58271BA9233F09A6B77BFD4F48B36EB3D7\ -3D1133C4F842A7DC3907F680B0B773242C11E3DD973A44327EA7CEA9C0F8E07D\ -682B6651E506B587559FE01ED721000BAF570A16FBDD9EA29FA3DEF4BE912058\ -321A8B720C5C102E48A6E7ED6F8838D400DD57D06EEDBCD15323F86D855C94B2\ -1E41B14EC9E1BBC8019211FD88138C91F9ABBD9BB3914D26C1DDC21673D2D512\ -63B39D66E741D924CF2B192C5D2C1A140126A3D64A2C77BE6C2C6EBE8599978A\ -E90BD36CBB9AF64D078910C4094AB3BF399C34F2AB8EF843E9FE1BF88BF443BA\ -21E4377E5F49C07FD9653B526E14562237F02D11B904BCA6AC31AE721A43E3C4\ -910A24AF6F4D80C031C109FC0FE49F15274BCA92BDA04C3B4196C192F6CE489C\ -63A806ACFC895AB52CAD657C1783B528E12D0ED856E1F8FC91F2AAFDFA0A9249\ -8D68530772EE73B359FCF1418D1096C46B34DCF90E5B468BBB2970BECBD70089\ -CFB039D64CC50FFF5EEF26384D34F24515A6558B06A1FDD88F1050C5BD78CC6E\ -D83D4C2B0E882AEBCF84AFB0430D0BF09F2FB42B8B4589158093A7709AAE75A7\ -90910E211EE1333FFB6FD80778DA3BF73858978E9DD647978841B18001DBAAEA\ -43CA0C0A03DBB9BCF30CE76A6F4B2CF2A9B6531B3E4051E7E05090CD421BC66C\ -4731E7122AD129FC42DEDC83BB460E3F889992FBD3CA072686E56B72C720FBC9\ -8D723EF7F247286F77CCDDC728738E941B1A74D4F16671C21FDD5643A115DDBC\ -B88EE7EC67EA66FD2BCE718DF6E085D4B5FC71A72696636A8F7B3A68AFA51A89\ -6771FAAA7F1F827430AC5E8089DBC0D4175E1B22A057BC5F1724EADC1A41E78F\ -A3ACAA8B97E5F2E19EF9D59AE12B04E7F0E8A621E098A66910E2A5ED2102B824\ -CD3EA044A854F1CD0B33E61E7F737414B2953549F25DD34D19AA1981DE7CD564\ -9FF6C6364A4F25312EF62395A747AB88AAD722C05AEC40DEEA8EEE5E779EF458\ -A68840BC6BD5D29AD40F98B3AE010B6213372ABB7BB8B8:\ -C7490B05B172A1DBAAA66FAA823108D44C82F1E82A41FD57FD95000F30DE747E - -4FA3DF1DEA75AD4B9C379206A95FED930000482E5B683FD2B17DC8E7D5C4BC1B\ -73186CCC13C9FF2DD09FC1D4F68034D120E84CA73A00B71A3B46D1EFC6FF88CF\ -2EDA65810B098CC5E651D9CF064E87076D5A871849F3B405D3D58EF5B1F10520\ -A9FB4FC84A81A87B13DBFBF9D8674943E28C257E46D8AD7BE1785F1DC7C9B1BD\ -574AD1DDA48F0255C853D2490BD3D63DA22A8369CFD02594999A2EF443308FB8\ -298266A11EFA177102C75DC674E89FC9DCC1A0D3C863BC26141102175D2678EB\ -6E13D90BBD9A5EB89AE8C0CB47D7F340D3D32042A2762BC9BF2B40EB40E87FB4\ -2610FE7E357051F01494704FBFF73321B47301A0799B7EE3FE5E62200F397A61\ -ED4509A62F7106ED0EFB0ABD6AE9E4A1FE9B02C092DCDC75015CF602F3B9A898\ -8B609E6C0D1C5C3E219FF57875C2EF01615F89447EA602DFC94EEC17A398C014\ -BD346691FE209A002771DC8164422CD166AFB457A8B3071282178A3EBD201D9B\ -07B27E711E7EE7D33AA5210ED4E4E92486775D14A6CED092E34A7AC826709399\ -48FEC149F9C018FCAAD3FC597D315713F44FC5E1725F448ECAED40E8D841BD02\ -F1E81C019B08F99412E360C0BD378391C67D964B47F50C26F0A483ED66402361\ -6B0FC9AFE43620DBE9CCFE070EF295C049EAC754C2123130C6B2C0232F6403AA\ -7F0DC35A5999BF95D34AD612234C6289277ADB60E4F72EC2DF570F05395B3BE8\ -A0A3C78B732821AA08927C524E15D65F66A3DB8C1C96FB70BC0686AAC310051F\ -469FC5EF880C0F66947C1C328F97684EA24CBE63BAED8D114F40507C2901034E\ -6AB3893F366D53F1CFCA309309218CABCECA4722FA9CCBC7249B87C12FF8397F\ -40487EB00082E7F551D27E301C3BC7B5389F7042534BF7E692DFEA4DA24F7C34\ -B8D2FF145F54B517FC97134EC5AC2CB925C508D7A6BD01FE7B764648274972BF\ -08560D30802E0EB7EDCC57AF4797BBF92E8688268606B0F1BC901FCC22136281\ -665EC16393FA9601C4FBDB18CD1D1EE382BC07973903E91FFA87399D1141D49F\ -4F0C064ACF3AC9897891DF10BCA0116F2C3FEF180FE6A8E937C478F2EF293AE9\ -186DCB1F76B6E48101DF64E57EA7C64C5C0025E221C8F5CBA5CC92D9CEC62814\ -0996B26D17F439B780F59A999301122F82D0495F8AB5AE1EA5790F45E992DFE0\ -0D5F82A7FF1354AEFDCEFC0D2D1731D22FA2B75AFD4FDA25AB194055FA962838\ -1055247C8C7587D22E73C60136C4282452D47AE03AA035FEBC26FCCD42A1CB79\ -CF866DB6418A49FD8261E877DDBB839CC39514DDB87A8A40D795532626FEA4A4\ -C35D13E028F9ED1BC09B06BE999B8DDD2258AA0596BCBBF72AF67E10BEDD58D5\ -99B8D577A583D676BF5561F80CE5E9528729A92DF578FE75DBC70474B75747A8\ -D55DE70E57BDD62D4344DC2115ED4DD62F1FC98BFA1E7421FC0700025C46D0ED\ -1BEF35C3B778563211B9FA9E8BA4BBCBF01C2FB626AB7EF325CE9F468DF2CACD\ -B178D36557CD85D542C067C289E926C1EA2F20ABD329E984168BB6DEF1DDCCF2\ -14DCB6A53AFD462F0E7E7A19E8C88F049244125A6D7DD41E58BC9B2FF7FA2478\ -DF76AF73090CB1AB59E388BA20E2C297C967737A1AF61793B68ECD7439444C48\ -E28E2D09C48FADA5E0D1D15E5B340A52F8B3B854CCA479F0A598445E14F53B3B\ -A36891050C79673DF3E2B5825C955A29E5C9A22F3991D0AA785718CFEA1D2385\ -F8E47E4A75ACBC7988D0558D541D71C4E6C5F1CB15B60CEA0C34A67BBCE105D7\ -A896025E0254DE7D7AF724C9027D44B8642192A08AB8E1EF3046DDA6014DF7F4\ -C9E63C635E48AB2E70B640D480998EC9357E665F99D76FE5529EF23C1BDFE017\ -C3A66CD4EB2DDB42EF85EA0CD65534:\ -EB351838FE8225FBEBEA9168DBB708872CA43AC93480C3AFFBE6CC3A15A2263C - -523DE8B1F4CBB65E81FF0B6CCD6EB8EF0A0F0A691ACAF4A77F25ACD2D66AD4B3\ -EFD25BE70308853C094412A518A32020E3020A9F6AB32F0CD60EC0D7A194917D\ -6C457B168A54A4B46F7B0D0C71BD61CD202F4C718776A701E0770B0EFA054187\ -70F98E4E79CD066366FB3300E8BE359A98B82B764BC2FBBF59C7E8F94A157B01\ -C6C7577B1428138CD422BC47330F8ED99F4C0AAB0D984287445539839389EE08\ -D6345108AF26ADED0EC1D7BE774CFB8C5205DFE07CF6CAF8C1AFE37C7A2E4FE6\ -013B93EB2463DE4E0971C7178D6A76B16A0E8960C984CE8BBE71B3B466EDF044\ -5B835F09414D01F14C7B6167FF78FF118127BBD5F812C27FACD57B3B120E2BCF\ -E87315C7A92B82EF5D50CA14A7174D1BEA7E056523E055A6AE42EA3765094E55\ -44E5ED003C989C2F98F38A17E3DDA74DBAF9C669A319638A2698B0E4A611480D\ -8AD3CF016792ECD1034925F42B9811A7214D623D047ABCA31997DDEB03275F80\ -DD21F40DDC80616E7AD3D481E8EBC0A1A6A398E16A78369215541ED10B75671A\ -DEB1AAE6E11142A1CF665FC1B7332DFBB0E10C21A2B48F78E57319AC9C58DFA8\ -B1C2548E2979EF1ACCFEB215AFCD6C2C1B46FE97DD491758378330EFFC728366\ -1D2CB84FA05281E9E517408508D24D042E7B9BCD34DB87CE972E4CBCDB98615F\ -B93093369DFEDC782F44BCD03E81CF93051318B2401FF29F753A264BDA65AF19\ -9E3FCBB8B5D39C838A67D6C7A3DB046DC56C323DDBB5340CBC229E47CFF8C9D2\ -9B7A49AC0EC8C1440AE498C7D150EF91C29BEA7DF3EFCC2871A13A1D72D139CB\ -4603D9FFFE85F6DDD544850EF63C3944FB35DBC00D4308CEAA6394B6E23F650D\ -323F8F7EF50DDB68F1486EABF989BF44451F620EC9485C0B52D1415D3C909A2C\ -FBE9D77DB19D069D33BAEE4D77292E63FCBF65C1EBA24BFFDDEFE95211EF0AAF\ -8ABFDA9F94445E582976F986F5382CB669506AF2B4A5A0C43000A3C72C5CA4AA\ -CDC9D3D39FC5C492A393B6C341B86DACBBF6BA8B465100CC683EDB2D9B9F83ED\ -F9C6A32645F51CC79ADC22A52A007BAACA618BE35E356D1FD1CFBDA73F1ED092\ -53039DEF609450FD2D5943B9CD49CBD52A318EE3510D7CF3FD8FB388AC6CB9C6\ -EEFEF3D3CAD8501B91CC04A888D33E16D6A4C9666F5F5F3B257193F2B46DEDDE\ -11842909D8C48ADE57775B0B272E2DC9CEF1A083EB2CE58F4D1F211922FD6ADE\ -D1B82FE6F5B11251CD396E5A3666ED9626036E4E356231C146BBA0A91AFD3648\ -EB7BFE0B9C14F15AF2F92309826F468945CAD0AC422DE3D6A773B76178422107\ -CE0270E7F580B5CCEBA82CA0184AAFA8341141E65E39859885768FBC5CE63B96\ -5A0604B659E71D9DA2C7A43646088D8071D76926163AAFC69E25355BB0A222B7\ -B2DA9F0A20C021ADC462E905A9C3BF31C16D87FBEC3F014F3957A720F1432E17\ -41553092052FB58A198640479ABCAA51B104CC93E2636E1460643EA812BD44E8\ -19C2166EB6B349BA5BDEBAD59078910B5C22A56F004B8D9E4B1224D8D204B48A\ -BE7355548A402736C5CB110F3A1476ED631FF168F4F3EFD89B38DE4751536548\ -647523D334FAD7CC2D142973F2DB3C1FE08FC5CF83F9F2BD2DAA524B37864816\ -AF29EE05951FA09D1C51D9D14EE4F72FD7BBF18B1A724FF5A0958A063947C430\ -142AD2356E4400AAECA442E163372A8F1CD36E2DB988E7781165E5D4E7074ACE\ -40858E8370E883694AF09977704347FB735C8717C42BC4EEEB2AAA50DFE637C6\ -40909CE379BFB9E2608F88751377038D1669F248178AD580A908D7A1B8DCC7E5\ -3E01801F1E485B5893F103F03E0F53B2B1440BE95644D85AA7F6EB7EDFBB4665\ -2196695EA23C08573397B111FF909025E20C5201293B4D223BF7AA01DE7CB28B\ -94714370434B9588097E2401B62C7A0DEF1FBF89809E810749FD3CE9EC3C07CE\ -4BF4C43DC966429B2BEB4D711FC6C448A12097B36F1E6817EAF4937A983F85D9\ -CF3E62CC1B2AC6AE1EC9EAA8CD8EE2C3322239CFE5DB3D4E8786282E630A7D25\ -9C2FEFECA03031C960A66A71E436A3ED6F2F3CFAB4BD77C660D14205ABF606FE\ -561A346F7D849B69475AC9F6822D80B9A2E56D5D495E4B309B0EA963C9FC5C7E\ -F94B217EE5337989AFBC7107D233A8B362AC27C4F69DF9E191CD65AE97D6EB9E\ -5484EB6F10349575E4CAE51452380151F902415AC9CF42C824EB23C9541D2DA1\ -C26DB85F53CDAFB06A12B8393CD580A8E494EDB6710C720DCAE30832967E33E6\ -303A92B1DF0841D7724284FFD2E00B95C6D623B168D21AC1BD3C675EDA33182A\ -2C22370998DE1E5EB905372CC6EF32D5B765F5C94870DF4842D011603BE4CDB1\ -C227E41EB2F2E8542CD325884FEDC9C5C7BB07A92D20D64B836215C59F162A3D\ -A8BB67D6FC13FEF97CAB6ECB8A29E431A6519A6261C4521CCB90E6E609869E6F\ -E398404AE047F64EC4263566DEFEE66329DD40AC985EB8A08D26529A544891B6\ -F57CC235C63C09057AB6B6ED720EF41A3C9AE65768B43F6DCF4962A103DD93C2\ -13171DC2C9194E43265C689B49331450281A3FEBC618D1AA4D65A135137051FD\ -46B568CE294C89:\ -96BAEE8ECA9DCDBDC467549E307D95C20A07FEB72ECCC780DBC29D40AE7CAE45 - -F5080D4C59E804BF8F34B334CABBCC7D32011BDE3677F4B9069416AC204114CD\ -9DA7A0ED0F4B4D8344416336EEC15553EF526B6DEC267B1242657DD0B508AF81\ -FECF9CFF9C82A6A7A9539814DD7E097615EF15373836B5D2F765CC8D5F82E904\ -49F13AA741D5EE2FE63898E55ACD85116846807606FE1E2E29F98F9940B067D0\ -D1DF01F080211B2EE4B0A30803782A7BC2EAFDC5EBDBA91EB05F7D7DC8E34BF6\ -D44FEC05824F53418F235FB64E899EE147BCB403C8855E94AF378D182D79C3EA\ -F977CB4E9D4A16D990A6C388CEB567B97785E6F2BC6745102B99AE765E960B6B\ -32BAF01E2379CD6ECB74D3E1A56552F5976DFE5C742BC92BE596CA742FFC3D0F\ -A032AC29F9F7C1A5C43BCCA62DF7D9DE35D0C7C179DB2E1AA255CEDCCA55064C\ -2049FEE1AF2CE5EF696ED4BC46B7C55BDD51F2D44C8713FB2475C0B85246AC01\ -03CC3863B7EB026AE076A600313F6FB40A4DF62A2AF81B7E917951EA870ECB31\ -B3401928B5046D9A1E62D14B30FDEBAF262868517318FE17EC3C0D52524F4412\ -0ED8ED3BA70C643300CD0BC70DA72C964A88F52C3A91EC20BFEB5CAEFCD4D9C7\ -685D8407476B5F34676C5EBD1E88A6CFF1C625322F8CD59B9ED60CEFB21F9491\ -B95E72791F7AC7EAA3C16159FE9DF7A989ADD6C2282C47585E11397EDA9F47DF\ -2B40166E03BCDD6186B46C6835118268DDBEF19A28BBADE1BDE0228FFD7E8B3C\ -3C598D89E24B8CDEE79C940254DE26CC6814BA2722E42F7571600B7325E1FF30\ -0251D52A895B8CCBD049B2953B8D231445F68F7C26EC25A4B8695C8AC116F736\ -BE939EDD762C9B4743E463C9B9B2F88E0BC0CE78781CDDC3BCA825ACD463C7CA\ -C2AA6C430BBE820EA94AF9A40B1B5C006E9641A2FFA6E427379E1AD49C81B983\ -20B3431FF0030DC683D61026438BC6A6D34B2C73704D9F62EAEB13ABB3E4B056\ -2B4E0482CD6B2D7AEBC0367EA29A88F4A76F3D76FA1197E1DCA92C8216C84C1A\ -F9B8C78C9E3A7799A4A79A783033B0F5547E8E75E69CF3615AB04EF989FE1A46\ -3B1672C571D50AB56972896E8A50C242F22C7F6E27CA4CA793F627E79608680F\ -5421B28BDD2589F05E65430DF774EE873FCD1234064F7A33CF5A1FA4E368137F\ -F9C1597F1FA0FA36493F20538077669EADFD3B06F788C912C715FB5D334DB6BE\ -D133A8FDC40F5496E66AD63881F0BA3727416715865253DC5290327B515BF68D\ -A188DD5B4B0EAC7CA712CAFA8FCAE0C5503FE58A219182F1C30DA6D0C19CFEE8\ -97B7D837C97996A35F4CA8CF0537A01D17E7DE0CC9C129E4DA0ADAF1FDA85030\ -DF9127BE628263B0624F372C47C3AC87EB945A57F5C732BEEE81A74030017989\ -92F3DC944114FF3D54C4666AC5AC8C98D0D5596CBDEB420665F5EDAAE747D54C\ -F7EDD37B162E372249D135938CF17D174D12D88279CB4C32BD6F018C766DA698\ -3D4EA51D6BD8FF0A9B34E9A93BBDA70CF1B4B867D60A74811FD98D52FAA559B5\ -2C755CB70A76C94BD19654CAE7017CCD70222BF08C5D7AD1F5E4E6344FDB3ABE\ -703452C29A696F39F9826ED8BC510A4A148E5BF8A5DBE6B82D7220164F08011C\ -05AC5159D52CE9D45D758B645BBB248C2D341DBEFA1F8602C5D458A64F38F3B0\ -4DB39089807B6A10E1BB52770B92CE72E2D3BB0C2241CDED35054B84558D1CC0\ -99EF7B2296951951D5B6A22F93BF962AC5EF8FB55EC6CC2B316428EDF12078ED\ -1B66D525D022819CBD489E1BEDB02FFBD507D55F9B5D4E22F6396EA233453754\ -688D20151A09C70044B8A5A9AC033C3C3B847AD833D5C05B33407666EE82F958\ -1DF9034EE15A9CA67D52F1D9B634B84C1B8BA9E515F1F060A5AC5CBAE2DE75F9\ -4E112F7198E239DF08D3103F065627438995026DF511C6E5BFDEEE5667D511D4\ -181850C7C5D179107C1B86D24D5532A88A4149A2810DCAE73731B0E1247281A6\ -FD31613DF6891B4C17B7A6A9AD9B77468254B93F85958AA0F01CEFC10B25169D\ -C46E035D3F24557B4BF0E7D60174219108D916FFDC55E25BFFD9809EFD058E12\ -C14F39C69D8FB73D3EC6458F47F2F8DB901BA76C86550B11B54D0641D4DB3EB0\ -00057DD00F2E511FB7A47E959A4402A3AC5462234B40B184020FCF7A0396C4D0\ -0A987C8741A4537BC17102A5C42AFEAB9F71EA66ED4CBC7B5EE682FF04F56F4B\ -A1EA0BB326C4089930F9E3F3FFA3E06637CCE32113881A06CC3A13837448145C\ -2BD01307A580FDBC385D8F46FB92FFEDBC8918D269DD1871164D4B3E2023441E\ -C8B99C82A5F09821CDDF6B38C9ACC3BF3A38D5628016159588C33EAA29D9463A\ -537C000A16AD8C177DC4CF716E625F46FC4CA8C19FBD8EF320F1D680639195C8\ -B195B0A02738E0665F4190D6287E589CD6DD45B9E8CC23B08E1681BFC6F66B88\ -DE6B091E825EA4BBFBD697E10BC407570AE4F2A3EBE569554639C2B8E051656C\ -C30C837F5A92260EAD1D552B45801B6D28134166796C87F900225CFDC3CC49D7\ -2DFBC18D8D95B1E160ED3CAFD5C3467D48AFF87402CBCB1E1420E3FCB588AA19\ -C8F42753B59DB6FB6A9FDBA127CA806DBA7DD97F2488FC2E438EEF57A4CC85B8\ -8DCFDE76AE1FF61225A1CA8BF4A14F729950322EA681B16D6492902506702DC8\ -F348E4D3AE7FB55FAC1231FDE82091B34F1791B6AE37587B10325F6FF5E23B85\ -5845B86EAE90785B9D10D90A16644D01BB626F343B908A9591F4069B21822CA4\ -ECF985C1E710475F33DF9AF4764CFB0FFE649063775338F15BEA7CFF29F16467\ -8160960A80ED148C9B7FAA58E9139911D3DD9536F69646F718F083DC9029D629\ -4FC4C607688AA75AF350AC2C0B001A157D023D73D86ED8133809FCB9592D1208\ -9CBD7A1BB6BBA882FE227C09A53FF088907CB4BC2FB4B7F62D41D3D397C4FE0A\ -D12BB3964370E21712951C679814D506E738C0201E42181D231136A435AE0397\ -B61CCBC5E8BBEBF8EA77C8BC48BD6211F29248F9D498D818E2B544D28A5E60BA\ -727F32EF4BA2707962230C900076FB764D0ED5CE078C9DB14DE894BBB836C6DE\ -9E83202AE89F9A8D8CB0341E1C81B5FA8B16731B8E231E969C0F1EF95336D4E7\ -3EAD6DA23DE3AD1EB608ACCE4D4D93996DD76EC1F5F2C576F6B3B76E07BD8A81\ -0FF5D88B00FFE48C42700B61CC499336E7FB57AD72FF44FC631C7222C9A3D1AB\ -F6E77B5ED7FE2F7228FED6C849BF7142C4103989A80F7C15642AE61650CDCA7E\ -854EB25E9E72F4C3E3768E6CCC8BFD556B56D3507EDDE9E5C331DDEA75568B07\ -813D20E8F4C9547838ED28448F2E67158ACF0C00B131473847816C5E2DC215:\ -6C8723DA27CD98E20F2583D01868051EF2DAFA645901F82C74D5320EAFC18AAC - -08944CB473B828B118A31986DB67FC757F238182E790553404B792AA4F0095A6\ -A83291E287CDD16521A3AE8C48F56FBC909DFCCFAA7BCC570C2159F26592DCD6\ -B15BC4DD55CC05595AC634B2C3DE15360B0F07A03B5957BC9333CC5097919399\ -DD9973ACE15E55940178C4C96BB5E0A0A10BAE175769548EBCE11E0D7D9DB296\ -47F197D4B87F7039F5D4E59E016531DBEBF55A797AC9A6835032CDF34240A7EE\ -7423E89C09124829CAFC5F89431C8AFC54FD979E50D48A82B47A53523C84B600\ -4DAA323EFB708203E5388A6A5110C6CE2E341048A65FDEADEB3837A03420F9FA\ -DDC3F02A544F1E46D96B07C90C7971A7040A179E8198E90AA019268E00367120\ -D5F3D98A5CCE82C885E77144B1AAD66EE682847776B04F01F501DCBEFE390308\ -0A8058B3B8F1D823D917ECF31FC2D5B0795BF95A55C7093ECA7C801DD0BD0DBD\ -BEDE7D56513128B29FC0B4D25A6240B24C99E017BDFF7ACAFC8F8DE9FAF5A294\ -4384AECE82BEA04DCCC6D51FC6E6F27AA38F131B7959B13681A09B311D242E62\ -22A1CE5687DE5C080508B1DB16B6F8290D33A3CC0D0138AC61FD9093825E9D37\ -52889E9F20DB9F80F92750EAC88B38AC81C0016D40371EAB4A87E845E91446B0\ -A07081B84F559CDB95340CB020AF22AEA1BFF2FDA12F7A42973FF163A1C6F33D\ -B8B8214AE27ABDF1C54F5B03E29310FA210125E1296E8AF93A2996DBAEFBADD4\ -C51C2C3B8A3E2BC9FE060C42BA32768F6992A99599206CD2291CCC5BBD50856F\ -7F8D2D0AE1EFB5892C15A799B77482DE4553736B162ABB06631F1688F6746E7D\ -7A37EE7EF24E6CC901175F04960C01990178F81E957E941DEAAC8846B3704E24\ -204F43DDB0765C433F3F7D4D201459CD65682B7DDF3D47E95CDB31B96A4CB229\ -07F08BA6E92A4A07703B2DCF150F922C4B7CF181380303FB72547847305999C3\ -C8F9AC877D05D9DC4159DEB8A13D36AD1D533A56950E20F906D29D51DDC45BD1\ -5C1773991707480E37B827044BDC6473181B760A9036E0D3FA491C2F08C55130\ -D8CDD5AC8E97D0813164AF3D28A585F0C2EC7004D498F95C6B62231A632A56C2\ -D0C48FC3A6992D4051957B9ED6D9A86DBCCD962A8883CF82CAF01DA2F51A203D\ -56B6089BC8FD0B1BD414C8063031ED469555E22EF872689C130B1C101034D572\ -FD8CD0EDDABEC9EF1503D7F728B0941EFE2B9512438C7DDB176BE2EC2D9FFCD5\ -6495A4511428DF02819CDDA18D1ED5D3B16C6F42AA0AC681A9FAB51E8A1A856C\ -15C51A3EC1031427142EA12543014DD4ACAC640B8A7729E63AB7DF1051112CDE\ -FD4B988A2258334FA9A7F5B3A87A02074B9F69DD81B83FC74089A91D76AA4041\ -259E80FA255F2084902AEB9E996AC2288AB464BDEC47AAB26A28A2A819498975\ -5D48FC9A5C9279285F2F1DBB8B8018F3E4E13115D78A879792E45A8F4F24ED4A\ -317440BA63E6929056EFC1D2529B75A709D6C0097DC2D97F646F334EBE6195EC\ -5630132FDE58E25DBC17DAD822D9FA0938A2A2C926B105D108403DC29CF371C3\ -504FF73BCE9C7ACF9A74C4954CE6A32DA96B21CF3211B3E49953DAB78C49C3E5\ -32A349003C59C62F7D40261CBA63A9EA21C89A38AA63CE431C43AE261C4D9999\ -B1CAF491FAB8E7BE6E8C3454F1BE8793B2D27141FC107DA599A4694C41353D77\ -85C05B5E31440458D17C6DB66FEB8A9C5C073FB946A67AC0312BB669D9B12FAB\ -AA5272CA6631379EF4ED420A4424A5CD08526384C047C33A84D5D7DC0C215366\ -3B54C73DD799A3568C01B818992CDF8143F1DADD6B50CAE6EAE13AC66F31FFA2\ -B362CC4D2880592B7FEE4B9E4CD6AA5E5DE27AAB9B5DAD9F7D39407AE927530C\ -AB2B61CD7394A21EF47BFB813B5EA6091458D239664923280ED0D5CCA8285BB2\ -281A2F9FB3FFECC8E9147E1E8FAC957D90C9E5F513738745A47C2AD0C31FD898\ -6EF3B6388C6E821F166513811D547AB4336B5E04643497FC9F8D6E380EF6478B\ -82B6E2F5F65DD98A63C68C32B94610E1D3B9538F13A7688FBB1EC3448BE9BD77\ -BB93A34546172AE8D614F85228988E7FEB18C9A0C9827699E8B3CBC69750BDFE\ -CDA8268F694F4C509BEFC1A1166F85C829725299D173F867A300987A2D36D1BB\ -BE37BE3208FB8EFE9152A41A5F0E931B6382FF7F9B18937958FB180E61F2A8C2\ -8F36C3C80C3722935AACB81C24AA17FB3E7A1026F7031A7449818ED62BA7705C\ -A27C2D3268F90B6322921683DFF800A306CFC186CF2A61B37F35837B217E3B2C\ -ECB0843D84EAC67431E3D689F01522D4A4C73618B7C2965C9DABB15C0BE637D1\ -0CEEF72271CF39A7B803B41767BC34433C3E6FF449A439AE13DA1EAFA038CB9F\ -2E1C84F1CE39C05DF56FE3D7B82386C4E628B6E27CBC5D575C66ADA3510C246B\ -D04DB48F4AFC2D7352966DA2266C2BC9831532F53655D8BE42B421AC0D70D8AD\ -1D3587257886DBF93668E907E861BA64F45999BADB0F766EADCE5238B5ED397F\ -265935194812C03C5769137BAC97140525303CF48D65F39004A3F59B1FAB0989\ -5CEE05335D15B9B12265892F4ABB92AB1DD2002ED00CF3562CB67DFE1055968E\ -4AB3306BB34BB87D0F64B26848812A2F7B50424A21FF94081A7F70F7B684AB0F\ -092B2B085DCF84CA38414CF7290F607BF79C37EA84253ABCA8D4184D2DBE2E90\ -0200B81479E1CE8B71DCF2BD6E3C557A8E431D627BA669C2EA03068E0F7EA62C\ -29777B22142D7A1D451BD541EF8EBDDBBA4E3BD8FFCD340E935BE7C66EFC14A1\ -3EA48134F655B0DE3180101F09D204C379743A357E6DF1268B55A9F7524398EC\ -F3A59849A27B142239059998083E8FA91785E91C4D220B2FB17E3389EBAA384A\ -49D89B5D78136DD2454F06CDE9837F096B744D53221127869904AC227CDF30BF\ -EA78CC5545583F999B9C42A1184E2FB9FF3EC095B9DA0D138205C4EAC4C8C480\ -C43153608849F63E161135C79D8B6C9CFE9B8DFD8AFAB559D8B595DDD4383503\ -3B4BBD391E028BB2A60832D9B697EE61408F149744DCE71AA11BB2B0436C1E26\ -26AC3A27CDA293366B90B9CDE2D927855130758D3946B867192DCF3FCE9A3B9A\ -5276E8C37B8CB136FC90A6DC22650F95E796A9886EFD3F424BE63A66DBB1041C\ -B3D4A06F4E7EEE89F0B6D15C36F9EA010C66B332011C8888E8E4AB2B3AB52231\ -91E1388613A0FD0F07C1B26D7CC7CDF1AC62A226454D6291B431CC3EF2DB2B24\ -42B37DEFB942117FA247096BEAE598611B8104F37BEBEDD8BB8B949A89B5BF8E\ -228ECA1D8F16BFEC75A02FFBB4EEE3A6D4A6087C43634D675311E72A9F3253BB\ -5DD364E07EB4B9C84F586BA267BAFFAEFEC79E03B83B18595FE06D7E063EE604\ -FF287004D141C1A43AF0CA7C5651D98F633FA875B4743353FB07BDE59B6567AE\ -25F7095F1D9EDF30570E2F7D7EC194216898D910F9E295A41DFEE072CB56F914\ -BB78CC9854129250F9874B63BB3EBE9A1CDC6EBCB0916E1C440354DED6AA818F\ -2811DA913912A21D3961AC94A39F0827D3A419616905DC45842C8E69A43004B8\ -AE922C8DE1E8CD0668674A7760153213835BC63FAE4F8D65614AFD74A34D42AB\ -AD5025B884B34639340B45D49CCED423771916E18AA077291923017CA50795F3\ -B7A3F349A3D29923833CE57801C631576E23B838A7767CA1BDA92B82AC502DB3\ -688FFC83C09A4E40CAC31D20D9D32FA6724A80BE7091CDE9C7A6560CFB326B46\ -7CADDB9E9B7A491EDA283EFB0B61B4A1116DD859D5C0897EAA2A3FB2CD82FFB3\ -3770BF9E08091363B6B81D23E61C2A647D2BE440C5C79EA89690656D9F10B1F0\ -7942834E1CB6E2D2DF106EB6D6A21FA23819E65028515E88BD279F9317BEAFFD\ -394EA51F8639371C3A89F11305A4CA35FB0711F5E2C7C3DD1659C79024581211\ -3204B4ED8AAE9FF09D43C6DDB13F5070D98831B2C7639FB6B9B01C288812DDFA\ -8861DB32DC8268C07D30CF969953042B3DAD530D9D744C06AABE7A886C0FE57B\ -09B7F42D193FB3E9C06329818251A2F7E6474462C95DED:\ -3D20746DDA871A104202EC1AD7D60D8E165FBF97AFC1929511E41781A35CBA45 - -1A3DEAFCE70AF6F3F55D66AD9CE78D5F4D5C5F2638A810AFCD07D67E9F9A1380\ -D6B34BE482EF030C22F1E978F544609CCE35A74C5109EE7038495B6210CDBCA8\ -DC82C6E9E7B0D593FAD9665382B3C401AB8941DF71307DD77EBAF140AA66A1F7\ -6316478850E58886A9610631E9C722F459FA00C0B53124FB4F12778BBBA37608\ -26D3DBA67CD030A96B654AF93F8E395F5F439549489F8161683F124BC980E693\ -9C83A6085E4B6CAAF8BCD89A0E01ED70DB487166CC29735D9235A9CDC57B80C9\ -C2E591DF6322F5BEDD32937073F781A30389552AE83FBE147D1B3D3461A3DF96\ -C15CD96900C56718EAAE838417057579115936862679F5F2A45DADF65D14108A\ -F1641DF987B57986384FA1433789F5DFBE87E90BD4E9D8D4D0741FCDA7348322\ -B967B566B18612DBB8FE64F151947C3F7E361EE868676BCCD0CB3A1AFE046BE7\ -0057A05ADD3E65AF31E3FF414A627C0183E8FF583B41B75B203650420216E6DF\ -CAB289665F054CFE3EA0943647528518573BBB1D0F27E1449E98739EAF0D0094\ -32DF0C1EDC1625264B94A71DB762659FF5A3A7A867F182D1F1FD34B341A4A181\ -221870DC4A494013091A7E3B2B07E0160C438F1EE1E8A2B989C4FFEC36B5083E\ -A427606767C29672F44779A8505B422B25A56907F565B27690D011426A62DF00\ -36D57D967CD1D14E915BBC2691E7AF818C769D9E1F9EDD40894BE88FA1D7A595\ -2AFD898E837716ACD73953BF2D1D448123FD1A0276D2C2EBDC760A4B787416CF\ -AE5E963FCBDC8B551CB70F91DA0ED4A8090FEF178E879F2C34F3A269DFFFF097\ -72D44A13D7A17468B5834C460957D5243C325F63F05F89D4ED98D361E7F0AB8A\ -83948A64D0CFF8514841AA21C7F337920A9983E59BE4A0F1339E1E462F92DC1F\ -C070126206012458A499A8111FAE078E00B0CA3BC1D6C7087CD318D5603C1C7E\ -0425E6F729CEECA5F35B82F8A42E0E9B950EFB0904C5FB5C06D91D239913665E\ -D1F1EE4B82185A01BA86CA2D3EA94E5A8842231A94C05280183B7ACA28998410\ -3F122203EC2FBA4A382E6F5236D6F68DA05E3BB0C558421F0EFAB91DCEEF6D1E\ -CDC60F9B88F8BEFE31CDC3C2F024A1AF2C7336AA5D151E8CDA814A5FE898BADE\ -B9DD680E337E682EBC22BFAE445417E37D2D89A338659A280AB1206DB74DD42C\ -6F25639C1803BFDF2156DF613B0F5924D209F7F9003CE8794F989F4F27B82121\ -210F4F65EC5A1F7723305CEE438C41F793EE04496BBE337BBD2FD3023830B1C8\ -889C6F4D0C1192E364EDBE1CD987BA5D66224EE9C9405E1DFCEC0EEFFC5C73D3\ -123F6731C6295D1E6B854B884FD22B6A3BBBE5395312585CD138BCA67532C6AB\ -71BEBC6657C50DA87D2AC6068FA3970202C5E15EB7B4B3D2676C0134BCF1EAC2\ -B26BA46930B5E660B16060894884C88BFACD6779276B86F685AB6F17C6D53F62\ -1275FAD66D021D26D1D480AFAB4B5EC75E0E763FFC45F599EA02504DA5D91EB5\ -EFC3E4AE196F219E45E7CB05594958C876FF474A020EF73C1F09B1F7F7457E81\ -6D3AF51D86663D4D461754CD5E907456691E02446D6CACFD33516206A3187054\ -3D574592087773653D4086C2BDCBAB3C9B65CA11AD0D4E58DDDA8B4403099898\ -57103929549B7300CED42651D4086661694092C42875CB62858E6D1BE5F7274B\ -4BCD83AA4DA05CACA186A30902830790F9FFA24418E1F9DB00FA40477E83B05C\ -2D11AD7D81DDDB1E31F94A9DD5E9E13391C22479B570976E3AFC1BE41086D3BE\ -6689D87CA4326A7CDE8E5B396A678D3CDB2C80FECFBA2BC799AE8B1528E96D88\ -0CD098DDE910D097EAAE660AD4D7EA51C18F18AA1B39614299A172512521DFD2\ -31B9840909839EB69C892EE23F1BCEEC1FADBA75786C7DED93BC9983F74CEAB3\ -97EB8BA84F7E4130B34258D628594A6F9E2348FD91BA2594E07B8057E8A2AE3A\ -DFEA0EF919555385977041C5B6DC4F3880569171F7217AAA9A85F2F5BBDFE3FF\ -DF79248F2A35FD4DEC34980C67290339B1C0A5A6AB8838157AE2F5140B4A2492\ -4A6688AE5CE72A48103EE9029CE8A0F15B1FBB19A12FAAB80A7CD9C0E389FC27\ -75833E3190F1CF735ECDFE7F6B6C326506AA82613CBEDA8DD3691B81F4C1E3B0\ -FC32D7E6719CBFC12F4A26E0FC29D6417953ABC9568DB4ED9A294B9FD5F2A666\ -DDA546ABA301B1C60985033953EFD6F4538333B5C7DD3148814A3FD7927C366F\ -40B3D7ABBDEB2332DDB586AF80959097663CFAB2FEECAD6D368AE10EFF9663D5\ -F8BAB95935D25F45776F7F04B46817D05165A9DD4770509ABB92F8B9E7373CA7\ -80703569981754A51D6D376D65C57F55CD70E2DF5FDF5A6B829AE30CE3BF9428\ -15C8B4BE858DB58151D02A68AAB9FD373E047EFA51BD1A0CD1B61744D9E97CEB\ -A3334B3BAAFEA3BC9E43AE097CF2C3D713EECC247FF43EC74D54907D8BF45E45\ -B2E0E11D82B126A8179D3F66C055E11F69EA67AACC5FEE8AF01FAA379E51998F\ -5070F9EE0FD30A2EB22A925586FB1B39024EB5EB1E127C76A149E7F02AF1B73C\ -16E9E5A5DBE378E08A9FADF1194C625132AB3FDEFE8FE9A89BB8E0035A1A3AC5\ -278F5D3D0ADE0E41C81C6853A41C4AC45BE3F68180FE23F27F18BE2E339DE1D5\ -59D75DE63ADF7A32BAE42B037AEAA3E123A5314891BCD35CA48D57DF4C17540E\ -97202A8EA1328DA25B1FD6BE2B56AEC1E5DEB209F3B7A13ADB1CBE53EB645956\ -E577A7621D74E42376D70BC5C4AACD239A852FBB7B3F62CF59FE10438C1DC8E1\ -E46566325DA0CA43AAA63FB7E0B450A2DB3E3A2204704D894DB24B72B3078106\ -E096CD543DCF027650CB4965E38AC36A8AD588C5962B4E26548AB88F0BC20E10\ -ACC1C3FC00EF415B3C32499264552B14E2C0E789A3B8A8BFF9620FD939D0B34E\ -806177EC696A4B3B1CA4B32BA979B2690CFB3A6B17BCEE6877FFCE757E4116DA\ -01099FFE82ADD5A0C593E73449A96DB9CC2B9E846D166B095174F2CAF8B35DD8\ -78C836D9BB6EEEAF8E1BC5D0E149C739828CC480D731DC16B35B80D4AD82ED7D\ -29BD05018239EFECF8DEAE180C6A459DBCBFE4AAB9A5E2C1E1BC31418CF2EEEB\ -31FDF8BA02C9A91525E9163F672BAE2EDEC38C1BDB84EA237B4EF86BF5C0F0FF\ -E178E3761E82D94F66E5EA40BA8170BF768409E1B4177AAFD9937BCE3FBFF590\ -320D7C445372463FBBFB34F57447F42C16E026F179CBF82F617C86D1E8D42F6C\ -908F9C6B77E38D25D51303DBD781FFAB569B4CF31FD0B947C45E1768A2E9DFE8\ -369F520DC38D77937B69B821DB4FFEA8F50EBC404F0587B5598189F54B5A5B98\ -966FD16801C87DE2C3C7813DD70DC600824D426D88C55E89D47214D59206A7A6\ -5A65DA7CA2E42FA62ED17E7AA5B3ED446BCC71F17FEC8593BE96D2037BD07F94\ -76D4D732B32BC5DF8C921316B45699004716FC89F8D45BAE402C26DBCDF1A340\ -847B932FF882DBEAFBEDD252E126C89A1E1FDD8908A1F67D15D8E432DAD8E08E\ -950A3BC46B96CB89CC5BDAC703B3FA3E986EF1C6E7E6606E6845BA1EB2FBDCFE\ -E744B5E45206F4A419E1CB103C8490EB293EE9AEC1F0A0D294F9D3847737413D\ -30873F3C94740E8FD072817815EBBCE3F09EDEC9D1211A9E99547D620B2EC56C\ -89E9CB8144AE9E46636324BD13C6CCA3AB9CD9FD8F7F937ABABC598232384427\ -A2D4CE0CBF9765F7225E208C3CE128602B0AD08A1BAAB77EDB3111F0C6CA7BA0\ -EAC9D89D5B4378EB82C17F6EA08308A79A53D150D3F85EFAB77294F02EE0E288\ -5EE2AB2793392B87DB11FA77992F5B4FD75EF2F1A822E87407A4878894215AB8\ -9B6CC4A120F5A78B3C31AB80FFCC9ACEF53FC6F7F85685EB9D56D30D87C21ABB\ -F1652EEF8F32C7C567BD1F08623B09C29F33561D42727A5649A3850071AA6C11\ -735AE63C4FD31559CE560B27A362786A83353FE460B37074664A9421D3B2F6A8\ -64D5ACA087187B27E2B82F31CB3DF5E985CEA271C609B94B4E58356D40C7D5C7\ -FF2E5990FB39588154843EA5FCA92F120075D4C4D006661A0FA1B0585454BEA7\ -25473EEF7D58117D5840C8348999003736C5EEB7858FFD273A1C3EB2812F5697\ -C59110275B08F6BEFBE84C92497D5F73B7B6F794A849713B23AC5F29D5C7112F\ -B2E7A6E89EB54DDFA3122E6C79624C1BF25EBFB9FE5CE6DAA779F3ECB2984DA4\ -2F8C6ADC77B21DD291E684FCA50E46070962A2D4F00813D8DE1B8ED33FED9715\ -180C7EA8E2BB74FA65D9C7F6E142F3C81CDC59172E1020F62F65CA5A12CF2BED\ -9DEA04A4D8CABC2948F7BE823A3E792625275B3925A6C8D8E2B428C75A5DB0F7\ -120278CD7D6CAB768755C7FE2FBF89FDED1FB38AC7F76A2F8798CA36ED42CB7C\ -07F006271205F546A4812C20077F050D4CDC79459FA686E97F0704B7A9FF7DE1\ -6318E862C53D361BC635A55A264BE15016545DBFCE3C6D6849576ADEFB6884ED\ -D768214E0B438B0231B4F2692C2C0B5C177674F8A0DE236EACD9E0CEC7C8647E\ -4E9A5861B957EC834A2F8572F01304C3FD6A06019E5F1499B62BAA8670B65246\ -7FA9A4F10F053263BFE9743CC7D933F86136AAE3A6FB56754D7D238397A0030C\ -EBEA87CB255AF36138C373DBBAC41DD4A697032E4796C552AD9C9B3FA713C3A4\ -E09E0EC5581E94BE7F31065157662F9E9C678B1EF1B8B8A847C51789C22B1841\ -BCFC855820AF3258AF9E08231090B45D10046A00178E89BD515616B8A44E77BF\ -57795DABAF40687B2CDA7A5014168F:\ -4BA150C2F4DB2449515CC9B545EC0012747324700D0AC1E554EAB84A262BAF00 - -1633256AB03B20CE079196B708A1C02D1B6072219070712C8589EE21341D5075\ -2ACB6CFDA17E982D828BBD6CDF54BC7232FD418A323D64939928597B9B52F07C\ -F488250C5E42BFD3AB48012D709F8D747225839296386FCE5FC5AECC4BA7A107\ -6D089DEA8ECEFAA0CF66FCA8602395719C12A04F929321784D7AB8239FCE2FF3\ -BDAE046A266132B5C2AD9F7261F3014E87B389A6695978693D9371D0B1FF9C40\ -5F338C2FDE4687359603950A54CF4B9CDD9B24480B239ACC5405C14C886BBB03\ -78391CEF0662A38882BDD09E3866AB9A66CFBD28EB5EE4F8009BDEFC4AEB1670\ -0EBA7DC557B489190A71FDA75E85F7EF841697F70FFD4FEA185E7A67C81C5B8F\ -273BFB97B2CEF695C1C74446C4B425BE6B2E66DC0AAACB247E4467B7C7D84EC3\ -3B6B5AB8FA1979F503008BDCFF948CDBF1226B1B066CBCF34797298F3BA8C60F\ -A01E0AC8B803223C656112FB91435D75453BAE4707B63330467DD13E0A4B992E\ -6F7E46995899A2D95D23F4AC3D0802B2A6E7D024DEA19CA408C4BBE053F14C9C\ -E264F129724A18BCB18F385B1CA091A11434EA96D98C8D0602E98EDC8DFA1414\ -1AF93ED0BA66E885E9FA108591AE59E109AE34D6B9F5586E4B4D75E7DF7C3295\ -8A65E88A9BAF41082A0A3F11539DC4EA2CBD9E1C6C3C439B622F1DE574FA7547\ -0C8C939B51D2D1C2A7204B859881D43086BFD8FB90346218D099C5AB36846F3B\ -98A7C847318BDFA01E09717943FCD864C5A8A17B6CEB89D98E872D388F20ADC2\ -BE5E2006846904F41682FB1283214F3D20DBC9FC9E0FF571844A1282E88590D7\ -C085B2C568EC5ACC4462B389FEAA5757F7033187E2DE31955FCE55FEDC909255\ -048B327CCAB2E582BBC9D8054BF5CB45145C7D3A3AF9CD5CF6ECBA490C634ECF\ -00E646BF95E8642C43A4978EF08A574EF1F78F6CE57C3B34B5A123D123617FC8\ -EC9B2AC0F9B70A7F6062D38DD7B8E9FB4ECCEF13DED5C0477483ADDAE4F1CC0C\ -FCA274B1307ED0DE72FBCB819154CDA897D7575213042615F1741A8CB646A39F\ -8D134FDF9E60E000EB8220F65CC30F5FA52C431B9E3B6101B96E25B8D0440B96\ -E572A18A01747C02AFCD7513542F7AACE194632099D16274F31EBABB60DDD94F\ -E43DACCE900EC0902EB5E686D48ED8D09AE63DA0E15C736809903A0297A92DE8\ -4E0260F11F446E1FC448E0EBF59FAEA3C726F97925C57CBDF85B1F77078D3625\ -7C85D56CBBEDCE180FE12B687ADA2DC9912FAC60334166BD2CEF06B089ED5C95\ -63844D71D8FEAD2F3A93F3C07C52537336A8A70BF5B596B9007B9FDF2D082000\ -F20E6B70D2A7E6C7ED27C4146895A6D85A246F623C1B9258A2F891F823ADE4CE\ -FFD59D4FFAD077351E2F506E9A5BDD3900F0204B9E8969AFE72F5DCCB9CDF986\ -D197AE4C4DB53014041AE6221B750E5290E307AD292C8DE6B899235212EF8CE9\ -54785537DC9435AF11E0F3427A9C7B22EFA752EA0B7EADE5F6EB4093BACB7867\ -6E506698139E4F774423B8942166F9A7D22480D814FC0AE19CF4960FBF6E01FF\ -A65C8DA5BED4F1AE2B9ECEC5BE7B3C38DD4045B0C93EE6CC77A7E61E85D331B2\ -3C0D164B104518B3405497054445A353E9B48F2AC5E8E96298D6655614336CFF\ -E6D8C9C915E387391519AD2632366AA3BC935030FD12927EFCA17505ED74C946\ -50C778539004854DF6C24269AAB9C273A493D3E5B0B1D687C33C2FACE46B4BB3\ -742D6DF743D09164D2E0EE7F6BA128BD5FBA2E3B33C199AE80FA9DEE3AD811D0\ -2BAA3D42A6362B2AD47BBA8A2C5CD00B46CF22CFE367281488A4852EB8B7FACE\ -79F0CA6F8E78D32578DFEE01711C4DCF3C26D0BA13F3075478E708C5C5315AFD\ -C2E4C0062D16458213BEC506A9E991A61825FF78DA9BA1BAABBEFA56B4A8C9E2\ -E7B60EC4B7B541C8E0F79C86BB5F03F736761A37169B2AAB8884EC6EA217B02C\ -59035F5BB327243D126B78D4AAB430212439B5A75B80618DAFEB66AA3AFF866C\ -4DAEE47D374B512E74ADA933EF24A841BA271C6F02C870E8AB950FE06E93C91D\ -F0E99165DC01BCB190E411ECCD85358FD4A88127A22E4CF4266A90845124BF97\ -B25D7B1C46D3A0D68A684F84E2A638C692A52CB6E8C651A3AC492B0460004073\ -D5349E35552359CA37660F77B2770D6B2B3F7B1922424AC4A8598B4C61A6DB50\ -7608A72A6A7D573CC055206276E14005A28A0EC41F28D7E260611D40F089FFE5\ -E529375691412F4E9E12E62C3BE2C563C26D2444EA9C69E6C935FEB4DC4E802E\ -5FE3906F8ACEF4798D940C3CD574BB5E74506C3E0B70CB62454A25F589EADB6B\ -0709FE3B50417CD1D98F08E08B7CF68A04CCCF8D6588F9FC2F31E533CDA6159B\ -AA4297FA446450D71C16EA2324EC09773E7C8817ECF680ED12F64A04863EFE3D\ -9D8760F34DE5B0860B3991FF0EE5EDBA22C4D69120DE19D5429E4AAE91C9E7CF\ -05CC807159A58F13B480872AC1609D87E7009DEDB71C09CEAAB640A2B6135855\ -CEAE4AC2954933A0255B425D9FDCD9C246F82AEB7C3BB78C6E73E03DB7AEC424\ -5A28693FBD36EF4938D59CCE19EAFC00671A0851612406A075713C5D1154D8E1\ -3B59B7C5B0902239D4BACFA386AC817AC5EE02A181A9A47C622B3ECF287E1484\ -3D452AF347110498A620B34AB4E116308D976062C9EE9CD35DB6CB79805B93AC\ -9A15AFBCB52F1ED4309879D1924A4BA190B0B86E60A516E77D34B4E0A49D4EF2\ -CEF3CC2F410FD8EC901363FC9EBD75EB460D4D8910BDF27CE26A8B4AEB94F9F7\ -6242401DC35D0644842B99FB6C439B82D82ECFE1AF0D01F9BECB15BEC83F13B2\ -60F7F714AA381032923FDE8F8018F3518547451435C9A5207294D08A907C7369\ -6F6CB000745E072E25B73B3EE11595433D27A1F11468686F08094F1D31F5ADA8\ -1F11F0677A29D72EBB2E1C4792CCC607CB938647E1F153F9EEF03D982595C631\ -E49B6B7C1FA003A6EB8D59CB8892CD0888B05240F12701753F89007C859515A2\ -FEF944BC60B36003A26702AC6FE04D2E942978FC31A97EB29871D6752399D352\ -1720729007B6A7215A4282B2A4EFC2C56BD129E74C9B00847692B96FCC71CF7A\ -7F19F3FD6B45C519FD73B4860880A2DD74E5727B31A93F0A87F0078155344AE9\ -F7BDBF00D83393B634B5DCA88A398E42C320EB95C4A826ACEA90B65E4767B2EB\ -A748F97C247568393E2FD3A66075CC12935B6D7EB5C2FF5282185CB62C73972A\ -37B3CA508004B4F796BDF82B83B5BDF90D6BFD32B5089B0CA2683DC7FB2337DE\ -42E650ED911DBEE1EF98257F9BA5AF54B1A54B04C0087A5A64BA779D86461BA1\ -5337C2E7D4955FDD777A025DE226306A17C384F1C52CDB5946FB0B46DD5C13BD\ -7A55FE2E27E4C6D40D61D6FFC024468F8EDFC7C7992DF5DC5D05063FE7231992\ -24F53678E48F25250EA28BDF1089718EB8B730D1C06735C2F871164E2EB5E885\ -A8DFD2A083BE97EDC94159CE9BF75D2433F1D782762F771903CBF9A1C9D13F71\ -0BA0E151B079DC0A8262BCEB1DBCBBC0F35DF6EECF7BAA7105B9808745853C96\ -B4372E95E482035916B726DAC7BE95A72B19DAD48DB1B19E6EB2EDAB5AC1B301\ -3839E7806625ABC129F41813E6D71EE4AB2040D81E42E6ED73ABBA64FF2EB433\ -B910EA7D4F5ED3D8D27D39BB454EC019DF6114F544D7B155549D0C56D14551FA\ -F353994A80F30F3C97E863A4F2AF316468A568038EB4D799350A6FACAFF90ECD\ -44E0F44EFB6DC42EE4B0DC2C59EA9C1827326DF08C0A6E55CF4F9C3EA0E78CFF\ -3635F5D08E44F1400D20F638D56BA84B4832090454DE57EF04B6C8805A36F63E\ -5CCC6E830C87FFC164647CED20E4C486D09DE7A5F9E4B68D5456CDB22B0DDED2\ -B95B3BCAE529215C2D25D6823C7D66A4FAE0A1E9F022BA5663204F2314DFA51A\ -1F10E11D6D62A8BA6C28B6AE7DA1DEB5B57F2B65D7456059AD9F03DC5A524054\ -DA39DD100D74EB657DE219795E3C45A0E4C762BA22F9DA9D8159E425A1EE783B\ -4B22C250D8894CBEC706CE16D5CA393404FF478F141BE7CC69E45B077BA1955F\ -1F49EFBE4847C795347F703300F672334F490ABF8B644A34B56DA00EC45A3503\ -14B9ADF27CAF7C51CB7DBA0C5477E7D37662F4F23247BCB8F7DD5F3E9CB8BDA4\ -0FA97568832AF0ADC68F71422E412254A6BFC8943BB465B01FCC8DE0B957677C\ -78BC1F7566953E9D2446239F602C682A521C14F741FEA98C7E27AABEC339B6F5\ -B94C78287A894AFDAE971F8DA7C7E4A4C92C8DA47BE82DC2532EC2DA9BACEDD2\ -BE6DB2B2FB34DCCDCB34116507376578CBCA105E5E443BEC0F2EF23BE34CDF86\ -2EDAB34F0FF21335E3ACD92F59688B419F824EA61EEA82BC80E3463452192377\ -131BA51FB0795E089FC077D0ECA8012E58B0637AD7022206887FE9EC00EE5DF7\ -AD2E26FE819EE35C7A179C579098AA3DF645D9064CD557DA90BDD21F871CEB04\ -8CA56DF9653A10ED60F5E9F0ED7F8D89BCF5C22D1143CF44718FF2DFD8E10CEF\ -8AABB67D2305F18177C1426BD4CD03F2625E459CE905067826A214E08E56D8F9\ -455593E6B324E72DEDCC429D3BEFE2AE0599E360DF95E80D453A3A849E48389F\ -A745635BEDE30E7932DE6A3816E31A2217F98D5E40238963D0A36C159FD4EC32\ -D8A5CF59D433DEF3378634AF6887FDB3F3EDB96FC8840FE1B538C329674AE810\ -E8C8B2B46DB208716D38E9D1AEAB097068AD83ADD7DD2647839B3A7388B0615B\ -DE26F8692E9C07D8ADECC2A875203C3D3A9C6CB1D7D06307E9E1D9C3BC536DD8\ -EB271E9A2159C904E61E8C9357FE759F36366AEF5A3D14CEE82913CD2708AA60\ -69369CED763C8E830D70924E82E9015C2998E86EFC1DCE6AC2EBCB49455542A6\ -D7DAB265AD6D7381FFEEE1AA40F8FAC0659B6FB56BB03CD8CAFAACD48D13672F\ -7D524EB9684CFED4DBB7476E99149C28EC08F33BA6AFF839AA178F86B8EEAF17\ -39C829177BA78547AD394136AA3FAD451A11E9642506568B39668B2436610E06\ -EA45FA11D04D3759B033B5382645F15B3C39270B81B80487643913A24F2F1C1A\ -1ED57C85CCDDC8CD6D59B62FA67CC80572968C8FD01894F0153634C88792A7C4\ -A407A4A4CE46CEC5FE5D2569F95A27DE242444EA0C715B357518CAEA23E767E8\ -545983F0D3A4DF66111B4AA1D399CCAFD796D7A80E592D5A51D2B3F60B5B04F8\ -D9C009CA56CBD4DD84127A29B72ADB7645FB7279C9818B2B43963BD605F45B65\ -75A5E2E369E0B401F5EC10EC703F1179B0AB9D4A89D6F096573952E513827364\ -A84D38922734137E969D8167D6959B70F42F2BDA37E4C989ABAA8024C1A84ED6\ -BEB74780927F78B32EA736B9B2B4A795C355C0319811729D9CC399D235197303\ -38D62E16E5035FC52A817090703FE776D65EF9FEF5BA5F4FFEC3CC8E9EB2E312\ -C50A479BDD4E6AB0A56C18C2DF69ED408417BEE28BB41DD13F8366FF6EDA4B34\ -090FC9BC045271:\ -192EAEA84038D588AD55DC5143F2BB10040EF78BFC7FB91F6B5E4C053466AF00 - -[Keccak-1600(384)] -:\ -2C23146A63A29ACF99E73B88F8C24EAA7DC60AA771780CCC006AFBFA8FE2479B\ -2DD2B21362337441AC12B515911957FF - -CC:\ -1B84E62A46E5A201861754AF5DC95C4A1A69CAF4A796AE405680161E29572641\ -F5FA1E8641D7958336EE7B11C58F73E9 - -41FB:\ -495CCE2714CD72C8C53C3363D22C58B55960FE26BE0BF3BBC7A3316DD563AD1D\ -B8410E75EEFEA655E39D4670EC0B1792 - -1F877C:\ -B0665C345F45E6DE145B0190335EF5D5AA59E0B49FC1425D5EAE7355EA442284\ -CB8A2152D565EBDF2810ECCAB15AF04F - -C1ECFDFC:\ -F1850B2ABB24F3FD683C701582789D9E92B6A45F9C345F9DAE7F7997C8C910E8\ -8003E592E59281CF92C92D6B51A1AFD1 - -21F134AC57:\ -68D437327F158287C304BBAF36F782F497DA2C480A1FBB268682362218641F90\ -70A014919AD7331C49BEEFCCB437FE9A - -C6F50BB74E29:\ -03566EC003FF55184F0C85BEEBC6D1ECF5E5D082D8D40137246F8FD42BCE097C\ -09418845EF60286FDD894A00FD2D6589 - -119713CC83EEEF:\ -790D700FA34D6A835BE311B639474780148A2F087AC2FA86E8A1A433EC7A04FC\ -BFC5284A3E188B7D91C6D094EAFBEECB - -4A4F202484512526:\ -638E65758A297CB09DED1AC5B9E8F779802000AB791F67F33C60BE36443793AD\ -CC8A4A58E98688157A41784F02A4BCB2 - -1F66AB4185ED9B6375:\ -308EC6F2EE3F6E01FB3AA06EB7C8CADD199354751B69FD4BA4D4671858F28BB4\ -5C94E712AD9D356FCB443067EF5ACA2D - -EED7422227613B6F53C9:\ -A88F2FD112E5F11E775AA7858A3A5202E8FCD259F5D112BAA6F568240D2ECC04\ -7EAD88509E4B8A747D370751FFB2FDC0 - -EAEED5CDFFD89DECE455F1:\ -A22A31349D7816545BE31B80E992BDBB62A29480917CEABD0AF5F2FAFBF276D4\ -C29B63A04910B830B8757C81E223B7F9 - -5BE43C90F22902E4FE8ED2D3:\ -36CA9CC329F9A00FAA5F4F21170A017742174D3CF03C084AEB759F6FA0390349\ -E1B502E435CFFB0BCE4ED46C0012A65C - -A746273228122F381C3B46E4F1:\ -3DA54976B291DF77F10BF95E9B7EF9FB2F88DE075DDF6650BA788590F4E2E3C8\ -30D3B7DFC0193656B0A185E3AAD9AA5A - -3C5871CD619C69A63B540EB5A625:\ -D21A7CF252358A1159A55934456E67D9E1DA538D4E9F9F1ACE2FD75F3074B27A\ -E2B356144BDA7BA0B1ECA1AA201B20DE - -FA22874BCC068879E8EF11A69F0722:\ -8A0C6331429375F052960AFFF6D5FE33759F97145D60B262BEDE86D525499455\ -8FC1800ADD09D6887C275F4DD3531CB0 - -52A608AB21CCDD8A4457A57EDE782176:\ -18422AC1D3A1E54BAD876883D2D6DD65F65C1D5F33A7125CC4C186405A12ED64\ -BA96672EEDDA8C5A6331D28683F488EB - -82E192E4043DDCD12ECF52969D0F807EED:\ -4A59DA05C6E035D59D93F559D4A130D3ED91C22EADA53FD679FB0B0F31398A6F\ -F83A5A9739BFD4E95F57318FCCB816F0 - -75683DCB556140C522543BB6E9098B21A21E:\ -98E6BCCA5F2BB30C554700202E0604F7C86B4941F0345325100C83B1234C4585\ -6DFA761E70DCD972ECB1247AEAC29259 - -06E4EFE45035E61FAAF4287B4D8D1F12CA97E5:\ -D3C3D76B3D3926FD4CC4C05A087C2D76992998A5CD8C13FA3D233E0ECB2AD8B8\ -1BA4BE581E02BE91C7F82CCAC90013A0 - -E26193989D06568FE688E75540AEA06747D9F851:\ -7C53DA060058183CA6204E77F0709AEBEF73557C8F5E45C195B7E9416E726136\ -5D03B8A2D6C01A102655344E725475C4 - -D8DC8FDEFBDCE9D44E4CBAFE78447BAE3B5436102A:\ -2415C1D053CA207C17D99D02DBD177CD1AA7F00B0D0CA2CF30B4D2098EEA1A04\ -A68E5B1C6DF2FB25ECE157C423EE8AB7 - -57085FD7E14216AB102D8317B0CB338A786D5FC32D8F:\ -90DA42B0C314445EAFD8656B26644ADDEDDC713EAB36289BFFC6ED4A85BE66A1\ -0F5ACD6B3C61E9C36A17C26260872DC8 - -A05404DF5DBB57697E2C16FA29DEFAC8AB3560D6126FA0:\ -EE209E98A75A67B09008202CAD380917EB1F92C5DB4E8F2C64900AF8C603D265\ -CAB317BF7B8E2251E479F8818D3022CA - -AECBB02759F7433D6FCB06963C74061CD83B5B3FFA6F13C6:\ -1198EFA57E1A7884DAC827E683255575510E1F92024A135144659BE87BBF0D06\ -3ED26C987647B923A091CF11680316FE - -AAFDC9243D3D4A096558A360CC27C8D862F0BE73DB5E88AA55:\ -0435E54C016C0791677DDBC6BADD55D146754296B31132B0B1C0B5CE4AEDB03A\ -EAA9A2DC5157D7AF20B8E36D75E1CC00 - -7BC84867F6F9E9FDC3E1046CAE3A52C77ED485860EE260E30B15:\ -88D898ED7E6E54A683812B372F678A5FD73BCF3160A969FE4584651ADB3255F9\ -ADCC8B85DCCA5C3BF8EBA3A1B69D9B90 - -FAC523575A99EC48279A7A459E98FF901918A475034327EFB55843:\ -7AC343A9369FA7BF45AFED43084DC1E275AB1B70034CFAACD4F3CB5E5E2201CF\ -BD1CFFF83BAAD3897A4CB8A0DE5C35C4 - -0F8B2D8FCFD9D68CFFC17CCFB117709B53D26462A3F346FB7C79B85E:\ -58877B8DD98C51339E4302ABE95CF57662CF05AA01938161CBFB5DDDA724517F\ -0C002D54B54EEA7EBD64E209DAEB8F01 - -A963C3E895FF5A0BE4824400518D81412F875FA50521E26E85EAC90C04:\ -1CD638128718BE351385E7A156C3F0EE8B210D1565876F8ED46C227B930D188F\ -E8CA27760FE189D3B136836561E9A0EE - -03A18688B10CC0EDF83ADF0A84808A9718383C4070C6C4F295098699AC2C:\ -B4DBDFD9922AFD1CE46FF1CB27C30E2AEAA967631A04001C7EF2B5EABD3C0678\ -C0FF219BE7B9FA04CF83DD40BC1B33B6 - -84FB51B517DF6C5ACCB5D022F8F28DA09B10232D42320FFC32DBECC3835B29:\ -503DCAA4ADDA5A9420B2E436DD62D9AB2E0254295C2982EF67FCE40F117A2400\ -AB492F7BD5D133C6EC2232268BC27B42 - -9F2FCC7C90DE090D6B87CD7E9718C1EA6CB21118FC2D5DE9F97E5DB6AC1E9C10:\ -64D11ADC77AF5C568F37E44EFAC5FD03C460391AA833ABEC4E464237A8937EED\ -D23EC513DD2A71D0329BEAA8BEF395C9 - -DE8F1B3FAA4B7040ED4563C3B8E598253178E87E4D0DF75E4FF2F2DEDD5A0BE0\ -46:\ -CF38764973F1EC1C34B5433AE75A3AAD1AAEF6AB197850C56C8617BCD6A882F6\ -666883AC17B2DCCDBAA647075D0972B5 - -62F154EC394D0BC757D045C798C8B87A00E0655D0481A7D2D9FB58D93AEDC676\ -B5A0:\ -882BFF904BFF1031139503BF6E0274C7A3928C2D73BF474A65B97C22F65F32BE\ -26AD1C5F7E4FA35D5B6253AA4076361A - -B2DCFE9FF19E2B23CE7DA2A4207D3E5EC7C6112A8A22AEC9675A886378E14E5B\ -FBAD4E:\ -80448B7A76E0F0666048C02165A4FA8DFD250A227CCDD4471C3703D07762362D\ -C1DF55FEC29E2A31FE70958374271DD7 - -47F5697AC8C31409C0868827347A613A3562041C633CF1F1F86865A576E02835\ -ED2C2492:\ -6268CD6B41F4C5123EC4D54D1E6943ABB32DBE7BFFB8EB95E4FCEE5C12D4647B\ -E143C27F1281CDD275904920441508DA - -512A6D292E67ECB2FE486BFE92660953A75484FF4C4F2ECA2B0AF0EDCDD4339C\ -6B2EE4E542:\ -C73D18DE07A65ACC7E2D8B2A51002AE28CBC4B0A6EE7F81A6B483F81A6DF8FF6\ -B33F632A6E6312888CA714821C0B13DF - -973CF2B4DCF0BFA872B41194CB05BB4E16760A1840D8343301802576197EC19E\ -2A1493D8F4FB:\ -3A0BEA62F42F9CEEDB348F6E1613F00356ED9766A5C19F0C2EEB05C74DE69D39\ -43E16CF72281FDD92715FA3D51515931 - -80BEEBCD2E3F8A9451D4499961C9731AE667CDC24EA020CE3B9AA4BBC0A7F79E\ -30A934467DA4B0:\ -1092F63955F3DFEF1322CF9516F21540215552BC5709CCDA17AD276ECAA091A7\ -8451FE9925791B8A9191B5D42010156F - -7ABAA12EC2A7347674E444140AE0FB659D08E1C66DECD8D6EAE925FA451D65F3\ -C0308E29446B8ED3:\ -8CD022971D5769761B8E96B442444FA1850F1201AAB0AC9F6E8404E2B3EA1D93\ -6244EEDC7957C80B7FAE60B3F216C6A0 - -C88DEE9927679B8AF422ABCBACF283B904FF31E1CAC58C7819809F65D5807D46\ -723B20F67BA610C2B7:\ -B6575D53D353360521B20AA1F993F6E2B5A262D1F508789D5CE2469E9F3F33CC\ -E8848DF690CCB0D676FB949EB171A7D7 - -01E43FE350FCEC450EC9B102053E6B5D56E09896E0DDD9074FE138E603821027\ -0C834CE6EADC2BB86BF6:\ -7358C6A0AE58EFA14F65B8E162F07EF2D0AD8DD2006A98293307B76B3BA9E71C\ -308A6694F0B56DE8D59E58536C3513E8 - -337023370A48B62EE43546F17C4EF2BF8D7ECD1D49F90BAB604B839C2E6E5BD2\ -1540D29BA27AB8E309A4B7:\ -18030C2B5EA23B6C66BDAF180A41173394540215CA48FB3E758433FF9884EFB9\ -E56D2922BA5320BA84BE36E6EFE6B89D - -6892540F964C8C74BD2DB02C0AD884510CB38AFD4438AF31FC912756F3EFEC6B\ -32B58EBC38FC2A6B913596A8:\ -6F9F9016AC3B6A5978A5DC8C7506C8B4D28742253BC542E79D95824417AA5429\ -91EEF7E2B9C58CDB0C93616AE9C1F88F - -F5961DFD2B1FFFFDA4FFBF30560C165BFEDAB8CE0BE525845DEB8DC61004B7DB\ -38467205F5DCFB34A2ACFE96C0:\ -424421BB9399BD44AB76500273D7F1E1421A2BFDE1A1C130C0B3474409D8AE92\ -B3E38539CFB09ED1D23C62BB32B9364B - -CA061A2EB6CEED8881CE2057172D869D73A1951E63D57261384B80CEB5451E77\ -B06CF0F5A0EA15CA907EE1C27EBA:\ -D07A2CACEEA869274BAEECDA43B6020930EF383A897C72A7AC7FBD8FF5CEA7F8\ -BE655844D9F9BD2B498880FA1527D94F - -1743A77251D69242750C4F1140532CD3C33F9B5CCDF7514E8584D4A5F9FBD730\ -BCF84D0D4726364B9BF95AB251D9BB:\ -25D7AB5E930819CF5F59ACD2542691AD66481DA547EAA9C2ADD7C8EA69A475F4\ -16C430EA1DE840974E3236A62520911F - -D8FABA1F5194C4DB5F176FABFFF856924EF627A37CD08CF55608BBA8F1E324D7\ -C7F157298EABC4DCE7D89CE5162499F9:\ -36A6BF2D4EB3CC6FB797914E734B2CA8702CA7CC6D539B4DDB233EFAFCF06871\ -2E845364A4A929D31A440C7DAF8B134C - -BE9684BE70340860373C9C482BA517E899FC81BAAA12E5C6D7727975D1D41BA8\ -BEF788CDB5CF4606C9C1C7F61AED59F97D:\ -B69D40A90207EDB20C0068F402008C0E64300B89A1B6AF7930708B263C790A08\ -7F3ADBB4C84295D23392E0692F35BDBC - -7E15D2B9EA74CA60F66C8DFAB377D9198B7B16DEB6A1BA0EA3C7EE2042F89D37\ -86E779CF053C77785AA9E692F821F14A7F51:\ -CDDB883B9EADC59D2894178B3BA6F61E5E11C2C415C89E554E20A17E4909F8D9\ -60F02AA80E1A5129AEEBF2CF975711A4 - -9A219BE43713BD578015E9FDA66C0F2D83CAC563B776AB9F38F3E4F7EF229CB4\ -43304FBA401EFB2BDBD7ECE939102298651C86:\ -FBE0056D65AF279EFF1573F169809A05B6A52112B662D07CDD2570BE5E198A28\ -D1EA49CBEAF0C05E76A9F09BAF6D1F34 - -C8F2B693BD0D75EF99CAEBDC22ADF4088A95A3542F637203E283BBC3268780E7\ -87D68D28CC3897452F6A22AA8573CCEBF245972A:\ -26473DE684CF58D559C7C0CFD360A9AFFDF33900FD69A3A946581484B93EF6FE\ -6FFAC461B4551E136BEAC64CC33A4C15 - -EC0F99711016C6A2A07AD80D16427506CE6F441059FD269442BAAA28C6CA037B\ -22EEAC49D5D894C0BF66219F2C08E9D0E8AB21DE52:\ -462AD97BB0156A5DA3DD0E9E5BF06D31024FE43BB80C018F6858EE4332F2EB5A\ -78ADA06CB55DDC172AD87F88E26D2451 - -0DC45181337CA32A8222FE7A3BF42FC9F89744259CFF653504D6051FE84B1A7F\ -FD20CB47D4696CE212A686BB9BE9A8AB1C697B6D6A33:\ -9F890FA80A4C48B67181E89DBF15175CE48B21F9D09405218A8CE3C075928278\ -0E142FC59851157D14509FCE79D1B17F - -DE286BA4206E8B005714F80FB1CDFAEBDE91D29F84603E4A3EBC04686F99A46C\ -9E880B96C574825582E8812A26E5A857FFC6579F63742F:\ -2D9A3447D7723D837B8784FEAF03B8F9694CDE5FFB84C6A6628895A345BB8F3F\ -5BA725416906DE063B1CEFB722C7E56A - -EEBCC18057252CBF3F9C070F1A73213356D5D4BC19AC2A411EC8CDEEE7A571E2\ -E20EAF61FD0C33A0FFEB297DDB77A97F0A415347DB66BCAF:\ -AF415063A5E25C6E55ECA7F9BD1CB0C71A7A059B569737036B339CA559CC9C74\ -66FA239EA57CFB5FCC50944871C008FB - -416B5CDC9FE951BD361BD7ABFC120A5054758EBA88FDD68FD84E39D3B09AC254\ -97D36B43CBE7B85A6A3CEBDA8DB4E5549C3EE51BB6FCB6AC1E:\ -6811EC07E6E85A289C881722AE84E6AEF01FD2761294C6ED9856D2F7EA1C71A8\ -9B2FCF4A9E56533360EA22317561EC05 - -5C5FAF66F32E0F8311C32E8DA8284A4ED60891A5A7E50FB2956B3CBAA79FC66C\ -A376460E100415401FC2B8518C64502F187EA14BFC9503759705:\ -7C90268E981A3C0FF19E14CE9830A1B9DA5FC183950875961582644462059DD2\ -FADCFA68750D7D2F44DFCAB9FFCE5832 - -7167E1E02BE1A7CA69D788666F823AE4EEF39271F3C26A5CF7CEE05BCA831610\ -66DC2E217B330DF821103799DF6D74810EED363ADC4AB99F36046A:\ -64E9AD357B58C6FA0D26D0D1F48C4AB057B9F80965AC38494E88F542BA41D6B7\ -98FC2DD88290F8DDE7948C19B5A1F260 - -2FDA311DBBA27321C5329510FAE6948F03210B76D43E7448D1689A063877B6D1\ -4C4F6D0EAA96C150051371F7DD8A4119F7DA5C483CC3E6723C01FB7D:\ -3D73B33F001387FD1E752068AF39454E476B8407038C772D94400458C93664EC\ -5226AD1BD3A19A6D9A6FBD6E6A62695C - -95D1474A5AAB5D2422ACA6E481187833A6212BD2D0F91451A67DD786DFC91DFE\ -D51B35F47E1DEB8A8AB4B9CB67B70179CC26F553AE7B569969CE151B8D:\ -FC619CA9810CAAE3639B3FC661388C454167271E65ED0A2E5E8BC718AD21B9ED\ -E895A658C946DC2FB15B33354DFE402A - -C71BD7941F41DF044A2927A8FF55B4B467C33D089F0988AA253D294ADDBDB325\ -30C0D4208B10D9959823F0C0F0734684006DF79F7099870F6BF53211A88D:\ -5843123A28F0B50C082023AC43B7299C4FE67302532DF4805BE6DEC3B84515B1\ -C6C98F8A4E3D6CA826DA4A11300C3B9B - -F57C64006D9EA761892E145C99DF1B24640883DA79D9ED5262859DCDA8C3C32E\ -05B03D984F1AB4A230242AB6B78D368DC5AAA1E6D3498D53371E84B0C1D4BA:\ -81EDF06E9B64F3016B1547535ABA4DB08760FD23E9580163192F663FF6210600\ -1006A1393CF20DE4656DBCB029FB6314 - -E926AE8B0AF6E53176DBFFCC2A6B88C6BD765F939D3D178A9BDE9EF3AA131C61\ -E31C1E42CDFAF4B4DCDE579A37E150EFBEF5555B4C1CB40439D835A724E2FAE7:\ -14AA679B0C11F9C363F549330261B45E1E90CE31F4A1B0CE5CB9EB81BD6079A3\ -742D8602356C50985D0D3E540FDFDCFB - -16E8B3D8F988E9BB04DE9C96F2627811C973CE4A5296B4772CA3EEFEB80A652B\ -DF21F50DF79F32DB23F9F73D393B2D57D9A0297F7A2F2E79CFDA39FA393DF1AC\ -00:\ -E430CE80BCC61D87FDE0A278CFF54D730C03A03377F4AC10B93ED59C5880117A\ -CB20F1705AEFD29BE033D2F202594655 - -FC424EEB27C18A11C01F39C555D8B78A805B88DBA1DC2A42ED5E2C0EC737FF68\ -B2456D80EB85E11714FA3F8EABFB906D3C17964CB4F5E76B29C1765DB03D91BE\ -37FC:\ -C9F74AC47F9146F091DE6309357F3C2AF3A9C4474CC005AEFACE3C7A552B6127\ -E34EC82C3AFCAACDD83E695CB86241E4 - -ABE3472B54E72734BDBA7D9158736464251C4F21B33FBBC92D7FAC9A35C4E332\ -2FF01D2380CBAA4EF8FB07D21A2128B7B9F5B6D9F34E13F39C7FFC2E72E47888\ -599BA5:\ -C42ECC8863077ABFF689413CE37B61F0436DDB62E56DE4E3333C26D95AEE9E9C\ -BE1D8AAA6744C0DE6BA9CFF0FF01A6BF - -36F9F0A65F2CA498D739B944D6EFF3DA5EBBA57E7D9C41598A2B0E4380F3CF4B\ -479EC2348D015FFE6256273511154AFCF3B4B4BF09D6C4744FDD0F62D75079D4\ -40706B05:\ -B15392718CBF4A7C7FAD1C15E7F26C446E79D54251404E646B4DCA3D42142ED5\ -140D0D30BD836C7D513CE6F5E104D42D - -ABC87763CAE1CA98BD8C5B82CABA54AC83286F87E9610128AE4DE68AC95DF5E3\ -29C360717BD349F26B872528492CA7C94C2C1E1EF56B74DBB65C2AC351981FDB\ -31D06C77A4:\ -E03294C68EDF4E8826B699ABDDBEF75467C49CAB56E085E4B83A58B2D9BDFAC9\ -D58B45AACC0EC0CE2D6D79686A41AC13 - -94F7CA8E1A54234C6D53CC734BB3D3150C8BA8C5F880EAB8D25FED13793A9701\ -EBE320509286FD8E422E931D99C98DA4DF7E70AE447BAB8CFFD92382D8A77760\ -A259FC4FBD72:\ -D5539D7AEFF9F74DC75B6E95EADE063BE419B15A4179CFD06D4FD2741E22B2A2\ -4395AAA1C0242C995EB5EA891347B4DB - -13BD2811F6ED2B6F04FF3895ACEED7BEF8DCD45EB121791BC194A0F806206BFF\ -C3B9281C2B308B1A729CE008119DD3066E9378ACDCC50A98A82E20738800B6CD\ -DBE5FE9694AD6D:\ -B115A9968B054C934C396D8188BA0C33A23C7189CE88B1DE4A06CD319792D286\ -47EAE1D88FB0B87443E46292A5C645E8 - -1EED9CBA179A009EC2EC5508773DD305477CA117E6D569E66B5F64C6BC64801C\ -E25A8424CE4A26D575B8A6FB10EAD3FD1992EDDDEEC2EBE7150DC98F63ADC323\ -7EF57B91397AA8A7:\ -C8FAEF757E6D7B0AF46DA1E57C71ABB4AAF7CC91C5CDC33BA8A738172B95DE08\ -7EC4C92692CB40EE3787BCE3206FB7EA - -BA5B67B5EC3A3FFAE2C19DD8176A2EF75C0CD903725D45C9CB7009A900C0B0CA\ -7A2967A95AE68269A6DBF8466C7B6844A1D608AC661F7EFF00538E323DB5F2C6\ -44B78B2D48DE1A08AA:\ -F4F21BB74593AA107DC195FF52A3F90816CCEAE8D3EB9D4577B28B49C339837A\ -52700A62EB421E8CA1C87F456310F62C - -0EFA26AC5673167DCACAB860932ED612F65FF49B80FA9AE65465E5542CB62075\ -DF1C5AE54FBA4DB807BE25B070033EFA223BDD5B1D3C94C6E1909C02B620D4B1\ -B3A6C9FED24D70749604:\ -83544511A07F6058D9FE5AAD7EA837A9E180D8BBB884C5650B798942983A605A\ -514C21D8D63DB0E25AAE51D26F410BC5 - -BBFD933D1FD7BF594AC7F435277DC17D8D5A5B8E4D13D96D2F64E771ABBD51A5\ -A8AEA741BECCBDDB177BCEA05243EBD003CFDEAE877CCA4DA94605B67691919D\ -8B033F77D384CA01593C1B:\ -8ECD8459FB904D2EDDB14207659C2BF96EFBD3E4C8988736EC75088F1CC8115D\ -3FFFC8CEDF1C01721469D27968A6856B - -90078999FD3C35B8AFBF4066CBDE335891365F0FC75C1286CDD88FA51FAB94F9\ -B8DEF7C9AC582A5DBCD95817AFB7D1B48F63704E19C2BAA4DF347F48D4A6D603\ -013C23F1E9611D595EBAC37C:\ -BE60246E27959DC8065C6D4DCAC93EB7F7146B49C759BF1DD5EBA46A3ECF0747\ -84A9DF18DEAB7A19AF7F6290CDACA87B - -64105ECA863515C20E7CFBAA0A0B8809046164F374D691CDBD6508AAABC1819F\ -9AC84B52BAFC1B0FE7CDDBC554B608C01C8904C669D8DB316A0953A4C68ECE32\ -4EC5A49FFDB59A1BD6A292AA0E:\ -9235BA18C55E2CBCA0FB1DA3BC8D0DFD848CA0E51DDC1020D4BECC0F138DA108\ -7929FEC93AF16F5FB29C4A777DD91548 - -D4654BE288B9F3B711C2D02015978A8CC57471D5680A092AA534F7372C71CEAA\ -B725A383C4FCF4D8DEAA57FCA3CE056F312961ECCF9B86F14981BA5BED6AB5B4\ -498E1F6C82C6CAE6FC14845B3C8A:\ -08739DD866C6216ADCA26D6121E5D81FDB1F7BCD4802C2B811D73C282277D401\ -4B4936E5589F62279BB33075705795F8 - -12D9394888305AC96E65F2BF0E1B18C29C90FE9D714DD59F651F52B88B3008C5\ -88435548066EA2FC4C101118C91F32556224A540DE6EFDDBCA296EF1FB00341F\ -5B01FECFC146BDB251B3BDAD556CD2:\ -D2A2E858A5DD85D62E6F51AF7E42352AC0D7A68A835431BCCA47557E3B5C3373\ -F40D3BAF85AE416012C7C982B2325790 - -871A0D7A5F36C3DA1DFCE57ACD8AB8487C274FAD336BC137EBD6FF4658B547C1\ -DCFAB65F037AA58F35EF16AFF4ABE77BA61F65826F7BE681B5B6D5A1EA8085E2\ -AE9CD5CF0991878A311B549A6D6AF230:\ -2990D7EA068A0307047B151D5DD6B1B2358A9EC8AD9B6B826CF1BEF399D488BD\ -68D77DF8BE99F7DF7AF14AE0CE636379 - -E90B4FFEF4D457BC7711FF4AA72231CA25AF6B2E206F8BF859D8758B89A7CD36\ -105DB2538D06DA83BAD5F663BA11A5F6F61F236FD5F8D53C5E89F183A3CEC615\ -B50C7C681E773D109FF7491B5CC22296C5:\ -4B3087F800E4084D7F685737AC635DB459CF70C4FA863C711C1143CC10F0C4AB\ -0A2370C099FB282F9C1CE5F015BF3F79 - -E728DE62D75856500C4C77A428612CD804F30C3F10D36FB219C5CA0AA30726AB\ -190E5F3F279E0733D77E7267C17BE27D21650A9A4D1E32F649627638DBADA970\ -2C7CA303269ED14014B2F3CF8B894EAC8554:\ -5D347FDDB118FD7DB270898407979D2D1531D3FF6642EC4F22917EBBEDA6CEE0\ -FB0DE11432EDDDFCBF0E2AB9CFA65804 - -6348F229E7B1DF3B770C77544E5166E081850FA1C6C88169DB74C76E42EB983F\ -ACB276AD6A0D1FA7B50D3E3B6FCD799EC97470920A7ABED47D288FF883E24CA2\ -1C7F8016B93BB9B9E078BDB9703D2B781B616E:\ -954637B87FDCC484F2B61F7F42558068029F96099C1D6B9246585092EAE68924\ -E5441B45027248A2728833169BFA5004 - -4B127FDE5DE733A1680C2790363627E63AC8A3F1B4707D982CAEA258655D9BF1\ -8F89AFE54127482BA01E08845594B671306A025C9A5C5B6F93B0A39522DC8774\ -37BE5C2436CBF300CE7AB6747934FCFC30AEAAF6:\ -78726E91AC311F4D104706362B0314C243CD81644125881FBC03670210C89FB8\ -E7BFF6C61FF68B234C3171F16B398F36 - -08461F006CFF4CC64B752C957287E5A0FAABC05C9BFF89D23FD902D324C79903\ -B48FCB8F8F4B01F3E4DDB483593D25F000386698F5ADE7FAADE9615FDC50D327\ -85EA51D49894E45BAA3DC707E224688C6408B68B11:\ -80763FB54688F122269430980AA3ABE09091020B8CFA6BDE0EDC2C63AED8B8BA\ -097CDB79B8FC7F5117508FCA4864A14D - -68C8F8849B120E6E0C9969A5866AF591A829B92F33CD9A4A3196957A148C4913\ -8E1E2F5C7619A6D5EDEBE995ACD81EC8BB9C7B9CFCA678D081EA9E25A75D39DB\ -04E18D475920CE828B94E72241F24DB72546B352A0E4:\ -80447583262DED037DA88F3B98698BD8F7AED7D9BF4D99F8132EC3E7D16BB844\ -ADAD188757CEB32B359C56E5007EA3E4 - -B8D56472954E31FB54E28FCA743F84D8DC34891CB564C64B08F7B71636DEBD64\ -CA1EDBDBA7FC5C3E40049CE982BBA8C7E0703034E331384695E9DE76B5104F2F\ -BC4535ECBEEBC33BC27F29F18F6F27E8023B0FBB6F563C:\ -E5FB4AE5DDFB4CE8221DF4BE70240B76851E55FAE86BAF35BAD9E7179E24C95D\ -A6F0F0695A8A5291A2394B92A6FF7B7C - -0D58AC665FA84342E60CEFEE31B1A4EACDB092F122DFC68309077AED1F3E528F\ -578859EE9E4CEFB4A728E946324927B675CD4F4AC84F64DB3DACFE850C1DD187\ -44C74CECCD9FE4DC214085108F404EAB6D8F452B5442A47D:\ -CE6B07C0C7DA2FA1E6CA05DE0652FC9F1F452FC261E73E52457C72BF0D51BAC7\ -D66160CFF16D6A03527982E7D4393507 - -1755E2D2E5D1C1B0156456B539753FF416651D44698E87002DCF61DCFA2B4E72\ -F264D9AD591DF1FDEE7B41B2EB00283C5AEBB3411323B672EAA145C512518510\ -4F20F335804B02325B6DEA65603F349F4D5D8B782DD3469CCD:\ -FA76E05F8D2832DADFEBA0107A3137B7B9D4D19A77A1E78F8BBFECDA7EF46414\ -C363453E8C4902C302A4E18CEA4BA157 - -B180DE1A611111EE7584BA2C4B020598CD574AC77E404E853D15A101C6F5A2E5\ -C801D7D85DC95286A1804C870BB9F00FD4DCB03AA8328275158819DCAD7253F3\ -E3D237AEAA7979268A5DB1C6CE08A9EC7C2579783C8AFC1F91A7:\ -1B43B70B6BBBC768C1F4B3CE241667ADB5246D29981723846168D2234E19A513\ -0B1F576B4974C613639A449E61B2CA79 - -CF3583CBDFD4CBC17063B1E7D90B02F0E6E2EE05F99D77E24E560392535E47E0\ -5077157F96813544A17046914F9EFB64762A23CF7A49FE52A0A4C01C630CFE87\ -27B81FB99A89FF7CC11DCA5173057E0417B8FE7A9EFBA6D95C555F:\ -938252393A532D9E1F91D5C222E2DF2CC7AE102705BFB83FE30DCAEBCEA82BFF\ -9BDA7CA67095439859146632494D3CE4 - -072FC02340EF99115BAD72F92C01E4C093B9599F6CFC45CB380EE686CB5EB019\ -E806AB9BD55E634AB10AA62A9510CC0672CD3EDDB589C7DF2B67FCD3329F61B1\ -A4441ECA87A33C8F55DA4FBBAD5CF2B2527B8E983BB31A2FADEC7523:\ -47633AD0C80AF26BF74D9598DBD5BCF77FC6BFF1BCA015A611D7B8240F597D87\ -67FB8B0BF5C333156580AFEE121C299C - -76EECF956A52649F877528146DE33DF249CD800E21830F65E90F0F25CA9D6540\ -FDE40603230ECA6760F1139C7F268DEBA2060631EEA92B1FFF05F93FD5572FBE\ -29579ECD48BC3A8D6C2EB4A6B26E38D6C5FBF2C08044AEEA470A8F2F26:\ -04456322E1BF27785EDF3F596DB33E693AADF76D9D259352D97ACD561BC45236\ -506FBA3530772242CB369A83A38CD749 - -7ADC0B6693E61C269F278E6944A5A2D8300981E40022F839AC644387BFAC9086\ -650085C2CDC585FEA47B9D2E52D65A2B29A7DC370401EF5D60DD0D21F9E2B90F\ -AE919319B14B8C5565B0423CEFB827D5F1203302A9D01523498A4DB10374:\ -F8B1F2C317B9D1898C305DEC3C6C0AC45CFE7F995E944968206C1C1B2C92BD1D\ -4FA392FFAA6094C6AFF95E47DC259EE9 - -E1FFFA9826CCE8B86BCCEFB8794E48C46CDF372013F782ECED1E378269B7BE2B\ -7BF51374092261AE120E822BE685F2E7A83664BCFBE38FE8633F24E633FFE198\ -8E1BC5ACF59A587079A57A910BDA60060E85B5F5B6F776F0529639D9CCE4BD:\ -4F439197C66439BAF65618F826E299A329380B558A52B0711182580BDBADBABB\ -13AD66D60FADDB9DED226F0B401AA8BE - -69F9ABBA65592EE01DB4DCE52DBAB90B08FC04193602792EE4DAA263033D5908\ -1587B09BBE49D0B49C9825D22840B2FF5D9C5155F975F8F2C2E7A90C75D2E4A8\ -040FE39F63BBAFB403D9E28CC3B86E04E394A9C9E8065BD3C85FA9F0C7891600:\ -1C8B99BF6A3E80F0B8C67FA9BBF07D19C15D484CDE38F8FAADB748AE024A02E2\ -9FD2D7BDCE66D46C1A5239D7453FD3E3 - -38A10A352CA5AEDFA8E19C64787D8E9C3A75DBF3B8674BFAB29B5DBFC15A63D1\ -0FAE66CD1A6E6D2452D557967EAAD89A4C98449787B0B3164CA5B717A93F24EB\ -0B506CEB70CBBCB8D72B2A72993F909AAD92F044E0B5A2C9AC9CB16A0CA2F81F\ -49:\ -46F87BC07849E95104E67CC3DC71BDC109C1102BFB1ACDFE2F6A23173B52BF83\ -6CE00CD7A5A5FFE7D3BB8FAB33DECEDF - -6D8C6E449BC13634F115749C248C17CD148B72157A2C37BF8969EA83B4D6BA8C\ -0EE2711C28EE11495F43049596520CE436004B026B6C1F7292B9C436B055CBB7\ -2D530D860D1276A1502A5140E3C3F54A93663E4D20EDEC32D284E25564F62495\ -5B52:\ -FA12B9D070F697FD5391F3FC9C44056CEDA63F035D766655AA7D0A575ED55B15\ -BA6BAF56300940B565E37A248E2DCAB8 - -6EFCBCAF451C129DBE00B9CEF0C3749D3EE9D41C7BD500ADE40CDC65DEDBBBAD\ -B885A5B14B32A0C0D087825201E303288A733842FA7E599C0C514E078F05C821\ -C7A4498B01C40032E9F1872A1C925FA17CE253E8935E4C3C71282242CB716B20\ -89CCC1:\ -5304D6DB2730FB07B85348B0226B1A81A546BA1FE201ECCE1E552DBA6AFB84CC\ -E7A6F954E3100AE1724B82CF1CBC4128 - -433C5303131624C0021D868A30825475E8D0BD3052A022180398F4CA4423B982\ -14B6BEAAC21C8807A2C33F8C93BD42B092CC1B06CEDF3224D5ED1EC29784444F\ -22E08A55AA58542B524B02CD3D5D5F6907AFE71C5D7462224A3F9D9E53E7E084\ -6DCBB4CE:\ -135114508DD63E279E709C26F7817C0482766CDE49132E3EDF2EEDD8996F4E35\ -96D184100B384868249F1D8B8FDAA2C9 - -A873E0C67CA639026B6683008F7AA6324D4979550E9BCE064CA1E1FB97A30B14\ -7A24F3F666C0A72D71348EDE701CF2D17E2253C34D1EC3B647DBCEF2F879F4EB\ -881C4830B791378C901EB725EA5C172316C6D606E0AF7DF4DF7F76E490CD30B2\ -BADF45685F:\ -D560D54A2881ED47CC8C5AF9818FEEAF08B621B1AED4569D08807A0B61F902C1\ -691D8B08FF75590FEAAED6E75F4C9E3F - -006917B64F9DCDF1D2D87C8A6173B64F6587168E80FAA80F82D84F60301E561E\ -312D9FBCE62F39A6FB476E01E925F26BCC91DE621449BE6504C504830AAE3940\ -96C8FC7694651051365D4EE9070101EC9B68086F2EA8F8AB7B811EA8AD934D5C\ -9B62C60A4771:\ -FE5F30A315584092A271FDBCF4347A24D14A1F98CADC88DF288C36CEA8F89E90\ -20019933BCD4F5A7479E3E4A57644C49 - -F13C972C52CB3CC4A4DF28C97F2DF11CE089B815466BE88863243EB318C2ADB1\ -A417CB1041308598541720197B9B1CB5BA2318BD5574D1DF2174AF14884149BA\ -9B2F446D609DF240CE335599957B8EC80876D9A085AE084907BC5961B20BF5F6\ -CA58D5DAB38ADB:\ -A4E5EE130FC105818CD1A0DE74F1085B9B4D93889C509DC3A208B5230D39D8F3\ -04BB403F72BF0CF5E02C4C4A0831F328 - -E35780EB9799AD4C77535D4DDB683CF33EF367715327CF4C4A58ED9CBDCDD486\ -F669F80189D549A9364FA82A51A52654EC721BB3AAB95DCEB4A86A6AFA93826D\ -B923517E928F33E3FBA850D45660EF83B9876ACCAFA2A9987A254B137C6E140A\ -21691E1069413848:\ -9FB5700502E01926824F46E9F61894F9487DBCF8AE6217203C85606F97556653\ -9376D6239DB04AEF9BF48CA4F191A90B - -64EC021C9585E01FFE6D31BB50D44C79B6993D72678163DB474947A053674619\ -D158016ADB243F5C8D50AA92F50AB36E579FF2DABB780A2B529370DAA299207C\ -FBCDD3A9A25006D19C4F1FE33E4B1EAEC315D8C6EE1E730623FD1941875B924E\ -B57D6D0C2EDC4E78D6:\ -F2E0FF6CF4801CFF2ECA1703E4E956C007A1F2709430F1F7A0A4FDD16A063522\ -A4DFB6C41FA529C2E325F8CDD4F8DA96 - -5954BAB512CF327D66B5D9F296180080402624AD7628506B555EEA8382562324\ -CF452FBA4A2130DE3E165D11831A270D9CB97CE8C2D32A96F50D71600BB4CA26\ -8CF98E90D6496B0A6619A5A8C63DB6D8A0634DFC6C7EC8EA9C006B6C456F1B20\ -CD19E781AF20454AC880:\ -62029D962D2E323688DC5851C549DA39EF49CB994D2D6C51C57B9BBAB375AA10\ -BD0605208D9946EA472573880230DD2D - -03D9F92B2C565709A568724A0AFF90F8F347F43B02338F94A03ED32E6F33666F\ -F5802DA4C81BDCE0D0E86C04AFD4EDC2FC8B4141C2975B6F07639B1994C973D9\ -A9AFCE3D9D365862003498513BFA166D2629E314D97441667B007414E739D7FE\ -BF0FE3C32C17AA188A8683:\ -25E546F76EA9F98E03E3B2F4AB608185073658E7EDA0777BD5B047A59085C3C5\ -00916347D4F77E38E35159AF133ED638 - -F31E8B4F9E0621D531D22A380BE5D9ABD56FAEC53CBD39B1FAB230EA67184440\ -E5B1D15457BD25F56204FA917FA48E669016CB48C1FFC1E1E45274B3B47379E0\ -0A43843CF8601A5551411EC12503E5AAC43D8676A1B2297EC7A0800DBFEE0429\ -2E937F21C005F17411473041:\ -BEEFCEFF9E2D0825D60EA20E5271BF49C4AE3A5B54B56050988DD3DF5DB5EB4F\ -1002EFBFBAED2FC72179DE44116976B2 - -758EA3FEA738973DB0B8BE7E599BBEF4519373D6E6DCD7195EA885FC991D8967\ -62992759C2A09002912FB08E0CB5B76F49162AEB8CF87B172CF3AD190253DF61\ -2F77B1F0C532E3B5FC99C2D31F8F65011695A087A35EE4EEE5E334C369D8EE5D\ -29F695815D866DA99DF3F79403:\ -7D18254D46A14D0383EC56AC9CA2FDA7885AE673468C9F3B45BA792C2C23C9FF\ -82491E6AECA15D076AD3A3432CFA650C - -47C6E0C2B74948465921868804F0F7BD50DD323583DC784F998A93CD1CA4C6EF\ -84D41DC81C2C40F34B5BEE6A93867B3BDBA0052C5F59E6F3657918C382E771D3\ -3109122CC8BB0E1E53C4E3D13B43CE44970F5E0C079D2AD7D7A3549CD75760C2\ -1BB15B447589E86E8D76B1E9CED2:\ -1E3E007CE37792D8A4423B797E876E89859590DEDD39711AD0F1DE2FD925F432\ -0B44BD57DDC7050427943E3C957D4B6D - -F690A132AB46B28EDFA6479283D6444E371C6459108AFD9C35DBD235E0B6B6FF\ -4C4EA58E7554BD002460433B2164CA51E868F7947D7D7A0D792E4ABF0BE5F450\ -853CC40D85485B2B8857EA31B5EA6E4CCFA2F3A7EF3380066D7D8979FDAC618A\ -AD3D7E886DEA4F005AE4AD05E5065F:\ -D1D263B5311B05C7B9F7783E3AFD9A2E75791CE0503ED820474B35340D2CC84B\ -0270921BBD965722011AA30CE4352926 - -58D6A99BC6458824B256916770A8417040721CCCFD4B79EACD8B65A3767CE5BA\ -7E74104C985AC56B8CC9AEBD16FEBD4CDA5ADB130B0FF2329CC8D611EB14DAC2\ -68A2F9E633C99DE33997FEA41C52A7C5E1317D5B5DAED35EBA7D5A60E45D1FA7\ -EAABC35F5C2B0A0F2379231953322C4E:\ -E482B0C1B2057F1B6B897BDC230DCA2B48FFC0E4600AC40A44DCE03E99A8D1DF\ -94908A9FEBA0405DA79569E75059F9CE - -BEFAB574396D7F8B6705E2D5B58B2C1C820BB24E3F4BAE3E8FBCD36DBF734EE1\ -4E5D6AB972AEDD3540235466E825850EE4C512EA9795ABFD33F330D9FD7F79E6\ -2BBB63A6EA85DE15BEAEEA6F8D204A28956059E2632D11861DFB0E65BC07AC8A\ -159388D5C3277E227286F65FF5E5B5AEC1:\ -E54BC3B249DFF637001B58D13CBF64F453E01AD68A554CA994F71EC710216EF9\ -769F1C8B463DC7B4A90A0CEACED41E3D - -8E58144FA9179D686478622CE450C748260C95D1BA43B8F9B59ABECA8D93488D\ -A73463EF40198B4D16FB0B0707201347E0506FF19D01BEA0F42B8AF9E71A1F1B\ -D168781069D4D338FDEF00BF419FBB003031DF671F4A37979564F69282DE9C65\ -407847DD0DA505AB1641C02DEA4F0D834986:\ -01DC4CED4693B36814443857931C5D3CEE8762FDA0220F8E9E63AB1EE9A7135A\ -DE21C5AB3791821352FFBC322F3ED208 - -B55C10EAE0EC684C16D13463F29291BF26C82E2FA0422A99C71DB4AF14DD9C7F\ -33EDA52FD73D017CC0F2DBE734D831F0D820D06D5F89DACC485739144F8CFD47\ -99223B1AFF9031A105CB6A029BA71E6E5867D85A554991C38DF3C9EF8C1E1E9A\ -7630BE61CAABCA69280C399C1FB7A12D12AEFC:\ -587C8104936BDD74700666663843746015906CF4C681C2A6FFDD07B732E9E778\ -7B165E117DA340BCE4E27302BA288299 - -2EEEA693F585F4ED6F6F8865BBAE47A6908AECD7C429E4BEC4F0DE1D0CA0183F\ -A201A0CB14A529B7D7AC0E6FF6607A3243EE9FB11BCF3E2304FE75FFCDDD6C5C\ -2E2A4CD45F63C962D010645058D36571404A6D2B4F44755434D76998E83409C3\ -205AA1615DB44057DB991231D2CB42624574F545:\ -51753384C8F9584BE3ED4526B9B29A97DC8A87D195D0155E7444950EEA55ABEC\ -5C0D7814F1DFCE5CA4BF1D50EBC709AD - -DAB11DC0B047DB0420A585F56C42D93175562852428499F66A0DB811FCDDDAB2\ -F7CDFFED1543E5FB72110B64686BC7B6887A538AD44C050F1E42631BC4EC8A9F\ -2A047163D822A38989EE4AAB01B4C1F161B062D873B1CFA388FD301514F62224\ -157B9BEF423C7783B7AAC8D30D65CD1BBA8D689C2D:\ -BD1E1E9AE80B7FA79ADBD47D7A28BA44F4874108CD9BE5D327CC93C6ED4DACF8\ -A9E2A3491D4168BFFAE63FB2F1070DE7 - -42E99A2F80AEE0E001279A2434F731E01D34A44B1A8101726921C0590C30F312\ -0EB83059F325E894A5AC959DCA71CE2214799916424E859D27D789437B9D2724\ -0BF8C35ADBAFCECC322B48AA205B293962D858652ABACBD588BCF6CBC388D099\ -3BD622F96ED54614C25B6A9AA527589EAAFFCF17DDF7:\ -6B7C1144FA984261377DBAACA78A03AE580B7F3A17D69BA0D56EE908DD9EC9F8\ -7EA30A7626ED7CCF25B53A6994E121E8 - -3C9B46450C0F2CAE8E3823F8BDB4277F31B744CE2EB17054BDDC6DFF36AF7F49\ -FB8A2320CC3BDF8E0A2EA29AD3A55DE1165D219ADEDDB5175253E2D1489E9B6F\ -DD02E2C3D3A4B54D60E3A47334C37913C5695378A669E9B72DEC32AF5434F93F\ -46176EBF044C4784467C700470D0C0B40C8A088C815816:\ -76414F3B9E4FF8D150280C8E44BC54056849B25351352D9D9E986B3ECB6EC050\ -542709AFE01979D2EB97E51D41217E6E - -D1E654B77CB155F5C77971A64DF9E5D34C26A3CAD6C7F6B300D39DEB19100946\ -91ADAA095BE4BA5D86690A976428635D5526F3E946F7DC3BD4DBC78999E65344\ -1187A81F9ADCD5A3C5F254BC8256B0158F54673DCC1232F6E918EBFC6C51CE67\ -EAEB042D9F57EEC4BFE910E169AF78B3DE48D137DF4F2840:\ -92AC60E5DC492010A45F46AEF05F403F7569E1B4E2D0C909C871A783FC12457D\ -E281AFF4C4CEE0207D20EAF546285070 - -626F68C18A69A6590159A9C46BE03D5965698F2DAC3DE779B878B3D9C421E0F2\ -1B955A16C715C1EC1E22CE3EB645B8B4F263F60660EA3028981EEBD6C8C3A367\ -285B691C8EE56944A7CD1217997E1D9C21620B536BDBD5DE8925FF71DEC6FBC0\ -6624AB6B21E329813DE90D1E572DFB89A18120C3F606355D25:\ -8F99032CB49BB022EE5FB32446E1D39AA0FCD749741E4796979D4BEA5AB1B04D\ -241592EC6058E54B8EC9EAB274EE632D - -651A6FB3C4B80C7C68C6011675E6094EB56ABF5FC3057324EBC6477825061F9F\ -27E7A94633ABD1FA598A746E4A577CAF524C52EC1788471F92B8C37F23795CA1\ -9D559D446CAB16CBCDCE90B79FA1026CEE77BF4AB1B503C5B94C2256AD75B3EA\ -C6FD5DCB96ACA4B03A834BFB4E9AF988CECBF2AE597CB9097940:\ -8BB4F3CF0390A31D682213D22354DFE7D580C811682259872F2A29A08D373FD9\ -98F842334F64F81349364A930C82BAD4 - -8AAF072FCE8A2D96BC10B3C91C809EE93072FB205CA7F10ABD82ECD82CF040B1\ -BC49EA13D1857815C0E99781DE3ADBB5443CE1C897E55188CEAF221AA9681638\ -DE05AE1B322938F46BCE51543B57ECDB4C266272259D1798DE13BE90E10EFEC2\ -D07484D9B21A3870E2AA9E06C21AA2D0C9CF420080A80A91DEE16F:\ -0BB7DAC544569E6EB74ACAB01A846F74AD2A0F31D8FACEE4D09FA49C81B93BD8\ -3B4F129B96DA4C0EAF165FDE52EF295B - -53F918FD00B1701BD504F8CDEA803ACCA21AC18C564AB90C2A17DA592C7D6968\ -8F6580575395551E8CD33E0FEF08CA6ED4588D4D140B3E44C032355DF1C53156\ -4D7F4835753344345A6781E11CD5E095B73DF5F82C8AE3AD00877936896671E9\ -47CC52E2B29DCD463D90A0C9929128DA222B5A211450BBC0E02448E2:\ -10DD9348B2D95889EE613907824A10EFC708A101A67672FCA4C6539F5156C7DF\ -805DBE666FCF4CC578F421AE3CF27122 - -A64599B8A61B5CCEC9E67AED69447459C8DA3D1EC6C7C7C82A7428B9B584FA67\ -E90F68E2C00FBBED4613666E5168DA4A16F395F7A3C3832B3B134BFC9CBAA95D\ -2A0FE252F44AC6681EB6D40AB91C1D0282FED6701C57463D3C5F2BB8C6A7301F\ -B4576AA3B5F15510DB8956FF77478C26A7C09BEA7B398CFC83503F538E:\ -444B8A6F1EE118DE3FB3EC76B2FBAD9EF31916E1F99077DEFC51C2E59C8E6A3E\ -207BA48E5EDD66C72B5BEBA67401D794 - -0E3AB0E054739B00CDB6A87BD12CAE024B54CB5E550E6C425360C2E87E59401F\ -5EC24EF0314855F0F56C47695D56A7FB1417693AF2A1ED5291F2FEE95F75EED5\ -4A1B1C2E81226FBFF6F63ADE584911C71967A8EB70933BC3F5D15BC91B5C2644\ -D9516D3C3A8C154EE48E118BD1442C043C7A0DBA5AC5B1D5360AAE5B9065:\ -F4D17C6299BAE7D0E6D15A550B311F30C1B038AEF56FE375F3B4BAE14F7EA427\ -C5AA987EF93285975CE5F9E46A3E4C20 - -A62FC595B4096E6336E53FCDFC8D1CC175D71DAC9D750A6133D23199EAAC2882\ -07944CEA6B16D27631915B4619F743DA2E30A0C00BBDB1BBB35AB852EF3B9AEC\ -6B0A8DCC6E9E1ABAA3AD62AC0A6C5DE765DE2C3711B769E3FDE44A74016FFF82\ -AC46FA8F1797D3B2A726B696E3DEA5530439ACEE3A45C2A51BC32DD055650B:\ -39F911E9CB2763C8911AC3153040E48F403ABFE373E14B709A476868D3AB5841\ -D1088F8393DD728305BA341138365D27 - -2B6DB7CED8665EBE9DEB080295218426BDAA7C6DA9ADD2088932CDFFBAA1C141\ -29BCCDD70F369EFB149285858D2B1D155D14DE2FDB680A8B027284055182A0CA\ -E275234CC9C92863C1B4AB66F304CF0621CD54565F5BFF461D3B461BD40DF281\ -98E3732501B4860EADD503D26D6E69338F4E0456E9E9BAF3D827AE685FB1D817:\ -3ADEB7EEECF9069F143A10151FD4506AEEF3A0EF94CA65D4448ACF1E892B8EBB\ -0887631804DD64E153AD41FAE0127A85 - -10DB509B2CDCABA6C062AE33BE48116A29EB18E390E1BBADA5CA0A2718AFBCD2\ -3431440106594893043CC7F2625281BF7DE2655880966A23705F0C5155C2F5CC\ -A9F2C2142E96D0A2E763B70686CD421B5DB812DACED0C6D65035FDE558E94F26\ -B3E6DDE5BD13980CC80292B723013BD033284584BFF27657871B0CF07A849F4A\ -E2:\ -14830877DFAFE6F886A22DE7CE9A5FC74733A8FC27ECC523B6B4524E6312CBB2\ -2B51D7EB9DDAB37BA54BB2C0BFC32A6F - -9334DE60C997BDA6086101A6314F64E4458F5FF9450C509DF006E8C547983C65\ -1CA97879175AABA0C539E82D05C1E02C480975CBB30118121061B1EBAC4F8D9A\ -3781E2DB6B18042E01ECF9017A64A0E57447EC7FCBE6A7F82585F7403EE2223D\ -52D37B4BF426428613D6B4257980972A0ACAB508A7620C1CB28EB4E9D30FC413\ -61EC:\ -D109532BC4217326B3D25ED2D2F3F0D2482CC5BDD054218FA8BEDB91CD814F7F\ -D683AA2AFCB8342CD34CE54D607E3DA0 - -E88AB086891693AA535CEB20E64C7AB97C7DD3548F3786339897A5F0C3903154\ -9CA870166E477743CCFBE016B4428D89738E426F5FFE81626137F17AECFF61B7\ -2DBEE2DC20961880CFE281DFAB5EE38B1921881450E16032DE5E4D55AD8D4FCA\ -609721B0692BAC79BE5A06E177FE8C80C0C83519FB3347DE9F43D5561CB8107B\ -9B5EDC:\ -DE64A37A7456638D3ACA1B895F4A88C26817177986A9F2F5B77B49CFF2C3E46B\ -E2C49ABE89D741375DB87F4C898F6762 - -FD19E01A83EB6EC810B94582CB8FBFA2FCB992B53684FB748D2264F020D3B960\ -CB1D6B8C348C2B54A9FCEA72330C2AAA9A24ECDB00C436ABC702361A82BB8828\ -B85369B8C72ECE0082FE06557163899C2A0EFA466C33C04343A839417057399A\ -63A3929BE1EE4805D6CE3E5D0D0967FE9004696A5663F4CAC9179006A2CEB755\ -42D75D68:\ -8D9743710C171CD399A0D712E9D53374ED8E0A97672A40294C74F0D503F0292D\ -6F41D5CEA08FB3C623C4EBA56848770D - -59AE20B6F7E0B3C7A989AFB28324A40FCA25D8651CF1F46AE383EF6D8441587A\ -A1C04C3E3BF88E8131CE6145CFB8973D961E8432B202FA5AF3E09D625FAAD825\ -BC19DA9B5C6C20D02ABDA2FCC58B5BD3FE507BF201263F30543819510C12BC23\ -E2DDB4F711D087A86EDB1B355313363A2DE996B891025E147036087401CCF3CA\ -7815BF3C49:\ -FAE998D1074E30F2EA0A8B9FE259FD2E2A36804995EBE7E3A5AD34865B1A3316\ -675297FE8E33EEF8ADCC02BE8C4765BE - -77EE804B9F3295AB2362798B72B0A1B2D3291DCEB8139896355830F34B3B3285\ -61531F8079B79A6E9980705150866402FDC176C05897E359A6CB1A7AB067383E\ -B497182A7E5AEF7038E4C96D133B2782917417E391535B5E1B51F47D8ED7E4D4\ -025FE98DC87B9C1622614BFF3D1029E68E372DE719803857CA52067CDDAAD958\ -951CB2068CC6:\ -0AA9CCC3C9CAE1603D3DA5E95F304ADB8FA575833929B09F7C1095D968BEA047\ -1DFE8AAAD3AD11266DAAFF95F6667ABC - -B771D5CEF5D1A41A93D15643D7181D2A2EF0A8E84D91812F20ED21F147BEF732\ -BF3A60EF4067C3734B85BC8CD471780F10DC9E8291B58339A677B960218F71E7\ -93F2797AEA349406512829065D37BB55EA796FA4F56FD8896B49B2CD19B43215\ -AD967C712B24E5032D065232E02C127409D2ED4146B9D75D763D52DB98D949D3\ -B0FED6A8052FBB:\ -8FFDF6A4752D17D496F8ADEE7116BD2AF0A4B726BB3F4C5F85BE2C9DFC34055A\ -509E4FE016930D9951A7212553E2E908 - -B32D95B0B9AAD2A8816DE6D06D1F86008505BD8C14124F6E9A163B5A2ADE55F8\ -35D0EC3880EF50700D3B25E42CC0AF050CCD1BE5E555B23087E04D7BF9813622\ -780C7313A1954F8740B6EE2D3F71F768DD417F520482BD3A08D4F222B4EE9DBD\ -015447B33507DD50F3AB4247C5DE9A8ABD62A8DECEA01E3B87C8B927F5B08BEB\ -37674C6F8E380C04:\ -278E83CFF1FF6CC4B3AC41F3879DA87AE63B535B43815E273687A4CC519855B4\ -52CB6AF0198BB9FD0F3E43739BC0CDD7 - -04410E31082A47584B406F051398A6ABE74E4DA59BB6F85E6B49E8A1F7F2CA00\ -DFBA5462C2CD2BFDE8B64FB21D70C083F11318B56A52D03B81CAC5EEC29EB31B\ -D0078B6156786DA3D6D8C33098C5C47BB67AC64DB14165AF65B44544D806DDE5\ -F487D5373C7F9792C299E9686B7E5821E7C8E2458315B996B5677D926DAC57B3\ -F22DA873C601016A0D:\ -AA4B5A5FB94FE19578F33323BA1EEFC5B6ED70B34BC70193F386C99F73863611\ -AF20581B4B1B3ED776DF9E235D3D4E45 - -8B81E9BADDE026F14D95C019977024C9E13DB7A5CD21F9E9FC491D716164BBAC\ -DC7060D882615D411438AEA056C340CDF977788F6E17D118DE55026855F93270\ -472D1FD18B9E7E812BAE107E0DFDE7063301B71F6CFE4E225CAB3B232905A56E\ -994F08EE2891BA922D49C3DAFEB75F7C69750CB67D822C96176C46BD8A29F170\ -1373FB09A1A6E3C7158F:\ -3174CF3754A6FE603631ECDA4895171A9DCF7AFB02EB72AE270A9E3EBF2A65A7\ -2C3436C233FD4F17F7FBAFBAC0680C63 - -FA6EED24DA6666A22208146B19A532C2EC9BA94F09F1DEF1E7FC13C399A48E41\ -ACC2A589D099276296348F396253B57CB0E40291BD282773656B6E0D8BEA1CDA\ -084A3738816A840485FCF3FB307F777FA5FEAC48695C2AF4769720258C77943F\ -B4556C362D9CBA8BF103AEB9034BAA8EA8BFB9C4F8E6742CE0D52C49EA8E974F\ -339612E830E9E7A9C29065:\ -354813D9823D2F02D75D13893A6ABDB44E9E99666533429CC6F7EB3FBA10BF9E\ -CD4A18BB9D5188E6E8F91DFDDBE8409A - -9BB4AF1B4F09C071CE3CAFA92E4EB73CE8A6F5D82A85733440368DEE4EB1CBC7\ -B55AC150773B6FE47DBE036C45582ED67E23F4C74585DAB509DF1B8361056454\ -5642B2B1EC463E18048FC23477C6B2AA035594ECD33791AF6AF4CBC2A1166ABA\ -8D628C57E707F0B0E8707CAF91CD44BDB915E0296E0190D56D33D8DDE10B5B60\ -377838973C1D943C22ED335E:\ -E2EFDC5007E4C13F811043DB967A423DE02AF411B4A251A225CAD041E83BD4DD\ -89D8B24198DA00096CFE2E1B3F5D1960 - -2167F02118CC62043E9091A647CADBED95611A521FE0D64E8518F16C808AB297\ -725598AE296880A773607A798F7C3CFCE80D251EBEC6885015F9ABF7EAABAE46\ -798F82CB5926DE5C23F44A3F9F9534B3C6F405B5364C2F8A8BDC5CA49C749BED\ -8CE4BA48897062AE8424CA6DDE5F55C0E42A95D1E292CA54FB46A84FBC9CD87F\ -2D0C9E7448DE3043AE22FDD229:\ -E44C0856F0C245E002F914CF300E98C496E725A4DB561F2995AD9C8B97F341E1\ -5625B56B03D4D5880927B8574F5E5D74 - -94B7FA0BC1C44E949B1D7617D31B4720CBE7CA57C6FA4F4094D4761567E389EC\ -C64F6968E4064DF70DF836A47D0C713336B5028B35930D29EB7A7F9A5AF9AD5C\ -F441745BAEC9BB014CEEFF5A41BA5C1CE085FEB980BAB9CF79F2158E03EF7E63\ -E29C38D7816A84D4F71E0F548B7FC316085AE38A060FF9B8DEC36F91AD9EBC0A\ -5B6C338CBB8F6659D342A24368CF:\ -5D290C5DFF59A3A3DB8BC7320B8F64A4DBF67CA4F5DF9A07F235EDB6460345FC\ -8971040481C9A5D0F09B62262B9ED9F8 - -EA40E83CB18B3A242C1ECC6CCD0B7853A439DAB2C569CFC6DC38A19F5C90ACBF\ -76AEF9EA3742FF3B54EF7D36EB7CE4FF1C9AB3BC119CFF6BE93C03E208783335\ -C0AB8137BE5B10CDC66FF3F89A1BDDC6A1EED74F504CBE7290690BB295A872B9\ -E3FE2CEE9E6C67C41DB8EFD7D863CF10F840FE618E7936DA3DCA5CA6DF933F24\ -F6954BA0801A1294CD8D7E66DFAFEC:\ -FE680250CAB1FBDB6AC8800DDC28E70100DF8DAAE38DA27004872AB05D40B15A\ -E93EB44266E3014F0960038B28252C7B - -157D5B7E4507F66D9A267476D33831E7BB768D4D04CC3438DA12F9010263EA5F\ -CAFBDE2579DB2F6B58F911D593D5F79FB05FE3596E3FA80FF2F761D1B0E57080\ -055C118C53E53CDB63055261D7C9B2B39BD90ACC32520CBBDBDA2C4FD8856DBC\ -EE173132A2679198DAF83007A9B5C51511AE49766C792A29520388444EBEFE28\ -256FB33D4260439CBA73A9479EE00C63:\ -511B13E53FD353FA4D38EF0CF8F1AF30DA554828A5FD1C53EC41F73D9ACA6C54\ -AC7972C933AF4A2FC7AB852CA63A1BA6 - -836B34B515476F613FE447A4E0C3F3B8F20910AC89A3977055C960D2D5D2B72B\ -D8ACC715A9035321B86703A411DDE0466D58A59769672AA60AD587B8481DE4BB\ -A552A1645779789501EC53D540B904821F32B0BD1855B04E4848F9F8CFE9EBD8\ -911BE95781A759D7AD9724A7102DBE576776B7C632BC39B9B5E19057E226552A\ -5994C1DBB3B5C7871A11F5537011044C53:\ -554CF00A9AAFE0DFC8D49EA03288B52AED43A5104E22B838E40FDE7358491B57\ -74DF455CF2EC73C53A7B30627A142A41 - -CC7784A4912A7AB5AD3620AAB29BA87077CD3CB83636ADC9F3DC94F51EDF521B\ -2161EF108F21A0A298557981C0E53CE6CED45BDF782C1EF200D29BAB81DD6460\ -586964EDAB7CEBDBBEC75FD7925060F7DA2B853B2B089588FA0F8C16EC6498B1\ -4C55DCEE335CB3A91D698E4D393AB8E8EAC0825F8ADEBEEE196DF41205C01167\ -4E53426CAA453F8DE1CBB57932B0B741D4C6:\ -C13C177E6453F78E81BC4EFEA7A10E9CA02273A6EB757497368539BF4AE1F1BB\ -CBAE0FFF5DAD55EDCA61F474976CBF64 - -7639B461FFF270B2455AC1D1AFCE782944AEA5E9087EB4A39EB96BB5C3BAAF0E\ -868C8526D3404F9405E79E77BFAC5FFB89BF1957B523E17D341D7323C302EA70\ -83872DD5E8705694ACDDA36D5A1B895AAA16ECA6104C82688532C8BFE1790B5D\ -C9F4EC5FE95BAED37E1D287BE710431F1E5E8EE105BC42ED37D74B1E55984BF1\ -C09FE6A1FA13EF3B96FAEAED6A2A1950A12153:\ -C3E5DDF4572A386C99F998E68FCCC7F85867A73E13C2058C18391A922416FD35\ -2CA6B659BAD021E0D9A05789F59D3C67 - -EB6513FC61B30CFBA58D4D7E80F94D14589090CF1D80B1DF2E68088DC6104959\ -BA0D583D585E9578AB0AEC0CF36C48435EB52ED9AB4BBCE7A5ABE679C97AE2DB\ -E35E8CC1D45B06DDA3CF418665C57CBEE4BBB47FA4CAF78F4EE656FEC237FE4E\ -EBBAFA206E1EF2BD0EE4AE71BD0E9B2F54F91DAADF1FEBFD7032381D636B733D\ -CB3BF76FB14E23AFF1F68ED3DBCF75C9B99C6F26:\ -157481D0A24BA9FAFA1800C9713E702976167FDDF52367A7932AA3CFF22F4A2E\ -19A016C7BACBD97CEC3EA6B1E87CB3D3 - -1594D74BF5DDE444265D4C04DAD9721FF3E34CBF622DAF341FE16B96431F6C4D\ -F1F760D34F296EB97D98D560AD5286FEC4DCE1724F20B54FD7DF51D4BF137ADD\ -656C80546FB1BF516D62EE82BAA992910EF4CC18B70F3F8698276FCFB44E0EC5\ -46C2C39CFD8EE91034FF9303058B4252462F86C823EB15BF481E6B79CC3A0221\ -8595B3658E8B37382BD5048EAED5FD02C37944E73B:\ -BCDD36EE35C2C771852E27DB2CDDABC155AB43D28E6289F0ABA4F93E793C999F\ -30836C7483FBEA5A73F4EEB5D8D32FE3 - -4CFA1278903026F66FEDD41374558BE1B585D03C5C55DAC94361DF286D4BD39C\ -7CB8037ED3B267B07C346626449D0CC5B0DD2CF221F7E4C3449A4BE99985D2D5\ -E67BFF2923357DDEAB5ABCB4619F3A3A57B2CF928A022EB27676C6CF80568900\ -4FCA4D41EA6C2D0A4789C7605F7BB838DD883B3AD3E6027E775BCF2628814280\ -99C7FFF95B14C095EA130E0B9938A5E22FC52650F591:\ -FA7F66D37C1DC3E81BF55C443ABAD5CF79A3D9834F77A206291138AE31438B98\ -6737DC4599EC5D10F7F005D1833B7D2E - -D3E65CB92CFA79662F6AF493D696A07CCF32AAADCCEFF06E73E8D9F6F909209E\ -66715D6E978788C49EFB9087B170ECF3AA86D2D4D1A065AE0EFC8924F365D676\ -B3CB9E2BEC918FD96D0B43DEE83727C9A93BF56CA2B2E59ADBA85696546A8150\ -67FC7A78039629D4948D157E7B0D826D1BF8E81237BAB7321312FDAA4D521744\ -F988DB6FDF04549D0FDCA393D639C729AF716E9C8BBA48:\ -8F0E47ED680661F1ACE9EEEE855D935FDFC66B97C2E9A6FC7341F14D9327C8E7\ -2BCA3FA67E59804CEA41F09E1C4F8715 - -842CC583504539622D7F71E7E31863A2B885C56A0BA62DB4C2A3F2FD12E79660\ -DC7205CA29A0DC0A87DB4DC62EE47A41DB36B9DDB3293B9AC4BAAE7DF5C6E720\ -1E17F717AB56E12CAD476BE49608AD2D50309E7D48D2D8DE4FA58AC3CFEAFEEE\ -48C0A9EEC88498E3EFC51F54D300D828DDDCCB9D0B06DD021A29CF5CB5B25069\ -15BEB8A11998B8B886E0F9B7A80E97D91A7D01270F9A7717:\ -F105810E724C2C55162CF71721E3F59871F06010BC7F052AB282BFB6D4A3BF18\ -4B892BAF8FADD02070F64B9E036DC5F7 - -6C4B0A0719573E57248661E98FEBE326571F9A1CA813D3638531AE28B4860F23\ -C3A3A8AC1C250034A660E2D71E16D3ACC4BF9CE215C6F15B1C0FC7E77D3D2715\ -7E66DA9CEEC9258F8F2BF9E02B4AC93793DD6E29E307EDE3695A0DF63CBDC0FC\ -66FB770813EB149CA2A916911BEE4902C47C7802E69E405FE3C04CEB5522792A\ -5503FA829F707272226621F7C488A7698C0D69AA561BE9F378:\ -CBB0FCE4AF36D14B63BC72D37FB4028327843FB22EC033BFC068E7B081287E31\ -E3451D8A1D97692B379FF9E6ACD40240 - -51B7DBB7CE2FFEB427A91CCFE5218FD40F9E0B7E24756D4C47CD55606008BDC2\ -7D16400933906FD9F30EFFDD4880022D081155342AF3FB6CD53672AB7FB5B3A3\ -BCBE47BE1FD3A2278CAE8A5FD61C1433F7D350675DD21803746CADCA574130F0\ -1200024C6340AB0CC2CF74F2234669F34E9009EF2EB94823D62B31407F4BA46F\ -1A1EEC41641E84D77727B59E746B8A671BEF936F05BE820759FA:\ -44E4F77C0D7BCA6AD57D334F974BDA8DE2E08E104F14A8713280CE73897A945D\ -C23AD058533B85750D9DD9D2D7B5D1AF - -83599D93F5561E821BD01A472386BC2FF4EFBD4AED60D5821E84AAE74D807102\ -9810F5E286F8F17651CD27DA07B1EB4382F754CD1C95268783AD09220F550284\ -0370D494BEB17124220F6AFCE91EC8A0F55231F9652433E5CE3489B727716CF4\ -AEBA7DCDA20CD29AA9A859201253F948DD94395ABA9E3852BD1D60DDA7AE5DC0\ -45B283DA006E1CBAD83CC13292A315DB5553305C628DD091146597:\ -6913184FAE1EF9FA2D57B1B7BD586D51DE9A5F387037266E7B4A83F4366498FF\ -86C89934C05332A7E641149EF627FA34 - -2BE9BF526C9D5A75D565DD11EF63B979D068659C7F026C08BEA4AF161D85A462\ -D80E45040E91F4165C074C43AC661380311A8CBED59CC8E4C4518E80CD2C78AB\ -1CABF66BFF83EAB3A80148550307310950D034A6286C93A1ECE8929E6385C5E3\ -BB6EA8A7C0FB6D6332E320E71CC4EB462A2A62E2BFE08F0CCAD93E61BEDB5DD0\ -B786A728AB666F07E0576D189C92BF9FB20DCA49AC2D3956D47385E2:\ -F04FF5AAA68F2558586D2748587DEE3CF28BACAB5BE5F887D24A068311BA2D9E\ -9BC0206C2706B9C109E7162E3ECB6346 - -CA76D3A12595A817682617006848675547D3E8F50C2210F9AF906C0E7CE50B44\ -60186FE70457A9E879E79FD4D1A688C70A347361C847BA0DD6AA52936EAF8E58\ -A1BE2F5C1C704E20146D366AEB3853BED9DE9BEFE9569AC8AAEA37A9FB7139A1\ -A1A7D5C748605A8DEFB297869EBEDD71D615A5DA23496D11E11ABBB126B206FA\ -0A7797EE7DE117986012D0362DCEF775C2FE145ADA6BDA1CCB326BF644:\ -D4B8CFB2FE5B63BB5BB678B98B465A2DFD23DFF498E778EE0535A5C077705AA2\ -CA2F039832BAEA0F735609B3E4E18CF7 - -F76B85DC67421025D64E93096D1D712B7BAF7FB001716F02D33B2160C2C882C3\ -10EF13A576B1C2D30EF8F78EF8D2F465007109AAD93F74CB9E7D7BEF7C9590E8\ -AF3B267C89C15DB238138C45833C98CC4A471A7802723EF4C744A853CF80A0C2\ -568DD4ED58A2C9644806F42104CEE53628E5BDF7B63B0B338E931E31B87C24B1\ -46C6D040605567CEEF5960DF9E022CB469D4C787F4CBA3C544A1AC91F95F:\ -25B7237DA9D40DE047D41A30BD37155C0F108D7296B09079957D4EE31224A4BA\ -256AF756D154878910C158E49186728B - -25B8C9C032EA6BCD733FFC8718FBB2A503A4EA8F71DEA1176189F694304F0FF6\ -8E862A8197B839957549EF243A5279FC2646BD4C009B6D1EDEBF24738197ABB4\ -C992F6B1DC9BA891F570879ACCD5A6B18691A93C7D0A8D38F95B639C1DAEB48C\ -4C2F15CCF5B9D508F8333C32DE78781B41850F261B855C4BEBCC125A380C54D5\ -01C5D3BD07E6B52102116088E53D76583B0161E2A58D0778F091206AABD5A1:\ -F41B2D02D321F4BA106F931EE27D3F74E8D397BACECB0A1FA90BF5C837ACEB2E\ -D8F0FEFF07B7EBEA6A88D0CC54AE8E6A - -21CFDC2A7CCB7F331B3D2EEFFF37E48AD9FA9C788C3F3C200E0173D99963E1CB\ -CA93623B264E920394AE48BB4C3A5BB96FFBC8F0E53F30E22956ADABC2765F57\ -FB761E147ECBF8567533DB6E50C8A1F894310A94EDF806DD8CA6A0E141C0FA7C\ -9FAE6C6AE65F18C93A8529E6E5B553BF55F25BE2E80A9882BD37F145FECBEB3D\ -447A3C4E46C21524CC55CDD62F521AB92A8BA72B897996C49BB273198B7B1C9E:\ -9673A1A3535B8975CA0F512CDB0FDCDFB0179CE229E756AD70EAF1E5C3E1A413\ -5E9FA7653EDBDCA4975AC18B17A662EB - -4E452BA42127DCC956EF4F8F35DD68CB225FB73B5BC7E1EC5A898BBA2931563E\ -74FAFF3B67314F241EC49F4A7061E3BD0213AE826BAB380F1F14FAAB8B0EFDDD\ -5FD1BB49373853A08F30553D5A55CCBBB8153DE4704F29CA2BDEEF0419468E05\ -DD51557CCC80C0A96190BBCC4D77ECFF21C66BDF486459D427F986410F883A80\ -A5BCC32C20F0478BB9A97A126FC5F95451E40F292A4614930D054C851ACD019C\ -CF:\ -32429CB1B5DAD663A0663E49033DB2290945019DF7E792CDFF3723EEDB88CD06\ -03B3FAE0228A184F8EFFAC45112F453E - -FA85671DF7DADF99A6FFEE97A3AB9991671F5629195049880497487867A6C446\ -B60087FAC9A0F2FCC8E3B24E97E42345B93B5F7D3691829D3F8CCD4BB36411B8\ -5FC2328EB0C51CB3151F70860AD3246CE0623A8DC8B3C49F958F8690F8E3860E\ -71EB2B1479A5CEA0B3F8BEFD87ACAF5362435EAECCB52F38617BC6C5C2C6E269\ -EAD1FBD69E941D4AD2012DA2C5B21BCFBF98E4A77AB2AF1F3FDA3233F046D38F\ -1DC8:\ -E91DEEBCD72BA12E2215602B488DED203A1E211D6358CADC6F906FBD89CA928F\ -541222CBD8FC9A20B573EF22FC178778 - -E90847AE6797FBC0B6B36D6E588C0A743D725788CA50B6D792352EA8294F5BA6\ -54A15366B8E1B288D84F5178240827975A763BC45C7B0430E8A559DF4488505E\ -009C63DA994F1403F407958203CEBB6E37D89C94A5EACF6039A327F6C4DBBC7A\ -2A307D976AA39E41AF6537243FC218DFA6AB4DD817B6A397DF5CA69107A91987\ -99ED248641B63B42CB4C29BFDD7975AC96EDFC274AC562D0474C60347A078CE4\ -C25E88:\ -45290A24291E81CCB8D7840B6C4812AC98983D7BD3AFE46B427296AD636862B9\ -E03ECF605B114CB47C0207267BC05958 - -F6D5C2B6C93954FC627602C00C4CA9A7D3ED12B27173F0B2C9B0E4A5939398A6\ -65E67E69D0B12FB7E4CEB253E8083D1CEB724AC07F009F094E42F2D6F2129489\ -E846EAFF0700A8D4453EF453A3EDDC18F408C77A83275617FABC4EA3A2833AA7\ -3406C0E966276079D38E8E38539A70E194CC5513AAA457C699383FD1900B1E72\ -BDFB835D1FD321B37BA80549B078A49EA08152869A918CA57F5B54ED71E4FD3A\ -C5C06729:\ -E6BB2FAF5ABB3EDAFFE9E47F62586409B443E4C698070D61FC082261053270EC\ -DC2484AA0145C851031E3C99DEFF2389 - -CF8562B1BED89892D67DDAAF3DEEB28246456E972326DBCDB5CF3FB289ACA01E\ -68DA5D59896E3A6165358B071B304D6AB3D018944BE5049D5E0E2BB819ACF67A\ -6006111089E6767132D72DD85BEDDCBB2D64496DB0CC92955AB4C6234F1EEA24\ -F2D51483F2E209E4589BF9519FAC51B4D061E801125E605F8093BB6997BC163D\ -551596FE4AB7CFAE8FB9A90F6980480CE0C229FD1675409BD788354DAF316240\ -CFE0AF93EB:\ -79B792B34DA4425BB0B4217ABE23E5DBE4E87D3940E2F7BA52CA146618580A62\ -545C44B81E06620AF6E273499073E3A8 - -2ACE31ABB0A2E3267944D2F75E1559985DB7354C6E605F18DC8470423FCA30B7\ -331D9B33C4A4326783D1CAAE1B4F07060EFF978E4746BF0C7E30CD61040BD5EC\ -2746B29863EB7F103EBDA614C4291A805B6A4C8214230564A0557BC7102E0BD3\ -ED23719252F7435D64D210EE2AAFC585BE903FA41E1968C50FD5D5367926DF7A\ -05E3A42CF07E656FF92DE73B036CF8B19898C0CB34557C0C12C2D8B84E91181A\ -F467BC75A9D1:\ -9FA1D0AC7C37831731B71C19AC9E81EA115083ACE6D94349CE89FDB79B3462A7\ -49D76FDC93892F2F16AB0F7E18CDB79C - -0D8D09AED19F1013969CE5E7EB92F83A209AE76BE31C754844EA9116CEB39A22\ -EBB6003017BBCF26555FA6624185187DB8F0CB3564B8B1C06BF685D47F3286ED\ -A20B83358F599D2044BBF0583FAB8D78F854FE0A596183230C5EF8E54426750E\ -AF2CC4E29D3BDD037E734D863C2BD9789B4C243096138F7672C232314EFFDFC6\ -513427E2DA76916B5248933BE312EB5DDE4CF70804FB258AC5FB82D58D08177A\ -C6F4756017FFF5:\ -187CDFDB3757D80010D1E53157A5CCB0FCC34998EFC6BB3CE2E60768F5EEAA59\ -0656B49C0E036A3F34C9EF25F3BE587A - -C3236B73DEB7662BF3F3DAA58F137B358BA610560EF7455785A9BEFDB035A066\ -E90704F929BD9689CEF0CE3BDA5ACF4480BCEB8D09D10B098AD8500D9B6071DF\ -C3A14AF6C77511D81E3AA8844986C3BEA6F469F9E02194C92868CD5F51646256\ -798FF0424954C1434BDFED9FACB390B07D342E992936E0F88BFD0E884A0DDB67\ -9D0547CCDEC6384285A45429D115AC7D235A717242021D1DC35641F5F0A48E84\ -45DBA58E6CB2C8EA:\ -7043F54F390B6ABD0DFF06F266E0E7B3E41F8D2E8DD43F899AC456662447A823\ -A567B1B0FB8C2DF24E5F6689060CDDB4 - -B39FEB8283EADC63E8184B51DF5AE3FD41AAC8A963BB0BE1CD08AA5867D8D910\ -C669221E73243360646F6553D1CA05A84E8DC0DE05B6419EC349CA994480193D\ -01C92525F3FB3DCEFB08AFC6D26947BDBBFD85193F53B50609C6140905C53A66\ -86B58E53A319A57B962331EDE98149AF3DE3118A819DA4D76706A0424B4E1D29\ -10B0ED26AF61D150EBCB46595D4266A0BD7F651BA47D0C7F179CA28545007D92\ -E8419D48FDFBD744CE:\ -D0CE0259AAEEA5BAEFF52929423C3DA07A8C75195F86D733A718D1C46A1E40AA\ -D404750C41D7A158E79F278830B4C07A - -A983D54F503803E8C7999F4EDBBE82E9084F422143A932DDDDC47A17B0B7564A\ -7F37A99D0786E99476428D29E29D3C197A72BFAB1342C12A0FC4787FD7017D7A\ -6174049EA43B5779169EF7472BDBBD941DCB82FC73AAC45A8A94C9F2BD3477F6\ -1FD3B796F02A1B8264A214C6FEA74B7051B226C722099EC7883A462B83B6AFDD\ -4009248B8A237F605FE5A08FE7D8B45321421EBBA67BD70A0B00DDBF94BAAB7F\ -359D5D1EEA105F28DCFB:\ -E4385A3BE011AF20FE4566C1CEBF4AA68270E42BE50AAAAE65F8F605E980B1D2\ -736FB0E794330D764CA96BC68B8360BC - -E4D1C1897A0A866CE564635B74222F9696BF2C7F640DD78D7E2ACA66E1B61C64\ -2BB03EA7536AAE597811E9BF4A7B453EDE31F97B46A5F0EF51A071A2B3918DF1\ -6B152519AE3776F9F1EDAB4C2A377C3292E96408359D3613844D5EB393000283\ -D5AD3401A318B12FD1474B8612F2BB50FB6A8B9E023A54D7DDE28C43D6D8854C\ -8D9D1155935C199811DBFC87E9E0072E90EB88681CC7529714F8FB8A2C9D8856\ -7ADFB974EE205A9BF7B848:\ -C979F00656A09E68485CCF07FBBB9108B00C5FC11D41F5966FF086F26C710247\ -8EC177EE6D78C623C375A9E6F761809A - -B10C59723E3DCADD6D75DF87D0A1580E73133A9B7D00CB95EC19F5547027323B\ -E75158B11F80B6E142C6A78531886D9047B08E551E75E6261E79785366D7024B\ -D7CD9CF322D9BE7D57FB661069F2481C7BB759CD71B4B36CA2BC2DF6D3A328FA\ -EBDB995A9794A8D72155ED551A1F87C80BF6059B43FC764900B18A1C2441F748\ -7743CF84E565F61F8DD2ECE6B6CCC9444049197AAAF53E926FBEE3BFCA8BE588\ -EC77F29D211BE89DE18B15F6:\ -36139336110D1D6C27E4CC1F26F428EB8BDBCBA3AA9FFDCECF72009FB46BFAF9\ -E3464C48BEFA4745BE36C697DD3BED8B - -DB11F609BABA7B0CA634926B1DD539C8CBADA24967D7ADD4D9876F77C2D80C0F\ -4DCEFBD7121548373582705CCA2495BD2A43716FE64ED26D059CFB566B3364BD\ -49EE0717BDD9810DD14D8FAD80DBBDC4CAFB37CC60FB0FE2A80FB4541B8CA9D5\ -9DCE457738A9D3D8F641AF8C3FD6DA162DC16FC01AAC527A4A0255B4D231C0BE\ -50F44F0DB0B713AF03D968FE7F0F61ED0824C55C4B5265548FEBD6AAD5C5EEDF\ -63EFE793489C39B8FD29D104CE:\ -CE3268B8EC923B3331EA2CF85132C0733CF8BF87DAA544F8EE386D5DE9FBD4D8\ -AD94E00B705CA5B61A3C1790B650080C - -BEBD4F1A84FC8B15E4452A54BD02D69E304B7F32616AADD90537937106AE4E28\ -DE9D8AAB02D19BC3E2FDE1D651559E296453E4DBA94370A14DBBB2D1D4E20223\ -02EE90E208321EFCD8528AD89E46DC839EA9DF618EA8394A6BFF308E7726BAE0\ -C19BCD4BE52DA6258E2EF4E96AA21244429F49EF5CB486D7FF35CAC1BACB7E95\ -711944BCCB2AB34700D42D1EB38B5D536B947348A458EDE3DC6BD6EC547B1B0C\ -AE5B257BE36A7124E1060C170FFA:\ -DDC398879BD16FB681FAE1512E3A1AE7ED2362DAD8BEE0D12D2256B2D8562820\ -43DC0CBBC0F63197B75E9982A1DAA8AE - -5ACA56A03A13784BDC3289D9364F79E2A85C12276B49B92DB0ADAA4F206D5028\ -F213F678C3510E111F9DC4C1C1F8B6ACB17A6413AA227607C515C62A733817BA\ -5E762CC6748E7E0D6872C984D723C9BB3B117EB8963185300A80BFA65CDE495D\ -70A46C44858605FCCBED086C2B45CEF963D33294DBE9706B13AF22F1B7C4CD5A\ -001CFEC251FBA18E722C6E1C4B1166918B4F6F48A98B64B3C07FC86A6B17A6D0\ -480AB79D4E6415B520F1C484D675B1:\ -350B4B2768020EAA95452B90414439A38BE03686131D45612C1B85FE06FD9196\ -F27D221F4FF83251AA8E69AEF72F904D - -A5AAD0E4646A32C85CFCAC73F02FC5300F1982FABB2F2179E28303E447854094\ -CDFC854310E5C0F60993CEFF54D84D6B46323D930ADB07C17599B35B505F09E7\ -84BCA5985E0172257797FB53649E2E9723EFD16865C31B5C3D5113B58BB0BFC8\ -920FABDDA086D7537E66D709D050BD14D0C960873F156FAD5B3D3840CDFCDC9B\ -E6AF519DB262A27F40896AB25CC39F96984D650611C0D5A3080D5B3A1BF186AB\ -D42956588B3B58CD948970D298776060:\ -4CD1367112C40FB7E3919DF20697A4E1CDC55FD0F01BE3953B1998B5FCB473E7\ -6E9E75D5D82E2973B3DB89538554933B - -06CBBE67E94A978203EAD6C057A1A5B098478B4B4CBEF5A97E93C8E42F557271\ -3575FC2A884531D7622F8F879387A859A80F10EF02708CD8F7413AB385AFC357\ -678B9578C0EBF641EF076A1A30F1F75379E9DCB2A885BDD295905EE80C0168A6\ -2A9597D10CF12DD2D8CEE46645C7E5A141F6E0E23AA482ABE5661C16E69EF1E2\ -8371E2E236C359BA4E92C25626A7B7FF13F6EA4AE906E1CFE163E91719B1F750\ -A96CBDE5FBC953D9E576CD216AFC90323A:\ -878AD52FA09FD4B6465083C9C9E6A2DDB81302E2DB0CAA934D03A196972ADDD4\ -BB8FF869BF0069E970D6BAEB5BBA9B79 - -F1C528CF7739874707D4D8AD5B98F7C77169DE0B57188DF233B2DC8A5B31EDA5\ -DB4291DD9F68E6BAD37B8D7F6C9C0044B3BF74BBC3D7D1798E138709B0D75E7C\ -593D3CCCDC1B20C7174B4E692ADD820ACE262D45CCFAE2077E87879634716806\ -0A162ECCA8C38C1A88350BD63BB539134F700FD4ADDD5959E255337DAA06BC86\ -358FABCBEFDFB5BC889783D843C08AADC6C4F6C36F65F156E851C9A0F917E4A3\ -67B5AD93D874812A1DE6A7B93CD53AD97232:\ -60071A7E2ECFAF3B5B2E84A677FB98E44BD3725ADDEEC5C37EC62052D57AF7B6\ -87A063FD39C8F6E86F79D97F246C757B - -9D9F3A7ECD51B41F6572FD0D0881E30390DFB780991DAE7DB3B47619134718E6\ -F987810E542619DFAA7B505C76B7350C6432D8BF1CFEBDF1069B90A35F0D04CB\ -DF130B0DFC7875F4A4E62CDB8E525AADD7CE842520A482AC18F09442D78305FE\ -85A74E39E760A4837482ED2F437DD13B2EC1042AFCF9DECDC3E877E50FF4106A\ -D10A525230D11920324A81094DA31DEAB6476AA42F20C84843CFC1C58545EE80\ -352BDD3740DD6A16792AE2D86F11641BB717C2:\ -EB929023D66AC20F11BF68EBC43069D27F35077A68D21FAB30854FFE53CBD784\ -D7B25776D9F266F106433751E6C38A68 - -5179888724819FBAD3AFA927D3577796660E6A81C52D98E9303261D5A4A83232\ -F6F758934D50AA83FF9E20A5926DFEBAAC49529D006EB923C5AE5048ED544EC4\ -71ED7191EDF46363383824F915769B3E688094C682B02151E5EE01E510B431C8\ -865AFF8B6B6F2F59CB6D129DA79E97C6D2B8FA6C6DA3F603199D2D1BCAB54768\ -2A81CD6CF65F6551121391D78BCC23B5BD0E922EC6D8BF97C952E84DD28AEF90\ -9ABA31EDB903B28FBFC33B7703CD996215A11238:\ -6A51975C9FFEE8B94135A3BDA954DFE14E6267DBC9253F0BB04515A6B7745AEC\ -611B7B66AE57D3FD3770AED4F412EC84 - -576EF3520D30B7A4899B8C0D5E359E45C5189ADD100E43BE429A02FB3DE5FF4F\ -8FD0E79D9663ACCA72CD29C94582B19292A557C5B1315297D168FBB54E9E2ECD\ -13809C2B5FCE998EDC6570545E1499DBE7FB74D47CD7F35823B212B05BF3F5A7\ -9CAA34224FDD670D335FCB106F5D92C3946F44D3AFCBAE2E41AC554D8E6759F3\ -32B76BE89A0324AA12C5482D1EA3EE89DED4936F3E3C080436F539FA137E74C6\ -D3389BDF5A45074C47BC7B20B0948407A66D855E2F:\ -D2DC49C04553F09A8C3D7DB51DE890A71DBC10FE4E910C68BA5CA5DDB313D0A6\ -8375275C291B4DEB41F45E35A558BF77 - -0DF2152FA4F4357C8741529DD77E783925D3D76E95BAFA2B542A2C33F3D1D117\ -D159CF473F82310356FEE4C90A9E505E70F8F24859656368BA09381FA245EB6C\ -3D763F3093F0C89B972E66B53D59406D9F01AEA07F8B3B615CAC4EE4D05F542E\ -7D0DAB45D67CCCCD3A606CCBEB31EA1FA7005BA07176E60DAB7D78F6810EF086\ -F42F08E595F0EC217372B98970CC6321576D92CE38F7C397A403BADA1548D205\ -C343AC09DECA86325373C3B76D9F32028FEA8EB32515:\ -AAB5747D7DCC77BACDE81A58C37764F8F41E08F2413B40D4E6C792CEFE52E4E2\ -A406338752D7AD1269E7D5284FCB7400 - -3E15350D87D6EBB5C8AD99D42515CFE17980933C7A8F6B8BBBF0A63728CEFAAD\ -2052623C0BD5931839112A48633FB3C2004E0749C87A41B26A8B48945539D1FF\ -41A4B269462FD199BFECD45374756F55A9116E92093AC99451AEFB2AF9FD32D6\ -D7F5FBC7F7A540D5097C096EBC3B3A721541DE073A1CC02F7FB0FB1B9327FB0B\ -1218CA49C9487AB5396622A13AE546C97ABDEF6B56380DDA7012A8384091B665\ -6D0AB272D363CEA78163FF765CDD13AB1738B940D16CAE:\ -72B526D74CF9521E00D9D6BCDFC1FB1760C6ACDF2DD75171305DB45D38098FF2\ -3C5B8ED3C21DA73FFB8DF7217CE46DBB - -C38D6B0B757CB552BE40940ECE0009EF3B0B59307C1451686F1A22702922800D\ -58BCE7A636C1727EE547C01B214779E898FC0E560F8AE7F61BEF4D75EAA696B9\ -21FD6B735D171535E9EDD267C192B99880C87997711002009095D8A7A437E258\ -104A41A505E5EF71E5613DDD2008195F0C574E6BA3FE40099CFA116E5F1A2FA8\ -A6DA04BADCB4E2D5D0DE31FDC4800891C45781A0AAC7C907B56D631FCA5CE8B2\ -CDE620D11D1777ED9FA603541DE794DDC5758FCD5FAD78C0:\ -800CFA48B4647F7783BCD41B2C0F7F7D4D0FAA72481A2A42C4E9C43C9F62E27A\ -CB4DDB73E318061D396059AADE4145E2 - -8D2DE3F0B37A6385C90739805B170057F091CD0C7A0BC951540F26A5A75B3E69\ -4631BB64C7635EED316F51318E9D8DE13C70A2ABA04A14836855F35E480528B7\ -76D0A1E8A23B547C8B8D6A0D09B241D3BE9377160CCA4E6793D00A515DC2992C\ -B7FC741DACA171431DA99CCE6F7789F129E2AC5CF65B40D703035CD2185BB936\ -C82002DAF8CBC27A7A9E554B06196630446A6F0A14BA155ED26D95BD627B7205\ -C072D02B60DB0FD7E49EA058C2E0BA202DAFF0DE91E845CF79:\ -F782FF0DE7D5442D562CC500256EE4B5A00E885C8CD86009C53F337AE003854D\ -E4B89794281A64375E3F696A415B95D2 - -C464BBDAD275C50DCD983B65AD1019B9FF85A1E71C807F3204BB2C921DC31FBC\ -D8C5FC45868AE9EF85B6C9B83BBA2A5A822201ED68586EC5EC27FB2857A5D1A2\ -D09D09115F22DCC39FE61F5E1BA0FF6E8B4ACB4C6DA748BE7F3F0839739394FF\ -7FA8E39F7F7E84A33C3866875C01BCB1263C9405D91908E9E0B50E7459FABB63\ -D8C6BBB73D8E3483C099B55BC30FF092FF68B6ADEDFD477D63570C9F5515847F\ -36E24BA0B705557130CEC57EBAD1D0B31A378E91894EE26E3A04:\ -DE34506AD69085C6357D62B0B127CE66E25E8EC5FACA5BA898C75CA19E9AF24F\ -02406716C61A71D62BDC28D718C125DF - -8B8D68BB8A75732FE272815A68A1C9C5AA31B41DEDC8493E76525D1D013D33CE\ -BD9E21A5BB95DB2616976A8C07FCF411F5F6BC6F7E0B57ACA78CC2790A6F9B89\ -8858AC9C79B165FF24E66677531E39F572BE5D81EB3264524181115F32780257\ -BFB9AEEC6AF12AF28E587CAC068A1A2953B59AD680F4C245B2E3EC36F59940D3\ -7E1D3DB38E13EDB29B5C0F404F6FF87F80FC8BE7A225FF22FBB9C8B6B1D7330C\ -57840D24BC75B06B80D30DAD6806544D510AF6C4785E823AC3E0B8:\ -6F4FEEDBA0ABB4DBF824302250E6B668CBFFDCA0B8C338236FE02A8779D8ACA3\ -91D8D116B2BC43D40E736096470A0BC0 - -6B018710446F368E7421F1BC0CCF562D9C1843846BC8D98D1C9BF7D9D6FCB48B\ -FC3BF83B36D44C4FA93430AF75CD190BDE36A7F92F867F58A803900DF8018150\ -384D85D82132F123006AC2AEBA58E02A037FE6AFBD65ECA7C44977DD3DC74F48\ -B6E7A1BFD5CC4DCF24E4D52E92BD4455848E4928B0EAC8B7476FE3CC03E862AA\ -4DFF4470DBFED6DE48E410F25096487ECFC32A27277F3F5023B2725ADE461B13\ -55889554A8836C9CF53BD767F5737D55184EEA1AB3F53EDD0976C485:\ -A040CE1CBB996723CBCDBDFF7A6A5F69289737609534C5AF36F6C420A6ADFD57\ -0794079509D07E62566C58062D8186DB - -C9534A24714BD4BE37C88A3DA1082EDA7CABD154C309D7BD670DCCD95AA53559\ -4463058A29F79031D6ECAA9F675D1211E9359BE82669A79C855EA8D89DD38C2C\ -761DDD0EC0CE9E97597432E9A1BEAE062CDD71EDFDFD464119BE9E69D18A7A7F\ -D7CE0E2106F0C8B0ABF4715E2CA48EF9F454DC203C96656653B727083513F8EF\ -B86E49C513BB758B3B052FE21F1C05BB33C37129D6CC81F1AEF6ADC45B0E8827\ -A830FE545CF57D0955802C117D23CCB55EA28F95C0D8C2F9C5A242B33F:\ -FF13C29C5E0D746CA27AEE38B6B49A13C1B3D70E62875443BCFC22A22E75031E\ -60D68A917E3AE1D42D374D44CDC9F4C8 - -07906C87297B867ABF4576E9F3CC7F82F22B154AFCBF293B9319F1B0584DA6A4\ -0C27B32E0B1B7F412C4F1B82480E70A9235B12EC27090A5A33175A2BB28D8ADC\ -475CEFE33F7803F8CE27967217381F02E67A3B4F84A71F1C5228E0C2AD971373\ -F6F672624FCEA8D1A9F85170FAD30FA0BBD25035C3B41A6175D467998BD1215F\ -6F3866F53847F9CF68EF3E2FBB54BC994DE2302B829C5EEA68EC441FCBAFD7D1\ -6AE4FE9FFF98BF00E5BC2AD54DD91FF9FDA4DD77B6C754A91955D1FBAAD0:\ -3A4418A16896ADAB7C6DC783A0FC9F8D7E949937BE1D68B5EF02574B2B0C9BA9\ -02FB9C15ED64FC825D598AAFC1B26347 - -588E94B9054ABC2189DF69B8BA34341B77CDD528E7860E5DEFCAA79B0C9A452A\ -D4B82AA306BE84536EB7CEDCBE058D7B84A6AEF826B028B8A0271B69AC3605A9\ -635EA9F5EA0AA700F3EB7835BC54611B922964300C953EFE7491E3677C2CEBE0\ -822E956CD16433B02C68C4A23252C3F9E151A416B4963257B783E038F6B4D5C9\ -F110F871652C7A649A7BCEDCBCCC6F2D0725BB903CC196BA76C76AA9F10A190B\ -1D1168993BAA9FFC96A1655216773458BEC72B0E39C9F2C121378FEAB4E76A:\ -17F84411E60F6BD856D09C0ACF314E7546466AB0C1616284D2240D22BCCC7240\ -E5A2D656D35257AB49781BDABEF6FCF9 - -08959A7E4BAAE874928813364071194E2939772F20DB7C3157078987C557C2A6\ -D5ABE68D520EEF3DC491692E1E21BCD880ADEBF63BB4213B50897FA005256ED4\ -1B5690F78F52855C8D9168A4B666FCE2DA2B456D7A7E7C17AB5F2FB1EE90B79E\ -698712E963715983FD07641AE4B4E9DC73203FAC1AE11FA1F8C7941FCC82EAB2\ -47ADDB56E2638447E9D609E610B60CE086656AAEBF1DA3C8A231D7D94E2FD0AF\ -E46B391FF14A72EAEB3F44AD4DF85866DEF43D4781A0B3578BC996C87970B132:\ -E577F79B0E05355B8F63EC1E639BC5A51A72BBB0ABAFE76D3133DEC4DA9BEF9A\ -361F3E3C0ADB4C07E2757FE1D4790B9A - -CB2A234F45E2ECD5863895A451D389A369AAB99CFEF0D5C9FFCA1E6E63F763B5\ -C14FB9B478313C8E8C0EFEB3AC9500CF5FD93791B789E67EAC12FD038E2547CC\ -8E0FC9DB591F33A1E4907C64A922DDA23EC9827310B306098554A4A78F050262\ -DB5B545B159E1FF1DCA6EB734B872343B842C57EAFCFDA8405EEDBB48EF32E99\ -696D135979235C3A05364E371C2D76F1902F1D83146DF9495C0A6C57D7BF9EE7\ -7E80F9787AEE27BE1FE126CDC9EF893A4A7DCBBC367E40FE4E1EE90B42EA25AF\ -01:\ -F78106F10E6C1F1CA5190FE541345145EE25BC51D3C1CBAAA04C0DB2A3BA2584\ -DDD30F3A889B94BBCB9573CD9417574C - -D16BEADF02AB1D4DC6F88B8C4554C51E866DF830B89C06E786A5F8757E890931\ -0AF51C840EFE8D20B35331F4355D80F73295974653DDD620CDDE4730FB6C8D0D\ -2DCB2B45D92D4FBDB567C0A3E86BD1A8A795AF26FBF29FC6C65941CDDB090FF7\ -CD230AC5268AB4606FCCBA9EDED0A2B5D014EE0C34F0B2881AC036E24E151BE8\ -9EEB6CD9A7A790AFCCFF234D7CB11B99EBF58CD0C589F20BDAC4F9F0E28F75E3\ -E04E5B3DEBCE607A496D848D67FA7B49132C71B878FD5557E082A18ECA1FBDA9\ -4D4B:\ -6F42FAF87DA65516FC0CCA70A385F26EBDAA94DF64AA5E7A3119AC18C6214E3D\ -0B61158FBD6C2487E0ABFB0C6C85EF87 - -8F65F6BC59A85705016E2BAE7FE57980DE3127E5AB275F573D334F73F8603106\ -EC3553016608EF2DD6E69B24BE0B7113BF6A760BA6E9CE1C48F9E186012CF96A\ -1D4849D75DF5BB8315387FD78E9E153E76F8BA7EC6C8849810F59FB4BB9B0043\ -18210B37F1299526866F44059E017E22E96CBE418699D014C6EA01C9F0038B10\ -299884DBEC3199BB05ADC94E955A1533219C1115FED0E5F21228B071F40DD57C\ -4240D98D37B73E412FE0FA4703120D7C0C67972ED233E5DEB300A22605472FA3\ -A3BA86:\ -82FC97EE34A8FCC276AE1C8130555CC2D339AA6CB34003488378855529F9EE3A\ -F819EC104DD2DE300AB7DBC04B2B4017 - -84891E52E0D451813210C3FD635B39A03A6B7A7317B221A7ABC270DFA946C426\ -69AACBBBDF801E1584F330E28C729847EA14152BD637B3D0F2B38B4BD5BF9C79\ -1C58806281103A3EABBAEDE5E711E539E6A8B2CF297CF351C078B4FA8F7F35CF\ -61BEBF8814BF248A01D41E86C5715EA40C63F7375379A7EB1D78F27622FB468A\ -B784AAABA4E534A6DFD1DF6FA15511341E725ED2E87F98737CCB7B6A6DFAE416\ -477472B046BF1811187D151BFA9F7B2BF9ACDB23A3BE507CDF14CFDF517D2CB5\ -FB9E4AB6:\ -75D140BE47E116211F4F668E05ADD36C83B3E481DF9F28064A41898335D97C80\ -5471214E29C0B849875845C9B8DE25E3 - -FDD7A9433A3B4AFABD7A3A5E3457E56DEBF78E84B7A0B0CA0E8C6D53BD0C2DAE\ -31B2700C6128334F43981BE3B213B1D7A118D59C7E6B6493A86F866A1635C128\ -59CFB9AD17460A77B4522A5C1883C3D6ACC86E6162667EC414E9A104AA892053\ -A2B1D72165A855BACD8FAF8034A5DD9B716F47A0818C09BB6BAF22AA503C06B4\ -CA261F557761989D2AFBD88B6A678AD128AF68672107D0F1FC73C5CA74045929\ -7B3292B281E93BCEB761BDE7221C3A55708E5EC84472CDDCAA84ECF23723CC09\ -91355C6280:\ -1A04CD93747CA583A58AB4A8C7C8C7A33F025EDE1B2DD080E5AF0C4DC63C8715\ -E436DD57FF7F401DECEF813F330D6588 - -70A40BFBEF92277A1AAD72F6B79D0177197C4EBD432668CFEC05D099ACCB6510\ -62B5DFF156C0B27336687A94B26679CFDD9DAF7AD204338DD9C4D14114033A5C\ -225BD11F217B5F4732DA167EE3F939262D4043FC9CBA92303B7B5E96AEA12ADD\ -A64859DF4B86E9EE0B58E39091E6B188B408AC94E1294A8911245EE361E60E60\ -1EFF58D1D37639F3753BEC80EBB4EFDE25817436076623FC65415FE51D1B0280\ -366D12C554D86743F3C3B6572E400361A60726131441BA493A83FBE9AFDA90F7\ -AF1AE717238D:\ -FB0626F2B189679DD998BC18F30DF82D0907B62AA77C8669E22B53860E398850\ -3D884884163A561739254CA13929B69B - -74356E449F4BF8644F77B14F4D67CB6BD9C1F5AE357621D5B8147E562B65C665\ -85CAF2E491B48529A01A34D226D436959153815380D5689E30B35357CDAC6E08\ -D3F2B0E88E200600D62BD9F5EAF488DF86A4470EA227006182E44809009868C4\ -C280C43D7D64A5268FA719074960087B3A6ABC837882F882C837834535929389\ -A12B2C78187E2EA07EF8B8EEF27DC85002C3AE35F1A50BEE6A1C48BA7E175F33\ -16670B27983472AA6A61EED0A683A39EE323080620EA44A9F74411AE5CE99030\ -528F9AB49C79F2:\ -CC2EF9602F80D0734295C7C158EC366608CF60A423D0836644B60831A94E7EAF\ -994C81F19174FD6CA75BB246BBCCA200 - -8C3798E51BC68482D7337D3ABB75DC9FFE860714A9AD73551E120059860DDE24\ -AB87327222B64CF774415A70F724CDF270DE3FE47DDA07B61C9EF2A3551F45A5\ -584860248FABDE676E1CD75F6355AA3EAEABE3B51DC813D9FB2EAA4F0F1D9F83\ -4D7CAD9C7C695AE84B329385BC0BEF895B9F1EDF44A03D4B410CC23A79A6B62E\ -4F346A5E8DD851C2857995DDBF5B2D717AEB847310E1F6A46AC3D26A7F9B4498\ -5AF656D2B7C9406E8A9E8F47DCB4EF6B83CAACF9AEFB6118BFCFF7E44BEF6937\ -EBDDC89186839B77:\ -B5A7160112E0825A7C03643BEB98B1FC2549B81F01C3C4271DFF99BE57D472A7\ -FAD133808D7D2D414D6011E9A2E8DFEC - -FA56BF730C4F8395875189C10C4FB251605757A8FECC31F9737E3C2503B02608\ -E6731E85D7A38393C67DE516B85304824BFB135E33BF22B3A23B913BF6ACD2B7\ -AB85198B8187B2BCD454D5E3318CACB32FD6261C31AE7F6C54EF6A7A2A4C9F3E\ -CB81CE3555D4F0AD466DD4C108A90399D70041997C3B25345A9653F3C9A6711A\ -B1B91D6A9D2216442DA2C973CBD685EE7643BFD77327A2F7AE9CB283620A0871\ -6DFB462E5C1D65432CA9D56A90E811443CD1ECB8F0DE179C9CB48BA4F6FEC360\ -C66F252F6E64EDC96B:\ -E7B3118D7FCA9D294F596D820F468CD9027920777A41A706EDE877CBEB9517F2\ -23B268C5E805A374051822692E9AB44B - -B6134F9C3E91DD8000740D009DD806240811D51AB1546A974BCB18D344642BAA\ -5CD5903AF84D58EC5BA17301D5EC0F10CCD0509CBB3FD3FFF9172D193AF0F782\ -252FD1338C7244D40E0E42362275B22D01C4C3389F19DD69BDF958EBE28E31A4\ -FFE2B5F18A87831CFB7095F58A87C9FA21DB72BA269379B2DC2384B3DA953C79\ -25761FED324620ACEA435E52B424A7723F6A2357374157A34CD8252351C25A1B\ -232826CEFE1BD3E70FFC15A31E7C0598219D7F00436294D11891B82497BC78AA\ -5363892A2495DF8C1EEF:\ -C3FA6C9D0FF231198AECA80EA428AC4B32C481D390CE4A90D0F65FF7D58F696C\ -1FAADA1673D7E2D161462C95C2E2A310 - -C941CDB9C28AB0A791F2E5C8E8BB52850626AA89205BEC3A7E22682313D198B1\ -FA33FC7295381354858758AE6C8EC6FAC3245C6E454D16FA2F51C4166FAB51DF\ -272858F2D603770C40987F64442D487AF49CD5C3991CE858EA2A60DAB6A65A34\ -414965933973AC2457089E359160B7CDEDC42F29E10A91921785F6B7224EE0B3\ -49393CDCFF6151B50B377D609559923D0984CDA6000829B916AB6896693EF6A2\ -199B3C22F7DC5500A15B8258420E314C222BC000BC4E5413E6DD82C993F8330F\ -5C6D1BE4BC79F08A1A0A46:\ -C4BD1157C093ACB27BD3BD7F444F836BFCBA0DAFE11675104C6437E5981442BE\ -999C860DD6E1B75FAF6A553E907B61EE - -4499EFFFAC4BCEA52747EFD1E4F20B73E48758BE915C88A1FFE5299B0B005837\ -A46B2F20A9CB3C6E64A9E3C564A27C0F1C6AD1960373036EC5BFE1A8FC6A435C\ -2185ED0F114C50E8B3E4C7ED96B06A036819C9463E864A58D6286F785E32A804\ -443A56AF0B4DF6ABC57ED5C2B185DDEE8489EA080DEEEE66AA33C2E6DAB36251\ -C402682B6824821F998C32163164298E1FAFD31BABBCFFB594C91888C6219079\ -D907FDB438ED89529D6D96212FD55ABE20399DBEFD342248507436931CDEAD49\ -6EB6E4A80358ACC78647D043:\ -D099F3C8052CAA2CF9751B1ED2D472C21FED667892BC1C417600A4C93EFFE88F\ -1B17B36D37E4D26B9CD65ACB13A6DB6F - -EECBB8FDFA4DA62170FD06727F697D81F83F601FF61E478105D3CB7502F2C89B\ -F3E8F56EDD469D049807A38882A7EEFBC85FC9A950952E9FA84B8AFEBD3CE782\ -D4DA598002827B1EB98882EA1F0A8F7AA9CE013A6E9BC462FB66C8D4A18DA214\ -01E1B93356EB12F3725B6DB1684F2300A98B9A119E5D27FF704AFFB618E12708\ -E77E6E5F34139A5A41131FD1D6336C272A8FC37080F041C71341BEE6AB550CB4\ -A20A6DDB6A8E0299F2B14BC730C54B8B1C1C487B494BDCCFD3A53535AB2F2315\ -90BF2C4062FD2AD58F906A2D0D:\ -7A9FE13FE3318121BABB340A3B045DC89D1BE2D0EC05802C9254FEC39EFCDE16\ -3C514DCDBA3FF93F9B097486C2012385 - -E64F3E4ACE5C8418D65FEC2BC5D2A303DD458034736E3B0DF719098BE7A206DE\ -AF52D6BA82316CAF330EF852375188CDE2B39CC94AA449578A7E2A8E3F5A9D68\ -E816B8D16889FBC0EBF0939D04F63033AE9AE2BDAB73B88C26D6BD25EE460EE1\ -EF58FB0AFA92CC539F8C76D3D097E7A6A63EBB9B5887EDF3CF076028C5BBD5B9\ -DB3211371AD3FE121D4E9BF44229F4E1ECF5A0F9F0EBA4D5CEB72878AB22C3F0\ -EB5A625323AC66F7061F4A81FAC834471E0C59553F108475FE290D43E6A055AE\ -3EE46FB67422F814A68C4BE3E8C9:\ -8AEEDE5D6E2F9F1C7A6644A8DA0F93574DF8CA33B2ED9D364615E1F9CF1A8013\ -15410733881CE0DAD2F6FB5A916A97E1 - -D2CB2D733033F9E91395312808383CC4F0CA974E87EC68400D52E96B3FA6984A\ -C58D9AD0938DDE5A973008D818C49607D9DE2284E7618F1B8AED8372FBD52ED5\ -4557AF4220FAC09DFA8443011699B97D743F8F2B1AEF3537EBB45DCC9E13DFB4\ -38428EE190A4EFDB3CAEB7F3933117BF63ABDC7E57BEB4171C7E1AD260AB0587\ -806C4D137B6316B50ABC9CCE0DFF3ACADA47BBB86BE777E617BBE578FF451984\ -4DB360E0A96C6701290E76BB95D26F0F804C8A4F2717EAC4E7DE9F2CFF3BBC55\ -A17E776C0D02856032A6CD10AD2838:\ -29E62D8C1B71F826544A0CBFCDD99CF8AA1C97E153063120D295EDF69E2ECB5A\ -2783C66760D0F87BF944516824CCFCB1 - -F2998955613DD414CC111DF5CE30A995BB792E260B0E37A5B1D942FE90171A4A\ -C2F66D4928D7AD377F4D0554CBF4C523D21F6E5F379D6F4B028CDCB9B1758D3B\ -39663242FF3CB6EDE6A36A6F05DB3BC41E0D861B384B6DEC58BB096D0A422FD5\ -42DF175E1BE1571FB52AE66F2D86A2F6824A8CFAACBAC4A7492AD0433EEB1545\ -4AF8F312B3B2A577750E3EFBD370E8A8CAC1582581971FBA3BA4BD0D76E718DA\ -CF8433D33A59D287F8CC92234E7A271041B526E389EFB0E40B6A18B3AAF658E8\ -2ED1C78631FD23B4C3EB27C3FAEC8685:\ -EB2F1BF2D9EE857B189318DFAF49DC3FAD79501189AC9B5765DFB234EC4A62F0\ -B0E34E7AC3F494D6F05C7BB86AE5CDA2 - -447797E2899B72A356BA55BF4DF3ACCA6CDB1041EB477BD1834A9F9ACBC340A2\ -94D729F2F97DF3A610BE0FF15EDB9C6D5DB41644B9874360140FC64F52AA03F0\ -286C8A640670067A84E017926A70438DB1BB361DEFEE7317021425F8821DEF26\ -D1EFD77FC853B818545D055ADC9284796E583C76E6FE74C9AC2587AA46AA8F88\ -04F2FEB5836CC4B3ABABAB8429A5783E17D5999F32242EB59EF30CD7ADABC16D\ -72DBDB097623047C98989F88D14EAF02A7212BE16EC2D07981AAA99949DDF89E\ -CD90333A77BC4E1988A82ABF7C7CAF3291:\ -2A9CF2FD012B025616478CEF6971B6F9E494A63AAB5F53310DDE70FC6ED27F1E\ -2D7804AEB8D206F641A73E054DA620E6 - -9F2C18ADE9B380C784E170FB763E9AA205F64303067EB1BCEA93DF5DAC4BF5A2\ -E00B78195F808DF24FC76E26CB7BE31DC35F0844CDED1567BBA29858CFFC97FB\ -29010331B01D6A3FB3159CC1B973D255DA9843E34A0A4061CABDB9ED37F241BF\ -ABB3C20D32743F4026B59A4CCC385A2301F83C0B0A190B0F2D01ACB8F0D41111\ -E10F2F4E149379275599A52DC089B35FDD5234B0CFB7B6D8AEBD563CA1FA653C\ -5C021DFD6F5920E6F18BFAFDBECBF0AB00281333ED50B9A999549C1C8F8C63D7\ -626C48322E9791D5FF72294049BDE91E73F8:\ -5F8E2DE742036B6AC4A7D8987B47C4C7A1CCB7239E1B3EEFD1116D6392C79177\ -D68C66221F31D0FAED9134429B89BEEA - -AE159F3FA33619002AE6BCCE8CBBDD7D28E5ED9D61534595C4C9F43C402A9BB3\ -1F3B301CBFD4A43CE4C24CD5C9849CC6259ECA90E2A79E01FFBAC07BA0E147FA\ -42676A1D668570E0396387B5BCD599E8E66AAED1B8A191C5A47547F61373021F\ -A6DEADCB55363D233C24440F2C73DBB519F7C9FA5A8962EFD5F6252C0407F190\ -DFEFAD707F3C7007D69FF36B8489A5B6B7C557E79DD4F50C06511F599F56C896\ -B35C917B63BA35C6FF8092BAF7D1658E77FC95D8A6A43EEB4C01F33F03877F92\ -774BE89C1114DD531C011E53A34DC248A2F0E6:\ -B0B1F4058417516A5C5A9683A5D72B489E6AD42273D591791D2CDA7360A4008E\ -86C8899369946F7ABFE29BF92C9CA965 - -3B8E97C5FFC2D6A40FA7DE7FCEFC90F3B12C940E7AB415321E29EE692DFAC799\ -B009C99DCDDB708FCE5A178C5C35EE2B8617143EDC4C40B4D313661F49ABDD93\ -CEA79D117518805496FE6ACF292C4C2A1F76B403A97D7C399DAF85B46AD84E16\ -246C67D6836757BDE336C290D5D401E6C1386AB32797AF6BB251E9B2D8FE754C\ -47482B72E0B394EAB76916126FD68EA7D65EB93D59F5B4C5AC40F7C3B37E7F36\ -94F29424C24AF8C8F0EF59CD9DBF1D28E0E10F799A6F78CAD1D45B9DB3D7DEE4\ -A7059ABE99182714983B9C9D44D7F5643596D4F3:\ -9172AAD6C15B4DCD79BBD84FAD0601119D8B4E3AFED17B594FF38424157985EE\ -27B65826B9905486E767E85AA031E07B - -3434EC31B10FAFDBFEEC0DD6BD94E80F7BA9DCA19EF075F7EB017512AF66D6A4\ -BCF7D16BA0819A1892A6372F9B35BCC7CA8155EE19E8428BC22D214856ED5FA9\ -374C3C09BDE169602CC219679F65A1566FC7316F4CC3B631A18FB4449FA6AFA1\ -6A3DB2BC4212EFF539C67CF184680826535589C7111D73BFFCE431B4C40492E7\ -63D9279560AAA38EB2DC14A212D723F994A1FE656FF4DD14551CE4E7C621B2AA\ -5604A10001B2878A897A28A08095C325E10A26D2FB1A75BFD64C250309BB55A4\ -4F23BBAC0D5516A1C687D3B41EF2FBBF9CC56D4739:\ -BAFBB3321C4798548F5DD983EAC1E16E1F3EF2BA5C9D69A340F6CABC9C7FE9F1\ -FD95A692B7387342304945674D9D2E4A - -7C7953D81C8D208FD1C97681D48F49DD003456DE60475B84070EF4847C333B74\ -575B1FC8D2A186964485A3B8634FEAA3595AAA1A2F4595A7D6B6153563DEE31B\ -BAC443C8A33EED6D5D956A980A68366C2527B550EE950250DFB691EACBD5D56A\ -E14B970668BE174C89DF2FEA43AE52F13142639C884FD62A3683C0C3792F0F24\ -AB1318BCB27E21F4737FAB62C77EA38BC8FD1CF41F7DAB64C13FEBE7152BF5BB\ -7AB5A78F5346D43CC741CB6F72B7B8980F268B68BF62ABDFB1577A52438FE14B\ -591498CC95F071228460C7C5D5CEB4A7BDE588E7F21C:\ -A055E0A9C4575CD4D7AD84A240176F21ED68F484A269E0C9EFFB6FA93746E31F\ -64B0B90C513D2B57EC78E9E5BA3BA99C - -7A6A4F4FDC59A1D223381AE5AF498D74B7252ECF59E389E49130C7EAEE626E7B\ -D9897EFFD92017F4CCDE66B0440462CDEDFD352D8153E6A4C8D7A0812F701CC7\ -37B5178C2556F07111200EB627DBC299CAA792DFA58F35935299FA3A3519E9B0\ -3166DFFA159103FFA35E8577F7C0A86C6B46FE13DB8E2CDD9DCFBA85BDDDCCE0\ -A7A8E155F81F712D8E9FE646153D3D22C811BD39F830433B2213DD46301941B5\ -9293FD0A33E2B63ADBD95239BC01315C46FDB678875B3C81E053A40F581CFBEC\ -24A1404B1671A1B88A6D06120229518FB13A74CA0AC5AE:\ -788D19AD68D1B26CB0078389B45FB18B3DA35A57A1EC914273158EAD43749BF1\ -AB49B1A68D4831CE193F5852D20FD96C - -D9FAA14CEBE9B7DE551B6C0765409A33938562013B5E8E0E1E0A6418DF7399D0\ -A6A771FB81C3CA9BD3BB8E2951B0BC792525A294EBD1083688806FE5E7F1E17F\ -D4E3A41D00C89E8FCF4A363CAEDB1ACB558E3D562F1302B3D83BB886ED27B760\ -33798131DAB05B4217381EAAA7BA15EC820BB5C13B516DD640EAEC5A27D05FDF\ -CA0F35B3A5312146806B4C0275BCD0AAA3B2017F346975DB566F9B4D137F4EE1\ -0644C2A2DA66DEECA5342E236495C3C6280528BFD32E90AF4CD9BB908F34012B\ -52B4BC56D48CC8A6B59BAB014988EABD12E1A0A1C2E170E7:\ -9C8A4F5BE01AD5AE0946EF7E9F5A82287B6344B966EE28BDEDFE4BD43D840D23\ -2054D5E216716EA4F80B457CBC110D1A - -2D8427433D0C61F2D96CFE80CF1E932265A191365C3B61AAA3D6DCC039F6BA2A\ -D52A6A8CC30FC10F705E6B7705105977FA496C1C708A277A124304F1FC40911E\ -7441D1B5E77B951AAD7B01FD5DB1B377D165B05BBF898042E39660CAF8B279FE\ -5229D1A8DB86C0999ED65E53D01CCBC4B43173CCF992B3A14586F6BA42F5FE30\ -AFA8AE40C5DF29966F9346DA5F8B35F16A1DE3AB6DE0F477D8D8660918060E88\ -B9B9E9CA6A4207033B87A812DBF5544D39E4882010F82B6CE005F8E8FF6FE3C3\ -806BC2B73C2B83AFB704345629304F9F86358712E9FAE3CA3E:\ -A29BCB89FD2B89006782088BF9A4AB939EABAFF6F4EEFC31B01A66B73CDF0B97\ -7D945E051D7E9F02F19CF32AD4BEBA6C - -5E19D97887FCAAC0387E22C6F803C34A3DACD2604172433F7A8A7A526CA4A2A1\ -271ECFC5D5D7BE5AC0D85D921095350DFC65997D443C21C8094E0A3FEFD2961B\ -CB94AED03291AE310CCDA75D8ACE4BC7D89E7D3E5D1650BDA5D668B8B50BFC8E\ -608E184F4D3A9A2BADC4FF5F07E0C0BC8A9F2E0B2A26FD6D8C550008FAAAB75F\ -D71AF2A424BEC9A7CD9D83FAD4C8E9319115656A8717D3B523A68FF8004258B9\ -990ED362308461804BA3E3A7E92D8F2FFAE5C2FBA55BA5A3C27C0A2F71BD711D\ -2FE1799C2ADB31B200035481E9EE5C4ADF2AB9C0FA50B23975CF:\ -61D3B13728925646476D67C8D626D2ECE69D9B42503FA6A0DF2B24A5F2AB0FB7\ -D74C2F1F7F04304C49AC94BD4E93FDA4 - -C8E976AB4638909387CE3B8D4E510C3230E5690E02C45093B1D297910ABC481E\ -56EEA0F296F98379DFC9080AF69E73B2399D1C143BEE80AE1328162CE1BA7F6A\ -8374679B20AACD380EB4E61382C99998704D62701AFA914F9A2705CDB065885F\ -50D086C3EB5753700C387118BB142F3E6DA1E988DFB31AC75D7368931E45D139\ -1A274B22F83CEB072F9BCABC0B216685BFD789F5023971024B1878A205442522\ -F9EA7D8797A4102A3DF41703768251FD5E017C85D1200A464118AA35654E7CA3\ -9F3C375B8EF8CBE7534DBC64BC20BEFB417CF60EC92F63D9EE7397:\ -589AB9981D9ABD1D712D59C6863D850BB1D412D24A967D76CCE78FFC998F8C01\ -6DD4B115A1BC4DC49248AB5F758C215A - -7145FA124B7429A1FC2231237A949BA7201BCC1822D3272DE005B682398196C2\ -5F7E5CC2F289FBF44415F699CB7FE6757791B1443410234AE061EDF623359E2B\ -4E32C19BF88450432DD01CAA5EB16A1DC378F391CA5E3C4E5F356728BDDD4975\ -DB7C890DA8BBC84CC73FF244394D0D48954978765E4A00B593F70F2CA082673A\ -261ED88DBCEF1127728D8CD89BC2C597E9102CED6010F65FA75A14EBE467FA57\ -CE3BD4948B6867D74A9DF5C0EC6F530CBF2EE61CE6F06BC8F2864DFF5583776B\ -31DF8C7FFCB61428A56BF7BD37188B4A5123BBF338393AF46EDA85E6:\ -B3CC7224A1DD208E739C5528239B8D335A129EE20E59102621180E6B51714E0D\ -60078F4E7328726434AE41CA273515BA - -7FDFADCC9D29BAD23AE038C6C65CDA1AEF757221B8872ED3D75FF8DF7DA0627D\ -266E224E812C39F7983E4558BFD0A1F2BEF3FEB56BA09120EF762917B9C09386\ -7948547AEE98600D10D87B20106878A8D22C64378BF634F7F75900C03986B077\ -B0BF8B740A82447B61B99FEE5376C5EB6680EC9E3088F0BDD0C56883413D60C1\ -357D3C811950E5890E7600103C916341B80C743C6A852B7B4FB60C3BA21F3BC1\ -5B8382437A68454779CF3CD7F9F90CCC8EF28D0B706535B1E4108EB5627BB45D\ -719CB046839AEE311CA1ABDC8319E050D67972CB35A6B1601B25DBF487:\ -D33AD2A71C712A6F8AD9AC923966B4DB8C4818C79CC60F8275367D2452CFD2F5\ -542FD1888D64C9E912B92A186842B000 - -988638219FD3095421F826F56E4F09E356296B628C3CE6930C9F2E758FD1A80C\ -8273F2F61E4DAAE65C4F110D3E7CA0965AC7D24E34C0DC4BA2D6FF0BF5BBE93B\ -3585F354D7543CB542A1AA54674D375077F2D360A8F4D42F3DB131C3B7AB7306\ -267BA107659864A90C8C909460A73621D1F5D9D3FD95BEB19B23DB1CB6C0D0FB\ -A91D36891529B8BD8263CAA1BAB56A4AFFAED44962DF096D8D5B1EB845EF3118\ -8B3E10F1AF811A13F156BEB7A288AAE593EBD1471B624AA1A7C6ADF01E2200B3\ -D72D88A3AED3100C88231E41EFC376906F0B580DC895F080FDA5741DB1CB:\ -C12D450A020CDE18C24323FB4E3FB23255714B1D4CBF29719F74DA5E6151FAE9\ -01DC21A6680AD159FFB2E7C0AAABDF5B - -5AAB62756D307A669D146ABA988D9074C5A159B3DE85151A819B117CA1FF6597\ -F6156E80FDD28C9C3176835164D37DA7DA11D94E09ADD770B68A6E081CD22CA0\ -C004BFE7CD283BF43A588DA91F509B27A6584C474A4A2F3EE0F1F56447379240\ -A5AB1FB77FDCA49B305F07BA86B62756FB9EFB4FC225C86845F026EA542076B9\ -1A0BC2CDD136E122C659BE259D98E5841DF4C2F60330D4D8CDEE7BF1A0A24452\ -4EECC68FF2AEF5BF0069C9E87A11C6E519DE1A4062A10C83837388F7EF58598A\ -3846F49D499682B683C4A062B421594FAFBC1383C943BA83BDEF515EFCF10D:\ -E5B7A9B41FA0CEC3252FF95099523DC845C69B670D8DFEBA3E4AF6DEC659C4B2\ -D4B04F5F7062209485A37C542CCBE7E6 - -47B8216AA0FBB5D67966F2E82C17C07AA2D6327E96FCD83E3DE7333689F3EE79\ -994A1BF45082C4D725ED8D41205CB5BCDF5C341F77FACB1DA46A5B9B2CBC49EA\ -DF786BCD881F371A95FA17DF73F606519AEA0FF79D5A11427B98EE7F13A5C006\ -37E2854134691059839121FEA9ABE2CD1BCBBBF27C74CAF3678E05BFB1C94989\ -7EA01F56FFA4DAFBE8644611685C617A3206C7A7036E4AC816799F693DAFE7F1\ -9F303CE4EBA09D21E03610201BFC665B72400A547A1E00FA9B7AD8D84F84B34A\ -EF118515E74DEF11B9188BD1E1F97D9A12C30132EC2806339BDADACDA2FD8B78:\ -5E2BA5382C357B5A1987BDAB9A2A0B053EB75EE770E1994E630F24015AB102E4\ -82A95A25B68F5DE99FE9748FA48FF696 - -8CFF1F67FE53C098896D9136389BD8881816CCAB34862BB67A656E3D98896F3C\ -E6FFD4DA73975809FCDF9666760D6E561C55238B205D8049C1CEDEEF374D1735\ -DAA533147BFA960B2CCE4A4F254176BB4D1BD1E89654432B8DBE1A135C42115B\ -394B024856A2A83DC85D6782BE4B444239567CCEC4B184D4548EAE3FF6A192F3\ -43292BA2E32A0F267F31CC26719EB85245D415FB897AC2DA433EE91A99424C9D\ -7F1766A44171D1651001C38FC79294ACCC68CEB5665D36218454D3BA169AE058\ -A831338C17743603F81EE173BFC0927464F9BD728DEE94C6AEAB7AAE6EE3A627\ -E8:\ -0467C2B9F02AF8CEAF4F8FE88D1DE3EE03D78EC26EDEE0E34B6E7EE49AC357C3\ -5A9AE352FF4932D75E0617B8B0C61C80 - -EACD07971CFF9B9939903F8C1D8CBB5D4DB1B548A85D04E037514A583604E787\ -F32992BF2111B97AC5E8A938233552731321522AB5E8583561260B7D13EBEEF7\ -85B23A41FD8576A6DA764A8ED6D822D4957A545D5244756C18AA80E1AAD4D1F9\ -C20D259DEE1711E2CC8FD013169FB7CC4CE38B362F8E0936AE9198B7E838DCEA\ -4F7A5B9429BB3F6BBCF2DC92565E3676C1C5E6EB3DD2A0F86AA23EDD3D0891F1\ -97447692794B3DFA269611AD97F72B795602B4FDB198F3FD3EB41B415064256E\ -345E8D8C51C555DC8A21904A9B0F1AD0EFFAB7786AAC2DA3B196507E9F33CA35\ -6427:\ -87F9ECB906C9D8AAFA8DC62AF858C99609A8E9590BA5BC91A89205DE44F06AE7\ -976A9BE918AAFC9134DE9029117152A1 - -23AC4E9A42C6EF45C3336CE6DFC2FF7DE8884CD23DC912FEF0F7756C09D335C1\ -89F3AD3A23697ABDA851A81881A0C8CCAFC980AB2C702564C2BE15FE4C4B9F10\ -DFB2248D0D0CB2E2887FD4598A1D4ACDA897944A2FFC580FF92719C95CF2AA42\ -DC584674CB5A9BC5765B9D6DDF5789791D15F8DD925AA12BFFAFBCE60827B490\ -BB7DF3DDA6F2A143C8BF96ABC903D83D59A791E2D62814A89B8080A28060568C\ -F24A80AE61179FE84E0FFAD00388178CB6A617D37EFD54CC01970A4A41D1A8D3\ -DDCE46EDBBA4AB7C90AD565398D376F431189CE8C1C33E132FEAE6A8CD17A61C\ -630012:\ -510CB484B6D4B47A590F6211C7F33592246A2E05A1C69258B6CF9A24C1A3AFC2\ -527841AE3FCD552E5103DD24743AC6B3 - -0172DF732282C9D488669C358E3492260CBE91C95CFBC1E3FEA6C4B0EC129B45\ -F242ACE09F152FC6234E1BEE8AAB8CD56E8B486E1DCBA9C05407C2F95DA8D8F1\ -C0AF78EE2ED82A3A79EC0CB0709396EE62AADB84F8A4EE8A7CCCA3C1EE84E302\ -A09EA802204AFECF04097E67D0F8E8A9D2651126C0A598A37081E42D168B0AE8\ -A71951C524259E4E2054E535B779679BDADE566FE55700858618E626B4A0FAF8\ -95BCCE9011504A49E05FD56127EAE3D1F8917AFB548ECADABDA1020111FEC931\ -4C413498A360B08640549A22CB23C731ACE743252A8227A0D2689D4C60016066\ -78DFB921:\ -03F3BB45FD70966AC5EFD9598C480ED677C86C7CF00B10261AE6790C5279A5E4\ -7386F3D31726D9CB619B92A79CCAE25C - -3875B9240CF3E0A8B59C658540F26A701CF188496E2C2174788B126FD29402D6\ -A75453BA0635284D08835F40051A2A9683DC92AFB9383719191231170379BA6F\ -4ADC816FECBB0F9C446B785BF520796841E58878B73C58D3EBB097CE4761FDEA\ -BE15DE2F319DFBAF1742CDEB389559C788131A6793E193856661376C81CE9568\ -DA19AA6925B47FFD77A43C7A0E758C37D69254909FF0FBD415EF8EB937BCD49F\ -91468B49974C07DC819ABD67395DB0E05874FF83DDDAB895344ABD0E7111B2DF\ -9E58D76D85AD98106B36295826BE04D435615595605E4B4BB824B33C4AFEB5E7\ -BB0D19F909:\ -68A47C7D124E8AEA5CFEEF7A9D8CA7AA8DF6EEE6652DE3A385231F29BC4B983A\ -EC8AF2A61329B64BB59A45B77A38E4DF - -747CC1A59FEFBA94A9C75BA866C30DC5C1CB0C0F8E9361D98484956DD5D1A40F\ -6184AFBE3DAC9F76028D1CAECCFBF69199C6CE2B4C092A3F4D2A56FE5A33A007\ -57F4D7DEE5DFB0524311A97AE0668A47971B95766E2F6DD48C3F57841F91F04A\ -00AD5EA70F2D479A2620DC5CD78EAAB3A3B011719B7E78D19DDF70D9423798AF\ -77517EBC55392FCD01FC600D8D466B9E7A7A85BF33F9CC5419E9BD874DDFD609\ -81150DDAF8D7FEBAA4374F0872A5628D318000311E2F5655365AD4D407C20E5C\ -04DF17A222E7DEEC79C5AB1116D8572F91CD06E1CCC7CED53736FC867FD49ECE\ -BE6BF8082E8A:\ -DD3BBA1B4F8493E0639151D9303835F492606E2DB3AF34FE65156A642794196D\ -00A6C34A3A5FEA66202C3B5A79980A8A - -57AF971FCCAEC97435DC2EC9EF0429BCEDC6B647729EA168858A6E49AC1071E7\ -06F4A5A645CA14E8C7746D65511620682C906C8B86EC901F3DDED4167B3F00B0\ -6CBFAC6AEE3728051B3E5FF10B4F9ED8BD0B8DA94303C833755B3CA3AEDDF0B5\ -4BC8D6632138B5D25BAB03D17B3458A9D782108006F5BB7DE75B5C0BA854B423\ -D8BB801E701E99DC4FEAAD59BC1C7112453B04D33EA3635639FB802C73C2B71D\ -58A56BBD671B18FE34ED2E3DCA38827D63FDB1D4FB3285405004B2B3E26081A8\ -FF08CD6D2B08F8E7B7E90A2AB1ED7A41B1D0128522C2F8BFF56A7FE67969422C\ -E839A9D4608F03:\ -50D3B02AC7B907B310C1C0105EB47F6DCF3AF0E473785DAA54D8037A9A3E74A5\ -D1A41D811202F1E3C8A140173D92F60F - -04E16DEDC1227902BAAF332D3D08923601BDD64F573FAA1BB7201918CFE16B1E\ -10151DAE875DA0C0D63C59C3DD050C4C6A874011B018421AFC4623AB0381831B\ -2DA2A8BA42C96E4F70864AC44E106F94311051E74C77C1291BF5DB9539E69567\ -BF6A11CF6932BBBAD33F8946BF5814C066D851633D1A513510039B349939BFD4\ -2B858C21827C8FF05F1D09B1B0765DC78A135B5CA4DFBA0801BCADDFA175623C\ -8B647EACFB4444B85A44F73890607D06D507A4F8393658788669F6EF4DEB58D0\ -8C50CA0756D5E2F49D1A7AD73E0F0B3D3B5F090ACF622B1878C59133E4A848E0\ -5153592EA81C6FBF:\ -A6BBAE1FF8E00DCE34F640CEE2CDB5BCFE4382761BE36A940E50EEC12B5C2A02\ -B2B6BE18A7C87A36FD2194C4D243EC38 - -7C815C384EEE0F288ECE27CCED52A01603127B079C007378BC5D1E6C5E9E6D1C\ -735723ACBBD5801AC49854B2B569D4472D33F40BBB8882956245C366DC3582D7\ -1696A97A4E19557E41E54DEE482A14229005F93AFD2C4A7D8614D10A97A9DFA0\ -7F7CD946FA45263063DDD29DB8F9E34DB60DAA32684F0072EA2A9426ECEBFA52\ -39FB67F29C18CBAA2AF6ED4BF4283936823AC1790164FEC5457A9CBA7C767CA5\ -9392D94CAB7448F50EB34E9A93A80027471CE59736F099C886DEA1AB4CBA4D89\ -F5FC7AE2F21CCD27F611ECA4626B2D08DC22382E92C1EFB2F6AFDC8FDC3D2172\ -604F5035C46B8197D3:\ -7ED83EB659536B36061773073B148ED2117512372E49E0A3AEE48B96353EC936\ -B32688B150C585944D2008F21366B531 - -E29D505158DBDD937D9E3D2145658EE6F5992A2FC790F4F608D9CDB44A091D5B\ -94B88E81FAC4FDF5C49442F13B911C55886469629551189EAFF62488F1A479B7\ -DB11A1560E198DDCCCCF50159093425FF7F1CB8D1D1246D0978764087D6BAC25\ -7026B090EFAE8CEC5F22B6F21C59ACE1AC7386F5B8837CA6A12B6FBF5534DD05\ -60EF05CA78104D3B943DDB220FEAEC89AA5E692A00F822A2AB9A2FE60350D75E\ -7BE16FF2526DC643872502D01F42F188ABED0A6E9A6F5FD0D1CE7D5755C9FFA6\ -6B0AF0B20BD806F08E06156690D81AC811778CA3DAC2C249B96002017FCE93E5\ -07E3B953ACF99964B847:\ -2516E0015ED162073238996D5A03239087E01C2091F7B03637E6C89A758F565E\ -45C908DE873E378CAA433BAF339D0552 - -D85588696F576E65ECA0155F395F0CFACD83F36A99111ED5768DF2D116D2121E\ -32357BA4F54EDE927F189F297D3A97FAD4E9A0F5B41D8D89DD7FE20156799C2B\ -7B6BF9C957BA0D6763F5C3BC5129747BBB53652B49290CFF1C87E2CDF2C4B95D\ -8AAEE09BC8FBFA6883E62D237885810491BFC101F1D8C636E3D0EDE838AD05C2\ -07A3DF4FAD76452979EB99F29AFAECEDD1C63B8D36CF378454A1BB67A741C77A\ -C6B6B3F95F4F02B64DABC15438613EA49750DF42EE90101F115AA9ABB9FF6432\ -4DDE9DABBB01054E1BD6B4BCDC7930A44C2300D87CA78C06924D0323AD7887E4\ -6C90E8C4D100ACD9EED21E:\ -6BAE42ADD06C6A20A05D845E7BF391F1EAB83E83A710A18527FC03646104E52A\ -8B417CFF375753882081F31B6F2295EB - -3A12F8508B40C32C74492B66323375DCFE49184C78F73179F3314B79E63376B8\ -AC683F5A51F1534BD729B02B04D002F55CBD8E8FC9B5EC1EA6BBE6A0D0E74315\ -18E6BA45D124035F9D3DCE0A8BB7BF1430A9F657E0B4EA9F20EB20C786A58181\ -A1E20A96F1628F8728A13BDF7A4B4B32FC8AA7054CC4881AE7FA19AFA65C6C3E\ -E1B3ADE3192AF42054A8A911B8EC1826865D46D93F1E7C5E2B7813C92A506E53\ -886F3D4701BB93D2A681AD109C845904BB861AF8AF0646B6E399B38B614051D3\ -4F6842563A0F37EC00CB3D865FC5D746C4987DE2A65071100883A2A9C7A2BFE1\ -E2DD603D9EA24DC7C5FD06BE:\ -14690DDB5A48FDF382DBC745AD0330C1486124F6AD2E5AE4A850E38C264F99AE\ -AE6F156062AB1946DD07AFE1700A8294 - -1861EDCE46FA5AD17E1FF1DEAE084DEC580F97D0A67885DFE834B9DFAC1AE076\ -742CE9E267512CA51F6DF5A455AF0C5FD6ABF94ACEA103A3370C354485A7846F\ -B84F3AC7C2904B5B2FBF227002CE512133BB7E1C4E50057BFD1E44DB33C7CDB9\ -69A99E284B184F50A14B068A1FC5009D9B298DBE92239572A7627AAC02ABE8F3\ -E3B473417F36D4D2505D16B7577F4526C9D94A270A2DFE450D06DA8F6FA95687\ -9A0A55CFE99E742EA555EA477BA3E9B44CCD508C375423611AF92E55345DC215\ -779B2D5119EBA49C71D49B9FE3F1569FA24E5CA3E332D042422A8B8158D3EC66\ -A80012976F31FFDF305F0C9C5E:\ -9DA6652BA890007A01126F0F65970ABF3474C7659C6C80B04DA2CA592EDF0F39\ -9601BC0DAD10A0DD6E316A286E2338EF - -08D0FFDE3A6E4EF65608EA672E4830C12943D7187CCFF08F4941CFC13E545F3B\ -9C7AD5EEBBE2B01642B486CAF855C2C73F58C1E4E3391DA8E2D63D96E15FD849\ -53AE5C231911B00AD6050CD7AAFDAAC9B0F663AE6AAB45519D0F5391A541707D\ -479034E73A6AD805AE3598096AF078F1393301493D663DD71F83869CA27BA508\ -B7E91E81E128C1716DC3ACFE3084B2201E04CF8006617EECF1B640474A5D45CF\ -DE9F4D3EF92D6D055B909892194D8A8218DB6D8203A84261D200D71473D7488F\ -3427416B6896C137D455F231071CACBC86E0415AB88AEC841D96B7B8AF41E05B\ -B461A40645BF176601F1E760DE5F:\ -B94D578DE79A437BEAD951E9AEE912540D0139965CF0142F1FD403534959B75D\ -11E0B2463201B10364B905CF9BAA57B3 - -D782ABB72A5BE3392757BE02D3E45BE6E2099D6F000D042C8A543F50ED6EBC05\ -5A7F133B0DD8E9BC348536EDCAAE2E12EC18E8837DF7A1B3C87EC46D50C241DE\ -E820FD586197552DC20BEEA50F445A07A38F1768A39E2B2FF05DDDEDF751F1DE\ -F612D2E4D810DAA3A0CC904516F9A43AF660315385178A529E51F8AAE141808C\ -8BC5D7B60CAC26BB984AC1890D0436EF780426C547E94A7B08F01ACBFC4A3825\ -EAE04F520A9016F2FB8BF5165ED12736FC71E36A49A73614739EAA3EC834069B\ -1B40F1350C2B3AB885C02C640B9F7686ED5F99527E41CFCD796FE4C256C91731\ -86C226169FF257954EBDA81C0E5F99:\ -B85F56F69D3BE57A1C2AA553F90BC1B089E8F1C561881BE64630EA6BA4DD3BD5\ -301512313A18C26DF3E97E056A59EDCF - -5FCE8109A358570E40983E1184E541833BB9091E280F258CFB144387B05D190E\ -431CB19BAA67273BA0C58ABE91308E1844DCD0B3678BAA42F335F2FA05267A02\ -40B3C718A5942B3B3E3BFA98A55C25A1466E8D7A603722CB2BBF03AFA54CD769\ -A99F310735EE5A05DAE2C22D397BD95635F58C48A67F90E1B73AAFCD3F82117F\ -0166657838691005B18DA6F341D6E90FC1CDB352B30FAE45D348294E501B6325\ -2DE14740F2B85AE5299DDEC3172DE8B6D0BA219A20A23BB5E10FF434D39DB3F5\ -83305E9F5C039D98569E377B75A70AB837D1DF269B8A4B566F40BB91B577455F\ -D3C356C914FA06B9A7CE24C7317A172D:\ -7D9508FB795811EA1442DB3ECB779CB0494736E7123B252CF88A9A0B50D57CF0\ -0B87A6C4FAC27F821CD55979D586AA39 - -6172F1971A6E1E4E6170AFBAD95D5FEC99BF69B24B674BC17DD78011615E502D\ -E6F56B86B1A71D3F4348087218AC7B7D09302993BE272E4A591968AEF18A1262\ -D665610D1070EE91CC8DA36E1F841A69A7A682C580E836941D21D909A3AFC1F0\ -B963E1CA5AB193E124A1A53DF1C587470E5881FB54DAE1B0D840F0C8F9D1B04C\ -645BA1041C7D8DBF22030A623AA15638B3D99A2C400FF76F3252079AF88D2B37\ -F35EE66C1AD7801A28D3D388AC450B97D5F0F79E4541755356B3B1A5696B023F\ -39AB7AB5F28DF4202936BC97393B93BC915CB159EA1BD7A0A414CB4B7A1AC3AF\ -68F50D79F0C9C7314E750F7D02FAA58BFA:\ -AFD94B061F354B04D0718326D7E10A6B598CE31CC39C52D265D6CF04E4D9EE75\ -CC200149367600312E7514A62F0F0964 - -5668ECD99DFBE215C4118398AC9C9EAF1A1433FAB4CCDD3968064752B625EA94\ -4731F75D48A27D047D67547F14DD0FFAA55FA5E29F7AF0D161D85EAFC4F2029B\ -717C918EAB9D304543290BDBA7158B68020C0BA4E079BC95B5BC0FC044A992B9\ -4B4CCD3BD66D0EABB5DBBAB904D62E00752C4E3B0091D773BCF4C14B4377DA3E\ -FFF824B1CB2FA01B32D1E46C909E626ED2DAE920F4C7DBEB635BC754FACBD8D4\ -9BEBA3F23C1C41CCBFCD0EE0C114E69737F5597C0BF1D859F0C767E18002AE8E\ -39C26261FFDE2920D3D0BAF0E906138696CFE5B7E32B600F45DF3AAA39932F3A\ -7DF95B60FA8712A2271FCAF3911CE7B511B1:\ -EC63CE9DD979FCD132244BE11A45DDB1D00FC8F80160B8CC456F5C5EB89E0C3F\ -675B28B92DD9E6CEFAA5DA57B4908646 - -03D625488354DF30E3F875A68EDFCF340E8366A8E1AB67F9D5C5486A96829DFA\ -C0578289082B2A62117E1CF418B43B90E0ADC881FC6AE8105C888E9ECD21AEA1\ -C9AE1A4038DFD17378FED71D02AE492087D7CDCD98F746855227967CB1AB4714\ -261EE3BEAD3F4DB118329D3EBEF4BC48A875C19BA763966DA0EBEA800E01B2F5\ -0B00E9DD4CACA6DCB314D00184EF71EA2391D760C950710DB4A70F9212FFC548\ -61F9DC752CE18867B8AD0C48DF8466EF7231E7AC567F0EB55099E622EBB86CB2\ -37520190A61C66AD34F1F4E289CB3282AE3EAAC6152ED24D2C92BAE5A7658252\ -A53C49B7B02DFE54FDB2E90074B6CF310AC661:\ -86301FE98F3FFABB0CB0085AAA1EC61BCAD6171459A8623BB780EC32E46F5264\ -9946A421EBFC7DE90F0E74EC787A3E03 - -2EDC282FFB90B97118DD03AAA03B145F363905E3CBD2D50ECD692B37BF000185\ -C651D3E9726C690D3773EC1E48510E42B17742B0B0377E7DE6B8F55E00A8A4DB\ -4740CEE6DB0830529DD19617501DC1E9359AA3BCF147E0A76B3AB70C4984C13E\ -339E6806BB35E683AF8527093670859F3D8A0FC7D493BCBA6BB12B5F65E71E70\ -5CA5D6C948D66ED3D730B26DB395B3447737C26FAD089AA0AD0E306CB28BF0AC\ -F106F89AF3745F0EC72D534968CCA543CD2CA50C94B1456743254E358C1317C0\ -7A07BF2B0ECA438A709367FAFC89A57239028FC5FECFD53B8EF958EF10EE0608\ -B7F5CB9923AD97058EC067700CC746C127A61EE3:\ -DDF8D547BBA4F43D8864CAEF1B1BED77AA12E41F6886A5D8758C654B7EC1FA5B\ -0E77BA4E7680C7830DA161E14CB1E65C - -90B28A6AA1FE533915BCB8E81ED6CACDC10962B7FF82474F845EEB86977600CF\ -70B07BA8E3796141EE340E3FCE842A38A50AFBE90301A3BDCC591F2E7D9DE53E\ -495525560B908C892439990A2CA2679C5539FFDF636777AD9C1CDEF809CDA9E8\ -DCDB451ABB9E9C17EFA4379ABD24B182BD981CAFC792640A183B61694301D04C\ -5B3EAAD694A6BD4CC06EF5DA8FA23B4FA2A64559C5A68397930079D250C51BCF\ -00E2B16A6C49171433B0AADFD80231276560B80458DD77089B7A1BBCC9E7E4B9\ -F881EACD6C92C4318348A13F4914EB27115A1CFC5D16D7FD94954C3532EFACA2\ -CAB025103B2D02C6FD71DA3A77F417D7932685888A:\ -72953FE4CA34E717E304DC77AFD9DEDE32A8467127B9F78BB0BE6191A7ECD051\ -B7DAE091B1758907DDA3B1D25C0C5883 - -2969447D175490F2AA9BB055014DBEF2E6854C95F8D60950BFE8C0BE8DE254C2\ -6B2D31B9E4DE9C68C9ADF49E4EE9B1C2850967F29F5D08738483B417BB96B2A5\ -6F0C8ACA632B552059C59AAC3F61F7B45C966B75F1D9931FF4E596406378CEE9\ -1AAA726A3A84C33F37E9CDBE626B5745A0B06064A8A8D56E53AAF102D23DD9DF\ -0A3FDF7A638509A6761A33FA42FA8DDBD8E16159C93008B53765019C3F0E9F10\ -B144CE2AC57F5D7297F9C9949E4FF68B70D339F87501CE8550B772F32C6DA8AD\ -2CE2100A895D8B08FA1EEAD7C376B407709703C510B50F87E73E43F8E7348F87\ -C3832A547EF2BBE5799ABEDCF5E1F372EA809233F006:\ -F36A9EE455066E562FB675F399D9DCC6BCCF68FD1B0BA9F7DCC1EDFAC1F1E234\ -CB67B5A0F770E55435F75F9EC84A9151 - -721645633A44A2C78B19024EAECF58575AB23C27190833C26875DC0F0D50B46A\ -EA9C343D82EA7D5B3E50EC700545C615DAEAEA64726A0F05607576DCD396D812\ -B03FB6551C641087856D050B10E6A4D5577B82A98AFB89CEE8594C9DC19E79FE\ -FF0382FCFD127F1B803A4B9946F4AC9A4378E1E6E041B1389A53E3450CD32D9D\ -2941B0CBABDB50DA8EA2513145164C3AB6BCBD251C448D2D4B087AC57A59C228\ -5D564F16DA4ED5E607ED979592146FFB0EF3F3DB308FB342DF5EB5924A48256F\ -C763141A278814C82D6D6348577545870AE3A83C7230AC02A1540FE1798F7EF0\ -9E335A865A2AE0949B21E4F748FB8A51F44750E213A8FB:\ -37368F5A074DA0E5075845F76B1AC5858DF793EEF88A854C7DAFE3B90720707A\ -145A5DCB0D9266C6148204CE693C5432 - -6B860D39725A14B498BB714574B4D37CA787404768F64C648B1751B353AC92BA\ -C2C3A28EA909FDF0423336401A02E63EC24325300D823B6864BB701F9D7C7A1F\ -8EC9D0AE3584AA6DD62EA1997CD831B4BABD9A4DA50932D4EFDA745C61E41308\ -90E156AEE6113716DAF95764222A91187DB2EFFEA49D5D0596102D619BD26A61\ -6BBFDA8335505FBB0D90B4C180D1A2335B91538E1668F9F9642790B4E55F9CAB\ -0FE2BDD2935D001EE6419ABAB5457880D0DBFF20ED8758F4C20FE759EFB33141\ -CF0E892587FE8187E5FBC57786B7E8B089612C936DFC03D27EFBBE7C8673F160\ -6BD51D5FF386F4A7AB68EDF59F385EB1291F117BFE717399:\ -DAAC83B0C5C8F8FC3BCCD259C27D964673B4DCA790B4B63899E1B6C19CC291FE\ -6F88376281E0FA320ADFADC82A8FF4EF - -6A01830AF3889A25183244DECB508BD01253D5B508AB490D3124AFBF42626B2E\ -70894E9B562B288D0A2450CFACF14A0DDAE5C04716E5A0082C33981F6037D23D\ -5E045EE1EF2283FB8B6378A914C5D9441627A722C282FF452E25A7EA608D69CE\ -E4393A0725D17963D0342684F255496D8A18C2961145315130549311FC07F031\ -2FB78E6077334F87EAA873BEE8AA95698996EB21375EB2B4EF53C14401207DEB\ -4568398E5DD9A7CF97E8C9663E23334B46912F8344C19EFCF8C2BA6F04325F1A\ -27E062B62A58D0766FC6DB4D2C6A1928604B0175D872D16B7908EBC041761187\ -CC785526C2A3873FEAC3A642BB39F5351550AF9770C328AF7B:\ -357258FA6579867CC0089C8B3C93CE10677A5AD4DBEEE2A27CEA90317ACEBE72\ -54505468875BCB334E0B6F70CFE59082 - -B3C5E74B69933C2533106C563B4CA20238F2B6E675E8681E34A389894785BDAD\ -E59652D4A73D80A5C85BD454FD1E9FFDAD1C3815F5038E9EF432AAC5C3C4FE84\ -0CC370CF86580A6011778BBEDAF511A51B56D1A2EB68394AA299E26DA9ADA6A2\ -F39B9FAFF7FBA457689B9C1A577B2A1E505FDF75C7A0A64B1DF81B3A356001BF\ -0DF4E02A1FC59F651C9D585EC6224BB279C6BEBA2966E8882D68376081B98746\ -8E7AED1EF90EBD090AE825795CDCA1B4F09A979C8DFC21A48D8A53CDBB26C4DB\ -547FC06EFE2F9850EDD2685A4661CB4911F165D4B63EF25B87D0A96D3DFF6AB0\ -758999AAD214D07BD4F133A6734FDE445FE474711B69A98F7E2B:\ -06E9F892A2716DE18DAC1B8946604473ADE060AFC8CB1287E389994076FF92B4\ -BAE3D84854470ED061AE31A97B7D0DCF - -83AF34279CCB5430FEBEC07A81950D30F4B66F484826AFEE7456F0071A51E1BB\ -C55570B5CC7EC6F9309C17BF5BEFDD7C6BA6E968CF218A2B34BD5CF927AB846E\ -38A40BBD81759E9E33381016A755F699DF35D660007B5EADF292FEEFB735207E\ -BF70B5BD17834F7BFA0E16CB219AD4AF524AB1EA37334AA66435E5D397FC0A06\ -5C411EBBCE32C240B90476D307CE802EC82C1C49BC1BEC48C0675EC2A6C6F3ED\ -3E5B741D13437095707C565E10D8A20B8C20468FF9514FCF31B4249CD82DCEE5\ -8C0A2AF538B291A87E3390D737191A07484A5D3F3FB8C8F15CE056E5E5F8FEBE\ -5E1FB59D6740980AA06CA8A0C20F5712B4CDE5D032E92AB89F0AE1:\ -64047790B1656E78953B981B1BBFAEAF9D2B1B8953AB0304791238393F3372C6\ -373A1E087B57BE48806229DB73E1B1A4 - -A7ED84749CCC56BB1DFBA57119D279D412B8A986886D810F067AF349E8749E9E\ -A746A60B03742636C464FC1EE233ACC52C1983914692B64309EDFDF29F1AB912\ -EC3E8DA074D3F1D231511F5756F0B6EEAD3E89A6A88FE330A10FACE267BFFBFC\ -3E3090C7FD9A850561F363AD75EA881E7244F80FF55802D5EF7A1A4E7B89FCFA\ -80F16DF54D1B056EE637E6964B9E0FFD15B6196BDD7DB270C56B47251485348E\ -49813B4EB9ED122A01B3EA45AD5E1A929DF61D5C0F3E77E1FDC356B63883A60E\ -9CBB9FC3E00C2F32DBD469659883F690C6772E335F617BC33F161D6F6984252E\ -E12E62B6000AC5231E0C9BC65BE223D8DFD94C5004A101AF9FD6C0FB:\ -9CA6F39087E6457E12C969D41C8BD66BDD6990CE23D355669E7606B9203D2168\ -11237955DF6739495D94F0C48CE02845 - -A6FE30DCFCDA1A329E82AB50E32B5F50EB25C873C5D2305860A835AECEE6264A\ -A36A47429922C4B8B3AFD00DA16035830EDB897831C4E7B00F2C23FC0B15FDC3\ -0D85FB70C30C431C638E1A25B51CAF1D7E8B050B7F89BFB30F59F0F20FECFF3D\ -639ABC4255B3868FC45DD81E47EB12AB40F2AAC735DF5D1DC1AD997CEFC4D836\ -B854CEE9AC02900036F3867FE0D84AFFF37BDE3308C2206C62C4743375094108\ -877C73B87B2546FE05EA137BEDFC06A2796274099A0D554DA8F7D7223A48CBF3\ -1B7DECAA1EBC8B145763E3673168C1B1B715C1CD99ECD3DDB238B06049885ECA\ -D9347C2436DFF32C771F34A38587A44A82C5D3D137A03CAA27E66C8FF6:\ -FE99F19C79A89080E2FF90981DDE91994542D4BCC1276A82D1A2E53850341B9A\ -D5422CEAB81E69DAE5E91DC5FF60E1A3 - -83167FF53704C3AA19E9FB3303539759C46DD4091A52DDAE9AD86408B6933598\ -9E61414BC20AB4D01220E35241EFF5C9522B079FBA597674C8D716FE441E5661\ -10B6211531CECCF8FD06BC8E511D00785E57788ED9A1C5C73524F01830D2E114\ -8C92D0EDC97113E3B7B5CD3049627ABDB8B39DD4D6890E0EE91993F92B03354A\ -88F52251C546E64434D9C3D74544F23FB93E5A2D2F1FB15545B4E1367C97335B\ -0291944C8B730AD3D4789273FA44FB98D78A36C3C3764ABEEAC7C569C1E43A35\ -2E5B770C3504F87090DEE075A1C4C85C0C39CF421BDCC615F9EFF6CB4FE64680\ -04AECE5F30E1ECC6DB22AD9939BB2B0CCC96521DFBF4AE008B5B46BC006E:\ -92E1D994FEA2FD500A4B7F5139119058A5B70EF6174E553F12FE7BCFCA24B00A\ -28391E3761BDCBA3FD6B033C1286E28E - -3A3A819C48EFDE2AD914FBF00E18AB6BC4F14513AB27D0C178A188B61431E7F5\ -623CB66B23346775D386B50E982C493ADBBFC54B9A3CD383382336A1A0B2150A\ -15358F336D03AE18F666C7573D55C4FD181C29E6CCFDE63EA35F0ADF5885CFC0\ -A3D84A2B2E4DD24496DB789E663170CEF74798AA1BBCD4574EA0BBA40489D764\ -B2F83AADC66B148B4A0CD95246C127D5871C4F11418690A5DDF01246A0C80A43\ -C70088B6183639DCFDA4125BD113A8F49EE23ED306FAAC576C3FB0C1E256671D\ -817FC2534A52F5B439F72E424DE376F4C565CCA82307DD9EF76DA5B7C4EB7E08\ -5172E328807C02D011FFBF33785378D79DC266F6A5BE6BB0E4A92ECEEBAEB1:\ -6BFF1C8405A3FE594E360E3BCCEA1EBCD509310DC79B9E45C263783D7A5DD662\ -C6789B18BD567DBDDA1554F5BEE6A860 - -724627916C50338643E6996F07877EAFD96BDF01DA7E991D4155B9BE1295EA7D\ -21C9391F4C4A41C75F77E5D27389253393725F1427F57914B273AB862B9E31DA\ -BCE506E558720520D33352D119F699E784F9E548FF91BC35CA14704212870982\ -0D69A8287EA3257857615EB0321270E94B84F446942765CE882B191FAEE7E1C8\ -7E0F0BD4E0CD8A927703524B559B769CA4ECE1F6DBF313FDCF67C572EC4185C1\ -A88E86EC11B6454B371980020F19633B6B95BD280E4FBCB0161E1A82470320CE\ -C6ECFA25AC73D09F1536F286D3F9DACAFB2CD1D0CE72D64D197F5C7520B3CCB2\ -FD74EB72664BA93853EF41EABF52F015DD591500D018DD162815CC993595B195:\ -86B7CC3544E5F91F12A910A56ADDD6B5E7DC7DF51FAECC2FC515EE669B5912DD\ -116AA13052569EAB597CECA922B1ED32 - -3139840B8AD4BCD39092916FD9D01798FF5AA1E48F34702C72DFE74B12E98A11\ -4E318CDD2D47A9C320FFF908A8DBC2A5B1D87267C8E983829861A567558B37B2\ -92D4575E200DE9F1DE45755FAFF9EFAE34964E4336C259F1E66599A7C904EC02\ -539F1A8EAB8706E0B4F48F72FEC2794909EE4A7B092D6061C74481C9E21B9332\ -DC7C6E482D7F9CC3210B38A6F88F7918C2D8C55E64A428CE2B68FD07AB572A8B\ -0A2388664F99489F04EB54DF1376271810E0E7BCE396F52807710E0DEA94EB49\ -F4B367271260C3456B9818FC7A72234E6BF2205FF6A36546205015EBD7D8C252\ -7AA430F58E0E8AC97A7B6B793CD403D517D66295F37A34D0B7D2FA7BC345AC04\ -CA1E266480DEEC39F5C88641C9DC0BD1358158FDECDD96685BBBB5C1FE5EA89D\ -2CB4A9D5D12BB8C893281FF38E87D6B4841F0650092D447E013F20EA934E18:\ -E0100D6A02568B244DF7EA67F280AE5D956BE63836B02BBFE8875D6DBED16465\ -582E5B4DA7A67602508C679F0A50EA2D - -023D91AC532601C7CA3942D62827566D9268BB4276FCAA1AE927693A69616526\ -76DBA09219A01B3D5ADFA12547A946E78F3C5C62DD880B02D2EEEB4B96636529\ -C6B01120B23EFC49CCFB36B8497CD19767B53710A636683BC5E0E5C9534CFC00\ -4691E87D1BEE39B86B953572927BD668620EAB87836D9F3F8F28ACE41150776C\ -0BC6657178EBF297FE1F7214EDD9F215FFB491B681B06AC2032D35E6FDF832A8\ -B06056DA70D77F1E9B4D26AE712D8523C86F79250718405F91B0A87C725F2D3F\ -52088965F887D8CF87206DFDE422386E58EDDA34DDE2783B3049B86917B46280\ -27A05D4D1F429D2B49C4B1C898DDDCB82F343E145596DE11A54182F39F4718EC\ -AE8F506BD9739F5CD5D5686D7FEFC834514CD1B2C91C33B381B45E2E5335D7A8\ -720A8F17AFC8C2CB2BD88B14AA2DCA099B00AA575D0A0CCF099CDEC4870FB710\ -D2680E60C48BFC291FF0CEF2EEBF9B36902E9FBA8C889BF6B4B9F5CE53A19B0D\ -9399CD19D61BD08C0C2EC25E099959848E6A550CA7137B63F43138D7B651:\ -AE559C732E55C521B7731E9C8065931B93AB5EF16728E3F3C738E7D507B18489\ -388CC3CA7BA01AF672C22CB767C295D2 - -20FF454369A5D05B81A78F3DB05819FEA9B08C2384F75CB0AB6AA115DD690DA3\ -131874A1CA8F708AD1519EA952C1E249CB540D196392C79E87755424FEE7C890\ -808C562722359EEA52E8A12FBBB969DD7961D2BA52037493755A5FA04F0D50A1\ -AA26C9B44148C0D3B94D1C4A59A31ACA15AE8BD44ACB7833D8E91C4B86FA3135\ -A423387B8151B4133ED23F6D7187B50EC2204AD901AD74D396E44274E0ECAFAA\ -E17B3B9085E22260B35CA53B15CC52ABBA758AF6798FBD04ECEECED648F3AF4F\ -DB3DED7557A9A5CFB7382612A8A8F3F45947D1A29CE29072928EC193CA25D510\ -71BD5E1984ECF402F306EA762F0F25282F5296D997658BE3F983696FFA6D095C\ -6369B4DAF79E9A5D3136229128F8EB63C12B9E9FA78AFF7A3E9E19A62022493C\ -D136DEFBB5BB7BA1B938F367FD2F63EB5CA76C0B0FF21B9E36C3F07230CF3C30\ -74E5DA587040A76975D7E39F4494ACE5486FCBF380AB7558C4FE89656335B82E\ -4DB8659509EAB46A19613126E594042732DD4C411F41AA8CDEAC71C0FB40A94E\ -6DA558C05E77B6182806F26D9AFDF3DA00C69419222C8186A6EFAD600B410E6C\ -E2F2A797E49DC1F135319801FA6F396B06F975E2A190A023E474B618E7:\ -5975FA4BCEFC79FADC79CCF1254BBA9EAC252E24C7DEC7EB8972D265EFAD3F6C\ -F648C49DFFF5453AD27D62FF867A2F03 - -4FBDC596508D24A2A0010E140980B809FB9C6D55EC75125891DD985D37665BD8\ -0F9BEB6A50207588ABF3CEEE8C77CD8A5AD48A9E0AA074ED388738362496D2FB\ -2C87543BB3349EA64997CE3E7B424EA92D122F57DBB0855A803058437FE08AFB\ -0C8B5E7179B9044BBF4D81A7163B3139E30888B536B0F957EFF99A7162F4CA5A\ -A756A4A982DFADBF31EF255083C4B5C6C1B99A107D7D3AFFFDB89147C2CC4C9A\ -2643F478E5E2D393AEA37B4C7CB4B5E97DADCF16B6B50AAE0F3B549ECE47746D\ -B6CE6F67DD4406CD4E75595D5103D13F9DFA79372924D328F8DD1FCBEB5A8E2E\ -8BF4C76DE08E3FC46AA021F989C49329C7ACAC5A688556D7BCBCB2A5D4BE69D3\ -284E9C40EC4838EE8592120CE20A0B635ECADAA84FD5690509F54F77E35A417C\ -584648BC9839B974E07BFAB0038E90295D0B13902530A830D1C2BDD53F1F9C9F\ -AED43CA4EED0A8DD761BC7EDBDDA28A287C60CD42AF5F9C758E5C7250231C09A\ -582563689AFC65E2B79A7A2B68200667752E9101746F03184E2399E4ED8835CB\ -8E9AE90E296AF220AE234259FE0BD0BCC60F7A4A5FF3F70C5ED4DE9C8C519A10\ -E962F673C82C5E9351786A8A3BFD570031857BD4C87F4FCA31ED4D50E14F2107\ -DA02CB5058700B74EA241A8B41D78461658F1B2B90BFD84A4C2C9D6543861AB3\ -C56451757DCFB9BA60333488DBDD02D601B41AAE317CA7474EB6E6DD:\ -D8A18FDF0DBC4D9DC9A399EED833D258BDF4E06C50C12550B50297DDA05784AE\ -E91F339766021B2CA6BE1577823D920B - -D1890B4704E169C28E44DDF62A1091450404910539FC2DAEB26E8ACF4533B024\ -E5215C2D02820DD8FB2CFC1743955CBACFF0F8F35DFBB5E3F942F36247F68211\ -D518F3F601AAE12A1CDC000BAB43D4C973F287E80741DD1FCF6C34F2E6B4B6C3\ -13D01C4FF3CBF9166F26946F18EF2D58271BA9233F09A6B77BFD4F48B36EB3D7\ -3D1133C4F842A7DC3907F680B0B773242C11E3DD973A44327EA7CEA9C0F8E07D\ -682B6651E506B587559FE01ED721000BAF570A16FBDD9EA29FA3DEF4BE912058\ -321A8B720C5C102E48A6E7ED6F8838D400DD57D06EEDBCD15323F86D855C94B2\ -1E41B14EC9E1BBC8019211FD88138C91F9ABBD9BB3914D26C1DDC21673D2D512\ -63B39D66E741D924CF2B192C5D2C1A140126A3D64A2C77BE6C2C6EBE8599978A\ -E90BD36CBB9AF64D078910C4094AB3BF399C34F2AB8EF843E9FE1BF88BF443BA\ -21E4377E5F49C07FD9653B526E14562237F02D11B904BCA6AC31AE721A43E3C4\ -910A24AF6F4D80C031C109FC0FE49F15274BCA92BDA04C3B4196C192F6CE489C\ -63A806ACFC895AB52CAD657C1783B528E12D0ED856E1F8FC91F2AAFDFA0A9249\ -8D68530772EE73B359FCF1418D1096C46B34DCF90E5B468BBB2970BECBD70089\ -CFB039D64CC50FFF5EEF26384D34F24515A6558B06A1FDD88F1050C5BD78CC6E\ -D83D4C2B0E882AEBCF84AFB0430D0BF09F2FB42B8B4589158093A7709AAE75A7\ -90910E211EE1333FFB6FD80778DA3BF73858978E9DD647978841B18001DBAAEA\ -43CA0C0A03DBB9BCF30CE76A6F4B2CF2A9B6531B3E4051E7E05090CD421BC66C\ -4731E7122AD129FC42DEDC83BB460E3F889992FBD3CA072686E56B72C720FBC9\ -8D723EF7F247286F77CCDDC728738E941B1A74D4F16671C21FDD5643A115DDBC\ -B88EE7EC67EA66FD2BCE718DF6E085D4B5FC71A72696636A8F7B3A68AFA51A89\ -6771FAAA7F1F827430AC5E8089DBC0D4175E1B22A057BC5F1724EADC1A41E78F\ -A3ACAA8B97E5F2E19EF9D59AE12B04E7F0E8A621E098A66910E2A5ED2102B824\ -CD3EA044A854F1CD0B33E61E7F737414B2953549F25DD34D19AA1981DE7CD564\ -9FF6C6364A4F25312EF62395A747AB88AAD722C05AEC40DEEA8EEE5E779EF458\ -A68840BC6BD5D29AD40F98B3AE010B6213372ABB7BB8B8:\ -96AC67D6C90BE81E7F5EF052C4CDE52C891F48FE9E387758DA5DCDF13A07F75D\ -E17FC03C6137999AB1DE0CE90E15EAD5 - -4FA3DF1DEA75AD4B9C379206A95FED930000482E5B683FD2B17DC8E7D5C4BC1B\ -73186CCC13C9FF2DD09FC1D4F68034D120E84CA73A00B71A3B46D1EFC6FF88CF\ -2EDA65810B098CC5E651D9CF064E87076D5A871849F3B405D3D58EF5B1F10520\ -A9FB4FC84A81A87B13DBFBF9D8674943E28C257E46D8AD7BE1785F1DC7C9B1BD\ -574AD1DDA48F0255C853D2490BD3D63DA22A8369CFD02594999A2EF443308FB8\ -298266A11EFA177102C75DC674E89FC9DCC1A0D3C863BC26141102175D2678EB\ -6E13D90BBD9A5EB89AE8C0CB47D7F340D3D32042A2762BC9BF2B40EB40E87FB4\ -2610FE7E357051F01494704FBFF73321B47301A0799B7EE3FE5E62200F397A61\ -ED4509A62F7106ED0EFB0ABD6AE9E4A1FE9B02C092DCDC75015CF602F3B9A898\ -8B609E6C0D1C5C3E219FF57875C2EF01615F89447EA602DFC94EEC17A398C014\ -BD346691FE209A002771DC8164422CD166AFB457A8B3071282178A3EBD201D9B\ -07B27E711E7EE7D33AA5210ED4E4E92486775D14A6CED092E34A7AC826709399\ -48FEC149F9C018FCAAD3FC597D315713F44FC5E1725F448ECAED40E8D841BD02\ -F1E81C019B08F99412E360C0BD378391C67D964B47F50C26F0A483ED66402361\ -6B0FC9AFE43620DBE9CCFE070EF295C049EAC754C2123130C6B2C0232F6403AA\ -7F0DC35A5999BF95D34AD612234C6289277ADB60E4F72EC2DF570F05395B3BE8\ -A0A3C78B732821AA08927C524E15D65F66A3DB8C1C96FB70BC0686AAC310051F\ -469FC5EF880C0F66947C1C328F97684EA24CBE63BAED8D114F40507C2901034E\ -6AB3893F366D53F1CFCA309309218CABCECA4722FA9CCBC7249B87C12FF8397F\ -40487EB00082E7F551D27E301C3BC7B5389F7042534BF7E692DFEA4DA24F7C34\ -B8D2FF145F54B517FC97134EC5AC2CB925C508D7A6BD01FE7B764648274972BF\ -08560D30802E0EB7EDCC57AF4797BBF92E8688268606B0F1BC901FCC22136281\ -665EC16393FA9601C4FBDB18CD1D1EE382BC07973903E91FFA87399D1141D49F\ -4F0C064ACF3AC9897891DF10BCA0116F2C3FEF180FE6A8E937C478F2EF293AE9\ -186DCB1F76B6E48101DF64E57EA7C64C5C0025E221C8F5CBA5CC92D9CEC62814\ -0996B26D17F439B780F59A999301122F82D0495F8AB5AE1EA5790F45E992DFE0\ -0D5F82A7FF1354AEFDCEFC0D2D1731D22FA2B75AFD4FDA25AB194055FA962838\ -1055247C8C7587D22E73C60136C4282452D47AE03AA035FEBC26FCCD42A1CB79\ -CF866DB6418A49FD8261E877DDBB839CC39514DDB87A8A40D795532626FEA4A4\ -C35D13E028F9ED1BC09B06BE999B8DDD2258AA0596BCBBF72AF67E10BEDD58D5\ -99B8D577A583D676BF5561F80CE5E9528729A92DF578FE75DBC70474B75747A8\ -D55DE70E57BDD62D4344DC2115ED4DD62F1FC98BFA1E7421FC0700025C46D0ED\ -1BEF35C3B778563211B9FA9E8BA4BBCBF01C2FB626AB7EF325CE9F468DF2CACD\ -B178D36557CD85D542C067C289E926C1EA2F20ABD329E984168BB6DEF1DDCCF2\ -14DCB6A53AFD462F0E7E7A19E8C88F049244125A6D7DD41E58BC9B2FF7FA2478\ -DF76AF73090CB1AB59E388BA20E2C297C967737A1AF61793B68ECD7439444C48\ -E28E2D09C48FADA5E0D1D15E5B340A52F8B3B854CCA479F0A598445E14F53B3B\ -A36891050C79673DF3E2B5825C955A29E5C9A22F3991D0AA785718CFEA1D2385\ -F8E47E4A75ACBC7988D0558D541D71C4E6C5F1CB15B60CEA0C34A67BBCE105D7\ -A896025E0254DE7D7AF724C9027D44B8642192A08AB8E1EF3046DDA6014DF7F4\ -C9E63C635E48AB2E70B640D480998EC9357E665F99D76FE5529EF23C1BDFE017\ -C3A66CD4EB2DDB42EF85EA0CD65534:\ -3CB4482B4F5FA15B8C240ADE9D99534E8D914A4C01290EF4B9417597431EDB1E\ -CE456DC60B26FBD9C88DB5802D1CDCD9 - -523DE8B1F4CBB65E81FF0B6CCD6EB8EF0A0F0A691ACAF4A77F25ACD2D66AD4B3\ -EFD25BE70308853C094412A518A32020E3020A9F6AB32F0CD60EC0D7A194917D\ -6C457B168A54A4B46F7B0D0C71BD61CD202F4C718776A701E0770B0EFA054187\ -70F98E4E79CD066366FB3300E8BE359A98B82B764BC2FBBF59C7E8F94A157B01\ -C6C7577B1428138CD422BC47330F8ED99F4C0AAB0D984287445539839389EE08\ -D6345108AF26ADED0EC1D7BE774CFB8C5205DFE07CF6CAF8C1AFE37C7A2E4FE6\ -013B93EB2463DE4E0971C7178D6A76B16A0E8960C984CE8BBE71B3B466EDF044\ -5B835F09414D01F14C7B6167FF78FF118127BBD5F812C27FACD57B3B120E2BCF\ -E87315C7A92B82EF5D50CA14A7174D1BEA7E056523E055A6AE42EA3765094E55\ -44E5ED003C989C2F98F38A17E3DDA74DBAF9C669A319638A2698B0E4A611480D\ -8AD3CF016792ECD1034925F42B9811A7214D623D047ABCA31997DDEB03275F80\ -DD21F40DDC80616E7AD3D481E8EBC0A1A6A398E16A78369215541ED10B75671A\ -DEB1AAE6E11142A1CF665FC1B7332DFBB0E10C21A2B48F78E57319AC9C58DFA8\ -B1C2548E2979EF1ACCFEB215AFCD6C2C1B46FE97DD491758378330EFFC728366\ -1D2CB84FA05281E9E517408508D24D042E7B9BCD34DB87CE972E4CBCDB98615F\ -B93093369DFEDC782F44BCD03E81CF93051318B2401FF29F753A264BDA65AF19\ -9E3FCBB8B5D39C838A67D6C7A3DB046DC56C323DDBB5340CBC229E47CFF8C9D2\ -9B7A49AC0EC8C1440AE498C7D150EF91C29BEA7DF3EFCC2871A13A1D72D139CB\ -4603D9FFFE85F6DDD544850EF63C3944FB35DBC00D4308CEAA6394B6E23F650D\ -323F8F7EF50DDB68F1486EABF989BF44451F620EC9485C0B52D1415D3C909A2C\ -FBE9D77DB19D069D33BAEE4D77292E63FCBF65C1EBA24BFFDDEFE95211EF0AAF\ -8ABFDA9F94445E582976F986F5382CB669506AF2B4A5A0C43000A3C72C5CA4AA\ -CDC9D3D39FC5C492A393B6C341B86DACBBF6BA8B465100CC683EDB2D9B9F83ED\ -F9C6A32645F51CC79ADC22A52A007BAACA618BE35E356D1FD1CFBDA73F1ED092\ -53039DEF609450FD2D5943B9CD49CBD52A318EE3510D7CF3FD8FB388AC6CB9C6\ -EEFEF3D3CAD8501B91CC04A888D33E16D6A4C9666F5F5F3B257193F2B46DEDDE\ -11842909D8C48ADE57775B0B272E2DC9CEF1A083EB2CE58F4D1F211922FD6ADE\ -D1B82FE6F5B11251CD396E5A3666ED9626036E4E356231C146BBA0A91AFD3648\ -EB7BFE0B9C14F15AF2F92309826F468945CAD0AC422DE3D6A773B76178422107\ -CE0270E7F580B5CCEBA82CA0184AAFA8341141E65E39859885768FBC5CE63B96\ -5A0604B659E71D9DA2C7A43646088D8071D76926163AAFC69E25355BB0A222B7\ -B2DA9F0A20C021ADC462E905A9C3BF31C16D87FBEC3F014F3957A720F1432E17\ -41553092052FB58A198640479ABCAA51B104CC93E2636E1460643EA812BD44E8\ -19C2166EB6B349BA5BDEBAD59078910B5C22A56F004B8D9E4B1224D8D204B48A\ -BE7355548A402736C5CB110F3A1476ED631FF168F4F3EFD89B38DE4751536548\ -647523D334FAD7CC2D142973F2DB3C1FE08FC5CF83F9F2BD2DAA524B37864816\ -AF29EE05951FA09D1C51D9D14EE4F72FD7BBF18B1A724FF5A0958A063947C430\ -142AD2356E4400AAECA442E163372A8F1CD36E2DB988E7781165E5D4E7074ACE\ -40858E8370E883694AF09977704347FB735C8717C42BC4EEEB2AAA50DFE637C6\ -40909CE379BFB9E2608F88751377038D1669F248178AD580A908D7A1B8DCC7E5\ -3E01801F1E485B5893F103F03E0F53B2B1440BE95644D85AA7F6EB7EDFBB4665\ -2196695EA23C08573397B111FF909025E20C5201293B4D223BF7AA01DE7CB28B\ -94714370434B9588097E2401B62C7A0DEF1FBF89809E810749FD3CE9EC3C07CE\ -4BF4C43DC966429B2BEB4D711FC6C448A12097B36F1E6817EAF4937A983F85D9\ -CF3E62CC1B2AC6AE1EC9EAA8CD8EE2C3322239CFE5DB3D4E8786282E630A7D25\ -9C2FEFECA03031C960A66A71E436A3ED6F2F3CFAB4BD77C660D14205ABF606FE\ -561A346F7D849B69475AC9F6822D80B9A2E56D5D495E4B309B0EA963C9FC5C7E\ -F94B217EE5337989AFBC7107D233A8B362AC27C4F69DF9E191CD65AE97D6EB9E\ -5484EB6F10349575E4CAE51452380151F902415AC9CF42C824EB23C9541D2DA1\ -C26DB85F53CDAFB06A12B8393CD580A8E494EDB6710C720DCAE30832967E33E6\ -303A92B1DF0841D7724284FFD2E00B95C6D623B168D21AC1BD3C675EDA33182A\ -2C22370998DE1E5EB905372CC6EF32D5B765F5C94870DF4842D011603BE4CDB1\ -C227E41EB2F2E8542CD325884FEDC9C5C7BB07A92D20D64B836215C59F162A3D\ -A8BB67D6FC13FEF97CAB6ECB8A29E431A6519A6261C4521CCB90E6E609869E6F\ -E398404AE047F64EC4263566DEFEE66329DD40AC985EB8A08D26529A544891B6\ -F57CC235C63C09057AB6B6ED720EF41A3C9AE65768B43F6DCF4962A103DD93C2\ -13171DC2C9194E43265C689B49331450281A3FEBC618D1AA4D65A135137051FD\ -46B568CE294C89:\ -E17A2A660782BD0EB57B463AFAA745F658BD6D073C56F69DEADB629D4EA93C1C\ -3603392DC6D8414527A962AE3477FD34 - -F5080D4C59E804BF8F34B334CABBCC7D32011BDE3677F4B9069416AC204114CD\ -9DA7A0ED0F4B4D8344416336EEC15553EF526B6DEC267B1242657DD0B508AF81\ -FECF9CFF9C82A6A7A9539814DD7E097615EF15373836B5D2F765CC8D5F82E904\ -49F13AA741D5EE2FE63898E55ACD85116846807606FE1E2E29F98F9940B067D0\ -D1DF01F080211B2EE4B0A30803782A7BC2EAFDC5EBDBA91EB05F7D7DC8E34BF6\ -D44FEC05824F53418F235FB64E899EE147BCB403C8855E94AF378D182D79C3EA\ -F977CB4E9D4A16D990A6C388CEB567B97785E6F2BC6745102B99AE765E960B6B\ -32BAF01E2379CD6ECB74D3E1A56552F5976DFE5C742BC92BE596CA742FFC3D0F\ -A032AC29F9F7C1A5C43BCCA62DF7D9DE35D0C7C179DB2E1AA255CEDCCA55064C\ -2049FEE1AF2CE5EF696ED4BC46B7C55BDD51F2D44C8713FB2475C0B85246AC01\ -03CC3863B7EB026AE076A600313F6FB40A4DF62A2AF81B7E917951EA870ECB31\ -B3401928B5046D9A1E62D14B30FDEBAF262868517318FE17EC3C0D52524F4412\ -0ED8ED3BA70C643300CD0BC70DA72C964A88F52C3A91EC20BFEB5CAEFCD4D9C7\ -685D8407476B5F34676C5EBD1E88A6CFF1C625322F8CD59B9ED60CEFB21F9491\ -B95E72791F7AC7EAA3C16159FE9DF7A989ADD6C2282C47585E11397EDA9F47DF\ -2B40166E03BCDD6186B46C6835118268DDBEF19A28BBADE1BDE0228FFD7E8B3C\ -3C598D89E24B8CDEE79C940254DE26CC6814BA2722E42F7571600B7325E1FF30\ -0251D52A895B8CCBD049B2953B8D231445F68F7C26EC25A4B8695C8AC116F736\ -BE939EDD762C9B4743E463C9B9B2F88E0BC0CE78781CDDC3BCA825ACD463C7CA\ -C2AA6C430BBE820EA94AF9A40B1B5C006E9641A2FFA6E427379E1AD49C81B983\ -20B3431FF0030DC683D61026438BC6A6D34B2C73704D9F62EAEB13ABB3E4B056\ -2B4E0482CD6B2D7AEBC0367EA29A88F4A76F3D76FA1197E1DCA92C8216C84C1A\ -F9B8C78C9E3A7799A4A79A783033B0F5547E8E75E69CF3615AB04EF989FE1A46\ -3B1672C571D50AB56972896E8A50C242F22C7F6E27CA4CA793F627E79608680F\ -5421B28BDD2589F05E65430DF774EE873FCD1234064F7A33CF5A1FA4E368137F\ -F9C1597F1FA0FA36493F20538077669EADFD3B06F788C912C715FB5D334DB6BE\ -D133A8FDC40F5496E66AD63881F0BA3727416715865253DC5290327B515BF68D\ -A188DD5B4B0EAC7CA712CAFA8FCAE0C5503FE58A219182F1C30DA6D0C19CFEE8\ -97B7D837C97996A35F4CA8CF0537A01D17E7DE0CC9C129E4DA0ADAF1FDA85030\ -DF9127BE628263B0624F372C47C3AC87EB945A57F5C732BEEE81A74030017989\ -92F3DC944114FF3D54C4666AC5AC8C98D0D5596CBDEB420665F5EDAAE747D54C\ -F7EDD37B162E372249D135938CF17D174D12D88279CB4C32BD6F018C766DA698\ -3D4EA51D6BD8FF0A9B34E9A93BBDA70CF1B4B867D60A74811FD98D52FAA559B5\ -2C755CB70A76C94BD19654CAE7017CCD70222BF08C5D7AD1F5E4E6344FDB3ABE\ -703452C29A696F39F9826ED8BC510A4A148E5BF8A5DBE6B82D7220164F08011C\ -05AC5159D52CE9D45D758B645BBB248C2D341DBEFA1F8602C5D458A64F38F3B0\ -4DB39089807B6A10E1BB52770B92CE72E2D3BB0C2241CDED35054B84558D1CC0\ -99EF7B2296951951D5B6A22F93BF962AC5EF8FB55EC6CC2B316428EDF12078ED\ -1B66D525D022819CBD489E1BEDB02FFBD507D55F9B5D4E22F6396EA233453754\ -688D20151A09C70044B8A5A9AC033C3C3B847AD833D5C05B33407666EE82F958\ -1DF9034EE15A9CA67D52F1D9B634B84C1B8BA9E515F1F060A5AC5CBAE2DE75F9\ -4E112F7198E239DF08D3103F065627438995026DF511C6E5BFDEEE5667D511D4\ -181850C7C5D179107C1B86D24D5532A88A4149A2810DCAE73731B0E1247281A6\ -FD31613DF6891B4C17B7A6A9AD9B77468254B93F85958AA0F01CEFC10B25169D\ -C46E035D3F24557B4BF0E7D60174219108D916FFDC55E25BFFD9809EFD058E12\ -C14F39C69D8FB73D3EC6458F47F2F8DB901BA76C86550B11B54D0641D4DB3EB0\ -00057DD00F2E511FB7A47E959A4402A3AC5462234B40B184020FCF7A0396C4D0\ -0A987C8741A4537BC17102A5C42AFEAB9F71EA66ED4CBC7B5EE682FF04F56F4B\ -A1EA0BB326C4089930F9E3F3FFA3E06637CCE32113881A06CC3A13837448145C\ -2BD01307A580FDBC385D8F46FB92FFEDBC8918D269DD1871164D4B3E2023441E\ -C8B99C82A5F09821CDDF6B38C9ACC3BF3A38D5628016159588C33EAA29D9463A\ -537C000A16AD8C177DC4CF716E625F46FC4CA8C19FBD8EF320F1D680639195C8\ -B195B0A02738E0665F4190D6287E589CD6DD45B9E8CC23B08E1681BFC6F66B88\ -DE6B091E825EA4BBFBD697E10BC407570AE4F2A3EBE569554639C2B8E051656C\ -C30C837F5A92260EAD1D552B45801B6D28134166796C87F900225CFDC3CC49D7\ -2DFBC18D8D95B1E160ED3CAFD5C3467D48AFF87402CBCB1E1420E3FCB588AA19\ -C8F42753B59DB6FB6A9FDBA127CA806DBA7DD97F2488FC2E438EEF57A4CC85B8\ -8DCFDE76AE1FF61225A1CA8BF4A14F729950322EA681B16D6492902506702DC8\ -F348E4D3AE7FB55FAC1231FDE82091B34F1791B6AE37587B10325F6FF5E23B85\ -5845B86EAE90785B9D10D90A16644D01BB626F343B908A9591F4069B21822CA4\ -ECF985C1E710475F33DF9AF4764CFB0FFE649063775338F15BEA7CFF29F16467\ -8160960A80ED148C9B7FAA58E9139911D3DD9536F69646F718F083DC9029D629\ -4FC4C607688AA75AF350AC2C0B001A157D023D73D86ED8133809FCB9592D1208\ -9CBD7A1BB6BBA882FE227C09A53FF088907CB4BC2FB4B7F62D41D3D397C4FE0A\ -D12BB3964370E21712951C679814D506E738C0201E42181D231136A435AE0397\ -B61CCBC5E8BBEBF8EA77C8BC48BD6211F29248F9D498D818E2B544D28A5E60BA\ -727F32EF4BA2707962230C900076FB764D0ED5CE078C9DB14DE894BBB836C6DE\ -9E83202AE89F9A8D8CB0341E1C81B5FA8B16731B8E231E969C0F1EF95336D4E7\ -3EAD6DA23DE3AD1EB608ACCE4D4D93996DD76EC1F5F2C576F6B3B76E07BD8A81\ -0FF5D88B00FFE48C42700B61CC499336E7FB57AD72FF44FC631C7222C9A3D1AB\ -F6E77B5ED7FE2F7228FED6C849BF7142C4103989A80F7C15642AE61650CDCA7E\ -854EB25E9E72F4C3E3768E6CCC8BFD556B56D3507EDDE9E5C331DDEA75568B07\ -813D20E8F4C9547838ED28448F2E67158ACF0C00B131473847816C5E2DC215:\ -74B19A3CC577847C757B08C2E19C9E9492F8C5A8EB9E983C68DCEF4AD4EE3028\ -D2E626D343ED2DBE90906EDCBA513E8B - -08944CB473B828B118A31986DB67FC757F238182E790553404B792AA4F0095A6\ -A83291E287CDD16521A3AE8C48F56FBC909DFCCFAA7BCC570C2159F26592DCD6\ -B15BC4DD55CC05595AC634B2C3DE15360B0F07A03B5957BC9333CC5097919399\ -DD9973ACE15E55940178C4C96BB5E0A0A10BAE175769548EBCE11E0D7D9DB296\ -47F197D4B87F7039F5D4E59E016531DBEBF55A797AC9A6835032CDF34240A7EE\ -7423E89C09124829CAFC5F89431C8AFC54FD979E50D48A82B47A53523C84B600\ -4DAA323EFB708203E5388A6A5110C6CE2E341048A65FDEADEB3837A03420F9FA\ -DDC3F02A544F1E46D96B07C90C7971A7040A179E8198E90AA019268E00367120\ -D5F3D98A5CCE82C885E77144B1AAD66EE682847776B04F01F501DCBEFE390308\ -0A8058B3B8F1D823D917ECF31FC2D5B0795BF95A55C7093ECA7C801DD0BD0DBD\ -BEDE7D56513128B29FC0B4D25A6240B24C99E017BDFF7ACAFC8F8DE9FAF5A294\ -4384AECE82BEA04DCCC6D51FC6E6F27AA38F131B7959B13681A09B311D242E62\ -22A1CE5687DE5C080508B1DB16B6F8290D33A3CC0D0138AC61FD9093825E9D37\ -52889E9F20DB9F80F92750EAC88B38AC81C0016D40371EAB4A87E845E91446B0\ -A07081B84F559CDB95340CB020AF22AEA1BFF2FDA12F7A42973FF163A1C6F33D\ -B8B8214AE27ABDF1C54F5B03E29310FA210125E1296E8AF93A2996DBAEFBADD4\ -C51C2C3B8A3E2BC9FE060C42BA32768F6992A99599206CD2291CCC5BBD50856F\ -7F8D2D0AE1EFB5892C15A799B77482DE4553736B162ABB06631F1688F6746E7D\ -7A37EE7EF24E6CC901175F04960C01990178F81E957E941DEAAC8846B3704E24\ -204F43DDB0765C433F3F7D4D201459CD65682B7DDF3D47E95CDB31B96A4CB229\ -07F08BA6E92A4A07703B2DCF150F922C4B7CF181380303FB72547847305999C3\ -C8F9AC877D05D9DC4159DEB8A13D36AD1D533A56950E20F906D29D51DDC45BD1\ -5C1773991707480E37B827044BDC6473181B760A9036E0D3FA491C2F08C55130\ -D8CDD5AC8E97D0813164AF3D28A585F0C2EC7004D498F95C6B62231A632A56C2\ -D0C48FC3A6992D4051957B9ED6D9A86DBCCD962A8883CF82CAF01DA2F51A203D\ -56B6089BC8FD0B1BD414C8063031ED469555E22EF872689C130B1C101034D572\ -FD8CD0EDDABEC9EF1503D7F728B0941EFE2B9512438C7DDB176BE2EC2D9FFCD5\ -6495A4511428DF02819CDDA18D1ED5D3B16C6F42AA0AC681A9FAB51E8A1A856C\ -15C51A3EC1031427142EA12543014DD4ACAC640B8A7729E63AB7DF1051112CDE\ -FD4B988A2258334FA9A7F5B3A87A02074B9F69DD81B83FC74089A91D76AA4041\ -259E80FA255F2084902AEB9E996AC2288AB464BDEC47AAB26A28A2A819498975\ -5D48FC9A5C9279285F2F1DBB8B8018F3E4E13115D78A879792E45A8F4F24ED4A\ -317440BA63E6929056EFC1D2529B75A709D6C0097DC2D97F646F334EBE6195EC\ -5630132FDE58E25DBC17DAD822D9FA0938A2A2C926B105D108403DC29CF371C3\ -504FF73BCE9C7ACF9A74C4954CE6A32DA96B21CF3211B3E49953DAB78C49C3E5\ -32A349003C59C62F7D40261CBA63A9EA21C89A38AA63CE431C43AE261C4D9999\ -B1CAF491FAB8E7BE6E8C3454F1BE8793B2D27141FC107DA599A4694C41353D77\ -85C05B5E31440458D17C6DB66FEB8A9C5C073FB946A67AC0312BB669D9B12FAB\ -AA5272CA6631379EF4ED420A4424A5CD08526384C047C33A84D5D7DC0C215366\ -3B54C73DD799A3568C01B818992CDF8143F1DADD6B50CAE6EAE13AC66F31FFA2\ -B362CC4D2880592B7FEE4B9E4CD6AA5E5DE27AAB9B5DAD9F7D39407AE927530C\ -AB2B61CD7394A21EF47BFB813B5EA6091458D239664923280ED0D5CCA8285BB2\ -281A2F9FB3FFECC8E9147E1E8FAC957D90C9E5F513738745A47C2AD0C31FD898\ -6EF3B6388C6E821F166513811D547AB4336B5E04643497FC9F8D6E380EF6478B\ -82B6E2F5F65DD98A63C68C32B94610E1D3B9538F13A7688FBB1EC3448BE9BD77\ -BB93A34546172AE8D614F85228988E7FEB18C9A0C9827699E8B3CBC69750BDFE\ -CDA8268F694F4C509BEFC1A1166F85C829725299D173F867A300987A2D36D1BB\ -BE37BE3208FB8EFE9152A41A5F0E931B6382FF7F9B18937958FB180E61F2A8C2\ -8F36C3C80C3722935AACB81C24AA17FB3E7A1026F7031A7449818ED62BA7705C\ -A27C2D3268F90B6322921683DFF800A306CFC186CF2A61B37F35837B217E3B2C\ -ECB0843D84EAC67431E3D689F01522D4A4C73618B7C2965C9DABB15C0BE637D1\ -0CEEF72271CF39A7B803B41767BC34433C3E6FF449A439AE13DA1EAFA038CB9F\ -2E1C84F1CE39C05DF56FE3D7B82386C4E628B6E27CBC5D575C66ADA3510C246B\ -D04DB48F4AFC2D7352966DA2266C2BC9831532F53655D8BE42B421AC0D70D8AD\ -1D3587257886DBF93668E907E861BA64F45999BADB0F766EADCE5238B5ED397F\ -265935194812C03C5769137BAC97140525303CF48D65F39004A3F59B1FAB0989\ -5CEE05335D15B9B12265892F4ABB92AB1DD2002ED00CF3562CB67DFE1055968E\ -4AB3306BB34BB87D0F64B26848812A2F7B50424A21FF94081A7F70F7B684AB0F\ -092B2B085DCF84CA38414CF7290F607BF79C37EA84253ABCA8D4184D2DBE2E90\ -0200B81479E1CE8B71DCF2BD6E3C557A8E431D627BA669C2EA03068E0F7EA62C\ -29777B22142D7A1D451BD541EF8EBDDBBA4E3BD8FFCD340E935BE7C66EFC14A1\ -3EA48134F655B0DE3180101F09D204C379743A357E6DF1268B55A9F7524398EC\ -F3A59849A27B142239059998083E8FA91785E91C4D220B2FB17E3389EBAA384A\ -49D89B5D78136DD2454F06CDE9837F096B744D53221127869904AC227CDF30BF\ -EA78CC5545583F999B9C42A1184E2FB9FF3EC095B9DA0D138205C4EAC4C8C480\ -C43153608849F63E161135C79D8B6C9CFE9B8DFD8AFAB559D8B595DDD4383503\ -3B4BBD391E028BB2A60832D9B697EE61408F149744DCE71AA11BB2B0436C1E26\ -26AC3A27CDA293366B90B9CDE2D927855130758D3946B867192DCF3FCE9A3B9A\ -5276E8C37B8CB136FC90A6DC22650F95E796A9886EFD3F424BE63A66DBB1041C\ -B3D4A06F4E7EEE89F0B6D15C36F9EA010C66B332011C8888E8E4AB2B3AB52231\ -91E1388613A0FD0F07C1B26D7CC7CDF1AC62A226454D6291B431CC3EF2DB2B24\ -42B37DEFB942117FA247096BEAE598611B8104F37BEBEDD8BB8B949A89B5BF8E\ -228ECA1D8F16BFEC75A02FFBB4EEE3A6D4A6087C43634D675311E72A9F3253BB\ -5DD364E07EB4B9C84F586BA267BAFFAEFEC79E03B83B18595FE06D7E063EE604\ -FF287004D141C1A43AF0CA7C5651D98F633FA875B4743353FB07BDE59B6567AE\ -25F7095F1D9EDF30570E2F7D7EC194216898D910F9E295A41DFEE072CB56F914\ -BB78CC9854129250F9874B63BB3EBE9A1CDC6EBCB0916E1C440354DED6AA818F\ -2811DA913912A21D3961AC94A39F0827D3A419616905DC45842C8E69A43004B8\ -AE922C8DE1E8CD0668674A7760153213835BC63FAE4F8D65614AFD74A34D42AB\ -AD5025B884B34639340B45D49CCED423771916E18AA077291923017CA50795F3\ -B7A3F349A3D29923833CE57801C631576E23B838A7767CA1BDA92B82AC502DB3\ -688FFC83C09A4E40CAC31D20D9D32FA6724A80BE7091CDE9C7A6560CFB326B46\ -7CADDB9E9B7A491EDA283EFB0B61B4A1116DD859D5C0897EAA2A3FB2CD82FFB3\ -3770BF9E08091363B6B81D23E61C2A647D2BE440C5C79EA89690656D9F10B1F0\ -7942834E1CB6E2D2DF106EB6D6A21FA23819E65028515E88BD279F9317BEAFFD\ -394EA51F8639371C3A89F11305A4CA35FB0711F5E2C7C3DD1659C79024581211\ -3204B4ED8AAE9FF09D43C6DDB13F5070D98831B2C7639FB6B9B01C288812DDFA\ -8861DB32DC8268C07D30CF969953042B3DAD530D9D744C06AABE7A886C0FE57B\ -09B7F42D193FB3E9C06329818251A2F7E6474462C95DED:\ -5531A34D8565A94B7357BA7171AE7EDD1E61ACAFC1747DBAC4D4C022B8ACC664\ -9C8E44EC2D6455E623BCACF10C3915E4 - -1A3DEAFCE70AF6F3F55D66AD9CE78D5F4D5C5F2638A810AFCD07D67E9F9A1380\ -D6B34BE482EF030C22F1E978F544609CCE35A74C5109EE7038495B6210CDBCA8\ -DC82C6E9E7B0D593FAD9665382B3C401AB8941DF71307DD77EBAF140AA66A1F7\ -6316478850E58886A9610631E9C722F459FA00C0B53124FB4F12778BBBA37608\ -26D3DBA67CD030A96B654AF93F8E395F5F439549489F8161683F124BC980E693\ -9C83A6085E4B6CAAF8BCD89A0E01ED70DB487166CC29735D9235A9CDC57B80C9\ -C2E591DF6322F5BEDD32937073F781A30389552AE83FBE147D1B3D3461A3DF96\ -C15CD96900C56718EAAE838417057579115936862679F5F2A45DADF65D14108A\ -F1641DF987B57986384FA1433789F5DFBE87E90BD4E9D8D4D0741FCDA7348322\ -B967B566B18612DBB8FE64F151947C3F7E361EE868676BCCD0CB3A1AFE046BE7\ -0057A05ADD3E65AF31E3FF414A627C0183E8FF583B41B75B203650420216E6DF\ -CAB289665F054CFE3EA0943647528518573BBB1D0F27E1449E98739EAF0D0094\ -32DF0C1EDC1625264B94A71DB762659FF5A3A7A867F182D1F1FD34B341A4A181\ -221870DC4A494013091A7E3B2B07E0160C438F1EE1E8A2B989C4FFEC36B5083E\ -A427606767C29672F44779A8505B422B25A56907F565B27690D011426A62DF00\ -36D57D967CD1D14E915BBC2691E7AF818C769D9E1F9EDD40894BE88FA1D7A595\ -2AFD898E837716ACD73953BF2D1D448123FD1A0276D2C2EBDC760A4B787416CF\ -AE5E963FCBDC8B551CB70F91DA0ED4A8090FEF178E879F2C34F3A269DFFFF097\ -72D44A13D7A17468B5834C460957D5243C325F63F05F89D4ED98D361E7F0AB8A\ -83948A64D0CFF8514841AA21C7F337920A9983E59BE4A0F1339E1E462F92DC1F\ -C070126206012458A499A8111FAE078E00B0CA3BC1D6C7087CD318D5603C1C7E\ -0425E6F729CEECA5F35B82F8A42E0E9B950EFB0904C5FB5C06D91D239913665E\ -D1F1EE4B82185A01BA86CA2D3EA94E5A8842231A94C05280183B7ACA28998410\ -3F122203EC2FBA4A382E6F5236D6F68DA05E3BB0C558421F0EFAB91DCEEF6D1E\ -CDC60F9B88F8BEFE31CDC3C2F024A1AF2C7336AA5D151E8CDA814A5FE898BADE\ -B9DD680E337E682EBC22BFAE445417E37D2D89A338659A280AB1206DB74DD42C\ -6F25639C1803BFDF2156DF613B0F5924D209F7F9003CE8794F989F4F27B82121\ -210F4F65EC5A1F7723305CEE438C41F793EE04496BBE337BBD2FD3023830B1C8\ -889C6F4D0C1192E364EDBE1CD987BA5D66224EE9C9405E1DFCEC0EEFFC5C73D3\ -123F6731C6295D1E6B854B884FD22B6A3BBBE5395312585CD138BCA67532C6AB\ -71BEBC6657C50DA87D2AC6068FA3970202C5E15EB7B4B3D2676C0134BCF1EAC2\ -B26BA46930B5E660B16060894884C88BFACD6779276B86F685AB6F17C6D53F62\ -1275FAD66D021D26D1D480AFAB4B5EC75E0E763FFC45F599EA02504DA5D91EB5\ -EFC3E4AE196F219E45E7CB05594958C876FF474A020EF73C1F09B1F7F7457E81\ -6D3AF51D86663D4D461754CD5E907456691E02446D6CACFD33516206A3187054\ -3D574592087773653D4086C2BDCBAB3C9B65CA11AD0D4E58DDDA8B4403099898\ -57103929549B7300CED42651D4086661694092C42875CB62858E6D1BE5F7274B\ -4BCD83AA4DA05CACA186A30902830790F9FFA24418E1F9DB00FA40477E83B05C\ -2D11AD7D81DDDB1E31F94A9DD5E9E13391C22479B570976E3AFC1BE41086D3BE\ -6689D87CA4326A7CDE8E5B396A678D3CDB2C80FECFBA2BC799AE8B1528E96D88\ -0CD098DDE910D097EAAE660AD4D7EA51C18F18AA1B39614299A172512521DFD2\ -31B9840909839EB69C892EE23F1BCEEC1FADBA75786C7DED93BC9983F74CEAB3\ -97EB8BA84F7E4130B34258D628594A6F9E2348FD91BA2594E07B8057E8A2AE3A\ -DFEA0EF919555385977041C5B6DC4F3880569171F7217AAA9A85F2F5BBDFE3FF\ -DF79248F2A35FD4DEC34980C67290339B1C0A5A6AB8838157AE2F5140B4A2492\ -4A6688AE5CE72A48103EE9029CE8A0F15B1FBB19A12FAAB80A7CD9C0E389FC27\ -75833E3190F1CF735ECDFE7F6B6C326506AA82613CBEDA8DD3691B81F4C1E3B0\ -FC32D7E6719CBFC12F4A26E0FC29D6417953ABC9568DB4ED9A294B9FD5F2A666\ -DDA546ABA301B1C60985033953EFD6F4538333B5C7DD3148814A3FD7927C366F\ -40B3D7ABBDEB2332DDB586AF80959097663CFAB2FEECAD6D368AE10EFF9663D5\ -F8BAB95935D25F45776F7F04B46817D05165A9DD4770509ABB92F8B9E7373CA7\ -80703569981754A51D6D376D65C57F55CD70E2DF5FDF5A6B829AE30CE3BF9428\ -15C8B4BE858DB58151D02A68AAB9FD373E047EFA51BD1A0CD1B61744D9E97CEB\ -A3334B3BAAFEA3BC9E43AE097CF2C3D713EECC247FF43EC74D54907D8BF45E45\ -B2E0E11D82B126A8179D3F66C055E11F69EA67AACC5FEE8AF01FAA379E51998F\ -5070F9EE0FD30A2EB22A925586FB1B39024EB5EB1E127C76A149E7F02AF1B73C\ -16E9E5A5DBE378E08A9FADF1194C625132AB3FDEFE8FE9A89BB8E0035A1A3AC5\ -278F5D3D0ADE0E41C81C6853A41C4AC45BE3F68180FE23F27F18BE2E339DE1D5\ -59D75DE63ADF7A32BAE42B037AEAA3E123A5314891BCD35CA48D57DF4C17540E\ -97202A8EA1328DA25B1FD6BE2B56AEC1E5DEB209F3B7A13ADB1CBE53EB645956\ -E577A7621D74E42376D70BC5C4AACD239A852FBB7B3F62CF59FE10438C1DC8E1\ -E46566325DA0CA43AAA63FB7E0B450A2DB3E3A2204704D894DB24B72B3078106\ -E096CD543DCF027650CB4965E38AC36A8AD588C5962B4E26548AB88F0BC20E10\ -ACC1C3FC00EF415B3C32499264552B14E2C0E789A3B8A8BFF9620FD939D0B34E\ -806177EC696A4B3B1CA4B32BA979B2690CFB3A6B17BCEE6877FFCE757E4116DA\ -01099FFE82ADD5A0C593E73449A96DB9CC2B9E846D166B095174F2CAF8B35DD8\ -78C836D9BB6EEEAF8E1BC5D0E149C739828CC480D731DC16B35B80D4AD82ED7D\ -29BD05018239EFECF8DEAE180C6A459DBCBFE4AAB9A5E2C1E1BC31418CF2EEEB\ -31FDF8BA02C9A91525E9163F672BAE2EDEC38C1BDB84EA237B4EF86BF5C0F0FF\ -E178E3761E82D94F66E5EA40BA8170BF768409E1B4177AAFD9937BCE3FBFF590\ -320D7C445372463FBBFB34F57447F42C16E026F179CBF82F617C86D1E8D42F6C\ -908F9C6B77E38D25D51303DBD781FFAB569B4CF31FD0B947C45E1768A2E9DFE8\ -369F520DC38D77937B69B821DB4FFEA8F50EBC404F0587B5598189F54B5A5B98\ -966FD16801C87DE2C3C7813DD70DC600824D426D88C55E89D47214D59206A7A6\ -5A65DA7CA2E42FA62ED17E7AA5B3ED446BCC71F17FEC8593BE96D2037BD07F94\ -76D4D732B32BC5DF8C921316B45699004716FC89F8D45BAE402C26DBCDF1A340\ -847B932FF882DBEAFBEDD252E126C89A1E1FDD8908A1F67D15D8E432DAD8E08E\ -950A3BC46B96CB89CC5BDAC703B3FA3E986EF1C6E7E6606E6845BA1EB2FBDCFE\ -E744B5E45206F4A419E1CB103C8490EB293EE9AEC1F0A0D294F9D3847737413D\ -30873F3C94740E8FD072817815EBBCE3F09EDEC9D1211A9E99547D620B2EC56C\ -89E9CB8144AE9E46636324BD13C6CCA3AB9CD9FD8F7F937ABABC598232384427\ -A2D4CE0CBF9765F7225E208C3CE128602B0AD08A1BAAB77EDB3111F0C6CA7BA0\ -EAC9D89D5B4378EB82C17F6EA08308A79A53D150D3F85EFAB77294F02EE0E288\ -5EE2AB2793392B87DB11FA77992F5B4FD75EF2F1A822E87407A4878894215AB8\ -9B6CC4A120F5A78B3C31AB80FFCC9ACEF53FC6F7F85685EB9D56D30D87C21ABB\ -F1652EEF8F32C7C567BD1F08623B09C29F33561D42727A5649A3850071AA6C11\ -735AE63C4FD31559CE560B27A362786A83353FE460B37074664A9421D3B2F6A8\ -64D5ACA087187B27E2B82F31CB3DF5E985CEA271C609B94B4E58356D40C7D5C7\ -FF2E5990FB39588154843EA5FCA92F120075D4C4D006661A0FA1B0585454BEA7\ -25473EEF7D58117D5840C8348999003736C5EEB7858FFD273A1C3EB2812F5697\ -C59110275B08F6BEFBE84C92497D5F73B7B6F794A849713B23AC5F29D5C7112F\ -B2E7A6E89EB54DDFA3122E6C79624C1BF25EBFB9FE5CE6DAA779F3ECB2984DA4\ -2F8C6ADC77B21DD291E684FCA50E46070962A2D4F00813D8DE1B8ED33FED9715\ -180C7EA8E2BB74FA65D9C7F6E142F3C81CDC59172E1020F62F65CA5A12CF2BED\ -9DEA04A4D8CABC2948F7BE823A3E792625275B3925A6C8D8E2B428C75A5DB0F7\ -120278CD7D6CAB768755C7FE2FBF89FDED1FB38AC7F76A2F8798CA36ED42CB7C\ -07F006271205F546A4812C20077F050D4CDC79459FA686E97F0704B7A9FF7DE1\ -6318E862C53D361BC635A55A264BE15016545DBFCE3C6D6849576ADEFB6884ED\ -D768214E0B438B0231B4F2692C2C0B5C177674F8A0DE236EACD9E0CEC7C8647E\ -4E9A5861B957EC834A2F8572F01304C3FD6A06019E5F1499B62BAA8670B65246\ -7FA9A4F10F053263BFE9743CC7D933F86136AAE3A6FB56754D7D238397A0030C\ -EBEA87CB255AF36138C373DBBAC41DD4A697032E4796C552AD9C9B3FA713C3A4\ -E09E0EC5581E94BE7F31065157662F9E9C678B1EF1B8B8A847C51789C22B1841\ -BCFC855820AF3258AF9E08231090B45D10046A00178E89BD515616B8A44E77BF\ -57795DABAF40687B2CDA7A5014168F:\ -978A5C74CAB4D5B773ADF64CABEC0DE036D087E041F6C1A985530C2250D283FA\ -AA7FFAA0142588694E67245BBA56B9C8 - -1633256AB03B20CE079196B708A1C02D1B6072219070712C8589EE21341D5075\ -2ACB6CFDA17E982D828BBD6CDF54BC7232FD418A323D64939928597B9B52F07C\ -F488250C5E42BFD3AB48012D709F8D747225839296386FCE5FC5AECC4BA7A107\ -6D089DEA8ECEFAA0CF66FCA8602395719C12A04F929321784D7AB8239FCE2FF3\ -BDAE046A266132B5C2AD9F7261F3014E87B389A6695978693D9371D0B1FF9C40\ -5F338C2FDE4687359603950A54CF4B9CDD9B24480B239ACC5405C14C886BBB03\ -78391CEF0662A38882BDD09E3866AB9A66CFBD28EB5EE4F8009BDEFC4AEB1670\ -0EBA7DC557B489190A71FDA75E85F7EF841697F70FFD4FEA185E7A67C81C5B8F\ -273BFB97B2CEF695C1C74446C4B425BE6B2E66DC0AAACB247E4467B7C7D84EC3\ -3B6B5AB8FA1979F503008BDCFF948CDBF1226B1B066CBCF34797298F3BA8C60F\ -A01E0AC8B803223C656112FB91435D75453BAE4707B63330467DD13E0A4B992E\ -6F7E46995899A2D95D23F4AC3D0802B2A6E7D024DEA19CA408C4BBE053F14C9C\ -E264F129724A18BCB18F385B1CA091A11434EA96D98C8D0602E98EDC8DFA1414\ -1AF93ED0BA66E885E9FA108591AE59E109AE34D6B9F5586E4B4D75E7DF7C3295\ -8A65E88A9BAF41082A0A3F11539DC4EA2CBD9E1C6C3C439B622F1DE574FA7547\ -0C8C939B51D2D1C2A7204B859881D43086BFD8FB90346218D099C5AB36846F3B\ -98A7C847318BDFA01E09717943FCD864C5A8A17B6CEB89D98E872D388F20ADC2\ -BE5E2006846904F41682FB1283214F3D20DBC9FC9E0FF571844A1282E88590D7\ -C085B2C568EC5ACC4462B389FEAA5757F7033187E2DE31955FCE55FEDC909255\ -048B327CCAB2E582BBC9D8054BF5CB45145C7D3A3AF9CD5CF6ECBA490C634ECF\ -00E646BF95E8642C43A4978EF08A574EF1F78F6CE57C3B34B5A123D123617FC8\ -EC9B2AC0F9B70A7F6062D38DD7B8E9FB4ECCEF13DED5C0477483ADDAE4F1CC0C\ -FCA274B1307ED0DE72FBCB819154CDA897D7575213042615F1741A8CB646A39F\ -8D134FDF9E60E000EB8220F65CC30F5FA52C431B9E3B6101B96E25B8D0440B96\ -E572A18A01747C02AFCD7513542F7AACE194632099D16274F31EBABB60DDD94F\ -E43DACCE900EC0902EB5E686D48ED8D09AE63DA0E15C736809903A0297A92DE8\ -4E0260F11F446E1FC448E0EBF59FAEA3C726F97925C57CBDF85B1F77078D3625\ -7C85D56CBBEDCE180FE12B687ADA2DC9912FAC60334166BD2CEF06B089ED5C95\ -63844D71D8FEAD2F3A93F3C07C52537336A8A70BF5B596B9007B9FDF2D082000\ -F20E6B70D2A7E6C7ED27C4146895A6D85A246F623C1B9258A2F891F823ADE4CE\ -FFD59D4FFAD077351E2F506E9A5BDD3900F0204B9E8969AFE72F5DCCB9CDF986\ -D197AE4C4DB53014041AE6221B750E5290E307AD292C8DE6B899235212EF8CE9\ -54785537DC9435AF11E0F3427A9C7B22EFA752EA0B7EADE5F6EB4093BACB7867\ -6E506698139E4F774423B8942166F9A7D22480D814FC0AE19CF4960FBF6E01FF\ -A65C8DA5BED4F1AE2B9ECEC5BE7B3C38DD4045B0C93EE6CC77A7E61E85D331B2\ -3C0D164B104518B3405497054445A353E9B48F2AC5E8E96298D6655614336CFF\ -E6D8C9C915E387391519AD2632366AA3BC935030FD12927EFCA17505ED74C946\ -50C778539004854DF6C24269AAB9C273A493D3E5B0B1D687C33C2FACE46B4BB3\ -742D6DF743D09164D2E0EE7F6BA128BD5FBA2E3B33C199AE80FA9DEE3AD811D0\ -2BAA3D42A6362B2AD47BBA8A2C5CD00B46CF22CFE367281488A4852EB8B7FACE\ -79F0CA6F8E78D32578DFEE01711C4DCF3C26D0BA13F3075478E708C5C5315AFD\ -C2E4C0062D16458213BEC506A9E991A61825FF78DA9BA1BAABBEFA56B4A8C9E2\ -E7B60EC4B7B541C8E0F79C86BB5F03F736761A37169B2AAB8884EC6EA217B02C\ -59035F5BB327243D126B78D4AAB430212439B5A75B80618DAFEB66AA3AFF866C\ -4DAEE47D374B512E74ADA933EF24A841BA271C6F02C870E8AB950FE06E93C91D\ -F0E99165DC01BCB190E411ECCD85358FD4A88127A22E4CF4266A90845124BF97\ -B25D7B1C46D3A0D68A684F84E2A638C692A52CB6E8C651A3AC492B0460004073\ -D5349E35552359CA37660F77B2770D6B2B3F7B1922424AC4A8598B4C61A6DB50\ -7608A72A6A7D573CC055206276E14005A28A0EC41F28D7E260611D40F089FFE5\ -E529375691412F4E9E12E62C3BE2C563C26D2444EA9C69E6C935FEB4DC4E802E\ -5FE3906F8ACEF4798D940C3CD574BB5E74506C3E0B70CB62454A25F589EADB6B\ -0709FE3B50417CD1D98F08E08B7CF68A04CCCF8D6588F9FC2F31E533CDA6159B\ -AA4297FA446450D71C16EA2324EC09773E7C8817ECF680ED12F64A04863EFE3D\ -9D8760F34DE5B0860B3991FF0EE5EDBA22C4D69120DE19D5429E4AAE91C9E7CF\ -05CC807159A58F13B480872AC1609D87E7009DEDB71C09CEAAB640A2B6135855\ -CEAE4AC2954933A0255B425D9FDCD9C246F82AEB7C3BB78C6E73E03DB7AEC424\ -5A28693FBD36EF4938D59CCE19EAFC00671A0851612406A075713C5D1154D8E1\ -3B59B7C5B0902239D4BACFA386AC817AC5EE02A181A9A47C622B3ECF287E1484\ -3D452AF347110498A620B34AB4E116308D976062C9EE9CD35DB6CB79805B93AC\ -9A15AFBCB52F1ED4309879D1924A4BA190B0B86E60A516E77D34B4E0A49D4EF2\ -CEF3CC2F410FD8EC901363FC9EBD75EB460D4D8910BDF27CE26A8B4AEB94F9F7\ -6242401DC35D0644842B99FB6C439B82D82ECFE1AF0D01F9BECB15BEC83F13B2\ -60F7F714AA381032923FDE8F8018F3518547451435C9A5207294D08A907C7369\ -6F6CB000745E072E25B73B3EE11595433D27A1F11468686F08094F1D31F5ADA8\ -1F11F0677A29D72EBB2E1C4792CCC607CB938647E1F153F9EEF03D982595C631\ -E49B6B7C1FA003A6EB8D59CB8892CD0888B05240F12701753F89007C859515A2\ -FEF944BC60B36003A26702AC6FE04D2E942978FC31A97EB29871D6752399D352\ -1720729007B6A7215A4282B2A4EFC2C56BD129E74C9B00847692B96FCC71CF7A\ -7F19F3FD6B45C519FD73B4860880A2DD74E5727B31A93F0A87F0078155344AE9\ -F7BDBF00D83393B634B5DCA88A398E42C320EB95C4A826ACEA90B65E4767B2EB\ -A748F97C247568393E2FD3A66075CC12935B6D7EB5C2FF5282185CB62C73972A\ -37B3CA508004B4F796BDF82B83B5BDF90D6BFD32B5089B0CA2683DC7FB2337DE\ -42E650ED911DBEE1EF98257F9BA5AF54B1A54B04C0087A5A64BA779D86461BA1\ -5337C2E7D4955FDD777A025DE226306A17C384F1C52CDB5946FB0B46DD5C13BD\ -7A55FE2E27E4C6D40D61D6FFC024468F8EDFC7C7992DF5DC5D05063FE7231992\ -24F53678E48F25250EA28BDF1089718EB8B730D1C06735C2F871164E2EB5E885\ -A8DFD2A083BE97EDC94159CE9BF75D2433F1D782762F771903CBF9A1C9D13F71\ -0BA0E151B079DC0A8262BCEB1DBCBBC0F35DF6EECF7BAA7105B9808745853C96\ -B4372E95E482035916B726DAC7BE95A72B19DAD48DB1B19E6EB2EDAB5AC1B301\ -3839E7806625ABC129F41813E6D71EE4AB2040D81E42E6ED73ABBA64FF2EB433\ -B910EA7D4F5ED3D8D27D39BB454EC019DF6114F544D7B155549D0C56D14551FA\ -F353994A80F30F3C97E863A4F2AF316468A568038EB4D799350A6FACAFF90ECD\ -44E0F44EFB6DC42EE4B0DC2C59EA9C1827326DF08C0A6E55CF4F9C3EA0E78CFF\ -3635F5D08E44F1400D20F638D56BA84B4832090454DE57EF04B6C8805A36F63E\ -5CCC6E830C87FFC164647CED20E4C486D09DE7A5F9E4B68D5456CDB22B0DDED2\ -B95B3BCAE529215C2D25D6823C7D66A4FAE0A1E9F022BA5663204F2314DFA51A\ -1F10E11D6D62A8BA6C28B6AE7DA1DEB5B57F2B65D7456059AD9F03DC5A524054\ -DA39DD100D74EB657DE219795E3C45A0E4C762BA22F9DA9D8159E425A1EE783B\ -4B22C250D8894CBEC706CE16D5CA393404FF478F141BE7CC69E45B077BA1955F\ -1F49EFBE4847C795347F703300F672334F490ABF8B644A34B56DA00EC45A3503\ -14B9ADF27CAF7C51CB7DBA0C5477E7D37662F4F23247BCB8F7DD5F3E9CB8BDA4\ -0FA97568832AF0ADC68F71422E412254A6BFC8943BB465B01FCC8DE0B957677C\ -78BC1F7566953E9D2446239F602C682A521C14F741FEA98C7E27AABEC339B6F5\ -B94C78287A894AFDAE971F8DA7C7E4A4C92C8DA47BE82DC2532EC2DA9BACEDD2\ -BE6DB2B2FB34DCCDCB34116507376578CBCA105E5E443BEC0F2EF23BE34CDF86\ -2EDAB34F0FF21335E3ACD92F59688B419F824EA61EEA82BC80E3463452192377\ -131BA51FB0795E089FC077D0ECA8012E58B0637AD7022206887FE9EC00EE5DF7\ -AD2E26FE819EE35C7A179C579098AA3DF645D9064CD557DA90BDD21F871CEB04\ -8CA56DF9653A10ED60F5E9F0ED7F8D89BCF5C22D1143CF44718FF2DFD8E10CEF\ -8AABB67D2305F18177C1426BD4CD03F2625E459CE905067826A214E08E56D8F9\ -455593E6B324E72DEDCC429D3BEFE2AE0599E360DF95E80D453A3A849E48389F\ -A745635BEDE30E7932DE6A3816E31A2217F98D5E40238963D0A36C159FD4EC32\ -D8A5CF59D433DEF3378634AF6887FDB3F3EDB96FC8840FE1B538C329674AE810\ -E8C8B2B46DB208716D38E9D1AEAB097068AD83ADD7DD2647839B3A7388B0615B\ -DE26F8692E9C07D8ADECC2A875203C3D3A9C6CB1D7D06307E9E1D9C3BC536DD8\ -EB271E9A2159C904E61E8C9357FE759F36366AEF5A3D14CEE82913CD2708AA60\ -69369CED763C8E830D70924E82E9015C2998E86EFC1DCE6AC2EBCB49455542A6\ -D7DAB265AD6D7381FFEEE1AA40F8FAC0659B6FB56BB03CD8CAFAACD48D13672F\ -7D524EB9684CFED4DBB7476E99149C28EC08F33BA6AFF839AA178F86B8EEAF17\ -39C829177BA78547AD394136AA3FAD451A11E9642506568B39668B2436610E06\ -EA45FA11D04D3759B033B5382645F15B3C39270B81B80487643913A24F2F1C1A\ -1ED57C85CCDDC8CD6D59B62FA67CC80572968C8FD01894F0153634C88792A7C4\ -A407A4A4CE46CEC5FE5D2569F95A27DE242444EA0C715B357518CAEA23E767E8\ -545983F0D3A4DF66111B4AA1D399CCAFD796D7A80E592D5A51D2B3F60B5B04F8\ -D9C009CA56CBD4DD84127A29B72ADB7645FB7279C9818B2B43963BD605F45B65\ -75A5E2E369E0B401F5EC10EC703F1179B0AB9D4A89D6F096573952E513827364\ -A84D38922734137E969D8167D6959B70F42F2BDA37E4C989ABAA8024C1A84ED6\ -BEB74780927F78B32EA736B9B2B4A795C355C0319811729D9CC399D235197303\ -38D62E16E5035FC52A817090703FE776D65EF9FEF5BA5F4FFEC3CC8E9EB2E312\ -C50A479BDD4E6AB0A56C18C2DF69ED408417BEE28BB41DD13F8366FF6EDA4B34\ -090FC9BC045271:\ -DD29ED9468BB12DE8F9CF64AA766B04477D659F032746AB4D09D56A540DB1A3D\ -13F7C91B27FCE10C4CA8466F4A06C2C2 - -[Keccak-1600(512)] -:\ -0EAB42DE4C3CEB9235FC91ACFFE746B29C29A8C366B7C60E4E67C466F36A4304\ -C00FA9CAF9D87976BA469BCBE06713B435F091EF2769FB160CDAB33D3670680E - -CC:\ -8630C13CBD066EA74BBE7FE468FEC1DEE10EDC1254FB4C1B7C5FD69B646E4416\ -0B8CE01D05A0908CA790DFB080F4B513BC3B6225ECE7A810371441A5AC666EB9 - -41FB:\ -551DA6236F8B96FCE9F97F1190E901324F0B45E06DBBB5CDB8355D6ED1DC34B3\ -F0EAE7DCB68622FF232FA3CECE0D4616CDEB3931F93803662A28DF1CD535B731 - -1F877C:\ -EB7F2A98E00AF37D964F7D8C44C1FB6E114D8EE21A7B976AE736539EFDC1E3FE\ -43BECEF5015171E6DA30168CAE99A82C53FA99042774EF982C01626A540F08C0 - -C1ECFDFC:\ -952D4C0A6F0EF5CE438C52E3EDD345EA00F91CF5DA8097C1168A16069E958FC0\ -5BAD90A0C5FB4DD9EC28E84B226B94A847D6BB89235692EF4C9712F0C7030FAE - -21F134AC57:\ -2E76D93AFFD62B92FC4F29CB83EFBE4BA21D88426AA7F075BFC20960EA258787\ -898172E17045AF43AB1FE445532BE0185FBEA84D9BE788B05F14DBF4856A5254 - -C6F50BB74E29:\ -40FA8074E1E509B206448FBE757D9494B9B51E8D6E674A67F53C11EF92E96C3E\ -A08B95EBD4172B020010CD6CF29539A34D6BFA002A2042787AA8D879A0F5B54C - -119713CC83EEEF:\ -D1116786A3C1EA46A8F22D82ABB4C5D06DC0691B2E747AC9726D0B290E6959F7\ -B23428519A656B237695E56403855EC4C98DB0CF87F31B6CEABF2B9B8589B713 - -4A4F202484512526:\ -F326C7C126DDC277922760FEEF77C9BAB6FB5D3430F652593703D7C5E30135CD\ -0B0575257509A624184330D6AB1F508A666391B5D4690426B4E05301891DF897 - -1F66AB4185ED9B6375:\ -1F5B8A6E8D94F5E2535D46842B9CED467C39C2DB323963D3F3D937E9DDA76FBC\ -17072DDA2AB4771CD7A645145A2AEC1B5749BF9EFE0CDE006CC3EF8936438E0D - -EED7422227613B6F53C9:\ -2AEEE7A720C030A820CD7BAA8570D72CB90B7A238C38C358676358A7AE9A5CF2\ -6635B2320D61C1284899E654F0BFDD0A3A9C343FFBD11838B57465E6C3AD3A57 - -EAEED5CDFFD89DECE455F1:\ -7B1C1BEF3B4DEB4B4812C81A6E7B3F2C66FA95157FA3B9D2959DC56B8ADD1001\ -70D3C8D1745FD230A31F89FA17889C4C58946B5D746E47B71ED0394B66D1BDB2 - -5BE43C90F22902E4FE8ED2D3:\ -EE41401AF509D6FC0944CD4A0BB29D2DCE0DCC862606E669E31381E5D6CECB46\ -3143645D696D14E40169CDC71C75686D6E8732B432092626421CC6CC196F80BF - -A746273228122F381C3B46E4F1:\ -9B53B410B9F5DCE90A77244DB407A3D0F4898D112D0044A8F66AF933E26666DE\ -63EBD2A4322D8FE525AB354CE9676B6A14D0CE6B3D24E6CD5832BEA0C5153CEF - -3C5871CD619C69A63B540EB5A625:\ -2B53FE6583FC24EE8A63801067E4D3BD6E6934EF16BC822FC3A69F4EE13A404D\ -9A3CE2BB4A12C77382BFDE4D843F87FD06ED8AECC234A3A24CEDFE60BFC06933 - -FA22874BCC068879E8EF11A69F0722:\ -80946CA68E8C16A9667CD8339D1C5B00F1E0D401D0ECC79458754794838F3AE2\ -949A8CC5FE5584033BCA9C5BE62C7C08F402EF02F727CEFA43BBD374C2A67C52 - -52A608AB21CCDD8A4457A57EDE782176:\ -4B39D3DA5BCDF4D9B769015995644311C14C435BF72B1009D6DD71B01A63B97C\ -FB596418E8E42342D117E07471A8914314BA7B0E264DADF0CEA381868CBD43D1 - -82E192E4043DDCD12ECF52969D0F807EED:\ -C37C9DC2E20D8E2F0AE588D7D45A807CCFA000FC948AC42A8ED63BB14F318FC3\ -D4B963F7305980E6A0FD2316B55B63142373B1A29002264855C716C5C9F17F4C - -75683DCB556140C522543BB6E9098B21A21E:\ -9073C62555E6095F17DF71AD02BABB9100288633898489B21C906A3190875BAE\ -ACCC83BE80ABD11466FEC371BA2C4623D07F0131DEFAEC13A8C732A9F8417163 - -06E4EFE45035E61FAAF4287B4D8D1F12CA97E5:\ -23E9352856718E1E2D68A21D56D93117CED7628E984FF04ED8C0CB9B10539E4E\ -DE284F94FA71BF4B83BBB493435FD6BE26EDDB09DEAC39680E6B05ACC87B8C4E - -E26193989D06568FE688E75540AEA06747D9F851:\ -909D753426B1DEE09FC474F18CF810D5D5AADBF8A09AF495BF6C22ACA0C67302\ -1BFC5D2AD94F50B24E1569E956694B21CF2CC8B4F3C7EE4CF195E4424CC415DD - -D8DC8FDEFBDCE9D44E4CBAFE78447BAE3B5436102A:\ -046C6019FC4D628AE0DA7092F9910F269B853D3B57052039AD1375C665405F9F\ -D79D57579F42C4FFF249BB85AE65113A9F4276CEDE73E9CCB0C24753935A006E - -57085FD7E14216AB102D8317B0CB338A786D5FC32D8F:\ -51C909A6528949BADDAF1BA0B154EA9C33FDE5074359505B76D4B7ED54352DD8\ -93D40B142A5F802F378CBA7B8C3782ECF2A048542BE6C5936822214846A8D5E4 - -A05404DF5DBB57697E2C16FA29DEFAC8AB3560D6126FA0:\ -EFC8917E1247742A2D4EC29AFEDDF1E6ECE377B3D8AC6E58C9851CE9C99BD599\ -ADEBFED657BAACD1793FC91B04DF2957BF6F1888869286002DC4AD9AC7F76793 - -AECBB02759F7433D6FCB06963C74061CD83B5B3FFA6F13C6:\ -FCEF88BCC7EF70D8C3973429AC5139155F9BA643B431013F1817ECD2FF3AB287\ -880F9EA54DF7503CB3F73D7CF2B87D2E9BDBD203378FAE74CA4BD2667A4AA706 - -AAFDC9243D3D4A096558A360CC27C8D862F0BE73DB5E88AA55:\ -470BDD8D709875C8E6F88591B97D6486C5F03B54BFC905757483E013F63A6C56\ -984D4518D45C2D2298EADB44AF3A0C35A76B573D452F5747844D3AD8F84A2E85 - -7BC84867F6F9E9FDC3E1046CAE3A52C77ED485860EE260E30B15:\ -429FD438B390AD0224028975467EC228F9ADCDE71E1738005E3717C58F727AA2\ -B7C61780BF0C5F8B766CC6D34551D87D22A130B8C215614204E607AA82FF8469 - -FAC523575A99EC48279A7A459E98FF901918A475034327EFB55843:\ -790A010AEB6F13E019A1DC35574B1219E74FF5DB6FBD8746733664FFDBCFE1CC\ -6E8AB39117E3244C4FA3C0A962C9F50030AEF88E193E7E0D4C4747345F30CB54 - -0F8B2D8FCFD9D68CFFC17CCFB117709B53D26462A3F346FB7C79B85E:\ -AAF7A391600270F7B5A2A3BBC7474AC4154EBEAC03A790A57FDAD96CEA2D043C\ -9FA5F6916790B92F8032D668ED9A07112DC5B2373EC816AABCA6F577CE60415E - -A963C3E895FF5A0BE4824400518D81412F875FA50521E26E85EAC90C04:\ -3E2880A974E50F98BD6CC0F9D769AF348CE3B7E8FA38CF0CA2DA5FD704C9C0E5\ -7D5500BEA3CB7477927F9C394AA3F9BBC01824350291B9A0A0CBF094BB37DA55 - -03A18688B10CC0EDF83ADF0A84808A9718383C4070C6C4F295098699AC2C:\ -48E55E0340F20466881A732AA88459AD4BCDEF364C3BD045AE099F953D89F159\ -57AEF204265C3915BA42FE4235196BE3D0F564676227C3C0DEACFBAF68F9E717 - -84FB51B517DF6C5ACCB5D022F8F28DA09B10232D42320FFC32DBECC3835B29:\ -9D8098D8D6EDBBAA2BCFC6FB2F89C3EAC67FEC25CDFE75AA7BD570A648E8C894\ -5FF2EC280F6DCF73386109155C5BBC444C707BB42EAB873F5F7476657B1BC1A8 - -9F2FCC7C90DE090D6B87CD7E9718C1EA6CB21118FC2D5DE9F97E5DB6AC1E9C10:\ -1EAFEDCE7292BA73B80AE6151745F43AC95BFC9F31694D422473ABCA2E69D695\ -CB6544DB65506078CB20DBE0762F84AA6AFD14A60AB597955BE73F3F5C50F7A8 - -DE8F1B3FAA4B7040ED4563C3B8E598253178E87E4D0DF75E4FF2F2DEDD5A0BE0\ -46:\ -9A7688E31AAF40C15575FC58C6B39267AAD3722E696E518A9945CF7F7C0FEA84\ -CB3CB2E9F0384A6B5DC671ADE7FB4D2B27011173F3EEEAF17CB451CF26542031 - -62F154EC394D0BC757D045C798C8B87A00E0655D0481A7D2D9FB58D93AEDC676\ -B5A0:\ -ADA5CA5630660003C4D16149F235FAEB78132F7F773A631F820CC5C654B08EAB\ -4206BB4EA1389D1CF74D3B60B86E484C90C817CDB5DD5DBF327163B4646F7213 - -B2DCFE9FF19E2B23CE7DA2A4207D3E5EC7C6112A8A22AEC9675A886378E14E5B\ -FBAD4E:\ -71A0801D32587980B09963A0F547B8B6EE3BADE224671BF44F12E3DA4F21778B\ -AC37FCC73EF45FEE1C96688BAF9020F487B1A16E3AC91B504845D6FBA879134F - -47F5697AC8C31409C0868827347A613A3562041C633CF1F1F86865A576E02835\ -ED2C2492:\ -EBA678B7A0E5669DC7FA5ECA5D5F19FE625E113E5028DA5EFB138923CD444757\ -B06078E0BA064B36C72CA2187AB9DD31DDA6F24668F46C32F8EC21AC59AAFA24 - -512A6D292E67ECB2FE486BFE92660953A75484FF4C4F2ECA2B0AF0EDCDD4339C\ -6B2EE4E542:\ -12DF92D889D7BA0DF05BCD02D9DE58C97F4813126967FF78BDF759C66C4CBE9D\ -F68AB31A0256C776730BB25DEECF91F0997868AC8BB86DF7A0FC110CB0A4DE5D - -973CF2B4DCF0BFA872B41194CB05BB4E16760A1840D8343301802576197EC19E\ -2A1493D8F4FB:\ -B8C7CE2BE4CB32C140E75B75474248C1DD77D19B0CBCA31A3ECC2A35C532E4FA\ -3ED4ABBCDA27AA68A9DDA06B245443E5903A65652A94ED3AF15065D3E7736E47 - -80BEEBCD2E3F8A9451D4499961C9731AE667CDC24EA020CE3B9AA4BBC0A7F79E\ -30A934467DA4B0:\ -A0AE9DFB56831FE4A3223C501B697BD8243C471E8343ACFD37A6B587FEAC7457\ -1C23DEEBC9B94A540A02F1B1E2251E01229C9D58C4279F155D5566FB18E81295 - -7ABAA12EC2A7347674E444140AE0FB659D08E1C66DECD8D6EAE925FA451D65F3\ -C0308E29446B8ED3:\ -631E7847124A70FE6EB293A44A25C50600B5E7E975CA9FAB5AE64AB86C7E42C9\ -12DD6EC093F01A8DEBC6E1F5E487AF97DC3FD6C53002765050BE963FFCD4D989 - -C88DEE9927679B8AF422ABCBACF283B904FF31E1CAC58C7819809F65D5807D46\ -723B20F67BA610C2B7:\ -B989263BB4E0424F95FDC9A49C83A3769FBF31DCEDDA7E005AB5F22F43D2718D\ -EBD39085971F7EB7822C9FA0F67F776CEC4E35A9A8B8C835EF4E9EBDA1922E4D - -01E43FE350FCEC450EC9B102053E6B5D56E09896E0DDD9074FE138E603821027\ -0C834CE6EADC2BB86BF6:\ -FF6ADCB9E1546798D396DB78452DF1A375B65EE3D54FCC915A8CA3DA693E2493\ -1999B0FC8A4EB92F6FF85E42BB4CFD9CE7D7863EEE709C9EF37642B696174474 - -337023370A48B62EE43546F17C4EF2BF8D7ECD1D49F90BAB604B839C2E6E5BD2\ -1540D29BA27AB8E309A4B7:\ -1051B7FF77274B784E7FB7823E756F0C4355047E489775BBEDAA7CE5A75EFAC3\ -31492C016CE02EB2BE8BA2FE6B735B9A1484E73AC06DE573C5D0B4A58822A36A - -6892540F964C8C74BD2DB02C0AD884510CB38AFD4438AF31FC912756F3EFEC6B\ -32B58EBC38FC2A6B913596A8:\ -5639A2824297CA099ECF2A81EEF1753F6314CB663D860F05A39E3E801FF82060\ -BBA10628E2C0D9E0A84DD05ED637FC0B65BA03BB66E46FB256F2A5B28D3F41D2 - -F5961DFD2B1FFFFDA4FFBF30560C165BFEDAB8CE0BE525845DEB8DC61004B7DB\ -38467205F5DCFB34A2ACFE96C0:\ -97F9D642507E6DD179D56F4B815E92D0D486826F273EC711B8F9CB76AFC79F90\ -0816FDBC13DD3A59FBECBA1F3B6953F879F27C8987B24C6FF8557A2C834076B9 - -CA061A2EB6CEED8881CE2057172D869D73A1951E63D57261384B80CEB5451E77\ -B06CF0F5A0EA15CA907EE1C27EBA:\ -AFEF2AF5A01B89BE190A0E6E796AA51F1F8C356772C6FC7731F08AAB8BD81AEE\ -1287C70D564F4F169E37B07F28202A85F468281B4CDC1273CF61EB30E3BDCEE1 - -1743A77251D69242750C4F1140532CD3C33F9B5CCDF7514E8584D4A5F9FBD730\ -BCF84D0D4726364B9BF95AB251D9BB:\ -F467CCA67C387FFC9F1B173A084C451095D01AD0BF3953AC103A76F0F1BC8616\ -7305A926A941A53417F1611A505AAA205BCFCCBFD343465DAD8A6C1E80609A9D - -D8FABA1F5194C4DB5F176FABFFF856924EF627A37CD08CF55608BBA8F1E324D7\ -C7F157298EABC4DCE7D89CE5162499F9:\ -4B389A2A0DF5E295EA9444F2739B5492F290C4467B0B4CDC1CC9ED2CEFA7A9E5\ -27E0627CDAF0BDA58F17D13F94AF7D2DEFF6FC5D53DD9157674475527FBB4F86 - -BE9684BE70340860373C9C482BA517E899FC81BAAA12E5C6D7727975D1D41BA8\ -BEF788CDB5CF4606C9C1C7F61AED59F97D:\ -6590FFFB7311AB7DAB370FB518CCC19BAA9AF7C84179ADB002F8FACD3C44AF28\ -30A84DF1E2C2402368CC36614A6EA22903063E57D00EC511A46A9A03FE3819F7 - -7E15D2B9EA74CA60F66C8DFAB377D9198B7B16DEB6A1BA0EA3C7EE2042F89D37\ -86E779CF053C77785AA9E692F821F14A7F51:\ -895796B2A0824C55F030D82E794925C38D8459F38CF848519F120FF6A9D5A03E\ -BF006C3EA5021E8F3B3408FF12F01BCDDF7A085BA0A9A58944FEC1F554836DF8 - -9A219BE43713BD578015E9FDA66C0F2D83CAC563B776AB9F38F3E4F7EF229CB4\ -43304FBA401EFB2BDBD7ECE939102298651C86:\ -E4BBD54BFB99D345471F8AB94271B4B748F5CE70C21C28AE6559E03EE7890A2C\ -814043E624A6BD2944350756B37FA8208FC7473A67B310CEEBC17D965ED688B2 - -C8F2B693BD0D75EF99CAEBDC22ADF4088A95A3542F637203E283BBC3268780E7\ -87D68D28CC3897452F6A22AA8573CCEBF245972A:\ -80D862AD05428A299213E65B50310463FD22C505E693DD4719E0A120EEAA35C5\ -FC1608A08D22E2CCDDECA49878BC26ABE55A3C9A546347439A942ED0C1A6A23E - -EC0F99711016C6A2A07AD80D16427506CE6F441059FD269442BAAA28C6CA037B\ -22EEAC49D5D894C0BF66219F2C08E9D0E8AB21DE52:\ -021B3B392DECCB9075559F88C0C229026A2048CEF8EEB2D4F94803DCF2DA0A73\ -E004D7F14E9FD662670B59229AB3883C340F4E3A8C42624CCB90BEC1156F95D4 - -0DC45181337CA32A8222FE7A3BF42FC9F89744259CFF653504D6051FE84B1A7F\ -FD20CB47D4696CE212A686BB9BE9A8AB1C697B6D6A33:\ -97BF33A5254C8ACA27486428440B1034AAAFAC8B498ECB830C2581DC68518079\ -B65FB0C595997693DDB8D68D9564EA98DC43CD287E2E018DB7DFAAAA205C547A - -DE286BA4206E8B005714F80FB1CDFAEBDE91D29F84603E4A3EBC04686F99A46C\ -9E880B96C574825582E8812A26E5A857FFC6579F63742F:\ -C05FD9C3FA73F80956FF1C3B89160EB520CA640E201B3FE5E6E296220E81B59D\ -530476010D3784CA08692B8C716A3BE982B37450A96D30A401D3BA3C390D9DE3 - -EEBCC18057252CBF3F9C070F1A73213356D5D4BC19AC2A411EC8CDEEE7A571E2\ -E20EAF61FD0C33A0FFEB297DDB77A97F0A415347DB66BCAF:\ -B980E657C13726DBADB6570EA3A9E633869CADB798EB35C482697A04CB712F1C\ -1E8C5D0BD67E43E52DA294E82D5E80A695A74A3D27C0C672ADCFE2C928859A6D - -416B5CDC9FE951BD361BD7ABFC120A5054758EBA88FDD68FD84E39D3B09AC254\ -97D36B43CBE7B85A6A3CEBDA8DB4E5549C3EE51BB6FCB6AC1E:\ -6ADFC561835FDDD70A9FEB57C513165D12AEB3283F0DD7774DD58852DA9E969A\ -BDAF20DD44856FA60E11BDFA2DBB7E3347669FFF7A57A8D8D37431C2B309972D - -5C5FAF66F32E0F8311C32E8DA8284A4ED60891A5A7E50FB2956B3CBAA79FC66C\ -A376460E100415401FC2B8518C64502F187EA14BFC9503759705:\ -0E7459BDC857B949CC59A9C649B9625268BF9A11EA81EEEFA4ECDD410E2F6FD2\ -C78289C01365F99034FF8FA8C115DDCEBEFA26A8D6468F5030E641745950061E - -7167E1E02BE1A7CA69D788666F823AE4EEF39271F3C26A5CF7CEE05BCA831610\ -66DC2E217B330DF821103799DF6D74810EED363ADC4AB99F36046A:\ -2A8CE9DF40879B24DADF61C9131F694E5531ADE6B7AB071CA10ABDD3C2E4A22C\ -868A52986A329F880137EE76109770927D2658E63EB486D880290AC0782CF5BF - -2FDA311DBBA27321C5329510FAE6948F03210B76D43E7448D1689A063877B6D1\ -4C4F6D0EAA96C150051371F7DD8A4119F7DA5C483CC3E6723C01FB7D:\ -A83CE5A6A58376D57DB4C58DA1B46C131FF1BF8FF2DE5E8617FB37E5098398ED\ -B53F9888B8752A8AFF19178F2F6BD7A33FD36C59E4A631906280907FC1C5AB07 - -95D1474A5AAB5D2422ACA6E481187833A6212BD2D0F91451A67DD786DFC91DFE\ -D51B35F47E1DEB8A8AB4B9CB67B70179CC26F553AE7B569969CE151B8D:\ -9EBFCEA2DB1676EEE6B103119543C6049DEBD8FB8F1E01A5AB5B348E2919E14C\ -8CFE8E542F2AB747B0FD4A4C3EEE4019BB046E24BFE2091FB9C65DCA527B71AD - -C71BD7941F41DF044A2927A8FF55B4B467C33D089F0988AA253D294ADDBDB325\ -30C0D4208B10D9959823F0C0F0734684006DF79F7099870F6BF53211A88D:\ -97B08BE7653E9DF1B5AFA459EA750A3AC9BF3577BCC7E5344FC861184880926D\ -EF354E4C65B20EC66C47B7AFFD3E7493958BAB0A90724D3D8DD9E1D561FA60C2 - -F57C64006D9EA761892E145C99DF1B24640883DA79D9ED5262859DCDA8C3C32E\ -05B03D984F1AB4A230242AB6B78D368DC5AAA1E6D3498D53371E84B0C1D4BA:\ -EF8AAF08159BBCB88EFAC49A33A5248B7ED0544960D8DD54D748A91C0D84C69F\ -308BB54CB5EC97D3F81CDF76E68E0320815B93F2A00942F2168CBC18E8377708 - -E926AE8B0AF6E53176DBFFCC2A6B88C6BD765F939D3D178A9BDE9EF3AA131C61\ -E31C1E42CDFAF4B4DCDE579A37E150EFBEF5555B4C1CB40439D835A724E2FAE7:\ -C0A4D8DCA967772DBF6E5508C913E7BEBA1B749A2B1AC963D0676E6F1DCD4EBA\ -A3F909EF87DD849882DC8253347A5F6520B5B9F510973F443976455F923CFCB9 - -16E8B3D8F988E9BB04DE9C96F2627811C973CE4A5296B4772CA3EEFEB80A652B\ -DF21F50DF79F32DB23F9F73D393B2D57D9A0297F7A2F2E79CFDA39FA393DF1AC\ -00:\ -CF03C946EB7022F60FB5439462AC22684E47EAACBFFE19B797760B4A24A5238B\ -E9D90E17D40EA6FE7B2885CEF7DFB8BB489401CAA94F2DD6E04592E33E76B9D1 - -FC424EEB27C18A11C01F39C555D8B78A805B88DBA1DC2A42ED5E2C0EC737FF68\ -B2456D80EB85E11714FA3F8EABFB906D3C17964CB4F5E76B29C1765DB03D91BE\ -37FC:\ -2C35F1A57A17CB29403A2B40FC307BDE10BA8F7FEC7B94E1E42EB4EEB952AAD0\ -0EC46A26646CD51DB0C6B238189D7D470E21C29BF8710423CB5602CAB75E29E7 - -ABE3472B54E72734BDBA7D9158736464251C4F21B33FBBC92D7FAC9A35C4E332\ -2FF01D2380CBAA4EF8FB07D21A2128B7B9F5B6D9F34E13F39C7FFC2E72E47888\ -599BA5:\ -505E6E607C90C57BBE7CE52BB42DF3D90BC32DE554025730C84ED0F89A013288\ -5D7A40FADFF7A4B01DE4D29735AEFE0E0469F4F172B62A0DABA889E152308FC4 - -36F9F0A65F2CA498D739B944D6EFF3DA5EBBA57E7D9C41598A2B0E4380F3CF4B\ -479EC2348D015FFE6256273511154AFCF3B4B4BF09D6C4744FDD0F62D75079D4\ -40706B05:\ -7BE2C95413C589EC5AD69F8D80BFE9F26540D5C1832C7A49A31A8F5655D9CE8B\ -47D97C69CCCD693C211904142A5403DA7AD09FBDB825698FE201988FCCCD2BB2 - -ABC87763CAE1CA98BD8C5B82CABA54AC83286F87E9610128AE4DE68AC95DF5E3\ -29C360717BD349F26B872528492CA7C94C2C1E1EF56B74DBB65C2AC351981FDB\ -31D06C77A4:\ -8AAC9201D76DF13424A32552F04390E499B6168711B70C875789DDAA9B115F8B\ -8259A60D17835E2587F8901C3CA782DA9AFB28BA87B9FCBE05A47A42F48FCD48 - -94F7CA8E1A54234C6D53CC734BB3D3150C8BA8C5F880EAB8D25FED13793A9701\ -EBE320509286FD8E422E931D99C98DA4DF7E70AE447BAB8CFFD92382D8A77760\ -A259FC4FBD72:\ -AA52587D84586317028FB7D3C20892E0288BFE2FEABD76D7F89155FFE9CCBF1A\ -09FA0FFB0553E83F79AE58BD30A35FA54892B6ABA0093A012427DDAB71CDF819 - -13BD2811F6ED2B6F04FF3895ACEED7BEF8DCD45EB121791BC194A0F806206BFF\ -C3B9281C2B308B1A729CE008119DD3066E9378ACDCC50A98A82E20738800B6CD\ -DBE5FE9694AD6D:\ -48FC282F37A3E1FB5DF4D2DA1F7197EC899AE573CA08DF550E61EE847EEB1D24\ -C074FF46BCAEE224EC7D8CEA4256154F0C4D434E682834F6D827BFBDF75112F5 - -1EED9CBA179A009EC2EC5508773DD305477CA117E6D569E66B5F64C6BC64801C\ -E25A8424CE4A26D575B8A6FB10EAD3FD1992EDDDEEC2EBE7150DC98F63ADC323\ -7EF57B91397AA8A7:\ -6B4B0F126863552A6F40F45E295DC79B9BA2A88EA7C3B2F607AC1A8431A97844\ -C2A7B664443FB23C05739DF5494FE9824DB80B7F3E67872142F17E2C5544E1EF - -BA5B67B5EC3A3FFAE2C19DD8176A2EF75C0CD903725D45C9CB7009A900C0B0CA\ -7A2967A95AE68269A6DBF8466C7B6844A1D608AC661F7EFF00538E323DB5F2C6\ -44B78B2D48DE1A08AA:\ -7EEC7B730056B1BD4F6FFC186FB45591E50CD93CF6E4FC958889F82D3F32C5C7\ -4D03A4BCF7D2754298F134698AF4559B0E29BAAA365CC00DB0D51D407179C56D - -0EFA26AC5673167DCACAB860932ED612F65FF49B80FA9AE65465E5542CB62075\ -DF1C5AE54FBA4DB807BE25B070033EFA223BDD5B1D3C94C6E1909C02B620D4B1\ -B3A6C9FED24D70749604:\ -79CB925ACA072EBB3B49A9D0E59BB07DD1C223C1F26C91768B929472C51B977F\ -85C6CEEB54BCE89CF9FF6155D7FE8091540F1348CE9592A6403F92105477870E - -BBFD933D1FD7BF594AC7F435277DC17D8D5A5B8E4D13D96D2F64E771ABBD51A5\ -A8AEA741BECCBDDB177BCEA05243EBD003CFDEAE877CCA4DA94605B67691919D\ -8B033F77D384CA01593C1B:\ -B5D1ED8F039044BCFEF41E99B2F564F45991B329B503FC91FA29D2408512F871\ -1E9DB66F8AE172164650545AE9E3DB32AA369EC47E81A77111276E6CA38E4D92 - -90078999FD3C35B8AFBF4066CBDE335891365F0FC75C1286CDD88FA51FAB94F9\ -B8DEF7C9AC582A5DBCD95817AFB7D1B48F63704E19C2BAA4DF347F48D4A6D603\ -013C23F1E9611D595EBAC37C:\ -782C008A9EE3DDA0A182267185C995A2AF737BA8CB2F6179F2CDF52505F8D933\ -E712FC4E56D10E175EC8CDD62DE6529CE1F078BFA0DC7A5284F8C565182F85D9 - -64105ECA863515C20E7CFBAA0A0B8809046164F374D691CDBD6508AAABC1819F\ -9AC84B52BAFC1B0FE7CDDBC554B608C01C8904C669D8DB316A0953A4C68ECE32\ -4EC5A49FFDB59A1BD6A292AA0E:\ -91A0241EDA8CA597CBB0F703AB7DBAAF859CFF77B20401AD46230CE3B2BEEF66\ -85775DE37576014D8DA1BA672D47AAD95FB53C590B650634CEBB43A175738569 - -D4654BE288B9F3B711C2D02015978A8CC57471D5680A092AA534F7372C71CEAA\ -B725A383C4FCF4D8DEAA57FCA3CE056F312961ECCF9B86F14981BA5BED6AB5B4\ -498E1F6C82C6CAE6FC14845B3C8A:\ -00B02DBCB7A3BC117701F2F159FC4492923C437D3369833A9BD09E78E260D48D\ -37168D36C49777B2E68E6FE9846106A6AB8768C3971FAB31FD922AACB87D1CAC - -12D9394888305AC96E65F2BF0E1B18C29C90FE9D714DD59F651F52B88B3008C5\ -88435548066EA2FC4C101118C91F32556224A540DE6EFDDBCA296EF1FB00341F\ -5B01FECFC146BDB251B3BDAD556CD2:\ -3DEDF819B357DFAB1C7092ABD872A1554DD0962E9944EEF9F7F8BCE830F2D74F\ -1D9BA2B748BBC6EE0B7600BE8CB0FFCB79924D9F51CDB9B06BD6FD37F3050229 - -871A0D7A5F36C3DA1DFCE57ACD8AB8487C274FAD336BC137EBD6FF4658B547C1\ -DCFAB65F037AA58F35EF16AFF4ABE77BA61F65826F7BE681B5B6D5A1EA8085E2\ -AE9CD5CF0991878A311B549A6D6AF230:\ -5FBE194557B0426F96BA60712176DF073EAFE04F2A50515455412EA3D80C1167\ -58AD952598F48031612181D82A16EFE4668FFB3BCCE9563A772FE416FF6DB3B3 - -E90B4FFEF4D457BC7711FF4AA72231CA25AF6B2E206F8BF859D8758B89A7CD36\ -105DB2538D06DA83BAD5F663BA11A5F6F61F236FD5F8D53C5E89F183A3CEC615\ -B50C7C681E773D109FF7491B5CC22296C5:\ -2E8AB1619859C11473DC7C474CE8B0AE44B1C38417816FD95B9E0614F31E51EB\ -B1DD16D1CBB584C4EBD28AA99F4A68E09DFE3AD462487F2608124B7528293045 - -E728DE62D75856500C4C77A428612CD804F30C3F10D36FB219C5CA0AA30726AB\ -190E5F3F279E0733D77E7267C17BE27D21650A9A4D1E32F649627638DBADA970\ -2C7CA303269ED14014B2F3CF8B894EAC8554:\ -DB2D182BDBAC6AC866537E24712332CAE74DC3D36168982E4453DD6E00965834\ -5255013BC0A54FCA17AEEDCC4BEB79BDEE192CFAB516D24591C8699F7C758179 - -6348F229E7B1DF3B770C77544E5166E081850FA1C6C88169DB74C76E42EB983F\ -ACB276AD6A0D1FA7B50D3E3B6FCD799EC97470920A7ABED47D288FF883E24CA2\ -1C7F8016B93BB9B9E078BDB9703D2B781B616E:\ -90A2C05F7001D985B587A046B488BF4ED29D75CC03A745731B5B0CE51BB86387\ -C4CE34018A6D906EB7BEB41A09AFE9FEDD99AACC41B4556F75229C8688C7FCA2 - -4B127FDE5DE733A1680C2790363627E63AC8A3F1B4707D982CAEA258655D9BF1\ -8F89AFE54127482BA01E08845594B671306A025C9A5C5B6F93B0A39522DC8774\ -37BE5C2436CBF300CE7AB6747934FCFC30AEAAF6:\ -EA3991C4A8A5F0146402DE4AE235054C78A48DCA340A7D4AD8753995F82347EC\ -FC0054D64EB4F20ABC4F415C54701CBC61A7B239A7C221B833D9EA9F94B154E8 - -08461F006CFF4CC64B752C957287E5A0FAABC05C9BFF89D23FD902D324C79903\ -B48FCB8F8F4B01F3E4DDB483593D25F000386698F5ADE7FAADE9615FDC50D327\ -85EA51D49894E45BAA3DC707E224688C6408B68B11:\ -1313023B753ED1727F13CC67A64B989A8BF6548324DF9854D8D5A963ED3D8602\ -57FE6522B9C6D6CB1BCADF322C985601BA36F7E67110192094AA8F9869A458A8 - -68C8F8849B120E6E0C9969A5866AF591A829B92F33CD9A4A3196957A148C4913\ -8E1E2F5C7619A6D5EDEBE995ACD81EC8BB9C7B9CFCA678D081EA9E25A75D39DB\ -04E18D475920CE828B94E72241F24DB72546B352A0E4:\ -9BCA2A1A5546A11275BF42F0B48492868359C78D94785A0EE12DC1C3D70A8E97\ -EB462148FAED1FFA4DAB0E91519BD36C0C5C5FE7CFCFF3E180680318E1FCF75B - -B8D56472954E31FB54E28FCA743F84D8DC34891CB564C64B08F7B71636DEBD64\ -CA1EDBDBA7FC5C3E40049CE982BBA8C7E0703034E331384695E9DE76B5104F2F\ -BC4535ECBEEBC33BC27F29F18F6F27E8023B0FBB6F563C:\ -8492F5E621E82FDBFF1976B1BEECFF7D137805B5736AB49216122A95396B863A\ -0481212B6DABA8B05E29E287BB0E2F588F86407C84DBFB894E6ACFC6F6B2E571 - -0D58AC665FA84342E60CEFEE31B1A4EACDB092F122DFC68309077AED1F3E528F\ -578859EE9E4CEFB4A728E946324927B675CD4F4AC84F64DB3DACFE850C1DD187\ -44C74CECCD9FE4DC214085108F404EAB6D8F452B5442A47D:\ -EEBE4EC0FE3E0266527F4D9F57A017637EAB92377D82B15856A55A22B008DF67\ -F27AA5AC04E1DEEEB2C819CE41DB07DBF6DCAF17A192A4371A1E92BADF1E6389 - -1755E2D2E5D1C1B0156456B539753FF416651D44698E87002DCF61DCFA2B4E72\ -F264D9AD591DF1FDEE7B41B2EB00283C5AEBB3411323B672EAA145C512518510\ -4F20F335804B02325B6DEA65603F349F4D5D8B782DD3469CCD:\ -9E36E6291BC2296CB4BA71109CEDCC2A3F0B4F1AE5E5406DC4B3E594551D5C70\ -E6F814D2C9B8413103EF07535886B4AC518AAF7AED64ABED7A5B0A26F7171425 - -B180DE1A611111EE7584BA2C4B020598CD574AC77E404E853D15A101C6F5A2E5\ -C801D7D85DC95286A1804C870BB9F00FD4DCB03AA8328275158819DCAD7253F3\ -E3D237AEAA7979268A5DB1C6CE08A9EC7C2579783C8AFC1F91A7:\ -F1089483A00B2601BE9C16469A090EFC49FCB70E62AC0FFEA2D1E508083CD5D4\ -1DCF2DAAE1E0EAC217859E5FEADDCB782AC471C01D7266136185D37B568E9606 - -CF3583CBDFD4CBC17063B1E7D90B02F0E6E2EE05F99D77E24E560392535E47E0\ -5077157F96813544A17046914F9EFB64762A23CF7A49FE52A0A4C01C630CFE87\ -27B81FB99A89FF7CC11DCA5173057E0417B8FE7A9EFBA6D95C555F:\ -D063EA794CFD2ED9248665A6084A7B99051C1051E41B7D9DCB1537A1C79CBA6D\ -EB4D844C6A618E43C7CA020D16976999684FEB084616F707209F75C4BD584D86 - -072FC02340EF99115BAD72F92C01E4C093B9599F6CFC45CB380EE686CB5EB019\ -E806AB9BD55E634AB10AA62A9510CC0672CD3EDDB589C7DF2B67FCD3329F61B1\ -A4441ECA87A33C8F55DA4FBBAD5CF2B2527B8E983BB31A2FADEC7523:\ -424A86D746C87C85DABD1DAE298A488E4CA2183DE692D1D01C4B7994EE5124F9\ -004BEA84933C311CC38EA6F604A7769EE178E1EC160A9891C42C462A13A62286 - -76EECF956A52649F877528146DE33DF249CD800E21830F65E90F0F25CA9D6540\ -FDE40603230ECA6760F1139C7F268DEBA2060631EEA92B1FFF05F93FD5572FBE\ -29579ECD48BC3A8D6C2EB4A6B26E38D6C5FBF2C08044AEEA470A8F2F26:\ -A9403C26A96DE2C3D359EE29F3FD1C581154852D19AD12884B79E7082D2DA22E\ -C83553BABA2BDFF2A2FA15947A8E6ACD5F5D113EC091BFD1962A0A10401D2C98 - -7ADC0B6693E61C269F278E6944A5A2D8300981E40022F839AC644387BFAC9086\ -650085C2CDC585FEA47B9D2E52D65A2B29A7DC370401EF5D60DD0D21F9E2B90F\ -AE919319B14B8C5565B0423CEFB827D5F1203302A9D01523498A4DB10374:\ -3D23632EE4C2D4F4118A02A677B5A32427C72BA54899BA2E6CCD22EC3DEFE0FC\ -B052E3F83D35786CEA2080EED148A0A94628E735202E6B2809994C5F5BDAFDD6 - -E1FFFA9826CCE8B86BCCEFB8794E48C46CDF372013F782ECED1E378269B7BE2B\ -7BF51374092261AE120E822BE685F2E7A83664BCFBE38FE8633F24E633FFE198\ -8E1BC5ACF59A587079A57A910BDA60060E85B5F5B6F776F0529639D9CCE4BD:\ -D8FA886884CE577A7282DECEACF4786E7C68FC69B141137FF5DC7CB3C5F8ABC8\ -45716DD27397E8BD5CE245107A984A3F8B21F19F99ED40118621DC85303A30B4 - -69F9ABBA65592EE01DB4DCE52DBAB90B08FC04193602792EE4DAA263033D5908\ -1587B09BBE49D0B49C9825D22840B2FF5D9C5155F975F8F2C2E7A90C75D2E4A8\ -040FE39F63BBAFB403D9E28CC3B86E04E394A9C9E8065BD3C85FA9F0C7891600:\ -C768CD313602FABB2193F9EDBF667B4CDABD57D5FF60BDC22BA7BAD5319EA04E\ -7CBEC5D4B4C4560AD52609FDD22750B618951796376ED41B2A8EAFFDD9927722 - -38A10A352CA5AEDFA8E19C64787D8E9C3A75DBF3B8674BFAB29B5DBFC15A63D1\ -0FAE66CD1A6E6D2452D557967EAAD89A4C98449787B0B3164CA5B717A93F24EB\ -0B506CEB70CBBCB8D72B2A72993F909AAD92F044E0B5A2C9AC9CB16A0CA2F81F\ -49:\ -8562CE9399806623B2695712266AF3D4C14F77D2449143379246962C22398C81\ -3544A7DEE4C4847F09D3CBE437349B7FC6738AC97075B5DD9E2ADD6ECAA610F4 - -6D8C6E449BC13634F115749C248C17CD148B72157A2C37BF8969EA83B4D6BA8C\ -0EE2711C28EE11495F43049596520CE436004B026B6C1F7292B9C436B055CBB7\ -2D530D860D1276A1502A5140E3C3F54A93663E4D20EDEC32D284E25564F62495\ -5B52:\ -99ADE7B13E8E79AEA6ED01A25E10E401CD1D055884575EAB3E66B2294F03F8D5\ -DBF72AB1AE39103189383EBFD2E43258510C124A894A793B206FAC752C035789 - -6EFCBCAF451C129DBE00B9CEF0C3749D3EE9D41C7BD500ADE40CDC65DEDBBBAD\ -B885A5B14B32A0C0D087825201E303288A733842FA7E599C0C514E078F05C821\ -C7A4498B01C40032E9F1872A1C925FA17CE253E8935E4C3C71282242CB716B20\ -89CCC1:\ -D12831BA39DBCD41F56BC7FC071BDAABFB6E7572D08B2FDA3BDDFC6FA5662F4B\ -DBFA431CA2E38B18172709072E50120DB6BE93E86CB4ACE3C11DD0E1F3F5C712 - -433C5303131624C0021D868A30825475E8D0BD3052A022180398F4CA4423B982\ -14B6BEAAC21C8807A2C33F8C93BD42B092CC1B06CEDF3224D5ED1EC29784444F\ -22E08A55AA58542B524B02CD3D5D5F6907AFE71C5D7462224A3F9D9E53E7E084\ -6DCBB4CE:\ -527D28E341E6B14F4684ADB4B824C496C6482E51149565D3D17226828884306B\ -51D6148A72622C2B75F5D3510B799D8BDC03EAEDE453676A6EC8FE03A1AD0EAB - -A873E0C67CA639026B6683008F7AA6324D4979550E9BCE064CA1E1FB97A30B14\ -7A24F3F666C0A72D71348EDE701CF2D17E2253C34D1EC3B647DBCEF2F879F4EB\ -881C4830B791378C901EB725EA5C172316C6D606E0AF7DF4DF7F76E490CD30B2\ -BADF45685F:\ -CACDCF8BF855040E9795C422069D8E37B6286066A2197A320BD934061F669952\ -27BE6B85FD928B834D3CA45E1AC3844D9DC66D61581E7799CCFDE008639AB3DD - -006917B64F9DCDF1D2D87C8A6173B64F6587168E80FAA80F82D84F60301E561E\ -312D9FBCE62F39A6FB476E01E925F26BCC91DE621449BE6504C504830AAE3940\ -96C8FC7694651051365D4EE9070101EC9B68086F2EA8F8AB7B811EA8AD934D5C\ -9B62C60A4771:\ -F454A953501E191A12A80C7A5398F081CEF738E25D48B076A52F77FB09EF0BC2\ -325116020BB06C2C585DA9F115BD9D8F13B50E8E1FB1664450FAE690B7783400 - -F13C972C52CB3CC4A4DF28C97F2DF11CE089B815466BE88863243EB318C2ADB1\ -A417CB1041308598541720197B9B1CB5BA2318BD5574D1DF2174AF14884149BA\ -9B2F446D609DF240CE335599957B8EC80876D9A085AE084907BC5961B20BF5F6\ -CA58D5DAB38ADB:\ -5F968CC6ECF71C588A3C3BA68858BBFF96861F66C0733FD61FA91A479A49618D\ -F22D9490219DF8008DC78840AE022C5D41AF2B890D0214E562DA8DF0CB3F8522 - -E35780EB9799AD4C77535D4DDB683CF33EF367715327CF4C4A58ED9CBDCDD486\ -F669F80189D549A9364FA82A51A52654EC721BB3AAB95DCEB4A86A6AFA93826D\ -B923517E928F33E3FBA850D45660EF83B9876ACCAFA2A9987A254B137C6E140A\ -21691E1069413848:\ -E7149461F9CD00B71C216C50041B3EDA9707D7360D4C21740C44C212256A31DA\ -398FE09708E450EA4E2826B7EC20BEF76CD2FBD9D096AF6F77F84ABC2E4FB093 - -64EC021C9585E01FFE6D31BB50D44C79B6993D72678163DB474947A053674619\ -D158016ADB243F5C8D50AA92F50AB36E579FF2DABB780A2B529370DAA299207C\ -FBCDD3A9A25006D19C4F1FE33E4B1EAEC315D8C6EE1E730623FD1941875B924E\ -B57D6D0C2EDC4E78D6:\ -77097413CAA5A2D38259D47EC078871FA09EE5614D4C14FEB7A95C921C0AAE93\ -B8737A6DC89E57693BE8A0710206664B80B657A1079605A0FF9664BBCB0722D6 - -5954BAB512CF327D66B5D9F296180080402624AD7628506B555EEA8382562324\ -CF452FBA4A2130DE3E165D11831A270D9CB97CE8C2D32A96F50D71600BB4CA26\ -8CF98E90D6496B0A6619A5A8C63DB6D8A0634DFC6C7EC8EA9C006B6C456F1B20\ -CD19E781AF20454AC880:\ -55D8E5202360D7D5841419362F864CC900E11C582FD0CAB2FF5F1680F6CE927B\ -5379E27A335EBAFE1286B9D4A172AB761A36EADE60F10468EAC4CEAFBF63C7CC - -03D9F92B2C565709A568724A0AFF90F8F347F43B02338F94A03ED32E6F33666F\ -F5802DA4C81BDCE0D0E86C04AFD4EDC2FC8B4141C2975B6F07639B1994C973D9\ -A9AFCE3D9D365862003498513BFA166D2629E314D97441667B007414E739D7FE\ -BF0FE3C32C17AA188A8683:\ -EFFB03B497ADD6230A0ED99122EA868138644AB81E861491E526FAE37C39872C\ -A731804A0004599849478A787BC7FCE21903ED551D7DB881D2A2C367B6168547 - -F31E8B4F9E0621D531D22A380BE5D9ABD56FAEC53CBD39B1FAB230EA67184440\ -E5B1D15457BD25F56204FA917FA48E669016CB48C1FFC1E1E45274B3B47379E0\ -0A43843CF8601A5551411EC12503E5AAC43D8676A1B2297EC7A0800DBFEE0429\ -2E937F21C005F17411473041:\ -A2269A6EF2EA8F1CF8BC3394D27657B0DB996C55E7C47784C0B451202FC52796\ -79D79E06F8DBAA9A63665FD0E914D13C6E056EA006DAAF4CB61D2629468E3D25 - -758EA3FEA738973DB0B8BE7E599BBEF4519373D6E6DCD7195EA885FC991D8967\ -62992759C2A09002912FB08E0CB5B76F49162AEB8CF87B172CF3AD190253DF61\ -2F77B1F0C532E3B5FC99C2D31F8F65011695A087A35EE4EEE5E334C369D8EE5D\ -29F695815D866DA99DF3F79403:\ -5A2970D5EC346A8E4E1D5D1E57DC22F6875DDF1CE3626B49A91109E0DE991033\ -E932F883B6A795016D5014E268304ABE2F7577505AAB00956911781F075D113A - -47C6E0C2B74948465921868804F0F7BD50DD323583DC784F998A93CD1CA4C6EF\ -84D41DC81C2C40F34B5BEE6A93867B3BDBA0052C5F59E6F3657918C382E771D3\ -3109122CC8BB0E1E53C4E3D13B43CE44970F5E0C079D2AD7D7A3549CD75760C2\ -1BB15B447589E86E8D76B1E9CED2:\ -2B4356A64DF31936B27F4530F076EE73E71E4E48ABDE04FF1F548E0727F4A581\ -0B71874187FD96ED510D0D6886AF11960A0B3BAD1EE75DDA4CDC148E162EDAE9 - -F690A132AB46B28EDFA6479283D6444E371C6459108AFD9C35DBD235E0B6B6FF\ -4C4EA58E7554BD002460433B2164CA51E868F7947D7D7A0D792E4ABF0BE5F450\ -853CC40D85485B2B8857EA31B5EA6E4CCFA2F3A7EF3380066D7D8979FDAC618A\ -AD3D7E886DEA4F005AE4AD05E5065F:\ -EDCB59984267BB00402A78F2CA345EF2494956172E10927EE63AFF23D0C834BC\ -A50C47CDBFFD8995036307E9ED4B143E853450367D0E14AFC8490073653CD850 - -58D6A99BC6458824B256916770A8417040721CCCFD4B79EACD8B65A3767CE5BA\ -7E74104C985AC56B8CC9AEBD16FEBD4CDA5ADB130B0FF2329CC8D611EB14DAC2\ -68A2F9E633C99DE33997FEA41C52A7C5E1317D5B5DAED35EBA7D5A60E45D1FA7\ -EAABC35F5C2B0A0F2379231953322C4E:\ -D0B453FBE709C69125DC8FE9E8AE9245211612970373B454F8656A755E8435B3\ -21DD3A980FA28719641747E254DC42C9BF012B4D6DBD7ED13020A83B44C504AA - -BEFAB574396D7F8B6705E2D5B58B2C1C820BB24E3F4BAE3E8FBCD36DBF734EE1\ -4E5D6AB972AEDD3540235466E825850EE4C512EA9795ABFD33F330D9FD7F79E6\ -2BBB63A6EA85DE15BEAEEA6F8D204A28956059E2632D11861DFB0E65BC07AC8A\ -159388D5C3277E227286F65FF5E5B5AEC1:\ -FE97C011E525110E03149FAC4179891AFCB6304E1CFD9D84CB7389755554EE72\ -3571D76B80B9333A695884192340B3FE022D4A233B7AA8E8C7686745CFE75E67 - -8E58144FA9179D686478622CE450C748260C95D1BA43B8F9B59ABECA8D93488D\ -A73463EF40198B4D16FB0B0707201347E0506FF19D01BEA0F42B8AF9E71A1F1B\ -D168781069D4D338FDEF00BF419FBB003031DF671F4A37979564F69282DE9C65\ -407847DD0DA505AB1641C02DEA4F0D834986:\ -1BC4AC8D979CA62A7FC81C710CEDF65AF56C9B652EEC356AA92DA924D370FDEB\ -DF076F91BA4FE1EC5CD78FC4C8885EA4304BA2E8E64944AB4BF4D1B3D7DEE745 - -B55C10EAE0EC684C16D13463F29291BF26C82E2FA0422A99C71DB4AF14DD9C7F\ -33EDA52FD73D017CC0F2DBE734D831F0D820D06D5F89DACC485739144F8CFD47\ -99223B1AFF9031A105CB6A029BA71E6E5867D85A554991C38DF3C9EF8C1E1E9A\ -7630BE61CAABCA69280C399C1FB7A12D12AEFC:\ -76E970E9449D868067CD23B1A202CBDC99693FF6FA74BA644EC41CBF8FD139CB\ -0F5D1106FCD6C871C315FF41C3EAF99C636288F0FCF6A40B480CB881D87E098F - -2EEEA693F585F4ED6F6F8865BBAE47A6908AECD7C429E4BEC4F0DE1D0CA0183F\ -A201A0CB14A529B7D7AC0E6FF6607A3243EE9FB11BCF3E2304FE75FFCDDD6C5C\ -2E2A4CD45F63C962D010645058D36571404A6D2B4F44755434D76998E83409C3\ -205AA1615DB44057DB991231D2CB42624574F545:\ -871666B230C5AD75B96D63BE22870621C68FD0899655BA7DC0E0E5299915AF25\ -2C226DD7217601D3A6880D55EE5A20B10820E21C74F730EEA9D47FE26DEBE006 - -DAB11DC0B047DB0420A585F56C42D93175562852428499F66A0DB811FCDDDAB2\ -F7CDFFED1543E5FB72110B64686BC7B6887A538AD44C050F1E42631BC4EC8A9F\ -2A047163D822A38989EE4AAB01B4C1F161B062D873B1CFA388FD301514F62224\ -157B9BEF423C7783B7AAC8D30D65CD1BBA8D689C2D:\ -7E3EF62552B28A2B18A71CEEF2DD8659C8BDF291385AD02FED353775E01594F2\ -7CC28CC78663E17CB8B39FD4EA48D494AD0BD7AEE9277EC9B21E46523812736E - -42E99A2F80AEE0E001279A2434F731E01D34A44B1A8101726921C0590C30F312\ -0EB83059F325E894A5AC959DCA71CE2214799916424E859D27D789437B9D2724\ -0BF8C35ADBAFCECC322B48AA205B293962D858652ABACBD588BCF6CBC388D099\ -3BD622F96ED54614C25B6A9AA527589EAAFFCF17DDF7:\ -0B87F6EBAA293FF79C873820846C0FCC943E3A83BD8111931FF03FF3B0BF785C\ -961CA84CF3FD40E0D831DBAEA595498FC12DA88CC507DE720A35C01D73FC9595 - -3C9B46450C0F2CAE8E3823F8BDB4277F31B744CE2EB17054BDDC6DFF36AF7F49\ -FB8A2320CC3BDF8E0A2EA29AD3A55DE1165D219ADEDDB5175253E2D1489E9B6F\ -DD02E2C3D3A4B54D60E3A47334C37913C5695378A669E9B72DEC32AF5434F93F\ -46176EBF044C4784467C700470D0C0B40C8A088C815816:\ -681BABBD2E351501C285812E06F20940FD865516CF028B4787D1FFCCD0D53770\ -5E8E9B73C608D5A8DC4F08EEE0902AC12936DDB8C7B29228C6AAF8D0B909C30D - -D1E654B77CB155F5C77971A64DF9E5D34C26A3CAD6C7F6B300D39DEB19100946\ -91ADAA095BE4BA5D86690A976428635D5526F3E946F7DC3BD4DBC78999E65344\ -1187A81F9ADCD5A3C5F254BC8256B0158F54673DCC1232F6E918EBFC6C51CE67\ -EAEB042D9F57EEC4BFE910E169AF78B3DE48D137DF4F2840:\ -C46D2262F186421D07FD740F922306D99B1E3826F6A32486BE5A91DC298F177F\ -50915E17EB4EA2E45494C501736CEFB0E22ACD989DA41AC7BB7BE56B04BFB5E1 - -626F68C18A69A6590159A9C46BE03D5965698F2DAC3DE779B878B3D9C421E0F2\ -1B955A16C715C1EC1E22CE3EB645B8B4F263F60660EA3028981EEBD6C8C3A367\ -285B691C8EE56944A7CD1217997E1D9C21620B536BDBD5DE8925FF71DEC6FBC0\ -6624AB6B21E329813DE90D1E572DFB89A18120C3F606355D25:\ -0B3DBC770332823E686470D842104D3B3C1452F64F1BCC71C5F3FAD1C0D93F21\ -EFBD48D73C7D4909227B06B06D54057A74E03C36D9C106EBA79411F1E6E1CFFE - -651A6FB3C4B80C7C68C6011675E6094EB56ABF5FC3057324EBC6477825061F9F\ -27E7A94633ABD1FA598A746E4A577CAF524C52EC1788471F92B8C37F23795CA1\ -9D559D446CAB16CBCDCE90B79FA1026CEE77BF4AB1B503C5B94C2256AD75B3EA\ -C6FD5DCB96ACA4B03A834BFB4E9AF988CECBF2AE597CB9097940:\ -CA46276B0DC2EC4424BB7136EAE1AF207BD6E5CD833691C7D37B2CAEAF4F484B\ -96A3476FC25FEB206AD37CF975383DD522CA0CC6200A3867FEE7F178D6953FEF - -8AAF072FCE8A2D96BC10B3C91C809EE93072FB205CA7F10ABD82ECD82CF040B1\ -BC49EA13D1857815C0E99781DE3ADBB5443CE1C897E55188CEAF221AA9681638\ -DE05AE1B322938F46BCE51543B57ECDB4C266272259D1798DE13BE90E10EFEC2\ -D07484D9B21A3870E2AA9E06C21AA2D0C9CF420080A80A91DEE16F:\ -815B44668BF3751A3392940FCA54C1E3E4EF5227B052332AFE6EB7A10AC8AD64\ -38CE8A0277AA14BCC41590F6D6A10B6B1BABE6BB4F8D777EA576D634B0BE41C0 - -53F918FD00B1701BD504F8CDEA803ACCA21AC18C564AB90C2A17DA592C7D6968\ -8F6580575395551E8CD33E0FEF08CA6ED4588D4D140B3E44C032355DF1C53156\ -4D7F4835753344345A6781E11CD5E095B73DF5F82C8AE3AD00877936896671E9\ -47CC52E2B29DCD463D90A0C9929128DA222B5A211450BBC0E02448E2:\ -F47799A8547FC9C07D0F808029E7335607D72224BE286E118657BD13A2C51D03\ -74426D9EEB7693BDE5EC6181574C1404DF29BF96941862BA1A0A9A5903319498 - -A64599B8A61B5CCEC9E67AED69447459C8DA3D1EC6C7C7C82A7428B9B584FA67\ -E90F68E2C00FBBED4613666E5168DA4A16F395F7A3C3832B3B134BFC9CBAA95D\ -2A0FE252F44AC6681EB6D40AB91C1D0282FED6701C57463D3C5F2BB8C6A7301F\ -B4576AA3B5F15510DB8956FF77478C26A7C09BEA7B398CFC83503F538E:\ -8A0AE12A9E797FB7BD46CBB910076A32873BFFCB9AD98B4FC37316AED681EC49\ -C65ABBB9586405FF96CC80DA4BB8FA73BE1BA9E737595B2307CF369D61BAF59C - -0E3AB0E054739B00CDB6A87BD12CAE024B54CB5E550E6C425360C2E87E59401F\ -5EC24EF0314855F0F56C47695D56A7FB1417693AF2A1ED5291F2FEE95F75EED5\ -4A1B1C2E81226FBFF6F63ADE584911C71967A8EB70933BC3F5D15BC91B5C2644\ -D9516D3C3A8C154EE48E118BD1442C043C7A0DBA5AC5B1D5360AAE5B9065:\ -A3C6D58872BAFDEDFDD50C0309089240D6977D4D3D59FB3F2BE133C57D2DFCFC\ -C7C027296F74FE58B2A9A6CB7E5D70088934D051CBA57001FE27965CFA071A6F - -A62FC595B4096E6336E53FCDFC8D1CC175D71DAC9D750A6133D23199EAAC2882\ -07944CEA6B16D27631915B4619F743DA2E30A0C00BBDB1BBB35AB852EF3B9AEC\ -6B0A8DCC6E9E1ABAA3AD62AC0A6C5DE765DE2C3711B769E3FDE44A74016FFF82\ -AC46FA8F1797D3B2A726B696E3DEA5530439ACEE3A45C2A51BC32DD055650B:\ -11E0E521B55F02BEFC7207C06444FCC0C16DCF6F34962921B709A322F35E2193\ -477B0DFA21F213F209705FF3958531A75D94346075FEB29A288B62E2315AE270 - -2B6DB7CED8665EBE9DEB080295218426BDAA7C6DA9ADD2088932CDFFBAA1C141\ -29BCCDD70F369EFB149285858D2B1D155D14DE2FDB680A8B027284055182A0CA\ -E275234CC9C92863C1B4AB66F304CF0621CD54565F5BFF461D3B461BD40DF281\ -98E3732501B4860EADD503D26D6E69338F4E0456E9E9BAF3D827AE685FB1D817:\ -AEBBA57C8ED5AF6EC93F4AA45772FF5167B7EA88DFA71364F37D8FC5FDB7DC3B\ -2C8331A08023F21D110B7D821E2DC7E860826235E7E6291912AC521384747354 - -10DB509B2CDCABA6C062AE33BE48116A29EB18E390E1BBADA5CA0A2718AFBCD2\ -3431440106594893043CC7F2625281BF7DE2655880966A23705F0C5155C2F5CC\ -A9F2C2142E96D0A2E763B70686CD421B5DB812DACED0C6D65035FDE558E94F26\ -B3E6DDE5BD13980CC80292B723013BD033284584BFF27657871B0CF07A849F4A\ -E2:\ -2DF1E09540B53A17222DAB66275CEBECEB1F8A5DB26B0C41F955FA0549F3367E\ -82299E0CD673958AF7DFA04D741AA63BA2C1AD351764DC9228D215F22C24CA58 - -9334DE60C997BDA6086101A6314F64E4458F5FF9450C509DF006E8C547983C65\ -1CA97879175AABA0C539E82D05C1E02C480975CBB30118121061B1EBAC4F8D9A\ -3781E2DB6B18042E01ECF9017A64A0E57447EC7FCBE6A7F82585F7403EE2223D\ -52D37B4BF426428613D6B4257980972A0ACAB508A7620C1CB28EB4E9D30FC413\ -61EC:\ -8299CFCEA5F00C93A5EB8A84A13628A68B26796D53FB6A986C95B0B1C248920F\ -B946D8AF98343D14EFC74A4611C53CCC27C5F14C7237AF28364346CA5CD70D1A - -E88AB086891693AA535CEB20E64C7AB97C7DD3548F3786339897A5F0C3903154\ -9CA870166E477743CCFBE016B4428D89738E426F5FFE81626137F17AECFF61B7\ -2DBEE2DC20961880CFE281DFAB5EE38B1921881450E16032DE5E4D55AD8D4FCA\ -609721B0692BAC79BE5A06E177FE8C80C0C83519FB3347DE9F43D5561CB8107B\ -9B5EDC:\ -AF57BEA357FCBA0579C4204C0F8DFF181BC8A473014BAE78DF76069DE478B2F2\ -A390327A65BDD24BE926551C78F70B0D5F1C8F4B970997D557F06336A315A749 - -FD19E01A83EB6EC810B94582CB8FBFA2FCB992B53684FB748D2264F020D3B960\ -CB1D6B8C348C2B54A9FCEA72330C2AAA9A24ECDB00C436ABC702361A82BB8828\ -B85369B8C72ECE0082FE06557163899C2A0EFA466C33C04343A839417057399A\ -63A3929BE1EE4805D6CE3E5D0D0967FE9004696A5663F4CAC9179006A2CEB755\ -42D75D68:\ -B299E421061EF26C32BB4F50EE669D05FEB2CCBA3297289C30E6434057B3EA7F\ -617BBBF7A5555328FC291F794987577F458350DF99AF3A5778300BE0BD80164F - -59AE20B6F7E0B3C7A989AFB28324A40FCA25D8651CF1F46AE383EF6D8441587A\ -A1C04C3E3BF88E8131CE6145CFB8973D961E8432B202FA5AF3E09D625FAAD825\ -BC19DA9B5C6C20D02ABDA2FCC58B5BD3FE507BF201263F30543819510C12BC23\ -E2DDB4F711D087A86EDB1B355313363A2DE996B891025E147036087401CCF3CA\ -7815BF3C49:\ -CBDFB0D0E720F87259DD0D0B4E9C5319E7F88AAEF7F7AB2FA1CA639AFA016082\ -2F96B3C357A4894CE53CD713FAB23AD052E8565FA3B3A523CB9CE39A6BD535CC - -77EE804B9F3295AB2362798B72B0A1B2D3291DCEB8139896355830F34B3B3285\ -61531F8079B79A6E9980705150866402FDC176C05897E359A6CB1A7AB067383E\ -B497182A7E5AEF7038E4C96D133B2782917417E391535B5E1B51F47D8ED7E4D4\ -025FE98DC87B9C1622614BFF3D1029E68E372DE719803857CA52067CDDAAD958\ -951CB2068CC6:\ -059A181C83A22BFF0AA9BAA22D872BDF23CBE341032CF0BF57997A4A1924D24F\ -BAE9DCA14B6D290692B6A6B6344CBE531734F58AD0224C6E39BD1E87F870AAD6 - -B771D5CEF5D1A41A93D15643D7181D2A2EF0A8E84D91812F20ED21F147BEF732\ -BF3A60EF4067C3734B85BC8CD471780F10DC9E8291B58339A677B960218F71E7\ -93F2797AEA349406512829065D37BB55EA796FA4F56FD8896B49B2CD19B43215\ -AD967C712B24E5032D065232E02C127409D2ED4146B9D75D763D52DB98D949D3\ -B0FED6A8052FBB:\ -9EDEEB10EE1B7BB8F16A280D8CC3EDA5E909C554419DDC523B69ECEDF2ADF3B3\ -C9BC66FEF365342471C458126F083A3B8E7C0C9D9D77E9F90196B71F9AADF492 - -B32D95B0B9AAD2A8816DE6D06D1F86008505BD8C14124F6E9A163B5A2ADE55F8\ -35D0EC3880EF50700D3B25E42CC0AF050CCD1BE5E555B23087E04D7BF9813622\ -780C7313A1954F8740B6EE2D3F71F768DD417F520482BD3A08D4F222B4EE9DBD\ -015447B33507DD50F3AB4247C5DE9A8ABD62A8DECEA01E3B87C8B927F5B08BEB\ -37674C6F8E380C04:\ -A6054FFC3D81591BE964C4B004A3A21142365B59EE98B2873D488293F93A8D71\ -54BF72100012C60D3C9418F6AF8EA66372CB4703F5F6381DE6D4B9B98CFF1E90 - -04410E31082A47584B406F051398A6ABE74E4DA59BB6F85E6B49E8A1F7F2CA00\ -DFBA5462C2CD2BFDE8B64FB21D70C083F11318B56A52D03B81CAC5EEC29EB31B\ -D0078B6156786DA3D6D8C33098C5C47BB67AC64DB14165AF65B44544D806DDE5\ -F487D5373C7F9792C299E9686B7E5821E7C8E2458315B996B5677D926DAC57B3\ -F22DA873C601016A0D:\ -B0E54A12FDBA0738898F1BBF0BA81F81DE77648D8D14C20BDD5D90F300D382E0\ -69F5DBA7EEC6B23168B008B9F39C2B93FD742A5902A5E02728F57712D6A61D4E - -8B81E9BADDE026F14D95C019977024C9E13DB7A5CD21F9E9FC491D716164BBAC\ -DC7060D882615D411438AEA056C340CDF977788F6E17D118DE55026855F93270\ -472D1FD18B9E7E812BAE107E0DFDE7063301B71F6CFE4E225CAB3B232905A56E\ -994F08EE2891BA922D49C3DAFEB75F7C69750CB67D822C96176C46BD8A29F170\ -1373FB09A1A6E3C7158F:\ -3CE96077EB17C6A9C95A9A477748876C6451098DBEA2B3261E6D75B64A988E1C\ -75D7EAC73BC2402AFC726543E2A5BDB76689C0931FF762818DD2D3FE57A50FA9 - -FA6EED24DA6666A22208146B19A532C2EC9BA94F09F1DEF1E7FC13C399A48E41\ -ACC2A589D099276296348F396253B57CB0E40291BD282773656B6E0D8BEA1CDA\ -084A3738816A840485FCF3FB307F777FA5FEAC48695C2AF4769720258C77943F\ -B4556C362D9CBA8BF103AEB9034BAA8EA8BFB9C4F8E6742CE0D52C49EA8E974F\ -339612E830E9E7A9C29065:\ -C9ACD6D98A349512B952D151ED501562F04EA4BB4B8965812510B9B842531A2B\ -41A0108AC129CF9C9517BE790921DF64AD1DFC0B93DDBA3415EEBAF0DA72F6A0 - -9BB4AF1B4F09C071CE3CAFA92E4EB73CE8A6F5D82A85733440368DEE4EB1CBC7\ -B55AC150773B6FE47DBE036C45582ED67E23F4C74585DAB509DF1B8361056454\ -5642B2B1EC463E18048FC23477C6B2AA035594ECD33791AF6AF4CBC2A1166ABA\ -8D628C57E707F0B0E8707CAF91CD44BDB915E0296E0190D56D33D8DDE10B5B60\ -377838973C1D943C22ED335E:\ -26B4E5C4FA85CB33359450E7F7158FB6A0739984565E9D9EBE6AD65B118296E9\ -C1098C11541C871EB1B89853F1FA73AD8702EBF4FC9BE4D0AB057E4391DF964E - -2167F02118CC62043E9091A647CADBED95611A521FE0D64E8518F16C808AB297\ -725598AE296880A773607A798F7C3CFCE80D251EBEC6885015F9ABF7EAABAE46\ -798F82CB5926DE5C23F44A3F9F9534B3C6F405B5364C2F8A8BDC5CA49C749BED\ -8CE4BA48897062AE8424CA6DDE5F55C0E42A95D1E292CA54FB46A84FBC9CD87F\ -2D0C9E7448DE3043AE22FDD229:\ -913BBA5C0C13CC49D8310014CF5AF1B63BA3D5DB8A27699FCFC573688F0E826F\ -B5A7B5D10D3A1DE693AA66E08C0915E7278F61B5FA30F1263B134F016F74841F - -94B7FA0BC1C44E949B1D7617D31B4720CBE7CA57C6FA4F4094D4761567E389EC\ -C64F6968E4064DF70DF836A47D0C713336B5028B35930D29EB7A7F9A5AF9AD5C\ -F441745BAEC9BB014CEEFF5A41BA5C1CE085FEB980BAB9CF79F2158E03EF7E63\ -E29C38D7816A84D4F71E0F548B7FC316085AE38A060FF9B8DEC36F91AD9EBC0A\ -5B6C338CBB8F6659D342A24368CF:\ -E5D53E81866283179012D9239340B0CBFB8D7AEBCE0C824DC6653A652BB1B54E\ -0883991BE2C3E39AD111A7B24E95DAF6F7D9A379D884D64F9C2AFD645E1DB5E2 - -EA40E83CB18B3A242C1ECC6CCD0B7853A439DAB2C569CFC6DC38A19F5C90ACBF\ -76AEF9EA3742FF3B54EF7D36EB7CE4FF1C9AB3BC119CFF6BE93C03E208783335\ -C0AB8137BE5B10CDC66FF3F89A1BDDC6A1EED74F504CBE7290690BB295A872B9\ -E3FE2CEE9E6C67C41DB8EFD7D863CF10F840FE618E7936DA3DCA5CA6DF933F24\ -F6954BA0801A1294CD8D7E66DFAFEC:\ -5DA83B7E221933CD67FA2AF8C9934DB74CE822212C99E0EE01F5220B4FE1E9B0\ -388E42E328A1D174E6368F5773853042543A9B493A94B625980B73DF3F3FCCBB - -157D5B7E4507F66D9A267476D33831E7BB768D4D04CC3438DA12F9010263EA5F\ -CAFBDE2579DB2F6B58F911D593D5F79FB05FE3596E3FA80FF2F761D1B0E57080\ -055C118C53E53CDB63055261D7C9B2B39BD90ACC32520CBBDBDA2C4FD8856DBC\ -EE173132A2679198DAF83007A9B5C51511AE49766C792A29520388444EBEFE28\ -256FB33D4260439CBA73A9479EE00C63:\ -72DE9184BEB5C6A37EA2C395734D0D5412991A57CFFCC13FF9B5FA0F2046EE87\ -C61811FE8EF2470239D5066C220173DE5EBE41885ED8ACAE397FB395E6CA9AEE - -836B34B515476F613FE447A4E0C3F3B8F20910AC89A3977055C960D2D5D2B72B\ -D8ACC715A9035321B86703A411DDE0466D58A59769672AA60AD587B8481DE4BB\ -A552A1645779789501EC53D540B904821F32B0BD1855B04E4848F9F8CFE9EBD8\ -911BE95781A759D7AD9724A7102DBE576776B7C632BC39B9B5E19057E226552A\ -5994C1DBB3B5C7871A11F5537011044C53:\ -B678FA7655584970DEDBBC73A16D7840935B104D06DCB468DDD9814D6CF443FA\ -6F9245824DBFF3AB5FFFEF24B29CB2978796F37E7B49B1682D59F79E3C169E81 - -CC7784A4912A7AB5AD3620AAB29BA87077CD3CB83636ADC9F3DC94F51EDF521B\ -2161EF108F21A0A298557981C0E53CE6CED45BDF782C1EF200D29BAB81DD6460\ -586964EDAB7CEBDBBEC75FD7925060F7DA2B853B2B089588FA0F8C16EC6498B1\ -4C55DCEE335CB3A91D698E4D393AB8E8EAC0825F8ADEBEEE196DF41205C01167\ -4E53426CAA453F8DE1CBB57932B0B741D4C6:\ -66C64D5B0585DD8C40BECD456E4B0188061AE8059F03E79FE04C40925442BA93\ -B052F52087B30BDBFD4816BBD148696D4FA6C61F216253D7AC178B39EC44C770 - -7639B461FFF270B2455AC1D1AFCE782944AEA5E9087EB4A39EB96BB5C3BAAF0E\ -868C8526D3404F9405E79E77BFAC5FFB89BF1957B523E17D341D7323C302EA70\ -83872DD5E8705694ACDDA36D5A1B895AAA16ECA6104C82688532C8BFE1790B5D\ -C9F4EC5FE95BAED37E1D287BE710431F1E5E8EE105BC42ED37D74B1E55984BF1\ -C09FE6A1FA13EF3B96FAEAED6A2A1950A12153:\ -A7BD506DB9C0509AD47413AF4B0E3948B47C18278F15F5B19FBB0B76E2C1C1F1\ -9DB9438528EB6D87B0B4A509567DB39F32641E2944365780914296CF3E48CECF - -EB6513FC61B30CFBA58D4D7E80F94D14589090CF1D80B1DF2E68088DC6104959\ -BA0D583D585E9578AB0AEC0CF36C48435EB52ED9AB4BBCE7A5ABE679C97AE2DB\ -E35E8CC1D45B06DDA3CF418665C57CBEE4BBB47FA4CAF78F4EE656FEC237FE4E\ -EBBAFA206E1EF2BD0EE4AE71BD0E9B2F54F91DAADF1FEBFD7032381D636B733D\ -CB3BF76FB14E23AFF1F68ED3DBCF75C9B99C6F26:\ -2E681F9DDBD7C77EAB0D225E2AD1F72256BE239DF25933BCD6CEDD757269B35E\ -2A5352B3298A4CDA0542FF7D3ADD2B0CF42F10FBE05A67C8763D54A78A43AEA7 - -1594D74BF5DDE444265D4C04DAD9721FF3E34CBF622DAF341FE16B96431F6C4D\ -F1F760D34F296EB97D98D560AD5286FEC4DCE1724F20B54FD7DF51D4BF137ADD\ -656C80546FB1BF516D62EE82BAA992910EF4CC18B70F3F8698276FCFB44E0EC5\ -46C2C39CFD8EE91034FF9303058B4252462F86C823EB15BF481E6B79CC3A0221\ -8595B3658E8B37382BD5048EAED5FD02C37944E73B:\ -FD9BE24763F682043243525E5E0780534A82AD5E83B65EB4ACAF5353313A4CC7\ -C5EEA9DA141DE570232CB4126287E5C77657CA8D6A16B5BE53F470343E722FD6 - -4CFA1278903026F66FEDD41374558BE1B585D03C5C55DAC94361DF286D4BD39C\ -7CB8037ED3B267B07C346626449D0CC5B0DD2CF221F7E4C3449A4BE99985D2D5\ -E67BFF2923357DDEAB5ABCB4619F3A3A57B2CF928A022EB27676C6CF80568900\ -4FCA4D41EA6C2D0A4789C7605F7BB838DD883B3AD3E6027E775BCF2628814280\ -99C7FFF95B14C095EA130E0B9938A5E22FC52650F591:\ -14EA33BB33FDF0426E0DFB12DE1C613BA97141454C8971BCCE25C6D87A6C2403\ -CCFAD1E8A6C15754C3CC5AC1718B7F7F1EC003C1B98D70968C5DBB95540B4A17 - -D3E65CB92CFA79662F6AF493D696A07CCF32AAADCCEFF06E73E8D9F6F909209E\ -66715D6E978788C49EFB9087B170ECF3AA86D2D4D1A065AE0EFC8924F365D676\ -B3CB9E2BEC918FD96D0B43DEE83727C9A93BF56CA2B2E59ADBA85696546A8150\ -67FC7A78039629D4948D157E7B0D826D1BF8E81237BAB7321312FDAA4D521744\ -F988DB6FDF04549D0FDCA393D639C729AF716E9C8BBA48:\ -3B4B395514E0CAB04FC9F9D6C358006CE06C93831E8948FB9BD2A863F3FA064E\ -78EB57C76DD2D058D09AB3D105C28C2DACAEBD4A473F1FA023053CC15366082F - -842CC583504539622D7F71E7E31863A2B885C56A0BA62DB4C2A3F2FD12E79660\ -DC7205CA29A0DC0A87DB4DC62EE47A41DB36B9DDB3293B9AC4BAAE7DF5C6E720\ -1E17F717AB56E12CAD476BE49608AD2D50309E7D48D2D8DE4FA58AC3CFEAFEEE\ -48C0A9EEC88498E3EFC51F54D300D828DDDCCB9D0B06DD021A29CF5CB5B25069\ -15BEB8A11998B8B886E0F9B7A80E97D91A7D01270F9A7717:\ -2D7D28C4311E0424D71E7F9D267A2E048AA175455FCB724CF0B13DEBF448B59B\ -0F28265B0F010F4E4F4065004904A7C2687A5A1B30AB593BC44F698DFF5DDE33 - -6C4B0A0719573E57248661E98FEBE326571F9A1CA813D3638531AE28B4860F23\ -C3A3A8AC1C250034A660E2D71E16D3ACC4BF9CE215C6F15B1C0FC7E77D3D2715\ -7E66DA9CEEC9258F8F2BF9E02B4AC93793DD6E29E307EDE3695A0DF63CBDC0FC\ -66FB770813EB149CA2A916911BEE4902C47C7802E69E405FE3C04CEB5522792A\ -5503FA829F707272226621F7C488A7698C0D69AA561BE9F378:\ -CB665EC69ABD75743C8713034E9E41736F8C1CE2C77A8518E50388C411E6284D\ -9AADCD4D3BD5A9EB74672325E41E8A67ACF380D1E8A61684F0E501F5663A031D - -51B7DBB7CE2FFEB427A91CCFE5218FD40F9E0B7E24756D4C47CD55606008BDC2\ -7D16400933906FD9F30EFFDD4880022D081155342AF3FB6CD53672AB7FB5B3A3\ -BCBE47BE1FD3A2278CAE8A5FD61C1433F7D350675DD21803746CADCA574130F0\ -1200024C6340AB0CC2CF74F2234669F34E9009EF2EB94823D62B31407F4BA46F\ -1A1EEC41641E84D77727B59E746B8A671BEF936F05BE820759FA:\ -4515A104FC68094D244B234D9DC06A0243B71D419D29A95C46E3CBA6F51E121A\ -BE049B34535DB3CCBF2AD68D83FC36331F615B3E33DEB39A3381DFBCB798FE4D - -83599D93F5561E821BD01A472386BC2FF4EFBD4AED60D5821E84AAE74D807102\ -9810F5E286F8F17651CD27DA07B1EB4382F754CD1C95268783AD09220F550284\ -0370D494BEB17124220F6AFCE91EC8A0F55231F9652433E5CE3489B727716CF4\ -AEBA7DCDA20CD29AA9A859201253F948DD94395ABA9E3852BD1D60DDA7AE5DC0\ -45B283DA006E1CBAD83CC13292A315DB5553305C628DD091146597:\ -CEE3E60A49F7CAED9387F3EA699524C4CCAFD37C1A7E60D2F0AB037720649F10\ -8CCE8769F70B0C5D049359EEB821022F17C4B5F646B750E3070558EC127057F1 - -2BE9BF526C9D5A75D565DD11EF63B979D068659C7F026C08BEA4AF161D85A462\ -D80E45040E91F4165C074C43AC661380311A8CBED59CC8E4C4518E80CD2C78AB\ -1CABF66BFF83EAB3A80148550307310950D034A6286C93A1ECE8929E6385C5E3\ -BB6EA8A7C0FB6D6332E320E71CC4EB462A2A62E2BFE08F0CCAD93E61BEDB5DD0\ -B786A728AB666F07E0576D189C92BF9FB20DCA49AC2D3956D47385E2:\ -E6ED6F060906D1A772F47E83907507F88A151DE401ED79ACB56BE57C2596792D\ -C0BC5A9DC1045E37C6A31DA1C36200214E4F5698AA2754EEB2CAECFC03BEC39D - -CA76D3A12595A817682617006848675547D3E8F50C2210F9AF906C0E7CE50B44\ -60186FE70457A9E879E79FD4D1A688C70A347361C847BA0DD6AA52936EAF8E58\ -A1BE2F5C1C704E20146D366AEB3853BED9DE9BEFE9569AC8AAEA37A9FB7139A1\ -A1A7D5C748605A8DEFB297869EBEDD71D615A5DA23496D11E11ABBB126B206FA\ -0A7797EE7DE117986012D0362DCEF775C2FE145ADA6BDA1CCB326BF644:\ -9ED4EEE87F56AE2741E8E4D65623E4D1FA3AA111F64A85F66E99093BAED990FE\ -1D788D6A4BE1A72A6615281EB45E1B6FB60AFEFDD93987F794084BDA962FAC7F - -F76B85DC67421025D64E93096D1D712B7BAF7FB001716F02D33B2160C2C882C3\ -10EF13A576B1C2D30EF8F78EF8D2F465007109AAD93F74CB9E7D7BEF7C9590E8\ -AF3B267C89C15DB238138C45833C98CC4A471A7802723EF4C744A853CF80A0C2\ -568DD4ED58A2C9644806F42104CEE53628E5BDF7B63B0B338E931E31B87C24B1\ -46C6D040605567CEEF5960DF9E022CB469D4C787F4CBA3C544A1AC91F95F:\ -23139BDD84E9F43A6CC615F0F036199328D39807BEC9E786D4251B83B30800F9\ -DBE8EDC0B910FCD9D9F204C2DDD4D3B92BC26A0CFAABE764BFB90A1444733CD0 - -25B8C9C032EA6BCD733FFC8718FBB2A503A4EA8F71DEA1176189F694304F0FF6\ -8E862A8197B839957549EF243A5279FC2646BD4C009B6D1EDEBF24738197ABB4\ -C992F6B1DC9BA891F570879ACCD5A6B18691A93C7D0A8D38F95B639C1DAEB48C\ -4C2F15CCF5B9D508F8333C32DE78781B41850F261B855C4BEBCC125A380C54D5\ -01C5D3BD07E6B52102116088E53D76583B0161E2A58D0778F091206AABD5A1:\ -EC69397000AED63CB7E86B4FB0BFD3DCEE8A6F6A1CFE01A324DA13484B73599F\ -CD37AD392662D4C41D90BACA66BE4D6E3424EFD35D7FF4CB07CBDFBEBDDB7B50 - -21CFDC2A7CCB7F331B3D2EEFFF37E48AD9FA9C788C3F3C200E0173D99963E1CB\ -CA93623B264E920394AE48BB4C3A5BB96FFBC8F0E53F30E22956ADABC2765F57\ -FB761E147ECBF8567533DB6E50C8A1F894310A94EDF806DD8CA6A0E141C0FA7C\ -9FAE6C6AE65F18C93A8529E6E5B553BF55F25BE2E80A9882BD37F145FECBEB3D\ -447A3C4E46C21524CC55CDD62F521AB92A8BA72B897996C49BB273198B7B1C9E:\ -2EA3EA00E6E9305CED0FC160E004265221306A2BE9613474126825AA3C3170AE\ -07E5EA42F6B74F0B2C1BD2A6CD4D26EB1E04C67C9A4AFEFC1DD0CB57C2A9F4C7 - -4E452BA42127DCC956EF4F8F35DD68CB225FB73B5BC7E1EC5A898BBA2931563E\ -74FAFF3B67314F241EC49F4A7061E3BD0213AE826BAB380F1F14FAAB8B0EFDDD\ -5FD1BB49373853A08F30553D5A55CCBBB8153DE4704F29CA2BDEEF0419468E05\ -DD51557CCC80C0A96190BBCC4D77ECFF21C66BDF486459D427F986410F883A80\ -A5BCC32C20F0478BB9A97A126FC5F95451E40F292A4614930D054C851ACD019C\ -CF:\ -6A7ADDB28F4F2C23CF0C264579FBA5F892E010689F837B84D006D91402FBFE9B\ -A44B9126F8B5DE1EC6BBE194A3E3854235056A09901D18E8D6F1727DD430212A - -FA85671DF7DADF99A6FFEE97A3AB9991671F5629195049880497487867A6C446\ -B60087FAC9A0F2FCC8E3B24E97E42345B93B5F7D3691829D3F8CCD4BB36411B8\ -5FC2328EB0C51CB3151F70860AD3246CE0623A8DC8B3C49F958F8690F8E3860E\ -71EB2B1479A5CEA0B3F8BEFD87ACAF5362435EAECCB52F38617BC6C5C2C6E269\ -EAD1FBD69E941D4AD2012DA2C5B21BCFBF98E4A77AB2AF1F3FDA3233F046D38F\ -1DC8:\ -2C0EE8A165BF88C44C8601C6372E522DA9ECF42544DCDC098698F50DF8E70EB7\ -440CAB2953BB490CD2A5E0887BEEAE3482192DA95E5098D3B318F16FC08D1E1E - -E90847AE6797FBC0B6B36D6E588C0A743D725788CA50B6D792352EA8294F5BA6\ -54A15366B8E1B288D84F5178240827975A763BC45C7B0430E8A559DF4488505E\ -009C63DA994F1403F407958203CEBB6E37D89C94A5EACF6039A327F6C4DBBC7A\ -2A307D976AA39E41AF6537243FC218DFA6AB4DD817B6A397DF5CA69107A91987\ -99ED248641B63B42CB4C29BFDD7975AC96EDFC274AC562D0474C60347A078CE4\ -C25E88:\ -DDD4FF117231ECA0445EADA7C7F1D84686520DAA70E160C87DBBB3FB32BB9E2F\ -4CC53DB5413D4E88DE18A0118570318BD6D0E5264D779339AC6F4F4A95546A53 - -F6D5C2B6C93954FC627602C00C4CA9A7D3ED12B27173F0B2C9B0E4A5939398A6\ -65E67E69D0B12FB7E4CEB253E8083D1CEB724AC07F009F094E42F2D6F2129489\ -E846EAFF0700A8D4453EF453A3EDDC18F408C77A83275617FABC4EA3A2833AA7\ -3406C0E966276079D38E8E38539A70E194CC5513AAA457C699383FD1900B1E72\ -BDFB835D1FD321B37BA80549B078A49EA08152869A918CA57F5B54ED71E4FD3A\ -C5C06729:\ -A9744EFA42887DF292FC09DFEB885F1E801855DED09DC2F97CBFCBD019751878\ -619DA1BC9573201C7CC050E2AA1D453E951366D81C188D329B3CB861C1D78F92 - -CF8562B1BED89892D67DDAAF3DEEB28246456E972326DBCDB5CF3FB289ACA01E\ -68DA5D59896E3A6165358B071B304D6AB3D018944BE5049D5E0E2BB819ACF67A\ -6006111089E6767132D72DD85BEDDCBB2D64496DB0CC92955AB4C6234F1EEA24\ -F2D51483F2E209E4589BF9519FAC51B4D061E801125E605F8093BB6997BC163D\ -551596FE4AB7CFAE8FB9A90F6980480CE0C229FD1675409BD788354DAF316240\ -CFE0AF93EB:\ -89CAE46246EFEDAD1147EB1868C23A6BE54F6BAC75F0C98A9AEFC6BF3CCB89AE\ -012F2E88A9C838B55E57B232CB3C80BC3C2E9FB3FC9768C6226E93284E208BF2 - -2ACE31ABB0A2E3267944D2F75E1559985DB7354C6E605F18DC8470423FCA30B7\ -331D9B33C4A4326783D1CAAE1B4F07060EFF978E4746BF0C7E30CD61040BD5EC\ -2746B29863EB7F103EBDA614C4291A805B6A4C8214230564A0557BC7102E0BD3\ -ED23719252F7435D64D210EE2AAFC585BE903FA41E1968C50FD5D5367926DF7A\ -05E3A42CF07E656FF92DE73B036CF8B19898C0CB34557C0C12C2D8B84E91181A\ -F467BC75A9D1:\ -E80A63FAF248AE762D13887AFE8E1954F97327EDD9641CE563F4148F97966698\ -27B3A12B06EBD710D4171B86E21BC13360A541845354E0F4934E6FBBD7ACBF2D - -0D8D09AED19F1013969CE5E7EB92F83A209AE76BE31C754844EA9116CEB39A22\ -EBB6003017BBCF26555FA6624185187DB8F0CB3564B8B1C06BF685D47F3286ED\ -A20B83358F599D2044BBF0583FAB8D78F854FE0A596183230C5EF8E54426750E\ -AF2CC4E29D3BDD037E734D863C2BD9789B4C243096138F7672C232314EFFDFC6\ -513427E2DA76916B5248933BE312EB5DDE4CF70804FB258AC5FB82D58D08177A\ -C6F4756017FFF5:\ -09C10C4818A6821C170D6780D006F7E853E30FE2D9A4E96545673704EC0A1A3E\ -356375715994E1AC1D8CB0E56DBDB2F77DC558ED228FB56EE62217E63455FD0B - -C3236B73DEB7662BF3F3DAA58F137B358BA610560EF7455785A9BEFDB035A066\ -E90704F929BD9689CEF0CE3BDA5ACF4480BCEB8D09D10B098AD8500D9B6071DF\ -C3A14AF6C77511D81E3AA8844986C3BEA6F469F9E02194C92868CD5F51646256\ -798FF0424954C1434BDFED9FACB390B07D342E992936E0F88BFD0E884A0DDB67\ -9D0547CCDEC6384285A45429D115AC7D235A717242021D1DC35641F5F0A48E84\ -45DBA58E6CB2C8EA:\ -D1CAB5979EB7F53C97DCA5D725D8B33008906D7759FD3EBB8401EE2FFF01DB89\ -5495A0A062D47F251BC3FC13988607C6798969D213C941EFC152E7DB1DA68E72 - -B39FEB8283EADC63E8184B51DF5AE3FD41AAC8A963BB0BE1CD08AA5867D8D910\ -C669221E73243360646F6553D1CA05A84E8DC0DE05B6419EC349CA994480193D\ -01C92525F3FB3DCEFB08AFC6D26947BDBBFD85193F53B50609C6140905C53A66\ -86B58E53A319A57B962331EDE98149AF3DE3118A819DA4D76706A0424B4E1D29\ -10B0ED26AF61D150EBCB46595D4266A0BD7F651BA47D0C7F179CA28545007D92\ -E8419D48FDFBD744CE:\ -96AD163869AE2FFDB89B96F4DC700ECE27D1F4DAAFBC5FB81A8E9513C6EA5E2B\ -6A8BCCF4E49A294AF326F872740661629AB780581155810E492424C24F8D1DD3 - -A983D54F503803E8C7999F4EDBBE82E9084F422143A932DDDDC47A17B0B7564A\ -7F37A99D0786E99476428D29E29D3C197A72BFAB1342C12A0FC4787FD7017D7A\ -6174049EA43B5779169EF7472BDBBD941DCB82FC73AAC45A8A94C9F2BD3477F6\ -1FD3B796F02A1B8264A214C6FEA74B7051B226C722099EC7883A462B83B6AFDD\ -4009248B8A237F605FE5A08FE7D8B45321421EBBA67BD70A0B00DDBF94BAAB7F\ -359D5D1EEA105F28DCFB:\ -FD2E7A6E11E5D00278099EAF403054D617ACAC5BD3D0A4908191782C89F9217A\ -3F0118BC2B284FDBCE803F66B78DD795EB18DC16BA85E19CB6393DC56C06ECCA - -E4D1C1897A0A866CE564635B74222F9696BF2C7F640DD78D7E2ACA66E1B61C64\ -2BB03EA7536AAE597811E9BF4A7B453EDE31F97B46A5F0EF51A071A2B3918DF1\ -6B152519AE3776F9F1EDAB4C2A377C3292E96408359D3613844D5EB393000283\ -D5AD3401A318B12FD1474B8612F2BB50FB6A8B9E023A54D7DDE28C43D6D8854C\ -8D9D1155935C199811DBFC87E9E0072E90EB88681CC7529714F8FB8A2C9D8856\ -7ADFB974EE205A9BF7B848:\ -AE53776D969A9B285641998A9F2C70CA71856C956A3C430A32A1E03A8E08D544\ -F16511A27CFA59F6B8275A2357F8EFA6544B1CD0C00A9460F47954A146429E49 - -B10C59723E3DCADD6D75DF87D0A1580E73133A9B7D00CB95EC19F5547027323B\ -E75158B11F80B6E142C6A78531886D9047B08E551E75E6261E79785366D7024B\ -D7CD9CF322D9BE7D57FB661069F2481C7BB759CD71B4B36CA2BC2DF6D3A328FA\ -EBDB995A9794A8D72155ED551A1F87C80BF6059B43FC764900B18A1C2441F748\ -7743CF84E565F61F8DD2ECE6B6CCC9444049197AAAF53E926FBEE3BFCA8BE588\ -EC77F29D211BE89DE18B15F6:\ -D4748C8E17F4117BF2BF71557ABB559247552126C36192C5DF5C6C3E307D879B\ -703C3FCD7099DDAB243E2F1D5AE5066990A7B38D3F2CD7FB115AA6D135E7261D - -DB11F609BABA7B0CA634926B1DD539C8CBADA24967D7ADD4D9876F77C2D80C0F\ -4DCEFBD7121548373582705CCA2495BD2A43716FE64ED26D059CFB566B3364BD\ -49EE0717BDD9810DD14D8FAD80DBBDC4CAFB37CC60FB0FE2A80FB4541B8CA9D5\ -9DCE457738A9D3D8F641AF8C3FD6DA162DC16FC01AAC527A4A0255B4D231C0BE\ -50F44F0DB0B713AF03D968FE7F0F61ED0824C55C4B5265548FEBD6AAD5C5EEDF\ -63EFE793489C39B8FD29D104CE:\ -D8FF0481A63890F0E5A536EBBA2F253FA2CFA19C0F353587AF4BDC3190E4F8F5\ -4D17D665E8B2011121D444BFADFFF3E192D97FA03B849D63F36DB20F4CF88A74 - -BEBD4F1A84FC8B15E4452A54BD02D69E304B7F32616AADD90537937106AE4E28\ -DE9D8AAB02D19BC3E2FDE1D651559E296453E4DBA94370A14DBBB2D1D4E20223\ -02EE90E208321EFCD8528AD89E46DC839EA9DF618EA8394A6BFF308E7726BAE0\ -C19BCD4BE52DA6258E2EF4E96AA21244429F49EF5CB486D7FF35CAC1BACB7E95\ -711944BCCB2AB34700D42D1EB38B5D536B947348A458EDE3DC6BD6EC547B1B0C\ -AE5B257BE36A7124E1060C170FFA:\ -52D771B5016C6B1B93D3BF6A13F718A7B4741D528798609308B54CEA6037862D\ -923751FDDCE10580A7D6431BF208DF17C1B825F7C7401CCBD6D806B744241ACF - -5ACA56A03A13784BDC3289D9364F79E2A85C12276B49B92DB0ADAA4F206D5028\ -F213F678C3510E111F9DC4C1C1F8B6ACB17A6413AA227607C515C62A733817BA\ -5E762CC6748E7E0D6872C984D723C9BB3B117EB8963185300A80BFA65CDE495D\ -70A46C44858605FCCBED086C2B45CEF963D33294DBE9706B13AF22F1B7C4CD5A\ -001CFEC251FBA18E722C6E1C4B1166918B4F6F48A98B64B3C07FC86A6B17A6D0\ -480AB79D4E6415B520F1C484D675B1:\ -36D472A8AE13D1E70E1FD275117FFE34063BEFCCF6706FAB0816E1B81F7FE7F2\ -DDB2A122F1F52C9950644659430F81BCEDAD5D833DF4814CF60AE6C542CC4478 - -A5AAD0E4646A32C85CFCAC73F02FC5300F1982FABB2F2179E28303E447854094\ -CDFC854310E5C0F60993CEFF54D84D6B46323D930ADB07C17599B35B505F09E7\ -84BCA5985E0172257797FB53649E2E9723EFD16865C31B5C3D5113B58BB0BFC8\ -920FABDDA086D7537E66D709D050BD14D0C960873F156FAD5B3D3840CDFCDC9B\ -E6AF519DB262A27F40896AB25CC39F96984D650611C0D5A3080D5B3A1BF186AB\ -D42956588B3B58CD948970D298776060:\ -E504AD7F33D65B8D3487B28805D478778C901C0AFF5F889AE95E2919B4F431A8\ -0116A8993469E822895F3C21A41D67AFDA93A5B29B6250F76335A76FE8919274 - -06CBBE67E94A978203EAD6C057A1A5B098478B4B4CBEF5A97E93C8E42F557271\ -3575FC2A884531D7622F8F879387A859A80F10EF02708CD8F7413AB385AFC357\ -678B9578C0EBF641EF076A1A30F1F75379E9DCB2A885BDD295905EE80C0168A6\ -2A9597D10CF12DD2D8CEE46645C7E5A141F6E0E23AA482ABE5661C16E69EF1E2\ -8371E2E236C359BA4E92C25626A7B7FF13F6EA4AE906E1CFE163E91719B1F750\ -A96CBDE5FBC953D9E576CD216AFC90323A:\ -1DCA53BE0A34114447D1C1443B92B69DFDED705956EAE60BBAB39178CCB11F52\ -6A302AAE83720652EF4C5DD450A3647DF7B77C4664717D935B4F5B20F206FEFE - -F1C528CF7739874707D4D8AD5B98F7C77169DE0B57188DF233B2DC8A5B31EDA5\ -DB4291DD9F68E6BAD37B8D7F6C9C0044B3BF74BBC3D7D1798E138709B0D75E7C\ -593D3CCCDC1B20C7174B4E692ADD820ACE262D45CCFAE2077E87879634716806\ -0A162ECCA8C38C1A88350BD63BB539134F700FD4ADDD5959E255337DAA06BC86\ -358FABCBEFDFB5BC889783D843C08AADC6C4F6C36F65F156E851C9A0F917E4A3\ -67B5AD93D874812A1DE6A7B93CD53AD97232:\ -CB1B03B180E04021E0099050EB6B7EB9092C5BD5C445E9D31EE39C724F038E9F\ -619A96D3A2812CA7F208FEB2D074C3F817262F7504705623E635B9F273E37A59 - -9D9F3A7ECD51B41F6572FD0D0881E30390DFB780991DAE7DB3B47619134718E6\ -F987810E542619DFAA7B505C76B7350C6432D8BF1CFEBDF1069B90A35F0D04CB\ -DF130B0DFC7875F4A4E62CDB8E525AADD7CE842520A482AC18F09442D78305FE\ -85A74E39E760A4837482ED2F437DD13B2EC1042AFCF9DECDC3E877E50FF4106A\ -D10A525230D11920324A81094DA31DEAB6476AA42F20C84843CFC1C58545EE80\ -352BDD3740DD6A16792AE2D86F11641BB717C2:\ -F0482F098B93624BCDE1AAB58097198649A8DC84421826D1C1011AD41B948384\ -C8ED5A97C64C134B38A0075812A35F9CE3CB200972C2ECDFC408714139B9BFF0 - -5179888724819FBAD3AFA927D3577796660E6A81C52D98E9303261D5A4A83232\ -F6F758934D50AA83FF9E20A5926DFEBAAC49529D006EB923C5AE5048ED544EC4\ -71ED7191EDF46363383824F915769B3E688094C682B02151E5EE01E510B431C8\ -865AFF8B6B6F2F59CB6D129DA79E97C6D2B8FA6C6DA3F603199D2D1BCAB54768\ -2A81CD6CF65F6551121391D78BCC23B5BD0E922EC6D8BF97C952E84DD28AEF90\ -9ABA31EDB903B28FBFC33B7703CD996215A11238:\ -A3188426CEA0C18CB638BCC45C4337C40BE41F6E03CD2D7C4FEE26025C5CA281\ -CFBB3AD1554D45EDC2EB03E2EBE3DE02F57D36D5B6A88A3C61A6AAEDE62180D0 - -576EF3520D30B7A4899B8C0D5E359E45C5189ADD100E43BE429A02FB3DE5FF4F\ -8FD0E79D9663ACCA72CD29C94582B19292A557C5B1315297D168FBB54E9E2ECD\ -13809C2B5FCE998EDC6570545E1499DBE7FB74D47CD7F35823B212B05BF3F5A7\ -9CAA34224FDD670D335FCB106F5D92C3946F44D3AFCBAE2E41AC554D8E6759F3\ -32B76BE89A0324AA12C5482D1EA3EE89DED4936F3E3C080436F539FA137E74C6\ -D3389BDF5A45074C47BC7B20B0948407A66D855E2F:\ -0B14693E6320668D64EBB3BF6EEB81AAFCDB7320ECDE80A245786D1B0A808A15\ -C717DC8E8813BF64BF4AA57C29C33E913D6CE1879E52E1919FB83E4A208EDAA4 - -0DF2152FA4F4357C8741529DD77E783925D3D76E95BAFA2B542A2C33F3D1D117\ -D159CF473F82310356FEE4C90A9E505E70F8F24859656368BA09381FA245EB6C\ -3D763F3093F0C89B972E66B53D59406D9F01AEA07F8B3B615CAC4EE4D05F542E\ -7D0DAB45D67CCCCD3A606CCBEB31EA1FA7005BA07176E60DAB7D78F6810EF086\ -F42F08E595F0EC217372B98970CC6321576D92CE38F7C397A403BADA1548D205\ -C343AC09DECA86325373C3B76D9F32028FEA8EB32515:\ -A9ABC3F554C1E717935D28C28E7C26AA9DC5BD6D7B02ED7DC6AFE21A0EA027A8\ -801AE076F2872D08635EE81420711862EDC4E448C85513289438B3C8BE456B5B - -3E15350D87D6EBB5C8AD99D42515CFE17980933C7A8F6B8BBBF0A63728CEFAAD\ -2052623C0BD5931839112A48633FB3C2004E0749C87A41B26A8B48945539D1FF\ -41A4B269462FD199BFECD45374756F55A9116E92093AC99451AEFB2AF9FD32D6\ -D7F5FBC7F7A540D5097C096EBC3B3A721541DE073A1CC02F7FB0FB1B9327FB0B\ -1218CA49C9487AB5396622A13AE546C97ABDEF6B56380DDA7012A8384091B665\ -6D0AB272D363CEA78163FF765CDD13AB1738B940D16CAE:\ -04DD83D20F58E854D857F24720C50A4B5F83DBC8CABD460D379417CD4813772A\ -A85591B90462F34DB3FAA4DCAE335FB1252BF41162E24975A0DBD308C41A4A6B - -C38D6B0B757CB552BE40940ECE0009EF3B0B59307C1451686F1A22702922800D\ -58BCE7A636C1727EE547C01B214779E898FC0E560F8AE7F61BEF4D75EAA696B9\ -21FD6B735D171535E9EDD267C192B99880C87997711002009095D8A7A437E258\ -104A41A505E5EF71E5613DDD2008195F0C574E6BA3FE40099CFA116E5F1A2FA8\ -A6DA04BADCB4E2D5D0DE31FDC4800891C45781A0AAC7C907B56D631FCA5CE8B2\ -CDE620D11D1777ED9FA603541DE794DDC5758FCD5FAD78C0:\ -CE76B25C928CB75C09C0674E8FCD22089654182CD3D84B85CC44B186A8B1A7CC\ -1BB66F389DA6D744A24A7B02BF5C85542D1BA8EF0DB4A86D2FC394471B396519 - -8D2DE3F0B37A6385C90739805B170057F091CD0C7A0BC951540F26A5A75B3E69\ -4631BB64C7635EED316F51318E9D8DE13C70A2ABA04A14836855F35E480528B7\ -76D0A1E8A23B547C8B8D6A0D09B241D3BE9377160CCA4E6793D00A515DC2992C\ -B7FC741DACA171431DA99CCE6F7789F129E2AC5CF65B40D703035CD2185BB936\ -C82002DAF8CBC27A7A9E554B06196630446A6F0A14BA155ED26D95BD627B7205\ -C072D02B60DB0FD7E49EA058C2E0BA202DAFF0DE91E845CF79:\ -02D1671981C2E85D0455EE85F41B8E9C32B1C80221DD432B8BCB5FCEFE0996F3\ -2FE9FC3EEB3F1F557AE1632750B92D05239AF857C42D59A3DAEB9629E1158BEC - -C464BBDAD275C50DCD983B65AD1019B9FF85A1E71C807F3204BB2C921DC31FBC\ -D8C5FC45868AE9EF85B6C9B83BBA2A5A822201ED68586EC5EC27FB2857A5D1A2\ -D09D09115F22DCC39FE61F5E1BA0FF6E8B4ACB4C6DA748BE7F3F0839739394FF\ -7FA8E39F7F7E84A33C3866875C01BCB1263C9405D91908E9E0B50E7459FABB63\ -D8C6BBB73D8E3483C099B55BC30FF092FF68B6ADEDFD477D63570C9F5515847F\ -36E24BA0B705557130CEC57EBAD1D0B31A378E91894EE26E3A04:\ -6B8BC6211FE5001E07B7D20E0C49D314211E3893A39DA241B8839BB3A494F9A2\ -FD8561009D22CCA1330A69362B386E715F1DBE6291DBEECFADF196DA47E53198 - -8B8D68BB8A75732FE272815A68A1C9C5AA31B41DEDC8493E76525D1D013D33CE\ -BD9E21A5BB95DB2616976A8C07FCF411F5F6BC6F7E0B57ACA78CC2790A6F9B89\ -8858AC9C79B165FF24E66677531E39F572BE5D81EB3264524181115F32780257\ -BFB9AEEC6AF12AF28E587CAC068A1A2953B59AD680F4C245B2E3EC36F59940D3\ -7E1D3DB38E13EDB29B5C0F404F6FF87F80FC8BE7A225FF22FBB9C8B6B1D7330C\ -57840D24BC75B06B80D30DAD6806544D510AF6C4785E823AC3E0B8:\ -D00E919DAFFF3D5E51AD3A3046F5E59D64B69CBCDA223CB28BC370201D2C722B\ -AE74DFE0086B0EB47BDCB62FABEE870C3340D46E55D8CFEDF2DD3CED8A8DB3F2 - -6B018710446F368E7421F1BC0CCF562D9C1843846BC8D98D1C9BF7D9D6FCB48B\ -FC3BF83B36D44C4FA93430AF75CD190BDE36A7F92F867F58A803900DF8018150\ -384D85D82132F123006AC2AEBA58E02A037FE6AFBD65ECA7C44977DD3DC74F48\ -B6E7A1BFD5CC4DCF24E4D52E92BD4455848E4928B0EAC8B7476FE3CC03E862AA\ -4DFF4470DBFED6DE48E410F25096487ECFC32A27277F3F5023B2725ADE461B13\ -55889554A8836C9CF53BD767F5737D55184EEA1AB3F53EDD0976C485:\ -CF63F28F107A509A416F9A92C4E4DB4DBF00FB52C2E16D8BB9694E09F9142A90\ -4C34E1E960BD97B8CFB2C53E7660C79B841D1565CDAB83293234026A23A56D12 - -C9534A24714BD4BE37C88A3DA1082EDA7CABD154C309D7BD670DCCD95AA53559\ -4463058A29F79031D6ECAA9F675D1211E9359BE82669A79C855EA8D89DD38C2C\ -761DDD0EC0CE9E97597432E9A1BEAE062CDD71EDFDFD464119BE9E69D18A7A7F\ -D7CE0E2106F0C8B0ABF4715E2CA48EF9F454DC203C96656653B727083513F8EF\ -B86E49C513BB758B3B052FE21F1C05BB33C37129D6CC81F1AEF6ADC45B0E8827\ -A830FE545CF57D0955802C117D23CCB55EA28F95C0D8C2F9C5A242B33F:\ -F21B8D45B6A857CE663C074C18CC54D914CDD5EB0D968E6153A5F70069345D20\ -5DDF4370EC473FC80B05F937D014C0A464582CB4A73B1B72041C5C99F576A41E - -07906C87297B867ABF4576E9F3CC7F82F22B154AFCBF293B9319F1B0584DA6A4\ -0C27B32E0B1B7F412C4F1B82480E70A9235B12EC27090A5A33175A2BB28D8ADC\ -475CEFE33F7803F8CE27967217381F02E67A3B4F84A71F1C5228E0C2AD971373\ -F6F672624FCEA8D1A9F85170FAD30FA0BBD25035C3B41A6175D467998BD1215F\ -6F3866F53847F9CF68EF3E2FBB54BC994DE2302B829C5EEA68EC441FCBAFD7D1\ -6AE4FE9FFF98BF00E5BC2AD54DD91FF9FDA4DD77B6C754A91955D1FBAAD0:\ -92287F42AB1A2123669C4D35F18257D3A536445F0E4D2C801E99F8529CD9E2A7\ -9205982C280C7A6CDDDEF24CE960EC6CA9A35F590AEEBC40448C389E915FC4E0 - -588E94B9054ABC2189DF69B8BA34341B77CDD528E7860E5DEFCAA79B0C9A452A\ -D4B82AA306BE84536EB7CEDCBE058D7B84A6AEF826B028B8A0271B69AC3605A9\ -635EA9F5EA0AA700F3EB7835BC54611B922964300C953EFE7491E3677C2CEBE0\ -822E956CD16433B02C68C4A23252C3F9E151A416B4963257B783E038F6B4D5C9\ -F110F871652C7A649A7BCEDCBCCC6F2D0725BB903CC196BA76C76AA9F10A190B\ -1D1168993BAA9FFC96A1655216773458BEC72B0E39C9F2C121378FEAB4E76A:\ -74A9D8F9F72908C7502D1C41212CD86CF4344721A6F02D390346F2BAEC6E6137\ -421E6516C3235443BC2337B3A77630712A12F11B7BA24B2D7085499BA74BCB90 - -08959A7E4BAAE874928813364071194E2939772F20DB7C3157078987C557C2A6\ -D5ABE68D520EEF3DC491692E1E21BCD880ADEBF63BB4213B50897FA005256ED4\ -1B5690F78F52855C8D9168A4B666FCE2DA2B456D7A7E7C17AB5F2FB1EE90B79E\ -698712E963715983FD07641AE4B4E9DC73203FAC1AE11FA1F8C7941FCC82EAB2\ -47ADDB56E2638447E9D609E610B60CE086656AAEBF1DA3C8A231D7D94E2FD0AF\ -E46B391FF14A72EAEB3F44AD4DF85866DEF43D4781A0B3578BC996C87970B132:\ -7432861132E6894BB6AE5115398198317E12CC73C0C5DFC61CB189FF5AA9FB0D\ -62224CBB1BFA8B105784405718E6F8E15E041DAD80D11AE507B33C15C6CAC824 - -CB2A234F45E2ECD5863895A451D389A369AAB99CFEF0D5C9FFCA1E6E63F763B5\ -C14FB9B478313C8E8C0EFEB3AC9500CF5FD93791B789E67EAC12FD038E2547CC\ -8E0FC9DB591F33A1E4907C64A922DDA23EC9827310B306098554A4A78F050262\ -DB5B545B159E1FF1DCA6EB734B872343B842C57EAFCFDA8405EEDBB48EF32E99\ -696D135979235C3A05364E371C2D76F1902F1D83146DF9495C0A6C57D7BF9EE7\ -7E80F9787AEE27BE1FE126CDC9EF893A4A7DCBBC367E40FE4E1EE90B42EA25AF\ -01:\ -6AF4FF4C423051E3306ACE812E5CFA85532B73DEEF0DFE601D2630632389D0FA\ -B2A109214D32508D2391775665B87A94D1DF29DB1214CB48DEC10DBD3D8CF591 - -D16BEADF02AB1D4DC6F88B8C4554C51E866DF830B89C06E786A5F8757E890931\ -0AF51C840EFE8D20B35331F4355D80F73295974653DDD620CDDE4730FB6C8D0D\ -2DCB2B45D92D4FBDB567C0A3E86BD1A8A795AF26FBF29FC6C65941CDDB090FF7\ -CD230AC5268AB4606FCCBA9EDED0A2B5D014EE0C34F0B2881AC036E24E151BE8\ -9EEB6CD9A7A790AFCCFF234D7CB11B99EBF58CD0C589F20BDAC4F9F0E28F75E3\ -E04E5B3DEBCE607A496D848D67FA7B49132C71B878FD5557E082A18ECA1FBDA9\ -4D4B:\ -4648D263B608CF28CA65B28A361EBB00E0784C65AB1D55C46A785737B6C8D83D\ -D52E3367D898921EA36DADA42D893800D0BFCF86554CDF5E7630D60A2E8EE29F - -8F65F6BC59A85705016E2BAE7FE57980DE3127E5AB275F573D334F73F8603106\ -EC3553016608EF2DD6E69B24BE0B7113BF6A760BA6E9CE1C48F9E186012CF96A\ -1D4849D75DF5BB8315387FD78E9E153E76F8BA7EC6C8849810F59FB4BB9B0043\ -18210B37F1299526866F44059E017E22E96CBE418699D014C6EA01C9F0038B10\ -299884DBEC3199BB05ADC94E955A1533219C1115FED0E5F21228B071F40DD57C\ -4240D98D37B73E412FE0FA4703120D7C0C67972ED233E5DEB300A22605472FA3\ -A3BA86:\ -DBD3732440010595AB26F84EFEB07732227A7B7B52D6FF339C7FF1B644224920\ -2AE33A0AEF5167F5B0474D74A5B50CDB033D6C5C72894A3686FE6ECB36E357F3 - -84891E52E0D451813210C3FD635B39A03A6B7A7317B221A7ABC270DFA946C426\ -69AACBBBDF801E1584F330E28C729847EA14152BD637B3D0F2B38B4BD5BF9C79\ -1C58806281103A3EABBAEDE5E711E539E6A8B2CF297CF351C078B4FA8F7F35CF\ -61BEBF8814BF248A01D41E86C5715EA40C63F7375379A7EB1D78F27622FB468A\ -B784AAABA4E534A6DFD1DF6FA15511341E725ED2E87F98737CCB7B6A6DFAE416\ -477472B046BF1811187D151BFA9F7B2BF9ACDB23A3BE507CDF14CFDF517D2CB5\ -FB9E4AB6:\ -C24D4054110889290CBC40B82AD8599229D8E86E4CE76BDDBBB6F5386223512C\ -9D7E00973C706442B2C80EDD20904067AF8E4E681AECBFADC6AA15A2EBFE7DDD - -FDD7A9433A3B4AFABD7A3A5E3457E56DEBF78E84B7A0B0CA0E8C6D53BD0C2DAE\ -31B2700C6128334F43981BE3B213B1D7A118D59C7E6B6493A86F866A1635C128\ -59CFB9AD17460A77B4522A5C1883C3D6ACC86E6162667EC414E9A104AA892053\ -A2B1D72165A855BACD8FAF8034A5DD9B716F47A0818C09BB6BAF22AA503C06B4\ -CA261F557761989D2AFBD88B6A678AD128AF68672107D0F1FC73C5CA74045929\ -7B3292B281E93BCEB761BDE7221C3A55708E5EC84472CDDCAA84ECF23723CC09\ -91355C6280:\ -4A6404D278A0BA70488C18D7D1861CDE26FD57D66A9AFFE74F1E646E616003A5\ -2FE42520504AC4ACE5CA6665CF9155F44ECAA05D55F80FE9794ADE17871C5728 - -70A40BFBEF92277A1AAD72F6B79D0177197C4EBD432668CFEC05D099ACCB6510\ -62B5DFF156C0B27336687A94B26679CFDD9DAF7AD204338DD9C4D14114033A5C\ -225BD11F217B5F4732DA167EE3F939262D4043FC9CBA92303B7B5E96AEA12ADD\ -A64859DF4B86E9EE0B58E39091E6B188B408AC94E1294A8911245EE361E60E60\ -1EFF58D1D37639F3753BEC80EBB4EFDE25817436076623FC65415FE51D1B0280\ -366D12C554D86743F3C3B6572E400361A60726131441BA493A83FBE9AFDA90F7\ -AF1AE717238D:\ -FFFD1B1E31377DFF00B492295BCCC735733B021F47BB4AFBA6549EA6C1BA3832\ -E8587099AD0CC216AF5899AC683EB7C246871E21C30FEEF9BCEEDFC78D0C966C - -74356E449F4BF8644F77B14F4D67CB6BD9C1F5AE357621D5B8147E562B65C665\ -85CAF2E491B48529A01A34D226D436959153815380D5689E30B35357CDAC6E08\ -D3F2B0E88E200600D62BD9F5EAF488DF86A4470EA227006182E44809009868C4\ -C280C43D7D64A5268FA719074960087B3A6ABC837882F882C837834535929389\ -A12B2C78187E2EA07EF8B8EEF27DC85002C3AE35F1A50BEE6A1C48BA7E175F33\ -16670B27983472AA6A61EED0A683A39EE323080620EA44A9F74411AE5CE99030\ -528F9AB49C79F2:\ -33C8F40E1BD1EB1A3A70D2071D27460EF0F6B2D3ECE373743842D6B928F3771E\ -4B7446A9ECFBBF552C064F6B26095401097581C38B95E9551119A1FDCB3D58E7 - -8C3798E51BC68482D7337D3ABB75DC9FFE860714A9AD73551E120059860DDE24\ -AB87327222B64CF774415A70F724CDF270DE3FE47DDA07B61C9EF2A3551F45A5\ -584860248FABDE676E1CD75F6355AA3EAEABE3B51DC813D9FB2EAA4F0F1D9F83\ -4D7CAD9C7C695AE84B329385BC0BEF895B9F1EDF44A03D4B410CC23A79A6B62E\ -4F346A5E8DD851C2857995DDBF5B2D717AEB847310E1F6A46AC3D26A7F9B4498\ -5AF656D2B7C9406E8A9E8F47DCB4EF6B83CAACF9AEFB6118BFCFF7E44BEF6937\ -EBDDC89186839B77:\ -2A11CB6921EA662A39DDEE7982E3CF5B317195661D5505AD04D11EE23E178ED6\ -5F3E06A7F096F4EAF1FF6A09239CF5A0A39DC9F4C92AF63FDF7211E1CF467653 - -FA56BF730C4F8395875189C10C4FB251605757A8FECC31F9737E3C2503B02608\ -E6731E85D7A38393C67DE516B85304824BFB135E33BF22B3A23B913BF6ACD2B7\ -AB85198B8187B2BCD454D5E3318CACB32FD6261C31AE7F6C54EF6A7A2A4C9F3E\ -CB81CE3555D4F0AD466DD4C108A90399D70041997C3B25345A9653F3C9A6711A\ -B1B91D6A9D2216442DA2C973CBD685EE7643BFD77327A2F7AE9CB283620A0871\ -6DFB462E5C1D65432CA9D56A90E811443CD1ECB8F0DE179C9CB48BA4F6FEC360\ -C66F252F6E64EDC96B:\ -9196BBBD194541FFEE7EDBAB970738BDD3AADBD6B73D1C85B580AFAC1232AE80\ -77F743CE8B5B6F2B418B5134CCCD4F83645E8631885B14FBBCB909A9836C374C - -B6134F9C3E91DD8000740D009DD806240811D51AB1546A974BCB18D344642BAA\ -5CD5903AF84D58EC5BA17301D5EC0F10CCD0509CBB3FD3FFF9172D193AF0F782\ -252FD1338C7244D40E0E42362275B22D01C4C3389F19DD69BDF958EBE28E31A4\ -FFE2B5F18A87831CFB7095F58A87C9FA21DB72BA269379B2DC2384B3DA953C79\ -25761FED324620ACEA435E52B424A7723F6A2357374157A34CD8252351C25A1B\ -232826CEFE1BD3E70FFC15A31E7C0598219D7F00436294D11891B82497BC78AA\ -5363892A2495DF8C1EEF:\ -1959CAE3600F128F72E1821C337D841B14CBBFEF3A6D22286F18BDFC3EF63528\ -C11BFFA841A6D2208AFEB5664D524DE83090AB0DB07CD47EF52F4D2EAA8454CE - -C941CDB9C28AB0A791F2E5C8E8BB52850626AA89205BEC3A7E22682313D198B1\ -FA33FC7295381354858758AE6C8EC6FAC3245C6E454D16FA2F51C4166FAB51DF\ -272858F2D603770C40987F64442D487AF49CD5C3991CE858EA2A60DAB6A65A34\ -414965933973AC2457089E359160B7CDEDC42F29E10A91921785F6B7224EE0B3\ -49393CDCFF6151B50B377D609559923D0984CDA6000829B916AB6896693EF6A2\ -199B3C22F7DC5500A15B8258420E314C222BC000BC4E5413E6DD82C993F8330F\ -5C6D1BE4BC79F08A1A0A46:\ -A913DDC5BB089C121FF093BE529225148DF787D48F4F61699EFF9FC2910282A8\ -98A81A38D66BE9B06428D6466A614CA822A872C1C2C4D503D434D3B1D6942102 - -4499EFFFAC4BCEA52747EFD1E4F20B73E48758BE915C88A1FFE5299B0B005837\ -A46B2F20A9CB3C6E64A9E3C564A27C0F1C6AD1960373036EC5BFE1A8FC6A435C\ -2185ED0F114C50E8B3E4C7ED96B06A036819C9463E864A58D6286F785E32A804\ -443A56AF0B4DF6ABC57ED5C2B185DDEE8489EA080DEEEE66AA33C2E6DAB36251\ -C402682B6824821F998C32163164298E1FAFD31BABBCFFB594C91888C6219079\ -D907FDB438ED89529D6D96212FD55ABE20399DBEFD342248507436931CDEAD49\ -6EB6E4A80358ACC78647D043:\ -F10B91564AD93D734743281949BACEF065A6432A455236F1BF798DE9AEC6CCAC\ -9B8D373B07C5ACFBD676EF21E4A3A9E0F7C38E8756D177D0A5C283D520844B4D - -EECBB8FDFA4DA62170FD06727F697D81F83F601FF61E478105D3CB7502F2C89B\ -F3E8F56EDD469D049807A38882A7EEFBC85FC9A950952E9FA84B8AFEBD3CE782\ -D4DA598002827B1EB98882EA1F0A8F7AA9CE013A6E9BC462FB66C8D4A18DA214\ -01E1B93356EB12F3725B6DB1684F2300A98B9A119E5D27FF704AFFB618E12708\ -E77E6E5F34139A5A41131FD1D6336C272A8FC37080F041C71341BEE6AB550CB4\ -A20A6DDB6A8E0299F2B14BC730C54B8B1C1C487B494BDCCFD3A53535AB2F2315\ -90BF2C4062FD2AD58F906A2D0D:\ -EF26A1BAF33D4DE047BDD2CE34736E042ECD33AA569FFC0CB81ECFA66E9F87DA\ -8D025ECBA24BCB187E4201046FB99A02DFA6F1BF88EC2B88DE216CF759FAC41D - -E64F3E4ACE5C8418D65FEC2BC5D2A303DD458034736E3B0DF719098BE7A206DE\ -AF52D6BA82316CAF330EF852375188CDE2B39CC94AA449578A7E2A8E3F5A9D68\ -E816B8D16889FBC0EBF0939D04F63033AE9AE2BDAB73B88C26D6BD25EE460EE1\ -EF58FB0AFA92CC539F8C76D3D097E7A6A63EBB9B5887EDF3CF076028C5BBD5B9\ -DB3211371AD3FE121D4E9BF44229F4E1ECF5A0F9F0EBA4D5CEB72878AB22C3F0\ -EB5A625323AC66F7061F4A81FAC834471E0C59553F108475FE290D43E6A055AE\ -3EE46FB67422F814A68C4BE3E8C9:\ -F8E079A6DC5A6A7E7F32FF7E8015D1B26D43B54F166F2111CFB2B1EB238CABEE\ -58630EF845E0DB00DDF1D800AD67CE7B2B658B42118CC15C8EF3BC9FB252DB64 - -D2CB2D733033F9E91395312808383CC4F0CA974E87EC68400D52E96B3FA6984A\ -C58D9AD0938DDE5A973008D818C49607D9DE2284E7618F1B8AED8372FBD52ED5\ -4557AF4220FAC09DFA8443011699B97D743F8F2B1AEF3537EBB45DCC9E13DFB4\ -38428EE190A4EFDB3CAEB7F3933117BF63ABDC7E57BEB4171C7E1AD260AB0587\ -806C4D137B6316B50ABC9CCE0DFF3ACADA47BBB86BE777E617BBE578FF451984\ -4DB360E0A96C6701290E76BB95D26F0F804C8A4F2717EAC4E7DE9F2CFF3BBC55\ -A17E776C0D02856032A6CD10AD2838:\ -A5BFAA52499A688D9C8D3DDC0BA06DECDF3829BE5D444ACFA412F4C6E863F478\ -6BE9935805310734E4F0AFFE05558999807408E97E100FADD0C93FF160F8B11B - -F2998955613DD414CC111DF5CE30A995BB792E260B0E37A5B1D942FE90171A4A\ -C2F66D4928D7AD377F4D0554CBF4C523D21F6E5F379D6F4B028CDCB9B1758D3B\ -39663242FF3CB6EDE6A36A6F05DB3BC41E0D861B384B6DEC58BB096D0A422FD5\ -42DF175E1BE1571FB52AE66F2D86A2F6824A8CFAACBAC4A7492AD0433EEB1545\ -4AF8F312B3B2A577750E3EFBD370E8A8CAC1582581971FBA3BA4BD0D76E718DA\ -CF8433D33A59D287F8CC92234E7A271041B526E389EFB0E40B6A18B3AAF658E8\ -2ED1C78631FD23B4C3EB27C3FAEC8685:\ -CCEA9FCF1AD93270AC4690E96B875122C5B5EC20D2CC27079CBF893126C44E02\ -08A8BFA139057D72BD2638059EC8DA8A720499AF9D4C117F86799D7515DFC6E0 - -447797E2899B72A356BA55BF4DF3ACCA6CDB1041EB477BD1834A9F9ACBC340A2\ -94D729F2F97DF3A610BE0FF15EDB9C6D5DB41644B9874360140FC64F52AA03F0\ -286C8A640670067A84E017926A70438DB1BB361DEFEE7317021425F8821DEF26\ -D1EFD77FC853B818545D055ADC9284796E583C76E6FE74C9AC2587AA46AA8F88\ -04F2FEB5836CC4B3ABABAB8429A5783E17D5999F32242EB59EF30CD7ADABC16D\ -72DBDB097623047C98989F88D14EAF02A7212BE16EC2D07981AAA99949DDF89E\ -CD90333A77BC4E1988A82ABF7C7CAF3291:\ -2EFC5DFE028A35503A25BDF8B2164D86CA7496B7C5DED09C5D414B6977ADBB4A\ -6988AB9939D1EC65F46BCC99C1DCD5F19E035D8D3DC387361200E4DA80C80671 - -9F2C18ADE9B380C784E170FB763E9AA205F64303067EB1BCEA93DF5DAC4BF5A2\ -E00B78195F808DF24FC76E26CB7BE31DC35F0844CDED1567BBA29858CFFC97FB\ -29010331B01D6A3FB3159CC1B973D255DA9843E34A0A4061CABDB9ED37F241BF\ -ABB3C20D32743F4026B59A4CCC385A2301F83C0B0A190B0F2D01ACB8F0D41111\ -E10F2F4E149379275599A52DC089B35FDD5234B0CFB7B6D8AEBD563CA1FA653C\ -5C021DFD6F5920E6F18BFAFDBECBF0AB00281333ED50B9A999549C1C8F8C63D7\ -626C48322E9791D5FF72294049BDE91E73F8:\ -E80D7A934FDAF17DB8DBB1DC6C42E90E139211C2F599890C06B15D6248FDBE68\ -2D77D4E05F26D72852F7492BCE118CE7C36950BD2C50F9699BB47D89C3115377 - -AE159F3FA33619002AE6BCCE8CBBDD7D28E5ED9D61534595C4C9F43C402A9BB3\ -1F3B301CBFD4A43CE4C24CD5C9849CC6259ECA90E2A79E01FFBAC07BA0E147FA\ -42676A1D668570E0396387B5BCD599E8E66AAED1B8A191C5A47547F61373021F\ -A6DEADCB55363D233C24440F2C73DBB519F7C9FA5A8962EFD5F6252C0407F190\ -DFEFAD707F3C7007D69FF36B8489A5B6B7C557E79DD4F50C06511F599F56C896\ -B35C917B63BA35C6FF8092BAF7D1658E77FC95D8A6A43EEB4C01F33F03877F92\ -774BE89C1114DD531C011E53A34DC248A2F0E6:\ -C414B29FD07720F46C351F5C80BE2094E95D13AD97BDD1F7C5207B695693CD5E\ -1E0169B1AA2E271115BD5171FEC51D04B71E3E7CE1618FBFEB382F56F65F7EFF - -3B8E97C5FFC2D6A40FA7DE7FCEFC90F3B12C940E7AB415321E29EE692DFAC799\ -B009C99DCDDB708FCE5A178C5C35EE2B8617143EDC4C40B4D313661F49ABDD93\ -CEA79D117518805496FE6ACF292C4C2A1F76B403A97D7C399DAF85B46AD84E16\ -246C67D6836757BDE336C290D5D401E6C1386AB32797AF6BB251E9B2D8FE754C\ -47482B72E0B394EAB76916126FD68EA7D65EB93D59F5B4C5AC40F7C3B37E7F36\ -94F29424C24AF8C8F0EF59CD9DBF1D28E0E10F799A6F78CAD1D45B9DB3D7DEE4\ -A7059ABE99182714983B9C9D44D7F5643596D4F3:\ -A4679A4CBEE6292203BAFBA8913245F30E046ABA6C0937B407C00B73D17D8D69\ -6690EE25BA1B39DEB3DB93525A8FBCFD88173BA9C7A65B4406D0550BA9B6CC07 - -3434EC31B10FAFDBFEEC0DD6BD94E80F7BA9DCA19EF075F7EB017512AF66D6A4\ -BCF7D16BA0819A1892A6372F9B35BCC7CA8155EE19E8428BC22D214856ED5FA9\ -374C3C09BDE169602CC219679F65A1566FC7316F4CC3B631A18FB4449FA6AFA1\ -6A3DB2BC4212EFF539C67CF184680826535589C7111D73BFFCE431B4C40492E7\ -63D9279560AAA38EB2DC14A212D723F994A1FE656FF4DD14551CE4E7C621B2AA\ -5604A10001B2878A897A28A08095C325E10A26D2FB1A75BFD64C250309BB55A4\ -4F23BBAC0D5516A1C687D3B41EF2FBBF9CC56D4739:\ -5F49D6594DA939987D1906294B33A037F63C79E078531DFA7E6CE67279D4D5DB\ -EB650FF8690F23B63B7E9C48EA8791B80FDB34EF66DCF0CEFE45842ECFF4AD1D - -7C7953D81C8D208FD1C97681D48F49DD003456DE60475B84070EF4847C333B74\ -575B1FC8D2A186964485A3B8634FEAA3595AAA1A2F4595A7D6B6153563DEE31B\ -BAC443C8A33EED6D5D956A980A68366C2527B550EE950250DFB691EACBD5D56A\ -E14B970668BE174C89DF2FEA43AE52F13142639C884FD62A3683C0C3792F0F24\ -AB1318BCB27E21F4737FAB62C77EA38BC8FD1CF41F7DAB64C13FEBE7152BF5BB\ -7AB5A78F5346D43CC741CB6F72B7B8980F268B68BF62ABDFB1577A52438FE14B\ -591498CC95F071228460C7C5D5CEB4A7BDE588E7F21C:\ -B77FB79669EA52C738E58A9EF3ED1501BBE7974478AFB5A8BED44549D6232FF8\ -D7AA9EEEAF02F6755327951093243110D7BCFC0E51299DB793856B57A77E8420 - -7A6A4F4FDC59A1D223381AE5AF498D74B7252ECF59E389E49130C7EAEE626E7B\ -D9897EFFD92017F4CCDE66B0440462CDEDFD352D8153E6A4C8D7A0812F701CC7\ -37B5178C2556F07111200EB627DBC299CAA792DFA58F35935299FA3A3519E9B0\ -3166DFFA159103FFA35E8577F7C0A86C6B46FE13DB8E2CDD9DCFBA85BDDDCCE0\ -A7A8E155F81F712D8E9FE646153D3D22C811BD39F830433B2213DD46301941B5\ -9293FD0A33E2B63ADBD95239BC01315C46FDB678875B3C81E053A40F581CFBEC\ -24A1404B1671A1B88A6D06120229518FB13A74CA0AC5AE:\ -CACA0FF43107F730A7FBE6869FBA5AF1E626C96303BE3BC95155164199C88922\ -194511B24C48911186F647CA246427F2CE7BA747271CD8D7C5E1D127C21F1EAA - -D9FAA14CEBE9B7DE551B6C0765409A33938562013B5E8E0E1E0A6418DF7399D0\ -A6A771FB81C3CA9BD3BB8E2951B0BC792525A294EBD1083688806FE5E7F1E17F\ -D4E3A41D00C89E8FCF4A363CAEDB1ACB558E3D562F1302B3D83BB886ED27B760\ -33798131DAB05B4217381EAAA7BA15EC820BB5C13B516DD640EAEC5A27D05FDF\ -CA0F35B3A5312146806B4C0275BCD0AAA3B2017F346975DB566F9B4D137F4EE1\ -0644C2A2DA66DEECA5342E236495C3C6280528BFD32E90AF4CD9BB908F34012B\ -52B4BC56D48CC8A6B59BAB014988EABD12E1A0A1C2E170E7:\ -E5106B2A0D49D6D1E13E3323232101CEA5DA71CAA24E70EFCAC57E0CCF156CDF\ -4C2492B03CE0E13437018DAB76B9C989883BEA69E849F33BB937A397B84ADA6A - -2D8427433D0C61F2D96CFE80CF1E932265A191365C3B61AAA3D6DCC039F6BA2A\ -D52A6A8CC30FC10F705E6B7705105977FA496C1C708A277A124304F1FC40911E\ -7441D1B5E77B951AAD7B01FD5DB1B377D165B05BBF898042E39660CAF8B279FE\ -5229D1A8DB86C0999ED65E53D01CCBC4B43173CCF992B3A14586F6BA42F5FE30\ -AFA8AE40C5DF29966F9346DA5F8B35F16A1DE3AB6DE0F477D8D8660918060E88\ -B9B9E9CA6A4207033B87A812DBF5544D39E4882010F82B6CE005F8E8FF6FE3C3\ -806BC2B73C2B83AFB704345629304F9F86358712E9FAE3CA3E:\ -FAEE462E4BCED12AD54D3757D644396ED9203037741661AEA32BCCADAE568C4B\ -DC925EDA76610E964FBE3FB26B33BC0BC123DDF9B528715317CE5C92E00AC96F - -5E19D97887FCAAC0387E22C6F803C34A3DACD2604172433F7A8A7A526CA4A2A1\ -271ECFC5D5D7BE5AC0D85D921095350DFC65997D443C21C8094E0A3FEFD2961B\ -CB94AED03291AE310CCDA75D8ACE4BC7D89E7D3E5D1650BDA5D668B8B50BFC8E\ -608E184F4D3A9A2BADC4FF5F07E0C0BC8A9F2E0B2A26FD6D8C550008FAAAB75F\ -D71AF2A424BEC9A7CD9D83FAD4C8E9319115656A8717D3B523A68FF8004258B9\ -990ED362308461804BA3E3A7E92D8F2FFAE5C2FBA55BA5A3C27C0A2F71BD711D\ -2FE1799C2ADB31B200035481E9EE5C4ADF2AB9C0FA50B23975CF:\ -FBE25B43E540104A3AADE897838C63511928AF5ADD4F952F1E6D4C39E70C923D\ -F191FAA36F46B21F827D9B437996FF7206F73337CF20C6B0DB748A707455B420 - -C8E976AB4638909387CE3B8D4E510C3230E5690E02C45093B1D297910ABC481E\ -56EEA0F296F98379DFC9080AF69E73B2399D1C143BEE80AE1328162CE1BA7F6A\ -8374679B20AACD380EB4E61382C99998704D62701AFA914F9A2705CDB065885F\ -50D086C3EB5753700C387118BB142F3E6DA1E988DFB31AC75D7368931E45D139\ -1A274B22F83CEB072F9BCABC0B216685BFD789F5023971024B1878A205442522\ -F9EA7D8797A4102A3DF41703768251FD5E017C85D1200A464118AA35654E7CA3\ -9F3C375B8EF8CBE7534DBC64BC20BEFB417CF60EC92F63D9EE7397:\ -0A41A004573E0A983FE9C93BD57439A20C8F99B800A60D4A07117E8D9B25C0EE\ -38BAB3CDB6FC9216B8E07F0CCDD028C418EF97B6D7E15DECDE7425497644E2E4 - -7145FA124B7429A1FC2231237A949BA7201BCC1822D3272DE005B682398196C2\ -5F7E5CC2F289FBF44415F699CB7FE6757791B1443410234AE061EDF623359E2B\ -4E32C19BF88450432DD01CAA5EB16A1DC378F391CA5E3C4E5F356728BDDD4975\ -DB7C890DA8BBC84CC73FF244394D0D48954978765E4A00B593F70F2CA082673A\ -261ED88DBCEF1127728D8CD89BC2C597E9102CED6010F65FA75A14EBE467FA57\ -CE3BD4948B6867D74A9DF5C0EC6F530CBF2EE61CE6F06BC8F2864DFF5583776B\ -31DF8C7FFCB61428A56BF7BD37188B4A5123BBF338393AF46EDA85E6:\ -FF081507F979F69C6743E42EE758858713B570CB48FF85EF0D728C4E1BB5456D\ -035E498C05EA4CEBD820E134BB252AC76BA4949A4FAD76871A9972AE2FCCCEEA - -7FDFADCC9D29BAD23AE038C6C65CDA1AEF757221B8872ED3D75FF8DF7DA0627D\ -266E224E812C39F7983E4558BFD0A1F2BEF3FEB56BA09120EF762917B9C09386\ -7948547AEE98600D10D87B20106878A8D22C64378BF634F7F75900C03986B077\ -B0BF8B740A82447B61B99FEE5376C5EB6680EC9E3088F0BDD0C56883413D60C1\ -357D3C811950E5890E7600103C916341B80C743C6A852B7B4FB60C3BA21F3BC1\ -5B8382437A68454779CF3CD7F9F90CCC8EF28D0B706535B1E4108EB5627BB45D\ -719CB046839AEE311CA1ABDC8319E050D67972CB35A6B1601B25DBF487:\ -03444AE8319EBD121E7707B9CDFD1FDFD52F3D6B3D4BCB2748AF421A3C8666C2\ -2D8C0D8A096767B1CD16A8D54738C5F67A6F9D48C90827BE71691A42BE87108B - -988638219FD3095421F826F56E4F09E356296B628C3CE6930C9F2E758FD1A80C\ -8273F2F61E4DAAE65C4F110D3E7CA0965AC7D24E34C0DC4BA2D6FF0BF5BBE93B\ -3585F354D7543CB542A1AA54674D375077F2D360A8F4D42F3DB131C3B7AB7306\ -267BA107659864A90C8C909460A73621D1F5D9D3FD95BEB19B23DB1CB6C0D0FB\ -A91D36891529B8BD8263CAA1BAB56A4AFFAED44962DF096D8D5B1EB845EF3118\ -8B3E10F1AF811A13F156BEB7A288AAE593EBD1471B624AA1A7C6ADF01E2200B3\ -D72D88A3AED3100C88231E41EFC376906F0B580DC895F080FDA5741DB1CB:\ -5EE0A4459724037B7318815A80147C172D6C8F8874C9A0057706FB3E300FE936\ -815F07672E6447B771DE699DFADF345C3BB5974CF019315FADD5534DFF6A079C - -5AAB62756D307A669D146ABA988D9074C5A159B3DE85151A819B117CA1FF6597\ -F6156E80FDD28C9C3176835164D37DA7DA11D94E09ADD770B68A6E081CD22CA0\ -C004BFE7CD283BF43A588DA91F509B27A6584C474A4A2F3EE0F1F56447379240\ -A5AB1FB77FDCA49B305F07BA86B62756FB9EFB4FC225C86845F026EA542076B9\ -1A0BC2CDD136E122C659BE259D98E5841DF4C2F60330D4D8CDEE7BF1A0A24452\ -4EECC68FF2AEF5BF0069C9E87A11C6E519DE1A4062A10C83837388F7EF58598A\ -3846F49D499682B683C4A062B421594FAFBC1383C943BA83BDEF515EFCF10D:\ -54085A2F9C327E5D8EE225EFF5BD2C2837E44E8057CF1691E6202050079D2685\ -1061C4DA8D88FC19237E5B658950E66866E92019D9E425E2416240A59D25A6CF - -47B8216AA0FBB5D67966F2E82C17C07AA2D6327E96FCD83E3DE7333689F3EE79\ -994A1BF45082C4D725ED8D41205CB5BCDF5C341F77FACB1DA46A5B9B2CBC49EA\ -DF786BCD881F371A95FA17DF73F606519AEA0FF79D5A11427B98EE7F13A5C006\ -37E2854134691059839121FEA9ABE2CD1BCBBBF27C74CAF3678E05BFB1C94989\ -7EA01F56FFA4DAFBE8644611685C617A3206C7A7036E4AC816799F693DAFE7F1\ -9F303CE4EBA09D21E03610201BFC665B72400A547A1E00FA9B7AD8D84F84B34A\ -EF118515E74DEF11B9188BD1E1F97D9A12C30132EC2806339BDADACDA2FD8B78:\ -3EA49B6ABD39CDF04BCCD648FB7E1F8AE3DAE9D3E3A5EAB9CE29BE356DEFBBBE\ -B1BB93AE40D31CC1F011DCC6C6AC85B102F2654E2DBBAC47333BCDB4758A1A28 - -8CFF1F67FE53C098896D9136389BD8881816CCAB34862BB67A656E3D98896F3C\ -E6FFD4DA73975809FCDF9666760D6E561C55238B205D8049C1CEDEEF374D1735\ -DAA533147BFA960B2CCE4A4F254176BB4D1BD1E89654432B8DBE1A135C42115B\ -394B024856A2A83DC85D6782BE4B444239567CCEC4B184D4548EAE3FF6A192F3\ -43292BA2E32A0F267F31CC26719EB85245D415FB897AC2DA433EE91A99424C9D\ -7F1766A44171D1651001C38FC79294ACCC68CEB5665D36218454D3BA169AE058\ -A831338C17743603F81EE173BFC0927464F9BD728DEE94C6AEAB7AAE6EE3A627\ -E8:\ -B3851790CA47575DBF988F82C3B501DC8390A8E8598698166167567A0332913C\ -CC8868584DB4ACFB2C9DC0F0A6833292F4DCEDC47CF003217689BC2422B53B93 - -EACD07971CFF9B9939903F8C1D8CBB5D4DB1B548A85D04E037514A583604E787\ -F32992BF2111B97AC5E8A938233552731321522AB5E8583561260B7D13EBEEF7\ -85B23A41FD8576A6DA764A8ED6D822D4957A545D5244756C18AA80E1AAD4D1F9\ -C20D259DEE1711E2CC8FD013169FB7CC4CE38B362F8E0936AE9198B7E838DCEA\ -4F7A5B9429BB3F6BBCF2DC92565E3676C1C5E6EB3DD2A0F86AA23EDD3D0891F1\ -97447692794B3DFA269611AD97F72B795602B4FDB198F3FD3EB41B415064256E\ -345E8D8C51C555DC8A21904A9B0F1AD0EFFAB7786AAC2DA3B196507E9F33CA35\ -6427:\ -A710CB26C632F289504CD0039BA6AB9B4D3524C52B286D466E2F8939F8684E3F\ -18DCA298A2BA67EB710997B7BB10AE279438B9B4868D0ADB248F282BB440A130 - -23AC4E9A42C6EF45C3336CE6DFC2FF7DE8884CD23DC912FEF0F7756C09D335C1\ -89F3AD3A23697ABDA851A81881A0C8CCAFC980AB2C702564C2BE15FE4C4B9F10\ -DFB2248D0D0CB2E2887FD4598A1D4ACDA897944A2FFC580FF92719C95CF2AA42\ -DC584674CB5A9BC5765B9D6DDF5789791D15F8DD925AA12BFFAFBCE60827B490\ -BB7DF3DDA6F2A143C8BF96ABC903D83D59A791E2D62814A89B8080A28060568C\ -F24A80AE61179FE84E0FFAD00388178CB6A617D37EFD54CC01970A4A41D1A8D3\ -DDCE46EDBBA4AB7C90AD565398D376F431189CE8C1C33E132FEAE6A8CD17A61C\ -630012:\ -8F677A8089052B47BE60C0BB7666E403A5DAA5E28A2B632F2E496C587F1FDCA0\ -EE33D9E78DAA4EF575B13389748B8C24110053B0B96A082C06C3F80EBE8DE976 - -0172DF732282C9D488669C358E3492260CBE91C95CFBC1E3FEA6C4B0EC129B45\ -F242ACE09F152FC6234E1BEE8AAB8CD56E8B486E1DCBA9C05407C2F95DA8D8F1\ -C0AF78EE2ED82A3A79EC0CB0709396EE62AADB84F8A4EE8A7CCCA3C1EE84E302\ -A09EA802204AFECF04097E67D0F8E8A9D2651126C0A598A37081E42D168B0AE8\ -A71951C524259E4E2054E535B779679BDADE566FE55700858618E626B4A0FAF8\ -95BCCE9011504A49E05FD56127EAE3D1F8917AFB548ECADABDA1020111FEC931\ -4C413498A360B08640549A22CB23C731ACE743252A8227A0D2689D4C60016066\ -78DFB921:\ -CE631E6F2C2DC5738C0FA958571773B58AF130B94824331419EE57E2691CE5F2\ -9DB3D8FE456CD1E7CDC07F6105FA1B6FD729C2B419008CCD889169C3385DB1B9 - -3875B9240CF3E0A8B59C658540F26A701CF188496E2C2174788B126FD29402D6\ -A75453BA0635284D08835F40051A2A9683DC92AFB9383719191231170379BA6F\ -4ADC816FECBB0F9C446B785BF520796841E58878B73C58D3EBB097CE4761FDEA\ -BE15DE2F319DFBAF1742CDEB389559C788131A6793E193856661376C81CE9568\ -DA19AA6925B47FFD77A43C7A0E758C37D69254909FF0FBD415EF8EB937BCD49F\ -91468B49974C07DC819ABD67395DB0E05874FF83DDDAB895344ABD0E7111B2DF\ -9E58D76D85AD98106B36295826BE04D435615595605E4B4BB824B33C4AFEB5E7\ -BB0D19F909:\ -FFF677BB58909C158EA677BE704253505B106AF934F639ABFEC63BD0C63097AA\ -4BF032FE924149DD991D335E1C44C0220E4D13CBC41B6A98FB5A05FAA3FE15B3 - -747CC1A59FEFBA94A9C75BA866C30DC5C1CB0C0F8E9361D98484956DD5D1A40F\ -6184AFBE3DAC9F76028D1CAECCFBF69199C6CE2B4C092A3F4D2A56FE5A33A007\ -57F4D7DEE5DFB0524311A97AE0668A47971B95766E2F6DD48C3F57841F91F04A\ -00AD5EA70F2D479A2620DC5CD78EAAB3A3B011719B7E78D19DDF70D9423798AF\ -77517EBC55392FCD01FC600D8D466B9E7A7A85BF33F9CC5419E9BD874DDFD609\ -81150DDAF8D7FEBAA4374F0872A5628D318000311E2F5655365AD4D407C20E5C\ -04DF17A222E7DEEC79C5AB1116D8572F91CD06E1CCC7CED53736FC867FD49ECE\ -BE6BF8082E8A:\ -451EE587226C99989F5EC10050983B1FD661228A4AB48618F1D1173C94FAC39E\ -CFD3C26C16653633B26097E31A0F2213B4F1153A57CB48A70D2AF1ADEB1BBC06 - -57AF971FCCAEC97435DC2EC9EF0429BCEDC6B647729EA168858A6E49AC1071E7\ -06F4A5A645CA14E8C7746D65511620682C906C8B86EC901F3DDED4167B3F00B0\ -6CBFAC6AEE3728051B3E5FF10B4F9ED8BD0B8DA94303C833755B3CA3AEDDF0B5\ -4BC8D6632138B5D25BAB03D17B3458A9D782108006F5BB7DE75B5C0BA854B423\ -D8BB801E701E99DC4FEAAD59BC1C7112453B04D33EA3635639FB802C73C2B71D\ -58A56BBD671B18FE34ED2E3DCA38827D63FDB1D4FB3285405004B2B3E26081A8\ -FF08CD6D2B08F8E7B7E90A2AB1ED7A41B1D0128522C2F8BFF56A7FE67969422C\ -E839A9D4608F03:\ -F9D6AD8686125E71FE0856E806D68BA97EF123443938D28283387F33E3AC6E2A\ -7DE042A3EE5F7994C1EECC5B6F22CBAE1349CAB2FB7A0A0125EC2320320858D4 - -04E16DEDC1227902BAAF332D3D08923601BDD64F573FAA1BB7201918CFE16B1E\ -10151DAE875DA0C0D63C59C3DD050C4C6A874011B018421AFC4623AB0381831B\ -2DA2A8BA42C96E4F70864AC44E106F94311051E74C77C1291BF5DB9539E69567\ -BF6A11CF6932BBBAD33F8946BF5814C066D851633D1A513510039B349939BFD4\ -2B858C21827C8FF05F1D09B1B0765DC78A135B5CA4DFBA0801BCADDFA175623C\ -8B647EACFB4444B85A44F73890607D06D507A4F8393658788669F6EF4DEB58D0\ -8C50CA0756D5E2F49D1A7AD73E0F0B3D3B5F090ACF622B1878C59133E4A848E0\ -5153592EA81C6FBF:\ -F26F3268FD620FC476A49AAC3ED1580864934A2F6BA881ED8C8FB757AAAA64BC\ -DF501E1913DE600BBEF6F12C949FEA8FD68C645086D5E30C9253588FFBD19BE5 - -7C815C384EEE0F288ECE27CCED52A01603127B079C007378BC5D1E6C5E9E6D1C\ -735723ACBBD5801AC49854B2B569D4472D33F40BBB8882956245C366DC3582D7\ -1696A97A4E19557E41E54DEE482A14229005F93AFD2C4A7D8614D10A97A9DFA0\ -7F7CD946FA45263063DDD29DB8F9E34DB60DAA32684F0072EA2A9426ECEBFA52\ -39FB67F29C18CBAA2AF6ED4BF4283936823AC1790164FEC5457A9CBA7C767CA5\ -9392D94CAB7448F50EB34E9A93A80027471CE59736F099C886DEA1AB4CBA4D89\ -F5FC7AE2F21CCD27F611ECA4626B2D08DC22382E92C1EFB2F6AFDC8FDC3D2172\ -604F5035C46B8197D3:\ -080845D6FD22A00B30FA01A4B4F81FDC7B46CA4C6A676AD5863A9DBF6611BA97\ -F24FB59BB5BAC4E376B3B8B3357166782876B701273FF351BC8C5805532767D4 - -E29D505158DBDD937D9E3D2145658EE6F5992A2FC790F4F608D9CDB44A091D5B\ -94B88E81FAC4FDF5C49442F13B911C55886469629551189EAFF62488F1A479B7\ -DB11A1560E198DDCCCCF50159093425FF7F1CB8D1D1246D0978764087D6BAC25\ -7026B090EFAE8CEC5F22B6F21C59ACE1AC7386F5B8837CA6A12B6FBF5534DD05\ -60EF05CA78104D3B943DDB220FEAEC89AA5E692A00F822A2AB9A2FE60350D75E\ -7BE16FF2526DC643872502D01F42F188ABED0A6E9A6F5FD0D1CE7D5755C9FFA6\ -6B0AF0B20BD806F08E06156690D81AC811778CA3DAC2C249B96002017FCE93E5\ -07E3B953ACF99964B847:\ -2678A8715FC7E538522DD7608D769508B63017D9EB6CC48F1CB07D14E7410669\ -36C8316BF3211E09F62611E140DDD14A07F97F9F372E99C084FFE289EB302BD8 - -D85588696F576E65ECA0155F395F0CFACD83F36A99111ED5768DF2D116D2121E\ -32357BA4F54EDE927F189F297D3A97FAD4E9A0F5B41D8D89DD7FE20156799C2B\ -7B6BF9C957BA0D6763F5C3BC5129747BBB53652B49290CFF1C87E2CDF2C4B95D\ -8AAEE09BC8FBFA6883E62D237885810491BFC101F1D8C636E3D0EDE838AD05C2\ -07A3DF4FAD76452979EB99F29AFAECEDD1C63B8D36CF378454A1BB67A741C77A\ -C6B6B3F95F4F02B64DABC15438613EA49750DF42EE90101F115AA9ABB9FF6432\ -4DDE9DABBB01054E1BD6B4BCDC7930A44C2300D87CA78C06924D0323AD7887E4\ -6C90E8C4D100ACD9EED21E:\ -AA03EB09417435DA9E6E7803F3B6EAB66FAA3D59CC622950D61F9B962B69145A\ -C2255CD752CB9607742092697B1A79D124817AE26421E61D1176764832ED354C - -3A12F8508B40C32C74492B66323375DCFE49184C78F73179F3314B79E63376B8\ -AC683F5A51F1534BD729B02B04D002F55CBD8E8FC9B5EC1EA6BBE6A0D0E74315\ -18E6BA45D124035F9D3DCE0A8BB7BF1430A9F657E0B4EA9F20EB20C786A58181\ -A1E20A96F1628F8728A13BDF7A4B4B32FC8AA7054CC4881AE7FA19AFA65C6C3E\ -E1B3ADE3192AF42054A8A911B8EC1826865D46D93F1E7C5E2B7813C92A506E53\ -886F3D4701BB93D2A681AD109C845904BB861AF8AF0646B6E399B38B614051D3\ -4F6842563A0F37EC00CB3D865FC5D746C4987DE2A65071100883A2A9C7A2BFE1\ -E2DD603D9EA24DC7C5FD06BE:\ -D3012F2FB56845B258D7598C0BBB2C97D53B602DEAE9326DC3678B2228454A1E\ -29F28848ED140C70BE85CDEA9F99A8DC347DEABD46D362ED1AFB231146A0255D - -1861EDCE46FA5AD17E1FF1DEAE084DEC580F97D0A67885DFE834B9DFAC1AE076\ -742CE9E267512CA51F6DF5A455AF0C5FD6ABF94ACEA103A3370C354485A7846F\ -B84F3AC7C2904B5B2FBF227002CE512133BB7E1C4E50057BFD1E44DB33C7CDB9\ -69A99E284B184F50A14B068A1FC5009D9B298DBE92239572A7627AAC02ABE8F3\ -E3B473417F36D4D2505D16B7577F4526C9D94A270A2DFE450D06DA8F6FA95687\ -9A0A55CFE99E742EA555EA477BA3E9B44CCD508C375423611AF92E55345DC215\ -779B2D5119EBA49C71D49B9FE3F1569FA24E5CA3E332D042422A8B8158D3EC66\ -A80012976F31FFDF305F0C9C5E:\ -B50C896F2CDF7F105DE751FF6CF664E592FAB752D652B06898B9B288052DF22F\ -721AD87E702AF043E6B1E88929850CBD5698A9172C3932400B2538E401A6F081 - -08D0FFDE3A6E4EF65608EA672E4830C12943D7187CCFF08F4941CFC13E545F3B\ -9C7AD5EEBBE2B01642B486CAF855C2C73F58C1E4E3391DA8E2D63D96E15FD849\ -53AE5C231911B00AD6050CD7AAFDAAC9B0F663AE6AAB45519D0F5391A541707D\ -479034E73A6AD805AE3598096AF078F1393301493D663DD71F83869CA27BA508\ -B7E91E81E128C1716DC3ACFE3084B2201E04CF8006617EECF1B640474A5D45CF\ -DE9F4D3EF92D6D055B909892194D8A8218DB6D8203A84261D200D71473D7488F\ -3427416B6896C137D455F231071CACBC86E0415AB88AEC841D96B7B8AF41E05B\ -B461A40645BF176601F1E760DE5F:\ -A34A2F27C32F993A7E7007867733547481293C391255FFD0E5CCBE91E1CC749B\ -13525AF6ADFA0C2D1D64BF87DD65B996ADA9111C5DF55BFF8A5742E54B8444F6 - -D782ABB72A5BE3392757BE02D3E45BE6E2099D6F000D042C8A543F50ED6EBC05\ -5A7F133B0DD8E9BC348536EDCAAE2E12EC18E8837DF7A1B3C87EC46D50C241DE\ -E820FD586197552DC20BEEA50F445A07A38F1768A39E2B2FF05DDDEDF751F1DE\ -F612D2E4D810DAA3A0CC904516F9A43AF660315385178A529E51F8AAE141808C\ -8BC5D7B60CAC26BB984AC1890D0436EF780426C547E94A7B08F01ACBFC4A3825\ -EAE04F520A9016F2FB8BF5165ED12736FC71E36A49A73614739EAA3EC834069B\ -1B40F1350C2B3AB885C02C640B9F7686ED5F99527E41CFCD796FE4C256C91731\ -86C226169FF257954EBDA81C0E5F99:\ -DD5F4B167175D9566DCA6C5B1B54A33D02EFD02E25E23BB6FB02D878A4415E5E\ -8682C209BEAC04E9882A272D01E8EB435CAA5BCD74FC825C6B9082D041DFF333 - -5FCE8109A358570E40983E1184E541833BB9091E280F258CFB144387B05D190E\ -431CB19BAA67273BA0C58ABE91308E1844DCD0B3678BAA42F335F2FA05267A02\ -40B3C718A5942B3B3E3BFA98A55C25A1466E8D7A603722CB2BBF03AFA54CD769\ -A99F310735EE5A05DAE2C22D397BD95635F58C48A67F90E1B73AAFCD3F82117F\ -0166657838691005B18DA6F341D6E90FC1CDB352B30FAE45D348294E501B6325\ -2DE14740F2B85AE5299DDEC3172DE8B6D0BA219A20A23BB5E10FF434D39DB3F5\ -83305E9F5C039D98569E377B75A70AB837D1DF269B8A4B566F40BB91B577455F\ -D3C356C914FA06B9A7CE24C7317A172D:\ -A43AE5DAD936697564AE1BD9B8624C5C31CC36607322AF40E253F10C285467AF\ -D0D08252D2BAD76EFA52E4775C9C26761ABE38212855A80112FE02623FBF0A13 - -6172F1971A6E1E4E6170AFBAD95D5FEC99BF69B24B674BC17DD78011615E502D\ -E6F56B86B1A71D3F4348087218AC7B7D09302993BE272E4A591968AEF18A1262\ -D665610D1070EE91CC8DA36E1F841A69A7A682C580E836941D21D909A3AFC1F0\ -B963E1CA5AB193E124A1A53DF1C587470E5881FB54DAE1B0D840F0C8F9D1B04C\ -645BA1041C7D8DBF22030A623AA15638B3D99A2C400FF76F3252079AF88D2B37\ -F35EE66C1AD7801A28D3D388AC450B97D5F0F79E4541755356B3B1A5696B023F\ -39AB7AB5F28DF4202936BC97393B93BC915CB159EA1BD7A0A414CB4B7A1AC3AF\ -68F50D79F0C9C7314E750F7D02FAA58BFA:\ -A5AC23D4A0D533CB9D8A68873F5CB749228458D43CE6BD0536C8733777B5E6E3\ -F28FD36BFFE69002A0777BA74FEF22DE3FAC4C818B4842816C6094496F968555 - -5668ECD99DFBE215C4118398AC9C9EAF1A1433FAB4CCDD3968064752B625EA94\ -4731F75D48A27D047D67547F14DD0FFAA55FA5E29F7AF0D161D85EAFC4F2029B\ -717C918EAB9D304543290BDBA7158B68020C0BA4E079BC95B5BC0FC044A992B9\ -4B4CCD3BD66D0EABB5DBBAB904D62E00752C4E3B0091D773BCF4C14B4377DA3E\ -FFF824B1CB2FA01B32D1E46C909E626ED2DAE920F4C7DBEB635BC754FACBD8D4\ -9BEBA3F23C1C41CCBFCD0EE0C114E69737F5597C0BF1D859F0C767E18002AE8E\ -39C26261FFDE2920D3D0BAF0E906138696CFE5B7E32B600F45DF3AAA39932F3A\ -7DF95B60FA8712A2271FCAF3911CE7B511B1:\ -07F3BCACF5F78816D515CEDF1CBBA4FFC58D83AA8687B0E7252FAAB43E7F59A7\ -FF7415727ADDF9A22560ADB5755A2C6DF8C7E6DCACEB53106A714D807AAADBF3 - -03D625488354DF30E3F875A68EDFCF340E8366A8E1AB67F9D5C5486A96829DFA\ -C0578289082B2A62117E1CF418B43B90E0ADC881FC6AE8105C888E9ECD21AEA1\ -C9AE1A4038DFD17378FED71D02AE492087D7CDCD98F746855227967CB1AB4714\ -261EE3BEAD3F4DB118329D3EBEF4BC48A875C19BA763966DA0EBEA800E01B2F5\ -0B00E9DD4CACA6DCB314D00184EF71EA2391D760C950710DB4A70F9212FFC548\ -61F9DC752CE18867B8AD0C48DF8466EF7231E7AC567F0EB55099E622EBB86CB2\ -37520190A61C66AD34F1F4E289CB3282AE3EAAC6152ED24D2C92BAE5A7658252\ -A53C49B7B02DFE54FDB2E90074B6CF310AC661:\ -13A592B73EDE487036C8816BD6FC6CDC04DC6133409A6EE990584160518F9EF5\ -73264CF04D38A3BA75D150F4F026F6DF8936E13C8F4F3ECC9ECBC43FDFC488A4 - -2EDC282FFB90B97118DD03AAA03B145F363905E3CBD2D50ECD692B37BF000185\ -C651D3E9726C690D3773EC1E48510E42B17742B0B0377E7DE6B8F55E00A8A4DB\ -4740CEE6DB0830529DD19617501DC1E9359AA3BCF147E0A76B3AB70C4984C13E\ -339E6806BB35E683AF8527093670859F3D8A0FC7D493BCBA6BB12B5F65E71E70\ -5CA5D6C948D66ED3D730B26DB395B3447737C26FAD089AA0AD0E306CB28BF0AC\ -F106F89AF3745F0EC72D534968CCA543CD2CA50C94B1456743254E358C1317C0\ -7A07BF2B0ECA438A709367FAFC89A57239028FC5FECFD53B8EF958EF10EE0608\ -B7F5CB9923AD97058EC067700CC746C127A61EE3:\ -C2FB590AB74E230B8FE159892F94DE04EF7ADAA02B918D4994F996538D257F5A\ -80C9B3BE8F410170B0C5CAC3F507401220881C5E08D8BF0A13247170D39085BC - -90B28A6AA1FE533915BCB8E81ED6CACDC10962B7FF82474F845EEB86977600CF\ -70B07BA8E3796141EE340E3FCE842A38A50AFBE90301A3BDCC591F2E7D9DE53E\ -495525560B908C892439990A2CA2679C5539FFDF636777AD9C1CDEF809CDA9E8\ -DCDB451ABB9E9C17EFA4379ABD24B182BD981CAFC792640A183B61694301D04C\ -5B3EAAD694A6BD4CC06EF5DA8FA23B4FA2A64559C5A68397930079D250C51BCF\ -00E2B16A6C49171433B0AADFD80231276560B80458DD77089B7A1BBCC9E7E4B9\ -F881EACD6C92C4318348A13F4914EB27115A1CFC5D16D7FD94954C3532EFACA2\ -CAB025103B2D02C6FD71DA3A77F417D7932685888A:\ -02951596A13A1A41188A4A1D6346F7EAFB60A2051EA67C63237D1A9B79EC4733\ -F33ECEC223DEDD946B78387B6F2DF5E9AB6AF7DFBABAF80F4FCC94FA087275E8 - -2969447D175490F2AA9BB055014DBEF2E6854C95F8D60950BFE8C0BE8DE254C2\ -6B2D31B9E4DE9C68C9ADF49E4EE9B1C2850967F29F5D08738483B417BB96B2A5\ -6F0C8ACA632B552059C59AAC3F61F7B45C966B75F1D9931FF4E596406378CEE9\ -1AAA726A3A84C33F37E9CDBE626B5745A0B06064A8A8D56E53AAF102D23DD9DF\ -0A3FDF7A638509A6761A33FA42FA8DDBD8E16159C93008B53765019C3F0E9F10\ -B144CE2AC57F5D7297F9C9949E4FF68B70D339F87501CE8550B772F32C6DA8AD\ -2CE2100A895D8B08FA1EEAD7C376B407709703C510B50F87E73E43F8E7348F87\ -C3832A547EF2BBE5799ABEDCF5E1F372EA809233F006:\ -5AA4E32F0EA3E853929BF64ACC9565A01300BC007063B939F6DBBE9CAE0545EA\ -95FBCAC32575AA0727EE4D937071E6B3BE74E23FE76FD63EC05C7F7D8A407AF0 - -721645633A44A2C78B19024EAECF58575AB23C27190833C26875DC0F0D50B46A\ -EA9C343D82EA7D5B3E50EC700545C615DAEAEA64726A0F05607576DCD396D812\ -B03FB6551C641087856D050B10E6A4D5577B82A98AFB89CEE8594C9DC19E79FE\ -FF0382FCFD127F1B803A4B9946F4AC9A4378E1E6E041B1389A53E3450CD32D9D\ -2941B0CBABDB50DA8EA2513145164C3AB6BCBD251C448D2D4B087AC57A59C228\ -5D564F16DA4ED5E607ED979592146FFB0EF3F3DB308FB342DF5EB5924A48256F\ -C763141A278814C82D6D6348577545870AE3A83C7230AC02A1540FE1798F7EF0\ -9E335A865A2AE0949B21E4F748FB8A51F44750E213A8FB:\ -495B2AA2103159D9A937E9DD56B059ACA98A5E3CB7B59BB690DEDC00C692E9D7\ -A18614A73D12E07634B209CC630D1818B09F1076A941FF80474493E3D42B9812 - -6B860D39725A14B498BB714574B4D37CA787404768F64C648B1751B353AC92BA\ -C2C3A28EA909FDF0423336401A02E63EC24325300D823B6864BB701F9D7C7A1F\ -8EC9D0AE3584AA6DD62EA1997CD831B4BABD9A4DA50932D4EFDA745C61E41308\ -90E156AEE6113716DAF95764222A91187DB2EFFEA49D5D0596102D619BD26A61\ -6BBFDA8335505FBB0D90B4C180D1A2335B91538E1668F9F9642790B4E55F9CAB\ -0FE2BDD2935D001EE6419ABAB5457880D0DBFF20ED8758F4C20FE759EFB33141\ -CF0E892587FE8187E5FBC57786B7E8B089612C936DFC03D27EFBBE7C8673F160\ -6BD51D5FF386F4A7AB68EDF59F385EB1291F117BFE717399:\ -217B5A985BED80008274470E254443238C5AEACBC7EE2289F0E63B7AFE6D0F39\ -5E2361FD6D9DC33B4F54F03FF56F6B264976161D80091788EE9D262F147A35FC - -6A01830AF3889A25183244DECB508BD01253D5B508AB490D3124AFBF42626B2E\ -70894E9B562B288D0A2450CFACF14A0DDAE5C04716E5A0082C33981F6037D23D\ -5E045EE1EF2283FB8B6378A914C5D9441627A722C282FF452E25A7EA608D69CE\ -E4393A0725D17963D0342684F255496D8A18C2961145315130549311FC07F031\ -2FB78E6077334F87EAA873BEE8AA95698996EB21375EB2B4EF53C14401207DEB\ -4568398E5DD9A7CF97E8C9663E23334B46912F8344C19EFCF8C2BA6F04325F1A\ -27E062B62A58D0766FC6DB4D2C6A1928604B0175D872D16B7908EBC041761187\ -CC785526C2A3873FEAC3A642BB39F5351550AF9770C328AF7B:\ -293C551E753BBA7F314DCB93A0FAD94F3F5DEE6ED45D765A708E6FD277601F03\ -F6C905D7E1EAEAEC513CBBBD672B817F6D60FBF02C20167D7F4B7B84AFEEB3F6 - -B3C5E74B69933C2533106C563B4CA20238F2B6E675E8681E34A389894785BDAD\ -E59652D4A73D80A5C85BD454FD1E9FFDAD1C3815F5038E9EF432AAC5C3C4FE84\ -0CC370CF86580A6011778BBEDAF511A51B56D1A2EB68394AA299E26DA9ADA6A2\ -F39B9FAFF7FBA457689B9C1A577B2A1E505FDF75C7A0A64B1DF81B3A356001BF\ -0DF4E02A1FC59F651C9D585EC6224BB279C6BEBA2966E8882D68376081B98746\ -8E7AED1EF90EBD090AE825795CDCA1B4F09A979C8DFC21A48D8A53CDBB26C4DB\ -547FC06EFE2F9850EDD2685A4661CB4911F165D4B63EF25B87D0A96D3DFF6AB0\ -758999AAD214D07BD4F133A6734FDE445FE474711B69A98F7E2B:\ -89FE6314A0246EFF3BFD07A95FE239BD5071467F53799175B226DAF6C3DB618C\ -AD4CA1C1AF64BF5793F03254F560E6335BEAAA86BCB9E961F214B2AE97B47AF0 - -83AF34279CCB5430FEBEC07A81950D30F4B66F484826AFEE7456F0071A51E1BB\ -C55570B5CC7EC6F9309C17BF5BEFDD7C6BA6E968CF218A2B34BD5CF927AB846E\ -38A40BBD81759E9E33381016A755F699DF35D660007B5EADF292FEEFB735207E\ -BF70B5BD17834F7BFA0E16CB219AD4AF524AB1EA37334AA66435E5D397FC0A06\ -5C411EBBCE32C240B90476D307CE802EC82C1C49BC1BEC48C0675EC2A6C6F3ED\ -3E5B741D13437095707C565E10D8A20B8C20468FF9514FCF31B4249CD82DCEE5\ -8C0A2AF538B291A87E3390D737191A07484A5D3F3FB8C8F15CE056E5E5F8FEBE\ -5E1FB59D6740980AA06CA8A0C20F5712B4CDE5D032E92AB89F0AE1:\ -7690F703E894EE22D4DFF55A7F8D5021D5F17B729F95A59C4D55CFB225C67BE1\ -05F2E7CDF56D140E566648E9E9C39BBED96F985A6DAE1F21D8BA500F7FD40EDF - -A7ED84749CCC56BB1DFBA57119D279D412B8A986886D810F067AF349E8749E9E\ -A746A60B03742636C464FC1EE233ACC52C1983914692B64309EDFDF29F1AB912\ -EC3E8DA074D3F1D231511F5756F0B6EEAD3E89A6A88FE330A10FACE267BFFBFC\ -3E3090C7FD9A850561F363AD75EA881E7244F80FF55802D5EF7A1A4E7B89FCFA\ -80F16DF54D1B056EE637E6964B9E0FFD15B6196BDD7DB270C56B47251485348E\ -49813B4EB9ED122A01B3EA45AD5E1A929DF61D5C0F3E77E1FDC356B63883A60E\ -9CBB9FC3E00C2F32DBD469659883F690C6772E335F617BC33F161D6F6984252E\ -E12E62B6000AC5231E0C9BC65BE223D8DFD94C5004A101AF9FD6C0FB:\ -65E415C7958A47FCA9EED3846FD1283AFEB38E5130F57ECD99DCB21BEDDA856E\ -3B5FB9F839E579C5EA386EACA8CDC0A9549EAAF6EC452DD6CB5212B709BF5C59 - -A6FE30DCFCDA1A329E82AB50E32B5F50EB25C873C5D2305860A835AECEE6264A\ -A36A47429922C4B8B3AFD00DA16035830EDB897831C4E7B00F2C23FC0B15FDC3\ -0D85FB70C30C431C638E1A25B51CAF1D7E8B050B7F89BFB30F59F0F20FECFF3D\ -639ABC4255B3868FC45DD81E47EB12AB40F2AAC735DF5D1DC1AD997CEFC4D836\ -B854CEE9AC02900036F3867FE0D84AFFF37BDE3308C2206C62C4743375094108\ -877C73B87B2546FE05EA137BEDFC06A2796274099A0D554DA8F7D7223A48CBF3\ -1B7DECAA1EBC8B145763E3673168C1B1B715C1CD99ECD3DDB238B06049885ECA\ -D9347C2436DFF32C771F34A38587A44A82C5D3D137A03CAA27E66C8FF6:\ -D6542A2F0654B9B874A627D3D53764A65B1DF2C0CEC3BCD0B4B088FAA1095E54\ -F1799757C4371F8D544E298D600E21E11B2F90D295712621231A09C58B05A704 - -83167FF53704C3AA19E9FB3303539759C46DD4091A52DDAE9AD86408B6933598\ -9E61414BC20AB4D01220E35241EFF5C9522B079FBA597674C8D716FE441E5661\ -10B6211531CECCF8FD06BC8E511D00785E57788ED9A1C5C73524F01830D2E114\ -8C92D0EDC97113E3B7B5CD3049627ABDB8B39DD4D6890E0EE91993F92B03354A\ -88F52251C546E64434D9C3D74544F23FB93E5A2D2F1FB15545B4E1367C97335B\ -0291944C8B730AD3D4789273FA44FB98D78A36C3C3764ABEEAC7C569C1E43A35\ -2E5B770C3504F87090DEE075A1C4C85C0C39CF421BDCC615F9EFF6CB4FE64680\ -04AECE5F30E1ECC6DB22AD9939BB2B0CCC96521DFBF4AE008B5B46BC006E:\ -EC983E787628B94C87FFF8D57D2D058667D12F5AF458BCE79BB7844FB41D9C55\ -920F593C8D8730EB8D54FF1D51CD8AD2F1C2A0F7D6B299A21266744E47D142B2 - -3A3A819C48EFDE2AD914FBF00E18AB6BC4F14513AB27D0C178A188B61431E7F5\ -623CB66B23346775D386B50E982C493ADBBFC54B9A3CD383382336A1A0B2150A\ -15358F336D03AE18F666C7573D55C4FD181C29E6CCFDE63EA35F0ADF5885CFC0\ -A3D84A2B2E4DD24496DB789E663170CEF74798AA1BBCD4574EA0BBA40489D764\ -B2F83AADC66B148B4A0CD95246C127D5871C4F11418690A5DDF01246A0C80A43\ -C70088B6183639DCFDA4125BD113A8F49EE23ED306FAAC576C3FB0C1E256671D\ -817FC2534A52F5B439F72E424DE376F4C565CCA82307DD9EF76DA5B7C4EB7E08\ -5172E328807C02D011FFBF33785378D79DC266F6A5BE6BB0E4A92ECEEBAEB1:\ -81950E7096D31D4F22E3DB71CAC725BF59E81AF54C7CA9E6AEEE71C010FC5467\ -466312A01AA5C137CFB140646941556796F612C9351268737C7E9A2B9631D1FA - -724627916C50338643E6996F07877EAFD96BDF01DA7E991D4155B9BE1295EA7D\ -21C9391F4C4A41C75F77E5D27389253393725F1427F57914B273AB862B9E31DA\ -BCE506E558720520D33352D119F699E784F9E548FF91BC35CA14704212870982\ -0D69A8287EA3257857615EB0321270E94B84F446942765CE882B191FAEE7E1C8\ -7E0F0BD4E0CD8A927703524B559B769CA4ECE1F6DBF313FDCF67C572EC4185C1\ -A88E86EC11B6454B371980020F19633B6B95BD280E4FBCB0161E1A82470320CE\ -C6ECFA25AC73D09F1536F286D3F9DACAFB2CD1D0CE72D64D197F5C7520B3CCB2\ -FD74EB72664BA93853EF41EABF52F015DD591500D018DD162815CC993595B195:\ -4E987768469F546296AD1A43D54C0A0A6C87E7E4E26B686612B1E5B1554B689B\ -FFD56D6A4B454CE4A5717625BBAD321F8D05F19C225259646F21416AA2D7C2ED - -3139840B8AD4BCD39092916FD9D01798FF5AA1E48F34702C72DFE74B12E98A11\ -4E318CDD2D47A9C320FFF908A8DBC2A5B1D87267C8E983829861A567558B37B2\ -92D4575E200DE9F1DE45755FAFF9EFAE34964E4336C259F1E66599A7C904EC02\ -539F1A8EAB8706E0B4F48F72FEC2794909EE4A7B092D6061C74481C9E21B9332\ -DC7C6E482D7F9CC3210B38A6F88F7918C2D8C55E64A428CE2B68FD07AB572A8B\ -0A2388664F99489F04EB54DF1376271810E0E7BCE396F52807710E0DEA94EB49\ -F4B367271260C3456B9818FC7A72234E6BF2205FF6A36546205015EBD7D8C252\ -7AA430F58E0E8AC97A7B6B793CD403D517D66295F37A34D0B7D2FA7BC345AC04\ -CA1E266480DEEC39F5C88641C9DC0BD1358158FDECDD96685BBBB5C1FE5EA89D\ -2CB4A9D5D12BB8C893281FF38E87D6B4841F0650092D447E013F20EA934E18:\ -3D370DC850BC7E159CEE3F24D9E915B5B1306FF403C32C7A3A3844F3FC8D90E3\ -5F56D83BDD9C637BC45E440E1F27CCD56B6B3872EC19101BBE31845108DCE929 - -023D91AC532601C7CA3942D62827566D9268BB4276FCAA1AE927693A69616526\ -76DBA09219A01B3D5ADFA12547A946E78F3C5C62DD880B02D2EEEB4B96636529\ -C6B01120B23EFC49CCFB36B8497CD19767B53710A636683BC5E0E5C9534CFC00\ -4691E87D1BEE39B86B953572927BD668620EAB87836D9F3F8F28ACE41150776C\ -0BC6657178EBF297FE1F7214EDD9F215FFB491B681B06AC2032D35E6FDF832A8\ -B06056DA70D77F1E9B4D26AE712D8523C86F79250718405F91B0A87C725F2D3F\ -52088965F887D8CF87206DFDE422386E58EDDA34DDE2783B3049B86917B46280\ -27A05D4D1F429D2B49C4B1C898DDDCB82F343E145596DE11A54182F39F4718EC\ -AE8F506BD9739F5CD5D5686D7FEFC834514CD1B2C91C33B381B45E2E5335D7A8\ -720A8F17AFC8C2CB2BD88B14AA2DCA099B00AA575D0A0CCF099CDEC4870FB710\ -D2680E60C48BFC291FF0CEF2EEBF9B36902E9FBA8C889BF6B4B9F5CE53A19B0D\ -9399CD19D61BD08C0C2EC25E099959848E6A550CA7137B63F43138D7B651:\ -218A55796529149F29CC4A19C80E05C26F048ABC9894AD79F11BAC7C28DE53BD\ -C9BDB8BE4984F924640867FCFCE42310ADFA949E2B2568FFA0795FBB3203DE65 - -20FF454369A5D05B81A78F3DB05819FEA9B08C2384F75CB0AB6AA115DD690DA3\ -131874A1CA8F708AD1519EA952C1E249CB540D196392C79E87755424FEE7C890\ -808C562722359EEA52E8A12FBBB969DD7961D2BA52037493755A5FA04F0D50A1\ -AA26C9B44148C0D3B94D1C4A59A31ACA15AE8BD44ACB7833D8E91C4B86FA3135\ -A423387B8151B4133ED23F6D7187B50EC2204AD901AD74D396E44274E0ECAFAA\ -E17B3B9085E22260B35CA53B15CC52ABBA758AF6798FBD04ECEECED648F3AF4F\ -DB3DED7557A9A5CFB7382612A8A8F3F45947D1A29CE29072928EC193CA25D510\ -71BD5E1984ECF402F306EA762F0F25282F5296D997658BE3F983696FFA6D095C\ -6369B4DAF79E9A5D3136229128F8EB63C12B9E9FA78AFF7A3E9E19A62022493C\ -D136DEFBB5BB7BA1B938F367FD2F63EB5CA76C0B0FF21B9E36C3F07230CF3C30\ -74E5DA587040A76975D7E39F4494ACE5486FCBF380AB7558C4FE89656335B82E\ -4DB8659509EAB46A19613126E594042732DD4C411F41AA8CDEAC71C0FB40A94E\ -6DA558C05E77B6182806F26D9AFDF3DA00C69419222C8186A6EFAD600B410E6C\ -E2F2A797E49DC1F135319801FA6F396B06F975E2A190A023E474B618E7:\ -116AE94C86F68F96B8AEF298A9F5852CC9913A2AD3C3C344F28DCC9B29292A71\ -6FAF51DD04A9433D8A12572E1DBC581A7CDC4E50BC1CA9051DDBC121F2E864E2 - -4FBDC596508D24A2A0010E140980B809FB9C6D55EC75125891DD985D37665BD8\ -0F9BEB6A50207588ABF3CEEE8C77CD8A5AD48A9E0AA074ED388738362496D2FB\ -2C87543BB3349EA64997CE3E7B424EA92D122F57DBB0855A803058437FE08AFB\ -0C8B5E7179B9044BBF4D81A7163B3139E30888B536B0F957EFF99A7162F4CA5A\ -A756A4A982DFADBF31EF255083C4B5C6C1B99A107D7D3AFFFDB89147C2CC4C9A\ -2643F478E5E2D393AEA37B4C7CB4B5E97DADCF16B6B50AAE0F3B549ECE47746D\ -B6CE6F67DD4406CD4E75595D5103D13F9DFA79372924D328F8DD1FCBEB5A8E2E\ -8BF4C76DE08E3FC46AA021F989C49329C7ACAC5A688556D7BCBCB2A5D4BE69D3\ -284E9C40EC4838EE8592120CE20A0B635ECADAA84FD5690509F54F77E35A417C\ -584648BC9839B974E07BFAB0038E90295D0B13902530A830D1C2BDD53F1F9C9F\ -AED43CA4EED0A8DD761BC7EDBDDA28A287C60CD42AF5F9C758E5C7250231C09A\ -582563689AFC65E2B79A7A2B68200667752E9101746F03184E2399E4ED8835CB\ -8E9AE90E296AF220AE234259FE0BD0BCC60F7A4A5FF3F70C5ED4DE9C8C519A10\ -E962F673C82C5E9351786A8A3BFD570031857BD4C87F4FCA31ED4D50E14F2107\ -DA02CB5058700B74EA241A8B41D78461658F1B2B90BFD84A4C2C9D6543861AB3\ -C56451757DCFB9BA60333488DBDD02D601B41AAE317CA7474EB6E6DD:\ -DEA56BDABBC6D24183CF7BDE1E1F78631B2B0230C76FF2F43075F2FDE77CF052\ -769276CAD98DA62394EC62D77730F5761489585E093EA7315F3592717C485C84 - -D1890B4704E169C28E44DDF62A1091450404910539FC2DAEB26E8ACF4533B024\ -E5215C2D02820DD8FB2CFC1743955CBACFF0F8F35DFBB5E3F942F36247F68211\ -D518F3F601AAE12A1CDC000BAB43D4C973F287E80741DD1FCF6C34F2E6B4B6C3\ -13D01C4FF3CBF9166F26946F18EF2D58271BA9233F09A6B77BFD4F48B36EB3D7\ -3D1133C4F842A7DC3907F680B0B773242C11E3DD973A44327EA7CEA9C0F8E07D\ -682B6651E506B587559FE01ED721000BAF570A16FBDD9EA29FA3DEF4BE912058\ -321A8B720C5C102E48A6E7ED6F8838D400DD57D06EEDBCD15323F86D855C94B2\ -1E41B14EC9E1BBC8019211FD88138C91F9ABBD9BB3914D26C1DDC21673D2D512\ -63B39D66E741D924CF2B192C5D2C1A140126A3D64A2C77BE6C2C6EBE8599978A\ -E90BD36CBB9AF64D078910C4094AB3BF399C34F2AB8EF843E9FE1BF88BF443BA\ -21E4377E5F49C07FD9653B526E14562237F02D11B904BCA6AC31AE721A43E3C4\ -910A24AF6F4D80C031C109FC0FE49F15274BCA92BDA04C3B4196C192F6CE489C\ -63A806ACFC895AB52CAD657C1783B528E12D0ED856E1F8FC91F2AAFDFA0A9249\ -8D68530772EE73B359FCF1418D1096C46B34DCF90E5B468BBB2970BECBD70089\ -CFB039D64CC50FFF5EEF26384D34F24515A6558B06A1FDD88F1050C5BD78CC6E\ -D83D4C2B0E882AEBCF84AFB0430D0BF09F2FB42B8B4589158093A7709AAE75A7\ -90910E211EE1333FFB6FD80778DA3BF73858978E9DD647978841B18001DBAAEA\ -43CA0C0A03DBB9BCF30CE76A6F4B2CF2A9B6531B3E4051E7E05090CD421BC66C\ -4731E7122AD129FC42DEDC83BB460E3F889992FBD3CA072686E56B72C720FBC9\ -8D723EF7F247286F77CCDDC728738E941B1A74D4F16671C21FDD5643A115DDBC\ -B88EE7EC67EA66FD2BCE718DF6E085D4B5FC71A72696636A8F7B3A68AFA51A89\ -6771FAAA7F1F827430AC5E8089DBC0D4175E1B22A057BC5F1724EADC1A41E78F\ -A3ACAA8B97E5F2E19EF9D59AE12B04E7F0E8A621E098A66910E2A5ED2102B824\ -CD3EA044A854F1CD0B33E61E7F737414B2953549F25DD34D19AA1981DE7CD564\ -9FF6C6364A4F25312EF62395A747AB88AAD722C05AEC40DEEA8EEE5E779EF458\ -A68840BC6BD5D29AD40F98B3AE010B6213372ABB7BB8B8:\ -6E010624E0C2589F52A7FABB75B077C86DF04E4BE6FC736DD00346231370A9A0\ -F6715E683F9733226C6AAD1947EB466C7DB79979DD367C33900D9727BDBA24A9 - -4FA3DF1DEA75AD4B9C379206A95FED930000482E5B683FD2B17DC8E7D5C4BC1B\ -73186CCC13C9FF2DD09FC1D4F68034D120E84CA73A00B71A3B46D1EFC6FF88CF\ -2EDA65810B098CC5E651D9CF064E87076D5A871849F3B405D3D58EF5B1F10520\ -A9FB4FC84A81A87B13DBFBF9D8674943E28C257E46D8AD7BE1785F1DC7C9B1BD\ -574AD1DDA48F0255C853D2490BD3D63DA22A8369CFD02594999A2EF443308FB8\ -298266A11EFA177102C75DC674E89FC9DCC1A0D3C863BC26141102175D2678EB\ -6E13D90BBD9A5EB89AE8C0CB47D7F340D3D32042A2762BC9BF2B40EB40E87FB4\ -2610FE7E357051F01494704FBFF73321B47301A0799B7EE3FE5E62200F397A61\ -ED4509A62F7106ED0EFB0ABD6AE9E4A1FE9B02C092DCDC75015CF602F3B9A898\ -8B609E6C0D1C5C3E219FF57875C2EF01615F89447EA602DFC94EEC17A398C014\ -BD346691FE209A002771DC8164422CD166AFB457A8B3071282178A3EBD201D9B\ -07B27E711E7EE7D33AA5210ED4E4E92486775D14A6CED092E34A7AC826709399\ -48FEC149F9C018FCAAD3FC597D315713F44FC5E1725F448ECAED40E8D841BD02\ -F1E81C019B08F99412E360C0BD378391C67D964B47F50C26F0A483ED66402361\ -6B0FC9AFE43620DBE9CCFE070EF295C049EAC754C2123130C6B2C0232F6403AA\ -7F0DC35A5999BF95D34AD612234C6289277ADB60E4F72EC2DF570F05395B3BE8\ -A0A3C78B732821AA08927C524E15D65F66A3DB8C1C96FB70BC0686AAC310051F\ -469FC5EF880C0F66947C1C328F97684EA24CBE63BAED8D114F40507C2901034E\ -6AB3893F366D53F1CFCA309309218CABCECA4722FA9CCBC7249B87C12FF8397F\ -40487EB00082E7F551D27E301C3BC7B5389F7042534BF7E692DFEA4DA24F7C34\ -B8D2FF145F54B517FC97134EC5AC2CB925C508D7A6BD01FE7B764648274972BF\ -08560D30802E0EB7EDCC57AF4797BBF92E8688268606B0F1BC901FCC22136281\ -665EC16393FA9601C4FBDB18CD1D1EE382BC07973903E91FFA87399D1141D49F\ -4F0C064ACF3AC9897891DF10BCA0116F2C3FEF180FE6A8E937C478F2EF293AE9\ -186DCB1F76B6E48101DF64E57EA7C64C5C0025E221C8F5CBA5CC92D9CEC62814\ -0996B26D17F439B780F59A999301122F82D0495F8AB5AE1EA5790F45E992DFE0\ -0D5F82A7FF1354AEFDCEFC0D2D1731D22FA2B75AFD4FDA25AB194055FA962838\ -1055247C8C7587D22E73C60136C4282452D47AE03AA035FEBC26FCCD42A1CB79\ -CF866DB6418A49FD8261E877DDBB839CC39514DDB87A8A40D795532626FEA4A4\ -C35D13E028F9ED1BC09B06BE999B8DDD2258AA0596BCBBF72AF67E10BEDD58D5\ -99B8D577A583D676BF5561F80CE5E9528729A92DF578FE75DBC70474B75747A8\ -D55DE70E57BDD62D4344DC2115ED4DD62F1FC98BFA1E7421FC0700025C46D0ED\ -1BEF35C3B778563211B9FA9E8BA4BBCBF01C2FB626AB7EF325CE9F468DF2CACD\ -B178D36557CD85D542C067C289E926C1EA2F20ABD329E984168BB6DEF1DDCCF2\ -14DCB6A53AFD462F0E7E7A19E8C88F049244125A6D7DD41E58BC9B2FF7FA2478\ -DF76AF73090CB1AB59E388BA20E2C297C967737A1AF61793B68ECD7439444C48\ -E28E2D09C48FADA5E0D1D15E5B340A52F8B3B854CCA479F0A598445E14F53B3B\ -A36891050C79673DF3E2B5825C955A29E5C9A22F3991D0AA785718CFEA1D2385\ -F8E47E4A75ACBC7988D0558D541D71C4E6C5F1CB15B60CEA0C34A67BBCE105D7\ -A896025E0254DE7D7AF724C9027D44B8642192A08AB8E1EF3046DDA6014DF7F4\ -C9E63C635E48AB2E70B640D480998EC9357E665F99D76FE5529EF23C1BDFE017\ -C3A66CD4EB2DDB42EF85EA0CD65534:\ -7AEE30930355718679D387DFBED08EB700B324BB2775BCFD11A88D37AA69A5B1\ -B0010E8A5C38BB20E5E5DDCF5BB2436830DCE8DA2048197756FC85B20C16F0A0 - -523DE8B1F4CBB65E81FF0B6CCD6EB8EF0A0F0A691ACAF4A77F25ACD2D66AD4B3\ -EFD25BE70308853C094412A518A32020E3020A9F6AB32F0CD60EC0D7A194917D\ -6C457B168A54A4B46F7B0D0C71BD61CD202F4C718776A701E0770B0EFA054187\ -70F98E4E79CD066366FB3300E8BE359A98B82B764BC2FBBF59C7E8F94A157B01\ -C6C7577B1428138CD422BC47330F8ED99F4C0AAB0D984287445539839389EE08\ -D6345108AF26ADED0EC1D7BE774CFB8C5205DFE07CF6CAF8C1AFE37C7A2E4FE6\ -013B93EB2463DE4E0971C7178D6A76B16A0E8960C984CE8BBE71B3B466EDF044\ -5B835F09414D01F14C7B6167FF78FF118127BBD5F812C27FACD57B3B120E2BCF\ -E87315C7A92B82EF5D50CA14A7174D1BEA7E056523E055A6AE42EA3765094E55\ -44E5ED003C989C2F98F38A17E3DDA74DBAF9C669A319638A2698B0E4A611480D\ -8AD3CF016792ECD1034925F42B9811A7214D623D047ABCA31997DDEB03275F80\ -DD21F40DDC80616E7AD3D481E8EBC0A1A6A398E16A78369215541ED10B75671A\ -DEB1AAE6E11142A1CF665FC1B7332DFBB0E10C21A2B48F78E57319AC9C58DFA8\ -B1C2548E2979EF1ACCFEB215AFCD6C2C1B46FE97DD491758378330EFFC728366\ -1D2CB84FA05281E9E517408508D24D042E7B9BCD34DB87CE972E4CBCDB98615F\ -B93093369DFEDC782F44BCD03E81CF93051318B2401FF29F753A264BDA65AF19\ -9E3FCBB8B5D39C838A67D6C7A3DB046DC56C323DDBB5340CBC229E47CFF8C9D2\ -9B7A49AC0EC8C1440AE498C7D150EF91C29BEA7DF3EFCC2871A13A1D72D139CB\ -4603D9FFFE85F6DDD544850EF63C3944FB35DBC00D4308CEAA6394B6E23F650D\ -323F8F7EF50DDB68F1486EABF989BF44451F620EC9485C0B52D1415D3C909A2C\ -FBE9D77DB19D069D33BAEE4D77292E63FCBF65C1EBA24BFFDDEFE95211EF0AAF\ -8ABFDA9F94445E582976F986F5382CB669506AF2B4A5A0C43000A3C72C5CA4AA\ -CDC9D3D39FC5C492A393B6C341B86DACBBF6BA8B465100CC683EDB2D9B9F83ED\ -F9C6A32645F51CC79ADC22A52A007BAACA618BE35E356D1FD1CFBDA73F1ED092\ -53039DEF609450FD2D5943B9CD49CBD52A318EE3510D7CF3FD8FB388AC6CB9C6\ -EEFEF3D3CAD8501B91CC04A888D33E16D6A4C9666F5F5F3B257193F2B46DEDDE\ -11842909D8C48ADE57775B0B272E2DC9CEF1A083EB2CE58F4D1F211922FD6ADE\ -D1B82FE6F5B11251CD396E5A3666ED9626036E4E356231C146BBA0A91AFD3648\ -EB7BFE0B9C14F15AF2F92309826F468945CAD0AC422DE3D6A773B76178422107\ -CE0270E7F580B5CCEBA82CA0184AAFA8341141E65E39859885768FBC5CE63B96\ -5A0604B659E71D9DA2C7A43646088D8071D76926163AAFC69E25355BB0A222B7\ -B2DA9F0A20C021ADC462E905A9C3BF31C16D87FBEC3F014F3957A720F1432E17\ -41553092052FB58A198640479ABCAA51B104CC93E2636E1460643EA812BD44E8\ -19C2166EB6B349BA5BDEBAD59078910B5C22A56F004B8D9E4B1224D8D204B48A\ -BE7355548A402736C5CB110F3A1476ED631FF168F4F3EFD89B38DE4751536548\ -647523D334FAD7CC2D142973F2DB3C1FE08FC5CF83F9F2BD2DAA524B37864816\ -AF29EE05951FA09D1C51D9D14EE4F72FD7BBF18B1A724FF5A0958A063947C430\ -142AD2356E4400AAECA442E163372A8F1CD36E2DB988E7781165E5D4E7074ACE\ -40858E8370E883694AF09977704347FB735C8717C42BC4EEEB2AAA50DFE637C6\ -40909CE379BFB9E2608F88751377038D1669F248178AD580A908D7A1B8DCC7E5\ -3E01801F1E485B5893F103F03E0F53B2B1440BE95644D85AA7F6EB7EDFBB4665\ -2196695EA23C08573397B111FF909025E20C5201293B4D223BF7AA01DE7CB28B\ -94714370434B9588097E2401B62C7A0DEF1FBF89809E810749FD3CE9EC3C07CE\ -4BF4C43DC966429B2BEB4D711FC6C448A12097B36F1E6817EAF4937A983F85D9\ -CF3E62CC1B2AC6AE1EC9EAA8CD8EE2C3322239CFE5DB3D4E8786282E630A7D25\ -9C2FEFECA03031C960A66A71E436A3ED6F2F3CFAB4BD77C660D14205ABF606FE\ -561A346F7D849B69475AC9F6822D80B9A2E56D5D495E4B309B0EA963C9FC5C7E\ -F94B217EE5337989AFBC7107D233A8B362AC27C4F69DF9E191CD65AE97D6EB9E\ -5484EB6F10349575E4CAE51452380151F902415AC9CF42C824EB23C9541D2DA1\ -C26DB85F53CDAFB06A12B8393CD580A8E494EDB6710C720DCAE30832967E33E6\ -303A92B1DF0841D7724284FFD2E00B95C6D623B168D21AC1BD3C675EDA33182A\ -2C22370998DE1E5EB905372CC6EF32D5B765F5C94870DF4842D011603BE4CDB1\ -C227E41EB2F2E8542CD325884FEDC9C5C7BB07A92D20D64B836215C59F162A3D\ -A8BB67D6FC13FEF97CAB6ECB8A29E431A6519A6261C4521CCB90E6E609869E6F\ -E398404AE047F64EC4263566DEFEE66329DD40AC985EB8A08D26529A544891B6\ -F57CC235C63C09057AB6B6ED720EF41A3C9AE65768B43F6DCF4962A103DD93C2\ -13171DC2C9194E43265C689B49331450281A3FEBC618D1AA4D65A135137051FD\ -46B568CE294C89:\ -76583E740EEFB6394F6AF310AE896E1B2D181581165CE1DCC2317D7EB044677A\ -C0AA6323B5B14243D0822EE49DA1C676FBBC1F189B919BCE8A0AB283D60308C8 - -F5080D4C59E804BF8F34B334CABBCC7D32011BDE3677F4B9069416AC204114CD\ -9DA7A0ED0F4B4D8344416336EEC15553EF526B6DEC267B1242657DD0B508AF81\ -FECF9CFF9C82A6A7A9539814DD7E097615EF15373836B5D2F765CC8D5F82E904\ -49F13AA741D5EE2FE63898E55ACD85116846807606FE1E2E29F98F9940B067D0\ -D1DF01F080211B2EE4B0A30803782A7BC2EAFDC5EBDBA91EB05F7D7DC8E34BF6\ -D44FEC05824F53418F235FB64E899EE147BCB403C8855E94AF378D182D79C3EA\ -F977CB4E9D4A16D990A6C388CEB567B97785E6F2BC6745102B99AE765E960B6B\ -32BAF01E2379CD6ECB74D3E1A56552F5976DFE5C742BC92BE596CA742FFC3D0F\ -A032AC29F9F7C1A5C43BCCA62DF7D9DE35D0C7C179DB2E1AA255CEDCCA55064C\ -2049FEE1AF2CE5EF696ED4BC46B7C55BDD51F2D44C8713FB2475C0B85246AC01\ -03CC3863B7EB026AE076A600313F6FB40A4DF62A2AF81B7E917951EA870ECB31\ -B3401928B5046D9A1E62D14B30FDEBAF262868517318FE17EC3C0D52524F4412\ -0ED8ED3BA70C643300CD0BC70DA72C964A88F52C3A91EC20BFEB5CAEFCD4D9C7\ -685D8407476B5F34676C5EBD1E88A6CFF1C625322F8CD59B9ED60CEFB21F9491\ -B95E72791F7AC7EAA3C16159FE9DF7A989ADD6C2282C47585E11397EDA9F47DF\ -2B40166E03BCDD6186B46C6835118268DDBEF19A28BBADE1BDE0228FFD7E8B3C\ -3C598D89E24B8CDEE79C940254DE26CC6814BA2722E42F7571600B7325E1FF30\ -0251D52A895B8CCBD049B2953B8D231445F68F7C26EC25A4B8695C8AC116F736\ -BE939EDD762C9B4743E463C9B9B2F88E0BC0CE78781CDDC3BCA825ACD463C7CA\ -C2AA6C430BBE820EA94AF9A40B1B5C006E9641A2FFA6E427379E1AD49C81B983\ -20B3431FF0030DC683D61026438BC6A6D34B2C73704D9F62EAEB13ABB3E4B056\ -2B4E0482CD6B2D7AEBC0367EA29A88F4A76F3D76FA1197E1DCA92C8216C84C1A\ -F9B8C78C9E3A7799A4A79A783033B0F5547E8E75E69CF3615AB04EF989FE1A46\ -3B1672C571D50AB56972896E8A50C242F22C7F6E27CA4CA793F627E79608680F\ -5421B28BDD2589F05E65430DF774EE873FCD1234064F7A33CF5A1FA4E368137F\ -F9C1597F1FA0FA36493F20538077669EADFD3B06F788C912C715FB5D334DB6BE\ -D133A8FDC40F5496E66AD63881F0BA3727416715865253DC5290327B515BF68D\ -A188DD5B4B0EAC7CA712CAFA8FCAE0C5503FE58A219182F1C30DA6D0C19CFEE8\ -97B7D837C97996A35F4CA8CF0537A01D17E7DE0CC9C129E4DA0ADAF1FDA85030\ -DF9127BE628263B0624F372C47C3AC87EB945A57F5C732BEEE81A74030017989\ -92F3DC944114FF3D54C4666AC5AC8C98D0D5596CBDEB420665F5EDAAE747D54C\ -F7EDD37B162E372249D135938CF17D174D12D88279CB4C32BD6F018C766DA698\ -3D4EA51D6BD8FF0A9B34E9A93BBDA70CF1B4B867D60A74811FD98D52FAA559B5\ -2C755CB70A76C94BD19654CAE7017CCD70222BF08C5D7AD1F5E4E6344FDB3ABE\ -703452C29A696F39F9826ED8BC510A4A148E5BF8A5DBE6B82D7220164F08011C\ -05AC5159D52CE9D45D758B645BBB248C2D341DBEFA1F8602C5D458A64F38F3B0\ -4DB39089807B6A10E1BB52770B92CE72E2D3BB0C2241CDED35054B84558D1CC0\ -99EF7B2296951951D5B6A22F93BF962AC5EF8FB55EC6CC2B316428EDF12078ED\ -1B66D525D022819CBD489E1BEDB02FFBD507D55F9B5D4E22F6396EA233453754\ -688D20151A09C70044B8A5A9AC033C3C3B847AD833D5C05B33407666EE82F958\ -1DF9034EE15A9CA67D52F1D9B634B84C1B8BA9E515F1F060A5AC5CBAE2DE75F9\ -4E112F7198E239DF08D3103F065627438995026DF511C6E5BFDEEE5667D511D4\ -181850C7C5D179107C1B86D24D5532A88A4149A2810DCAE73731B0E1247281A6\ -FD31613DF6891B4C17B7A6A9AD9B77468254B93F85958AA0F01CEFC10B25169D\ -C46E035D3F24557B4BF0E7D60174219108D916FFDC55E25BFFD9809EFD058E12\ -C14F39C69D8FB73D3EC6458F47F2F8DB901BA76C86550B11B54D0641D4DB3EB0\ -00057DD00F2E511FB7A47E959A4402A3AC5462234B40B184020FCF7A0396C4D0\ -0A987C8741A4537BC17102A5C42AFEAB9F71EA66ED4CBC7B5EE682FF04F56F4B\ -A1EA0BB326C4089930F9E3F3FFA3E06637CCE32113881A06CC3A13837448145C\ -2BD01307A580FDBC385D8F46FB92FFEDBC8918D269DD1871164D4B3E2023441E\ -C8B99C82A5F09821CDDF6B38C9ACC3BF3A38D5628016159588C33EAA29D9463A\ -537C000A16AD8C177DC4CF716E625F46FC4CA8C19FBD8EF320F1D680639195C8\ -B195B0A02738E0665F4190D6287E589CD6DD45B9E8CC23B08E1681BFC6F66B88\ -DE6B091E825EA4BBFBD697E10BC407570AE4F2A3EBE569554639C2B8E051656C\ -C30C837F5A92260EAD1D552B45801B6D28134166796C87F900225CFDC3CC49D7\ -2DFBC18D8D95B1E160ED3CAFD5C3467D48AFF87402CBCB1E1420E3FCB588AA19\ -C8F42753B59DB6FB6A9FDBA127CA806DBA7DD97F2488FC2E438EEF57A4CC85B8\ -8DCFDE76AE1FF61225A1CA8BF4A14F729950322EA681B16D6492902506702DC8\ -F348E4D3AE7FB55FAC1231FDE82091B34F1791B6AE37587B10325F6FF5E23B85\ -5845B86EAE90785B9D10D90A16644D01BB626F343B908A9591F4069B21822CA4\ -ECF985C1E710475F33DF9AF4764CFB0FFE649063775338F15BEA7CFF29F16467\ -8160960A80ED148C9B7FAA58E9139911D3DD9536F69646F718F083DC9029D629\ -4FC4C607688AA75AF350AC2C0B001A157D023D73D86ED8133809FCB9592D1208\ -9CBD7A1BB6BBA882FE227C09A53FF088907CB4BC2FB4B7F62D41D3D397C4FE0A\ -D12BB3964370E21712951C679814D506E738C0201E42181D231136A435AE0397\ -B61CCBC5E8BBEBF8EA77C8BC48BD6211F29248F9D498D818E2B544D28A5E60BA\ -727F32EF4BA2707962230C900076FB764D0ED5CE078C9DB14DE894BBB836C6DE\ -9E83202AE89F9A8D8CB0341E1C81B5FA8B16731B8E231E969C0F1EF95336D4E7\ -3EAD6DA23DE3AD1EB608ACCE4D4D93996DD76EC1F5F2C576F6B3B76E07BD8A81\ -0FF5D88B00FFE48C42700B61CC499336E7FB57AD72FF44FC631C7222C9A3D1AB\ -F6E77B5ED7FE2F7228FED6C849BF7142C4103989A80F7C15642AE61650CDCA7E\ -854EB25E9E72F4C3E3768E6CCC8BFD556B56D3507EDDE9E5C331DDEA75568B07\ -813D20E8F4C9547838ED28448F2E67158ACF0C00B131473847816C5E2DC215:\ -68CFEB4AFC84FDE5B1A2F73A914C705BC211CAC69FC68189E3587412EA741E46\ -FD230AF54BAB9AF65AD5322CB691B04EF045C15A187FECC7AEE9FAF20C8FC658 - -08944CB473B828B118A31986DB67FC757F238182E790553404B792AA4F0095A6\ -A83291E287CDD16521A3AE8C48F56FBC909DFCCFAA7BCC570C2159F26592DCD6\ -B15BC4DD55CC05595AC634B2C3DE15360B0F07A03B5957BC9333CC5097919399\ -DD9973ACE15E55940178C4C96BB5E0A0A10BAE175769548EBCE11E0D7D9DB296\ -47F197D4B87F7039F5D4E59E016531DBEBF55A797AC9A6835032CDF34240A7EE\ -7423E89C09124829CAFC5F89431C8AFC54FD979E50D48A82B47A53523C84B600\ -4DAA323EFB708203E5388A6A5110C6CE2E341048A65FDEADEB3837A03420F9FA\ -DDC3F02A544F1E46D96B07C90C7971A7040A179E8198E90AA019268E00367120\ -D5F3D98A5CCE82C885E77144B1AAD66EE682847776B04F01F501DCBEFE390308\ -0A8058B3B8F1D823D917ECF31FC2D5B0795BF95A55C7093ECA7C801DD0BD0DBD\ -BEDE7D56513128B29FC0B4D25A6240B24C99E017BDFF7ACAFC8F8DE9FAF5A294\ -4384AECE82BEA04DCCC6D51FC6E6F27AA38F131B7959B13681A09B311D242E62\ -22A1CE5687DE5C080508B1DB16B6F8290D33A3CC0D0138AC61FD9093825E9D37\ -52889E9F20DB9F80F92750EAC88B38AC81C0016D40371EAB4A87E845E91446B0\ -A07081B84F559CDB95340CB020AF22AEA1BFF2FDA12F7A42973FF163A1C6F33D\ -B8B8214AE27ABDF1C54F5B03E29310FA210125E1296E8AF93A2996DBAEFBADD4\ -C51C2C3B8A3E2BC9FE060C42BA32768F6992A99599206CD2291CCC5BBD50856F\ -7F8D2D0AE1EFB5892C15A799B77482DE4553736B162ABB06631F1688F6746E7D\ -7A37EE7EF24E6CC901175F04960C01990178F81E957E941DEAAC8846B3704E24\ -204F43DDB0765C433F3F7D4D201459CD65682B7DDF3D47E95CDB31B96A4CB229\ -07F08BA6E92A4A07703B2DCF150F922C4B7CF181380303FB72547847305999C3\ -C8F9AC877D05D9DC4159DEB8A13D36AD1D533A56950E20F906D29D51DDC45BD1\ -5C1773991707480E37B827044BDC6473181B760A9036E0D3FA491C2F08C55130\ -D8CDD5AC8E97D0813164AF3D28A585F0C2EC7004D498F95C6B62231A632A56C2\ -D0C48FC3A6992D4051957B9ED6D9A86DBCCD962A8883CF82CAF01DA2F51A203D\ -56B6089BC8FD0B1BD414C8063031ED469555E22EF872689C130B1C101034D572\ -FD8CD0EDDABEC9EF1503D7F728B0941EFE2B9512438C7DDB176BE2EC2D9FFCD5\ -6495A4511428DF02819CDDA18D1ED5D3B16C6F42AA0AC681A9FAB51E8A1A856C\ -15C51A3EC1031427142EA12543014DD4ACAC640B8A7729E63AB7DF1051112CDE\ -FD4B988A2258334FA9A7F5B3A87A02074B9F69DD81B83FC74089A91D76AA4041\ -259E80FA255F2084902AEB9E996AC2288AB464BDEC47AAB26A28A2A819498975\ -5D48FC9A5C9279285F2F1DBB8B8018F3E4E13115D78A879792E45A8F4F24ED4A\ -317440BA63E6929056EFC1D2529B75A709D6C0097DC2D97F646F334EBE6195EC\ -5630132FDE58E25DBC17DAD822D9FA0938A2A2C926B105D108403DC29CF371C3\ -504FF73BCE9C7ACF9A74C4954CE6A32DA96B21CF3211B3E49953DAB78C49C3E5\ -32A349003C59C62F7D40261CBA63A9EA21C89A38AA63CE431C43AE261C4D9999\ -B1CAF491FAB8E7BE6E8C3454F1BE8793B2D27141FC107DA599A4694C41353D77\ -85C05B5E31440458D17C6DB66FEB8A9C5C073FB946A67AC0312BB669D9B12FAB\ -AA5272CA6631379EF4ED420A4424A5CD08526384C047C33A84D5D7DC0C215366\ -3B54C73DD799A3568C01B818992CDF8143F1DADD6B50CAE6EAE13AC66F31FFA2\ -B362CC4D2880592B7FEE4B9E4CD6AA5E5DE27AAB9B5DAD9F7D39407AE927530C\ -AB2B61CD7394A21EF47BFB813B5EA6091458D239664923280ED0D5CCA8285BB2\ -281A2F9FB3FFECC8E9147E1E8FAC957D90C9E5F513738745A47C2AD0C31FD898\ -6EF3B6388C6E821F166513811D547AB4336B5E04643497FC9F8D6E380EF6478B\ -82B6E2F5F65DD98A63C68C32B94610E1D3B9538F13A7688FBB1EC3448BE9BD77\ -BB93A34546172AE8D614F85228988E7FEB18C9A0C9827699E8B3CBC69750BDFE\ -CDA8268F694F4C509BEFC1A1166F85C829725299D173F867A300987A2D36D1BB\ -BE37BE3208FB8EFE9152A41A5F0E931B6382FF7F9B18937958FB180E61F2A8C2\ -8F36C3C80C3722935AACB81C24AA17FB3E7A1026F7031A7449818ED62BA7705C\ -A27C2D3268F90B6322921683DFF800A306CFC186CF2A61B37F35837B217E3B2C\ -ECB0843D84EAC67431E3D689F01522D4A4C73618B7C2965C9DABB15C0BE637D1\ -0CEEF72271CF39A7B803B41767BC34433C3E6FF449A439AE13DA1EAFA038CB9F\ -2E1C84F1CE39C05DF56FE3D7B82386C4E628B6E27CBC5D575C66ADA3510C246B\ -D04DB48F4AFC2D7352966DA2266C2BC9831532F53655D8BE42B421AC0D70D8AD\ -1D3587257886DBF93668E907E861BA64F45999BADB0F766EADCE5238B5ED397F\ -265935194812C03C5769137BAC97140525303CF48D65F39004A3F59B1FAB0989\ -5CEE05335D15B9B12265892F4ABB92AB1DD2002ED00CF3562CB67DFE1055968E\ -4AB3306BB34BB87D0F64B26848812A2F7B50424A21FF94081A7F70F7B684AB0F\ -092B2B085DCF84CA38414CF7290F607BF79C37EA84253ABCA8D4184D2DBE2E90\ -0200B81479E1CE8B71DCF2BD6E3C557A8E431D627BA669C2EA03068E0F7EA62C\ -29777B22142D7A1D451BD541EF8EBDDBBA4E3BD8FFCD340E935BE7C66EFC14A1\ -3EA48134F655B0DE3180101F09D204C379743A357E6DF1268B55A9F7524398EC\ -F3A59849A27B142239059998083E8FA91785E91C4D220B2FB17E3389EBAA384A\ -49D89B5D78136DD2454F06CDE9837F096B744D53221127869904AC227CDF30BF\ -EA78CC5545583F999B9C42A1184E2FB9FF3EC095B9DA0D138205C4EAC4C8C480\ -C43153608849F63E161135C79D8B6C9CFE9B8DFD8AFAB559D8B595DDD4383503\ -3B4BBD391E028BB2A60832D9B697EE61408F149744DCE71AA11BB2B0436C1E26\ -26AC3A27CDA293366B90B9CDE2D927855130758D3946B867192DCF3FCE9A3B9A\ -5276E8C37B8CB136FC90A6DC22650F95E796A9886EFD3F424BE63A66DBB1041C\ -B3D4A06F4E7EEE89F0B6D15C36F9EA010C66B332011C8888E8E4AB2B3AB52231\ -91E1388613A0FD0F07C1B26D7CC7CDF1AC62A226454D6291B431CC3EF2DB2B24\ -42B37DEFB942117FA247096BEAE598611B8104F37BEBEDD8BB8B949A89B5BF8E\ -228ECA1D8F16BFEC75A02FFBB4EEE3A6D4A6087C43634D675311E72A9F3253BB\ -5DD364E07EB4B9C84F586BA267BAFFAEFEC79E03B83B18595FE06D7E063EE604\ -FF287004D141C1A43AF0CA7C5651D98F633FA875B4743353FB07BDE59B6567AE\ -25F7095F1D9EDF30570E2F7D7EC194216898D910F9E295A41DFEE072CB56F914\ -BB78CC9854129250F9874B63BB3EBE9A1CDC6EBCB0916E1C440354DED6AA818F\ -2811DA913912A21D3961AC94A39F0827D3A419616905DC45842C8E69A43004B8\ -AE922C8DE1E8CD0668674A7760153213835BC63FAE4F8D65614AFD74A34D42AB\ -AD5025B884B34639340B45D49CCED423771916E18AA077291923017CA50795F3\ -B7A3F349A3D29923833CE57801C631576E23B838A7767CA1BDA92B82AC502DB3\ -688FFC83C09A4E40CAC31D20D9D32FA6724A80BE7091CDE9C7A6560CFB326B46\ -7CADDB9E9B7A491EDA283EFB0B61B4A1116DD859D5C0897EAA2A3FB2CD82FFB3\ -3770BF9E08091363B6B81D23E61C2A647D2BE440C5C79EA89690656D9F10B1F0\ -7942834E1CB6E2D2DF106EB6D6A21FA23819E65028515E88BD279F9317BEAFFD\ -394EA51F8639371C3A89F11305A4CA35FB0711F5E2C7C3DD1659C79024581211\ -3204B4ED8AAE9FF09D43C6DDB13F5070D98831B2C7639FB6B9B01C288812DDFA\ -8861DB32DC8268C07D30CF969953042B3DAD530D9D744C06AABE7A886C0FE57B\ -09B7F42D193FB3E9C06329818251A2F7E6474462C95DED:\ -B141289FC8E97191C3A45A125EB29831C532F764C9924A5EC1755267E7DBACE6\ -8C9EC4A685455BE06A75DDFA80421F16A3FC96203277E3CB22543B9C07A94C7F - -1A3DEAFCE70AF6F3F55D66AD9CE78D5F4D5C5F2638A810AFCD07D67E9F9A1380\ -D6B34BE482EF030C22F1E978F544609CCE35A74C5109EE7038495B6210CDBCA8\ -DC82C6E9E7B0D593FAD9665382B3C401AB8941DF71307DD77EBAF140AA66A1F7\ -6316478850E58886A9610631E9C722F459FA00C0B53124FB4F12778BBBA37608\ -26D3DBA67CD030A96B654AF93F8E395F5F439549489F8161683F124BC980E693\ -9C83A6085E4B6CAAF8BCD89A0E01ED70DB487166CC29735D9235A9CDC57B80C9\ -C2E591DF6322F5BEDD32937073F781A30389552AE83FBE147D1B3D3461A3DF96\ -C15CD96900C56718EAAE838417057579115936862679F5F2A45DADF65D14108A\ -F1641DF987B57986384FA1433789F5DFBE87E90BD4E9D8D4D0741FCDA7348322\ -B967B566B18612DBB8FE64F151947C3F7E361EE868676BCCD0CB3A1AFE046BE7\ -0057A05ADD3E65AF31E3FF414A627C0183E8FF583B41B75B203650420216E6DF\ -CAB289665F054CFE3EA0943647528518573BBB1D0F27E1449E98739EAF0D0094\ -32DF0C1EDC1625264B94A71DB762659FF5A3A7A867F182D1F1FD34B341A4A181\ -221870DC4A494013091A7E3B2B07E0160C438F1EE1E8A2B989C4FFEC36B5083E\ -A427606767C29672F44779A8505B422B25A56907F565B27690D011426A62DF00\ -36D57D967CD1D14E915BBC2691E7AF818C769D9E1F9EDD40894BE88FA1D7A595\ -2AFD898E837716ACD73953BF2D1D448123FD1A0276D2C2EBDC760A4B787416CF\ -AE5E963FCBDC8B551CB70F91DA0ED4A8090FEF178E879F2C34F3A269DFFFF097\ -72D44A13D7A17468B5834C460957D5243C325F63F05F89D4ED98D361E7F0AB8A\ -83948A64D0CFF8514841AA21C7F337920A9983E59BE4A0F1339E1E462F92DC1F\ -C070126206012458A499A8111FAE078E00B0CA3BC1D6C7087CD318D5603C1C7E\ -0425E6F729CEECA5F35B82F8A42E0E9B950EFB0904C5FB5C06D91D239913665E\ -D1F1EE4B82185A01BA86CA2D3EA94E5A8842231A94C05280183B7ACA28998410\ -3F122203EC2FBA4A382E6F5236D6F68DA05E3BB0C558421F0EFAB91DCEEF6D1E\ -CDC60F9B88F8BEFE31CDC3C2F024A1AF2C7336AA5D151E8CDA814A5FE898BADE\ -B9DD680E337E682EBC22BFAE445417E37D2D89A338659A280AB1206DB74DD42C\ -6F25639C1803BFDF2156DF613B0F5924D209F7F9003CE8794F989F4F27B82121\ -210F4F65EC5A1F7723305CEE438C41F793EE04496BBE337BBD2FD3023830B1C8\ -889C6F4D0C1192E364EDBE1CD987BA5D66224EE9C9405E1DFCEC0EEFFC5C73D3\ -123F6731C6295D1E6B854B884FD22B6A3BBBE5395312585CD138BCA67532C6AB\ -71BEBC6657C50DA87D2AC6068FA3970202C5E15EB7B4B3D2676C0134BCF1EAC2\ -B26BA46930B5E660B16060894884C88BFACD6779276B86F685AB6F17C6D53F62\ -1275FAD66D021D26D1D480AFAB4B5EC75E0E763FFC45F599EA02504DA5D91EB5\ -EFC3E4AE196F219E45E7CB05594958C876FF474A020EF73C1F09B1F7F7457E81\ -6D3AF51D86663D4D461754CD5E907456691E02446D6CACFD33516206A3187054\ -3D574592087773653D4086C2BDCBAB3C9B65CA11AD0D4E58DDDA8B4403099898\ -57103929549B7300CED42651D4086661694092C42875CB62858E6D1BE5F7274B\ -4BCD83AA4DA05CACA186A30902830790F9FFA24418E1F9DB00FA40477E83B05C\ -2D11AD7D81DDDB1E31F94A9DD5E9E13391C22479B570976E3AFC1BE41086D3BE\ -6689D87CA4326A7CDE8E5B396A678D3CDB2C80FECFBA2BC799AE8B1528E96D88\ -0CD098DDE910D097EAAE660AD4D7EA51C18F18AA1B39614299A172512521DFD2\ -31B9840909839EB69C892EE23F1BCEEC1FADBA75786C7DED93BC9983F74CEAB3\ -97EB8BA84F7E4130B34258D628594A6F9E2348FD91BA2594E07B8057E8A2AE3A\ -DFEA0EF919555385977041C5B6DC4F3880569171F7217AAA9A85F2F5BBDFE3FF\ -DF79248F2A35FD4DEC34980C67290339B1C0A5A6AB8838157AE2F5140B4A2492\ -4A6688AE5CE72A48103EE9029CE8A0F15B1FBB19A12FAAB80A7CD9C0E389FC27\ -75833E3190F1CF735ECDFE7F6B6C326506AA82613CBEDA8DD3691B81F4C1E3B0\ -FC32D7E6719CBFC12F4A26E0FC29D6417953ABC9568DB4ED9A294B9FD5F2A666\ -DDA546ABA301B1C60985033953EFD6F4538333B5C7DD3148814A3FD7927C366F\ -40B3D7ABBDEB2332DDB586AF80959097663CFAB2FEECAD6D368AE10EFF9663D5\ -F8BAB95935D25F45776F7F04B46817D05165A9DD4770509ABB92F8B9E7373CA7\ -80703569981754A51D6D376D65C57F55CD70E2DF5FDF5A6B829AE30CE3BF9428\ -15C8B4BE858DB58151D02A68AAB9FD373E047EFA51BD1A0CD1B61744D9E97CEB\ -A3334B3BAAFEA3BC9E43AE097CF2C3D713EECC247FF43EC74D54907D8BF45E45\ -B2E0E11D82B126A8179D3F66C055E11F69EA67AACC5FEE8AF01FAA379E51998F\ -5070F9EE0FD30A2EB22A925586FB1B39024EB5EB1E127C76A149E7F02AF1B73C\ -16E9E5A5DBE378E08A9FADF1194C625132AB3FDEFE8FE9A89BB8E0035A1A3AC5\ -278F5D3D0ADE0E41C81C6853A41C4AC45BE3F68180FE23F27F18BE2E339DE1D5\ -59D75DE63ADF7A32BAE42B037AEAA3E123A5314891BCD35CA48D57DF4C17540E\ -97202A8EA1328DA25B1FD6BE2B56AEC1E5DEB209F3B7A13ADB1CBE53EB645956\ -E577A7621D74E42376D70BC5C4AACD239A852FBB7B3F62CF59FE10438C1DC8E1\ -E46566325DA0CA43AAA63FB7E0B450A2DB3E3A2204704D894DB24B72B3078106\ -E096CD543DCF027650CB4965E38AC36A8AD588C5962B4E26548AB88F0BC20E10\ -ACC1C3FC00EF415B3C32499264552B14E2C0E789A3B8A8BFF9620FD939D0B34E\ -806177EC696A4B3B1CA4B32BA979B2690CFB3A6B17BCEE6877FFCE757E4116DA\ -01099FFE82ADD5A0C593E73449A96DB9CC2B9E846D166B095174F2CAF8B35DD8\ -78C836D9BB6EEEAF8E1BC5D0E149C739828CC480D731DC16B35B80D4AD82ED7D\ -29BD05018239EFECF8DEAE180C6A459DBCBFE4AAB9A5E2C1E1BC31418CF2EEEB\ -31FDF8BA02C9A91525E9163F672BAE2EDEC38C1BDB84EA237B4EF86BF5C0F0FF\ -E178E3761E82D94F66E5EA40BA8170BF768409E1B4177AAFD9937BCE3FBFF590\ -320D7C445372463FBBFB34F57447F42C16E026F179CBF82F617C86D1E8D42F6C\ -908F9C6B77E38D25D51303DBD781FFAB569B4CF31FD0B947C45E1768A2E9DFE8\ -369F520DC38D77937B69B821DB4FFEA8F50EBC404F0587B5598189F54B5A5B98\ -966FD16801C87DE2C3C7813DD70DC600824D426D88C55E89D47214D59206A7A6\ -5A65DA7CA2E42FA62ED17E7AA5B3ED446BCC71F17FEC8593BE96D2037BD07F94\ -76D4D732B32BC5DF8C921316B45699004716FC89F8D45BAE402C26DBCDF1A340\ -847B932FF882DBEAFBEDD252E126C89A1E1FDD8908A1F67D15D8E432DAD8E08E\ -950A3BC46B96CB89CC5BDAC703B3FA3E986EF1C6E7E6606E6845BA1EB2FBDCFE\ -E744B5E45206F4A419E1CB103C8490EB293EE9AEC1F0A0D294F9D3847737413D\ -30873F3C94740E8FD072817815EBBCE3F09EDEC9D1211A9E99547D620B2EC56C\ -89E9CB8144AE9E46636324BD13C6CCA3AB9CD9FD8F7F937ABABC598232384427\ -A2D4CE0CBF9765F7225E208C3CE128602B0AD08A1BAAB77EDB3111F0C6CA7BA0\ -EAC9D89D5B4378EB82C17F6EA08308A79A53D150D3F85EFAB77294F02EE0E288\ -5EE2AB2793392B87DB11FA77992F5B4FD75EF2F1A822E87407A4878894215AB8\ -9B6CC4A120F5A78B3C31AB80FFCC9ACEF53FC6F7F85685EB9D56D30D87C21ABB\ -F1652EEF8F32C7C567BD1F08623B09C29F33561D42727A5649A3850071AA6C11\ -735AE63C4FD31559CE560B27A362786A83353FE460B37074664A9421D3B2F6A8\ -64D5ACA087187B27E2B82F31CB3DF5E985CEA271C609B94B4E58356D40C7D5C7\ -FF2E5990FB39588154843EA5FCA92F120075D4C4D006661A0FA1B0585454BEA7\ -25473EEF7D58117D5840C8348999003736C5EEB7858FFD273A1C3EB2812F5697\ -C59110275B08F6BEFBE84C92497D5F73B7B6F794A849713B23AC5F29D5C7112F\ -B2E7A6E89EB54DDFA3122E6C79624C1BF25EBFB9FE5CE6DAA779F3ECB2984DA4\ -2F8C6ADC77B21DD291E684FCA50E46070962A2D4F00813D8DE1B8ED33FED9715\ -180C7EA8E2BB74FA65D9C7F6E142F3C81CDC59172E1020F62F65CA5A12CF2BED\ -9DEA04A4D8CABC2948F7BE823A3E792625275B3925A6C8D8E2B428C75A5DB0F7\ -120278CD7D6CAB768755C7FE2FBF89FDED1FB38AC7F76A2F8798CA36ED42CB7C\ -07F006271205F546A4812C20077F050D4CDC79459FA686E97F0704B7A9FF7DE1\ -6318E862C53D361BC635A55A264BE15016545DBFCE3C6D6849576ADEFB6884ED\ -D768214E0B438B0231B4F2692C2C0B5C177674F8A0DE236EACD9E0CEC7C8647E\ -4E9A5861B957EC834A2F8572F01304C3FD6A06019E5F1499B62BAA8670B65246\ -7FA9A4F10F053263BFE9743CC7D933F86136AAE3A6FB56754D7D238397A0030C\ -EBEA87CB255AF36138C373DBBAC41DD4A697032E4796C552AD9C9B3FA713C3A4\ -E09E0EC5581E94BE7F31065157662F9E9C678B1EF1B8B8A847C51789C22B1841\ -BCFC855820AF3258AF9E08231090B45D10046A00178E89BD515616B8A44E77BF\ -57795DABAF40687B2CDA7A5014168F:\ -29E5CD96099C4834FD0ECBE8132621D0345BE3DF0C7AB9B8B86D91E87FD8AFA0\ -A4F209506B8D8FBABA154AC65552BE5F5C6BEFEA1DB664BC558F57480A3126B4 - -1633256AB03B20CE079196B708A1C02D1B6072219070712C8589EE21341D5075\ -2ACB6CFDA17E982D828BBD6CDF54BC7232FD418A323D64939928597B9B52F07C\ -F488250C5E42BFD3AB48012D709F8D747225839296386FCE5FC5AECC4BA7A107\ -6D089DEA8ECEFAA0CF66FCA8602395719C12A04F929321784D7AB8239FCE2FF3\ -BDAE046A266132B5C2AD9F7261F3014E87B389A6695978693D9371D0B1FF9C40\ -5F338C2FDE4687359603950A54CF4B9CDD9B24480B239ACC5405C14C886BBB03\ -78391CEF0662A38882BDD09E3866AB9A66CFBD28EB5EE4F8009BDEFC4AEB1670\ -0EBA7DC557B489190A71FDA75E85F7EF841697F70FFD4FEA185E7A67C81C5B8F\ -273BFB97B2CEF695C1C74446C4B425BE6B2E66DC0AAACB247E4467B7C7D84EC3\ -3B6B5AB8FA1979F503008BDCFF948CDBF1226B1B066CBCF34797298F3BA8C60F\ -A01E0AC8B803223C656112FB91435D75453BAE4707B63330467DD13E0A4B992E\ -6F7E46995899A2D95D23F4AC3D0802B2A6E7D024DEA19CA408C4BBE053F14C9C\ -E264F129724A18BCB18F385B1CA091A11434EA96D98C8D0602E98EDC8DFA1414\ -1AF93ED0BA66E885E9FA108591AE59E109AE34D6B9F5586E4B4D75E7DF7C3295\ -8A65E88A9BAF41082A0A3F11539DC4EA2CBD9E1C6C3C439B622F1DE574FA7547\ -0C8C939B51D2D1C2A7204B859881D43086BFD8FB90346218D099C5AB36846F3B\ -98A7C847318BDFA01E09717943FCD864C5A8A17B6CEB89D98E872D388F20ADC2\ -BE5E2006846904F41682FB1283214F3D20DBC9FC9E0FF571844A1282E88590D7\ -C085B2C568EC5ACC4462B389FEAA5757F7033187E2DE31955FCE55FEDC909255\ -048B327CCAB2E582BBC9D8054BF5CB45145C7D3A3AF9CD5CF6ECBA490C634ECF\ -00E646BF95E8642C43A4978EF08A574EF1F78F6CE57C3B34B5A123D123617FC8\ -EC9B2AC0F9B70A7F6062D38DD7B8E9FB4ECCEF13DED5C0477483ADDAE4F1CC0C\ -FCA274B1307ED0DE72FBCB819154CDA897D7575213042615F1741A8CB646A39F\ -8D134FDF9E60E000EB8220F65CC30F5FA52C431B9E3B6101B96E25B8D0440B96\ -E572A18A01747C02AFCD7513542F7AACE194632099D16274F31EBABB60DDD94F\ -E43DACCE900EC0902EB5E686D48ED8D09AE63DA0E15C736809903A0297A92DE8\ -4E0260F11F446E1FC448E0EBF59FAEA3C726F97925C57CBDF85B1F77078D3625\ -7C85D56CBBEDCE180FE12B687ADA2DC9912FAC60334166BD2CEF06B089ED5C95\ -63844D71D8FEAD2F3A93F3C07C52537336A8A70BF5B596B9007B9FDF2D082000\ -F20E6B70D2A7E6C7ED27C4146895A6D85A246F623C1B9258A2F891F823ADE4CE\ -FFD59D4FFAD077351E2F506E9A5BDD3900F0204B9E8969AFE72F5DCCB9CDF986\ -D197AE4C4DB53014041AE6221B750E5290E307AD292C8DE6B899235212EF8CE9\ -54785537DC9435AF11E0F3427A9C7B22EFA752EA0B7EADE5F6EB4093BACB7867\ -6E506698139E4F774423B8942166F9A7D22480D814FC0AE19CF4960FBF6E01FF\ -A65C8DA5BED4F1AE2B9ECEC5BE7B3C38DD4045B0C93EE6CC77A7E61E85D331B2\ -3C0D164B104518B3405497054445A353E9B48F2AC5E8E96298D6655614336CFF\ -E6D8C9C915E387391519AD2632366AA3BC935030FD12927EFCA17505ED74C946\ -50C778539004854DF6C24269AAB9C273A493D3E5B0B1D687C33C2FACE46B4BB3\ -742D6DF743D09164D2E0EE7F6BA128BD5FBA2E3B33C199AE80FA9DEE3AD811D0\ -2BAA3D42A6362B2AD47BBA8A2C5CD00B46CF22CFE367281488A4852EB8B7FACE\ -79F0CA6F8E78D32578DFEE01711C4DCF3C26D0BA13F3075478E708C5C5315AFD\ -C2E4C0062D16458213BEC506A9E991A61825FF78DA9BA1BAABBEFA56B4A8C9E2\ -E7B60EC4B7B541C8E0F79C86BB5F03F736761A37169B2AAB8884EC6EA217B02C\ -59035F5BB327243D126B78D4AAB430212439B5A75B80618DAFEB66AA3AFF866C\ -4DAEE47D374B512E74ADA933EF24A841BA271C6F02C870E8AB950FE06E93C91D\ -F0E99165DC01BCB190E411ECCD85358FD4A88127A22E4CF4266A90845124BF97\ -B25D7B1C46D3A0D68A684F84E2A638C692A52CB6E8C651A3AC492B0460004073\ -D5349E35552359CA37660F77B2770D6B2B3F7B1922424AC4A8598B4C61A6DB50\ -7608A72A6A7D573CC055206276E14005A28A0EC41F28D7E260611D40F089FFE5\ -E529375691412F4E9E12E62C3BE2C563C26D2444EA9C69E6C935FEB4DC4E802E\ -5FE3906F8ACEF4798D940C3CD574BB5E74506C3E0B70CB62454A25F589EADB6B\ -0709FE3B50417CD1D98F08E08B7CF68A04CCCF8D6588F9FC2F31E533CDA6159B\ -AA4297FA446450D71C16EA2324EC09773E7C8817ECF680ED12F64A04863EFE3D\ -9D8760F34DE5B0860B3991FF0EE5EDBA22C4D69120DE19D5429E4AAE91C9E7CF\ -05CC807159A58F13B480872AC1609D87E7009DEDB71C09CEAAB640A2B6135855\ -CEAE4AC2954933A0255B425D9FDCD9C246F82AEB7C3BB78C6E73E03DB7AEC424\ -5A28693FBD36EF4938D59CCE19EAFC00671A0851612406A075713C5D1154D8E1\ -3B59B7C5B0902239D4BACFA386AC817AC5EE02A181A9A47C622B3ECF287E1484\ -3D452AF347110498A620B34AB4E116308D976062C9EE9CD35DB6CB79805B93AC\ -9A15AFBCB52F1ED4309879D1924A4BA190B0B86E60A516E77D34B4E0A49D4EF2\ -CEF3CC2F410FD8EC901363FC9EBD75EB460D4D8910BDF27CE26A8B4AEB94F9F7\ -6242401DC35D0644842B99FB6C439B82D82ECFE1AF0D01F9BECB15BEC83F13B2\ -60F7F714AA381032923FDE8F8018F3518547451435C9A5207294D08A907C7369\ -6F6CB000745E072E25B73B3EE11595433D27A1F11468686F08094F1D31F5ADA8\ -1F11F0677A29D72EBB2E1C4792CCC607CB938647E1F153F9EEF03D982595C631\ -E49B6B7C1FA003A6EB8D59CB8892CD0888B05240F12701753F89007C859515A2\ -FEF944BC60B36003A26702AC6FE04D2E942978FC31A97EB29871D6752399D352\ -1720729007B6A7215A4282B2A4EFC2C56BD129E74C9B00847692B96FCC71CF7A\ -7F19F3FD6B45C519FD73B4860880A2DD74E5727B31A93F0A87F0078155344AE9\ -F7BDBF00D83393B634B5DCA88A398E42C320EB95C4A826ACEA90B65E4767B2EB\ -A748F97C247568393E2FD3A66075CC12935B6D7EB5C2FF5282185CB62C73972A\ -37B3CA508004B4F796BDF82B83B5BDF90D6BFD32B5089B0CA2683DC7FB2337DE\ -42E650ED911DBEE1EF98257F9BA5AF54B1A54B04C0087A5A64BA779D86461BA1\ -5337C2E7D4955FDD777A025DE226306A17C384F1C52CDB5946FB0B46DD5C13BD\ -7A55FE2E27E4C6D40D61D6FFC024468F8EDFC7C7992DF5DC5D05063FE7231992\ -24F53678E48F25250EA28BDF1089718EB8B730D1C06735C2F871164E2EB5E885\ -A8DFD2A083BE97EDC94159CE9BF75D2433F1D782762F771903CBF9A1C9D13F71\ -0BA0E151B079DC0A8262BCEB1DBCBBC0F35DF6EECF7BAA7105B9808745853C96\ -B4372E95E482035916B726DAC7BE95A72B19DAD48DB1B19E6EB2EDAB5AC1B301\ -3839E7806625ABC129F41813E6D71EE4AB2040D81E42E6ED73ABBA64FF2EB433\ -B910EA7D4F5ED3D8D27D39BB454EC019DF6114F544D7B155549D0C56D14551FA\ -F353994A80F30F3C97E863A4F2AF316468A568038EB4D799350A6FACAFF90ECD\ -44E0F44EFB6DC42EE4B0DC2C59EA9C1827326DF08C0A6E55CF4F9C3EA0E78CFF\ -3635F5D08E44F1400D20F638D56BA84B4832090454DE57EF04B6C8805A36F63E\ -5CCC6E830C87FFC164647CED20E4C486D09DE7A5F9E4B68D5456CDB22B0DDED2\ -B95B3BCAE529215C2D25D6823C7D66A4FAE0A1E9F022BA5663204F2314DFA51A\ -1F10E11D6D62A8BA6C28B6AE7DA1DEB5B57F2B65D7456059AD9F03DC5A524054\ -DA39DD100D74EB657DE219795E3C45A0E4C762BA22F9DA9D8159E425A1EE783B\ -4B22C250D8894CBEC706CE16D5CA393404FF478F141BE7CC69E45B077BA1955F\ -1F49EFBE4847C795347F703300F672334F490ABF8B644A34B56DA00EC45A3503\ -14B9ADF27CAF7C51CB7DBA0C5477E7D37662F4F23247BCB8F7DD5F3E9CB8BDA4\ -0FA97568832AF0ADC68F71422E412254A6BFC8943BB465B01FCC8DE0B957677C\ -78BC1F7566953E9D2446239F602C682A521C14F741FEA98C7E27AABEC339B6F5\ -B94C78287A894AFDAE971F8DA7C7E4A4C92C8DA47BE82DC2532EC2DA9BACEDD2\ -BE6DB2B2FB34DCCDCB34116507376578CBCA105E5E443BEC0F2EF23BE34CDF86\ -2EDAB34F0FF21335E3ACD92F59688B419F824EA61EEA82BC80E3463452192377\ -131BA51FB0795E089FC077D0ECA8012E58B0637AD7022206887FE9EC00EE5DF7\ -AD2E26FE819EE35C7A179C579098AA3DF645D9064CD557DA90BDD21F871CEB04\ -8CA56DF9653A10ED60F5E9F0ED7F8D89BCF5C22D1143CF44718FF2DFD8E10CEF\ -8AABB67D2305F18177C1426BD4CD03F2625E459CE905067826A214E08E56D8F9\ -455593E6B324E72DEDCC429D3BEFE2AE0599E360DF95E80D453A3A849E48389F\ -A745635BEDE30E7932DE6A3816E31A2217F98D5E40238963D0A36C159FD4EC32\ -D8A5CF59D433DEF3378634AF6887FDB3F3EDB96FC8840FE1B538C329674AE810\ -E8C8B2B46DB208716D38E9D1AEAB097068AD83ADD7DD2647839B3A7388B0615B\ -DE26F8692E9C07D8ADECC2A875203C3D3A9C6CB1D7D06307E9E1D9C3BC536DD8\ -EB271E9A2159C904E61E8C9357FE759F36366AEF5A3D14CEE82913CD2708AA60\ -69369CED763C8E830D70924E82E9015C2998E86EFC1DCE6AC2EBCB49455542A6\ -D7DAB265AD6D7381FFEEE1AA40F8FAC0659B6FB56BB03CD8CAFAACD48D13672F\ -7D524EB9684CFED4DBB7476E99149C28EC08F33BA6AFF839AA178F86B8EEAF17\ -39C829177BA78547AD394136AA3FAD451A11E9642506568B39668B2436610E06\ -EA45FA11D04D3759B033B5382645F15B3C39270B81B80487643913A24F2F1C1A\ -1ED57C85CCDDC8CD6D59B62FA67CC80572968C8FD01894F0153634C88792A7C4\ -A407A4A4CE46CEC5FE5D2569F95A27DE242444EA0C715B357518CAEA23E767E8\ -545983F0D3A4DF66111B4AA1D399CCAFD796D7A80E592D5A51D2B3F60B5B04F8\ -D9C009CA56CBD4DD84127A29B72ADB7645FB7279C9818B2B43963BD605F45B65\ -75A5E2E369E0B401F5EC10EC703F1179B0AB9D4A89D6F096573952E513827364\ -A84D38922734137E969D8167D6959B70F42F2BDA37E4C989ABAA8024C1A84ED6\ -BEB74780927F78B32EA736B9B2B4A795C355C0319811729D9CC399D235197303\ -38D62E16E5035FC52A817090703FE776D65EF9FEF5BA5F4FFEC3CC8E9EB2E312\ -C50A479BDD4E6AB0A56C18C2DF69ED408417BEE28BB41DD13F8366FF6EDA4B34\ -090FC9BC045271:\ -FC4E8EEF8A77598A389BD58A31C348B22C6328235A39F1F097C06D189DFE0865\ -8B89C16D9B26A43D17A25F1B4007852CED212856059D8B5EB42EF6066C845850 - -[MD2] -25:A248ABDA0C79140E2D99170DAD36CBC8 -3386:43C980AD45E7B3B1CD75CA4E7D9A723D -A0A806:0D4596E208051A05DFF8116455562630 -7664BC7A:E561C90B5534D750BC251EB77A9E7870 -94A3C94A0C:2D8026BE7A76954A9E096343C39ECD8C -2BA359656CCD:2C549D1C220B32CDFC242874E6807B0B -F62E1519F7C123:7D473DB4CBC7B479443BE0F5BA34AB88 -731E26C302E41557:DFFFCBFDB186EDFC3174BD6118B9F4AE -E96E54E58C275946D6:DDD255C1D97FFC23ADA446D630E648D8 -A05EF276F00ADD9AA737:7468B835B7FAB5B85E95BCEB563AF71B -B2E29CEBCFE26335B65604:96CCB8AEB6DC5B5D0502CA2DD5795197 -4A926951A34CFF9612086FA1:CA2A050506C450FDFF20DD7E4EE5339C -501771E1BB1766FD3FA714BCC1:FA6F95FB2DAF9E4E153D7D78590EE138 -07ED7EC95443B759D36E5699547E:61B549A5FB75E337A194E2FCA382DE25 -50AD2003A260C982EFECA7D5912BFF:6BA8E7DDD4019F159FF72514CFA156D9 -940866DDC4A37CD965DFFBE3E2B0C341:6A92E7EB476CB01F9C404494260E3777 -62F3333A791881457264348DA07FB6B7C4:61017AB161754960D3F1D1F1D10FE8F9 -E68EA199397AD1D0C9A76BEB4D96722CBDA2:B373D1E21455608FCA99654850ECFFD6 -A7A8C48263FC70A6A77374CD0E685773248D26:07FF45303EA30885D7AACAAD2E16BD50 -654C952DA2E3C7998473AFCA3C9AF2AE89B2DE45:C9444F92EE581185EF649354CA8F4BCE -A4D93A05DF87F08E3113EA2D0CAF8F70CBC2BE4B2A:B46ADB25D38DA1F0E7F6F8C5DD129D40 -EA12AE41BE9B71EBA74C9010C4C884FE5DC9B0C5C65A:B6CFCF8CFDC2FE63CEAA66A5573FDA81 -C3AF0ABC9A2B464A1C4F629908D1EC556F20F64084E733:523441B8A2FB07E41E9B1B8CC5276660 -3C8BCC24A8DC88690F6B6C7CFB25DEF15D37335EC41C8C83:\ -F80ADCB9C78CF9DE5211091CEC3E310E -65E2194B8A8B5B30F5C53D01F8431E8C20418EE6A06F89F87F:\ -5833781CF79E57F605F9D73D3B7088CC -62FBD128DA286D5C6C5A3E73D463E5B31D7FB06F34DD050B3CDB:\ -987C1F6BB686F3A983D611C22C5086BA -DDA05271A7C4860D49D2CE62A0B59B11BDCAAF272898EB8E18F1A8:\ -779D23550876E50A7C19F4777C84984D -AA8DB1791C56E3C88122A1AB77A9D8BCE0D53240C01B789DE7FCD594:\ -9540F40D24417EAD9465B26D8A7746CC -A1C7EAF91BBB251411A86595BC66D4E5CCF227FB2D9913F3EFB4E69B3E:\ -D67F49DE6E7BB44071947A6C96774E02 -611B90477FDC084652039E3E3F55EB74EE1A3E14BB49A08882AB67EABA73:\ -C7F8C0C4B53D40634A084A0E388186DC -5E9F73521E348BFBF3ECC570012AF45C9832F673FFC61CB034908EB91A6672:\ -03B6F0BCB2A99CE4CE51D92DBC9ED3B2 -275C7EC5230978B84D4D87B929EE90C04269B91A32A69BFE2B30E84361CD8905:\ -72721B4138FEE747BCB950DD01291C37 -BFC3C421B77FDC497E417DF9A2E8A480CB975BED8E3B90F0BDFC567D66D8747D85:\ -92BCE15368AA8388D71E1CC5B4773536 -C2B801C8419027751EF0C9EDBA783BDD703259834E0D28F1CC18BA82A2D9DCDDCD5D:\ -7B194DE6324A19C54F9AFEB352EF9A8D -787B37C5C74098B78B693D33E5DD5A12BC2D502D3F69852DCB5CD56D6263E846F96ED4:\ -F63A8C1958208D999F55917D9A1F3228 -0614889EFFDC294287D820C8A4459FA44CDD02CB1DE0F678493C959E7DD1DF90257AAF0F:\ -1E20FBB25E31606B0B22FDFDD2639C71 -60D169B12C1ECC464591BA572EC74B454D417BBDC49A82F01B9A4FD1273404F6FEBB575E51:\ -C23B75350BA0174D6A4BD629A8E43311 -642350615A9C6CBC8894D72176AB2EE4AF3413D15C4D4D9B38D071C95FC620FBAD6AB37FB8E5:\ -3D0C91CA852FB8C51AB9441D5A3C1F94 -C6299D1B98BB473500364EC66A3DD9238DCCEA4F281005FF630E99B5C8D2A7AC5FB1\ -3C693ED05D:E2B2458ADCFB7D0BCD4789EB9FC0D2CE -9D5AA26103830005ED7C966E120253DD7ADF49C56BD89B211B6B0D5B491066A52498\ -736122A325F7:C8F205DEC0103264BEF4FA0501CF007C -7E038B83083785FDF4696310B579D3C0D98A0092FF2D71808C620225FC54E6973B90\ -7E5ED4A50BBD5F:91F01747135E4E9B18A95666FF4C8801 -CBD41D36CC3F85C7427E3D04DB05E66D32FE7E9683A35B9ABC5B06185E24A867B954\ -DDC4FD41E0379423:96110102BF17E3CB91AF30EB0B527851 -61F01942CFBDCC748AAB816527D49848CF698A8AE5E5EDE8C3C9178EA5719EFBA60E\ -B1C4C3324C6B1AFB2D:94EBDFBB3060FA8E7FCE7A4538CD6829 -3E96A6186BD855DF00FCE2693B1394151594448B516DE0B9C8D15396984222497B15\ -EE0DFCD47AFBD8AC3F83:D39A82F44F8E7D8384938DD8C42C28AA -9C8CC760D830780DD8671282D6A2909E9D163BC54A04119586404BCBAF5489C79491\ -AB236A4F9781CA58E58408:1F902D98C973B382D084FBB40F0920AB -00A530B70C406BFD533C2642B94FF767EF4C7BCB28EA5CB69C62F52A01AC1A25F1ED\ -D918719004757463E6663340:C7FA3641EC0626AC66FADE4B77FFC795 -8DAC93EB30AF1242B93B4C1C8D7D2A8E1320B2738C3D40E623E7380AFE596A783A90\ -2B6A19DF17D15356C24CEFBD66:437FF6F86D68E35D5BC507AE88C8B0D3 -C3D2DA59D6435405406E342683A324DE6844C527687521E43066270CDF8534C110FE\ -EBD79B5F2FB00FA3B9A31E1D548F:7B4E56A2014BC8127D6DB1699128310D -D178D2623180FA605C3379B2EF0D5A3272593EE49588708303F5744E8A26DC7F4E3B\ -4435B85A8E68B5ECC40AC7DCB2039F:CEC9CC7590DEAFB05FDA5D42C5CC3A71 -4B2C6190EBE39D5282026FDB3124D64094108DA1237FFD3A52ACA1BD96FBE752C4C3\ -631C33913BD5DB067AB234C4628B2ED9:E0CABDA82227CE74EA7550053F942E74 -9A75285DE0B739BBEC8AF7A791FEF5375A8E722134B6299D6FF167F43BF80F5CCD83\ -8F76AC2278C6CA5BE7E5C339ACEB8BF77A:117451E0A38EA5E87D6817003D9DC6B1 -A2ABD527204652A5DC3C672A1E47F5CA34FB1D7F300580F63B463959991DE6DE1472\ -EB21CAD19D4636C26B0F1FA99CBE6DA4CD70:EDBEAC9A8676D1BA66949F71B7BE5005 -FB2063EF9B211AB8ACF3D1256DEB4E30D1B6DF1882308FD7F80F27C2141DA8A89551\ -B878410D914C4099DB464738EA337335828434:4DF72B07A43EF126FBDEAD01E51ABAAA -41DEB68691AFCB42C865CF29EC0C2698CE621594ACD0D3443B8D025F6A4547DFD058\ -740A837867A2C1E204CCEB27740C343BDA0AB6B2:83A4F9739748D0402BA738757FCC517A -38C8C56CE471F839B8FD15AB3AF0E1D1A3FA494E7DFE660D5224E1C8D43907E5CBC5\ -6CECCCBB44CEC1AFFF26EA7594E33D05789DC49E76:07A7A27D722092692035AAF579751495 -6AAE2909D84B75F7AF3155E85660A1CB224DF40A4EA6CEF0C0F28AD149F3486AC3E8\ -37E7283E07803522CCE7000D0213C73B09FE77500852:C7324E5968CC534F8B98406165C5ACF5 -9934BAEAF002C98F527AB248B8D44520456FD552409845CF1E666E41151DD3383E5F\ -658DD3AEE63DCBB94BF5ADE141D753B57BDC3BD22D6648:985711D04A1636B27B98EFC2DB61A806 -69C8BB8FB1ADA90D0B9739E62AA1090D12C750945EC15F28D03886BDD1ADCED71699\ -48E085B56996D4537A35F72FEB5313F3B7BB3DEBA66B2B84:\ -709578A0AA3DBF9CE4BE69AF71E1AECB -1EEA19E3548286905BE1092F54EC9E372DBB9950E77EAF7E9C55031232D8D70AC9DE\ -C5D71FACC235EA339B859D54C4D3245F8702D535467E918F86:\ -26BC86988B1C278EEEFA648345431254 -24215B243E36C2EFC561CABA961A170C0EC406344AD712DF5DFF62CB80B4A12C08FC\ -009E4A359306601ADDF31845A88F927BD86566634466BA15E5BA:\ -2BB96ED578D8C61B39DEA925DCDE859F -4B6AFF3B20CA5685D3E173AD26E443D38748340B209D63E60F26988AA4C31FEE1427\ -83DA23BDE5D322C6AF97599C63183EAAC6B9DBC3611E6C2C32054A:\ -F54BBB34D01EDA10B43753BE8BB9C219 -26C82DDB40254A854F3FDD1334F1A191101730DCE43972881706FFA4D307D7D91598\ -93252B25732F3976DE9675C7128990D7E321CB023221E2A89BA7E066:\ -951FBE39B9172884541297FC8DD4C2BE -F357FE7BE2CFC971379457338EBEB69A40286C9C0FE5DB16888E2E270EAD23BCF7F7\ -0031770B08B5C7C4CFF2E49C6BF9844F773B3F84C49C575173C691CAFF:\ -C2AE33C5E43079851FC8D2671F5F4CB9 -F5A11AC76D127223FD9E95B3E743B7EFD13BDE1E502D0E81E33EC85852420EFB3535\ -95BB7591E11E3A79FAE079239EE4C87FD141BAE6C6B7019B9A57BB6498E0:\ -45F83BFC62EBAFF4EA00678A138D7E7B -CE9C44FA430FCB3BACFF6B384A2A6C2B0617C0737DB20B0B78D86C6F7C341D19801A\ -C2E4400822DAE74DFA40A4468CF5D1081D3290FF35AB4775790E22FAA58BCB:\ -882D31790CC7FA4B512EF4A00B1F5180 -BE2FBB79CC864E84C625D71F9886DC29F9D5D387BBA4AABC2DF2C8C75FA45C759E19\ -2E0EE1A31BCD51618402D8898E8EB937630F6211734AFC590F99AA67BAA0DA69:\ -497353E9FFE29110092E859CEC5B366E -53726A30175CCB0EEE5B91B542E7FFA6EC7C2DD20784563D5D379B0DD5F632060B9B\ -9FB6264AC792830B6555767F91BD0D6808134624E7A2D8901A6BA01F558BE4A549:\ -2CADCE7ECC0BC5DF4043C9A3F4F838B7 - -:8350E5A3E24C153DF2275C9F80692773 -61:32EC01EC4A6DAC72C0AB96FB34C0B5D1 -616263:DA853B0D3F88D99B30283A69E6DED6BB -6D65737361676520646967657374:AB4F496BFB2A530B219FF33031FE06B0 -6162636465666768696A6B6C6D6E6F707172737475767778797A:\ -4E8DDFF3650292AB5A4108C3AA47940B -4142434445464748494A4B4C4D4E4F505152535455565758595A6162636465\ -666768696A6B6C6D6E6F707172737475767778797A30313233343536373839:\ -DA33DEF2A42DF13975352846C30338CD -31323334353637383930313233343536373839303132333435363738393031323334353637\ -38393031323334353637383930313233343536373839303132333435363738393031323334\ -353637383930:D5976F79D83D3A0DC9806C3C66F3EFD8 - -91F1999647F001F7B4D4452CF7C07B64A994EFD25DCDBD9F6B260A77C8855AEB3EE8C65EAEE6\ -397DF26F58A1729BF7A12ACFCF1C4C07A760B829D4158164A57037C15FBFCFFCD85C987C9FB5\ -319AEF44484965425FDEED7D182861A0F3F9BA42BCE7CA288355DF484BC4476B1C587C401BD6\ -196A401A9A99BEC075E8B99CEC15B3E9292F6399F61E00B27837AF4CCCDAAFB235E90282A08C\ -979628E084C66FF24E6E180AB9BE50E274861E174FB511760CB2EB48A2A50D9D70C97B864236\ -BD6AB8C2D9BE95E44FD317FBE6135B800C00E2422068F399F6F9427340AD4ED5CAA1DD96C76E\ -FA688679F577FDBC02624F7D936A199A9CEFBB4F2A9FD15A1A81ABD5703A55FE3911455C8F0B\ -BDB6C6479B24BF8501654DE0593F52713A53929E46FCECBF708ED4EF00768352682B8BF7731F\ -2682991D3CE26497BD4419B6BD67A04907C6A1D84B2B7C2B8C622EAE73AE49D978DEEF8214AA\ -CCDFDDBAE1F10D19AB6BB7D38D5BEA2A6141A55BEF2BEFB605FBF01A88BB7294E4952283731B\ -E737EC395B8B537558BE7889CC9C43C855F6CBF4131FB2FA17D72E334F775466F1B9C70A4325\ -DFAFF502D71ECC73E113871EBED295D9FD66EB2F8CCF456075666C9FFC121BFAD286C457AC11\ -91354CD5AFC3F8678CCDC3371B2D86F378182B7F40517FB36DB0194A0D517D9CF235D91001FF\ -E86F7386717B9CDA393C712E3E2628768EA5FB41B1E26B11615B6187E0CE73015FE6811420C1\ -A2CB00D69399C91AE4A21F759B31CCE31CF01F0F9D1E40162130EDE0ADC73B641121F1286FE0\ -3619B2768E1FA021311CEDC5B124EDD6B1AAED550CC3AE65E0DDE172F9A8CF136D417C859DA5\ -C1B6F2166810AA46BFBBC2C13B1D23EECA6159CB09D511233A50FCE4DB27E3D35728CA1F35C1\ -A5D538BC4B1F2D95C8B8B424B346FEC0EDBE78D727B9E982EC2DA3CC81238D2317648CCDCEED\ -1C887E97FDAA0E764807F5503FC97A555D99B417185F75F06CCE3646E6C1900A64DAB07881D0\ -74FDCB400043275A4D23C5AB64FA7ABA88D225EFA9AA399A7C18640B09D37F189D5B8AE4256D\ -20A50B5BC26DB9DD6B2A81436A098DB8283BC6BC64C07B0F700A2BB0A4440DF1BB4B63197EEE\ -B31039AEA6B2517B54D5B6F93F9432D94E5C6755F4B847635C8E70E7B66A2ACC479B36BEEF51\ -3B583CEBBB97310DA9B96111B137E37A3DB5656A1E3C2F7DF8F7A84857FF376F6AB085C80A3A\ -3733D519677805DC1AB9F0278C78A2A55026EB6998761E8F1853EEE64B843B74714CBA56B578\ -766942B241D32000384C9634E09BCC45E80F5CBC32B86C33AF2E96E0602CD081DC9174B33F15\ -06951A560C0141F940E3F2E84133C137F7002F0C7CBD7D86429963C1B5F8BC3996685FDA856C\ -4548F3317904D4EFE606070F783E7BD746537170A9EBE29967C36A2CA8ED8AC08114C24CC860\ -013195:\ -3A1237D02204327A5D2CB7CEDF024363 - -[MD4] -:31D6CFE0D16AE931B73C59D7E0C089C0 -44:AAE7B2D482382AAAD75FDE64DF8FF86F -0246:CB386D6A1189CD159F4458A1CEF7B28E -A7EEB6:1C4E79A284594FBCCAF9C67B4C41A7E4 -93C40129:FCD8841C546F832310476AAAAF7E40BB -D9CFF9DFE7:E05B135D5DDF92FFB6E85F95E1B246AE -6C69618F2E04:9FDB803940A796F1A3812C3FF149FD92 -51CB4187084217:EBB806618D65266CD195CCD4B00E5CA4 -7FEEC81F78691BB8:E1C8A1F598A1465C30B180731D134572 -D9F6B614968646FFDC:D27628156A0EF18309EC5085E67097E0 -747F01DF7F723DC311AF:FE1F19114FFA1695A28B92315F6911C8 -E933B52C2E88CFA8E26F3E:18B8AB7B5B7610CD6262A05417AD467F -A1483E3BCCDAC94A9A2B1A63:39F0B4AD11180EAAE992489347AD13C2 -F1C7365D2B16368DB23EC806DF:A2CF9BC244949E0B9917AFDCD0EACC65 -8DBAA281D14C19F35C2AAD537F7C:F2E6FDDD6568EA8AB316111E5946CC9F -785D55E2AD30E4960E6AA3482B648B:A01DA0D565A3753717D1D81ADE3166B0 -BEE8FFE30FCF0BE745BA22215B320F66:68A5FF4E4CE33D50E8F42B49505279E3 -28BAE5F8B5ACD3BE26521E0CAB1C9A6541:93B775F3BCCA2F2BE24D5CC63BBB3224 -2A7415DBFDF5FEDAD4E8DCD96543FA6D03E8:2BC3478938FD5EF823D2974302E61ED5 -285A585DCA6B4B4D59554C80BDF8B19491984E:C7C6E691B1785C64D8CEDE5B6F6B98ED -C7FD53B9E39B4A447442C45B7AB3FD0602C57DE4:3DA2CF785958E6C115D8843BEFAD1979 -D83F308D3AC2F0D82C3E69A08CE8BD97AD02E3492E:82F6CA7BB64799BE36AD89714AEDEB83 -936800D2940A8A22A5D54804B451F59668FDE5187416:6E4F874F35C5BD38617A31F9EC693B44 -C7D740B0DF155D9C1F11D1F6AB708A22FA1F2146D48953:E72B78BCA0A764CDAD13FF69B48B2A8E -EF7CF50DFD9B72E8CA0099BF631BB334CABDF76192CB951A:\ -9E7B7A7458B016BD68736D1512995585 -F5A46EAEFF6B9A9F01653E35E90116342C470425CAF7B942B7:\ -CC032DAA2546C0C2BADCC0BD77EB12C1 -D8AE0DE315E449498FEAF2FBDB1971A09B7BF658AA70AC782E15:\ -AA1E5DCDD854DF06B715DEAB33E62E0D -A1EC5E04538FE815D26B6B3BD9A889A43416F301064B15BCB480B7:\ -CACCEDF21D2BF863F1F4719B4B83F18F -97EA99966751703402F57A2B5B6505BAFD1C440B8147C87EEC246F0A:\ -ECCB8D37D12527CBA6D493169AF12159 -01864FB76236CB325D893BD1C7778E017284ABE61217C9B5C6B41E55A7:\ -BB7EBA4B6592A688CD29C782FDB74EB7 -976A837D0AD29D030D376C3D8BDFD37F4E0AF1C4BB72B043EE3B6AF44AFB:\ -4B814B19C0DCBFA31405AB495034A4EA -6E72B873F63F61E03EE166E6E988951ED02398094FB6DB178B2AAC3A56E248:\ -95BE77F915BA362E80430F4911DAEB22 -894B431AA20CC3AD8CC34C95895E0BC2DE6599FDDC863040ABF7735FA2128905:\ -4CE468F58CFA95E789D74A47FD8BA37C -C79F893B67218FF1672939A1BFE5F7E48A5E81E502585DAA16378B95F853251EDC:\ -777CF61193AAEE17EF6B68B5168AFD48 -DA074189254813206E7A3F4483CAE746550F5658A8287D0250E988FF49E3EEBFFA81:\ -011542927FD9263EA2CA86D668DBBF10 -E881A6FEBD17422B451CA7DBC1D4A7D9878970CD3E7FB0274247654279FF837886C68B:\ -2AAA877A05C4D944ABF15C603C8AB6D0 -0ECF376EF3EAB389E65F415D4247031420792C988E47D63A354481B52C31ECD552728A79:\ -B817B64F224083D701A6BBF838AB7796 -888941D7E809DFDDC49BA6B2EE804DE1AFBA451126F0CF8B9BAB1D04A78EE28D98A4A90288:\ -B320402832D24B4EF38ABE044B521EF4 -9634A438BD14D8DDC3AE525A04C37E7BCCD803570C1A9123F714614B365017360FC50F280936:\ -8DF996A89A7D2BC860ECA7FAD90B34DB -A9B5ADEC5616B4BB3DC89A5996A4977DA8C1AD36910143C267ADDA0BD80F9054F4DB\ -BF02CF585F:98EC309FAD45969BF125350868669D39 -CB76A9EA278044A520757E020ACDED18A5417D096796B8E8119DE09ABF5F17F95E82\ -6AD61E39858C:F29AB28DC618F5E4FB8525387B00836B -914502535D0F05A72A316F15BE8316BF9E579EDE86C591B8037D1EC036D95F8CFEA2\ -65032029F6B696:CC09BE6F76C27424ADA44C52554F05AF -A273736D5BEC5C75463FEFCB2297388BAAF202111517DE2506D331BF7F560E020D34\ -7848C2A1459423FF:9AA76F6791DC4ABA5DAF67B4A62CBB47 -F6DFBD94D04077E328166DD05FF54E6C7BEF77E104648951895771BD4897B2B7216E\ -F6A66A7B18BEC8A639:A90B980820FF501957009DF700451D78 -6B5B94AF15D1F60A181925BBF0372528964F79D5F2AE04850AC53105D9D732F3EF69\ -9DFE26FBBDDF43E17CA2:BADED5524542AF6A21F796EBDA1A096C -520817840BA40BB5AAE8709ED60F89D7642BC81C7B7D68A52566E353AE869D0EDABC\ -D8B3CFD3200851AEC7F632:BE5618463DA165C84B7E1C8307A5A301 -3F793FECECC4896206D2A3F960394DDBA4405615D3DC17453036958DCD2042AB4B6F\ -AB256522ED1EFD38C22D9FDA:9914518E9351F15DC4D60B243CDA1B58 -2F859EE93CAF6F3944D1AED1194A53C236D95B721FB892D5EDBA47CCBA6D95EBD498\ -5086A8E3C0D7E84831C41ED70E:99C81ECD5B50F43DE3385A9E0D482CCC -ACCA7AA450D9FE5AF957C5C9FC152822D0A7FA9322B044666B3264ED488656A805D9\ -FD95EC243FDBAF0937BE9460D77B:400ADD0630AD12EFD9695BB69AE126CA -E84D9DC677B38B6A9646D2648441E12D7DF7BB3DC0AC0CC20C2783CF0C1C45B93272\ -9C33042D0B013B562DB482D50C24F2:8CBECF75DBDAD10C9D480579B476C6C0 -07C14E13B62BB89468ECDA029F66EA279EC9AAFB7BA7C80FFCD9946F88CB80F32317\ -7B77C65C1CE9397775C980A02B481C92:320C6C79226261DFA3D2B9BAFC51A3CF -7F999F347589D4E2901BC1CA533E8DA0D3BCFC39564DE20FF0537759CEC5DB807D6E\ -B2C9D4587AAD0297BA6CB0BA6BD436CAB0:0FA0F71F8E8B9F47A966283F3C8BA4E3 -3099FBBB801C8B27A26B549FE23A834966A9AEB9C59EC76E6EAC7C20D934370C6B42\ -3DA31582F8BADBF3CEEDFFE69D3333A8E15D:B2CE84058F967E45000D287500C9D81C -839ECEAE837ADA0AE91E52343B095B9CBE6E1529B090677C36F4CEA1FCACD1067977\ -88954417C61F951D678B6B1E8EED9FE7E0D2DB:7498590DBBF71F17EA3F4EEF7FD68641 -A4F122E71DAB34E6E35A27BECA6F3753E9DE662FA23E4B6492A1A0145AE3CA7362F0\ -1258670B9C955F55A300BF2F7D22B0A020E5CA15:98754DE80336A4BD012F8A05617532BD -6FD5D1E011D2C155BF4CE63FDA59BFEC91755D6DE6F646CBE774BF96FB8463B8C880\ -6BE81F1238C5F9AD1F77A2A277D2694D12C3E5E9CD:C31E7ECCD70786BA1E2301239E2C9EDF -F1B68A476C7738A656E25FC954AA7A42CB7E6BDD3142523F6566CF5B838D13E0E011\ -263407ACC6BD74B0FBBEB9B918529FC5848031896C0B:90FF6B4BEE1A2B833982850E2F06FDEC -D223A6E65743997A871BE50E918F03AFE9B9847464A465BE1EE852BFDB1501989576\ -95F18A7928B0041575BCF5A095B3291242DA05D766E1AE:72C28BAFBEB177406866743F1B8A2B6D -784743D4AE588AFBBA7425AA095A1E757017EE0F126683CEA69901458D237A7A69CD\ -2235FAD6A1DDCF1E4FC98017B3FD2081BFB6E3F801B46FED:\ -D956EE28E490B90B9C57CDC723A310FB -3F18CF84A687A40725F32352824C9C2AA7444A4888E68D6892C8778D478EF4A5D97E\ -64F0D4D6D2C8A20AFEDAE41F7FB30EAA293AB43DBB16FBD9AC:\ -51678626D21DFDF58AEB6B35E977730A -D7BBA140CA4D4C398732FED7CCD574C326FB498E8750177DCC9347110E43C82B9CED\ -D9A3BE266A6F93C1D5CFE5C6EB2D2768C5841F562EE01A4770B0:\ -B9DD09BA8E4A8B4200E943F928420368 -C6B516FD918CA874B08B446C7F421AB01532E12D4ABD34CF1B7E9AB6B478D04D21D3\ -98C9E486223A803003E93EA6FDB6323FA52634383D5A9E43FAE4CF:\ -6D14138691FFC136B97C432E88AE1957 -4C4E1022271853F9FA261C3A52BF46E806A73ACB3E3AA25343D826B5291BF5DF1713\ -77D76285273B2AF7CD2E50A3D5D2BC08742817A29851AD5BD1F8EE02:\ -15AB1275F436B96CF1BCBFFAF15E6EBC -3141EAD348142A07B4B7853471FA243511F1D8E6C633EA25BAE04CDA97B1AFFFD0B6\ -47131C67040986EBE78E86D89F1C86CF591365F7AB45865EDE0628EEFD:\ -B58A8F44BACCC511DE13227E98A69F3E -CA547E696B455522A16EF1191F8C39196BBBF6EABA00693B69698DC1344416F6F3BA\ -1DF367B7EAE71D48165678F7C78B0096D6DD5EE2E7EB618E85758392EB7F:\ -8391004470075BF3CD8858C492E7184F -2FDE680648A3CB7210D74BCD690A5F03B1DCF7EED861DA0F4C4E3FEB7B6B7D4B4988\ -F5605B30613B87E7DF8D3D6050721BE4F6FF0674EABEF58720685EDE942F82:\ -2CBBC00DD0EE6EA828221934A4605A93 -C6E48AA0604F18E1F579BC827779B850FAAABF96327FDACE8C10BEC830AF1EDEB2A6\ -46A5143AB342B9191FA5B02A581C4CE68880608B9D37120C2EC560B4AE309C94:\ -AB6200335E0B4DDBDB719BC4E36DAA07 -84600F3274F4ADE17F1C8C7AE3CF650D861269DA9079F2474DB121BD29FFB9A09D86\ -44A62E8E88C369722FF09108C430C8FA6B0E9EFF4DBDF1F353E1D25E5661AA3E92:\ -526A127BE8518E713CEA69D5147E9382 - -:31D6CFE0D16AE931B73C59D7E0C089C0 -61:BDE52CB31DE33E46245E05FBDBD6FB24 -616263:A448017AAF21D8525FC10AE87AA6729D -6D65737361676520646967657374:D9130A8164549FE818874806E1C7014B -6162636465666768696A6B6C6D6E6F707172737475767778797A:\ -D79E1C308AA5BBCDEEA8ED63DF412DA9 -4142434445464748494A4B4C4D4E4F505152535455565758595A6162636465\ -666768696A6B6C6D6E6F707172737475767778797A30313233343536373839:\ -043F8582F241DB351CE627E153E7F0E4 -31323334353637383930313233343536373839303132333435363738393031323334353637\ -38393031323334353637383930313233343536373839303132333435363738393031323334\ -353637383930:E33B4DDC9C38F2199C3E7B164FCC0536 - -[MD5] -:D41D8CD98F00B204E9800998ECF8427E -7F:83ACB6E67E50E31DB6ED341DD2DE1595 -EC9C:0B07F0D4CA797D8AC58874F887CB0B68 -FEE57A:E0D583171EB06D56198FC0EF22173907 -42F497E0:7C430F178AEFDF1487FEE7144E9641E2 -C53B777F1C:75EF141D64CB37EC423DA2D9D440C925 -89D5B576327B:EBBAF15EB0ED784C6FAA9DC32831BF33 -5D4CCE781EB190:CE175C4B08172019F05E6B5279889F2C -81901FE94932D7B9:CD4D2F62B8CDB3A0CF968A735A239281 -C9FFDEE7788EFB4EC9:E0841A231AB698DB30C6C0F3F246C014 -66AC4B7EBA95E53DC10B:A3B3CEA71910D9AF56742AA0BB2FE329 -A510CD18F7A56852EB0319:577E216843DD11573574D3FB209B97D8 -AAED18DBE8938C19ED734A8D:6F80FB775F27E0A4CE5C2F42FC72C5F1 -DB7BF252A4641FCA34866BCD5F:6EE7E13A9D83DA498EC31AB7F1AF2F9B -8D62994630AEE95D4C2F192B3F7B:7BC1620BEBB0BA89F8E51454A2F90421 -BD68233EAC90E380907F13A3DB7A4A:529961E476F563084D25E0F981CAF73D -8DF425048D0BC1CA3544975250B956CA:5127AEF56B982E136A90BB0617AB89DA -D18ECD6B341CF10DE7AFF3CA82EE04FFE8:EBFD075F46B974E971971CE09CA3960E -BC66823C5C3B9328940D2C1312B90DC92205:436D62CA86CBE2D645B728C3A3D012FA -247E8B8F71BEFEFD1B001D34362851B71C2C5C:69D0CC38938B60E5308F62748C91FA78 -B2B8E155E9409960B216FF533647F1BEA88DF5E9:550C07A2545183EE4A46695CDE92CEFA -87BBCDAB47CBD7A8DBFD46175E901B2F2014D2574F:AC1E96028760970301A2201C02E7BC2F -E68232740643E72213C7CCDDF3FB6BBBF8FA91318E07:4ED55A365805C916A7B476F29161BC1A -F0521C42DB4D92770C7BE97BC3BBCCC13936A72FB0ED94:ACE41D10A5771692320E8AEB0C6EE308 -9910BCA80E2A1E98D16871CAE15129D0E372F07CC0076C6F:\ -349B05E073186D50B8E98581C90C6254 -BFAFA136A48F1DEB19DFB707E34B495FB1C72CEA1DF6F47993:\ -31BB7F0CEE1528BE4FE0CCE8D140F622 -DE42D4B7A1FFDA4F086142F8D9C9A29F752A348E566F8CE53FE0:\ -6D7E9235A586970F8670FCE5FE7A4178 -45BDEEEF37A626381FD30D7AE7DA9DDB4AE8F5F17E919A8286AE2C:\ -9D1D7ABC247166C9508BB99934DAC532 -C5661640140037B16D5C98DD120AA50FAEB3548ABE84906DB82E0228:\ -0993CF5D2A56DF4D47F9FC2DD48F62E8 -B5B9EAE5DF6E2191C154D7128A2286E9C7E682B24CBC72962470BA89CC:\ -1BE6103887AB908F155C0EB3968F9E37 -264A4620BC5429260CB2DD0BD1639613F9AB513189F54467D46767B737F2:\ -828B112BCEE9225AAB202B54345F002F -03BB178060230719B7AEBD628334EDCA158D062F3AEA6C0073370831FEAA32:\ -2C07E94CD50F9DDE6C9C99085573F6DC -DF9A276CBECC9A28D999A67BD14D28E1C5827DB2F0B0D48BABA57F07BED49752:\ -3D39093BA64DBD00C07183177CFB4F18 -65ADA2267A286CF3490F5967574E707FC3C03E837D689C997B9A634E5B4710119B:\ -50C430128BF7499760DA8164F4FFB71B -2954D2628C422A02C1B8A9D2950D177B508FBDF57DF94BE3447FB79E40B2F65845D1:\ -FD9242F1604EA977F5DEDE760AA9319C -053F2617C86E5468D53D869CD260549392C53F6A7D8429685B86AFDA12CE4B611386ED:\ -929AEEC5B56780EC07B1455B1D2E0580 -FB55D0287923FEE055AE96937735BAAB47E488E3C24160E13B5FE2D06534A2E00F957FF2:\ -35C6713BF2E172D0A30A142869EB3B9A -38AD3FEC103EEA5F808779233955B03EE4E7677A894A8159DE95E9FDCE9BC57D919C13C66E:\ -73E6A3F3BF0891DC4FA050936FFB702A -765D5F0B37926C40D544BD7AA4052EC15BF4F367567C2F1ED21427C785724EEA29303B055A25:\ -D2DEDD1D77EB642E6CFBE87DA2537AAB -86DBEF8CC3D93F340FB31E92C2324BC3301B9196ABF4292263AB0B883E002423F063\ -280B0F385F:92032B502AE736973AC4BE67E263809A -B81F79B5B9B17DA768607C66B99976BAD8F53DEFC743EDC387B6C2584970BF5FDFEA\ -E48E99AE4C09:1CE836B431110C7E4099E5D8F8E54C0F -8A8BC0EE1763CBB2081E774B282085DBCDB5F198DEDE350BFDF7B290BB097180BA50\ -318A833F5BD9A3:0B278644E43EBAD38FB5237405B31C35 -359AC2B44FCE85DECF35F5CF9536C7F6C48BE18F44731759A8D6C5DC2BB8374AF0E1\ -2A48F8D111286067:37FD5E056A2050789F8E95E9EEB8E564 -6213F3543EA1B634B8D9C86A26D08D1C8B7DADEFD9BE50721354395B1A99D653DF74\ -75A5FFC45A7E035ED0:79FB0A2C96B58FEA3194CD6FB3030C1F -C2409DF528DFE67C1488D7E84970A82E006EA1B34D97728EC821FE0597D8204906DD\ -8396948C2CFD9A86E13A:E235122E1DB5E26DEAFA30C64C8FB5F9 -4E314E192FD989FA432E727083199163B6448C83CFB98A968189BF7F3DD69B635EFC\ -381BED87108A794C19336A:1C494D375150DCEF2FD51F84AA59D601 -2183108500C74144F21D67DBE132EF997B0DEB97513A381334D5413A6805733357A6\ -41A3EB2A72F0813C21589A9B:23D80B20EE33C33D8A75E485309ED45C -F43753ADBFD4B2BD905C0F06D5450673D98AD6F50E192625338F5737DF8A0B375964\ -2FCA66CFFA9C96EBA5F57078CE:B176D8F4982A9CCE331366079033FC1C -D04E4313C792988B8774DD759AD8BDBBF98306F4F6F7090F0E5F68FD8A2351544634\ -BD44F7423F30FE37881874F5B819:9BEA5C357BF5202B6976307713A903B5 -DB266910FB841658BB855DC312702CB639834C1E5C50AEC2AE199D352D2E4CA1DE6C\ -AF81968D586A31A3C5D65AD0F4912E:768434AC733C239B8DBCA7A459A2FB42 -43BDF85AE7C27AB66EEBF743F1D4B67F2BBC98EDB8B92F3251C81CCF54A219F6A684\ -E1B65ECEF7B3FC9C95AB3B5B7F374FEB:46956F7F64806E86C9973DA6CE2FBF90 -A87792462EA3BB903170039536B13C1617BEA2285FBEC835A7FB2CE7FCBAE27FF0ED\ -E753862E0AABF04DA01B74D95C042E1FF9:6D78DF86BBCBD8B08DD7FC648AD0DA64 -CFEE147442E699CF016714EFFB3579981230BEC61D7BD8CCD4CED1556278DE848627\ -C9D72FAA12AE7E00821839FFCDE8E2A421E3:67E9F45E71CA07B2E0D0D4B658B84228 -32CA147C83280D487ECBB61C3FEB34F0D44D6E5414E2A544EAA2C2992A19469090DF\ -86C2D98DC4350205A50416DC045A28580BE425:1136E79134EC1B4AFC61F39F9D0EDA2A -03B674C177DD0E9D3C450FA48AC356417B319874C46B04F9387E823785FB6A2CB103\ -5B17F7B3B789BCC1721167BC393518737AD65A1E:CB5084C965F8433B3F739A3F85AD649B -7538B43E81C97808AB82AB9BFAE52E2395185B3779E0631A11FE85B189C9F390BEFB\ -1087577AE977CD79AFE115D7462F60C4693BC16E0A:0D88491C0EA8F820A253F250B831BD26 -FD04FE966AC54F6A1BC4FBC86FA328248AA235D9F190C7D7D72C2382C094EBABEF78\ -72BBD5BA4611445B8374F0FC0269E5032392B95B8DDB:CD9965783D9A1EA097E9D9E2831ADCE7 -98948A1E28A1F7B97BBA154ACA43BB28C05A197E8471F1D35359F5744C66BB9D0FF2\ -34B7B5E2E73D533E5FC78C13FFF2B68B3C7DF94B860752:037A76A6C9B017AC440B3A9330EDD0FB -06449B27F353990EAA0A81C4A0422079B5296FBF87209D084DAF4C81C796433E9235\ -71733CAE194EF225B12E67D1F5F21E0A50486F1A3E57C6C6:\ -75B70BBCEC3769FD56BB04D7FCAE220A -75D4D3B833E659784D26E988145A3B7B01774CE6321F61A08B0A0C1A4645FDEBDAA4\ -9323B051B47C1F6B38185D60139CB7C22755FF6E2BB7FCB5BC:\ -2A087E2C8002DF98EF390183E96D52AA -20DF7267729FD77DE12969F507383E240F39F018A0666E32A58846E0ECD9FD6D7A13\ -2BCD755F463846A1C861BD5593DFC71318DD7BDB905C315FEB72:\ -F414EFECC9C65E20FB175DB5C7FA2AC0 -E96C3DF4D195693DF4D3CCFACCDA4C6A18EF039F886F33B6980C4F1233A5C704B3DF\ -B205751A6B09145AB69E47A1653CBD69A593040AF6B3D6F5407267:\ -F14A6A40918BBC6901639C04C34C1B3E -C44CC1C20FDE000FBD7F49453FE4519000E30AEE2BCC504B4FC0911807FDEDF488C3\ -BAF39A6D227A22D8888E9912C1AA9B37DDD2EE9C509B300E864493A1:\ -B82E59AA885C741BEAE1DD7FE19B1ED6 -B37A592ACDFC58C2E4E78FCECF067111846227CC1C53347B141F5F378B64FB5163DC\ -25149B88C28E6E390C561245D73485DBA5D616654EE17A76C20300E774:\ -EC58A5879BE2E425B1A126AD80E32FCE -3104C2E23C21C174A512C7DF0DFA11DE82FF6D9B8CA86331970F8C29A5BD5F58DBFC\ -874B9F3F81136E8FB1AAC2D244C697637526C8A680B3072C86272FA684BF:\ -51E46388BBC048DF3914582F8ED32E0E -D6EE0400EE5E1C18B170D309D17A8C79918449FFDD945F33C79DA666678C0EA732E3\ -1226BF56398B0C0BD654F286F00ACE0184C486440433D76E74E3ACBB933F5D:\ -E2592235FD61589C07E26861E34B75CF -8910E1CA14F15DAE918DAABBC4C7555417ED6F8BED1950CF7B6B321E14D82AA49296\ -0DA9068F8B24A0C061EA41FF7C7DCBC797B4CB1E0A35C8F86E33CA0CD558E93E:\ -C0059500DCC36D2C1B8D07D521BF9047 -FB7B50ADDE9FF5D8DEB65C4764DD3FF42C15F498D65018583F224734DF414C8E0523\ -5B406BBF79FF32EAA14DC9599AEDB4A9F201BEF4AD2D324F1736EB95F9B70BCD1B:\ -0E2496AD1385C0695F1123141170F9DC - -:D41D8CD98F00B204E9800998ECF8427E -61:0CC175B9C0F1B6A831C399E269772661 -616263:900150983CD24FB0D6963F7D28E17F72 -6D65737361676520646967657374:F96B697D7CB7938D525A2F31AAF161D0 -6162636465666768696A6B6C6D6E6F707172737475767778797A:\ -C3FCD3D76192E4007DFB496CCA67E13B -4142434445464748494A4B4C4D4E4F505152535455565758595A6162636465\ -666768696A6B6C6D6E6F707172737475767778797A30313233343536373839:\ -D174AB98D277D9F5A5611C2C9F419D9F -31323334353637383930313233343536373839303132333435363738393031323334353637\ -38393031323334353637383930313233343536373839303132333435363738393031323334\ -353637383930:57EDF4A22BE3C955AC49DA2E2107B67A - -D9C7DD80BE463DCB2087E3BE65F0453BEBBE1B6A3440CD10CF26B60653F00C16B92CFAB17F4B\ -E6F2A7A5F463D1558653DEB907EEF6579BF86ECB460A252B7D92C6FEA35AE8267332E8169284\ -86B1AF0AC4F61238A8A2D37E7648A9B8F3E6E972CA989C6C6FCBECCA418650DD5D31EBD1E6C3\ -1288C0AD0EB3DE61EDF01863EC11C2BBC4D03D78407999EC1A33F606F1A49F6BF1E626FAA2D5\ -7E4FB2B6838B349C28B32E90377D71FDBDED640E21700A0FA6475F34462098FFFE1F76E3E824\ -09C86EFAEFCA4599E764B682FA4CAE0606D39F8F87CD29BE2ACAFEC9C0343A4ECCB8F43B1100\ -49AE7B74EBCF01567A86F3B3EF75D38874940BB142FD65DEFD1A0ED4C33086915E46F85306F3\ -4CB7A110D68365C830B822330784EA44C168D9428065B206B34721EBBAE49B840AA74B0354FF\ -B1D744A29451A6089C3C8B2C7F242BB9A83894F311ABCBAD2D0F614687D935E5703CE323764A\ -016AE97D841F7122BF6BD101343790FB3FF889DF86F770B4825BDA11FDDA93BC1CFD2C0D9CFF\ -907330BFEF4758BDEDC2012B025561A60B659B4E9E4FC458EF33F7D5529A64F10D87ECCDBD26\ -0AF5F3D76E069BE60FCD10274C7B4E199E8A9E85F0D6565939808E51B52684CA76D5F83B515B\ -8C4936ECF342B770E1D910C55347527EE495E6B16423369E781037CACBA212C5A7380789EE16\ -8A90FB2B291B975005F1ABA7DB3B9D950202E168CBC8DFF5FF951E28DC86E6FEF0371911CA1E\ -94CCEE27E42F7EE907273B2E87438D3520D1DE94C70057FA79816E5BAD7A840FFF881BCD3C68\ -0543BCC19E847A3136EB84EE7389E3978E122FF782702D6BFB1C26ADE57570D15DC8408CC132\ -E8D647D8B318FB76E8918D2513AA9E62F64E4EA3DC8D618E9A596F2B6EA8D0C55E2791A71392\ -8A7D6401B533CD86048E3581EA8F60FE8F94F6FD5B577B73BA339AA8C5B4CDD093AB895D6F9A\ -A5575BE5C9FCDC461A1E9DC50F31938779AE8BE160476AD65FC1F7FF9601B07E48CFE676686D\ -D772999737D0264EFDDF546167F4393BFAF26CF29801A4D4CEB04A5A551332DAE0014EAA9E09\ -0260CFCDB547883CD0A622102AD1C1B975353BBFD2F1C98C555BCC4DC26631AEC0E9FD70F609\ -8785748F5E2D3A1963F99355D05599C180FA35920E48CC0594CA3F3B1A05883B28B73EF43FFB\ -BD8A0AB4C4EAAFFE5793B415B957CFB27A46DABEF173B316BFBA466023C7C89EF4A5FDE003B3\ -602E722C9E2E3E624E2B130A024A2B6CAEC46FFF282412BEE4F28CA4ADC6822219D76BA77F91\ -1EF8F9AB52C5066806A1D47EBE40045F1DB3590BF0128A56CC86943670FF83E8D4E120F6E4D0\ -082386EBDF83488DFEE827371C773A2B7A03ECDAC24EB977A16361353DDB164ABBB1908CA2F2\ -BC694E141DACFCB241746786FB24C04D2DA7AC188436201B3556ED2D6874B0AF6227AA072B51\ -BF8699:\ -EB16D2E1DC85C8EC527FDB6BDF228A63 - -[RIPEMD-128] -:CDF26213A150DC3ECB610F18F6B38B46 -61:86BE7AFA339D0FC7CFC785E72F578D33 -616263:C14A12199C66E4BA84636B0F69144C77 -6D65737361676520646967657374:9E327B3D6E523062AFC1132D7DF9D1B8 -6162636465666768696A6B6C6D6E6F707172737475767778797A:\ -FD2AA607F71DC8F510714922B371834E -6162636462636465636465666465666765666768666768696768696A\ -68696A6B696A6B6C6A6B6C6D6B6C6D6E6C6D6E6F6D6E6F706E6F7071:\ -A1AA0689D0FAFA2DDC22E88B49133A06 -4142434445464748494A4B4C4D4E4F505152535455565758595A6162636465\ -666768696A6B6C6D6E6F707172737475767778797A30313233343536373839:\ -D1E959EB179C911FAEA4624C60C5C702 -31323334353637383930313233343536373839303132333435363738393031323334353637\ -38393031323334353637383930313233343536373839303132333435363738393031323334\ -353637383930:3F45EF194732C2DBB2C4A2C769795FA3 - -[RIPEMD-160] -AC:FAF1685349FE8B832BB2FF1CBA482583B3560F3F -E9EC:C4EB5003F5FC64E122194EF6FBA841B30B1E8761 -74524B:D5904A1D8BA51B972BCF6D00681A5F0306C57AC5 -E233E3B4:9CEA3480EF59215C514C4FFF9B813677120AA8AA -445A2F97AD:6AE5414CBE327CDD20FD8887F2F94D7B69222AB7 -A242802B76EC:5DCA1535835D75ADFA1B204C5CDE68C2CA8F1D67 -CBEC35D2FC21E9:C9809CA68C9013F34B7525936DB84B5737C591DA -E8F3385F8B210A7E:497049F4D70E7B42A3F30582C27CC22DA5A51CD7 -61A82B5B622C48F6BE:DF01106CAF345F6E084DC5A46137EAD345D445D9 -4AC97BA5461EAF9228FE:C44507E89C39B4E9965FC9610B6B82985B1A2B57 -0E0B7D71B3CDF458B883B5:39F567E3B8A7AE93BE5AD8E35067D8B2AC81B9CE -43A4A8265FB24F3279D6CDE3:F6342D8150996D93CA43369A69A502F14DDE041F -5CC368C293058FA49906602624:893A6A07EE0A2669BAF707ED3BA2376125EF9654 -0A52FEEB91C5D0355FBB35E93F5D:5162732EF94AFE500679F550CBECF8043B70ADA0 -A3FC5E1467219DB6ADD73F59808955:3DD7B8C0D2278884B5A5C22A3CAA061131A5AD7A -ED45B0BC151B3A739D710AB3AF72A32B:5BA207C3A45289463C98A21E2138C3758D2DDC4A -AF7F01692A1AA195E2A3856DD936285F2B:D744FC79D37AA33E16C60DD7973B7E0D1E790828 -5028D7983E49966980AC8A564CAEDDCCE890:5906BECDAF00A5C700D548EFA92FB23FCD1C8D6F -C17757BF03B8661B4407D06E4E47E8B6C678FB:2B7202910CDBD3CDA240AFFAA5929D6F82FEBC48 -5C4172923580ED789714245E42FDA873F405EE97:\ -053DAFE5970069C38F5575A54C4BBAD3FDC34DBC -74F77522AD9FBC0E45DA88354EE4F5552EAC5F02F7:\ -0B72DF59FCC468CC4BEF4B0A77DA59DD4EA4486B -33A75FB9CDBFBC9A257B122BE7ED337BD65CB1FFE9A8:\ -1B8A94BCEFE1E6CD9000A70AB342FE7930E62220 -8D7042CBDCD336C86E7732A1E633BDCC137380AFC37D25:\ -F18C667A28AA595890E689D6CD19FAE3F9FB7D7C -D9419BA075C613F701E19DE6449E21A22FE4BB58067A5B0C:\ -D656A0F985E186388C2A211AE0EC8EA30B059505 -8E5A281FA95E7E9B42EC0CB0B9A35B54851257AC78494078B4:\ -AEBECEDAFAD9EDFDC204AC1303D14F549EE12CCC -3E01A429466E67653B7B07751F8E497929A0DE5515FBA7D69FD6:\ -1640ABEE310D1860D7944F0B9929D3E4264AD358 -1CF65AB71AD544D423CB904F064A5D227A01761D6A6188296201E1:\ -0181503434C565B41EFF7C432E220BCC290F0A71 -5781599B64981D4657B3C4751DA4D7594BF446E386621EC838C30D84:\ -07D728840AB1449D31CBADCD5466D887EDFD4650 -44C392B435A8CE90062F7BA756D23FD7A3582F23C61DBE8A06BCAA2B62:\ -4ADACCC7626AABF56320040E42174BF284D4333C -053AEE544BD93733C6FAA8AF9B89D1D7C1067832273F23EB6BB5D1D7ABF4:\ -A993D46BFD0705CB8692F6D6B88AE5DCB20CBCCE -7A641E5243317176E497DDD286E47A2A36DEF6451A4A44AEBA12C03CFEFA57:\ -C0CEED6AC5A60323EF0B6D07535AD5264EEF0AFF -3BD0AF34C27EFCA58CE047F265F1CFC8BE60280CBFA57225AFE6B353EC1B1B86:\ -AED53C23187ADCF3C2D85FE77AA3FFA7CACC85AD -5C861109B9A1FDFB6E9B61737461F722E6582C94C9B406DED106DFF2FBACDF5B07:\ -CA900EED8F00A8144C60756317CA7B23FE5797DE -D0416B0BA3B19EE355186AC2A09ACFE91964F229DE3D4119AD5AB4A09CF0FE10DD2A:\ -B2421A5314D8311C18773DECC2798300A36CE63D -F7077210023297CF642C3755338EBD2CA234C22269FFAD31A7BC6B12EBBFFCCEDE293D:\ -797538F704EF4FB5D7E93DDE8B9C742EAB19010F -169ED88895E743A171581730D9CE32B90E557C2AC178F00AD15C13B2639BEA59AB5CF95B:\ -2BA71C7B2BE43AF1825A3BBC7DCCD104A8F8AB74 -747EF1D2FFE2942444429B7B6D46631C7BC8C00A63D44176014E8594D9F2E09451E956B0F7:\ -5EEDCDDCCAB146BA30C9613D5B4825DDF6D0DF57 -546E13EFD694F71819385EE6F9A8022EB57B0E6173AD2042984AACBB6CF506102317DDDA6773:\ -5BCDE7DEE110935114F5422194178110A0C8558E -8D0AD66F63EE8211654EB12362F5CE0F7A0672A3E77A0F3FBB6E6986C13ABD2DEBD6\ -E7F916FC7F:54FD721965D4C6DBEBE9E3D2B5A334957EA3F0BC -6120F98D23DDABF5CA10022CF22A58CC89CD516F6B9AD1901A6C450B89569BD75B6E\ -D43D1AB1ED1F:560FD1CF282E07A4FBBCB495EA33C550CEC1CC1A -7497FEA1D85825B29DBECE7C90F52B1B4760393693B31F56EB366571D49CB6B0EE85\ -4BDE58BAA64FBE:B61AA965CC9A9A1AE9A7CC0087E7417CF942A0A2 -2470B0926239D1A1B94F85204EDDE011000E3D08DB9F59E86A8CF7217C48C5DBE5CD\ -00480FFE00A22B89:81586567893FFA39A8079018F46B9FF14811C590 -56199F4131AF9AEF9BB9F1CEFD8552E75E1B607770A461E6DEBA3664972908DF469B\ -7E065D0DB531608171:6B74A4AB1C06E029004F14DB759C344DBB770B1B -554809F00123973A8308B8D3D5F10EE4E5514DA51F615E1F606957E1FEBC87BA9C36\ -9F6ECF29F99CDD57733F:FBF816D9A81A8605487F6529255DDC43D031065B -4315B59DE93EC8AB4BCD8EFD4FEE3B87CA4194C24211EA0E79055DDB1FBA7511203F\ -D56C0154AE12DB25ABB434:F465D07419A5F3AADE344BA5D64A5133EBA1B873 -7C2D0A5131F7C83789B1CBA64E5E6B3485E3340ADA2135008FBF1862BF711C7A6559\ -2FD4A49C511E29CF910003F5:C9D8494FDDF45D298164D5BDA3DF18AB29434D58 -7597DB5290120386E158890C7BCD70DFFFC100184A8339F98E7EBB17B23B6A88772F\ -4A05F2E0A7B2059DEA991BF154:CE9AB0CF93F471AB913043DF76270514AD281EF7 -B17BA36D07623609ADA5CF2D8F878025F02C3A4F578021BDEC12345A53780C71FF9A\ -D5F280BF8E1039E5643389F478EE:2B42FE8018B985141E4EC9604F2C75D454155EE5 -AB1FD81A1D2128A9767132079C36929BD76336157054FA889AD09B117DD753166CDC\ -9AE51EEA15DDF8D7B3113F8534DF77:22954D720F8259B5F04D288A453DFB54712BE71C -53FF3194FD863938021F2033F2E31F508AF10E8D0B309FC2E3477495141732BDBDA9\ -CBA44F83B5459FCA222A894783741C7B:544E6CACE0C57A4AF18F0913D951191869EF933D -160EA25128E0509398038A0F490BA73C62A03E58997174594FDA1B45924F406DD3BC\ -E56253021B446D27ED16CD7AC0EEFEAA48:6A56C5CB8CB5F4E64EF06FB32D94188884682A2D -F18CE863EFD88F83ECDAA3ACC57786AD1A961B31446436D4E8F86F5999D475EA783B\ -A3473D09C60D0CA6FE3D8BC16D5B5460C296:\ -D85DC07C16A44C4DEFEF238EBFDB7FD14C73A788 -890D6A3EB3EAA9C75FB27D643257A8196387A5A49556CA3E81351B2668E56FE1D0E1\ -5BA1139C59B48F879664F6CB3B80A9BABA6DED:\ -50F41FFF64A49D8753883F71792305A0EB0ECBC3 -370A044BC71750BBCD57491DB54DD6335F426299A3FDD0FBF6C419856CF2FEC70FBB\ -AAF6AD0ADC2B31681BE7437F1DE7D02393034E00:\ -A31C9760489983399EA803BC7945914B7CA59142 -64BF8D78E7E1BA0F32F6D4D4F1AA68B12965A7F942B2B152A47869750DDAB6F1F33C\ -82BA1E75EF76F1B2D9769016CBAC063717FB06184E:\ -E2401F5AA89927A7F51D4D6345B482B135EDBD32 -F434CDF6BE6104121A533FB7F7D4F100FF1F0F6DDAA76297A32BDAE535CF040CB38B\ -E51CDDB96107E1045CF24444BF482D9EA131CD163A53:\ -D95AB29A9F3C2A2DB6374FF7A0DEECEE521BA792 -1B99BEB5458C96D9D402D85CB1ECB797D352AC8C04F3FFACA76A33B365CEEDCE9ADB\ -A53A5BF381ECA73D863DA273FBC47FB3F9A9F6F25829C7:\ -220F85E79731C094C8D457CF97296F89EFE404E6 -034A75357AF6255F0B55856FA240FDCDEBAFADBFBCB500D17E1830A3D074B252AB27\ -77333A9381D63DBD4DB685A72A67E41825B331F0E183DAA9:\ -A0671C3BADC8D07C59F6551017B00211B3C35B9C -9C17DDD3617C5522491DEB7FF1BF56076ACD10EE7C482D606247EBD6D67F8062A3E9\ -ECF29D938E04879C062FFEA08C2F87F3BE840C50294FFA1DE9:\ -47FAD7E0D17A05345E130FDF458071900E90371D -147C4FDD4BB30F38661C0A4C57CFCCF5DE5369B089EDCB74AF24E814AD4BC17A466F\ -BD2501E745AE16D2D0C976D3DCF2F93E2E7088733BC6F4013F28:\ -FCA67427FAC3BFFF73FBC789A4D8FC0058B1729A -719F6946F69E185FBDD545EF118F9527630025ACF9B62DF5C38E69C9855C7B63E905\ -EEFD099E0635D2C40815A01B5EA79585DA3E4F1A2EC97C46DD1F00:\ -7EEF5539213A672C7599B489B0F80B954B0E9D1D -997C62CF0780FDD3164780D38BA784905E4A87BF1DA252E13F6C320040193E5CAD1E\ -AB40A6DB7291DF54952C1DBE3B76541856D2B71591D0794435243372:\ -7E882963AFD9163AC13F7E4C1A7DCA9FC4C6CCF7 -D93D8E8987E0D01BDAA37B1AFC53A07C5A7F46273D1F77A472D83D0F9D9B241599AF\ -C51846C16E33D1C1E2E532BED264C49B2A9919F324834B097509933798:\ -FD21687491F7F8D2A8EDD82DB8F08137D6C1499F -CC54B091B967D610BE6D6D889F909F843419091CDAE2C4447B8C830045B12760964A\ -D8D05EB0285A428BACA3E7B7398A37F7982238288732710EC97B5E32122A:\ -BB391A32D4F84199A444F6E9476B908209044624 -61B9077FD4A0E2E73060B4B26E86FC7A8131E0E305A5D874BBCD28BEDFA46FA84DD8\ -9431FEF6E16E4B5B3781956DFDFF1C1843DB12329F6C1C365F9A91B3A1F15B:\ -E3D6E5F7196B310A56089E76220A59D523DDA37A -9CAFFBB1325C6579B094C4EE8F5B1EB9CCDC5EE861FFA090E055FF2CE6323295AFCA\ -2DE193F15E5FE64AB7AC655B9E99145CE1786F266BFAC834A0FF367FD174540C:\ -954D88771139F64710E8F31A0B990E8A1E569A74 -BC15671078B9AD440EB3C16FE28A33216DB848F19A289A6C805655053311A2299F9C\ -7D091D3AA130E0DF2E318E75402D54528A9C67FB4B14D754D4DC41E1C06787669E:\ -69F3A729309B288EE077582807DBEEC2ED5D4360 - -:9C1185A5C5E9FC54612808977EE8F548B2258D31 -61:0BDC9D2D256B3EE9DAAE347BE6F4DC835A467FFE -616263:8EB208F7E05D987A9B044A8E98C6B087F15A0BFC -6D65737361676520646967657374:5D0689EF49D2FAE572B881B123A85FFA21595F36 -6162636465666768696A6B6C6D6E6F707172737475767778797A:\ -F71C27109C692C1B56BBDCEB5B9D2865B3708DBC -6162636462636465636465666465666765666768666768696768696A\ -68696A6B696A6B6C6A6B6C6D6B6C6D6E6C6D6E6F6D6E6F706E6F7071:\ -12A053384A9C0C88E405A06C27DCF49ADA62EB2B -4142434445464748494A4B4C4D4E4F505152535455565758595A6162636465\ -666768696A6B6C6D6E6F707172737475767778797A30313233343536373839:\ -B0E20B6E3116640286ED3A87A5713079B21F5189 -31323334353637383930313233343536373839303132333435363738393031323334353637\ -38393031323334353637383930313233343536373839303132333435363738393031323334\ -353637383930:9B752E45573D4B39F4DBD3323CAB82BF63326BFB - -35B8A2F1B5F332F159AFB86212DCC4DE02B3FBA3794B0E5FE74A4ED9F1A55F55AE7711C6FEE3\ -178A410E3979D8B07594D769AD733EA00D64DCC1D601B871F918F1FDD914C2B6F9EC49B8AC13\ -A62A07E1091E0DD024E645BF3B602B4706583060CF9502E4EA6911AC9EB90E13816530B7683B\ -ABAAE225781440C35E8031515C45D5E4F5493FAED6B0457DD661B713895FB9D22646ECAD7C07\ -187B65AA508FE4F5B15A5C428264910143581512DCFBDA974902037D82451E4B1E12AD3364C8\ -F848E2B2A7D53D25F30C06AA6C62784DE8B8B6D097559C62D340C8103D51E0C303B1781F5A95\ -AA6AD1B7EFE3DB9E8D8BE9D1271AFC4DA9B0928642818965C922DDBB0B0A53E6D2ECE3672E95\ -68D0E285177BC5E5A9C2349788F8987267AD5ED26092A552AD3674344DE7FD79B9E33B855DA4\ -7F8CA0A70EE806945A6417C92C97CDC14C6BD9B7B25A2D89FEB62C594FD11A7CF3BEA1EF3018\ -B26B0E401EA8C7B8F07DAC07B77ACB78C3F45A73BA9FC32301EB3A19DFF000F3413AE0E92548\ -1D8F93D387CD458D749BA848BD4A92B9B7AEB0E244E479ABC4A85F50E94C7299E06BF0DAA158\ -7F49907CD94C426C33ACFC31E08D183A4353A36D8C6D39AAA1AF20519629C01A45BDCD60B115\ -CD490E9873D74FBEA994B75BB7FEE9F2167850AFAF42873D44543E3D6359A0A0A140705D4021\ -DE256AB12C38184BF822B9B69D7FB059C32EE332D86AB9DF26D1CF832381555CAD1688A362BD\ -B1F2982A55AAA37E5137B95B5961E8F354EA30ECB13B98DC697605556DF4C4EEDE6593016B7B\ -C30862C55C6651DA8A3589DD3E9EE42495374BA7E6C6BDEFF8CC078559DCD99581061348B13F\ -AE03259832EAD8BB84FAB48EBF725C6C5037539FC373791F21D34B56DE04A6CBC591B798B7CA\ -E2AD8BD5BF9E963559C981286F26802FD1A49A5A906AB814B34FB514A8ED0FEC7B67A550A59F\ -BEDA7B0685E69ADD13B68A69E070CF2C9E8D6CF4CAEE4ABA732BA20A8BA6C3DB8BFFD392CC2D\ -14D46367D451F0A3B77A411B128224AA473247C4A9A446606CEA8414E9C09DE13301C8E60B2E\ -E51E9801E1CFFC6E9EF283238E2AD209E5D48105D48044BFD28BD9F32C53D5D37CCB158FE597\ -983CBB45A05F1B9148F25772ECF3667554247CDB2A95A99E06275C36C6E4FD779DC9F8FA4575\ -16EA4CD020F6726E3A32DF65E34BD85DDFE16B285A0AFB0F3E2DD8954A9E636BCA5CF7FED181\ -B041D14D223F10AD0DE9E23372DD7A61718CAB6B9CC7C1D88D98697356811AC0B834228A299F\ -6EEF970E11D59E9FD307DACD40256AD7BEB203175CCABF70D9137BC29E2C7B0494C3FA6D338B\ -027BB993E870B02EC68A08EC8A24BD163D5AB43411AB7BCF1A09F64A7EAFE15A0C350F5D6F0E\ -68C1A83FECE5227112F8E6F8EF11149B3188970A279C9559BF11E7A4EF9F72C9C1E9B58EE48F\ -F880AA:\ -B48C57CAA63FFCC261E4B3532E75CBA497B4FB6C - -[SHA-1] -:DA39A3EE5E6B4B0D3255BFEF95601890AFD80709 -A9:19DA91F2603889267DFD77786E07A5B8F067D62A -97E8:D617ED3AB073B4E7A53D2A238D7DC55F26EE3888 -D45C48:8E7E3C02A55608B637C8AD621E6AA933821C40BD -AC42E6AA:FCB240AA79C665358ED174887E186220F0DA2608 -B520B2C214:0374FD36056476A85427EA2F7B1412D65A17D64B -9E2D7971A47F:DA4106AAD290AE4430618FBD3C5D1FC6C66ADAD9 -F1EA1C9B787BAD:B234020692659C3DEE19F7E75390984DD7E7EBBB -22BB11D0A3DA8661:A307CDBBEC5297114EC00193E056C0E30B15B499 -C70BCC3952C8330A17:57AFFC668D529B05EF9FDCE03448AE6B4848522B -24B2BFC2E6D47E0467B3:393C606D9C41D743BD234EB62D36A381151FA8FA -179BA867948A881232F2DF:F01A9954C602AD6A295512AB1FF58AC0AFA3CD1D -0DF890F7B14B4A8D16B76AFE:5CEF1B50663EED91BBFBDA9EB7F34757AC5AB330 -B0DBE17E0D80568C0AEC5E39F0:22AA3BC193DC2986C10CEF2E5AA4C673883D32D4 -AFFF20DF4873A1AD68AA924DD5C3:21337165D43D02685C5FEC0CC1C73C44DD99A072 -BCA74FF24F139C9952074F9D16F6CF:9F48417F472141A2CD49CB3CBB4D3544EA76F949 -9779CC9003344147C0A718C6EF20987C:C7255A698F731CA134BA102982345CF0A305AAF0 -06CFC48642CADA4A5E1A4BE7D42AAEBCB6:044581EF47C9F2DE49F71B284B7D80631775A6E7 -8A68E58F72C5DE3A63FAA08DED9C89435372:E485D9B0FCED9EE033A4B4759D211023638BFAFD -9AE8D4749CAB071975A18F45A49FA950B13A38:5BD5DECCAAC74D57D7CE628ECFB973409B364982 -F1413BFE7319315A7A7FE2D32F6E564C9186CD8D:\ -633002546668978822CA81A44E0CA113EC95C088 -58E747CCFD7781CA99755B24BA4EE7C13B59095796:\ -BBAB138D0A3369D67C9ABD0A1E0583EA6DD2B402 -90D6D80BADF7D52A7513892976D6C5BB28D8562E7748:\ -8F9D0D4F0E8F208BE8CEAD973776C9441C9202CB -E033E25A7D550BEEBA3965753D86D4AB982EBF0621FA8A:\ -0B2EB3B57ED697BCA7D73E18A479FAD38EF99ADE -0EABDACFCD5484F3B4C3D52D38E3E80CEE792B0CF600E2B6:\ -1F04BBA35687BA07375BFCC645E2DF26BAAC2294 -C6A3FABC7ECE7AE5592A107C437F80B1EA24488337F1AE6BA7:\ -A5E8F975C621FE415E49BFACC94C189E644261BF -DD5CBDA778F532D63FFDFD67D0A5F4B0262B4C505B4BA0F25882:\ -CF03D0BA50F9E569103B85BDF43B949E907EF0C3 -389CFE2CDC0B55DF41C1C704FE9D58585B9E5757FD71415F73F073:\ -00B0AEF6D2BD6213175DDB6B4E7968039F70AF49 -45B1C7013FCF2AA9928B166F9666D3E76B61DF676DBBA7420A159BFF:\ -AB5CE29466A6BFB2DFD93DBDBAD389A0B7F97C1D -1F1F4B688D24B30C8146D576156A7FC3149C66682B28C97EA157950B67:\ -18A9AF9587796E9E8493D20D8AE6F2EC82103352 -0F84EEC636A3381757004310399D3B3F12F97605B701A9038EC04B1CFC81:\ -AD05B1D89788743F97344D1C3AE3BA9499353371 -AEFB942B4B7A9BDFC9A97C447F7065E21A917F5393EF14150C5569CFC28DE8:\ -939EB0F17269FFA80738F66B3B45011A04A679A8 -8BCCF096CFB773326D7487A06D217A2471E709DC4C60614FB5A7E481381982DF:\ -3B69259D2E5E00F4208E8D2CC84D798A33CC1514 -232F3F1AFE834DD615BAC06A2510D1852E946F34B9E2085F7A36FD8844511F461F:\ -DFA0A9DB29A68171E01A6C7399B90F974A13F940 -704452E58745BD09D159F6AD40FA9B8C7419A2AA188D8B3AFFB00AC34EB2E304A0FF:\ -A099BC7BBED72769786FD913F61F655684031F93 -A62B2098C1D208024EA91470C903F8426E5D8F660C1DA268D0958E4BC11D2CD98F3835:\ -D2DEEC7774B67D924D131224BF6C908597F99178 -BF7E4F3FD269AC9CEEF6A08DBB5CB5BCAB5AF7080B8D675A7332F741EB9E17963E9BE157:\ -EEE037F1DA86921B491CBBF048B9BD872418DA9A -FF94FEF100BD0056A37830E6B1DBCE8B832EBF819867932D46BD7495BCC5CE2E9DAF08F1CA:\ -97517C81813BCAA6BEC71CDE13DB4FA44CF4BCD2 -88EDF78F02C8E36CF0CDA3D07A9B1485CFA8AE44884E290461A22D599A7F30E3A88E52F019B0:\ -44FB2EC4643E984CDEAB550BA1383CD6E7847CF6 -7FE04629976A8EC967733E95F2BFB79DA1A126DC5CEF391291320A57DA487D49EE7C\ -4247F8A932:782C391A16A08F98C32C780D7A1F2570A7675FA6 -97807FE1CA7BBFD000A057A70A6F6F026ADD4EC3D50AEC664A2BF970C0D0D36001DB\ -B7231640ED9D:C06024CD60C3859D653B5ED18AE949ED7C43C05A -98184A0CE7EEB9C8DFE36D6A19FD668A3B6F0C9A493835D63A70A4340AB6F8A7ABEF\ -0E5E09E4807334:7B7EA4D0E3AA0581B1DA3838ACC370E9394CDDF8 -33347AC8506D2C2F74C458B2AA0BE72CE38C752A4623A62DB758A9A6827287B364CF\ -D4C077F0D1DB9034:A1FF355DE693851B9A62D77CDC709826B27D6B3A -7DB60CBEE84BDD9B357951A59C724A757B90D77D85D61F5B90FCD93D101DF697F490\ -4EA0F2FA1CA7BD7440:2409204F9658D8BB4C8BFD10420BD576FD7401FB -AB8AEFD1533F3F07DA8BCAFB5C0C12E6BA7364A7EA2525796924B075242C22FA0028\ -F97B670DE6ADF935F082:B3837EB32A441C2C10E112677FF1569D2C6372F3 -890225FA3A7D120C325EEA0A0CF4050833C62C527B6A009CFFCA8DC2094135051B1B\ -C8ED9F9ED37B5DE16B4052:5AB7E0AC97C202630A54BB3BEA5F485BAE9257C0 -5D6F1CC0ECF25EAB98398A20D8278F84DE663FA9252361F01AA3F9A0D4FEA71CC86B\ -C63318A5E3019A6FD96851C2:2E3E5F3488A5D2C8C02A3B7E566844F35C0EC2D7 -0ED8D77EDA25AB5B9AF72F39A49B688B595D79363C563FE8F0265DE2FE0E490B4A2E\ -C86DC789CD0B05716993500C19:F4FC59ABA3C8D6F57DBA4F865DD24666251AA2E3 -89837C88BE7FE04FF3364AB6D455ACA1860D5C11FFBB56E16F817857CE0E3EB8106D\ -9FAC60FF571B181C86A830EDF292:31FB958B1D0935E46891EB09F8BFB99CA6809C5D -D5E0D6AE8AB7A630EF2206D5160338C7AACC6A5CED2E8A3AA224626F1BD16DE547FB\ -822CD1FB0EA84C1259A427BD1AFCA8:69124A48D475B5110EE562C59131DA40707F897C -A9CB3047ACAAF1A2AE06231A4DB46E28EB76694EA03A5FF78FD3C36797CB74259621\ -324F2897D80CC8C070454E55C341A3C8:53F6A0A6DD49C2D58413FE55A3CBF334D559A03F -338ECBF06225FBA761755EF7F9147A1AB2AA696BDF2516584EBB948192C6BD240902\ -451FD5E6ABC48B017A71BC608C87DE1623:CD0AF641834C8DEC7CB735BA31CB674AF90EC3EE -552150498BEC425BD0DBA052C9DD61714CDC22B1DA7F915FA7286C8CBB7D722342E6\ -91C877B748DBC369D4333F287587206EBC2A:\ -9B658AC6B9BA14176CD55F3AD40EF51722F25FE7 -6467642AE2A5C9D1A98BEAC2567A7097F00624AC9FBC1A7751487417EC33BDBE7E15\ -97E0205A7F85B10A06B7F8CBAF33E41B3FAE28:\ -48514214D5442EA393C2F29A0B632FC2C76B3221 -80C293CA96261C78EE05F7D666AA2D4C84D30A8B66EFDB0E34B0625E7CD2F691CD4A\ -92D07D66E22E837853F7DBD5D34BE1AE02501083:\ -E2E5864D1B24C5E8C1A2F8E54F80C942207DB2AB -6FECF376F676C90422AD0A6440EE8EF2CE1F4A4F5AF46868F77013F8A582D465F09F\ -18ACB8F1052E603E4634AD345A63495C80ADD64940:\ -22C6DA67A1B13AB8D11DBA2989E88258CA12CA2E -B6CFFE9D40FBA3830F2C20248690AB0862FBD8B1A5EBF832965F2AD7E8BF3C74A930\ -62C79F9CD16DE48043A69BFEA723035A2C81FF118184:\ -A517711BFA20D7324C710DBF3C5A955EF465926F -47C63FF1E5AF57CDFC0307BCF453F528E5767CAE52117854E9036F20286D1C1BCA27\ -70645B4794BD5047EB59F0EA5F751243AD8EB5FA3F69F7:\ -533815F09B700B11A674EE0647F8E320F79A5ABD -995C78E561CE4F9D9B9226C01DA4C55B5C4A1D5099027B1123AEE851AECA3B70CF54\ -BC7A74A4185D3781EAC76CD63718645A8F15CAD1911F529F:\ -62E81989C86A4AEE3A9DE5114AB72821AB7B1150 -F713F0C9CDF3A28629861AE19C38B73664352AC6939C976AF92A673857AE48DCEC04\ -E8967EC5AD8245CE062D8AD5FE5E92F39F5DCAAC9884F8B5CD:\ -79221ACEB0F387413AF24481A55633E54DE4232A -DEF310EF52F8839F15BA13C8A5B90815867AFDEF25247FA10B6AD03E70952F5AD0B9\ -836012F119315C43C90DD6B5D018B3C75BB01659535588A4C17E:\ -136C5C9F49B4C0C41E87762878846279E167D8C5 -4FD13DB66F140B6DC804F9EB821FB82800976070D59EE4C035527EEECEC97E1EE5C9\ -973F1A25362A84BEC6EAA38A47078CBA24C6B7155CF76E30C22199:\ -988A4CE4FDEE20041D30AAED622BF1CA4E01C5AC -57BD9E7BF1647FEAC33DA17BA902FEA19F7FD09E85CE23BA02EEC263A321580423DC\ -0872A9F794838EFB820A8D3D3D2AE81574F77825B70C569568A31EAF:\ -BD95E63B9EA0ACF05710DDFD13B77D518BE21CB5 -A222082AADDCA13A7CBDF9A9AD12BA723456BFD8B515A6A52F8F861226CF94D5C3AB\ -0B2A151A3B557DA8DA72585EFDF60FCA469AB30EAB12B51571E906557C:\ -03AB52978F19B3FA870D84814002A305AC58AC10 -89AA2C4D4F81CECE57B0485842B0AF8B857E7609CC0F29F0343A5B8A09181A63C8F8\ -4251C497136D1916DC5634DA842793C1B648A381B2534DA78E78E7898BE6:\ -BCC5DCB8FF9EECF6B282FDDFC8635B1923C2BAFA -94CF076400B9C2911C2C2C1BBCBF30E50157EA88CEB3B4966E61A18BA2C58ECA65BA\ -C7952E5A629E0DF53F4B8A9B031765A639C87A4941E42CAF4A5572AC05B085:\ -EFD01DA5BC765BA961954C2D7E5FF2104B1FA58F -B8847AA6FE095FA629D090307AA2D686C7D628B12D63BCFD8E4F6BE8CCE039E8CB69\ -683B8B70DE74DCBA93A019D0B459D707C4F2BE8EEC9B0280F6ED26D99BD454FF:\ -32CE1A1F18A2FEB9CF0189E37D8894E7CEB70CDA -676DD8B7DDF731349BF6238C855E8136AD59E734B20ABB500018925966EA4E076336\ -90AFA11E57550766745BD3401459373A418A360D4C4B9275714679517C73F60FAE:\ -81D2AC8F3A2C92E190ED1AAA0F7EEF24579E697A - -616263:A9993E364706816ABA3E25717850C26C9CD0D89D -6162636462636465636465666465666765666768666768696768696A\ -68696A6B696A6B6C6A6B6C6D6B6C6D6E6C6D6E6F6D6E6F706E6F7071:\ -84983E441C3BD26EBAAE4AA1F95129E5E54670F1 -3AC0944F60DD6E0988CFD28AE2103952C6070DC0A97EF7AAD20B5F9CB8FBE054368BF91C6791\ -CE900B487B309615F29F1A045D210D226D2A018ADA22D27C:\ -968569B83FB232766A9967C9FF6E9B162BF49DC7 -E5EF4476F1A0C19631E317518F0E64A8AFFF579A264FB3B00B55C108F76F667919731882DE49\ -05BA0493AA17E1F39115D136F9A037C704F5D329CDC36CA728:\ -170A3BF2284128B2A02097800B6A3FFEE825BFE5 -AF500080F6905D82050886CB27371AD9BDCDE1D3858E66395CBD034D8A69198AD33A762534CF\ -9C7F39B22DE123AD03ED25BEC4E73FE05A1CC506B8D06D32B0F3:\ -B79E4B7FD2A3DBCF5E9BF50D91BF651FF713DC65 -0AEE08E2D291A3D500160C74FD6A8F4C64531FCB51297E503BC4ACBA07ED629AC3CE70D1EBE5\ -B4730DDF29DED06B9E9CF8EA963718CE4BE9373C35BC1188A5F054:\ -5CD361EC04BF2F526803FEEB81E729AF5807EDAD -08D2CA90EB94205F40277F2D47DE7F52025B31B57F62DBD443BA005D6301FEE4F4DC57181C72\ -69F1FBA4210E26358C48887C09C4317CD890315BBD563C948173F6F1:\ -F788C706B2B67D4D698C2DCF99E45B1A8541D3DE - -F0B38F0505089A926595ECA3080BFFEE28929EF769577D91A8E5E2867B01EA4C58A4CE62101E\ -D2DA38D608C266346DFB5FC14800D618E958A8572B35B23393A11613C85CD443D2B4DE78D5A4\ -D641E70A23467D7CB4BBBE362AFF2AB35D1A075CA33EB619DDBC9AFC65586F077A3ADAE4B115\ -0E0FE9274280FB011F0420155E5848920D9E25D1BE66DCC670D4395FE2847848E04645C13B33\ -4E4BCB588E069510BA6D014115579706670D2D93E3080466CE6BBD07CDDB9670ACF68E4E36FA\ -17E03EC3F88910FBCE247128486B0475775AA5642812B44F444A14DC547E7D5D98527302261A\ -13FEB8BDB4A7A0FB221E1D08388B4353AE2DC7E3464969DCF12B17ED0A5E549B8FF8A8956FE5\ -FB69C1AB428BBA8CAE7E267F52CAFFFD2DCAE8F9B5D448AF548C7BE88443649254089A281A1B\ -7537896D7D4C97399F0513E3976981843E20C15EDF14378DC4425CAC30ABF7CB034B6D4AE213\ -360CCDD1C956ACC0D437C177C983EAEB9FB5F3A5DEB19CE3319C9368C2A7AF4B077A6B1BD417\ -F17E2CA36BBDA826718515FDEBBBEB5268801073457F8AC83ABD1EED888BBF218DCC4554F67E\ -FCE107A216B0540116691DAE98F34FB218969728E3165425C7EF1BB033329DDE4CD98A731772\ -7F4E6E24AFBDF39F79D71CF3C6B93E75E007500874BDD94F7484C15EC5F5A509FA4AB14828B2\ -895B0280C554600DC9834D23F824E1EC4662CC62CECDA8B9F9F31A6B4D589E5F95401644800F\ -FD2132F60CB45A91940CD420ADAA5DB3577F41E099EB79708F7A0C61D37923B503DE8810C55F\ -80AF43B4D87060070BBA4A948A41DE58E7A7DBDA9020D77F290A62F1DE6E47521C495B6EFCA4\ -0FC97FED9DE7389836F82BA05FEE66975121C38A6C7926EAED407E37CAB7E7005A891A93D88F\ -68DDE4DE9FEAE55D6FE86FF34CAF9CCD7263085C2CFA67A77FD28659FACC7AFB9734159D35C6\ -C96A755FCACB2048ACB7756696F4E481328A5A93A9D0BF8AFE0C31A98E1E6A4BED0C6CA661EB\ -7218F9C5792334121604587A86423B652FBFA1638C96CA1715164C7D074117ADB267923F06AC\ -AE45B493438BFAF384CDF7697AB0E0B75C6D21C6FF1139752143FF84F4652BAC47D44689E7A7\ -3A87E4491C0D9B8DC60D546E4350BC66BCF814ED004F202AAA9CE6E4638ADEA6B485CCAD2D55\ -FF7A597DE0662C746AEB34B36C7D46FD47A67DB75363D314B40672A6289B60F1D444090B606F\ -73A9CFE3BA46BBD3D5E629AD508D6F6592DA126E9400377D7DA41295DFA37E5654FA841A5616\ -E528C65952846DB40FDF29DB7317B8FEEE5B0F670EA0198520E58FABEBFB68BAD63709C5941B\ -A9F8DBB064EDC425B263DF4573EB6E3CADD080D9EF7BCCA048F60E163448DD6531B6B9F8CDB6\ -6CA368FE6AD9B651C51284E51253A3B64FFEE4806A0A88840BD61CA888345648D7743A060A36\ -105C88:\ -8395ABC1B17BA7BF947145EB1DF1A2050C8E78C3 - -426F74616E20312E372E32332D707265203F3F3F3F2D3F3F2D3F3F0A68747470\ -3A2F2F626F74616E2E72616E646F6D6269742E6E65742F0A0A54686973207265\ -6C65617365206F6620426F74616E20697320746865207365636F6E642072656C\ -656173652063616E64696461746520666F722074686520312E382E300A72656C\ -656173652E2049742073686F756C6420626520737461626C652C2074686F7567\ -6820736F6D6520415049732068617665206368616E6765640A696E636F6D7061\ -7469626C792073696E63652074686520312E362072656C656173652E0A0A596F\ -752063616E2066696C65206275677320617420687474703A2F2F7777772E7261\ -6E646F6D6269742E6E65742F6275677A696C6C61206F722062792073656E6469\ -6E670A6D61696C20746F2074686520626F74616E2D646576656C206D61696C69\ -6E67206C6973742E0A0A466F72206D6F726520696E666F726D6174696F6E2C20\ -73656520696E666F2E7478742C20746865206275696C6420696E737472756374\ -696F6E732C20746865204150490A7265666572656E6365206D616E75616C2C20\ -616E6420746865207475746F7269616C2C20616C6C206F662077686963682063\ -616E20626520666F756E6420696E207468650A646F632F206469726563746F72\ -792E0A:\ -D233D919F2B5358520B725F427C4F35B5D866FBF - -436F707972696768742028432920313939392D32303038204A61636B204C6C6F\ -79640A202020202020202020202020202032303031205065746572204A204A6F\ -6E65730A2020202020202020202020202020323030342D32303037204A757374\ -696E204B61726E656765730A202020202020202020202020202032303035204D\ -6174746865772047726567616E0A202020202020202020202020202032303035\ -2D32303036204D617474204A6F686E73746F6E0A202020202020202020202020\ -202032303036204C75636120506963636172726574610A202020202020202020\ -2020202020323030372059766573204A65727363686F770A2020202020202020\ -202020202020323030372D3230303820466C657853656375726520476D62480A\ -2020202020202020202020202020323030372D3230303820546563686E697363\ -686520556E697665727369746174204461726D73746164740A20202020202020\ -20202020202020323030372D323030382046616C6B6F20537472656E7A6B650A\ -2020202020202020202020202020323030372D32303038204D617274696E2044\ -6F6572696E670A202020202020202020202020202032303037204D616E75656C\ -20486172746C0A20202020202020202020202020203230303720436872697374\ -6F7068204C75647769670A202020202020202020202020202032303037205061\ -747269636B20536F6E610A0A5265646973747269627574696F6E20616E642075\ -736520696E20736F7572636520616E642062696E61727920666F726D732C2066\ -6F7220616E79207573652C20776974680A6F7220776974686F7574206D6F6469\ -6669636174696F6E2C206F6620426F74616E2028687474703A2F2F626F74616E\ -2E72616E646F6D6269742E6E65742F292069730A7065726D6974746564207072\ -6F766964656420746861742074686520666F6C6C6F77696E6720636F6E646974\ -696F6E7320617265206D65743A0A0A312E205265646973747269627574696F6E\ -73206F6620736F7572636520636F6465206D7573742072657461696E20746865\ -2061626F766520636F707972696768740A6E6F746963652C2074686973206C69\ -7374206F6620636F6E646974696F6E732C20616E642074686520666F6C6C6F77\ -696E6720646973636C61696D65722E0A0A322E20526564697374726962757469\ -6F6E7320696E2062696E61727920666F726D206D75737420726570726F647563\ -65207468652061626F766520636F707972696768740A6E6F746963652C207468\ -6973206C697374206F6620636F6E646974696F6E732C20616E64207468652066\ -6F6C6C6F77696E6720646973636C61696D657220696E207468650A646F63756D\ -656E746174696F6E20616E642F6F72206F74686572206D6174657269616C7320\ -70726F766964656420776974682074686520646973747269627574696F6E2E0A\ -0A5448495320534F4654574152452049532050524F5649444544204259205448\ -4520415554484F52285329202241532049532220414E4420414E592045585052\ -455353204F520A494D504C4945442057415252414E544945532C20494E434C55\ -44494E472C20425554204E4F54204C494D4954454420544F2C2054484520494D\ -504C4945440A57415252414E54494553204F46204D45524348414E544142494C\ -49545920414E44204649544E45535320464F52204120504152544943554C4152\ -20505552504F53452C0A41524520444953434C41494D45442E0A0A494E204E4F\ -204556454E54205348414C4C2054484520415554484F52285329204F5220434F\ -4E5452494255544F52285329204245204C4941424C4520464F5220414E590A44\ -49524543542C20494E4449524543542C20494E434944454E54414C2C20535045\ -4349414C2C204558454D504C4152592C204F5220434F4E53455155454E544941\ -4C0A44414D414745532028494E434C5544494E472C20425554204E4F54204C49\ -4D4954454420544F2C2050524F435552454D454E54204F462053554253544954\ -5554450A474F4F4453204F522053455256494345533B204C4F5353204F462055\ -53452C20444154412C204F522050524F464954533B204F5220425553494E4553\ -530A494E54455252555054494F4E2920484F5745564552204341555345442041\ -4E44204F4E20414E59205448454F5259204F46204C494142494C4954592C2057\ -4845544845520A494E20434F4E54524143542C20535452494354204C49414249\ -4C4954592C204F5220544F52542028494E434C5544494E47204E45474C494745\ -4E4345204F520A4F5448455257495345292041524953494E4720494E20414E59\ -20574159204F5554204F462054484520555345204F46205448495320534F4654\ -574152452C204556454E2049460A41445649534544204F462054484520504F53\ -534942494C495459204F4620535543482044414D4147452E0A:\ -6ECC9C5DA3C61107935336EC58F3655DB0C210A7 - -2020546869732069732074686520637265646974732066696C65206F66207065\ -6F706C652074686174206861766520636F6E747269627574656420746F20426F\ -74616E2E20497420757365730A20207468652073616D6520666F726D61742061\ -7320746865204C696E757820637265646974732066696C652E20506C65617365\ -206B65657020697420736F72746564206279206C6173740A20206E616D652E0A\ -0A2020546865206669656C6473206172653A0A20202020204E202D206E616D65\ -0A202020202045202D20656D61696C0A202020202057202D207765622055524C\ -0A202020202050202D205047502066696E6765727072696E740A202020202044\ -202D206465736372697074696F6E0A202020202053202D206D65617473706163\ -65206C6F636174696F6E0A2D2D2D2D2D2D2D2D2D2D0A0A4E3A204D617274696E\ -20446F6572696E670A453A20646F6572696E67406364632E696E666F726D6174\ -696B2E74752D6461726D73746164742E64650A443A2047462870292061726974\ -686D657469630A0A4E3A204D6174746865772047726567616E0A443A2042696E\ -6172792066696C6520492F4F20737570706F72742C20616C6C6F6361746F7220\ -66697865730A0A4E3A2048616E79204772656973730A443A2057696E646F7773\ -20706F7274696E670A0A4E3A204D616E75656C20486172746C0A453A20686172\ -746C40666C65787365637572652E64650A573A20687474703A2F2F7777772E66\ -6C65787365637572652E64652F0A443A2045434453412C2045434B4145470A0A\ -4E3A2059766573204A65727363686F770A453A20797665732E6A65727363686F\ -7740756E692D6475657373656C646F72662E64650A443A204F7074696D697A61\ -74696F6E7320666F72206D656D6F7279206C6F61642F73746F726520616E6420\ -484D41430A443A20537570706F727420666F7220495076342061646472657373\ -657320696E20582E35303920616C7465726E6174697665206E616D65730A533A\ -204765726D616E790A0A4E3A204D617474204A6F686E73746F6E0A443A20416C\ -6C6F6361746F7220666978657320616E64206F7074696D697A6174696F6E732C\ -206465636F6D70726573736F722066697865730A0A4E3A205065746572204A2E\ -204A6F6E65730A453A20706A6F6E657340706D6164652E6F72670A443A20427A\ -69703220636F6D7072657373696F6E206D6F64756C650A533A20436F6C6F7261\ -646F2C205553410A0A4E3A204A757374696E204B61726E656765730A443A2051\ -7420737570706F7274206D6F64756C657320286D75746578657320616E642074\ -79706573292C20582E353039204150492064657369676E0A0A4E3A204A61636B\ -204C6C6F79640A453A206C6C6F79644072616E646F6D6269742E6E65740A573A\ -20687474703A2F2F7777772E72616E646F6D6269742E6E65742F0A503A203346\ -3639203245363420364439322033424245204537414520203932353820354330\ -462039364538203445433120364436420A443A204F726967696E616C20646573\ -69676E65722F617574686F722C206D61696E7461696E657220323030312D6375\ -7272656E740A533A204E657720596F726B204E592C205553410A0A4E3A204A6F\ -656C204C6F770A443A20444C4C2073796D626F6C207669736962696C6974790A\ -0A4E3A204368726973746F7068204C75647769670A453A206C75647769674066\ -682D776F726D732E64650A443A2047502870292061726974686D657469630A0A\ -4E3A205661636C6176204F7673696B0A453A207661636C61762E6F7673696B40\ -692E637A0A443A205065726C205853206D6F64756C650A0A4E3A204C75636120\ -506963636172726574610A453A206C7563612E7069636361727265746140676D\ -61696C2E636F6D0A443A207838362F616D64363420617373656D626C65722C20\ -426967496E74206F7074696D697A6174696F6E732C2057696E3332206D757465\ -78206D6F64756C650A533A204974616C790A0A4E3A2046616C6B6F2053747265\ -6E7A6B650A453A20737472656E7A6B6540666C65787365637572652E64650A57\ -3A20687474703A2F2F7777772E666C65787365637572652E64652F0A443A2047\ -462870292061726974686D657469632C204356432C205368616E6B732D546F6E\ -656C6C6920616C676F726974686D0A533A204461726D73746164742C20476572\ -6D616E790A:\ -7B01AE4E25243CE9B4735729CEBB285C1853473C - -[SHA-224] -:D14A028C2A3A2BC9476102BB288234C415A2B01F828EA62AC5B3E42F - -61:ABD37534C7D9A2EFB9465DE931CD7055FFDB8879563AE98078D6D6D5 - -[SHA-256] -:E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855 - -61:CA978112CA1BBDCAFAC231B39A23DC4DA786EFF8147C4E72B9807785AFEE48BB - -616263:BA7816BF8F01CFEA414140DE5DAE2223B00361A396177A9CB410FF61F20015AD - -6D65737361676520646967657374:\ -F7846F55CF23E14EEBEAB5B4E1550CAD5B509E3348FBC4EFA3A1413D393CB650 - -6162636462636465636465666465666765666768666768696768696A\ -68696A6B696A6B6C6A6B6C6D6B6C6D6E6C6D6E6F6D6E6F706E6F7071:\ -248D6A61D20638B8E5C026930C3E6039A33CE45964FF2167F6ECEDD419DB06C1 - -3132333435363738393031323334353637383930313233343536373839303132\ -3334353637383930313233343536373839303132333435363738393031323334\ -35363738393031323334353637383930:\ -F371BC4A311F2B009EEF952DD83CA80E2B60026C8E935592D0F9C308453C813E - - -8000000000000000000000000000000000000000000000000000000000000000:\ -84B3F13B0A4FBCCE4C3F811E0313E00DCBD27431C229EFF576598BE8D1AFB848 -4000000000000000000000000000000000000000000000000000000000000000:\ -94CE3F7973AAED52C6C446BCC59BD8D43B6695FA3FDB9E3D1CC47503A432D3D8 -2000000000000000000000000000000000000000000000000000000000000000:\ -6D0855A335802F0BC20946F3C48C05B6B98C14B578020D5F42A166B97FE6F59F -1000000000000000000000000000000000000000000000000000000000000000:\ -56FD25956F759E64E853071FF01587C364EAF6286C97DA600E0BE78C701637DB -0800000000000000000000000000000000000000000000000000000000000000:\ -067DC6A810183E9069F63C2020B692C122C8D58263ED7F5C0E531504DC3B6E06 -0400000000000000000000000000000000000000000000000000000000000000:\ -4B78063B9C224DA311BD1D3FB969BBA19E7E91EE07B506F9C4C438828915563F -0200000000000000000000000000000000000000000000000000000000000000:\ -5778F985DB754C6628691F56FADAE50C65FDDBE8EB2E93039633FEFA05D45E31 -0100000000000000000000000000000000000000000000000000000000000000:\ -01D0FABD251FCBBE2B93B4B927B26AD2A1A99077152E45DED1E678AFA45DBEC5 -0080000000000000000000000000000000000000000000000000000000000000:\ -0CAD7906B177460EF96D15A612E83653862592A190F78FBB7C09F4AA89E616A7 -0040000000000000000000000000000000000000000000000000000000000000:\ -E30C1BA805347BC13F4E4E4E82658AB2C1C97BEF72C4F3D555590784C64B3587 -0020000000000000000000000000000000000000000000000000000000000000:\ -3B5C755FC2A3A868DA0A668B2704635B13E3DDA0ACFD386B4C025ACB644400C3 -0010000000000000000000000000000000000000000000000000000000000000:\ -9F911FC19889661AF03C2E9849208883BB606BEB75BB6C162FF63F65E4CA8157 -0008000000000000000000000000000000000000000000000000000000000000:\ -3EC07F4585EF5C91814F7DDCAE396DC42156DF82307C46C7AE977CFCDDBD04A3 -0004000000000000000000000000000000000000000000000000000000000000:\ -7E8BBD09E5C09DE409CDF71C4B39F59B350B4B5DEC4A45D0B6127FDF873B4602 -0002000000000000000000000000000000000000000000000000000000000000:\ -1616C4B5C8DBB446F269F2C9705B857B4A4315355A52966933E6B0E51DA74A76 -0001000000000000000000000000000000000000000000000000000000000000:\ -36258E205D83BFAD1642D88F39A6CC128CA554016DE9CF414BEF5C5C4DF31019 -0000800000000000000000000000000000000000000000000000000000000000:\ -9B885490F45E3558384E94FE2C64773323AE14BCB8F9E8E02B3FED18EB930A30 -0000400000000000000000000000000000000000000000000000000000000000:\ -3BFB6EFD3AFC93BCD7ECDE51304456C2DC0C697A337DE3FD611CBEC3B3BCC53C -0000200000000000000000000000000000000000000000000000000000000000:\ -1D8052462938001AFE80A3A2DD04EA8B28AEA9F613849C5285401B7DF2E8D604 -0000100000000000000000000000000000000000000000000000000000000000:\ -C15F125ADA3B323C7D79FB6D1C96D87CA7890C468A209C66F80B5EA223E5E533 -0000080000000000000000000000000000000000000000000000000000000000:\ -4C49B88894D742530818A686961A640CA28692C2E2AD020B7CFD86DE3E594068 -0000040000000000000000000000000000000000000000000000000000000000:\ -85BFB6E1A0AA50099696212DCE8A0067F4FC8A2C4DA0946B6106BE1DD01D7D78 -0000020000000000000000000000000000000000000000000000000000000000:\ -5D5E9793D0F89CC3A709D2FFC1B488F1FDC7CAADE69BA027EA7B44F18BCD082F -0000010000000000000000000000000000000000000000000000000000000000:\ -1EB50E78E6DFB0A4725FB71BA0443C3129A6822213F3D40DA2439FCD2BCED580 -0000008000000000000000000000000000000000000000000000000000000000:\ -F7B7700280839E9E0FF8AECCB3BE5C586DF0BD6B7BDB4AC8C8ED45AE3EEF3686 -0000004000000000000000000000000000000000000000000000000000000000:\ -2E0D44F2BE93B23ACCB8E7680FA0B58E25F48E33334481A9297C8F5E9428F326 -0000002000000000000000000000000000000000000000000000000000000000:\ -672504FFC411A43E4E9CAC5A44BB62DF4A7DA166D18E4D47607CEFAADFB667F1 -0000001000000000000000000000000000000000000000000000000000000000:\ -4A9F5FF8813D3465074FD633B060B49318D9EE98B3CF3B3F4A3C903E4AC66396 -0000000800000000000000000000000000000000000000000000000000000000:\ -C68386BCDCEF8EDF31D9ECCE2A34E006F49AE1652FF0BBDA847FF6601F762815 -0000000400000000000000000000000000000000000000000000000000000000:\ -A5FE20624689A0F3378834E922989DDAAEDAD5BF51D3B1F5E84D63778A8F43E7 -0000000200000000000000000000000000000000000000000000000000000000:\ -03DE22D278E3BE1E8FDB7DA3EE6679E6D514DEE8FC118FB27A91664CDEBED8AF -0000000100000000000000000000000000000000000000000000000000000000:\ -D1AD35A94F018CCB8E40A06FED17DB11F0638DA3F3E638108ADE5D151ECCCE23 -0000000080000000000000000000000000000000000000000000000000000000:\ -4D205614446CBDF1A8160A7182BCB24EFB32D725E016BB91D84C1E7DF55201AA -0000000040000000000000000000000000000000000000000000000000000000:\ -72171D3BFE9863D702B81AE9C69135AD007200A5A7B8DC419F884C944A309DD0 -0000000020000000000000000000000000000000000000000000000000000000:\ -3F0A6EDF24B8D9F9038B828D2F45F7625123F8A1B07E39892C86FABB2FE687D7 -0000000010000000000000000000000000000000000000000000000000000000:\ -C9BF3EEA4D22268BD1EF0027A5E1E398F0D6C4A8190BD99AD869A8796EB0CD4F -0000000008000000000000000000000000000000000000000000000000000000:\ -5706ED5B0DB45898C5C01F4C4B5360043E1029CA00B33C33E684C27C30222A1D -0000000004000000000000000000000000000000000000000000000000000000:\ -ECAB997B21788D277CFCCC07AA388C4B199AE63D6E606CDE28328EC209B794BC -0000000002000000000000000000000000000000000000000000000000000000:\ -58D2C35FFAC68BCF336A44B98AFF5740823CABAEE65865C608D487FFCFFC95BF -0000000001000000000000000000000000000000000000000000000000000000:\ -909F22C2B34103BF854580C5F2C4F64C2520AA57B492E422D1801A160B6C6E67 -0000000000800000000000000000000000000000000000000000000000000000:\ -A0FC0A816AB024C9DED26D9A474B53C66635376400FB3AB117BAB262321A1308 -0000000000400000000000000000000000000000000000000000000000000000:\ -9DEBEDEDB5B1B6A2A2FABE9104C8D3F425144F290490ED788D6B6A19994C703B -0000000000200000000000000000000000000000000000000000000000000000:\ -CBBF98775780C3B92BBC871C1D5137107BE63933D0F3FE1BE7AEE434AA5509BD -0000000000100000000000000000000000000000000000000000000000000000:\ -C1B245D91A44973947297E576511B7FC55CBCD06159CB0F111101E601B36843E -0000000000080000000000000000000000000000000000000000000000000000:\ -6986E93DBC3B044D949945C0AF3BC35ED63915E0268E9395D552D4ACBC5A79B9 -0000000000040000000000000000000000000000000000000000000000000000:\ -5FF28A82880765E64116AEC484F2B3A0EC1DBEACEC2BBC78737E5504A94C2DF2 -0000000000020000000000000000000000000000000000000000000000000000:\ -76DBB5BA9EC438D93638BFA8F62664201E29BA84BC6B1AB704D9688E89431503 -0000000000010000000000000000000000000000000000000000000000000000:\ -80D3EB7836CB04382BBAF764EEC343F07C9618BDFE98E01FD2BA2958902253C0 -0000000000008000000000000000000000000000000000000000000000000000:\ -89FF132255600368DE253F025BF92BB5AF9BF4D1FFEBB25575CE30EB77E4E4A6 -0000000000004000000000000000000000000000000000000000000000000000:\ -2012053E7AE584DEEE9B71A412FCC9351C29961E9D3972615C10EA59329A1D3A -0000000000002000000000000000000000000000000000000000000000000000:\ -414DAAED4DEFCABB5A3E4A82131B914E597522EFCE506AF7B294A14486B40ED8 -0000000000001000000000000000000000000000000000000000000000000000:\ -BC52EFFBBB3C6F7C66AD400B707CD98930A828F6B5BA3E0C71D706F42000E80C -0000000000000800000000000000000000000000000000000000000000000000:\ -6225473F5D9BAB2A34928D9F3C9891C990982718319F2408D07670A7460D783D -0000000000000400000000000000000000000000000000000000000000000000:\ -B2B2DEA4697FCEB6CC466A7859A30C2BF5C6E477F6F442A1918802BFE707990B -0000000000000200000000000000000000000000000000000000000000000000:\ -873D4CB3F71AA7704660011B30E9B573AE0E839CF0B102633F197290F19998A7 -0000000000000100000000000000000000000000000000000000000000000000:\ -DA24CF903BB826BFC026106F54EACFE50C0E8319BE205B47E181642723DA2305 -0000000000000080000000000000000000000000000000000000000000000000:\ -AFE22988EC899E95704B9E87082EE375F78DB2687478CCFBC2DFDC1E121C49F4 -0000000000000040000000000000000000000000000000000000000000000000:\ -497D0D90F9A77F1D67F0567E67F7ED60F9D324CDE0DB266E51AFD4B25CF24FA4 -0000000000000020000000000000000000000000000000000000000000000000:\ -0845CA0AAAF8F899437303A1C4A24101437DA7C90D1147E653295BA68CED2D1C -0000000000000010000000000000000000000000000000000000000000000000:\ -A1BD23817C23BA5910B9EE8404740A0CE3E81DF31A5AFCD172B4613ECB1A9B65 -0000000000000008000000000000000000000000000000000000000000000000:\ -13EA147D01F645B321E81F39D15CE4AEB9CF2E0373D6FCBBC1CA7CDCFCC40C29 -0000000000000004000000000000000000000000000000000000000000000000:\ -912E64C464286112AFC2CCD15E638707F293D8A8133E03D6795E96562D471183 -0000000000000002000000000000000000000000000000000000000000000000:\ -1AF94AA75BDB9B976831E1A6A1A7BBD14697F710E514AC4019B33815F167B555 -0000000000000001000000000000000000000000000000000000000000000000:\ -E13FCB8F649438F18530EC00DAA36A110FC641A226C3DDE990F82C4B561DA4DB -0000000000000000800000000000000000000000000000000000000000000000:\ -C8387BF8DBADF1C9BA583A8D27B620F4BD13CEE4EA2EF98BCB0E1BDFD6F3D8C8 -0000000000000000400000000000000000000000000000000000000000000000:\ -79A257D3B1260EAE2C407B55A33C28E19777C185B5254AB051442D2353B35464 -0000000000000000200000000000000000000000000000000000000000000000:\ -6552EBE29B1B037562F1888498BBB208054638E97C0C625F127C1A203EFFFC65 -0000000000000000100000000000000000000000000000000000000000000000:\ -2D77A6F16003C7F09E6DAEA5CAF4E61B9CD822CDF21A33F300EEAF33264AC67F -0000000000000000080000000000000000000000000000000000000000000000:\ -F5B8339CB1EFC7F3FCB94DCDF8BB3EC191EE016609082E47242EE6253A05DA9B -0000000000000000040000000000000000000000000000000000000000000000:\ -BD7CDCC82D46856DB3E580548999DFBA0D8BD38E0EDBB797188DE335D933C8B3 -0000000000000000020000000000000000000000000000000000000000000000:\ -D340DBC1256765FEA41925FDA295BDFEAA1055CBFEAE0FDBA8608E3116D746DC -0000000000000000010000000000000000000000000000000000000000000000:\ -49293309D25CAFC914C11063C2D1CD286A4500D519B11B4FC98500EFB85F6D9C -0000000000000000008000000000000000000000000000000000000000000000:\ -6091339D451E8F830A46C5CE040717C9D06F36AA4C5A9A8A9F1622384A6EB694 -0000000000000000004000000000000000000000000000000000000000000000:\ -6CBD66038B54D94A931006EA23DB48C300E1384CE7FA0F7CCFB8EFE2FC0AC4F8 -0000000000000000002000000000000000000000000000000000000000000000:\ -8A1A30A8F415D71BBB03C5AE3DF4836CE54CBCFD78816BCE86E0B983B059E972 -0000000000000000001000000000000000000000000000000000000000000000:\ -8039AA16A81B23F2410448563996605C13766D1E7417F4BDFBD8AD5D0D33554E -0000000000000000000800000000000000000000000000000000000000000000:\ -7549D699D3D1989D940600F25501C243E9AF21FE51EF2ADB8358C159C9E9663F -0000000000000000000400000000000000000000000000000000000000000000:\ -831F3936CACEA264EF4FAE2E36B2110F6729BAF434E61A6EE379D0C014F2DAAE -0000000000000000000200000000000000000000000000000000000000000000:\ -013EDBD6B8EA866D7AE7F553C079663CA22ACF4E21E64F0085ECE1B449BD10EF -0000000000000000000100000000000000000000000000000000000000000000:\ -D9B846387CE55AC512A1E2807AAF6F8DCFBEB462ED6D4176CC56A0B0BDFE1047 -0000000000000000000080000000000000000000000000000000000000000000:\ -0528B59ED6EBBA187A69C3C41E88120B1315CEE497BB6731191DC05000CD1E78 -0000000000000000000040000000000000000000000000000000000000000000:\ -1EBA730823BA27ECADE25B38144D339053446006EC3F66131AEE473EA3FB9E04 -0000000000000000000020000000000000000000000000000000000000000000:\ -B8AE9BF4E323C6EF3BFE75B6969EBFA68FE6C14B06481CF06869D12C555DBFA9 -0000000000000000000010000000000000000000000000000000000000000000:\ -C89944EF4886967A517064A212E38BDA5FCA80CA54E18103A75D54A6E230C694 -0000000000000000000008000000000000000000000000000000000000000000:\ -452E5D0AF5DABFDC5C74868D916F1E390A7354937785F1F6D4D0B1D72F06BD8F -0000000000000000000004000000000000000000000000000000000000000000:\ -87AD2F7F2E5DB1BE3BCC982EA058955AE34A3CF0CBF87DC4813AE5B0E6B3C517 -0000000000000000000002000000000000000000000000000000000000000000:\ -FB4635AC471CBEBE2EB3367F259232D7B62B8A6342E1BF73294FE447C3B8076E -0000000000000000000001000000000000000000000000000000000000000000:\ -9ADA02E914EB181D22E7F6D9B3F39804A0F758BDA23995E567E3A1EDFF0B60E8 -0000000000000000000000800000000000000000000000000000000000000000:\ -D41BC420CD25BA9038A4E1D1C4CEB1B05D993D0B68095F46B4BB524B72F15287 -0000000000000000000000400000000000000000000000000000000000000000:\ -329954D9CB855DD7798E587403353DD69CEBF91A5020AE5FC4D742656E4CAD0B -0000000000000000000000200000000000000000000000000000000000000000:\ -7FF37D832DB4DA7CC3473FC3F0B263949630F21DFD8522A544994C5A3B12644B -0000000000000000000000100000000000000000000000000000000000000000:\ -7F27BEE720048484188F774D660D86276B6383AB2E40990F181E5349DC72FC52 -0000000000000000000000080000000000000000000000000000000000000000:\ -AAFCA0AC1D6C80EE40FB43FAD51F006D39DE0A101449B450A3E0FD9D44FE0230 -0000000000000000000000040000000000000000000000000000000000000000:\ -941A10F2333950E3501C6229C085A54185E55A1017C9B8DFD9187B614371884C -0000000000000000000000020000000000000000000000000000000000000000:\ -FA7862ED967E19EC63F91344184684099C7BD734EDF810509E2FB308FE5DAF16 -0000000000000000000000010000000000000000000000000000000000000000:\ -E5C92E4C6590AD2F982267BE2B13E110C44D9C69E93516F594B7E433A0E93AF4 -0000000000000000000000008000000000000000000000000000000000000000:\ -0656DD98DED7D764BCDEE4E96A9699E70974AE77CF72F166B7A979B707F1878B -0000000000000000000000004000000000000000000000000000000000000000:\ -1FA047EFED4A196A9B538C099E50B67A0F537897FCA6F0AEB386F43E65D48A31 -0000000000000000000000002000000000000000000000000000000000000000:\ -74BF1C0E1DA85358FA86ECBBAB419C9223F41D47702583593CD01539E861DB73 -0000000000000000000000001000000000000000000000000000000000000000:\ -846C472932FDA94B56483E7A903C6545B5CDE4FE5D0A2FFA03B52AD53570D54A -0000000000000000000000000800000000000000000000000000000000000000:\ -E78743B610392B52CD122071F9071A8E9C35AABEC0BD63C73C5FD12171838B32 -0000000000000000000000000400000000000000000000000000000000000000:\ -4A435A44A2BE1F40D8E6A1F7C332C5330EDE4E0F55505304E571B4443255A5A9 -0000000000000000000000000200000000000000000000000000000000000000:\ -18122CF13AB2412FA65CB693713794DE6B30403B65688234A6FA940FC6D506FF -0000000000000000000000000100000000000000000000000000000000000000:\ -BAE3E67A9D5505A5685EBB52B8510B44315C0FAA422F0EBFD4EF3413490248FB -0000000000000000000000000080000000000000000000000000000000000000:\ -B7F300939FCC6EA45A8920C7B8D3F18E753C0076062E4A499B69AF96328CEAF9 -0000000000000000000000000040000000000000000000000000000000000000:\ -7E5AAFC21B6238FFFC561283AC2B592C1F5BB35237061629AC9A4AF7153CDB3A -0000000000000000000000000020000000000000000000000000000000000000:\ -B98F3C9FA25CC07AA02F7456E15C7707DA6702628AB589351B8737A814DBCB9B -0000000000000000000000000010000000000000000000000000000000000000:\ -B01668CF19C69B22737F7409EDE201CC37BF1B23FC0630FDA9364652171389AC -0000000000000000000000000008000000000000000000000000000000000000:\ -A8BBE8B393AB0E3D0E822C8AB9F23B8F1C985E93E6EC17050CC6A0D82B27A078 -0000000000000000000000000004000000000000000000000000000000000000:\ -FB246A9EEC0AA00A971416718CF0BB789F44496183642024C5A3C8043C5E72F0 -0000000000000000000000000002000000000000000000000000000000000000:\ -5937034D4C6184BC32CEF38ACA4BCEA720F3D3061191D1E0EB5C84E242C7DEEF -0000000000000000000000000001000000000000000000000000000000000000:\ -C0DEB1F9A2060A3CE111BC6C36DDFDEAED2713229EAC55C75608B9272E10B78E -0000000000000000000000000000800000000000000000000000000000000000:\ -08CC99BD1C9E6C2AC03DD17C7BE3F0D744AAC4144D542D2F4D2F3366837E030E -0000000000000000000000000000400000000000000000000000000000000000:\ -B5026F002368EFAB1FC2AA97BE628698C41DB381B44F8BC2C8BE3635C8F0BCFA -0000000000000000000000000000200000000000000000000000000000000000:\ -98A020137D37236B11D0ACFEC699107679EAF0339E8C0AAB3AFF1538296F754E -0000000000000000000000000000100000000000000000000000000000000000:\ -A30B09A7870D5FCF10704CA8A00083FF4ED2D0B78F530161C698A0DC272C5F12 -0000000000000000000000000000080000000000000000000000000000000000:\ -C4CEF7219FBA14B0515FF84CA552273E471EFB23A26274778C11D0FB61805A8D -0000000000000000000000000000040000000000000000000000000000000000:\ -0F70F20E2513A79AD1D153C98981D5CD21DE4C134977658D1C9C4B4367A73F99 -0000000000000000000000000000020000000000000000000000000000000000:\ -690A81F1FE0464FAB24A2E9861C24E52087D902B2DFB344713B42285051E5C81 -0000000000000000000000000000010000000000000000000000000000000000:\ -403E430C39EECA88D967926B543A06FBB68654C348801FDE7466F34A5579E2ED -0000000000000000000000000000008000000000000000000000000000000000:\ -715623D0A82109017F74E8DE00BF5B700BC6C161CA403CDEB9A09B659268B779 -0000000000000000000000000000004000000000000000000000000000000000:\ -6E367FF2768A6D4C980D7D1B75F312663CB816E5C0191A8839F6F9E50A44853F -0000000000000000000000000000002000000000000000000000000000000000:\ -81F33A1BC1018F2C4886865F55AD2FDDD891160D06717805F2687155E26DC2E4 -0000000000000000000000000000001000000000000000000000000000000000:\ -1C074CA4ABAF8B662D0C75635F84FE4ED9011CE476C45F8214F798438E1CB9FD -0000000000000000000000000000000800000000000000000000000000000000:\ -003D837BBB718E13778188399EACD53DF9781EE8AD3F77BBD35F5B617D38AB24 -0000000000000000000000000000000400000000000000000000000000000000:\ -37212E518E30D555EA442EC7467B1E95DC06371C9784705D0D885D1C61981029 -0000000000000000000000000000000200000000000000000000000000000000:\ -74119615B3146E59D08DDDF07CF0614264D73F2118CF4A5CECFBAA691B005F2B -0000000000000000000000000000000100000000000000000000000000000000:\ -3269AEB6831504CB8679EA40F749072951EB1728CC5E21E45FD0D6B423F6FA42 -0000000000000000000000000000000080000000000000000000000000000000:\ -D504FD065F8D2BCD3D1D3A4B298328E09F1CB44E3106D156477E992AABE9812C -0000000000000000000000000000000040000000000000000000000000000000:\ -8AA4012B4573828D21C20AC64D18A6EA73DA0347B5D1A71442091CA48655DB70 -0000000000000000000000000000000020000000000000000000000000000000:\ -650189D78DE4CF754ED237A9DDADD9686B58D85D06D82E937DF6075F4CC87642 -0000000000000000000000000000000010000000000000000000000000000000:\ -D140E61D738C3298875886B8D8DE576E48FF5C7E9F4D0E66D0149D0BDEE19F49 -0000000000000000000000000000000008000000000000000000000000000000:\ -59E7ADDB5E068640DE3F8FB015017E7AA7495430D2533F87D4ECE9F7EE548FA3 -0000000000000000000000000000000004000000000000000000000000000000:\ -5481B8528EF488D0A4ED259244306AFF83145B7D675E159EFECE21DEF7561297 -0000000000000000000000000000000002000000000000000000000000000000:\ -671EAA12D76BE21EB2CED2F61AC1E98DF94C1952C2CDFC047895C74F15A7F3FA -0000000000000000000000000000000001000000000000000000000000000000:\ -6CC4F0E930B34481D03A4134331852EAED66667E3B3D8605F7CD3777551D2B6F -0000000000000000000000000000000000800000000000000000000000000000:\ -58A971DF91F981284DFCA88C6A21AB89D4E6A12E0D8A1E12BB585EB697D597E3 -0000000000000000000000000000000000400000000000000000000000000000:\ -AFE25F910412D62DB9FEFBAC5CAF3D240153725FFF1B8D85FF835BD418028738 -0000000000000000000000000000000000200000000000000000000000000000:\ -AC99C31BFF7B16E8916E8ED5C969CE7DD1B7A4A009F2F03EA8FB240B1AB16CE5 -0000000000000000000000000000000000100000000000000000000000000000:\ -85A6CECFA95E645104A45E2E34E98F92039ED921ADF65E78631E270548521637 -0000000000000000000000000000000000080000000000000000000000000000:\ -1C686E808A38E9D3D800AB94F8EF98888FA959593FE9A78850EE01CCABF170B9 -0000000000000000000000000000000000040000000000000000000000000000:\ -058AE81BE2477D2BB0EF309F69713D68196A0A9D758BE3814B565088FD752AB3 -0000000000000000000000000000000000020000000000000000000000000000:\ -5B1919A40F9A5AEF568E1E24B414A85C0D60D1DCABAA2CCECA09A91D78A91D15 -0000000000000000000000000000000000010000000000000000000000000000:\ -FFD4927E8C35AFD614A39AEC5654A8CEF3CFB47B737BCD55342BFDA0B9D81E53 -0000000000000000000000000000000000008000000000000000000000000000:\ -D47A6B8BDBA65DDF5820DBCB3F1733018CFA0A3A278540C7FBD575E36E20F063 -0000000000000000000000000000000000004000000000000000000000000000:\ -9D8A03520FC2F2653AC52B7C0DA06F5436858A811E5F4B2DB0B2182C2C8F6D12 -0000000000000000000000000000000000002000000000000000000000000000:\ -13A17E3E7C07F58935075A41B2B5B332CC64F7099E320430DBEF41685DD95B27 -0000000000000000000000000000000000001000000000000000000000000000:\ -9250C7028C00AAD64F1A1140F4DE8812608FCF15F3E91AB886C911E71BD41324 -0000000000000000000000000000000000000800000000000000000000000000:\ -C019BC0605ED4157C8D3E4761BC74D403558E426D04403B17C9923AA5A732C48 -0000000000000000000000000000000000000400000000000000000000000000:\ -524FCBE1456CE1D535E6E75098F7A817EEB99F6D3B77A9705BF40674E84AEAF6 -0000000000000000000000000000000000000200000000000000000000000000:\ -F4A5E902E2633F78A4AD90C9305DCA8CCFF31A8CE6FE8DC3755A591D201BB51C -0000000000000000000000000000000000000100000000000000000000000000:\ -BB242C3D49140119969CE07F0021E400ECDCBDEB3FC8C92459EFF346878A6FF6 -0000000000000000000000000000000000000080000000000000000000000000:\ -362B9130763C98696ACE92E946F2646EDB7A9D419CBE12ABF9CB40B9BBDB32DF -0000000000000000000000000000000000000040000000000000000000000000:\ -6BF88E66479D09985823F2B87BD7DFDDA415442B5132B2482F9B092CD3FBAA4A -0000000000000000000000000000000000000020000000000000000000000000:\ -DF6777DF2585349325132C5A6AB16481498BF9A1957EBC2F113095669C7AFE96 -0000000000000000000000000000000000000010000000000000000000000000:\ -37108D63C635FF214AF8A98DCA6A3E288FA14EA8F5E8C52A583B6F12BDBA3CF5 -0000000000000000000000000000000000000008000000000000000000000000:\ -C22FAEF7E57A7BF3E344132436FAE85BD59A9BF4AE01DA2545A6EE3779773AF2 -0000000000000000000000000000000000000004000000000000000000000000:\ -A1947F12BD61D72067884D47AC2C8DF8541FBB4A9EB2D0F1A8F6997207819AE0 -0000000000000000000000000000000000000002000000000000000000000000:\ -DDA4ABDAD1290FD66A171D9724A409B02612F8606C58D85D530F30E7CEDEA3D2 -0000000000000000000000000000000000000001000000000000000000000000:\ -658FCE7342D3C8E1EDEBD0EF0B72612346500B72CEEB1AEED11845F1AD1401F6 -0000000000000000000000000000000000000000800000000000000000000000:\ -518EE98053E9D1F1F42F9E59DD74A6D9AA0D1F1FDDDD4F799134B4C111226D98 -0000000000000000000000000000000000000000400000000000000000000000:\ -1F2513F0CD6195005B81727F7784B1F109C2F680A5E3343A9EA0FAC21F35BAB6 -0000000000000000000000000000000000000000200000000000000000000000:\ -2D05A4ED553CBD1F532EEA35D158F01F2867D49A7120ABE733A5F6C2E5C92C21 -0000000000000000000000000000000000000000100000000000000000000000:\ -0BFC42AE0F93D32617BB3C7CF8E4A6515AA8668922E05AF39A27CAE39F9CA221 -0000000000000000000000000000000000000000080000000000000000000000:\ -C3F2631B8F76C94534ABDE0EB456EFA47DC43B08F7CDBE379622621B28458915 -0000000000000000000000000000000000000000040000000000000000000000:\ -9C15E4A671EB6E390BDB67AC4441DA8CCC9E56AFE28B8BCC928FC6F3E552569A -0000000000000000000000000000000000000000020000000000000000000000:\ -EFD7A7E53F7F21FE9B9D4A5BF3BE5AE7ADB0947F8412BE25F7E88A45743E6FB8 -0000000000000000000000000000000000000000010000000000000000000000:\ -A524AC0D0DACF565BBA3B84015D995202E1F67409D63FE16D442CAF5C72C3D3C -0000000000000000000000000000000000000000008000000000000000000000:\ -80073614FB76A09C3DD701E83BE717117A3694D05331B032F8104CA241F11482 -0000000000000000000000000000000000000000004000000000000000000000:\ -C475A4C797002B5C66A21DEF4295CDC4C9DE4F045FB0FCE7A1BDB977224BAC97 -0000000000000000000000000000000000000000002000000000000000000000:\ -6D8547CABF8F0AEAF7A9B3598CBA769F545C61E8873FFD6D5E7EE9C1C5527F95 -0000000000000000000000000000000000000000001000000000000000000000:\ -7187108D9F4506C15B5E6AD523167BD2BADABE69242EB6AEBCFE52F70874E757 -0000000000000000000000000000000000000000000800000000000000000000:\ -A195EAA4E6377B4C0360C343D52F82704BD85BC5905D669C5E4ECA7C1F028C88 -0000000000000000000000000000000000000000000400000000000000000000:\ -72C72361133DFFEBFD3EBBB8FDC6B76DC530AA7FF5E22EE709B65BE866DACD86 -0000000000000000000000000000000000000000000200000000000000000000:\ -20F3BF2E8F3876FA733F41CECFDA7C641CE579B8ACE9DFE06A64A4BA72BFA901 -0000000000000000000000000000000000000000000100000000000000000000:\ -D3B0F2A184D2AEDACC760448DC351B63E975D5E48444320733F19381EB973659 -0000000000000000000000000000000000000000000080000000000000000000:\ -25D380557DDACD3761FED7B1EF2AD9B2CB25EF263DDDC08E34646EFBB696F718 -0000000000000000000000000000000000000000000040000000000000000000:\ -7DF39F3B439912E4859500ED516F4096EF60A96911F626052B3315416C307F90 -0000000000000000000000000000000000000000000020000000000000000000:\ -D05070BC61FC95F05359B8B36C70DB0E3D5FC077F73C02CCF4310A24C91A0F33 -0000000000000000000000000000000000000000000010000000000000000000:\ -CD3683D700693575FBB3355F844458ED60B1A45294CD27CD380A9A10E660E407 -0000000000000000000000000000000000000000000008000000000000000000:\ -AB19432215B64F93A344F7E6A46B386C4AC159924AB4A6F366FB8552A96DBCE6 -0000000000000000000000000000000000000000000004000000000000000000:\ -1F6B7158C0B0A4311FBEF86E39BD812BC94207D154B9CB2380433F16F6821B7B -0000000000000000000000000000000000000000000002000000000000000000:\ -E65A4E3567D420D98EF51C29405AB004A019D794C51A67A680F6D54F21F08E5C -0000000000000000000000000000000000000000000001000000000000000000:\ -53382A486C2390F7FF94A33BAFCE7285F382BDB5BED4FF076D7A161B169D6B4A -0000000000000000000000000000000000000000000000800000000000000000:\ -9E36673A278E023992B653AA0683CE64BA7CCE51239E091C80D98BC627B45A00 -0000000000000000000000000000000000000000000000400000000000000000:\ -AD51CB9156C8CB66C202133E098061688A0360EA0E5B49A9F47EB00C346EB1F4 -0000000000000000000000000000000000000000000000200000000000000000:\ -9DD8990FD868111F6854AC54D85BA38B9B0BE3E02037B4A3DAD2D0D9E89DBCE3 -0000000000000000000000000000000000000000000000100000000000000000:\ -8A4A51AEB3BFE9FEECD9F4AF22D2D34C534F3A2B127E959236407206A4E1DB2E -0000000000000000000000000000000000000000000000080000000000000000:\ -32F59D1C8E62EE49BEDCCF59007194EEBBC698B888050723C5325A746463E3C2 -0000000000000000000000000000000000000000000000040000000000000000:\ -FCCD7332FBD25CE39EE7522F432185F2322EF05CF1F5E36A2458272FF1397A0A -0000000000000000000000000000000000000000000000020000000000000000:\ -62775BB6A290E509389C0EA6BAE5C8567A0E034A813F9AD62666B4871D8FACA3 -0000000000000000000000000000000000000000000000010000000000000000:\ -264AF724EBD387076F1427EAF7D7E94734A209DDFFAB1BF455528D8BFB548681 -0000000000000000000000000000000000000000000000008000000000000000:\ -96FC8FF80897ED6F514A67FB4FA5CF9D53814E305FED248BAE6B5761A331E0C3 -0000000000000000000000000000000000000000000000004000000000000000:\ -F98B7C970726889639C19C75FA4E63BFF6D48063806A19EA4584B84F3C40079B -0000000000000000000000000000000000000000000000002000000000000000:\ -76CA7485A665D0B76ABBB2909B193D8F8572C8DB77F969256480F63728ACA867 -0000000000000000000000000000000000000000000000001000000000000000:\ -8004B9B6A39295D73D00759682C72DE9A49E7278189CA9A1D704FFFDE8F8AECB -0000000000000000000000000000000000000000000000000800000000000000:\ -98177F21E631C18FD21733C5BCCF33243970AC5EBDBB19A257DC96BF43D5151A -0000000000000000000000000000000000000000000000000400000000000000:\ -DCE21D3195A4B65B3B2C3EF0A954A157785C8CA4FD195AE15BD7F420D9D5CE14 -0000000000000000000000000000000000000000000000000200000000000000:\ -EDC0E40C3027D41914BF3144A08078742B337B96DA8E503D4FF84BB6A8E97D55 -0000000000000000000000000000000000000000000000000100000000000000:\ -013F21DD7052786E2C338B57F23EC2C7FEB0C12F7B3B28FBB5AFFACA27103F51 -0000000000000000000000000000000000000000000000000080000000000000:\ -BF8362CE587255D74A374DE2775680C02A02B2106D05EB9B1EB83BC88A9C97EF -0000000000000000000000000000000000000000000000000040000000000000:\ -CA72BC9BB4F0F6E2DDD3D641D94A62163A066AF9D77AC3937CB00D134DFD46F2 -0000000000000000000000000000000000000000000000000020000000000000:\ -6B42A2D46EEBC60C0238517A9F2B78BA27CE4B87ED35261FB0A0DEDDD39DC753 -0000000000000000000000000000000000000000000000000010000000000000:\ -D441092F524AE16D1339E78FB13892732A5975705F90F82E54EE09D80448E49D -0000000000000000000000000000000000000000000000000008000000000000:\ -C7F6DFA7F3E4F92D6C20AEEAE921FA209685D0C20714D69A95D1F94FA41D097C -0000000000000000000000000000000000000000000000000004000000000000:\ -300223DF08C84B22C569FC15ECAC264F9D1CFDAD758962B406C757FCA69D0A0A -0000000000000000000000000000000000000000000000000002000000000000:\ -FB81B52E00690B2F03F8D410A357E582F6F4367D4359FE7DD7CC6C6A3AD24CEB -0000000000000000000000000000000000000000000000000001000000000000:\ -BD5ECECE8B8CBC564A91294968C3BE209B15730CF7594D2B79BEE0D44391BE7E -0000000000000000000000000000000000000000000000000000800000000000:\ -80179FB24A6EEC0173DAF26891251C3054EA8D7280F88D4C57A3F52B5F1AA388 -0000000000000000000000000000000000000000000000000000400000000000:\ -59C6F16A4878FC819F3A3CDFCF7C5A8CEAFE9231CE259A7F9E377E3D8B41C16B -0000000000000000000000000000000000000000000000000000200000000000:\ -B18656E3D9D293F342A9A4B88884BD9A650D72368C1703B74ABD2D4ADD1B6A5A -0000000000000000000000000000000000000000000000000000100000000000:\ -A7213DAEEBA47277122DFC9FFADBB36881C6FA9C89293D2291407522639E017B -0000000000000000000000000000000000000000000000000000080000000000:\ -33D62D3A60AF659D70978E12F6AE01D6D62686965288B584796B6AECC37167B7 -0000000000000000000000000000000000000000000000000000040000000000:\ -3F2F1919206CFBEBC68DB1BD552D78AFF61F5AD296AF45F15145E176CD4E93BF -0000000000000000000000000000000000000000000000000000020000000000:\ -4ACA600624783F035871A05365EDFD0D01A67C9DD59D38A68117474D81F4A93E -0000000000000000000000000000000000000000000000000000010000000000:\ -9B352CDE8F0BDEFCC8B1F37D34B3641FF6F55C05FF5193928402ED95C986D1CD -0000000000000000000000000000000000000000000000000000008000000000:\ -B14B9519FE51B738F81BA61AE48723835412B544F41E8CA4D3C2BE8B8E7B7ACB -0000000000000000000000000000000000000000000000000000004000000000:\ -AFF464673EDD86FED0C0CC97BE3DE9375E61503680B17AC4FD44AEDC02EF086C -0000000000000000000000000000000000000000000000000000002000000000:\ -B600CCFEC9DDAE068109C82B0B7BA3632501857EB23CA7860FD26F3BC1335697 -0000000000000000000000000000000000000000000000000000001000000000:\ -884AA440D0320D6FB74A8B02BBE5F7DF50CC4B83571523CDC4A2683776AD6218 -0000000000000000000000000000000000000000000000000000000800000000:\ -C20D94291275F858E53FDC834B0E02FD496145B8713F53555E863425A61D1E88 -0000000000000000000000000000000000000000000000000000000400000000:\ -B1087C12C70D6224460202DA3FA5B985D3D2B130F2347D6BC7DC7668856EF5B8 -0000000000000000000000000000000000000000000000000000000200000000:\ -BE7F81F61289AFD0E08467938F054F69D2795E570D0F5C7577125BD37D72069C -0000000000000000000000000000000000000000000000000000000100000000:\ -D7E79AEEAEF9CDC5889C68E98DCC7C1D85172D0F183A62815DF0104CA67F3068 -0000000000000000000000000000000000000000000000000000000080000000:\ -ABCAB82BD056C3A975C8CC78B160B1A726EA2D58DC8775EC9CC1E97B1887263A -0000000000000000000000000000000000000000000000000000000040000000:\ -716A3871C88D6C0D6AB03C6C925CA5B0FEC9816CB393BE5226E387048DC379AA -0000000000000000000000000000000000000000000000000000000020000000:\ -046284F44965FFE307372B5EAA47D0DCFC282B13B1D13FEE3786A0A2173CA034 -0000000000000000000000000000000000000000000000000000000010000000:\ -0316CC9C233290D72C53938CF8D216E24447D95114C3F9BBF2FA508EEA9E72CB -0000000000000000000000000000000000000000000000000000000008000000:\ -388A34BA91711C31E14675BBA6CC29A157237E2B1B6095B02A49373A8ABF43B3 -0000000000000000000000000000000000000000000000000000000004000000:\ -CCFC11FC56D48DAF0F233275E9E591B76758CE6099465FA3E8B925FACC8C1D87 -0000000000000000000000000000000000000000000000000000000002000000:\ -F1C19314208EC565B4E50664B650FC0D256B4EB5A177ACDCCEFC78BEF7543A6C -0000000000000000000000000000000000000000000000000000000001000000:\ -954A6575B642BDDDD05409CF5973BA837F25B2E391950BE91FA23334093D88F5 -0000000000000000000000000000000000000000000000000000000000800000:\ -D8C9AE155F36F1EDD6A9A0FBCE9D8A2D97EFC4896EEAB31FA4B2A267F10F83D7 -0000000000000000000000000000000000000000000000000000000000400000:\ -E1291A0E2D900F2D61C7B915EC60CB2F26C58DE63B0DA7F1AA1F40FB609C7261 -0000000000000000000000000000000000000000000000000000000000200000:\ -18DA34910AFFCD9B1F0B80D57B2B545DBD3FCBB9327B0744553B0AE309D01F2E -0000000000000000000000000000000000000000000000000000000000100000:\ -0B07727D83B28795BD6CBBCCBEBEA5CDEDF3430C407723FD2F5270BED6F574B7 -0000000000000000000000000000000000000000000000000000000000080000:\ -6580335A2908A8845A95E26E793D522451579D91C90A4C92D8667361957C4FA1 -0000000000000000000000000000000000000000000000000000000000040000:\ -34B59ECBD01296EA9FE6C2F1E22AD83AE34AD9917F762E5AE194700A95F5B08B -0000000000000000000000000000000000000000000000000000000000020000:\ -8C7809B15F5525F59885E518A954871A34A4850A0C5AC531CB5564C91D10FA81 -0000000000000000000000000000000000000000000000000000000000010000:\ -A1F386B9AE9B170E1F02E3FA611B991E4A383E1D998FC03F1026028B70C5FBB9 -0000000000000000000000000000000000000000000000000000000000008000:\ -25E947AAA44B7574BCE0D0AC4D91D63489A7837F6AF73764EAB3CC83EFF2B01F -0000000000000000000000000000000000000000000000000000000000004000:\ -1B85D67D1481C20BACB50AEA0C506AFFA04B258C049A8CBA641DD4D3A0ECE1A1 -0000000000000000000000000000000000000000000000000000000000002000:\ -CBC332EC5110FEAE214FF569FECA4BEF1B3CEB809F0E2362E3924A762153785C -0000000000000000000000000000000000000000000000000000000000001000:\ -0193D8FF39177FC604D8C0E60D5495222DA10CD84D4AE6D12BF84CA923158B31 -0000000000000000000000000000000000000000000000000000000000000800:\ -B6A210AEB8D431276712B83DFB27A338166436C37B13E533E6A664BC0696E21E -0000000000000000000000000000000000000000000000000000000000000400:\ -F1337369C5303A28DA9132C4562C7D1D7381E3F30575F05C72DD3E969CFCA5EF -0000000000000000000000000000000000000000000000000000000000000200:\ -5BF54EC3CE05919EFEDDEE2AE288118DB06A3AED340D89CFE279D0C6927CD336 -0000000000000000000000000000000000000000000000000000000000000100:\ -084E640FA57CBF5F097FD08636FE5E98E23839D95C532099EFE1A7A838DBAFCA -0000000000000000000000000000000000000000000000000000000000000080:\ -63794A3BF8875AC2C32BA6238D27E7E15E56A3B794B8D2D6AEC82FAEF2360E3A -0000000000000000000000000000000000000000000000000000000000000040:\ -D9ECE2CD2214F52C55DCD9BCA56A900EC79C1343F12DF8A60F0298D255896B61 -0000000000000000000000000000000000000000000000000000000000000020:\ -9633190BF775667487569D0F5E7ADFEBC899E55AB9D62AAABE9F8754A3FA9C20 -0000000000000000000000000000000000000000000000000000000000000010:\ -A3ECDE0C1D9DAA6B7A949C87A1AF7963C69CB2C412FB3086C495F14630C17B7B -0000000000000000000000000000000000000000000000000000000000000008:\ -38DF1C1F64A24A77B23393BCA50DFF872E31EDC4F3B5AA3B90AD0B82F4F089B6 -0000000000000000000000000000000000000000000000000000000000000004:\ -E38990D0C7FC009880A9C07C23842E886C6BBDC964CE6BDD5817AD357335EE6F -0000000000000000000000000000000000000000000000000000000000000002:\ -9267D3DBED802941483F1AFA2A6BC68DE5F653128ACA9BF1461C5D0A3AD36ED2 -0000000000000000000000000000000000000000000000000000000000000001:\ -EC4916DD28FC4C10D78E287CA5D9CC51EE1AE73CBFDE08C6B37324CBFAAC8BC5 - -[SHA-384] -:38B060A751AC96384CD9327EB1B1E36A21FDB71114BE07434C0CC7BF63F6E1DA\ -274EDEBFE76F65FBD51AD2F14898B95B - -61:\ -54A59B9F22B0B80880D8427E548B7C23ABD873486E1F035DCE9CD697E8517503\ -3CAA88E6D57BC35EFAE0B5AFD3145F31 - -616263:\ -CB00753F45A35E8BB5A03D699AC65007272C32AB0EDED163\ -1A8B605A43FF5BED8086072BA1E7CC2358BAECA134C825A7 - -6D65737361676520646967657374:\ -473ED35167EC1F5D8E550368A3DB39BE54639F828868E9454C239FC8B52E3C61\ -DBD0D8B4DE1390C256DCBB5D5FD99CD5 - -61626364656667686263646566676869636465666768696A6465666768696A6B\ -65666768696A6B6C666768696A6B6C6D6768696A6B6C6D6E68696A6B6C6D6E6F\ -696A6B6C6D6E6F706A6B6C6D6E6F70716B6C6D6E6F7071726C6D6E6F70717273\ -6D6E6F70717273746E6F707172737475:\ -09330C33F71147E83D192FC782CD1B4753111B173B3B05D2\ -2FA08086E3B0F712FCC7C71A557E2DB966C3E9FA91746039 - -4142434445464748494A4B4C4D4E4F505152535455565758595A616263646566\ -6768696A6B6C6D6E6F707172737475767778797A30313233343536373839:\ -1761336E3F7CBFE51DEB137F026F89E01A448E3B1FAFA64039C1464EE8732F11\ -A5341A6F41E0C202294736ED64DB1A84 - -3132333435363738393031323334353637383930313233343536373839303132\ -3334353637383930313233343536373839303132333435363738393031323334\ -35363738393031323334353637383930:\ -B12932B0627D1C060942F5447764155655BD4DA0C9AFA6DD9B9EF53129AF1B8F\ -B0195996D2DE9CA0DF9D821FFEE67026 - -[SHA-512] -:CF83E1357EEFB8BDF1542850D66D8007D620E4050B5715DC83F4A921D36CE9CE\ -47D0D13C5D85F2B0FF8318D2877EEC2F63B931BD47417A81A538327AF927DA3E - -61:\ -1F40FC92DA241694750979EE6CF582F2D5D7D28E18335DE05ABC54D0560E0F53\ -02860C652BF08D560252AA5E74210546F369FBBBCE8C12CFC7957B2652FE9A75 - -616263:\ -DDAF35A193617ABACC417349AE20413112E6FA4E89A97EA20A9EEEE64B55D39A\ -2192992A274FC1A836BA3C23A3FEEBBD454D4423643CE80E2A9AC94FA54CA49F - -6D65737361676520646967657374:\ -107DBF389D9E9F71A3A95F6C055B9251BC5268C2BE16D6C13492EA45B0199F33\ -09E16455AB1E96118E8A905D5597B72038DDB372A89826046DE66687BB420E7C - -6162636462636465636465666465666765666768666768696768696A\ -68696A6B696A6B6C6A6B6C6D6B6C6D6E6C6D6E6F6D6E6F706E6F7071:\ -204A8FC6DDA82F0A0CED7BEB8E08A41657C16EF468B228A8279BE331A703C335\ -96FD15C13B1B07F9AA1D3BEA57789CA031AD85C7A71DD70354EC631238CA3445 - -61626364656667686263646566676869636465666768696A6465666768696A6B65666768696A\ -6B6C666768696A6B6C6D6768696A6B6C6D6E68696A6B6C6D6E6F696A6B6C6D6E6F706A6B6C6D\ -6E6F70716B6C6D6E6F7071726C6D6E6F707172736D6E6F70717273746E6F707172737475:\ -8E959B75DAE313DA8CF4F72814FC143F8F7779C6EB9F7FA17299AEADB6889018\ -501D289E4900F7E4331B99DEC4B5433AC7D329EEB6DD26545E96E55B874BE909 - -3132333435363738393031323334353637383930313233343536373839303132\ -3334353637383930313233343536373839303132333435363738393031323334\ -35363738393031323334353637383930:\ -72EC1EF1124A45B047E8B7C75A932195135BB61DE24EC0D1914042246E0AEC3A\ -2354E093D76F3048B456764346900CB130D2A4FD5DD16ABB5E30BCB850DEE843 - -[Skein-512(224)] -:\ -1541AE9FC3EBE24EB758CCB1FD60C2C31A9EBFE65B220086E7819E25 - -CC:\ -23F031A6A4378039B66A5A178BAD217EAEC094B7FCBA663A47DDCF33 - -41FB:\ -B9CAAA9DDAF14985F6A3322C8F0BD182BDFB2DC3CABDFF56F14940B1 - -1F877C:\ -F320534DD6AB164DBF32194E8DF50638BE81B3442911E116CD004959 - -C1ECFDFC:\ -A2AE4B71475C13CAB784E7439B1B46A7C43F65CA7131AE0DBDC881BD - -21F134AC57:\ -300D8A0EA0151A88AC8F4115878C65A7CF46546E091298AEF70414A9 - -C6F50BB74E29:\ -1C727F7CC34DCA0B45545E642475F05356A51235DA43DEBFD9D4A9FA - -119713CC83EEEF:\ -3F6E59BE0AB8CE2AF98695BDB82DB02484DD32B8BEC6FF990FE62A2F - -4A4F202484512526:\ -DB2C2598BD3C70E7A692BC17A05F4766AE774EF17BFF1903F1E0E333 - -1F66AB4185ED9B6375:\ -9567A563C89743C3EC317902331F1D6B44D507E1AD3831895CB84ADA - -EED7422227613B6F53C9:\ -F3FD124C573369CC33FA357B53B5A728AFDDD0E88E0709B9529DEC86 - -EAEED5CDFFD89DECE455F1:\ -BC4CCEA347C20202D9A788E940E4C6A04F01AD9BE95B04E057E330D4 - -5BE43C90F22902E4FE8ED2D3:\ -58C4C23F268A352D4D060D9FE05B8F9439AE5C6E684E48144C9416D1 - -A746273228122F381C3B46E4F1:\ -146E2AF3E7964E03B2E49B83AFA070DE29A92378E5F74445A29CFB37 - -3C5871CD619C69A63B540EB5A625:\ -0508EEEA8E53F9B54F4B3DA38A65D20B3F64E03C4E4E807E2AF400BA - -FA22874BCC068879E8EF11A69F0722:\ -616C6D8209D8985CF498EA61D00DB2C4A2A448766281EDAA29F42AD7 - -52A608AB21CCDD8A4457A57EDE782176:\ -56BD9FF5DF1FD7F90CCD4463CFAE358CB4B9682083D76C46A29CFA81 - -82E192E4043DDCD12ECF52969D0F807EED:\ -65E27CABFF039416847DA007BD52C4F156707FE23CCABAA0534B0A8A - -75683DCB556140C522543BB6E9098B21A21E:\ -7CDE364D7C4BB5FAB5ACE235B9B772F3DF38A0608D08FD312CF38558 - -06E4EFE45035E61FAAF4287B4D8D1F12CA97E5:\ -9B4E2ED839D7A996111C2DDA1B38C080843F6BF1EAA436D8323CDBCD - -E26193989D06568FE688E75540AEA06747D9F851:\ -E262D8F26587552677CAE10464A72C914B3AEC2460A462F0EB9F900A - -D8DC8FDEFBDCE9D44E4CBAFE78447BAE3B5436102A:\ -4C5A54AAD044BC8819FC2D895FBEAEE6AA5AAAE3094FB2ABA671A5DA - -57085FD7E14216AB102D8317B0CB338A786D5FC32D8F:\ -46640BA3C20AC292DC61DA325F3E9FDB90B5ADF3C0B18910EFA2B463 - -A05404DF5DBB57697E2C16FA29DEFAC8AB3560D6126FA0:\ -C5908366A0986227FED0F781D44D0D1F6E82C3F4F13BA039E584D138 - -AECBB02759F7433D6FCB06963C74061CD83B5B3FFA6F13C6:\ -59DB014CAC582E5242C03910E8B2A2C2DE3BF6E1051038A1D0E1B18C - -AAFDC9243D3D4A096558A360CC27C8D862F0BE73DB5E88AA55:\ -FC81767CA03BEAE9D7047A68C9C11387A219C8A41C3575A1D76C74A2 - -7BC84867F6F9E9FDC3E1046CAE3A52C77ED485860EE260E30B15:\ -93C0C5B021AD05F372DE7D8ED85E4A62AAB60D1B1916AD0274FB829E - -FAC523575A99EC48279A7A459E98FF901918A475034327EFB55843:\ -6F9190F15AFC1193C170FBA6E12205A13181C9E4AE45C737A619D6C9 - -0F8B2D8FCFD9D68CFFC17CCFB117709B53D26462A3F346FB7C79B85E:\ -59FF99C3D587404053F312CA731778AFD2B25B28AC66265C6704E1B0 - -A963C3E895FF5A0BE4824400518D81412F875FA50521E26E85EAC90C04:\ -0E0F9EAE23B2CBE152C03A024F25874292A4C43BC33A8E0A71EF30CD - -03A18688B10CC0EDF83ADF0A84808A9718383C4070C6C4F295098699AC2C:\ -9003F81632338473A42E6C146F623AF03E2B3A84D480ED60BC46244A - -84FB51B517DF6C5ACCB5D022F8F28DA09B10232D42320FFC32DBECC3835B29:\ -A02BF7A5DD4F19026A185B6D235EE69028C9FE79DE1DA23540E346C4 - -9F2FCC7C90DE090D6B87CD7E9718C1EA6CB21118FC2D5DE9F97E5DB6AC1E9C10:\ -2A30AB062D6017B6837652C64A7D33D01BF8B1F2D6D67567D8E52403 - -DE8F1B3FAA4B7040ED4563C3B8E598253178E87E4D0DF75E4FF2F2DEDD5A0BE0\ -46:\ -F7EFC8E93C910FF48EB19A150B5A68551D53A697ECF425BA4A0A4339 - -62F154EC394D0BC757D045C798C8B87A00E0655D0481A7D2D9FB58D93AEDC676\ -B5A0:\ -D303345BBA22F070013A1220D9B437FCC98F5A9C4FB34C1608FAA528 - -B2DCFE9FF19E2B23CE7DA2A4207D3E5EC7C6112A8A22AEC9675A886378E14E5B\ -FBAD4E:\ -B4FC1D2805F90B4B4A1179A49FB11D5B2669D13AAF744B84DFE2DCA9 - -47F5697AC8C31409C0868827347A613A3562041C633CF1F1F86865A576E02835\ -ED2C2492:\ -A2A83B496729CA27349DD9D6F7C67107277775A3B1066D25E6F0CFBE - -512A6D292E67ECB2FE486BFE92660953A75484FF4C4F2ECA2B0AF0EDCDD4339C\ -6B2EE4E542:\ -4A4EF2ADDECFFF390F4294718AE199FFEE59DD8AA8860AFE6385A764 - -973CF2B4DCF0BFA872B41194CB05BB4E16760A1840D8343301802576197EC19E\ -2A1493D8F4FB:\ -59D1E2B79593483456AB50898F12B56076125F93FC9B62EADA31EB58 - -80BEEBCD2E3F8A9451D4499961C9731AE667CDC24EA020CE3B9AA4BBC0A7F79E\ -30A934467DA4B0:\ -AECEE981C52C13CFD8DF10B352B8E2FBF1436533C985DC842881488B - -7ABAA12EC2A7347674E444140AE0FB659D08E1C66DECD8D6EAE925FA451D65F3\ -C0308E29446B8ED3:\ -0622DDAB744D3158D334321B54DF50CF392A0BB31ACA5A70B06D9360 - -C88DEE9927679B8AF422ABCBACF283B904FF31E1CAC58C7819809F65D5807D46\ -723B20F67BA610C2B7:\ -C6C286FA7FED3422DF5082ECABA3124B4DAE8106A54FCCA63E85268A - -01E43FE350FCEC450EC9B102053E6B5D56E09896E0DDD9074FE138E603821027\ -0C834CE6EADC2BB86BF6:\ -E7D40A7106E6813F7AAF483379ADAD987F36F91D09C91E9D26A3D8F5 - -337023370A48B62EE43546F17C4EF2BF8D7ECD1D49F90BAB604B839C2E6E5BD2\ -1540D29BA27AB8E309A4B7:\ -F446FC32046C86C97F49FD230C39C59A7871215E036D27AE6A47EF0F - -6892540F964C8C74BD2DB02C0AD884510CB38AFD4438AF31FC912756F3EFEC6B\ -32B58EBC38FC2A6B913596A8:\ -3329A838C163C43D65DD865FD5F023F1FF389BF03EBC4442BF99DC2E - -F5961DFD2B1FFFFDA4FFBF30560C165BFEDAB8CE0BE525845DEB8DC61004B7DB\ -38467205F5DCFB34A2ACFE96C0:\ -0CF599A4497A8193961B9B44C498786F9F90867A5E40E0CA71F433EA - -CA061A2EB6CEED8881CE2057172D869D73A1951E63D57261384B80CEB5451E77\ -B06CF0F5A0EA15CA907EE1C27EBA:\ -403C4D00CEB423A7E997585317FBA3D3C8D5D16FB4D73E2969605CFD - -1743A77251D69242750C4F1140532CD3C33F9B5CCDF7514E8584D4A5F9FBD730\ -BCF84D0D4726364B9BF95AB251D9BB:\ -118B7A682A6D05DDDADE062F944CA129DC1D58430D72203A5AF62DF0 - -D8FABA1F5194C4DB5F176FABFFF856924EF627A37CD08CF55608BBA8F1E324D7\ -C7F157298EABC4DCE7D89CE5162499F9:\ -FD63B77D42B249F2DD6197C9F19CF530F3D2F821DAF3C2C61C342685 - -BE9684BE70340860373C9C482BA517E899FC81BAAA12E5C6D7727975D1D41BA8\ -BEF788CDB5CF4606C9C1C7F61AED59F97D:\ -83976BC85DB2490589B2D6DC28310C0F3F040E9B6176BFC5761A5423 - -7E15D2B9EA74CA60F66C8DFAB377D9198B7B16DEB6A1BA0EA3C7EE2042F89D37\ -86E779CF053C77785AA9E692F821F14A7F51:\ -042F5CA6D3875F640603D5F21755DF11768E719FEAC6E823A0172409 - -9A219BE43713BD578015E9FDA66C0F2D83CAC563B776AB9F38F3E4F7EF229CB4\ -43304FBA401EFB2BDBD7ECE939102298651C86:\ -EC86D53C6D7205C6DB9028A7225D24811524A6F40A8FC90DEEFCEE50 - -C8F2B693BD0D75EF99CAEBDC22ADF4088A95A3542F637203E283BBC3268780E7\ -87D68D28CC3897452F6A22AA8573CCEBF245972A:\ -3C81E8DA5C4C8C711500BC756AA1D0942275A622691A600033FFE36E - -EC0F99711016C6A2A07AD80D16427506CE6F441059FD269442BAAA28C6CA037B\ -22EEAC49D5D894C0BF66219F2C08E9D0E8AB21DE52:\ -C460AD97BC680BD9C535560934A841010A822A681F85A50CA27C31B5 - -0DC45181337CA32A8222FE7A3BF42FC9F89744259CFF653504D6051FE84B1A7F\ -FD20CB47D4696CE212A686BB9BE9A8AB1C697B6D6A33:\ -3037D5CE1604341DA47B20BF11B59CDBF79233CFE7318D974C00E0E0 - -DE286BA4206E8B005714F80FB1CDFAEBDE91D29F84603E4A3EBC04686F99A46C\ -9E880B96C574825582E8812A26E5A857FFC6579F63742F:\ -43885645BBBBD5A695EDAF58079DEC1F3D6F23C32D327B38D38340F4 - -EEBCC18057252CBF3F9C070F1A73213356D5D4BC19AC2A411EC8CDEEE7A571E2\ -E20EAF61FD0C33A0FFEB297DDB77A97F0A415347DB66BCAF:\ -BD0170B17230106BCEB4FF173AAD9E41BAE953BA025B4B4CD8AA81A9 - -416B5CDC9FE951BD361BD7ABFC120A5054758EBA88FDD68FD84E39D3B09AC254\ -97D36B43CBE7B85A6A3CEBDA8DB4E5549C3EE51BB6FCB6AC1E:\ -A1E1F99A1F114320F36266220E3B7C5BF2A509CA890DA2EEB1177ED8 - -5C5FAF66F32E0F8311C32E8DA8284A4ED60891A5A7E50FB2956B3CBAA79FC66C\ -A376460E100415401FC2B8518C64502F187EA14BFC9503759705:\ -E8970C064C1421C07BB8F06B709E4500C7B5D9DB6524D9834C1CDB3B - -7167E1E02BE1A7CA69D788666F823AE4EEF39271F3C26A5CF7CEE05BCA831610\ -66DC2E217B330DF821103799DF6D74810EED363ADC4AB99F36046A:\ -C63F1FA3D6E1F95261F3105A5A2DE1531B4285CCF9F94A376C0BF2AE - -2FDA311DBBA27321C5329510FAE6948F03210B76D43E7448D1689A063877B6D1\ -4C4F6D0EAA96C150051371F7DD8A4119F7DA5C483CC3E6723C01FB7D:\ -25535A1A8615863550DB80FEC1D9C1527DC26996F83CE5368E77E083 - -95D1474A5AAB5D2422ACA6E481187833A6212BD2D0F91451A67DD786DFC91DFE\ -D51B35F47E1DEB8A8AB4B9CB67B70179CC26F553AE7B569969CE151B8D:\ -1BA7DF7DCBB08D251322DF8040429943699C41BF27B1CAEAFCE3EC8A - -C71BD7941F41DF044A2927A8FF55B4B467C33D089F0988AA253D294ADDBDB325\ -30C0D4208B10D9959823F0C0F0734684006DF79F7099870F6BF53211A88D:\ -DC889CFDE54D608BCBE8807CDE65BD7DD74CB4EAB62B64C27510F69B - -F57C64006D9EA761892E145C99DF1B24640883DA79D9ED5262859DCDA8C3C32E\ -05B03D984F1AB4A230242AB6B78D368DC5AAA1E6D3498D53371E84B0C1D4BA:\ -23F31697AC576E97FE5A65EEFEA633DFFE7270B370C6501CF30F708D - -E926AE8B0AF6E53176DBFFCC2A6B88C6BD765F939D3D178A9BDE9EF3AA131C61\ -E31C1E42CDFAF4B4DCDE579A37E150EFBEF5555B4C1CB40439D835A724E2FAE7:\ -62757F1F3AE853A0A588E5B12FF98B77BE7A33A6771A5D2460C11BD3 - -16E8B3D8F988E9BB04DE9C96F2627811C973CE4A5296B4772CA3EEFEB80A652B\ -DF21F50DF79F32DB23F9F73D393B2D57D9A0297F7A2F2E79CFDA39FA393DF1AC\ -00:\ -262C5045797C6E74C0C2771171862DB0BB64881925BC6972EB370AB8 - -FC424EEB27C18A11C01F39C555D8B78A805B88DBA1DC2A42ED5E2C0EC737FF68\ -B2456D80EB85E11714FA3F8EABFB906D3C17964CB4F5E76B29C1765DB03D91BE\ -37FC:\ -B81D30AFBC576EBD8062413AC329E0D9F4F31AA3742C38D80B627689 - -ABE3472B54E72734BDBA7D9158736464251C4F21B33FBBC92D7FAC9A35C4E332\ -2FF01D2380CBAA4EF8FB07D21A2128B7B9F5B6D9F34E13F39C7FFC2E72E47888\ -599BA5:\ -DBF958A2735DAD5F8274B1D8782E301B1D91F3429BC957ACD2C893B6 - -36F9F0A65F2CA498D739B944D6EFF3DA5EBBA57E7D9C41598A2B0E4380F3CF4B\ -479EC2348D015FFE6256273511154AFCF3B4B4BF09D6C4744FDD0F62D75079D4\ -40706B05:\ -0E95AA29820434A6A46B9D7B34F83D73DD75BBCA59FCB608EB416ADD - -ABC87763CAE1CA98BD8C5B82CABA54AC83286F87E9610128AE4DE68AC95DF5E3\ -29C360717BD349F26B872528492CA7C94C2C1E1EF56B74DBB65C2AC351981FDB\ -31D06C77A4:\ -509F1A9C348B996004671933D9D6F2B02B8DBF4B16738D5796901063 - -94F7CA8E1A54234C6D53CC734BB3D3150C8BA8C5F880EAB8D25FED13793A9701\ -EBE320509286FD8E422E931D99C98DA4DF7E70AE447BAB8CFFD92382D8A77760\ -A259FC4FBD72:\ -93CE54887AD50DC61E2F7EE8F474A87090292AF62F37D7A95C9DD708 - -13BD2811F6ED2B6F04FF3895ACEED7BEF8DCD45EB121791BC194A0F806206BFF\ -C3B9281C2B308B1A729CE008119DD3066E9378ACDCC50A98A82E20738800B6CD\ -DBE5FE9694AD6D:\ -3672E38180921DCFEED32113CF65C2216C2D617F4EA91D9F2C20950A - -1EED9CBA179A009EC2EC5508773DD305477CA117E6D569E66B5F64C6BC64801C\ -E25A8424CE4A26D575B8A6FB10EAD3FD1992EDDDEEC2EBE7150DC98F63ADC323\ -7EF57B91397AA8A7:\ -8363106BB80BA7FB88EED05D42782F92F1EF1547A8E7F02C0EFA792E - -BA5B67B5EC3A3FFAE2C19DD8176A2EF75C0CD903725D45C9CB7009A900C0B0CA\ -7A2967A95AE68269A6DBF8466C7B6844A1D608AC661F7EFF00538E323DB5F2C6\ -44B78B2D48DE1A08AA:\ -2C02729FA9D8E97BB37DDF73D073F329216BFD7B4705DD47FC8AB53E - -0EFA26AC5673167DCACAB860932ED612F65FF49B80FA9AE65465E5542CB62075\ -DF1C5AE54FBA4DB807BE25B070033EFA223BDD5B1D3C94C6E1909C02B620D4B1\ -B3A6C9FED24D70749604:\ -1C152480D970CC4B452C49F1DF9EBC6E0510CE60882956C2DB0DEA16 - -BBFD933D1FD7BF594AC7F435277DC17D8D5A5B8E4D13D96D2F64E771ABBD51A5\ -A8AEA741BECCBDDB177BCEA05243EBD003CFDEAE877CCA4DA94605B67691919D\ -8B033F77D384CA01593C1B:\ -5F0D066AB3BB235D9054DE4D3ADE14CE57ADC4D3FA6FA0C0E61BADAB - -90078999FD3C35B8AFBF4066CBDE335891365F0FC75C1286CDD88FA51FAB94F9\ -B8DEF7C9AC582A5DBCD95817AFB7D1B48F63704E19C2BAA4DF347F48D4A6D603\ -013C23F1E9611D595EBAC37C:\ -937A74032C1D8A74140D2E8A528D1DE16E98734B9D32367EBD95F759 - -64105ECA863515C20E7CFBAA0A0B8809046164F374D691CDBD6508AAABC1819F\ -9AC84B52BAFC1B0FE7CDDBC554B608C01C8904C669D8DB316A0953A4C68ECE32\ -4EC5A49FFDB59A1BD6A292AA0E:\ -3BE59D99C8B12894C2394FF84AAC78377D158F62BF9C722462FC3298 - -D4654BE288B9F3B711C2D02015978A8CC57471D5680A092AA534F7372C71CEAA\ -B725A383C4FCF4D8DEAA57FCA3CE056F312961ECCF9B86F14981BA5BED6AB5B4\ -498E1F6C82C6CAE6FC14845B3C8A:\ -123E369DF8D28D008F8B8C9B919F6FBAD260E00E788D4BE4F7979FB8 - -12D9394888305AC96E65F2BF0E1B18C29C90FE9D714DD59F651F52B88B3008C5\ -88435548066EA2FC4C101118C91F32556224A540DE6EFDDBCA296EF1FB00341F\ -5B01FECFC146BDB251B3BDAD556CD2:\ -8AAB941709671B533C4C436FFA4DDA06DCD067F7AE2B8B7B46001256 - -871A0D7A5F36C3DA1DFCE57ACD8AB8487C274FAD336BC137EBD6FF4658B547C1\ -DCFAB65F037AA58F35EF16AFF4ABE77BA61F65826F7BE681B5B6D5A1EA8085E2\ -AE9CD5CF0991878A311B549A6D6AF230:\ -E1D0554DD5206D68812FE15A55F567D6043EE6F0ECA6D85465816FCE - -E90B4FFEF4D457BC7711FF4AA72231CA25AF6B2E206F8BF859D8758B89A7CD36\ -105DB2538D06DA83BAD5F663BA11A5F6F61F236FD5F8D53C5E89F183A3CEC615\ -B50C7C681E773D109FF7491B5CC22296C5:\ -172C06DF6E5FBE26D9A0612E38EF6D7F6C91A2E819A25114159FF98D - -E728DE62D75856500C4C77A428612CD804F30C3F10D36FB219C5CA0AA30726AB\ -190E5F3F279E0733D77E7267C17BE27D21650A9A4D1E32F649627638DBADA970\ -2C7CA303269ED14014B2F3CF8B894EAC8554:\ -02C877BB37D2C7773E32F4E89C62FF8DA920A70007782EDB73984053 - -6348F229E7B1DF3B770C77544E5166E081850FA1C6C88169DB74C76E42EB983F\ -ACB276AD6A0D1FA7B50D3E3B6FCD799EC97470920A7ABED47D288FF883E24CA2\ -1C7F8016B93BB9B9E078BDB9703D2B781B616E:\ -2627BD23534A9A41CECB2F4355BC6827325277BCC3F2746C8BA43147 - -4B127FDE5DE733A1680C2790363627E63AC8A3F1B4707D982CAEA258655D9BF1\ -8F89AFE54127482BA01E08845594B671306A025C9A5C5B6F93B0A39522DC8774\ -37BE5C2436CBF300CE7AB6747934FCFC30AEAAF6:\ -2C9AB3D8D819E7C5432B984A62846E19ED71C2FEED4B050508251210 - -08461F006CFF4CC64B752C957287E5A0FAABC05C9BFF89D23FD902D324C79903\ -B48FCB8F8F4B01F3E4DDB483593D25F000386698F5ADE7FAADE9615FDC50D327\ -85EA51D49894E45BAA3DC707E224688C6408B68B11:\ -75AFB673856DF404A0504FD52FC9DD6E3249F257D0DC38D5E8A2D253 - -68C8F8849B120E6E0C9969A5866AF591A829B92F33CD9A4A3196957A148C4913\ -8E1E2F5C7619A6D5EDEBE995ACD81EC8BB9C7B9CFCA678D081EA9E25A75D39DB\ -04E18D475920CE828B94E72241F24DB72546B352A0E4:\ -A01AA45810D1055282DC385A7E540337444F8168ED598DECC9218C81 - -B8D56472954E31FB54E28FCA743F84D8DC34891CB564C64B08F7B71636DEBD64\ -CA1EDBDBA7FC5C3E40049CE982BBA8C7E0703034E331384695E9DE76B5104F2F\ -BC4535ECBEEBC33BC27F29F18F6F27E8023B0FBB6F563C:\ -2F9FEF4B937E6BEB5C7BB1ADF350DC0AF2736049FC4A7DBB653B97C2 - -0D58AC665FA84342E60CEFEE31B1A4EACDB092F122DFC68309077AED1F3E528F\ -578859EE9E4CEFB4A728E946324927B675CD4F4AC84F64DB3DACFE850C1DD187\ -44C74CECCD9FE4DC214085108F404EAB6D8F452B5442A47D:\ -8AEFE7AFB36C05E360FFEE24E065B5490A3CA34098D21F8DBC268463 - -1755E2D2E5D1C1B0156456B539753FF416651D44698E87002DCF61DCFA2B4E72\ -F264D9AD591DF1FDEE7B41B2EB00283C5AEBB3411323B672EAA145C512518510\ -4F20F335804B02325B6DEA65603F349F4D5D8B782DD3469CCD:\ -4AE1D45A7B08465D33C494219CE9FFE225D56FCA002CD7CD1A696C7C - -B180DE1A611111EE7584BA2C4B020598CD574AC77E404E853D15A101C6F5A2E5\ -C801D7D85DC95286A1804C870BB9F00FD4DCB03AA8328275158819DCAD7253F3\ -E3D237AEAA7979268A5DB1C6CE08A9EC7C2579783C8AFC1F91A7:\ -36F763C8892E45F107569438030FE9A67E6DD7297746D817D85CBA56 - -CF3583CBDFD4CBC17063B1E7D90B02F0E6E2EE05F99D77E24E560392535E47E0\ -5077157F96813544A17046914F9EFB64762A23CF7A49FE52A0A4C01C630CFE87\ -27B81FB99A89FF7CC11DCA5173057E0417B8FE7A9EFBA6D95C555F:\ -A6D391ABFEB54E66CF5EEA2E944C0CAE0CBE06FEBD27A31D1DC19372 - -072FC02340EF99115BAD72F92C01E4C093B9599F6CFC45CB380EE686CB5EB019\ -E806AB9BD55E634AB10AA62A9510CC0672CD3EDDB589C7DF2B67FCD3329F61B1\ -A4441ECA87A33C8F55DA4FBBAD5CF2B2527B8E983BB31A2FADEC7523:\ -74810333181351F6AE6E4C643F0BF6490D1F18193E57F0C11E781316 - -76EECF956A52649F877528146DE33DF249CD800E21830F65E90F0F25CA9D6540\ -FDE40603230ECA6760F1139C7F268DEBA2060631EEA92B1FFF05F93FD5572FBE\ -29579ECD48BC3A8D6C2EB4A6B26E38D6C5FBF2C08044AEEA470A8F2F26:\ -1940B9DF8D114F8A6D8F20B5767F1DBCDF421B9BAB5ED904E690CAE1 - -7ADC0B6693E61C269F278E6944A5A2D8300981E40022F839AC644387BFAC9086\ -650085C2CDC585FEA47B9D2E52D65A2B29A7DC370401EF5D60DD0D21F9E2B90F\ -AE919319B14B8C5565B0423CEFB827D5F1203302A9D01523498A4DB10374:\ -3288B06A5A6E325FE541A1DFCF8C36D855BE30698D0EB152FC9662D5 - -E1FFFA9826CCE8B86BCCEFB8794E48C46CDF372013F782ECED1E378269B7BE2B\ -7BF51374092261AE120E822BE685F2E7A83664BCFBE38FE8633F24E633FFE198\ -8E1BC5ACF59A587079A57A910BDA60060E85B5F5B6F776F0529639D9CCE4BD:\ -F365EF50C98FC089CC2C8110E2B68238BA29CA13263BAFC60BA75CC7 - -69F9ABBA65592EE01DB4DCE52DBAB90B08FC04193602792EE4DAA263033D5908\ -1587B09BBE49D0B49C9825D22840B2FF5D9C5155F975F8F2C2E7A90C75D2E4A8\ -040FE39F63BBAFB403D9E28CC3B86E04E394A9C9E8065BD3C85FA9F0C7891600:\ -D835703EEE7C6379BFCA0FF5F1D3693FD7ADC6EF2CC6DB19720E479D - -38A10A352CA5AEDFA8E19C64787D8E9C3A75DBF3B8674BFAB29B5DBFC15A63D1\ -0FAE66CD1A6E6D2452D557967EAAD89A4C98449787B0B3164CA5B717A93F24EB\ -0B506CEB70CBBCB8D72B2A72993F909AAD92F044E0B5A2C9AC9CB16A0CA2F81F\ -49:\ -3079FE0A5C096BCFE50A9CE3EF152CFC4380E399FB1CBBB72C8AC37A - -6D8C6E449BC13634F115749C248C17CD148B72157A2C37BF8969EA83B4D6BA8C\ -0EE2711C28EE11495F43049596520CE436004B026B6C1F7292B9C436B055CBB7\ -2D530D860D1276A1502A5140E3C3F54A93663E4D20EDEC32D284E25564F62495\ -5B52:\ -8B481609E6AE190E02920B4292825EA72EE2B6797B891C6979AC31CA - -6EFCBCAF451C129DBE00B9CEF0C3749D3EE9D41C7BD500ADE40CDC65DEDBBBAD\ -B885A5B14B32A0C0D087825201E303288A733842FA7E599C0C514E078F05C821\ -C7A4498B01C40032E9F1872A1C925FA17CE253E8935E4C3C71282242CB716B20\ -89CCC1:\ -9E077CCCCD0F671EE3E2859577B626ABCC2E560D5B9502CD118564FE - -433C5303131624C0021D868A30825475E8D0BD3052A022180398F4CA4423B982\ -14B6BEAAC21C8807A2C33F8C93BD42B092CC1B06CEDF3224D5ED1EC29784444F\ -22E08A55AA58542B524B02CD3D5D5F6907AFE71C5D7462224A3F9D9E53E7E084\ -6DCBB4CE:\ -FCEF079569F9A5FBCB9B7602E4B621D9DCAF0EA2FCD18806828BFC2B - -A873E0C67CA639026B6683008F7AA6324D4979550E9BCE064CA1E1FB97A30B14\ -7A24F3F666C0A72D71348EDE701CF2D17E2253C34D1EC3B647DBCEF2F879F4EB\ -881C4830B791378C901EB725EA5C172316C6D606E0AF7DF4DF7F76E490CD30B2\ -BADF45685F:\ -A7BDD051298A0476784986AB3E968B0EDF1954DE6D44696AB5F92B36 - -006917B64F9DCDF1D2D87C8A6173B64F6587168E80FAA80F82D84F60301E561E\ -312D9FBCE62F39A6FB476E01E925F26BCC91DE621449BE6504C504830AAE3940\ -96C8FC7694651051365D4EE9070101EC9B68086F2EA8F8AB7B811EA8AD934D5C\ -9B62C60A4771:\ -09BC51FD1AF88F5AC845AE39CDC20154440F8382ED919412809787FA - -F13C972C52CB3CC4A4DF28C97F2DF11CE089B815466BE88863243EB318C2ADB1\ -A417CB1041308598541720197B9B1CB5BA2318BD5574D1DF2174AF14884149BA\ -9B2F446D609DF240CE335599957B8EC80876D9A085AE084907BC5961B20BF5F6\ -CA58D5DAB38ADB:\ -3B2CBF2BEED62C035B3D136A601CCCA220A89081C5DC6135E14BBED0 - -E35780EB9799AD4C77535D4DDB683CF33EF367715327CF4C4A58ED9CBDCDD486\ -F669F80189D549A9364FA82A51A52654EC721BB3AAB95DCEB4A86A6AFA93826D\ -B923517E928F33E3FBA850D45660EF83B9876ACCAFA2A9987A254B137C6E140A\ -21691E1069413848:\ -905B512336A509C86F19BE9A5C2D832374DDF642B494546D04DE975A - -64EC021C9585E01FFE6D31BB50D44C79B6993D72678163DB474947A053674619\ -D158016ADB243F5C8D50AA92F50AB36E579FF2DABB780A2B529370DAA299207C\ -FBCDD3A9A25006D19C4F1FE33E4B1EAEC315D8C6EE1E730623FD1941875B924E\ -B57D6D0C2EDC4E78D6:\ -65B10B3379B9680CE849CAB1C3323AE020BCDEEFEC48CC40AB76E173 - -5954BAB512CF327D66B5D9F296180080402624AD7628506B555EEA8382562324\ -CF452FBA4A2130DE3E165D11831A270D9CB97CE8C2D32A96F50D71600BB4CA26\ -8CF98E90D6496B0A6619A5A8C63DB6D8A0634DFC6C7EC8EA9C006B6C456F1B20\ -CD19E781AF20454AC880:\ -AC95FDC67277206C70FA3D9F9FA274DBE5ED8BEB21C4330637405437 - -03D9F92B2C565709A568724A0AFF90F8F347F43B02338F94A03ED32E6F33666F\ -F5802DA4C81BDCE0D0E86C04AFD4EDC2FC8B4141C2975B6F07639B1994C973D9\ -A9AFCE3D9D365862003498513BFA166D2629E314D97441667B007414E739D7FE\ -BF0FE3C32C17AA188A8683:\ -CB94318727F7D2B504BD6FE08FF976E5C3EE7652E91692EBA55C46AC - -F31E8B4F9E0621D531D22A380BE5D9ABD56FAEC53CBD39B1FAB230EA67184440\ -E5B1D15457BD25F56204FA917FA48E669016CB48C1FFC1E1E45274B3B47379E0\ -0A43843CF8601A5551411EC12503E5AAC43D8676A1B2297EC7A0800DBFEE0429\ -2E937F21C005F17411473041:\ -8E0261822B773DD87649D452B4AB2ACE8E9FCCDBEF50CCA7A18E09BF - -758EA3FEA738973DB0B8BE7E599BBEF4519373D6E6DCD7195EA885FC991D8967\ -62992759C2A09002912FB08E0CB5B76F49162AEB8CF87B172CF3AD190253DF61\ -2F77B1F0C532E3B5FC99C2D31F8F65011695A087A35EE4EEE5E334C369D8EE5D\ -29F695815D866DA99DF3F79403:\ -A6FD4E798425D165F93C587422A78E344F3591A79EE4B3D61C6BCC9B - -47C6E0C2B74948465921868804F0F7BD50DD323583DC784F998A93CD1CA4C6EF\ -84D41DC81C2C40F34B5BEE6A93867B3BDBA0052C5F59E6F3657918C382E771D3\ -3109122CC8BB0E1E53C4E3D13B43CE44970F5E0C079D2AD7D7A3549CD75760C2\ -1BB15B447589E86E8D76B1E9CED2:\ -B45C62148B5BE55C5A6CAC66BDE40A23926E4591CCB17FE3FF3C1E3E - -F690A132AB46B28EDFA6479283D6444E371C6459108AFD9C35DBD235E0B6B6FF\ -4C4EA58E7554BD002460433B2164CA51E868F7947D7D7A0D792E4ABF0BE5F450\ -853CC40D85485B2B8857EA31B5EA6E4CCFA2F3A7EF3380066D7D8979FDAC618A\ -AD3D7E886DEA4F005AE4AD05E5065F:\ -71E0E0F46D1DFCF3A4C7611C16AE2A505146C7302B98808BF3EABC09 - -58D6A99BC6458824B256916770A8417040721CCCFD4B79EACD8B65A3767CE5BA\ -7E74104C985AC56B8CC9AEBD16FEBD4CDA5ADB130B0FF2329CC8D611EB14DAC2\ -68A2F9E633C99DE33997FEA41C52A7C5E1317D5B5DAED35EBA7D5A60E45D1FA7\ -EAABC35F5C2B0A0F2379231953322C4E:\ -024AA063C928CF0A61982DEA49CB1D8D8A338AFB25C0FAE0DA7B51DF - -BEFAB574396D7F8B6705E2D5B58B2C1C820BB24E3F4BAE3E8FBCD36DBF734EE1\ -4E5D6AB972AEDD3540235466E825850EE4C512EA9795ABFD33F330D9FD7F79E6\ -2BBB63A6EA85DE15BEAEEA6F8D204A28956059E2632D11861DFB0E65BC07AC8A\ -159388D5C3277E227286F65FF5E5B5AEC1:\ -1D803972FAFB79D78906AA57CB692FC1374B3F707E5BE0937A70005B - -8E58144FA9179D686478622CE450C748260C95D1BA43B8F9B59ABECA8D93488D\ -A73463EF40198B4D16FB0B0707201347E0506FF19D01BEA0F42B8AF9E71A1F1B\ -D168781069D4D338FDEF00BF419FBB003031DF671F4A37979564F69282DE9C65\ -407847DD0DA505AB1641C02DEA4F0D834986:\ -005426EE362D3E6856A3DEBBD31FEAFEFDC707390CCD05ABB8D64C48 - -B55C10EAE0EC684C16D13463F29291BF26C82E2FA0422A99C71DB4AF14DD9C7F\ -33EDA52FD73D017CC0F2DBE734D831F0D820D06D5F89DACC485739144F8CFD47\ -99223B1AFF9031A105CB6A029BA71E6E5867D85A554991C38DF3C9EF8C1E1E9A\ -7630BE61CAABCA69280C399C1FB7A12D12AEFC:\ -282B254274C4E48BC0FEDB609980F95DCFAFB8CAB169D953F757AAAF - -2EEEA693F585F4ED6F6F8865BBAE47A6908AECD7C429E4BEC4F0DE1D0CA0183F\ -A201A0CB14A529B7D7AC0E6FF6607A3243EE9FB11BCF3E2304FE75FFCDDD6C5C\ -2E2A4CD45F63C962D010645058D36571404A6D2B4F44755434D76998E83409C3\ -205AA1615DB44057DB991231D2CB42624574F545:\ -E5A4DCDE82364226300B19F58AC4FCB8B6CEBE1E3BA3DC460AF0249E - -DAB11DC0B047DB0420A585F56C42D93175562852428499F66A0DB811FCDDDAB2\ -F7CDFFED1543E5FB72110B64686BC7B6887A538AD44C050F1E42631BC4EC8A9F\ -2A047163D822A38989EE4AAB01B4C1F161B062D873B1CFA388FD301514F62224\ -157B9BEF423C7783B7AAC8D30D65CD1BBA8D689C2D:\ -24D79533275BC13DB1D99CECC1558612DA7ED65B91EB045FBAC56151 - -42E99A2F80AEE0E001279A2434F731E01D34A44B1A8101726921C0590C30F312\ -0EB83059F325E894A5AC959DCA71CE2214799916424E859D27D789437B9D2724\ -0BF8C35ADBAFCECC322B48AA205B293962D858652ABACBD588BCF6CBC388D099\ -3BD622F96ED54614C25B6A9AA527589EAAFFCF17DDF7:\ -A64A85C821E0D5A6AEFF534C0621ECC69A52D9CAD322693B9985B17F - -3C9B46450C0F2CAE8E3823F8BDB4277F31B744CE2EB17054BDDC6DFF36AF7F49\ -FB8A2320CC3BDF8E0A2EA29AD3A55DE1165D219ADEDDB5175253E2D1489E9B6F\ -DD02E2C3D3A4B54D60E3A47334C37913C5695378A669E9B72DEC32AF5434F93F\ -46176EBF044C4784467C700470D0C0B40C8A088C815816:\ -8904D08F2037217785B2153DD0427C24E34D69BFB31CBE0428110BF9 - -D1E654B77CB155F5C77971A64DF9E5D34C26A3CAD6C7F6B300D39DEB19100946\ -91ADAA095BE4BA5D86690A976428635D5526F3E946F7DC3BD4DBC78999E65344\ -1187A81F9ADCD5A3C5F254BC8256B0158F54673DCC1232F6E918EBFC6C51CE67\ -EAEB042D9F57EEC4BFE910E169AF78B3DE48D137DF4F2840:\ -E35DD40EDC75D0E800E03F53C042E57E4890112322BC3C7262A0E09C - -626F68C18A69A6590159A9C46BE03D5965698F2DAC3DE779B878B3D9C421E0F2\ -1B955A16C715C1EC1E22CE3EB645B8B4F263F60660EA3028981EEBD6C8C3A367\ -285B691C8EE56944A7CD1217997E1D9C21620B536BDBD5DE8925FF71DEC6FBC0\ -6624AB6B21E329813DE90D1E572DFB89A18120C3F606355D25:\ -CC199D06959CE1AE735060E9A83E48F981488E5C4D90CCE5D3C11FA4 - -651A6FB3C4B80C7C68C6011675E6094EB56ABF5FC3057324EBC6477825061F9F\ -27E7A94633ABD1FA598A746E4A577CAF524C52EC1788471F92B8C37F23795CA1\ -9D559D446CAB16CBCDCE90B79FA1026CEE77BF4AB1B503C5B94C2256AD75B3EA\ -C6FD5DCB96ACA4B03A834BFB4E9AF988CECBF2AE597CB9097940:\ -051BAB45E42B163C727A40127280F1A77A4BE63AD66E74F64197D1AD - -8AAF072FCE8A2D96BC10B3C91C809EE93072FB205CA7F10ABD82ECD82CF040B1\ -BC49EA13D1857815C0E99781DE3ADBB5443CE1C897E55188CEAF221AA9681638\ -DE05AE1B322938F46BCE51543B57ECDB4C266272259D1798DE13BE90E10EFEC2\ -D07484D9B21A3870E2AA9E06C21AA2D0C9CF420080A80A91DEE16F:\ -EBD2BAEC5F87230C6BAFC891AC7480863835B0B7FA44888117920E4E - -53F918FD00B1701BD504F8CDEA803ACCA21AC18C564AB90C2A17DA592C7D6968\ -8F6580575395551E8CD33E0FEF08CA6ED4588D4D140B3E44C032355DF1C53156\ -4D7F4835753344345A6781E11CD5E095B73DF5F82C8AE3AD00877936896671E9\ -47CC52E2B29DCD463D90A0C9929128DA222B5A211450BBC0E02448E2:\ -0200F9CDC0113E44BC56CEFC2DE33FA1C922D4D2C6DB542D31FC23FD - -A64599B8A61B5CCEC9E67AED69447459C8DA3D1EC6C7C7C82A7428B9B584FA67\ -E90F68E2C00FBBED4613666E5168DA4A16F395F7A3C3832B3B134BFC9CBAA95D\ -2A0FE252F44AC6681EB6D40AB91C1D0282FED6701C57463D3C5F2BB8C6A7301F\ -B4576AA3B5F15510DB8956FF77478C26A7C09BEA7B398CFC83503F538E:\ -1AFE47E7903A8800A72BEEE759B6D8D7F6454CC31CE4847F70F0AC65 - -0E3AB0E054739B00CDB6A87BD12CAE024B54CB5E550E6C425360C2E87E59401F\ -5EC24EF0314855F0F56C47695D56A7FB1417693AF2A1ED5291F2FEE95F75EED5\ -4A1B1C2E81226FBFF6F63ADE584911C71967A8EB70933BC3F5D15BC91B5C2644\ -D9516D3C3A8C154EE48E118BD1442C043C7A0DBA5AC5B1D5360AAE5B9065:\ -AF7DF737C397F0B2BF0D23279F0D134CBE0D518CE582F3053147EB4C - -A62FC595B4096E6336E53FCDFC8D1CC175D71DAC9D750A6133D23199EAAC2882\ -07944CEA6B16D27631915B4619F743DA2E30A0C00BBDB1BBB35AB852EF3B9AEC\ -6B0A8DCC6E9E1ABAA3AD62AC0A6C5DE765DE2C3711B769E3FDE44A74016FFF82\ -AC46FA8F1797D3B2A726B696E3DEA5530439ACEE3A45C2A51BC32DD055650B:\ -F03AE1D8D584A2C23BE366574802EE9922210E73B74207498C557DA3 - -2B6DB7CED8665EBE9DEB080295218426BDAA7C6DA9ADD2088932CDFFBAA1C141\ -29BCCDD70F369EFB149285858D2B1D155D14DE2FDB680A8B027284055182A0CA\ -E275234CC9C92863C1B4AB66F304CF0621CD54565F5BFF461D3B461BD40DF281\ -98E3732501B4860EADD503D26D6E69338F4E0456E9E9BAF3D827AE685FB1D817:\ -599977A2776A5F79CDC72AC42D00CDB0ECCBD2F90A475C46A53876DB - -10DB509B2CDCABA6C062AE33BE48116A29EB18E390E1BBADA5CA0A2718AFBCD2\ -3431440106594893043CC7F2625281BF7DE2655880966A23705F0C5155C2F5CC\ -A9F2C2142E96D0A2E763B70686CD421B5DB812DACED0C6D65035FDE558E94F26\ -B3E6DDE5BD13980CC80292B723013BD033284584BFF27657871B0CF07A849F4A\ -E2:\ -BC7407854D7697C3228715B18499DC7BED6B6C4D6AB4BD6E6C3EDB9B - -9334DE60C997BDA6086101A6314F64E4458F5FF9450C509DF006E8C547983C65\ -1CA97879175AABA0C539E82D05C1E02C480975CBB30118121061B1EBAC4F8D9A\ -3781E2DB6B18042E01ECF9017A64A0E57447EC7FCBE6A7F82585F7403EE2223D\ -52D37B4BF426428613D6B4257980972A0ACAB508A7620C1CB28EB4E9D30FC413\ -61EC:\ -B04D664E950C5BB962C892A754CCC7AD50DC4C830643B0F76802A402 - -E88AB086891693AA535CEB20E64C7AB97C7DD3548F3786339897A5F0C3903154\ -9CA870166E477743CCFBE016B4428D89738E426F5FFE81626137F17AECFF61B7\ -2DBEE2DC20961880CFE281DFAB5EE38B1921881450E16032DE5E4D55AD8D4FCA\ -609721B0692BAC79BE5A06E177FE8C80C0C83519FB3347DE9F43D5561CB8107B\ -9B5EDC:\ -929B29D079A8A2DB526DF89B04C6AED1B274005594AFF68A924C6F63 - -FD19E01A83EB6EC810B94582CB8FBFA2FCB992B53684FB748D2264F020D3B960\ -CB1D6B8C348C2B54A9FCEA72330C2AAA9A24ECDB00C436ABC702361A82BB8828\ -B85369B8C72ECE0082FE06557163899C2A0EFA466C33C04343A839417057399A\ -63A3929BE1EE4805D6CE3E5D0D0967FE9004696A5663F4CAC9179006A2CEB755\ -42D75D68:\ -FD0F0B90C84940F2E14E5CBF16D516C1628380783CD2061BF597D7BA - -59AE20B6F7E0B3C7A989AFB28324A40FCA25D8651CF1F46AE383EF6D8441587A\ -A1C04C3E3BF88E8131CE6145CFB8973D961E8432B202FA5AF3E09D625FAAD825\ -BC19DA9B5C6C20D02ABDA2FCC58B5BD3FE507BF201263F30543819510C12BC23\ -E2DDB4F711D087A86EDB1B355313363A2DE996B891025E147036087401CCF3CA\ -7815BF3C49:\ -3B5ECFD1B5EC042DAD0D8E65E86A5F21BA72799F0456B260C6AEB3E8 - -77EE804B9F3295AB2362798B72B0A1B2D3291DCEB8139896355830F34B3B3285\ -61531F8079B79A6E9980705150866402FDC176C05897E359A6CB1A7AB067383E\ -B497182A7E5AEF7038E4C96D133B2782917417E391535B5E1B51F47D8ED7E4D4\ -025FE98DC87B9C1622614BFF3D1029E68E372DE719803857CA52067CDDAAD958\ -951CB2068CC6:\ -66684694F3476F12208DCE43C2CCECAAFF8D2452C601B88037020D33 - -B771D5CEF5D1A41A93D15643D7181D2A2EF0A8E84D91812F20ED21F147BEF732\ -BF3A60EF4067C3734B85BC8CD471780F10DC9E8291B58339A677B960218F71E7\ -93F2797AEA349406512829065D37BB55EA796FA4F56FD8896B49B2CD19B43215\ -AD967C712B24E5032D065232E02C127409D2ED4146B9D75D763D52DB98D949D3\ -B0FED6A8052FBB:\ -20851889E5D68DC2BC7C8862EC3C09816CC4F176441FEF8719336A8C - -B32D95B0B9AAD2A8816DE6D06D1F86008505BD8C14124F6E9A163B5A2ADE55F8\ -35D0EC3880EF50700D3B25E42CC0AF050CCD1BE5E555B23087E04D7BF9813622\ -780C7313A1954F8740B6EE2D3F71F768DD417F520482BD3A08D4F222B4EE9DBD\ -015447B33507DD50F3AB4247C5DE9A8ABD62A8DECEA01E3B87C8B927F5B08BEB\ -37674C6F8E380C04:\ -A6169A86418ED26216C7A69E1506880854179800DC03509A58B24575 - -04410E31082A47584B406F051398A6ABE74E4DA59BB6F85E6B49E8A1F7F2CA00\ -DFBA5462C2CD2BFDE8B64FB21D70C083F11318B56A52D03B81CAC5EEC29EB31B\ -D0078B6156786DA3D6D8C33098C5C47BB67AC64DB14165AF65B44544D806DDE5\ -F487D5373C7F9792C299E9686B7E5821E7C8E2458315B996B5677D926DAC57B3\ -F22DA873C601016A0D:\ -55BD56254E8C9194F13A68A5FB08C6A94AE7B23DCFF563D2DB22313E - -8B81E9BADDE026F14D95C019977024C9E13DB7A5CD21F9E9FC491D716164BBAC\ -DC7060D882615D411438AEA056C340CDF977788F6E17D118DE55026855F93270\ -472D1FD18B9E7E812BAE107E0DFDE7063301B71F6CFE4E225CAB3B232905A56E\ -994F08EE2891BA922D49C3DAFEB75F7C69750CB67D822C96176C46BD8A29F170\ -1373FB09A1A6E3C7158F:\ -AE007CD6C37751ADAEBCA977081741AED832DFE8A27FD44BD9326FD4 - -FA6EED24DA6666A22208146B19A532C2EC9BA94F09F1DEF1E7FC13C399A48E41\ -ACC2A589D099276296348F396253B57CB0E40291BD282773656B6E0D8BEA1CDA\ -084A3738816A840485FCF3FB307F777FA5FEAC48695C2AF4769720258C77943F\ -B4556C362D9CBA8BF103AEB9034BAA8EA8BFB9C4F8E6742CE0D52C49EA8E974F\ -339612E830E9E7A9C29065:\ -816990A773A7153A8D3DC3C4FBFA0AC011869D77825C088FF729FFC4 - -9BB4AF1B4F09C071CE3CAFA92E4EB73CE8A6F5D82A85733440368DEE4EB1CBC7\ -B55AC150773B6FE47DBE036C45582ED67E23F4C74585DAB509DF1B8361056454\ -5642B2B1EC463E18048FC23477C6B2AA035594ECD33791AF6AF4CBC2A1166ABA\ -8D628C57E707F0B0E8707CAF91CD44BDB915E0296E0190D56D33D8DDE10B5B60\ -377838973C1D943C22ED335E:\ -96951DA605DC0E6D5580146A8185BEE67247777C71C0C9AED2743B58 - -2167F02118CC62043E9091A647CADBED95611A521FE0D64E8518F16C808AB297\ -725598AE296880A773607A798F7C3CFCE80D251EBEC6885015F9ABF7EAABAE46\ -798F82CB5926DE5C23F44A3F9F9534B3C6F405B5364C2F8A8BDC5CA49C749BED\ -8CE4BA48897062AE8424CA6DDE5F55C0E42A95D1E292CA54FB46A84FBC9CD87F\ -2D0C9E7448DE3043AE22FDD229:\ -FEE912946A41EB4A919B1874FF473424E5B7945001FC6721868F9DC6 - -94B7FA0BC1C44E949B1D7617D31B4720CBE7CA57C6FA4F4094D4761567E389EC\ -C64F6968E4064DF70DF836A47D0C713336B5028B35930D29EB7A7F9A5AF9AD5C\ -F441745BAEC9BB014CEEFF5A41BA5C1CE085FEB980BAB9CF79F2158E03EF7E63\ -E29C38D7816A84D4F71E0F548B7FC316085AE38A060FF9B8DEC36F91AD9EBC0A\ -5B6C338CBB8F6659D342A24368CF:\ -64A39DBA2443003CAAC682AC715EE9AC63CA1C8971F635E39B1DAE4B - -EA40E83CB18B3A242C1ECC6CCD0B7853A439DAB2C569CFC6DC38A19F5C90ACBF\ -76AEF9EA3742FF3B54EF7D36EB7CE4FF1C9AB3BC119CFF6BE93C03E208783335\ -C0AB8137BE5B10CDC66FF3F89A1BDDC6A1EED74F504CBE7290690BB295A872B9\ -E3FE2CEE9E6C67C41DB8EFD7D863CF10F840FE618E7936DA3DCA5CA6DF933F24\ -F6954BA0801A1294CD8D7E66DFAFEC:\ -472D17BBF29BD8979D56C0B3C5361FFC1750C6D8BC2DD31DE130268F - -157D5B7E4507F66D9A267476D33831E7BB768D4D04CC3438DA12F9010263EA5F\ -CAFBDE2579DB2F6B58F911D593D5F79FB05FE3596E3FA80FF2F761D1B0E57080\ -055C118C53E53CDB63055261D7C9B2B39BD90ACC32520CBBDBDA2C4FD8856DBC\ -EE173132A2679198DAF83007A9B5C51511AE49766C792A29520388444EBEFE28\ -256FB33D4260439CBA73A9479EE00C63:\ -04D92B3649747B69ED2716C98C0AA8847AAD3763C84249384AE449BF - -836B34B515476F613FE447A4E0C3F3B8F20910AC89A3977055C960D2D5D2B72B\ -D8ACC715A9035321B86703A411DDE0466D58A59769672AA60AD587B8481DE4BB\ -A552A1645779789501EC53D540B904821F32B0BD1855B04E4848F9F8CFE9EBD8\ -911BE95781A759D7AD9724A7102DBE576776B7C632BC39B9B5E19057E226552A\ -5994C1DBB3B5C7871A11F5537011044C53:\ -8FBB7FC5A5931D03E9780DA4D401B78740B2B41D2BAC1A6737AAC648 - -CC7784A4912A7AB5AD3620AAB29BA87077CD3CB83636ADC9F3DC94F51EDF521B\ -2161EF108F21A0A298557981C0E53CE6CED45BDF782C1EF200D29BAB81DD6460\ -586964EDAB7CEBDBBEC75FD7925060F7DA2B853B2B089588FA0F8C16EC6498B1\ -4C55DCEE335CB3A91D698E4D393AB8E8EAC0825F8ADEBEEE196DF41205C01167\ -4E53426CAA453F8DE1CBB57932B0B741D4C6:\ -A442750DFB06A9C15CE4BEDFFBA0C5FFD0919F2EA6B6F39DE1A2845B - -7639B461FFF270B2455AC1D1AFCE782944AEA5E9087EB4A39EB96BB5C3BAAF0E\ -868C8526D3404F9405E79E77BFAC5FFB89BF1957B523E17D341D7323C302EA70\ -83872DD5E8705694ACDDA36D5A1B895AAA16ECA6104C82688532C8BFE1790B5D\ -C9F4EC5FE95BAED37E1D287BE710431F1E5E8EE105BC42ED37D74B1E55984BF1\ -C09FE6A1FA13EF3B96FAEAED6A2A1950A12153:\ -B113771AB71AD0195F2780B75A45852703332474F42A9B5CFFC2040E - -EB6513FC61B30CFBA58D4D7E80F94D14589090CF1D80B1DF2E68088DC6104959\ -BA0D583D585E9578AB0AEC0CF36C48435EB52ED9AB4BBCE7A5ABE679C97AE2DB\ -E35E8CC1D45B06DDA3CF418665C57CBEE4BBB47FA4CAF78F4EE656FEC237FE4E\ -EBBAFA206E1EF2BD0EE4AE71BD0E9B2F54F91DAADF1FEBFD7032381D636B733D\ -CB3BF76FB14E23AFF1F68ED3DBCF75C9B99C6F26:\ -2AA36D8DE97C460350B9037110431FEB7273513BB1BD3AD7EB843A1F - -1594D74BF5DDE444265D4C04DAD9721FF3E34CBF622DAF341FE16B96431F6C4D\ -F1F760D34F296EB97D98D560AD5286FEC4DCE1724F20B54FD7DF51D4BF137ADD\ -656C80546FB1BF516D62EE82BAA992910EF4CC18B70F3F8698276FCFB44E0EC5\ -46C2C39CFD8EE91034FF9303058B4252462F86C823EB15BF481E6B79CC3A0221\ -8595B3658E8B37382BD5048EAED5FD02C37944E73B:\ -91A28B940F7CD8EF11FBBD7AC17C51320CBAC869C6F98C2EF38DDA89 - -4CFA1278903026F66FEDD41374558BE1B585D03C5C55DAC94361DF286D4BD39C\ -7CB8037ED3B267B07C346626449D0CC5B0DD2CF221F7E4C3449A4BE99985D2D5\ -E67BFF2923357DDEAB5ABCB4619F3A3A57B2CF928A022EB27676C6CF80568900\ -4FCA4D41EA6C2D0A4789C7605F7BB838DD883B3AD3E6027E775BCF2628814280\ -99C7FFF95B14C095EA130E0B9938A5E22FC52650F591:\ -7BFC08D9E33C0904F5DE5D075CBD098C3F1611DC0FB068F27700013D - -D3E65CB92CFA79662F6AF493D696A07CCF32AAADCCEFF06E73E8D9F6F909209E\ -66715D6E978788C49EFB9087B170ECF3AA86D2D4D1A065AE0EFC8924F365D676\ -B3CB9E2BEC918FD96D0B43DEE83727C9A93BF56CA2B2E59ADBA85696546A8150\ -67FC7A78039629D4948D157E7B0D826D1BF8E81237BAB7321312FDAA4D521744\ -F988DB6FDF04549D0FDCA393D639C729AF716E9C8BBA48:\ -CBDFDA39718CD2C13A3D1D7C7D6AEC9EE40CDA1165420AEB756EBFB6 - -842CC583504539622D7F71E7E31863A2B885C56A0BA62DB4C2A3F2FD12E79660\ -DC7205CA29A0DC0A87DB4DC62EE47A41DB36B9DDB3293B9AC4BAAE7DF5C6E720\ -1E17F717AB56E12CAD476BE49608AD2D50309E7D48D2D8DE4FA58AC3CFEAFEEE\ -48C0A9EEC88498E3EFC51F54D300D828DDDCCB9D0B06DD021A29CF5CB5B25069\ -15BEB8A11998B8B886E0F9B7A80E97D91A7D01270F9A7717:\ -9D6FB81A85EC0E5015D6913761724F01DEA539A72E1D943DCC414E1F - -6C4B0A0719573E57248661E98FEBE326571F9A1CA813D3638531AE28B4860F23\ -C3A3A8AC1C250034A660E2D71E16D3ACC4BF9CE215C6F15B1C0FC7E77D3D2715\ -7E66DA9CEEC9258F8F2BF9E02B4AC93793DD6E29E307EDE3695A0DF63CBDC0FC\ -66FB770813EB149CA2A916911BEE4902C47C7802E69E405FE3C04CEB5522792A\ -5503FA829F707272226621F7C488A7698C0D69AA561BE9F378:\ -50E9B1E78BA993B8E22D34F2B4095D2017F9517DB8B00290F2505D03 - -51B7DBB7CE2FFEB427A91CCFE5218FD40F9E0B7E24756D4C47CD55606008BDC2\ -7D16400933906FD9F30EFFDD4880022D081155342AF3FB6CD53672AB7FB5B3A3\ -BCBE47BE1FD3A2278CAE8A5FD61C1433F7D350675DD21803746CADCA574130F0\ -1200024C6340AB0CC2CF74F2234669F34E9009EF2EB94823D62B31407F4BA46F\ -1A1EEC41641E84D77727B59E746B8A671BEF936F05BE820759FA:\ -818B55B4DB9EBD9724AD3ADDE2F5956D58B173872944E61C033B2E4B - -83599D93F5561E821BD01A472386BC2FF4EFBD4AED60D5821E84AAE74D807102\ -9810F5E286F8F17651CD27DA07B1EB4382F754CD1C95268783AD09220F550284\ -0370D494BEB17124220F6AFCE91EC8A0F55231F9652433E5CE3489B727716CF4\ -AEBA7DCDA20CD29AA9A859201253F948DD94395ABA9E3852BD1D60DDA7AE5DC0\ -45B283DA006E1CBAD83CC13292A315DB5553305C628DD091146597:\ -9D9D4FF67AA3A0168504CF47FE8B75E27BAE44E6AD6F1203BB0C86D4 - -2BE9BF526C9D5A75D565DD11EF63B979D068659C7F026C08BEA4AF161D85A462\ -D80E45040E91F4165C074C43AC661380311A8CBED59CC8E4C4518E80CD2C78AB\ -1CABF66BFF83EAB3A80148550307310950D034A6286C93A1ECE8929E6385C5E3\ -BB6EA8A7C0FB6D6332E320E71CC4EB462A2A62E2BFE08F0CCAD93E61BEDB5DD0\ -B786A728AB666F07E0576D189C92BF9FB20DCA49AC2D3956D47385E2:\ -F0C22507F52A9EEB923C0D16F408FB291995495172A970556E63627D - -CA76D3A12595A817682617006848675547D3E8F50C2210F9AF906C0E7CE50B44\ -60186FE70457A9E879E79FD4D1A688C70A347361C847BA0DD6AA52936EAF8E58\ -A1BE2F5C1C704E20146D366AEB3853BED9DE9BEFE9569AC8AAEA37A9FB7139A1\ -A1A7D5C748605A8DEFB297869EBEDD71D615A5DA23496D11E11ABBB126B206FA\ -0A7797EE7DE117986012D0362DCEF775C2FE145ADA6BDA1CCB326BF644:\ -4E3014EDD99E0312791C5F493223AED72EA2E03E7F6C127F11B0BE76 - -F76B85DC67421025D64E93096D1D712B7BAF7FB001716F02D33B2160C2C882C3\ -10EF13A576B1C2D30EF8F78EF8D2F465007109AAD93F74CB9E7D7BEF7C9590E8\ -AF3B267C89C15DB238138C45833C98CC4A471A7802723EF4C744A853CF80A0C2\ -568DD4ED58A2C9644806F42104CEE53628E5BDF7B63B0B338E931E31B87C24B1\ -46C6D040605567CEEF5960DF9E022CB469D4C787F4CBA3C544A1AC91F95F:\ -3D5D15DB3A016752B2081C34C565889B4C2A2D2F28475DDD23FFF2C8 - -25B8C9C032EA6BCD733FFC8718FBB2A503A4EA8F71DEA1176189F694304F0FF6\ -8E862A8197B839957549EF243A5279FC2646BD4C009B6D1EDEBF24738197ABB4\ -C992F6B1DC9BA891F570879ACCD5A6B18691A93C7D0A8D38F95B639C1DAEB48C\ -4C2F15CCF5B9D508F8333C32DE78781B41850F261B855C4BEBCC125A380C54D5\ -01C5D3BD07E6B52102116088E53D76583B0161E2A58D0778F091206AABD5A1:\ -D0DBB060ECCF842740BB7D87BE353E220091540C21E8132338EE6236 - -21CFDC2A7CCB7F331B3D2EEFFF37E48AD9FA9C788C3F3C200E0173D99963E1CB\ -CA93623B264E920394AE48BB4C3A5BB96FFBC8F0E53F30E22956ADABC2765F57\ -FB761E147ECBF8567533DB6E50C8A1F894310A94EDF806DD8CA6A0E141C0FA7C\ -9FAE6C6AE65F18C93A8529E6E5B553BF55F25BE2E80A9882BD37F145FECBEB3D\ -447A3C4E46C21524CC55CDD62F521AB92A8BA72B897996C49BB273198B7B1C9E:\ -A5FCAEB00A0376FB2E62D9DF53B47344DDDEE7A7817E9539F5FB6024 - -4E452BA42127DCC956EF4F8F35DD68CB225FB73B5BC7E1EC5A898BBA2931563E\ -74FAFF3B67314F241EC49F4A7061E3BD0213AE826BAB380F1F14FAAB8B0EFDDD\ -5FD1BB49373853A08F30553D5A55CCBBB8153DE4704F29CA2BDEEF0419468E05\ -DD51557CCC80C0A96190BBCC4D77ECFF21C66BDF486459D427F986410F883A80\ -A5BCC32C20F0478BB9A97A126FC5F95451E40F292A4614930D054C851ACD019C\ -CF:\ -77EA65E0DA9F4AF1740DD2F707D5087C5889AC836D118662AE779572 - -FA85671DF7DADF99A6FFEE97A3AB9991671F5629195049880497487867A6C446\ -B60087FAC9A0F2FCC8E3B24E97E42345B93B5F7D3691829D3F8CCD4BB36411B8\ -5FC2328EB0C51CB3151F70860AD3246CE0623A8DC8B3C49F958F8690F8E3860E\ -71EB2B1479A5CEA0B3F8BEFD87ACAF5362435EAECCB52F38617BC6C5C2C6E269\ -EAD1FBD69E941D4AD2012DA2C5B21BCFBF98E4A77AB2AF1F3FDA3233F046D38F\ -1DC8:\ -A60AE324B7407F015AE663E0ADCF6357ACD95CC870D9B2AE6DC210A5 - -E90847AE6797FBC0B6B36D6E588C0A743D725788CA50B6D792352EA8294F5BA6\ -54A15366B8E1B288D84F5178240827975A763BC45C7B0430E8A559DF4488505E\ -009C63DA994F1403F407958203CEBB6E37D89C94A5EACF6039A327F6C4DBBC7A\ -2A307D976AA39E41AF6537243FC218DFA6AB4DD817B6A397DF5CA69107A91987\ -99ED248641B63B42CB4C29BFDD7975AC96EDFC274AC562D0474C60347A078CE4\ -C25E88:\ -133061E876D3FD0983A24E86BC112897DEA66C432A709C04E9524165 - -F6D5C2B6C93954FC627602C00C4CA9A7D3ED12B27173F0B2C9B0E4A5939398A6\ -65E67E69D0B12FB7E4CEB253E8083D1CEB724AC07F009F094E42F2D6F2129489\ -E846EAFF0700A8D4453EF453A3EDDC18F408C77A83275617FABC4EA3A2833AA7\ -3406C0E966276079D38E8E38539A70E194CC5513AAA457C699383FD1900B1E72\ -BDFB835D1FD321B37BA80549B078A49EA08152869A918CA57F5B54ED71E4FD3A\ -C5C06729:\ -A75CC22D478664C1F47A35DCB85007549B614AF79077AAE116364A49 - -CF8562B1BED89892D67DDAAF3DEEB28246456E972326DBCDB5CF3FB289ACA01E\ -68DA5D59896E3A6165358B071B304D6AB3D018944BE5049D5E0E2BB819ACF67A\ -6006111089E6767132D72DD85BEDDCBB2D64496DB0CC92955AB4C6234F1EEA24\ -F2D51483F2E209E4589BF9519FAC51B4D061E801125E605F8093BB6997BC163D\ -551596FE4AB7CFAE8FB9A90F6980480CE0C229FD1675409BD788354DAF316240\ -CFE0AF93EB:\ -617AC34A250B3212FDDCFCBE33DFF316C607DF729FD8235FF8666344 - -2ACE31ABB0A2E3267944D2F75E1559985DB7354C6E605F18DC8470423FCA30B7\ -331D9B33C4A4326783D1CAAE1B4F07060EFF978E4746BF0C7E30CD61040BD5EC\ -2746B29863EB7F103EBDA614C4291A805B6A4C8214230564A0557BC7102E0BD3\ -ED23719252F7435D64D210EE2AAFC585BE903FA41E1968C50FD5D5367926DF7A\ -05E3A42CF07E656FF92DE73B036CF8B19898C0CB34557C0C12C2D8B84E91181A\ -F467BC75A9D1:\ -212BD8E7FD102DD1FECD99DA298A2532D58E5D1EA8B6C0E16448CDA5 - -0D8D09AED19F1013969CE5E7EB92F83A209AE76BE31C754844EA9116CEB39A22\ -EBB6003017BBCF26555FA6624185187DB8F0CB3564B8B1C06BF685D47F3286ED\ -A20B83358F599D2044BBF0583FAB8D78F854FE0A596183230C5EF8E54426750E\ -AF2CC4E29D3BDD037E734D863C2BD9789B4C243096138F7672C232314EFFDFC6\ -513427E2DA76916B5248933BE312EB5DDE4CF70804FB258AC5FB82D58D08177A\ -C6F4756017FFF5:\ -0D1AD5DEF3F7C71B86B7CAB0008A767E52F1AED5CE18D2082F1CC912 - -C3236B73DEB7662BF3F3DAA58F137B358BA610560EF7455785A9BEFDB035A066\ -E90704F929BD9689CEF0CE3BDA5ACF4480BCEB8D09D10B098AD8500D9B6071DF\ -C3A14AF6C77511D81E3AA8844986C3BEA6F469F9E02194C92868CD5F51646256\ -798FF0424954C1434BDFED9FACB390B07D342E992936E0F88BFD0E884A0DDB67\ -9D0547CCDEC6384285A45429D115AC7D235A717242021D1DC35641F5F0A48E84\ -45DBA58E6CB2C8EA:\ -61CAF8F25D0203A6BF9613113F6695B3333195F56FFDE003073D982B - -B39FEB8283EADC63E8184B51DF5AE3FD41AAC8A963BB0BE1CD08AA5867D8D910\ -C669221E73243360646F6553D1CA05A84E8DC0DE05B6419EC349CA994480193D\ -01C92525F3FB3DCEFB08AFC6D26947BDBBFD85193F53B50609C6140905C53A66\ -86B58E53A319A57B962331EDE98149AF3DE3118A819DA4D76706A0424B4E1D29\ -10B0ED26AF61D150EBCB46595D4266A0BD7F651BA47D0C7F179CA28545007D92\ -E8419D48FDFBD744CE:\ -67BC257E7259880EC5FE45D57064F2818C3BA2C3E9F1964FA9FD385C - -A983D54F503803E8C7999F4EDBBE82E9084F422143A932DDDDC47A17B0B7564A\ -7F37A99D0786E99476428D29E29D3C197A72BFAB1342C12A0FC4787FD7017D7A\ -6174049EA43B5779169EF7472BDBBD941DCB82FC73AAC45A8A94C9F2BD3477F6\ -1FD3B796F02A1B8264A214C6FEA74B7051B226C722099EC7883A462B83B6AFDD\ -4009248B8A237F605FE5A08FE7D8B45321421EBBA67BD70A0B00DDBF94BAAB7F\ -359D5D1EEA105F28DCFB:\ -386AF3129215423C0F7E9DD3EE4C864EED97ACDC594916624B938AEA - -E4D1C1897A0A866CE564635B74222F9696BF2C7F640DD78D7E2ACA66E1B61C64\ -2BB03EA7536AAE597811E9BF4A7B453EDE31F97B46A5F0EF51A071A2B3918DF1\ -6B152519AE3776F9F1EDAB4C2A377C3292E96408359D3613844D5EB393000283\ -D5AD3401A318B12FD1474B8612F2BB50FB6A8B9E023A54D7DDE28C43D6D8854C\ -8D9D1155935C199811DBFC87E9E0072E90EB88681CC7529714F8FB8A2C9D8856\ -7ADFB974EE205A9BF7B848:\ -7E1F10E11B6872E84775E755E0D6E45CC31C5D51E324C84E4D730003 - -B10C59723E3DCADD6D75DF87D0A1580E73133A9B7D00CB95EC19F5547027323B\ -E75158B11F80B6E142C6A78531886D9047B08E551E75E6261E79785366D7024B\ -D7CD9CF322D9BE7D57FB661069F2481C7BB759CD71B4B36CA2BC2DF6D3A328FA\ -EBDB995A9794A8D72155ED551A1F87C80BF6059B43FC764900B18A1C2441F748\ -7743CF84E565F61F8DD2ECE6B6CCC9444049197AAAF53E926FBEE3BFCA8BE588\ -EC77F29D211BE89DE18B15F6:\ -F3833130635103FDD5D6DF6ED6833DA47C1807358FA2573AA5927CA1 - -DB11F609BABA7B0CA634926B1DD539C8CBADA24967D7ADD4D9876F77C2D80C0F\ -4DCEFBD7121548373582705CCA2495BD2A43716FE64ED26D059CFB566B3364BD\ -49EE0717BDD9810DD14D8FAD80DBBDC4CAFB37CC60FB0FE2A80FB4541B8CA9D5\ -9DCE457738A9D3D8F641AF8C3FD6DA162DC16FC01AAC527A4A0255B4D231C0BE\ -50F44F0DB0B713AF03D968FE7F0F61ED0824C55C4B5265548FEBD6AAD5C5EEDF\ -63EFE793489C39B8FD29D104CE:\ -4DB3798AF14B1E892BDDFAD9A91CB88F65EEDE6F44D01B3E6E121EFF - -BEBD4F1A84FC8B15E4452A54BD02D69E304B7F32616AADD90537937106AE4E28\ -DE9D8AAB02D19BC3E2FDE1D651559E296453E4DBA94370A14DBBB2D1D4E20223\ -02EE90E208321EFCD8528AD89E46DC839EA9DF618EA8394A6BFF308E7726BAE0\ -C19BCD4BE52DA6258E2EF4E96AA21244429F49EF5CB486D7FF35CAC1BACB7E95\ -711944BCCB2AB34700D42D1EB38B5D536B947348A458EDE3DC6BD6EC547B1B0C\ -AE5B257BE36A7124E1060C170FFA:\ -9BC5A86FE2F740CC35D3B784F600E3397623DE9428F932319E7FB18F - -5ACA56A03A13784BDC3289D9364F79E2A85C12276B49B92DB0ADAA4F206D5028\ -F213F678C3510E111F9DC4C1C1F8B6ACB17A6413AA227607C515C62A733817BA\ -5E762CC6748E7E0D6872C984D723C9BB3B117EB8963185300A80BFA65CDE495D\ -70A46C44858605FCCBED086C2B45CEF963D33294DBE9706B13AF22F1B7C4CD5A\ -001CFEC251FBA18E722C6E1C4B1166918B4F6F48A98B64B3C07FC86A6B17A6D0\ -480AB79D4E6415B520F1C484D675B1:\ -F38EEEE36E2BCEE81C070DCBF29C665B34D8E62E090B76729263C6D0 - -A5AAD0E4646A32C85CFCAC73F02FC5300F1982FABB2F2179E28303E447854094\ -CDFC854310E5C0F60993CEFF54D84D6B46323D930ADB07C17599B35B505F09E7\ -84BCA5985E0172257797FB53649E2E9723EFD16865C31B5C3D5113B58BB0BFC8\ -920FABDDA086D7537E66D709D050BD14D0C960873F156FAD5B3D3840CDFCDC9B\ -E6AF519DB262A27F40896AB25CC39F96984D650611C0D5A3080D5B3A1BF186AB\ -D42956588B3B58CD948970D298776060:\ -AD1089AE26B4666348B9F590E21043F46F7FED60749250C0F08C2398 - -06CBBE67E94A978203EAD6C057A1A5B098478B4B4CBEF5A97E93C8E42F557271\ -3575FC2A884531D7622F8F879387A859A80F10EF02708CD8F7413AB385AFC357\ -678B9578C0EBF641EF076A1A30F1F75379E9DCB2A885BDD295905EE80C0168A6\ -2A9597D10CF12DD2D8CEE46645C7E5A141F6E0E23AA482ABE5661C16E69EF1E2\ -8371E2E236C359BA4E92C25626A7B7FF13F6EA4AE906E1CFE163E91719B1F750\ -A96CBDE5FBC953D9E576CD216AFC90323A:\ -96FE01AAD3382B1FA6A46EE7ED6C71A96609D61C5679A62DC551BB4C - -F1C528CF7739874707D4D8AD5B98F7C77169DE0B57188DF233B2DC8A5B31EDA5\ -DB4291DD9F68E6BAD37B8D7F6C9C0044B3BF74BBC3D7D1798E138709B0D75E7C\ -593D3CCCDC1B20C7174B4E692ADD820ACE262D45CCFAE2077E87879634716806\ -0A162ECCA8C38C1A88350BD63BB539134F700FD4ADDD5959E255337DAA06BC86\ -358FABCBEFDFB5BC889783D843C08AADC6C4F6C36F65F156E851C9A0F917E4A3\ -67B5AD93D874812A1DE6A7B93CD53AD97232:\ -3DDC4ED0DBBB769908D0A1826F2C30FAD926BCB2A479C102903335B1 - -9D9F3A7ECD51B41F6572FD0D0881E30390DFB780991DAE7DB3B47619134718E6\ -F987810E542619DFAA7B505C76B7350C6432D8BF1CFEBDF1069B90A35F0D04CB\ -DF130B0DFC7875F4A4E62CDB8E525AADD7CE842520A482AC18F09442D78305FE\ -85A74E39E760A4837482ED2F437DD13B2EC1042AFCF9DECDC3E877E50FF4106A\ -D10A525230D11920324A81094DA31DEAB6476AA42F20C84843CFC1C58545EE80\ -352BDD3740DD6A16792AE2D86F11641BB717C2:\ -24DB76ADCE8E68D6F601038745346555AC9B18C0B738CE5A2806E30D - -5179888724819FBAD3AFA927D3577796660E6A81C52D98E9303261D5A4A83232\ -F6F758934D50AA83FF9E20A5926DFEBAAC49529D006EB923C5AE5048ED544EC4\ -71ED7191EDF46363383824F915769B3E688094C682B02151E5EE01E510B431C8\ -865AFF8B6B6F2F59CB6D129DA79E97C6D2B8FA6C6DA3F603199D2D1BCAB54768\ -2A81CD6CF65F6551121391D78BCC23B5BD0E922EC6D8BF97C952E84DD28AEF90\ -9ABA31EDB903B28FBFC33B7703CD996215A11238:\ -C96041912FE468344C0DB83BD877EACDBD26CE20C344FD5931794E06 - -576EF3520D30B7A4899B8C0D5E359E45C5189ADD100E43BE429A02FB3DE5FF4F\ -8FD0E79D9663ACCA72CD29C94582B19292A557C5B1315297D168FBB54E9E2ECD\ -13809C2B5FCE998EDC6570545E1499DBE7FB74D47CD7F35823B212B05BF3F5A7\ -9CAA34224FDD670D335FCB106F5D92C3946F44D3AFCBAE2E41AC554D8E6759F3\ -32B76BE89A0324AA12C5482D1EA3EE89DED4936F3E3C080436F539FA137E74C6\ -D3389BDF5A45074C47BC7B20B0948407A66D855E2F:\ -CAFBC968A3CB44AF0B774E9AF243C0797DE084C2460E9FEDF17AFBA6 - -0DF2152FA4F4357C8741529DD77E783925D3D76E95BAFA2B542A2C33F3D1D117\ -D159CF473F82310356FEE4C90A9E505E70F8F24859656368BA09381FA245EB6C\ -3D763F3093F0C89B972E66B53D59406D9F01AEA07F8B3B615CAC4EE4D05F542E\ -7D0DAB45D67CCCCD3A606CCBEB31EA1FA7005BA07176E60DAB7D78F6810EF086\ -F42F08E595F0EC217372B98970CC6321576D92CE38F7C397A403BADA1548D205\ -C343AC09DECA86325373C3B76D9F32028FEA8EB32515:\ -455D4D0DCCBB5DCD050E8BCECA56531EE6FEFC0359FE9A9F1B238060 - -3E15350D87D6EBB5C8AD99D42515CFE17980933C7A8F6B8BBBF0A63728CEFAAD\ -2052623C0BD5931839112A48633FB3C2004E0749C87A41B26A8B48945539D1FF\ -41A4B269462FD199BFECD45374756F55A9116E92093AC99451AEFB2AF9FD32D6\ -D7F5FBC7F7A540D5097C096EBC3B3A721541DE073A1CC02F7FB0FB1B9327FB0B\ -1218CA49C9487AB5396622A13AE546C97ABDEF6B56380DDA7012A8384091B665\ -6D0AB272D363CEA78163FF765CDD13AB1738B940D16CAE:\ -9F9CD398D06D222D8539950201D40BB8DC52667F5CAA1F5C37439573 - -C38D6B0B757CB552BE40940ECE0009EF3B0B59307C1451686F1A22702922800D\ -58BCE7A636C1727EE547C01B214779E898FC0E560F8AE7F61BEF4D75EAA696B9\ -21FD6B735D171535E9EDD267C192B99880C87997711002009095D8A7A437E258\ -104A41A505E5EF71E5613DDD2008195F0C574E6BA3FE40099CFA116E5F1A2FA8\ -A6DA04BADCB4E2D5D0DE31FDC4800891C45781A0AAC7C907B56D631FCA5CE8B2\ -CDE620D11D1777ED9FA603541DE794DDC5758FCD5FAD78C0:\ -B5F12F4FA2AB2B961604ECB0D3D109119E84123EA742ACF48FEF7445 - -8D2DE3F0B37A6385C90739805B170057F091CD0C7A0BC951540F26A5A75B3E69\ -4631BB64C7635EED316F51318E9D8DE13C70A2ABA04A14836855F35E480528B7\ -76D0A1E8A23B547C8B8D6A0D09B241D3BE9377160CCA4E6793D00A515DC2992C\ -B7FC741DACA171431DA99CCE6F7789F129E2AC5CF65B40D703035CD2185BB936\ -C82002DAF8CBC27A7A9E554B06196630446A6F0A14BA155ED26D95BD627B7205\ -C072D02B60DB0FD7E49EA058C2E0BA202DAFF0DE91E845CF79:\ -386B07094EB57E88C541B70F307A1BCB44D413976BE0E145E2C2D9A9 - -C464BBDAD275C50DCD983B65AD1019B9FF85A1E71C807F3204BB2C921DC31FBC\ -D8C5FC45868AE9EF85B6C9B83BBA2A5A822201ED68586EC5EC27FB2857A5D1A2\ -D09D09115F22DCC39FE61F5E1BA0FF6E8B4ACB4C6DA748BE7F3F0839739394FF\ -7FA8E39F7F7E84A33C3866875C01BCB1263C9405D91908E9E0B50E7459FABB63\ -D8C6BBB73D8E3483C099B55BC30FF092FF68B6ADEDFD477D63570C9F5515847F\ -36E24BA0B705557130CEC57EBAD1D0B31A378E91894EE26E3A04:\ -6D8D756C4A7065787140F50F8CB839E4BE2DF75321BEFBE2ABC59764 - -8B8D68BB8A75732FE272815A68A1C9C5AA31B41DEDC8493E76525D1D013D33CE\ -BD9E21A5BB95DB2616976A8C07FCF411F5F6BC6F7E0B57ACA78CC2790A6F9B89\ -8858AC9C79B165FF24E66677531E39F572BE5D81EB3264524181115F32780257\ -BFB9AEEC6AF12AF28E587CAC068A1A2953B59AD680F4C245B2E3EC36F59940D3\ -7E1D3DB38E13EDB29B5C0F404F6FF87F80FC8BE7A225FF22FBB9C8B6B1D7330C\ -57840D24BC75B06B80D30DAD6806544D510AF6C4785E823AC3E0B8:\ -D2D2C3B49A220AFA7493FC0D61BEC9D94E094E574DE1B811EB3FFC0C - -6B018710446F368E7421F1BC0CCF562D9C1843846BC8D98D1C9BF7D9D6FCB48B\ -FC3BF83B36D44C4FA93430AF75CD190BDE36A7F92F867F58A803900DF8018150\ -384D85D82132F123006AC2AEBA58E02A037FE6AFBD65ECA7C44977DD3DC74F48\ -B6E7A1BFD5CC4DCF24E4D52E92BD4455848E4928B0EAC8B7476FE3CC03E862AA\ -4DFF4470DBFED6DE48E410F25096487ECFC32A27277F3F5023B2725ADE461B13\ -55889554A8836C9CF53BD767F5737D55184EEA1AB3F53EDD0976C485:\ -C18AE14E86EB08D395B43DB53AD154B369C89AC596BB584D7BEE0EE9 - -C9534A24714BD4BE37C88A3DA1082EDA7CABD154C309D7BD670DCCD95AA53559\ -4463058A29F79031D6ECAA9F675D1211E9359BE82669A79C855EA8D89DD38C2C\ -761DDD0EC0CE9E97597432E9A1BEAE062CDD71EDFDFD464119BE9E69D18A7A7F\ -D7CE0E2106F0C8B0ABF4715E2CA48EF9F454DC203C96656653B727083513F8EF\ -B86E49C513BB758B3B052FE21F1C05BB33C37129D6CC81F1AEF6ADC45B0E8827\ -A830FE545CF57D0955802C117D23CCB55EA28F95C0D8C2F9C5A242B33F:\ -E3A624A9B767C7334DE271EABC921242888CBFB17944C5F414AA7F05 - -07906C87297B867ABF4576E9F3CC7F82F22B154AFCBF293B9319F1B0584DA6A4\ -0C27B32E0B1B7F412C4F1B82480E70A9235B12EC27090A5A33175A2BB28D8ADC\ -475CEFE33F7803F8CE27967217381F02E67A3B4F84A71F1C5228E0C2AD971373\ -F6F672624FCEA8D1A9F85170FAD30FA0BBD25035C3B41A6175D467998BD1215F\ -6F3866F53847F9CF68EF3E2FBB54BC994DE2302B829C5EEA68EC441FCBAFD7D1\ -6AE4FE9FFF98BF00E5BC2AD54DD91FF9FDA4DD77B6C754A91955D1FBAAD0:\ -67295FA4ED1D315327EC1A2D0C8EA1D4DD612EBE7295883347EC83D4 - -588E94B9054ABC2189DF69B8BA34341B77CDD528E7860E5DEFCAA79B0C9A452A\ -D4B82AA306BE84536EB7CEDCBE058D7B84A6AEF826B028B8A0271B69AC3605A9\ -635EA9F5EA0AA700F3EB7835BC54611B922964300C953EFE7491E3677C2CEBE0\ -822E956CD16433B02C68C4A23252C3F9E151A416B4963257B783E038F6B4D5C9\ -F110F871652C7A649A7BCEDCBCCC6F2D0725BB903CC196BA76C76AA9F10A190B\ -1D1168993BAA9FFC96A1655216773458BEC72B0E39C9F2C121378FEAB4E76A:\ -30269D654FAA84F1B03C0D75C4BF756D320A42C402665D3F356DAE7D - -08959A7E4BAAE874928813364071194E2939772F20DB7C3157078987C557C2A6\ -D5ABE68D520EEF3DC491692E1E21BCD880ADEBF63BB4213B50897FA005256ED4\ -1B5690F78F52855C8D9168A4B666FCE2DA2B456D7A7E7C17AB5F2FB1EE90B79E\ -698712E963715983FD07641AE4B4E9DC73203FAC1AE11FA1F8C7941FCC82EAB2\ -47ADDB56E2638447E9D609E610B60CE086656AAEBF1DA3C8A231D7D94E2FD0AF\ -E46B391FF14A72EAEB3F44AD4DF85866DEF43D4781A0B3578BC996C87970B132:\ -8A26859575E355A571E05D2EC08B8307FBC15025150B7F4E8E3CFAB0 - -CB2A234F45E2ECD5863895A451D389A369AAB99CFEF0D5C9FFCA1E6E63F763B5\ -C14FB9B478313C8E8C0EFEB3AC9500CF5FD93791B789E67EAC12FD038E2547CC\ -8E0FC9DB591F33A1E4907C64A922DDA23EC9827310B306098554A4A78F050262\ -DB5B545B159E1FF1DCA6EB734B872343B842C57EAFCFDA8405EEDBB48EF32E99\ -696D135979235C3A05364E371C2D76F1902F1D83146DF9495C0A6C57D7BF9EE7\ -7E80F9787AEE27BE1FE126CDC9EF893A4A7DCBBC367E40FE4E1EE90B42EA25AF\ -01:\ -0F3A9EE22B9742D82198966556DFC9C3246874094B816062D2204FD3 - -D16BEADF02AB1D4DC6F88B8C4554C51E866DF830B89C06E786A5F8757E890931\ -0AF51C840EFE8D20B35331F4355D80F73295974653DDD620CDDE4730FB6C8D0D\ -2DCB2B45D92D4FBDB567C0A3E86BD1A8A795AF26FBF29FC6C65941CDDB090FF7\ -CD230AC5268AB4606FCCBA9EDED0A2B5D014EE0C34F0B2881AC036E24E151BE8\ -9EEB6CD9A7A790AFCCFF234D7CB11B99EBF58CD0C589F20BDAC4F9F0E28F75E3\ -E04E5B3DEBCE607A496D848D67FA7B49132C71B878FD5557E082A18ECA1FBDA9\ -4D4B:\ -756462A2FDA3F8BDC73F29402EAD09581EBAB86DCBF36AC7A83C420A - -8F65F6BC59A85705016E2BAE7FE57980DE3127E5AB275F573D334F73F8603106\ -EC3553016608EF2DD6E69B24BE0B7113BF6A760BA6E9CE1C48F9E186012CF96A\ -1D4849D75DF5BB8315387FD78E9E153E76F8BA7EC6C8849810F59FB4BB9B0043\ -18210B37F1299526866F44059E017E22E96CBE418699D014C6EA01C9F0038B10\ -299884DBEC3199BB05ADC94E955A1533219C1115FED0E5F21228B071F40DD57C\ -4240D98D37B73E412FE0FA4703120D7C0C67972ED233E5DEB300A22605472FA3\ -A3BA86:\ -18C8EB44C99BE9B4240D3DE1EA85B52209A80F161BFB220DF3A56B69 - -84891E52E0D451813210C3FD635B39A03A6B7A7317B221A7ABC270DFA946C426\ -69AACBBBDF801E1584F330E28C729847EA14152BD637B3D0F2B38B4BD5BF9C79\ -1C58806281103A3EABBAEDE5E711E539E6A8B2CF297CF351C078B4FA8F7F35CF\ -61BEBF8814BF248A01D41E86C5715EA40C63F7375379A7EB1D78F27622FB468A\ -B784AAABA4E534A6DFD1DF6FA15511341E725ED2E87F98737CCB7B6A6DFAE416\ -477472B046BF1811187D151BFA9F7B2BF9ACDB23A3BE507CDF14CFDF517D2CB5\ -FB9E4AB6:\ -24915386E0F96531A5EB7A39F8E0DFF5EF3F3EE7E51360E31012322C - -FDD7A9433A3B4AFABD7A3A5E3457E56DEBF78E84B7A0B0CA0E8C6D53BD0C2DAE\ -31B2700C6128334F43981BE3B213B1D7A118D59C7E6B6493A86F866A1635C128\ -59CFB9AD17460A77B4522A5C1883C3D6ACC86E6162667EC414E9A104AA892053\ -A2B1D72165A855BACD8FAF8034A5DD9B716F47A0818C09BB6BAF22AA503C06B4\ -CA261F557761989D2AFBD88B6A678AD128AF68672107D0F1FC73C5CA74045929\ -7B3292B281E93BCEB761BDE7221C3A55708E5EC84472CDDCAA84ECF23723CC09\ -91355C6280:\ -5E0BF93B3DB33AAB7121FBEABA567440D22138E0C66DCE38724992AA - -70A40BFBEF92277A1AAD72F6B79D0177197C4EBD432668CFEC05D099ACCB6510\ -62B5DFF156C0B27336687A94B26679CFDD9DAF7AD204338DD9C4D14114033A5C\ -225BD11F217B5F4732DA167EE3F939262D4043FC9CBA92303B7B5E96AEA12ADD\ -A64859DF4B86E9EE0B58E39091E6B188B408AC94E1294A8911245EE361E60E60\ -1EFF58D1D37639F3753BEC80EBB4EFDE25817436076623FC65415FE51D1B0280\ -366D12C554D86743F3C3B6572E400361A60726131441BA493A83FBE9AFDA90F7\ -AF1AE717238D:\ -0D98E67CFB2F86653E32DB40BB047CAC62A4337E9677115C2123B02C - -74356E449F4BF8644F77B14F4D67CB6BD9C1F5AE357621D5B8147E562B65C665\ -85CAF2E491B48529A01A34D226D436959153815380D5689E30B35357CDAC6E08\ -D3F2B0E88E200600D62BD9F5EAF488DF86A4470EA227006182E44809009868C4\ -C280C43D7D64A5268FA719074960087B3A6ABC837882F882C837834535929389\ -A12B2C78187E2EA07EF8B8EEF27DC85002C3AE35F1A50BEE6A1C48BA7E175F33\ -16670B27983472AA6A61EED0A683A39EE323080620EA44A9F74411AE5CE99030\ -528F9AB49C79F2:\ -E21912B71C0E89CE1FC0D74EAA7021B454C05409CFEAAE586F72AEAA - -8C3798E51BC68482D7337D3ABB75DC9FFE860714A9AD73551E120059860DDE24\ -AB87327222B64CF774415A70F724CDF270DE3FE47DDA07B61C9EF2A3551F45A5\ -584860248FABDE676E1CD75F6355AA3EAEABE3B51DC813D9FB2EAA4F0F1D9F83\ -4D7CAD9C7C695AE84B329385BC0BEF895B9F1EDF44A03D4B410CC23A79A6B62E\ -4F346A5E8DD851C2857995DDBF5B2D717AEB847310E1F6A46AC3D26A7F9B4498\ -5AF656D2B7C9406E8A9E8F47DCB4EF6B83CAACF9AEFB6118BFCFF7E44BEF6937\ -EBDDC89186839B77:\ -6A1B85C7B5DFD6575D82EA730F7148E5F43BF5835FB8DAF78E29E462 - -FA56BF730C4F8395875189C10C4FB251605757A8FECC31F9737E3C2503B02608\ -E6731E85D7A38393C67DE516B85304824BFB135E33BF22B3A23B913BF6ACD2B7\ -AB85198B8187B2BCD454D5E3318CACB32FD6261C31AE7F6C54EF6A7A2A4C9F3E\ -CB81CE3555D4F0AD466DD4C108A90399D70041997C3B25345A9653F3C9A6711A\ -B1B91D6A9D2216442DA2C973CBD685EE7643BFD77327A2F7AE9CB283620A0871\ -6DFB462E5C1D65432CA9D56A90E811443CD1ECB8F0DE179C9CB48BA4F6FEC360\ -C66F252F6E64EDC96B:\ -813D793D41C7B84C684FA8109C185EA92036D1B9065A93711489BAE8 - -B6134F9C3E91DD8000740D009DD806240811D51AB1546A974BCB18D344642BAA\ -5CD5903AF84D58EC5BA17301D5EC0F10CCD0509CBB3FD3FFF9172D193AF0F782\ -252FD1338C7244D40E0E42362275B22D01C4C3389F19DD69BDF958EBE28E31A4\ -FFE2B5F18A87831CFB7095F58A87C9FA21DB72BA269379B2DC2384B3DA953C79\ -25761FED324620ACEA435E52B424A7723F6A2357374157A34CD8252351C25A1B\ -232826CEFE1BD3E70FFC15A31E7C0598219D7F00436294D11891B82497BC78AA\ -5363892A2495DF8C1EEF:\ -F3D1FE163800A7D5EA20B558AAC1F9FF71FF38C3F54F76330EDD0A8C - -C941CDB9C28AB0A791F2E5C8E8BB52850626AA89205BEC3A7E22682313D198B1\ -FA33FC7295381354858758AE6C8EC6FAC3245C6E454D16FA2F51C4166FAB51DF\ -272858F2D603770C40987F64442D487AF49CD5C3991CE858EA2A60DAB6A65A34\ -414965933973AC2457089E359160B7CDEDC42F29E10A91921785F6B7224EE0B3\ -49393CDCFF6151B50B377D609559923D0984CDA6000829B916AB6896693EF6A2\ -199B3C22F7DC5500A15B8258420E314C222BC000BC4E5413E6DD82C993F8330F\ -5C6D1BE4BC79F08A1A0A46:\ -733B61BA46CA74B57BD413FFA022264658869A43634144BAF2BDFB5C - -4499EFFFAC4BCEA52747EFD1E4F20B73E48758BE915C88A1FFE5299B0B005837\ -A46B2F20A9CB3C6E64A9E3C564A27C0F1C6AD1960373036EC5BFE1A8FC6A435C\ -2185ED0F114C50E8B3E4C7ED96B06A036819C9463E864A58D6286F785E32A804\ -443A56AF0B4DF6ABC57ED5C2B185DDEE8489EA080DEEEE66AA33C2E6DAB36251\ -C402682B6824821F998C32163164298E1FAFD31BABBCFFB594C91888C6219079\ -D907FDB438ED89529D6D96212FD55ABE20399DBEFD342248507436931CDEAD49\ -6EB6E4A80358ACC78647D043:\ -063CF3C2F5F2E784F26B84873D2FAE324CA3381634DBE22CB4AD839C - -EECBB8FDFA4DA62170FD06727F697D81F83F601FF61E478105D3CB7502F2C89B\ -F3E8F56EDD469D049807A38882A7EEFBC85FC9A950952E9FA84B8AFEBD3CE782\ -D4DA598002827B1EB98882EA1F0A8F7AA9CE013A6E9BC462FB66C8D4A18DA214\ -01E1B93356EB12F3725B6DB1684F2300A98B9A119E5D27FF704AFFB618E12708\ -E77E6E5F34139A5A41131FD1D6336C272A8FC37080F041C71341BEE6AB550CB4\ -A20A6DDB6A8E0299F2B14BC730C54B8B1C1C487B494BDCCFD3A53535AB2F2315\ -90BF2C4062FD2AD58F906A2D0D:\ -F8F63C56FD61F1E58347A52E68F7AC2DD6CD808496B9E4772917F45E - -E64F3E4ACE5C8418D65FEC2BC5D2A303DD458034736E3B0DF719098BE7A206DE\ -AF52D6BA82316CAF330EF852375188CDE2B39CC94AA449578A7E2A8E3F5A9D68\ -E816B8D16889FBC0EBF0939D04F63033AE9AE2BDAB73B88C26D6BD25EE460EE1\ -EF58FB0AFA92CC539F8C76D3D097E7A6A63EBB9B5887EDF3CF076028C5BBD5B9\ -DB3211371AD3FE121D4E9BF44229F4E1ECF5A0F9F0EBA4D5CEB72878AB22C3F0\ -EB5A625323AC66F7061F4A81FAC834471E0C59553F108475FE290D43E6A055AE\ -3EE46FB67422F814A68C4BE3E8C9:\ -F4FD363C47E1F3D133C4828141DBF83241140361D314065AFB605E4D - -D2CB2D733033F9E91395312808383CC4F0CA974E87EC68400D52E96B3FA6984A\ -C58D9AD0938DDE5A973008D818C49607D9DE2284E7618F1B8AED8372FBD52ED5\ -4557AF4220FAC09DFA8443011699B97D743F8F2B1AEF3537EBB45DCC9E13DFB4\ -38428EE190A4EFDB3CAEB7F3933117BF63ABDC7E57BEB4171C7E1AD260AB0587\ -806C4D137B6316B50ABC9CCE0DFF3ACADA47BBB86BE777E617BBE578FF451984\ -4DB360E0A96C6701290E76BB95D26F0F804C8A4F2717EAC4E7DE9F2CFF3BBC55\ -A17E776C0D02856032A6CD10AD2838:\ -5213B12119C28283DA474BFFEA26313AD2BD4CC4970E5F8FD7383586 - -F2998955613DD414CC111DF5CE30A995BB792E260B0E37A5B1D942FE90171A4A\ -C2F66D4928D7AD377F4D0554CBF4C523D21F6E5F379D6F4B028CDCB9B1758D3B\ -39663242FF3CB6EDE6A36A6F05DB3BC41E0D861B384B6DEC58BB096D0A422FD5\ -42DF175E1BE1571FB52AE66F2D86A2F6824A8CFAACBAC4A7492AD0433EEB1545\ -4AF8F312B3B2A577750E3EFBD370E8A8CAC1582581971FBA3BA4BD0D76E718DA\ -CF8433D33A59D287F8CC92234E7A271041B526E389EFB0E40B6A18B3AAF658E8\ -2ED1C78631FD23B4C3EB27C3FAEC8685:\ -96CA7E9274D05EDBD080090E6A000318D74105DF81651A855DA33E07 - -447797E2899B72A356BA55BF4DF3ACCA6CDB1041EB477BD1834A9F9ACBC340A2\ -94D729F2F97DF3A610BE0FF15EDB9C6D5DB41644B9874360140FC64F52AA03F0\ -286C8A640670067A84E017926A70438DB1BB361DEFEE7317021425F8821DEF26\ -D1EFD77FC853B818545D055ADC9284796E583C76E6FE74C9AC2587AA46AA8F88\ -04F2FEB5836CC4B3ABABAB8429A5783E17D5999F32242EB59EF30CD7ADABC16D\ -72DBDB097623047C98989F88D14EAF02A7212BE16EC2D07981AAA99949DDF89E\ -CD90333A77BC4E1988A82ABF7C7CAF3291:\ -6601A76904EE9942F19EC6CB24E4F8B3EB5C552B0C1EC6E757010A62 - -9F2C18ADE9B380C784E170FB763E9AA205F64303067EB1BCEA93DF5DAC4BF5A2\ -E00B78195F808DF24FC76E26CB7BE31DC35F0844CDED1567BBA29858CFFC97FB\ -29010331B01D6A3FB3159CC1B973D255DA9843E34A0A4061CABDB9ED37F241BF\ -ABB3C20D32743F4026B59A4CCC385A2301F83C0B0A190B0F2D01ACB8F0D41111\ -E10F2F4E149379275599A52DC089B35FDD5234B0CFB7B6D8AEBD563CA1FA653C\ -5C021DFD6F5920E6F18BFAFDBECBF0AB00281333ED50B9A999549C1C8F8C63D7\ -626C48322E9791D5FF72294049BDE91E73F8:\ -222077A8910BC25446740CBEBC40709018BCCE9CA135C3D2609407E2 - -AE159F3FA33619002AE6BCCE8CBBDD7D28E5ED9D61534595C4C9F43C402A9BB3\ -1F3B301CBFD4A43CE4C24CD5C9849CC6259ECA90E2A79E01FFBAC07BA0E147FA\ -42676A1D668570E0396387B5BCD599E8E66AAED1B8A191C5A47547F61373021F\ -A6DEADCB55363D233C24440F2C73DBB519F7C9FA5A8962EFD5F6252C0407F190\ -DFEFAD707F3C7007D69FF36B8489A5B6B7C557E79DD4F50C06511F599F56C896\ -B35C917B63BA35C6FF8092BAF7D1658E77FC95D8A6A43EEB4C01F33F03877F92\ -774BE89C1114DD531C011E53A34DC248A2F0E6:\ -C85CEDCC7CD03E37FF27E8E1352CEF2F3DE6576CC0C218810D9B2F2F - -3B8E97C5FFC2D6A40FA7DE7FCEFC90F3B12C940E7AB415321E29EE692DFAC799\ -B009C99DCDDB708FCE5A178C5C35EE2B8617143EDC4C40B4D313661F49ABDD93\ -CEA79D117518805496FE6ACF292C4C2A1F76B403A97D7C399DAF85B46AD84E16\ -246C67D6836757BDE336C290D5D401E6C1386AB32797AF6BB251E9B2D8FE754C\ -47482B72E0B394EAB76916126FD68EA7D65EB93D59F5B4C5AC40F7C3B37E7F36\ -94F29424C24AF8C8F0EF59CD9DBF1D28E0E10F799A6F78CAD1D45B9DB3D7DEE4\ -A7059ABE99182714983B9C9D44D7F5643596D4F3:\ -1DC5FE115F63A2C5DF894DF3DF1450B77EB14F1A3CB26D0DF23B0A58 - -3434EC31B10FAFDBFEEC0DD6BD94E80F7BA9DCA19EF075F7EB017512AF66D6A4\ -BCF7D16BA0819A1892A6372F9B35BCC7CA8155EE19E8428BC22D214856ED5FA9\ -374C3C09BDE169602CC219679F65A1566FC7316F4CC3B631A18FB4449FA6AFA1\ -6A3DB2BC4212EFF539C67CF184680826535589C7111D73BFFCE431B4C40492E7\ -63D9279560AAA38EB2DC14A212D723F994A1FE656FF4DD14551CE4E7C621B2AA\ -5604A10001B2878A897A28A08095C325E10A26D2FB1A75BFD64C250309BB55A4\ -4F23BBAC0D5516A1C687D3B41EF2FBBF9CC56D4739:\ -99380AD592C94B9F18172EBF1B18EE520A00002FC8E698CE87FA9212 - -7C7953D81C8D208FD1C97681D48F49DD003456DE60475B84070EF4847C333B74\ -575B1FC8D2A186964485A3B8634FEAA3595AAA1A2F4595A7D6B6153563DEE31B\ -BAC443C8A33EED6D5D956A980A68366C2527B550EE950250DFB691EACBD5D56A\ -E14B970668BE174C89DF2FEA43AE52F13142639C884FD62A3683C0C3792F0F24\ -AB1318BCB27E21F4737FAB62C77EA38BC8FD1CF41F7DAB64C13FEBE7152BF5BB\ -7AB5A78F5346D43CC741CB6F72B7B8980F268B68BF62ABDFB1577A52438FE14B\ -591498CC95F071228460C7C5D5CEB4A7BDE588E7F21C:\ -2A3DC44539C1F9DA2BEC57FECE1CC1CDA65AC20BF4CE05EF4E9A4B0B - -7A6A4F4FDC59A1D223381AE5AF498D74B7252ECF59E389E49130C7EAEE626E7B\ -D9897EFFD92017F4CCDE66B0440462CDEDFD352D8153E6A4C8D7A0812F701CC7\ -37B5178C2556F07111200EB627DBC299CAA792DFA58F35935299FA3A3519E9B0\ -3166DFFA159103FFA35E8577F7C0A86C6B46FE13DB8E2CDD9DCFBA85BDDDCCE0\ -A7A8E155F81F712D8E9FE646153D3D22C811BD39F830433B2213DD46301941B5\ -9293FD0A33E2B63ADBD95239BC01315C46FDB678875B3C81E053A40F581CFBEC\ -24A1404B1671A1B88A6D06120229518FB13A74CA0AC5AE:\ -B45ECB6370D92BA28B53D96A3114568B91F2F95F963CF31C2E5A03F5 - -D9FAA14CEBE9B7DE551B6C0765409A33938562013B5E8E0E1E0A6418DF7399D0\ -A6A771FB81C3CA9BD3BB8E2951B0BC792525A294EBD1083688806FE5E7F1E17F\ -D4E3A41D00C89E8FCF4A363CAEDB1ACB558E3D562F1302B3D83BB886ED27B760\ -33798131DAB05B4217381EAAA7BA15EC820BB5C13B516DD640EAEC5A27D05FDF\ -CA0F35B3A5312146806B4C0275BCD0AAA3B2017F346975DB566F9B4D137F4EE1\ -0644C2A2DA66DEECA5342E236495C3C6280528BFD32E90AF4CD9BB908F34012B\ -52B4BC56D48CC8A6B59BAB014988EABD12E1A0A1C2E170E7:\ -87E7B1B3797C3445D313BDD3946B93415212EEB9371D2F039B865366 - -2D8427433D0C61F2D96CFE80CF1E932265A191365C3B61AAA3D6DCC039F6BA2A\ -D52A6A8CC30FC10F705E6B7705105977FA496C1C708A277A124304F1FC40911E\ -7441D1B5E77B951AAD7B01FD5DB1B377D165B05BBF898042E39660CAF8B279FE\ -5229D1A8DB86C0999ED65E53D01CCBC4B43173CCF992B3A14586F6BA42F5FE30\ -AFA8AE40C5DF29966F9346DA5F8B35F16A1DE3AB6DE0F477D8D8660918060E88\ -B9B9E9CA6A4207033B87A812DBF5544D39E4882010F82B6CE005F8E8FF6FE3C3\ -806BC2B73C2B83AFB704345629304F9F86358712E9FAE3CA3E:\ -DEE769CE07F3BDA013035F381FF1880143F87FC38E691F37B7FE1443 - -5E19D97887FCAAC0387E22C6F803C34A3DACD2604172433F7A8A7A526CA4A2A1\ -271ECFC5D5D7BE5AC0D85D921095350DFC65997D443C21C8094E0A3FEFD2961B\ -CB94AED03291AE310CCDA75D8ACE4BC7D89E7D3E5D1650BDA5D668B8B50BFC8E\ -608E184F4D3A9A2BADC4FF5F07E0C0BC8A9F2E0B2A26FD6D8C550008FAAAB75F\ -D71AF2A424BEC9A7CD9D83FAD4C8E9319115656A8717D3B523A68FF8004258B9\ -990ED362308461804BA3E3A7E92D8F2FFAE5C2FBA55BA5A3C27C0A2F71BD711D\ -2FE1799C2ADB31B200035481E9EE5C4ADF2AB9C0FA50B23975CF:\ -C94C7D071DEF2C0AD891F3C6FC10430164D4F46A8B6F150F50D892FF - -C8E976AB4638909387CE3B8D4E510C3230E5690E02C45093B1D297910ABC481E\ -56EEA0F296F98379DFC9080AF69E73B2399D1C143BEE80AE1328162CE1BA7F6A\ -8374679B20AACD380EB4E61382C99998704D62701AFA914F9A2705CDB065885F\ -50D086C3EB5753700C387118BB142F3E6DA1E988DFB31AC75D7368931E45D139\ -1A274B22F83CEB072F9BCABC0B216685BFD789F5023971024B1878A205442522\ -F9EA7D8797A4102A3DF41703768251FD5E017C85D1200A464118AA35654E7CA3\ -9F3C375B8EF8CBE7534DBC64BC20BEFB417CF60EC92F63D9EE7397:\ -C829025130E4B5801C5C89A793A1F1C524EC2BE5A665950BC471F542 - -7145FA124B7429A1FC2231237A949BA7201BCC1822D3272DE005B682398196C2\ -5F7E5CC2F289FBF44415F699CB7FE6757791B1443410234AE061EDF623359E2B\ -4E32C19BF88450432DD01CAA5EB16A1DC378F391CA5E3C4E5F356728BDDD4975\ -DB7C890DA8BBC84CC73FF244394D0D48954978765E4A00B593F70F2CA082673A\ -261ED88DBCEF1127728D8CD89BC2C597E9102CED6010F65FA75A14EBE467FA57\ -CE3BD4948B6867D74A9DF5C0EC6F530CBF2EE61CE6F06BC8F2864DFF5583776B\ -31DF8C7FFCB61428A56BF7BD37188B4A5123BBF338393AF46EDA85E6:\ -6643B89BE6E03C1C52EDC396C8CD1EEE99947CEA5276FF83EF6086DB - -7FDFADCC9D29BAD23AE038C6C65CDA1AEF757221B8872ED3D75FF8DF7DA0627D\ -266E224E812C39F7983E4558BFD0A1F2BEF3FEB56BA09120EF762917B9C09386\ -7948547AEE98600D10D87B20106878A8D22C64378BF634F7F75900C03986B077\ -B0BF8B740A82447B61B99FEE5376C5EB6680EC9E3088F0BDD0C56883413D60C1\ -357D3C811950E5890E7600103C916341B80C743C6A852B7B4FB60C3BA21F3BC1\ -5B8382437A68454779CF3CD7F9F90CCC8EF28D0B706535B1E4108EB5627BB45D\ -719CB046839AEE311CA1ABDC8319E050D67972CB35A6B1601B25DBF487:\ -8711E010ACFE691FF86D575CE73B2A76B11CE7C473D6266018DA137C - -988638219FD3095421F826F56E4F09E356296B628C3CE6930C9F2E758FD1A80C\ -8273F2F61E4DAAE65C4F110D3E7CA0965AC7D24E34C0DC4BA2D6FF0BF5BBE93B\ -3585F354D7543CB542A1AA54674D375077F2D360A8F4D42F3DB131C3B7AB7306\ -267BA107659864A90C8C909460A73621D1F5D9D3FD95BEB19B23DB1CB6C0D0FB\ -A91D36891529B8BD8263CAA1BAB56A4AFFAED44962DF096D8D5B1EB845EF3118\ -8B3E10F1AF811A13F156BEB7A288AAE593EBD1471B624AA1A7C6ADF01E2200B3\ -D72D88A3AED3100C88231E41EFC376906F0B580DC895F080FDA5741DB1CB:\ -06AAE9EA3B0B15CAFE01B97900C17977E83F871399E9D39279D6AB35 - -5AAB62756D307A669D146ABA988D9074C5A159B3DE85151A819B117CA1FF6597\ -F6156E80FDD28C9C3176835164D37DA7DA11D94E09ADD770B68A6E081CD22CA0\ -C004BFE7CD283BF43A588DA91F509B27A6584C474A4A2F3EE0F1F56447379240\ -A5AB1FB77FDCA49B305F07BA86B62756FB9EFB4FC225C86845F026EA542076B9\ -1A0BC2CDD136E122C659BE259D98E5841DF4C2F60330D4D8CDEE7BF1A0A24452\ -4EECC68FF2AEF5BF0069C9E87A11C6E519DE1A4062A10C83837388F7EF58598A\ -3846F49D499682B683C4A062B421594FAFBC1383C943BA83BDEF515EFCF10D:\ -22978FA6F43C526CF120B1E4C2BE84641C75749707ED95AE32282472 - -47B8216AA0FBB5D67966F2E82C17C07AA2D6327E96FCD83E3DE7333689F3EE79\ -994A1BF45082C4D725ED8D41205CB5BCDF5C341F77FACB1DA46A5B9B2CBC49EA\ -DF786BCD881F371A95FA17DF73F606519AEA0FF79D5A11427B98EE7F13A5C006\ -37E2854134691059839121FEA9ABE2CD1BCBBBF27C74CAF3678E05BFB1C94989\ -7EA01F56FFA4DAFBE8644611685C617A3206C7A7036E4AC816799F693DAFE7F1\ -9F303CE4EBA09D21E03610201BFC665B72400A547A1E00FA9B7AD8D84F84B34A\ -EF118515E74DEF11B9188BD1E1F97D9A12C30132EC2806339BDADACDA2FD8B78:\ -5670455BFB73E038F87501A0EAF2E7AA0BE985AF844BCE9ABB832ED0 - -8CFF1F67FE53C098896D9136389BD8881816CCAB34862BB67A656E3D98896F3C\ -E6FFD4DA73975809FCDF9666760D6E561C55238B205D8049C1CEDEEF374D1735\ -DAA533147BFA960B2CCE4A4F254176BB4D1BD1E89654432B8DBE1A135C42115B\ -394B024856A2A83DC85D6782BE4B444239567CCEC4B184D4548EAE3FF6A192F3\ -43292BA2E32A0F267F31CC26719EB85245D415FB897AC2DA433EE91A99424C9D\ -7F1766A44171D1651001C38FC79294ACCC68CEB5665D36218454D3BA169AE058\ -A831338C17743603F81EE173BFC0927464F9BD728DEE94C6AEAB7AAE6EE3A627\ -E8:\ -78B195C6C6F04FD3A075A60DF25EC1BF9996B85A10746400C2377C01 - -EACD07971CFF9B9939903F8C1D8CBB5D4DB1B548A85D04E037514A583604E787\ -F32992BF2111B97AC5E8A938233552731321522AB5E8583561260B7D13EBEEF7\ -85B23A41FD8576A6DA764A8ED6D822D4957A545D5244756C18AA80E1AAD4D1F9\ -C20D259DEE1711E2CC8FD013169FB7CC4CE38B362F8E0936AE9198B7E838DCEA\ -4F7A5B9429BB3F6BBCF2DC92565E3676C1C5E6EB3DD2A0F86AA23EDD3D0891F1\ -97447692794B3DFA269611AD97F72B795602B4FDB198F3FD3EB41B415064256E\ -345E8D8C51C555DC8A21904A9B0F1AD0EFFAB7786AAC2DA3B196507E9F33CA35\ -6427:\ -859CF23CD89486FA7C32BAB68947FE9032A4C013EA19F2D6A13D6D08 - -23AC4E9A42C6EF45C3336CE6DFC2FF7DE8884CD23DC912FEF0F7756C09D335C1\ -89F3AD3A23697ABDA851A81881A0C8CCAFC980AB2C702564C2BE15FE4C4B9F10\ -DFB2248D0D0CB2E2887FD4598A1D4ACDA897944A2FFC580FF92719C95CF2AA42\ -DC584674CB5A9BC5765B9D6DDF5789791D15F8DD925AA12BFFAFBCE60827B490\ -BB7DF3DDA6F2A143C8BF96ABC903D83D59A791E2D62814A89B8080A28060568C\ -F24A80AE61179FE84E0FFAD00388178CB6A617D37EFD54CC01970A4A41D1A8D3\ -DDCE46EDBBA4AB7C90AD565398D376F431189CE8C1C33E132FEAE6A8CD17A61C\ -630012:\ -F3CF4E503317B874CE95757F0C0644646E031DD15C36DE66EB7C6DC0 - -0172DF732282C9D488669C358E3492260CBE91C95CFBC1E3FEA6C4B0EC129B45\ -F242ACE09F152FC6234E1BEE8AAB8CD56E8B486E1DCBA9C05407C2F95DA8D8F1\ -C0AF78EE2ED82A3A79EC0CB0709396EE62AADB84F8A4EE8A7CCCA3C1EE84E302\ -A09EA802204AFECF04097E67D0F8E8A9D2651126C0A598A37081E42D168B0AE8\ -A71951C524259E4E2054E535B779679BDADE566FE55700858618E626B4A0FAF8\ -95BCCE9011504A49E05FD56127EAE3D1F8917AFB548ECADABDA1020111FEC931\ -4C413498A360B08640549A22CB23C731ACE743252A8227A0D2689D4C60016066\ -78DFB921:\ -2CC662C14C81E895133DD53154DDAA130E4CE8BCEEDE76DA6DF01473 - -3875B9240CF3E0A8B59C658540F26A701CF188496E2C2174788B126FD29402D6\ -A75453BA0635284D08835F40051A2A9683DC92AFB9383719191231170379BA6F\ -4ADC816FECBB0F9C446B785BF520796841E58878B73C58D3EBB097CE4761FDEA\ -BE15DE2F319DFBAF1742CDEB389559C788131A6793E193856661376C81CE9568\ -DA19AA6925B47FFD77A43C7A0E758C37D69254909FF0FBD415EF8EB937BCD49F\ -91468B49974C07DC819ABD67395DB0E05874FF83DDDAB895344ABD0E7111B2DF\ -9E58D76D85AD98106B36295826BE04D435615595605E4B4BB824B33C4AFEB5E7\ -BB0D19F909:\ -B9C5F0BC4EBD9E6CB78D2EA5C79EF4887329BCC51734AED4B09376F6 - -747CC1A59FEFBA94A9C75BA866C30DC5C1CB0C0F8E9361D98484956DD5D1A40F\ -6184AFBE3DAC9F76028D1CAECCFBF69199C6CE2B4C092A3F4D2A56FE5A33A007\ -57F4D7DEE5DFB0524311A97AE0668A47971B95766E2F6DD48C3F57841F91F04A\ -00AD5EA70F2D479A2620DC5CD78EAAB3A3B011719B7E78D19DDF70D9423798AF\ -77517EBC55392FCD01FC600D8D466B9E7A7A85BF33F9CC5419E9BD874DDFD609\ -81150DDAF8D7FEBAA4374F0872A5628D318000311E2F5655365AD4D407C20E5C\ -04DF17A222E7DEEC79C5AB1116D8572F91CD06E1CCC7CED53736FC867FD49ECE\ -BE6BF8082E8A:\ -75E74FC5F0A5759B8A669CACF874EC7B9FD96B4660C345D1BE92F2A0 - -57AF971FCCAEC97435DC2EC9EF0429BCEDC6B647729EA168858A6E49AC1071E7\ -06F4A5A645CA14E8C7746D65511620682C906C8B86EC901F3DDED4167B3F00B0\ -6CBFAC6AEE3728051B3E5FF10B4F9ED8BD0B8DA94303C833755B3CA3AEDDF0B5\ -4BC8D6632138B5D25BAB03D17B3458A9D782108006F5BB7DE75B5C0BA854B423\ -D8BB801E701E99DC4FEAAD59BC1C7112453B04D33EA3635639FB802C73C2B71D\ -58A56BBD671B18FE34ED2E3DCA38827D63FDB1D4FB3285405004B2B3E26081A8\ -FF08CD6D2B08F8E7B7E90A2AB1ED7A41B1D0128522C2F8BFF56A7FE67969422C\ -E839A9D4608F03:\ -6A447E4338072182F73660C1FF58EAA4546FDC4F6F567E0ABB4DC1C9 - -04E16DEDC1227902BAAF332D3D08923601BDD64F573FAA1BB7201918CFE16B1E\ -10151DAE875DA0C0D63C59C3DD050C4C6A874011B018421AFC4623AB0381831B\ -2DA2A8BA42C96E4F70864AC44E106F94311051E74C77C1291BF5DB9539E69567\ -BF6A11CF6932BBBAD33F8946BF5814C066D851633D1A513510039B349939BFD4\ -2B858C21827C8FF05F1D09B1B0765DC78A135B5CA4DFBA0801BCADDFA175623C\ -8B647EACFB4444B85A44F73890607D06D507A4F8393658788669F6EF4DEB58D0\ -8C50CA0756D5E2F49D1A7AD73E0F0B3D3B5F090ACF622B1878C59133E4A848E0\ -5153592EA81C6FBF:\ -12DCCB19D7B65F960224882B6F6988FF65BE64F31B04F2949F42831C - -7C815C384EEE0F288ECE27CCED52A01603127B079C007378BC5D1E6C5E9E6D1C\ -735723ACBBD5801AC49854B2B569D4472D33F40BBB8882956245C366DC3582D7\ -1696A97A4E19557E41E54DEE482A14229005F93AFD2C4A7D8614D10A97A9DFA0\ -7F7CD946FA45263063DDD29DB8F9E34DB60DAA32684F0072EA2A9426ECEBFA52\ -39FB67F29C18CBAA2AF6ED4BF4283936823AC1790164FEC5457A9CBA7C767CA5\ -9392D94CAB7448F50EB34E9A93A80027471CE59736F099C886DEA1AB4CBA4D89\ -F5FC7AE2F21CCD27F611ECA4626B2D08DC22382E92C1EFB2F6AFDC8FDC3D2172\ -604F5035C46B8197D3:\ -B2F1E13510E19996178F34A6A07982F73CD17953541A94FBE55E8C12 - -E29D505158DBDD937D9E3D2145658EE6F5992A2FC790F4F608D9CDB44A091D5B\ -94B88E81FAC4FDF5C49442F13B911C55886469629551189EAFF62488F1A479B7\ -DB11A1560E198DDCCCCF50159093425FF7F1CB8D1D1246D0978764087D6BAC25\ -7026B090EFAE8CEC5F22B6F21C59ACE1AC7386F5B8837CA6A12B6FBF5534DD05\ -60EF05CA78104D3B943DDB220FEAEC89AA5E692A00F822A2AB9A2FE60350D75E\ -7BE16FF2526DC643872502D01F42F188ABED0A6E9A6F5FD0D1CE7D5755C9FFA6\ -6B0AF0B20BD806F08E06156690D81AC811778CA3DAC2C249B96002017FCE93E5\ -07E3B953ACF99964B847:\ -E83EC4B9C2DE697EE9540B2FDA1EEBC13A440BBCFB90DA3A31AB6F01 - -D85588696F576E65ECA0155F395F0CFACD83F36A99111ED5768DF2D116D2121E\ -32357BA4F54EDE927F189F297D3A97FAD4E9A0F5B41D8D89DD7FE20156799C2B\ -7B6BF9C957BA0D6763F5C3BC5129747BBB53652B49290CFF1C87E2CDF2C4B95D\ -8AAEE09BC8FBFA6883E62D237885810491BFC101F1D8C636E3D0EDE838AD05C2\ -07A3DF4FAD76452979EB99F29AFAECEDD1C63B8D36CF378454A1BB67A741C77A\ -C6B6B3F95F4F02B64DABC15438613EA49750DF42EE90101F115AA9ABB9FF6432\ -4DDE9DABBB01054E1BD6B4BCDC7930A44C2300D87CA78C06924D0323AD7887E4\ -6C90E8C4D100ACD9EED21E:\ -F364226164C3285D2151637DA229141494EF514CE6815D53853C396F - -3A12F8508B40C32C74492B66323375DCFE49184C78F73179F3314B79E63376B8\ -AC683F5A51F1534BD729B02B04D002F55CBD8E8FC9B5EC1EA6BBE6A0D0E74315\ -18E6BA45D124035F9D3DCE0A8BB7BF1430A9F657E0B4EA9F20EB20C786A58181\ -A1E20A96F1628F8728A13BDF7A4B4B32FC8AA7054CC4881AE7FA19AFA65C6C3E\ -E1B3ADE3192AF42054A8A911B8EC1826865D46D93F1E7C5E2B7813C92A506E53\ -886F3D4701BB93D2A681AD109C845904BB861AF8AF0646B6E399B38B614051D3\ -4F6842563A0F37EC00CB3D865FC5D746C4987DE2A65071100883A2A9C7A2BFE1\ -E2DD603D9EA24DC7C5FD06BE:\ -348EAB358B094840264EF09959D8190FD9CDAE6B0F8753EA9597DCDD - -1861EDCE46FA5AD17E1FF1DEAE084DEC580F97D0A67885DFE834B9DFAC1AE076\ -742CE9E267512CA51F6DF5A455AF0C5FD6ABF94ACEA103A3370C354485A7846F\ -B84F3AC7C2904B5B2FBF227002CE512133BB7E1C4E50057BFD1E44DB33C7CDB9\ -69A99E284B184F50A14B068A1FC5009D9B298DBE92239572A7627AAC02ABE8F3\ -E3B473417F36D4D2505D16B7577F4526C9D94A270A2DFE450D06DA8F6FA95687\ -9A0A55CFE99E742EA555EA477BA3E9B44CCD508C375423611AF92E55345DC215\ -779B2D5119EBA49C71D49B9FE3F1569FA24E5CA3E332D042422A8B8158D3EC66\ -A80012976F31FFDF305F0C9C5E:\ -71F976F90B45DFA3DA49413EC568E7059D8F096BA3043BC862D8C699 - -08D0FFDE3A6E4EF65608EA672E4830C12943D7187CCFF08F4941CFC13E545F3B\ -9C7AD5EEBBE2B01642B486CAF855C2C73F58C1E4E3391DA8E2D63D96E15FD849\ -53AE5C231911B00AD6050CD7AAFDAAC9B0F663AE6AAB45519D0F5391A541707D\ -479034E73A6AD805AE3598096AF078F1393301493D663DD71F83869CA27BA508\ -B7E91E81E128C1716DC3ACFE3084B2201E04CF8006617EECF1B640474A5D45CF\ -DE9F4D3EF92D6D055B909892194D8A8218DB6D8203A84261D200D71473D7488F\ -3427416B6896C137D455F231071CACBC86E0415AB88AEC841D96B7B8AF41E05B\ -B461A40645BF176601F1E760DE5F:\ -BC73C79014FF681C08CD531001C8B3DC43B5CB8FBE22EDA68914A901 - -D782ABB72A5BE3392757BE02D3E45BE6E2099D6F000D042C8A543F50ED6EBC05\ -5A7F133B0DD8E9BC348536EDCAAE2E12EC18E8837DF7A1B3C87EC46D50C241DE\ -E820FD586197552DC20BEEA50F445A07A38F1768A39E2B2FF05DDDEDF751F1DE\ -F612D2E4D810DAA3A0CC904516F9A43AF660315385178A529E51F8AAE141808C\ -8BC5D7B60CAC26BB984AC1890D0436EF780426C547E94A7B08F01ACBFC4A3825\ -EAE04F520A9016F2FB8BF5165ED12736FC71E36A49A73614739EAA3EC834069B\ -1B40F1350C2B3AB885C02C640B9F7686ED5F99527E41CFCD796FE4C256C91731\ -86C226169FF257954EBDA81C0E5F99:\ -F82B56ED43F90E67EA9176D18FF44532163564E3991B2F0AA1ABBC16 - -5FCE8109A358570E40983E1184E541833BB9091E280F258CFB144387B05D190E\ -431CB19BAA67273BA0C58ABE91308E1844DCD0B3678BAA42F335F2FA05267A02\ -40B3C718A5942B3B3E3BFA98A55C25A1466E8D7A603722CB2BBF03AFA54CD769\ -A99F310735EE5A05DAE2C22D397BD95635F58C48A67F90E1B73AAFCD3F82117F\ -0166657838691005B18DA6F341D6E90FC1CDB352B30FAE45D348294E501B6325\ -2DE14740F2B85AE5299DDEC3172DE8B6D0BA219A20A23BB5E10FF434D39DB3F5\ -83305E9F5C039D98569E377B75A70AB837D1DF269B8A4B566F40BB91B577455F\ -D3C356C914FA06B9A7CE24C7317A172D:\ -BDD56AF9BAA66AD5D08E6F439F5BDC9F75B6D232BEE8AAE8A75A37B4 - -6172F1971A6E1E4E6170AFBAD95D5FEC99BF69B24B674BC17DD78011615E502D\ -E6F56B86B1A71D3F4348087218AC7B7D09302993BE272E4A591968AEF18A1262\ -D665610D1070EE91CC8DA36E1F841A69A7A682C580E836941D21D909A3AFC1F0\ -B963E1CA5AB193E124A1A53DF1C587470E5881FB54DAE1B0D840F0C8F9D1B04C\ -645BA1041C7D8DBF22030A623AA15638B3D99A2C400FF76F3252079AF88D2B37\ -F35EE66C1AD7801A28D3D388AC450B97D5F0F79E4541755356B3B1A5696B023F\ -39AB7AB5F28DF4202936BC97393B93BC915CB159EA1BD7A0A414CB4B7A1AC3AF\ -68F50D79F0C9C7314E750F7D02FAA58BFA:\ -5447ACBE8DC8B440F263E5EC6B0558AB5E962EB4ED33CEC9058B9DAD - -5668ECD99DFBE215C4118398AC9C9EAF1A1433FAB4CCDD3968064752B625EA94\ -4731F75D48A27D047D67547F14DD0FFAA55FA5E29F7AF0D161D85EAFC4F2029B\ -717C918EAB9D304543290BDBA7158B68020C0BA4E079BC95B5BC0FC044A992B9\ -4B4CCD3BD66D0EABB5DBBAB904D62E00752C4E3B0091D773BCF4C14B4377DA3E\ -FFF824B1CB2FA01B32D1E46C909E626ED2DAE920F4C7DBEB635BC754FACBD8D4\ -9BEBA3F23C1C41CCBFCD0EE0C114E69737F5597C0BF1D859F0C767E18002AE8E\ -39C26261FFDE2920D3D0BAF0E906138696CFE5B7E32B600F45DF3AAA39932F3A\ -7DF95B60FA8712A2271FCAF3911CE7B511B1:\ -0069EF1213B3DBBAC09595D50A5EDFDD9A694C27CF1C906FCE529306 - -03D625488354DF30E3F875A68EDFCF340E8366A8E1AB67F9D5C5486A96829DFA\ -C0578289082B2A62117E1CF418B43B90E0ADC881FC6AE8105C888E9ECD21AEA1\ -C9AE1A4038DFD17378FED71D02AE492087D7CDCD98F746855227967CB1AB4714\ -261EE3BEAD3F4DB118329D3EBEF4BC48A875C19BA763966DA0EBEA800E01B2F5\ -0B00E9DD4CACA6DCB314D00184EF71EA2391D760C950710DB4A70F9212FFC548\ -61F9DC752CE18867B8AD0C48DF8466EF7231E7AC567F0EB55099E622EBB86CB2\ -37520190A61C66AD34F1F4E289CB3282AE3EAAC6152ED24D2C92BAE5A7658252\ -A53C49B7B02DFE54FDB2E90074B6CF310AC661:\ -C24FDB3F1694A20F838F211CBE06A63667E6F53808D418F9E67F5C45 - -2EDC282FFB90B97118DD03AAA03B145F363905E3CBD2D50ECD692B37BF000185\ -C651D3E9726C690D3773EC1E48510E42B17742B0B0377E7DE6B8F55E00A8A4DB\ -4740CEE6DB0830529DD19617501DC1E9359AA3BCF147E0A76B3AB70C4984C13E\ -339E6806BB35E683AF8527093670859F3D8A0FC7D493BCBA6BB12B5F65E71E70\ -5CA5D6C948D66ED3D730B26DB395B3447737C26FAD089AA0AD0E306CB28BF0AC\ -F106F89AF3745F0EC72D534968CCA543CD2CA50C94B1456743254E358C1317C0\ -7A07BF2B0ECA438A709367FAFC89A57239028FC5FECFD53B8EF958EF10EE0608\ -B7F5CB9923AD97058EC067700CC746C127A61EE3:\ -9AED1E2396E7CBADEBE222988E89088EB8662D9ECB82484DCFAADCD5 - -90B28A6AA1FE533915BCB8E81ED6CACDC10962B7FF82474F845EEB86977600CF\ -70B07BA8E3796141EE340E3FCE842A38A50AFBE90301A3BDCC591F2E7D9DE53E\ -495525560B908C892439990A2CA2679C5539FFDF636777AD9C1CDEF809CDA9E8\ -DCDB451ABB9E9C17EFA4379ABD24B182BD981CAFC792640A183B61694301D04C\ -5B3EAAD694A6BD4CC06EF5DA8FA23B4FA2A64559C5A68397930079D250C51BCF\ -00E2B16A6C49171433B0AADFD80231276560B80458DD77089B7A1BBCC9E7E4B9\ -F881EACD6C92C4318348A13F4914EB27115A1CFC5D16D7FD94954C3532EFACA2\ -CAB025103B2D02C6FD71DA3A77F417D7932685888A:\ -5B392FAD87C1B929FBEE57A391C0B1DC16B259A40404E69C92932882 - -2969447D175490F2AA9BB055014DBEF2E6854C95F8D60950BFE8C0BE8DE254C2\ -6B2D31B9E4DE9C68C9ADF49E4EE9B1C2850967F29F5D08738483B417BB96B2A5\ -6F0C8ACA632B552059C59AAC3F61F7B45C966B75F1D9931FF4E596406378CEE9\ -1AAA726A3A84C33F37E9CDBE626B5745A0B06064A8A8D56E53AAF102D23DD9DF\ -0A3FDF7A638509A6761A33FA42FA8DDBD8E16159C93008B53765019C3F0E9F10\ -B144CE2AC57F5D7297F9C9949E4FF68B70D339F87501CE8550B772F32C6DA8AD\ -2CE2100A895D8B08FA1EEAD7C376B407709703C510B50F87E73E43F8E7348F87\ -C3832A547EF2BBE5799ABEDCF5E1F372EA809233F006:\ -6A67D956D2B1745B20058EE5AF7689318E0F41E35331D5333C27F620 - -721645633A44A2C78B19024EAECF58575AB23C27190833C26875DC0F0D50B46A\ -EA9C343D82EA7D5B3E50EC700545C615DAEAEA64726A0F05607576DCD396D812\ -B03FB6551C641087856D050B10E6A4D5577B82A98AFB89CEE8594C9DC19E79FE\ -FF0382FCFD127F1B803A4B9946F4AC9A4378E1E6E041B1389A53E3450CD32D9D\ -2941B0CBABDB50DA8EA2513145164C3AB6BCBD251C448D2D4B087AC57A59C228\ -5D564F16DA4ED5E607ED979592146FFB0EF3F3DB308FB342DF5EB5924A48256F\ -C763141A278814C82D6D6348577545870AE3A83C7230AC02A1540FE1798F7EF0\ -9E335A865A2AE0949B21E4F748FB8A51F44750E213A8FB:\ -A2EC7CA7F7878AE0BB9A089F426C94103E1C7B7BA55CDFA82FC9979B - -6B860D39725A14B498BB714574B4D37CA787404768F64C648B1751B353AC92BA\ -C2C3A28EA909FDF0423336401A02E63EC24325300D823B6864BB701F9D7C7A1F\ -8EC9D0AE3584AA6DD62EA1997CD831B4BABD9A4DA50932D4EFDA745C61E41308\ -90E156AEE6113716DAF95764222A91187DB2EFFEA49D5D0596102D619BD26A61\ -6BBFDA8335505FBB0D90B4C180D1A2335B91538E1668F9F9642790B4E55F9CAB\ -0FE2BDD2935D001EE6419ABAB5457880D0DBFF20ED8758F4C20FE759EFB33141\ -CF0E892587FE8187E5FBC57786B7E8B089612C936DFC03D27EFBBE7C8673F160\ -6BD51D5FF386F4A7AB68EDF59F385EB1291F117BFE717399:\ -99D7A1E42F73F44821E8503C34FEF36913C5E2F7BF3126806BF85D21 - -6A01830AF3889A25183244DECB508BD01253D5B508AB490D3124AFBF42626B2E\ -70894E9B562B288D0A2450CFACF14A0DDAE5C04716E5A0082C33981F6037D23D\ -5E045EE1EF2283FB8B6378A914C5D9441627A722C282FF452E25A7EA608D69CE\ -E4393A0725D17963D0342684F255496D8A18C2961145315130549311FC07F031\ -2FB78E6077334F87EAA873BEE8AA95698996EB21375EB2B4EF53C14401207DEB\ -4568398E5DD9A7CF97E8C9663E23334B46912F8344C19EFCF8C2BA6F04325F1A\ -27E062B62A58D0766FC6DB4D2C6A1928604B0175D872D16B7908EBC041761187\ -CC785526C2A3873FEAC3A642BB39F5351550AF9770C328AF7B:\ -A57F7E1ECD17133A0E61964F19936F88BA80C43A5D8FD454CEF6D73B - -B3C5E74B69933C2533106C563B4CA20238F2B6E675E8681E34A389894785BDAD\ -E59652D4A73D80A5C85BD454FD1E9FFDAD1C3815F5038E9EF432AAC5C3C4FE84\ -0CC370CF86580A6011778BBEDAF511A51B56D1A2EB68394AA299E26DA9ADA6A2\ -F39B9FAFF7FBA457689B9C1A577B2A1E505FDF75C7A0A64B1DF81B3A356001BF\ -0DF4E02A1FC59F651C9D585EC6224BB279C6BEBA2966E8882D68376081B98746\ -8E7AED1EF90EBD090AE825795CDCA1B4F09A979C8DFC21A48D8A53CDBB26C4DB\ -547FC06EFE2F9850EDD2685A4661CB4911F165D4B63EF25B87D0A96D3DFF6AB0\ -758999AAD214D07BD4F133A6734FDE445FE474711B69A98F7E2B:\ -00FE33E7049FC993D9D57C36A09577808263BC45F8159FF22435D29C - -83AF34279CCB5430FEBEC07A81950D30F4B66F484826AFEE7456F0071A51E1BB\ -C55570B5CC7EC6F9309C17BF5BEFDD7C6BA6E968CF218A2B34BD5CF927AB846E\ -38A40BBD81759E9E33381016A755F699DF35D660007B5EADF292FEEFB735207E\ -BF70B5BD17834F7BFA0E16CB219AD4AF524AB1EA37334AA66435E5D397FC0A06\ -5C411EBBCE32C240B90476D307CE802EC82C1C49BC1BEC48C0675EC2A6C6F3ED\ -3E5B741D13437095707C565E10D8A20B8C20468FF9514FCF31B4249CD82DCEE5\ -8C0A2AF538B291A87E3390D737191A07484A5D3F3FB8C8F15CE056E5E5F8FEBE\ -5E1FB59D6740980AA06CA8A0C20F5712B4CDE5D032E92AB89F0AE1:\ -598555E1051F7883582409DFDCB596804A4316E36B4F619EB0504D43 - -A7ED84749CCC56BB1DFBA57119D279D412B8A986886D810F067AF349E8749E9E\ -A746A60B03742636C464FC1EE233ACC52C1983914692B64309EDFDF29F1AB912\ -EC3E8DA074D3F1D231511F5756F0B6EEAD3E89A6A88FE330A10FACE267BFFBFC\ -3E3090C7FD9A850561F363AD75EA881E7244F80FF55802D5EF7A1A4E7B89FCFA\ -80F16DF54D1B056EE637E6964B9E0FFD15B6196BDD7DB270C56B47251485348E\ -49813B4EB9ED122A01B3EA45AD5E1A929DF61D5C0F3E77E1FDC356B63883A60E\ -9CBB9FC3E00C2F32DBD469659883F690C6772E335F617BC33F161D6F6984252E\ -E12E62B6000AC5231E0C9BC65BE223D8DFD94C5004A101AF9FD6C0FB:\ -DFDE90F60032C8C0043B93ED22E434BA372C17C599BC8A0E0D9C4F36 - -A6FE30DCFCDA1A329E82AB50E32B5F50EB25C873C5D2305860A835AECEE6264A\ -A36A47429922C4B8B3AFD00DA16035830EDB897831C4E7B00F2C23FC0B15FDC3\ -0D85FB70C30C431C638E1A25B51CAF1D7E8B050B7F89BFB30F59F0F20FECFF3D\ -639ABC4255B3868FC45DD81E47EB12AB40F2AAC735DF5D1DC1AD997CEFC4D836\ -B854CEE9AC02900036F3867FE0D84AFFF37BDE3308C2206C62C4743375094108\ -877C73B87B2546FE05EA137BEDFC06A2796274099A0D554DA8F7D7223A48CBF3\ -1B7DECAA1EBC8B145763E3673168C1B1B715C1CD99ECD3DDB238B06049885ECA\ -D9347C2436DFF32C771F34A38587A44A82C5D3D137A03CAA27E66C8FF6:\ -00920AD9A60ECBC8C161831AD2BEA94FBC36BB355F0197B1DC04F42E - -83167FF53704C3AA19E9FB3303539759C46DD4091A52DDAE9AD86408B6933598\ -9E61414BC20AB4D01220E35241EFF5C9522B079FBA597674C8D716FE441E5661\ -10B6211531CECCF8FD06BC8E511D00785E57788ED9A1C5C73524F01830D2E114\ -8C92D0EDC97113E3B7B5CD3049627ABDB8B39DD4D6890E0EE91993F92B03354A\ -88F52251C546E64434D9C3D74544F23FB93E5A2D2F1FB15545B4E1367C97335B\ -0291944C8B730AD3D4789273FA44FB98D78A36C3C3764ABEEAC7C569C1E43A35\ -2E5B770C3504F87090DEE075A1C4C85C0C39CF421BDCC615F9EFF6CB4FE64680\ -04AECE5F30E1ECC6DB22AD9939BB2B0CCC96521DFBF4AE008B5B46BC006E:\ -C089D04204AC8F290BDFF56F5E81245F435CD3377B8B58FC473B22A8 - -3A3A819C48EFDE2AD914FBF00E18AB6BC4F14513AB27D0C178A188B61431E7F5\ -623CB66B23346775D386B50E982C493ADBBFC54B9A3CD383382336A1A0B2150A\ -15358F336D03AE18F666C7573D55C4FD181C29E6CCFDE63EA35F0ADF5885CFC0\ -A3D84A2B2E4DD24496DB789E663170CEF74798AA1BBCD4574EA0BBA40489D764\ -B2F83AADC66B148B4A0CD95246C127D5871C4F11418690A5DDF01246A0C80A43\ -C70088B6183639DCFDA4125BD113A8F49EE23ED306FAAC576C3FB0C1E256671D\ -817FC2534A52F5B439F72E424DE376F4C565CCA82307DD9EF76DA5B7C4EB7E08\ -5172E328807C02D011FFBF33785378D79DC266F6A5BE6BB0E4A92ECEEBAEB1:\ -43FF1A91FD6AA39FFD919289E5FFABD13F13816DD5403BBD094F4158 - -[Skein-512(256)] -:\ -39CCC4554A8B31853B9DE7A1FE638A24CCE6B35A55F2431009E18780335D2621 - -CC:\ -A018268ED814E0AD0F2D0304E8FE3F4118FCEFC07454D07123CC2C3E40E06A4F - -41FB:\ -F91902DDCC9688462E48F0BCDFCA031637F0D8DA577C1E2AA316B5C022450BF2 - -1F877C:\ -AE5520F519D56CB15F15BE222B46548BF967397F353D40B109732F066F6396DC - -C1ECFDFC:\ -2638B1711F1346D08BF02B5D1A575CD924140A608512AF5B8E4475632599A896 - -21F134AC57:\ -391CF2CCF93B44FC60E965E77D1D83DEA8CE6F8DF64872721F6CBA5A7D5A8052 - -C6F50BB74E29:\ -783AE71C0BADC74771C4A30C1A02619ECB8AAE05A49A514A45985B1B78AEEE59 - -119713CC83EEEF:\ -234B29E28E19C7008E05FA529F1DF2A52219FA1C93D414937A7F53C3B10273E9 - -4A4F202484512526:\ -DC278F71C1F634918A85129BFE0D7A9FA45156FA4EE970E89F4E85D5E3A9D24B - -1F66AB4185ED9B6375:\ -9A3B62CC26E36C9A8629320242D18900A5BA08DDCC37D06A32A1CF7C6F6AD718 - -EED7422227613B6F53C9:\ -52A05352D70DC99E888AB366ED71F557FC3A44E408E0301C00970C9B9DF0768D - -EAEED5CDFFD89DECE455F1:\ -46077CA953690BD06F228ABCF2F2F8E5452964069C04310AD3DEEF995478EBF7 - -5BE43C90F22902E4FE8ED2D3:\ -0A52D798101EE6F154B260743237DF31E15671FA8AB6FBB048F8DF46ED4A1044 - -A746273228122F381C3B46E4F1:\ -B054A5DDE925709DDF26C1FA45BDC2A9B6B82C71F2A80C7594082A9031FF666D - -3C5871CD619C69A63B540EB5A625:\ -27C80578D5FA8B471E7F5013E9221068FBCE0C9DF15DA33F8339E1282163F211 - -FA22874BCC068879E8EF11A69F0722:\ -BF961E0B1F629AE5BA8A5A0F5D120CE7DEB8186F39CE57142BEAF8D7BB92F496 - -52A608AB21CCDD8A4457A57EDE782176:\ -AEB4E6D540B5887ADFCB5D005D6E453B35F8305A4C5CEDFA39B6AB63FAFB9CDD - -82E192E4043DDCD12ECF52969D0F807EED:\ -BB872A962A4C9916350B87C40AA475C1A050370891238EAD820B7C12565D5E3B - -75683DCB556140C522543BB6E9098B21A21E:\ -941704A1F94EE92BC65C12D665799AE654E59630422F0D55F3011B2DB511D5FA - -06E4EFE45035E61FAAF4287B4D8D1F12CA97E5:\ -368F23396932F2258289166067635CC1A7397BC4699D21C937156986179D4B22 - -E26193989D06568FE688E75540AEA06747D9F851:\ -6B9D5FAD64AC4A0C0412F1E8A568BEAB02F109529556A51D66A5716C0F695DC8 - -D8DC8FDEFBDCE9D44E4CBAFE78447BAE3B5436102A:\ -0F363ECC1B9F971E7AF89169A686237E3AAC4330300F387F3A589CADAA392AC4 - -57085FD7E14216AB102D8317B0CB338A786D5FC32D8F:\ -F3B9E46D7CDBC0EC120761EE58876454FCC3EDA92920D6C319936CA6B36D8CDC - -A05404DF5DBB57697E2C16FA29DEFAC8AB3560D6126FA0:\ -00680831552EC4EF9706264FF51A9C3B27EC3ECEA96D5EFDDB386EDB2A5E42FB - -AECBB02759F7433D6FCB06963C74061CD83B5B3FFA6F13C6:\ -A1AF52917A60B9D58CDF795616B3E29E4BCE1D88D0902D85F0102D95774A74A5 - -AAFDC9243D3D4A096558A360CC27C8D862F0BE73DB5E88AA55:\ -CAD6AA978C8F95272C4F9C0529664DED99AF248554C14B9D64953F9EE7636097 - -7BC84867F6F9E9FDC3E1046CAE3A52C77ED485860EE260E30B15:\ -AC5E951C83DD9228382A2419D0B1FB9137FDEEABC3C597A178D348E4180C0381 - -FAC523575A99EC48279A7A459E98FF901918A475034327EFB55843:\ -0B309226BE30C552B80324B5F57492597F1ADB39E0FA07048BF0558096EB5722 - -0F8B2D8FCFD9D68CFFC17CCFB117709B53D26462A3F346FB7C79B85E:\ -7A8AEEA414409DD1A7305EBA6752A5F3EC1B4A51D31D775215F37D797B864F9C - -A963C3E895FF5A0BE4824400518D81412F875FA50521E26E85EAC90C04:\ -CD697F37A1E6379A4A127224827A29C58B7D48FE5A8FB94281E32356DFDFC00B - -03A18688B10CC0EDF83ADF0A84808A9718383C4070C6C4F295098699AC2C:\ -7A7DBDAE0560E7AAD205E8D1DA28C61EED8AFAE6A17B8452D64632E4491B2220 - -84FB51B517DF6C5ACCB5D022F8F28DA09B10232D42320FFC32DBECC3835B29:\ -BC861EE3BAAA81D9B145BCC16346EBBB6245AE1613B69443455006F5B6730D41 - -9F2FCC7C90DE090D6B87CD7E9718C1EA6CB21118FC2D5DE9F97E5DB6AC1E9C10:\ -9EC82726E31BAD61A93C9A34EA6634E6E0A2023B04A47EB929A92B1F692A5AB7 - -DE8F1B3FAA4B7040ED4563C3B8E598253178E87E4D0DF75E4FF2F2DEDD5A0BE0\ -46:\ -38A42107F2767F7144FCF9A753939CF3A44E5A54A01F5A5DEBED987CA7FA421C - -62F154EC394D0BC757D045C798C8B87A00E0655D0481A7D2D9FB58D93AEDC676\ -B5A0:\ -78BDFA9C96AD96EDA8A3E2AFFF06F92F2F1BECFD4B9BA6E3A51D4A42A40ABF71 - -B2DCFE9FF19E2B23CE7DA2A4207D3E5EC7C6112A8A22AEC9675A886378E14E5B\ -FBAD4E:\ -94309484994A3CF04B882C8D53315C58FA2454D1CC753C8B703A073E6B5BF476 - -47F5697AC8C31409C0868827347A613A3562041C633CF1F1F86865A576E02835\ -ED2C2492:\ -DD0E9DCA8B0B9A754816FC0CD75EFE3119926C2946FBFA60E85328D1E54A0CE3 - -512A6D292E67ECB2FE486BFE92660953A75484FF4C4F2ECA2B0AF0EDCDD4339C\ -6B2EE4E542:\ -A45830D06036D67D5893BEF27404EF6E2FEDB7A310FB45E3C5B15B32A3AB96F9 - -973CF2B4DCF0BFA872B41194CB05BB4E16760A1840D8343301802576197EC19E\ -2A1493D8F4FB:\ -7EF5AC7C9D83383D2FFA30E340118D556DAD25D5EB3771FAC674B027E3B53D49 - -80BEEBCD2E3F8A9451D4499961C9731AE667CDC24EA020CE3B9AA4BBC0A7F79E\ -30A934467DA4B0:\ -F3EFDB3615A0B5A241DD7A59D27B075C7D880AC19B5CF973C6DE56815E5AA02D - -7ABAA12EC2A7347674E444140AE0FB659D08E1C66DECD8D6EAE925FA451D65F3\ -C0308E29446B8ED3:\ -D74F60A0E767A8068A16BE3EC6F0ED2F5534009C8FC3C4BC7466B987A4582EE6 - -C88DEE9927679B8AF422ABCBACF283B904FF31E1CAC58C7819809F65D5807D46\ -723B20F67BA610C2B7:\ -90E61A8C10FD1830F3D9224EAC3231C284B57DDFF5E1FE4B05858C89E7F5CD03 - -01E43FE350FCEC450EC9B102053E6B5D56E09896E0DDD9074FE138E603821027\ -0C834CE6EADC2BB86BF6:\ -5D03C3C3A6CE9A4AF70270E6737BA7194FB0BE9333B6FF53CE470F15AE335117 - -337023370A48B62EE43546F17C4EF2BF8D7ECD1D49F90BAB604B839C2E6E5BD2\ -1540D29BA27AB8E309A4B7:\ -9AA90EE34964A1201FCE5B195C7C62FE118D6318FCF7ECD0D3BE7FEA480A1D7B - -6892540F964C8C74BD2DB02C0AD884510CB38AFD4438AF31FC912756F3EFEC6B\ -32B58EBC38FC2A6B913596A8:\ -A095B61415CAD26F554D9FA725290CB1C6E213D88C1A2E25A2030DBCA69FBD0F - -F5961DFD2B1FFFFDA4FFBF30560C165BFEDAB8CE0BE525845DEB8DC61004B7DB\ -38467205F5DCFB34A2ACFE96C0:\ -4C2D4D0E6C05D8EAD7468053CAC8F7399823D13AE53DC23545A6F831676DAD91 - -CA061A2EB6CEED8881CE2057172D869D73A1951E63D57261384B80CEB5451E77\ -B06CF0F5A0EA15CA907EE1C27EBA:\ -91DABB844959046A64958991A4A7A18F5B24DF9F112F97E275BBB8C09C495A75 - -1743A77251D69242750C4F1140532CD3C33F9B5CCDF7514E8584D4A5F9FBD730\ -BCF84D0D4726364B9BF95AB251D9BB:\ -978FB5D4157BCE824B8F88237D6FA7C0DC526882BF13476A34EF1756F396A28D - -D8FABA1F5194C4DB5F176FABFFF856924EF627A37CD08CF55608BBA8F1E324D7\ -C7F157298EABC4DCE7D89CE5162499F9:\ -6782789AF2F889D97D9BDC0EB98713CC94C2F6CDEC176D8AB8A067CBAB10CE9D - -BE9684BE70340860373C9C482BA517E899FC81BAAA12E5C6D7727975D1D41BA8\ -BEF788CDB5CF4606C9C1C7F61AED59F97D:\ -A1A9A97CD2D77E51588E5C659D209AC0D1469C6E41006938695C5E8DBD450B33 - -7E15D2B9EA74CA60F66C8DFAB377D9198B7B16DEB6A1BA0EA3C7EE2042F89D37\ -86E779CF053C77785AA9E692F821F14A7F51:\ -7279BE30B4F1CA70D243818B223EA198B51B9E04D1231483C40D6325AE5C03ED - -9A219BE43713BD578015E9FDA66C0F2D83CAC563B776AB9F38F3E4F7EF229CB4\ -43304FBA401EFB2BDBD7ECE939102298651C86:\ -40A6112CA57D40BBCE88FC0BA62137FC3543037BDDACAE3FECCF5E1E1EB99BBE - -C8F2B693BD0D75EF99CAEBDC22ADF4088A95A3542F637203E283BBC3268780E7\ -87D68D28CC3897452F6A22AA8573CCEBF245972A:\ -53A057E7182DCF231E9113392C24832368632D55FA38560D2A8B7AC4A3BF1BAA - -EC0F99711016C6A2A07AD80D16427506CE6F441059FD269442BAAA28C6CA037B\ -22EEAC49D5D894C0BF66219F2C08E9D0E8AB21DE52:\ -0CB6DC402B26B013A5EC764D9C8E3D70A389B126C18A31AF02F0B5E7EA1B9F1B - -0DC45181337CA32A8222FE7A3BF42FC9F89744259CFF653504D6051FE84B1A7F\ -FD20CB47D4696CE212A686BB9BE9A8AB1C697B6D6A33:\ -48DE1D6037C0882AFD1C0EA6A2E4D154B68F20741E4BCE7639BD1C21A58BF0C1 - -DE286BA4206E8B005714F80FB1CDFAEBDE91D29F84603E4A3EBC04686F99A46C\ -9E880B96C574825582E8812A26E5A857FFC6579F63742F:\ -640EC963CBCA339B5F01C0649EF6D01A1AF4C9F7E84622CAD95FD3B3D44FC98D - -EEBCC18057252CBF3F9C070F1A73213356D5D4BC19AC2A411EC8CDEEE7A571E2\ -E20EAF61FD0C33A0FFEB297DDB77A97F0A415347DB66BCAF:\ -BF067598C5ECD7377A9C787B352079144C7B0CCD2523087292F066C44FBAAEA6 - -416B5CDC9FE951BD361BD7ABFC120A5054758EBA88FDD68FD84E39D3B09AC254\ -97D36B43CBE7B85A6A3CEBDA8DB4E5549C3EE51BB6FCB6AC1E:\ -1888363FA0F4176B75CA5A978A8937D87B6CF330D1632FEE17BEAD16EF1EB74C - -5C5FAF66F32E0F8311C32E8DA8284A4ED60891A5A7E50FB2956B3CBAA79FC66C\ -A376460E100415401FC2B8518C64502F187EA14BFC9503759705:\ -B0D012A15DDC5796EA900C2C1B5AEB2307B6CFC80CFF88A76BFF2FADB81560F6 - -7167E1E02BE1A7CA69D788666F823AE4EEF39271F3C26A5CF7CEE05BCA831610\ -66DC2E217B330DF821103799DF6D74810EED363ADC4AB99F36046A:\ -EB73C16F090ACB059F8E31C92F6239C61E721E8C47D6CD64B55501B757F17671 - -2FDA311DBBA27321C5329510FAE6948F03210B76D43E7448D1689A063877B6D1\ -4C4F6D0EAA96C150051371F7DD8A4119F7DA5C483CC3E6723C01FB7D:\ -D90789EFA7CC0FCE8E0BA9BE68F9DE25228D9B3B4E12C3293BDD98C43DEDFF45 - -95D1474A5AAB5D2422ACA6E481187833A6212BD2D0F91451A67DD786DFC91DFE\ -D51B35F47E1DEB8A8AB4B9CB67B70179CC26F553AE7B569969CE151B8D:\ -095FE20CAC9643225C06B5D10364247D97C909D66E05DDF3C111062AF4D08D6C - -C71BD7941F41DF044A2927A8FF55B4B467C33D089F0988AA253D294ADDBDB325\ -30C0D4208B10D9959823F0C0F0734684006DF79F7099870F6BF53211A88D:\ -6C6B2655E9A5F60B2FD15679EA3A22E82D677870C47001C42F5390ADA1E39AB7 - -F57C64006D9EA761892E145C99DF1B24640883DA79D9ED5262859DCDA8C3C32E\ -05B03D984F1AB4A230242AB6B78D368DC5AAA1E6D3498D53371E84B0C1D4BA:\ -8C7AB8B3E4410566E586B851BC660CBD0814A9ADF847D51FC03E74E413F33147 - -E926AE8B0AF6E53176DBFFCC2A6B88C6BD765F939D3D178A9BDE9EF3AA131C61\ -E31C1E42CDFAF4B4DCDE579A37E150EFBEF5555B4C1CB40439D835A724E2FAE7:\ -08375C3267E2196834E65D2ABF25EA2A33E74ABCCA281E4A4D816BD7C8B5ADBD - -16E8B3D8F988E9BB04DE9C96F2627811C973CE4A5296B4772CA3EEFEB80A652B\ -DF21F50DF79F32DB23F9F73D393B2D57D9A0297F7A2F2E79CFDA39FA393DF1AC\ -00:\ -3CCDCBB0C34CE4241173CB0E85FFA50955A8D597381AAC3E11F362CB23EAEF7B - -FC424EEB27C18A11C01F39C555D8B78A805B88DBA1DC2A42ED5E2C0EC737FF68\ -B2456D80EB85E11714FA3F8EABFB906D3C17964CB4F5E76B29C1765DB03D91BE\ -37FC:\ -2EE4684B5DB641809A9B74E1D44C5A8C71C7A57B8974EE9C197222B1D23F1380 - -ABE3472B54E72734BDBA7D9158736464251C4F21B33FBBC92D7FAC9A35C4E332\ -2FF01D2380CBAA4EF8FB07D21A2128B7B9F5B6D9F34E13F39C7FFC2E72E47888\ -599BA5:\ -A21894F2710469B386A7AA124EAD2AD09AAE7EB6F3B5CF347491CD9CF41EE73F - -36F9F0A65F2CA498D739B944D6EFF3DA5EBBA57E7D9C41598A2B0E4380F3CF4B\ -479EC2348D015FFE6256273511154AFCF3B4B4BF09D6C4744FDD0F62D75079D4\ -40706B05:\ -19CDC0972B16F5A084B23C8437FA11392DF5A1D07AC5C3A47B7326459BE5B673 - -ABC87763CAE1CA98BD8C5B82CABA54AC83286F87E9610128AE4DE68AC95DF5E3\ -29C360717BD349F26B872528492CA7C94C2C1E1EF56B74DBB65C2AC351981FDB\ -31D06C77A4:\ -E11D1332806BD947D675DC8E67B54B6D3916B7261031151FDB49522813686E00 - -94F7CA8E1A54234C6D53CC734BB3D3150C8BA8C5F880EAB8D25FED13793A9701\ -EBE320509286FD8E422E931D99C98DA4DF7E70AE447BAB8CFFD92382D8A77760\ -A259FC4FBD72:\ -5D7B5CD43D331B77E9D19AF0C76366E1587DD7B6C1FD25324AF6AAB01F6CCB4C - -13BD2811F6ED2B6F04FF3895ACEED7BEF8DCD45EB121791BC194A0F806206BFF\ -C3B9281C2B308B1A729CE008119DD3066E9378ACDCC50A98A82E20738800B6CD\ -DBE5FE9694AD6D:\ -5CAC4B0D209C0584F7B015E97CAB3DC8E4806B892477E16F0C10150B72EA4BA5 - -1EED9CBA179A009EC2EC5508773DD305477CA117E6D569E66B5F64C6BC64801C\ -E25A8424CE4A26D575B8A6FB10EAD3FD1992EDDDEEC2EBE7150DC98F63ADC323\ -7EF57B91397AA8A7:\ -54BF78BB3DE4DB0AD5B7072713EBC2CBA4B0905F2DB751E290BA4B0268224A3E - -BA5B67B5EC3A3FFAE2C19DD8176A2EF75C0CD903725D45C9CB7009A900C0B0CA\ -7A2967A95AE68269A6DBF8466C7B6844A1D608AC661F7EFF00538E323DB5F2C6\ -44B78B2D48DE1A08AA:\ -0A3D37F3E3229230B572DA75CC602A84494CE54E3F71B6B4502119D97EF5CF38 - -0EFA26AC5673167DCACAB860932ED612F65FF49B80FA9AE65465E5542CB62075\ -DF1C5AE54FBA4DB807BE25B070033EFA223BDD5B1D3C94C6E1909C02B620D4B1\ -B3A6C9FED24D70749604:\ -A10FDEC0AF7A84254B0CCEC804FC6459A967D2BE4F9213209F2756A2ACC8D9FF - -BBFD933D1FD7BF594AC7F435277DC17D8D5A5B8E4D13D96D2F64E771ABBD51A5\ -A8AEA741BECCBDDB177BCEA05243EBD003CFDEAE877CCA4DA94605B67691919D\ -8B033F77D384CA01593C1B:\ -C73C5491C50C2D82428408997197F185188DE6B37CB7FF390E71CB3BAF675DF2 - -90078999FD3C35B8AFBF4066CBDE335891365F0FC75C1286CDD88FA51FAB94F9\ -B8DEF7C9AC582A5DBCD95817AFB7D1B48F63704E19C2BAA4DF347F48D4A6D603\ -013C23F1E9611D595EBAC37C:\ -B2D5CAE8EA14910786BAF1C9F191F984DFF3139B44C82970100B818C63437BE6 - -64105ECA863515C20E7CFBAA0A0B8809046164F374D691CDBD6508AAABC1819F\ -9AC84B52BAFC1B0FE7CDDBC554B608C01C8904C669D8DB316A0953A4C68ECE32\ -4EC5A49FFDB59A1BD6A292AA0E:\ -22096E7B0BF4D02D6D7917372DE40061C98912BA4780CE8EA2809127EF8B16C5 - -D4654BE288B9F3B711C2D02015978A8CC57471D5680A092AA534F7372C71CEAA\ -B725A383C4FCF4D8DEAA57FCA3CE056F312961ECCF9B86F14981BA5BED6AB5B4\ -498E1F6C82C6CAE6FC14845B3C8A:\ -1EE4600134EB024596BDE2CBEFA4FC7A28C4C5ED755C8AC56FE610F2ABB189C0 - -12D9394888305AC96E65F2BF0E1B18C29C90FE9D714DD59F651F52B88B3008C5\ -88435548066EA2FC4C101118C91F32556224A540DE6EFDDBCA296EF1FB00341F\ -5B01FECFC146BDB251B3BDAD556CD2:\ -462A31BE893A3683AD570B07F508FB094DBC0CD9473208385F62EB673EC22CBA - -871A0D7A5F36C3DA1DFCE57ACD8AB8487C274FAD336BC137EBD6FF4658B547C1\ -DCFAB65F037AA58F35EF16AFF4ABE77BA61F65826F7BE681B5B6D5A1EA8085E2\ -AE9CD5CF0991878A311B549A6D6AF230:\ -792E3A09971FA8FD06977085DE010586B925E20726B845D500F8A885F26C318C - -E90B4FFEF4D457BC7711FF4AA72231CA25AF6B2E206F8BF859D8758B89A7CD36\ -105DB2538D06DA83BAD5F663BA11A5F6F61F236FD5F8D53C5E89F183A3CEC615\ -B50C7C681E773D109FF7491B5CC22296C5:\ -BE1D265301623309F6F86FC9AF57D1CE79508ADA3D399D2A329B313388CE75B7 - -E728DE62D75856500C4C77A428612CD804F30C3F10D36FB219C5CA0AA30726AB\ -190E5F3F279E0733D77E7267C17BE27D21650A9A4D1E32F649627638DBADA970\ -2C7CA303269ED14014B2F3CF8B894EAC8554:\ -9217FF1985FC7B5D3C3659D88E121278B182A724ADBC33DAAB22AC1A3D23DC3B - -6348F229E7B1DF3B770C77544E5166E081850FA1C6C88169DB74C76E42EB983F\ -ACB276AD6A0D1FA7B50D3E3B6FCD799EC97470920A7ABED47D288FF883E24CA2\ -1C7F8016B93BB9B9E078BDB9703D2B781B616E:\ -735DEEE414C6BABA288B90AF36D3D2DBC8F6939BA4F5ABDF07CF58659F68E78C - -4B127FDE5DE733A1680C2790363627E63AC8A3F1B4707D982CAEA258655D9BF1\ -8F89AFE54127482BA01E08845594B671306A025C9A5C5B6F93B0A39522DC8774\ -37BE5C2436CBF300CE7AB6747934FCFC30AEAAF6:\ -C9634F96094D298D3451BD375760D6EAA55B0DCC3ABA31F60F5B857F9DD6C6EE - -08461F006CFF4CC64B752C957287E5A0FAABC05C9BFF89D23FD902D324C79903\ -B48FCB8F8F4B01F3E4DDB483593D25F000386698F5ADE7FAADE9615FDC50D327\ -85EA51D49894E45BAA3DC707E224688C6408B68B11:\ -E517F08DB939F856EB454201B35AB1AB440A4AA5BB1909106948A3527BFB28B5 - -68C8F8849B120E6E0C9969A5866AF591A829B92F33CD9A4A3196957A148C4913\ -8E1E2F5C7619A6D5EDEBE995ACD81EC8BB9C7B9CFCA678D081EA9E25A75D39DB\ -04E18D475920CE828B94E72241F24DB72546B352A0E4:\ -BA7C163C9772F526B8383088F6044909AD135AAB6D768A10F52D6492160EB503 - -B8D56472954E31FB54E28FCA743F84D8DC34891CB564C64B08F7B71636DEBD64\ -CA1EDBDBA7FC5C3E40049CE982BBA8C7E0703034E331384695E9DE76B5104F2F\ -BC4535ECBEEBC33BC27F29F18F6F27E8023B0FBB6F563C:\ -F2CFA80FC4F00E0CB60BEB539BDE774F7859A7D8B5A5D4DE5443DF25A6D5300F - -0D58AC665FA84342E60CEFEE31B1A4EACDB092F122DFC68309077AED1F3E528F\ -578859EE9E4CEFB4A728E946324927B675CD4F4AC84F64DB3DACFE850C1DD187\ -44C74CECCD9FE4DC214085108F404EAB6D8F452B5442A47D:\ -2A56DBDC7ADFFA534BD5D85075C23E237BD72436FC704682FDEBBC5A66B8E3A0 - -1755E2D2E5D1C1B0156456B539753FF416651D44698E87002DCF61DCFA2B4E72\ -F264D9AD591DF1FDEE7B41B2EB00283C5AEBB3411323B672EAA145C512518510\ -4F20F335804B02325B6DEA65603F349F4D5D8B782DD3469CCD:\ -BC42076ADE8F4064F392665BC6B38DF1F318EB1F187F69739D8F1B12EA7D852A - -B180DE1A611111EE7584BA2C4B020598CD574AC77E404E853D15A101C6F5A2E5\ -C801D7D85DC95286A1804C870BB9F00FD4DCB03AA8328275158819DCAD7253F3\ -E3D237AEAA7979268A5DB1C6CE08A9EC7C2579783C8AFC1F91A7:\ -5E0E986BCB24A4EA1ACD804BFF693FA0D4FFADF04EABC2306DD290FB3E6B8311 - -CF3583CBDFD4CBC17063B1E7D90B02F0E6E2EE05F99D77E24E560392535E47E0\ -5077157F96813544A17046914F9EFB64762A23CF7A49FE52A0A4C01C630CFE87\ -27B81FB99A89FF7CC11DCA5173057E0417B8FE7A9EFBA6D95C555F:\ -EC126D1F638BCA0E5B6F564F3557C40055D1D7B7D1A20F4A99E048C91BBC9081 - -072FC02340EF99115BAD72F92C01E4C093B9599F6CFC45CB380EE686CB5EB019\ -E806AB9BD55E634AB10AA62A9510CC0672CD3EDDB589C7DF2B67FCD3329F61B1\ -A4441ECA87A33C8F55DA4FBBAD5CF2B2527B8E983BB31A2FADEC7523:\ -B85C3E3BC8A4C5357A9E8F865C26E2CF06419F06D6CACEF987A2D062141E91BC - -76EECF956A52649F877528146DE33DF249CD800E21830F65E90F0F25CA9D6540\ -FDE40603230ECA6760F1139C7F268DEBA2060631EEA92B1FFF05F93FD5572FBE\ -29579ECD48BC3A8D6C2EB4A6B26E38D6C5FBF2C08044AEEA470A8F2F26:\ -7360743B6EF8D22E3AA211DB4475F9BD5A35C7CED9E5A9467020E50842A79A24 - -7ADC0B6693E61C269F278E6944A5A2D8300981E40022F839AC644387BFAC9086\ -650085C2CDC585FEA47B9D2E52D65A2B29A7DC370401EF5D60DD0D21F9E2B90F\ -AE919319B14B8C5565B0423CEFB827D5F1203302A9D01523498A4DB10374:\ -89E18B58920943DE7867A603C1B73075743C4306CCD1D78913D7A3B740D3C825 - -E1FFFA9826CCE8B86BCCEFB8794E48C46CDF372013F782ECED1E378269B7BE2B\ -7BF51374092261AE120E822BE685F2E7A83664BCFBE38FE8633F24E633FFE198\ -8E1BC5ACF59A587079A57A910BDA60060E85B5F5B6F776F0529639D9CCE4BD:\ -1FA9AB02096CDE60D0BC70D57BDF91434CA0F05917381AD7DF87B215586CE909 - -69F9ABBA65592EE01DB4DCE52DBAB90B08FC04193602792EE4DAA263033D5908\ -1587B09BBE49D0B49C9825D22840B2FF5D9C5155F975F8F2C2E7A90C75D2E4A8\ -040FE39F63BBAFB403D9E28CC3B86E04E394A9C9E8065BD3C85FA9F0C7891600:\ -FEF2A642C782251B43096681C3E08E8E8CBF4E5D1D593C76E6908AC1A8F8D387 - -38A10A352CA5AEDFA8E19C64787D8E9C3A75DBF3B8674BFAB29B5DBFC15A63D1\ -0FAE66CD1A6E6D2452D557967EAAD89A4C98449787B0B3164CA5B717A93F24EB\ -0B506CEB70CBBCB8D72B2A72993F909AAD92F044E0B5A2C9AC9CB16A0CA2F81F\ -49:\ -FC607D26583E38ECEB4429C2FEF1901050A154A035535E85FDFD368ACD4B67FF - -6D8C6E449BC13634F115749C248C17CD148B72157A2C37BF8969EA83B4D6BA8C\ -0EE2711C28EE11495F43049596520CE436004B026B6C1F7292B9C436B055CBB7\ -2D530D860D1276A1502A5140E3C3F54A93663E4D20EDEC32D284E25564F62495\ -5B52:\ -3D1D387BED0F63DC7644E0642F717AD8D230560FDD59D40BCBEF43D25458FD28 - -6EFCBCAF451C129DBE00B9CEF0C3749D3EE9D41C7BD500ADE40CDC65DEDBBBAD\ -B885A5B14B32A0C0D087825201E303288A733842FA7E599C0C514E078F05C821\ -C7A4498B01C40032E9F1872A1C925FA17CE253E8935E4C3C71282242CB716B20\ -89CCC1:\ -00D88BF06EB22471678C9C4849DAEF658C19BA46F818FCBB696C2C1977DDD1E5 - -433C5303131624C0021D868A30825475E8D0BD3052A022180398F4CA4423B982\ -14B6BEAAC21C8807A2C33F8C93BD42B092CC1B06CEDF3224D5ED1EC29784444F\ -22E08A55AA58542B524B02CD3D5D5F6907AFE71C5D7462224A3F9D9E53E7E084\ -6DCBB4CE:\ -617440B5A98E810A8316F5D038E6D39B73A4561D963AC21641EA1671B593568A - -A873E0C67CA639026B6683008F7AA6324D4979550E9BCE064CA1E1FB97A30B14\ -7A24F3F666C0A72D71348EDE701CF2D17E2253C34D1EC3B647DBCEF2F879F4EB\ -881C4830B791378C901EB725EA5C172316C6D606E0AF7DF4DF7F76E490CD30B2\ -BADF45685F:\ -0E52ECFC7E59B70B21AC4F6E02AA5A277DC315F111092DF7D9451FD84DF1CCF3 - -006917B64F9DCDF1D2D87C8A6173B64F6587168E80FAA80F82D84F60301E561E\ -312D9FBCE62F39A6FB476E01E925F26BCC91DE621449BE6504C504830AAE3940\ -96C8FC7694651051365D4EE9070101EC9B68086F2EA8F8AB7B811EA8AD934D5C\ -9B62C60A4771:\ -FD95F439AB9837C8296F635BD54F146D4F6C3EE8021F991938B99635BA55C05D - -F13C972C52CB3CC4A4DF28C97F2DF11CE089B815466BE88863243EB318C2ADB1\ -A417CB1041308598541720197B9B1CB5BA2318BD5574D1DF2174AF14884149BA\ -9B2F446D609DF240CE335599957B8EC80876D9A085AE084907BC5961B20BF5F6\ -CA58D5DAB38ADB:\ -D8A7E38369BE51555C48D30178A90C961C429825C0335EE77D91611C7DD7F99A - -E35780EB9799AD4C77535D4DDB683CF33EF367715327CF4C4A58ED9CBDCDD486\ -F669F80189D549A9364FA82A51A52654EC721BB3AAB95DCEB4A86A6AFA93826D\ -B923517E928F33E3FBA850D45660EF83B9876ACCAFA2A9987A254B137C6E140A\ -21691E1069413848:\ -0931E5ADE3D0C28F3EC2BC467DE1AB7A2604A06260E8AE4C54C96DC8B315E369 - -64EC021C9585E01FFE6D31BB50D44C79B6993D72678163DB474947A053674619\ -D158016ADB243F5C8D50AA92F50AB36E579FF2DABB780A2B529370DAA299207C\ -FBCDD3A9A25006D19C4F1FE33E4B1EAEC315D8C6EE1E730623FD1941875B924E\ -B57D6D0C2EDC4E78D6:\ -4DE61FD93F93B804A55B72760ECAE851589C56F4EF73ACBDE9694DF338C5B41A - -5954BAB512CF327D66B5D9F296180080402624AD7628506B555EEA8382562324\ -CF452FBA4A2130DE3E165D11831A270D9CB97CE8C2D32A96F50D71600BB4CA26\ -8CF98E90D6496B0A6619A5A8C63DB6D8A0634DFC6C7EC8EA9C006B6C456F1B20\ -CD19E781AF20454AC880:\ -9142F5AAE02DC1E3912AF868E023DE29292BAB840103DDA21C4303CD2D953298 - -03D9F92B2C565709A568724A0AFF90F8F347F43B02338F94A03ED32E6F33666F\ -F5802DA4C81BDCE0D0E86C04AFD4EDC2FC8B4141C2975B6F07639B1994C973D9\ -A9AFCE3D9D365862003498513BFA166D2629E314D97441667B007414E739D7FE\ -BF0FE3C32C17AA188A8683:\ -2C5C98FFFE3E2C815D290E00F1CDDD15B27807A3EF9878A226FFF53F203797A1 - -F31E8B4F9E0621D531D22A380BE5D9ABD56FAEC53CBD39B1FAB230EA67184440\ -E5B1D15457BD25F56204FA917FA48E669016CB48C1FFC1E1E45274B3B47379E0\ -0A43843CF8601A5551411EC12503E5AAC43D8676A1B2297EC7A0800DBFEE0429\ -2E937F21C005F17411473041:\ -FD453F0448152F1FC7D4995419874AF356DEB6111D827C3316A2286B53149CF1 - -758EA3FEA738973DB0B8BE7E599BBEF4519373D6E6DCD7195EA885FC991D8967\ -62992759C2A09002912FB08E0CB5B76F49162AEB8CF87B172CF3AD190253DF61\ -2F77B1F0C532E3B5FC99C2D31F8F65011695A087A35EE4EEE5E334C369D8EE5D\ -29F695815D866DA99DF3F79403:\ -C0030EC3D454644ED92CBF2AACF9768D1EA21B59C22DBE98C8F2BA696D1CE9A0 - -47C6E0C2B74948465921868804F0F7BD50DD323583DC784F998A93CD1CA4C6EF\ -84D41DC81C2C40F34B5BEE6A93867B3BDBA0052C5F59E6F3657918C382E771D3\ -3109122CC8BB0E1E53C4E3D13B43CE44970F5E0C079D2AD7D7A3549CD75760C2\ -1BB15B447589E86E8D76B1E9CED2:\ -ECD9886C5257852B01E916CD257FAE9CA07C8A0F27448DCC63E959827DA750A7 - -F690A132AB46B28EDFA6479283D6444E371C6459108AFD9C35DBD235E0B6B6FF\ -4C4EA58E7554BD002460433B2164CA51E868F7947D7D7A0D792E4ABF0BE5F450\ -853CC40D85485B2B8857EA31B5EA6E4CCFA2F3A7EF3380066D7D8979FDAC618A\ -AD3D7E886DEA4F005AE4AD05E5065F:\ -3533601FEFBA47577E021C44F49AAF61D4A6A6F79CFC8F4A9805ADECBE1495E9 - -58D6A99BC6458824B256916770A8417040721CCCFD4B79EACD8B65A3767CE5BA\ -7E74104C985AC56B8CC9AEBD16FEBD4CDA5ADB130B0FF2329CC8D611EB14DAC2\ -68A2F9E633C99DE33997FEA41C52A7C5E1317D5B5DAED35EBA7D5A60E45D1FA7\ -EAABC35F5C2B0A0F2379231953322C4E:\ -DEDBD8E69D095F7BABA95CFD1313359F645C822969B69413E22655B2CDF9656C - -BEFAB574396D7F8B6705E2D5B58B2C1C820BB24E3F4BAE3E8FBCD36DBF734EE1\ -4E5D6AB972AEDD3540235466E825850EE4C512EA9795ABFD33F330D9FD7F79E6\ -2BBB63A6EA85DE15BEAEEA6F8D204A28956059E2632D11861DFB0E65BC07AC8A\ -159388D5C3277E227286F65FF5E5B5AEC1:\ -F5F30CB5D4ADEB62718C3FDF7FCA1AA50E6ECDD334E1DDF2134DFF178D60CA67 - -8E58144FA9179D686478622CE450C748260C95D1BA43B8F9B59ABECA8D93488D\ -A73463EF40198B4D16FB0B0707201347E0506FF19D01BEA0F42B8AF9E71A1F1B\ -D168781069D4D338FDEF00BF419FBB003031DF671F4A37979564F69282DE9C65\ -407847DD0DA505AB1641C02DEA4F0D834986:\ -9AB8FBFC3C53430A30DAB8EC0AA96A4B85F538BCBBE4AAF410F0EF12BC979AD9 - -B55C10EAE0EC684C16D13463F29291BF26C82E2FA0422A99C71DB4AF14DD9C7F\ -33EDA52FD73D017CC0F2DBE734D831F0D820D06D5F89DACC485739144F8CFD47\ -99223B1AFF9031A105CB6A029BA71E6E5867D85A554991C38DF3C9EF8C1E1E9A\ -7630BE61CAABCA69280C399C1FB7A12D12AEFC:\ -4B38BF69C2D08D92A2A92905852B8EE90B4C684BE7EC550E1559F57202633661 - -2EEEA693F585F4ED6F6F8865BBAE47A6908AECD7C429E4BEC4F0DE1D0CA0183F\ -A201A0CB14A529B7D7AC0E6FF6607A3243EE9FB11BCF3E2304FE75FFCDDD6C5C\ -2E2A4CD45F63C962D010645058D36571404A6D2B4F44755434D76998E83409C3\ -205AA1615DB44057DB991231D2CB42624574F545:\ -33EBF28D8881B61523689193F6A471A783C0F5D76DF73E47C035A24004F1185F - -DAB11DC0B047DB0420A585F56C42D93175562852428499F66A0DB811FCDDDAB2\ -F7CDFFED1543E5FB72110B64686BC7B6887A538AD44C050F1E42631BC4EC8A9F\ -2A047163D822A38989EE4AAB01B4C1F161B062D873B1CFA388FD301514F62224\ -157B9BEF423C7783B7AAC8D30D65CD1BBA8D689C2D:\ -5171E62CBE96290D66161D561E95BF79295768B65E0F87EE0A8571418C74B96D - -42E99A2F80AEE0E001279A2434F731E01D34A44B1A8101726921C0590C30F312\ -0EB83059F325E894A5AC959DCA71CE2214799916424E859D27D789437B9D2724\ -0BF8C35ADBAFCECC322B48AA205B293962D858652ABACBD588BCF6CBC388D099\ -3BD622F96ED54614C25B6A9AA527589EAAFFCF17DDF7:\ -B2CA862FC344030728EC4DF7CA5462587AF39ACC4AB97F7437960E7FA3F0208B - -3C9B46450C0F2CAE8E3823F8BDB4277F31B744CE2EB17054BDDC6DFF36AF7F49\ -FB8A2320CC3BDF8E0A2EA29AD3A55DE1165D219ADEDDB5175253E2D1489E9B6F\ -DD02E2C3D3A4B54D60E3A47334C37913C5695378A669E9B72DEC32AF5434F93F\ -46176EBF044C4784467C700470D0C0B40C8A088C815816:\ -D0CA3B616E3F1C29E4A6F18913EBEDAEAAAE18401DE3C7C26DDEC12746CA2765 - -D1E654B77CB155F5C77971A64DF9E5D34C26A3CAD6C7F6B300D39DEB19100946\ -91ADAA095BE4BA5D86690A976428635D5526F3E946F7DC3BD4DBC78999E65344\ -1187A81F9ADCD5A3C5F254BC8256B0158F54673DCC1232F6E918EBFC6C51CE67\ -EAEB042D9F57EEC4BFE910E169AF78B3DE48D137DF4F2840:\ -CFAF20BA211E0E57BC2B5C4E9F1FB413E20000E28A2594DF0F524FA385BD063E - -626F68C18A69A6590159A9C46BE03D5965698F2DAC3DE779B878B3D9C421E0F2\ -1B955A16C715C1EC1E22CE3EB645B8B4F263F60660EA3028981EEBD6C8C3A367\ -285B691C8EE56944A7CD1217997E1D9C21620B536BDBD5DE8925FF71DEC6FBC0\ -6624AB6B21E329813DE90D1E572DFB89A18120C3F606355D25:\ -E360D12CE51F0A0408DCD07311D795A66DFEE13B5F545D1A87FA01888910BB2E - -651A6FB3C4B80C7C68C6011675E6094EB56ABF5FC3057324EBC6477825061F9F\ -27E7A94633ABD1FA598A746E4A577CAF524C52EC1788471F92B8C37F23795CA1\ -9D559D446CAB16CBCDCE90B79FA1026CEE77BF4AB1B503C5B94C2256AD75B3EA\ -C6FD5DCB96ACA4B03A834BFB4E9AF988CECBF2AE597CB9097940:\ -D91BDDF47646FDB8704BF341ECFB3F7A38865B74AB66C0FC61739EA27F3B40A2 - -8AAF072FCE8A2D96BC10B3C91C809EE93072FB205CA7F10ABD82ECD82CF040B1\ -BC49EA13D1857815C0E99781DE3ADBB5443CE1C897E55188CEAF221AA9681638\ -DE05AE1B322938F46BCE51543B57ECDB4C266272259D1798DE13BE90E10EFEC2\ -D07484D9B21A3870E2AA9E06C21AA2D0C9CF420080A80A91DEE16F:\ -CAF2CC15CDF0DDA5B1400321D61A02B30303606D69A40F3A9BB4B852A632AB0D - -53F918FD00B1701BD504F8CDEA803ACCA21AC18C564AB90C2A17DA592C7D6968\ -8F6580575395551E8CD33E0FEF08CA6ED4588D4D140B3E44C032355DF1C53156\ -4D7F4835753344345A6781E11CD5E095B73DF5F82C8AE3AD00877936896671E9\ -47CC52E2B29DCD463D90A0C9929128DA222B5A211450BBC0E02448E2:\ -B93C7B2B07866E6FBE146C88CB92DBCE7B4F33F3D90C1B69D2EB39B17AA122B8 - -A64599B8A61B5CCEC9E67AED69447459C8DA3D1EC6C7C7C82A7428B9B584FA67\ -E90F68E2C00FBBED4613666E5168DA4A16F395F7A3C3832B3B134BFC9CBAA95D\ -2A0FE252F44AC6681EB6D40AB91C1D0282FED6701C57463D3C5F2BB8C6A7301F\ -B4576AA3B5F15510DB8956FF77478C26A7C09BEA7B398CFC83503F538E:\ -F5259B275F25DA827232684CAB4B615609FE0D161916293FA173A71CDE464B37 - -0E3AB0E054739B00CDB6A87BD12CAE024B54CB5E550E6C425360C2E87E59401F\ -5EC24EF0314855F0F56C47695D56A7FB1417693AF2A1ED5291F2FEE95F75EED5\ -4A1B1C2E81226FBFF6F63ADE584911C71967A8EB70933BC3F5D15BC91B5C2644\ -D9516D3C3A8C154EE48E118BD1442C043C7A0DBA5AC5B1D5360AAE5B9065:\ -3D148ED7CDB57EDFC12FFE9D5D6373DE7F94927C7C1C5F5A5A883D3D6806A8B5 - -A62FC595B4096E6336E53FCDFC8D1CC175D71DAC9D750A6133D23199EAAC2882\ -07944CEA6B16D27631915B4619F743DA2E30A0C00BBDB1BBB35AB852EF3B9AEC\ -6B0A8DCC6E9E1ABAA3AD62AC0A6C5DE765DE2C3711B769E3FDE44A74016FFF82\ -AC46FA8F1797D3B2A726B696E3DEA5530439ACEE3A45C2A51BC32DD055650B:\ -056067952A0C8980EA0D580E45516C2CB0D2ED3AC0666474843F4A3C8C1CD7DB - -2B6DB7CED8665EBE9DEB080295218426BDAA7C6DA9ADD2088932CDFFBAA1C141\ -29BCCDD70F369EFB149285858D2B1D155D14DE2FDB680A8B027284055182A0CA\ -E275234CC9C92863C1B4AB66F304CF0621CD54565F5BFF461D3B461BD40DF281\ -98E3732501B4860EADD503D26D6E69338F4E0456E9E9BAF3D827AE685FB1D817:\ -646F10BA11E7B11292E7F60551316C36625382F200959F3569DE356F64DDEA55 - -10DB509B2CDCABA6C062AE33BE48116A29EB18E390E1BBADA5CA0A2718AFBCD2\ -3431440106594893043CC7F2625281BF7DE2655880966A23705F0C5155C2F5CC\ -A9F2C2142E96D0A2E763B70686CD421B5DB812DACED0C6D65035FDE558E94F26\ -B3E6DDE5BD13980CC80292B723013BD033284584BFF27657871B0CF07A849F4A\ -E2:\ -86244EA88B4719B0D9BB3A5331E7377ADD4B344787E1E1AEDB5255FDC91A3BDD - -9334DE60C997BDA6086101A6314F64E4458F5FF9450C509DF006E8C547983C65\ -1CA97879175AABA0C539E82D05C1E02C480975CBB30118121061B1EBAC4F8D9A\ -3781E2DB6B18042E01ECF9017A64A0E57447EC7FCBE6A7F82585F7403EE2223D\ -52D37B4BF426428613D6B4257980972A0ACAB508A7620C1CB28EB4E9D30FC413\ -61EC:\ -050E9EFCC769A37A0D2E2025D188420F64DA7462FF23C84097BF0459B5BC72E0 - -E88AB086891693AA535CEB20E64C7AB97C7DD3548F3786339897A5F0C3903154\ -9CA870166E477743CCFBE016B4428D89738E426F5FFE81626137F17AECFF61B7\ -2DBEE2DC20961880CFE281DFAB5EE38B1921881450E16032DE5E4D55AD8D4FCA\ -609721B0692BAC79BE5A06E177FE8C80C0C83519FB3347DE9F43D5561CB8107B\ -9B5EDC:\ -EA579B71967AFE941AF6F387EC21333A6D54D0DCCF8B8030A62D4DCE323E6CDE - -FD19E01A83EB6EC810B94582CB8FBFA2FCB992B53684FB748D2264F020D3B960\ -CB1D6B8C348C2B54A9FCEA72330C2AAA9A24ECDB00C436ABC702361A82BB8828\ -B85369B8C72ECE0082FE06557163899C2A0EFA466C33C04343A839417057399A\ -63A3929BE1EE4805D6CE3E5D0D0967FE9004696A5663F4CAC9179006A2CEB755\ -42D75D68:\ -4B4E15C2FFBCDF3D85EBB40DF82B33DBEF5FE7DB148F0D1DF56B2649127455E1 - -59AE20B6F7E0B3C7A989AFB28324A40FCA25D8651CF1F46AE383EF6D8441587A\ -A1C04C3E3BF88E8131CE6145CFB8973D961E8432B202FA5AF3E09D625FAAD825\ -BC19DA9B5C6C20D02ABDA2FCC58B5BD3FE507BF201263F30543819510C12BC23\ -E2DDB4F711D087A86EDB1B355313363A2DE996B891025E147036087401CCF3CA\ -7815BF3C49:\ -C24FA9ECB586C843DE5D2ECC64704580777EC32B92167A383BDCF664F7B9F39A - -77EE804B9F3295AB2362798B72B0A1B2D3291DCEB8139896355830F34B3B3285\ -61531F8079B79A6E9980705150866402FDC176C05897E359A6CB1A7AB067383E\ -B497182A7E5AEF7038E4C96D133B2782917417E391535B5E1B51F47D8ED7E4D4\ -025FE98DC87B9C1622614BFF3D1029E68E372DE719803857CA52067CDDAAD958\ -951CB2068CC6:\ -F639AF0E45033DC8F3643646ADDA30FD522B1E375CF34BD4F04E46049DEE8246 - -B771D5CEF5D1A41A93D15643D7181D2A2EF0A8E84D91812F20ED21F147BEF732\ -BF3A60EF4067C3734B85BC8CD471780F10DC9E8291B58339A677B960218F71E7\ -93F2797AEA349406512829065D37BB55EA796FA4F56FD8896B49B2CD19B43215\ -AD967C712B24E5032D065232E02C127409D2ED4146B9D75D763D52DB98D949D3\ -B0FED6A8052FBB:\ -6D76B610320C5C7732CDC5C23781D7F931DCA1DC4DE0B438B2A07442BD1FA90C - -B32D95B0B9AAD2A8816DE6D06D1F86008505BD8C14124F6E9A163B5A2ADE55F8\ -35D0EC3880EF50700D3B25E42CC0AF050CCD1BE5E555B23087E04D7BF9813622\ -780C7313A1954F8740B6EE2D3F71F768DD417F520482BD3A08D4F222B4EE9DBD\ -015447B33507DD50F3AB4247C5DE9A8ABD62A8DECEA01E3B87C8B927F5B08BEB\ -37674C6F8E380C04:\ -D7B30952F814D5BF6D4203443D21BD353E866CD615F93B555220D1FB0A7C0DF7 - -04410E31082A47584B406F051398A6ABE74E4DA59BB6F85E6B49E8A1F7F2CA00\ -DFBA5462C2CD2BFDE8B64FB21D70C083F11318B56A52D03B81CAC5EEC29EB31B\ -D0078B6156786DA3D6D8C33098C5C47BB67AC64DB14165AF65B44544D806DDE5\ -F487D5373C7F9792C299E9686B7E5821E7C8E2458315B996B5677D926DAC57B3\ -F22DA873C601016A0D:\ -3DB2149AF362D83E1AF96E2FD2B7A08C367D9F59BA4B65F0FD09945B39083FCB - -8B81E9BADDE026F14D95C019977024C9E13DB7A5CD21F9E9FC491D716164BBAC\ -DC7060D882615D411438AEA056C340CDF977788F6E17D118DE55026855F93270\ -472D1FD18B9E7E812BAE107E0DFDE7063301B71F6CFE4E225CAB3B232905A56E\ -994F08EE2891BA922D49C3DAFEB75F7C69750CB67D822C96176C46BD8A29F170\ -1373FB09A1A6E3C7158F:\ -B912AA656A2E33D9710CF86EC449461078C7ABDE85D8E31CCD39F4ACC8D67F91 - -FA6EED24DA6666A22208146B19A532C2EC9BA94F09F1DEF1E7FC13C399A48E41\ -ACC2A589D099276296348F396253B57CB0E40291BD282773656B6E0D8BEA1CDA\ -084A3738816A840485FCF3FB307F777FA5FEAC48695C2AF4769720258C77943F\ -B4556C362D9CBA8BF103AEB9034BAA8EA8BFB9C4F8E6742CE0D52C49EA8E974F\ -339612E830E9E7A9C29065:\ -811EF2AAC250B75A2231CC9BE17339AFA3778FD44336E4B4D1CDA73FD9C1B4AA - -9BB4AF1B4F09C071CE3CAFA92E4EB73CE8A6F5D82A85733440368DEE4EB1CBC7\ -B55AC150773B6FE47DBE036C45582ED67E23F4C74585DAB509DF1B8361056454\ -5642B2B1EC463E18048FC23477C6B2AA035594ECD33791AF6AF4CBC2A1166ABA\ -8D628C57E707F0B0E8707CAF91CD44BDB915E0296E0190D56D33D8DDE10B5B60\ -377838973C1D943C22ED335E:\ -CBAB02B97B7636B86C23CC21FCA742453E75AC7B29B95072BF03DF27BD7CD13B - -2167F02118CC62043E9091A647CADBED95611A521FE0D64E8518F16C808AB297\ -725598AE296880A773607A798F7C3CFCE80D251EBEC6885015F9ABF7EAABAE46\ -798F82CB5926DE5C23F44A3F9F9534B3C6F405B5364C2F8A8BDC5CA49C749BED\ -8CE4BA48897062AE8424CA6DDE5F55C0E42A95D1E292CA54FB46A84FBC9CD87F\ -2D0C9E7448DE3043AE22FDD229:\ -83F63733C1092B4BCA9BAE01AFDB80A0DC5FC1D60287B3BED5A2BECCF94DCE07 - -94B7FA0BC1C44E949B1D7617D31B4720CBE7CA57C6FA4F4094D4761567E389EC\ -C64F6968E4064DF70DF836A47D0C713336B5028B35930D29EB7A7F9A5AF9AD5C\ -F441745BAEC9BB014CEEFF5A41BA5C1CE085FEB980BAB9CF79F2158E03EF7E63\ -E29C38D7816A84D4F71E0F548B7FC316085AE38A060FF9B8DEC36F91AD9EBC0A\ -5B6C338CBB8F6659D342A24368CF:\ -D785429352E1672E59AFD2CAA4445E2129F80C1A31EB98661528DC4D15D827B7 - -EA40E83CB18B3A242C1ECC6CCD0B7853A439DAB2C569CFC6DC38A19F5C90ACBF\ -76AEF9EA3742FF3B54EF7D36EB7CE4FF1C9AB3BC119CFF6BE93C03E208783335\ -C0AB8137BE5B10CDC66FF3F89A1BDDC6A1EED74F504CBE7290690BB295A872B9\ -E3FE2CEE9E6C67C41DB8EFD7D863CF10F840FE618E7936DA3DCA5CA6DF933F24\ -F6954BA0801A1294CD8D7E66DFAFEC:\ -5444FA5B925075ED148D11844224362FA1081A15F2BD44859A717B411DFD0F83 - -157D5B7E4507F66D9A267476D33831E7BB768D4D04CC3438DA12F9010263EA5F\ -CAFBDE2579DB2F6B58F911D593D5F79FB05FE3596E3FA80FF2F761D1B0E57080\ -055C118C53E53CDB63055261D7C9B2B39BD90ACC32520CBBDBDA2C4FD8856DBC\ -EE173132A2679198DAF83007A9B5C51511AE49766C792A29520388444EBEFE28\ -256FB33D4260439CBA73A9479EE00C63:\ -2B6BB3691B9617D1691EE51528BA35DFE0F6CA83CA8DF670EEB9AB41BDB03A5F - -836B34B515476F613FE447A4E0C3F3B8F20910AC89A3977055C960D2D5D2B72B\ -D8ACC715A9035321B86703A411DDE0466D58A59769672AA60AD587B8481DE4BB\ -A552A1645779789501EC53D540B904821F32B0BD1855B04E4848F9F8CFE9EBD8\ -911BE95781A759D7AD9724A7102DBE576776B7C632BC39B9B5E19057E226552A\ -5994C1DBB3B5C7871A11F5537011044C53:\ -793DF7427FA71156E9E7F0376C5FF0065877C8E937154010B9739360A33C26C3 - -CC7784A4912A7AB5AD3620AAB29BA87077CD3CB83636ADC9F3DC94F51EDF521B\ -2161EF108F21A0A298557981C0E53CE6CED45BDF782C1EF200D29BAB81DD6460\ -586964EDAB7CEBDBBEC75FD7925060F7DA2B853B2B089588FA0F8C16EC6498B1\ -4C55DCEE335CB3A91D698E4D393AB8E8EAC0825F8ADEBEEE196DF41205C01167\ -4E53426CAA453F8DE1CBB57932B0B741D4C6:\ -566A86949F03886D205E51FA7E7D892C24BDBE4D9D10E956DEE0EF61C88EA4C0 - -7639B461FFF270B2455AC1D1AFCE782944AEA5E9087EB4A39EB96BB5C3BAAF0E\ -868C8526D3404F9405E79E77BFAC5FFB89BF1957B523E17D341D7323C302EA70\ -83872DD5E8705694ACDDA36D5A1B895AAA16ECA6104C82688532C8BFE1790B5D\ -C9F4EC5FE95BAED37E1D287BE710431F1E5E8EE105BC42ED37D74B1E55984BF1\ -C09FE6A1FA13EF3B96FAEAED6A2A1950A12153:\ -48872584A1F006928081F777B8AC410E564A16E2D9302BB395DD49B91682D8A6 - -EB6513FC61B30CFBA58D4D7E80F94D14589090CF1D80B1DF2E68088DC6104959\ -BA0D583D585E9578AB0AEC0CF36C48435EB52ED9AB4BBCE7A5ABE679C97AE2DB\ -E35E8CC1D45B06DDA3CF418665C57CBEE4BBB47FA4CAF78F4EE656FEC237FE4E\ -EBBAFA206E1EF2BD0EE4AE71BD0E9B2F54F91DAADF1FEBFD7032381D636B733D\ -CB3BF76FB14E23AFF1F68ED3DBCF75C9B99C6F26:\ -C1D4648E6E385343201C67A184C7A6F598905A37A131BAE2F942F33F6E5DD816 - -1594D74BF5DDE444265D4C04DAD9721FF3E34CBF622DAF341FE16B96431F6C4D\ -F1F760D34F296EB97D98D560AD5286FEC4DCE1724F20B54FD7DF51D4BF137ADD\ -656C80546FB1BF516D62EE82BAA992910EF4CC18B70F3F8698276FCFB44E0EC5\ -46C2C39CFD8EE91034FF9303058B4252462F86C823EB15BF481E6B79CC3A0221\ -8595B3658E8B37382BD5048EAED5FD02C37944E73B:\ -C46C4D7AE2DB1CCF0541100432C6A914F517E13311880DC00C9942AE28327ECD - -4CFA1278903026F66FEDD41374558BE1B585D03C5C55DAC94361DF286D4BD39C\ -7CB8037ED3B267B07C346626449D0CC5B0DD2CF221F7E4C3449A4BE99985D2D5\ -E67BFF2923357DDEAB5ABCB4619F3A3A57B2CF928A022EB27676C6CF80568900\ -4FCA4D41EA6C2D0A4789C7605F7BB838DD883B3AD3E6027E775BCF2628814280\ -99C7FFF95B14C095EA130E0B9938A5E22FC52650F591:\ -95B9F8B71DA1DEB5FB6ECE239A78D4AE05C16D1A6BD0A3A50ECA8913E49E67E6 - -D3E65CB92CFA79662F6AF493D696A07CCF32AAADCCEFF06E73E8D9F6F909209E\ -66715D6E978788C49EFB9087B170ECF3AA86D2D4D1A065AE0EFC8924F365D676\ -B3CB9E2BEC918FD96D0B43DEE83727C9A93BF56CA2B2E59ADBA85696546A8150\ -67FC7A78039629D4948D157E7B0D826D1BF8E81237BAB7321312FDAA4D521744\ -F988DB6FDF04549D0FDCA393D639C729AF716E9C8BBA48:\ -06C41AE52120920D08807C1B192074578683D619855E2086DB03A4F451C235DC - -842CC583504539622D7F71E7E31863A2B885C56A0BA62DB4C2A3F2FD12E79660\ -DC7205CA29A0DC0A87DB4DC62EE47A41DB36B9DDB3293B9AC4BAAE7DF5C6E720\ -1E17F717AB56E12CAD476BE49608AD2D50309E7D48D2D8DE4FA58AC3CFEAFEEE\ -48C0A9EEC88498E3EFC51F54D300D828DDDCCB9D0B06DD021A29CF5CB5B25069\ -15BEB8A11998B8B886E0F9B7A80E97D91A7D01270F9A7717:\ -1484139C615266CD88D53299CEB4423CACB8ED0F61A168D5CCEAB5EC42D157E2 - -6C4B0A0719573E57248661E98FEBE326571F9A1CA813D3638531AE28B4860F23\ -C3A3A8AC1C250034A660E2D71E16D3ACC4BF9CE215C6F15B1C0FC7E77D3D2715\ -7E66DA9CEEC9258F8F2BF9E02B4AC93793DD6E29E307EDE3695A0DF63CBDC0FC\ -66FB770813EB149CA2A916911BEE4902C47C7802E69E405FE3C04CEB5522792A\ -5503FA829F707272226621F7C488A7698C0D69AA561BE9F378:\ -D10FAA55A303F8BB1C7BB04A88401230F87B06D41922F1783DCAEAA72704C06D - -51B7DBB7CE2FFEB427A91CCFE5218FD40F9E0B7E24756D4C47CD55606008BDC2\ -7D16400933906FD9F30EFFDD4880022D081155342AF3FB6CD53672AB7FB5B3A3\ -BCBE47BE1FD3A2278CAE8A5FD61C1433F7D350675DD21803746CADCA574130F0\ -1200024C6340AB0CC2CF74F2234669F34E9009EF2EB94823D62B31407F4BA46F\ -1A1EEC41641E84D77727B59E746B8A671BEF936F05BE820759FA:\ -85C0A4EB3930C65A860DECD952073587281A8F300D25B56847193C966D11A651 - -83599D93F5561E821BD01A472386BC2FF4EFBD4AED60D5821E84AAE74D807102\ -9810F5E286F8F17651CD27DA07B1EB4382F754CD1C95268783AD09220F550284\ -0370D494BEB17124220F6AFCE91EC8A0F55231F9652433E5CE3489B727716CF4\ -AEBA7DCDA20CD29AA9A859201253F948DD94395ABA9E3852BD1D60DDA7AE5DC0\ -45B283DA006E1CBAD83CC13292A315DB5553305C628DD091146597:\ -11372EDEBEF36CCE2AB05D2D1FC69619B8122BBAD2A0C3DCCEFAF025F3D2358B - -2BE9BF526C9D5A75D565DD11EF63B979D068659C7F026C08BEA4AF161D85A462\ -D80E45040E91F4165C074C43AC661380311A8CBED59CC8E4C4518E80CD2C78AB\ -1CABF66BFF83EAB3A80148550307310950D034A6286C93A1ECE8929E6385C5E3\ -BB6EA8A7C0FB6D6332E320E71CC4EB462A2A62E2BFE08F0CCAD93E61BEDB5DD0\ -B786A728AB666F07E0576D189C92BF9FB20DCA49AC2D3956D47385E2:\ -8393E6903E3F13269E12A36BCABF0B2AC562C88DB8D6E712B02051784D6231D5 - -CA76D3A12595A817682617006848675547D3E8F50C2210F9AF906C0E7CE50B44\ -60186FE70457A9E879E79FD4D1A688C70A347361C847BA0DD6AA52936EAF8E58\ -A1BE2F5C1C704E20146D366AEB3853BED9DE9BEFE9569AC8AAEA37A9FB7139A1\ -A1A7D5C748605A8DEFB297869EBEDD71D615A5DA23496D11E11ABBB126B206FA\ -0A7797EE7DE117986012D0362DCEF775C2FE145ADA6BDA1CCB326BF644:\ -9852F04E0B0DE5BA2730B13F309918D0A9659D55C4F1AD6D41E021EA27400231 - -F76B85DC67421025D64E93096D1D712B7BAF7FB001716F02D33B2160C2C882C3\ -10EF13A576B1C2D30EF8F78EF8D2F465007109AAD93F74CB9E7D7BEF7C9590E8\ -AF3B267C89C15DB238138C45833C98CC4A471A7802723EF4C744A853CF80A0C2\ -568DD4ED58A2C9644806F42104CEE53628E5BDF7B63B0B338E931E31B87C24B1\ -46C6D040605567CEEF5960DF9E022CB469D4C787F4CBA3C544A1AC91F95F:\ -441F12172D7BA309F914F6F0C028A03F5BB65B6311A575DCC4F58743C7F96806 - -25B8C9C032EA6BCD733FFC8718FBB2A503A4EA8F71DEA1176189F694304F0FF6\ -8E862A8197B839957549EF243A5279FC2646BD4C009B6D1EDEBF24738197ABB4\ -C992F6B1DC9BA891F570879ACCD5A6B18691A93C7D0A8D38F95B639C1DAEB48C\ -4C2F15CCF5B9D508F8333C32DE78781B41850F261B855C4BEBCC125A380C54D5\ -01C5D3BD07E6B52102116088E53D76583B0161E2A58D0778F091206AABD5A1:\ -2CB9727430FE2AC583B1FC544D6D1D40435483C68E842A4C8B3E848472A121F8 - -21CFDC2A7CCB7F331B3D2EEFFF37E48AD9FA9C788C3F3C200E0173D99963E1CB\ -CA93623B264E920394AE48BB4C3A5BB96FFBC8F0E53F30E22956ADABC2765F57\ -FB761E147ECBF8567533DB6E50C8A1F894310A94EDF806DD8CA6A0E141C0FA7C\ -9FAE6C6AE65F18C93A8529E6E5B553BF55F25BE2E80A9882BD37F145FECBEB3D\ -447A3C4E46C21524CC55CDD62F521AB92A8BA72B897996C49BB273198B7B1C9E:\ -775D4282398533FDCEB51F582DF79F0D58F266BBFE7054D63588210F03DDE1BB - -4E452BA42127DCC956EF4F8F35DD68CB225FB73B5BC7E1EC5A898BBA2931563E\ -74FAFF3B67314F241EC49F4A7061E3BD0213AE826BAB380F1F14FAAB8B0EFDDD\ -5FD1BB49373853A08F30553D5A55CCBBB8153DE4704F29CA2BDEEF0419468E05\ -DD51557CCC80C0A96190BBCC4D77ECFF21C66BDF486459D427F986410F883A80\ -A5BCC32C20F0478BB9A97A126FC5F95451E40F292A4614930D054C851ACD019C\ -CF:\ -8B7A28798F57467E11F67618461E2D68FA46936E1140E3E04E7BCA5F5770871B - -FA85671DF7DADF99A6FFEE97A3AB9991671F5629195049880497487867A6C446\ -B60087FAC9A0F2FCC8E3B24E97E42345B93B5F7D3691829D3F8CCD4BB36411B8\ -5FC2328EB0C51CB3151F70860AD3246CE0623A8DC8B3C49F958F8690F8E3860E\ -71EB2B1479A5CEA0B3F8BEFD87ACAF5362435EAECCB52F38617BC6C5C2C6E269\ -EAD1FBD69E941D4AD2012DA2C5B21BCFBF98E4A77AB2AF1F3FDA3233F046D38F\ -1DC8:\ -3DEFD55D53403A607EF9DDB4FA46AC538369A384FF5B1BBEA52A4E58F90573BA - -E90847AE6797FBC0B6B36D6E588C0A743D725788CA50B6D792352EA8294F5BA6\ -54A15366B8E1B288D84F5178240827975A763BC45C7B0430E8A559DF4488505E\ -009C63DA994F1403F407958203CEBB6E37D89C94A5EACF6039A327F6C4DBBC7A\ -2A307D976AA39E41AF6537243FC218DFA6AB4DD817B6A397DF5CA69107A91987\ -99ED248641B63B42CB4C29BFDD7975AC96EDFC274AC562D0474C60347A078CE4\ -C25E88:\ -45F62D59A636A8534EE1BE1C59E2886AA7CA91CF46918CA2EA58BDB1B261639D - -F6D5C2B6C93954FC627602C00C4CA9A7D3ED12B27173F0B2C9B0E4A5939398A6\ -65E67E69D0B12FB7E4CEB253E8083D1CEB724AC07F009F094E42F2D6F2129489\ -E846EAFF0700A8D4453EF453A3EDDC18F408C77A83275617FABC4EA3A2833AA7\ -3406C0E966276079D38E8E38539A70E194CC5513AAA457C699383FD1900B1E72\ -BDFB835D1FD321B37BA80549B078A49EA08152869A918CA57F5B54ED71E4FD3A\ -C5C06729:\ -8AEB26E5C317F7213F4EBD663CD03470579EB1C9123CD54FBE51366B67F67ECD - -CF8562B1BED89892D67DDAAF3DEEB28246456E972326DBCDB5CF3FB289ACA01E\ -68DA5D59896E3A6165358B071B304D6AB3D018944BE5049D5E0E2BB819ACF67A\ -6006111089E6767132D72DD85BEDDCBB2D64496DB0CC92955AB4C6234F1EEA24\ -F2D51483F2E209E4589BF9519FAC51B4D061E801125E605F8093BB6997BC163D\ -551596FE4AB7CFAE8FB9A90F6980480CE0C229FD1675409BD788354DAF316240\ -CFE0AF93EB:\ -A7732E2C8A537FA70093190BCF79D4B6027F9F1117D806A759BBD7C8E86463DD - -2ACE31ABB0A2E3267944D2F75E1559985DB7354C6E605F18DC8470423FCA30B7\ -331D9B33C4A4326783D1CAAE1B4F07060EFF978E4746BF0C7E30CD61040BD5EC\ -2746B29863EB7F103EBDA614C4291A805B6A4C8214230564A0557BC7102E0BD3\ -ED23719252F7435D64D210EE2AAFC585BE903FA41E1968C50FD5D5367926DF7A\ -05E3A42CF07E656FF92DE73B036CF8B19898C0CB34557C0C12C2D8B84E91181A\ -F467BC75A9D1:\ -405027D542CA47AAB86E8EC3559949073038C63F1D387950AFF366324F7BEA26 - -0D8D09AED19F1013969CE5E7EB92F83A209AE76BE31C754844EA9116CEB39A22\ -EBB6003017BBCF26555FA6624185187DB8F0CB3564B8B1C06BF685D47F3286ED\ -A20B83358F599D2044BBF0583FAB8D78F854FE0A596183230C5EF8E54426750E\ -AF2CC4E29D3BDD037E734D863C2BD9789B4C243096138F7672C232314EFFDFC6\ -513427E2DA76916B5248933BE312EB5DDE4CF70804FB258AC5FB82D58D08177A\ -C6F4756017FFF5:\ -21DA77B4FEEB0E383D1593CDFE0C4A85D2DA53EB1CE0B6E459D23337DE40A567 - -C3236B73DEB7662BF3F3DAA58F137B358BA610560EF7455785A9BEFDB035A066\ -E90704F929BD9689CEF0CE3BDA5ACF4480BCEB8D09D10B098AD8500D9B6071DF\ -C3A14AF6C77511D81E3AA8844986C3BEA6F469F9E02194C92868CD5F51646256\ -798FF0424954C1434BDFED9FACB390B07D342E992936E0F88BFD0E884A0DDB67\ -9D0547CCDEC6384285A45429D115AC7D235A717242021D1DC35641F5F0A48E84\ -45DBA58E6CB2C8EA:\ -7A4D72FD944EF3F85DB6249B7CDE3F57234BBE83594090075FFA251BC9496EA0 - -B39FEB8283EADC63E8184B51DF5AE3FD41AAC8A963BB0BE1CD08AA5867D8D910\ -C669221E73243360646F6553D1CA05A84E8DC0DE05B6419EC349CA994480193D\ -01C92525F3FB3DCEFB08AFC6D26947BDBBFD85193F53B50609C6140905C53A66\ -86B58E53A319A57B962331EDE98149AF3DE3118A819DA4D76706A0424B4E1D29\ -10B0ED26AF61D150EBCB46595D4266A0BD7F651BA47D0C7F179CA28545007D92\ -E8419D48FDFBD744CE:\ -7F972B1F0E3EB173CB63CB7C6A8907DF8DE1120FB5AF85528F0B13CBCD93709B - -A983D54F503803E8C7999F4EDBBE82E9084F422143A932DDDDC47A17B0B7564A\ -7F37A99D0786E99476428D29E29D3C197A72BFAB1342C12A0FC4787FD7017D7A\ -6174049EA43B5779169EF7472BDBBD941DCB82FC73AAC45A8A94C9F2BD3477F6\ -1FD3B796F02A1B8264A214C6FEA74B7051B226C722099EC7883A462B83B6AFDD\ -4009248B8A237F605FE5A08FE7D8B45321421EBBA67BD70A0B00DDBF94BAAB7F\ -359D5D1EEA105F28DCFB:\ -D2FE6C5C26C24F492C8E29B2E2F2138A1488AA25AD62E28D5F602E8E324DBBAB - -E4D1C1897A0A866CE564635B74222F9696BF2C7F640DD78D7E2ACA66E1B61C64\ -2BB03EA7536AAE597811E9BF4A7B453EDE31F97B46A5F0EF51A071A2B3918DF1\ -6B152519AE3776F9F1EDAB4C2A377C3292E96408359D3613844D5EB393000283\ -D5AD3401A318B12FD1474B8612F2BB50FB6A8B9E023A54D7DDE28C43D6D8854C\ -8D9D1155935C199811DBFC87E9E0072E90EB88681CC7529714F8FB8A2C9D8856\ -7ADFB974EE205A9BF7B848:\ -8CD3CCD8A2080C0CE4EAC9211D3B013FDEC990FDA15975133D01E917CDECB43D - -B10C59723E3DCADD6D75DF87D0A1580E73133A9B7D00CB95EC19F5547027323B\ -E75158B11F80B6E142C6A78531886D9047B08E551E75E6261E79785366D7024B\ -D7CD9CF322D9BE7D57FB661069F2481C7BB759CD71B4B36CA2BC2DF6D3A328FA\ -EBDB995A9794A8D72155ED551A1F87C80BF6059B43FC764900B18A1C2441F748\ -7743CF84E565F61F8DD2ECE6B6CCC9444049197AAAF53E926FBEE3BFCA8BE588\ -EC77F29D211BE89DE18B15F6:\ -072DCBC9EC0CB4C069005401C1EF6F08AACDB4987F34D3FDC0A10B2C63440036 - -DB11F609BABA7B0CA634926B1DD539C8CBADA24967D7ADD4D9876F77C2D80C0F\ -4DCEFBD7121548373582705CCA2495BD2A43716FE64ED26D059CFB566B3364BD\ -49EE0717BDD9810DD14D8FAD80DBBDC4CAFB37CC60FB0FE2A80FB4541B8CA9D5\ -9DCE457738A9D3D8F641AF8C3FD6DA162DC16FC01AAC527A4A0255B4D231C0BE\ -50F44F0DB0B713AF03D968FE7F0F61ED0824C55C4B5265548FEBD6AAD5C5EEDF\ -63EFE793489C39B8FD29D104CE:\ -9C5C246D8DCEA6DC951C75695494979DF6EA10C4C02DD850D566E090CDEA7F7A - -BEBD4F1A84FC8B15E4452A54BD02D69E304B7F32616AADD90537937106AE4E28\ -DE9D8AAB02D19BC3E2FDE1D651559E296453E4DBA94370A14DBBB2D1D4E20223\ -02EE90E208321EFCD8528AD89E46DC839EA9DF618EA8394A6BFF308E7726BAE0\ -C19BCD4BE52DA6258E2EF4E96AA21244429F49EF5CB486D7FF35CAC1BACB7E95\ -711944BCCB2AB34700D42D1EB38B5D536B947348A458EDE3DC6BD6EC547B1B0C\ -AE5B257BE36A7124E1060C170FFA:\ -7CF815EE452712716457935062D65B4A02EC61E035D310F2DB73B2646847CD06 - -5ACA56A03A13784BDC3289D9364F79E2A85C12276B49B92DB0ADAA4F206D5028\ -F213F678C3510E111F9DC4C1C1F8B6ACB17A6413AA227607C515C62A733817BA\ -5E762CC6748E7E0D6872C984D723C9BB3B117EB8963185300A80BFA65CDE495D\ -70A46C44858605FCCBED086C2B45CEF963D33294DBE9706B13AF22F1B7C4CD5A\ -001CFEC251FBA18E722C6E1C4B1166918B4F6F48A98B64B3C07FC86A6B17A6D0\ -480AB79D4E6415B520F1C484D675B1:\ -C4D9850774AE7356E1611F3053AF679461585643550EEA4D17DFABF56080926E - -A5AAD0E4646A32C85CFCAC73F02FC5300F1982FABB2F2179E28303E447854094\ -CDFC854310E5C0F60993CEFF54D84D6B46323D930ADB07C17599B35B505F09E7\ -84BCA5985E0172257797FB53649E2E9723EFD16865C31B5C3D5113B58BB0BFC8\ -920FABDDA086D7537E66D709D050BD14D0C960873F156FAD5B3D3840CDFCDC9B\ -E6AF519DB262A27F40896AB25CC39F96984D650611C0D5A3080D5B3A1BF186AB\ -D42956588B3B58CD948970D298776060:\ -CB5F77251039B98B8C824C4A4B9D0488E91CEFB9C0034A8DADA90892CF44130C - -06CBBE67E94A978203EAD6C057A1A5B098478B4B4CBEF5A97E93C8E42F557271\ -3575FC2A884531D7622F8F879387A859A80F10EF02708CD8F7413AB385AFC357\ -678B9578C0EBF641EF076A1A30F1F75379E9DCB2A885BDD295905EE80C0168A6\ -2A9597D10CF12DD2D8CEE46645C7E5A141F6E0E23AA482ABE5661C16E69EF1E2\ -8371E2E236C359BA4E92C25626A7B7FF13F6EA4AE906E1CFE163E91719B1F750\ -A96CBDE5FBC953D9E576CD216AFC90323A:\ -A81B4D1186780D240DFA3EE37E1B0D7D88D25C55F6F301A79DF30988247BBC70 - -F1C528CF7739874707D4D8AD5B98F7C77169DE0B57188DF233B2DC8A5B31EDA5\ -DB4291DD9F68E6BAD37B8D7F6C9C0044B3BF74BBC3D7D1798E138709B0D75E7C\ -593D3CCCDC1B20C7174B4E692ADD820ACE262D45CCFAE2077E87879634716806\ -0A162ECCA8C38C1A88350BD63BB539134F700FD4ADDD5959E255337DAA06BC86\ -358FABCBEFDFB5BC889783D843C08AADC6C4F6C36F65F156E851C9A0F917E4A3\ -67B5AD93D874812A1DE6A7B93CD53AD97232:\ -F0425B89B75EAB5D927E4A03034FBBFF2F80E59D704655EFD75153D1CAEC7316 - -9D9F3A7ECD51B41F6572FD0D0881E30390DFB780991DAE7DB3B47619134718E6\ -F987810E542619DFAA7B505C76B7350C6432D8BF1CFEBDF1069B90A35F0D04CB\ -DF130B0DFC7875F4A4E62CDB8E525AADD7CE842520A482AC18F09442D78305FE\ -85A74E39E760A4837482ED2F437DD13B2EC1042AFCF9DECDC3E877E50FF4106A\ -D10A525230D11920324A81094DA31DEAB6476AA42F20C84843CFC1C58545EE80\ -352BDD3740DD6A16792AE2D86F11641BB717C2:\ -2F5C290FDCB38D252A6C5AA2B0F2519FB47AA97F9B5151DBED387B3E60D639C0 - -5179888724819FBAD3AFA927D3577796660E6A81C52D98E9303261D5A4A83232\ -F6F758934D50AA83FF9E20A5926DFEBAAC49529D006EB923C5AE5048ED544EC4\ -71ED7191EDF46363383824F915769B3E688094C682B02151E5EE01E510B431C8\ -865AFF8B6B6F2F59CB6D129DA79E97C6D2B8FA6C6DA3F603199D2D1BCAB54768\ -2A81CD6CF65F6551121391D78BCC23B5BD0E922EC6D8BF97C952E84DD28AEF90\ -9ABA31EDB903B28FBFC33B7703CD996215A11238:\ -9C4B1992D5EC2DDC9504D85D97D9A845972E2501B09E13EE4C1E2ECC84B581E7 - -576EF3520D30B7A4899B8C0D5E359E45C5189ADD100E43BE429A02FB3DE5FF4F\ -8FD0E79D9663ACCA72CD29C94582B19292A557C5B1315297D168FBB54E9E2ECD\ -13809C2B5FCE998EDC6570545E1499DBE7FB74D47CD7F35823B212B05BF3F5A7\ -9CAA34224FDD670D335FCB106F5D92C3946F44D3AFCBAE2E41AC554D8E6759F3\ -32B76BE89A0324AA12C5482D1EA3EE89DED4936F3E3C080436F539FA137E74C6\ -D3389BDF5A45074C47BC7B20B0948407A66D855E2F:\ -F69FD7169508A69D59F81431A40B355CB932E06A850F19B334E758B4851BDDE5 - -0DF2152FA4F4357C8741529DD77E783925D3D76E95BAFA2B542A2C33F3D1D117\ -D159CF473F82310356FEE4C90A9E505E70F8F24859656368BA09381FA245EB6C\ -3D763F3093F0C89B972E66B53D59406D9F01AEA07F8B3B615CAC4EE4D05F542E\ -7D0DAB45D67CCCCD3A606CCBEB31EA1FA7005BA07176E60DAB7D78F6810EF086\ -F42F08E595F0EC217372B98970CC6321576D92CE38F7C397A403BADA1548D205\ -C343AC09DECA86325373C3B76D9F32028FEA8EB32515:\ -392A2AD8A05DA5927E742523113EF9BEE70672F85247F5C05A6FDBB507434964 - -3E15350D87D6EBB5C8AD99D42515CFE17980933C7A8F6B8BBBF0A63728CEFAAD\ -2052623C0BD5931839112A48633FB3C2004E0749C87A41B26A8B48945539D1FF\ -41A4B269462FD199BFECD45374756F55A9116E92093AC99451AEFB2AF9FD32D6\ -D7F5FBC7F7A540D5097C096EBC3B3A721541DE073A1CC02F7FB0FB1B9327FB0B\ -1218CA49C9487AB5396622A13AE546C97ABDEF6B56380DDA7012A8384091B665\ -6D0AB272D363CEA78163FF765CDD13AB1738B940D16CAE:\ -7120ECAFC3DDC28D152D796B9630AB7A7B7742E9F639F831A42595AF6A8EC8E4 - -C38D6B0B757CB552BE40940ECE0009EF3B0B59307C1451686F1A22702922800D\ -58BCE7A636C1727EE547C01B214779E898FC0E560F8AE7F61BEF4D75EAA696B9\ -21FD6B735D171535E9EDD267C192B99880C87997711002009095D8A7A437E258\ -104A41A505E5EF71E5613DDD2008195F0C574E6BA3FE40099CFA116E5F1A2FA8\ -A6DA04BADCB4E2D5D0DE31FDC4800891C45781A0AAC7C907B56D631FCA5CE8B2\ -CDE620D11D1777ED9FA603541DE794DDC5758FCD5FAD78C0:\ -DA9737030E97B534C1EF0204519BD64ABC568BCDA2C04F426EDB8F4966E9AC7F - -8D2DE3F0B37A6385C90739805B170057F091CD0C7A0BC951540F26A5A75B3E69\ -4631BB64C7635EED316F51318E9D8DE13C70A2ABA04A14836855F35E480528B7\ -76D0A1E8A23B547C8B8D6A0D09B241D3BE9377160CCA4E6793D00A515DC2992C\ -B7FC741DACA171431DA99CCE6F7789F129E2AC5CF65B40D703035CD2185BB936\ -C82002DAF8CBC27A7A9E554B06196630446A6F0A14BA155ED26D95BD627B7205\ -C072D02B60DB0FD7E49EA058C2E0BA202DAFF0DE91E845CF79:\ -D6EB621F0B57F913E2A782E63A67808E788E1C4673ACC7467DD6A9218B747119 - -C464BBDAD275C50DCD983B65AD1019B9FF85A1E71C807F3204BB2C921DC31FBC\ -D8C5FC45868AE9EF85B6C9B83BBA2A5A822201ED68586EC5EC27FB2857A5D1A2\ -D09D09115F22DCC39FE61F5E1BA0FF6E8B4ACB4C6DA748BE7F3F0839739394FF\ -7FA8E39F7F7E84A33C3866875C01BCB1263C9405D91908E9E0B50E7459FABB63\ -D8C6BBB73D8E3483C099B55BC30FF092FF68B6ADEDFD477D63570C9F5515847F\ -36E24BA0B705557130CEC57EBAD1D0B31A378E91894EE26E3A04:\ -164AAFF496C06CC2B089726C5F3702EFF2ED35C5159A9B74306C5CF3639EBE90 - -8B8D68BB8A75732FE272815A68A1C9C5AA31B41DEDC8493E76525D1D013D33CE\ -BD9E21A5BB95DB2616976A8C07FCF411F5F6BC6F7E0B57ACA78CC2790A6F9B89\ -8858AC9C79B165FF24E66677531E39F572BE5D81EB3264524181115F32780257\ -BFB9AEEC6AF12AF28E587CAC068A1A2953B59AD680F4C245B2E3EC36F59940D3\ -7E1D3DB38E13EDB29B5C0F404F6FF87F80FC8BE7A225FF22FBB9C8B6B1D7330C\ -57840D24BC75B06B80D30DAD6806544D510AF6C4785E823AC3E0B8:\ -99039CFBCC6B979118FD416AB3CA7F2540EB62F61E8895685C32BECDFD661F8D - -6B018710446F368E7421F1BC0CCF562D9C1843846BC8D98D1C9BF7D9D6FCB48B\ -FC3BF83B36D44C4FA93430AF75CD190BDE36A7F92F867F58A803900DF8018150\ -384D85D82132F123006AC2AEBA58E02A037FE6AFBD65ECA7C44977DD3DC74F48\ -B6E7A1BFD5CC4DCF24E4D52E92BD4455848E4928B0EAC8B7476FE3CC03E862AA\ -4DFF4470DBFED6DE48E410F25096487ECFC32A27277F3F5023B2725ADE461B13\ -55889554A8836C9CF53BD767F5737D55184EEA1AB3F53EDD0976C485:\ -146FDD252459AFF5E14A963AE6E7FD1C9C509911A4A100B2CF62BFFD4E2A8D4F - -C9534A24714BD4BE37C88A3DA1082EDA7CABD154C309D7BD670DCCD95AA53559\ -4463058A29F79031D6ECAA9F675D1211E9359BE82669A79C855EA8D89DD38C2C\ -761DDD0EC0CE9E97597432E9A1BEAE062CDD71EDFDFD464119BE9E69D18A7A7F\ -D7CE0E2106F0C8B0ABF4715E2CA48EF9F454DC203C96656653B727083513F8EF\ -B86E49C513BB758B3B052FE21F1C05BB33C37129D6CC81F1AEF6ADC45B0E8827\ -A830FE545CF57D0955802C117D23CCB55EA28F95C0D8C2F9C5A242B33F:\ -8FD3DAADCCDA89D6FE84BB94B4BA194A969BADCEEC9E510EAB6D77FEA83F5930 - -07906C87297B867ABF4576E9F3CC7F82F22B154AFCBF293B9319F1B0584DA6A4\ -0C27B32E0B1B7F412C4F1B82480E70A9235B12EC27090A5A33175A2BB28D8ADC\ -475CEFE33F7803F8CE27967217381F02E67A3B4F84A71F1C5228E0C2AD971373\ -F6F672624FCEA8D1A9F85170FAD30FA0BBD25035C3B41A6175D467998BD1215F\ -6F3866F53847F9CF68EF3E2FBB54BC994DE2302B829C5EEA68EC441FCBAFD7D1\ -6AE4FE9FFF98BF00E5BC2AD54DD91FF9FDA4DD77B6C754A91955D1FBAAD0:\ -C900C0A33321CE80ED34A3D3A88AF670A13019B06F2066DBFA14104A79AD578B - -588E94B9054ABC2189DF69B8BA34341B77CDD528E7860E5DEFCAA79B0C9A452A\ -D4B82AA306BE84536EB7CEDCBE058D7B84A6AEF826B028B8A0271B69AC3605A9\ -635EA9F5EA0AA700F3EB7835BC54611B922964300C953EFE7491E3677C2CEBE0\ -822E956CD16433B02C68C4A23252C3F9E151A416B4963257B783E038F6B4D5C9\ -F110F871652C7A649A7BCEDCBCCC6F2D0725BB903CC196BA76C76AA9F10A190B\ -1D1168993BAA9FFC96A1655216773458BEC72B0E39C9F2C121378FEAB4E76A:\ -815BA6349B6C7704802C59C9D54FB796C64CDE7E4FC87F870447E4E98EEBA3B3 - -08959A7E4BAAE874928813364071194E2939772F20DB7C3157078987C557C2A6\ -D5ABE68D520EEF3DC491692E1E21BCD880ADEBF63BB4213B50897FA005256ED4\ -1B5690F78F52855C8D9168A4B666FCE2DA2B456D7A7E7C17AB5F2FB1EE90B79E\ -698712E963715983FD07641AE4B4E9DC73203FAC1AE11FA1F8C7941FCC82EAB2\ -47ADDB56E2638447E9D609E610B60CE086656AAEBF1DA3C8A231D7D94E2FD0AF\ -E46B391FF14A72EAEB3F44AD4DF85866DEF43D4781A0B3578BC996C87970B132:\ -4F726B5A60D083798AF6D1407D1C17368F553502424162D0549C93C5B370749D - -CB2A234F45E2ECD5863895A451D389A369AAB99CFEF0D5C9FFCA1E6E63F763B5\ -C14FB9B478313C8E8C0EFEB3AC9500CF5FD93791B789E67EAC12FD038E2547CC\ -8E0FC9DB591F33A1E4907C64A922DDA23EC9827310B306098554A4A78F050262\ -DB5B545B159E1FF1DCA6EB734B872343B842C57EAFCFDA8405EEDBB48EF32E99\ -696D135979235C3A05364E371C2D76F1902F1D83146DF9495C0A6C57D7BF9EE7\ -7E80F9787AEE27BE1FE126CDC9EF893A4A7DCBBC367E40FE4E1EE90B42EA25AF\ -01:\ -8970E3E29F24F3CB0EC4200101613BE64C14EA7C117DF6704E392B62D7F9927F - -D16BEADF02AB1D4DC6F88B8C4554C51E866DF830B89C06E786A5F8757E890931\ -0AF51C840EFE8D20B35331F4355D80F73295974653DDD620CDDE4730FB6C8D0D\ -2DCB2B45D92D4FBDB567C0A3E86BD1A8A795AF26FBF29FC6C65941CDDB090FF7\ -CD230AC5268AB4606FCCBA9EDED0A2B5D014EE0C34F0B2881AC036E24E151BE8\ -9EEB6CD9A7A790AFCCFF234D7CB11B99EBF58CD0C589F20BDAC4F9F0E28F75E3\ -E04E5B3DEBCE607A496D848D67FA7B49132C71B878FD5557E082A18ECA1FBDA9\ -4D4B:\ -F6CBE810CCC93A606683E556FBA4B78AAB5BC74CBA137F0D4E31F5705ECE4AA5 - -8F65F6BC59A85705016E2BAE7FE57980DE3127E5AB275F573D334F73F8603106\ -EC3553016608EF2DD6E69B24BE0B7113BF6A760BA6E9CE1C48F9E186012CF96A\ -1D4849D75DF5BB8315387FD78E9E153E76F8BA7EC6C8849810F59FB4BB9B0043\ -18210B37F1299526866F44059E017E22E96CBE418699D014C6EA01C9F0038B10\ -299884DBEC3199BB05ADC94E955A1533219C1115FED0E5F21228B071F40DD57C\ -4240D98D37B73E412FE0FA4703120D7C0C67972ED233E5DEB300A22605472FA3\ -A3BA86:\ -4BC436A09B83523B49B9721F1C9BBC96D2C4B2A9EAFC461DF343E819401F10FE - -84891E52E0D451813210C3FD635B39A03A6B7A7317B221A7ABC270DFA946C426\ -69AACBBBDF801E1584F330E28C729847EA14152BD637B3D0F2B38B4BD5BF9C79\ -1C58806281103A3EABBAEDE5E711E539E6A8B2CF297CF351C078B4FA8F7F35CF\ -61BEBF8814BF248A01D41E86C5715EA40C63F7375379A7EB1D78F27622FB468A\ -B784AAABA4E534A6DFD1DF6FA15511341E725ED2E87F98737CCB7B6A6DFAE416\ -477472B046BF1811187D151BFA9F7B2BF9ACDB23A3BE507CDF14CFDF517D2CB5\ -FB9E4AB6:\ -967CFF9DEB5B79D5A79E7255B50BD14B7A060CEF866E22768765D3D192367F44 - -FDD7A9433A3B4AFABD7A3A5E3457E56DEBF78E84B7A0B0CA0E8C6D53BD0C2DAE\ -31B2700C6128334F43981BE3B213B1D7A118D59C7E6B6493A86F866A1635C128\ -59CFB9AD17460A77B4522A5C1883C3D6ACC86E6162667EC414E9A104AA892053\ -A2B1D72165A855BACD8FAF8034A5DD9B716F47A0818C09BB6BAF22AA503C06B4\ -CA261F557761989D2AFBD88B6A678AD128AF68672107D0F1FC73C5CA74045929\ -7B3292B281E93BCEB761BDE7221C3A55708E5EC84472CDDCAA84ECF23723CC09\ -91355C6280:\ -F76063CC288B4A2945D50FD90AC056149BED0F4E68EC1A2907CE290FD7DB7242 - -70A40BFBEF92277A1AAD72F6B79D0177197C4EBD432668CFEC05D099ACCB6510\ -62B5DFF156C0B27336687A94B26679CFDD9DAF7AD204338DD9C4D14114033A5C\ -225BD11F217B5F4732DA167EE3F939262D4043FC9CBA92303B7B5E96AEA12ADD\ -A64859DF4B86E9EE0B58E39091E6B188B408AC94E1294A8911245EE361E60E60\ -1EFF58D1D37639F3753BEC80EBB4EFDE25817436076623FC65415FE51D1B0280\ -366D12C554D86743F3C3B6572E400361A60726131441BA493A83FBE9AFDA90F7\ -AF1AE717238D:\ -C09252DCDCEE60B6D40D7CFB313CDD1B56E0C95D5900F213D0CF33BF27F0073F - -74356E449F4BF8644F77B14F4D67CB6BD9C1F5AE357621D5B8147E562B65C665\ -85CAF2E491B48529A01A34D226D436959153815380D5689E30B35357CDAC6E08\ -D3F2B0E88E200600D62BD9F5EAF488DF86A4470EA227006182E44809009868C4\ -C280C43D7D64A5268FA719074960087B3A6ABC837882F882C837834535929389\ -A12B2C78187E2EA07EF8B8EEF27DC85002C3AE35F1A50BEE6A1C48BA7E175F33\ -16670B27983472AA6A61EED0A683A39EE323080620EA44A9F74411AE5CE99030\ -528F9AB49C79F2:\ -D8E3DF304D967FCA273D4D9DAA82EF70C1C3E01CB391094A2C35797ACAB3865D - -8C3798E51BC68482D7337D3ABB75DC9FFE860714A9AD73551E120059860DDE24\ -AB87327222B64CF774415A70F724CDF270DE3FE47DDA07B61C9EF2A3551F45A5\ -584860248FABDE676E1CD75F6355AA3EAEABE3B51DC813D9FB2EAA4F0F1D9F83\ -4D7CAD9C7C695AE84B329385BC0BEF895B9F1EDF44A03D4B410CC23A79A6B62E\ -4F346A5E8DD851C2857995DDBF5B2D717AEB847310E1F6A46AC3D26A7F9B4498\ -5AF656D2B7C9406E8A9E8F47DCB4EF6B83CAACF9AEFB6118BFCFF7E44BEF6937\ -EBDDC89186839B77:\ -B702FE508BF21919E30EDDA6879F47DCD9A07F860A779DB54B7F93B86074E13E - -FA56BF730C4F8395875189C10C4FB251605757A8FECC31F9737E3C2503B02608\ -E6731E85D7A38393C67DE516B85304824BFB135E33BF22B3A23B913BF6ACD2B7\ -AB85198B8187B2BCD454D5E3318CACB32FD6261C31AE7F6C54EF6A7A2A4C9F3E\ -CB81CE3555D4F0AD466DD4C108A90399D70041997C3B25345A9653F3C9A6711A\ -B1B91D6A9D2216442DA2C973CBD685EE7643BFD77327A2F7AE9CB283620A0871\ -6DFB462E5C1D65432CA9D56A90E811443CD1ECB8F0DE179C9CB48BA4F6FEC360\ -C66F252F6E64EDC96B:\ -338596124CF38B825E1EC2F1882B414F1A2E5F88706361D5C7B22C38E385BE97 - -B6134F9C3E91DD8000740D009DD806240811D51AB1546A974BCB18D344642BAA\ -5CD5903AF84D58EC5BA17301D5EC0F10CCD0509CBB3FD3FFF9172D193AF0F782\ -252FD1338C7244D40E0E42362275B22D01C4C3389F19DD69BDF958EBE28E31A4\ -FFE2B5F18A87831CFB7095F58A87C9FA21DB72BA269379B2DC2384B3DA953C79\ -25761FED324620ACEA435E52B424A7723F6A2357374157A34CD8252351C25A1B\ -232826CEFE1BD3E70FFC15A31E7C0598219D7F00436294D11891B82497BC78AA\ -5363892A2495DF8C1EEF:\ -CC632B6299B71EAF8106B35771ECA7BF2DDC3FA5B54FC278D402AEEA12E5DEE8 - -C941CDB9C28AB0A791F2E5C8E8BB52850626AA89205BEC3A7E22682313D198B1\ -FA33FC7295381354858758AE6C8EC6FAC3245C6E454D16FA2F51C4166FAB51DF\ -272858F2D603770C40987F64442D487AF49CD5C3991CE858EA2A60DAB6A65A34\ -414965933973AC2457089E359160B7CDEDC42F29E10A91921785F6B7224EE0B3\ -49393CDCFF6151B50B377D609559923D0984CDA6000829B916AB6896693EF6A2\ -199B3C22F7DC5500A15B8258420E314C222BC000BC4E5413E6DD82C993F8330F\ -5C6D1BE4BC79F08A1A0A46:\ -2E3A0AD6FD16B9DC2E43C209464B340444712B1DDEBC1D366D198723B06F5A87 - -4499EFFFAC4BCEA52747EFD1E4F20B73E48758BE915C88A1FFE5299B0B005837\ -A46B2F20A9CB3C6E64A9E3C564A27C0F1C6AD1960373036EC5BFE1A8FC6A435C\ -2185ED0F114C50E8B3E4C7ED96B06A036819C9463E864A58D6286F785E32A804\ -443A56AF0B4DF6ABC57ED5C2B185DDEE8489EA080DEEEE66AA33C2E6DAB36251\ -C402682B6824821F998C32163164298E1FAFD31BABBCFFB594C91888C6219079\ -D907FDB438ED89529D6D96212FD55ABE20399DBEFD342248507436931CDEAD49\ -6EB6E4A80358ACC78647D043:\ -587B6CDE5AF1C260A1F225337B6BD487B2140028B1D1266A58C4D9B1DCD0F59F - -EECBB8FDFA4DA62170FD06727F697D81F83F601FF61E478105D3CB7502F2C89B\ -F3E8F56EDD469D049807A38882A7EEFBC85FC9A950952E9FA84B8AFEBD3CE782\ -D4DA598002827B1EB98882EA1F0A8F7AA9CE013A6E9BC462FB66C8D4A18DA214\ -01E1B93356EB12F3725B6DB1684F2300A98B9A119E5D27FF704AFFB618E12708\ -E77E6E5F34139A5A41131FD1D6336C272A8FC37080F041C71341BEE6AB550CB4\ -A20A6DDB6A8E0299F2B14BC730C54B8B1C1C487B494BDCCFD3A53535AB2F2315\ -90BF2C4062FD2AD58F906A2D0D:\ -11C167C3B9114ECD0EFED8DEF748324D873165175C5467CA286A954C86057381 - -E64F3E4ACE5C8418D65FEC2BC5D2A303DD458034736E3B0DF719098BE7A206DE\ -AF52D6BA82316CAF330EF852375188CDE2B39CC94AA449578A7E2A8E3F5A9D68\ -E816B8D16889FBC0EBF0939D04F63033AE9AE2BDAB73B88C26D6BD25EE460EE1\ -EF58FB0AFA92CC539F8C76D3D097E7A6A63EBB9B5887EDF3CF076028C5BBD5B9\ -DB3211371AD3FE121D4E9BF44229F4E1ECF5A0F9F0EBA4D5CEB72878AB22C3F0\ -EB5A625323AC66F7061F4A81FAC834471E0C59553F108475FE290D43E6A055AE\ -3EE46FB67422F814A68C4BE3E8C9:\ -35175ED1977AB325C9E2EE0FCD6519EF0A9BD1C6DB9E1A9D62BB3CB684EC28F4 - -D2CB2D733033F9E91395312808383CC4F0CA974E87EC68400D52E96B3FA6984A\ -C58D9AD0938DDE5A973008D818C49607D9DE2284E7618F1B8AED8372FBD52ED5\ -4557AF4220FAC09DFA8443011699B97D743F8F2B1AEF3537EBB45DCC9E13DFB4\ -38428EE190A4EFDB3CAEB7F3933117BF63ABDC7E57BEB4171C7E1AD260AB0587\ -806C4D137B6316B50ABC9CCE0DFF3ACADA47BBB86BE777E617BBE578FF451984\ -4DB360E0A96C6701290E76BB95D26F0F804C8A4F2717EAC4E7DE9F2CFF3BBC55\ -A17E776C0D02856032A6CD10AD2838:\ -78A2B33CA04DE4C0A372B8C49522F3BB92B8242D38DE344F827F0BA922A398D6 - -F2998955613DD414CC111DF5CE30A995BB792E260B0E37A5B1D942FE90171A4A\ -C2F66D4928D7AD377F4D0554CBF4C523D21F6E5F379D6F4B028CDCB9B1758D3B\ -39663242FF3CB6EDE6A36A6F05DB3BC41E0D861B384B6DEC58BB096D0A422FD5\ -42DF175E1BE1571FB52AE66F2D86A2F6824A8CFAACBAC4A7492AD0433EEB1545\ -4AF8F312B3B2A577750E3EFBD370E8A8CAC1582581971FBA3BA4BD0D76E718DA\ -CF8433D33A59D287F8CC92234E7A271041B526E389EFB0E40B6A18B3AAF658E8\ -2ED1C78631FD23B4C3EB27C3FAEC8685:\ -19B67B2C65CDDA7F8CE2F1D8E811E19A98FE81232C36779A48791CD74374AF7A - -447797E2899B72A356BA55BF4DF3ACCA6CDB1041EB477BD1834A9F9ACBC340A2\ -94D729F2F97DF3A610BE0FF15EDB9C6D5DB41644B9874360140FC64F52AA03F0\ -286C8A640670067A84E017926A70438DB1BB361DEFEE7317021425F8821DEF26\ -D1EFD77FC853B818545D055ADC9284796E583C76E6FE74C9AC2587AA46AA8F88\ -04F2FEB5836CC4B3ABABAB8429A5783E17D5999F32242EB59EF30CD7ADABC16D\ -72DBDB097623047C98989F88D14EAF02A7212BE16EC2D07981AAA99949DDF89E\ -CD90333A77BC4E1988A82ABF7C7CAF3291:\ -B53F312518C9388436E34D48DD454F2C29AFB3B12093B487C71E60B93712AAF6 - -9F2C18ADE9B380C784E170FB763E9AA205F64303067EB1BCEA93DF5DAC4BF5A2\ -E00B78195F808DF24FC76E26CB7BE31DC35F0844CDED1567BBA29858CFFC97FB\ -29010331B01D6A3FB3159CC1B973D255DA9843E34A0A4061CABDB9ED37F241BF\ -ABB3C20D32743F4026B59A4CCC385A2301F83C0B0A190B0F2D01ACB8F0D41111\ -E10F2F4E149379275599A52DC089B35FDD5234B0CFB7B6D8AEBD563CA1FA653C\ -5C021DFD6F5920E6F18BFAFDBECBF0AB00281333ED50B9A999549C1C8F8C63D7\ -626C48322E9791D5FF72294049BDE91E73F8:\ -C8B9BE64E82F970997915C3AAA37E51C1A579EAC6CD4468850FA73F23BF4B5F1 - -AE159F3FA33619002AE6BCCE8CBBDD7D28E5ED9D61534595C4C9F43C402A9BB3\ -1F3B301CBFD4A43CE4C24CD5C9849CC6259ECA90E2A79E01FFBAC07BA0E147FA\ -42676A1D668570E0396387B5BCD599E8E66AAED1B8A191C5A47547F61373021F\ -A6DEADCB55363D233C24440F2C73DBB519F7C9FA5A8962EFD5F6252C0407F190\ -DFEFAD707F3C7007D69FF36B8489A5B6B7C557E79DD4F50C06511F599F56C896\ -B35C917B63BA35C6FF8092BAF7D1658E77FC95D8A6A43EEB4C01F33F03877F92\ -774BE89C1114DD531C011E53A34DC248A2F0E6:\ -3D8C612433F48DB7FB54B15976C9A236881C063856D49196CB1F511B89A05510 - -3B8E97C5FFC2D6A40FA7DE7FCEFC90F3B12C940E7AB415321E29EE692DFAC799\ -B009C99DCDDB708FCE5A178C5C35EE2B8617143EDC4C40B4D313661F49ABDD93\ -CEA79D117518805496FE6ACF292C4C2A1F76B403A97D7C399DAF85B46AD84E16\ -246C67D6836757BDE336C290D5D401E6C1386AB32797AF6BB251E9B2D8FE754C\ -47482B72E0B394EAB76916126FD68EA7D65EB93D59F5B4C5AC40F7C3B37E7F36\ -94F29424C24AF8C8F0EF59CD9DBF1D28E0E10F799A6F78CAD1D45B9DB3D7DEE4\ -A7059ABE99182714983B9C9D44D7F5643596D4F3:\ -ED206C5BDA53BCC418757E00856836439AC9E08A6E508686AFB5A46E6654170F - -3434EC31B10FAFDBFEEC0DD6BD94E80F7BA9DCA19EF075F7EB017512AF66D6A4\ -BCF7D16BA0819A1892A6372F9B35BCC7CA8155EE19E8428BC22D214856ED5FA9\ -374C3C09BDE169602CC219679F65A1566FC7316F4CC3B631A18FB4449FA6AFA1\ -6A3DB2BC4212EFF539C67CF184680826535589C7111D73BFFCE431B4C40492E7\ -63D9279560AAA38EB2DC14A212D723F994A1FE656FF4DD14551CE4E7C621B2AA\ -5604A10001B2878A897A28A08095C325E10A26D2FB1A75BFD64C250309BB55A4\ -4F23BBAC0D5516A1C687D3B41EF2FBBF9CC56D4739:\ -E96E6AAACD7861831357DD9C329F4056C2A1686622FD3F86193156E14D6B2E94 - -7C7953D81C8D208FD1C97681D48F49DD003456DE60475B84070EF4847C333B74\ -575B1FC8D2A186964485A3B8634FEAA3595AAA1A2F4595A7D6B6153563DEE31B\ -BAC443C8A33EED6D5D956A980A68366C2527B550EE950250DFB691EACBD5D56A\ -E14B970668BE174C89DF2FEA43AE52F13142639C884FD62A3683C0C3792F0F24\ -AB1318BCB27E21F4737FAB62C77EA38BC8FD1CF41F7DAB64C13FEBE7152BF5BB\ -7AB5A78F5346D43CC741CB6F72B7B8980F268B68BF62ABDFB1577A52438FE14B\ -591498CC95F071228460C7C5D5CEB4A7BDE588E7F21C:\ -9A601FDD743DD62BF8D34381BBADEE8F17D5E1B4B7CC0CABE53479A0AA1567A1 - -7A6A4F4FDC59A1D223381AE5AF498D74B7252ECF59E389E49130C7EAEE626E7B\ -D9897EFFD92017F4CCDE66B0440462CDEDFD352D8153E6A4C8D7A0812F701CC7\ -37B5178C2556F07111200EB627DBC299CAA792DFA58F35935299FA3A3519E9B0\ -3166DFFA159103FFA35E8577F7C0A86C6B46FE13DB8E2CDD9DCFBA85BDDDCCE0\ -A7A8E155F81F712D8E9FE646153D3D22C811BD39F830433B2213DD46301941B5\ -9293FD0A33E2B63ADBD95239BC01315C46FDB678875B3C81E053A40F581CFBEC\ -24A1404B1671A1B88A6D06120229518FB13A74CA0AC5AE:\ -46B054CAB7793E1A16CCA37CA85712838081FA3A334642C0E441842F7071C534 - -D9FAA14CEBE9B7DE551B6C0765409A33938562013B5E8E0E1E0A6418DF7399D0\ -A6A771FB81C3CA9BD3BB8E2951B0BC792525A294EBD1083688806FE5E7F1E17F\ -D4E3A41D00C89E8FCF4A363CAEDB1ACB558E3D562F1302B3D83BB886ED27B760\ -33798131DAB05B4217381EAAA7BA15EC820BB5C13B516DD640EAEC5A27D05FDF\ -CA0F35B3A5312146806B4C0275BCD0AAA3B2017F346975DB566F9B4D137F4EE1\ -0644C2A2DA66DEECA5342E236495C3C6280528BFD32E90AF4CD9BB908F34012B\ -52B4BC56D48CC8A6B59BAB014988EABD12E1A0A1C2E170E7:\ -16188C138D46FCEE0B58456CF6EEE9214D405B280A14DD293403FDD1BF4F90E8 - -2D8427433D0C61F2D96CFE80CF1E932265A191365C3B61AAA3D6DCC039F6BA2A\ -D52A6A8CC30FC10F705E6B7705105977FA496C1C708A277A124304F1FC40911E\ -7441D1B5E77B951AAD7B01FD5DB1B377D165B05BBF898042E39660CAF8B279FE\ -5229D1A8DB86C0999ED65E53D01CCBC4B43173CCF992B3A14586F6BA42F5FE30\ -AFA8AE40C5DF29966F9346DA5F8B35F16A1DE3AB6DE0F477D8D8660918060E88\ -B9B9E9CA6A4207033B87A812DBF5544D39E4882010F82B6CE005F8E8FF6FE3C3\ -806BC2B73C2B83AFB704345629304F9F86358712E9FAE3CA3E:\ -20EA35A4B0101DAE67CC931DC3E5FE49BDF57D9C7363447AA91582356B0F24F2 - -5E19D97887FCAAC0387E22C6F803C34A3DACD2604172433F7A8A7A526CA4A2A1\ -271ECFC5D5D7BE5AC0D85D921095350DFC65997D443C21C8094E0A3FEFD2961B\ -CB94AED03291AE310CCDA75D8ACE4BC7D89E7D3E5D1650BDA5D668B8B50BFC8E\ -608E184F4D3A9A2BADC4FF5F07E0C0BC8A9F2E0B2A26FD6D8C550008FAAAB75F\ -D71AF2A424BEC9A7CD9D83FAD4C8E9319115656A8717D3B523A68FF8004258B9\ -990ED362308461804BA3E3A7E92D8F2FFAE5C2FBA55BA5A3C27C0A2F71BD711D\ -2FE1799C2ADB31B200035481E9EE5C4ADF2AB9C0FA50B23975CF:\ -1F1BF037BBAACC00647465511091824888D04D56FF40B53AAE3E78280FB7497E - -C8E976AB4638909387CE3B8D4E510C3230E5690E02C45093B1D297910ABC481E\ -56EEA0F296F98379DFC9080AF69E73B2399D1C143BEE80AE1328162CE1BA7F6A\ -8374679B20AACD380EB4E61382C99998704D62701AFA914F9A2705CDB065885F\ -50D086C3EB5753700C387118BB142F3E6DA1E988DFB31AC75D7368931E45D139\ -1A274B22F83CEB072F9BCABC0B216685BFD789F5023971024B1878A205442522\ -F9EA7D8797A4102A3DF41703768251FD5E017C85D1200A464118AA35654E7CA3\ -9F3C375B8EF8CBE7534DBC64BC20BEFB417CF60EC92F63D9EE7397:\ -2D9AD26CEF0B7DEC8436F19672CD1487FF65E6C5763778E90D4164EA2F0D74A1 - -7145FA124B7429A1FC2231237A949BA7201BCC1822D3272DE005B682398196C2\ -5F7E5CC2F289FBF44415F699CB7FE6757791B1443410234AE061EDF623359E2B\ -4E32C19BF88450432DD01CAA5EB16A1DC378F391CA5E3C4E5F356728BDDD4975\ -DB7C890DA8BBC84CC73FF244394D0D48954978765E4A00B593F70F2CA082673A\ -261ED88DBCEF1127728D8CD89BC2C597E9102CED6010F65FA75A14EBE467FA57\ -CE3BD4948B6867D74A9DF5C0EC6F530CBF2EE61CE6F06BC8F2864DFF5583776B\ -31DF8C7FFCB61428A56BF7BD37188B4A5123BBF338393AF46EDA85E6:\ -FCD651FB9D79865F0BE6C8144FAD6750B534B4924A547102BDE67761B44A2C1E - -7FDFADCC9D29BAD23AE038C6C65CDA1AEF757221B8872ED3D75FF8DF7DA0627D\ -266E224E812C39F7983E4558BFD0A1F2BEF3FEB56BA09120EF762917B9C09386\ -7948547AEE98600D10D87B20106878A8D22C64378BF634F7F75900C03986B077\ -B0BF8B740A82447B61B99FEE5376C5EB6680EC9E3088F0BDD0C56883413D60C1\ -357D3C811950E5890E7600103C916341B80C743C6A852B7B4FB60C3BA21F3BC1\ -5B8382437A68454779CF3CD7F9F90CCC8EF28D0B706535B1E4108EB5627BB45D\ -719CB046839AEE311CA1ABDC8319E050D67972CB35A6B1601B25DBF487:\ -73C2F21B32CD6192A9547BF74A6BB7622E6FA6B044F92122758DDF485B21DDB4 - -988638219FD3095421F826F56E4F09E356296B628C3CE6930C9F2E758FD1A80C\ -8273F2F61E4DAAE65C4F110D3E7CA0965AC7D24E34C0DC4BA2D6FF0BF5BBE93B\ -3585F354D7543CB542A1AA54674D375077F2D360A8F4D42F3DB131C3B7AB7306\ -267BA107659864A90C8C909460A73621D1F5D9D3FD95BEB19B23DB1CB6C0D0FB\ -A91D36891529B8BD8263CAA1BAB56A4AFFAED44962DF096D8D5B1EB845EF3118\ -8B3E10F1AF811A13F156BEB7A288AAE593EBD1471B624AA1A7C6ADF01E2200B3\ -D72D88A3AED3100C88231E41EFC376906F0B580DC895F080FDA5741DB1CB:\ -082E5D0692CF3D274897917ABC66A0E0688A5D4C87DA370009A4D3F91022B0A8 - -5AAB62756D307A669D146ABA988D9074C5A159B3DE85151A819B117CA1FF6597\ -F6156E80FDD28C9C3176835164D37DA7DA11D94E09ADD770B68A6E081CD22CA0\ -C004BFE7CD283BF43A588DA91F509B27A6584C474A4A2F3EE0F1F56447379240\ -A5AB1FB77FDCA49B305F07BA86B62756FB9EFB4FC225C86845F026EA542076B9\ -1A0BC2CDD136E122C659BE259D98E5841DF4C2F60330D4D8CDEE7BF1A0A24452\ -4EECC68FF2AEF5BF0069C9E87A11C6E519DE1A4062A10C83837388F7EF58598A\ -3846F49D499682B683C4A062B421594FAFBC1383C943BA83BDEF515EFCF10D:\ -C88DD85BC74DFA17EB4A683018335CC71E73363CFE24E45690D25D98E969EB74 - -47B8216AA0FBB5D67966F2E82C17C07AA2D6327E96FCD83E3DE7333689F3EE79\ -994A1BF45082C4D725ED8D41205CB5BCDF5C341F77FACB1DA46A5B9B2CBC49EA\ -DF786BCD881F371A95FA17DF73F606519AEA0FF79D5A11427B98EE7F13A5C006\ -37E2854134691059839121FEA9ABE2CD1BCBBBF27C74CAF3678E05BFB1C94989\ -7EA01F56FFA4DAFBE8644611685C617A3206C7A7036E4AC816799F693DAFE7F1\ -9F303CE4EBA09D21E03610201BFC665B72400A547A1E00FA9B7AD8D84F84B34A\ -EF118515E74DEF11B9188BD1E1F97D9A12C30132EC2806339BDADACDA2FD8B78:\ -2AA62C1184D50EDEFB26B3AA922749356FB0741D6E3D9BCBF555521ACB106DEE - -8CFF1F67FE53C098896D9136389BD8881816CCAB34862BB67A656E3D98896F3C\ -E6FFD4DA73975809FCDF9666760D6E561C55238B205D8049C1CEDEEF374D1735\ -DAA533147BFA960B2CCE4A4F254176BB4D1BD1E89654432B8DBE1A135C42115B\ -394B024856A2A83DC85D6782BE4B444239567CCEC4B184D4548EAE3FF6A192F3\ -43292BA2E32A0F267F31CC26719EB85245D415FB897AC2DA433EE91A99424C9D\ -7F1766A44171D1651001C38FC79294ACCC68CEB5665D36218454D3BA169AE058\ -A831338C17743603F81EE173BFC0927464F9BD728DEE94C6AEAB7AAE6EE3A627\ -E8:\ -0A27CAA8388E204CD880A7FACD901EE93D98E019CD246111D634EA25AFAD33F5 - -EACD07971CFF9B9939903F8C1D8CBB5D4DB1B548A85D04E037514A583604E787\ -F32992BF2111B97AC5E8A938233552731321522AB5E8583561260B7D13EBEEF7\ -85B23A41FD8576A6DA764A8ED6D822D4957A545D5244756C18AA80E1AAD4D1F9\ -C20D259DEE1711E2CC8FD013169FB7CC4CE38B362F8E0936AE9198B7E838DCEA\ -4F7A5B9429BB3F6BBCF2DC92565E3676C1C5E6EB3DD2A0F86AA23EDD3D0891F1\ -97447692794B3DFA269611AD97F72B795602B4FDB198F3FD3EB41B415064256E\ -345E8D8C51C555DC8A21904A9B0F1AD0EFFAB7786AAC2DA3B196507E9F33CA35\ -6427:\ -FB6F77140837DF9E820106140FB80C6AA06688085BB05CC118B7131E5F4BCB20 - -23AC4E9A42C6EF45C3336CE6DFC2FF7DE8884CD23DC912FEF0F7756C09D335C1\ -89F3AD3A23697ABDA851A81881A0C8CCAFC980AB2C702564C2BE15FE4C4B9F10\ -DFB2248D0D0CB2E2887FD4598A1D4ACDA897944A2FFC580FF92719C95CF2AA42\ -DC584674CB5A9BC5765B9D6DDF5789791D15F8DD925AA12BFFAFBCE60827B490\ -BB7DF3DDA6F2A143C8BF96ABC903D83D59A791E2D62814A89B8080A28060568C\ -F24A80AE61179FE84E0FFAD00388178CB6A617D37EFD54CC01970A4A41D1A8D3\ -DDCE46EDBBA4AB7C90AD565398D376F431189CE8C1C33E132FEAE6A8CD17A61C\ -630012:\ -FE039B7451F493B06607AF7F50116A7C9D5322BF18A942077CEFFFB6AA781073 - -0172DF732282C9D488669C358E3492260CBE91C95CFBC1E3FEA6C4B0EC129B45\ -F242ACE09F152FC6234E1BEE8AAB8CD56E8B486E1DCBA9C05407C2F95DA8D8F1\ -C0AF78EE2ED82A3A79EC0CB0709396EE62AADB84F8A4EE8A7CCCA3C1EE84E302\ -A09EA802204AFECF04097E67D0F8E8A9D2651126C0A598A37081E42D168B0AE8\ -A71951C524259E4E2054E535B779679BDADE566FE55700858618E626B4A0FAF8\ -95BCCE9011504A49E05FD56127EAE3D1F8917AFB548ECADABDA1020111FEC931\ -4C413498A360B08640549A22CB23C731ACE743252A8227A0D2689D4C60016066\ -78DFB921:\ -685AD3988956726FB7F0669C8140D8119E5C3FA386C976172248554319DDE6D0 - -3875B9240CF3E0A8B59C658540F26A701CF188496E2C2174788B126FD29402D6\ -A75453BA0635284D08835F40051A2A9683DC92AFB9383719191231170379BA6F\ -4ADC816FECBB0F9C446B785BF520796841E58878B73C58D3EBB097CE4761FDEA\ -BE15DE2F319DFBAF1742CDEB389559C788131A6793E193856661376C81CE9568\ -DA19AA6925B47FFD77A43C7A0E758C37D69254909FF0FBD415EF8EB937BCD49F\ -91468B49974C07DC819ABD67395DB0E05874FF83DDDAB895344ABD0E7111B2DF\ -9E58D76D85AD98106B36295826BE04D435615595605E4B4BB824B33C4AFEB5E7\ -BB0D19F909:\ -6FD7CD6C507AB2978CFC6CB16FB5278517D5BC9E944CC12B53C2B1407C27DB76 - -747CC1A59FEFBA94A9C75BA866C30DC5C1CB0C0F8E9361D98484956DD5D1A40F\ -6184AFBE3DAC9F76028D1CAECCFBF69199C6CE2B4C092A3F4D2A56FE5A33A007\ -57F4D7DEE5DFB0524311A97AE0668A47971B95766E2F6DD48C3F57841F91F04A\ -00AD5EA70F2D479A2620DC5CD78EAAB3A3B011719B7E78D19DDF70D9423798AF\ -77517EBC55392FCD01FC600D8D466B9E7A7A85BF33F9CC5419E9BD874DDFD609\ -81150DDAF8D7FEBAA4374F0872A5628D318000311E2F5655365AD4D407C20E5C\ -04DF17A222E7DEEC79C5AB1116D8572F91CD06E1CCC7CED53736FC867FD49ECE\ -BE6BF8082E8A:\ -48DECA46A39F2D84A8740169512CC3D99F6C229752D7C4741F14349E3D9F5970 - -57AF971FCCAEC97435DC2EC9EF0429BCEDC6B647729EA168858A6E49AC1071E7\ -06F4A5A645CA14E8C7746D65511620682C906C8B86EC901F3DDED4167B3F00B0\ -6CBFAC6AEE3728051B3E5FF10B4F9ED8BD0B8DA94303C833755B3CA3AEDDF0B5\ -4BC8D6632138B5D25BAB03D17B3458A9D782108006F5BB7DE75B5C0BA854B423\ -D8BB801E701E99DC4FEAAD59BC1C7112453B04D33EA3635639FB802C73C2B71D\ -58A56BBD671B18FE34ED2E3DCA38827D63FDB1D4FB3285405004B2B3E26081A8\ -FF08CD6D2B08F8E7B7E90A2AB1ED7A41B1D0128522C2F8BFF56A7FE67969422C\ -E839A9D4608F03:\ -1E6E99CD27A58B5A84F68B573C2595106DA4301478C9F54FD95D1A4926FB1224 - -04E16DEDC1227902BAAF332D3D08923601BDD64F573FAA1BB7201918CFE16B1E\ -10151DAE875DA0C0D63C59C3DD050C4C6A874011B018421AFC4623AB0381831B\ -2DA2A8BA42C96E4F70864AC44E106F94311051E74C77C1291BF5DB9539E69567\ -BF6A11CF6932BBBAD33F8946BF5814C066D851633D1A513510039B349939BFD4\ -2B858C21827C8FF05F1D09B1B0765DC78A135B5CA4DFBA0801BCADDFA175623C\ -8B647EACFB4444B85A44F73890607D06D507A4F8393658788669F6EF4DEB58D0\ -8C50CA0756D5E2F49D1A7AD73E0F0B3D3B5F090ACF622B1878C59133E4A848E0\ -5153592EA81C6FBF:\ -2D19BF4397B20FD9693D4167C334AA1F44898FB5456DD94F9CB3B21C8DEA28BE - -7C815C384EEE0F288ECE27CCED52A01603127B079C007378BC5D1E6C5E9E6D1C\ -735723ACBBD5801AC49854B2B569D4472D33F40BBB8882956245C366DC3582D7\ -1696A97A4E19557E41E54DEE482A14229005F93AFD2C4A7D8614D10A97A9DFA0\ -7F7CD946FA45263063DDD29DB8F9E34DB60DAA32684F0072EA2A9426ECEBFA52\ -39FB67F29C18CBAA2AF6ED4BF4283936823AC1790164FEC5457A9CBA7C767CA5\ -9392D94CAB7448F50EB34E9A93A80027471CE59736F099C886DEA1AB4CBA4D89\ -F5FC7AE2F21CCD27F611ECA4626B2D08DC22382E92C1EFB2F6AFDC8FDC3D2172\ -604F5035C46B8197D3:\ -1C089D1F7B04E3F871828E02560D59402356FE52E3332139BDAE63D7B82430DB - -E29D505158DBDD937D9E3D2145658EE6F5992A2FC790F4F608D9CDB44A091D5B\ -94B88E81FAC4FDF5C49442F13B911C55886469629551189EAFF62488F1A479B7\ -DB11A1560E198DDCCCCF50159093425FF7F1CB8D1D1246D0978764087D6BAC25\ -7026B090EFAE8CEC5F22B6F21C59ACE1AC7386F5B8837CA6A12B6FBF5534DD05\ -60EF05CA78104D3B943DDB220FEAEC89AA5E692A00F822A2AB9A2FE60350D75E\ -7BE16FF2526DC643872502D01F42F188ABED0A6E9A6F5FD0D1CE7D5755C9FFA6\ -6B0AF0B20BD806F08E06156690D81AC811778CA3DAC2C249B96002017FCE93E5\ -07E3B953ACF99964B847:\ -E9AA79C0065A30290B7DB60CF78252B4C9A65000DA256BC4BF46C9E6EC2D36DA - -D85588696F576E65ECA0155F395F0CFACD83F36A99111ED5768DF2D116D2121E\ -32357BA4F54EDE927F189F297D3A97FAD4E9A0F5B41D8D89DD7FE20156799C2B\ -7B6BF9C957BA0D6763F5C3BC5129747BBB53652B49290CFF1C87E2CDF2C4B95D\ -8AAEE09BC8FBFA6883E62D237885810491BFC101F1D8C636E3D0EDE838AD05C2\ -07A3DF4FAD76452979EB99F29AFAECEDD1C63B8D36CF378454A1BB67A741C77A\ -C6B6B3F95F4F02B64DABC15438613EA49750DF42EE90101F115AA9ABB9FF6432\ -4DDE9DABBB01054E1BD6B4BCDC7930A44C2300D87CA78C06924D0323AD7887E4\ -6C90E8C4D100ACD9EED21E:\ -E0D9BB2C3FA082F0931C3091FFF450A3B43EF40A1AB23B7CED5D3DBB35C8D090 - -3A12F8508B40C32C74492B66323375DCFE49184C78F73179F3314B79E63376B8\ -AC683F5A51F1534BD729B02B04D002F55CBD8E8FC9B5EC1EA6BBE6A0D0E74315\ -18E6BA45D124035F9D3DCE0A8BB7BF1430A9F657E0B4EA9F20EB20C786A58181\ -A1E20A96F1628F8728A13BDF7A4B4B32FC8AA7054CC4881AE7FA19AFA65C6C3E\ -E1B3ADE3192AF42054A8A911B8EC1826865D46D93F1E7C5E2B7813C92A506E53\ -886F3D4701BB93D2A681AD109C845904BB861AF8AF0646B6E399B38B614051D3\ -4F6842563A0F37EC00CB3D865FC5D746C4987DE2A65071100883A2A9C7A2BFE1\ -E2DD603D9EA24DC7C5FD06BE:\ -6BFC745A0ECF2A0EC61B18DC3864171CB06F390397C8EF56BAA9FDB691EDA61F - -1861EDCE46FA5AD17E1FF1DEAE084DEC580F97D0A67885DFE834B9DFAC1AE076\ -742CE9E267512CA51F6DF5A455AF0C5FD6ABF94ACEA103A3370C354485A7846F\ -B84F3AC7C2904B5B2FBF227002CE512133BB7E1C4E50057BFD1E44DB33C7CDB9\ -69A99E284B184F50A14B068A1FC5009D9B298DBE92239572A7627AAC02ABE8F3\ -E3B473417F36D4D2505D16B7577F4526C9D94A270A2DFE450D06DA8F6FA95687\ -9A0A55CFE99E742EA555EA477BA3E9B44CCD508C375423611AF92E55345DC215\ -779B2D5119EBA49C71D49B9FE3F1569FA24E5CA3E332D042422A8B8158D3EC66\ -A80012976F31FFDF305F0C9C5E:\ -C04B36B064A0E7255F9D93726BEB8CEB6AF104AACF95E0B1D9FE6674E3E28500 - -08D0FFDE3A6E4EF65608EA672E4830C12943D7187CCFF08F4941CFC13E545F3B\ -9C7AD5EEBBE2B01642B486CAF855C2C73F58C1E4E3391DA8E2D63D96E15FD849\ -53AE5C231911B00AD6050CD7AAFDAAC9B0F663AE6AAB45519D0F5391A541707D\ -479034E73A6AD805AE3598096AF078F1393301493D663DD71F83869CA27BA508\ -B7E91E81E128C1716DC3ACFE3084B2201E04CF8006617EECF1B640474A5D45CF\ -DE9F4D3EF92D6D055B909892194D8A8218DB6D8203A84261D200D71473D7488F\ -3427416B6896C137D455F231071CACBC86E0415AB88AEC841D96B7B8AF41E05B\ -B461A40645BF176601F1E760DE5F:\ -D1BAB81690777D5953C7758304DBA49D869EEBE5614CCB7B43D29B206ABF86E0 - -D782ABB72A5BE3392757BE02D3E45BE6E2099D6F000D042C8A543F50ED6EBC05\ -5A7F133B0DD8E9BC348536EDCAAE2E12EC18E8837DF7A1B3C87EC46D50C241DE\ -E820FD586197552DC20BEEA50F445A07A38F1768A39E2B2FF05DDDEDF751F1DE\ -F612D2E4D810DAA3A0CC904516F9A43AF660315385178A529E51F8AAE141808C\ -8BC5D7B60CAC26BB984AC1890D0436EF780426C547E94A7B08F01ACBFC4A3825\ -EAE04F520A9016F2FB8BF5165ED12736FC71E36A49A73614739EAA3EC834069B\ -1B40F1350C2B3AB885C02C640B9F7686ED5F99527E41CFCD796FE4C256C91731\ -86C226169FF257954EBDA81C0E5F99:\ -59F8C65D1A89437DFED8776DDFC679C2A7090EBAE7CEFDA8D5C5E7131726E61C - -5FCE8109A358570E40983E1184E541833BB9091E280F258CFB144387B05D190E\ -431CB19BAA67273BA0C58ABE91308E1844DCD0B3678BAA42F335F2FA05267A02\ -40B3C718A5942B3B3E3BFA98A55C25A1466E8D7A603722CB2BBF03AFA54CD769\ -A99F310735EE5A05DAE2C22D397BD95635F58C48A67F90E1B73AAFCD3F82117F\ -0166657838691005B18DA6F341D6E90FC1CDB352B30FAE45D348294E501B6325\ -2DE14740F2B85AE5299DDEC3172DE8B6D0BA219A20A23BB5E10FF434D39DB3F5\ -83305E9F5C039D98569E377B75A70AB837D1DF269B8A4B566F40BB91B577455F\ -D3C356C914FA06B9A7CE24C7317A172D:\ -FCC79031940D459B1AFFF94245872EC10F365E4191CFEB730073D8FD6542FAA6 - -6172F1971A6E1E4E6170AFBAD95D5FEC99BF69B24B674BC17DD78011615E502D\ -E6F56B86B1A71D3F4348087218AC7B7D09302993BE272E4A591968AEF18A1262\ -D665610D1070EE91CC8DA36E1F841A69A7A682C580E836941D21D909A3AFC1F0\ -B963E1CA5AB193E124A1A53DF1C587470E5881FB54DAE1B0D840F0C8F9D1B04C\ -645BA1041C7D8DBF22030A623AA15638B3D99A2C400FF76F3252079AF88D2B37\ -F35EE66C1AD7801A28D3D388AC450B97D5F0F79E4541755356B3B1A5696B023F\ -39AB7AB5F28DF4202936BC97393B93BC915CB159EA1BD7A0A414CB4B7A1AC3AF\ -68F50D79F0C9C7314E750F7D02FAA58BFA:\ -2FFC21A7A45695B5112E00EDE09B4309D4332784B44DF8F7A318F399D419EF44 - -5668ECD99DFBE215C4118398AC9C9EAF1A1433FAB4CCDD3968064752B625EA94\ -4731F75D48A27D047D67547F14DD0FFAA55FA5E29F7AF0D161D85EAFC4F2029B\ -717C918EAB9D304543290BDBA7158B68020C0BA4E079BC95B5BC0FC044A992B9\ -4B4CCD3BD66D0EABB5DBBAB904D62E00752C4E3B0091D773BCF4C14B4377DA3E\ -FFF824B1CB2FA01B32D1E46C909E626ED2DAE920F4C7DBEB635BC754FACBD8D4\ -9BEBA3F23C1C41CCBFCD0EE0C114E69737F5597C0BF1D859F0C767E18002AE8E\ -39C26261FFDE2920D3D0BAF0E906138696CFE5B7E32B600F45DF3AAA39932F3A\ -7DF95B60FA8712A2271FCAF3911CE7B511B1:\ -07F623F572AD11B9F025D3700331F105ECBEA315D3ACFC93D00F064C1D2124F8 - -03D625488354DF30E3F875A68EDFCF340E8366A8E1AB67F9D5C5486A96829DFA\ -C0578289082B2A62117E1CF418B43B90E0ADC881FC6AE8105C888E9ECD21AEA1\ -C9AE1A4038DFD17378FED71D02AE492087D7CDCD98F746855227967CB1AB4714\ -261EE3BEAD3F4DB118329D3EBEF4BC48A875C19BA763966DA0EBEA800E01B2F5\ -0B00E9DD4CACA6DCB314D00184EF71EA2391D760C950710DB4A70F9212FFC548\ -61F9DC752CE18867B8AD0C48DF8466EF7231E7AC567F0EB55099E622EBB86CB2\ -37520190A61C66AD34F1F4E289CB3282AE3EAAC6152ED24D2C92BAE5A7658252\ -A53C49B7B02DFE54FDB2E90074B6CF310AC661:\ -B87633654FD1D30A3C7F7FC08A5901ADE1DFE1AD121EAE77F6CA81CDAF0F28FA - -2EDC282FFB90B97118DD03AAA03B145F363905E3CBD2D50ECD692B37BF000185\ -C651D3E9726C690D3773EC1E48510E42B17742B0B0377E7DE6B8F55E00A8A4DB\ -4740CEE6DB0830529DD19617501DC1E9359AA3BCF147E0A76B3AB70C4984C13E\ -339E6806BB35E683AF8527093670859F3D8A0FC7D493BCBA6BB12B5F65E71E70\ -5CA5D6C948D66ED3D730B26DB395B3447737C26FAD089AA0AD0E306CB28BF0AC\ -F106F89AF3745F0EC72D534968CCA543CD2CA50C94B1456743254E358C1317C0\ -7A07BF2B0ECA438A709367FAFC89A57239028FC5FECFD53B8EF958EF10EE0608\ -B7F5CB9923AD97058EC067700CC746C127A61EE3:\ -3243CC1A40EB34682A5BB6731E6895B532A9FD119E5D132D969504F964B687DD - -90B28A6AA1FE533915BCB8E81ED6CACDC10962B7FF82474F845EEB86977600CF\ -70B07BA8E3796141EE340E3FCE842A38A50AFBE90301A3BDCC591F2E7D9DE53E\ -495525560B908C892439990A2CA2679C5539FFDF636777AD9C1CDEF809CDA9E8\ -DCDB451ABB9E9C17EFA4379ABD24B182BD981CAFC792640A183B61694301D04C\ -5B3EAAD694A6BD4CC06EF5DA8FA23B4FA2A64559C5A68397930079D250C51BCF\ -00E2B16A6C49171433B0AADFD80231276560B80458DD77089B7A1BBCC9E7E4B9\ -F881EACD6C92C4318348A13F4914EB27115A1CFC5D16D7FD94954C3532EFACA2\ -CAB025103B2D02C6FD71DA3A77F417D7932685888A:\ -7EF35A6D1831DA07BC5FEC817843308B0CCFD303F40B1F40DCC56D0F2281D74C - -2969447D175490F2AA9BB055014DBEF2E6854C95F8D60950BFE8C0BE8DE254C2\ -6B2D31B9E4DE9C68C9ADF49E4EE9B1C2850967F29F5D08738483B417BB96B2A5\ -6F0C8ACA632B552059C59AAC3F61F7B45C966B75F1D9931FF4E596406378CEE9\ -1AAA726A3A84C33F37E9CDBE626B5745A0B06064A8A8D56E53AAF102D23DD9DF\ -0A3FDF7A638509A6761A33FA42FA8DDBD8E16159C93008B53765019C3F0E9F10\ -B144CE2AC57F5D7297F9C9949E4FF68B70D339F87501CE8550B772F32C6DA8AD\ -2CE2100A895D8B08FA1EEAD7C376B407709703C510B50F87E73E43F8E7348F87\ -C3832A547EF2BBE5799ABEDCF5E1F372EA809233F006:\ -CD86A27F91AF52AE38271459E2D3531E6960981CC6A1FDB7B27D050FAA7A1911 - -721645633A44A2C78B19024EAECF58575AB23C27190833C26875DC0F0D50B46A\ -EA9C343D82EA7D5B3E50EC700545C615DAEAEA64726A0F05607576DCD396D812\ -B03FB6551C641087856D050B10E6A4D5577B82A98AFB89CEE8594C9DC19E79FE\ -FF0382FCFD127F1B803A4B9946F4AC9A4378E1E6E041B1389A53E3450CD32D9D\ -2941B0CBABDB50DA8EA2513145164C3AB6BCBD251C448D2D4B087AC57A59C228\ -5D564F16DA4ED5E607ED979592146FFB0EF3F3DB308FB342DF5EB5924A48256F\ -C763141A278814C82D6D6348577545870AE3A83C7230AC02A1540FE1798F7EF0\ -9E335A865A2AE0949B21E4F748FB8A51F44750E213A8FB:\ -CBD9AE4BCE3ABC5B01754388DED697F95ADB8FAD595B9CAD613EA5EEDC5F6F36 - -6B860D39725A14B498BB714574B4D37CA787404768F64C648B1751B353AC92BA\ -C2C3A28EA909FDF0423336401A02E63EC24325300D823B6864BB701F9D7C7A1F\ -8EC9D0AE3584AA6DD62EA1997CD831B4BABD9A4DA50932D4EFDA745C61E41308\ -90E156AEE6113716DAF95764222A91187DB2EFFEA49D5D0596102D619BD26A61\ -6BBFDA8335505FBB0D90B4C180D1A2335B91538E1668F9F9642790B4E55F9CAB\ -0FE2BDD2935D001EE6419ABAB5457880D0DBFF20ED8758F4C20FE759EFB33141\ -CF0E892587FE8187E5FBC57786B7E8B089612C936DFC03D27EFBBE7C8673F160\ -6BD51D5FF386F4A7AB68EDF59F385EB1291F117BFE717399:\ -6A9C06F5740755E87EA22671B99749C1E7E8B8261E6C514B0FB68F6FD593576F - -6A01830AF3889A25183244DECB508BD01253D5B508AB490D3124AFBF42626B2E\ -70894E9B562B288D0A2450CFACF14A0DDAE5C04716E5A0082C33981F6037D23D\ -5E045EE1EF2283FB8B6378A914C5D9441627A722C282FF452E25A7EA608D69CE\ -E4393A0725D17963D0342684F255496D8A18C2961145315130549311FC07F031\ -2FB78E6077334F87EAA873BEE8AA95698996EB21375EB2B4EF53C14401207DEB\ -4568398E5DD9A7CF97E8C9663E23334B46912F8344C19EFCF8C2BA6F04325F1A\ -27E062B62A58D0766FC6DB4D2C6A1928604B0175D872D16B7908EBC041761187\ -CC785526C2A3873FEAC3A642BB39F5351550AF9770C328AF7B:\ -F80CF26B72499FF551F99236CF91C2E8152D36BB6952CC7CFD1D8F415DA4F6BC - -B3C5E74B69933C2533106C563B4CA20238F2B6E675E8681E34A389894785BDAD\ -E59652D4A73D80A5C85BD454FD1E9FFDAD1C3815F5038E9EF432AAC5C3C4FE84\ -0CC370CF86580A6011778BBEDAF511A51B56D1A2EB68394AA299E26DA9ADA6A2\ -F39B9FAFF7FBA457689B9C1A577B2A1E505FDF75C7A0A64B1DF81B3A356001BF\ -0DF4E02A1FC59F651C9D585EC6224BB279C6BEBA2966E8882D68376081B98746\ -8E7AED1EF90EBD090AE825795CDCA1B4F09A979C8DFC21A48D8A53CDBB26C4DB\ -547FC06EFE2F9850EDD2685A4661CB4911F165D4B63EF25B87D0A96D3DFF6AB0\ -758999AAD214D07BD4F133A6734FDE445FE474711B69A98F7E2B:\ -D012BF61D4A8587D0C891AA96C550539CDBBE77385075B214BF607B9096DE3FB - -83AF34279CCB5430FEBEC07A81950D30F4B66F484826AFEE7456F0071A51E1BB\ -C55570B5CC7EC6F9309C17BF5BEFDD7C6BA6E968CF218A2B34BD5CF927AB846E\ -38A40BBD81759E9E33381016A755F699DF35D660007B5EADF292FEEFB735207E\ -BF70B5BD17834F7BFA0E16CB219AD4AF524AB1EA37334AA66435E5D397FC0A06\ -5C411EBBCE32C240B90476D307CE802EC82C1C49BC1BEC48C0675EC2A6C6F3ED\ -3E5B741D13437095707C565E10D8A20B8C20468FF9514FCF31B4249CD82DCEE5\ -8C0A2AF538B291A87E3390D737191A07484A5D3F3FB8C8F15CE056E5E5F8FEBE\ -5E1FB59D6740980AA06CA8A0C20F5712B4CDE5D032E92AB89F0AE1:\ -EBD2851FC04B38E57323CE3199854DBB56DA53771EA6AA36F92D4F9D410A5750 - -A7ED84749CCC56BB1DFBA57119D279D412B8A986886D810F067AF349E8749E9E\ -A746A60B03742636C464FC1EE233ACC52C1983914692B64309EDFDF29F1AB912\ -EC3E8DA074D3F1D231511F5756F0B6EEAD3E89A6A88FE330A10FACE267BFFBFC\ -3E3090C7FD9A850561F363AD75EA881E7244F80FF55802D5EF7A1A4E7B89FCFA\ -80F16DF54D1B056EE637E6964B9E0FFD15B6196BDD7DB270C56B47251485348E\ -49813B4EB9ED122A01B3EA45AD5E1A929DF61D5C0F3E77E1FDC356B63883A60E\ -9CBB9FC3E00C2F32DBD469659883F690C6772E335F617BC33F161D6F6984252E\ -E12E62B6000AC5231E0C9BC65BE223D8DFD94C5004A101AF9FD6C0FB:\ -22C3FFDB2F4F12F5E7E7E1B440F793F807C82C6A1758AD385C119144F8AFDF4E - -A6FE30DCFCDA1A329E82AB50E32B5F50EB25C873C5D2305860A835AECEE6264A\ -A36A47429922C4B8B3AFD00DA16035830EDB897831C4E7B00F2C23FC0B15FDC3\ -0D85FB70C30C431C638E1A25B51CAF1D7E8B050B7F89BFB30F59F0F20FECFF3D\ -639ABC4255B3868FC45DD81E47EB12AB40F2AAC735DF5D1DC1AD997CEFC4D836\ -B854CEE9AC02900036F3867FE0D84AFFF37BDE3308C2206C62C4743375094108\ -877C73B87B2546FE05EA137BEDFC06A2796274099A0D554DA8F7D7223A48CBF3\ -1B7DECAA1EBC8B145763E3673168C1B1B715C1CD99ECD3DDB238B06049885ECA\ -D9347C2436DFF32C771F34A38587A44A82C5D3D137A03CAA27E66C8FF6:\ -AACBAEDB29AC2298073C5A4CD93EC4911829379957544DAB0F0913B6B6AFCEF2 - -83167FF53704C3AA19E9FB3303539759C46DD4091A52DDAE9AD86408B6933598\ -9E61414BC20AB4D01220E35241EFF5C9522B079FBA597674C8D716FE441E5661\ -10B6211531CECCF8FD06BC8E511D00785E57788ED9A1C5C73524F01830D2E114\ -8C92D0EDC97113E3B7B5CD3049627ABDB8B39DD4D6890E0EE91993F92B03354A\ -88F52251C546E64434D9C3D74544F23FB93E5A2D2F1FB15545B4E1367C97335B\ -0291944C8B730AD3D4789273FA44FB98D78A36C3C3764ABEEAC7C569C1E43A35\ -2E5B770C3504F87090DEE075A1C4C85C0C39CF421BDCC615F9EFF6CB4FE64680\ -04AECE5F30E1ECC6DB22AD9939BB2B0CCC96521DFBF4AE008B5B46BC006E:\ -E16B44C16364E7A8A9747CA062EDA67C07688F5353DB8AC76B97E4B87A33271C - -3A3A819C48EFDE2AD914FBF00E18AB6BC4F14513AB27D0C178A188B61431E7F5\ -623CB66B23346775D386B50E982C493ADBBFC54B9A3CD383382336A1A0B2150A\ -15358F336D03AE18F666C7573D55C4FD181C29E6CCFDE63EA35F0ADF5885CFC0\ -A3D84A2B2E4DD24496DB789E663170CEF74798AA1BBCD4574EA0BBA40489D764\ -B2F83AADC66B148B4A0CD95246C127D5871C4F11418690A5DDF01246A0C80A43\ -C70088B6183639DCFDA4125BD113A8F49EE23ED306FAAC576C3FB0C1E256671D\ -817FC2534A52F5B439F72E424DE376F4C565CCA82307DD9EF76DA5B7C4EB7E08\ -5172E328807C02D011FFBF33785378D79DC266F6A5BE6BB0E4A92ECEEBAEB1:\ -89D35349D86B5FABBCFF385931532888F7DAB44B35E4522B196DBCC34FF5F912 - -[Skein-512(384)] -:\ -DD5AAF4589DC227BD1EB7BC68771F5BAEAA3586EF6C7680167A023EC8CE26980\ -F06C4082C488B4AC9EF313F8CBE70808 - -CC:\ -00D5A235BE7BC36A9FD68227A593F106EE831F3F7558C96DA5B71AE7D0DB3084\ -E43D6C57D9F202E8C69CC2C0D4333B20 - -41FB:\ -BD9CF424D78ECEF97BF6350B8A3108B2564D1C5ACD225F1AAFAB38952E2D055C\ -63CBB2D4E2E3E1E0EECDC509D0376F64 - -1F877C:\ -772D0130AF7122EC74CCC8D3525C9DED5EB947E7986D404289A188903DAE603B\ -CD602463C9E5B5B36DC35BC2EFA63269 - -C1ECFDFC:\ -4695DA47BFB7CA4B4E3A75A9D11F32D4E1D2B157E4CC6C99D2F8958576E689C1\ -CD290FE681F93815DE0597C1955B8FB7 - -21F134AC57:\ -E05E9F03E3B93B551C8B6831A90236CF52353B5823DD7B0ED4C5C5E561B9BB4C\ -1E89FB754C2A322E06F353D1279C41AC - -C6F50BB74E29:\ -EDC71C49237BADF4BB2AF8B3C323FD1B97B9C36007D0BACCD576D86A489DCC8F\ -2D6057ED1367F11CE9608675510A800B - -119713CC83EEEF:\ -EA913BBDB422C1FEA6265B76D31595263C85CFFD649987A390937CACDD6DEB5A\ -60737442B0F65B026ED7E33F8BA8C984 - -4A4F202484512526:\ -A1FDE8F1FD6173938BFE97FAC79CF039ED1706037A37728AF44A8DE9BD3B0104\ -527A41EF9BDF2DD6F9F47D6DFFB54F2E - -1F66AB4185ED9B6375:\ -6B5B8FF4A1E0E17A5A56DE5E22BBCA3C2515097FDC9F37FE3BE7AC795E4DABA9\ -109D1D385089598ED66338432D403E2B - -EED7422227613B6F53C9:\ -55E9B42D26411536444796D4491F8F0AE584AD34944266DFEFCAA8017D187ABF\ -11FD7FF11F5213854D0BB8613976B3CF - -EAEED5CDFFD89DECE455F1:\ -AEC708568481A72811A7433EA10D108776ECF04800817160A9A7F81444D018CC\ -343F59985EF697C5132E9E83FD093A8B - -5BE43C90F22902E4FE8ED2D3:\ -D4C81A25FBAC868A5948ADCB01E2080F1C4E05B78C168E4F4A86B8B2847BFEDF\ -81C0A15FDE4663B6D853496C18D96DCE - -A746273228122F381C3B46E4F1:\ -FD050947149FCB0ACADDD62D54C8B1F1AE7C92402FE5D3628E9C729B389DDD2F\ -64D3773EA7FB3283A0B2779366BB1ACD - -3C5871CD619C69A63B540EB5A625:\ -90F75B68A1C4DEF30110140532B6010FD20E31E73B789BCD83242CED91F55168\ -173C58E8F25E938E539E48CD8AADAE18 - -FA22874BCC068879E8EF11A69F0722:\ -9824CAE6430B1A48ACB966ACA678BC04E2DA5D1D8AE80693805723E2F0163B4C\ -AAF711EC56F1A7F34ACF06B73D953663 - -52A608AB21CCDD8A4457A57EDE782176:\ -B68EDDA2FF7CCCB2ABCFFB878C565F5628F0804992218305FDD64FB1973EED70\ -22A2A10983179761F2181B1C814C45AF - -82E192E4043DDCD12ECF52969D0F807EED:\ -6B5D6A0E5A65EBAEECB1E355CD315E1F08FC2F661D49A5133816F20F8EDEF2E6\ -8FA2239062228A2C8B3F5EF1B93EE776 - -75683DCB556140C522543BB6E9098B21A21E:\ -21C60C9A2E785776F148BD8E022AAAD1E96CC4D504E29595AA1DEF00D6D0D64A\ -7206FF3A8538E9BED2465ED07239A7D4 - -06E4EFE45035E61FAAF4287B4D8D1F12CA97E5:\ -88C9F13E2287DCB77E130BDB79FBBD10CF57E2D7B1FB14C75827C38C07182DDB\ -44567261AAF221E2A030B0DF6A687E7B - -E26193989D06568FE688E75540AEA06747D9F851:\ -3DEE36F24D127B2E6C8F15C8A5D9BB63536536B0CFF7F8D9A6D4E2E76C1102E6\ -E72BCE71DCF883F7E416FE68F0FD7FF2 - -D8DC8FDEFBDCE9D44E4CBAFE78447BAE3B5436102A:\ -E443B8372B11BFB4CE30EDCC67AB71683B4D5CA4F03F8B2DBDB01874FFDABA9B\ -FBA53BA02EB1D4A528E78403DE969C60 - -57085FD7E14216AB102D8317B0CB338A786D5FC32D8F:\ -8F6943635374867A09D3A48AB01693B912A5AA1922E0471F63C27A4B21CD813D\ -A83A60373149DC3520F54C5C77137B61 - -A05404DF5DBB57697E2C16FA29DEFAC8AB3560D6126FA0:\ -CA43C3340DABC7468B13C36F99CA7A74AD1F9F20E19B7D56836ABC487B556688\ -1EA55AA832A538B8CC4F5327CE0D92FE - -AECBB02759F7433D6FCB06963C74061CD83B5B3FFA6F13C6:\ -1FF2C4A8ED156BEA863C707E83B4761F9476A54C247D09EC1B80E500D816B6AF\ -123AD985846DE52A5748C3A3522C49AD - -AAFDC9243D3D4A096558A360CC27C8D862F0BE73DB5E88AA55:\ -02F0D9A142AE9E372399666F18BF475BD8F0FF295E40E017628CAFF59B5696DA\ -077A1FFFA5EE5F7F80655B77BFC86BD9 - -7BC84867F6F9E9FDC3E1046CAE3A52C77ED485860EE260E30B15:\ -53BA772B7269004E71B65D9B57186038F69936D583937846BCAA166307702058\ -1AE8C132083607B7B8780756403CDE0B - -FAC523575A99EC48279A7A459E98FF901918A475034327EFB55843:\ -3B1C7ADCAF40CF70ABDE54815A0B1ACA426D0C3F13E1BA202D79C8373867D108\ -52318A51F4D8EDF5BEA2CE6E47CEDCE9 - -0F8B2D8FCFD9D68CFFC17CCFB117709B53D26462A3F346FB7C79B85E:\ -B5A639D4D0254238E1642D5767E80580391A6AB2A423123DCFBF094F210776A8\ -9211E54810FEC520AA6F9F819ACB8FFB - -A963C3E895FF5A0BE4824400518D81412F875FA50521E26E85EAC90C04:\ -330666C8C85D5AC1E59EF7B72428C383530C0C2597AF6E6A6005138990577E52\ -856BBC7E153804234CBB7A2F96CB1A56 - -03A18688B10CC0EDF83ADF0A84808A9718383C4070C6C4F295098699AC2C:\ -D159D7F40DDC09965E3D57EC61E5F6D34BA5B8F57CB4D986C4A25B64F4A58CDC\ -97FBABF386DD47ED8C381C336EBCA0A0 - -84FB51B517DF6C5ACCB5D022F8F28DA09B10232D42320FFC32DBECC3835B29:\ -2AF14104E4EC86798C83648E632CB6858B8E57669D6AB8DA032D2B93857638D0\ -65B50F5EFCC0332E806A6A2FACE8F021 - -9F2FCC7C90DE090D6B87CD7E9718C1EA6CB21118FC2D5DE9F97E5DB6AC1E9C10:\ -A6B34FDA062D8FB9C9DD4D088EACB612F38C67E932F4C6A9C7BA5D3285BFB569\ -6E448821922B14DA012128E4D0D07038 - -DE8F1B3FAA4B7040ED4563C3B8E598253178E87E4D0DF75E4FF2F2DEDD5A0BE0\ -46:\ -8CBF02F8C8E4A9A016D73F0F03ABECAE333454C407CBF4BD4F04D3B793EF8398\ -9661B28A93107DD1C4C7063C113BD7F4 - -62F154EC394D0BC757D045C798C8B87A00E0655D0481A7D2D9FB58D93AEDC676\ -B5A0:\ -2F6AF995CC2FE971791211C8C4320E88A17A519B4AFA8BB507BE3FB320FF5CD2\ -42817E3B7B05B3DCEB754AC27B17C776 - -B2DCFE9FF19E2B23CE7DA2A4207D3E5EC7C6112A8A22AEC9675A886378E14E5B\ -FBAD4E:\ -859ECDC28135742976F8ADE4448D36BF8DF2065FCC61249FA18DFD701ABDEED1\ -589BABEC4E2A172C0F284355C0DB5BCC - -47F5697AC8C31409C0868827347A613A3562041C633CF1F1F86865A576E02835\ -ED2C2492:\ -BE285BF78BDCDEFD092E78B03F4CAFBB532B82CAED6FE80571BE4D08B499E02B\ -6298DD08AD1499534510B7FA68D999A8 - -512A6D292E67ECB2FE486BFE92660953A75484FF4C4F2ECA2B0AF0EDCDD4339C\ -6B2EE4E542:\ -8258CE0AC0459B3674BFFC7649D914B6389F085339B68AFE019129EFD1590EF1\ -1E6221A2A1E3A43845FDC0D17DEE38E7 - -973CF2B4DCF0BFA872B41194CB05BB4E16760A1840D8343301802576197EC19E\ -2A1493D8F4FB:\ -B937D1FB0DC3DB01F50E8403C0F4FB2BC3497BF6066D082D3F7F6F801046B3C9\ -3607C8394E8DD876122311CDC96BF322 - -80BEEBCD2E3F8A9451D4499961C9731AE667CDC24EA020CE3B9AA4BBC0A7F79E\ -30A934467DA4B0:\ -083D3E568350FF19873B846811BD9DFCEE62AA33D7DC6D1974427FAFC9D8B098\ -A1188047666EF3DFDD16A15E0B21A6B0 - -7ABAA12EC2A7347674E444140AE0FB659D08E1C66DECD8D6EAE925FA451D65F3\ -C0308E29446B8ED3:\ -814C38F1F0A4B150FD1B3FFCEDA4C82182AEE533BD740E00BE0DCAD7D2C593B7\ -F0D668F200FD60ABAF73954B1159DCFF - -C88DEE9927679B8AF422ABCBACF283B904FF31E1CAC58C7819809F65D5807D46\ -723B20F67BA610C2B7:\ -603B381E7A62AFECE40A85E880CA81074FF9813561D35599A75591219F081223\ -F22B77BC2556A930E221900E46717A08 - -01E43FE350FCEC450EC9B102053E6B5D56E09896E0DDD9074FE138E603821027\ -0C834CE6EADC2BB86BF6:\ -97048BF08A3AA022FD8B7B27B3378C71EEBA5A53CE131371B0F2174FA7362313\ -BC4E4611FADAB501B00B626FC0285410 - -337023370A48B62EE43546F17C4EF2BF8D7ECD1D49F90BAB604B839C2E6E5BD2\ -1540D29BA27AB8E309A4B7:\ -A939E04321A4CD5C0CC8C9A6F3A0FA5BFE2F7E3F641780216C3D4F19498E4CC0\ -99BF4C7FF72D2DBE0B9DB0583B6FD87A - -6892540F964C8C74BD2DB02C0AD884510CB38AFD4438AF31FC912756F3EFEC6B\ -32B58EBC38FC2A6B913596A8:\ -EEF30A214C1A13BC7CC3DBA6B2F6F0F3EE9402F1FD2FF30F7E365132AC40B2D5\ -2D42B5DCDCFFC2E8DBEBF9A085DE6DE3 - -F5961DFD2B1FFFFDA4FFBF30560C165BFEDAB8CE0BE525845DEB8DC61004B7DB\ -38467205F5DCFB34A2ACFE96C0:\ -5EA522484208E44E03899F34B7CE1407D7248B4449A5D1017A315261C15F8328\ -FF91EB71437E5959816948B8FEFB8BCC - -CA061A2EB6CEED8881CE2057172D869D73A1951E63D57261384B80CEB5451E77\ -B06CF0F5A0EA15CA907EE1C27EBA:\ -8F369EA3FBF4EB7AC6B403AC2AAC0C1010BBAEDC3E3AE56A230DB5C8AB74E279\ -A01DA2746945C9AD3D3C2EDA2F979B84 - -1743A77251D69242750C4F1140532CD3C33F9B5CCDF7514E8584D4A5F9FBD730\ -BCF84D0D4726364B9BF95AB251D9BB:\ -E66948BB3F78F35702DA8B86CF00F8213C69F2C2D6AE53B5BE49A87C94B9CA96\ -BE10E3ED70F7CAA1348233C8821ADE5B - -D8FABA1F5194C4DB5F176FABFFF856924EF627A37CD08CF55608BBA8F1E324D7\ -C7F157298EABC4DCE7D89CE5162499F9:\ -48EFB81903ECFB45C8E8E6AB4EE613CC51553A3614BCA5728723DC425DF72119\ -761106AAB2BED22281F6329DCC4B76C0 - -BE9684BE70340860373C9C482BA517E899FC81BAAA12E5C6D7727975D1D41BA8\ -BEF788CDB5CF4606C9C1C7F61AED59F97D:\ -8CF73E9A7482F2F724CFC20122D53CE753E125AE10D45EA151CAA71E809C74BE\ -80BFEC538E033DAEF738E6AC4DB0BD28 - -7E15D2B9EA74CA60F66C8DFAB377D9198B7B16DEB6A1BA0EA3C7EE2042F89D37\ -86E779CF053C77785AA9E692F821F14A7F51:\ -E5A64162D97DCCD5AF0510FDF419148421D0C78AD034F84BD10A4459640BC2E0\ -84E8D79AC075C91B182B0B21DEE30F8E - -9A219BE43713BD578015E9FDA66C0F2D83CAC563B776AB9F38F3E4F7EF229CB4\ -43304FBA401EFB2BDBD7ECE939102298651C86:\ -7477FE62A1179ECD8C1FE3E631D6F50B05C205479723BCF2FBFC4CCB9622D030\ -05209B726559E9B45CD3CFD84E063175 - -C8F2B693BD0D75EF99CAEBDC22ADF4088A95A3542F637203E283BBC3268780E7\ -87D68D28CC3897452F6A22AA8573CCEBF245972A:\ -72445990CC993DE49DEAA95505141B85FEE3A91E3BE2B49C565FAF28F9B74077\ -03449AE0BCEC6F9A7C7CD9330DA2C8DF - -EC0F99711016C6A2A07AD80D16427506CE6F441059FD269442BAAA28C6CA037B\ -22EEAC49D5D894C0BF66219F2C08E9D0E8AB21DE52:\ -6FEDD863F915ED412DCF94982665D1804E2851048D680A2A16147790998F3B53\ -8C23CFA009E80F6633AC8F3A5EF2C07F - -0DC45181337CA32A8222FE7A3BF42FC9F89744259CFF653504D6051FE84B1A7F\ -FD20CB47D4696CE212A686BB9BE9A8AB1C697B6D6A33:\ -AB6AC800BC4DAE0AC3E068931CC247B911CC44CAC61893D5C3902BA244BFE42E\ -F5A4CF56535F01A324F099F2592DA042 - -DE286BA4206E8B005714F80FB1CDFAEBDE91D29F84603E4A3EBC04686F99A46C\ -9E880B96C574825582E8812A26E5A857FFC6579F63742F:\ -A3053719509C08B2115E123182D7F539D3B27CE99C9E418508C231CE96D8C51E\ -51F83DFBBA64991BC23B9311B827BF6F - -EEBCC18057252CBF3F9C070F1A73213356D5D4BC19AC2A411EC8CDEEE7A571E2\ -E20EAF61FD0C33A0FFEB297DDB77A97F0A415347DB66BCAF:\ -C199DD19BF41CE9553A579F12991CED14EC0484E6ACB402298584EF14167814B\ -FA1BF146E8151C0FD0924864B7A651CE - -416B5CDC9FE951BD361BD7ABFC120A5054758EBA88FDD68FD84E39D3B09AC254\ -97D36B43CBE7B85A6A3CEBDA8DB4E5549C3EE51BB6FCB6AC1E:\ -8497A79BFBDBC9C94799FAF66A73D627D04A788447217829E06D624A44E110B4\ -3EB578502D2F94039CBB5F844CF4B5DF - -5C5FAF66F32E0F8311C32E8DA8284A4ED60891A5A7E50FB2956B3CBAA79FC66C\ -A376460E100415401FC2B8518C64502F187EA14BFC9503759705:\ -2F23ECE869A3591573DAF89F82CA1699489B7205F8D0FC13C8238EB16808BFB3\ -393B42AB5269C23908D35493270582FB - -7167E1E02BE1A7CA69D788666F823AE4EEF39271F3C26A5CF7CEE05BCA831610\ -66DC2E217B330DF821103799DF6D74810EED363ADC4AB99F36046A:\ -775822112196C6CC4D1A8AC4284087B3CF6EF8334929714D1DA233E15C815AC3\ -E2C99311486DB75E046C0D72D98159CD - -2FDA311DBBA27321C5329510FAE6948F03210B76D43E7448D1689A063877B6D1\ -4C4F6D0EAA96C150051371F7DD8A4119F7DA5C483CC3E6723C01FB7D:\ -9395D781970EB7ACADE92B142A840D11065E54238EA80EC618E567D3640A5F81\ -2DDBED2B4B406DC5CB2C4D02B78B39A9 - -95D1474A5AAB5D2422ACA6E481187833A6212BD2D0F91451A67DD786DFC91DFE\ -D51B35F47E1DEB8A8AB4B9CB67B70179CC26F553AE7B569969CE151B8D:\ -7328901A867F6942A36EF905C9D154737684A0A119322C1D5AF780CBC3C2FE14\ -99B7813D563CF5AC17DD200DF6C57618 - -C71BD7941F41DF044A2927A8FF55B4B467C33D089F0988AA253D294ADDBDB325\ -30C0D4208B10D9959823F0C0F0734684006DF79F7099870F6BF53211A88D:\ -8B2C2A7A93EC9783F67F1F8BA86C81A650C1218356072DDFBE0A6834B0029E48\ -B1673D48B9E9D34C6164633F098305FB - -F57C64006D9EA761892E145C99DF1B24640883DA79D9ED5262859DCDA8C3C32E\ -05B03D984F1AB4A230242AB6B78D368DC5AAA1E6D3498D53371E84B0C1D4BA:\ -8683823D6C629A73AF3DFA73E0355260691CCEFC35F135CD320DD3D6A44D0F25\ -E5B614EBE22F3D5E5A29827DD438EFDA - -E926AE8B0AF6E53176DBFFCC2A6B88C6BD765F939D3D178A9BDE9EF3AA131C61\ -E31C1E42CDFAF4B4DCDE579A37E150EFBEF5555B4C1CB40439D835A724E2FAE7:\ -1E9C6A6B67535E471198511F01D3873B37588D140ACCC3A06041CF0FA6896EF8\ -8FBAE115C225E13D07E49E8B521D8326 - -16E8B3D8F988E9BB04DE9C96F2627811C973CE4A5296B4772CA3EEFEB80A652B\ -DF21F50DF79F32DB23F9F73D393B2D57D9A0297F7A2F2E79CFDA39FA393DF1AC\ -00:\ -682DE91050385C47497C05D0AEBC9A6611D21EE9FDE7BF7393DE821662D6F41D\ -A566715827D73133BBAF5DD10E7BB8AB - -FC424EEB27C18A11C01F39C555D8B78A805B88DBA1DC2A42ED5E2C0EC737FF68\ -B2456D80EB85E11714FA3F8EABFB906D3C17964CB4F5E76B29C1765DB03D91BE\ -37FC:\ -7CFC7B59B57F22182AB86CE7464FD43C10087940B15338B864554435915C29A4\ -D56886ABB579C0031369E8A6D9782602 - -ABE3472B54E72734BDBA7D9158736464251C4F21B33FBBC92D7FAC9A35C4E332\ -2FF01D2380CBAA4EF8FB07D21A2128B7B9F5B6D9F34E13F39C7FFC2E72E47888\ -599BA5:\ -1171EF0A8BD1645EB6320AF04151333FDA4A961EEB1B9B544B84CF2D48C7FD1B\ -1458BFED6DF5337CD06EFF2F8927A427 - -36F9F0A65F2CA498D739B944D6EFF3DA5EBBA57E7D9C41598A2B0E4380F3CF4B\ -479EC2348D015FFE6256273511154AFCF3B4B4BF09D6C4744FDD0F62D75079D4\ -40706B05:\ -975FB226B9943E93814ECBA7C0FE0271FFAE444A3EE3635C319B9D348C065738\ -EC2C0F203A7D2B582F65BDE3244F0DCE - -ABC87763CAE1CA98BD8C5B82CABA54AC83286F87E9610128AE4DE68AC95DF5E3\ -29C360717BD349F26B872528492CA7C94C2C1E1EF56B74DBB65C2AC351981FDB\ -31D06C77A4:\ -8BF840C06597588DEE710B6FFA63DA53DBBD9E5674C1997870F6C990434BC837\ -E486D21259E5AE7DF20ED6230F82F549 - -94F7CA8E1A54234C6D53CC734BB3D3150C8BA8C5F880EAB8D25FED13793A9701\ -EBE320509286FD8E422E931D99C98DA4DF7E70AE447BAB8CFFD92382D8A77760\ -A259FC4FBD72:\ -C7E1A46BD6641BF28161FF73FED29CA40C1737D2E55426CC6AFFA668C62B1003\ -12A9993CBF58AD1C67F8B45F2005B280 - -13BD2811F6ED2B6F04FF3895ACEED7BEF8DCD45EB121791BC194A0F806206BFF\ -C3B9281C2B308B1A729CE008119DD3066E9378ACDCC50A98A82E20738800B6CD\ -DBE5FE9694AD6D:\ -973C655510B5767CF9245DDCD991A35653061589E677A3A22420718BA9B31A64\ -74FB3BBBA6D9CC19069FFC0C13CB174D - -1EED9CBA179A009EC2EC5508773DD305477CA117E6D569E66B5F64C6BC64801C\ -E25A8424CE4A26D575B8A6FB10EAD3FD1992EDDDEEC2EBE7150DC98F63ADC323\ -7EF57B91397AA8A7:\ -4F96FC1285F6CD408B14B1BC2969F0105BB8834EF0B993D5EF47FE018B932784\ -3920A0DFA9237750ECC6AD16A1C1932F - -BA5B67B5EC3A3FFAE2C19DD8176A2EF75C0CD903725D45C9CB7009A900C0B0CA\ -7A2967A95AE68269A6DBF8466C7B6844A1D608AC661F7EFF00538E323DB5F2C6\ -44B78B2D48DE1A08AA:\ -14C74562DB319DE30671B7C2B74B84ACF67D0E7009D82C96BD23D868DF353161\ -A5C38743A1D2B1F35FDC3D8A03137B18 - -0EFA26AC5673167DCACAB860932ED612F65FF49B80FA9AE65465E5542CB62075\ -DF1C5AE54FBA4DB807BE25B070033EFA223BDD5B1D3C94C6E1909C02B620D4B1\ -B3A6C9FED24D70749604:\ -E3482648C5F49C90AF744CBF74439C43DC28BCB956FB0165D3B1968018B5A1B4\ -CDEC982464E3ED1F8571D2A9487D22BC - -BBFD933D1FD7BF594AC7F435277DC17D8D5A5B8E4D13D96D2F64E771ABBD51A5\ -A8AEA741BECCBDDB177BCEA05243EBD003CFDEAE877CCA4DA94605B67691919D\ -8B033F77D384CA01593C1B:\ -C5214A3074257511884A1E3BB06DE151C0BEE6C6FECB94282A8A4AFCFC8E1107\ -D5619C80104C985275E1162BA8D64A1E - -90078999FD3C35B8AFBF4066CBDE335891365F0FC75C1286CDD88FA51FAB94F9\ -B8DEF7C9AC582A5DBCD95817AFB7D1B48F63704E19C2BAA4DF347F48D4A6D603\ -013C23F1E9611D595EBAC37C:\ -129F42FA6E56C17F89301B300B907F0E28BD1B50742FEB4EF1027A571BB7011E\ -216A90468EDA7F5C0FC5352BFAAC285D - -64105ECA863515C20E7CFBAA0A0B8809046164F374D691CDBD6508AAABC1819F\ -9AC84B52BAFC1B0FE7CDDBC554B608C01C8904C669D8DB316A0953A4C68ECE32\ -4EC5A49FFDB59A1BD6A292AA0E:\ -ED92AF2CBE613F76FBB29ABF8F539FD4E754341DC891E31690DAD02CDBF2D1C1\ -08AA97510DA91F9E931AB9DE9BCD1449 - -D4654BE288B9F3B711C2D02015978A8CC57471D5680A092AA534F7372C71CEAA\ -B725A383C4FCF4D8DEAA57FCA3CE056F312961ECCF9B86F14981BA5BED6AB5B4\ -498E1F6C82C6CAE6FC14845B3C8A:\ -7592D415456664D9F5D1E2BA489DAC869B4A0C76929DD9AB3492BFC29843AC3B\ -63FFDF98B2F3D2B97C6F901F7C8BC22D - -12D9394888305AC96E65F2BF0E1B18C29C90FE9D714DD59F651F52B88B3008C5\ -88435548066EA2FC4C101118C91F32556224A540DE6EFDDBCA296EF1FB00341F\ -5B01FECFC146BDB251B3BDAD556CD2:\ -2B41D4B92DCA870B714C17F6A2C171E2F7ED712DB17D2B804B0EF1DD811EFA05\ -D5302400DAAC35B7D8A6C0B19312D640 - -871A0D7A5F36C3DA1DFCE57ACD8AB8487C274FAD336BC137EBD6FF4658B547C1\ -DCFAB65F037AA58F35EF16AFF4ABE77BA61F65826F7BE681B5B6D5A1EA8085E2\ -AE9CD5CF0991878A311B549A6D6AF230:\ -D6F3CFF75165E880FF89D66532C976857EDD33CCE338CC38C4A792C9AB769305\ -EDE34F9AA2ED90BC80B8CE693D674746 - -E90B4FFEF4D457BC7711FF4AA72231CA25AF6B2E206F8BF859D8758B89A7CD36\ -105DB2538D06DA83BAD5F663BA11A5F6F61F236FD5F8D53C5E89F183A3CEC615\ -B50C7C681E773D109FF7491B5CC22296C5:\ -C380F8A8BA9207D5C8985A47A2F4A47DA929EE9A59BBDAF0583F910D8F8B38DE\ -FF8B7C33411A8CCA3A048EB14C116E7B - -E728DE62D75856500C4C77A428612CD804F30C3F10D36FB219C5CA0AA30726AB\ -190E5F3F279E0733D77E7267C17BE27D21650A9A4D1E32F649627638DBADA970\ -2C7CA303269ED14014B2F3CF8B894EAC8554:\ -43878C46883783F66B667B82FBF04AEBCA2976F211CADD51CBEA2A89C0D02E23\ -B0F0ECF89416F92687CC4F34998420A9 - -6348F229E7B1DF3B770C77544E5166E081850FA1C6C88169DB74C76E42EB983F\ -ACB276AD6A0D1FA7B50D3E3B6FCD799EC97470920A7ABED47D288FF883E24CA2\ -1C7F8016B93BB9B9E078BDB9703D2B781B616E:\ -9CA305733AAE6AAF6A9FBC8BE3EF738160472B427A7D45512BE95B28512844A6\ -2CC9E77C6485BD64ECAA70947742BA16 - -4B127FDE5DE733A1680C2790363627E63AC8A3F1B4707D982CAEA258655D9BF1\ -8F89AFE54127482BA01E08845594B671306A025C9A5C5B6F93B0A39522DC8774\ -37BE5C2436CBF300CE7AB6747934FCFC30AEAAF6:\ -15C963B78566DAF09DB081A03D46BF07F56A04BEC06EED0772022DE538FB97A2\ -C3C74C0112C218426D200C89806DEEE7 - -08461F006CFF4CC64B752C957287E5A0FAABC05C9BFF89D23FD902D324C79903\ -B48FCB8F8F4B01F3E4DDB483593D25F000386698F5ADE7FAADE9615FDC50D327\ -85EA51D49894E45BAA3DC707E224688C6408B68B11:\ -ADFD0604E3E8C69761E5216A74972DF8524A80A4BFC44A9036685D1319DBAAA4\ -19B77643151AAA6354ACF0ACBBE8B804 - -68C8F8849B120E6E0C9969A5866AF591A829B92F33CD9A4A3196957A148C4913\ -8E1E2F5C7619A6D5EDEBE995ACD81EC8BB9C7B9CFCA678D081EA9E25A75D39DB\ -04E18D475920CE828B94E72241F24DB72546B352A0E4:\ -F0E83C63AAB311880E90AAA11F813A7BDB33A54D9EF8300B89782720CB9F63D1\ -68BE37EB9AF76842102B83C1C3D2CFE5 - -B8D56472954E31FB54E28FCA743F84D8DC34891CB564C64B08F7B71636DEBD64\ -CA1EDBDBA7FC5C3E40049CE982BBA8C7E0703034E331384695E9DE76B5104F2F\ -BC4535ECBEEBC33BC27F29F18F6F27E8023B0FBB6F563C:\ -05B693139D12AB6357BF8E86CC0651986B562E69FF1793FC917882058F65BC5F\ -7E29990855F4066F74194EB33C45D3C9 - -0D58AC665FA84342E60CEFEE31B1A4EACDB092F122DFC68309077AED1F3E528F\ -578859EE9E4CEFB4A728E946324927B675CD4F4AC84F64DB3DACFE850C1DD187\ -44C74CECCD9FE4DC214085108F404EAB6D8F452B5442A47D:\ -BD4AB805B0EF51C99A38D7312553D6A424C9FED2A012BCE569DA68D8464B828F\ -2B724550C1CC8E5818325D7595B87517 - -1755E2D2E5D1C1B0156456B539753FF416651D44698E87002DCF61DCFA2B4E72\ -F264D9AD591DF1FDEE7B41B2EB00283C5AEBB3411323B672EAA145C512518510\ -4F20F335804B02325B6DEA65603F349F4D5D8B782DD3469CCD:\ -C41E37493A92C1B13775C345E8C0A910D08310FF38445D3556278F6DCB5282EC\ -4BDE63800C5302C497146A031214547B - -B180DE1A611111EE7584BA2C4B020598CD574AC77E404E853D15A101C6F5A2E5\ -C801D7D85DC95286A1804C870BB9F00FD4DCB03AA8328275158819DCAD7253F3\ -E3D237AEAA7979268A5DB1C6CE08A9EC7C2579783C8AFC1F91A7:\ -980F52FA262ECF7ABDC572AC637FA853E97E50C20746D706A4405F446BBFE585\ -1D94D2D55B176ACBF7F6C8A3062D9644 - -CF3583CBDFD4CBC17063B1E7D90B02F0E6E2EE05F99D77E24E560392535E47E0\ -5077157F96813544A17046914F9EFB64762A23CF7A49FE52A0A4C01C630CFE87\ -27B81FB99A89FF7CC11DCA5173057E0417B8FE7A9EFBA6D95C555F:\ -8A1948E4A7BF5A30C6C89215C78D7A3387F55E74E5C6B0A78D9C058E62BC2BE5\ -E27F5511927290860403F2CE55C89896 - -072FC02340EF99115BAD72F92C01E4C093B9599F6CFC45CB380EE686CB5EB019\ -E806AB9BD55E634AB10AA62A9510CC0672CD3EDDB589C7DF2B67FCD3329F61B1\ -A4441ECA87A33C8F55DA4FBBAD5CF2B2527B8E983BB31A2FADEC7523:\ -C6D8729A614F63955D25E2647335679400DDD4B7A11DA5570D606B6E17649A3B\ -8007AD1D29C36142CDF05A35BDDEEEB6 - -76EECF956A52649F877528146DE33DF249CD800E21830F65E90F0F25CA9D6540\ -FDE40603230ECA6760F1139C7F268DEBA2060631EEA92B1FFF05F93FD5572FBE\ -29579ECD48BC3A8D6C2EB4A6B26E38D6C5FBF2C08044AEEA470A8F2F26:\ -3817C40F6AD82A51DF2BA03F904224BE15609D19110591EBE004C87DB7D3CBAB\ -B839F033A0602830F6DFBF8B739776D7 - -7ADC0B6693E61C269F278E6944A5A2D8300981E40022F839AC644387BFAC9086\ -650085C2CDC585FEA47B9D2E52D65A2B29A7DC370401EF5D60DD0D21F9E2B90F\ -AE919319B14B8C5565B0423CEFB827D5F1203302A9D01523498A4DB10374:\ -177F858C375275BE09FA3C7E969B2718199992F43E1BF38559035F7C512132FE\ -B977F58EA3CE5A04E4FEFBFD46DD44DA - -E1FFFA9826CCE8B86BCCEFB8794E48C46CDF372013F782ECED1E378269B7BE2B\ -7BF51374092261AE120E822BE685F2E7A83664BCFBE38FE8633F24E633FFE198\ -8E1BC5ACF59A587079A57A910BDA60060E85B5F5B6F776F0529639D9CCE4BD:\ -4D7D591B8FC1499A15D7CA4BB2D2ED66EFE8EDC62D4E4E0020ADA049C9645C5C\ -880977162C5C6BA8762E34135439EC46 - -69F9ABBA65592EE01DB4DCE52DBAB90B08FC04193602792EE4DAA263033D5908\ -1587B09BBE49D0B49C9825D22840B2FF5D9C5155F975F8F2C2E7A90C75D2E4A8\ -040FE39F63BBAFB403D9E28CC3B86E04E394A9C9E8065BD3C85FA9F0C7891600:\ -9321BC18EB42FD8D566238755E0F3F2E36DB0C2C445585BF7874F8F01EE19840\ -DA5DE2399FAEF98760627E8C4DDCE5EC - -38A10A352CA5AEDFA8E19C64787D8E9C3A75DBF3B8674BFAB29B5DBFC15A63D1\ -0FAE66CD1A6E6D2452D557967EAAD89A4C98449787B0B3164CA5B717A93F24EB\ -0B506CEB70CBBCB8D72B2A72993F909AAD92F044E0B5A2C9AC9CB16A0CA2F81F\ -49:\ -7B3762B361A2031BD55AEC95F7F1D3AF6CDAA0C53543893B8AD5D8E4F173DC86\ -D931AA2EE257EA9DB3FD723226851AF5 - -6D8C6E449BC13634F115749C248C17CD148B72157A2C37BF8969EA83B4D6BA8C\ -0EE2711C28EE11495F43049596520CE436004B026B6C1F7292B9C436B055CBB7\ -2D530D860D1276A1502A5140E3C3F54A93663E4D20EDEC32D284E25564F62495\ -5B52:\ -4B60819A230AC7B5E9E79FDE70508BF2301636A400A266A623FF3F5AB1527303\ -1A95B0D1C66711287C76445172F98224 - -6EFCBCAF451C129DBE00B9CEF0C3749D3EE9D41C7BD500ADE40CDC65DEDBBBAD\ -B885A5B14B32A0C0D087825201E303288A733842FA7E599C0C514E078F05C821\ -C7A4498B01C40032E9F1872A1C925FA17CE253E8935E4C3C71282242CB716B20\ -89CCC1:\ -5657BA563863831C7E760A4A913960D3B5A0B5F2ACB40BB0DABB3BCB71D3F5BB\ -261C3BC33A4B2F4B10066F88BB5C4824 - -433C5303131624C0021D868A30825475E8D0BD3052A022180398F4CA4423B982\ -14B6BEAAC21C8807A2C33F8C93BD42B092CC1B06CEDF3224D5ED1EC29784444F\ -22E08A55AA58542B524B02CD3D5D5F6907AFE71C5D7462224A3F9D9E53E7E084\ -6DCBB4CE:\ -3D6479DF27738459A5953533BC80002CC160A14C44EB931F30C19D572DEE9ADC\ -551F47833CF9BA1B54FBE238A3684EAE - -A873E0C67CA639026B6683008F7AA6324D4979550E9BCE064CA1E1FB97A30B14\ -7A24F3F666C0A72D71348EDE701CF2D17E2253C34D1EC3B647DBCEF2F879F4EB\ -881C4830B791378C901EB725EA5C172316C6D606E0AF7DF4DF7F76E490CD30B2\ -BADF45685F:\ -1AA0DC5B65B7BC36A42A872211BAB8C337A88608104F4B0D94BECD4642888EA7\ -8096AB61E10A8A2601F5C19E099143F5 - -006917B64F9DCDF1D2D87C8A6173B64F6587168E80FAA80F82D84F60301E561E\ -312D9FBCE62F39A6FB476E01E925F26BCC91DE621449BE6504C504830AAE3940\ -96C8FC7694651051365D4EE9070101EC9B68086F2EA8F8AB7B811EA8AD934D5C\ -9B62C60A4771:\ -7DCD04C49C5775B2C5720B1D3C86237B8609240C442E82677F4BAFE95DF71E9B\ -EA21EA038B8641049D10795E4592DBB7 - -F13C972C52CB3CC4A4DF28C97F2DF11CE089B815466BE88863243EB318C2ADB1\ -A417CB1041308598541720197B9B1CB5BA2318BD5574D1DF2174AF14884149BA\ -9B2F446D609DF240CE335599957B8EC80876D9A085AE084907BC5961B20BF5F6\ -CA58D5DAB38ADB:\ -27D71344127B131779C522AC0732CB86924CA604F9D828B397A4BD8668620D7F\ -1A498C4647964514FFEBD65ED83E3FA4 - -E35780EB9799AD4C77535D4DDB683CF33EF367715327CF4C4A58ED9CBDCDD486\ -F669F80189D549A9364FA82A51A52654EC721BB3AAB95DCEB4A86A6AFA93826D\ -B923517E928F33E3FBA850D45660EF83B9876ACCAFA2A9987A254B137C6E140A\ -21691E1069413848:\ -F35AD05903827DE6880D6743789EAA2BC151290105E93555BDF2222F246F3453\ -D25E78CA20AF97FC7BF49C05AE8691D5 - -64EC021C9585E01FFE6D31BB50D44C79B6993D72678163DB474947A053674619\ -D158016ADB243F5C8D50AA92F50AB36E579FF2DABB780A2B529370DAA299207C\ -FBCDD3A9A25006D19C4F1FE33E4B1EAEC315D8C6EE1E730623FD1941875B924E\ -B57D6D0C2EDC4E78D6:\ -6C590B5247D6B2DC4EAE1E6091260CC4CEA39609533D7EEAFA2E714A615F6995\ -4BA89AB1385F71F2067B347B3EAE18A7 - -5954BAB512CF327D66B5D9F296180080402624AD7628506B555EEA8382562324\ -CF452FBA4A2130DE3E165D11831A270D9CB97CE8C2D32A96F50D71600BB4CA26\ -8CF98E90D6496B0A6619A5A8C63DB6D8A0634DFC6C7EC8EA9C006B6C456F1B20\ -CD19E781AF20454AC880:\ -BA27E4B6235FBFA30C121828756AF482C9AA4AEDAF03FA71B28A79A9AB91065B\ -534A386C09BC8F82F5833F9C7F5A65CC - -03D9F92B2C565709A568724A0AFF90F8F347F43B02338F94A03ED32E6F33666F\ -F5802DA4C81BDCE0D0E86C04AFD4EDC2FC8B4141C2975B6F07639B1994C973D9\ -A9AFCE3D9D365862003498513BFA166D2629E314D97441667B007414E739D7FE\ -BF0FE3C32C17AA188A8683:\ -C43E0FB71DCC91B15DCE61EE77F1AB80C35A4060160F0333717849D53678A2DB\ -2368650177E2499EBC3924173C709350 - -F31E8B4F9E0621D531D22A380BE5D9ABD56FAEC53CBD39B1FAB230EA67184440\ -E5B1D15457BD25F56204FA917FA48E669016CB48C1FFC1E1E45274B3B47379E0\ -0A43843CF8601A5551411EC12503E5AAC43D8676A1B2297EC7A0800DBFEE0429\ -2E937F21C005F17411473041:\ -E7D3CA73945E95DEF943819387EAE4D2E7A06ABF070743ACF98886E6E9C0D04C\ -7AA8E45023360DF8660FE2316E7D4C5E - -758EA3FEA738973DB0B8BE7E599BBEF4519373D6E6DCD7195EA885FC991D8967\ -62992759C2A09002912FB08E0CB5B76F49162AEB8CF87B172CF3AD190253DF61\ -2F77B1F0C532E3B5FC99C2D31F8F65011695A087A35EE4EEE5E334C369D8EE5D\ -29F695815D866DA99DF3F79403:\ -BB0416CE04F9E1C44338185FF508469E67628198CC623BA9D426EEEAFD1EA953\ -FEA2ADD9AABA60B719A372585FA4A9CF - -47C6E0C2B74948465921868804F0F7BD50DD323583DC784F998A93CD1CA4C6EF\ -84D41DC81C2C40F34B5BEE6A93867B3BDBA0052C5F59E6F3657918C382E771D3\ -3109122CC8BB0E1E53C4E3D13B43CE44970F5E0C079D2AD7D7A3549CD75760C2\ -1BB15B447589E86E8D76B1E9CED2:\ -9382974C4AB1F5DEE47B7BC4F46B9D3A9314ED25BE2D0E58613AC5DAD58F5AE4\ -25483B600E5EF80B97FC7AADA7AD94CD - -F690A132AB46B28EDFA6479283D6444E371C6459108AFD9C35DBD235E0B6B6FF\ -4C4EA58E7554BD002460433B2164CA51E868F7947D7D7A0D792E4ABF0BE5F450\ -853CC40D85485B2B8857EA31B5EA6E4CCFA2F3A7EF3380066D7D8979FDAC618A\ -AD3D7E886DEA4F005AE4AD05E5065F:\ -A08D2AC21C648AD99DD8D6EB513E9C35B882E7EECDB0298D79698726C9AEF125\ -6D6E3C589D46AE2C37E1D181D8CE7FBC - -58D6A99BC6458824B256916770A8417040721CCCFD4B79EACD8B65A3767CE5BA\ -7E74104C985AC56B8CC9AEBD16FEBD4CDA5ADB130B0FF2329CC8D611EB14DAC2\ -68A2F9E633C99DE33997FEA41C52A7C5E1317D5B5DAED35EBA7D5A60E45D1FA7\ -EAABC35F5C2B0A0F2379231953322C4E:\ -34098ADF5B1AEA0505F05675EFE5D0087F21DCE090F9CF8462CBE90D7733012C\ -E6B2473ED09FC76D20A88856F36702BB - -BEFAB574396D7F8B6705E2D5B58B2C1C820BB24E3F4BAE3E8FBCD36DBF734EE1\ -4E5D6AB972AEDD3540235466E825850EE4C512EA9795ABFD33F330D9FD7F79E6\ -2BBB63A6EA85DE15BEAEEA6F8D204A28956059E2632D11861DFB0E65BC07AC8A\ -159388D5C3277E227286F65FF5E5B5AEC1:\ -4BC42095E61032311071028B4D0822F9A1D6458DED53BE8AFF09A3F8298D981B\ -3E160DED1AEE4E76132EC6ECE0ACA676 - -8E58144FA9179D686478622CE450C748260C95D1BA43B8F9B59ABECA8D93488D\ -A73463EF40198B4D16FB0B0707201347E0506FF19D01BEA0F42B8AF9E71A1F1B\ -D168781069D4D338FDEF00BF419FBB003031DF671F4A37979564F69282DE9C65\ -407847DD0DA505AB1641C02DEA4F0D834986:\ -5E7FAEB80BD976475D5353B516AE7741172CFBD2E01BB791477952B9AB3FAB6A\ -8C6E9B465C519467EC7D74C72D5F444D - -B55C10EAE0EC684C16D13463F29291BF26C82E2FA0422A99C71DB4AF14DD9C7F\ -33EDA52FD73D017CC0F2DBE734D831F0D820D06D5F89DACC485739144F8CFD47\ -99223B1AFF9031A105CB6A029BA71E6E5867D85A554991C38DF3C9EF8C1E1E9A\ -7630BE61CAABCA69280C399C1FB7A12D12AEFC:\ -3BCE4C5C10AF910C8F918D616F8448C1185C3FE5CAFC6FB65F78088114DBC73B\ -F776B752369DCED810FA3C17BA6C9D04 - -2EEEA693F585F4ED6F6F8865BBAE47A6908AECD7C429E4BEC4F0DE1D0CA0183F\ -A201A0CB14A529B7D7AC0E6FF6607A3243EE9FB11BCF3E2304FE75FFCDDD6C5C\ -2E2A4CD45F63C962D010645058D36571404A6D2B4F44755434D76998E83409C3\ -205AA1615DB44057DB991231D2CB42624574F545:\ -5CFF0ABBBA9A99444F35D7059E00426A54F00FD40700CAA11B9DAD24585B9CDE\ -8611E2D2362198679661B0C8BB32D51F - -DAB11DC0B047DB0420A585F56C42D93175562852428499F66A0DB811FCDDDAB2\ -F7CDFFED1543E5FB72110B64686BC7B6887A538AD44C050F1E42631BC4EC8A9F\ -2A047163D822A38989EE4AAB01B4C1F161B062D873B1CFA388FD301514F62224\ -157B9BEF423C7783B7AAC8D30D65CD1BBA8D689C2D:\ -7D267BC373B124004D87779694CF540376EF8F2B70FD2A1C42CFA2ABF1B31883\ -69FAC54388D49193CDC290C6A4EBB42C - -42E99A2F80AEE0E001279A2434F731E01D34A44B1A8101726921C0590C30F312\ -0EB83059F325E894A5AC959DCA71CE2214799916424E859D27D789437B9D2724\ -0BF8C35ADBAFCECC322B48AA205B293962D858652ABACBD588BCF6CBC388D099\ -3BD622F96ED54614C25B6A9AA527589EAAFFCF17DDF7:\ -5C8EAD9B63BE6A53B2BB566F7F85922A0C34188CD423A00C2E8A7CBA853E5D10\ -99CD80F528ED566BB2E109B24C0A2705 - -3C9B46450C0F2CAE8E3823F8BDB4277F31B744CE2EB17054BDDC6DFF36AF7F49\ -FB8A2320CC3BDF8E0A2EA29AD3A55DE1165D219ADEDDB5175253E2D1489E9B6F\ -DD02E2C3D3A4B54D60E3A47334C37913C5695378A669E9B72DEC32AF5434F93F\ -46176EBF044C4784467C700470D0C0B40C8A088C815816:\ -3A33C662B1627ED8BE5F663EF7D31339D77A417D7214D876375854C8B47A733A\ -121AFAF4105939CD85C758DC50A9C01B - -D1E654B77CB155F5C77971A64DF9E5D34C26A3CAD6C7F6B300D39DEB19100946\ -91ADAA095BE4BA5D86690A976428635D5526F3E946F7DC3BD4DBC78999E65344\ -1187A81F9ADCD5A3C5F254BC8256B0158F54673DCC1232F6E918EBFC6C51CE67\ -EAEB042D9F57EEC4BFE910E169AF78B3DE48D137DF4F2840:\ -93790C9ED2B9CEDA2F0D084D36823AA0E65C0451266B212B6E1CBE1FD7170E7F\ -48AD9B40378E8AC6FADB5836A94D9358 - -626F68C18A69A6590159A9C46BE03D5965698F2DAC3DE779B878B3D9C421E0F2\ -1B955A16C715C1EC1E22CE3EB645B8B4F263F60660EA3028981EEBD6C8C3A367\ -285B691C8EE56944A7CD1217997E1D9C21620B536BDBD5DE8925FF71DEC6FBC0\ -6624AB6B21E329813DE90D1E572DFB89A18120C3F606355D25:\ -3D584E6ABFB76DC37E1970D1F6562624CF36C286D215E99C8B52C94A2413754B\ -A6BA57E9F2B400DB32FCBF7897190427 - -651A6FB3C4B80C7C68C6011675E6094EB56ABF5FC3057324EBC6477825061F9F\ -27E7A94633ABD1FA598A746E4A577CAF524C52EC1788471F92B8C37F23795CA1\ -9D559D446CAB16CBCDCE90B79FA1026CEE77BF4AB1B503C5B94C2256AD75B3EA\ -C6FD5DCB96ACA4B03A834BFB4E9AF988CECBF2AE597CB9097940:\ -625F1B266FF16C3A6E578A5553160E4C988A9981A14A4E36658F96052BD6FEDB\ -9DBC82BDBD7AB8F9D15CB8A6D6C60529 - -8AAF072FCE8A2D96BC10B3C91C809EE93072FB205CA7F10ABD82ECD82CF040B1\ -BC49EA13D1857815C0E99781DE3ADBB5443CE1C897E55188CEAF221AA9681638\ -DE05AE1B322938F46BCE51543B57ECDB4C266272259D1798DE13BE90E10EFEC2\ -D07484D9B21A3870E2AA9E06C21AA2D0C9CF420080A80A91DEE16F:\ -3A7C288A8DEF3863BD9794FEB6EB6088E654B583B7B47FCA43B0D11D5B141D4C\ -4D0196181FE7D715A17666A5C9F85746 - -53F918FD00B1701BD504F8CDEA803ACCA21AC18C564AB90C2A17DA592C7D6968\ -8F6580575395551E8CD33E0FEF08CA6ED4588D4D140B3E44C032355DF1C53156\ -4D7F4835753344345A6781E11CD5E095B73DF5F82C8AE3AD00877936896671E9\ -47CC52E2B29DCD463D90A0C9929128DA222B5A211450BBC0E02448E2:\ -4A6C0BA558A8E6472D7ED43B3863119226D5E0B5E9F5FAD0EFCFB9725259782E\ -AA01E664A9C6FC7E127232FC403F5BA8 - -A64599B8A61B5CCEC9E67AED69447459C8DA3D1EC6C7C7C82A7428B9B584FA67\ -E90F68E2C00FBBED4613666E5168DA4A16F395F7A3C3832B3B134BFC9CBAA95D\ -2A0FE252F44AC6681EB6D40AB91C1D0282FED6701C57463D3C5F2BB8C6A7301F\ -B4576AA3B5F15510DB8956FF77478C26A7C09BEA7B398CFC83503F538E:\ -3988419A32965476568BC28195C1308F7863CB90FBA3F4E25DD6B60A1828185F\ -EE9493053C727268AA17F774409DEFF1 - -0E3AB0E054739B00CDB6A87BD12CAE024B54CB5E550E6C425360C2E87E59401F\ -5EC24EF0314855F0F56C47695D56A7FB1417693AF2A1ED5291F2FEE95F75EED5\ -4A1B1C2E81226FBFF6F63ADE584911C71967A8EB70933BC3F5D15BC91B5C2644\ -D9516D3C3A8C154EE48E118BD1442C043C7A0DBA5AC5B1D5360AAE5B9065:\ -B7A68974A7B5A9444E9F1977EDA765DFC7CD6DC4D34B74107C0AA718713ED950\ -1CE0B6EF11BE8A40E6AC370B791AE955 - -A62FC595B4096E6336E53FCDFC8D1CC175D71DAC9D750A6133D23199EAAC2882\ -07944CEA6B16D27631915B4619F743DA2E30A0C00BBDB1BBB35AB852EF3B9AEC\ -6B0A8DCC6E9E1ABAA3AD62AC0A6C5DE765DE2C3711B769E3FDE44A74016FFF82\ -AC46FA8F1797D3B2A726B696E3DEA5530439ACEE3A45C2A51BC32DD055650B:\ -ACC04F6CD4D93DA8EB2EC1F225F538217401751585B47CCF268E743B138E3B9D\ -F2F03D208A003A69579C4CBBEA7B5ADB - -2B6DB7CED8665EBE9DEB080295218426BDAA7C6DA9ADD2088932CDFFBAA1C141\ -29BCCDD70F369EFB149285858D2B1D155D14DE2FDB680A8B027284055182A0CA\ -E275234CC9C92863C1B4AB66F304CF0621CD54565F5BFF461D3B461BD40DF281\ -98E3732501B4860EADD503D26D6E69338F4E0456E9E9BAF3D827AE685FB1D817:\ -9031196E98F4EBA461944E5CBDFF97FA210919DFDE60E4BDB8C62DFECADEEEDA\ -A284F78276C1CA7D31ED87EACD798E90 - -10DB509B2CDCABA6C062AE33BE48116A29EB18E390E1BBADA5CA0A2718AFBCD2\ -3431440106594893043CC7F2625281BF7DE2655880966A23705F0C5155C2F5CC\ -A9F2C2142E96D0A2E763B70686CD421B5DB812DACED0C6D65035FDE558E94F26\ -B3E6DDE5BD13980CC80292B723013BD033284584BFF27657871B0CF07A849F4A\ -E2:\ -404B437E1FBD49BC970B010DC86FCA3FE2ABDBD5F651921781BDC92BD7B2D02D\ -C2D20FB5F913AA4CB3BFF6283DD1F1DE - -9334DE60C997BDA6086101A6314F64E4458F5FF9450C509DF006E8C547983C65\ -1CA97879175AABA0C539E82D05C1E02C480975CBB30118121061B1EBAC4F8D9A\ -3781E2DB6B18042E01ECF9017A64A0E57447EC7FCBE6A7F82585F7403EE2223D\ -52D37B4BF426428613D6B4257980972A0ACAB508A7620C1CB28EB4E9D30FC413\ -61EC:\ -375089B896A0A11A62A6B5144334E963DE8D5D2557E5B93E9A9A8ADBDF639FC4\ -0DD2966D09857E475D58A7F72CA257E9 - -E88AB086891693AA535CEB20E64C7AB97C7DD3548F3786339897A5F0C3903154\ -9CA870166E477743CCFBE016B4428D89738E426F5FFE81626137F17AECFF61B7\ -2DBEE2DC20961880CFE281DFAB5EE38B1921881450E16032DE5E4D55AD8D4FCA\ -609721B0692BAC79BE5A06E177FE8C80C0C83519FB3347DE9F43D5561CB8107B\ -9B5EDC:\ -55E79BAD42518ED80454272B5B9E6A61E4EE11C77297DF64C29120CB95BDEE52\ -18C081CD272BA6AF14A0BFA03DBB9F15 - -FD19E01A83EB6EC810B94582CB8FBFA2FCB992B53684FB748D2264F020D3B960\ -CB1D6B8C348C2B54A9FCEA72330C2AAA9A24ECDB00C436ABC702361A82BB8828\ -B85369B8C72ECE0082FE06557163899C2A0EFA466C33C04343A839417057399A\ -63A3929BE1EE4805D6CE3E5D0D0967FE9004696A5663F4CAC9179006A2CEB755\ -42D75D68:\ -E306B55F3A8A22499E54F8C784C24AE0769458C4F42EF9A8F5FC209A7058DA28\ -8AE4DDA3639B15AA718F6784B2F179A6 - -59AE20B6F7E0B3C7A989AFB28324A40FCA25D8651CF1F46AE383EF6D8441587A\ -A1C04C3E3BF88E8131CE6145CFB8973D961E8432B202FA5AF3E09D625FAAD825\ -BC19DA9B5C6C20D02ABDA2FCC58B5BD3FE507BF201263F30543819510C12BC23\ -E2DDB4F711D087A86EDB1B355313363A2DE996B891025E147036087401CCF3CA\ -7815BF3C49:\ -AAAC679BB72A7CBE019909BE598B1E82227A491A3CD4F1FBDAE51245C844769C\ -C15F89DC2D353E8B9E0766064BD5DE20 - -77EE804B9F3295AB2362798B72B0A1B2D3291DCEB8139896355830F34B3B3285\ -61531F8079B79A6E9980705150866402FDC176C05897E359A6CB1A7AB067383E\ -B497182A7E5AEF7038E4C96D133B2782917417E391535B5E1B51F47D8ED7E4D4\ -025FE98DC87B9C1622614BFF3D1029E68E372DE719803857CA52067CDDAAD958\ -951CB2068CC6:\ -C47DD79BC487DF4A1C459BC945543B7D17DB14DDC53F84D4EBE7A7A835422F65\ -B7B500212E8F830565FA7AC78F2696AC - -B771D5CEF5D1A41A93D15643D7181D2A2EF0A8E84D91812F20ED21F147BEF732\ -BF3A60EF4067C3734B85BC8CD471780F10DC9E8291B58339A677B960218F71E7\ -93F2797AEA349406512829065D37BB55EA796FA4F56FD8896B49B2CD19B43215\ -AD967C712B24E5032D065232E02C127409D2ED4146B9D75D763D52DB98D949D3\ -B0FED6A8052FBB:\ -419D6DB2DB67466999F9CE9736B5CA4E6C4351E02D7C3343233894FC65D438DF\ -1B212A0BF6CA935BB0660D24F89A6188 - -B32D95B0B9AAD2A8816DE6D06D1F86008505BD8C14124F6E9A163B5A2ADE55F8\ -35D0EC3880EF50700D3B25E42CC0AF050CCD1BE5E555B23087E04D7BF9813622\ -780C7313A1954F8740B6EE2D3F71F768DD417F520482BD3A08D4F222B4EE9DBD\ -015447B33507DD50F3AB4247C5DE9A8ABD62A8DECEA01E3B87C8B927F5B08BEB\ -37674C6F8E380C04:\ -A3ED4A09341F3D635442AC84B4E01A66E21D2253086F57150FEBB8805ADDE39B\ -CE691E309CB8DF2F8D5148CBFC28AC1A - -04410E31082A47584B406F051398A6ABE74E4DA59BB6F85E6B49E8A1F7F2CA00\ -DFBA5462C2CD2BFDE8B64FB21D70C083F11318B56A52D03B81CAC5EEC29EB31B\ -D0078B6156786DA3D6D8C33098C5C47BB67AC64DB14165AF65B44544D806DDE5\ -F487D5373C7F9792C299E9686B7E5821E7C8E2458315B996B5677D926DAC57B3\ -F22DA873C601016A0D:\ -F741849B3C9A09212FE6D9090A63467058E1B2AAE77D8366195D780FC7BA359E\ -7732FAB032551494D889463A0FDDF5A8 - -8B81E9BADDE026F14D95C019977024C9E13DB7A5CD21F9E9FC491D716164BBAC\ -DC7060D882615D411438AEA056C340CDF977788F6E17D118DE55026855F93270\ -472D1FD18B9E7E812BAE107E0DFDE7063301B71F6CFE4E225CAB3B232905A56E\ -994F08EE2891BA922D49C3DAFEB75F7C69750CB67D822C96176C46BD8A29F170\ -1373FB09A1A6E3C7158F:\ -ADA5085E13200EB6B07BB5565A718888F3922DC71EE085560EE26263D21ECDAA\ -032E30A1B74B34908E818C6C9D8EFFB4 - -FA6EED24DA6666A22208146B19A532C2EC9BA94F09F1DEF1E7FC13C399A48E41\ -ACC2A589D099276296348F396253B57CB0E40291BD282773656B6E0D8BEA1CDA\ -084A3738816A840485FCF3FB307F777FA5FEAC48695C2AF4769720258C77943F\ -B4556C362D9CBA8BF103AEB9034BAA8EA8BFB9C4F8E6742CE0D52C49EA8E974F\ -339612E830E9E7A9C29065:\ -69C5C00A53B66F7386552E4506E980C99EB4654AE21C3A92DB94E13D5EB5C5B8\ -48DC29DC5F19874F670A211EC5B07CAF - -9BB4AF1B4F09C071CE3CAFA92E4EB73CE8A6F5D82A85733440368DEE4EB1CBC7\ -B55AC150773B6FE47DBE036C45582ED67E23F4C74585DAB509DF1B8361056454\ -5642B2B1EC463E18048FC23477C6B2AA035594ECD33791AF6AF4CBC2A1166ABA\ -8D628C57E707F0B0E8707CAF91CD44BDB915E0296E0190D56D33D8DDE10B5B60\ -377838973C1D943C22ED335E:\ -9F32B2C516A497DC2A12CE93545D8C86601EB7FE1231264F3D5B28FCC4C9E6D7\ -6A5AB5ED76BBCD28CDFF9DFA18864B5B - -2167F02118CC62043E9091A647CADBED95611A521FE0D64E8518F16C808AB297\ -725598AE296880A773607A798F7C3CFCE80D251EBEC6885015F9ABF7EAABAE46\ -798F82CB5926DE5C23F44A3F9F9534B3C6F405B5364C2F8A8BDC5CA49C749BED\ -8CE4BA48897062AE8424CA6DDE5F55C0E42A95D1E292CA54FB46A84FBC9CD87F\ -2D0C9E7448DE3043AE22FDD229:\ -54645F0753C08007A1AFDDD5E59A59FDAB5B45E663C155BBEB2D7EAA97008867\ -52E155A2FCB734B7B92EC3D9CE8C7B4A - -94B7FA0BC1C44E949B1D7617D31B4720CBE7CA57C6FA4F4094D4761567E389EC\ -C64F6968E4064DF70DF836A47D0C713336B5028B35930D29EB7A7F9A5AF9AD5C\ -F441745BAEC9BB014CEEFF5A41BA5C1CE085FEB980BAB9CF79F2158E03EF7E63\ -E29C38D7816A84D4F71E0F548B7FC316085AE38A060FF9B8DEC36F91AD9EBC0A\ -5B6C338CBB8F6659D342A24368CF:\ -C0469566E1C774CCB2C1C3FBD299C7D136F37D351D5EFE7428D4F213406B5C28\ -02D5B897A4A5FA6AFC49466893069F6D - -EA40E83CB18B3A242C1ECC6CCD0B7853A439DAB2C569CFC6DC38A19F5C90ACBF\ -76AEF9EA3742FF3B54EF7D36EB7CE4FF1C9AB3BC119CFF6BE93C03E208783335\ -C0AB8137BE5B10CDC66FF3F89A1BDDC6A1EED74F504CBE7290690BB295A872B9\ -E3FE2CEE9E6C67C41DB8EFD7D863CF10F840FE618E7936DA3DCA5CA6DF933F24\ -F6954BA0801A1294CD8D7E66DFAFEC:\ -F7DCB1025BDE3AF26DC11AFA59C3F2D56FC8FF46D7F5C61447592AA9F9A47C5E\ -0FA5904CBA15A83DC9A7F407EEB5DFAC - -157D5B7E4507F66D9A267476D33831E7BB768D4D04CC3438DA12F9010263EA5F\ -CAFBDE2579DB2F6B58F911D593D5F79FB05FE3596E3FA80FF2F761D1B0E57080\ -055C118C53E53CDB63055261D7C9B2B39BD90ACC32520CBBDBDA2C4FD8856DBC\ -EE173132A2679198DAF83007A9B5C51511AE49766C792A29520388444EBEFE28\ -256FB33D4260439CBA73A9479EE00C63:\ -07FE20E4EA9960F0D43BF93B76AE784E127D34E4E67F4DC677A5F11186A31329\ -10F988BF53810374702C631C8B511902 - -836B34B515476F613FE447A4E0C3F3B8F20910AC89A3977055C960D2D5D2B72B\ -D8ACC715A9035321B86703A411DDE0466D58A59769672AA60AD587B8481DE4BB\ -A552A1645779789501EC53D540B904821F32B0BD1855B04E4848F9F8CFE9EBD8\ -911BE95781A759D7AD9724A7102DBE576776B7C632BC39B9B5E19057E226552A\ -5994C1DBB3B5C7871A11F5537011044C53:\ -B679E7B3974A42A7E34D3E5E270A73595DE2EA1178AB9F539EC51624C89812E5\ -4B4BF7AA05B0BD6B2F52A100A10B245F - -CC7784A4912A7AB5AD3620AAB29BA87077CD3CB83636ADC9F3DC94F51EDF521B\ -2161EF108F21A0A298557981C0E53CE6CED45BDF782C1EF200D29BAB81DD6460\ -586964EDAB7CEBDBBEC75FD7925060F7DA2B853B2B089588FA0F8C16EC6498B1\ -4C55DCEE335CB3A91D698E4D393AB8E8EAC0825F8ADEBEEE196DF41205C01167\ -4E53426CAA453F8DE1CBB57932B0B741D4C6:\ -237CA952F8AE90BAF62F8CD927DBFD2DC2A82787F25916E0A7D1EFDE1491D6FC\ -B627D9E4D5D7DC4DE3AD36C04407A129 - -7639B461FFF270B2455AC1D1AFCE782944AEA5E9087EB4A39EB96BB5C3BAAF0E\ -868C8526D3404F9405E79E77BFAC5FFB89BF1957B523E17D341D7323C302EA70\ -83872DD5E8705694ACDDA36D5A1B895AAA16ECA6104C82688532C8BFE1790B5D\ -C9F4EC5FE95BAED37E1D287BE710431F1E5E8EE105BC42ED37D74B1E55984BF1\ -C09FE6A1FA13EF3B96FAEAED6A2A1950A12153:\ -9A900E561004D66F944C17AC3C1D238A14F678BBE5DF2EC63891F0ECEAA49268\ -A852CE388334D9CC5179D97DF9DCCC55 - -EB6513FC61B30CFBA58D4D7E80F94D14589090CF1D80B1DF2E68088DC6104959\ -BA0D583D585E9578AB0AEC0CF36C48435EB52ED9AB4BBCE7A5ABE679C97AE2DB\ -E35E8CC1D45B06DDA3CF418665C57CBEE4BBB47FA4CAF78F4EE656FEC237FE4E\ -EBBAFA206E1EF2BD0EE4AE71BD0E9B2F54F91DAADF1FEBFD7032381D636B733D\ -CB3BF76FB14E23AFF1F68ED3DBCF75C9B99C6F26:\ -EBB3BCA2B586A767BC121E7AC63DE3ED29B9EFBFDC82A22D133BCC5DEEE7EF34\ -BB81088620F09514D65E29D2FF82B3F4 - -1594D74BF5DDE444265D4C04DAD9721FF3E34CBF622DAF341FE16B96431F6C4D\ -F1F760D34F296EB97D98D560AD5286FEC4DCE1724F20B54FD7DF51D4BF137ADD\ -656C80546FB1BF516D62EE82BAA992910EF4CC18B70F3F8698276FCFB44E0EC5\ -46C2C39CFD8EE91034FF9303058B4252462F86C823EB15BF481E6B79CC3A0221\ -8595B3658E8B37382BD5048EAED5FD02C37944E73B:\ -89D430452B2467223CF1254F8D1F7B4012711BAD255CF60B4817502D83011D2F\ -64E2D59C8DFCED1071B82C684F28B69E - -4CFA1278903026F66FEDD41374558BE1B585D03C5C55DAC94361DF286D4BD39C\ -7CB8037ED3B267B07C346626449D0CC5B0DD2CF221F7E4C3449A4BE99985D2D5\ -E67BFF2923357DDEAB5ABCB4619F3A3A57B2CF928A022EB27676C6CF80568900\ -4FCA4D41EA6C2D0A4789C7605F7BB838DD883B3AD3E6027E775BCF2628814280\ -99C7FFF95B14C095EA130E0B9938A5E22FC52650F591:\ -FFF51AE665CE613D7113AD4562AC0F3783CF0F0F5F53174CD15F7FA2B330C622\ -519271831FEBBC21357922CA38C2ED44 - -D3E65CB92CFA79662F6AF493D696A07CCF32AAADCCEFF06E73E8D9F6F909209E\ -66715D6E978788C49EFB9087B170ECF3AA86D2D4D1A065AE0EFC8924F365D676\ -B3CB9E2BEC918FD96D0B43DEE83727C9A93BF56CA2B2E59ADBA85696546A8150\ -67FC7A78039629D4948D157E7B0D826D1BF8E81237BAB7321312FDAA4D521744\ -F988DB6FDF04549D0FDCA393D639C729AF716E9C8BBA48:\ -4DDB8D8182B7712B1F5956F25FE22673729CA3EB7EFE77C173168B73FF7A0867\ -80366BBE4B6218E9C09B2D0956D0CD79 - -842CC583504539622D7F71E7E31863A2B885C56A0BA62DB4C2A3F2FD12E79660\ -DC7205CA29A0DC0A87DB4DC62EE47A41DB36B9DDB3293B9AC4BAAE7DF5C6E720\ -1E17F717AB56E12CAD476BE49608AD2D50309E7D48D2D8DE4FA58AC3CFEAFEEE\ -48C0A9EEC88498E3EFC51F54D300D828DDDCCB9D0B06DD021A29CF5CB5B25069\ -15BEB8A11998B8B886E0F9B7A80E97D91A7D01270F9A7717:\ -0F7039A7F59D0FC589C303F54E5015626A0832A6CE41C49871761479282F87C0\ -32035367CB6D5205B0984EFE9705EA04 - -6C4B0A0719573E57248661E98FEBE326571F9A1CA813D3638531AE28B4860F23\ -C3A3A8AC1C250034A660E2D71E16D3ACC4BF9CE215C6F15B1C0FC7E77D3D2715\ -7E66DA9CEEC9258F8F2BF9E02B4AC93793DD6E29E307EDE3695A0DF63CBDC0FC\ -66FB770813EB149CA2A916911BEE4902C47C7802E69E405FE3C04CEB5522792A\ -5503FA829F707272226621F7C488A7698C0D69AA561BE9F378:\ -E6E8C29BDF2354D7087F0DFFAD3B100A13997A299F5A3C5F4A1B13996F575DCF\ -0552D8FE3DB6FF835CBFA6EA115ACAA1 - -51B7DBB7CE2FFEB427A91CCFE5218FD40F9E0B7E24756D4C47CD55606008BDC2\ -7D16400933906FD9F30EFFDD4880022D081155342AF3FB6CD53672AB7FB5B3A3\ -BCBE47BE1FD3A2278CAE8A5FD61C1433F7D350675DD21803746CADCA574130F0\ -1200024C6340AB0CC2CF74F2234669F34E9009EF2EB94823D62B31407F4BA46F\ -1A1EEC41641E84D77727B59E746B8A671BEF936F05BE820759FA:\ -C9C4913F7804EC328F3713B62C69A5716E401BBEA02B9D9FD8E99814CCF00F54\ -175F40DEE92515A9FCCCC59E2D4B7F3B - -83599D93F5561E821BD01A472386BC2FF4EFBD4AED60D5821E84AAE74D807102\ -9810F5E286F8F17651CD27DA07B1EB4382F754CD1C95268783AD09220F550284\ -0370D494BEB17124220F6AFCE91EC8A0F55231F9652433E5CE3489B727716CF4\ -AEBA7DCDA20CD29AA9A859201253F948DD94395ABA9E3852BD1D60DDA7AE5DC0\ -45B283DA006E1CBAD83CC13292A315DB5553305C628DD091146597:\ -2FF5E9203513AC6681360B1719B847A7A9E48590CFA0C76AD2F1D9E05417BA2E\ -DD8459429AA4C6857F1B55E7F8D402EB - -2BE9BF526C9D5A75D565DD11EF63B979D068659C7F026C08BEA4AF161D85A462\ -D80E45040E91F4165C074C43AC661380311A8CBED59CC8E4C4518E80CD2C78AB\ -1CABF66BFF83EAB3A80148550307310950D034A6286C93A1ECE8929E6385C5E3\ -BB6EA8A7C0FB6D6332E320E71CC4EB462A2A62E2BFE08F0CCAD93E61BEDB5DD0\ -B786A728AB666F07E0576D189C92BF9FB20DCA49AC2D3956D47385E2:\ -6E5E1E478E688F2D7A9A2723C5B395D9924D42ADAC58458397BBACAF361BD1F8\ -B812910413EFA8F1953D6C9363C9E779 - -CA76D3A12595A817682617006848675547D3E8F50C2210F9AF906C0E7CE50B44\ -60186FE70457A9E879E79FD4D1A688C70A347361C847BA0DD6AA52936EAF8E58\ -A1BE2F5C1C704E20146D366AEB3853BED9DE9BEFE9569AC8AAEA37A9FB7139A1\ -A1A7D5C748605A8DEFB297869EBEDD71D615A5DA23496D11E11ABBB126B206FA\ -0A7797EE7DE117986012D0362DCEF775C2FE145ADA6BDA1CCB326BF644:\ -713B07CD3D7BCC143FC0F5BD0C9CF749A34BCCBD2F073D38BE7AA65513CE6BA6\ -17854ECFCACDBE2C343163685B2813D3 - -F76B85DC67421025D64E93096D1D712B7BAF7FB001716F02D33B2160C2C882C3\ -10EF13A576B1C2D30EF8F78EF8D2F465007109AAD93F74CB9E7D7BEF7C9590E8\ -AF3B267C89C15DB238138C45833C98CC4A471A7802723EF4C744A853CF80A0C2\ -568DD4ED58A2C9644806F42104CEE53628E5BDF7B63B0B338E931E31B87C24B1\ -46C6D040605567CEEF5960DF9E022CB469D4C787F4CBA3C544A1AC91F95F:\ -3891B10051961C47CAEDD4355D1B3804FCB527F48B113BA7AE5A6738F8A5DEF0\ -0BD3739619D938A2DEA98E890C244F30 - -25B8C9C032EA6BCD733FFC8718FBB2A503A4EA8F71DEA1176189F694304F0FF6\ -8E862A8197B839957549EF243A5279FC2646BD4C009B6D1EDEBF24738197ABB4\ -C992F6B1DC9BA891F570879ACCD5A6B18691A93C7D0A8D38F95B639C1DAEB48C\ -4C2F15CCF5B9D508F8333C32DE78781B41850F261B855C4BEBCC125A380C54D5\ -01C5D3BD07E6B52102116088E53D76583B0161E2A58D0778F091206AABD5A1:\ -46AD8864D8AE2DBF6049936A56A766C5FF7E08354E6059EC758BF0BC289957E2\ -6A21AD9DD98EBF35C7F41BBD3C9A82C3 - -21CFDC2A7CCB7F331B3D2EEFFF37E48AD9FA9C788C3F3C200E0173D99963E1CB\ -CA93623B264E920394AE48BB4C3A5BB96FFBC8F0E53F30E22956ADABC2765F57\ -FB761E147ECBF8567533DB6E50C8A1F894310A94EDF806DD8CA6A0E141C0FA7C\ -9FAE6C6AE65F18C93A8529E6E5B553BF55F25BE2E80A9882BD37F145FECBEB3D\ -447A3C4E46C21524CC55CDD62F521AB92A8BA72B897996C49BB273198B7B1C9E:\ -E86B2AFD940F8D97B6B5014C350840336B97BDDF10242209BA6BD1CD4033D23A\ -9704F045AC313C558C725FEB30870370 - -4E452BA42127DCC956EF4F8F35DD68CB225FB73B5BC7E1EC5A898BBA2931563E\ -74FAFF3B67314F241EC49F4A7061E3BD0213AE826BAB380F1F14FAAB8B0EFDDD\ -5FD1BB49373853A08F30553D5A55CCBBB8153DE4704F29CA2BDEEF0419468E05\ -DD51557CCC80C0A96190BBCC4D77ECFF21C66BDF486459D427F986410F883A80\ -A5BCC32C20F0478BB9A97A126FC5F95451E40F292A4614930D054C851ACD019C\ -CF:\ -73F02E63CB23E05A6267D1114CBAFED30E4FFBE315B70CEA1824167C82FC2F04\ -260669439E9DDB1FF7A4737B8279C204 - -FA85671DF7DADF99A6FFEE97A3AB9991671F5629195049880497487867A6C446\ -B60087FAC9A0F2FCC8E3B24E97E42345B93B5F7D3691829D3F8CCD4BB36411B8\ -5FC2328EB0C51CB3151F70860AD3246CE0623A8DC8B3C49F958F8690F8E3860E\ -71EB2B1479A5CEA0B3F8BEFD87ACAF5362435EAECCB52F38617BC6C5C2C6E269\ -EAD1FBD69E941D4AD2012DA2C5B21BCFBF98E4A77AB2AF1F3FDA3233F046D38F\ -1DC8:\ -449557E5DDA3121C1CD0DC77AB17F3CAC077AE32D287128BFFF24674266235AC\ -56A1D876BC6E4E42B32EEAD51D6ADFC8 - -E90847AE6797FBC0B6B36D6E588C0A743D725788CA50B6D792352EA8294F5BA6\ -54A15366B8E1B288D84F5178240827975A763BC45C7B0430E8A559DF4488505E\ -009C63DA994F1403F407958203CEBB6E37D89C94A5EACF6039A327F6C4DBBC7A\ -2A307D976AA39E41AF6537243FC218DFA6AB4DD817B6A397DF5CA69107A91987\ -99ED248641B63B42CB4C29BFDD7975AC96EDFC274AC562D0474C60347A078CE4\ -C25E88:\ -03793FDEC73FD0F461E74ACB6AE9858124FC92F17689E8987C4C7361091D6797\ -5F98EC2C0BF902218C144E4A83966E68 - -F6D5C2B6C93954FC627602C00C4CA9A7D3ED12B27173F0B2C9B0E4A5939398A6\ -65E67E69D0B12FB7E4CEB253E8083D1CEB724AC07F009F094E42F2D6F2129489\ -E846EAFF0700A8D4453EF453A3EDDC18F408C77A83275617FABC4EA3A2833AA7\ -3406C0E966276079D38E8E38539A70E194CC5513AAA457C699383FD1900B1E72\ -BDFB835D1FD321B37BA80549B078A49EA08152869A918CA57F5B54ED71E4FD3A\ -C5C06729:\ -710D5E801FE13571B1FCBA8451B129737BDC775B677D8A0AF7DC3E293FD6D17E\ -87F77D9570DB5E7967D4061C71D8D576 - -CF8562B1BED89892D67DDAAF3DEEB28246456E972326DBCDB5CF3FB289ACA01E\ -68DA5D59896E3A6165358B071B304D6AB3D018944BE5049D5E0E2BB819ACF67A\ -6006111089E6767132D72DD85BEDDCBB2D64496DB0CC92955AB4C6234F1EEA24\ -F2D51483F2E209E4589BF9519FAC51B4D061E801125E605F8093BB6997BC163D\ -551596FE4AB7CFAE8FB9A90F6980480CE0C229FD1675409BD788354DAF316240\ -CFE0AF93EB:\ -2012C552935A60747AB15AECBEB64E4E32DEC26B0A51913525BCBEFA4E0D64A8\ -6EEE815A77F4BB3CC0C8724041C78DB9 - -2ACE31ABB0A2E3267944D2F75E1559985DB7354C6E605F18DC8470423FCA30B7\ -331D9B33C4A4326783D1CAAE1B4F07060EFF978E4746BF0C7E30CD61040BD5EC\ -2746B29863EB7F103EBDA614C4291A805B6A4C8214230564A0557BC7102E0BD3\ -ED23719252F7435D64D210EE2AAFC585BE903FA41E1968C50FD5D5367926DF7A\ -05E3A42CF07E656FF92DE73B036CF8B19898C0CB34557C0C12C2D8B84E91181A\ -F467BC75A9D1:\ -5F47B2BCC16C913C91703DE29DD5F81E1C292A36186D814FF2D118637178BD6A\ -E099E7416744F402228EBF85C071FFFB - -0D8D09AED19F1013969CE5E7EB92F83A209AE76BE31C754844EA9116CEB39A22\ -EBB6003017BBCF26555FA6624185187DB8F0CB3564B8B1C06BF685D47F3286ED\ -A20B83358F599D2044BBF0583FAB8D78F854FE0A596183230C5EF8E54426750E\ -AF2CC4E29D3BDD037E734D863C2BD9789B4C243096138F7672C232314EFFDFC6\ -513427E2DA76916B5248933BE312EB5DDE4CF70804FB258AC5FB82D58D08177A\ -C6F4756017FFF5:\ -1B63D53002737F57F16FFF205D53E9932488BB5C6F8A48B99931E6C6DDEDB8D7\ -61A6AD6CF9D1D3A1282A20600C8832A1 - -C3236B73DEB7662BF3F3DAA58F137B358BA610560EF7455785A9BEFDB035A066\ -E90704F929BD9689CEF0CE3BDA5ACF4480BCEB8D09D10B098AD8500D9B6071DF\ -C3A14AF6C77511D81E3AA8844986C3BEA6F469F9E02194C92868CD5F51646256\ -798FF0424954C1434BDFED9FACB390B07D342E992936E0F88BFD0E884A0DDB67\ -9D0547CCDEC6384285A45429D115AC7D235A717242021D1DC35641F5F0A48E84\ -45DBA58E6CB2C8EA:\ -8F4517FAD18DB33ADB334BBC933DFBE99EC9ECAB7B6D9F80BB32CD37B7597892\ -A475EABB3534596D54F6CBD58ED507AD - -B39FEB8283EADC63E8184B51DF5AE3FD41AAC8A963BB0BE1CD08AA5867D8D910\ -C669221E73243360646F6553D1CA05A84E8DC0DE05B6419EC349CA994480193D\ -01C92525F3FB3DCEFB08AFC6D26947BDBBFD85193F53B50609C6140905C53A66\ -86B58E53A319A57B962331EDE98149AF3DE3118A819DA4D76706A0424B4E1D29\ -10B0ED26AF61D150EBCB46595D4266A0BD7F651BA47D0C7F179CA28545007D92\ -E8419D48FDFBD744CE:\ -B517B814751DE093AC8DCB321E3246298615C2C404A17AA34DE73926FC951B5F\ -BB3FB720304EFC578AE2EF81B001BD0E - -A983D54F503803E8C7999F4EDBBE82E9084F422143A932DDDDC47A17B0B7564A\ -7F37A99D0786E99476428D29E29D3C197A72BFAB1342C12A0FC4787FD7017D7A\ -6174049EA43B5779169EF7472BDBBD941DCB82FC73AAC45A8A94C9F2BD3477F6\ -1FD3B796F02A1B8264A214C6FEA74B7051B226C722099EC7883A462B83B6AFDD\ -4009248B8A237F605FE5A08FE7D8B45321421EBBA67BD70A0B00DDBF94BAAB7F\ -359D5D1EEA105F28DCFB:\ -57913D673AC64F325EBAA5539EC66AB61ADE8C3F0252B9A7CD089FBB1E2E9EC6\ -DEF236CFB755FC6CEDAF1002F6BEE085 - -E4D1C1897A0A866CE564635B74222F9696BF2C7F640DD78D7E2ACA66E1B61C64\ -2BB03EA7536AAE597811E9BF4A7B453EDE31F97B46A5F0EF51A071A2B3918DF1\ -6B152519AE3776F9F1EDAB4C2A377C3292E96408359D3613844D5EB393000283\ -D5AD3401A318B12FD1474B8612F2BB50FB6A8B9E023A54D7DDE28C43D6D8854C\ -8D9D1155935C199811DBFC87E9E0072E90EB88681CC7529714F8FB8A2C9D8856\ -7ADFB974EE205A9BF7B848:\ -EC4CFD169357668A80FAF22036B63D1289DEA65345E247A75413EA328EC13E8B\ -D0020933D2AE1AAD9BF9F856F0FF4BA0 - -B10C59723E3DCADD6D75DF87D0A1580E73133A9B7D00CB95EC19F5547027323B\ -E75158B11F80B6E142C6A78531886D9047B08E551E75E6261E79785366D7024B\ -D7CD9CF322D9BE7D57FB661069F2481C7BB759CD71B4B36CA2BC2DF6D3A328FA\ -EBDB995A9794A8D72155ED551A1F87C80BF6059B43FC764900B18A1C2441F748\ -7743CF84E565F61F8DD2ECE6B6CCC9444049197AAAF53E926FBEE3BFCA8BE588\ -EC77F29D211BE89DE18B15F6:\ -FD602E5885409F02EA942A427852D94A83FCCA96133EB3D6F67F769F06D6CF27\ -09D7D19A5C1210A556B5CC514F1741F1 - -DB11F609BABA7B0CA634926B1DD539C8CBADA24967D7ADD4D9876F77C2D80C0F\ -4DCEFBD7121548373582705CCA2495BD2A43716FE64ED26D059CFB566B3364BD\ -49EE0717BDD9810DD14D8FAD80DBBDC4CAFB37CC60FB0FE2A80FB4541B8CA9D5\ -9DCE457738A9D3D8F641AF8C3FD6DA162DC16FC01AAC527A4A0255B4D231C0BE\ -50F44F0DB0B713AF03D968FE7F0F61ED0824C55C4B5265548FEBD6AAD5C5EEDF\ -63EFE793489C39B8FD29D104CE:\ -0E2C0624D62B87CFF5B3FA6760800FF3FA5E3A79C09CC1C80AAB652F7E3547E3\ -A7FD8EE6DC85EB70EBF6DF47F5791386 - -BEBD4F1A84FC8B15E4452A54BD02D69E304B7F32616AADD90537937106AE4E28\ -DE9D8AAB02D19BC3E2FDE1D651559E296453E4DBA94370A14DBBB2D1D4E20223\ -02EE90E208321EFCD8528AD89E46DC839EA9DF618EA8394A6BFF308E7726BAE0\ -C19BCD4BE52DA6258E2EF4E96AA21244429F49EF5CB486D7FF35CAC1BACB7E95\ -711944BCCB2AB34700D42D1EB38B5D536B947348A458EDE3DC6BD6EC547B1B0C\ -AE5B257BE36A7124E1060C170FFA:\ -A6D4F149A6255987A672A732E53E78AF0DC1933360893DD367CD95C73ADA414C\ -8473A09AF6BC6C773FC360A604AD3B9C - -5ACA56A03A13784BDC3289D9364F79E2A85C12276B49B92DB0ADAA4F206D5028\ -F213F678C3510E111F9DC4C1C1F8B6ACB17A6413AA227607C515C62A733817BA\ -5E762CC6748E7E0D6872C984D723C9BB3B117EB8963185300A80BFA65CDE495D\ -70A46C44858605FCCBED086C2B45CEF963D33294DBE9706B13AF22F1B7C4CD5A\ -001CFEC251FBA18E722C6E1C4B1166918B4F6F48A98B64B3C07FC86A6B17A6D0\ -480AB79D4E6415B520F1C484D675B1:\ -7AFC3D203CD8238B168E486CD846415D5D7AD7C69AFD7B2766812675DF4719B1\ -38CE485B0A07F01C6BF84E405EA0ABC1 - -A5AAD0E4646A32C85CFCAC73F02FC5300F1982FABB2F2179E28303E447854094\ -CDFC854310E5C0F60993CEFF54D84D6B46323D930ADB07C17599B35B505F09E7\ -84BCA5985E0172257797FB53649E2E9723EFD16865C31B5C3D5113B58BB0BFC8\ -920FABDDA086D7537E66D709D050BD14D0C960873F156FAD5B3D3840CDFCDC9B\ -E6AF519DB262A27F40896AB25CC39F96984D650611C0D5A3080D5B3A1BF186AB\ -D42956588B3B58CD948970D298776060:\ -3E02383EFB0F1EC429C5C563ACF40A534DE66D042F5A17F11964445A9288DDB3\ -A357531E6A6991C19D874DE7CF79563B - -06CBBE67E94A978203EAD6C057A1A5B098478B4B4CBEF5A97E93C8E42F557271\ -3575FC2A884531D7622F8F879387A859A80F10EF02708CD8F7413AB385AFC357\ -678B9578C0EBF641EF076A1A30F1F75379E9DCB2A885BDD295905EE80C0168A6\ -2A9597D10CF12DD2D8CEE46645C7E5A141F6E0E23AA482ABE5661C16E69EF1E2\ -8371E2E236C359BA4E92C25626A7B7FF13F6EA4AE906E1CFE163E91719B1F750\ -A96CBDE5FBC953D9E576CD216AFC90323A:\ -E2E74BFB3C690F88F946BCB0E0E97BE8EBC485E854027E60D31D7B3D03988A8D\ -AACDB65C2B2A3CC79DD9598742E36E87 - -F1C528CF7739874707D4D8AD5B98F7C77169DE0B57188DF233B2DC8A5B31EDA5\ -DB4291DD9F68E6BAD37B8D7F6C9C0044B3BF74BBC3D7D1798E138709B0D75E7C\ -593D3CCCDC1B20C7174B4E692ADD820ACE262D45CCFAE2077E87879634716806\ -0A162ECCA8C38C1A88350BD63BB539134F700FD4ADDD5959E255337DAA06BC86\ -358FABCBEFDFB5BC889783D843C08AADC6C4F6C36F65F156E851C9A0F917E4A3\ -67B5AD93D874812A1DE6A7B93CD53AD97232:\ -C086AE3DDF080E95A61C9312176959B20A64D830B17BB509D6ABF7B7C97B5602\ -404991D703DB6D574CBFA94DD1FF122E - -9D9F3A7ECD51B41F6572FD0D0881E30390DFB780991DAE7DB3B47619134718E6\ -F987810E542619DFAA7B505C76B7350C6432D8BF1CFEBDF1069B90A35F0D04CB\ -DF130B0DFC7875F4A4E62CDB8E525AADD7CE842520A482AC18F09442D78305FE\ -85A74E39E760A4837482ED2F437DD13B2EC1042AFCF9DECDC3E877E50FF4106A\ -D10A525230D11920324A81094DA31DEAB6476AA42F20C84843CFC1C58545EE80\ -352BDD3740DD6A16792AE2D86F11641BB717C2:\ -7BBDD39B5016008599A57D1128284F26BFD3575018B2A817493B8CDC01F51EF4\ -32984ADA489C9F48A35DB9A1291EEAC7 - -5179888724819FBAD3AFA927D3577796660E6A81C52D98E9303261D5A4A83232\ -F6F758934D50AA83FF9E20A5926DFEBAAC49529D006EB923C5AE5048ED544EC4\ -71ED7191EDF46363383824F915769B3E688094C682B02151E5EE01E510B431C8\ -865AFF8B6B6F2F59CB6D129DA79E97C6D2B8FA6C6DA3F603199D2D1BCAB54768\ -2A81CD6CF65F6551121391D78BCC23B5BD0E922EC6D8BF97C952E84DD28AEF90\ -9ABA31EDB903B28FBFC33B7703CD996215A11238:\ -77CB1EFFAA608B26982023B9A791F586D2131EF3966AB952E54847B6F9367FA8\ -F799D1D5EC4DA33E3402B8D9C7B5E7FF - -576EF3520D30B7A4899B8C0D5E359E45C5189ADD100E43BE429A02FB3DE5FF4F\ -8FD0E79D9663ACCA72CD29C94582B19292A557C5B1315297D168FBB54E9E2ECD\ -13809C2B5FCE998EDC6570545E1499DBE7FB74D47CD7F35823B212B05BF3F5A7\ -9CAA34224FDD670D335FCB106F5D92C3946F44D3AFCBAE2E41AC554D8E6759F3\ -32B76BE89A0324AA12C5482D1EA3EE89DED4936F3E3C080436F539FA137E74C6\ -D3389BDF5A45074C47BC7B20B0948407A66D855E2F:\ -E66A85F53AFE2FB7EA5F2B2A222E3E463BA83F9545260F0518478570B63C7710\ -333F8EDB0792A411E7F3BA24440D8D41 - -0DF2152FA4F4357C8741529DD77E783925D3D76E95BAFA2B542A2C33F3D1D117\ -D159CF473F82310356FEE4C90A9E505E70F8F24859656368BA09381FA245EB6C\ -3D763F3093F0C89B972E66B53D59406D9F01AEA07F8B3B615CAC4EE4D05F542E\ -7D0DAB45D67CCCCD3A606CCBEB31EA1FA7005BA07176E60DAB7D78F6810EF086\ -F42F08E595F0EC217372B98970CC6321576D92CE38F7C397A403BADA1548D205\ -C343AC09DECA86325373C3B76D9F32028FEA8EB32515:\ -A412954A490D969DF9E152A37064D22E2ABAF362993C068E37706739B6FC29A3\ -FED38AD0110AEF0406D0562B5458CA26 - -3E15350D87D6EBB5C8AD99D42515CFE17980933C7A8F6B8BBBF0A63728CEFAAD\ -2052623C0BD5931839112A48633FB3C2004E0749C87A41B26A8B48945539D1FF\ -41A4B269462FD199BFECD45374756F55A9116E92093AC99451AEFB2AF9FD32D6\ -D7F5FBC7F7A540D5097C096EBC3B3A721541DE073A1CC02F7FB0FB1B9327FB0B\ -1218CA49C9487AB5396622A13AE546C97ABDEF6B56380DDA7012A8384091B665\ -6D0AB272D363CEA78163FF765CDD13AB1738B940D16CAE:\ -F766B4E8B3327BAB4B887EBBAD473F3EDBA9FEE3375AA042D70DB684013D7A6F\ -51A0DC146374DD972D7FD664F0E4D8A3 - -C38D6B0B757CB552BE40940ECE0009EF3B0B59307C1451686F1A22702922800D\ -58BCE7A636C1727EE547C01B214779E898FC0E560F8AE7F61BEF4D75EAA696B9\ -21FD6B735D171535E9EDD267C192B99880C87997711002009095D8A7A437E258\ -104A41A505E5EF71E5613DDD2008195F0C574E6BA3FE40099CFA116E5F1A2FA8\ -A6DA04BADCB4E2D5D0DE31FDC4800891C45781A0AAC7C907B56D631FCA5CE8B2\ -CDE620D11D1777ED9FA603541DE794DDC5758FCD5FAD78C0:\ -59AFBA40DFE9D873A41CDC96E8E028B7D38C8CF5D2E90B93AD7C623E70410E84\ -AD0D9C548E82DE66C97D1456156ABA86 - -8D2DE3F0B37A6385C90739805B170057F091CD0C7A0BC951540F26A5A75B3E69\ -4631BB64C7635EED316F51318E9D8DE13C70A2ABA04A14836855F35E480528B7\ -76D0A1E8A23B547C8B8D6A0D09B241D3BE9377160CCA4E6793D00A515DC2992C\ -B7FC741DACA171431DA99CCE6F7789F129E2AC5CF65B40D703035CD2185BB936\ -C82002DAF8CBC27A7A9E554B06196630446A6F0A14BA155ED26D95BD627B7205\ -C072D02B60DB0FD7E49EA058C2E0BA202DAFF0DE91E845CF79:\ -69F93C7DEA9EE5AF121C27D3B73D9FB57798E6431BCACDE8E6D279315FBAC007\ -08C46BF8D9252608EE27F9C43A8C978B - -C464BBDAD275C50DCD983B65AD1019B9FF85A1E71C807F3204BB2C921DC31FBC\ -D8C5FC45868AE9EF85B6C9B83BBA2A5A822201ED68586EC5EC27FB2857A5D1A2\ -D09D09115F22DCC39FE61F5E1BA0FF6E8B4ACB4C6DA748BE7F3F0839739394FF\ -7FA8E39F7F7E84A33C3866875C01BCB1263C9405D91908E9E0B50E7459FABB63\ -D8C6BBB73D8E3483C099B55BC30FF092FF68B6ADEDFD477D63570C9F5515847F\ -36E24BA0B705557130CEC57EBAD1D0B31A378E91894EE26E3A04:\ -AE8A5BF2BB1C4179172CFB37AEF17E7AB8D304AAF8C3DB77A0DEB65BE04B2262\ -7DBC75B1F4CBF0F6CF0478B9E811E90F - -8B8D68BB8A75732FE272815A68A1C9C5AA31B41DEDC8493E76525D1D013D33CE\ -BD9E21A5BB95DB2616976A8C07FCF411F5F6BC6F7E0B57ACA78CC2790A6F9B89\ -8858AC9C79B165FF24E66677531E39F572BE5D81EB3264524181115F32780257\ -BFB9AEEC6AF12AF28E587CAC068A1A2953B59AD680F4C245B2E3EC36F59940D3\ -7E1D3DB38E13EDB29B5C0F404F6FF87F80FC8BE7A225FF22FBB9C8B6B1D7330C\ -57840D24BC75B06B80D30DAD6806544D510AF6C4785E823AC3E0B8:\ -C1942E8E8072BC4999429683BB236A9D08B2014952F0912334C537F10D52A563\ -93183F803E66B2921F2E538FA5406D7D - -6B018710446F368E7421F1BC0CCF562D9C1843846BC8D98D1C9BF7D9D6FCB48B\ -FC3BF83B36D44C4FA93430AF75CD190BDE36A7F92F867F58A803900DF8018150\ -384D85D82132F123006AC2AEBA58E02A037FE6AFBD65ECA7C44977DD3DC74F48\ -B6E7A1BFD5CC4DCF24E4D52E92BD4455848E4928B0EAC8B7476FE3CC03E862AA\ -4DFF4470DBFED6DE48E410F25096487ECFC32A27277F3F5023B2725ADE461B13\ -55889554A8836C9CF53BD767F5737D55184EEA1AB3F53EDD0976C485:\ -243664EC5E71B6FBAB9C8C23B62F2780844DB1E0640AA61D53CBB83E30F997E4\ -433765087A27B9566D043269D89F52FC - -C9534A24714BD4BE37C88A3DA1082EDA7CABD154C309D7BD670DCCD95AA53559\ -4463058A29F79031D6ECAA9F675D1211E9359BE82669A79C855EA8D89DD38C2C\ -761DDD0EC0CE9E97597432E9A1BEAE062CDD71EDFDFD464119BE9E69D18A7A7F\ -D7CE0E2106F0C8B0ABF4715E2CA48EF9F454DC203C96656653B727083513F8EF\ -B86E49C513BB758B3B052FE21F1C05BB33C37129D6CC81F1AEF6ADC45B0E8827\ -A830FE545CF57D0955802C117D23CCB55EA28F95C0D8C2F9C5A242B33F:\ -8674C13392B0BDCA789DAAFAD155651B8B5F99CAB282B76B36C3D1F1B6ACF3C2\ -042EB12DE924D36382D110CC4B313B24 - -07906C87297B867ABF4576E9F3CC7F82F22B154AFCBF293B9319F1B0584DA6A4\ -0C27B32E0B1B7F412C4F1B82480E70A9235B12EC27090A5A33175A2BB28D8ADC\ -475CEFE33F7803F8CE27967217381F02E67A3B4F84A71F1C5228E0C2AD971373\ -F6F672624FCEA8D1A9F85170FAD30FA0BBD25035C3B41A6175D467998BD1215F\ -6F3866F53847F9CF68EF3E2FBB54BC994DE2302B829C5EEA68EC441FCBAFD7D1\ -6AE4FE9FFF98BF00E5BC2AD54DD91FF9FDA4DD77B6C754A91955D1FBAAD0:\ -5A2CFEA0B13290C9166A6A645DCD4F2A08E5A1352ECAC280A998FA93A53B1B80\ -1C6E4DA746A8DD0E1D3A1D47697DE15D - -588E94B9054ABC2189DF69B8BA34341B77CDD528E7860E5DEFCAA79B0C9A452A\ -D4B82AA306BE84536EB7CEDCBE058D7B84A6AEF826B028B8A0271B69AC3605A9\ -635EA9F5EA0AA700F3EB7835BC54611B922964300C953EFE7491E3677C2CEBE0\ -822E956CD16433B02C68C4A23252C3F9E151A416B4963257B783E038F6B4D5C9\ -F110F871652C7A649A7BCEDCBCCC6F2D0725BB903CC196BA76C76AA9F10A190B\ -1D1168993BAA9FFC96A1655216773458BEC72B0E39C9F2C121378FEAB4E76A:\ -B15CEAF7F5BB6DB3A1F4AD4B7C9DD983276163857206DE4A0DE73AE0EFA34CE8\ -130AE93FD1EB961F7777D280FA0B9AD4 - -08959A7E4BAAE874928813364071194E2939772F20DB7C3157078987C557C2A6\ -D5ABE68D520EEF3DC491692E1E21BCD880ADEBF63BB4213B50897FA005256ED4\ -1B5690F78F52855C8D9168A4B666FCE2DA2B456D7A7E7C17AB5F2FB1EE90B79E\ -698712E963715983FD07641AE4B4E9DC73203FAC1AE11FA1F8C7941FCC82EAB2\ -47ADDB56E2638447E9D609E610B60CE086656AAEBF1DA3C8A231D7D94E2FD0AF\ -E46B391FF14A72EAEB3F44AD4DF85866DEF43D4781A0B3578BC996C87970B132:\ -8AFD293CA0145DBB8FE45D36E37D2655F771D1F442A9073A62AE834B4CCE97D7\ -12D315620075219A718E7F6454D0FF8E - -CB2A234F45E2ECD5863895A451D389A369AAB99CFEF0D5C9FFCA1E6E63F763B5\ -C14FB9B478313C8E8C0EFEB3AC9500CF5FD93791B789E67EAC12FD038E2547CC\ -8E0FC9DB591F33A1E4907C64A922DDA23EC9827310B306098554A4A78F050262\ -DB5B545B159E1FF1DCA6EB734B872343B842C57EAFCFDA8405EEDBB48EF32E99\ -696D135979235C3A05364E371C2D76F1902F1D83146DF9495C0A6C57D7BF9EE7\ -7E80F9787AEE27BE1FE126CDC9EF893A4A7DCBBC367E40FE4E1EE90B42EA25AF\ -01:\ -92313C6E2958893505EFBA0F259243CC7804529D43A27D23B8218D4395D33BC2\ -7F4691FEF88298C94E818A8FFD245453 - -D16BEADF02AB1D4DC6F88B8C4554C51E866DF830B89C06E786A5F8757E890931\ -0AF51C840EFE8D20B35331F4355D80F73295974653DDD620CDDE4730FB6C8D0D\ -2DCB2B45D92D4FBDB567C0A3E86BD1A8A795AF26FBF29FC6C65941CDDB090FF7\ -CD230AC5268AB4606FCCBA9EDED0A2B5D014EE0C34F0B2881AC036E24E151BE8\ -9EEB6CD9A7A790AFCCFF234D7CB11B99EBF58CD0C589F20BDAC4F9F0E28F75E3\ -E04E5B3DEBCE607A496D848D67FA7B49132C71B878FD5557E082A18ECA1FBDA9\ -4D4B:\ -EE3468A9CCCE38DBB19A5D21E280D0AA0C43E53C7D4A7D5765ADE99275C46884\ -112552E658E6D37D5BFE10A3B6C60CF8 - -8F65F6BC59A85705016E2BAE7FE57980DE3127E5AB275F573D334F73F8603106\ -EC3553016608EF2DD6E69B24BE0B7113BF6A760BA6E9CE1C48F9E186012CF96A\ -1D4849D75DF5BB8315387FD78E9E153E76F8BA7EC6C8849810F59FB4BB9B0043\ -18210B37F1299526866F44059E017E22E96CBE418699D014C6EA01C9F0038B10\ -299884DBEC3199BB05ADC94E955A1533219C1115FED0E5F21228B071F40DD57C\ -4240D98D37B73E412FE0FA4703120D7C0C67972ED233E5DEB300A22605472FA3\ -A3BA86:\ -BB2D96E98D8DBDBCBB584CEA235888DBAED952AFC6E5E7D8D7FF60F1FD4AE2DB\ -661E93923DDA830A4D5F90D116C4BE5B - -84891E52E0D451813210C3FD635B39A03A6B7A7317B221A7ABC270DFA946C426\ -69AACBBBDF801E1584F330E28C729847EA14152BD637B3D0F2B38B4BD5BF9C79\ -1C58806281103A3EABBAEDE5E711E539E6A8B2CF297CF351C078B4FA8F7F35CF\ -61BEBF8814BF248A01D41E86C5715EA40C63F7375379A7EB1D78F27622FB468A\ -B784AAABA4E534A6DFD1DF6FA15511341E725ED2E87F98737CCB7B6A6DFAE416\ -477472B046BF1811187D151BFA9F7B2BF9ACDB23A3BE507CDF14CFDF517D2CB5\ -FB9E4AB6:\ -7EAD0CC318B26BF7E3E379CBF6C083765EF42A7E576552FF2ED62C531350604B\ -C6409B315724A995C57CFF6700502A05 - -FDD7A9433A3B4AFABD7A3A5E3457E56DEBF78E84B7A0B0CA0E8C6D53BD0C2DAE\ -31B2700C6128334F43981BE3B213B1D7A118D59C7E6B6493A86F866A1635C128\ -59CFB9AD17460A77B4522A5C1883C3D6ACC86E6162667EC414E9A104AA892053\ -A2B1D72165A855BACD8FAF8034A5DD9B716F47A0818C09BB6BAF22AA503C06B4\ -CA261F557761989D2AFBD88B6A678AD128AF68672107D0F1FC73C5CA74045929\ -7B3292B281E93BCEB761BDE7221C3A55708E5EC84472CDDCAA84ECF23723CC09\ -91355C6280:\ -0E5F7BF77D166621132E5D791BCB2BA50B31555B2F41528749D101D375796439\ -EE367189E9CF511B19B54B1AD694460F - -70A40BFBEF92277A1AAD72F6B79D0177197C4EBD432668CFEC05D099ACCB6510\ -62B5DFF156C0B27336687A94B26679CFDD9DAF7AD204338DD9C4D14114033A5C\ -225BD11F217B5F4732DA167EE3F939262D4043FC9CBA92303B7B5E96AEA12ADD\ -A64859DF4B86E9EE0B58E39091E6B188B408AC94E1294A8911245EE361E60E60\ -1EFF58D1D37639F3753BEC80EBB4EFDE25817436076623FC65415FE51D1B0280\ -366D12C554D86743F3C3B6572E400361A60726131441BA493A83FBE9AFDA90F7\ -AF1AE717238D:\ -CB89BA090205A111F3B527A67DB45C3830EB48D8E83CBB84A2D3F7AD0E93E0CB\ -1DAD17F79AB53C33314657790123AA6F - -74356E449F4BF8644F77B14F4D67CB6BD9C1F5AE357621D5B8147E562B65C665\ -85CAF2E491B48529A01A34D226D436959153815380D5689E30B35357CDAC6E08\ -D3F2B0E88E200600D62BD9F5EAF488DF86A4470EA227006182E44809009868C4\ -C280C43D7D64A5268FA719074960087B3A6ABC837882F882C837834535929389\ -A12B2C78187E2EA07EF8B8EEF27DC85002C3AE35F1A50BEE6A1C48BA7E175F33\ -16670B27983472AA6A61EED0A683A39EE323080620EA44A9F74411AE5CE99030\ -528F9AB49C79F2:\ -9A01097120368F6B07024C89DD59285E81C510D75EFF02882110831769614E29\ -5DD84ABE057C46A44F549F6041525862 - -8C3798E51BC68482D7337D3ABB75DC9FFE860714A9AD73551E120059860DDE24\ -AB87327222B64CF774415A70F724CDF270DE3FE47DDA07B61C9EF2A3551F45A5\ -584860248FABDE676E1CD75F6355AA3EAEABE3B51DC813D9FB2EAA4F0F1D9F83\ -4D7CAD9C7C695AE84B329385BC0BEF895B9F1EDF44A03D4B410CC23A79A6B62E\ -4F346A5E8DD851C2857995DDBF5B2D717AEB847310E1F6A46AC3D26A7F9B4498\ -5AF656D2B7C9406E8A9E8F47DCB4EF6B83CAACF9AEFB6118BFCFF7E44BEF6937\ -EBDDC89186839B77:\ -5542830208F3703FF68A2B504D2BF48518300798BE4A4F1CFD233EACF1F82BB9\ -F9FC59BB91A0D17A948D78B3D4E9B81B - -FA56BF730C4F8395875189C10C4FB251605757A8FECC31F9737E3C2503B02608\ -E6731E85D7A38393C67DE516B85304824BFB135E33BF22B3A23B913BF6ACD2B7\ -AB85198B8187B2BCD454D5E3318CACB32FD6261C31AE7F6C54EF6A7A2A4C9F3E\ -CB81CE3555D4F0AD466DD4C108A90399D70041997C3B25345A9653F3C9A6711A\ -B1B91D6A9D2216442DA2C973CBD685EE7643BFD77327A2F7AE9CB283620A0871\ -6DFB462E5C1D65432CA9D56A90E811443CD1ECB8F0DE179C9CB48BA4F6FEC360\ -C66F252F6E64EDC96B:\ -30AD3BAD371BF14AFC4F7C75E8FEB819A9FC2852A8053C7EB8C69455C4736E69\ -4540C2ECDE99EC46A81E94EEE6FDE011 - -B6134F9C3E91DD8000740D009DD806240811D51AB1546A974BCB18D344642BAA\ -5CD5903AF84D58EC5BA17301D5EC0F10CCD0509CBB3FD3FFF9172D193AF0F782\ -252FD1338C7244D40E0E42362275B22D01C4C3389F19DD69BDF958EBE28E31A4\ -FFE2B5F18A87831CFB7095F58A87C9FA21DB72BA269379B2DC2384B3DA953C79\ -25761FED324620ACEA435E52B424A7723F6A2357374157A34CD8252351C25A1B\ -232826CEFE1BD3E70FFC15A31E7C0598219D7F00436294D11891B82497BC78AA\ -5363892A2495DF8C1EEF:\ -5C3B4332ADE447BFBCD3328D81B849C124BD59CED92FD74DE0D77D9E4A5F2A23\ -A6619234D88065596F5889B28EBDC54A - -C941CDB9C28AB0A791F2E5C8E8BB52850626AA89205BEC3A7E22682313D198B1\ -FA33FC7295381354858758AE6C8EC6FAC3245C6E454D16FA2F51C4166FAB51DF\ -272858F2D603770C40987F64442D487AF49CD5C3991CE858EA2A60DAB6A65A34\ -414965933973AC2457089E359160B7CDEDC42F29E10A91921785F6B7224EE0B3\ -49393CDCFF6151B50B377D609559923D0984CDA6000829B916AB6896693EF6A2\ -199B3C22F7DC5500A15B8258420E314C222BC000BC4E5413E6DD82C993F8330F\ -5C6D1BE4BC79F08A1A0A46:\ -22C9B83B2BBCCF28325D124A76385D3EFBAAA69E2D9CC1694730C67E63B30875\ -14DCE2594BB3EF685B9EC4A5E3D922AE - -4499EFFFAC4BCEA52747EFD1E4F20B73E48758BE915C88A1FFE5299B0B005837\ -A46B2F20A9CB3C6E64A9E3C564A27C0F1C6AD1960373036EC5BFE1A8FC6A435C\ -2185ED0F114C50E8B3E4C7ED96B06A036819C9463E864A58D6286F785E32A804\ -443A56AF0B4DF6ABC57ED5C2B185DDEE8489EA080DEEEE66AA33C2E6DAB36251\ -C402682B6824821F998C32163164298E1FAFD31BABBCFFB594C91888C6219079\ -D907FDB438ED89529D6D96212FD55ABE20399DBEFD342248507436931CDEAD49\ -6EB6E4A80358ACC78647D043:\ -34AE91FE75C4D284F5C2E084011C37BAB10531399E8E4FCCD2E8AF85579BD5E4\ -6A12DB7BA50BF152B27C91AA50A1D510 - -EECBB8FDFA4DA62170FD06727F697D81F83F601FF61E478105D3CB7502F2C89B\ -F3E8F56EDD469D049807A38882A7EEFBC85FC9A950952E9FA84B8AFEBD3CE782\ -D4DA598002827B1EB98882EA1F0A8F7AA9CE013A6E9BC462FB66C8D4A18DA214\ -01E1B93356EB12F3725B6DB1684F2300A98B9A119E5D27FF704AFFB618E12708\ -E77E6E5F34139A5A41131FD1D6336C272A8FC37080F041C71341BEE6AB550CB4\ -A20A6DDB6A8E0299F2B14BC730C54B8B1C1C487B494BDCCFD3A53535AB2F2315\ -90BF2C4062FD2AD58F906A2D0D:\ -BBCAE5D76FF15ADD301BAFBF55D6550885BAB9660FD59B87F44DD0EE137C0DCF\ -0D216193C5BE3644D5EE397FC0286729 - -E64F3E4ACE5C8418D65FEC2BC5D2A303DD458034736E3B0DF719098BE7A206DE\ -AF52D6BA82316CAF330EF852375188CDE2B39CC94AA449578A7E2A8E3F5A9D68\ -E816B8D16889FBC0EBF0939D04F63033AE9AE2BDAB73B88C26D6BD25EE460EE1\ -EF58FB0AFA92CC539F8C76D3D097E7A6A63EBB9B5887EDF3CF076028C5BBD5B9\ -DB3211371AD3FE121D4E9BF44229F4E1ECF5A0F9F0EBA4D5CEB72878AB22C3F0\ -EB5A625323AC66F7061F4A81FAC834471E0C59553F108475FE290D43E6A055AE\ -3EE46FB67422F814A68C4BE3E8C9:\ -2A0B9271E8ACDCF040480FF9E1EED1F4C90724B5A145FE275901F8CB1D000B69\ -93D9DA11DFC261F8F256E5076EC92E7C - -D2CB2D733033F9E91395312808383CC4F0CA974E87EC68400D52E96B3FA6984A\ -C58D9AD0938DDE5A973008D818C49607D9DE2284E7618F1B8AED8372FBD52ED5\ -4557AF4220FAC09DFA8443011699B97D743F8F2B1AEF3537EBB45DCC9E13DFB4\ -38428EE190A4EFDB3CAEB7F3933117BF63ABDC7E57BEB4171C7E1AD260AB0587\ -806C4D137B6316B50ABC9CCE0DFF3ACADA47BBB86BE777E617BBE578FF451984\ -4DB360E0A96C6701290E76BB95D26F0F804C8A4F2717EAC4E7DE9F2CFF3BBC55\ -A17E776C0D02856032A6CD10AD2838:\ -E28211409BFC540E8E9E3CA4CC68C91788F275B9A6399E9F4BD1D1126E0DFFF7\ -F82CF2E325E66D35619EB6B005069999 - -F2998955613DD414CC111DF5CE30A995BB792E260B0E37A5B1D942FE90171A4A\ -C2F66D4928D7AD377F4D0554CBF4C523D21F6E5F379D6F4B028CDCB9B1758D3B\ -39663242FF3CB6EDE6A36A6F05DB3BC41E0D861B384B6DEC58BB096D0A422FD5\ -42DF175E1BE1571FB52AE66F2D86A2F6824A8CFAACBAC4A7492AD0433EEB1545\ -4AF8F312B3B2A577750E3EFBD370E8A8CAC1582581971FBA3BA4BD0D76E718DA\ -CF8433D33A59D287F8CC92234E7A271041B526E389EFB0E40B6A18B3AAF658E8\ -2ED1C78631FD23B4C3EB27C3FAEC8685:\ -10B1098955292ACEBC01688E912C40B0712AE72DC6696F292FD2004FC9D28279\ -DE4D0DA7B8CB3EB4338B815229B163E3 - -447797E2899B72A356BA55BF4DF3ACCA6CDB1041EB477BD1834A9F9ACBC340A2\ -94D729F2F97DF3A610BE0FF15EDB9C6D5DB41644B9874360140FC64F52AA03F0\ -286C8A640670067A84E017926A70438DB1BB361DEFEE7317021425F8821DEF26\ -D1EFD77FC853B818545D055ADC9284796E583C76E6FE74C9AC2587AA46AA8F88\ -04F2FEB5836CC4B3ABABAB8429A5783E17D5999F32242EB59EF30CD7ADABC16D\ -72DBDB097623047C98989F88D14EAF02A7212BE16EC2D07981AAA99949DDF89E\ -CD90333A77BC4E1988A82ABF7C7CAF3291:\ -A12C2F82AE2ABD6445311822AA9386809753FAAF883F0654F64601296EB2C38C\ -40533C7A48F939797A9D75093432A4F5 - -9F2C18ADE9B380C784E170FB763E9AA205F64303067EB1BCEA93DF5DAC4BF5A2\ -E00B78195F808DF24FC76E26CB7BE31DC35F0844CDED1567BBA29858CFFC97FB\ -29010331B01D6A3FB3159CC1B973D255DA9843E34A0A4061CABDB9ED37F241BF\ -ABB3C20D32743F4026B59A4CCC385A2301F83C0B0A190B0F2D01ACB8F0D41111\ -E10F2F4E149379275599A52DC089B35FDD5234B0CFB7B6D8AEBD563CA1FA653C\ -5C021DFD6F5920E6F18BFAFDBECBF0AB00281333ED50B9A999549C1C8F8C63D7\ -626C48322E9791D5FF72294049BDE91E73F8:\ -4ED291FC99C64B3657D0647C5DA5526781EA625C1A1C5195CFA1EC8EE38691EC\ -605F96C9D7665AE5896292D4517204AD - -AE159F3FA33619002AE6BCCE8CBBDD7D28E5ED9D61534595C4C9F43C402A9BB3\ -1F3B301CBFD4A43CE4C24CD5C9849CC6259ECA90E2A79E01FFBAC07BA0E147FA\ -42676A1D668570E0396387B5BCD599E8E66AAED1B8A191C5A47547F61373021F\ -A6DEADCB55363D233C24440F2C73DBB519F7C9FA5A8962EFD5F6252C0407F190\ -DFEFAD707F3C7007D69FF36B8489A5B6B7C557E79DD4F50C06511F599F56C896\ -B35C917B63BA35C6FF8092BAF7D1658E77FC95D8A6A43EEB4C01F33F03877F92\ -774BE89C1114DD531C011E53A34DC248A2F0E6:\ -5AEECE701B5CCB35F43DB72265DC692E09202368D9BAC6F0AC8D135DDA4B5ED1\ -66638F002A2EC3E1CDB43919CB5F62D2 - -3B8E97C5FFC2D6A40FA7DE7FCEFC90F3B12C940E7AB415321E29EE692DFAC799\ -B009C99DCDDB708FCE5A178C5C35EE2B8617143EDC4C40B4D313661F49ABDD93\ -CEA79D117518805496FE6ACF292C4C2A1F76B403A97D7C399DAF85B46AD84E16\ -246C67D6836757BDE336C290D5D401E6C1386AB32797AF6BB251E9B2D8FE754C\ -47482B72E0B394EAB76916126FD68EA7D65EB93D59F5B4C5AC40F7C3B37E7F36\ -94F29424C24AF8C8F0EF59CD9DBF1D28E0E10F799A6F78CAD1D45B9DB3D7DEE4\ -A7059ABE99182714983B9C9D44D7F5643596D4F3:\ -2AB374BBA7A3E03EA741290F0B94D083722BF8C4694A9C0932671A6C691D15A1\ -EF88656D974DD80B0B741A3BCEDD8A6E - -3434EC31B10FAFDBFEEC0DD6BD94E80F7BA9DCA19EF075F7EB017512AF66D6A4\ -BCF7D16BA0819A1892A6372F9B35BCC7CA8155EE19E8428BC22D214856ED5FA9\ -374C3C09BDE169602CC219679F65A1566FC7316F4CC3B631A18FB4449FA6AFA1\ -6A3DB2BC4212EFF539C67CF184680826535589C7111D73BFFCE431B4C40492E7\ -63D9279560AAA38EB2DC14A212D723F994A1FE656FF4DD14551CE4E7C621B2AA\ -5604A10001B2878A897A28A08095C325E10A26D2FB1A75BFD64C250309BB55A4\ -4F23BBAC0D5516A1C687D3B41EF2FBBF9CC56D4739:\ -2DF2F57B9C85BFD93A25A62D8DEA8F319B29F4ED295016834BD62B82179BFFD5\ -4C3D753AFC9E7398636B9008B2235AFB - -7C7953D81C8D208FD1C97681D48F49DD003456DE60475B84070EF4847C333B74\ -575B1FC8D2A186964485A3B8634FEAA3595AAA1A2F4595A7D6B6153563DEE31B\ -BAC443C8A33EED6D5D956A980A68366C2527B550EE950250DFB691EACBD5D56A\ -E14B970668BE174C89DF2FEA43AE52F13142639C884FD62A3683C0C3792F0F24\ -AB1318BCB27E21F4737FAB62C77EA38BC8FD1CF41F7DAB64C13FEBE7152BF5BB\ -7AB5A78F5346D43CC741CB6F72B7B8980F268B68BF62ABDFB1577A52438FE14B\ -591498CC95F071228460C7C5D5CEB4A7BDE588E7F21C:\ -51E6AEF326CB5FA7AB58FCB6B951D5AB9E97933B61F3D44C48A16C9E57CD0F8B\ -423F1FF71AF546C29CC94148444E85AD - -7A6A4F4FDC59A1D223381AE5AF498D74B7252ECF59E389E49130C7EAEE626E7B\ -D9897EFFD92017F4CCDE66B0440462CDEDFD352D8153E6A4C8D7A0812F701CC7\ -37B5178C2556F07111200EB627DBC299CAA792DFA58F35935299FA3A3519E9B0\ -3166DFFA159103FFA35E8577F7C0A86C6B46FE13DB8E2CDD9DCFBA85BDDDCCE0\ -A7A8E155F81F712D8E9FE646153D3D22C811BD39F830433B2213DD46301941B5\ -9293FD0A33E2B63ADBD95239BC01315C46FDB678875B3C81E053A40F581CFBEC\ -24A1404B1671A1B88A6D06120229518FB13A74CA0AC5AE:\ -C7C4A1CBCECC12325A90FE8FBBF879CEDF85973F2557FF371754F27A99B36D13\ -0A03E0C4B575E937A485C7F4D7AD09D1 - -D9FAA14CEBE9B7DE551B6C0765409A33938562013B5E8E0E1E0A6418DF7399D0\ -A6A771FB81C3CA9BD3BB8E2951B0BC792525A294EBD1083688806FE5E7F1E17F\ -D4E3A41D00C89E8FCF4A363CAEDB1ACB558E3D562F1302B3D83BB886ED27B760\ -33798131DAB05B4217381EAAA7BA15EC820BB5C13B516DD640EAEC5A27D05FDF\ -CA0F35B3A5312146806B4C0275BCD0AAA3B2017F346975DB566F9B4D137F4EE1\ -0644C2A2DA66DEECA5342E236495C3C6280528BFD32E90AF4CD9BB908F34012B\ -52B4BC56D48CC8A6B59BAB014988EABD12E1A0A1C2E170E7:\ -AE1EF5A3F3AD627EFD50EB91DF603654C5F2D90E0EDDACF5862E2253B84BC257\ -155606B3C6F6D11D954CCC4A9518FEC0 - -2D8427433D0C61F2D96CFE80CF1E932265A191365C3B61AAA3D6DCC039F6BA2A\ -D52A6A8CC30FC10F705E6B7705105977FA496C1C708A277A124304F1FC40911E\ -7441D1B5E77B951AAD7B01FD5DB1B377D165B05BBF898042E39660CAF8B279FE\ -5229D1A8DB86C0999ED65E53D01CCBC4B43173CCF992B3A14586F6BA42F5FE30\ -AFA8AE40C5DF29966F9346DA5F8B35F16A1DE3AB6DE0F477D8D8660918060E88\ -B9B9E9CA6A4207033B87A812DBF5544D39E4882010F82B6CE005F8E8FF6FE3C3\ -806BC2B73C2B83AFB704345629304F9F86358712E9FAE3CA3E:\ -C720C461F5D48653A3A4889DD4C287BD7E115A9F91DD52610C52F2EA90903B52\ -800AD3D43533FF8AB69227C97645A514 - -5E19D97887FCAAC0387E22C6F803C34A3DACD2604172433F7A8A7A526CA4A2A1\ -271ECFC5D5D7BE5AC0D85D921095350DFC65997D443C21C8094E0A3FEFD2961B\ -CB94AED03291AE310CCDA75D8ACE4BC7D89E7D3E5D1650BDA5D668B8B50BFC8E\ -608E184F4D3A9A2BADC4FF5F07E0C0BC8A9F2E0B2A26FD6D8C550008FAAAB75F\ -D71AF2A424BEC9A7CD9D83FAD4C8E9319115656A8717D3B523A68FF8004258B9\ -990ED362308461804BA3E3A7E92D8F2FFAE5C2FBA55BA5A3C27C0A2F71BD711D\ -2FE1799C2ADB31B200035481E9EE5C4ADF2AB9C0FA50B23975CF:\ -2E47EF41408C039D257BEDBF5087AC57FE59452A35D1A3E0C6F3A333B915D66F\ -844A045B7BDB85B4FC0D6A662C0BE470 - -C8E976AB4638909387CE3B8D4E510C3230E5690E02C45093B1D297910ABC481E\ -56EEA0F296F98379DFC9080AF69E73B2399D1C143BEE80AE1328162CE1BA7F6A\ -8374679B20AACD380EB4E61382C99998704D62701AFA914F9A2705CDB065885F\ -50D086C3EB5753700C387118BB142F3E6DA1E988DFB31AC75D7368931E45D139\ -1A274B22F83CEB072F9BCABC0B216685BFD789F5023971024B1878A205442522\ -F9EA7D8797A4102A3DF41703768251FD5E017C85D1200A464118AA35654E7CA3\ -9F3C375B8EF8CBE7534DBC64BC20BEFB417CF60EC92F63D9EE7397:\ -E94DA5AD788A730486EC70413ED54316941370DF04DF054395D5D798232397C0\ -E980B25CA39251B22EB415BD9E272BCC - -7145FA124B7429A1FC2231237A949BA7201BCC1822D3272DE005B682398196C2\ -5F7E5CC2F289FBF44415F699CB7FE6757791B1443410234AE061EDF623359E2B\ -4E32C19BF88450432DD01CAA5EB16A1DC378F391CA5E3C4E5F356728BDDD4975\ -DB7C890DA8BBC84CC73FF244394D0D48954978765E4A00B593F70F2CA082673A\ -261ED88DBCEF1127728D8CD89BC2C597E9102CED6010F65FA75A14EBE467FA57\ -CE3BD4948B6867D74A9DF5C0EC6F530CBF2EE61CE6F06BC8F2864DFF5583776B\ -31DF8C7FFCB61428A56BF7BD37188B4A5123BBF338393AF46EDA85E6:\ -9A2B5607EB55AC23AD0BA6CB4D753C591D1DB9D2663B4DBC9EF0EFAE8C6F02E3\ -CA943FFC47B608BF803C09B2B062F6D8 - -7FDFADCC9D29BAD23AE038C6C65CDA1AEF757221B8872ED3D75FF8DF7DA0627D\ -266E224E812C39F7983E4558BFD0A1F2BEF3FEB56BA09120EF762917B9C09386\ -7948547AEE98600D10D87B20106878A8D22C64378BF634F7F75900C03986B077\ -B0BF8B740A82447B61B99FEE5376C5EB6680EC9E3088F0BDD0C56883413D60C1\ -357D3C811950E5890E7600103C916341B80C743C6A852B7B4FB60C3BA21F3BC1\ -5B8382437A68454779CF3CD7F9F90CCC8EF28D0B706535B1E4108EB5627BB45D\ -719CB046839AEE311CA1ABDC8319E050D67972CB35A6B1601B25DBF487:\ -42CB01F43C6FFF1E37C3E5D4C6A4394AC47ED5E678B7A536CDF9AB2C3E4713B1\ -510249AD5F616C47D910AD8B8987FDCA - -988638219FD3095421F826F56E4F09E356296B628C3CE6930C9F2E758FD1A80C\ -8273F2F61E4DAAE65C4F110D3E7CA0965AC7D24E34C0DC4BA2D6FF0BF5BBE93B\ -3585F354D7543CB542A1AA54674D375077F2D360A8F4D42F3DB131C3B7AB7306\ -267BA107659864A90C8C909460A73621D1F5D9D3FD95BEB19B23DB1CB6C0D0FB\ -A91D36891529B8BD8263CAA1BAB56A4AFFAED44962DF096D8D5B1EB845EF3118\ -8B3E10F1AF811A13F156BEB7A288AAE593EBD1471B624AA1A7C6ADF01E2200B3\ -D72D88A3AED3100C88231E41EFC376906F0B580DC895F080FDA5741DB1CB:\ -875B2EF5981F303CAB294FBAA24CCADCF9DE2273483AA829317D83443860A443\ -1D39977DAD19C87FAD3C2432C5498739 - -5AAB62756D307A669D146ABA988D9074C5A159B3DE85151A819B117CA1FF6597\ -F6156E80FDD28C9C3176835164D37DA7DA11D94E09ADD770B68A6E081CD22CA0\ -C004BFE7CD283BF43A588DA91F509B27A6584C474A4A2F3EE0F1F56447379240\ -A5AB1FB77FDCA49B305F07BA86B62756FB9EFB4FC225C86845F026EA542076B9\ -1A0BC2CDD136E122C659BE259D98E5841DF4C2F60330D4D8CDEE7BF1A0A24452\ -4EECC68FF2AEF5BF0069C9E87A11C6E519DE1A4062A10C83837388F7EF58598A\ -3846F49D499682B683C4A062B421594FAFBC1383C943BA83BDEF515EFCF10D:\ -44B2BFBFB82D22C42ADFDB0830281B5F40BEFB129E2C92B2C74927E66C4AC085\ -2DCE0B25796E2D1E68CC86219E7B0A57 - -47B8216AA0FBB5D67966F2E82C17C07AA2D6327E96FCD83E3DE7333689F3EE79\ -994A1BF45082C4D725ED8D41205CB5BCDF5C341F77FACB1DA46A5B9B2CBC49EA\ -DF786BCD881F371A95FA17DF73F606519AEA0FF79D5A11427B98EE7F13A5C006\ -37E2854134691059839121FEA9ABE2CD1BCBBBF27C74CAF3678E05BFB1C94989\ -7EA01F56FFA4DAFBE8644611685C617A3206C7A7036E4AC816799F693DAFE7F1\ -9F303CE4EBA09D21E03610201BFC665B72400A547A1E00FA9B7AD8D84F84B34A\ -EF118515E74DEF11B9188BD1E1F97D9A12C30132EC2806339BDADACDA2FD8B78:\ -37D9DA46B02E810E460DF8C37AF255A4540ACC1FB58A72F50E5CE4700BD1B1BC\ -4528B5AC7DF55443ADA26019A786FBE7 - -8CFF1F67FE53C098896D9136389BD8881816CCAB34862BB67A656E3D98896F3C\ -E6FFD4DA73975809FCDF9666760D6E561C55238B205D8049C1CEDEEF374D1735\ -DAA533147BFA960B2CCE4A4F254176BB4D1BD1E89654432B8DBE1A135C42115B\ -394B024856A2A83DC85D6782BE4B444239567CCEC4B184D4548EAE3FF6A192F3\ -43292BA2E32A0F267F31CC26719EB85245D415FB897AC2DA433EE91A99424C9D\ -7F1766A44171D1651001C38FC79294ACCC68CEB5665D36218454D3BA169AE058\ -A831338C17743603F81EE173BFC0927464F9BD728DEE94C6AEAB7AAE6EE3A627\ -E8:\ -57B9549E03F9D7F65139161EA578D9DA731AD4DF962D57713AFE32CF2BDDAC9C\ -0567D070247106130580EE8A9E1B84C0 - -EACD07971CFF9B9939903F8C1D8CBB5D4DB1B548A85D04E037514A583604E787\ -F32992BF2111B97AC5E8A938233552731321522AB5E8583561260B7D13EBEEF7\ -85B23A41FD8576A6DA764A8ED6D822D4957A545D5244756C18AA80E1AAD4D1F9\ -C20D259DEE1711E2CC8FD013169FB7CC4CE38B362F8E0936AE9198B7E838DCEA\ -4F7A5B9429BB3F6BBCF2DC92565E3676C1C5E6EB3DD2A0F86AA23EDD3D0891F1\ -97447692794B3DFA269611AD97F72B795602B4FDB198F3FD3EB41B415064256E\ -345E8D8C51C555DC8A21904A9B0F1AD0EFFAB7786AAC2DA3B196507E9F33CA35\ -6427:\ -701ED3F52B4EACEE924E02C1FD928C54FB8454C7BEEA5800B7798FAD28F408D1\ -85681EDBBF38B0D54658ACEA65F24927 - -23AC4E9A42C6EF45C3336CE6DFC2FF7DE8884CD23DC912FEF0F7756C09D335C1\ -89F3AD3A23697ABDA851A81881A0C8CCAFC980AB2C702564C2BE15FE4C4B9F10\ -DFB2248D0D0CB2E2887FD4598A1D4ACDA897944A2FFC580FF92719C95CF2AA42\ -DC584674CB5A9BC5765B9D6DDF5789791D15F8DD925AA12BFFAFBCE60827B490\ -BB7DF3DDA6F2A143C8BF96ABC903D83D59A791E2D62814A89B8080A28060568C\ -F24A80AE61179FE84E0FFAD00388178CB6A617D37EFD54CC01970A4A41D1A8D3\ -DDCE46EDBBA4AB7C90AD565398D376F431189CE8C1C33E132FEAE6A8CD17A61C\ -630012:\ -92BF47026DBEBE055242BA865BC2EC0DF784378745E2B5F54456E8A4A9C6F2C3\ -ACF2973E4DA7E31867DE47BC0A59292B - -0172DF732282C9D488669C358E3492260CBE91C95CFBC1E3FEA6C4B0EC129B45\ -F242ACE09F152FC6234E1BEE8AAB8CD56E8B486E1DCBA9C05407C2F95DA8D8F1\ -C0AF78EE2ED82A3A79EC0CB0709396EE62AADB84F8A4EE8A7CCCA3C1EE84E302\ -A09EA802204AFECF04097E67D0F8E8A9D2651126C0A598A37081E42D168B0AE8\ -A71951C524259E4E2054E535B779679BDADE566FE55700858618E626B4A0FAF8\ -95BCCE9011504A49E05FD56127EAE3D1F8917AFB548ECADABDA1020111FEC931\ -4C413498A360B08640549A22CB23C731ACE743252A8227A0D2689D4C60016066\ -78DFB921:\ -9C49D15BFA855335819861393AFC216F98AC0ECB3DB1EC6F1D86A20A70DDC3CD\ -3B3E1182E68AE9BA62CF87691516FA3B - -3875B9240CF3E0A8B59C658540F26A701CF188496E2C2174788B126FD29402D6\ -A75453BA0635284D08835F40051A2A9683DC92AFB9383719191231170379BA6F\ -4ADC816FECBB0F9C446B785BF520796841E58878B73C58D3EBB097CE4761FDEA\ -BE15DE2F319DFBAF1742CDEB389559C788131A6793E193856661376C81CE9568\ -DA19AA6925B47FFD77A43C7A0E758C37D69254909FF0FBD415EF8EB937BCD49F\ -91468B49974C07DC819ABD67395DB0E05874FF83DDDAB895344ABD0E7111B2DF\ -9E58D76D85AD98106B36295826BE04D435615595605E4B4BB824B33C4AFEB5E7\ -BB0D19F909:\ -FF8918DE7CEEC26488852BE360EC8EE167ABA8A9D8A9E006B19A15F606F2BBD0\ -5357ABB40C4CC286658120C0A704DEC1 - -747CC1A59FEFBA94A9C75BA866C30DC5C1CB0C0F8E9361D98484956DD5D1A40F\ -6184AFBE3DAC9F76028D1CAECCFBF69199C6CE2B4C092A3F4D2A56FE5A33A007\ -57F4D7DEE5DFB0524311A97AE0668A47971B95766E2F6DD48C3F57841F91F04A\ -00AD5EA70F2D479A2620DC5CD78EAAB3A3B011719B7E78D19DDF70D9423798AF\ -77517EBC55392FCD01FC600D8D466B9E7A7A85BF33F9CC5419E9BD874DDFD609\ -81150DDAF8D7FEBAA4374F0872A5628D318000311E2F5655365AD4D407C20E5C\ -04DF17A222E7DEEC79C5AB1116D8572F91CD06E1CCC7CED53736FC867FD49ECE\ -BE6BF8082E8A:\ -76CB2FE2D260D939672E3301EDBF82871AFF34D9F59A38557F69CA2F61EDE7BA\ -6638F64972C13D46B74E0BB7AF7C1AD7 - -57AF971FCCAEC97435DC2EC9EF0429BCEDC6B647729EA168858A6E49AC1071E7\ -06F4A5A645CA14E8C7746D65511620682C906C8B86EC901F3DDED4167B3F00B0\ -6CBFAC6AEE3728051B3E5FF10B4F9ED8BD0B8DA94303C833755B3CA3AEDDF0B5\ -4BC8D6632138B5D25BAB03D17B3458A9D782108006F5BB7DE75B5C0BA854B423\ -D8BB801E701E99DC4FEAAD59BC1C7112453B04D33EA3635639FB802C73C2B71D\ -58A56BBD671B18FE34ED2E3DCA38827D63FDB1D4FB3285405004B2B3E26081A8\ -FF08CD6D2B08F8E7B7E90A2AB1ED7A41B1D0128522C2F8BFF56A7FE67969422C\ -E839A9D4608F03:\ -28DCAA83570BC5CAE98144D991CC7999EE46EFAB844BE04E50DCCA9B39F27820\ -BF49D967C28C6E47867581CC40A8013B - -04E16DEDC1227902BAAF332D3D08923601BDD64F573FAA1BB7201918CFE16B1E\ -10151DAE875DA0C0D63C59C3DD050C4C6A874011B018421AFC4623AB0381831B\ -2DA2A8BA42C96E4F70864AC44E106F94311051E74C77C1291BF5DB9539E69567\ -BF6A11CF6932BBBAD33F8946BF5814C066D851633D1A513510039B349939BFD4\ -2B858C21827C8FF05F1D09B1B0765DC78A135B5CA4DFBA0801BCADDFA175623C\ -8B647EACFB4444B85A44F73890607D06D507A4F8393658788669F6EF4DEB58D0\ -8C50CA0756D5E2F49D1A7AD73E0F0B3D3B5F090ACF622B1878C59133E4A848E0\ -5153592EA81C6FBF:\ -2D8F7012F5118011092FF7B08075D2463A1F0A1CDE808845904B9F8D8966D0C8\ -33CE78181F0EB4C03D2C8AAD865F6EB7 - -7C815C384EEE0F288ECE27CCED52A01603127B079C007378BC5D1E6C5E9E6D1C\ -735723ACBBD5801AC49854B2B569D4472D33F40BBB8882956245C366DC3582D7\ -1696A97A4E19557E41E54DEE482A14229005F93AFD2C4A7D8614D10A97A9DFA0\ -7F7CD946FA45263063DDD29DB8F9E34DB60DAA32684F0072EA2A9426ECEBFA52\ -39FB67F29C18CBAA2AF6ED4BF4283936823AC1790164FEC5457A9CBA7C767CA5\ -9392D94CAB7448F50EB34E9A93A80027471CE59736F099C886DEA1AB4CBA4D89\ -F5FC7AE2F21CCD27F611ECA4626B2D08DC22382E92C1EFB2F6AFDC8FDC3D2172\ -604F5035C46B8197D3:\ -97A7DA85E03A49BB9C9C9AEEB015E5515DBBA53E0E562A4FE96A7A45199E429C\ -B38D0062F63696AA12FF0DE87D30B330 - -E29D505158DBDD937D9E3D2145658EE6F5992A2FC790F4F608D9CDB44A091D5B\ -94B88E81FAC4FDF5C49442F13B911C55886469629551189EAFF62488F1A479B7\ -DB11A1560E198DDCCCCF50159093425FF7F1CB8D1D1246D0978764087D6BAC25\ -7026B090EFAE8CEC5F22B6F21C59ACE1AC7386F5B8837CA6A12B6FBF5534DD05\ -60EF05CA78104D3B943DDB220FEAEC89AA5E692A00F822A2AB9A2FE60350D75E\ -7BE16FF2526DC643872502D01F42F188ABED0A6E9A6F5FD0D1CE7D5755C9FFA6\ -6B0AF0B20BD806F08E06156690D81AC811778CA3DAC2C249B96002017FCE93E5\ -07E3B953ACF99964B847:\ -BF85BD95F5550F2B382352D05E73F3C41F12C1161DDE4EE6CBC0F9E8563B6D55\ -F10C113AF3AD2ECB78E156210CA0A318 - -D85588696F576E65ECA0155F395F0CFACD83F36A99111ED5768DF2D116D2121E\ -32357BA4F54EDE927F189F297D3A97FAD4E9A0F5B41D8D89DD7FE20156799C2B\ -7B6BF9C957BA0D6763F5C3BC5129747BBB53652B49290CFF1C87E2CDF2C4B95D\ -8AAEE09BC8FBFA6883E62D237885810491BFC101F1D8C636E3D0EDE838AD05C2\ -07A3DF4FAD76452979EB99F29AFAECEDD1C63B8D36CF378454A1BB67A741C77A\ -C6B6B3F95F4F02B64DABC15438613EA49750DF42EE90101F115AA9ABB9FF6432\ -4DDE9DABBB01054E1BD6B4BCDC7930A44C2300D87CA78C06924D0323AD7887E4\ -6C90E8C4D100ACD9EED21E:\ -BD795815C94513891FBCEE251276C2648C9B39D6695CF193607B763DF49E98B1\ -59956E982366343C9BF415E3F32D1A55 - -3A12F8508B40C32C74492B66323375DCFE49184C78F73179F3314B79E63376B8\ -AC683F5A51F1534BD729B02B04D002F55CBD8E8FC9B5EC1EA6BBE6A0D0E74315\ -18E6BA45D124035F9D3DCE0A8BB7BF1430A9F657E0B4EA9F20EB20C786A58181\ -A1E20A96F1628F8728A13BDF7A4B4B32FC8AA7054CC4881AE7FA19AFA65C6C3E\ -E1B3ADE3192AF42054A8A911B8EC1826865D46D93F1E7C5E2B7813C92A506E53\ -886F3D4701BB93D2A681AD109C845904BB861AF8AF0646B6E399B38B614051D3\ -4F6842563A0F37EC00CB3D865FC5D746C4987DE2A65071100883A2A9C7A2BFE1\ -E2DD603D9EA24DC7C5FD06BE:\ -650657A09AF30EBE4916DEF8BF50753907D66B5894D332D3CF62AE46D83C8353\ -F06FD58CDC098FC4BB801F30F238EB7F - -1861EDCE46FA5AD17E1FF1DEAE084DEC580F97D0A67885DFE834B9DFAC1AE076\ -742CE9E267512CA51F6DF5A455AF0C5FD6ABF94ACEA103A3370C354485A7846F\ -B84F3AC7C2904B5B2FBF227002CE512133BB7E1C4E50057BFD1E44DB33C7CDB9\ -69A99E284B184F50A14B068A1FC5009D9B298DBE92239572A7627AAC02ABE8F3\ -E3B473417F36D4D2505D16B7577F4526C9D94A270A2DFE450D06DA8F6FA95687\ -9A0A55CFE99E742EA555EA477BA3E9B44CCD508C375423611AF92E55345DC215\ -779B2D5119EBA49C71D49B9FE3F1569FA24E5CA3E332D042422A8B8158D3EC66\ -A80012976F31FFDF305F0C9C5E:\ -3946C579004179275E24A71A33B13ED39B9EF96476F07C71A20A2F55ECE4E3E8\ -FB35E04786D784337DE2CAF88ED5A6A0 - -08D0FFDE3A6E4EF65608EA672E4830C12943D7187CCFF08F4941CFC13E545F3B\ -9C7AD5EEBBE2B01642B486CAF855C2C73F58C1E4E3391DA8E2D63D96E15FD849\ -53AE5C231911B00AD6050CD7AAFDAAC9B0F663AE6AAB45519D0F5391A541707D\ -479034E73A6AD805AE3598096AF078F1393301493D663DD71F83869CA27BA508\ -B7E91E81E128C1716DC3ACFE3084B2201E04CF8006617EECF1B640474A5D45CF\ -DE9F4D3EF92D6D055B909892194D8A8218DB6D8203A84261D200D71473D7488F\ -3427416B6896C137D455F231071CACBC86E0415AB88AEC841D96B7B8AF41E05B\ -B461A40645BF176601F1E760DE5F:\ -24C91910D9895CE0E83D93F15D224D01F6354DBB38C1D8B3D19D1B1D51227845\ -C78210F33768B7A9C68ADDC39B140E9E - -D782ABB72A5BE3392757BE02D3E45BE6E2099D6F000D042C8A543F50ED6EBC05\ -5A7F133B0DD8E9BC348536EDCAAE2E12EC18E8837DF7A1B3C87EC46D50C241DE\ -E820FD586197552DC20BEEA50F445A07A38F1768A39E2B2FF05DDDEDF751F1DE\ -F612D2E4D810DAA3A0CC904516F9A43AF660315385178A529E51F8AAE141808C\ -8BC5D7B60CAC26BB984AC1890D0436EF780426C547E94A7B08F01ACBFC4A3825\ -EAE04F520A9016F2FB8BF5165ED12736FC71E36A49A73614739EAA3EC834069B\ -1B40F1350C2B3AB885C02C640B9F7686ED5F99527E41CFCD796FE4C256C91731\ -86C226169FF257954EBDA81C0E5F99:\ -1E30D91FDF847DEAB875ADF3A2390923FC9FFB94E3FC56412DED435799E81853\ -3951EB5A4831179BA4746BAC3C9C440E - -5FCE8109A358570E40983E1184E541833BB9091E280F258CFB144387B05D190E\ -431CB19BAA67273BA0C58ABE91308E1844DCD0B3678BAA42F335F2FA05267A02\ -40B3C718A5942B3B3E3BFA98A55C25A1466E8D7A603722CB2BBF03AFA54CD769\ -A99F310735EE5A05DAE2C22D397BD95635F58C48A67F90E1B73AAFCD3F82117F\ -0166657838691005B18DA6F341D6E90FC1CDB352B30FAE45D348294E501B6325\ -2DE14740F2B85AE5299DDEC3172DE8B6D0BA219A20A23BB5E10FF434D39DB3F5\ -83305E9F5C039D98569E377B75A70AB837D1DF269B8A4B566F40BB91B577455F\ -D3C356C914FA06B9A7CE24C7317A172D:\ -140FF352245667FD29CA38A21DB3D3DD4BBE8CFFD3CA677F12482A559EFAF08E\ -8B0A9825B807206CBF6BD35FF6F88A3D - -6172F1971A6E1E4E6170AFBAD95D5FEC99BF69B24B674BC17DD78011615E502D\ -E6F56B86B1A71D3F4348087218AC7B7D09302993BE272E4A591968AEF18A1262\ -D665610D1070EE91CC8DA36E1F841A69A7A682C580E836941D21D909A3AFC1F0\ -B963E1CA5AB193E124A1A53DF1C587470E5881FB54DAE1B0D840F0C8F9D1B04C\ -645BA1041C7D8DBF22030A623AA15638B3D99A2C400FF76F3252079AF88D2B37\ -F35EE66C1AD7801A28D3D388AC450B97D5F0F79E4541755356B3B1A5696B023F\ -39AB7AB5F28DF4202936BC97393B93BC915CB159EA1BD7A0A414CB4B7A1AC3AF\ -68F50D79F0C9C7314E750F7D02FAA58BFA:\ -68B6338A2474B3976F21BA56B0716098D4736FF76EFD5EE9A3504BBAA8389F2C\ -346BFC26010B46F52F292D2836C16473 - -5668ECD99DFBE215C4118398AC9C9EAF1A1433FAB4CCDD3968064752B625EA94\ -4731F75D48A27D047D67547F14DD0FFAA55FA5E29F7AF0D161D85EAFC4F2029B\ -717C918EAB9D304543290BDBA7158B68020C0BA4E079BC95B5BC0FC044A992B9\ -4B4CCD3BD66D0EABB5DBBAB904D62E00752C4E3B0091D773BCF4C14B4377DA3E\ -FFF824B1CB2FA01B32D1E46C909E626ED2DAE920F4C7DBEB635BC754FACBD8D4\ -9BEBA3F23C1C41CCBFCD0EE0C114E69737F5597C0BF1D859F0C767E18002AE8E\ -39C26261FFDE2920D3D0BAF0E906138696CFE5B7E32B600F45DF3AAA39932F3A\ -7DF95B60FA8712A2271FCAF3911CE7B511B1:\ -499E08E111893FD76C97435E4C89C6EB5407E843510DB18ECC9EEBFF175DA621\ -20013880FF082847CAD39F8B52631BC8 - -03D625488354DF30E3F875A68EDFCF340E8366A8E1AB67F9D5C5486A96829DFA\ -C0578289082B2A62117E1CF418B43B90E0ADC881FC6AE8105C888E9ECD21AEA1\ -C9AE1A4038DFD17378FED71D02AE492087D7CDCD98F746855227967CB1AB4714\ -261EE3BEAD3F4DB118329D3EBEF4BC48A875C19BA763966DA0EBEA800E01B2F5\ -0B00E9DD4CACA6DCB314D00184EF71EA2391D760C950710DB4A70F9212FFC548\ -61F9DC752CE18867B8AD0C48DF8466EF7231E7AC567F0EB55099E622EBB86CB2\ -37520190A61C66AD34F1F4E289CB3282AE3EAAC6152ED24D2C92BAE5A7658252\ -A53C49B7B02DFE54FDB2E90074B6CF310AC661:\ -07EB2C3638FED3D91BAC7BE01C4F8D2B42E1871B11B3B4E769BFE259B34395CE\ -D6BA570EEBB61C443E0904E4B471AA30 - -2EDC282FFB90B97118DD03AAA03B145F363905E3CBD2D50ECD692B37BF000185\ -C651D3E9726C690D3773EC1E48510E42B17742B0B0377E7DE6B8F55E00A8A4DB\ -4740CEE6DB0830529DD19617501DC1E9359AA3BCF147E0A76B3AB70C4984C13E\ -339E6806BB35E683AF8527093670859F3D8A0FC7D493BCBA6BB12B5F65E71E70\ -5CA5D6C948D66ED3D730B26DB395B3447737C26FAD089AA0AD0E306CB28BF0AC\ -F106F89AF3745F0EC72D534968CCA543CD2CA50C94B1456743254E358C1317C0\ -7A07BF2B0ECA438A709367FAFC89A57239028FC5FECFD53B8EF958EF10EE0608\ -B7F5CB9923AD97058EC067700CC746C127A61EE3:\ -8B2409B8DFBCFD80F4F972C86C4C765F60F3904A62D818D85694CA70C2DE3D0C\ -0772C0058976BCC82332E51E352E055D - -90B28A6AA1FE533915BCB8E81ED6CACDC10962B7FF82474F845EEB86977600CF\ -70B07BA8E3796141EE340E3FCE842A38A50AFBE90301A3BDCC591F2E7D9DE53E\ -495525560B908C892439990A2CA2679C5539FFDF636777AD9C1CDEF809CDA9E8\ -DCDB451ABB9E9C17EFA4379ABD24B182BD981CAFC792640A183B61694301D04C\ -5B3EAAD694A6BD4CC06EF5DA8FA23B4FA2A64559C5A68397930079D250C51BCF\ -00E2B16A6C49171433B0AADFD80231276560B80458DD77089B7A1BBCC9E7E4B9\ -F881EACD6C92C4318348A13F4914EB27115A1CFC5D16D7FD94954C3532EFACA2\ -CAB025103B2D02C6FD71DA3A77F417D7932685888A:\ -9C7A50D34C41F15F82E9F39BEC09D5B921AD325F116DEAB57C74528DF0D3862E\ -DE1F0C98657CB1EB1415675ECB2BED2F - -2969447D175490F2AA9BB055014DBEF2E6854C95F8D60950BFE8C0BE8DE254C2\ -6B2D31B9E4DE9C68C9ADF49E4EE9B1C2850967F29F5D08738483B417BB96B2A5\ -6F0C8ACA632B552059C59AAC3F61F7B45C966B75F1D9931FF4E596406378CEE9\ -1AAA726A3A84C33F37E9CDBE626B5745A0B06064A8A8D56E53AAF102D23DD9DF\ -0A3FDF7A638509A6761A33FA42FA8DDBD8E16159C93008B53765019C3F0E9F10\ -B144CE2AC57F5D7297F9C9949E4FF68B70D339F87501CE8550B772F32C6DA8AD\ -2CE2100A895D8B08FA1EEAD7C376B407709703C510B50F87E73E43F8E7348F87\ -C3832A547EF2BBE5799ABEDCF5E1F372EA809233F006:\ -D533DF7948B95AAB53706447F34C73D818A1CB76E06C74310C3A19EE965D903D\ -8FD0A569C946F7FE256A9465ED9D0ECE - -721645633A44A2C78B19024EAECF58575AB23C27190833C26875DC0F0D50B46A\ -EA9C343D82EA7D5B3E50EC700545C615DAEAEA64726A0F05607576DCD396D812\ -B03FB6551C641087856D050B10E6A4D5577B82A98AFB89CEE8594C9DC19E79FE\ -FF0382FCFD127F1B803A4B9946F4AC9A4378E1E6E041B1389A53E3450CD32D9D\ -2941B0CBABDB50DA8EA2513145164C3AB6BCBD251C448D2D4B087AC57A59C228\ -5D564F16DA4ED5E607ED979592146FFB0EF3F3DB308FB342DF5EB5924A48256F\ -C763141A278814C82D6D6348577545870AE3A83C7230AC02A1540FE1798F7EF0\ -9E335A865A2AE0949B21E4F748FB8A51F44750E213A8FB:\ -6EF98C22A7A692F5A12E3A2C00724439D191CDFE9F65877F4DBE7BCF82A66628\ -07F6FEFDBDFC21C005074169E095C2C7 - -6B860D39725A14B498BB714574B4D37CA787404768F64C648B1751B353AC92BA\ -C2C3A28EA909FDF0423336401A02E63EC24325300D823B6864BB701F9D7C7A1F\ -8EC9D0AE3584AA6DD62EA1997CD831B4BABD9A4DA50932D4EFDA745C61E41308\ -90E156AEE6113716DAF95764222A91187DB2EFFEA49D5D0596102D619BD26A61\ -6BBFDA8335505FBB0D90B4C180D1A2335B91538E1668F9F9642790B4E55F9CAB\ -0FE2BDD2935D001EE6419ABAB5457880D0DBFF20ED8758F4C20FE759EFB33141\ -CF0E892587FE8187E5FBC57786B7E8B089612C936DFC03D27EFBBE7C8673F160\ -6BD51D5FF386F4A7AB68EDF59F385EB1291F117BFE717399:\ -68B6CA904DE9A5C8CBB163AEDD7AA97F9BBBF7348E062D66EB1A289EC9583796\ -6937399D5F34CE0DB5FCF03BC7CB7DCD - -6A01830AF3889A25183244DECB508BD01253D5B508AB490D3124AFBF42626B2E\ -70894E9B562B288D0A2450CFACF14A0DDAE5C04716E5A0082C33981F6037D23D\ -5E045EE1EF2283FB8B6378A914C5D9441627A722C282FF452E25A7EA608D69CE\ -E4393A0725D17963D0342684F255496D8A18C2961145315130549311FC07F031\ -2FB78E6077334F87EAA873BEE8AA95698996EB21375EB2B4EF53C14401207DEB\ -4568398E5DD9A7CF97E8C9663E23334B46912F8344C19EFCF8C2BA6F04325F1A\ -27E062B62A58D0766FC6DB4D2C6A1928604B0175D872D16B7908EBC041761187\ -CC785526C2A3873FEAC3A642BB39F5351550AF9770C328AF7B:\ -9299624AC4498D0CB3AB6CAA70877C0768DE74F29164DB203657ED25C11FE811\ -491DC51C79BB8B7E4BAF7944C1A2DEB6 - -B3C5E74B69933C2533106C563B4CA20238F2B6E675E8681E34A389894785BDAD\ -E59652D4A73D80A5C85BD454FD1E9FFDAD1C3815F5038E9EF432AAC5C3C4FE84\ -0CC370CF86580A6011778BBEDAF511A51B56D1A2EB68394AA299E26DA9ADA6A2\ -F39B9FAFF7FBA457689B9C1A577B2A1E505FDF75C7A0A64B1DF81B3A356001BF\ -0DF4E02A1FC59F651C9D585EC6224BB279C6BEBA2966E8882D68376081B98746\ -8E7AED1EF90EBD090AE825795CDCA1B4F09A979C8DFC21A48D8A53CDBB26C4DB\ -547FC06EFE2F9850EDD2685A4661CB4911F165D4B63EF25B87D0A96D3DFF6AB0\ -758999AAD214D07BD4F133A6734FDE445FE474711B69A98F7E2B:\ -B9E53AD62D831A701687603DE34A414AF823F4B5E2203A44C0EE09EE12E943AF\ -F5F7368090B7B07F4CB765212A8C83D3 - -83AF34279CCB5430FEBEC07A81950D30F4B66F484826AFEE7456F0071A51E1BB\ -C55570B5CC7EC6F9309C17BF5BEFDD7C6BA6E968CF218A2B34BD5CF927AB846E\ -38A40BBD81759E9E33381016A755F699DF35D660007B5EADF292FEEFB735207E\ -BF70B5BD17834F7BFA0E16CB219AD4AF524AB1EA37334AA66435E5D397FC0A06\ -5C411EBBCE32C240B90476D307CE802EC82C1C49BC1BEC48C0675EC2A6C6F3ED\ -3E5B741D13437095707C565E10D8A20B8C20468FF9514FCF31B4249CD82DCEE5\ -8C0A2AF538B291A87E3390D737191A07484A5D3F3FB8C8F15CE056E5E5F8FEBE\ -5E1FB59D6740980AA06CA8A0C20F5712B4CDE5D032E92AB89F0AE1:\ -EDDEE421E72E69DC28F10CB7587CBE390960623E6EC8B7F6AC4650D5FA48148D\ -3270EE90F7C5B232634811B78AB90216 - -A7ED84749CCC56BB1DFBA57119D279D412B8A986886D810F067AF349E8749E9E\ -A746A60B03742636C464FC1EE233ACC52C1983914692B64309EDFDF29F1AB912\ -EC3E8DA074D3F1D231511F5756F0B6EEAD3E89A6A88FE330A10FACE267BFFBFC\ -3E3090C7FD9A850561F363AD75EA881E7244F80FF55802D5EF7A1A4E7B89FCFA\ -80F16DF54D1B056EE637E6964B9E0FFD15B6196BDD7DB270C56B47251485348E\ -49813B4EB9ED122A01B3EA45AD5E1A929DF61D5C0F3E77E1FDC356B63883A60E\ -9CBB9FC3E00C2F32DBD469659883F690C6772E335F617BC33F161D6F6984252E\ -E12E62B6000AC5231E0C9BC65BE223D8DFD94C5004A101AF9FD6C0FB:\ -C60AC87DFB3B2ED2129CF3FDDCA95BCEECD088E726B7BDDCFC6DA875DFE1BFAA\ -6B148580F4F28965584B857E7534D39F - -A6FE30DCFCDA1A329E82AB50E32B5F50EB25C873C5D2305860A835AECEE6264A\ -A36A47429922C4B8B3AFD00DA16035830EDB897831C4E7B00F2C23FC0B15FDC3\ -0D85FB70C30C431C638E1A25B51CAF1D7E8B050B7F89BFB30F59F0F20FECFF3D\ -639ABC4255B3868FC45DD81E47EB12AB40F2AAC735DF5D1DC1AD997CEFC4D836\ -B854CEE9AC02900036F3867FE0D84AFFF37BDE3308C2206C62C4743375094108\ -877C73B87B2546FE05EA137BEDFC06A2796274099A0D554DA8F7D7223A48CBF3\ -1B7DECAA1EBC8B145763E3673168C1B1B715C1CD99ECD3DDB238B06049885ECA\ -D9347C2436DFF32C771F34A38587A44A82C5D3D137A03CAA27E66C8FF6:\ -C4D228990D399E4841E24A69AFD6A8619E22FBA0694960F261F5322BCD1BE89C\ -B7DC8DB635878D689D806D12E07852F6 - -83167FF53704C3AA19E9FB3303539759C46DD4091A52DDAE9AD86408B6933598\ -9E61414BC20AB4D01220E35241EFF5C9522B079FBA597674C8D716FE441E5661\ -10B6211531CECCF8FD06BC8E511D00785E57788ED9A1C5C73524F01830D2E114\ -8C92D0EDC97113E3B7B5CD3049627ABDB8B39DD4D6890E0EE91993F92B03354A\ -88F52251C546E64434D9C3D74544F23FB93E5A2D2F1FB15545B4E1367C97335B\ -0291944C8B730AD3D4789273FA44FB98D78A36C3C3764ABEEAC7C569C1E43A35\ -2E5B770C3504F87090DEE075A1C4C85C0C39CF421BDCC615F9EFF6CB4FE64680\ -04AECE5F30E1ECC6DB22AD9939BB2B0CCC96521DFBF4AE008B5B46BC006E:\ -9DE565FD096433AF93D50065595AE778A2D1FA9A726B2193E67DD999D061F22B\ -33188B5361C673672CFE9AB60A40460E - -3A3A819C48EFDE2AD914FBF00E18AB6BC4F14513AB27D0C178A188B61431E7F5\ -623CB66B23346775D386B50E982C493ADBBFC54B9A3CD383382336A1A0B2150A\ -15358F336D03AE18F666C7573D55C4FD181C29E6CCFDE63EA35F0ADF5885CFC0\ -A3D84A2B2E4DD24496DB789E663170CEF74798AA1BBCD4574EA0BBA40489D764\ -B2F83AADC66B148B4A0CD95246C127D5871C4F11418690A5DDF01246A0C80A43\ -C70088B6183639DCFDA4125BD113A8F49EE23ED306FAAC576C3FB0C1E256671D\ -817FC2534A52F5B439F72E424DE376F4C565CCA82307DD9EF76DA5B7C4EB7E08\ -5172E328807C02D011FFBF33785378D79DC266F6A5BE6BB0E4A92ECEEBAEB1:\ -64D4446F97CDCDDE342BEFDDAC0B19BAA1D03FB28CD774685C49CD98AF388B5D\ -F779F81B8249A00668A8E0FBA42876C5 - -[Skein-512(512)] -:\ -BC5B4C50925519C290CC634277AE3D6257212395CBA733BBAD37A4AF0FA06AF4\ -1FCA7903D06564FEA7A2D3730DBDB80C1F85562DFCC070334EA4D1D9E72CBA7A - -CC:\ -26D8382EBDC39072293DDCDDA6568B4ADD2449A05424A12DFBF11595228E9FBF\ -7C542F25EC0F7348B19AD23EF5E97D45E5CFF7BB9969BE332923F33BE53A6D09 - -41FB:\ -258F3CEEBD9C01271D75ABE73E90085390F54CD318B4D5FA71E8813A541DD96E\ -9DE5A119D053A913296929E263267A3710B3675AB99C42A3F67D96FBE6CA8451 - -1F877C:\ -72DDA5AB6840DBD44CB2CC8220C2E0FB5C435878E00EBBDACF2A5AD2784860BE\ -CB731C821D19E28133320ACA0CC9E41AA9DBF1469F6388C4F74A900EA38A9F5C - -C1ECFDFC:\ -AF443E00D6C8BA0A533F9FB284CC69EA9E17787F2B10FA0013BF86D60A4EC0F7\ -E9785FB74DC97A779832FCEBC931F362B5DD5BB4B4A980D7609A7E0BEE0D6020 - -21F134AC57:\ -C41A9AB3E5B6EDB0C2D05DCE88C16B2A787A514E7C6FA97DA8735462B25D3380\ -46153732D038F64852A451DC57426F1D5352028A0A19723C514C532DAE4ACA9A - -C6F50BB74E29:\ -A8BFC5DAED08C05725E3ECB19FFB34AB8C4C09B6F2F518A6CB320B877BE8C3CE\ -349A100E5ED9F5AF0BEBCC3C07AC42E55C91EBE9EA3DAA88F5217E6696B167FF - -119713CC83EEEF:\ -90E135F85CEAB5AC9314C4DC2AF88585D44A6E395B6BD81365BC2CFA9ECC3824\ -0453BCC543E7A787874B728FE57B6E343C1DB36027A0C87E9B47E803C8217FA4 - -4A4F202484512526:\ -981BEA36316696B7B171AC9DB6A4686A895A50C0ED1B8CAF1D7975F9A7AD27F9\ -CC27F116892DA744BF9A63A354C3FA8F8C22D5FA9BAE936C616BF304DF185CBC - -1F66AB4185ED9B6375:\ -893241922416DE44D3D59003765633D0E67C9D8EF9781F41CC5AA2660FB31FED\ -EEB64324347AA6D071EBB14668D11837F130C46FB291289525CF50B251D08353 - -EED7422227613B6F53C9:\ -3F312715E82DFE72C02FA2A28FBF35A4D0B5D7C1945E58823157DFF5E49E621D\ -A8E8BBAB4030E2D0510CF31BB1A425E8FBD388004D4A799F2D7685E422CDDC8A - -EAEED5CDFFD89DECE455F1:\ -70F487F0E5C35B8A9FA623F321296FE230F71B78814329A2B7713F123B00672F\ -1AC73184DB5E484CDB2AF46B9807383629730B8473F519925C3F7ABA799F8B44 - -5BE43C90F22902E4FE8ED2D3:\ -DE15A598296A36B058F59DFA688C15F8A92433710345FD18AA3BB90A38AD9565\ -01ECFCA1B70B00EA0A567B915D4CF6446402AC1E8BF5FE621D2E7F6114094D9F - -A746273228122F381C3B46E4F1:\ -C62E943AC8257354D221B1350648B38F0F6F3DCE21EBD6F67FE1B578015749E1\ -E4BA26EEE57FF80013514A31A6ACA6DA770884945D1EEF0E2D1473E0D5AE3964 - -3C5871CD619C69A63B540EB5A625:\ -724FD538802B6A11BC9C856A55BB4EEC7AD88738C0614D026E24F4883D873AA3\ -D8EC05CE38F68CB983DBF3770797F62CBD0F263B3C58F0B4C14A3E8691E2D6F9 - -FA22874BCC068879E8EF11A69F0722:\ -DCF9470309678CB649F9AB976C5B68A4904C5A4FC1B270C68865F3F906CD5095\ -C63890479B7BBC086354A8EEC19FA14C67328073A75D7274201E88A3E78104A0 - -52A608AB21CCDD8A4457A57EDE782176:\ -CA2866302B25F886B6A8A82FE84A40DFA5496602E665D3DF0153134E3F6FAA37\ -526A160EC41540E357347252D99AD1EE29762C4663F282C153E63FD7E68D9F18 - -82E192E4043DDCD12ECF52969D0F807EED:\ -31B22976C33ECF524576854357717FAEA05D3A399A8C6EF29538969132F2D3FF\ -8F91EE7372E89C4429189F8C20FE7030D9A6E9D757192F4263719730832830D9 - -75683DCB556140C522543BB6E9098B21A21E:\ -456437D984258C4E35DD2557C5A76D4D160F20BAC68C527B1E0DB30F9556586E\ -46425639C7F95BDFAD6C212BF1575165A3658855DCBAE7084297F6B30FC0847E - -06E4EFE45035E61FAAF4287B4D8D1F12CA97E5:\ -76330B4267B5D26D2858B4740C317675EAC8603F525B1ADFDDCB4AE9E87B81CF\ -9226BDA0AD7A3043B3A6DE7E65D92972AA1A2DC894F3B4DF6D0080DAF42E48C1 - -E26193989D06568FE688E75540AEA06747D9F851:\ -D48BCFB92AC2671E854C8D23218640BED8C096E05FEDB9505DB438806E6A487E\ -D257B205E0DFEAFE0A7712D6B78E19B4A81B5FCF26CC2CF34A1010C26F416223 - -D8DC8FDEFBDCE9D44E4CBAFE78447BAE3B5436102A:\ -50D4671D3737F716647EE911C947443FFB6AB86980BF480FED5EADA0AC43DB11\ -BA812EA7C5135BED9EBD5E3ED64C2370ECFB4C01630C48A0157807E56B76C363 - -57085FD7E14216AB102D8317B0CB338A786D5FC32D8F:\ -94D1E4F3569BF071C876584F64C7A9FF5ACDC7B6C00557A07221F29F16D5EA4A\ -5DAF3C427DE279EEB5C1F5B6C4C164709075D701879307421EF85A86DADD4A43 - -A05404DF5DBB57697E2C16FA29DEFAC8AB3560D6126FA0:\ -5D8B12E9344FC266A237E91D919CD3A7079C7AA6B15198B44C73B5B77CC0191F\ -60234E0DD0D89086ED7E7DF86D0BCF3130321FCB340194942A990C2A3045C820 - -AECBB02759F7433D6FCB06963C74061CD83B5B3FFA6F13C6:\ -B1A228247E67BB27F5CB44E18D2AA0D8CD2F1AD5F21AD7D9B2F86CC736433CFD\ -46B954C009CFC1B42B87570E0C14F57708EDE98EA09312D66E4714D46AB0EE44 - -AAFDC9243D3D4A096558A360CC27C8D862F0BE73DB5E88AA55:\ -D36B86F247D80E3F475CDC115CF4659BBDCF560E8197641F1590B3554759E363\ -0D54AA33C8393E2BA1336C8450736DB04DAF38EF6C532A9A1189043A0CF8C83E - -7BC84867F6F9E9FDC3E1046CAE3A52C77ED485860EE260E30B15:\ -8813B67754B4DEA9B90036F8BB4FA9BEED36681250A2C1A91564C76EF6C1C917\ -38FF206C787DA82BFA79F280C2F1D9E086CA8ADA8198E379EC5637835A0B9FC6 - -FAC523575A99EC48279A7A459E98FF901918A475034327EFB55843:\ -D8F858496D6E56ED38418383C762FC1572EDE99AA48DAE2E557FB624CEEE7515\ -E57FF3FE72EC98ECACE3B140F502D9C7A2B5891BB80EB5349B5A594470D3031C - -0F8B2D8FCFD9D68CFFC17CCFB117709B53D26462A3F346FB7C79B85E:\ -1407A2AD0CC06EFA064AAE9E7D4186F7B3D991531691D0DC13B2C81A8687B034\ -67EE1F27D000FFE0D8E9FE0DCE85AD5779E0F827C97A5777D2EC0694EC6DDE44 - -A963C3E895FF5A0BE4824400518D81412F875FA50521E26E85EAC90C04:\ -5366674ADB264EAAC4824109BC2F923817A2DF058FA3BCE6D91920CCB7E5A044\ -2BF3126688EDF444C1D6CC13AC950EE88A389726A53316E1DF6BCE7FF077AFEB - -03A18688B10CC0EDF83ADF0A84808A9718383C4070C6C4F295098699AC2C:\ -E99A1AEFCC3582D6ACB3EC75FDA02D074DB5D015F84C945C994A92DD2E818711\ -309EFFB6F271A9774233BB9A630DF317DCFABE1EB9FE4FF6F14E8BDBB68D416B - -84FB51B517DF6C5ACCB5D022F8F28DA09B10232D42320FFC32DBECC3835B29:\ -8744C1A732AAC29AF53F55B887DCB340FADEF26CF853C2CEF6AC20E6F278E3DE\ -B5AF9C78E6C0B59E2D791CABEB1DFB321104135E0F9F749E6786BE4F4B19AD9F - -9F2FCC7C90DE090D6B87CD7E9718C1EA6CB21118FC2D5DE9F97E5DB6AC1E9C10:\ -386223818A80AD962E3D79EDAEB76A7FAA6FFA2F464ABF247335DD75C763D6C1\ -213C0A695CB4DFA3B3E9D284CB4B9A2FC2A1113B3B6A072200614BC10886D44A - -DE8F1B3FAA4B7040ED4563C3B8E598253178E87E4D0DF75E4FF2F2DEDD5A0BE0\ -46:\ -7F18283782AED5776F2E28EDF83D067DB193260340FCFB08BA2EEF5C8147823F\ -07C00EBAFBB8447967392B17E2B4D6249FB6E454D45BFCB615A80CB503F269C6 - -62F154EC394D0BC757D045C798C8B87A00E0655D0481A7D2D9FB58D93AEDC676\ -B5A0:\ -50050698334A42BA1DD6AA5AD0EAF8CCCADA992F4A4B14E5229A3AD6A561DC15\ -E06D26A899F3CF6977C1DFBB5815F23461ABC29A2A09FE5190DE5E2F63CACD3A - -B2DCFE9FF19E2B23CE7DA2A4207D3E5EC7C6112A8A22AEC9675A886378E14E5B\ -FBAD4E:\ -211121CE41BDED281FC05F7426DAED575198C307AE107318A282A173B25CF641\ -31874216A71D5C4E5B66C9B78D8D266DAC1AA7773633D4CF5C41C521AF1A3191 - -47F5697AC8C31409C0868827347A613A3562041C633CF1F1F86865A576E02835\ -ED2C2492:\ -55BCDC136A42E740C172545DFD8225C008D31BA2B9B5DE16C36A14D6932ADBA3\ -565549A3B3043C8C8EF7F4DB0BB655A9F7087EE7E0AB4201598AA4EA46F4D256 - -512A6D292E67ECB2FE486BFE92660953A75484FF4C4F2ECA2B0AF0EDCDD4339C\ -6B2EE4E542:\ -EE8B6A342667CB994D579CF80D5BE9D4F816FFFF03BA97B75C9B601FCA358DEA\ -4DA189D8BE7809C248D75600A19973684E2B2065752A31AF386F94E03CD28BD6 - -973CF2B4DCF0BFA872B41194CB05BB4E16760A1840D8343301802576197EC19E\ -2A1493D8F4FB:\ -8C84F238ABEFD36FADBBE91253434DDE7A6CF0A77EEABD2D5DFAECCA4442441B\ -498BE287BA65C0F76EAD4EAA1DF115A3A6A0D4DD0453246E486798587B31B140 - -80BEEBCD2E3F8A9451D4499961C9731AE667CDC24EA020CE3B9AA4BBC0A7F79E\ -30A934467DA4B0:\ -E0D4F5C59F616B29C683B9E6618887AE567DCA178D81E8BE0DD0A52C54D625AF\ -6D6CC9F86E1B0B7DF25B82F3D7CAC58C9875B474CDF9E9B4CB0D4573ECAD90CE - -7ABAA12EC2A7347674E444140AE0FB659D08E1C66DECD8D6EAE925FA451D65F3\ -C0308E29446B8ED3:\ -69DCBDA2A00FD0B92EE7E5B4F36981BEB97E132C8F2E0D7B2B9CD455725E7980\ -0AB9864698B1C0845CCEEEA5E285B45CCE4B4264C0D1FEBE874534170F691094 - -C88DEE9927679B8AF422ABCBACF283B904FF31E1CAC58C7819809F65D5807D46\ -723B20F67BA610C2B7:\ -B99D4BDC59B2F4EB7EC578A6866A88DD1E848BB7D19D9447BAB656C143E7FDA9\ -12959A767E721882A66491299B96DB396F392A688B38DCB020805B8F87168790 - -01E43FE350FCEC450EC9B102053E6B5D56E09896E0DDD9074FE138E603821027\ -0C834CE6EADC2BB86BF6:\ -F5528D909E8F70C9329989EC9F7A1B5DFF6695467447418D70C63E16E7EEF184\ -064963C4E05B2A2A28D7C30A93E3F54FE63A4288B727D2F13495CBD9734CCD5E - -337023370A48B62EE43546F17C4EF2BF8D7ECD1D49F90BAB604B839C2E6E5BD2\ -1540D29BA27AB8E309A4B7:\ -90D7925A328822063A33DF2D74DB9692BD668FE06F2A4156404CE252F29B50CC\ -81AF12B49EEF25525FEC69EB010C3A127668AAB32494B6624104E748B2565519 - -6892540F964C8C74BD2DB02C0AD884510CB38AFD4438AF31FC912756F3EFEC6B\ -32B58EBC38FC2A6B913596A8:\ -EBBF87270FA3DDCF816905B74AC0694E354DEE3952E6E27EFCAB42D74B15F3FE\ -49A2434416932A3942AAFB90C5622D608C86275741D35040E375B000DE899403 - -F5961DFD2B1FFFFDA4FFBF30560C165BFEDAB8CE0BE525845DEB8DC61004B7DB\ -38467205F5DCFB34A2ACFE96C0:\ -73282C3DF72197FC83ADE5E4D263173D4B8FEF58749BCA410C48485DC19B8E6D\ -34D42BBABB5CC8964E3D8E8F9DB60356C9884495CE889BC90972091A065EE4E3 - -CA061A2EB6CEED8881CE2057172D869D73A1951E63D57261384B80CEB5451E77\ -B06CF0F5A0EA15CA907EE1C27EBA:\ -63DCE6FD63AE437494C6F68B3D9249322AB3BB6AB2B9EBD156F22434DD91C463\ -D0D11C5484835BFE34252A0B3674914FD89C25E3EECC374CC20B7C0A397C649E - -1743A77251D69242750C4F1140532CD3C33F9B5CCDF7514E8584D4A5F9FBD730\ -BCF84D0D4726364B9BF95AB251D9BB:\ -B175A67928A446645732F22D10EE101EEA9AADD83BD2BEA38C9E25E1D1F4FF18\ -865578E3115303EEE7857B9D9DECC59AB66F42F2AA70EA8192FE9ABCED5EEB68 - -D8FABA1F5194C4DB5F176FABFFF856924EF627A37CD08CF55608BBA8F1E324D7\ -C7F157298EABC4DCE7D89CE5162499F9:\ -DE5D2A161B5FE2E087476CBF15F8DF9C35E4BE11E9A9EC01EDC3818B88C4998E\ -B0B4D405E7F4C924DDB3B077410CA73D2E7CD3ED6D87AD126190E445CB97D323 - -BE9684BE70340860373C9C482BA517E899FC81BAAA12E5C6D7727975D1D41BA8\ -BEF788CDB5CF4606C9C1C7F61AED59F97D:\ -EB994A487424E5EDB1EC536E9CB93AEDA329C983F484C7E4F1BEDD7CD1142B85\ -191A9829E9AC098313FEB9BFB9DC69F12B2FB348AD3903A170EE4567D13CE815 - -7E15D2B9EA74CA60F66C8DFAB377D9198B7B16DEB6A1BA0EA3C7EE2042F89D37\ -86E779CF053C77785AA9E692F821F14A7F51:\ -48A20D309E2F8F57C6EA2E0BA7CFAB190C1DA0E0E0AE1FCE67D1D9AAC18E81A1\ -B7642A3714A355A0FAB20266D67E3170BD0F8D09F8382760AC4758279AC49CB6 - -9A219BE43713BD578015E9FDA66C0F2D83CAC563B776AB9F38F3E4F7EF229CB4\ -43304FBA401EFB2BDBD7ECE939102298651C86:\ -0ED3A9ECAE74DA1FEF8D0A589487B0EC4427C7D6CE39860D13B26747195CD272\ -DC093C40FC4B655406FFFBDEAE9311371FA2628EC9983B0B57AF62B285BB6C6D - -C8F2B693BD0D75EF99CAEBDC22ADF4088A95A3542F637203E283BBC3268780E7\ -87D68D28CC3897452F6A22AA8573CCEBF245972A:\ -FCC42400748C3911AB68C19FFBB6C7849ACFE78B524285143F4C136154BC5164\ -76B57144462CF89EAF1ED18BA1C1E4C56F75EB688D686046B8EFE7E26373812E - -EC0F99711016C6A2A07AD80D16427506CE6F441059FD269442BAAA28C6CA037B\ -22EEAC49D5D894C0BF66219F2C08E9D0E8AB21DE52:\ -55F603ADC026859C471A94E0C1B604A9FF080D0609EE3C0BF9484BB8FBBD7C8F\ -54F4B8EC470B77025C63BA5A02528B715562627268AC42F04B8143D26EEB05F5 - -0DC45181337CA32A8222FE7A3BF42FC9F89744259CFF653504D6051FE84B1A7F\ -FD20CB47D4696CE212A686BB9BE9A8AB1C697B6D6A33:\ -1129594301D1DF777FE7998448DAD08AD3A8E4FDA94C35AEADE6615AA1982A5C\ -A07669C873A58E623C0C386DC72630A350B0FA5520E7CDA8D36BD506D5B24DBF - -DE286BA4206E8B005714F80FB1CDFAEBDE91D29F84603E4A3EBC04686F99A46C\ -9E880B96C574825582E8812A26E5A857FFC6579F63742F:\ -9F56190D40C0964F698C06D824A4C402AD47C95418C6FDF43ACEB9AD7D092F7F\ -62FF9D3F0625E15CDE1CE3E6118861449390B5AFE73B1865EC4F1F3FDBA89BF8 - -EEBCC18057252CBF3F9C070F1A73213356D5D4BC19AC2A411EC8CDEEE7A571E2\ -E20EAF61FD0C33A0FFEB297DDB77A97F0A415347DB66BCAF:\ -C74B2D83470EDF076ACCBED486888CCBB98E6693F9BCB54210CDD181A834CFE9\ -E848270D985F883232D682F05FD225BD283E90EABD8A493EC713408EBAF34AE3 - -416B5CDC9FE951BD361BD7ABFC120A5054758EBA88FDD68FD84E39D3B09AC254\ -97D36B43CBE7B85A6A3CEBDA8DB4E5549C3EE51BB6FCB6AC1E:\ -F1BFA1067FEB68DF42C69CF4944E2F57BF17291086ADBAD592CC0C80C4DC0A97\ -D2A9B001BA57AEA4D81E892F54BBA9387FFBDF3A86250E81E5D12406E2ED57DE - -5C5FAF66F32E0F8311C32E8DA8284A4ED60891A5A7E50FB2956B3CBAA79FC66C\ -A376460E100415401FC2B8518C64502F187EA14BFC9503759705:\ -C4915196AEC17B0CD50C64D214CD4D20CB7ADD653DB9C623B76363C8D14B8FEF\ -E0B883B3F36C39C3F9E18958B0558F0D86FC6D4A52BAC59B74CB58A68D4C8D8B - -7167E1E02BE1A7CA69D788666F823AE4EEF39271F3C26A5CF7CEE05BCA831610\ -66DC2E217B330DF821103799DF6D74810EED363ADC4AB99F36046A:\ -EDDA51E38622C3DA0F007566F51F311AE06492C9D87F3190B0D74DC44348B1D2\ -A8A6179AFB293C0205C3EDA1B5669CD951F477F885573A1C8C8D322BDD7ED5D2 - -2FDA311DBBA27321C5329510FAE6948F03210B76D43E7448D1689A063877B6D1\ -4C4F6D0EAA96C150051371F7DD8A4119F7DA5C483CC3E6723C01FB7D:\ -66EC650CF34F084FE71FDF06FB3BF4BD17E1EBD545E878984125C31F862B939A\ -3AF25B37D17732C3DEA4C2A8845EF1C49935F0473AF0551AB54950A8B92980A7 - -95D1474A5AAB5D2422ACA6E481187833A6212BD2D0F91451A67DD786DFC91DFE\ -D51B35F47E1DEB8A8AB4B9CB67B70179CC26F553AE7B569969CE151B8D:\ -51FE1EFC5C659E5B7F94BBBF06078E119F4BBE8A40526F9A692AE970A58A0D24\ -C8E67B94411109CE0445F425E24C94A52DF48338E3943952142A4DBA625F4BA0 - -C71BD7941F41DF044A2927A8FF55B4B467C33D089F0988AA253D294ADDBDB325\ -30C0D4208B10D9959823F0C0F0734684006DF79F7099870F6BF53211A88D:\ -A22E76813AD33D1CD84F1BC536FCE8CFEDA449E02A67D4B58F96C9689389EA40\ -688A785991B90420F4A60244FBBA85CF9677D519FE7ACE300199B0CACE944D46 - -F57C64006D9EA761892E145C99DF1B24640883DA79D9ED5262859DCDA8C3C32E\ -05B03D984F1AB4A230242AB6B78D368DC5AAA1E6D3498D53371E84B0C1D4BA:\ -AB7A725BD93AB805D89D81EB6766E46E1A0045E654B82B389E6B481EAA7D26FE\ -39A471CCF99B6E87EB8E2A9C0D7CADAD4B2CB401FFE5BD85DE8D0235E8B5BDFD - -E926AE8B0AF6E53176DBFFCC2A6B88C6BD765F939D3D178A9BDE9EF3AA131C61\ -E31C1E42CDFAF4B4DCDE579A37E150EFBEF5555B4C1CB40439D835A724E2FAE7:\ -2DF35398690D99075BC67BDE85D7CDF512DF9F05FFF16CFD1AEF3F7E641961E6\ -0DAF81FD8F9A625FE9149866FDC69F73C58AAE9F758AB5EA3011C67649E3F0B0 - -16E8B3D8F988E9BB04DE9C96F2627811C973CE4A5296B4772CA3EEFEB80A652B\ -DF21F50DF79F32DB23F9F73D393B2D57D9A0297F7A2F2E79CFDA39FA393DF1AC\ -00:\ -342B05F8A6BA4899E48153C11A90D3635ACA67A5852E706ECF2EB425D41372A7\ -E62BA8EFEA5A6D5C1A338B060C3299A134D1D9139E3D96F4566A6CF15582DE22 - -FC424EEB27C18A11C01F39C555D8B78A805B88DBA1DC2A42ED5E2C0EC737FF68\ -B2456D80EB85E11714FA3F8EABFB906D3C17964CB4F5E76B29C1765DB03D91BE\ -37FC:\ -81119F5333D909808F37F4D9C00DD2C9B7F9B32608C6A517881155387A51141B\ -FB945285F29FFCD79799B6E76265FD1940CCDEC9A591CBBBE19204374A533343 - -ABE3472B54E72734BDBA7D9158736464251C4F21B33FBBC92D7FAC9A35C4E332\ -2FF01D2380CBAA4EF8FB07D21A2128B7B9F5B6D9F34E13F39C7FFC2E72E47888\ -599BA5:\ -F8225F85838F81B6114F30B69DDD4668D7BD8BA357D283B4DF178380D8AAA0B8\ -F10B6E85AFB7356C206B43E4EF2E1B1EE0073A4BE042AF3F94C489902AE9C5AA - -36F9F0A65F2CA498D739B944D6EFF3DA5EBBA57E7D9C41598A2B0E4380F3CF4B\ -479EC2348D015FFE6256273511154AFCF3B4B4BF09D6C4744FDD0F62D75079D4\ -40706B05:\ -436067709B778CD3B60934649C8942D1930D74C36F8308686FB18B39E01DECFC\ -C34EDB363D7EF2FD51353D571BE1019F119EE79A5DA61898927E6DB5BE909D69 - -ABC87763CAE1CA98BD8C5B82CABA54AC83286F87E9610128AE4DE68AC95DF5E3\ -29C360717BD349F26B872528492CA7C94C2C1E1EF56B74DBB65C2AC351981FDB\ -31D06C77A4:\ -DC4DCE2DBEC1A6E2BFC964C6F7D2A58F0A0718B0146BB3E0611D6D8B7269C357\ -C508BF5F1A3723EC373A7B225D9B9941134B2F6D649EBF0E8E1B69E344072B62 - -94F7CA8E1A54234C6D53CC734BB3D3150C8BA8C5F880EAB8D25FED13793A9701\ -EBE320509286FD8E422E931D99C98DA4DF7E70AE447BAB8CFFD92382D8A77760\ -A259FC4FBD72:\ -C382A4AC5F26F5C77BD8908AF7AC65C596BCCD16F08D74B5C9CFF3582A1B8B05\ -C7AB4DC81C564A856E1F364FD2089DDEB5652C695A5D567177463DADF8F5872B - -13BD2811F6ED2B6F04FF3895ACEED7BEF8DCD45EB121791BC194A0F806206BFF\ -C3B9281C2B308B1A729CE008119DD3066E9378ACDCC50A98A82E20738800B6CD\ -DBE5FE9694AD6D:\ -54BDAFE6E565E86C38D28F6C9A39B4152033F87206C50B6A78F9CE41501F5A7B\ -1DE3BAF6B1A41251F95A859F0106CE5B9226CA73BDFE39E947AED902B5038715 - -1EED9CBA179A009EC2EC5508773DD305477CA117E6D569E66B5F64C6BC64801C\ -E25A8424CE4A26D575B8A6FB10EAD3FD1992EDDDEEC2EBE7150DC98F63ADC323\ -7EF57B91397AA8A7:\ -C326014CBAAD2173D04C15C8F33C864EFD5A9683A360DB013387C85B01277053\ -02DB83AFFA28790AEDB2EE9AB88DA895E2F4B0F50180444F13564903D853F989 - -BA5B67B5EC3A3FFAE2C19DD8176A2EF75C0CD903725D45C9CB7009A900C0B0CA\ -7A2967A95AE68269A6DBF8466C7B6844A1D608AC661F7EFF00538E323DB5F2C6\ -44B78B2D48DE1A08AA:\ -6560BBB2164B7A1D0B322618AABA50C12B331F82C2A2CFB5A3237ED9D51A19F7\ -A0D4E6CCFE13C6C068B18AB38A3A635E2548F705CBA60176FD6F2D22F32C4791 - -0EFA26AC5673167DCACAB860932ED612F65FF49B80FA9AE65465E5542CB62075\ -DF1C5AE54FBA4DB807BE25B070033EFA223BDD5B1D3C94C6E1909C02B620D4B1\ -B3A6C9FED24D70749604:\ -F9EE46172FB8F055AFD51FD591C3EB21083D21D6C5B6EE4061CA8A54BEDD5A75\ -E4E086F962FD9D9AE62FCF9390AC55858AF2E94216A3426FEBB5ED17D148EA88 - -BBFD933D1FD7BF594AC7F435277DC17D8D5A5B8E4D13D96D2F64E771ABBD51A5\ -A8AEA741BECCBDDB177BCEA05243EBD003CFDEAE877CCA4DA94605B67691919D\ -8B033F77D384CA01593C1B:\ -B1C25A6252AC357CECDCF955EF97DEFC6161E1B813EAEB502AE4CEDD0329EFF9\ -54A037FDB7C32D7F4B1BB93057A5503D617768E0A7FA6DE9C3876F43F2B36FC8 - -90078999FD3C35B8AFBF4066CBDE335891365F0FC75C1286CDD88FA51FAB94F9\ -B8DEF7C9AC582A5DBCD95817AFB7D1B48F63704E19C2BAA4DF347F48D4A6D603\ -013C23F1E9611D595EBAC37C:\ -2CA0D306ED30D5B37F7AF61E7F2AE1E9485EBE90167D7C270572D57703823B7E\ -63EA55D90D4197A6FBB7A7A1FC383FCEFE9F7B291722F50F566D4D4EDEC36748 - -64105ECA863515C20E7CFBAA0A0B8809046164F374D691CDBD6508AAABC1819F\ -9AC84B52BAFC1B0FE7CDDBC554B608C01C8904C669D8DB316A0953A4C68ECE32\ -4EC5A49FFDB59A1BD6A292AA0E:\ -D87CDC2DEB84E484322C08D2CD8C841B0E2E8A06510188C42724EBC7F92AC2F9\ -72849C963839FC20625FDDC74DDFE730BEB7F1AC22CFEB9C08083FFEC5F7C171 - -D4654BE288B9F3B711C2D02015978A8CC57471D5680A092AA534F7372C71CEAA\ -B725A383C4FCF4D8DEAA57FCA3CE056F312961ECCF9B86F14981BA5BED6AB5B4\ -498E1F6C82C6CAE6FC14845B3C8A:\ -6D7181F90BD05CE2CE59A4AB86253BD919F8155381E70B2885BED000C3171328\ -3390F147805E8556BF9C9CB6399236166C82CB8572B1A3146ADC4EE679AA3F17 - -12D9394888305AC96E65F2BF0E1B18C29C90FE9D714DD59F651F52B88B3008C5\ -88435548066EA2FC4C101118C91F32556224A540DE6EFDDBCA296EF1FB00341F\ -5B01FECFC146BDB251B3BDAD556CD2:\ -FF5B17EE99E24C74058F479257CCE7A381DAF407CD967903C801647EA60EBF1F\ -E910922788471BF1E0B609280AE7A7943966FF2836FDA6989057E04F07A46498 - -871A0D7A5F36C3DA1DFCE57ACD8AB8487C274FAD336BC137EBD6FF4658B547C1\ -DCFAB65F037AA58F35EF16AFF4ABE77BA61F65826F7BE681B5B6D5A1EA8085E2\ -AE9CD5CF0991878A311B549A6D6AF230:\ -06EF93E8D37636F73D67F4230160914ED05CD0CDBADE77BD69B32E02C6A419FC\ -220F6E71E1B269A76A1F7F4C4E3CB49C0E4C3CA3466C58C25E2930C71DD1BF0C - -E90B4FFEF4D457BC7711FF4AA72231CA25AF6B2E206F8BF859D8758B89A7CD36\ -105DB2538D06DA83BAD5F663BA11A5F6F61F236FD5F8D53C5E89F183A3CEC615\ -B50C7C681E773D109FF7491B5CC22296C5:\ -F52A2BC9DC33EEACC30211F4B92E882AB8DD761394B1D09E22A91684319EEAB4\ -FEAA71C24CFA11DA3ADD047672F19D47B48C90D50C9DBF5E2C0A50B995CF57AE - -E728DE62D75856500C4C77A428612CD804F30C3F10D36FB219C5CA0AA30726AB\ -190E5F3F279E0733D77E7267C17BE27D21650A9A4D1E32F649627638DBADA970\ -2C7CA303269ED14014B2F3CF8B894EAC8554:\ -ED3D326E1E618D140BC3AC49DB60C96B4D04252DE2D44DE3B414D8F96C05A6E3\ -7C82B1DC515DF1CF784AADE0201259CAB249924776C7C4E0612240F30DDEFBDE - -6348F229E7B1DF3B770C77544E5166E081850FA1C6C88169DB74C76E42EB983F\ -ACB276AD6A0D1FA7B50D3E3B6FCD799EC97470920A7ABED47D288FF883E24CA2\ -1C7F8016B93BB9B9E078BDB9703D2B781B616E:\ -A811AFFA9ECD8D88B51AB201F0FC33A137ED91F0953E819F9BACFA19BBACE506\ -44DFEA77823BB9BAE5D6FD79B81B0AC7F202A386CFF6EFF9E7731553645975B9 - -4B127FDE5DE733A1680C2790363627E63AC8A3F1B4707D982CAEA258655D9BF1\ -8F89AFE54127482BA01E08845594B671306A025C9A5C5B6F93B0A39522DC8774\ -37BE5C2436CBF300CE7AB6747934FCFC30AEAAF6:\ -FC3AE8D1C50A634D96334E5A2371CEC832557B0C870CA70E08DFDE5922688008\ -6E2A38A483FD1CE68C2085F804FC0C29417203CB5223F69A6DF20292DF13721E - -08461F006CFF4CC64B752C957287E5A0FAABC05C9BFF89D23FD902D324C79903\ -B48FCB8F8F4B01F3E4DDB483593D25F000386698F5ADE7FAADE9615FDC50D327\ -85EA51D49894E45BAA3DC707E224688C6408B68B11:\ -507D99CF8498582388396E9DA2103F885EEE826349EBD8639B37B133877108AB\ -B1C34AF892D1676F507EE40171DE00502A71AAE08E5222858BA4F330D2AA0393 - -68C8F8849B120E6E0C9969A5866AF591A829B92F33CD9A4A3196957A148C4913\ -8E1E2F5C7619A6D5EDEBE995ACD81EC8BB9C7B9CFCA678D081EA9E25A75D39DB\ -04E18D475920CE828B94E72241F24DB72546B352A0E4:\ -29B639522730DB5E24FEEE90619BB57274871EF65FFC8C98B57CF6EEA0394A2B\ -7EAF3C177108E5DBDA22165C9C80BB0BA408F1E66603D0F9D48F22B3907E2122 - -B8D56472954E31FB54E28FCA743F84D8DC34891CB564C64B08F7B71636DEBD64\ -CA1EDBDBA7FC5C3E40049CE982BBA8C7E0703034E331384695E9DE76B5104F2F\ -BC4535ECBEEBC33BC27F29F18F6F27E8023B0FBB6F563C:\ -AAC3A8FED5D9D887EDFDDC24477A9043CE1A66BC58324AB1539C5D8E82259332\ -77AC3F8F99E69233F12D8CBA7642A50C9D12D314027385D8D2B743C884B27D50 - -0D58AC665FA84342E60CEFEE31B1A4EACDB092F122DFC68309077AED1F3E528F\ -578859EE9E4CEFB4A728E946324927B675CD4F4AC84F64DB3DACFE850C1DD187\ -44C74CECCD9FE4DC214085108F404EAB6D8F452B5442A47D:\ -04B926518D363B85967CAB6A9CF36435EB6E06D987A023F50D8A6849219ED452\ -760A2997E7C7E4B9A4D2818B617CF81E7F406AEC7D0799939B6369390CF47D8C - -1755E2D2E5D1C1B0156456B539753FF416651D44698E87002DCF61DCFA2B4E72\ -F264D9AD591DF1FDEE7B41B2EB00283C5AEBB3411323B672EAA145C512518510\ -4F20F335804B02325B6DEA65603F349F4D5D8B782DD3469CCD:\ -C70C68FD238DBFB07C9CE17DEF173A1D5BD41B49DFF3D401FA096B421E449926\ -C7AA366892301F2C17FB6EFF3C1C7AE8637AF2F4A739A748AECBE1463FF5F0D7 - -B180DE1A611111EE7584BA2C4B020598CD574AC77E404E853D15A101C6F5A2E5\ -C801D7D85DC95286A1804C870BB9F00FD4DCB03AA8328275158819DCAD7253F3\ -E3D237AEAA7979268A5DB1C6CE08A9EC7C2579783C8AFC1F91A7:\ -21CF4A6B86445F9BD8AD570ABE6BBAB75F6ECFC3FA6C935BE968A7F6E8A00F15\ -C4683300FD07DBD245250CDE363D9478CB8F73FA0443956F666BBAFAD7F05190 - -CF3583CBDFD4CBC17063B1E7D90B02F0E6E2EE05F99D77E24E560392535E47E0\ -5077157F96813544A17046914F9EFB64762A23CF7A49FE52A0A4C01C630CFE87\ -27B81FB99A89FF7CC11DCA5173057E0417B8FE7A9EFBA6D95C555F:\ -2915D4D41FC7AD3EBBB2720E8D2789984F800E5EBAE0C9376D0197B95B81E064\ -120D9A040D2A7A6320B4CF06C6676E5923472B8FA5B9034A01AEFA48F41DB008 - -072FC02340EF99115BAD72F92C01E4C093B9599F6CFC45CB380EE686CB5EB019\ -E806AB9BD55E634AB10AA62A9510CC0672CD3EDDB589C7DF2B67FCD3329F61B1\ -A4441ECA87A33C8F55DA4FBBAD5CF2B2527B8E983BB31A2FADEC7523:\ -1DF71071B1815DCBD17C3B486FA0328D95D648DD58C9EDE85CD6AA0574E74D35\ -151CA6A984C8D46B0CC1B9310E22092627D8A831AB9551798963A6301420F9D0 - -76EECF956A52649F877528146DE33DF249CD800E21830F65E90F0F25CA9D6540\ -FDE40603230ECA6760F1139C7F268DEBA2060631EEA92B1FFF05F93FD5572FBE\ -29579ECD48BC3A8D6C2EB4A6B26E38D6C5FBF2C08044AEEA470A8F2F26:\ -B29A8B98E99E794B841D7525F4DBC88B52982642884B367F316AD2C611D1E3CF\ -A5D0547BA9FA654A4A345AE7F2C39736959C217AA1A07DD8D6D0224F4BC6B385 - -7ADC0B6693E61C269F278E6944A5A2D8300981E40022F839AC644387BFAC9086\ -650085C2CDC585FEA47B9D2E52D65A2B29A7DC370401EF5D60DD0D21F9E2B90F\ -AE919319B14B8C5565B0423CEFB827D5F1203302A9D01523498A4DB10374:\ -6233238EDDD88518DD42DB92974C53386350172A3EE9D84AC898BCFA6D8C148D\ -D3EDEEABADB9A37D1FC95AB991F737131748CB969FB6F60C57826FB48CE90DF0 - -E1FFFA9826CCE8B86BCCEFB8794E48C46CDF372013F782ECED1E378269B7BE2B\ -7BF51374092261AE120E822BE685F2E7A83664BCFBE38FE8633F24E633FFE198\ -8E1BC5ACF59A587079A57A910BDA60060E85B5F5B6F776F0529639D9CCE4BD:\ -7B13BD46E765B6BFCB652B4E8CF60ABC47CE6ADC26264017F906EAFD45FF7B5A\ -ECE954205F6F74EB696DEDD0C8B24AB7B5D86F4E21F2AB5E82C42CCB3139BF6C - -69F9ABBA65592EE01DB4DCE52DBAB90B08FC04193602792EE4DAA263033D5908\ -1587B09BBE49D0B49C9825D22840B2FF5D9C5155F975F8F2C2E7A90C75D2E4A8\ -040FE39F63BBAFB403D9E28CC3B86E04E394A9C9E8065BD3C85FA9F0C7891600:\ -11CE4D9928E218504F4823B98BD9C90EA4AADE88B34CDA898C3470E0F8277DB5\ -16A16E5A890860FD353DE84C81CBB2D78443A4338582B98D26B33D516ABEA998 - -38A10A352CA5AEDFA8E19C64787D8E9C3A75DBF3B8674BFAB29B5DBFC15A63D1\ -0FAE66CD1A6E6D2452D557967EAAD89A4C98449787B0B3164CA5B717A93F24EB\ -0B506CEB70CBBCB8D72B2A72993F909AAD92F044E0B5A2C9AC9CB16A0CA2F81F\ -49:\ -AF2A7EAB5EF18F204497D6B764937EE14EEE7A28C37DD9CB816E8F937530AEFC\ -B8A225E3255518A4199270D4F5477E577B68FD0E7FE4B886E173A5B84106780B - -6D8C6E449BC13634F115749C248C17CD148B72157A2C37BF8969EA83B4D6BA8C\ -0EE2711C28EE11495F43049596520CE436004B026B6C1F7292B9C436B055CBB7\ -2D530D860D1276A1502A5140E3C3F54A93663E4D20EDEC32D284E25564F62495\ -5B52:\ -58B2878C79A8CD7AFD1FF815204DC38B4B483E5E543C16C5E45B55EEEB037552\ -FD50B08D43ABBA3AF6E25C49617AD8170C8FC0A5B9593C6A0CEE8C767ED032EB - -6EFCBCAF451C129DBE00B9CEF0C3749D3EE9D41C7BD500ADE40CDC65DEDBBBAD\ -B885A5B14B32A0C0D087825201E303288A733842FA7E599C0C514E078F05C821\ -C7A4498B01C40032E9F1872A1C925FA17CE253E8935E4C3C71282242CB716B20\ -89CCC1:\ -C2FA1BE8AED5582F8E39E922C3917A4E030C8FBE07CDCD1B8888E9590DD31649\ -DE2B03DA03FD4F15825CCFF82DBD6D600C69B4872A843E2B121981BC65E0A20B - -433C5303131624C0021D868A30825475E8D0BD3052A022180398F4CA4423B982\ -14B6BEAAC21C8807A2C33F8C93BD42B092CC1B06CEDF3224D5ED1EC29784444F\ -22E08A55AA58542B524B02CD3D5D5F6907AFE71C5D7462224A3F9D9E53E7E084\ -6DCBB4CE:\ -3B06E7D687E0F3C2F6A7645281F467D50853AFB2A87BC73408BA7951598BF486\ -9598681C05B941049C1B106256B412CA6107200858570032E68104318BC5341B - -A873E0C67CA639026B6683008F7AA6324D4979550E9BCE064CA1E1FB97A30B14\ -7A24F3F666C0A72D71348EDE701CF2D17E2253C34D1EC3B647DBCEF2F879F4EB\ -881C4830B791378C901EB725EA5C172316C6D606E0AF7DF4DF7F76E490CD30B2\ -BADF45685F:\ -765637B71F0546AEB0394BB91FDB8FEF6DD85ADFDE6E06A321DA24033EE8E3B0\ -403646F863F97C6BB9CA5B8702C6BCC691DB182D38DB19BA2B8595776F5D775E - -006917B64F9DCDF1D2D87C8A6173B64F6587168E80FAA80F82D84F60301E561E\ -312D9FBCE62F39A6FB476E01E925F26BCC91DE621449BE6504C504830AAE3940\ -96C8FC7694651051365D4EE9070101EC9B68086F2EA8F8AB7B811EA8AD934D5C\ -9B62C60A4771:\ -278351D6F90B051AC4804C8D85A30C56A242FDF1DF556773F7A1A67B6BDE8D6E\ -49625D70EC13C9FD974D36C782E24BDD70CABC84B4D7D7607719E6CCB88F5611 - -F13C972C52CB3CC4A4DF28C97F2DF11CE089B815466BE88863243EB318C2ADB1\ -A417CB1041308598541720197B9B1CB5BA2318BD5574D1DF2174AF14884149BA\ -9B2F446D609DF240CE335599957B8EC80876D9A085AE084907BC5961B20BF5F6\ -CA58D5DAB38ADB:\ -252C064C54A56F4C21888CA2F1B8CD3F56D46C7A8BD65CCF30674001FE58ECF5\ -2FC0F571B8FFEF4C8970A227F39F8E61CD2068DFAA79FF86CEE6032E020C1D0A - -E35780EB9799AD4C77535D4DDB683CF33EF367715327CF4C4A58ED9CBDCDD486\ -F669F80189D549A9364FA82A51A52654EC721BB3AAB95DCEB4A86A6AFA93826D\ -B923517E928F33E3FBA850D45660EF83B9876ACCAFA2A9987A254B137C6E140A\ -21691E1069413848:\ -31CD4B1BC499BE3923D020290E49A9B24FC4A0A7B974AB0BF2447394E193854B\ -9C575D4F8DF12C96A9A1CE2E74B6BB0D731D26CCCD7044CE1D6D7580CE440A4D - -64EC021C9585E01FFE6D31BB50D44C79B6993D72678163DB474947A053674619\ -D158016ADB243F5C8D50AA92F50AB36E579FF2DABB780A2B529370DAA299207C\ -FBCDD3A9A25006D19C4F1FE33E4B1EAEC315D8C6EE1E730623FD1941875B924E\ -B57D6D0C2EDC4E78D6:\ -A1EC50CC515D21489A34BD69C88F2C45EE97B0A39B9AAAC83D3B008FD856ECD5\ -661A78A46DC73D87145A3DE34D702E1E6F08B9B4E52E5A0042F4C71865448C74 - -5954BAB512CF327D66B5D9F296180080402624AD7628506B555EEA8382562324\ -CF452FBA4A2130DE3E165D11831A270D9CB97CE8C2D32A96F50D71600BB4CA26\ -8CF98E90D6496B0A6619A5A8C63DB6D8A0634DFC6C7EC8EA9C006B6C456F1B20\ -CD19E781AF20454AC880:\ -C0F9653A4BC7526DFA97E4EDB6672B04864195BAE6FC0A1113A3B83DBD2C8855\ -B576845F948302947E7EFD983F49AA802A21DFF605EC22465B47E92593B7699D - -03D9F92B2C565709A568724A0AFF90F8F347F43B02338F94A03ED32E6F33666F\ -F5802DA4C81BDCE0D0E86C04AFD4EDC2FC8B4141C2975B6F07639B1994C973D9\ -A9AFCE3D9D365862003498513BFA166D2629E314D97441667B007414E739D7FE\ -BF0FE3C32C17AA188A8683:\ -6DFA000A05DB40B04F271AD4E92CDDB5283A69D0FDD6B6AAB44930082FA594D5\ -D5F399256953CBBE58679D97BA976C25C766BB1E599BC0B53D3D2B16A7944BC5 - -F31E8B4F9E0621D531D22A380BE5D9ABD56FAEC53CBD39B1FAB230EA67184440\ -E5B1D15457BD25F56204FA917FA48E669016CB48C1FFC1E1E45274B3B47379E0\ -0A43843CF8601A5551411EC12503E5AAC43D8676A1B2297EC7A0800DBFEE0429\ -2E937F21C005F17411473041:\ -5F6DC10F5C7794D94999445A479B1DF6C18E418E0C746F7E7C5C2CD07CE7BAE3\ -723C9146375FD53C31D30B77BA8929ECB4F3F9826171471C5A0060874DBE9221 - -758EA3FEA738973DB0B8BE7E599BBEF4519373D6E6DCD7195EA885FC991D8967\ -62992759C2A09002912FB08E0CB5B76F49162AEB8CF87B172CF3AD190253DF61\ -2F77B1F0C532E3B5FC99C2D31F8F65011695A087A35EE4EEE5E334C369D8EE5D\ -29F695815D866DA99DF3F79403:\ -BE3AF3DBF048265E9A4D4CF2BE74FDAF4919FDDFC787DDE35724C50EED602480\ -59539FA0D291C7FA0782A8BC97FEDF4BC77B3359EB0A6A21A7CB1E157D261A6A - -47C6E0C2B74948465921868804F0F7BD50DD323583DC784F998A93CD1CA4C6EF\ -84D41DC81C2C40F34B5BEE6A93867B3BDBA0052C5F59E6F3657918C382E771D3\ -3109122CC8BB0E1E53C4E3D13B43CE44970F5E0C079D2AD7D7A3549CD75760C2\ -1BB15B447589E86E8D76B1E9CED2:\ -ECAB693D40C8312BBD410A6242020071943AB43AA4229D0881A947C607DCB482\ -1A3FE66742E5DDF9AC5041DA9B1606906957C29CC487E36437BE176BBC4222C6 - -F690A132AB46B28EDFA6479283D6444E371C6459108AFD9C35DBD235E0B6B6FF\ -4C4EA58E7554BD002460433B2164CA51E868F7947D7D7A0D792E4ABF0BE5F450\ -853CC40D85485B2B8857EA31B5EA6E4CCFA2F3A7EF3380066D7D8979FDAC618A\ -AD3D7E886DEA4F005AE4AD05E5065F:\ -059858C913729529293D386929071854485C703BF352A0FCA529779E1207CB50\ -5A8265868347322C303A08940202D386AA6E88753697D7476EF3A7A638DB71D9 - -58D6A99BC6458824B256916770A8417040721CCCFD4B79EACD8B65A3767CE5BA\ -7E74104C985AC56B8CC9AEBD16FEBD4CDA5ADB130B0FF2329CC8D611EB14DAC2\ -68A2F9E633C99DE33997FEA41C52A7C5E1317D5B5DAED35EBA7D5A60E45D1FA7\ -EAABC35F5C2B0A0F2379231953322C4E:\ -C742B9B057466C8A36DA533AC0B518D9C650A9FF6E58E9698FAC412D8F300373\ -61DEA5E178F0BC789778804B1976D8F8DC1A65B68212EC5A6F6EDB1A5DE88951 - -BEFAB574396D7F8B6705E2D5B58B2C1C820BB24E3F4BAE3E8FBCD36DBF734EE1\ -4E5D6AB972AEDD3540235466E825850EE4C512EA9795ABFD33F330D9FD7F79E6\ -2BBB63A6EA85DE15BEAEEA6F8D204A28956059E2632D11861DFB0E65BC07AC8A\ -159388D5C3277E227286F65FF5E5B5AEC1:\ -7123CE99542416A1DB471CDC46CF2120C78DE65114E14D0E91E5FD8C323D58B6\ -6A7D78BE1030904AA1E4F157D9ADB333C01C02F84C0C49D91073178A9F677976 - -8E58144FA9179D686478622CE450C748260C95D1BA43B8F9B59ABECA8D93488D\ -A73463EF40198B4D16FB0B0707201347E0506FF19D01BEA0F42B8AF9E71A1F1B\ -D168781069D4D338FDEF00BF419FBB003031DF671F4A37979564F69282DE9C65\ -407847DD0DA505AB1641C02DEA4F0D834986:\ -B5DBA1E9D437D57D6D8F676A89760B1147454E9E492092CE192F5BDE015FA8C5\ -4361C3E651F76621332817E6B7B9081DA9818F07B3DAAC9C9E34B6F65F349ADC - -B55C10EAE0EC684C16D13463F29291BF26C82E2FA0422A99C71DB4AF14DD9C7F\ -33EDA52FD73D017CC0F2DBE734D831F0D820D06D5F89DACC485739144F8CFD47\ -99223B1AFF9031A105CB6A029BA71E6E5867D85A554991C38DF3C9EF8C1E1E9A\ -7630BE61CAABCA69280C399C1FB7A12D12AEFC:\ -E69B0A4A096714DE5972E51831D6A0A47BF0DCF390325C283B1A78FBB0AED2A4\ -9C3D0EFEDC048985EB5B256D8BC6E1B19CD42ABA2BC18B16FF6B9CCDF45D15EF - -2EEEA693F585F4ED6F6F8865BBAE47A6908AECD7C429E4BEC4F0DE1D0CA0183F\ -A201A0CB14A529B7D7AC0E6FF6607A3243EE9FB11BCF3E2304FE75FFCDDD6C5C\ -2E2A4CD45F63C962D010645058D36571404A6D2B4F44755434D76998E83409C3\ -205AA1615DB44057DB991231D2CB42624574F545:\ -AD134BE6908CFB23FFB8920A7993F803B750695AD7195667B9BD2A09ACCCECA6\ -8B67DE2D3312C8FB04482F543BE20F4F1B216887F6221A452B1D93CE246AD384 - -DAB11DC0B047DB0420A585F56C42D93175562852428499F66A0DB811FCDDDAB2\ -F7CDFFED1543E5FB72110B64686BC7B6887A538AD44C050F1E42631BC4EC8A9F\ -2A047163D822A38989EE4AAB01B4C1F161B062D873B1CFA388FD301514F62224\ -157B9BEF423C7783B7AAC8D30D65CD1BBA8D689C2D:\ -A6D9A83B9A6A258F012844ABB76B5A53B5B06E0E2A2802CBEB7B29074645B736\ -A023FF8CC71627915FCACF734C8BBB6F68DD6FD0E76E73C7556DD5E8D8EEE6F6 - -42E99A2F80AEE0E001279A2434F731E01D34A44B1A8101726921C0590C30F312\ -0EB83059F325E894A5AC959DCA71CE2214799916424E859D27D789437B9D2724\ -0BF8C35ADBAFCECC322B48AA205B293962D858652ABACBD588BCF6CBC388D099\ -3BD622F96ED54614C25B6A9AA527589EAAFFCF17DDF7:\ -1CA44FFD7C894F103CFC3143C94FFCC6BF3B5C9E65BC6E5410D446ED5C72BD66\ -6197CF3EA58688BF06C4BFE3E73F9A3F8CAA5D6CD284E4A5E03E1313ED670B6E - -3C9B46450C0F2CAE8E3823F8BDB4277F31B744CE2EB17054BDDC6DFF36AF7F49\ -FB8A2320CC3BDF8E0A2EA29AD3A55DE1165D219ADEDDB5175253E2D1489E9B6F\ -DD02E2C3D3A4B54D60E3A47334C37913C5695378A669E9B72DEC32AF5434F93F\ -46176EBF044C4784467C700470D0C0B40C8A088C815816:\ -7652A71EE36CA1E3D99AD8868D2268BA933314E1F2D1ECE6E3DC599B9FDC4675\ -3C94BF2B3F76587B13582D5F75C29BDD2BB2FBB957AE5E4FD0F368E64E377D3F - -D1E654B77CB155F5C77971A64DF9E5D34C26A3CAD6C7F6B300D39DEB19100946\ -91ADAA095BE4BA5D86690A976428635D5526F3E946F7DC3BD4DBC78999E65344\ -1187A81F9ADCD5A3C5F254BC8256B0158F54673DCC1232F6E918EBFC6C51CE67\ -EAEB042D9F57EEC4BFE910E169AF78B3DE48D137DF4F2840:\ -F6BF19E74ABEA64AE336BB1F425EC1D58F743BA700B56EE7A22DDFFDBED3FBAD\ -E27FCF7B9A2797D2B374E769D632FB245A9E6457151E5D63012B9B0B292CEB93 - -626F68C18A69A6590159A9C46BE03D5965698F2DAC3DE779B878B3D9C421E0F2\ -1B955A16C715C1EC1E22CE3EB645B8B4F263F60660EA3028981EEBD6C8C3A367\ -285B691C8EE56944A7CD1217997E1D9C21620B536BDBD5DE8925FF71DEC6FBC0\ -6624AB6B21E329813DE90D1E572DFB89A18120C3F606355D25:\ -1F7AB9A67B8664D588C3B798322FEE18ABC43F9C064B82C3394409096901E380\ -63024E638D1F4F4AC95A22D0B0165A3EFA5633A8ED301EB861F908AD91D2AF5F - -651A6FB3C4B80C7C68C6011675E6094EB56ABF5FC3057324EBC6477825061F9F\ -27E7A94633ABD1FA598A746E4A577CAF524C52EC1788471F92B8C37F23795CA1\ -9D559D446CAB16CBCDCE90B79FA1026CEE77BF4AB1B503C5B94C2256AD75B3EA\ -C6FD5DCB96ACA4B03A834BFB4E9AF988CECBF2AE597CB9097940:\ -4F44285FAFBDA04FDDEA743B76C3C4DD3C9A0155060A666E3DF796A5322DCB9C\ -055971B5FD61323B8AE8A6B64680A7D71C5077AFEF83056B01F57F426CD17399 - -8AAF072FCE8A2D96BC10B3C91C809EE93072FB205CA7F10ABD82ECD82CF040B1\ -BC49EA13D1857815C0E99781DE3ADBB5443CE1C897E55188CEAF221AA9681638\ -DE05AE1B322938F46BCE51543B57ECDB4C266272259D1798DE13BE90E10EFEC2\ -D07484D9B21A3870E2AA9E06C21AA2D0C9CF420080A80A91DEE16F:\ -1A088A13768FF64F5A63EF623E245BC68A0AC64A2B1FE9EAB756A051CC9CB877\ -3056736C20E4E51C17CC83C69DBC544BB4F095593D406066B16C15A53A8A22C7 - -53F918FD00B1701BD504F8CDEA803ACCA21AC18C564AB90C2A17DA592C7D6968\ -8F6580575395551E8CD33E0FEF08CA6ED4588D4D140B3E44C032355DF1C53156\ -4D7F4835753344345A6781E11CD5E095B73DF5F82C8AE3AD00877936896671E9\ -47CC52E2B29DCD463D90A0C9929128DA222B5A211450BBC0E02448E2:\ -A7B7B719AA7C335B2C96890C1F40BE4FA63278C6396C9A244556D039AA16A862\ -AABF60B417E95003DA542983C2730A8FBCB2D9BE81EEE58D33B488CEEA986005 - -A64599B8A61B5CCEC9E67AED69447459C8DA3D1EC6C7C7C82A7428B9B584FA67\ -E90F68E2C00FBBED4613666E5168DA4A16F395F7A3C3832B3B134BFC9CBAA95D\ -2A0FE252F44AC6681EB6D40AB91C1D0282FED6701C57463D3C5F2BB8C6A7301F\ -B4576AA3B5F15510DB8956FF77478C26A7C09BEA7B398CFC83503F538E:\ -7CC4A1F7B43334E2BACC0C2DDA214A4302DB5021F176C23518CFEB5F9FFD8B14\ -9217C297A83AFFB0E18671FCC82094D14AC7C08EF17872CB3B4E4F380FBB75A0 - -0E3AB0E054739B00CDB6A87BD12CAE024B54CB5E550E6C425360C2E87E59401F\ -5EC24EF0314855F0F56C47695D56A7FB1417693AF2A1ED5291F2FEE95F75EED5\ -4A1B1C2E81226FBFF6F63ADE584911C71967A8EB70933BC3F5D15BC91B5C2644\ -D9516D3C3A8C154EE48E118BD1442C043C7A0DBA5AC5B1D5360AAE5B9065:\ -C12761F00A8D1DAED752FBC278FF9FB6CC2366F07DB2F7A569EC4C4AA70571BB\ -EE078FF0D306C2B9FF50F14F6480BCA6B9855F2A2B477F025ADEF29736DF8154 - -A62FC595B4096E6336E53FCDFC8D1CC175D71DAC9D750A6133D23199EAAC2882\ -07944CEA6B16D27631915B4619F743DA2E30A0C00BBDB1BBB35AB852EF3B9AEC\ -6B0A8DCC6E9E1ABAA3AD62AC0A6C5DE765DE2C3711B769E3FDE44A74016FFF82\ -AC46FA8F1797D3B2A726B696E3DEA5530439ACEE3A45C2A51BC32DD055650B:\ -40C3E38BCD69664A45C84A848C676CD489BC420ABB6140DBCD14AEB82F3A5266\ -4FD025F26B4DFB52C99B2D88F734DF113B3ED32884E272C0C68A2C18E2005E56 - -2B6DB7CED8665EBE9DEB080295218426BDAA7C6DA9ADD2088932CDFFBAA1C141\ -29BCCDD70F369EFB149285858D2B1D155D14DE2FDB680A8B027284055182A0CA\ -E275234CC9C92863C1B4AB66F304CF0621CD54565F5BFF461D3B461BD40DF281\ -98E3732501B4860EADD503D26D6E69338F4E0456E9E9BAF3D827AE685FB1D817:\ -832FA35E6AD63AB4C1AC025496B38891AB95986A7AE6DEDEDE9A528D3F0ECC93\ -A8C5AA04863487C827A057ABEACAFE3CE411BD49FFFEA012F90C086A7E55825E - -10DB509B2CDCABA6C062AE33BE48116A29EB18E390E1BBADA5CA0A2718AFBCD2\ -3431440106594893043CC7F2625281BF7DE2655880966A23705F0C5155C2F5CC\ -A9F2C2142E96D0A2E763B70686CD421B5DB812DACED0C6D65035FDE558E94F26\ -B3E6DDE5BD13980CC80292B723013BD033284584BFF27657871B0CF07A849F4A\ -E2:\ -591A7FBAF0B560A42C7525552AFDEAE41B380FD9701105976BD5701234F6EC7D\ -1F800B35744995CCDC79AEF4004C8704A4B3ECCD700FB68C40E4D40633A2BFCD - -9334DE60C997BDA6086101A6314F64E4458F5FF9450C509DF006E8C547983C65\ -1CA97879175AABA0C539E82D05C1E02C480975CBB30118121061B1EBAC4F8D9A\ -3781E2DB6B18042E01ECF9017A64A0E57447EC7FCBE6A7F82585F7403EE2223D\ -52D37B4BF426428613D6B4257980972A0ACAB508A7620C1CB28EB4E9D30FC413\ -61EC:\ -FD13F95A40175A4DABFED7C47B07599BDC6755B83C68CF391A6742E838E590DA\ -126D8F1D7D69A9AE69993F51AD5F17BC8C895063490ACA07339A281D9FFA6FDA - -E88AB086891693AA535CEB20E64C7AB97C7DD3548F3786339897A5F0C3903154\ -9CA870166E477743CCFBE016B4428D89738E426F5FFE81626137F17AECFF61B7\ -2DBEE2DC20961880CFE281DFAB5EE38B1921881450E16032DE5E4D55AD8D4FCA\ -609721B0692BAC79BE5A06E177FE8C80C0C83519FB3347DE9F43D5561CB8107B\ -9B5EDC:\ -0CD73D5E4DAFC2C8F1470CCF0D91EBED9772E5E2A125D79B135CD0A86771457C\ -FC025D6ABF6DE194BCE518F47A5BC839F8288EB55286478B724D1A9AD6AEF7E9 - -FD19E01A83EB6EC810B94582CB8FBFA2FCB992B53684FB748D2264F020D3B960\ -CB1D6B8C348C2B54A9FCEA72330C2AAA9A24ECDB00C436ABC702361A82BB8828\ -B85369B8C72ECE0082FE06557163899C2A0EFA466C33C04343A839417057399A\ -63A3929BE1EE4805D6CE3E5D0D0967FE9004696A5663F4CAC9179006A2CEB755\ -42D75D68:\ -0235C1C7D31EFEDAD8823F40A52516AA7145AEE88D4250B0C850D9F7DA31AFC2\ -D7D500D81C69149D57AE2353A8D85D898E405528A7DE8001C42081FD76519839 - -59AE20B6F7E0B3C7A989AFB28324A40FCA25D8651CF1F46AE383EF6D8441587A\ -A1C04C3E3BF88E8131CE6145CFB8973D961E8432B202FA5AF3E09D625FAAD825\ -BC19DA9B5C6C20D02ABDA2FCC58B5BD3FE507BF201263F30543819510C12BC23\ -E2DDB4F711D087A86EDB1B355313363A2DE996B891025E147036087401CCF3CA\ -7815BF3C49:\ -AA46F3CF5B63B99CD18BC0530A2C07234897A8C46AE5B0D2CC86ECEDD79F2824\ -845E2B4A60B51C925F152643DA4B3824A1EF30BDC43D85F9B7E1F9A1F3C6AA15 - -77EE804B9F3295AB2362798B72B0A1B2D3291DCEB8139896355830F34B3B3285\ -61531F8079B79A6E9980705150866402FDC176C05897E359A6CB1A7AB067383E\ -B497182A7E5AEF7038E4C96D133B2782917417E391535B5E1B51F47D8ED7E4D4\ -025FE98DC87B9C1622614BFF3D1029E68E372DE719803857CA52067CDDAAD958\ -951CB2068CC6:\ -922642EEBA89CADADEDF8C38F1744C01726FDFB3B55AE4A5476B54254B7CD9A1\ -80725F3381A6454549338157565EBAC088B29738885B4F1FF8FC1EBAC7D56DA4 - -B771D5CEF5D1A41A93D15643D7181D2A2EF0A8E84D91812F20ED21F147BEF732\ -BF3A60EF4067C3734B85BC8CD471780F10DC9E8291B58339A677B960218F71E7\ -93F2797AEA349406512829065D37BB55EA796FA4F56FD8896B49B2CD19B43215\ -AD967C712B24E5032D065232E02C127409D2ED4146B9D75D763D52DB98D949D3\ -B0FED6A8052FBB:\ -430921B199B2C4180C841EB09EF3CCDC7DC80793E43D94410CDA5B64A251422A\ -D787F33075E0F6BB18E1F7E84B1A7E7386B7C65352AEA14BD67ADD03F09A004E - -B32D95B0B9AAD2A8816DE6D06D1F86008505BD8C14124F6E9A163B5A2ADE55F8\ -35D0EC3880EF50700D3B25E42CC0AF050CCD1BE5E555B23087E04D7BF9813622\ -780C7313A1954F8740B6EE2D3F71F768DD417F520482BD3A08D4F222B4EE9DBD\ -015447B33507DD50F3AB4247C5DE9A8ABD62A8DECEA01E3B87C8B927F5B08BEB\ -37674C6F8E380C04:\ -173BF476E53B69168626AD53CB84FFFA6AE8E369499C25D38599C3B3FFED96B5\ -39A5471A31E5F4C0457603FA880B7509356931C166784AF0BDAC4F68684BCA29 - -04410E31082A47584B406F051398A6ABE74E4DA59BB6F85E6B49E8A1F7F2CA00\ -DFBA5462C2CD2BFDE8B64FB21D70C083F11318B56A52D03B81CAC5EEC29EB31B\ -D0078B6156786DA3D6D8C33098C5C47BB67AC64DB14165AF65B44544D806DDE5\ -F487D5373C7F9792C299E9686B7E5821E7C8E2458315B996B5677D926DAC57B3\ -F22DA873C601016A0D:\ -1EA4BE40CB78E3C756EA962E4EEBA36C3469ECFFA40D892109FA888B5271855A\ -E37BAA5BE9A0D907AD081D1644929CA0DD16B7A8BBD0C3D1B6C3515BD557608C - -8B81E9BADDE026F14D95C019977024C9E13DB7A5CD21F9E9FC491D716164BBAC\ -DC7060D882615D411438AEA056C340CDF977788F6E17D118DE55026855F93270\ -472D1FD18B9E7E812BAE107E0DFDE7063301B71F6CFE4E225CAB3B232905A56E\ -994F08EE2891BA922D49C3DAFEB75F7C69750CB67D822C96176C46BD8A29F170\ -1373FB09A1A6E3C7158F:\ -D57DD56F6F4D55D3DB07030F91F165086647BEDC07240C66203F6BD328F7FCF4\ -6459689568DB402EA6F29DA1646EF2576876090E656200B4489F408B55DCFC99 - -FA6EED24DA6666A22208146B19A532C2EC9BA94F09F1DEF1E7FC13C399A48E41\ -ACC2A589D099276296348F396253B57CB0E40291BD282773656B6E0D8BEA1CDA\ -084A3738816A840485FCF3FB307F777FA5FEAC48695C2AF4769720258C77943F\ -B4556C362D9CBA8BF103AEB9034BAA8EA8BFB9C4F8E6742CE0D52C49EA8E974F\ -339612E830E9E7A9C29065:\ -8D75401D0C8F186789832ACF148F4FA1DA028BF0EFAABD51DACBC1678AFEA1AE\ -BB4FC0EA546D176D83205A9B7CE9A249FAF88DBE51CF0F92DB4A104DF36DD82F - -9BB4AF1B4F09C071CE3CAFA92E4EB73CE8A6F5D82A85733440368DEE4EB1CBC7\ -B55AC150773B6FE47DBE036C45582ED67E23F4C74585DAB509DF1B8361056454\ -5642B2B1EC463E18048FC23477C6B2AA035594ECD33791AF6AF4CBC2A1166ABA\ -8D628C57E707F0B0E8707CAF91CD44BDB915E0296E0190D56D33D8DDE10B5B60\ -377838973C1D943C22ED335E:\ -AA91A3A6F5690587FE1EA55F02BE20945DC1EC839EA1486DA2707CDA5964E8F8\ -BDCDEE1D521932675049442E1B8350FF6C2A20C24F302BE5C9D1BC8B03494050 - -2167F02118CC62043E9091A647CADBED95611A521FE0D64E8518F16C808AB297\ -725598AE296880A773607A798F7C3CFCE80D251EBEC6885015F9ABF7EAABAE46\ -798F82CB5926DE5C23F44A3F9F9534B3C6F405B5364C2F8A8BDC5CA49C749BED\ -8CE4BA48897062AE8424CA6DDE5F55C0E42A95D1E292CA54FB46A84FBC9CD87F\ -2D0C9E7448DE3043AE22FDD229:\ -31A4C95CE728866CFAF05DBC65ED97119CEC99A624B191AC5B1EB998914B7B29\ -FC09F71FF2E01510E88F74D04BB58CD741D3EFBBE5F1166B5C9A2045DD84A9C5 - -94B7FA0BC1C44E949B1D7617D31B4720CBE7CA57C6FA4F4094D4761567E389EC\ -C64F6968E4064DF70DF836A47D0C713336B5028B35930D29EB7A7F9A5AF9AD5C\ -F441745BAEC9BB014CEEFF5A41BA5C1CE085FEB980BAB9CF79F2158E03EF7E63\ -E29C38D7816A84D4F71E0F548B7FC316085AE38A060FF9B8DEC36F91AD9EBC0A\ -5B6C338CBB8F6659D342A24368CF:\ -D1A28FA6FF25A8EB4239887C3D845EDDFAC6CBF1339FF91FE83663DA1A5E5A84\ -9F32D136973C38FE9C54230F970D19857D972A3EB86E2D64B2B302C0DEFA64FD - -EA40E83CB18B3A242C1ECC6CCD0B7853A439DAB2C569CFC6DC38A19F5C90ACBF\ -76AEF9EA3742FF3B54EF7D36EB7CE4FF1C9AB3BC119CFF6BE93C03E208783335\ -C0AB8137BE5B10CDC66FF3F89A1BDDC6A1EED74F504CBE7290690BB295A872B9\ -E3FE2CEE9E6C67C41DB8EFD7D863CF10F840FE618E7936DA3DCA5CA6DF933F24\ -F6954BA0801A1294CD8D7E66DFAFEC:\ -9F022F46B468702350612A04A8E42E89452558FAE89FF2DC1AECD210F4C22120\ -4A51FA55012D22FF690C955D618B2819DD5D861EF59E17D41693B4FD2D70B981 - -157D5B7E4507F66D9A267476D33831E7BB768D4D04CC3438DA12F9010263EA5F\ -CAFBDE2579DB2F6B58F911D593D5F79FB05FE3596E3FA80FF2F761D1B0E57080\ -055C118C53E53CDB63055261D7C9B2B39BD90ACC32520CBBDBDA2C4FD8856DBC\ -EE173132A2679198DAF83007A9B5C51511AE49766C792A29520388444EBEFE28\ -256FB33D4260439CBA73A9479EE00C63:\ -4F8707FF2D414F80A4DD66AB12A8EBF1564AC406A5872AA6857B8BBFA00DFF60\ -57FE75E53E0562D9243101F2094E68194789A202C5A47655A6D2DD1B426C5EC8 - -836B34B515476F613FE447A4E0C3F3B8F20910AC89A3977055C960D2D5D2B72B\ -D8ACC715A9035321B86703A411DDE0466D58A59769672AA60AD587B8481DE4BB\ -A552A1645779789501EC53D540B904821F32B0BD1855B04E4848F9F8CFE9EBD8\ -911BE95781A759D7AD9724A7102DBE576776B7C632BC39B9B5E19057E226552A\ -5994C1DBB3B5C7871A11F5537011044C53:\ -E8FE68B74A9922464E45AD08493E2E7462AFEC671C4B7425EE5E873BEA5339F5\ -9E009E26272291093223B3482FFEDC5ECFD2832A78569D7DE49B68C51813BCFE - -CC7784A4912A7AB5AD3620AAB29BA87077CD3CB83636ADC9F3DC94F51EDF521B\ -2161EF108F21A0A298557981C0E53CE6CED45BDF782C1EF200D29BAB81DD6460\ -586964EDAB7CEBDBBEC75FD7925060F7DA2B853B2B089588FA0F8C16EC6498B1\ -4C55DCEE335CB3A91D698E4D393AB8E8EAC0825F8ADEBEEE196DF41205C01167\ -4E53426CAA453F8DE1CBB57932B0B741D4C6:\ -08B9D5DDC2F758631C065E553B0743308A1FB943937CB0AE15F75ECC07C40CF3\ -F2D274D2C916FBFBEC1C262B07507532B8330497AB5E27FACAB58616647257F3 - -7639B461FFF270B2455AC1D1AFCE782944AEA5E9087EB4A39EB96BB5C3BAAF0E\ -868C8526D3404F9405E79E77BFAC5FFB89BF1957B523E17D341D7323C302EA70\ -83872DD5E8705694ACDDA36D5A1B895AAA16ECA6104C82688532C8BFE1790B5D\ -C9F4EC5FE95BAED37E1D287BE710431F1E5E8EE105BC42ED37D74B1E55984BF1\ -C09FE6A1FA13EF3B96FAEAED6A2A1950A12153:\ -B05977F9C735ADD58DCB98B1BB0340BABBC0392A2629639DF4FA2096072AE885\ -2219BD23163D9F68A523C88B57DE5C1FF0BFA548DE552BC9E1D1EEBB12E1B068 - -EB6513FC61B30CFBA58D4D7E80F94D14589090CF1D80B1DF2E68088DC6104959\ -BA0D583D585E9578AB0AEC0CF36C48435EB52ED9AB4BBCE7A5ABE679C97AE2DB\ -E35E8CC1D45B06DDA3CF418665C57CBEE4BBB47FA4CAF78F4EE656FEC237FE4E\ -EBBAFA206E1EF2BD0EE4AE71BD0E9B2F54F91DAADF1FEBFD7032381D636B733D\ -CB3BF76FB14E23AFF1F68ED3DBCF75C9B99C6F26:\ -20ADB45EE45E35CCC5570F3CAEEA09B1E921CB0DD22536A69CDF20D39B608F28\ -DA161D17FEE70E0064886A5522EE26A1CF215F63802CD0478AE017F5F6DB4ED0 - -1594D74BF5DDE444265D4C04DAD9721FF3E34CBF622DAF341FE16B96431F6C4D\ -F1F760D34F296EB97D98D560AD5286FEC4DCE1724F20B54FD7DF51D4BF137ADD\ -656C80546FB1BF516D62EE82BAA992910EF4CC18B70F3F8698276FCFB44E0EC5\ -46C2C39CFD8EE91034FF9303058B4252462F86C823EB15BF481E6B79CC3A0221\ -8595B3658E8B37382BD5048EAED5FD02C37944E73B:\ -18B458490EBF71727CE479BD7CD8F692CB93CBCDD104E371D4FCB12AA3EA2EFA\ -8FD779C58ECD1C321E2EDCF991A4AA4DBB8C35C8DE98B52D898AA0F6087A82EA - -4CFA1278903026F66FEDD41374558BE1B585D03C5C55DAC94361DF286D4BD39C\ -7CB8037ED3B267B07C346626449D0CC5B0DD2CF221F7E4C3449A4BE99985D2D5\ -E67BFF2923357DDEAB5ABCB4619F3A3A57B2CF928A022EB27676C6CF80568900\ -4FCA4D41EA6C2D0A4789C7605F7BB838DD883B3AD3E6027E775BCF2628814280\ -99C7FFF95B14C095EA130E0B9938A5E22FC52650F591:\ -15BCA0A37F93998CFFC0AA8A306E76B2376C7D03BFFC3F274BA8E53F726A4276\ -80C2AC88CB02D48708FC5026C8D656BB5863A96748FDD04C438CFF925863F7DC - -D3E65CB92CFA79662F6AF493D696A07CCF32AAADCCEFF06E73E8D9F6F909209E\ -66715D6E978788C49EFB9087B170ECF3AA86D2D4D1A065AE0EFC8924F365D676\ -B3CB9E2BEC918FD96D0B43DEE83727C9A93BF56CA2B2E59ADBA85696546A8150\ -67FC7A78039629D4948D157E7B0D826D1BF8E81237BAB7321312FDAA4D521744\ -F988DB6FDF04549D0FDCA393D639C729AF716E9C8BBA48:\ -A75FA73BE8F031538E968BF59DFD1565EDA3D35FD168C37BB9B2F289871FF775\ -8BC29A58357486CD875C59FD41F7B484ED7C2580D158176BA452805CBD9302B9 - -842CC583504539622D7F71E7E31863A2B885C56A0BA62DB4C2A3F2FD12E79660\ -DC7205CA29A0DC0A87DB4DC62EE47A41DB36B9DDB3293B9AC4BAAE7DF5C6E720\ -1E17F717AB56E12CAD476BE49608AD2D50309E7D48D2D8DE4FA58AC3CFEAFEEE\ -48C0A9EEC88498E3EFC51F54D300D828DDDCCB9D0B06DD021A29CF5CB5B25069\ -15BEB8A11998B8B886E0F9B7A80E97D91A7D01270F9A7717:\ -327F1487A412B861E53047F755B2D6FFBB119AC289A40E4B9861E47B2C2C0922\ -342A4005BD85AADB9C48CD899DB55E156F13C409034D88AA1FCAC59FDFBE06B8 - -6C4B0A0719573E57248661E98FEBE326571F9A1CA813D3638531AE28B4860F23\ -C3A3A8AC1C250034A660E2D71E16D3ACC4BF9CE215C6F15B1C0FC7E77D3D2715\ -7E66DA9CEEC9258F8F2BF9E02B4AC93793DD6E29E307EDE3695A0DF63CBDC0FC\ -66FB770813EB149CA2A916911BEE4902C47C7802E69E405FE3C04CEB5522792A\ -5503FA829F707272226621F7C488A7698C0D69AA561BE9F378:\ -74C782A54600C154B0336297058646F0EE85A531BF0C8D356F0FC96D90421D47\ -014FFF9F81EAEEA6DC90BA4860D6E14E1A42635B893CE64461A4D44CD92CD48F - -51B7DBB7CE2FFEB427A91CCFE5218FD40F9E0B7E24756D4C47CD55606008BDC2\ -7D16400933906FD9F30EFFDD4880022D081155342AF3FB6CD53672AB7FB5B3A3\ -BCBE47BE1FD3A2278CAE8A5FD61C1433F7D350675DD21803746CADCA574130F0\ -1200024C6340AB0CC2CF74F2234669F34E9009EF2EB94823D62B31407F4BA46F\ -1A1EEC41641E84D77727B59E746B8A671BEF936F05BE820759FA:\ -4603EA28DC3A5C1C8E083726202C51C1B763F7D09BBED5B8FBAB0EF0F816E27E\ -4E0675FE8B64C7DC356CB248C1214D40239FCDC1FB49B77B94F2A01A4B1F247D - -83599D93F5561E821BD01A472386BC2FF4EFBD4AED60D5821E84AAE74D807102\ -9810F5E286F8F17651CD27DA07B1EB4382F754CD1C95268783AD09220F550284\ -0370D494BEB17124220F6AFCE91EC8A0F55231F9652433E5CE3489B727716CF4\ -AEBA7DCDA20CD29AA9A859201253F948DD94395ABA9E3852BD1D60DDA7AE5DC0\ -45B283DA006E1CBAD83CC13292A315DB5553305C628DD091146597:\ -41BC57357D866202927DB08F16DCCFDFF89A16498316BDEF586D5D92757319BC\ -189386C763EA2961D10C2FD0068C1C2C73419C309547A21EA9854E11275A0E2E - -2BE9BF526C9D5A75D565DD11EF63B979D068659C7F026C08BEA4AF161D85A462\ -D80E45040E91F4165C074C43AC661380311A8CBED59CC8E4C4518E80CD2C78AB\ -1CABF66BFF83EAB3A80148550307310950D034A6286C93A1ECE8929E6385C5E3\ -BB6EA8A7C0FB6D6332E320E71CC4EB462A2A62E2BFE08F0CCAD93E61BEDB5DD0\ -B786A728AB666F07E0576D189C92BF9FB20DCA49AC2D3956D47385E2:\ -2C811EC09D88F5DEBBB908E06D7972F536E704E6CDCC389B1F54D7B34A727B40\ -2C0779E4D41CCEF9F4D9E3F93767DBE1462AB109604F95ACC89C418E8DD40C8E - -CA76D3A12595A817682617006848675547D3E8F50C2210F9AF906C0E7CE50B44\ -60186FE70457A9E879E79FD4D1A688C70A347361C847BA0DD6AA52936EAF8E58\ -A1BE2F5C1C704E20146D366AEB3853BED9DE9BEFE9569AC8AAEA37A9FB7139A1\ -A1A7D5C748605A8DEFB297869EBEDD71D615A5DA23496D11E11ABBB126B206FA\ -0A7797EE7DE117986012D0362DCEF775C2FE145ADA6BDA1CCB326BF644:\ -DEEECAC666AD939B3A8F1A00063B26FF8AECF97DDDFD0AFF77A63847CA7DB09E\ -279BD725E072B40BC2FF511C2A20146EB4B292FEA9F8AA2E4652F894121C2257 - -F76B85DC67421025D64E93096D1D712B7BAF7FB001716F02D33B2160C2C882C3\ -10EF13A576B1C2D30EF8F78EF8D2F465007109AAD93F74CB9E7D7BEF7C9590E8\ -AF3B267C89C15DB238138C45833C98CC4A471A7802723EF4C744A853CF80A0C2\ -568DD4ED58A2C9644806F42104CEE53628E5BDF7B63B0B338E931E31B87C24B1\ -46C6D040605567CEEF5960DF9E022CB469D4C787F4CBA3C544A1AC91F95F:\ -490F734EB6640C36498A1AF2F941A6791DBDD2B1FAAFDAAF6DB82AADEC20A650\ -B750DCEA117A3F009AEF83CB4262348F97B3AE01098694BF857A4C78C19BA56C - -25B8C9C032EA6BCD733FFC8718FBB2A503A4EA8F71DEA1176189F694304F0FF6\ -8E862A8197B839957549EF243A5279FC2646BD4C009B6D1EDEBF24738197ABB4\ -C992F6B1DC9BA891F570879ACCD5A6B18691A93C7D0A8D38F95B639C1DAEB48C\ -4C2F15CCF5B9D508F8333C32DE78781B41850F261B855C4BEBCC125A380C54D5\ -01C5D3BD07E6B52102116088E53D76583B0161E2A58D0778F091206AABD5A1:\ -AEEB225218FAAE867F637DC9E7134D8213A73CA5D91B5512D38C553D8329D797\ -0A590D4F864B371F94C5B3A1ED815D443CB24BF0D6932782E24DF80BA53FEEE2 - -21CFDC2A7CCB7F331B3D2EEFFF37E48AD9FA9C788C3F3C200E0173D99963E1CB\ -CA93623B264E920394AE48BB4C3A5BB96FFBC8F0E53F30E22956ADABC2765F57\ -FB761E147ECBF8567533DB6E50C8A1F894310A94EDF806DD8CA6A0E141C0FA7C\ -9FAE6C6AE65F18C93A8529E6E5B553BF55F25BE2E80A9882BD37F145FECBEB3D\ -447A3C4E46C21524CC55CDD62F521AB92A8BA72B897996C49BB273198B7B1C9E:\ -ED668AF5C6EF4115A4BEDFDBE8204BB379A65ED35B2F4EB5F26EF605B93BF3C0\ -046CD5C5C2F00BF8D8B99A07C86A489FA333057DDE1A3C41EBF77D2C88E11BEB - -4E452BA42127DCC956EF4F8F35DD68CB225FB73B5BC7E1EC5A898BBA2931563E\ -74FAFF3B67314F241EC49F4A7061E3BD0213AE826BAB380F1F14FAAB8B0EFDDD\ -5FD1BB49373853A08F30553D5A55CCBBB8153DE4704F29CA2BDEEF0419468E05\ -DD51557CCC80C0A96190BBCC4D77ECFF21C66BDF486459D427F986410F883A80\ -A5BCC32C20F0478BB9A97A126FC5F95451E40F292A4614930D054C851ACD019C\ -CF:\ -DA465F237A360DDD2CF8E75E60721481F082FFE4C17478F2D0EBF70865DE5743\ -0445C5940B1361FFF0D9EAD681A0B1F3600D05383BB25E53ED6F5E5595A87ADF - -FA85671DF7DADF99A6FFEE97A3AB9991671F5629195049880497487867A6C446\ -B60087FAC9A0F2FCC8E3B24E97E42345B93B5F7D3691829D3F8CCD4BB36411B8\ -5FC2328EB0C51CB3151F70860AD3246CE0623A8DC8B3C49F958F8690F8E3860E\ -71EB2B1479A5CEA0B3F8BEFD87ACAF5362435EAECCB52F38617BC6C5C2C6E269\ -EAD1FBD69E941D4AD2012DA2C5B21BCFBF98E4A77AB2AF1F3FDA3233F046D38F\ -1DC8:\ -BE6FF2738AFB06EE4FE46C11629196106FF3D8D9FE9871688B4BA4E988527652\ -F6BD6B4EBA4007CA3A6334998FDBC4D63CA5809104334095B23841AF69601209 - -E90847AE6797FBC0B6B36D6E588C0A743D725788CA50B6D792352EA8294F5BA6\ -54A15366B8E1B288D84F5178240827975A763BC45C7B0430E8A559DF4488505E\ -009C63DA994F1403F407958203CEBB6E37D89C94A5EACF6039A327F6C4DBBC7A\ -2A307D976AA39E41AF6537243FC218DFA6AB4DD817B6A397DF5CA69107A91987\ -99ED248641B63B42CB4C29BFDD7975AC96EDFC274AC562D0474C60347A078CE4\ -C25E88:\ -0D4115FB73C9351F4884C23543283ED210451A04AC3B176E9AE5AFC5CCCEFEC8\ -4AF6D576C92C07451E76AB7E61EB6ABEC182D864DD50CB161F6F9E832F65D9BB - -F6D5C2B6C93954FC627602C00C4CA9A7D3ED12B27173F0B2C9B0E4A5939398A6\ -65E67E69D0B12FB7E4CEB253E8083D1CEB724AC07F009F094E42F2D6F2129489\ -E846EAFF0700A8D4453EF453A3EDDC18F408C77A83275617FABC4EA3A2833AA7\ -3406C0E966276079D38E8E38539A70E194CC5513AAA457C699383FD1900B1E72\ -BDFB835D1FD321B37BA80549B078A49EA08152869A918CA57F5B54ED71E4FD3A\ -C5C06729:\ -42B6A6A777578717590252D66A09839DDCCC8331BD8A795138A62B8CA5C71122\ -6713B68DA855233AA2D2AC0660C11F29F80F8DBF13335D0BE35301C1968F081D - -CF8562B1BED89892D67DDAAF3DEEB28246456E972326DBCDB5CF3FB289ACA01E\ -68DA5D59896E3A6165358B071B304D6AB3D018944BE5049D5E0E2BB819ACF67A\ -6006111089E6767132D72DD85BEDDCBB2D64496DB0CC92955AB4C6234F1EEA24\ -F2D51483F2E209E4589BF9519FAC51B4D061E801125E605F8093BB6997BC163D\ -551596FE4AB7CFAE8FB9A90F6980480CE0C229FD1675409BD788354DAF316240\ -CFE0AF93EB:\ -3F40B9FB411C50279F73EC33332330C216580A5C3169D7188F6B1DE0892D8CC6\ -E80C7BF1EEA707A71D267ED48A137961FC329A0A32050EE915706C235E487153 - -2ACE31ABB0A2E3267944D2F75E1559985DB7354C6E605F18DC8470423FCA30B7\ -331D9B33C4A4326783D1CAAE1B4F07060EFF978E4746BF0C7E30CD61040BD5EC\ -2746B29863EB7F103EBDA614C4291A805B6A4C8214230564A0557BC7102E0BD3\ -ED23719252F7435D64D210EE2AAFC585BE903FA41E1968C50FD5D5367926DF7A\ -05E3A42CF07E656FF92DE73B036CF8B19898C0CB34557C0C12C2D8B84E91181A\ -F467BC75A9D1:\ -5B1D609D50CE4FF4362EF96E32E0798385780C9365B5B1B465EEC5C0FE400167\ -A2557F64806DDE296C3DEDDD4B18E5EB90BD1BB71AE2FDBD081D10003FD83960 - -0D8D09AED19F1013969CE5E7EB92F83A209AE76BE31C754844EA9116CEB39A22\ -EBB6003017BBCF26555FA6624185187DB8F0CB3564B8B1C06BF685D47F3286ED\ -A20B83358F599D2044BBF0583FAB8D78F854FE0A596183230C5EF8E54426750E\ -AF2CC4E29D3BDD037E734D863C2BD9789B4C243096138F7672C232314EFFDFC6\ -513427E2DA76916B5248933BE312EB5DDE4CF70804FB258AC5FB82D58D08177A\ -C6F4756017FFF5:\ -DDD1A7F1D75AB14D1FC1DC6A3E865B688DB53DE4DAD80BE67A10AAA97CEF308C\ -8B57371946B200E795C9E74EF1DCBF43A24771ED0CF2A58F602BDDFF6BB88345 - -C3236B73DEB7662BF3F3DAA58F137B358BA610560EF7455785A9BEFDB035A066\ -E90704F929BD9689CEF0CE3BDA5ACF4480BCEB8D09D10B098AD8500D9B6071DF\ -C3A14AF6C77511D81E3AA8844986C3BEA6F469F9E02194C92868CD5F51646256\ -798FF0424954C1434BDFED9FACB390B07D342E992936E0F88BFD0E884A0DDB67\ -9D0547CCDEC6384285A45429D115AC7D235A717242021D1DC35641F5F0A48E84\ -45DBA58E6CB2C8EA:\ -E3977556DA6A520E8A862DAC38AB14E67695D9AE3A55AA52AF9252FD8F36BEA1\ -09A6A7CF2DA9EA64721D471BD666F0BBDF96447B0B8D4C1F03DECB5BD418F7CA - -B39FEB8283EADC63E8184B51DF5AE3FD41AAC8A963BB0BE1CD08AA5867D8D910\ -C669221E73243360646F6553D1CA05A84E8DC0DE05B6419EC349CA994480193D\ -01C92525F3FB3DCEFB08AFC6D26947BDBBFD85193F53B50609C6140905C53A66\ -86B58E53A319A57B962331EDE98149AF3DE3118A819DA4D76706A0424B4E1D29\ -10B0ED26AF61D150EBCB46595D4266A0BD7F651BA47D0C7F179CA28545007D92\ -E8419D48FDFBD744CE:\ -FC4662DB69023866D710713E2F634E0EC99B0288B7B1496FCF3C726AF175994D\ -D5AD71E90C3C174EB598F998117655F07BB474910110985AE85D14420AF97B1F - -A983D54F503803E8C7999F4EDBBE82E9084F422143A932DDDDC47A17B0B7564A\ -7F37A99D0786E99476428D29E29D3C197A72BFAB1342C12A0FC4787FD7017D7A\ -6174049EA43B5779169EF7472BDBBD941DCB82FC73AAC45A8A94C9F2BD3477F6\ -1FD3B796F02A1B8264A214C6FEA74B7051B226C722099EC7883A462B83B6AFDD\ -4009248B8A237F605FE5A08FE7D8B45321421EBBA67BD70A0B00DDBF94BAAB7F\ -359D5D1EEA105F28DCFB:\ -6B14336AEA148FCF74C6EF17FA36264DCA5CC116AD6D6A9254E329248684BC7C\ -CE81E4AD67D334D668805B9E6298B7C886CBB06C028FBA6A0B075B71A40455B0 - -E4D1C1897A0A866CE564635B74222F9696BF2C7F640DD78D7E2ACA66E1B61C64\ -2BB03EA7536AAE597811E9BF4A7B453EDE31F97B46A5F0EF51A071A2B3918DF1\ -6B152519AE3776F9F1EDAB4C2A377C3292E96408359D3613844D5EB393000283\ -D5AD3401A318B12FD1474B8612F2BB50FB6A8B9E023A54D7DDE28C43D6D8854C\ -8D9D1155935C199811DBFC87E9E0072E90EB88681CC7529714F8FB8A2C9D8856\ -7ADFB974EE205A9BF7B848:\ -2BB8562945A3CEA1384A4C7E1471614B9FA6BC79BDAC7595B3CAC498F624D9D1\ -CCBE08239AE30B7547C1BBA549371A85C8F7BBC7910FE55D7A5F92A6A39DA8E3 - -B10C59723E3DCADD6D75DF87D0A1580E73133A9B7D00CB95EC19F5547027323B\ -E75158B11F80B6E142C6A78531886D9047B08E551E75E6261E79785366D7024B\ -D7CD9CF322D9BE7D57FB661069F2481C7BB759CD71B4B36CA2BC2DF6D3A328FA\ -EBDB995A9794A8D72155ED551A1F87C80BF6059B43FC764900B18A1C2441F748\ -7743CF84E565F61F8DD2ECE6B6CCC9444049197AAAF53E926FBEE3BFCA8BE588\ -EC77F29D211BE89DE18B15F6:\ -19AF9ADD1D377D23E11E55EA8A39A79B5553809868F9AB79E177CCD912657CDD\ -D7E02853CF25A315F22264C93136BED99A42B098397BCAF1DBBF876863F988DC - -DB11F609BABA7B0CA634926B1DD539C8CBADA24967D7ADD4D9876F77C2D80C0F\ -4DCEFBD7121548373582705CCA2495BD2A43716FE64ED26D059CFB566B3364BD\ -49EE0717BDD9810DD14D8FAD80DBBDC4CAFB37CC60FB0FE2A80FB4541B8CA9D5\ -9DCE457738A9D3D8F641AF8C3FD6DA162DC16FC01AAC527A4A0255B4D231C0BE\ -50F44F0DB0B713AF03D968FE7F0F61ED0824C55C4B5265548FEBD6AAD5C5EEDF\ -63EFE793489C39B8FD29D104CE:\ -662E04B018416B89E6977558B11772DD7A7450FBAD3B47810E54C30F077A7D37\ -4AFA18753C39101B73DF363DADDCC5C2333CBC39AD73165A1A8EC0E8ECD26E37 - -BEBD4F1A84FC8B15E4452A54BD02D69E304B7F32616AADD90537937106AE4E28\ -DE9D8AAB02D19BC3E2FDE1D651559E296453E4DBA94370A14DBBB2D1D4E20223\ -02EE90E208321EFCD8528AD89E46DC839EA9DF618EA8394A6BFF308E7726BAE0\ -C19BCD4BE52DA6258E2EF4E96AA21244429F49EF5CB486D7FF35CAC1BACB7E95\ -711944BCCB2AB34700D42D1EB38B5D536B947348A458EDE3DC6BD6EC547B1B0C\ -AE5B257BE36A7124E1060C170FFA:\ -A9E7AD88B63FAE09049E4AEDBD23E5219CBF5DB4695EC3F2C1167C6A7970C9E2\ -31131EC76FB19657BB35445981CC085831390C9D756928B865C2156B072246F6 - -5ACA56A03A13784BDC3289D9364F79E2A85C12276B49B92DB0ADAA4F206D5028\ -F213F678C3510E111F9DC4C1C1F8B6ACB17A6413AA227607C515C62A733817BA\ -5E762CC6748E7E0D6872C984D723C9BB3B117EB8963185300A80BFA65CDE495D\ -70A46C44858605FCCBED086C2B45CEF963D33294DBE9706B13AF22F1B7C4CD5A\ -001CFEC251FBA18E722C6E1C4B1166918B4F6F48A98B64B3C07FC86A6B17A6D0\ -480AB79D4E6415B520F1C484D675B1:\ -76E5180B485838BE4EED6F329A25088EF8360475763145DA0868F813C7D16E2F\ -BD2DAC307C6F94990687410B478679DC31C1A5AFB7A5F056B818B7340DD43E9C - -A5AAD0E4646A32C85CFCAC73F02FC5300F1982FABB2F2179E28303E447854094\ -CDFC854310E5C0F60993CEFF54D84D6B46323D930ADB07C17599B35B505F09E7\ -84BCA5985E0172257797FB53649E2E9723EFD16865C31B5C3D5113B58BB0BFC8\ -920FABDDA086D7537E66D709D050BD14D0C960873F156FAD5B3D3840CDFCDC9B\ -E6AF519DB262A27F40896AB25CC39F96984D650611C0D5A3080D5B3A1BF186AB\ -D42956588B3B58CD948970D298776060:\ -913C9FD00D3ABF9F66DF204D7D2C08868640F4999EBAC116E300937D4CAAA63A\ -4AC736089E23E5255485387605418329069A0867370805F3B5372241D8C2933A - -06CBBE67E94A978203EAD6C057A1A5B098478B4B4CBEF5A97E93C8E42F557271\ -3575FC2A884531D7622F8F879387A859A80F10EF02708CD8F7413AB385AFC357\ -678B9578C0EBF641EF076A1A30F1F75379E9DCB2A885BDD295905EE80C0168A6\ -2A9597D10CF12DD2D8CEE46645C7E5A141F6E0E23AA482ABE5661C16E69EF1E2\ -8371E2E236C359BA4E92C25626A7B7FF13F6EA4AE906E1CFE163E91719B1F750\ -A96CBDE5FBC953D9E576CD216AFC90323A:\ -847AAD7AA005EE45CA8D68953F2790BCFC51E52D7DB650D77CB8560D8A7C25F2\ -0F56959F965677645360F7CC86354ED79876F71D78FA2DE734BA28323A76E2E9 - -F1C528CF7739874707D4D8AD5B98F7C77169DE0B57188DF233B2DC8A5B31EDA5\ -DB4291DD9F68E6BAD37B8D7F6C9C0044B3BF74BBC3D7D1798E138709B0D75E7C\ -593D3CCCDC1B20C7174B4E692ADD820ACE262D45CCFAE2077E87879634716806\ -0A162ECCA8C38C1A88350BD63BB539134F700FD4ADDD5959E255337DAA06BC86\ -358FABCBEFDFB5BC889783D843C08AADC6C4F6C36F65F156E851C9A0F917E4A3\ -67B5AD93D874812A1DE6A7B93CD53AD97232:\ -F5DD8A5B24B8F34F43D52F256EA4880AFE6EFB182D550D3A62D77670F1E84D97\ -D6D88B2492777BC74D6065448DBDAE16B5ED054D86A29B82CAE61943C2112746 - -9D9F3A7ECD51B41F6572FD0D0881E30390DFB780991DAE7DB3B47619134718E6\ -F987810E542619DFAA7B505C76B7350C6432D8BF1CFEBDF1069B90A35F0D04CB\ -DF130B0DFC7875F4A4E62CDB8E525AADD7CE842520A482AC18F09442D78305FE\ -85A74E39E760A4837482ED2F437DD13B2EC1042AFCF9DECDC3E877E50FF4106A\ -D10A525230D11920324A81094DA31DEAB6476AA42F20C84843CFC1C58545EE80\ -352BDD3740DD6A16792AE2D86F11641BB717C2:\ -6B7CDD664CFD5F4D13DB3A1CAF9F8847C72B8D73C8524AF2DED9A74C1C9B6844\ -DD4C50D6D5CCAB6C0EDB18E7A30415F244AF371EA046C06ABD6B82653B79B717 - -5179888724819FBAD3AFA927D3577796660E6A81C52D98E9303261D5A4A83232\ -F6F758934D50AA83FF9E20A5926DFEBAAC49529D006EB923C5AE5048ED544EC4\ -71ED7191EDF46363383824F915769B3E688094C682B02151E5EE01E510B431C8\ -865AFF8B6B6F2F59CB6D129DA79E97C6D2B8FA6C6DA3F603199D2D1BCAB54768\ -2A81CD6CF65F6551121391D78BCC23B5BD0E922EC6D8BF97C952E84DD28AEF90\ -9ABA31EDB903B28FBFC33B7703CD996215A11238:\ -CA8C2C59A7CFE208F6642EDF1404E558773E5E7925793CB7E266CFC23DC58163\ -3FD197228BF4B5F6D6EEEC1788BE7F304D915E8E52A66C143B816591D4BE7058 - -576EF3520D30B7A4899B8C0D5E359E45C5189ADD100E43BE429A02FB3DE5FF4F\ -8FD0E79D9663ACCA72CD29C94582B19292A557C5B1315297D168FBB54E9E2ECD\ -13809C2B5FCE998EDC6570545E1499DBE7FB74D47CD7F35823B212B05BF3F5A7\ -9CAA34224FDD670D335FCB106F5D92C3946F44D3AFCBAE2E41AC554D8E6759F3\ -32B76BE89A0324AA12C5482D1EA3EE89DED4936F3E3C080436F539FA137E74C6\ -D3389BDF5A45074C47BC7B20B0948407A66D855E2F:\ -777F0FA0DD1CA6AACE4C4B8AAED1205B843ACFE729892208E52444D865D4F0EA\ -C297041A936CE940B64B770F43944AD990F31AB2E921E0E77C846A8CDCCD0DF4 - -0DF2152FA4F4357C8741529DD77E783925D3D76E95BAFA2B542A2C33F3D1D117\ -D159CF473F82310356FEE4C90A9E505E70F8F24859656368BA09381FA245EB6C\ -3D763F3093F0C89B972E66B53D59406D9F01AEA07F8B3B615CAC4EE4D05F542E\ -7D0DAB45D67CCCCD3A606CCBEB31EA1FA7005BA07176E60DAB7D78F6810EF086\ -F42F08E595F0EC217372B98970CC6321576D92CE38F7C397A403BADA1548D205\ -C343AC09DECA86325373C3B76D9F32028FEA8EB32515:\ -9ADF9DD8AD75BA78D42C9E5A99F980EF4E3FFE0F96A606FB738A6EBB4030CEF4\ -BCCA674E67689170CEF3B68A7F2B2CCA7092CFD7CEF62EAAA0905DD9EE46DF5D - -3E15350D87D6EBB5C8AD99D42515CFE17980933C7A8F6B8BBBF0A63728CEFAAD\ -2052623C0BD5931839112A48633FB3C2004E0749C87A41B26A8B48945539D1FF\ -41A4B269462FD199BFECD45374756F55A9116E92093AC99451AEFB2AF9FD32D6\ -D7F5FBC7F7A540D5097C096EBC3B3A721541DE073A1CC02F7FB0FB1B9327FB0B\ -1218CA49C9487AB5396622A13AE546C97ABDEF6B56380DDA7012A8384091B665\ -6D0AB272D363CEA78163FF765CDD13AB1738B940D16CAE:\ -71DE400D939E8254D60533184A354622E9D5A5D05A601D554718AA73F8BECCDF\ -21ACD9265ED8652836F82AF9977217FDFA02713FF5558D661D02A39DF05A1ECB - -C38D6B0B757CB552BE40940ECE0009EF3B0B59307C1451686F1A22702922800D\ -58BCE7A636C1727EE547C01B214779E898FC0E560F8AE7F61BEF4D75EAA696B9\ -21FD6B735D171535E9EDD267C192B99880C87997711002009095D8A7A437E258\ -104A41A505E5EF71E5613DDD2008195F0C574E6BA3FE40099CFA116E5F1A2FA8\ -A6DA04BADCB4E2D5D0DE31FDC4800891C45781A0AAC7C907B56D631FCA5CE8B2\ -CDE620D11D1777ED9FA603541DE794DDC5758FCD5FAD78C0:\ -052CAC93F83F78046B26E411E32185296F87879CC73B58F0C2B32A94582C3355\ -A52B3CC65B680F1277F78B7792BF07BFEFBBF5060EEFB78807760B8DE9A0837C - -8D2DE3F0B37A6385C90739805B170057F091CD0C7A0BC951540F26A5A75B3E69\ -4631BB64C7635EED316F51318E9D8DE13C70A2ABA04A14836855F35E480528B7\ -76D0A1E8A23B547C8B8D6A0D09B241D3BE9377160CCA4E6793D00A515DC2992C\ -B7FC741DACA171431DA99CCE6F7789F129E2AC5CF65B40D703035CD2185BB936\ -C82002DAF8CBC27A7A9E554B06196630446A6F0A14BA155ED26D95BD627B7205\ -C072D02B60DB0FD7E49EA058C2E0BA202DAFF0DE91E845CF79:\ -80CE5C83D94450857A0A513BEF37B4D0760469A66267B72EA264305DA3B36597\ -96CF01F0569397F4C8D3127DE708A2C0C2C6E3C0F53BB0C01D11CF6B68DA820C - -C464BBDAD275C50DCD983B65AD1019B9FF85A1E71C807F3204BB2C921DC31FBC\ -D8C5FC45868AE9EF85B6C9B83BBA2A5A822201ED68586EC5EC27FB2857A5D1A2\ -D09D09115F22DCC39FE61F5E1BA0FF6E8B4ACB4C6DA748BE7F3F0839739394FF\ -7FA8E39F7F7E84A33C3866875C01BCB1263C9405D91908E9E0B50E7459FABB63\ -D8C6BBB73D8E3483C099B55BC30FF092FF68B6ADEDFD477D63570C9F5515847F\ -36E24BA0B705557130CEC57EBAD1D0B31A378E91894EE26E3A04:\ -576E8CBC0C416DA1617867681C8C3210BF1B43B3FA125CF90176AC2EC48B0F62\ -B23227A08AD8D79F447DE80546342D98D1370D5C806D1D42069C8A6E381DED0C - -8B8D68BB8A75732FE272815A68A1C9C5AA31B41DEDC8493E76525D1D013D33CE\ -BD9E21A5BB95DB2616976A8C07FCF411F5F6BC6F7E0B57ACA78CC2790A6F9B89\ -8858AC9C79B165FF24E66677531E39F572BE5D81EB3264524181115F32780257\ -BFB9AEEC6AF12AF28E587CAC068A1A2953B59AD680F4C245B2E3EC36F59940D3\ -7E1D3DB38E13EDB29B5C0F404F6FF87F80FC8BE7A225FF22FBB9C8B6B1D7330C\ -57840D24BC75B06B80D30DAD6806544D510AF6C4785E823AC3E0B8:\ -BACFD238DCB9E69C42BB3B53B0F8D64FC6D163411D1C483421C28CC7B738D1F0\ -F87D314C0FA7573648D27D05D38A1F7E658839EF398C8972E8FF3E8C91B5DC62 - -6B018710446F368E7421F1BC0CCF562D9C1843846BC8D98D1C9BF7D9D6FCB48B\ -FC3BF83B36D44C4FA93430AF75CD190BDE36A7F92F867F58A803900DF8018150\ -384D85D82132F123006AC2AEBA58E02A037FE6AFBD65ECA7C44977DD3DC74F48\ -B6E7A1BFD5CC4DCF24E4D52E92BD4455848E4928B0EAC8B7476FE3CC03E862AA\ -4DFF4470DBFED6DE48E410F25096487ECFC32A27277F3F5023B2725ADE461B13\ -55889554A8836C9CF53BD767F5737D55184EEA1AB3F53EDD0976C485:\ -202C0B54FA9BBB1F22C23DBA786ACC1B658C3012C9FA8925CA8DF190B99B5940\ -A961B9E70F044186CE45F1D65372D1B0E642A43FAF7D033DE5733403030143C6 - -C9534A24714BD4BE37C88A3DA1082EDA7CABD154C309D7BD670DCCD95AA53559\ -4463058A29F79031D6ECAA9F675D1211E9359BE82669A79C855EA8D89DD38C2C\ -761DDD0EC0CE9E97597432E9A1BEAE062CDD71EDFDFD464119BE9E69D18A7A7F\ -D7CE0E2106F0C8B0ABF4715E2CA48EF9F454DC203C96656653B727083513F8EF\ -B86E49C513BB758B3B052FE21F1C05BB33C37129D6CC81F1AEF6ADC45B0E8827\ -A830FE545CF57D0955802C117D23CCB55EA28F95C0D8C2F9C5A242B33F:\ -42493BFCF21054AD1CD1C92CF92EE60D23588AFC1E362A8241C9C13E23603757\ -FC3FC0098B467876CBFDDFAEC0EC586BB3E7BADD1FD934917A073CFF153A828E - -07906C87297B867ABF4576E9F3CC7F82F22B154AFCBF293B9319F1B0584DA6A4\ -0C27B32E0B1B7F412C4F1B82480E70A9235B12EC27090A5A33175A2BB28D8ADC\ -475CEFE33F7803F8CE27967217381F02E67A3B4F84A71F1C5228E0C2AD971373\ -F6F672624FCEA8D1A9F85170FAD30FA0BBD25035C3B41A6175D467998BD1215F\ -6F3866F53847F9CF68EF3E2FBB54BC994DE2302B829C5EEA68EC441FCBAFD7D1\ -6AE4FE9FFF98BF00E5BC2AD54DD91FF9FDA4DD77B6C754A91955D1FBAAD0:\ -3F7F95E06980F15CEDB62B4949479D673917591F07645CCB69BF6EF188463DAD\ -76FEE3C9F6BB87139153B178776653F9A42BE67978361456A5E36FF80079A4DF - -588E94B9054ABC2189DF69B8BA34341B77CDD528E7860E5DEFCAA79B0C9A452A\ -D4B82AA306BE84536EB7CEDCBE058D7B84A6AEF826B028B8A0271B69AC3605A9\ -635EA9F5EA0AA700F3EB7835BC54611B922964300C953EFE7491E3677C2CEBE0\ -822E956CD16433B02C68C4A23252C3F9E151A416B4963257B783E038F6B4D5C9\ -F110F871652C7A649A7BCEDCBCCC6F2D0725BB903CC196BA76C76AA9F10A190B\ -1D1168993BAA9FFC96A1655216773458BEC72B0E39C9F2C121378FEAB4E76A:\ -47852B6535F9B21407D93ACDC448370C963E3B927EE561354611DA1A9863425C\ -CAE5EF32C6D29FE2F46975D11F86099D2A9F785549348FF1554C5F9EF8FF1878 - -08959A7E4BAAE874928813364071194E2939772F20DB7C3157078987C557C2A6\ -D5ABE68D520EEF3DC491692E1E21BCD880ADEBF63BB4213B50897FA005256ED4\ -1B5690F78F52855C8D9168A4B666FCE2DA2B456D7A7E7C17AB5F2FB1EE90B79E\ -698712E963715983FD07641AE4B4E9DC73203FAC1AE11FA1F8C7941FCC82EAB2\ -47ADDB56E2638447E9D609E610B60CE086656AAEBF1DA3C8A231D7D94E2FD0AF\ -E46B391FF14A72EAEB3F44AD4DF85866DEF43D4781A0B3578BC996C87970B132:\ -AEFB3FB01D5A5566117841B70ED2ECA0CE6E4A7D453AE8A11D9E39DFAF25753B\ -B53EF1D9C388AB6238975616B64DFDD88B3DF97397FD671930B4D28F33CB3931 - -CB2A234F45E2ECD5863895A451D389A369AAB99CFEF0D5C9FFCA1E6E63F763B5\ -C14FB9B478313C8E8C0EFEB3AC9500CF5FD93791B789E67EAC12FD038E2547CC\ -8E0FC9DB591F33A1E4907C64A922DDA23EC9827310B306098554A4A78F050262\ -DB5B545B159E1FF1DCA6EB734B872343B842C57EAFCFDA8405EEDBB48EF32E99\ -696D135979235C3A05364E371C2D76F1902F1D83146DF9495C0A6C57D7BF9EE7\ -7E80F9787AEE27BE1FE126CDC9EF893A4A7DCBBC367E40FE4E1EE90B42EA25AF\ -01:\ -D41356634CF634D78315C18351F0C132C854C768B2192A0475388414D46AE3A1\ -1BE790FF0D286030E58D2F8B7F0730EFAD51EED135F9F67764FD4E1D78FC4FC6 - -D16BEADF02AB1D4DC6F88B8C4554C51E866DF830B89C06E786A5F8757E890931\ -0AF51C840EFE8D20B35331F4355D80F73295974653DDD620CDDE4730FB6C8D0D\ -2DCB2B45D92D4FBDB567C0A3E86BD1A8A795AF26FBF29FC6C65941CDDB090FF7\ -CD230AC5268AB4606FCCBA9EDED0A2B5D014EE0C34F0B2881AC036E24E151BE8\ -9EEB6CD9A7A790AFCCFF234D7CB11B99EBF58CD0C589F20BDAC4F9F0E28F75E3\ -E04E5B3DEBCE607A496D848D67FA7B49132C71B878FD5557E082A18ECA1FBDA9\ -4D4B:\ -90E82FD6B8CAA4BBED1601832F022CD42EF5D2AA0C9C2646ACB1862A606C9BF6\ -5305CFBD8DC70DDCFAA0679BA6A374B9016895502C89966D42BBE538A941F40A - -8F65F6BC59A85705016E2BAE7FE57980DE3127E5AB275F573D334F73F8603106\ -EC3553016608EF2DD6E69B24BE0B7113BF6A760BA6E9CE1C48F9E186012CF96A\ -1D4849D75DF5BB8315387FD78E9E153E76F8BA7EC6C8849810F59FB4BB9B0043\ -18210B37F1299526866F44059E017E22E96CBE418699D014C6EA01C9F0038B10\ -299884DBEC3199BB05ADC94E955A1533219C1115FED0E5F21228B071F40DD57C\ -4240D98D37B73E412FE0FA4703120D7C0C67972ED233E5DEB300A22605472FA3\ -A3BA86:\ -DF68A8A39DCCD310EA7489D178B84E8AFB5410011EFFDB4AE044A0BA1932A79C\ -1F8D20C20B7504AD1D76553D5AF3F18AB81FC095F98A97A95E61437B07B88204 - -84891E52E0D451813210C3FD635B39A03A6B7A7317B221A7ABC270DFA946C426\ -69AACBBBDF801E1584F330E28C729847EA14152BD637B3D0F2B38B4BD5BF9C79\ -1C58806281103A3EABBAEDE5E711E539E6A8B2CF297CF351C078B4FA8F7F35CF\ -61BEBF8814BF248A01D41E86C5715EA40C63F7375379A7EB1D78F27622FB468A\ -B784AAABA4E534A6DFD1DF6FA15511341E725ED2E87F98737CCB7B6A6DFAE416\ -477472B046BF1811187D151BFA9F7B2BF9ACDB23A3BE507CDF14CFDF517D2CB5\ -FB9E4AB6:\ -E70450F1439D6CAFDBBD6934CE8163769B2C5055FE1D4EC196AB093B2229849B\ -3F58C8A74161FA0516C45AC406B1A73588CB6BA5DE24A9E792D35953C3F01780 - -FDD7A9433A3B4AFABD7A3A5E3457E56DEBF78E84B7A0B0CA0E8C6D53BD0C2DAE\ -31B2700C6128334F43981BE3B213B1D7A118D59C7E6B6493A86F866A1635C128\ -59CFB9AD17460A77B4522A5C1883C3D6ACC86E6162667EC414E9A104AA892053\ -A2B1D72165A855BACD8FAF8034A5DD9B716F47A0818C09BB6BAF22AA503C06B4\ -CA261F557761989D2AFBD88B6A678AD128AF68672107D0F1FC73C5CA74045929\ -7B3292B281E93BCEB761BDE7221C3A55708E5EC84472CDDCAA84ECF23723CC09\ -91355C6280:\ -5D4D81E795BE45C75C8F44D51A9F8762F0D0B6EDC49D1CBD14056876BCF10058\ -D1B72C06C8790C10168F0F42B9C9C9829BC5224AB5E2031DE7464ECB74822CF4 - -70A40BFBEF92277A1AAD72F6B79D0177197C4EBD432668CFEC05D099ACCB6510\ -62B5DFF156C0B27336687A94B26679CFDD9DAF7AD204338DD9C4D14114033A5C\ -225BD11F217B5F4732DA167EE3F939262D4043FC9CBA92303B7B5E96AEA12ADD\ -A64859DF4B86E9EE0B58E39091E6B188B408AC94E1294A8911245EE361E60E60\ -1EFF58D1D37639F3753BEC80EBB4EFDE25817436076623FC65415FE51D1B0280\ -366D12C554D86743F3C3B6572E400361A60726131441BA493A83FBE9AFDA90F7\ -AF1AE717238D:\ -5252EA0BF90D43E68D167411F3D171614C11B6830DDBA8AB20EA126F70AB89B1\ -20F4DB0BFC9E8A05D45B4DA7B884C7EEC51D4C079D021CEF9B02D8E856895573 - -74356E449F4BF8644F77B14F4D67CB6BD9C1F5AE357621D5B8147E562B65C665\ -85CAF2E491B48529A01A34D226D436959153815380D5689E30B35357CDAC6E08\ -D3F2B0E88E200600D62BD9F5EAF488DF86A4470EA227006182E44809009868C4\ -C280C43D7D64A5268FA719074960087B3A6ABC837882F882C837834535929389\ -A12B2C78187E2EA07EF8B8EEF27DC85002C3AE35F1A50BEE6A1C48BA7E175F33\ -16670B27983472AA6A61EED0A683A39EE323080620EA44A9F74411AE5CE99030\ -528F9AB49C79F2:\ -8A38DA71A86A3F26A211D1D0662E13B5A3DFD0E9F719489B814D38ED16751477\ -91720ED349D754FA5A6B260F2736F66DB991C407664EB97FA6E936F08B9EF1F6 - -8C3798E51BC68482D7337D3ABB75DC9FFE860714A9AD73551E120059860DDE24\ -AB87327222B64CF774415A70F724CDF270DE3FE47DDA07B61C9EF2A3551F45A5\ -584860248FABDE676E1CD75F6355AA3EAEABE3B51DC813D9FB2EAA4F0F1D9F83\ -4D7CAD9C7C695AE84B329385BC0BEF895B9F1EDF44A03D4B410CC23A79A6B62E\ -4F346A5E8DD851C2857995DDBF5B2D717AEB847310E1F6A46AC3D26A7F9B4498\ -5AF656D2B7C9406E8A9E8F47DCB4EF6B83CAACF9AEFB6118BFCFF7E44BEF6937\ -EBDDC89186839B77:\ -74F8AF73F27D644BB937EBC0F58B8884A5F8C5C8BE34D26CF7D0EBBFE724663E\ -121B36B64FD42B61132D424B185E4093E91E517EE7BD1E106D8F9E74B8057564 - -FA56BF730C4F8395875189C10C4FB251605757A8FECC31F9737E3C2503B02608\ -E6731E85D7A38393C67DE516B85304824BFB135E33BF22B3A23B913BF6ACD2B7\ -AB85198B8187B2BCD454D5E3318CACB32FD6261C31AE7F6C54EF6A7A2A4C9F3E\ -CB81CE3555D4F0AD466DD4C108A90399D70041997C3B25345A9653F3C9A6711A\ -B1B91D6A9D2216442DA2C973CBD685EE7643BFD77327A2F7AE9CB283620A0871\ -6DFB462E5C1D65432CA9D56A90E811443CD1ECB8F0DE179C9CB48BA4F6FEC360\ -C66F252F6E64EDC96B:\ -CFC4825ACA4ED0B0888647A6EBD37AC1EF1721806C35A462EFF091F14E3950A2\ -3E508F821E65EDC7FF8879E4D454E137429666342365CAC8087346D11356FFD2 - -B6134F9C3E91DD8000740D009DD806240811D51AB1546A974BCB18D344642BAA\ -5CD5903AF84D58EC5BA17301D5EC0F10CCD0509CBB3FD3FFF9172D193AF0F782\ -252FD1338C7244D40E0E42362275B22D01C4C3389F19DD69BDF958EBE28E31A4\ -FFE2B5F18A87831CFB7095F58A87C9FA21DB72BA269379B2DC2384B3DA953C79\ -25761FED324620ACEA435E52B424A7723F6A2357374157A34CD8252351C25A1B\ -232826CEFE1BD3E70FFC15A31E7C0598219D7F00436294D11891B82497BC78AA\ -5363892A2495DF8C1EEF:\ -BB3566825AD58FD9D5AABE8B1E6C53F7F8E176F401EC327AD1455C20FE40B9A0\ -1012748DF19885F1660CA77D3FCE3A8D8F017E49CDE3F36BCD7BE3C776148B40 - -C941CDB9C28AB0A791F2E5C8E8BB52850626AA89205BEC3A7E22682313D198B1\ -FA33FC7295381354858758AE6C8EC6FAC3245C6E454D16FA2F51C4166FAB51DF\ -272858F2D603770C40987F64442D487AF49CD5C3991CE858EA2A60DAB6A65A34\ -414965933973AC2457089E359160B7CDEDC42F29E10A91921785F6B7224EE0B3\ -49393CDCFF6151B50B377D609559923D0984CDA6000829B916AB6896693EF6A2\ -199B3C22F7DC5500A15B8258420E314C222BC000BC4E5413E6DD82C993F8330F\ -5C6D1BE4BC79F08A1A0A46:\ -859D25E201724C1CD4F961A2CFFA4D2D860C465C4941930D3C77B84F799C09A4\ -A53EE1194F9404161EBA23C869589D65183C4FA96ECD12CC9FCFCEF059F0B4A8 - -4499EFFFAC4BCEA52747EFD1E4F20B73E48758BE915C88A1FFE5299B0B005837\ -A46B2F20A9CB3C6E64A9E3C564A27C0F1C6AD1960373036EC5BFE1A8FC6A435C\ -2185ED0F114C50E8B3E4C7ED96B06A036819C9463E864A58D6286F785E32A804\ -443A56AF0B4DF6ABC57ED5C2B185DDEE8489EA080DEEEE66AA33C2E6DAB36251\ -C402682B6824821F998C32163164298E1FAFD31BABBCFFB594C91888C6219079\ -D907FDB438ED89529D6D96212FD55ABE20399DBEFD342248507436931CDEAD49\ -6EB6E4A80358ACC78647D043:\ -38EE279BE412ED11553578F7980EF4E17898ACDBD774F5C98F9CBCEBA75E394D\ -BC49357E9463E2EBECBAE687D344F9059445716D3B3AC044E41537DB00E9C12E - -EECBB8FDFA4DA62170FD06727F697D81F83F601FF61E478105D3CB7502F2C89B\ -F3E8F56EDD469D049807A38882A7EEFBC85FC9A950952E9FA84B8AFEBD3CE782\ -D4DA598002827B1EB98882EA1F0A8F7AA9CE013A6E9BC462FB66C8D4A18DA214\ -01E1B93356EB12F3725B6DB1684F2300A98B9A119E5D27FF704AFFB618E12708\ -E77E6E5F34139A5A41131FD1D6336C272A8FC37080F041C71341BEE6AB550CB4\ -A20A6DDB6A8E0299F2B14BC730C54B8B1C1C487B494BDCCFD3A53535AB2F2315\ -90BF2C4062FD2AD58F906A2D0D:\ -280F21678FD84E142CED7376105DF2B088144D246F1C4802D3AA550F7B04AFA2\ -A226541255FAB2AD36B67D2CAE7AA42878464D3A4FE5945C820A1107073B8662 - -E64F3E4ACE5C8418D65FEC2BC5D2A303DD458034736E3B0DF719098BE7A206DE\ -AF52D6BA82316CAF330EF852375188CDE2B39CC94AA449578A7E2A8E3F5A9D68\ -E816B8D16889FBC0EBF0939D04F63033AE9AE2BDAB73B88C26D6BD25EE460EE1\ -EF58FB0AFA92CC539F8C76D3D097E7A6A63EBB9B5887EDF3CF076028C5BBD5B9\ -DB3211371AD3FE121D4E9BF44229F4E1ECF5A0F9F0EBA4D5CEB72878AB22C3F0\ -EB5A625323AC66F7061F4A81FAC834471E0C59553F108475FE290D43E6A055AE\ -3EE46FB67422F814A68C4BE3E8C9:\ -986651FDBDF3A65911FB73D5BB132DE19F1060549E76811E05DC80AFC8012F77\ -FA965A7FFA380163EAFAD2D495FA2F07CE7D7A7D4A94EEB0505B64F7C429F849 - -D2CB2D733033F9E91395312808383CC4F0CA974E87EC68400D52E96B3FA6984A\ -C58D9AD0938DDE5A973008D818C49607D9DE2284E7618F1B8AED8372FBD52ED5\ -4557AF4220FAC09DFA8443011699B97D743F8F2B1AEF3537EBB45DCC9E13DFB4\ -38428EE190A4EFDB3CAEB7F3933117BF63ABDC7E57BEB4171C7E1AD260AB0587\ -806C4D137B6316B50ABC9CCE0DFF3ACADA47BBB86BE777E617BBE578FF451984\ -4DB360E0A96C6701290E76BB95D26F0F804C8A4F2717EAC4E7DE9F2CFF3BBC55\ -A17E776C0D02856032A6CD10AD2838:\ -53D548018056A72FE24AB630F7DC9C89DE4891D83260767A403CC2EA3F892145\ -8EC7EA45FBFBF38C4083A4AAE3BADB5F5D0422EB9E525B7B8B4CD5BE0ACB758D - -F2998955613DD414CC111DF5CE30A995BB792E260B0E37A5B1D942FE90171A4A\ -C2F66D4928D7AD377F4D0554CBF4C523D21F6E5F379D6F4B028CDCB9B1758D3B\ -39663242FF3CB6EDE6A36A6F05DB3BC41E0D861B384B6DEC58BB096D0A422FD5\ -42DF175E1BE1571FB52AE66F2D86A2F6824A8CFAACBAC4A7492AD0433EEB1545\ -4AF8F312B3B2A577750E3EFBD370E8A8CAC1582581971FBA3BA4BD0D76E718DA\ -CF8433D33A59D287F8CC92234E7A271041B526E389EFB0E40B6A18B3AAF658E8\ -2ED1C78631FD23B4C3EB27C3FAEC8685:\ -4C84E9B4DC2F3C60BAE0C3C11A0FD6D992567DC45695E5C8DAAAF5955F6DC91B\ -DA8A1581A93462370C29212D7157588417CCEA1F9AE8CAD47635D1F837871869 - -447797E2899B72A356BA55BF4DF3ACCA6CDB1041EB477BD1834A9F9ACBC340A2\ -94D729F2F97DF3A610BE0FF15EDB9C6D5DB41644B9874360140FC64F52AA03F0\ -286C8A640670067A84E017926A70438DB1BB361DEFEE7317021425F8821DEF26\ -D1EFD77FC853B818545D055ADC9284796E583C76E6FE74C9AC2587AA46AA8F88\ -04F2FEB5836CC4B3ABABAB8429A5783E17D5999F32242EB59EF30CD7ADABC16D\ -72DBDB097623047C98989F88D14EAF02A7212BE16EC2D07981AAA99949DDF89E\ -CD90333A77BC4E1988A82ABF7C7CAF3291:\ -140278E6BF4A3E62E5FFFE20034DCEDCF88AFD11FA9D3DFFA6EAC8BC1E82B8D2\ -2458E8623126E4DA646D1866218AA99140F110A1259A306132A4DD3292B5CADD - -9F2C18ADE9B380C784E170FB763E9AA205F64303067EB1BCEA93DF5DAC4BF5A2\ -E00B78195F808DF24FC76E26CB7BE31DC35F0844CDED1567BBA29858CFFC97FB\ -29010331B01D6A3FB3159CC1B973D255DA9843E34A0A4061CABDB9ED37F241BF\ -ABB3C20D32743F4026B59A4CCC385A2301F83C0B0A190B0F2D01ACB8F0D41111\ -E10F2F4E149379275599A52DC089B35FDD5234B0CFB7B6D8AEBD563CA1FA653C\ -5C021DFD6F5920E6F18BFAFDBECBF0AB00281333ED50B9A999549C1C8F8C63D7\ -626C48322E9791D5FF72294049BDE91E73F8:\ -910CE76BE8C967718FD1E1EF7969E7A56F1354C06FABEDA892E07FBB659F9369\ -55E9AE9D75D5E3BBA81E8455B775BF4CEF2A4647E3C7C340F364A46F8857A72B - -AE159F3FA33619002AE6BCCE8CBBDD7D28E5ED9D61534595C4C9F43C402A9BB3\ -1F3B301CBFD4A43CE4C24CD5C9849CC6259ECA90E2A79E01FFBAC07BA0E147FA\ -42676A1D668570E0396387B5BCD599E8E66AAED1B8A191C5A47547F61373021F\ -A6DEADCB55363D233C24440F2C73DBB519F7C9FA5A8962EFD5F6252C0407F190\ -DFEFAD707F3C7007D69FF36B8489A5B6B7C557E79DD4F50C06511F599F56C896\ -B35C917B63BA35C6FF8092BAF7D1658E77FC95D8A6A43EEB4C01F33F03877F92\ -774BE89C1114DD531C011E53A34DC248A2F0E6:\ -8E120865B61ED74C25A3EA9805E286BFAAC7F75C37AB763C45E325E882E2B55D\ -7FE2776A62C9DA46915DC27881990560648CC6DAC1226442ADAC95C4AB8CBE3B - -3B8E97C5FFC2D6A40FA7DE7FCEFC90F3B12C940E7AB415321E29EE692DFAC799\ -B009C99DCDDB708FCE5A178C5C35EE2B8617143EDC4C40B4D313661F49ABDD93\ -CEA79D117518805496FE6ACF292C4C2A1F76B403A97D7C399DAF85B46AD84E16\ -246C67D6836757BDE336C290D5D401E6C1386AB32797AF6BB251E9B2D8FE754C\ -47482B72E0B394EAB76916126FD68EA7D65EB93D59F5B4C5AC40F7C3B37E7F36\ -94F29424C24AF8C8F0EF59CD9DBF1D28E0E10F799A6F78CAD1D45B9DB3D7DEE4\ -A7059ABE99182714983B9C9D44D7F5643596D4F3:\ -DD073E6362674B8D090C505B14BC4B110C086A655264B2D0E917C3BD2F5E4330\ -5E4B034AFCBD7ABD991C38946FA601FE11AF342B29C36E180B27081C37384765 - -3434EC31B10FAFDBFEEC0DD6BD94E80F7BA9DCA19EF075F7EB017512AF66D6A4\ -BCF7D16BA0819A1892A6372F9B35BCC7CA8155EE19E8428BC22D214856ED5FA9\ -374C3C09BDE169602CC219679F65A1566FC7316F4CC3B631A18FB4449FA6AFA1\ -6A3DB2BC4212EFF539C67CF184680826535589C7111D73BFFCE431B4C40492E7\ -63D9279560AAA38EB2DC14A212D723F994A1FE656FF4DD14551CE4E7C621B2AA\ -5604A10001B2878A897A28A08095C325E10A26D2FB1A75BFD64C250309BB55A4\ -4F23BBAC0D5516A1C687D3B41EF2FBBF9CC56D4739:\ -2C1FF25C2128E3B59FC8CCC59D738523656A2A3A0C28F3BDA52C49243BAC3B42\ -E26F8FC39DA0D864040DD08CA4F608ABAB45AFE38FC187882EB9BC3C46409D9A - -7C7953D81C8D208FD1C97681D48F49DD003456DE60475B84070EF4847C333B74\ -575B1FC8D2A186964485A3B8634FEAA3595AAA1A2F4595A7D6B6153563DEE31B\ -BAC443C8A33EED6D5D956A980A68366C2527B550EE950250DFB691EACBD5D56A\ -E14B970668BE174C89DF2FEA43AE52F13142639C884FD62A3683C0C3792F0F24\ -AB1318BCB27E21F4737FAB62C77EA38BC8FD1CF41F7DAB64C13FEBE7152BF5BB\ -7AB5A78F5346D43CC741CB6F72B7B8980F268B68BF62ABDFB1577A52438FE14B\ -591498CC95F071228460C7C5D5CEB4A7BDE588E7F21C:\ -805746E78C228C7A99B1FBAE93BBF4C1F81DBF14C3EF7DBF70E9FA1FB5E611C5\ -328E0A374FB2CA67A95161D5BF3F2D6C12C8A90E1CD4AF6ABBD00E37775D524D - -7A6A4F4FDC59A1D223381AE5AF498D74B7252ECF59E389E49130C7EAEE626E7B\ -D9897EFFD92017F4CCDE66B0440462CDEDFD352D8153E6A4C8D7A0812F701CC7\ -37B5178C2556F07111200EB627DBC299CAA792DFA58F35935299FA3A3519E9B0\ -3166DFFA159103FFA35E8577F7C0A86C6B46FE13DB8E2CDD9DCFBA85BDDDCCE0\ -A7A8E155F81F712D8E9FE646153D3D22C811BD39F830433B2213DD46301941B5\ -9293FD0A33E2B63ADBD95239BC01315C46FDB678875B3C81E053A40F581CFBEC\ -24A1404B1671A1B88A6D06120229518FB13A74CA0AC5AE:\ -C2E4138CF6D5DF8997649C4324E06451218F575730C6ADE1825067587022EA32\ -20A7F049C412F42FA5A73313956165525FD3D3A753DCDCCAE1D29524043F2BE4 - -D9FAA14CEBE9B7DE551B6C0765409A33938562013B5E8E0E1E0A6418DF7399D0\ -A6A771FB81C3CA9BD3BB8E2951B0BC792525A294EBD1083688806FE5E7F1E17F\ -D4E3A41D00C89E8FCF4A363CAEDB1ACB558E3D562F1302B3D83BB886ED27B760\ -33798131DAB05B4217381EAAA7BA15EC820BB5C13B516DD640EAEC5A27D05FDF\ -CA0F35B3A5312146806B4C0275BCD0AAA3B2017F346975DB566F9B4D137F4EE1\ -0644C2A2DA66DEECA5342E236495C3C6280528BFD32E90AF4CD9BB908F34012B\ -52B4BC56D48CC8A6B59BAB014988EABD12E1A0A1C2E170E7:\ -7BB7AA3C574F6CF20740B77C4F349D405D815A949AB74EB4439638C9521694A4\ -48CEE4729A1B88C5C6230EE0A6388D1A7BA8E909A990145AEC951996462E62D7 - -2D8427433D0C61F2D96CFE80CF1E932265A191365C3B61AAA3D6DCC039F6BA2A\ -D52A6A8CC30FC10F705E6B7705105977FA496C1C708A277A124304F1FC40911E\ -7441D1B5E77B951AAD7B01FD5DB1B377D165B05BBF898042E39660CAF8B279FE\ -5229D1A8DB86C0999ED65E53D01CCBC4B43173CCF992B3A14586F6BA42F5FE30\ -AFA8AE40C5DF29966F9346DA5F8B35F16A1DE3AB6DE0F477D8D8660918060E88\ -B9B9E9CA6A4207033B87A812DBF5544D39E4882010F82B6CE005F8E8FF6FE3C3\ -806BC2B73C2B83AFB704345629304F9F86358712E9FAE3CA3E:\ -32761245645A67ADEF404906F3E29233A1C09B98785A38D6F02477F90D242C5B\ -E71A4F9FE272E5A2C7AC644D245167A06D8162F01880DAD6684A8C7E27044A7D - -5E19D97887FCAAC0387E22C6F803C34A3DACD2604172433F7A8A7A526CA4A2A1\ -271ECFC5D5D7BE5AC0D85D921095350DFC65997D443C21C8094E0A3FEFD2961B\ -CB94AED03291AE310CCDA75D8ACE4BC7D89E7D3E5D1650BDA5D668B8B50BFC8E\ -608E184F4D3A9A2BADC4FF5F07E0C0BC8A9F2E0B2A26FD6D8C550008FAAAB75F\ -D71AF2A424BEC9A7CD9D83FAD4C8E9319115656A8717D3B523A68FF8004258B9\ -990ED362308461804BA3E3A7E92D8F2FFAE5C2FBA55BA5A3C27C0A2F71BD711D\ -2FE1799C2ADB31B200035481E9EE5C4ADF2AB9C0FA50B23975CF:\ -72C59B8CAF93E65FF374BB129F7221B30DAE35205C3455D4D268657C6D27926C\ -940096D004737DAF4306F321C840E402D35BE5DAE71CF48FF64F424A3CECF62D - -C8E976AB4638909387CE3B8D4E510C3230E5690E02C45093B1D297910ABC481E\ -56EEA0F296F98379DFC9080AF69E73B2399D1C143BEE80AE1328162CE1BA7F6A\ -8374679B20AACD380EB4E61382C99998704D62701AFA914F9A2705CDB065885F\ -50D086C3EB5753700C387118BB142F3E6DA1E988DFB31AC75D7368931E45D139\ -1A274B22F83CEB072F9BCABC0B216685BFD789F5023971024B1878A205442522\ -F9EA7D8797A4102A3DF41703768251FD5E017C85D1200A464118AA35654E7CA3\ -9F3C375B8EF8CBE7534DBC64BC20BEFB417CF60EC92F63D9EE7397:\ -77867FCE5437F2BBB52ACCB44140DF9D235023333031DDA334525DCC9178877F\ -96B0216D007F5E3718E55E233E43C146A6942FAC5D815A892EB53F4BFEFFE17B - -7145FA124B7429A1FC2231237A949BA7201BCC1822D3272DE005B682398196C2\ -5F7E5CC2F289FBF44415F699CB7FE6757791B1443410234AE061EDF623359E2B\ -4E32C19BF88450432DD01CAA5EB16A1DC378F391CA5E3C4E5F356728BDDD4975\ -DB7C890DA8BBC84CC73FF244394D0D48954978765E4A00B593F70F2CA082673A\ -261ED88DBCEF1127728D8CD89BC2C597E9102CED6010F65FA75A14EBE467FA57\ -CE3BD4948B6867D74A9DF5C0EC6F530CBF2EE61CE6F06BC8F2864DFF5583776B\ -31DF8C7FFCB61428A56BF7BD37188B4A5123BBF338393AF46EDA85E6:\ -37F2BF50D2E8757DAC08977B2882BAF7CD98E54FE12C57F9A5ADDC9EE5A77F8C\ -DA29864F70179A4CF473CC505C1E25837443B94CE4FA817101BFDE224B5DF107 - -7FDFADCC9D29BAD23AE038C6C65CDA1AEF757221B8872ED3D75FF8DF7DA0627D\ -266E224E812C39F7983E4558BFD0A1F2BEF3FEB56BA09120EF762917B9C09386\ -7948547AEE98600D10D87B20106878A8D22C64378BF634F7F75900C03986B077\ -B0BF8B740A82447B61B99FEE5376C5EB6680EC9E3088F0BDD0C56883413D60C1\ -357D3C811950E5890E7600103C916341B80C743C6A852B7B4FB60C3BA21F3BC1\ -5B8382437A68454779CF3CD7F9F90CCC8EF28D0B706535B1E4108EB5627BB45D\ -719CB046839AEE311CA1ABDC8319E050D67972CB35A6B1601B25DBF487:\ -ACB477957256D5E134873B0A4F804A2A492A72468EAEFE80F0DE23DD55862FB7\ -CE5AEB58FE9E1FCEC12BFA7ED92D5E19D89075D11860315445250735811499E3 - -988638219FD3095421F826F56E4F09E356296B628C3CE6930C9F2E758FD1A80C\ -8273F2F61E4DAAE65C4F110D3E7CA0965AC7D24E34C0DC4BA2D6FF0BF5BBE93B\ -3585F354D7543CB542A1AA54674D375077F2D360A8F4D42F3DB131C3B7AB7306\ -267BA107659864A90C8C909460A73621D1F5D9D3FD95BEB19B23DB1CB6C0D0FB\ -A91D36891529B8BD8263CAA1BAB56A4AFFAED44962DF096D8D5B1EB845EF3118\ -8B3E10F1AF811A13F156BEB7A288AAE593EBD1471B624AA1A7C6ADF01E2200B3\ -D72D88A3AED3100C88231E41EFC376906F0B580DC895F080FDA5741DB1CB:\ -F5178B231491395B863F570B96268B27A403502CF228173A94989E13B78615E7\ -A07087ED7422696C295A2D25B4C075ED5CBFB3765F67F60047014F4554DC5103 - -5AAB62756D307A669D146ABA988D9074C5A159B3DE85151A819B117CA1FF6597\ -F6156E80FDD28C9C3176835164D37DA7DA11D94E09ADD770B68A6E081CD22CA0\ -C004BFE7CD283BF43A588DA91F509B27A6584C474A4A2F3EE0F1F56447379240\ -A5AB1FB77FDCA49B305F07BA86B62756FB9EFB4FC225C86845F026EA542076B9\ -1A0BC2CDD136E122C659BE259D98E5841DF4C2F60330D4D8CDEE7BF1A0A24452\ -4EECC68FF2AEF5BF0069C9E87A11C6E519DE1A4062A10C83837388F7EF58598A\ -3846F49D499682B683C4A062B421594FAFBC1383C943BA83BDEF515EFCF10D:\ -60A65939E7472F42AB9D9FEF54DA531C9576BF1F740E62E04FEABC96D67C744C\ -461A0EF4AB4C90BFB0C42F2A7724006218DA38D1BDF0DDEE536A11D2C0B2A6B7 - -47B8216AA0FBB5D67966F2E82C17C07AA2D6327E96FCD83E3DE7333689F3EE79\ -994A1BF45082C4D725ED8D41205CB5BCDF5C341F77FACB1DA46A5B9B2CBC49EA\ -DF786BCD881F371A95FA17DF73F606519AEA0FF79D5A11427B98EE7F13A5C006\ -37E2854134691059839121FEA9ABE2CD1BCBBBF27C74CAF3678E05BFB1C94989\ -7EA01F56FFA4DAFBE8644611685C617A3206C7A7036E4AC816799F693DAFE7F1\ -9F303CE4EBA09D21E03610201BFC665B72400A547A1E00FA9B7AD8D84F84B34A\ -EF118515E74DEF11B9188BD1E1F97D9A12C30132EC2806339BDADACDA2FD8B78:\ -B0B2699CD59779EE8903B952410B43E607DE0514FB5D9722233FA363F686E5C0\ -F02F2F4866B850F3294B9172FBBC5D6BE0407FCDA88A70BF62634F1246B7B48B - -8CFF1F67FE53C098896D9136389BD8881816CCAB34862BB67A656E3D98896F3C\ -E6FFD4DA73975809FCDF9666760D6E561C55238B205D8049C1CEDEEF374D1735\ -DAA533147BFA960B2CCE4A4F254176BB4D1BD1E89654432B8DBE1A135C42115B\ -394B024856A2A83DC85D6782BE4B444239567CCEC4B184D4548EAE3FF6A192F3\ -43292BA2E32A0F267F31CC26719EB85245D415FB897AC2DA433EE91A99424C9D\ -7F1766A44171D1651001C38FC79294ACCC68CEB5665D36218454D3BA169AE058\ -A831338C17743603F81EE173BFC0927464F9BD728DEE94C6AEAB7AAE6EE3A627\ -E8:\ -FA3D438287356A9FF72904A3A7E4E143F3DEDF0104F8EA1A8851DBF401F5F767\ -511AB18C629AAB16B0FC7F42F96AF244CF797713F3A2936E78C435E01E09A599 - -EACD07971CFF9B9939903F8C1D8CBB5D4DB1B548A85D04E037514A583604E787\ -F32992BF2111B97AC5E8A938233552731321522AB5E8583561260B7D13EBEEF7\ -85B23A41FD8576A6DA764A8ED6D822D4957A545D5244756C18AA80E1AAD4D1F9\ -C20D259DEE1711E2CC8FD013169FB7CC4CE38B362F8E0936AE9198B7E838DCEA\ -4F7A5B9429BB3F6BBCF2DC92565E3676C1C5E6EB3DD2A0F86AA23EDD3D0891F1\ -97447692794B3DFA269611AD97F72B795602B4FDB198F3FD3EB41B415064256E\ -345E8D8C51C555DC8A21904A9B0F1AD0EFFAB7786AAC2DA3B196507E9F33CA35\ -6427:\ -1527F8E417B736AADAECFD3331B56E0E2AD7DED6E621AAC34A5289C77D022837\ -0025D42D065F2141E8513C841EF6B7222D2B138F3B236500D92D782D30AA0C7F - -23AC4E9A42C6EF45C3336CE6DFC2FF7DE8884CD23DC912FEF0F7756C09D335C1\ -89F3AD3A23697ABDA851A81881A0C8CCAFC980AB2C702564C2BE15FE4C4B9F10\ -DFB2248D0D0CB2E2887FD4598A1D4ACDA897944A2FFC580FF92719C95CF2AA42\ -DC584674CB5A9BC5765B9D6DDF5789791D15F8DD925AA12BFFAFBCE60827B490\ -BB7DF3DDA6F2A143C8BF96ABC903D83D59A791E2D62814A89B8080A28060568C\ -F24A80AE61179FE84E0FFAD00388178CB6A617D37EFD54CC01970A4A41D1A8D3\ -DDCE46EDBBA4AB7C90AD565398D376F431189CE8C1C33E132FEAE6A8CD17A61C\ -630012:\ -4288CE417AC9BFBD79624FF3B6D372B27291BC41038F7D27658052ED9BFAC950\ -5593D7D7FF87620E43DDAFC9D3152DDE7BB572A035BA4AF6D6163DEDEF761981 - -0172DF732282C9D488669C358E3492260CBE91C95CFBC1E3FEA6C4B0EC129B45\ -F242ACE09F152FC6234E1BEE8AAB8CD56E8B486E1DCBA9C05407C2F95DA8D8F1\ -C0AF78EE2ED82A3A79EC0CB0709396EE62AADB84F8A4EE8A7CCCA3C1EE84E302\ -A09EA802204AFECF04097E67D0F8E8A9D2651126C0A598A37081E42D168B0AE8\ -A71951C524259E4E2054E535B779679BDADE566FE55700858618E626B4A0FAF8\ -95BCCE9011504A49E05FD56127EAE3D1F8917AFB548ECADABDA1020111FEC931\ -4C413498A360B08640549A22CB23C731ACE743252A8227A0D2689D4C60016066\ -78DFB921:\ -70EB09D44B47385081714872B8F37C5E10DBCB3173C752DEBAB0FE9E7FA2EA33\ -888696A85C30B3703B149A48BC08C9D0DC5C2D4CE2D50270B6BCFB38BDB2D738 - -3875B9240CF3E0A8B59C658540F26A701CF188496E2C2174788B126FD29402D6\ -A75453BA0635284D08835F40051A2A9683DC92AFB9383719191231170379BA6F\ -4ADC816FECBB0F9C446B785BF520796841E58878B73C58D3EBB097CE4761FDEA\ -BE15DE2F319DFBAF1742CDEB389559C788131A6793E193856661376C81CE9568\ -DA19AA6925B47FFD77A43C7A0E758C37D69254909FF0FBD415EF8EB937BCD49F\ -91468B49974C07DC819ABD67395DB0E05874FF83DDDAB895344ABD0E7111B2DF\ -9E58D76D85AD98106B36295826BE04D435615595605E4B4BB824B33C4AFEB5E7\ -BB0D19F909:\ -B8D59524A0B510ADF31C2BE3C28D9BBFDE3522425D7CC5E9985DB21ADEF17A39\ -2683D0D9865BEAE4FE52E59212C3DF4026DF0D507BFD31796BA235C34FDF6EB4 - -747CC1A59FEFBA94A9C75BA866C30DC5C1CB0C0F8E9361D98484956DD5D1A40F\ -6184AFBE3DAC9F76028D1CAECCFBF69199C6CE2B4C092A3F4D2A56FE5A33A007\ -57F4D7DEE5DFB0524311A97AE0668A47971B95766E2F6DD48C3F57841F91F04A\ -00AD5EA70F2D479A2620DC5CD78EAAB3A3B011719B7E78D19DDF70D9423798AF\ -77517EBC55392FCD01FC600D8D466B9E7A7A85BF33F9CC5419E9BD874DDFD609\ -81150DDAF8D7FEBAA4374F0872A5628D318000311E2F5655365AD4D407C20E5C\ -04DF17A222E7DEEC79C5AB1116D8572F91CD06E1CCC7CED53736FC867FD49ECE\ -BE6BF8082E8A:\ -CAFC4468370B21BBB40D207D55FD79D4E753E4693075CCABBD8152DD2FC8BE77\ -C81EF5ECAD93D0CF67FECF96D4CE401D1012A78FE5AF1575D430B4E98BDB0DAB - -57AF971FCCAEC97435DC2EC9EF0429BCEDC6B647729EA168858A6E49AC1071E7\ -06F4A5A645CA14E8C7746D65511620682C906C8B86EC901F3DDED4167B3F00B0\ -6CBFAC6AEE3728051B3E5FF10B4F9ED8BD0B8DA94303C833755B3CA3AEDDF0B5\ -4BC8D6632138B5D25BAB03D17B3458A9D782108006F5BB7DE75B5C0BA854B423\ -D8BB801E701E99DC4FEAAD59BC1C7112453B04D33EA3635639FB802C73C2B71D\ -58A56BBD671B18FE34ED2E3DCA38827D63FDB1D4FB3285405004B2B3E26081A8\ -FF08CD6D2B08F8E7B7E90A2AB1ED7A41B1D0128522C2F8BFF56A7FE67969422C\ -E839A9D4608F03:\ -DB9F9D60468D2ACA0E907666BFE59D44AEFAEFFEA0F9B5FAF3F54A10F33441E0\ -A8775D618D1DC05E454B4469ACD393B1938381443EEF27F98CEA2AAF29FAA504 - -04E16DEDC1227902BAAF332D3D08923601BDD64F573FAA1BB7201918CFE16B1E\ -10151DAE875DA0C0D63C59C3DD050C4C6A874011B018421AFC4623AB0381831B\ -2DA2A8BA42C96E4F70864AC44E106F94311051E74C77C1291BF5DB9539E69567\ -BF6A11CF6932BBBAD33F8946BF5814C066D851633D1A513510039B349939BFD4\ -2B858C21827C8FF05F1D09B1B0765DC78A135B5CA4DFBA0801BCADDFA175623C\ -8B647EACFB4444B85A44F73890607D06D507A4F8393658788669F6EF4DEB58D0\ -8C50CA0756D5E2F49D1A7AD73E0F0B3D3B5F090ACF622B1878C59133E4A848E0\ -5153592EA81C6FBF:\ -FD298EE7689557CBB1D2DB73661D535F88EF035339DA8CDEF3031F6F9247453D\ -FA9C620865B9102903CCD7675A69EC4123AE4841C97C69EC8673830010169776 - -7C815C384EEE0F288ECE27CCED52A01603127B079C007378BC5D1E6C5E9E6D1C\ -735723ACBBD5801AC49854B2B569D4472D33F40BBB8882956245C366DC3582D7\ -1696A97A4E19557E41E54DEE482A14229005F93AFD2C4A7D8614D10A97A9DFA0\ -7F7CD946FA45263063DDD29DB8F9E34DB60DAA32684F0072EA2A9426ECEBFA52\ -39FB67F29C18CBAA2AF6ED4BF4283936823AC1790164FEC5457A9CBA7C767CA5\ -9392D94CAB7448F50EB34E9A93A80027471CE59736F099C886DEA1AB4CBA4D89\ -F5FC7AE2F21CCD27F611ECA4626B2D08DC22382E92C1EFB2F6AFDC8FDC3D2172\ -604F5035C46B8197D3:\ -0DFAD082D280839A2D3D54080F44E2826D554A3382A024A8B8F89125864D27F5\ -AC75F8CA3D80C1B725005687A33817EF54B53C596E2D300B6464EFDF25860BBC - -E29D505158DBDD937D9E3D2145658EE6F5992A2FC790F4F608D9CDB44A091D5B\ -94B88E81FAC4FDF5C49442F13B911C55886469629551189EAFF62488F1A479B7\ -DB11A1560E198DDCCCCF50159093425FF7F1CB8D1D1246D0978764087D6BAC25\ -7026B090EFAE8CEC5F22B6F21C59ACE1AC7386F5B8837CA6A12B6FBF5534DD05\ -60EF05CA78104D3B943DDB220FEAEC89AA5E692A00F822A2AB9A2FE60350D75E\ -7BE16FF2526DC643872502D01F42F188ABED0A6E9A6F5FD0D1CE7D5755C9FFA6\ -6B0AF0B20BD806F08E06156690D81AC811778CA3DAC2C249B96002017FCE93E5\ -07E3B953ACF99964B847:\ -9B15DED0185F1529AE4C75B56060A13484BF6DB0B7113F8D440C5BCF91A9D95E\ -7ABD458D5D1D758A2019AA0A9A9CA18DA108314ED4269B7752F95D241C8DD95E - -D85588696F576E65ECA0155F395F0CFACD83F36A99111ED5768DF2D116D2121E\ -32357BA4F54EDE927F189F297D3A97FAD4E9A0F5B41D8D89DD7FE20156799C2B\ -7B6BF9C957BA0D6763F5C3BC5129747BBB53652B49290CFF1C87E2CDF2C4B95D\ -8AAEE09BC8FBFA6883E62D237885810491BFC101F1D8C636E3D0EDE838AD05C2\ -07A3DF4FAD76452979EB99F29AFAECEDD1C63B8D36CF378454A1BB67A741C77A\ -C6B6B3F95F4F02B64DABC15438613EA49750DF42EE90101F115AA9ABB9FF6432\ -4DDE9DABBB01054E1BD6B4BCDC7930A44C2300D87CA78C06924D0323AD7887E4\ -6C90E8C4D100ACD9EED21E:\ -9876B0FC3269B25129B2BEEDDE7D2F342E22351723BEDD3DCC5F225D8A480E0C\ -596C99A7FFA5780E0A40F09BB342AB9E87682F8A7AEC50BFF19947E00BF66E6B - -3A12F8508B40C32C74492B66323375DCFE49184C78F73179F3314B79E63376B8\ -AC683F5A51F1534BD729B02B04D002F55CBD8E8FC9B5EC1EA6BBE6A0D0E74315\ -18E6BA45D124035F9D3DCE0A8BB7BF1430A9F657E0B4EA9F20EB20C786A58181\ -A1E20A96F1628F8728A13BDF7A4B4B32FC8AA7054CC4881AE7FA19AFA65C6C3E\ -E1B3ADE3192AF42054A8A911B8EC1826865D46D93F1E7C5E2B7813C92A506E53\ -886F3D4701BB93D2A681AD109C845904BB861AF8AF0646B6E399B38B614051D3\ -4F6842563A0F37EC00CB3D865FC5D746C4987DE2A65071100883A2A9C7A2BFE1\ -E2DD603D9EA24DC7C5FD06BE:\ -612452D85CC2AF10F1AA9CED95EAA447C34A4A1236A27E8324037E9E9C7F983B\ -8BBBB2BC168DE5F86D161C940DA2C86008A59C77EAD4AA13630EBE882D73066B - -1861EDCE46FA5AD17E1FF1DEAE084DEC580F97D0A67885DFE834B9DFAC1AE076\ -742CE9E267512CA51F6DF5A455AF0C5FD6ABF94ACEA103A3370C354485A7846F\ -B84F3AC7C2904B5B2FBF227002CE512133BB7E1C4E50057BFD1E44DB33C7CDB9\ -69A99E284B184F50A14B068A1FC5009D9B298DBE92239572A7627AAC02ABE8F3\ -E3B473417F36D4D2505D16B7577F4526C9D94A270A2DFE450D06DA8F6FA95687\ -9A0A55CFE99E742EA555EA477BA3E9B44CCD508C375423611AF92E55345DC215\ -779B2D5119EBA49C71D49B9FE3F1569FA24E5CA3E332D042422A8B8158D3EC66\ -A80012976F31FFDF305F0C9C5E:\ -55C0F0C1D6FD781C85E85464BF3AFB4867CD46667E49D1C369BEABD3194F4D5C\ -237CB34027AF805A0B369459C6524E633625DBF72C5AB88292B08A59BB7633F3 - -08D0FFDE3A6E4EF65608EA672E4830C12943D7187CCFF08F4941CFC13E545F3B\ -9C7AD5EEBBE2B01642B486CAF855C2C73F58C1E4E3391DA8E2D63D96E15FD849\ -53AE5C231911B00AD6050CD7AAFDAAC9B0F663AE6AAB45519D0F5391A541707D\ -479034E73A6AD805AE3598096AF078F1393301493D663DD71F83869CA27BA508\ -B7E91E81E128C1716DC3ACFE3084B2201E04CF8006617EECF1B640474A5D45CF\ -DE9F4D3EF92D6D055B909892194D8A8218DB6D8203A84261D200D71473D7488F\ -3427416B6896C137D455F231071CACBC86E0415AB88AEC841D96B7B8AF41E05B\ -B461A40645BF176601F1E760DE5F:\ -7FF37874DD828FD1B4CEDE7E0AE6BAB8E366BB033B19892404B6546F2B7AC98E\ -CD03E94FAC5BF810C3B86CD8EB2A3C2485A31BA7E34472DE14E406C0998C38B9 - -D782ABB72A5BE3392757BE02D3E45BE6E2099D6F000D042C8A543F50ED6EBC05\ -5A7F133B0DD8E9BC348536EDCAAE2E12EC18E8837DF7A1B3C87EC46D50C241DE\ -E820FD586197552DC20BEEA50F445A07A38F1768A39E2B2FF05DDDEDF751F1DE\ -F612D2E4D810DAA3A0CC904516F9A43AF660315385178A529E51F8AAE141808C\ -8BC5D7B60CAC26BB984AC1890D0436EF780426C547E94A7B08F01ACBFC4A3825\ -EAE04F520A9016F2FB8BF5165ED12736FC71E36A49A73614739EAA3EC834069B\ -1B40F1350C2B3AB885C02C640B9F7686ED5F99527E41CFCD796FE4C256C91731\ -86C226169FF257954EBDA81C0E5F99:\ -F5C2E8E12ABC3765E9AE3682DB57E2F8B766F6ECC8D0BCD50B8E237E427A2AC1\ -E66B7212DEF66A5561BA1347AEA507DA088F4DD0F9F887354E6BF6B7DC267933 - -5FCE8109A358570E40983E1184E541833BB9091E280F258CFB144387B05D190E\ -431CB19BAA67273BA0C58ABE91308E1844DCD0B3678BAA42F335F2FA05267A02\ -40B3C718A5942B3B3E3BFA98A55C25A1466E8D7A603722CB2BBF03AFA54CD769\ -A99F310735EE5A05DAE2C22D397BD95635F58C48A67F90E1B73AAFCD3F82117F\ -0166657838691005B18DA6F341D6E90FC1CDB352B30FAE45D348294E501B6325\ -2DE14740F2B85AE5299DDEC3172DE8B6D0BA219A20A23BB5E10FF434D39DB3F5\ -83305E9F5C039D98569E377B75A70AB837D1DF269B8A4B566F40BB91B577455F\ -D3C356C914FA06B9A7CE24C7317A172D:\ -7F10AA2696AB43CE01E3658148B37EBE3C957345655F820F4D6176D2D0FB3665\ -61B25A185A845341986CBDDD1B1DC33D48F48EC7CAE99CBB016CA09595AE05CF - -6172F1971A6E1E4E6170AFBAD95D5FEC99BF69B24B674BC17DD78011615E502D\ -E6F56B86B1A71D3F4348087218AC7B7D09302993BE272E4A591968AEF18A1262\ -D665610D1070EE91CC8DA36E1F841A69A7A682C580E836941D21D909A3AFC1F0\ -B963E1CA5AB193E124A1A53DF1C587470E5881FB54DAE1B0D840F0C8F9D1B04C\ -645BA1041C7D8DBF22030A623AA15638B3D99A2C400FF76F3252079AF88D2B37\ -F35EE66C1AD7801A28D3D388AC450B97D5F0F79E4541755356B3B1A5696B023F\ -39AB7AB5F28DF4202936BC97393B93BC915CB159EA1BD7A0A414CB4B7A1AC3AF\ -68F50D79F0C9C7314E750F7D02FAA58BFA:\ -0D7CCD471A38BCE93CB11B673260F9691D4F1CB7663D44B51EB3BD7B0F1BC45E\ -C4382CBDEF8D852424558615C554FE06405E3A1DFB88B97D8ACA74192C804328 - -5668ECD99DFBE215C4118398AC9C9EAF1A1433FAB4CCDD3968064752B625EA94\ -4731F75D48A27D047D67547F14DD0FFAA55FA5E29F7AF0D161D85EAFC4F2029B\ -717C918EAB9D304543290BDBA7158B68020C0BA4E079BC95B5BC0FC044A992B9\ -4B4CCD3BD66D0EABB5DBBAB904D62E00752C4E3B0091D773BCF4C14B4377DA3E\ -FFF824B1CB2FA01B32D1E46C909E626ED2DAE920F4C7DBEB635BC754FACBD8D4\ -9BEBA3F23C1C41CCBFCD0EE0C114E69737F5597C0BF1D859F0C767E18002AE8E\ -39C26261FFDE2920D3D0BAF0E906138696CFE5B7E32B600F45DF3AAA39932F3A\ -7DF95B60FA8712A2271FCAF3911CE7B511B1:\ -B17B646A2179D20B55E2763A189545896E861291E9321643DBEBFBFD7951CEE2\ -E53283C2D9B54BA23B124C68098BC5229E31076198678AD124B8A8A56B848384 - -03D625488354DF30E3F875A68EDFCF340E8366A8E1AB67F9D5C5486A96829DFA\ -C0578289082B2A62117E1CF418B43B90E0ADC881FC6AE8105C888E9ECD21AEA1\ -C9AE1A4038DFD17378FED71D02AE492087D7CDCD98F746855227967CB1AB4714\ -261EE3BEAD3F4DB118329D3EBEF4BC48A875C19BA763966DA0EBEA800E01B2F5\ -0B00E9DD4CACA6DCB314D00184EF71EA2391D760C950710DB4A70F9212FFC548\ -61F9DC752CE18867B8AD0C48DF8466EF7231E7AC567F0EB55099E622EBB86CB2\ -37520190A61C66AD34F1F4E289CB3282AE3EAAC6152ED24D2C92BAE5A7658252\ -A53C49B7B02DFE54FDB2E90074B6CF310AC661:\ -51D322A34629629F2F9C6A9D53C7205E8C7421DA2E742C93E413E6985467885C\ -6DB5174472292C614A5833C8CE98FD222D8A924E98098282300E000F1977B1CB - -2EDC282FFB90B97118DD03AAA03B145F363905E3CBD2D50ECD692B37BF000185\ -C651D3E9726C690D3773EC1E48510E42B17742B0B0377E7DE6B8F55E00A8A4DB\ -4740CEE6DB0830529DD19617501DC1E9359AA3BCF147E0A76B3AB70C4984C13E\ -339E6806BB35E683AF8527093670859F3D8A0FC7D493BCBA6BB12B5F65E71E70\ -5CA5D6C948D66ED3D730B26DB395B3447737C26FAD089AA0AD0E306CB28BF0AC\ -F106F89AF3745F0EC72D534968CCA543CD2CA50C94B1456743254E358C1317C0\ -7A07BF2B0ECA438A709367FAFC89A57239028FC5FECFD53B8EF958EF10EE0608\ -B7F5CB9923AD97058EC067700CC746C127A61EE3:\ -AABA6FF7AB56A145141244BD68314072A96EF4C83D0F0CC883082F7158FBCD22\ -D99C46308FD8472BFB4AFC92510EFFE673FCA3AC5906990130DB540ECC346E92 - -90B28A6AA1FE533915BCB8E81ED6CACDC10962B7FF82474F845EEB86977600CF\ -70B07BA8E3796141EE340E3FCE842A38A50AFBE90301A3BDCC591F2E7D9DE53E\ -495525560B908C892439990A2CA2679C5539FFDF636777AD9C1CDEF809CDA9E8\ -DCDB451ABB9E9C17EFA4379ABD24B182BD981CAFC792640A183B61694301D04C\ -5B3EAAD694A6BD4CC06EF5DA8FA23B4FA2A64559C5A68397930079D250C51BCF\ -00E2B16A6C49171433B0AADFD80231276560B80458DD77089B7A1BBCC9E7E4B9\ -F881EACD6C92C4318348A13F4914EB27115A1CFC5D16D7FD94954C3532EFACA2\ -CAB025103B2D02C6FD71DA3A77F417D7932685888A:\ -0CE918B049A465F707B524F5CC1B0351682238078E8ACF52006931DAED402A5D\ -584F7E3E7695B0B03076C1A09EEA098BC9CDE640E318A0527CE36AC92D8331E4 - -2969447D175490F2AA9BB055014DBEF2E6854C95F8D60950BFE8C0BE8DE254C2\ -6B2D31B9E4DE9C68C9ADF49E4EE9B1C2850967F29F5D08738483B417BB96B2A5\ -6F0C8ACA632B552059C59AAC3F61F7B45C966B75F1D9931FF4E596406378CEE9\ -1AAA726A3A84C33F37E9CDBE626B5745A0B06064A8A8D56E53AAF102D23DD9DF\ -0A3FDF7A638509A6761A33FA42FA8DDBD8E16159C93008B53765019C3F0E9F10\ -B144CE2AC57F5D7297F9C9949E4FF68B70D339F87501CE8550B772F32C6DA8AD\ -2CE2100A895D8B08FA1EEAD7C376B407709703C510B50F87E73E43F8E7348F87\ -C3832A547EF2BBE5799ABEDCF5E1F372EA809233F006:\ -6B4D98B9D0287C6983DF4E267BD638A9119B48E2F2E6CD010F98AECE27E12174\ -C317CACCFB0BEE9B3993C8C844E00E781448A5FD5EBF8C01E5C7D1114742FC9B - -721645633A44A2C78B19024EAECF58575AB23C27190833C26875DC0F0D50B46A\ -EA9C343D82EA7D5B3E50EC700545C615DAEAEA64726A0F05607576DCD396D812\ -B03FB6551C641087856D050B10E6A4D5577B82A98AFB89CEE8594C9DC19E79FE\ -FF0382FCFD127F1B803A4B9946F4AC9A4378E1E6E041B1389A53E3450CD32D9D\ -2941B0CBABDB50DA8EA2513145164C3AB6BCBD251C448D2D4B087AC57A59C228\ -5D564F16DA4ED5E607ED979592146FFB0EF3F3DB308FB342DF5EB5924A48256F\ -C763141A278814C82D6D6348577545870AE3A83C7230AC02A1540FE1798F7EF0\ -9E335A865A2AE0949B21E4F748FB8A51F44750E213A8FB:\ -43C69DEB892ACD8B887966B88903C24B87B5ABB38BAE41BDD843BD753A047618\ -97021382316FA657AEB17DDD9340CB81238708BDBE7EFBA88F1050F46AD2D6BB - -6B860D39725A14B498BB714574B4D37CA787404768F64C648B1751B353AC92BA\ -C2C3A28EA909FDF0423336401A02E63EC24325300D823B6864BB701F9D7C7A1F\ -8EC9D0AE3584AA6DD62EA1997CD831B4BABD9A4DA50932D4EFDA745C61E41308\ -90E156AEE6113716DAF95764222A91187DB2EFFEA49D5D0596102D619BD26A61\ -6BBFDA8335505FBB0D90B4C180D1A2335B91538E1668F9F9642790B4E55F9CAB\ -0FE2BDD2935D001EE6419ABAB5457880D0DBFF20ED8758F4C20FE759EFB33141\ -CF0E892587FE8187E5FBC57786B7E8B089612C936DFC03D27EFBBE7C8673F160\ -6BD51D5FF386F4A7AB68EDF59F385EB1291F117BFE717399:\ -2037CEE5FC0E67A655AE13407E321619521C5F24409077BD06DB0EB41C7B1972\ -D5DFB43D5C40713989ED4A493BCCCA49A3ECAD98DCDAE5B97419EA86A0268266 - -6A01830AF3889A25183244DECB508BD01253D5B508AB490D3124AFBF42626B2E\ -70894E9B562B288D0A2450CFACF14A0DDAE5C04716E5A0082C33981F6037D23D\ -5E045EE1EF2283FB8B6378A914C5D9441627A722C282FF452E25A7EA608D69CE\ -E4393A0725D17963D0342684F255496D8A18C2961145315130549311FC07F031\ -2FB78E6077334F87EAA873BEE8AA95698996EB21375EB2B4EF53C14401207DEB\ -4568398E5DD9A7CF97E8C9663E23334B46912F8344C19EFCF8C2BA6F04325F1A\ -27E062B62A58D0766FC6DB4D2C6A1928604B0175D872D16B7908EBC041761187\ -CC785526C2A3873FEAC3A642BB39F5351550AF9770C328AF7B:\ -AE52BA93BD7DF6982D7BCB158B323331D27EB4CC71429C675709B0EF257FD3BC\ -C1B66B3877F83FD418EFF1EED019794F3A45299D865FBB3CF4EBBF814DE6F3DC - -B3C5E74B69933C2533106C563B4CA20238F2B6E675E8681E34A389894785BDAD\ -E59652D4A73D80A5C85BD454FD1E9FFDAD1C3815F5038E9EF432AAC5C3C4FE84\ -0CC370CF86580A6011778BBEDAF511A51B56D1A2EB68394AA299E26DA9ADA6A2\ -F39B9FAFF7FBA457689B9C1A577B2A1E505FDF75C7A0A64B1DF81B3A356001BF\ -0DF4E02A1FC59F651C9D585EC6224BB279C6BEBA2966E8882D68376081B98746\ -8E7AED1EF90EBD090AE825795CDCA1B4F09A979C8DFC21A48D8A53CDBB26C4DB\ -547FC06EFE2F9850EDD2685A4661CB4911F165D4B63EF25B87D0A96D3DFF6AB0\ -758999AAD214D07BD4F133A6734FDE445FE474711B69A98F7E2B:\ -72B6C1EAAF98E4643EC3E6348988C7C5BA8AE0A4BB2EDC65409B7C4CBF37B3D6\ -096DE4967FC0D0B22B7E709531BF9F65EE0203BFD9925BBB2A8AAC509AD762B4 - -83AF34279CCB5430FEBEC07A81950D30F4B66F484826AFEE7456F0071A51E1BB\ -C55570B5CC7EC6F9309C17BF5BEFDD7C6BA6E968CF218A2B34BD5CF927AB846E\ -38A40BBD81759E9E33381016A755F699DF35D660007B5EADF292FEEFB735207E\ -BF70B5BD17834F7BFA0E16CB219AD4AF524AB1EA37334AA66435E5D397FC0A06\ -5C411EBBCE32C240B90476D307CE802EC82C1C49BC1BEC48C0675EC2A6C6F3ED\ -3E5B741D13437095707C565E10D8A20B8C20468FF9514FCF31B4249CD82DCEE5\ -8C0A2AF538B291A87E3390D737191A07484A5D3F3FB8C8F15CE056E5E5F8FEBE\ -5E1FB59D6740980AA06CA8A0C20F5712B4CDE5D032E92AB89F0AE1:\ -87C56BADCCB0D0FEABFBCED93088BD0BD06840BD194E4C665D5045BF221A0483\ -9F0BE03AA61F86AFF8C403CBE08FEDB76837A2C71CEA50620EC0C488C4003785 - -A7ED84749CCC56BB1DFBA57119D279D412B8A986886D810F067AF349E8749E9E\ -A746A60B03742636C464FC1EE233ACC52C1983914692B64309EDFDF29F1AB912\ -EC3E8DA074D3F1D231511F5756F0B6EEAD3E89A6A88FE330A10FACE267BFFBFC\ -3E3090C7FD9A850561F363AD75EA881E7244F80FF55802D5EF7A1A4E7B89FCFA\ -80F16DF54D1B056EE637E6964B9E0FFD15B6196BDD7DB270C56B47251485348E\ -49813B4EB9ED122A01B3EA45AD5E1A929DF61D5C0F3E77E1FDC356B63883A60E\ -9CBB9FC3E00C2F32DBD469659883F690C6772E335F617BC33F161D6F6984252E\ -E12E62B6000AC5231E0C9BC65BE223D8DFD94C5004A101AF9FD6C0FB:\ -7228261B12052A13CA19EC70BA1D7497F03F2F7FC208A1FC499A01D2F9D1177C\ -9AE9BA46E6F418D6088E4DFA8D8D8A27EA99B4ABC4236967054CDC60ED603E1A - -A6FE30DCFCDA1A329E82AB50E32B5F50EB25C873C5D2305860A835AECEE6264A\ -A36A47429922C4B8B3AFD00DA16035830EDB897831C4E7B00F2C23FC0B15FDC3\ -0D85FB70C30C431C638E1A25B51CAF1D7E8B050B7F89BFB30F59F0F20FECFF3D\ -639ABC4255B3868FC45DD81E47EB12AB40F2AAC735DF5D1DC1AD997CEFC4D836\ -B854CEE9AC02900036F3867FE0D84AFFF37BDE3308C2206C62C4743375094108\ -877C73B87B2546FE05EA137BEDFC06A2796274099A0D554DA8F7D7223A48CBF3\ -1B7DECAA1EBC8B145763E3673168C1B1B715C1CD99ECD3DDB238B06049885ECA\ -D9347C2436DFF32C771F34A38587A44A82C5D3D137A03CAA27E66C8FF6:\ -C37C08D3A8C35C1C6D645B1DFFD7FF4082EFC21700D4C029E796620168ABBFAF\ -E8AF0F421417DD357855D8B131F49AA09795842D7D298845321BEE7700ECDA3C - -83167FF53704C3AA19E9FB3303539759C46DD4091A52DDAE9AD86408B6933598\ -9E61414BC20AB4D01220E35241EFF5C9522B079FBA597674C8D716FE441E5661\ -10B6211531CECCF8FD06BC8E511D00785E57788ED9A1C5C73524F01830D2E114\ -8C92D0EDC97113E3B7B5CD3049627ABDB8B39DD4D6890E0EE91993F92B03354A\ -88F52251C546E64434D9C3D74544F23FB93E5A2D2F1FB15545B4E1367C97335B\ -0291944C8B730AD3D4789273FA44FB98D78A36C3C3764ABEEAC7C569C1E43A35\ -2E5B770C3504F87090DEE075A1C4C85C0C39CF421BDCC615F9EFF6CB4FE64680\ -04AECE5F30E1ECC6DB22AD9939BB2B0CCC96521DFBF4AE008B5B46BC006E:\ -657C140E3C895BDF7096AC866B2910D22B42ED6D038A39D3E50BB923EB0A70F1\ -D06EBDF68A668CF91AEF5A204063A765782B1D6489ECE1885DE1BDA7BD581C55 - -3A3A819C48EFDE2AD914FBF00E18AB6BC4F14513AB27D0C178A188B61431E7F5\ -623CB66B23346775D386B50E982C493ADBBFC54B9A3CD383382336A1A0B2150A\ -15358F336D03AE18F666C7573D55C4FD181C29E6CCFDE63EA35F0ADF5885CFC0\ -A3D84A2B2E4DD24496DB789E663170CEF74798AA1BBCD4574EA0BBA40489D764\ -B2F83AADC66B148B4A0CD95246C127D5871C4F11418690A5DDF01246A0C80A43\ -C70088B6183639DCFDA4125BD113A8F49EE23ED306FAAC576C3FB0C1E256671D\ -817FC2534A52F5B439F72E424DE376F4C565CCA82307DD9EF76DA5B7C4EB7E08\ -5172E328807C02D011FFBF33785378D79DC266F6A5BE6BB0E4A92ECEEBAEB1:\ -1704129D4CABEAD74C1AB7AC89D773DC50A88EE71937C25FC3DFA5F4FDF79169\ -5040755F15894E6A56380F713C23AA5ACAC8DA8CBA4F356FF18AE72AA5E78902 - -724627916C50338643E6996F07877EAFD96BDF01DA7E991D4155B9BE1295EA7D\ -21C9391F4C4A41C75F77E5D27389253393725F1427F57914B273AB862B9E31DA\ -BCE506E558720520D33352D119F699E784F9E548FF91BC35CA14704212870982\ -0D69A8287EA3257857615EB0321270E94B84F446942765CE882B191FAEE7E1C8\ -7E0F0BD4E0CD8A927703524B559B769CA4ECE1F6DBF313FDCF67C572EC4185C1\ -A88E86EC11B6454B371980020F19633B6B95BD280E4FBCB0161E1A82470320CE\ -C6ECFA25AC73D09F1536F286D3F9DACAFB2CD1D0CE72D64D197F5C7520B3CCB2\ -FD74EB72664BA93853EF41EABF52F015DD591500D018DD162815CC993595B195:\ -B2A35CF130E39CF82D85B5E4205934C0550293326354A0F9473890048F05AD76\ -369E17E86D5D3F841C211312155F0B46266D8FB0FB515F044BCEB32FFEBA2871 - -3139840B8AD4BCD39092916FD9D01798FF5AA1E48F34702C72DFE74B12E98A11\ -4E318CDD2D47A9C320FFF908A8DBC2A5B1D87267C8E983829861A567558B37B2\ -92D4575E200DE9F1DE45755FAFF9EFAE34964E4336C259F1E66599A7C904EC02\ -539F1A8EAB8706E0B4F48F72FEC2794909EE4A7B092D6061C74481C9E21B9332\ -DC7C6E482D7F9CC3210B38A6F88F7918C2D8C55E64A428CE2B68FD07AB572A8B\ -0A2388664F99489F04EB54DF1376271810E0E7BCE396F52807710E0DEA94EB49\ -F4B367271260C3456B9818FC7A72234E6BF2205FF6A36546205015EBD7D8C252\ -7AA430F58E0E8AC97A7B6B793CD403D517D66295F37A34D0B7D2FA7BC345AC04\ -CA1E266480DEEC39F5C88641C9DC0BD1358158FDECDD96685BBBB5C1FE5EA89D\ -2CB4A9D5D12BB8C893281FF38E87D6B4841F0650092D447E013F20EA934E18:\ -DC0CDEDBA4F46C081F84E8DB765CF6DA2570A0D5C638ABB74774FC6F8C9A2708\ -F0AB027B0CAAEF047A2FEB08DB43DBA5D802F5541D58956F998013AC4E5C5897 - -023D91AC532601C7CA3942D62827566D9268BB4276FCAA1AE927693A69616526\ -76DBA09219A01B3D5ADFA12547A946E78F3C5C62DD880B02D2EEEB4B96636529\ -C6B01120B23EFC49CCFB36B8497CD19767B53710A636683BC5E0E5C9534CFC00\ -4691E87D1BEE39B86B953572927BD668620EAB87836D9F3F8F28ACE41150776C\ -0BC6657178EBF297FE1F7214EDD9F215FFB491B681B06AC2032D35E6FDF832A8\ -B06056DA70D77F1E9B4D26AE712D8523C86F79250718405F91B0A87C725F2D3F\ -52088965F887D8CF87206DFDE422386E58EDDA34DDE2783B3049B86917B46280\ -27A05D4D1F429D2B49C4B1C898DDDCB82F343E145596DE11A54182F39F4718EC\ -AE8F506BD9739F5CD5D5686D7FEFC834514CD1B2C91C33B381B45E2E5335D7A8\ -720A8F17AFC8C2CB2BD88B14AA2DCA099B00AA575D0A0CCF099CDEC4870FB710\ -D2680E60C48BFC291FF0CEF2EEBF9B36902E9FBA8C889BF6B4B9F5CE53A19B0D\ -9399CD19D61BD08C0C2EC25E099959848E6A550CA7137B63F43138D7B651:\ -48B10FA23344EFC936E3E1864F1F1BBE4AE7358CA39711A4A984C602D2E7DF08\ -ABECFA33A4114260F50DB9DC2E72468E358A50CAC43659616E1F8954F160E581 - -20FF454369A5D05B81A78F3DB05819FEA9B08C2384F75CB0AB6AA115DD690DA3\ -131874A1CA8F708AD1519EA952C1E249CB540D196392C79E87755424FEE7C890\ -808C562722359EEA52E8A12FBBB969DD7961D2BA52037493755A5FA04F0D50A1\ -AA26C9B44148C0D3B94D1C4A59A31ACA15AE8BD44ACB7833D8E91C4B86FA3135\ -A423387B8151B4133ED23F6D7187B50EC2204AD901AD74D396E44274E0ECAFAA\ -E17B3B9085E22260B35CA53B15CC52ABBA758AF6798FBD04ECEECED648F3AF4F\ -DB3DED7557A9A5CFB7382612A8A8F3F45947D1A29CE29072928EC193CA25D510\ -71BD5E1984ECF402F306EA762F0F25282F5296D997658BE3F983696FFA6D095C\ -6369B4DAF79E9A5D3136229128F8EB63C12B9E9FA78AFF7A3E9E19A62022493C\ -D136DEFBB5BB7BA1B938F367FD2F63EB5CA76C0B0FF21B9E36C3F07230CF3C30\ -74E5DA587040A76975D7E39F4494ACE5486FCBF380AB7558C4FE89656335B82E\ -4DB8659509EAB46A19613126E594042732DD4C411F41AA8CDEAC71C0FB40A94E\ -6DA558C05E77B6182806F26D9AFDF3DA00C69419222C8186A6EFAD600B410E6C\ -E2F2A797E49DC1F135319801FA6F396B06F975E2A190A023E474B618E7:\ -0242B9AA3222A71FB829A0010B1FBA4F9A380E5DC57416CD57A26EC7FD7DC56D\ -514799600717F2B9AF909D076D16E8FD9F96A705169FEEF91D15EBD38A3A34CF - -4FBDC596508D24A2A0010E140980B809FB9C6D55EC75125891DD985D37665BD8\ -0F9BEB6A50207588ABF3CEEE8C77CD8A5AD48A9E0AA074ED388738362496D2FB\ -2C87543BB3349EA64997CE3E7B424EA92D122F57DBB0855A803058437FE08AFB\ -0C8B5E7179B9044BBF4D81A7163B3139E30888B536B0F957EFF99A7162F4CA5A\ -A756A4A982DFADBF31EF255083C4B5C6C1B99A107D7D3AFFFDB89147C2CC4C9A\ -2643F478E5E2D393AEA37B4C7CB4B5E97DADCF16B6B50AAE0F3B549ECE47746D\ -B6CE6F67DD4406CD4E75595D5103D13F9DFA79372924D328F8DD1FCBEB5A8E2E\ -8BF4C76DE08E3FC46AA021F989C49329C7ACAC5A688556D7BCBCB2A5D4BE69D3\ -284E9C40EC4838EE8592120CE20A0B635ECADAA84FD5690509F54F77E35A417C\ -584648BC9839B974E07BFAB0038E90295D0B13902530A830D1C2BDD53F1F9C9F\ -AED43CA4EED0A8DD761BC7EDBDDA28A287C60CD42AF5F9C758E5C7250231C09A\ -582563689AFC65E2B79A7A2B68200667752E9101746F03184E2399E4ED8835CB\ -8E9AE90E296AF220AE234259FE0BD0BCC60F7A4A5FF3F70C5ED4DE9C8C519A10\ -E962F673C82C5E9351786A8A3BFD570031857BD4C87F4FCA31ED4D50E14F2107\ -DA02CB5058700B74EA241A8B41D78461658F1B2B90BFD84A4C2C9D6543861AB3\ -C56451757DCFB9BA60333488DBDD02D601B41AAE317CA7474EB6E6DD:\ -961A63783683371125E7D4FD6455E60678AFCD354CE2C0A4FB299DAFB3C4EC46\ -F45F48A63FF8EC29D44B3B033C931122924D3C2C9683D5C576E2F0453653CEA7 - -D1890B4704E169C28E44DDF62A1091450404910539FC2DAEB26E8ACF4533B024\ -E5215C2D02820DD8FB2CFC1743955CBACFF0F8F35DFBB5E3F942F36247F68211\ -D518F3F601AAE12A1CDC000BAB43D4C973F287E80741DD1FCF6C34F2E6B4B6C3\ -13D01C4FF3CBF9166F26946F18EF2D58271BA9233F09A6B77BFD4F48B36EB3D7\ -3D1133C4F842A7DC3907F680B0B773242C11E3DD973A44327EA7CEA9C0F8E07D\ -682B6651E506B587559FE01ED721000BAF570A16FBDD9EA29FA3DEF4BE912058\ -321A8B720C5C102E48A6E7ED6F8838D400DD57D06EEDBCD15323F86D855C94B2\ -1E41B14EC9E1BBC8019211FD88138C91F9ABBD9BB3914D26C1DDC21673D2D512\ -63B39D66E741D924CF2B192C5D2C1A140126A3D64A2C77BE6C2C6EBE8599978A\ -E90BD36CBB9AF64D078910C4094AB3BF399C34F2AB8EF843E9FE1BF88BF443BA\ -21E4377E5F49C07FD9653B526E14562237F02D11B904BCA6AC31AE721A43E3C4\ -910A24AF6F4D80C031C109FC0FE49F15274BCA92BDA04C3B4196C192F6CE489C\ -63A806ACFC895AB52CAD657C1783B528E12D0ED856E1F8FC91F2AAFDFA0A9249\ -8D68530772EE73B359FCF1418D1096C46B34DCF90E5B468BBB2970BECBD70089\ -CFB039D64CC50FFF5EEF26384D34F24515A6558B06A1FDD88F1050C5BD78CC6E\ -D83D4C2B0E882AEBCF84AFB0430D0BF09F2FB42B8B4589158093A7709AAE75A7\ -90910E211EE1333FFB6FD80778DA3BF73858978E9DD647978841B18001DBAAEA\ -43CA0C0A03DBB9BCF30CE76A6F4B2CF2A9B6531B3E4051E7E05090CD421BC66C\ -4731E7122AD129FC42DEDC83BB460E3F889992FBD3CA072686E56B72C720FBC9\ -8D723EF7F247286F77CCDDC728738E941B1A74D4F16671C21FDD5643A115DDBC\ -B88EE7EC67EA66FD2BCE718DF6E085D4B5FC71A72696636A8F7B3A68AFA51A89\ -6771FAAA7F1F827430AC5E8089DBC0D4175E1B22A057BC5F1724EADC1A41E78F\ -A3ACAA8B97E5F2E19EF9D59AE12B04E7F0E8A621E098A66910E2A5ED2102B824\ -CD3EA044A854F1CD0B33E61E7F737414B2953549F25DD34D19AA1981DE7CD564\ -9FF6C6364A4F25312EF62395A747AB88AAD722C05AEC40DEEA8EEE5E779EF458\ -A68840BC6BD5D29AD40F98B3AE010B6213372ABB7BB8B8:\ -F2240A89661FE49A693BDA8A34C8EB8C880F364D175EADCAA2863C669B1EB205\ -CDC09CBBFD5ECA7B18FE1A807289B96945DC581D904D7982D0340E8F968D162B - -4FA3DF1DEA75AD4B9C379206A95FED930000482E5B683FD2B17DC8E7D5C4BC1B\ -73186CCC13C9FF2DD09FC1D4F68034D120E84CA73A00B71A3B46D1EFC6FF88CF\ -2EDA65810B098CC5E651D9CF064E87076D5A871849F3B405D3D58EF5B1F10520\ -A9FB4FC84A81A87B13DBFBF9D8674943E28C257E46D8AD7BE1785F1DC7C9B1BD\ -574AD1DDA48F0255C853D2490BD3D63DA22A8369CFD02594999A2EF443308FB8\ -298266A11EFA177102C75DC674E89FC9DCC1A0D3C863BC26141102175D2678EB\ -6E13D90BBD9A5EB89AE8C0CB47D7F340D3D32042A2762BC9BF2B40EB40E87FB4\ -2610FE7E357051F01494704FBFF73321B47301A0799B7EE3FE5E62200F397A61\ -ED4509A62F7106ED0EFB0ABD6AE9E4A1FE9B02C092DCDC75015CF602F3B9A898\ -8B609E6C0D1C5C3E219FF57875C2EF01615F89447EA602DFC94EEC17A398C014\ -BD346691FE209A002771DC8164422CD166AFB457A8B3071282178A3EBD201D9B\ -07B27E711E7EE7D33AA5210ED4E4E92486775D14A6CED092E34A7AC826709399\ -48FEC149F9C018FCAAD3FC597D315713F44FC5E1725F448ECAED40E8D841BD02\ -F1E81C019B08F99412E360C0BD378391C67D964B47F50C26F0A483ED66402361\ -6B0FC9AFE43620DBE9CCFE070EF295C049EAC754C2123130C6B2C0232F6403AA\ -7F0DC35A5999BF95D34AD612234C6289277ADB60E4F72EC2DF570F05395B3BE8\ -A0A3C78B732821AA08927C524E15D65F66A3DB8C1C96FB70BC0686AAC310051F\ -469FC5EF880C0F66947C1C328F97684EA24CBE63BAED8D114F40507C2901034E\ -6AB3893F366D53F1CFCA309309218CABCECA4722FA9CCBC7249B87C12FF8397F\ -40487EB00082E7F551D27E301C3BC7B5389F7042534BF7E692DFEA4DA24F7C34\ -B8D2FF145F54B517FC97134EC5AC2CB925C508D7A6BD01FE7B764648274972BF\ -08560D30802E0EB7EDCC57AF4797BBF92E8688268606B0F1BC901FCC22136281\ -665EC16393FA9601C4FBDB18CD1D1EE382BC07973903E91FFA87399D1141D49F\ -4F0C064ACF3AC9897891DF10BCA0116F2C3FEF180FE6A8E937C478F2EF293AE9\ -186DCB1F76B6E48101DF64E57EA7C64C5C0025E221C8F5CBA5CC92D9CEC62814\ -0996B26D17F439B780F59A999301122F82D0495F8AB5AE1EA5790F45E992DFE0\ -0D5F82A7FF1354AEFDCEFC0D2D1731D22FA2B75AFD4FDA25AB194055FA962838\ -1055247C8C7587D22E73C60136C4282452D47AE03AA035FEBC26FCCD42A1CB79\ -CF866DB6418A49FD8261E877DDBB839CC39514DDB87A8A40D795532626FEA4A4\ -C35D13E028F9ED1BC09B06BE999B8DDD2258AA0596BCBBF72AF67E10BEDD58D5\ -99B8D577A583D676BF5561F80CE5E9528729A92DF578FE75DBC70474B75747A8\ -D55DE70E57BDD62D4344DC2115ED4DD62F1FC98BFA1E7421FC0700025C46D0ED\ -1BEF35C3B778563211B9FA9E8BA4BBCBF01C2FB626AB7EF325CE9F468DF2CACD\ -B178D36557CD85D542C067C289E926C1EA2F20ABD329E984168BB6DEF1DDCCF2\ -14DCB6A53AFD462F0E7E7A19E8C88F049244125A6D7DD41E58BC9B2FF7FA2478\ -DF76AF73090CB1AB59E388BA20E2C297C967737A1AF61793B68ECD7439444C48\ -E28E2D09C48FADA5E0D1D15E5B340A52F8B3B854CCA479F0A598445E14F53B3B\ -A36891050C79673DF3E2B5825C955A29E5C9A22F3991D0AA785718CFEA1D2385\ -F8E47E4A75ACBC7988D0558D541D71C4E6C5F1CB15B60CEA0C34A67BBCE105D7\ -A896025E0254DE7D7AF724C9027D44B8642192A08AB8E1EF3046DDA6014DF7F4\ -C9E63C635E48AB2E70B640D480998EC9357E665F99D76FE5529EF23C1BDFE017\ -C3A66CD4EB2DDB42EF85EA0CD65534:\ -8C0B44D668773C632A8B8316710F4B8E8948AB0DE82B9ADAAFF0A9FA901FE653\ -2FC4E6741539C83966D42D646B1FA50BB7CF6F7545BE39CB561562FA1A474B6B - -523DE8B1F4CBB65E81FF0B6CCD6EB8EF0A0F0A691ACAF4A77F25ACD2D66AD4B3\ -EFD25BE70308853C094412A518A32020E3020A9F6AB32F0CD60EC0D7A194917D\ -6C457B168A54A4B46F7B0D0C71BD61CD202F4C718776A701E0770B0EFA054187\ -70F98E4E79CD066366FB3300E8BE359A98B82B764BC2FBBF59C7E8F94A157B01\ -C6C7577B1428138CD422BC47330F8ED99F4C0AAB0D984287445539839389EE08\ -D6345108AF26ADED0EC1D7BE774CFB8C5205DFE07CF6CAF8C1AFE37C7A2E4FE6\ -013B93EB2463DE4E0971C7178D6A76B16A0E8960C984CE8BBE71B3B466EDF044\ -5B835F09414D01F14C7B6167FF78FF118127BBD5F812C27FACD57B3B120E2BCF\ -E87315C7A92B82EF5D50CA14A7174D1BEA7E056523E055A6AE42EA3765094E55\ -44E5ED003C989C2F98F38A17E3DDA74DBAF9C669A319638A2698B0E4A611480D\ -8AD3CF016792ECD1034925F42B9811A7214D623D047ABCA31997DDEB03275F80\ -DD21F40DDC80616E7AD3D481E8EBC0A1A6A398E16A78369215541ED10B75671A\ -DEB1AAE6E11142A1CF665FC1B7332DFBB0E10C21A2B48F78E57319AC9C58DFA8\ -B1C2548E2979EF1ACCFEB215AFCD6C2C1B46FE97DD491758378330EFFC728366\ -1D2CB84FA05281E9E517408508D24D042E7B9BCD34DB87CE972E4CBCDB98615F\ -B93093369DFEDC782F44BCD03E81CF93051318B2401FF29F753A264BDA65AF19\ -9E3FCBB8B5D39C838A67D6C7A3DB046DC56C323DDBB5340CBC229E47CFF8C9D2\ -9B7A49AC0EC8C1440AE498C7D150EF91C29BEA7DF3EFCC2871A13A1D72D139CB\ -4603D9FFFE85F6DDD544850EF63C3944FB35DBC00D4308CEAA6394B6E23F650D\ -323F8F7EF50DDB68F1486EABF989BF44451F620EC9485C0B52D1415D3C909A2C\ -FBE9D77DB19D069D33BAEE4D77292E63FCBF65C1EBA24BFFDDEFE95211EF0AAF\ -8ABFDA9F94445E582976F986F5382CB669506AF2B4A5A0C43000A3C72C5CA4AA\ -CDC9D3D39FC5C492A393B6C341B86DACBBF6BA8B465100CC683EDB2D9B9F83ED\ -F9C6A32645F51CC79ADC22A52A007BAACA618BE35E356D1FD1CFBDA73F1ED092\ -53039DEF609450FD2D5943B9CD49CBD52A318EE3510D7CF3FD8FB388AC6CB9C6\ -EEFEF3D3CAD8501B91CC04A888D33E16D6A4C9666F5F5F3B257193F2B46DEDDE\ -11842909D8C48ADE57775B0B272E2DC9CEF1A083EB2CE58F4D1F211922FD6ADE\ -D1B82FE6F5B11251CD396E5A3666ED9626036E4E356231C146BBA0A91AFD3648\ -EB7BFE0B9C14F15AF2F92309826F468945CAD0AC422DE3D6A773B76178422107\ -CE0270E7F580B5CCEBA82CA0184AAFA8341141E65E39859885768FBC5CE63B96\ -5A0604B659E71D9DA2C7A43646088D8071D76926163AAFC69E25355BB0A222B7\ -B2DA9F0A20C021ADC462E905A9C3BF31C16D87FBEC3F014F3957A720F1432E17\ -41553092052FB58A198640479ABCAA51B104CC93E2636E1460643EA812BD44E8\ -19C2166EB6B349BA5BDEBAD59078910B5C22A56F004B8D9E4B1224D8D204B48A\ -BE7355548A402736C5CB110F3A1476ED631FF168F4F3EFD89B38DE4751536548\ -647523D334FAD7CC2D142973F2DB3C1FE08FC5CF83F9F2BD2DAA524B37864816\ -AF29EE05951FA09D1C51D9D14EE4F72FD7BBF18B1A724FF5A0958A063947C430\ -142AD2356E4400AAECA442E163372A8F1CD36E2DB988E7781165E5D4E7074ACE\ -40858E8370E883694AF09977704347FB735C8717C42BC4EEEB2AAA50DFE637C6\ -40909CE379BFB9E2608F88751377038D1669F248178AD580A908D7A1B8DCC7E5\ -3E01801F1E485B5893F103F03E0F53B2B1440BE95644D85AA7F6EB7EDFBB4665\ -2196695EA23C08573397B111FF909025E20C5201293B4D223BF7AA01DE7CB28B\ -94714370434B9588097E2401B62C7A0DEF1FBF89809E810749FD3CE9EC3C07CE\ -4BF4C43DC966429B2BEB4D711FC6C448A12097B36F1E6817EAF4937A983F85D9\ -CF3E62CC1B2AC6AE1EC9EAA8CD8EE2C3322239CFE5DB3D4E8786282E630A7D25\ -9C2FEFECA03031C960A66A71E436A3ED6F2F3CFAB4BD77C660D14205ABF606FE\ -561A346F7D849B69475AC9F6822D80B9A2E56D5D495E4B309B0EA963C9FC5C7E\ -F94B217EE5337989AFBC7107D233A8B362AC27C4F69DF9E191CD65AE97D6EB9E\ -5484EB6F10349575E4CAE51452380151F902415AC9CF42C824EB23C9541D2DA1\ -C26DB85F53CDAFB06A12B8393CD580A8E494EDB6710C720DCAE30832967E33E6\ -303A92B1DF0841D7724284FFD2E00B95C6D623B168D21AC1BD3C675EDA33182A\ -2C22370998DE1E5EB905372CC6EF32D5B765F5C94870DF4842D011603BE4CDB1\ -C227E41EB2F2E8542CD325884FEDC9C5C7BB07A92D20D64B836215C59F162A3D\ -A8BB67D6FC13FEF97CAB6ECB8A29E431A6519A6261C4521CCB90E6E609869E6F\ -E398404AE047F64EC4263566DEFEE66329DD40AC985EB8A08D26529A544891B6\ -F57CC235C63C09057AB6B6ED720EF41A3C9AE65768B43F6DCF4962A103DD93C2\ -13171DC2C9194E43265C689B49331450281A3FEBC618D1AA4D65A135137051FD\ -46B568CE294C89:\ -A634C648944329BDEF5DE4F48D2F8F1A1E3DCFF5F4CCBC2E4375D5B4D3686D62\ -F570DA68C5707B596249BE56256511AE53A307F0F01B8707E80C1A32D9313074 - -F5080D4C59E804BF8F34B334CABBCC7D32011BDE3677F4B9069416AC204114CD\ -9DA7A0ED0F4B4D8344416336EEC15553EF526B6DEC267B1242657DD0B508AF81\ -FECF9CFF9C82A6A7A9539814DD7E097615EF15373836B5D2F765CC8D5F82E904\ -49F13AA741D5EE2FE63898E55ACD85116846807606FE1E2E29F98F9940B067D0\ -D1DF01F080211B2EE4B0A30803782A7BC2EAFDC5EBDBA91EB05F7D7DC8E34BF6\ -D44FEC05824F53418F235FB64E899EE147BCB403C8855E94AF378D182D79C3EA\ -F977CB4E9D4A16D990A6C388CEB567B97785E6F2BC6745102B99AE765E960B6B\ -32BAF01E2379CD6ECB74D3E1A56552F5976DFE5C742BC92BE596CA742FFC3D0F\ -A032AC29F9F7C1A5C43BCCA62DF7D9DE35D0C7C179DB2E1AA255CEDCCA55064C\ -2049FEE1AF2CE5EF696ED4BC46B7C55BDD51F2D44C8713FB2475C0B85246AC01\ -03CC3863B7EB026AE076A600313F6FB40A4DF62A2AF81B7E917951EA870ECB31\ -B3401928B5046D9A1E62D14B30FDEBAF262868517318FE17EC3C0D52524F4412\ -0ED8ED3BA70C643300CD0BC70DA72C964A88F52C3A91EC20BFEB5CAEFCD4D9C7\ -685D8407476B5F34676C5EBD1E88A6CFF1C625322F8CD59B9ED60CEFB21F9491\ -B95E72791F7AC7EAA3C16159FE9DF7A989ADD6C2282C47585E11397EDA9F47DF\ -2B40166E03BCDD6186B46C6835118268DDBEF19A28BBADE1BDE0228FFD7E8B3C\ -3C598D89E24B8CDEE79C940254DE26CC6814BA2722E42F7571600B7325E1FF30\ -0251D52A895B8CCBD049B2953B8D231445F68F7C26EC25A4B8695C8AC116F736\ -BE939EDD762C9B4743E463C9B9B2F88E0BC0CE78781CDDC3BCA825ACD463C7CA\ -C2AA6C430BBE820EA94AF9A40B1B5C006E9641A2FFA6E427379E1AD49C81B983\ -20B3431FF0030DC683D61026438BC6A6D34B2C73704D9F62EAEB13ABB3E4B056\ -2B4E0482CD6B2D7AEBC0367EA29A88F4A76F3D76FA1197E1DCA92C8216C84C1A\ -F9B8C78C9E3A7799A4A79A783033B0F5547E8E75E69CF3615AB04EF989FE1A46\ -3B1672C571D50AB56972896E8A50C242F22C7F6E27CA4CA793F627E79608680F\ -5421B28BDD2589F05E65430DF774EE873FCD1234064F7A33CF5A1FA4E368137F\ -F9C1597F1FA0FA36493F20538077669EADFD3B06F788C912C715FB5D334DB6BE\ -D133A8FDC40F5496E66AD63881F0BA3727416715865253DC5290327B515BF68D\ -A188DD5B4B0EAC7CA712CAFA8FCAE0C5503FE58A219182F1C30DA6D0C19CFEE8\ -97B7D837C97996A35F4CA8CF0537A01D17E7DE0CC9C129E4DA0ADAF1FDA85030\ -DF9127BE628263B0624F372C47C3AC87EB945A57F5C732BEEE81A74030017989\ -92F3DC944114FF3D54C4666AC5AC8C98D0D5596CBDEB420665F5EDAAE747D54C\ -F7EDD37B162E372249D135938CF17D174D12D88279CB4C32BD6F018C766DA698\ -3D4EA51D6BD8FF0A9B34E9A93BBDA70CF1B4B867D60A74811FD98D52FAA559B5\ -2C755CB70A76C94BD19654CAE7017CCD70222BF08C5D7AD1F5E4E6344FDB3ABE\ -703452C29A696F39F9826ED8BC510A4A148E5BF8A5DBE6B82D7220164F08011C\ -05AC5159D52CE9D45D758B645BBB248C2D341DBEFA1F8602C5D458A64F38F3B0\ -4DB39089807B6A10E1BB52770B92CE72E2D3BB0C2241CDED35054B84558D1CC0\ -99EF7B2296951951D5B6A22F93BF962AC5EF8FB55EC6CC2B316428EDF12078ED\ -1B66D525D022819CBD489E1BEDB02FFBD507D55F9B5D4E22F6396EA233453754\ -688D20151A09C70044B8A5A9AC033C3C3B847AD833D5C05B33407666EE82F958\ -1DF9034EE15A9CA67D52F1D9B634B84C1B8BA9E515F1F060A5AC5CBAE2DE75F9\ -4E112F7198E239DF08D3103F065627438995026DF511C6E5BFDEEE5667D511D4\ -181850C7C5D179107C1B86D24D5532A88A4149A2810DCAE73731B0E1247281A6\ -FD31613DF6891B4C17B7A6A9AD9B77468254B93F85958AA0F01CEFC10B25169D\ -C46E035D3F24557B4BF0E7D60174219108D916FFDC55E25BFFD9809EFD058E12\ -C14F39C69D8FB73D3EC6458F47F2F8DB901BA76C86550B11B54D0641D4DB3EB0\ -00057DD00F2E511FB7A47E959A4402A3AC5462234B40B184020FCF7A0396C4D0\ -0A987C8741A4537BC17102A5C42AFEAB9F71EA66ED4CBC7B5EE682FF04F56F4B\ -A1EA0BB326C4089930F9E3F3FFA3E06637CCE32113881A06CC3A13837448145C\ -2BD01307A580FDBC385D8F46FB92FFEDBC8918D269DD1871164D4B3E2023441E\ -C8B99C82A5F09821CDDF6B38C9ACC3BF3A38D5628016159588C33EAA29D9463A\ -537C000A16AD8C177DC4CF716E625F46FC4CA8C19FBD8EF320F1D680639195C8\ -B195B0A02738E0665F4190D6287E589CD6DD45B9E8CC23B08E1681BFC6F66B88\ -DE6B091E825EA4BBFBD697E10BC407570AE4F2A3EBE569554639C2B8E051656C\ -C30C837F5A92260EAD1D552B45801B6D28134166796C87F900225CFDC3CC49D7\ -2DFBC18D8D95B1E160ED3CAFD5C3467D48AFF87402CBCB1E1420E3FCB588AA19\ -C8F42753B59DB6FB6A9FDBA127CA806DBA7DD97F2488FC2E438EEF57A4CC85B8\ -8DCFDE76AE1FF61225A1CA8BF4A14F729950322EA681B16D6492902506702DC8\ -F348E4D3AE7FB55FAC1231FDE82091B34F1791B6AE37587B10325F6FF5E23B85\ -5845B86EAE90785B9D10D90A16644D01BB626F343B908A9591F4069B21822CA4\ -ECF985C1E710475F33DF9AF4764CFB0FFE649063775338F15BEA7CFF29F16467\ -8160960A80ED148C9B7FAA58E9139911D3DD9536F69646F718F083DC9029D629\ -4FC4C607688AA75AF350AC2C0B001A157D023D73D86ED8133809FCB9592D1208\ -9CBD7A1BB6BBA882FE227C09A53FF088907CB4BC2FB4B7F62D41D3D397C4FE0A\ -D12BB3964370E21712951C679814D506E738C0201E42181D231136A435AE0397\ -B61CCBC5E8BBEBF8EA77C8BC48BD6211F29248F9D498D818E2B544D28A5E60BA\ -727F32EF4BA2707962230C900076FB764D0ED5CE078C9DB14DE894BBB836C6DE\ -9E83202AE89F9A8D8CB0341E1C81B5FA8B16731B8E231E969C0F1EF95336D4E7\ -3EAD6DA23DE3AD1EB608ACCE4D4D93996DD76EC1F5F2C576F6B3B76E07BD8A81\ -0FF5D88B00FFE48C42700B61CC499336E7FB57AD72FF44FC631C7222C9A3D1AB\ -F6E77B5ED7FE2F7228FED6C849BF7142C4103989A80F7C15642AE61650CDCA7E\ -854EB25E9E72F4C3E3768E6CCC8BFD556B56D3507EDDE9E5C331DDEA75568B07\ -813D20E8F4C9547838ED28448F2E67158ACF0C00B131473847816C5E2DC215:\ -4726C1E176DB2823933F872FFFF0450EEB42E410A099A8A5DF5E28BC053A399D\ -0A188F60D04E106291AA06E8817442938B198C9064E324D6C6142B0B3F509FD2 - -08944CB473B828B118A31986DB67FC757F238182E790553404B792AA4F0095A6\ -A83291E287CDD16521A3AE8C48F56FBC909DFCCFAA7BCC570C2159F26592DCD6\ -B15BC4DD55CC05595AC634B2C3DE15360B0F07A03B5957BC9333CC5097919399\ -DD9973ACE15E55940178C4C96BB5E0A0A10BAE175769548EBCE11E0D7D9DB296\ -47F197D4B87F7039F5D4E59E016531DBEBF55A797AC9A6835032CDF34240A7EE\ -7423E89C09124829CAFC5F89431C8AFC54FD979E50D48A82B47A53523C84B600\ -4DAA323EFB708203E5388A6A5110C6CE2E341048A65FDEADEB3837A03420F9FA\ -DDC3F02A544F1E46D96B07C90C7971A7040A179E8198E90AA019268E00367120\ -D5F3D98A5CCE82C885E77144B1AAD66EE682847776B04F01F501DCBEFE390308\ -0A8058B3B8F1D823D917ECF31FC2D5B0795BF95A55C7093ECA7C801DD0BD0DBD\ -BEDE7D56513128B29FC0B4D25A6240B24C99E017BDFF7ACAFC8F8DE9FAF5A294\ -4384AECE82BEA04DCCC6D51FC6E6F27AA38F131B7959B13681A09B311D242E62\ -22A1CE5687DE5C080508B1DB16B6F8290D33A3CC0D0138AC61FD9093825E9D37\ -52889E9F20DB9F80F92750EAC88B38AC81C0016D40371EAB4A87E845E91446B0\ -A07081B84F559CDB95340CB020AF22AEA1BFF2FDA12F7A42973FF163A1C6F33D\ -B8B8214AE27ABDF1C54F5B03E29310FA210125E1296E8AF93A2996DBAEFBADD4\ -C51C2C3B8A3E2BC9FE060C42BA32768F6992A99599206CD2291CCC5BBD50856F\ -7F8D2D0AE1EFB5892C15A799B77482DE4553736B162ABB06631F1688F6746E7D\ -7A37EE7EF24E6CC901175F04960C01990178F81E957E941DEAAC8846B3704E24\ -204F43DDB0765C433F3F7D4D201459CD65682B7DDF3D47E95CDB31B96A4CB229\ -07F08BA6E92A4A07703B2DCF150F922C4B7CF181380303FB72547847305999C3\ -C8F9AC877D05D9DC4159DEB8A13D36AD1D533A56950E20F906D29D51DDC45BD1\ -5C1773991707480E37B827044BDC6473181B760A9036E0D3FA491C2F08C55130\ -D8CDD5AC8E97D0813164AF3D28A585F0C2EC7004D498F95C6B62231A632A56C2\ -D0C48FC3A6992D4051957B9ED6D9A86DBCCD962A8883CF82CAF01DA2F51A203D\ -56B6089BC8FD0B1BD414C8063031ED469555E22EF872689C130B1C101034D572\ -FD8CD0EDDABEC9EF1503D7F728B0941EFE2B9512438C7DDB176BE2EC2D9FFCD5\ -6495A4511428DF02819CDDA18D1ED5D3B16C6F42AA0AC681A9FAB51E8A1A856C\ -15C51A3EC1031427142EA12543014DD4ACAC640B8A7729E63AB7DF1051112CDE\ -FD4B988A2258334FA9A7F5B3A87A02074B9F69DD81B83FC74089A91D76AA4041\ -259E80FA255F2084902AEB9E996AC2288AB464BDEC47AAB26A28A2A819498975\ -5D48FC9A5C9279285F2F1DBB8B8018F3E4E13115D78A879792E45A8F4F24ED4A\ -317440BA63E6929056EFC1D2529B75A709D6C0097DC2D97F646F334EBE6195EC\ -5630132FDE58E25DBC17DAD822D9FA0938A2A2C926B105D108403DC29CF371C3\ -504FF73BCE9C7ACF9A74C4954CE6A32DA96B21CF3211B3E49953DAB78C49C3E5\ -32A349003C59C62F7D40261CBA63A9EA21C89A38AA63CE431C43AE261C4D9999\ -B1CAF491FAB8E7BE6E8C3454F1BE8793B2D27141FC107DA599A4694C41353D77\ -85C05B5E31440458D17C6DB66FEB8A9C5C073FB946A67AC0312BB669D9B12FAB\ -AA5272CA6631379EF4ED420A4424A5CD08526384C047C33A84D5D7DC0C215366\ -3B54C73DD799A3568C01B818992CDF8143F1DADD6B50CAE6EAE13AC66F31FFA2\ -B362CC4D2880592B7FEE4B9E4CD6AA5E5DE27AAB9B5DAD9F7D39407AE927530C\ -AB2B61CD7394A21EF47BFB813B5EA6091458D239664923280ED0D5CCA8285BB2\ -281A2F9FB3FFECC8E9147E1E8FAC957D90C9E5F513738745A47C2AD0C31FD898\ -6EF3B6388C6E821F166513811D547AB4336B5E04643497FC9F8D6E380EF6478B\ -82B6E2F5F65DD98A63C68C32B94610E1D3B9538F13A7688FBB1EC3448BE9BD77\ -BB93A34546172AE8D614F85228988E7FEB18C9A0C9827699E8B3CBC69750BDFE\ -CDA8268F694F4C509BEFC1A1166F85C829725299D173F867A300987A2D36D1BB\ -BE37BE3208FB8EFE9152A41A5F0E931B6382FF7F9B18937958FB180E61F2A8C2\ -8F36C3C80C3722935AACB81C24AA17FB3E7A1026F7031A7449818ED62BA7705C\ -A27C2D3268F90B6322921683DFF800A306CFC186CF2A61B37F35837B217E3B2C\ -ECB0843D84EAC67431E3D689F01522D4A4C73618B7C2965C9DABB15C0BE637D1\ -0CEEF72271CF39A7B803B41767BC34433C3E6FF449A439AE13DA1EAFA038CB9F\ -2E1C84F1CE39C05DF56FE3D7B82386C4E628B6E27CBC5D575C66ADA3510C246B\ -D04DB48F4AFC2D7352966DA2266C2BC9831532F53655D8BE42B421AC0D70D8AD\ -1D3587257886DBF93668E907E861BA64F45999BADB0F766EADCE5238B5ED397F\ -265935194812C03C5769137BAC97140525303CF48D65F39004A3F59B1FAB0989\ -5CEE05335D15B9B12265892F4ABB92AB1DD2002ED00CF3562CB67DFE1055968E\ -4AB3306BB34BB87D0F64B26848812A2F7B50424A21FF94081A7F70F7B684AB0F\ -092B2B085DCF84CA38414CF7290F607BF79C37EA84253ABCA8D4184D2DBE2E90\ -0200B81479E1CE8B71DCF2BD6E3C557A8E431D627BA669C2EA03068E0F7EA62C\ -29777B22142D7A1D451BD541EF8EBDDBBA4E3BD8FFCD340E935BE7C66EFC14A1\ -3EA48134F655B0DE3180101F09D204C379743A357E6DF1268B55A9F7524398EC\ -F3A59849A27B142239059998083E8FA91785E91C4D220B2FB17E3389EBAA384A\ -49D89B5D78136DD2454F06CDE9837F096B744D53221127869904AC227CDF30BF\ -EA78CC5545583F999B9C42A1184E2FB9FF3EC095B9DA0D138205C4EAC4C8C480\ -C43153608849F63E161135C79D8B6C9CFE9B8DFD8AFAB559D8B595DDD4383503\ -3B4BBD391E028BB2A60832D9B697EE61408F149744DCE71AA11BB2B0436C1E26\ -26AC3A27CDA293366B90B9CDE2D927855130758D3946B867192DCF3FCE9A3B9A\ -5276E8C37B8CB136FC90A6DC22650F95E796A9886EFD3F424BE63A66DBB1041C\ -B3D4A06F4E7EEE89F0B6D15C36F9EA010C66B332011C8888E8E4AB2B3AB52231\ -91E1388613A0FD0F07C1B26D7CC7CDF1AC62A226454D6291B431CC3EF2DB2B24\ -42B37DEFB942117FA247096BEAE598611B8104F37BEBEDD8BB8B949A89B5BF8E\ -228ECA1D8F16BFEC75A02FFBB4EEE3A6D4A6087C43634D675311E72A9F3253BB\ -5DD364E07EB4B9C84F586BA267BAFFAEFEC79E03B83B18595FE06D7E063EE604\ -FF287004D141C1A43AF0CA7C5651D98F633FA875B4743353FB07BDE59B6567AE\ -25F7095F1D9EDF30570E2F7D7EC194216898D910F9E295A41DFEE072CB56F914\ -BB78CC9854129250F9874B63BB3EBE9A1CDC6EBCB0916E1C440354DED6AA818F\ -2811DA913912A21D3961AC94A39F0827D3A419616905DC45842C8E69A43004B8\ -AE922C8DE1E8CD0668674A7760153213835BC63FAE4F8D65614AFD74A34D42AB\ -AD5025B884B34639340B45D49CCED423771916E18AA077291923017CA50795F3\ -B7A3F349A3D29923833CE57801C631576E23B838A7767CA1BDA92B82AC502DB3\ -688FFC83C09A4E40CAC31D20D9D32FA6724A80BE7091CDE9C7A6560CFB326B46\ -7CADDB9E9B7A491EDA283EFB0B61B4A1116DD859D5C0897EAA2A3FB2CD82FFB3\ -3770BF9E08091363B6B81D23E61C2A647D2BE440C5C79EA89690656D9F10B1F0\ -7942834E1CB6E2D2DF106EB6D6A21FA23819E65028515E88BD279F9317BEAFFD\ -394EA51F8639371C3A89F11305A4CA35FB0711F5E2C7C3DD1659C79024581211\ -3204B4ED8AAE9FF09D43C6DDB13F5070D98831B2C7639FB6B9B01C288812DDFA\ -8861DB32DC8268C07D30CF969953042B3DAD530D9D744C06AABE7A886C0FE57B\ -09B7F42D193FB3E9C06329818251A2F7E6474462C95DED:\ -07DB4E0F124C3E6824F34A188D4CB1E2C0D8C02A7405D550E98C08E54B152361\ -1DF4FEF711DF5CB8EE73ED7809B3BB2A0D845287683F61CA3A11E109F7AD835F - -1A3DEAFCE70AF6F3F55D66AD9CE78D5F4D5C5F2638A810AFCD07D67E9F9A1380\ -D6B34BE482EF030C22F1E978F544609CCE35A74C5109EE7038495B6210CDBCA8\ -DC82C6E9E7B0D593FAD9665382B3C401AB8941DF71307DD77EBAF140AA66A1F7\ -6316478850E58886A9610631E9C722F459FA00C0B53124FB4F12778BBBA37608\ -26D3DBA67CD030A96B654AF93F8E395F5F439549489F8161683F124BC980E693\ -9C83A6085E4B6CAAF8BCD89A0E01ED70DB487166CC29735D9235A9CDC57B80C9\ -C2E591DF6322F5BEDD32937073F781A30389552AE83FBE147D1B3D3461A3DF96\ -C15CD96900C56718EAAE838417057579115936862679F5F2A45DADF65D14108A\ -F1641DF987B57986384FA1433789F5DFBE87E90BD4E9D8D4D0741FCDA7348322\ -B967B566B18612DBB8FE64F151947C3F7E361EE868676BCCD0CB3A1AFE046BE7\ -0057A05ADD3E65AF31E3FF414A627C0183E8FF583B41B75B203650420216E6DF\ -CAB289665F054CFE3EA0943647528518573BBB1D0F27E1449E98739EAF0D0094\ -32DF0C1EDC1625264B94A71DB762659FF5A3A7A867F182D1F1FD34B341A4A181\ -221870DC4A494013091A7E3B2B07E0160C438F1EE1E8A2B989C4FFEC36B5083E\ -A427606767C29672F44779A8505B422B25A56907F565B27690D011426A62DF00\ -36D57D967CD1D14E915BBC2691E7AF818C769D9E1F9EDD40894BE88FA1D7A595\ -2AFD898E837716ACD73953BF2D1D448123FD1A0276D2C2EBDC760A4B787416CF\ -AE5E963FCBDC8B551CB70F91DA0ED4A8090FEF178E879F2C34F3A269DFFFF097\ -72D44A13D7A17468B5834C460957D5243C325F63F05F89D4ED98D361E7F0AB8A\ -83948A64D0CFF8514841AA21C7F337920A9983E59BE4A0F1339E1E462F92DC1F\ -C070126206012458A499A8111FAE078E00B0CA3BC1D6C7087CD318D5603C1C7E\ -0425E6F729CEECA5F35B82F8A42E0E9B950EFB0904C5FB5C06D91D239913665E\ -D1F1EE4B82185A01BA86CA2D3EA94E5A8842231A94C05280183B7ACA28998410\ -3F122203EC2FBA4A382E6F5236D6F68DA05E3BB0C558421F0EFAB91DCEEF6D1E\ -CDC60F9B88F8BEFE31CDC3C2F024A1AF2C7336AA5D151E8CDA814A5FE898BADE\ -B9DD680E337E682EBC22BFAE445417E37D2D89A338659A280AB1206DB74DD42C\ -6F25639C1803BFDF2156DF613B0F5924D209F7F9003CE8794F989F4F27B82121\ -210F4F65EC5A1F7723305CEE438C41F793EE04496BBE337BBD2FD3023830B1C8\ -889C6F4D0C1192E364EDBE1CD987BA5D66224EE9C9405E1DFCEC0EEFFC5C73D3\ -123F6731C6295D1E6B854B884FD22B6A3BBBE5395312585CD138BCA67532C6AB\ -71BEBC6657C50DA87D2AC6068FA3970202C5E15EB7B4B3D2676C0134BCF1EAC2\ -B26BA46930B5E660B16060894884C88BFACD6779276B86F685AB6F17C6D53F62\ -1275FAD66D021D26D1D480AFAB4B5EC75E0E763FFC45F599EA02504DA5D91EB5\ -EFC3E4AE196F219E45E7CB05594958C876FF474A020EF73C1F09B1F7F7457E81\ -6D3AF51D86663D4D461754CD5E907456691E02446D6CACFD33516206A3187054\ -3D574592087773653D4086C2BDCBAB3C9B65CA11AD0D4E58DDDA8B4403099898\ -57103929549B7300CED42651D4086661694092C42875CB62858E6D1BE5F7274B\ -4BCD83AA4DA05CACA186A30902830790F9FFA24418E1F9DB00FA40477E83B05C\ -2D11AD7D81DDDB1E31F94A9DD5E9E13391C22479B570976E3AFC1BE41086D3BE\ -6689D87CA4326A7CDE8E5B396A678D3CDB2C80FECFBA2BC799AE8B1528E96D88\ -0CD098DDE910D097EAAE660AD4D7EA51C18F18AA1B39614299A172512521DFD2\ -31B9840909839EB69C892EE23F1BCEEC1FADBA75786C7DED93BC9983F74CEAB3\ -97EB8BA84F7E4130B34258D628594A6F9E2348FD91BA2594E07B8057E8A2AE3A\ -DFEA0EF919555385977041C5B6DC4F3880569171F7217AAA9A85F2F5BBDFE3FF\ -DF79248F2A35FD4DEC34980C67290339B1C0A5A6AB8838157AE2F5140B4A2492\ -4A6688AE5CE72A48103EE9029CE8A0F15B1FBB19A12FAAB80A7CD9C0E389FC27\ -75833E3190F1CF735ECDFE7F6B6C326506AA82613CBEDA8DD3691B81F4C1E3B0\ -FC32D7E6719CBFC12F4A26E0FC29D6417953ABC9568DB4ED9A294B9FD5F2A666\ -DDA546ABA301B1C60985033953EFD6F4538333B5C7DD3148814A3FD7927C366F\ -40B3D7ABBDEB2332DDB586AF80959097663CFAB2FEECAD6D368AE10EFF9663D5\ -F8BAB95935D25F45776F7F04B46817D05165A9DD4770509ABB92F8B9E7373CA7\ -80703569981754A51D6D376D65C57F55CD70E2DF5FDF5A6B829AE30CE3BF9428\ -15C8B4BE858DB58151D02A68AAB9FD373E047EFA51BD1A0CD1B61744D9E97CEB\ -A3334B3BAAFEA3BC9E43AE097CF2C3D713EECC247FF43EC74D54907D8BF45E45\ -B2E0E11D82B126A8179D3F66C055E11F69EA67AACC5FEE8AF01FAA379E51998F\ -5070F9EE0FD30A2EB22A925586FB1B39024EB5EB1E127C76A149E7F02AF1B73C\ -16E9E5A5DBE378E08A9FADF1194C625132AB3FDEFE8FE9A89BB8E0035A1A3AC5\ -278F5D3D0ADE0E41C81C6853A41C4AC45BE3F68180FE23F27F18BE2E339DE1D5\ -59D75DE63ADF7A32BAE42B037AEAA3E123A5314891BCD35CA48D57DF4C17540E\ -97202A8EA1328DA25B1FD6BE2B56AEC1E5DEB209F3B7A13ADB1CBE53EB645956\ -E577A7621D74E42376D70BC5C4AACD239A852FBB7B3F62CF59FE10438C1DC8E1\ -E46566325DA0CA43AAA63FB7E0B450A2DB3E3A2204704D894DB24B72B3078106\ -E096CD543DCF027650CB4965E38AC36A8AD588C5962B4E26548AB88F0BC20E10\ -ACC1C3FC00EF415B3C32499264552B14E2C0E789A3B8A8BFF9620FD939D0B34E\ -806177EC696A4B3B1CA4B32BA979B2690CFB3A6B17BCEE6877FFCE757E4116DA\ -01099FFE82ADD5A0C593E73449A96DB9CC2B9E846D166B095174F2CAF8B35DD8\ -78C836D9BB6EEEAF8E1BC5D0E149C739828CC480D731DC16B35B80D4AD82ED7D\ -29BD05018239EFECF8DEAE180C6A459DBCBFE4AAB9A5E2C1E1BC31418CF2EEEB\ -31FDF8BA02C9A91525E9163F672BAE2EDEC38C1BDB84EA237B4EF86BF5C0F0FF\ -E178E3761E82D94F66E5EA40BA8170BF768409E1B4177AAFD9937BCE3FBFF590\ -320D7C445372463FBBFB34F57447F42C16E026F179CBF82F617C86D1E8D42F6C\ -908F9C6B77E38D25D51303DBD781FFAB569B4CF31FD0B947C45E1768A2E9DFE8\ -369F520DC38D77937B69B821DB4FFEA8F50EBC404F0587B5598189F54B5A5B98\ -966FD16801C87DE2C3C7813DD70DC600824D426D88C55E89D47214D59206A7A6\ -5A65DA7CA2E42FA62ED17E7AA5B3ED446BCC71F17FEC8593BE96D2037BD07F94\ -76D4D732B32BC5DF8C921316B45699004716FC89F8D45BAE402C26DBCDF1A340\ -847B932FF882DBEAFBEDD252E126C89A1E1FDD8908A1F67D15D8E432DAD8E08E\ -950A3BC46B96CB89CC5BDAC703B3FA3E986EF1C6E7E6606E6845BA1EB2FBDCFE\ -E744B5E45206F4A419E1CB103C8490EB293EE9AEC1F0A0D294F9D3847737413D\ -30873F3C94740E8FD072817815EBBCE3F09EDEC9D1211A9E99547D620B2EC56C\ -89E9CB8144AE9E46636324BD13C6CCA3AB9CD9FD8F7F937ABABC598232384427\ -A2D4CE0CBF9765F7225E208C3CE128602B0AD08A1BAAB77EDB3111F0C6CA7BA0\ -EAC9D89D5B4378EB82C17F6EA08308A79A53D150D3F85EFAB77294F02EE0E288\ -5EE2AB2793392B87DB11FA77992F5B4FD75EF2F1A822E87407A4878894215AB8\ -9B6CC4A120F5A78B3C31AB80FFCC9ACEF53FC6F7F85685EB9D56D30D87C21ABB\ -F1652EEF8F32C7C567BD1F08623B09C29F33561D42727A5649A3850071AA6C11\ -735AE63C4FD31559CE560B27A362786A83353FE460B37074664A9421D3B2F6A8\ -64D5ACA087187B27E2B82F31CB3DF5E985CEA271C609B94B4E58356D40C7D5C7\ -FF2E5990FB39588154843EA5FCA92F120075D4C4D006661A0FA1B0585454BEA7\ -25473EEF7D58117D5840C8348999003736C5EEB7858FFD273A1C3EB2812F5697\ -C59110275B08F6BEFBE84C92497D5F73B7B6F794A849713B23AC5F29D5C7112F\ -B2E7A6E89EB54DDFA3122E6C79624C1BF25EBFB9FE5CE6DAA779F3ECB2984DA4\ -2F8C6ADC77B21DD291E684FCA50E46070962A2D4F00813D8DE1B8ED33FED9715\ -180C7EA8E2BB74FA65D9C7F6E142F3C81CDC59172E1020F62F65CA5A12CF2BED\ -9DEA04A4D8CABC2948F7BE823A3E792625275B3925A6C8D8E2B428C75A5DB0F7\ -120278CD7D6CAB768755C7FE2FBF89FDED1FB38AC7F76A2F8798CA36ED42CB7C\ -07F006271205F546A4812C20077F050D4CDC79459FA686E97F0704B7A9FF7DE1\ -6318E862C53D361BC635A55A264BE15016545DBFCE3C6D6849576ADEFB6884ED\ -D768214E0B438B0231B4F2692C2C0B5C177674F8A0DE236EACD9E0CEC7C8647E\ -4E9A5861B957EC834A2F8572F01304C3FD6A06019E5F1499B62BAA8670B65246\ -7FA9A4F10F053263BFE9743CC7D933F86136AAE3A6FB56754D7D238397A0030C\ -EBEA87CB255AF36138C373DBBAC41DD4A697032E4796C552AD9C9B3FA713C3A4\ -E09E0EC5581E94BE7F31065157662F9E9C678B1EF1B8B8A847C51789C22B1841\ -BCFC855820AF3258AF9E08231090B45D10046A00178E89BD515616B8A44E77BF\ -57795DABAF40687B2CDA7A5014168F:\ -7A19EAC8B081B61CB51390E737406920414210BFE4E07BC3198651365193C543\ -5B5147F99602132DD0DEA9EDB10A6F93A9AF28AE0A10320D7ECE88B325FD9F5C - -1633256AB03B20CE079196B708A1C02D1B6072219070712C8589EE21341D5075\ -2ACB6CFDA17E982D828BBD6CDF54BC7232FD418A323D64939928597B9B52F07C\ -F488250C5E42BFD3AB48012D709F8D747225839296386FCE5FC5AECC4BA7A107\ -6D089DEA8ECEFAA0CF66FCA8602395719C12A04F929321784D7AB8239FCE2FF3\ -BDAE046A266132B5C2AD9F7261F3014E87B389A6695978693D9371D0B1FF9C40\ -5F338C2FDE4687359603950A54CF4B9CDD9B24480B239ACC5405C14C886BBB03\ -78391CEF0662A38882BDD09E3866AB9A66CFBD28EB5EE4F8009BDEFC4AEB1670\ -0EBA7DC557B489190A71FDA75E85F7EF841697F70FFD4FEA185E7A67C81C5B8F\ -273BFB97B2CEF695C1C74446C4B425BE6B2E66DC0AAACB247E4467B7C7D84EC3\ -3B6B5AB8FA1979F503008BDCFF948CDBF1226B1B066CBCF34797298F3BA8C60F\ -A01E0AC8B803223C656112FB91435D75453BAE4707B63330467DD13E0A4B992E\ -6F7E46995899A2D95D23F4AC3D0802B2A6E7D024DEA19CA408C4BBE053F14C9C\ -E264F129724A18BCB18F385B1CA091A11434EA96D98C8D0602E98EDC8DFA1414\ -1AF93ED0BA66E885E9FA108591AE59E109AE34D6B9F5586E4B4D75E7DF7C3295\ -8A65E88A9BAF41082A0A3F11539DC4EA2CBD9E1C6C3C439B622F1DE574FA7547\ -0C8C939B51D2D1C2A7204B859881D43086BFD8FB90346218D099C5AB36846F3B\ -98A7C847318BDFA01E09717943FCD864C5A8A17B6CEB89D98E872D388F20ADC2\ -BE5E2006846904F41682FB1283214F3D20DBC9FC9E0FF571844A1282E88590D7\ -C085B2C568EC5ACC4462B389FEAA5757F7033187E2DE31955FCE55FEDC909255\ -048B327CCAB2E582BBC9D8054BF5CB45145C7D3A3AF9CD5CF6ECBA490C634ECF\ -00E646BF95E8642C43A4978EF08A574EF1F78F6CE57C3B34B5A123D123617FC8\ -EC9B2AC0F9B70A7F6062D38DD7B8E9FB4ECCEF13DED5C0477483ADDAE4F1CC0C\ -FCA274B1307ED0DE72FBCB819154CDA897D7575213042615F1741A8CB646A39F\ -8D134FDF9E60E000EB8220F65CC30F5FA52C431B9E3B6101B96E25B8D0440B96\ -E572A18A01747C02AFCD7513542F7AACE194632099D16274F31EBABB60DDD94F\ -E43DACCE900EC0902EB5E686D48ED8D09AE63DA0E15C736809903A0297A92DE8\ -4E0260F11F446E1FC448E0EBF59FAEA3C726F97925C57CBDF85B1F77078D3625\ -7C85D56CBBEDCE180FE12B687ADA2DC9912FAC60334166BD2CEF06B089ED5C95\ -63844D71D8FEAD2F3A93F3C07C52537336A8A70BF5B596B9007B9FDF2D082000\ -F20E6B70D2A7E6C7ED27C4146895A6D85A246F623C1B9258A2F891F823ADE4CE\ -FFD59D4FFAD077351E2F506E9A5BDD3900F0204B9E8969AFE72F5DCCB9CDF986\ -D197AE4C4DB53014041AE6221B750E5290E307AD292C8DE6B899235212EF8CE9\ -54785537DC9435AF11E0F3427A9C7B22EFA752EA0B7EADE5F6EB4093BACB7867\ -6E506698139E4F774423B8942166F9A7D22480D814FC0AE19CF4960FBF6E01FF\ -A65C8DA5BED4F1AE2B9ECEC5BE7B3C38DD4045B0C93EE6CC77A7E61E85D331B2\ -3C0D164B104518B3405497054445A353E9B48F2AC5E8E96298D6655614336CFF\ -E6D8C9C915E387391519AD2632366AA3BC935030FD12927EFCA17505ED74C946\ -50C778539004854DF6C24269AAB9C273A493D3E5B0B1D687C33C2FACE46B4BB3\ -742D6DF743D09164D2E0EE7F6BA128BD5FBA2E3B33C199AE80FA9DEE3AD811D0\ -2BAA3D42A6362B2AD47BBA8A2C5CD00B46CF22CFE367281488A4852EB8B7FACE\ -79F0CA6F8E78D32578DFEE01711C4DCF3C26D0BA13F3075478E708C5C5315AFD\ -C2E4C0062D16458213BEC506A9E991A61825FF78DA9BA1BAABBEFA56B4A8C9E2\ -E7B60EC4B7B541C8E0F79C86BB5F03F736761A37169B2AAB8884EC6EA217B02C\ -59035F5BB327243D126B78D4AAB430212439B5A75B80618DAFEB66AA3AFF866C\ -4DAEE47D374B512E74ADA933EF24A841BA271C6F02C870E8AB950FE06E93C91D\ -F0E99165DC01BCB190E411ECCD85358FD4A88127A22E4CF4266A90845124BF97\ -B25D7B1C46D3A0D68A684F84E2A638C692A52CB6E8C651A3AC492B0460004073\ -D5349E35552359CA37660F77B2770D6B2B3F7B1922424AC4A8598B4C61A6DB50\ -7608A72A6A7D573CC055206276E14005A28A0EC41F28D7E260611D40F089FFE5\ -E529375691412F4E9E12E62C3BE2C563C26D2444EA9C69E6C935FEB4DC4E802E\ -5FE3906F8ACEF4798D940C3CD574BB5E74506C3E0B70CB62454A25F589EADB6B\ -0709FE3B50417CD1D98F08E08B7CF68A04CCCF8D6588F9FC2F31E533CDA6159B\ -AA4297FA446450D71C16EA2324EC09773E7C8817ECF680ED12F64A04863EFE3D\ -9D8760F34DE5B0860B3991FF0EE5EDBA22C4D69120DE19D5429E4AAE91C9E7CF\ -05CC807159A58F13B480872AC1609D87E7009DEDB71C09CEAAB640A2B6135855\ -CEAE4AC2954933A0255B425D9FDCD9C246F82AEB7C3BB78C6E73E03DB7AEC424\ -5A28693FBD36EF4938D59CCE19EAFC00671A0851612406A075713C5D1154D8E1\ -3B59B7C5B0902239D4BACFA386AC817AC5EE02A181A9A47C622B3ECF287E1484\ -3D452AF347110498A620B34AB4E116308D976062C9EE9CD35DB6CB79805B93AC\ -9A15AFBCB52F1ED4309879D1924A4BA190B0B86E60A516E77D34B4E0A49D4EF2\ -CEF3CC2F410FD8EC901363FC9EBD75EB460D4D8910BDF27CE26A8B4AEB94F9F7\ -6242401DC35D0644842B99FB6C439B82D82ECFE1AF0D01F9BECB15BEC83F13B2\ -60F7F714AA381032923FDE8F8018F3518547451435C9A5207294D08A907C7369\ -6F6CB000745E072E25B73B3EE11595433D27A1F11468686F08094F1D31F5ADA8\ -1F11F0677A29D72EBB2E1C4792CCC607CB938647E1F153F9EEF03D982595C631\ -E49B6B7C1FA003A6EB8D59CB8892CD0888B05240F12701753F89007C859515A2\ -FEF944BC60B36003A26702AC6FE04D2E942978FC31A97EB29871D6752399D352\ -1720729007B6A7215A4282B2A4EFC2C56BD129E74C9B00847692B96FCC71CF7A\ -7F19F3FD6B45C519FD73B4860880A2DD74E5727B31A93F0A87F0078155344AE9\ -F7BDBF00D83393B634B5DCA88A398E42C320EB95C4A826ACEA90B65E4767B2EB\ -A748F97C247568393E2FD3A66075CC12935B6D7EB5C2FF5282185CB62C73972A\ -37B3CA508004B4F796BDF82B83B5BDF90D6BFD32B5089B0CA2683DC7FB2337DE\ -42E650ED911DBEE1EF98257F9BA5AF54B1A54B04C0087A5A64BA779D86461BA1\ -5337C2E7D4955FDD777A025DE226306A17C384F1C52CDB5946FB0B46DD5C13BD\ -7A55FE2E27E4C6D40D61D6FFC024468F8EDFC7C7992DF5DC5D05063FE7231992\ -24F53678E48F25250EA28BDF1089718EB8B730D1C06735C2F871164E2EB5E885\ -A8DFD2A083BE97EDC94159CE9BF75D2433F1D782762F771903CBF9A1C9D13F71\ -0BA0E151B079DC0A8262BCEB1DBCBBC0F35DF6EECF7BAA7105B9808745853C96\ -B4372E95E482035916B726DAC7BE95A72B19DAD48DB1B19E6EB2EDAB5AC1B301\ -3839E7806625ABC129F41813E6D71EE4AB2040D81E42E6ED73ABBA64FF2EB433\ -B910EA7D4F5ED3D8D27D39BB454EC019DF6114F544D7B155549D0C56D14551FA\ -F353994A80F30F3C97E863A4F2AF316468A568038EB4D799350A6FACAFF90ECD\ -44E0F44EFB6DC42EE4B0DC2C59EA9C1827326DF08C0A6E55CF4F9C3EA0E78CFF\ -3635F5D08E44F1400D20F638D56BA84B4832090454DE57EF04B6C8805A36F63E\ -5CCC6E830C87FFC164647CED20E4C486D09DE7A5F9E4B68D5456CDB22B0DDED2\ -B95B3BCAE529215C2D25D6823C7D66A4FAE0A1E9F022BA5663204F2314DFA51A\ -1F10E11D6D62A8BA6C28B6AE7DA1DEB5B57F2B65D7456059AD9F03DC5A524054\ -DA39DD100D74EB657DE219795E3C45A0E4C762BA22F9DA9D8159E425A1EE783B\ -4B22C250D8894CBEC706CE16D5CA393404FF478F141BE7CC69E45B077BA1955F\ -1F49EFBE4847C795347F703300F672334F490ABF8B644A34B56DA00EC45A3503\ -14B9ADF27CAF7C51CB7DBA0C5477E7D37662F4F23247BCB8F7DD5F3E9CB8BDA4\ -0FA97568832AF0ADC68F71422E412254A6BFC8943BB465B01FCC8DE0B957677C\ -78BC1F7566953E9D2446239F602C682A521C14F741FEA98C7E27AABEC339B6F5\ -B94C78287A894AFDAE971F8DA7C7E4A4C92C8DA47BE82DC2532EC2DA9BACEDD2\ -BE6DB2B2FB34DCCDCB34116507376578CBCA105E5E443BEC0F2EF23BE34CDF86\ -2EDAB34F0FF21335E3ACD92F59688B419F824EA61EEA82BC80E3463452192377\ -131BA51FB0795E089FC077D0ECA8012E58B0637AD7022206887FE9EC00EE5DF7\ -AD2E26FE819EE35C7A179C579098AA3DF645D9064CD557DA90BDD21F871CEB04\ -8CA56DF9653A10ED60F5E9F0ED7F8D89BCF5C22D1143CF44718FF2DFD8E10CEF\ -8AABB67D2305F18177C1426BD4CD03F2625E459CE905067826A214E08E56D8F9\ -455593E6B324E72DEDCC429D3BEFE2AE0599E360DF95E80D453A3A849E48389F\ -A745635BEDE30E7932DE6A3816E31A2217F98D5E40238963D0A36C159FD4EC32\ -D8A5CF59D433DEF3378634AF6887FDB3F3EDB96FC8840FE1B538C329674AE810\ -E8C8B2B46DB208716D38E9D1AEAB097068AD83ADD7DD2647839B3A7388B0615B\ -DE26F8692E9C07D8ADECC2A875203C3D3A9C6CB1D7D06307E9E1D9C3BC536DD8\ -EB271E9A2159C904E61E8C9357FE759F36366AEF5A3D14CEE82913CD2708AA60\ -69369CED763C8E830D70924E82E9015C2998E86EFC1DCE6AC2EBCB49455542A6\ -D7DAB265AD6D7381FFEEE1AA40F8FAC0659B6FB56BB03CD8CAFAACD48D13672F\ -7D524EB9684CFED4DBB7476E99149C28EC08F33BA6AFF839AA178F86B8EEAF17\ -39C829177BA78547AD394136AA3FAD451A11E9642506568B39668B2436610E06\ -EA45FA11D04D3759B033B5382645F15B3C39270B81B80487643913A24F2F1C1A\ -1ED57C85CCDDC8CD6D59B62FA67CC80572968C8FD01894F0153634C88792A7C4\ -A407A4A4CE46CEC5FE5D2569F95A27DE242444EA0C715B357518CAEA23E767E8\ -545983F0D3A4DF66111B4AA1D399CCAFD796D7A80E592D5A51D2B3F60B5B04F8\ -D9C009CA56CBD4DD84127A29B72ADB7645FB7279C9818B2B43963BD605F45B65\ -75A5E2E369E0B401F5EC10EC703F1179B0AB9D4A89D6F096573952E513827364\ -A84D38922734137E969D8167D6959B70F42F2BDA37E4C989ABAA8024C1A84ED6\ -BEB74780927F78B32EA736B9B2B4A795C355C0319811729D9CC399D235197303\ -38D62E16E5035FC52A817090703FE776D65EF9FEF5BA5F4FFEC3CC8E9EB2E312\ -C50A479BDD4E6AB0A56C18C2DF69ED408417BEE28BB41DD13F8366FF6EDA4B34\ -090FC9BC045271:\ -B3A3DC375B5230EC57B052882F13500D61BDE3FCAFE65AC7EDFBBCAEE5DE7550\ -E93FA9C4ADB6B44CA3A4EE9E817CF456D595252ACC898703E45213294831C47B - -[Tiger(16)] -:3293AC630C13F0245F92BBB1766E1616 - -4142434445464748494A4B4C4D4E4F505152535455565758595A3D6162636465\ -666768696A6B6C6D6E6F707172737475767778797A2B30313233343536373839:\ -48CEEB6308B87D46E95D656112CDF18D - -[Tiger(20,3)] -:3293AC630C13F0245F92BBB1766E16167A4E5849 - -4142434445464748494A4B4C4D4E4F505152535455565758595A3D6162636465\ -666768696A6B6C6D6E6F707172737475767778797A2B30313233343536373839:\ -48CEEB6308B87D46E95D656112CDF18D97915F97 - -# Tiger is Tiger(24,3) -[Tiger] -:3293AC630C13F0245F92BBB1766E16167A4E58492DDE73F3 - -616263:2AAB1484E8C158F2BFB8C5FF41B57A525129131C957B5F93 - -4142434445464748494A4B4C4D4E4F505152535455565758595A3D6162636465\ -666768696A6B6C6D6E6F707172737475767778797A2B30313233343536373839:\ -48CEEB6308B87D46E95D656112CDF18D97915F9765658957 - -4142434445464748494A4B4C4D4E4F505152535455565758595A6162636465666768696A6B6\ -C6D6E6F707172737475767778797A303132333435363738392B2D:\ -F71C8583902AFB879EDFE610F82C0D4786A3A534504486B5 - -4142434445464748494A4B4C4D4E4F505152535455565758595A3D6162636465\ -666768696A6B6C6D6E6F707172737475767778797A2B30313233343536373839:\ -48CEEB6308B87D46E95D656112CDF18D97915F9765658957 - -4142434445464748494A4B4C4D4E4F505152535455565758595A6162636465666768696A6B6\ -C6D6E6F707172737475767778797A303132333435363738392B2D4142434445464748494A4B\ -4C4D4E4F505152535455565758595A6162636465666768696A6B6C6D6E6F707172737475767\ -778797A303132333435363738392B2D:\ -C54034E5B43EB8005848A7E0AE6AAC76E4FF590AE715FD25 - -5469676572202D20412046617374204E657720486173682046756E6374696F6E\ -2C20627920526F737320416E646572736F6E20616E6420456C6920426968616D:\ -8A866829040A410C729AD23F5ADA711603B3CDD357E4C15E - -5469676572202D20412046617374204E657720486173682046756E6374696F6E\ -2C20627920526F737320416E646572736F6E20616E6420456C6920426968616D\ -2C2070726F63656564696E6773206F66204661737420536F6674776172652045\ -6E6372797074696F6E20332C2043616D6272696467652E:\ -CE55A6AFD591F5EBAC547FF84F89227F9331DAB0B611C889 - -5469676572202D20412046617374204E657720486173682046756E6374696F6E\ -2C20627920526F737320416E646572736F6E20616E6420456C6920426968616D\ -2C2070726F63656564696E6773206F66204661737420536F6674776172652045\ -6E6372797074696F6E20332C2043616D6272696467652C20313939362E:\ -631ABDD103EB9A3D245B6DFD4D77B257FC7439501D1568DD - -[Whirlpool] -:19FA61D75522A4669B44E39C1D2E1726C530232130D407F89AFEE0964997F7A7\ -3E83BE698B288FEBCF88E3E03C4F0757EA8964E59B63D93708B138CC42A66EB3 - -61:8ACA2602792AEC6F11A67206531FB7D7F0DFF59413145E6973C45001D0087B42\ -D11BC645413AEFF63A42391A39145A591A92200D560195E53B478584FDAE231A - -616263:4E2448A4C6F486BB16B6562C73B4020BF3043E3A731BCE721AE1B303D97E6D4C\ -7181EEBDB6C57E277D0E34957114CBD6C797FC9D95D8B582D225292076D4EEF5 - -6D65737361676520646967657374:\ -378C84A4126E2DC6E56DCC7458377AAC838D00032230F53CE1F5700C0FFB4D3B\ -8421557659EF55C106B4B52AC5A4AAA692ED920052838F3362E86DBD37A8903E - -6162636465666768696A6B6C6D6E6F707172737475767778797A:\ -F1D754662636FFE92C82EBB9212A484A8D38631EAD4238F5442EE13B8054E41B\ -08BF2A9251C30B6A0B8AAE86177AB4A6F68F673E7207865D5D9819A3DBA4EB3B - -4142434445464748494A4B4C4D4E4F505152535455565758595A616263646566\ -6768696A6B6C6D6E6F707172737475767778797A30313233343536373839:\ -DC37E008CF9EE69BF11F00ED9ABA26901DD7C28CDEC066CC6AF42E40F82F3A1E\ -08EBA26629129D8FB7CB57211B9281A65517CC879D7B962142C65F5A7AF01467 - -313233343536373839303132333435363738393031323334353637383930\ -313233343536373839303132333435363738393031323334353637383930\ -3132333435363738393031323334353637383930:\ -466EF18BABB0154D25B9D38A6414F5C08784372BCCB204D6549C4AFADB601429\ -4D5BD8DF2A6C44E538CD047B2681A51A2C60481E88C5A20B2C2A80CF3A9A083B - -6162636462636465636465666465666765666768666768696768696A68696A6B:\ -2A987EA40F917061F5D6F0A0E4644F488A7A5A52DEEE656207C562F988E95C69\ -16BDC8031BC5BE1B7B947639FE050B56939BAAA0ADFF9AE6745B7B181C3BE3FD - -[Parallel(Tiger(24))] -:3293AC630C13F0245F92BBB1766E16167A4E58492DDE73F3 - -[Parallel(MD5,SHA-1)] -:D41D8CD98F00B204E9800998ECF8427EDA39A3EE5E6B4B0D3255BFEF95601890AFD80709 - -[Parallel(SHA-160,Tiger(24,3))] -:DA39A3EE5E6B4B0D3255BFEF95601890AFD807093293AC630\ -C13F0245F92BBB1766E16167A4E58492DDE73F3 - -[Parallel(SHA-1,RIPEMD-128,Tiger)] -:DA39A3EE5E6B4B0D3255BFEF95601890AFD80709CDF26213A150DC3ECB610F18F6B38B46\ -3293AC630C13F0245F92BBB1766E16167A4E58492DDE73F3 - -# This is mostly just a tricky test for the lookup code, it's equivalent to -# "Parallel(SHA-1,RIPEMD-128,Tiger,MD5,MD4)" -[Parallel(SHA-1,Parallel(RIPEMD-128,Parallel(Tiger,MD5),MD4))] -:DA39A3EE5E6B4B0D3255BFEF95601890AFD80709CDF26213A150DC3ECB610F18F6B38B463293\ -AC630C13F0245F92BBB1766E16167A4E58492DDE73F3D41D8CD98F00B204E9800998ECF8427E\ -31D6CFE0D16AE931B73C59D7E0C089C0 - -[Parallel(MD5,SHA-1)] -:D41D8CD98F00B204E9800998ECF8427EDA39A3EE5E6B4B0D3255BFEF95601890AFD80709 - -# Lookup test: TLS.Digest.0 is an alias for Parallel(MD5,SHA-1) -[TLS.Digest.0] -:D41D8CD98F00B204E9800998ECF8427EDA39A3EE5E6B4B0D3255BFEF95601890AFD80709 - -# A tricky one -[Parallel(TLS.Digest.0,MD5)] -:D41D8CD98F00B204E9800998ECF8427EDA39A3EE5E6B4B0D3255BFEF95601890AFD80709\ -D41D8CD98F00B204E9800998ECF8427E - -# MARKER: MACs - -# MAC format is input:mac:key - -[CBC-MAC(DES)] -37363534333231204E6F77206973207468652074696D6520666F7220:\ -F1D30F6849312CA4:0123456789ABCDEF - -:0000000000000000:67C6697351FF4AEC - -29:616FE88F809D55FE:CDBAABF2FBE3467C - -C254:AED0202A4D19E0E1:F81BE8E78D765A2E - -63339F:69E2BBE362FFA373:C99A66320DB73158 - -A35A255D:99AF085AE0872883:051758E95ED4ABB2 - -CDC69BB454:346750C009F85AE7:110E827441213DDC - -8770E93EA141:457FA6D39A704CDB:E1FC673E017E97EA - -DC6B968F385C2A:725FFF0F41477E42:ECB03BFB32AF3C54 - -EC18DB5C021AFE43:1D119FAEB0BB44C3:FBFAAA3AFB29D1E6 - -053C7C9475D8BE6189:E4DD5474534FE9DA:F95CBBA8990F95B1 - -EBF1B305EFF700E9A13A:BEE63E65CAEFA450:E5CA0BCBD0484764 - -BD1F231EA81C7B64C51473:495FF947F6665F45:5AC55E4B79633B70 - -6424119E09DCAAD4ACF21B10:53C806C8B69CF03C:AF3B33CDE3504847 - -155CBB6F2219BA9B7DF50BE11A:2CFD97F2BD38C7A0:1C7F23F829F8A41B - -13B5CA4EE8983238E0794D3D34BC:A83C88744DF51267:5F4E77FACB6C05AC - -86212BAA1A55A2BE70B5733B045CD3:112C46B74BD7D1EC:3694B3AFE2F0E49E - -4F321549FD824EA90870D4B28A295448:F12831C24A551F5C:9A0ABCD50E18A844 - -AC5BF38E4CD72D9B0942E506C433AFCDA3:0AB4EC81A81F5C6C:847F2DADD47647DE - -321CEC4AC430F62023856CFBB20704F4EC0B:B2D3297BE75E9505:B920BA86C33E05F1 - -ECD96733B79950A3E314D3D934F75EA0F210A8:0AA5F1B82E138AB3:F6059401BEB4BC44 - -78FA4969E623D01ADA696A7E4C7E5125B3488453:7143592230891CC9:3A94FB3199903257 - -44EE9BBCE9E525CF08F5E9E25E5360AAD2B2D085FA:90E6F543EDA1AC82:54D835E8D4668264 - -98D9A8877565705A8A3F62802944DE7CA5894E5759D3:491310A9E2B8B18C:51ADAC869580EC17 - -E485F18C0C66F17CC07CBB22FCE466DA610B63AF62BC83:\ -302E436ABB2B6193:B4692F3AFFAF2716 - -93AC071FB86D11342D8DEF4F89D4B66335C1C7E4248367D8:\ -1ED636A10A187609:ED9612EC453902D8 - -E50AF89D7709D1A596C1F41F95AA82CA6C49AE90CD1668BAAC:\ -2A02740B45449296:7AA6F2B4A8CA99B2 - -C2372ACB08CF61C9C3805E6E0328DA4CD76A19EDD2D3994C798B:\ -CEA8016EAE33A92B:0022569AD418D1FE - -E4D9CD45A391C601FFC92AD91501432FEE150287617C13629E69FC:\ -E584507E7606DD42:7281CD7165A63EAB - -49CF714BCE3A75A74F76EA7E64FF81EB61FDFEC39B67BF0DE98C7E4E:\ -5A09D5EF7B21251E:32BDF97C8C6AC75B - -A43C02F4B2ED7216ECF3014DF000108B67CF99505B179F8ED4980A6103:\ -3AA4E5750CA579D9:D1BCA70DBE9BBFAB - -0ED59801D6E5F2D6F67D3EC5168E212E2DAF02C6B963C98A1F7097DE0C56:\ -FAC262455D9691C6:891A2B211B01070D - -D8FD8B16C2A1A4E3CFD292D2984B3561D555D16C33DDC2BCF7EDDE13EFE520:\ -32127540A949B873:C7E2ABDDA44D8188 - -[CBC-MAC(AES-128)] - -# A test vector from InSiTo (taken from Bouncy Castle) -00000000000000000000000000000000:\ -66E94BD4EF8A2C3B884CFA59CA342B2E:\ -00000000000000000000000000000000: - -# Randomly generated -:00000000000000000000000000000000:67C6697351FF4AEC29CDBAABF2FBE346 - -7C:A2F5C113EBEE0F124B649287C7F7986F:C254F81BE8E78D765A2E63339FC99A66 - -320D:5C787D4CDAF3B4D106A7AA09F41BCFCA:B73158A35A255D051758E95ED4ABB2CD - -C69BB4:B32F25C34E061A972C49E4B0A0678AA5:54110E827441213DDC8770E93EA141E1 - -FC673E01:B5D6A0E8F3202BFF37796DB5EB920B7E:7E97EADC6B968F385C2AECB03BFB32AF - -3C54EC18DB:F3896484B179F90BE3B62DCE3F748C52:5C021AFE43FBFAAA3AFB29D1E6053C7C - -9475D8BE6189:100D2CDA97B85428D785D9EECC8D51E2:F95CBBA8990F95B1EBF1B305EFF700E9 - -A13AE5CA0BCBD0:\ -92A7A024C4F6D8C82C53030545C23C10:484764BD1F231EA81C7B64C514735AC5 - -5E4B79633B706424:\ -E235CFD4C307E2B3D44199E83E5D83C6:119E09DCAAD4ACF21B10AF3B33CDE350 - -4847155CBB6F2219BA:\ -2379D24A48EF60E46807E92C1A602AA6:9B7DF50BE11A1C7F23F829F8A41B13B5 - -CA4EE8983238E0794D3D:\ -D6DA42CAE5C664F3C4D597CF6CE1DDD7:34BC5F4E77FACB6C05AC86212BAA1A55 - -A2BE70B5733B045CD33694:\ -93990491923BF761B3220C1E45ACD359:B3AFE2F0E49E4F321549FD824EA90870 - -D4B28A2954489A0ABCD50E18:\ -9B14531370EE1EFFCF5A3BBC2161D25C:A844AC5BF38E4CD72D9B0942E506C433 - -AFCDA3847F2DADD47647DE321C:\ -EB597AD53F1B208B4FEB5C20D78545AB:EC4AC430F62023856CFBB20704F4EC0B - -B920BA86C33E05F1ECD96733B799:\ -91C3626B64EA3B16E15C2F9B32189C68:50A3E314D3D934F75EA0F210A8F60594 - -01BEB4BC4478FA4969E623D01ADA69:\ -F6251F1A89FE388121DED78B8CA9FD7C:6A7E4C7E5125B34884533A94FB319990 - -325744EE9BBCE9E525CF08F5E9E25E53:\ -E55A004723589CAA843140BA5AC52119:60AAD2B2D085FA54D835E8D466826498 - -D9A8877565705A8A3F62802944DE7CA589:\ -53A217151AA961BBF0C7AD4AFDCB9B5F:4E5759D351ADAC869580EC17E485F18C - -0C66F17CC07CBB22FCE466DA610B63AF62BC:\ -CE21D27F4D455511CD327D205853EE85:83B4692F3AFFAF271693AC071FB86D11 - -342D8DEF4F89D4B66335C1C7E4248367D8ED96:\ -4DC9B5ED541B7382F0FCC7CFAB5AAFE0:12EC453902D8E50AF89D7709D1A596C1 - -F41F95AA82CA6C49AE90CD1668BAAC7AA6F2B4A8:\ -2FB0B595042C8D7AD592583D7E6C76F7:CA99B2C2372ACB08CF61C9C3805E6E03 - -28DA4CD76A19EDD2D3994C798B0022569AD418D1FE:\ -AC464531064DA66A2F8591AFAB2931D0:E4D9CD45A391C601FFC92AD91501432F - -D4A628D05B1663A1BABEA82646DE1005197A63C1EB5C:\ -A16EADA7B6D32D01FE75759FB6DE2E1D:F466C626BC51E907F0BDAE188D092EF1 - -ABE8AF530FF6311FFB4B995F0C84BB00EA8226A7D30FAE:\ -7D980A5E6DA633CE4FED22E815A1C5AD:C3CC5CDB5A660A4B11F2FA6401F09621 - -ECE1BA4BED3F06ED298813D05B237F1EEFDBFA4941049452:\ -425497C221479FC5696D3078D062E725:F68FB7F87F4D196B2ED3B61B12BD083C - -451B0CA13E8BBF2E67B977A8BD0CFBB49BB2AC1AFFC5862D98:\ -90029A6EE195A0665D02997A844BE499:3C48ABF950E73F6BF3E0AA7F9FD8E659 - -4F8E165B89CAF63B76113A3B9767D4D3AF7FCDFF660C6B59EC15:\ -BCA39FFF3C95AB00DACF2B2A9A37C7FE:D88BEDBEE43C4DFB98D6C58E123C9F4C - -7736B44B0A63CAD76330E3CE8ACFE3625AD0213F0C6E3AA444FF33:\ -D55DC707BA4568B0642E3D70116308D1:563BD2A3B30957FE13BAC9EA1DF9CDEB - -839CCEE6F69E0735AB756F4FB96F8210AA55B35D5E0A5C71C4255BE2:\ -295F3F2DC91B300874147AADBF2132FE:1E28CDA2C49C88BA3A8FF0E5045F35BD - -CEB7CD790C80D66A8A32DB4F573631765EFE18229AA0DDD52FCDBA332C:\ -049AE1796CE825B2ABB88AA1EBE8D7D2:EFF0FBA7BE74B33E4A1EC97DF918D430 - -494A8E4762B1E2028EB7315B7164876155820813F6BB5141D91ABED33292:\ -AD921BBF28C028B76D9E1B4F92D36DCC:037BDD91C33F42A542D05C732BCDD8B3 - -2E2D3536402CF2916DCBAC2B9EDEBDA15A9A331DDA75C21C461E8F71EB6724:\ -952D487FE1B8A1F63B26B2027217AC14:1A945A50D4864266F30E121EACF0DB4E - -4A76816750F6296C3C47FBAE3363D24DF72C9DCCB2E032A5EE44C39A349FE87F:\ -ED1B41F593FF135A1E6DC7C85A2F1A2B:1569E6656010D19C57CC4A8A2F1DD727 - -4975F3FC5525A1436965DD9D04C61C192F037E8F134F2C6A1B76F54B93CC72DD41:\ -29326E91479F46720D9D1B067B10E617:65D9968A7AD9F3DFB790E37DADFCACB0 - -7A3CC3C9682DE5DE223072EFA24F300728C791A2A08482571465D4C1628171DCBD34:\ -440A055C9D93DE336B725E0FAE8BCB3D:A625628B0384BB75735DC4A464EC6BF5 - -8F0B7911638D76374FD8B8C0B575F55B9A57E69EDBA1134FFED8F362C45E575369D064:\ -345B392931218A9395F08BD1A45A9B43:CC5DDB04ACB3BC6D683262C3CCB9A96A - -944A7EE34856D6AA1A34016E9ED1D26A2FAD6EDB612B48C95DAA8D29633694F88112DBC9:\ -2D49E335B07A2519287CDA50D482FC48:68B27482E675F08447C3EF76705D51D1 - -889A9BE544280FA85EA3A0DFB57BA91D2D1D9F14929098D953874FC3E5A1956D3B30537F58:\ -900A6FB8FD5661FF12B7F391279DB085:6227B605C796BA433FD7705C7684EE06 - -1DC859A4171D89B8B2F7F3E24A733AAC9AF0B162866BA5C5421521B89A10BFB7D8185BEF35E5:\ -096DCD92F3919145B298201BC3820612:A8E7DC9BC9260E03D2A9F4830B7AEEB0 - -4030C561E85F71A71649C07239F557E1DD337CA6\ -598BAA2B349EAE3F189CEF58CCB4BAB4142B5C:\ -2E8B2AF6CFF3FD6AF55898BC1374609D:2A751C9CAE11F38FEE260B957F963FAA - -CADD5809F5F4F84EC0AD0875C133D1EBA8ED8856\ -FE7BE5EDA2F1822187C1CC529E245B931954E1D9:\ -351E0741D63B5CCED0131A483C3B89F0:01E94EC21D1FADC50C351C0BB101F853 - -F27A747A3B40CCD965276C7E7B4E577C37A63E54\ -C5EC1AD22136DDD237D5252A4F9AA48ADA70633F97:\ -5F144222C4B8C33CA82A85CCC177A0AF:CFBD131D158F55BBCEA980BAC352DBF9 - -2FAE3104D35B536DFFDD486F4087061045192D5A\ -A98215772C9531EFE80CE917BA1A1C8E756FFB744D43:\ -5FD061418DDE0BB0A8A3E6A4FD5BD2A8:E38DCBE99D1003CB6AAC4D7F23791454 - -69FC6052141B6C30A9E19FA455ECE8387AB32117\ -C324E22DD030ACF3A9C04712BDA864D1C3D0016CB1A010:\ -73E376B5D0B9466453438B5CEFB27EEF:068DF83E07AB601E6E84019B55314748 - -DA0890EDC5385196FB229767D33777DAC47018CB\ -1B78EA8AFDEB25521C6D9AF6752AE33A6235D05D5767C42A:\ -03F54C4F6B9E5E214BE93289CB2F2D4B:9E3C0463AC1D2EC7951851920377E41F - -E47F1659A9F9930C2E636985CA2EB0686AB4CB16\ -D1FADD67122FF916A6DE358A5D4BE30645761273D97CF9A3AA:\ -9FA99D925751C9613D3A8D42E3B604B0:A90B145DD72A2FD10796E3368FF9DC6D - -2F66CA7A49D1BFBFE333985F2C3B09D5471D321E\ -4761EF4FF7D28587CC62F4FBC8BF75129035D173686AD394A5DC:\ -BF0557B787C01A589BBD6EBB83F3A330:69ECFA9B0A41FDF990F4CC167B987870 - -# First 4 vectors for each key size come from a paper, they were -# generated by Eisuke Kuroda and Yuki Ohira at Ibaraki University. The -# rest were generated by me for the EAX specification. - -[CMAC(AES-128)] -:BB1D6929E95937287FA37D129B756746:2B7E151628AED2A6ABF7158809CF4F3C - -6BC1BEE22E409F96E93D7E117393172A:070A16B46B4D4144F79BDD9DD04A287C:\ -2B7E151628AED2A6ABF7158809CF4F3C - -6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E51\ -30C81C46A35CE411:\ -DFA66747DE9AE63030CA32611497C827:2B7E151628AED2A6ABF7158809CF4F3C - -6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E51\ -30C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710:\ -51F0BEBF7E3B9D92FC49741779363CFE:2B7E151628AED2A6ABF7158809CF4F3C - -# The rest were generated by me and are non-official -3B2E8F8C7838FDE9610CE6FCC10F854AEAAE3A2184832A:\ -6B642B7D118A78A160B7EA0E11789A99:8989DA29F037D54809D39E0F21BAD66B - -9951105BBA18783C1AF2DC8F88A9B98C9E9C5502A1CEE559:\ -7C05D6851E344F0F725CE228A5E91F40:2903F5E3C9630579E3B7F9E97E141494 - -94D6C4C8EF018F83115A27B01218A7CE29A715FE32C90AAB84:\ -1C10A73B946DBFABCCBB21C93990AE5A:F7BC110047D58BB40C79BB46697AF357 - -DB170C579267ECDD54DFE24695B56459160530EB62EC7A9489A3:\ -C27600E6310E45A698C5F5F8BEDFB6DF:1EC461A0D7D45DBB8F329D28FD1120BF - -52ADDFA309053D90A9C807EBB9B85D28C8BD6F6463247B20726170:\ -03E0A715698908157EC2CF38A818092C:726F0F60469CA5B517BD4EE64FEC2198 - -B47B761A8FBA35F68E25B097A17191F2A9DB4D34162E1242BFEAED88:\ -97442B172B28A4C98BD1CB2A4D1634F3:FA51384A5B8B3BE1DD2C91D8ABC9E262 - -264D32E2A14653254743926ADB7CBB4DDF1C55DD0F24429DBC4BCF718E:\ -A6945844614FB76BDC75BD488637E34D:5171636008FDF3CF658D980932B44394 - -BF685A96FE74FC30B14285B1479A1591D92CDAE6BBBE678A193D3AB7B360:\ -022D9710FC7641F76728136323870565:644A3F16490C8FE381CF5BD6B09E7525 - -415D0574EAAE71B878EC707F50A850A196CE448AB4274701CF27CD0EF5A2CC:\ -C9CF027DBAF268A9B7304AA8E3F5BAF3:D151ED7EA3F4E6E3BD4DA7E0CC3FCED5 - -A39FA8261CD507B473C53E7B6BC2A859AF5A1E7E38F3938230A23470E7DAD48A:\ -79171CA85E8F2821B0889A259491CFDB:2DEEEDB2C4CEDED515493D0EB23F45A6 - -F688810E10DCFE4A64:61364AD45A2E15C8EE119CA8C36FBFA9:\ -D5505FEB66C306AFB167E1B240682C1A - -C280CBC1:76EA6672EEE06EE1050365F4CB404D66:D1CB929113E995A13D9E0B5FF068CF2C - -F610:5AFE8C966695BE3B4FCEA22F5C27B059:A7A252D3AB457702263B837F48814AE4 - -3D5E:41246CF56814027408D33634109C9C9D:7B3ED445B003A4839266B017B7F8226D - -741D:BB170239A6A86DC4906F8FA56222F883:25F10513DAC4792CBC0A76A1603E3CFE - -2D225860EF0FF7FFFA2040C60077560E5AB737B9F9AA689C11B35480AEABBCDB\ -CD143CBD2433BC1E54FDE454743B63CEF29A87EB44EF8756A2DBD651:\ -D36509415886167C44D9208EF5DB4C5A:900EE360285E4273AFA3674BB76FFB57 - -DDE273DA5EE3F41B370A7C10B706FE82AB82E7813BA44162EA99514218C3A4F5\ -A517CF03FBC41E32CE9A4385A141074CC3EECDFE930E607DA8B1C0C07464B61A\ -7C851D77493CA918D6EC9D772DA5C3F19391EF269F50A44701640876C8BE9044\ -43AD:DE5E5B64B403E3772CCB13E175C734FE:\ -EDCBA48465D6B8BDBF274658EF587F72 - -85380139C424704AC24497634E9CBFCEE21E0F99CF3AC8F9C6AE2D6FDD091363\ -41149C05380C4FFA50E65D9E831D6C653B7BFE0BB5C6047C7431EB513AFEB47B\ -1250804B5DD045ADB6A34C39C0B89EFB349C06E9620A65D63C5028764EDCF261\ -2D72AC8A42F137F9948332543CD150706D5659D061BFA69D0FCE135EAB05BFD8\ -786B62BA5C99B3F11DE64559B795C924EC22F44DE19BEAF169FD4F14030EEC7B\ -794E35D5E8E9C6:\ -3015A6D16CDDF7E1E8C28521F4064A28:FB565C5DB38C2237869ED34CA10A055C - -7B326530160FE8CFFB68704022DE43BBB54FCD83BF4C554774BAC625441C1DBF\ -4F82F06591D8348C40A4CD6282101D3860EBBB1F371166ABCB2DD00F49EDCF98\ -6FBFFD0197328DD7D65A39596B5791CB424CEA795D5024287DF438C7E1075F50\ -C65D515D8FDF3465396DBEA4C44F6F069C597FF9AAA32227:\ -39F2933F156616549749CCAEBF682322:\ -0398D70C12CE6F7ED28828647FB18A56 - -[CMAC(AES-192)] -:D17DDF46ADAACDE531CAC483DE7A9367:\ -8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B - -6BC1BEE22E409F96E93D7E117393172A:9E99A7BF31E710900662F65E617C5184:\ -8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B - -6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E51\ -30C81C46A35CE411:8A1DE5BE2EB31AAD089A82E6EE908B0E:\ -8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B - -6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E51\ -30C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710:\ -A1D5DF0EED790F794D77589659F39A11:\ -8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B - -F4FF3C7E2F56F4:E1D41EC244EBC98373457A95685D0EFB:\ -76BF48A88F0F5531C4D1A14846742CE39B8D8827F863ABDA - -E2C0FFB463EF4B6EC114322FAFB8:D25D89E8CE9685D975C645FB2A19E50D:\ -970BD2C9C46E9B85E13949E13D39B466A8070F40570D1070 - -[CMAC(AES-256)] -:028962F61B7BF89EFC6B551F4667D983:\ -603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4 - -6BC1BEE22E409F96E93D7E117393172A:28A7023F452E8F82BD4BF28D8C37C35C:\ -603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4 - -6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E51\ -30C81C46A35CE411:AAF3D8F1DE5640C232F5B169B9C911E6:\ -603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4 - -6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E51\ -30C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710:\ -E1992190549F6ED5696A2C056C315410:\ -603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4 - -B664B2C219D625DC472EC765605E6D5822681C5E9FFD10645B:\ -3FC310BAF6F1A39FA25AE7DEA104EDA9:\ -19449A56180CB52462C37109EA1D329708F7C4FBC43B37E1B2C55E38F5551C0E - -6540E334A0024EFCEB621E91B94AB6E5A6D4D085D986410B113A5B6E319B9D96\ -DC80CA7C8319786E7B96FF34E0B6:\ -DA97AE2997EB3E74B35C6A6FD5471F8C:\ -F0D16D00B5CF601F1A5BE91422A5562C252C5C1DEBDF05B5BC328BF8505DF740 - -4DD7C1974501D1E454D23C509FE2265BC375CA:\ -CB1C20084C5DACB3270F118633DB4F33:\ -420D2C372E496D403A9F520158FCCDA6D6BCE14E6EAD2B90918B919E5E8621A0 - -# SSL3-MAC vectors were posted by Thomas Pornin to sci.crypt -[SSL3-MAC(MD5)] -00:A856430AF077AE2C328D9FFE4E56813A:0123456789ABCDEF0123456789ABCDEF - -01:96279D16E7812EDDA2EC64DAC996348F:0123456789ABCDEF0123456789ABCDEF - -0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\ -0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\ -0123456789ABCDEF0123456789ABCDEF:475006C7DC7A3F371352D948B4BE950E:\ -0123456789ABCDEF0123456789ABCDEF - -[SSL3-MAC(SHA-1)] -00:DD2BA1F4A721F22C8A9BA7350B5CD6838B225827:\ -0123456789ABCDEF0123456789ABCDEF01234567 - -01:CD6289A1FEC0BB104C271BE488343BA92328B073:\ -0123456789ABCDEF0123456789ABCDEF01234567 - -0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\ -0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\ -0123456789ABCDEF0123456789ABCDEF:98E523EADE38B3BF4EBF51D7EE814316C9EB3159:\ -0123456789ABCDEF0123456789ABCDEF01234567 - -# From the NIST submission package -[HMAC(BMW-512)] -53616D706C65202331:\ -7017DB5D590A803ECDD0E87818083D657BB85636ED039BAAD3185D8CAB82E017\ -2D1957757D6E5E2F288D43E032635E8FC4B9FAA9FD445CB1161F7786D805529F:\ -000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\ -202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F - -53616D706C65202332:\ -CEF9110B1F90A24080C8CE794FD922F8669A1A0A74299DB9789D9BD9CCC8BA7E\ -9438BD2383F14D3C9278FDB65C0A3FCFCBF2EB570C08588488F5F9AF428D8F67:\ -303132333435363738393A3B3C3D3E3F40414243 - -546865207375636365737366756C20766572696669636174696F6E206F662061\ -204D414320646F6573206E6F7420636F6D706C6574656C792067756172616E74\ -6565207468617420746865206163636F6D70616E79696E67206D657373616765\ -2069732061757468656E7469632E:\ -8519939233A4547258AFB322FAABDECFBE3F99B83CD0F760944B3F9B9FC0CD2D\ -BBA98A069CC267CA80B53D9BA6D9E89C5A02173C661E5E715902D5F5B23FEA9F:\ -505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F\ -707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F\ -909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAF\ -B0B1B2B3505152535455565758595A5B5C5D5E5F606162636465666768696A6B\ -6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B\ -8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAAB\ -ACADAEAFB0B1B2B3 - -546865207375636365737366756C20766572696669636174696F6E206F662061\ -204D414320646F6573206E6F7420636F6D706C6574656C792067756172616E74\ -6565207468617420746865206163636F6D70616E79696E67206D657373616765\ -2069732061757468656E7469633A2074686572652069732061206368616E6365\ -2074686174206120736F757263652077697468206E6F206B6E6F776C65646765\ -206F6620746865206B65792063616E2070726573656E74206120707572706F72\ -746564204D41432E:\ -44FCDF6C712B75BE3CA93EB2F98ECEAB23D7C5A3839C2D267CFE0A9A202E7375\ -6B8B30882D94725A82D2C705B5256154231EC14756CCF4A7132E911CA24C1AAB:\ -505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F\ -707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F\ -909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAF\ -B0B1B2B3 - -# From draft-ietf-tls-seedhas-00.txt -[HMAC(HAS-160)] -4869205468657265:\ -F5B44115A53F716B6F488DE1098EE7C251418623:\ -0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B - -7768617420646F2079612077616E7420666F72206E6F7468696E673F:\ -A74547C1EF0AA147C7428AB7E71664549BE2A412:\ -4A656665 - -DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\ -DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD:\ -E4C91BC71782FA44A56BE1A34AAE167E8FFC9734:\ -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - -CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD\ -CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD:\ -14D1055DA875222053BF1180BBEF8892EBA3AC30:\ -0102030405060708090A0B0C0D0E0F10111213141516171819 - -# The RFC has this one wrong -546573742057697468205472756E636174696F6E:\ -124131A293F1FDF3D6B11E2B7F7A1F5B12E42D58:\ -0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C - -# The key is HAS-160(AA x 80): prehashed because Botan's HMAC accepts -# a key of at most 512 bits -54657374205573696E67204C6172676572205468616E20426C6F636B2D53697A\ -65204B6579202D2048617368204B6579204669727374:\ -63750D67AF40E3FDE33526545D300972A1527053:\ -A766901C8630F7DB3A3FC2A9747A6E2593452BE7 - -[HMAC(MD2)] -50752120507521205075212050752120507521205075212050752120\ -50752120507521205075212050752120507521205075212050752120:\ -3CC6A661CC76DC9A617C967EA7E1CDC7:\ -FFFB66FFC4F304CBF3B2A3E293D856FC3B30A9DF82DF3D17DDC300215A89CF23 - -43617264436170746F722053616B75726120346576657221205E5F5E:\ -93B02F8CA34C52F33A9BDCD75D3558E7:\ -93837AF03A1378796B2234EF3CA009AFEE599FE446EF7B3043BA273A5A4DD9 - -53616B757261204B696E6F6D6F746F:3F0EFFE820B7F02939656A3092F9E657:\ -17DB32EAA8FF99C81EC3C063915A122A51FD32D70C76DB07D788 - -[HMAC(MD5)] -4869205468657265:\ -9294727A3638BB1C13F48EF8158BFC9D:0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B -546573742057697468205472756E636174696F6E:\ -56461EF2342EDC00F9BAB995690EFD4C:0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C -54657374205573696E67204C6172676572205468616E20426C6F63\ -6B2D53697A65204B6579202D2048617368204B6579204669727374:\ -6B1AB7FE4BD7BF8F0B62E6CE61B9D0CD:8FB6AB01840023EC453ECDEC73DC1B66 -54657374205573696E67204C6172676572205468616E20426C6F636B2D53697A65204B657\ -920616E64204C6172676572205468616E204F6E6520426C6F636B2D53697A652044617461:\ -6F630FAD67CDA0EE1FB1F562DB3AA53E:8FB6AB01840023EC453ECDEC73DC1B66 - -[HMAC(SHA-1)] -4869205468657265:B617318655057264E28BC0B6FB378C8EF146BE00:\ -0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B -546573742057697468205472756E636174696F6E:\ -4C1A03424B55E07FE7F27BE1D58BB9324A9A5A04:\ -0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C -54657374205573696E67204C6172676572205468616E20426C6F63\ -6B2D53697A65204B6579202D2048617368204B6579204669727374:\ -AA4AE5E15272D00E95705637CE8A3B55ED402112:\ -4CA0EF38F1794B28A8F8EE110EE79D48CE13BE25 -54657374205573696E67204C6172676572205468616E20426C6F636B2D53697A65204B657\ -920616E64204C6172676572205468616E204F6E6520426C6F636B2D53697A652044617461:\ -E8E99D0F45237D786D6BBAA7965C7808BBFF1A91:\ -4CA0EF38F1794B28A8F8EE110EE79D48CE13BE25 -CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD\ -CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD:\ -4C9007F4026250C6BC8414F9BF50C86C2D7235DA:\ -0102030405060708090A0B0C0D0E0F10111213141516171819 -DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\ -DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD:\ -125D7342B9AC11CD91A39AF48AA17B4F63F175D3:\ -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - -[HMAC(RIPEMD-128)] -4869205468657265:\ -FBF61F9492AA4BBF81C172E84E0734DB:0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B -CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD\ -CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD:\ -BDBBD7CF03E44B5AA60AF815BE4D2294:\ -0102030405060708090A0B0C0D0E0F10111213141516171819 -DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\ -DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD:\ -09F0B2846D2F543DA363CBEC8D62A38D:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -546573742057697468205472756E636174696F6E:\ -E79808F24B25FD031C155F0D551D9A3A:0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C - -[HMAC(RIPEMD-160)] -4869205468657265:24CB4BD67D20FC1A5D2ED7732DCC39377F0A5668:\ -0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B -DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\ -DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD:\ -B0B105360DE759960AB4F35298E116E295D8E7C1:\ -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD\ -CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD:\ -D5CA862F4D21D5E610E18B4CF1BEB97A4365ECF4:\ -0102030405060708090A0B0C0D0E0F10111213141516171819 -546573742057697468205472756E636174696F6E:\ -7619693978F91D90539AE786500FF3D8E0518E39:\ -0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C - -# From draft-ietf-ipsec-ciph-sha-256-01.txt -[HMAC(SHA-256)] -616263:\ -A21B1F5D4CF4F73A4DD939750F7A066A7F98CC131CB16A6692759021CFAB8181:\ -0102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20 - -7768617420646F2079612077616E7420666F72206E6F7468696E673F:\ -5BDCC146BF60754E6A042426089575C75A003F089D2739839DEC58B964EC3843:\ -4A656665 - -6162636462636465636465666465666765666768666768696768696A68696A6B\ -696A6B6C6A6B6C6D6B6C6D6E6C6D6E6F6D6E6F706E6F70716162636462636465\ -636465666465666765666768666768696768696A68696A6B696A6B6C6A6B6C6D\ -6B6C6D6E6C6D6E6F6D6E6F706E6F7071:\ -470305FC7E40FE34D3EEB3E773D95AAB73ACF0FD060447A5EB4595BF33A9D1A3:\ -0102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20 - -4869205468657265:\ -198A607EB44BFBC69903A0F1CF2BBDC5BA0AA3F3D9AE3C1C7A3B1696A0B68CF7:\ -0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B - -546573742057697468205472756E636174696F6E:\ -7546AF01841FC09B1AB9C3749A5F1C17D4F589668A587B2700A9C97C1193CF42:\ -0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C - -[X9.19-MAC] -# The first three test vectors are from ANSI X9.19-1996, Annex I -31311C3931383237333634351C1C35383134333237361C1C3B31323334353637\ -3839303132333435363D3939313231303030303F1C30303031323530301C3937\ -38363533343132343837363932331C:C156F1B8CDBFB451:0123456789ABCDEF - -35383134333237361C3B313233343536373839303132333435363D1C30303031\ -323530301C393738363533343132343837363932331C:\ -AB4884061A159618:0123456789ABCDEF - -31311C3931383237333634351C1C35383134333237361C1C3B31323334353637\ -3839303132333435363D3939313231303030303F1C30303031323530301C3937\ -38363533343132343837363932331C:C209CCB78EE1B606:\ -0123456789ABCDEFFEDCBA9876543210 - -# The following were sent by Darren Starsmore (he has access to a commercial -# implementation of the X9.19 MAC) -3330303030323031393543555354303120202020552020202020202020202020\ -202020202020202054303253454154504152594742324C54535435534F414131\ -3939353032323731333339343430303030202020202020202020202020203330\ -30303031304139354558413030303030333144:\ -DBE9EB0FA03838D2:4061610D85685DB0F4D9F1C8FE15A123 - -E7EF0EC901CCC8E5E44579A25AAE7FB82FA475ACD95F2DE313C5C2B7BCA63BA3\ -95496C9615347CFA7AF59CD4A31C8DD3C0027F9961AD7C75723E2C2EE467D279\ -B13E10C6738CC0ED815DC125794EF8395177D2B2244E27978D53C571BB97EB6C\ -D6FB324987F3360850F72DC9462502979DD449C1227158AFC41E217FB50CEB8B\ -071ED48E110A966102C42A48E92CDF860028482299A0D25EBEF3DD74FFC9FF06\ -E7D494F8DE2A59E0EE8328D8AF075EAF30A6D1C947A3270596057995CE799BB5\ -4D2FAD2B5A060C48893420383C7FE76C25B8356C5C5D72F262EB88306423E5B1\ -5392DDAD98E9F521:83C4B075AF24AB7C:BB296726F91480CDC432AB3067536EAB - -12916051C77047C9EFD1E3A43D0086D9899AA28818BCCC5D8B5A0A848682F898\ -1359E9DAC931A4B902875D3F87E318107DBB98967765F302BFFD8645807FDE93\ -D8C76EA1F8125AFB99B83A209B5331190EC9AF852EA287EEA00D33208C11B364\ -D92106D13360CCCC1807EDB45A1ECD68E77CED161E7404BE8137DE0E49927222\ -B378F3E7D9C0B3F1C7A0A521BE7289A6EE76BC0DEAC0CB6BF7AA79403CEC62EF\ -6456D63D168A2FDD2AD4FEE947878F35FD4B42E70B0E5202B8CC43F4B8A5E31C\ -FBBA5A114489EE6E5DEC57A473E6DA70311C573C2AAA3FE2:\ -31174049F029EB36:214B48AB97E144F1005831C8C97B8EF0 - -# MARKER: KDF Algorithms - -# Format: secret:output:salt:out_size - -[KDF1(SHA-1)] -61736F67696A6F7367696A736F69676A736F6964676A6F696A6F736467696A73\ -6F6964676A736F6964676A736F696A:\ -A0D760447F105CE64DB99FF2FC92F961F24E7D9C::0 - -61736F67696A6F7367696A736F69676A736F6964676A6F696A6F736467696A73:\ -A0D760447F105CE64DB99FF2FC92F961F24E7D9C:\ -6F6964676A736F6964676A736F696A:0 - -61736F67696A6F7367696A736F69676A736F6964676A6F696A6F736467696A:\ -A0D760447F105CE64DB99FF2FC92F961F24E7D9C:\ -736F6964676A736F6964676A736F696A:0 - -617361736F67696A6F7367696A736F69676A736F6964676A6F696A6F73646769\ -6A736F6964676A736F6964676A736F696A0A:\ -DBFEFA0EA12D352C4AE5B0AF17D061E0E2C469A8::0 - -617361736F67696A6F7367696A736F69676A736F6964676A6F696A6F73646769:\ -DBFEFA0EA12D352C4AE5B0AF17D061E0E2C469A8:\ -6A736F6964676A736F6964676A736F696A0A:0 - -[KDF2(SHA-1)] -FD7A43EA8A443C580C0DE618ECC013704505EFF8B5A4A9:79:BF0B2ECD1724A348211D8C0CA7:1 - -701F3480DFE95F57941F804B1B2413EF:FBEC:55A4E9DD5F4CA2EF82:2 - -BEEA23BF806E106D0C91F8E87095AB402C433C581088E1236FD20564A8F1AF67DCD2265C40:\ -78F8E7:36C94DC7C2353757E0778323B3DB333BBD57AA8F5C:3 - -5A6999A96594B0989B89CA72B5C0803043D4DE78709B490EB98610:\ -84C92008:5F0F820B69ECA512:4 - -C6E227F3F9BB5227BE37D6CE7433022D5F0DFFE18C5777EBAF396F1E40C4:\ -F518EEE6F2:CC06A6F3F9A0AF4CC76D839D:5 - -CD6356CA771E3FCC4BB548B4E6EE4E3715EB7A4A806E4967B1:\ -E72EC27D6A81:221DA543:6 - -B7FA7917A833B0C0364FAC414D92DA:8E54D1C86DA8A9:\ -DC32AA175531CF88C8D55A51DA5CAFB314A92C2B52:7 - -8A14:A2FC623645F9AD29:65A907357B5CBADC5C5EFF7065AD:8 - -135FF7296DC87F5775B64F8CFF46D366C10A8A98712345CE58CD5839E9:\ -73036FBD1941C7955E:A439FC03312570F9A4C76E5B17FA:9 - -AD499722078DF83AEC1EC23A507B190740B0A6821F8C:\ -A461A98B6BBBB0FDB0BD:3772601ACF052CD530D91EC7:10 - -CF99B7A985C223BE83F999D7:735BFCF26A4357F5642964:\ -055396C3E0EE8190DBE10212AE099FF0BC0A8D:11 - -B640D21A1FECF5E61D79E1E09C2393915D5790EF8080E7F6CC18:\ -6DB9BAE99803B2EB725FA8B3:5AE5506D6306:12 - -F69885268F3DF8488490419F49CD39A54D0D8C9A3861D375A8BE:\ -2A1EB238B7CB39422DE263E4FD:C1:13 - -DCF4DF1F6B5D71DF98ECFFE8A4B7C5E7234AFC10CC0C941D853BFC32487A:\ -FCF8D9D4E43318EFC0056EBCD271:\ -7F246E5F44DABCB5B954A1B83D456F022C924D29A21935:14 - -BD2EDB4CCCB0ED3D01BA03D1A816425E40ACBC7F214126A6775AFE28B0B2646DE040B9ACF0:\ -C669ECC95557FE8E49457576BDABD3:\ -A7E9F261EDC30903056744B123C3D364E979:15 - -3185AFBCFC621B6F9FFCBB75C7E71A4161A0AA39278676:\ -687481BEF8354C8D48D8F5A5F3D9ED3D:80834249A9A4CFFCD655AB92:16 - -15723A13E56CA0FF5EE43D8A4BA8284B4A946D861F:\ -439082061EBAE065C434932D981603AE1B::17 - -92167440112E:3A5DC9AA1C872B4744515AC2702D6396FC2A:\ -45A9BEDED69163123D0348F5185F61ABFB1BF18D6AEA454F:18 - -208AA86616B4133903946BA8:A267CC65619C84EF5FE1744EC3A92A06B99399:\ -CF08208B76D97F:19 - -04879F0DB43E33435D53F0DDDC72BEB957F04F2CA5E8FB38DC4F78:\ -F46E2675B807CC42FC1DD4C84A5BEA3AC175B093:2B688B3F6C12:20 - -AAF175079CB9CD462EB2D4D62440EF18B22AEF1552CE5F04EF0158C177572D21:\ -5A3796C9045712759E6DE769E5049E5829408615DC:\ -48A228E55BF52B89A8FF5FCC3F4EE4F178D406CBA265CF9166:21 - -901BBA708DAE7365ADCCB7AE056729B5DD610226966B084A02D1E8:\ -8A397BBA8EA862DCD004897304B901784513754E9FF6:\ -3FCD4A2A5D65E4CDF29241573F:22 - -D20CD658:5C893F99FE81F1E955F2A7CFEC4F50B7CCC890BEAE4768:\ -17D7E5C9E3DB69B28EC9:23 - -B669EDEC3D9A78:1A4DD8282E8B4D7A739030FF60CD88C4D3C0E5C3A0DEB127:\ -D072D0:24 - -349AD0D9BEA0D29C:678051858CED59674C06B60EE21D18ACD55C10B049B22F5CFF:\ -D4C8D8DB185F7EBBEC046ADC49A26DAA172F81E3:25 - -B809759B369EF9B2F34A0254AAE645:\ -1C2C3C95529E4C8E5677F714E122A2E348810379B09689FA4B30:\ -D3EF4B914359E78F253FFC8B9B6D711E257B94:26 - -20216E8DCC3AA461F9FEFA4BE06F3C63BB:\ -A24D44F5194B4257B92CF85C8493B5BDA52515E18337280C45F005:\ -AD13544336F28B8F1B2615BB9658:27 - -40923A6409592A370301A859F1E797:\ -4C8919843B73BAA06853E1C8D9D4B18518CD857A624BE3EBBD507BCF:\ -C3D9FCE8C68AFD0F97D21AAE826ADC1EAB6F580F78B139B0B43B58:28 - -26541874BEBDA8DB76CCD60DE28E65E91CC5F128B9C56F6609185F108337A4A98B:\ -B16B3FAD79618B39D2FB0983BDE7D3E8C17E2DBF2C2853CE8D92191696:\ -BD1D497AC525F091FBFD7389635DA5284ECE:29 - -5D17A9CFD9994A1CC1F0AAC3C48F60C7DB:\ -1233A118E3B025AF2240F2AB14A61777A1347AE58033B2FFA313946631B3:\ -FC56:30 - -32048974CBE67FE8B4E6C0D4E21035B2A657E7C5E3592A61A2:\ -5301147F08E1D473F82558F815498F7421D8C501056402F77A186779A6C5C8:\ -D6ABF65542:31 - -F4E8338789D14BCD31EAE46199DB1A86AC76B8611809DF4D77279F53CB0F6DBF:\ -90C528975E02E3B5A9970B0074C02A691401A7BCAA94A8B731648A1732806D6D:\ -F7A146807292:32 - -0DE2DADDC876B4B0322B3B995B43B580B4D5DF529F4E29606F825AFA72:\ -41163C646606A0B96EE1FA2783AAD072260670283870BB8A510A693D01F9C0A5D6:\ -BECB7FA1A65C69:33 - -CF00B2A31485DCC4D6F9296D219F4831CE80A0043CA937F9712DCD1C0AF02BD9F0DD7C:\ -EFEAF89E578CFC169570F08452C42157EFB9905D33DCD97DF29A4CD626F9DF539E3E:\ -046259C93952F2:34 - -EE67BFB3A6F4CD:\ -1D02C4CE8D6AF08F2A4E8660718EBF8031C640B7502BE5F1F2EE91CB35241952D63BB4:\ -A85EEB10A12C6B8DE05642:35 - -BC02C1:\ -6D3B84710944B5A4448455C22D5CF21852123816A33269ECB29DBCB10616978FD5200FB6:\ -E2E57EB395:36 - -85B2DFCEC6D020E7DD45933451363AF111346D52E1BA4B168D47BE178F:\ -E43AC0F5353A0ED3C35C1EC0BEA6190C49A9F8925E510DB762441BBAF8B798686C1BE6D84C:\ -CA79147C58E3422803290548BD3999F3738A04A8:37 - -6E757BDFE044D00A96AB79F3CEB27F96:\ -0A18BD32469D8FCA917A80C173C2E01B2C9E2AF978CDE34E5EFF933B563F3B26842778BAD326:\ -:38 - -26E7CF534DAF8F9243C5CE3297D807D1C6B4F0CAB16AB5CED3C737:4A:8AD8F6:1 - -166C66F4B39A17A2:8AEC:81:2 - -8533C513D7D26ECD416DD3DC:030CAC:52474087F2:3 - -E876D64472865C8F4B7F:A83C863B:BA88B207:4 - -15AC949219878463A7B1A6599ED9:AA28AD4916:E79A373588F3:5 - -D288A4BBC027594788F81964C74F:5777F5478B70:06:6 - -84D3564BA0AA5A0DAC7AD62F88D9373B9DB280D026AF0AE5BCA633AE36C24ABA95A005:\ -934CEDC65FDE09:364A60:7 - -5977D030DF4051B9FB03167331C6B6366A0F8CEC71B69FFB1FDC9469B5:\ -F09FE23B9C34EFC1:E734:8 - -26A51955CBF815122460E803F1B399F617A4AE1CEE:\ -17A5BFF10B516A752E:0E33D563:9 - -EFB7C556790493E3C15B513CCD250FEF4BA7878585B8E50E1009C56BB146B5A0:\ -EC92ACB1367E34CF1361:FD7B:10 - -F2EAABA8E42ADCC55CD36A2C78DD0325E55C1B4E9C6BE9F77966BFBD623CD454267FFC0BA9:\ -E0DC1C8E9071A644ADEE46:D8D005AB3A3123:11 - -01A8F53F2BBDFB05D41E9FCCDD85CFBD4BC0502C:\ -1C9D86C49E9F3DBFF9674A11:6E3EAC35BA:12 - -02414433D5734F:EDB45D5FA17F17147645DD8DC2:70:13 - -13EC731CB6C29FC4350FE0DE63FCBB5A6F3568E05250099715795D51C5AC10D89883F44E46:\ -AA07990CEAAB482272FCB3A3AB46:93127BA3F25906:14 - -2BCB12D2E40A5BB81BE4297F9306:3F450384BEB9C9A478F46F051FF152:67:15 - -4DBF180733:0FDFEE8AF8D926763E28AB284C7B8040:54C4:16 - -BD3E9044AD45F1E710529172837597E7BCBC2C27505187:\ -0E4FD5D562490C5FFD0A37588344D86347::17 - -822816:21E8AEDC72151B03D2F9A3E7CD9CA6805FEE:C1:18 - -7FE688:6701CD19F736B12C067D58FBF0D024E695C18B:C9:19 - -1EC869F1476B8C7C537E8B1AC4411A10332A7DD06645C835EBBB3CEFD570A9:\ -F04DCD7617D96283E463511A1A9313006EB6BD4E:F338:20 - -6C78966EAF4DB43ADC3865962F292CDC81:\ -9093D86736C445B12843AD189410984F8B912281A5:D4:21 - -D85C07E05DDA286A4A1B9191A929FBE1D19D:\ -DCB8FF108AAE1B16901CABF9BAF0AFC4ED1B20A72312:\ -138399:22 - -597406:AE58662CFE38E861B289EF9E3146A37393C798BB7ABEE0:D5A5EEBC47:23 - -33460E:6A85B3C6A5A6D0E1734004B788FE84C744BBDDBE42C32ABC:F8A648C9B6E9:24 - -74BF53754034B0DC:BDCADDFCCA599DBB24A2789DEAD088EEA633E8A15A03B65291:89:25 - -F6B3A879AEE95C1604EF005F90D35EC4621F6BE5D52F65F1BF192FAD2D22C223D66B9C8454:\ -9FA401DABDDEFE3B64702DB7395950A357CA32A501E43CF6DFFE:F89A58E89B:26 - -5C90E327068324D80B780A10646E01F1C57D4F67E2BF9322:\ -F95C1618F2F62B9EB4516E0AE68D38658183D30BF3B97B63BBAEB6:C13297:27 - -F88AEB2006224184F1231BF42D63D2BA69C88ACD47C27996232EB2FCF04647E8D03308D6:\ -A7666ACE2515FBF42334F21F48510174CD8944A7397EE0F0BF38262C:\ -55495A:28 - -B98B0026B2D40DD0827B58090D2698140A9CBB3B13F5:\ -ECE9B1E55CCF257F2C7BA2B39BA852DB81FE9B32DD08130CB6041CB349:\ -C1AA:29 - -F8BEF20480916E2762A77D00:\ -1102796B06234073DC6913318D65010A4F4C9E95358DACB3CE0D08857B28:\ -1CE36F6EC8FE:30 - -80C9D5FD0C7BC1278F74975303D1F94600877754FCE3B8:\ -CFE56E573F2933E1728B3367F4EDAA797BE7C843B89250B98C4EB3BAF2E4D7:\ -EA8332DE20:31 - -2EDB67D2CC64BF4B62:\ -52E44DB4B04F9792243508B969FF730779CB2A1EDF764324D11C14235B055D30:\ -38D7ED2715EC6F:32 - -86D77225DB6E5EA176F5DAF433E4C2C804B24FB22F2747FC5D8978189842981F19:\ -02BF3A2F5009054AF526E277EF6AB436BD8B7A53A3E4C2671F1E34556239F97453::33 - -C73E664D445C0C60C59CEF54F10ACEAA456E6BFB:\ -4E984339A1FB20BD73894494B36CE8C1182BCB0D289BBAB3BBBD366B1DD061BB9E16:\ -F8C579F9:34 - -0651E961BA3374DE7248CE52EFC948809C20B8:\ -36AEC134DF567B1FBF448D0C56C6B62E40A375BDC74A2D44E415BCD105B48317145D95:\ -43:35 - -BF5BB2:\ -6F7533ABD09546770D6E71769A645B0D3BFA6D578B7B9B182D25CF8F8B4394C2BBDCECAE:\ -159B4039D67403:36 - -64353C0E4D64C60C3F2FEBE1C6466E57FB28:\ -7B80CD69345CBA9E46186372DD6602F2CB55496364CEEA96823110E28CAA68BB200F56F37F:\ -EF4AAB69:37 - -6FD4C3C0F38E5C7A6F83E99CD9BD:\ -02AEB40A3D4B66FBA540F9D4B20006F2046E0F3A029DEAB201FC692B79EB27CEF7E16069046A:\ -DBB986:38 - -[SSL3-PRF] -6E60:D626B75AB8BD4F5B9458BDDA8589FD39:17FEBCA565786528F84A:16 - -66BEEC6EDE7FCDF50B76EBCD5C0FE0A472F2EA8B1E2BE2971E49CA:\ -EB:5C461D77ACDB631ABAE2E7AFED5E9ABBBAA99B:1 - -1171D78F812512DEFBA258574E41F2832BB9B359EB0CA79E7669:\ -2C8B:73D677854D88F62417774A2A5645CCAE9C1AEF8E9D1B48:2 - -6162DEC990B2132C30C153F2B200:1B9430:2666F0B22E8E48DB1640:3 - -D3C0DD69C18F17D35C5296FE45F0:C7C19FCD:320C9EEC122C19AFB8E90F72:4 - -EE6A733EC671DA7477AE18916895A133CC92E23DBACEE2634846CAEF0B08:\ -C264D9D0C9:B7F9722B37389C11:5 - -97D7F3D2AFB3198862F6FAC8B17CCEFB26:C1CB767626AC:\ -D3583CD13AC119CAFBD44CAEA5AB:6 - -E87A9BBC656884A13295B8D4DD4645905846C249D2470ACD2BE5:\ -3DC5B6402F451C:542D044668EDC104A9266C2EC79EC37F72A0C6B7301EFDF267CF39:7 - -7463F0B9F822E17311E47680DC5B505811E9:FE4B1DA4EDA36820:02AB98439528C994:8 - -EE8999703E5D9C628AA404235F3C94C3A890B1:EF317D3E81DAEF0F89:161DEB5AB705BD15:9 - -AE531918E679D2D7B32C61BA31415484E9725B2905095819:18D5272345C1695BE38C:\ -A162AC0F0AB41CB80735D1EDAEA3C562CF261C0067:10 - -8FE402D6ED0BD018A532FC063E7D81D97CDEA7:D61088CA1CE8944B17CD3E:\ -BF7F091B6E0DDB90897B6BF80A4F:11 - -4279DB52505E7B505BBC26CE0FBF2F4353086C1363:4A84A8E829528393FF890129:\ -8710A8A12B2D18A27A50E5F32C37448A:12 - -B80B58DAB89B1C4D1335C48E479220E253B8EACFD64319544A:1450E50B7D86B76015930BA420:\ -E9158BA5F6E25D013A37B9D65406E989CB77D05D97B2B04F9C7F26DF987A:13 - -965F1BC656F01C1C7F977419A5F99FB54FA34548C332EA79B5B0EE:\ -CEE11A3A9A406FE9DA77FE6FB007:\ -3F6FF94F05596ACBAF5AE7CBD97E3FF3233992D988361E:14 - -657B5F618710AF88BF4F0328E7071D022D02EA5E:8EA957C330D55CC208326CEA06D25A:\ -BD0A575481E823931F68BE84E31DE56B2D95F3ECE4F614CBFD31CE:15 - -33CE7917528009F2A1011CFCD494B80D4BBFD901:2FB1FDD16FCE41C9C563226A564D1647:\ -81851CC61D3E910E04D5EC38A465:16 - -40ED568CFC6C0A17866C67B7660C96BF9DA54C:321118AA031C5C9EFF145542B4426C3C71:\ -A3502B96214854E5AF5720E8970D3F240AAB2E21319A88E901:17 - -12695F5B19541C8B0092418A72A7ED8482F35FCC4A82D4E1C5AE:\ -22BC94F745F6E247054DDA2C772E5D2D3EC4:\ -2CE5F4676C06D0CB61E91F7D751F0F:18 - -F36E535A1C2C6F6771:6004BBD20BB68E2F1FFC65977807EE25A3FBFE:\ -290BE26068D887AA6E86500E85C606:19 - -7C7EE43D46AE85D23F0D5264DBD410:0E1FE69316D67CF65D62196C25CC4F517664BD43:\ -FC4A7F986331A012CBDAD765288C2CEC08AAD045:20 - -C580B05EC577F45434C13640AAB31B:937E22F90D1493317B0B068A44859036905540AF67:\ -6C9F5929EA435A86E117BD586B34F7E4F97794573C0B4C90:21 - -E275AEB758A949CBB11256E74412E1DA3743899F9007DD5D80A7:\ -69C2640797F38E87F1C870891164F0B31F1A3A02627A:\ -585B267A9E08EF4DBF48F6:22 - -DCF06E7AC257DA73CC6FC0A086B4:30CCF63491F642A55E45136E42FDD0355DB272502EA1B0:\ -16F0355230F105EB316F558512EC3B51871741:23 - -C4C38EC6A1EA975D0ECA535B0CC4D6D0:\ -3B50F91EDFDD96CBA8B6329616D4F5964CD8C961CB1D9332:\ -E84EE4D9DC701DE04E250768F2DFB9B6A2:24 - -7B557AC16D60B74ECAA87641887E6467BAC107:\ -CA148D27F3DC362B0F43C68312058C1CD9B92ECAC2CFDD601F:\ -D7B9EB91BCDE1F6C144A0799:25 - -B23EFA7FAA11D0E597F00867992CB3B9DA93D607FAC0:\ -510297144BA4E0FB5C94749576F756AA36F51289CA463419DC06:\ -DA5E3A17C6DDE81CC69A5AC11904D2E9E969D9F2D1731E842C:26 - -1A5063B374A5F7769AD59432CFFA6B:\ -3437D8B56E573E724B72DD08A5D144E86E646BD24EA0795BA2C3BD:\ -FE0314911D4C07803C48A9EA86:27 - -870515C65F0AF7AAB10C365AF8AC535E1AA8997D139645A21F71FD23ABBB:\ -1895554BD0A1DE7F48FA8776D314EAE2B9E8D7E3CF2A418D17659DC1:\ -AA33C0BFF91FC9F1C97BFD00D5F5AC2953C6D1EC43E5838887A2F984C5A53F:28 - -1BAE220F6AFEB0A2F51D44721A7A9B9C:\ -13720151D256DEBAAA668359A876A9A9788D540F509E90372952A91757:\ -11555530CBAECFF82C76147416A50831532A40BD29F15F1E0EA49129:29 - -BC55F2BAC14370BB5832575A233F1FCE32322E5B4CE1955153CAF3C84493DF:\ -972B190F7EC73DA7C5B8B38E9B6DCEE452AB0BC2220F37BEA3FAC596B2F6:\ -00E8D1BAA9142A646C5DBCC680FB:30 - -834CD382FBF84FF54CC8D3BCB778ACD7DDE8FE32ABA212ABB1:\ -6151C82D7384ED41264424827766B6A7279593C86DCBAC9A4D711009E30EC3:\ -EE768F1AAF889EFB5B20F7536FECA037BF:31 - -E0BDEBC1D1EEDB393368D489:\ -F3D8ED6D46280C3694F33D2D4A210248D657277DD78ACD3B34063D085657A58E:\ -5D2B46C7BB5258ABC13514995E518FD4D77BECB738D77909:32 - -[TLS-PRF] -6C81AF87ABD86BE83C37CE981F6BFE11BD53A8:A8:\ -A6D455CB1B2929E43D63CCE55CE89D66F252549729C19C1511:1 - -6BB61D34AF2BCCF45A850850BCDE35E55A92BA:5E75:\ -510194C9C9F90D98452FB914F636D5E5297C:2 - -3CC54F5F3EF82C93CE60EB62DC9DF005280DD1:706F52:\ -7FC24D382379A9CD54D53458947CB28E298A1DCC5EB2556F71ACAC1B:3 - -BD3462DC587DFA992AE48BD7643B62A9971928:841D7339:\ -9F6FAFED1F241A1E40ADEAF2AD80:4 - -1235A061FA3867B8E51511D1E672CE141E2FA6:D856787D41:\ -1026B9224FC59706BEADAE58EBD161FD2EAC:5 - -63A22C3C7C5651103648F5CFC9764A7BDE821F:F13096FEED6E:\ -512FBF47D9DA2915:6 - -AA15082F10F25EC4F96DFFE9DC3D80BBA6361B:B637FCADE57896:\ -519B87DB85FBE92FB4070F3BEF6E3D97DF69B66061EB83B4A334E8EEDC0F8E:7 - -775B727CE679B8696171C7BE60FC2E3F4DE516:3431016193616501:\ -453C2549058B063C83E8B85E5CEF3570DF51B7D79B486F4F33:8 - -AB299AD69DC581F13D86562AE2BE8B08015FF8:A624CC363499B1EA64:5569FC:9 - -AE4947624D877916E5B01EDDAB8E4CDC817630:5B908EB5B2A7F115CF57:\ -7FDE51EFB4044017C95E3608F8FB6F:10 - -4F13EB6FBE1FA2FCD7B5B21C9F20980D1986A4:EE73EEE90E35AF2BC3575D:\ -514DBCE520AB34:11 - -41BC094049008CBAE99CAC0BA901D0B2DD15DF:BD859DAE2729A348774146B5:\ -CB6C0544FF8CF74C71E910F2220D54C509DC442CB3:12 - -95751B37945DD9DE515B45927A229AAB40F7D0:FE310AF0913149D53718AC53E5:\ -75318F49A11F42A24AF48267411FDD0831:13 - -FC250F36E5C1365C3EAD122E63F90612DBBDA7:C0107D144E53227EDE5E677A35BE:\ -8A4B5AEA3AC0B2FF777D77B5EFB6E7D8AF:14 - -F6A8A67ACA60F25080100F3F5C928038936E57:A1FCD686295E3DE32C438A8FFD63CE:\ -F8B663768421BA77861F1EBEBF4C8341DC01ED1F7D4B054B7C:15 - -77BF131D53997B1FB2ACE2137E26992B36BF3E:60D0A09FCFDE24AB73F62A7C9F594766:\ -859D1EE9A694865ECC1830C361D24485AC1026:16 - -39CF412177DD47B8E97A4D92D104138CD4E41C:F7D49D2C112F3EE64411F50B264AE15BB4:\ -9CD35F26E8A89C25410B3394A957B781BBD0D190DA:17 - -5C40AF252D0A4F445E638D954993BCB0673281:\ -FDA100D44E2F839C21199A56ACAF57454C21:\ -2DFB810DC9ED5B291754144937E6052666D476D1F5F94C:18 - -2A8B07B082F2A4C95611B20685A4410E90B8D2:\ -A5CCE186AFDB9C0EB664C719DD1A69C1BA6059:\ -320ADFA586F7EBF346646DE9:19 - -BCBD1EFDA490B9D541BA9DF50FE9A451DD0313:\ -2291E19459725562F106F63FE2F81E73BA23F04A:\ -255230A341E671BC31B1:20 - -B361B123993602D0BA62567BF9B81992DB108EAE:\ -A71CB3E9C58E83414D69775CF7127E9C95AF10B7E2:\ -20878A3A703785DE37846086C097619E9823F7FCD2B7B3A9466FA6:21 - -8E7CC0EED8BFF691B370C08FE0DB32D06700B088:\ -25DA6B3027CBBCA4352EFB85D3FCB9060285BC39ECB8:\ -02F3B9155F5CFF08B9F47A2FDC701BA3F08BCDDF21292911D06FC0A5A99B:22 - -041CC7ED27C01A701A0F15269DA6CA6D806B10C3:\ -E3B7F0D721C05663166B43A75F2997F9F029886FC069D0:\ -8E5F4FADE80AF92D495AF5A50C8E:23 - -A7421C0D96D2455E57408C2BF02E86DCEE71B060:\ -46948B1DD4C7977AA7241ABD74A88E7838E575DD34AA9B75:\ -BD2623716653B538C885FA2ED4B0A2:24 - -56DAD2D1AF95F938E073D10A1A779F80BB0F76FE:\ -53B1169FA52AABC427D1C41501B612DF6D726F55DAD9D246E9:\ -D1DA1DEF7BD5C327894B7A992AA7A694664470F642:25 - -4F2E4F77820A686894B90A0AFD0ABA772D0CC6B0:\ -30ED285AE596143BE7998901C2F35530D81CA4DD14E03D17DF2C:\ -062577E22854BAF0E68A51A27644FFB0:26 - -86173BD0F3C5E7052482B53BD8604E197112F3D8:\ -BB3BD1CBFA7889441E930C4B5E8EC7AB00D9612E9D762D42427AD9:\ -12B4E5F24ADC8A:27 - -2B9CE8B0AB3041D6A1803BDD342E6537E40BE305:\ -88F8AFCB8109C7B359B18CCED73A1B09404CC9EABB23695BF353ED9E:\ -517D3D00850F48912B713E653CB4F38703B6A6:28 - -819CB722AA4475D8301A8E24DCD9D82DF2B081F4:\ -83FD6F33AD11819019E086F0683E26D59D57C9E5AF26C81738E44D47A3:\ -56872A31A10E8C:29 - -80F1F9B0D05F41C448E5306E41833918B9E688ED:\ -0C00B5F50565FDD5345C63773D5FCC8B3C8E412DFFF23B95490EFB4E53FA:\ -6175CDE230DF6691F4E8A36B265C53CAD736AD6F34F895D5C6633D66B5:30 - -0AE876A7BB96C24CEFA6ED53CEE7B0A41B8FF7B3:\ -881B99C3E43B1A42F096CF556D3143D5C5DBC4E984D26C5F3075BCB08B73DA::31 - -2212169D33FADC6FF94A3E5E0020587953CF1964:\ -1E1C646C2BFBDC62FA4C81F1D0781F5F269D3F45E5C33CAC8A2640226C8C5D16:\ -FCD5C9637A21E43F3CFF6ECF65B6E2F97933779F101AD6:32 - -# From RFC 2631 - -[X9.42-PRF(KeyWrap.TripleDES)] -000102030405060708090A0B0C0D0E0F10111213:\ -A09661392376F7044D9052A397883246B67F5F1EF63EB5FB::24 - -# Same as above, just numeric OID instead of name -[X9.42-PRF(1.2.840.113549.1.9.16.3.6)] -000102030405060708090A0B0C0D0E0F10111213:\ -A09661392376F7044D9052A397883246B67F5F1EF63EB5FB::24 - -[X9.42-PRF(KeyWrap.RC2)] -000102030405060708090A0B0C0D0E0F10111213:48950C46E0530075403CCE72889604E0:\ -0123456789ABCDEFFEDCBA98765432010123456789ABCDEFFEDCBA9876543201\ -0123456789ABCDEFFEDCBA98765432010123456789ABCDEFFEDCBA9876543201:16 - -# MARKER: PBKDF Algorithms - -# PBKDF format: passphrase:output:salt:out_len:iterations - -[OpenPGP-S2K(SHA-1)] -666F6F:0BEEC7B5EA3F0FDBC95D0DD47F3C5BC275DA8A335A8CAA4039FDBC02C01A649C::32:0 -616263:A9993E364706816ABA3E25717850C26C9CD0D89DDD3742EC1A4D2A5B563A2B62::32:0 - -666F6F:DFFE49EEC99E3530FF75A794773E1F8429A46835925DAED4A27FA2957BBD29B5:\ -698619A932D101BE:32:0 - -666F6F:8051BB97BB42199330C9D52383D1B56532FF9BDFB180BD2BD61F24A25265639F:\ -EFB0A8DDE02BAB42:32:65536 - -696C696B65706965:A32F874A4CF95DFAD8359302B395455C:2AE6E5831A717917:16:65536 - -666F6F626172:9B1D52CC0DA89C9D85B91EC84B6780FB:AD8FC3C853BBB225:16:65536 - -717765727479:67CACC2B4B6F1B76E620748C1E777070:3891D354B8C86161:16:0 - -4141414141414141414141414141414141414141414141414141414141414141\ -414141414141414141414141414141414141:080316AFB4E11D98120B29D1070CE749::16:0 - -696C6F766573616B757261:109D161363DF1E97322112F82169911A::16:0 - -[OpenPGP-S2K(MD5)] -666F6F626172:\ -3858F62230AC3C915F300C664312C63F26E4AEBF38BF1BB6AD49BA54BCACD9DB::32:0 - -616263646566:99C8FD9A0516337E7C0F71563D937B09B14F7E7B6CB53FB56B5B8137E189DA20:\ -B89343B95A46FECE:32:65536 - -666F6F:CC364F2BC41FACAD36E0D45E581D61F707BA925C982BEF7E:\ -760566702FEE54C8:24:65536 - -[PBKDF1(MD2)] -71616C7A73656774:7C1991F3F38A09D70CF3B1ACADB70BC6:\ -40CF117C3865E0CF:16:1000 - -766E68617A6A66736978626F6D787175:677500EDA9F0C5E96E0A11F90FB9:\ -3A2484CE5D3E1B4D:14:1 - -66686565746E657162646D7171716E797977696F716A666C6F6976636371756A:\ -91A5B689156B441BF27DD2BDD276:\ -5D838B0F4FA22BFA2157F9083D87F8752E0495BB2113012761EF11B66E87C3CB:14:15 - -736E6279696E6A7075696B7176787867726C6B66:\ -49516935CC9F438BAFA30FF038FB:\ -F22D341361B47E3390107BD973FDC0D3E0BC02A3:14:2 - -[PBKDF1(SHA-1)] -66746C6B6662786474626A62766C6C7662776977:\ -768B277DC970F912DBDD3EDAD48AD2F065D25D:\ -40AC5837560251C275AF5E30A6A3074E57CED38E:19:6 - -786E736F736D6B766867677A7370636E63706F63:\ -4D90E846A4B6AAA02AC548014A00E97E506B2AFB:\ -7008A9DC1B9A81470A2360275C19DAB77F716824:20:6 - -6F74696C71776C756B717473:\ -71ED1A995E693EFCD33155935E800037DA74EA28:\ -CCFC44C09339040E55D3F7F76CA6EF838FDE928717241DEB9AC1A4EF45A27711:20:2001 - -6B7A6E657166666C6274767374686E6663746166:F345FB8FBD880206B650266661F6:\ -8108883FC04A01FEB10661651516425DAD1C93E0:14:10000 - -716B78686C7170656D7868796B6D7975636A626F:\ -2D54DFED0C7EF7D20B0945BA414A:\ -BC8BC53D4604977C3ADB1D19C15E87B77A84C2F6:14:10000 - -[PBKDF2(SHA-1)] -:\ -59B2B1143B4CB1059EC58D9722FB1C72471E0D85C6F7543BA5228526375B0127:\ -0001020304050607:32:10000 - -6A79756571677872736367676C707864796B6366:\ -DF6D9D72872404BF73E708CF3B7D:\ -9B56E55328A4C97A250738F8DBA1B992E8A1B508:14:10000 - -61717271737A6E7A76767A67746B73616D6D676F:\ -FA13F40AF1ADE2A30F2FFFD66FC8A659EF95E6388C1682FC0FE4D15A70109517\ -A32942E39C371440:57487813CDD2220DFC485D932A2979EE8769EA8B:40:101 - -6C7465786D666579796C6D6C62727379696B6177:\ -027AFADD48F4BE8DCC4F:ED1F39A0A7F3889AAF7E60743B3BC1CC2C738E60:10:1000 - -6378676E7972636772766C6C796C6F6C736A706F:\ -7C0D009FC91B48CB6D19BAFBFCCFF3E2CCABFE725EAA234E56BDE1D551C132F2:\ -94AC88200743FB0F6AC51BE62166CBEF08D94C15:32:1 - -7871796668727865686965646C6865776E76626A:\ -4661301D3517CA4443A6A607B32B2A63F69996299DF75DB75F1E0B98DD0EB7D8:\ -24A1A50B17D63EE8394B69FC70887F4F94883D68:32:5 - -616E6461716B706A7761627663666E706E6A6B6C:\ -82FB44A521448D5AAC94B5158EAD1E4DCD7363081A747B9F7626752BDA2D:\ -9316C80801623CC2734AF74BEC42CF4DBAA3F6D5:30:100 - -687361767679766F636C6F79757A746C736E6975:\ -F8EC2B0AC817896AC8189D787C6424ED24A6D881436687A4629802C0ECCE:\ -612CC61DF3CF2BDB36E10C4D8C9D73192BDDEE05:30:100 - -6561696D72627A70636F706275736171746B6D77:\ -C9A0B2622F13916036E29E7462E206E8BA5B50CE9212752EB8EA2A4AA7B40A4CC1BF:\ -45248F9D0CEBCB86A18243E76C972A1F3B36772A:34:100 - -67777278707178756D7364736D626D6866686D666463766C63766E677A6B6967:\ -4C9DB7BA24955225D5B845F65EF24EF1B0C6E86F2E39C8DDAA4B8ABD26082D1F\ -350381FADEAEB560DC447AFC68A6B47E6EA1E7412F6CF7B2D82342FCCD11D3B4:\ -A39B76C6EEC8374A11493AD08C246A3E40DFAE5064F4EE3489C273646178:64:1000 - -[PBKDF2(CMAC(Blowfish))] -7871796668727865686965646C6865776E76626A:\ -43734BADB91F5D89DB20B469CD2EF376CAABC226EE3952872050428EFB5E3026:\ -24A1A50B17D63EE8394B69FC70887F4F94883D68:32:5 - -# MARKER: Encoders/Decoders - -# Format is input:output - -# Kinda silly to hex encode base64 encoded ASCII, but... -[Base64_Encode] -31:4D513D3D -235C91:49317952 -4142634452313236:51554A6A524649784D6A593D -241BB300A3989A620659:4A42757A414B4F596D6D494757513D3D - -6C6561737572652E:62475668633356795A53343D -6561737572652E:5A57467A64584A6C4C673D3D -61737572652E:59584E31636D5575 - -31323537374343666671333435337836:\ -4D5449314E7A644451325A6D63544D304E544E344E673D3D - -60E8E5EBB1A5EAC95A01EC7F8796B2DCE471:\ -594F6A6C3637476C36736C614165782F68356179334F5278 - -31346D354F33313333372C31274D754E7354307050346231333A29:\ -4D5452744E55387A4D544D7A4E7977784A303131546E4E554D4842514E4749784D7A6F70 - -[Base64_Decode] -4D513D3D:31 -49317952:235C91 -51554A6A524649784D6A593D:4142634452313236 -4A42757A414B4F596D6D494757513D3D:241BB300A3989A620659 - -4D5449314E7A644451325A6D63544D304E544E344E673D3D:\ -31323537374343666671333435337836 - -594F6A6C3637476C36736C614165782F68356179334F5278:\ -60E8E5EBB1A5EAC95A01EC7F8796B2DCE471 -4D5452744E55387A4D544D7A4E7977784A303131546E4E554D4842514E4749784D7A6F70:\ -31346D354F33313333372C31274D754E7354307050346231333A29 - -# These are actually fairly dangerous, because bzip2 could change the -# compression format somehow and still be compatible with old versions, but not -# output this exact bitstring... -[Bzip_Compression ] -:425A683917724538509000000000 - -54484953204953204120425A49503220544553540A:\ -425A6839314159265359FDAED210000009DE0000104000100032604C1020\ -0021A4D1EA0FD2840D03401E19B4D4B254EE89F177245385090FDAED2100 - -# These are much safer -[Bzip_Decompression ] -425A683917724538509000000000: - -425A6839314159265359FDAED210000009DE0000104000100032604C1020\ -0021A4D1EA0FD2840D03401E19B4D4B254EE89F177245385090FDAED2100:\ -54484953204953204120425A49503220544553540A - -# The stream was flushed every 10 bytes -425A68393141592653598BB9F5F700000A7FFFC021D1CE7DF41018B66921CD80\ -681D23A08C880C91110BE808084F8353AA822820007439900068001A00000000\ -03201A6D2064D82870000D3201A34C469E9000001A6269A7A8623200D1A63D70\ -DF4E435801FAA9C3CE54096593D38853A1E5A8DDD43585C763E592CF011C0D5A\ -956B48C7EC1D405F5B90DF441E168AA02C6D25E179EC44D02A2691295F38ACE1\ -201DE855B2B543D8944F805514C8D6971908389F4520A130AA848329C6BEDC53\ -3F8BB9229C284845DCFAFB80:\ -2328B92CB5578B4B87D7E07F7457E0DE93268B5FD5720F484558D057A600E9E6\ -3B9B5B5669179FCB2CA6415EDDD709223F201CF527E55C421BF916689C207E48\ -18BB3AE0AA29D3C31D12268FB51044A673816B218F49EF1B51AED3231CED7DE7\ -5FF5B532EB8B1BFB8CA2242AF9E9E226D4D629796B76749BD4EFB6B80E4EB7B3 - -# Two concatenated streams (same stream, doubled) -425A68393141592653592ED49B3D000011FF00001000204004100032604C1030\ -44200021A6A06431014D323131310BD3A516096617117C90B42C26B1292F659F\ -254753C2DF1772453850902ED49B3D425A68393141592653592ED49B3D000011\ -FF00001000204004100032604C103044200021A6A06431014D323131310BD3A5\ -16096617117C90B42C26B1292F659F254753C2DF1772453850902ED49B3D:\ -54484953204953204120425A49503220544553540A0A41414141414141414141\ -414141414141414141414141414141414141410A0A0A426C61682C20626C6168\ -2C20626C61680A0A54484953204953204120425A49503220544553540A0A4141\ -4141414141414141414141414141414141414141414141414141410A0A0A426C\ -61682C20626C61682C20626C61680A0A - -# Two concatenated streams (different streams) -425A683931415926535980A46FE20000FB5F800010507FFFF07FFFDDE03FFFFF\ -E040031CCC62B5D74143534134C9A9EA683D53D1A4F53269E8CA7A4F51A66A03\ -4343404553FF51A4D31354F328C286418464C020C8D007A9A19E9A9EA8F48034\ -1E89A64C8C43401A1A6834C234C25348200202646D29EA0D0001A3D460D4D016\ -EAB324536379286DA9D72DCE3E1DACF47749AF69757E5E7F6589071D076F7FDE\ -9E3227D8EEAC7D2ADB6C98D82F0FE534F76F9B1D2A498B440E921B0B47D66809\ -2E6AB8DCA972C499399C923849148B4343D2AF95D2FEA63C00953DB38E47A94F\ -993CAC4B48E5459448C69A906B75779D00B5D25D02ECF3E955F77AF7D31CCACE\ -A6D766C9BD447AA85AD393BAB5343CF7BED96AE2F1A72DF6FC512430CBD13371\ -1D442490439C3BDA77C95341F5EEB3269B62608CFAEDEB16968AE0E1C7753E1A\ -4B6DC7ACF5670E4B362858963DA8888EB483B82630B6442AE6C2460FBB95549B\ -CCDAF8408C74F1BE7984FD643E90E35FBE0EDEC19C38B32699CEEC4AF1BB21D2\ -B2E42DEB44718B63CACBA7C9520882C457A828469A102444386BD54E724C3AAB\ -6BF6DCF24C969154AC2D704AB4D123280D1C2646726A2F69EF8C10CB5412918C\ -80EF05771E58BE5827CFB59C95A9068FD0F6021BE2418A8977A09CD734FD5871\ -2F672E76F06F6C612C1C85C4E4E8F432886D8B46075B92428A02519CCDD2C0A0\ -CBC1C1B28A3FAD08281080BA8981FD84B2C5138C44987953B3357F39E35DFAA2\ -D0B582B90F136B2C6DBCC1E7C227C744A85B1672F818E332EFA32AA24B158F24\ -204A1D310B264CE35D24021852F03A6D6B24024046744FB7BCDA68835129EFCB\ -40A4350B66487BB3212310E5AE7330F85643470D99C0D04F9F2A922FA5028621\ -F220B87E422B866CD7A13042D2B564316000ED9504B71D21329B02DB17839B94\ -70D6A6C45EDA5A96A26EC4EE0CED46CCBA3C532CCE19AD2F131AF59A74F56E28\ -41912A2AE079CC91BF7D3ADB3F3C8F733692EC3407388C79E31DD81C239356AE\ -1C673CC6768D429E376781B711EB2CF2D6E488D6419C145B574736BBE8578E25\ -B2125659973504559442A7A2D7C37C244C7E6AA709631308D78C3FD285B08595\ -D32154402DA6254F31403C4B32444507CA1C32A7FBAA86204E29D1DADC046970\ -87253D38C21131CF44661B046A59A1563495044FF8BB9229C2848405237F10\ -425A68393141592653598E46405D00011CDF8008D060EFF71CBFEFDFB0BFFFFF\ -F05004A5AF5C689D74340EB4786A653654F530D4DA991EAA7A9FA8C6A9E126D3\ -534F2469EA6D320C5004553FD3234464D32A7A9B29B536A1900001A06800D01A\ -A7869094F49E840DA80D0000000680007302626830993264C8C2609A69918980\ -218069A1009A9A9E22609A9B530A7A8F53D4CD400D1A347A81EA4DD64CF7FBEE\ -A25B21C0CDA99F572545B2436738C98D46F76CD222194C4E3130CCA4C121330D\ -1BCBD8E1C17D5124E37CC31EC74364E6E0A7CBB3CDC38FBDB2CE3E54E744C337\ -86924DA1B840AC53FAC8D9A4AF92C2671A2FB4C097C22ABF7119FA4D758D60D3\ -5186FEE4CE23643BD62FE490BC123E9561F1D092729E9330CD7C8B612C4381A8\ -CF061D2786C5D544421539BDCA41949E820E7E6B22B757534F25B5B56186B66A\ -C0BE8CAD5C796BBB5624C4B7952CE7AD678D5B5D42CC8360AAD4812E371DCD9A\ -285A51A520F04181EAC5474D793B1CC9C908C25298E50E3456D8C155D94D8C0A\ -2951723DB9DE8F70FB65DBE79EA0FADD0B2BD0DB70935D6E603F1881803B808C\ -659C50F6B5E1292C6323799426F06C759AE61A00B375DFE43EA298E9AACE4F1A\ -48B3EECCD57EFF4BABDA432BCB9F7EB68B4925E7CF8A0EC53D60FA1485ED0BE7\ -F1F4F927BEF419AC8593230DEEC1C823637C078F45E82C407A56CEC38FA30EF4\ -308D37020852624B3A29072212825D954810915F2508CA6515A03269515F46E9\ -D1BEE330901B3BCB6A39B888AA21DDFD5640B417C1502CE17E8BFB683B5DE8D3\ -C78A4A483203260399BB70136F9C127C0A8403EA9A0407E6F4BEB40BCCE0E379\ -1EF0407F4F9292C4F6D78BBD23B360E39447DCA5E52316108A05F81934A26509\ -0D155B7B3081560A412C1772603B649511C31986AC033342E5DC2CBB254E8D85\ -4D08D2550C0E62110F282C21C60B1D9D0A23515259DACAFA59BF5A9EF8DA354E\ -129B880F76A9C542BA8EA2F91A858645E969E0CCAF090083286CC714CE4234D5\ -1758A2301076C932813905A18856FE5D311C8D00D226931EEECBB5CD863A81EB\ -BAD43476102E47614D8822503F274AF08D038BAF65B1E671E73A989FBFAE4106\ -F2F0451EC29C8A1218189603C03E207370B0239861B99F6354F2E4B095C25C84\ -7DBBB98D08EA3A8C923515F541F30F07B4927DAA8313DF01D00DAEBE6228BB48\ -F6851D2898F0B4040AD354213349D096B8AADB92B887533A32174C5BA7A3CB46\ -F5A2FAC580C26A987508D9C4AE2EF2D5D04AD8F72A52A9DE470554B41F0D0030\ -48C1C3C962ED158409287B9560E8CA5CB3396DC43977DAE8A0025193798220B5\ -AA8CF250B26463F59E40085714F16E29D2C35E027974D6834D12F82500C45977\ -51FAEF7B883482EE04A9F2194B6CA60391A6099E6899E0821E6BC2795B7D5808\ -E043A30D9613F39BC26AAA3E81D3598248DBC3049389D7AB4C5A974502AAA402\ -47459D9C90CB9FF33C25051ABBD9C4D8754F70902C942E49BA94389C6C1A8E66\ -D7519D75DFF9A3B11CFD6F8A365F0B87A9EEDB5262DC155922CC580855531CEC\ -C80C8B46418C46520A44C8125A4484DCD26AB2A8862AB81672293CFA3186666A\ -E52801C200D1E0BE39F11E5315409520A10A568AD8459029191AE9EDC5A93A88\ -BA2E16A2EBF15847D58535A266376BBE082891ED6413F54D62093D71CB10F01F\ -932886265650E6066A7D9EAD0238EA014DC86BE01A6F9C07879BD33FC36F7000\ -CCC5DC914E14242391901740:\ -4F70656E434C2C20612043727970746F6772617068696320436C617373204C69\ -627261727920696E20432B2B0A56657273696F6E20302E372E333A204A756E65\ -20382C20323030310A0A2A4E4F54452A3A204F70656E434C2069732063757272\ -656E746C7920696E206561726C7920626574612E20546875732C20796F757220\ -636F6D6D656E74732061626F7574204F70656E434C0A286D6F73742065737065\ -6369616C6C7920746865206170706C69636174696F6E20696E74657266616365\ -2920617265206E65656465642C20616E6420796F757220636F6D6D656E747320\ -63616E0A6861766520612064697265637420656666656374206F6E20686F7720\ -4F70656E434C206368616E67657320696E20746865206675747572652E0A0A4F\ -70656E434C2061696D7320746F206265206120706F727461626C652C20656173\ -7920746F20757365206C69627261727920666F7220706572666F726D696E6720\ -636F6D6D6F6E0A63727970746F67726170686963207461736B732E204F70656E\ -434C2063757272656E746C7920696E636C756465733A0A0A426C6F636B204369\ -70686572733A20426C6F77666973682C20434153543235362C2043415354352C\ -2043532D4369706865722C204445532C20444553582C20547269706C65444553\ -2C20474F53542C0A202020494445412C204C7562792D5261636B6F66662C204D\ -49535459312C205243322C205243352C205243362C2052696A6E6461656C2C20\ -53414645522D534B3132382C2053657270656E742C0A202020534841524B2C20\ -536B69706A61636B2C205371756172652C205445412C2054687265655761792C\ -2054776F666973682C20585445410A436970686572204D6F6465733A20434243\ -20772F2050616464696E672C204346422C204F46422C20616E6420436F756E74\ -65720A53747265616D20436970686572733A2049534141432C20415243342C20\ -5345414C0A486173682046756E6374696F6E733A20484156414C2C204D44322C\ -204D44342C204D44352C20524950452D4D443132382C20524950452D4D443136\ -302C205348412D312C20534841322D3235362C0A202020534841322D3531322C\ -2054696765720A4D4143733A20454D41432C20484D41432C204D44354D41430A\ -4D6973633A2041646C657233322C2043524332342C2043524333322C2052616E\ -64706F6F6C2C2058392E313720524E470A0A466F7220696E666F726D6174696F\ -6E206F6E206275696C64696E67204F70656E434C2C2072656164207468652073\ -656374696F6E20224275696C64696E6720746865204C6962726172792220696E\ -0A646F632F6F70656E636C2E70732E205265616420646F632F72656C6E6F7465\ -732E74787420666F72206E6F7465732072656C6174656420746F206973737565\ -7320737065636966696320746F0A746869732072656C656173652E2054686520\ -6C6963656E736520697320696E20646F632F6C6963656E73652E7478742E0A0A\ -436865636B20687474703A2F2F6F70656E636C2E736F75726365666F7267652E\ -6E657420666F72207570646174657320616E64206E65772076657273696F6E73\ -20286F722069662C20686F72726F720A6F6620686F72726F72732C20796F7520\ -66696E64206120627567292E20496620796F75206861766520616E7920717565\ -7374696F6E732C20636F6D6D656E74732C206F722072657175657374732C0A73\ -656E6420656D61696C2E0A0A4A61636B204C6C6F796420286C6C6F7964406163\ -6D2E6A68752E656475290A0A4D5553540A2D2D2D2D2D2D2D2D2D2D2D0A492074\ -68696E6B2074686520667470206C696E6B20696E206F70656E636C2E74657820\ -69732077726F6E670A0A427A6970325F4465636F6D7072657373207365676661\ -756C7473206F6E2062616420696E707574202D2069732074686174207573206F\ -7220746865206C6962726172793F0A0A53484F554C440A2D2D2D2D2D2D2D2D2D\ -2D2D0A546865207370656366696C652073686F756C6420666967757265206F75\ -74207768617420657874656E73696F6E73206172650A617661696C61626C6520\ -286261736564206F6E204F532920616E6420636F6D70696C65207468656D2069\ -6E2E0A0A73656371756575652E682073686F756C642070726F6261626C79206E\ -6F7420626520696E7374616C6C65642061732069742069732061207072697661\ -7465206865616465720A0A41646420612067656F6D65746963206D65616E2074\ -6F207468652062656E63686D61726B20636F64652C20666F7220636F6D706172\ -696E67206265747765656E0A646966666572656E742073797374656D7320286D\ -61796265206A75737420616E206F766572616C6C20617665726167653F292E0A\ -0A4D616B6520612073637269707420746F2068616E646C6520616C6C20746865\ -2072656C656173652073747566660A20286D616B652054475A2F54425A202872\ -6F6F74206F776E6572292C206D616B65206261645F6C69622E6469662C207369\ -676E20616C6C2C206D616B65205352504D2C0A2020207369676E20746861742C\ -20706F737369626C7920736F6D657468696E6720746F206D616B652052504D73\ -206F6E2061206C6F740A2020206F6620626F78656E20696E20706172656C6C65\ -6C2C20746F6F292E0A0A54657374206F6E2043796777696E20616E642042654F\ -53350A0A54727920746F2067657420612056432B2B2F4E4D414B4520706F7274\ -20676F696E670A0A4D6F7265206578616D706C657320286120676F6F64206372\ -7970746F206F6E6520657370656369616C6C792C206572726F7220636865636B\ -696E672C206D6163732C20616E64207468650A77686F6C65207363686D657265\ -292E20577269746520757020736F6D657468696E672073696D696C6961722069\ -6E204F70656E53534C2C20616E6420676574207468656D20746F20776F726B0A\ -746F6765746865722E0A0A7A6C69622F627A6970323A204D756C7469706C6520\ -73747265616D732E205741495421212120446F657320697420616C7265616479\ -3F3F213F213F0A627A6970323A2053686F756C6420737570706F727420666C75\ -7368696E672E0A0A5A6C69622F477A69702066696C74657273206E6F74206576\ -656E20696D706C656D656E7465640A0A416C6C6F6361746520616E64206D6C6F\ -636B206120706F6F6C206F66206D656D6F727920616E64207265706561647465\ -646C792070617373206974206F75742E20486F77206C617267653F0A616E6420\ -484F573F0A0A576861742063616E20626520646F6E6520626574746572207769\ -7468204F532F43505520646570656E64616E7420636F64653F0A20202074696D\ -6572732C20656E74726F707920736F757263652C206D6C6F636B2C2066696C65\ -68616E646C6520737570706F727420696E20506970652F657463200A0A444553\ -2049502F46500A0A506970652073686F756C6420737570706F72742027726561\ -6C2720616C7465726E617465206F75747075742073747566662C206E6F74206A\ -757374207468650A6861636B207573656420666F72204269744275636B657420\ -2D206D617962652E204973207468657265206120646563656E74207761792074\ -6F206A7573740A706C756720697420696E2C20696E73746561643F0A0A446F63\ -756D656E742074686520757365722D76697369626C65206D6F64756C65730A0A\ -52657772697465207468652070617273657220696E2076616C69646174652E63\ -707020286D6F726520666C65786962696C697479290A0A436F6E73747563746F\ -72732073686F756C64206F7074696F6E616C6C792074616B65206B6579732028\ -3F290A0A4D6F726520636865636B7320666F723A0A2020427A69703220286E6F\ -6E652121290A202043532D43697068657220284E4553534945290A2020534541\ -4C202849424D3F290A0A53686F756C6420757365207265706C6163652028666F\ -722048544D4C2062656E636861726B20616E6420696E0A76616C696461746529\ -2E205361646C7920697427732062726F6B656E20696E204B41490A0A4E657720\ -53796D20416C676F726974686D730A2D2D2D2D2D2D2D0A4D415243340A50616E\ -616D61203C2D2043616E2075736520696E2052616E64706F6F6C0A0A4D415942\ -452053484F554C440A2D2D2D2D2D2D2D2D2D2D2D2D0A46697820495341414320\ -6B6579207363686564756C653F20556E74696C20492073656520736F6D657468\ -696E672066696E616C20746865726520646F65736E2774207365656D206D7563\ -680A706F696E742E0A0A466978206F766572666C6F7720697373756573207769\ -74682075706461746520696E207468652068617368696E6720636F64652E2050\ -726574747920756E6C696B656C7920746F20657665720A61637475616C6C7920\ -68617070656E2074686F7567682E2E2E2075706461746528782C31293B207570\ -6461746528792C30784646464646464629200A446F6573206D616B65696E6720\ -706F736974696F6E207536346269742073746F7020746869733F0A0A - -[Zlib_Compression ] -416263416263414141626262436341626343666F6F6261720A0A666F6F206261\ -722062617A20717575780A0A48656C6C6F20576F726C64210A0A416972277320\ -224D6F6F6E20536166617269222069732061207265616C6C7920677265617420\ -43442E0A:\ -78DA15863B0E83400C057B9FE241932E77B0968226550A6A9B9F56B2B0628214\ -387D8C34A319D6911366552DF796C55D2588B2C8492F7C8EE347D4CF668EC1C3\ -A686886B3C76B42FF70D6F59246A8BBA4310B3989D58B35F94EE497F70C02021 - -4141414141414141414141414141414141414141414141414141414141414141\ -414141414141414141410A:\ -78DA73742416700100F0260AB5 - -[Zlib_Decompression ] -78DA8DCAB10A83301405D0FD7DC5C5C5C90E82D08E199D5B704EF49604352979\ -B1FAF9825FE0998F317789989FE781CF1E62ADA8DE5C38164E30AB0B8C0543CA\ -B3E2D935AFB642504991485F144F386AC1F5738A61845DDCB62AFAFA4F78DA3C\ -3D444ECBD82A0278DA4BCBCF57484A2C02E22A85C2D2D20A85B4FC7C103FAD14\ -425628240171597E4E49517E1E17008A0710D3:\ -4141414141414141414141414141414141414141414141414141414141414141\ -414141414141414141410A0A4170686578205477696E2773202253656C656374\ -656420416D6269656E7420576F726B732038352D3932222069730A6F6E65206F\ -6620746865206265737420656C656374726F6E696320616C62756D7320492776\ -652068656172642E0A0A666F6F206261722062617A207175757820666F6F6261\ -72206675626172206675782062757820766F6C74726F6E0A - -78DA734C4A76042247C7A4A4246710D3392D3F3F29B1880B006C380868:\ -416263416263414141626262436341626343666F6F6261720A - -78DA0180007FFFDA2EE53C61F3EF2147C60D6F20A1B470782B538BF848E85E8C\ -CDD05AAF9BB1A895B96FC5144435AAE4D7E7428FEFACADF543EDFFCCE1083414\ -8B043F0FD65ED45B19CCBDDA923C60A6492C98921798B4711F6A3EB4651157B5\ -213DEFF8ED8292154B6B8490C8B536F1D6925B3BCEF1C4334F10C0FE607D9DEB\ -5F0967F5AC1D07FF634251:\ -DA2EE53C61F3EF2147C60D6F20A1B470782B538BF848E85E8CCDD05AAF9BB1A8\ -95B96FC5144435AAE4D7E7428FEFACADF543EDFFCCE10834148B043F0FD65ED4\ -5B19CCBDDA923C60A6492C98921798B4711F6A3EB4651157B5213DEFF8ED8292\ -154B6B8490C8B536F1D6925B3BCEF1C4334F10C0FE607D9DEB5F0967F5AC1D07 - -78DA73742416700100F0260AB5:\ -4141414141414141414141414141414141414141414141414141414141414141\ -414141414141414141410A - -# Same as the last one, doubled up -78DA73742416700100F0260AB578DA73742416700100F0260AB5:\ -4141414141414141414141414141414141414141414141414141414141414141\ -414141414141414141410A414141414141414141414141414141414141414141\ -4141414141414141414141414141414141414141410A - -789C15863B0E83400C057B9FE241932E77B0968226550A6A9B9F56B2B0628214\ -387D8C34A319D6911366552DF796C55D2588B2C8492F7C8EE347D4CF668EC1C3\ -A686886B3C76B42FF70D6F59246A8BBA4310B3989D58B35F94EE497F70C02021:\ -416263416263414141626262436341626343666F6F6261720A0A666F6F206261\ -722062617A20717575780A0A48656C6C6F20576F726C64210A0A416972277320\ -224D6F6F6E20536166617269222069732061207265616C6C7920677265617420\ -43442E0A - -# The stream was flushed every 1 byte -78DA0A06000000FFFFBA02000000FFFFE206000000FFFFDA00000000FFFF1202\ -000000FFFFFA01000000FFFF9200000000FFFF8A03000000FFFFF205000000FF\ -FFAA03000000FFFF3A0E000000FFFF0A02000000FFFF6A02000000FFFF3A0D00\ -0000FFFF9A09000000FFFF5A09000000FFFF9203000000FFFFE202000000FFFF\ -5A04000000FFFF3A07000000FFFFE202000000FFFF3A06000000FFFFAA010000\ -00FFFFD205000000FFFFCA05000000FFFF3A0C000000FFFF3A0E000000FFFF2A\ -07000000FFFF7A07000000FFFF6A05000000FFFF3A0F000000FFFF7A0D000000\ -FFFF5A09000000FFFF7207000000FFFF0A07000000FFFF7206000000FFFF5201\ -000000FFFF5204000000FFFFFA0F000000FFFFBA05000000FFFFE202000000FF\ -FF5A0D000000FFFFDA02000000FFFF1206000000FFFF7205000000FFFF920000\ -0000FFFF1206000000FFFFAA04000000FFFFDA08000000FFFFEA04000000FFFF\ -FA0D000000FFFF1206000000FFFFEA04000000FFFF6A02000000FFFF32070000\ -00FFFF2A02000000FFFFAA04000000FFFFFA06000000FFFFCA05000000FFFF7A\ -0F000000FFFF9A06000000FFFF5A03000000FFFF3A0F000000FFFF9A08000000\ -FFFF7A09000000FFFF3201000000FFFF6A06000000FFFFFA01000000FFFFF202\ -000000FFFF9A09000000FFFFEA06000000FFFF9A07000000FFFFAA04000000FF\ -FF4A00000000FFFF0A01000000FFFF3A07000000FFFFD204000000FFFF3A0700\ -0000FFFF3203000000FFFF3A08000000FFFFDA02000000FFFFDA05000000FFFF\ -FA0C000000FFFF5A0C000000FFFF5200000000FFFF3A0F000000FFFFEA010000\ -00FFFF3207000000FFFF3201000000FFFF6203000000FFFF7201000000FFFFE2\ -04000000FFFFF204000000FFFFB205000000FFFF5A01000000FFFF6A00000000\ -FFFFD201000000FFFF9200000000FFFFAA04000000FFFF8A03000000FFFFDA08\ -000000FFFF8A01000000FFFFDA0E000000FFFFE206000000FFFF6205000000FF\ -FF9A0F000000FFFF4A05000000FFFF6A07000000FFFF5A0C000000FFFFB20000\ -0000FFFF0A04000000FFFFCA07000000FFFFDA0C000000FFFF1207000000FFFF\ -9A05000000FFFFDA0E000000FFFF9A0D000000FFFF7A01000000FFFFD2000000\ -00FFFFB202000000FFFFFA06000000FFFF5A00000000FFFFFA04000000FFFFD2\ -02000000FFFF3A0C000000FFFF6A01000000FFFF0A02000000FFFF7A0A000000\ -FFFF0300D0883EB5:\ -53D40BB012F8185E4D7EC75282CB99A91E0AA2CE0AC67C2D6DC3C777EE85CFEB\ -A94757432421FFDA0AABB41345181379B189FB138982377279F66DEF96ACCF91\ -E93483F84A998B9E796054CE29CE36C1B4BAF3A320CF8C3734064409493DA880\ -2C18795EB15CB70B059F6587A338516FB3179AB79BE8283AF6A0F22AC38452E5 - -# The stream was flushed every 10 bytes -78DA0ABEC2BD41E887449C6F1D000000FFFF3A1ED4747AE64A39AE45E7000000\ -00FFFFE23A56A39B7BF878F9BB5600000000FFFF3AFF7AA57BB8B38AE2FF5B00\ -000000FFFFE25ABD45D85542B8726327000000FFFFFA2DDCD9645E54F92DF73D\ -000000FFFF9AB6E6FCC49726CD3FBC6602000000FFFFEA9E579910724EF39CD9\ -4100000000FFFFDAB2EBF36285F33DE6266C00000000FFFF72E1F4B45DD1A023\ -511907000000FFFFDA18B39D9B757E6AFB620B00000000FFFF0ACCDF2C3E6BFB\ -EC171A5600000000FFFFFAB6E093D6E196A0A700000000FFFF0300D0883EB5:\ -53D40BB012F8185E4D7EC75282CB99A91E0AA2CE0AC67C2D6DC3C777EE85CFEB\ -A94757432421FFDA0AABB41345181379B189FB138982377279F66DEF96ACCF91\ -E93483F84A998B9E796054CE29CE36C1B4BAF3A320CF8C3734064409493DA880\ -2C18795EB15CB70B059F6587A338516FB3179AB79BE8283AF6A0F22AC38452E5 - -# The stream was flushed every 100 bytes -78DA0064009BFF53D40BB012F8185E4D7EC75282CB99A91E0AA2CE0AC67C2D6D\ -C3C777EE85CFEBA94757432421FFDA0AABB41345181379B189FB138982377279\ -F66DEF96ACCF91E93483F84A998B9E796054CE29CE36C1B4BAF3A320CF8C3734\ -064409493DA8802C18795E000000FFFFDA18B39D9B757E6AFB628BC0FCCDE2B3\ -B6CF7EA161F56DC127ADC32D414F01000000FFFF0300D0883EB5:\ -53D40BB012F8185E4D7EC75282CB99A91E0AA2CE0AC67C2D6DC3C777EE85CFEB\ -A94757432421FFDA0AABB41345181379B189FB138982377279F66DEF96ACCF91\ -E93483F84A998B9E796054CE29CE36C1B4BAF3A320CF8C3734064409493DA880\ -2C18795EB15CB70B059F6587A338516FB3179AB79BE8283AF6A0F22AC38452E5 - -# MARKER: Random Number Generators - -[X9.31-RNG(AES-128)] -00000000000000000000000000000000:CF08AD39D7DA4FCDBE158347EE3752A3:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -80000000000000000000000000000000EB8DE39CF261EE2C7389B748F8B642BA - -00000000000000000000000000000000:07BDFB5F94D0CB20F668161CE7E25E36:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -C0000000000000000000000000000000EB8DE39CF261EE2C7389B748F8B642BB - -00000000000000000000000000000000:81A997CAAA8EE7403D03A8F0AA6A588C:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -E0000000000000000000000000000000EB8DE39CF261EE2C7389B748F8B642BC - -00000000000000000000000000000000:B00B42011B37494912AA2DE456FE6284:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -F0000000000000000000000000000000EB8DE39CF261EE2C7389B748F8B642BD - -00000000000000000000000000000000:D42AA72455C3AE5AD634A5A4B3D577D2:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -F8000000000000000000000000000000EB8DE39CF261EE2C7389B748F8B642BE - -00000000000000000000000000000000:0D06CB87B99641C38A5411EC3D273E70:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FC000000000000000000000000000000EB8DE39CF261EE2C7389B748F8B642BF - -00000000000000000000000000000000:459E5E2D6976A5B34FD18926EE1E0BB7:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FE000000000000000000000000000000EB8DE39CF261EE2C7389B748F8B642C0 - -00000000000000000000000000000000:53F2D091AD47E858555371AC9BE9F3DA:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FF000000000000000000000000000000EB8DE39CF261EE2C7389B748F8B642C1 - -00000000000000000000000000000000:1A72444D745503F63B340E0F294726DC:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FF800000000000000000000000000000EB8DE39CF261EE2C7389B748F8B642C2 - -00000000000000000000000000000000:6FA57C78F09768AEA09ABB7DC5EA2944:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFC00000000000000000000000000000EB8DE39CF261EE2C7389B748F8B642C3 - -00000000000000000000000000000000:6E549FCCD3BE7B6B70B317BC04B5AB01:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFE00000000000000000000000000000EB8DE39CF261EE2C7389B748F8B642C4 - -00000000000000000000000000000000:7FF7C3F80E9A7C323B822FA436D6AA2F:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFF00000000000000000000000000000EB8DE39CF261EE2C7389B748F8B642C5 - -00000000000000000000000000000000:52FF54A163E97610EAF318E7EE7CEC7E:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFF80000000000000000000000000000EB8DE39CF261EE2C7389B748F8B642C6 - -00000000000000000000000000000000:4FF5C162147653F594105D480D9F24F7:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFC0000000000000000000000000000EB8DE39CF261EE2C7389B748F8B642C7 - -00000000000000000000000000000000:1F863D1EA9EA0E1D741D195249B6AF21:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFE0000000000000000000000000000EB8DE39CF261EE2C7389B748F8B642C8 - -00000000000000000000000000000000:A87313E2771F16B842DB27D3E55AB0B0:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFF0000000000000000000000000000EB8DE39CF261EE2C7389B748F8B642C9 - -00000000000000000000000000000000:A45BBF6E2ED76655119273112AFE1C6A:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFF8000000000000000000000000000EB8DE39CF261EE2C7389B748F8B642CA - -00000000000000000000000000000000:E135FBD5BE6CB13B0A5A76696BCF46F6:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFC000000000000000000000000000EB8DE39CF261EE2C7389B748F8B642CB - -00000000000000000000000000000000:5A0601F625C622CC97D6CAE9BA0AB6BB:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFE000000000000000000000000000EB8DE39CF261EE2C7389B748F8B642CC - -00000000000000000000000000000000:A9662449F9AC50293766DEC60334B8F0:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFF000000000000000000000000000EB8DE39CF261EE2C7389B748F8B642CD - -00000000000000000000000000000000:F80A41023F9E350E1D2F86DB10CBB329:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFF800000000000000000000000000EB8DE39CF261EE2C7389B748F8B642CE - -00000000000000000000000000000000:334EB3E404DE9F452C647C05EE09E3E6:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFC00000000000000000000000000EB8DE39CF261EE2C7389B748F8B642CF - -00000000000000000000000000000000:5B2C202C018A5E482D5035B18905BF46:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFE00000000000000000000000000EB8DE39CF261EE2C7389B748F8B642D0 - -00000000000000000000000000000000:9E9E63D29CFB4757FDDEC2B35147D830:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFF00000000000000000000000000EB8DE39CF261EE2C7389B748F8B642D1 - -00000000000000000000000000000000:EAAC43B87260BC73BFFDFABF5BCF94A9:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFF80000000000000000000000000EB8DE39CF261EE2C7389B748F8B642D2 - -00000000000000000000000000000000:4B378D2FF53B5FF913AA2064D04285D5:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFC0000000000000000000000000EB8DE39CF261EE2C7389B748F8B642D3 - -00000000000000000000000000000000:DBC25FE1203EA0E64F1D5C2E2F056F87:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFE0000000000000000000000000EB8DE39CF261EE2C7389B748F8B642D4 - -00000000000000000000000000000000:D3C96C9C5905DC56A292A7A98AAC9234:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFF0000000000000000000000000EB8DE39CF261EE2C7389B748F8B642D5 - -00000000000000000000000000000000:0A9223570A1288EB47595D6D18994353:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFF8000000000000000000000000EB8DE39CF261EE2C7389B748F8B642D6 - -00000000000000000000000000000000:E43B8F94C2B557259920C10A51A38543:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFC000000000000000000000000EB8DE39CF261EE2C7389B748F8B642D7 - -00000000000000000000000000000000:9B86C73D371FDAD1432065F9EB6BB6D2:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFE000000000000000000000000EB8DE39CF261EE2C7389B748F8B642D8 - -00000000000000000000000000000000:13F949FF373A58947D8C6543FEB81F93:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFF000000000000000000000000EB8DE39CF261EE2C7389B748F8B642D9 - -00000000000000000000000000000000:2F7D996CB269EDC9B7902FF6D061C302:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFF800000000000000000000000EB8DE39CF261EE2C7389B748F8B642DA - -00000000000000000000000000000000:801AF9A32F49A1F3A43DBB22DB281DFC:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFC00000000000000000000000EB8DE39CF261EE2C7389B748F8B642DB - -00000000000000000000000000000000:8914E2CE1F46B13624AB93FDE9104214:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFE00000000000000000000000EB8DE39CF261EE2C7389B748F8B642DC - -00000000000000000000000000000000:C1D223A2A1785EF3CE6128333DD95347:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFF00000000000000000000000EB8DE39CF261EE2C7389B748F8B642DD - -00000000000000000000000000000000:538FEEC081411A95767AA722BCFB8C0E:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFF80000000000000000000000EB8DE39CF261EE2C7389B748F8B642DE - -00000000000000000000000000000000:0CCDCCA45FF772D0D02F53D823BB4C9E:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFC0000000000000000000000EB8DE39CF261EE2C7389B748F8B642DF - -00000000000000000000000000000000:550B87DA4C940750ABB829E43522F4D7:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFE0000000000000000000000EB8DE39CF261EE2C7389B748F8B642E0 - -00000000000000000000000000000000:3E17DE96FFF84D276E8156ADC9E35007:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFF0000000000000000000000EB8DE39CF261EE2C7389B748F8B642E1 - -00000000000000000000000000000000:06F0855A2F6CE7DFF53F59A6994017AE:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFF8000000000000000000000EB8DE39CF261EE2C7389B748F8B642E2 - -00000000000000000000000000000000:741FA68C1FEF02AF6DFCE803379AF7B8:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFC000000000000000000000EB8DE39CF261EE2C7389B748F8B642E3 - -00000000000000000000000000000000:A7F64667398AECDEC34481265FE59235:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFE000000000000000000000EB8DE39CF261EE2C7389B748F8B642E4 - -00000000000000000000000000000000:F19F46D46822951708F4E194F4960A56:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFF000000000000000000000EB8DE39CF261EE2C7389B748F8B642E5 - -00000000000000000000000000000000:6E7AF2F730E9CF4CCA2E69D5067DDC76:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFF800000000000000000000EB8DE39CF261EE2C7389B748F8B642E6 - -00000000000000000000000000000000:CA15A95DFB686938D97D804298D094AA:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFC00000000000000000000EB8DE39CF261EE2C7389B748F8B642E7 - -00000000000000000000000000000000:F76DAEB0ED23167614294AC2F8E9EE9A:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFE00000000000000000000EB8DE39CF261EE2C7389B748F8B642E8 - -00000000000000000000000000000000:C66A4B38050953805598F4EAF203CDE4:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFF00000000000000000000EB8DE39CF261EE2C7389B748F8B642E9 - -00000000000000000000000000000000:76A726ED76276D5E7119AF0CCAED854A:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFF80000000000000000000EB8DE39CF261EE2C7389B748F8B642EA - -00000000000000000000000000000000:EB8FE9FF9A053DD2F132B11F17F53D78:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFC0000000000000000000EB8DE39CF261EE2C7389B748F8B642EB - -00000000000000000000000000000000:A6C5E4E13C36E80E1BBB046E6377D290:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFE0000000000000000000EB8DE39CF261EE2C7389B748F8B642EC - -00000000000000000000000000000000:75B476973CF532F655B8BF80CB6AC2A3:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFF0000000000000000000EB8DE39CF261EE2C7389B748F8B642ED - -00000000000000000000000000000000:3AC698CFC1EF3ED72C26CAF5347DF997:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFF8000000000000000000EB8DE39CF261EE2C7389B748F8B642EE - -00000000000000000000000000000000:167ECAE8C6F793FEB00A69E3A9FAF332:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFC000000000000000000EB8DE39CF261EE2C7389B748F8B642EF - -00000000000000000000000000000000:8F2906AF93A28FFFBFD83D5D7E6D7F72:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFE000000000000000000EB8DE39CF261EE2C7389B748F8B642F0 - -00000000000000000000000000000000:5BBA7C625C23F69354A61CCF2289A1B3:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFF000000000000000000EB8DE39CF261EE2C7389B748F8B642F1 - -00000000000000000000000000000000:0083A3EC21348F22B0039759AE762A2F:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFF800000000000000000EB8DE39CF261EE2C7389B748F8B642F2 - -00000000000000000000000000000000:5E2864DD971DB13227F06535D52C24AE:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFC00000000000000000EB8DE39CF261EE2C7389B748F8B642F3 - -00000000000000000000000000000000:D5792243D3B9BD5C7299151685192BBA:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFE00000000000000000EB8DE39CF261EE2C7389B748F8B642F4 - -00000000000000000000000000000000:7B26CD6C3468209850FDF7F67448FAB7:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFF00000000000000000EB8DE39CF261EE2C7389B748F8B642F5 - -00000000000000000000000000000000:717586F8B816B273A691D3379005301E:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFF80000000000000000EB8DE39CF261EE2C7389B748F8B642F6 - -00000000000000000000000000000000:33D8F8DDF2A5E97E9CB1C032735BEF21:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFC0000000000000000EB8DE39CF261EE2C7389B748F8B642F7 - -00000000000000000000000000000000:B277E4BA071293C54D84A29637273B04:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFE0000000000000000EB8DE39CF261EE2C7389B748F8B642F8 - -00000000000000000000000000000000:FBD6F5662D222FC9C55332A60F747879:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFF0000000000000000EB8DE39CF261EE2C7389B748F8B642F9 - -00000000000000000000000000000000:88FF65F58F6F4BF35DB846BB2132DEC6:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFF8000000000000000EB8DE39CF261EE2C7389B748F8B642FA - -00000000000000000000000000000000:BE12ADEDECB8DCFF2723E1D5F0D9C753:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFC000000000000000EB8DE39CF261EE2C7389B748F8B642FB - -00000000000000000000000000000000:5A368FCCC787680145BBFBDA64BE16C6:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFE000000000000000EB8DE39CF261EE2C7389B748F8B642FC - -00000000000000000000000000000000:A804DC10C6223194AE4310D7C628DBAF:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFF000000000000000EB8DE39CF261EE2C7389B748F8B642FD - -00000000000000000000000000000000:1DE5494C7B609ABD1406FB318B572DE7:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFF800000000000000EB8DE39CF261EE2C7389B748F8B642FE - -00000000000000000000000000000000:78566AA937E9C90D764DFB1D5723140B:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFC00000000000000EB8DE39CF261EE2C7389B748F8B642FF - -00000000000000000000000000000000:9F42A9F1512DA372008DF3D469B4AD04:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFE00000000000000EB8DE39CF261EE2C7389B748F8B64300 - -00000000000000000000000000000000:C80993A52AE00A74A64FAD42EC586FF5:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFF00000000000000EB8DE39CF261EE2C7389B748F8B64301 - -00000000000000000000000000000000:3AFC74E774FE9B27202B8596C5B1396E:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFF80000000000000EB8DE39CF261EE2C7389B748F8B64302 - -00000000000000000000000000000000:64829EB2B232687C9CE32F8A91274497:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFC0000000000000EB8DE39CF261EE2C7389B748F8B64303 - -00000000000000000000000000000000:E9795D38B5A1AAD7901C7765CF4F23B2:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFE0000000000000EB8DE39CF261EE2C7389B748F8B64304 - -00000000000000000000000000000000:28989B6F2458E95A32485C7050DB4155:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFF0000000000000EB8DE39CF261EE2C7389B748F8B64305 - -00000000000000000000000000000000:3DFFB7C3CDBB9C3B27A5CCCFDAFA9AAE:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFF8000000000000EB8DE39CF261EE2C7389B748F8B64306 - -00000000000000000000000000000000:4B42865DA59E224D8CD7587D8C4AD73E:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFC000000000000EB8DE39CF261EE2C7389B748F8B64307 - -00000000000000000000000000000000:19316BB7F4041A621BD659FBD34397D6:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFE000000000000EB8DE39CF261EE2C7389B748F8B64308 - -00000000000000000000000000000000:963835BE55A1E143D1F2F56BCA837BBE:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFF000000000000EB8DE39CF261EE2C7389B748F8B64309 - -00000000000000000000000000000000:2C614F8E813AF275902D7139B08C0998:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFF800000000000EB8DE39CF261EE2C7389B748F8B6430A - -00000000000000000000000000000000:6B0F6D50554C31C8439ECEAC28B2C256:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFC00000000000EB8DE39CF261EE2C7389B748F8B6430B - -00000000000000000000000000000000:B6D80EEEC39FBB091ADC6BB3BB5D5A67:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFE00000000000EB8DE39CF261EE2C7389B748F8B6430C - -00000000000000000000000000000000:6C8D5E16792215E76E73FD4650A407DB:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFF00000000000EB8DE39CF261EE2C7389B748F8B6430D - -00000000000000000000000000000000:AA6E5BE4C0C26EEC0161D364F0FF7DE3:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFF80000000000EB8DE39CF261EE2C7389B748F8B6430E - -00000000000000000000000000000000:1CC202A40F8ED80D5559BB2B29E96A65:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFC0000000000EB8DE39CF261EE2C7389B748F8B6430F - -00000000000000000000000000000000:0B4B9B6139443912D9492EE91A1769CB:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFE0000000000EB8DE39CF261EE2C7389B748F8B64310 - -00000000000000000000000000000000:C10EBF773A13A852500F2025AB965540:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFF0000000000EB8DE39CF261EE2C7389B748F8B64311 - -00000000000000000000000000000000:5221FDCFA12F36E4E893E902A54999E8:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFF8000000000EB8DE39CF261EE2C7389B748F8B64312 - -00000000000000000000000000000000:E9090364194100265EF53E91299865FB:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFC000000000EB8DE39CF261EE2C7389B748F8B64313 - -00000000000000000000000000000000:8CD5E4284B02C8B711DE7B234F6484F7:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFE000000000EB8DE39CF261EE2C7389B748F8B64314 - -00000000000000000000000000000000:76F5D704C6B17CF7397C58D3021C2FBC:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFF000000000EB8DE39CF261EE2C7389B748F8B64315 - -00000000000000000000000000000000:F157BFB5FBF1011BD22292D947D12986:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFF800000000EB8DE39CF261EE2C7389B748F8B64316 - -00000000000000000000000000000000:2D2BD62F2AD0EE7854072B7F6860FFCA:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFC00000000EB8DE39CF261EE2C7389B748F8B64317 - -00000000000000000000000000000000:3D96768C1F0796A39077BE1C70301FD4:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFE00000000EB8DE39CF261EE2C7389B748F8B64318 - -00000000000000000000000000000000:D5073B8CF890C43AEE43AE333D57D642:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFF00000000EB8DE39CF261EE2C7389B748F8B64319 - -00000000000000000000000000000000:D38ADEA6FE821453B9EB88D9CADAD3F4:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFF80000000EB8DE39CF261EE2C7389B748F8B6431A - -00000000000000000000000000000000:F4F66618DBFED3C4B90AD93FAC1083F8:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFC0000000EB8DE39CF261EE2C7389B748F8B6431B - -00000000000000000000000000000000:930AD1D86D3ECA7A0692766CD1E40490:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFE0000000EB8DE39CF261EE2C7389B748F8B6431C - -00000000000000000000000000000000:63D8247A053BBE984B9840CFB7D90DD2:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFF0000000EB8DE39CF261EE2C7389B748F8B6431D - -00000000000000000000000000000000:827D954277E357D0453BBC537C9AB221:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFF8000000EB8DE39CF261EE2C7389B748F8B6431E - -00000000000000000000000000000000:9E2BDF167485A3AE004F0643E775CF42:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFC000000EB8DE39CF261EE2C7389B748F8B6431F - -00000000000000000000000000000000:445A3F86B2FC284BB933CBC68649E4CC:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFE000000EB8DE39CF261EE2C7389B748F8B64320 - -00000000000000000000000000000000:F6AEADC9A5A8DF7A1664B4CD055E42B4:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFF000000EB8DE39CF261EE2C7389B748F8B64321 - -00000000000000000000000000000000:1B43269E05CD108EE91AAA0ECC1CA831:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFF800000EB8DE39CF261EE2C7389B748F8B64322 - -00000000000000000000000000000000:857EEB71AB8F12AE4051B825F6B7B686:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFC00000EB8DE39CF261EE2C7389B748F8B64323 - -00000000000000000000000000000000:C92EF523170FDEBA77CFA50D84742D68:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFE00000EB8DE39CF261EE2C7389B748F8B64324 - -00000000000000000000000000000000:DC8C52D3698E8356F9D0F77361D8F26E:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFF00000EB8DE39CF261EE2C7389B748F8B64325 - -00000000000000000000000000000000:86A95BA023CBE3E5A5911D5CA22C504E:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFF80000EB8DE39CF261EE2C7389B748F8B64326 - -00000000000000000000000000000000:6E9CACEB9D51D7D05E1FD06B1BE031C7:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFC0000EB8DE39CF261EE2C7389B748F8B64327 - -00000000000000000000000000000000:556ECC72A98D46912ADDD08FDE7BA0A3:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFE0000EB8DE39CF261EE2C7389B748F8B64328 - -00000000000000000000000000000000:3A404D891C30FBBA2EED516E81B82391:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFF0000EB8DE39CF261EE2C7389B748F8B64329 - -00000000000000000000000000000000:7BC825F8C9CB40A71E6B714171A77436:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFF8000EB8DE39CF261EE2C7389B748F8B6432A - -00000000000000000000000000000000:EC8430466E19133B11D9B99DA3C614B8:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFC000EB8DE39CF261EE2C7389B748F8B6432B - -00000000000000000000000000000000:DCB6690389626F5392FD37E486490649:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFE000EB8DE39CF261EE2C7389B748F8B6432C - -00000000000000000000000000000000:73A591DF83E5F8E819BC63702471DD4A:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFF000EB8DE39CF261EE2C7389B748F8B6432D - -00000000000000000000000000000000:76B3B1D6EB12BBD6C3F17E73E9E2EB30:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFF800EB8DE39CF261EE2C7389B748F8B6432E - -00000000000000000000000000000000:FEC46BE2B11B2FA1C7D7A5CC3012F5DC:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFC00EB8DE39CF261EE2C7389B748F8B6432F - -00000000000000000000000000000000:393389AC2C7FBA821920F6DC2193A4E0:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00EB8DE39CF261EE2C7389B748F8B64330 - -00000000000000000000000000000000:43D7D429B793F150173FCFEC35D9A4E8:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00EB8DE39CF261EE2C7389B748F8B64331 - -00000000000000000000000000000000:8EAE659DF12B19C428CFC37E3432683D:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80EB8DE39CF261EE2C7389B748F8B64332 - -00000000000000000000000000000000:5080B7459858EA77FFC5AEAD88DEE1B5:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0EB8DE39CF261EE2C7389B748F8B64333 - -00000000000000000000000000000000:ACBEEAFC7D2C5DCE6AC63452E07D6A95:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0EB8DE39CF261EE2C7389B748F8B64334 - -00000000000000000000000000000000:95407BD82770032D496FD3F54478A589:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0EB8DE39CF261EE2C7389B748F8B64335 - -00000000000000000000000000000000:F3B8D4093A4D2845A2C411C8EA1E9F12:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8EB8DE39CF261EE2C7389B748F8B64336 - -00000000000000000000000000000000:6B232AD852E9D6EB2CA54E8C9B5163C3:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCEB8DE39CF261EE2C7389B748F8B64337 - -00000000000000000000000000000000:C3CB4B5855323C13C8973982E9EA33E7:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEB8DE39CF261EE2C7389B748F8B64338 - -00000000000000000000000000000000:504D101AC84F9B4542C1B0264B947410:\ -C592BF6A04D72BB1CBEAF590B7CCA6BC\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB8DE39CF261EE2C7389B748F8B64339 - -[X9.31-RNG(AES-192)] -00000000000000000000000000000000:765F8B450404187233E6F7C30A9C3033:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -800000000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C82 - -00000000000000000000000000000000:3636889C7E3720C3E0DCF399104597A4:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -C00000000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C83 - -00000000000000000000000000000000:2845D5BCACD8C65B5B4B5A168E778DF7:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -E00000000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C84 - -00000000000000000000000000000000:41CDAA700F6E179354AD61B7CBD5E272:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -F00000000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C85 - -00000000000000000000000000000000:E08638EAEC7EA84B43AC7EB48296B94C:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -F80000000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C86 - -00000000000000000000000000000000:A7AFADA8824F5B94EB20E31B30519A91:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FC0000000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C87 - -00000000000000000000000000000000:F5CAB3443DA2C48B0C309FC64FB903C6:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FE0000000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C88 - -00000000000000000000000000000000:6CCEBF22A49BB4921E4E30D0663F90DC:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FF0000000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C89 - -00000000000000000000000000000000:D8CCE94DE9CFE74E3392418BCC843B14:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FF8000000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C8A - -00000000000000000000000000000000:D56EEA4E0B3963E370E6145352F170F0:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFC000000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C8B - -00000000000000000000000000000000:43894E0870AD99C2CF7116FF3F076AA3:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFE000000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C8C - -00000000000000000000000000000000:0181C2495F3DDB5BBA9F52634A3CA1A1:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFF000000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C8D - -00000000000000000000000000000000:AE97729D2D864B54619DCCA39F7C1E3E:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFF800000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C8E - -00000000000000000000000000000000:E7F674C418E2CF20CE7152BFD184428D:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFC00000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C8F - -00000000000000000000000000000000:DA0CCB4303614FE6F975AAC0A6B79C0C:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFE00000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C90 - -00000000000000000000000000000000:02AAAFF23E2D38885670604C1356CAFA:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFF00000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C91 - -00000000000000000000000000000000:649A70DFBEEBAFE24F102BB45302CA90:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFF80000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C92 - -00000000000000000000000000000000:2E2CE97AD3E20C8F5E676D453FC0573A:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFC0000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C93 - -00000000000000000000000000000000:147AA9D83747429EB9E642190331E140:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFE0000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C94 - -00000000000000000000000000000000:CA64870FDF1A3DFD3206EC3C39E37831:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFF0000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C95 - -00000000000000000000000000000000:9D91BBFA64EC181C0FEA5B620338C93F:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFF8000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C96 - -00000000000000000000000000000000:DBF7E2FFD26CC3DE9E58F06EA4AA108B:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFC000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C97 - -00000000000000000000000000000000:172248D875492388F40E465884809BEC:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFE000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C98 - -00000000000000000000000000000000:9CDDA74369BCE1E0545AC7BB33ED56C6:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFF000000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C99 - -00000000000000000000000000000000:58F86FD5A8CE9F2DE1D7B036646C3CF0:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFF800000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C9A - -00000000000000000000000000000000:22B087E72247F42628C4EED66DAC2857:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFC00000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C9B - -00000000000000000000000000000000:2C5A29C655986B70CF4D824DA14CCC51:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFE00000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C9C - -00000000000000000000000000000000:166EA4679813A0BC390389EC305336FB:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFF00000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C9D - -00000000000000000000000000000000:BF11A059C4081554C66DA4BD62B20954:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFF80000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C9E - -00000000000000000000000000000000:566904C94E52FC620F980EDF352428CA:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFC0000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0C9F - -00000000000000000000000000000000:DC3EFF7EAC7A8EBD840DF5F621A3449A:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFE0000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0CA0 - -00000000000000000000000000000000:EADDA03E98C5B8A6A28C92B7EBC7AC97:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFF0000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0CA1 - -00000000000000000000000000000000:99F41647A63D58E862E3AC10FC5AEE92:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFF8000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0CA2 - -00000000000000000000000000000000:B5D386B2184EDFD9726DA021B0F34142:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFC000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0CA3 - -00000000000000000000000000000000:FAAE880D0C2DADC2015C66BE8AD6BC1E:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFE000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0CA4 - -00000000000000000000000000000000:250DCFF45916E9F8FA2219F62A422B00:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFF000000000000000000000008159E43DB66ECF3EABE5A44E0D4C0CA5 - -00000000000000000000000000000000:853BAB572DCE44B910DDE9D74D6EC4A9:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFF800000000000000000000008159E43DB66ECF3EABE5A44E0D4C0CA6 - -00000000000000000000000000000000:EBFC3DFD08EE68B825F47F63F47FFC2D:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFC00000000000000000000008159E43DB66ECF3EABE5A44E0D4C0CA7 - -00000000000000000000000000000000:6D25021AE6865BC70971485E1888CB35:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFE00000000000000000000008159E43DB66ECF3EABE5A44E0D4C0CA8 - -00000000000000000000000000000000:A1D2584BBE712619CABD295ADE48D132:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFF00000000000000000000008159E43DB66ECF3EABE5A44E0D4C0CA9 - -00000000000000000000000000000000:8EA62AAFD310009DE585FCA2542128C6:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFF80000000000000000000008159E43DB66ECF3EABE5A44E0D4C0CAA - -00000000000000000000000000000000:5DBEEB2438CDC2E4B0727F537EB6BCEE:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFC0000000000000000000008159E43DB66ECF3EABE5A44E0D4C0CAB - -00000000000000000000000000000000:81A884DD17A78D57BB00FC23B372A003:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFE0000000000000000000008159E43DB66ECF3EABE5A44E0D4C0CAC - -00000000000000000000000000000000:22ECAAC6F2884CC9F2977C63A7F429AF:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFF0000000000000000000008159E43DB66ECF3EABE5A44E0D4C0CAD - -00000000000000000000000000000000:35A2E0D7BE633C0E24C09E6F7EB681A5:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFF8000000000000000000008159E43DB66ECF3EABE5A44E0D4C0CAE - -00000000000000000000000000000000:FAA2B324614E430AF7168D3BE22AB8F5:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFC000000000000000000008159E43DB66ECF3EABE5A44E0D4C0CAF - -00000000000000000000000000000000:FEEB51786DA2CAD7C17EB084F16ED95C:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFE000000000000000000008159E43DB66ECF3EABE5A44E0D4C0CB0 - -00000000000000000000000000000000:60C5CC3D4FA90CAE8F800FE0EBC3BD7D:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFF000000000000000000008159E43DB66ECF3EABE5A44E0D4C0CB1 - -00000000000000000000000000000000:F4F4B400DE91585909EC6C772A616331:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFF800000000000000000008159E43DB66ECF3EABE5A44E0D4C0CB2 - -00000000000000000000000000000000:10A1126BFCF62DE266240BEBC70345D4:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFC00000000000000000008159E43DB66ECF3EABE5A44E0D4C0CB3 - -00000000000000000000000000000000:7E54A01950089CECD54EF526C2CA4D32:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFE00000000000000000008159E43DB66ECF3EABE5A44E0D4C0CB4 - -00000000000000000000000000000000:878880E754C0835B28EE7ABBAC5483BE:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFF00000000000000000008159E43DB66ECF3EABE5A44E0D4C0CB5 - -00000000000000000000000000000000:5818CF8CCCF36E2FD381F40E8E6B6C22:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFF80000000000000000008159E43DB66ECF3EABE5A44E0D4C0CB6 - -00000000000000000000000000000000:5342E61C5CE89EFC82790297315BC6BE:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFC0000000000000000008159E43DB66ECF3EABE5A44E0D4C0CB7 - -00000000000000000000000000000000:C1A6F265700B4B032B82A8DDECE58FA8:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFE0000000000000000008159E43DB66ECF3EABE5A44E0D4C0CB8 - -00000000000000000000000000000000:4206F2CBF9FBBC6CF774642B552754A6:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFF0000000000000000008159E43DB66ECF3EABE5A44E0D4C0CB9 - -00000000000000000000000000000000:0839EF91752B19D1B4D853BF27945C98:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFF8000000000000000008159E43DB66ECF3EABE5A44E0D4C0CBA - -00000000000000000000000000000000:3AA99E43E643F56D51EAE0DD94D53FAD:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFC000000000000000008159E43DB66ECF3EABE5A44E0D4C0CBB - -00000000000000000000000000000000:8A17C2B4992E26A7A0E709F05C3B81EC:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFE000000000000000008159E43DB66ECF3EABE5A44E0D4C0CBC - -00000000000000000000000000000000:9D14DA0A5F6D0E5F7B9FC38BBD598196:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFF000000000000000008159E43DB66ECF3EABE5A44E0D4C0CBD - -00000000000000000000000000000000:709CAED6B876ECE41FF7AE78C3892CAC:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFF800000000000000008159E43DB66ECF3EABE5A44E0D4C0CBE - -00000000000000000000000000000000:5AD091FF7C2677F8E3DFB98F8E85E54A:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFC00000000000000008159E43DB66ECF3EABE5A44E0D4C0CBF - -00000000000000000000000000000000:989D89F341AB464BE89E17B06467A8FD:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFE00000000000000008159E43DB66ECF3EABE5A44E0D4C0CC0 - -00000000000000000000000000000000:3257273E13063BCFB64C7A0B090B0A2D:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFF00000000000000008159E43DB66ECF3EABE5A44E0D4C0CC1 - -00000000000000000000000000000000:431D551090D4E840432CD0D8E7170666:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFF80000000000000008159E43DB66ECF3EABE5A44E0D4C0CC2 - -00000000000000000000000000000000:F3EBF6C275C41C7015BFEE14DE87F372:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFC0000000000000008159E43DB66ECF3EABE5A44E0D4C0CC3 - -00000000000000000000000000000000:13EE442069EC7B852034397B1F09EB3D:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFE0000000000000008159E43DB66ECF3EABE5A44E0D4C0CC4 - -00000000000000000000000000000000:ACFAA2C816C9ECAD0A19BA783BCAB411:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFF0000000000000008159E43DB66ECF3EABE5A44E0D4C0CC5 - -00000000000000000000000000000000:2AAEB898354B9E1358CA6DF57369C361:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFF8000000000000008159E43DB66ECF3EABE5A44E0D4C0CC6 - -00000000000000000000000000000000:52C35276866C0DA1277FC4952B732EEA:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFC000000000000008159E43DB66ECF3EABE5A44E0D4C0CC7 - -00000000000000000000000000000000:BAEEB093F380B5D887DC48B7DE672D33:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFE000000000000008159E43DB66ECF3EABE5A44E0D4C0CC8 - -00000000000000000000000000000000:D524C38205AD436D54199E0F8E04D8D9:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFF000000000000008159E43DB66ECF3EABE5A44E0D4C0CC9 - -00000000000000000000000000000000:A0D1315745F15F0DDC468DBDD9E56714:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFF800000000000008159E43DB66ECF3EABE5A44E0D4C0CCA - -00000000000000000000000000000000:2776D4FFDFFB344EC55FC22FFE450A3C:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFC00000000000008159E43DB66ECF3EABE5A44E0D4C0CCB - -00000000000000000000000000000000:BC0716E00000562CC8A9E2470F3D8B63:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFE00000000000008159E43DB66ECF3EABE5A44E0D4C0CCC - -00000000000000000000000000000000:E29DD29D73D883CD8DAF74838BBEFC7C:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFF00000000000008159E43DB66ECF3EABE5A44E0D4C0CCD - -00000000000000000000000000000000:84CBCBB352E2D3CB77E04C954280694E:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFF80000000000008159E43DB66ECF3EABE5A44E0D4C0CCE - -00000000000000000000000000000000:558744FEBFFE7A0AE424D45921B87309:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFC0000000000008159E43DB66ECF3EABE5A44E0D4C0CCF - -00000000000000000000000000000000:7FF9325EA7576D41B4A1B557533432FB:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFE0000000000008159E43DB66ECF3EABE5A44E0D4C0CD0 - -00000000000000000000000000000000:01CC9B4887AD0B270EC55F6527AB90A6:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFF0000000000008159E43DB66ECF3EABE5A44E0D4C0CD1 - -00000000000000000000000000000000:044176DA3370910AE0BCBDCF1D895CC0:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFF8000000000008159E43DB66ECF3EABE5A44E0D4C0CD2 - -00000000000000000000000000000000:BCA18B1630EAEC7CBDDF5C513A53D456:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFC000000000008159E43DB66ECF3EABE5A44E0D4C0CD3 - -00000000000000000000000000000000:19D1D3DA04BDAD8D710DD14A611F8F17:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFE000000000008159E43DB66ECF3EABE5A44E0D4C0CD4 - -00000000000000000000000000000000:615BC0AF497F862399EF275E649746F0:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFF000000000008159E43DB66ECF3EABE5A44E0D4C0CD5 - -00000000000000000000000000000000:58F46ACF8BB0D1B56EF0AD46D90DA340:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFF800000000008159E43DB66ECF3EABE5A44E0D4C0CD6 - -00000000000000000000000000000000:2F2DBE7F2123A2E66CD8DD478688A07E:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFC00000000008159E43DB66ECF3EABE5A44E0D4C0CD7 - -00000000000000000000000000000000:AA80B113C8E106723409B3F31969965A:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFE00000000008159E43DB66ECF3EABE5A44E0D4C0CD8 - -00000000000000000000000000000000:DFC761136BCB3B2E1E13E0291BA85972:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFF00000000008159E43DB66ECF3EABE5A44E0D4C0CD9 - -00000000000000000000000000000000:E0944C42C6EE12FAA28286B0ED4F5DC7:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFF80000000008159E43DB66ECF3EABE5A44E0D4C0CDA - -00000000000000000000000000000000:DAF99970E52C6639188262C5DAD13123:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFC0000000008159E43DB66ECF3EABE5A44E0D4C0CDB - -00000000000000000000000000000000:0E07202C26F31E74004015F6BC7E2100:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFE0000000008159E43DB66ECF3EABE5A44E0D4C0CDC - -00000000000000000000000000000000:93DCAC92FB0DA5976DF8A75DBDC61C9B:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFF0000000008159E43DB66ECF3EABE5A44E0D4C0CDD - -00000000000000000000000000000000:9370C5EC398DE376E319370A4C5F26E2:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFF8000000008159E43DB66ECF3EABE5A44E0D4C0CDE - -00000000000000000000000000000000:83C03F2B1B64E72ED21D0A5F59FA7F8C:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFC000000008159E43DB66ECF3EABE5A44E0D4C0CDF - -00000000000000000000000000000000:AA1159B23592ADECC168B2268952A92B:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFE000000008159E43DB66ECF3EABE5A44E0D4C0CE0 - -00000000000000000000000000000000:14EEE0E44CA217E45440EC84011D89A5:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFF000000008159E43DB66ECF3EABE5A44E0D4C0CE1 - -00000000000000000000000000000000:B2C88BBA8B055BA74622297E8BC8D95D:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFF800000008159E43DB66ECF3EABE5A44E0D4C0CE2 - -00000000000000000000000000000000:FADFBA23CC801A926A119F78B37A9307:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFC00000008159E43DB66ECF3EABE5A44E0D4C0CE3 - -00000000000000000000000000000000:4CB2D5484366D91C9243C4797DA983DD:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFE00000008159E43DB66ECF3EABE5A44E0D4C0CE4 - -00000000000000000000000000000000:367EF2BDC4163545C4C9011AE53755DE:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFF00000008159E43DB66ECF3EABE5A44E0D4C0CE5 - -00000000000000000000000000000000:51888B85AD78889BACEA726798C30C95:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFF80000008159E43DB66ECF3EABE5A44E0D4C0CE6 - -00000000000000000000000000000000:1D3CEC46E078E44BF11603DB2726D8F2:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFC0000008159E43DB66ECF3EABE5A44E0D4C0CE7 - -00000000000000000000000000000000:A369189A3667F44FFA8DA2E5E9425D6F:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFE0000008159E43DB66ECF3EABE5A44E0D4C0CE8 - -00000000000000000000000000000000:ED8C0F37154A57D27A9A11CAE3F3131E:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFF0000008159E43DB66ECF3EABE5A44E0D4C0CE9 - -00000000000000000000000000000000:8B04BF18036328006D9A7FC4C1BCF818:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFF8000008159E43DB66ECF3EABE5A44E0D4C0CEA - -00000000000000000000000000000000:0E1E3F517E7502E4CC98A3A312692666:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFC000008159E43DB66ECF3EABE5A44E0D4C0CEB - -00000000000000000000000000000000:306CA0902C2B572BB5E2CE0848D6280E:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFE000008159E43DB66ECF3EABE5A44E0D4C0CEC - -00000000000000000000000000000000:8F8479252EF0C104D27B38C52F4F40EB:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFF000008159E43DB66ECF3EABE5A44E0D4C0CED - -00000000000000000000000000000000:D5C6F739A2B316B8CAFBC39999C731CB:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFF800008159E43DB66ECF3EABE5A44E0D4C0CEE - -00000000000000000000000000000000:5C153EA9F8580BE16B093EE1CF83529B:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFC00008159E43DB66ECF3EABE5A44E0D4C0CEF - -00000000000000000000000000000000:13A3DF5F58736008E8101087B5B49563:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFE00008159E43DB66ECF3EABE5A44E0D4C0CF0 - -00000000000000000000000000000000:2CB0DC2125C33149703A9A86CB0FB7D2:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFF00008159E43DB66ECF3EABE5A44E0D4C0CF1 - -00000000000000000000000000000000:5453577F4F95E85D729DCFD84B297381:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFF80008159E43DB66ECF3EABE5A44E0D4C0CF2 - -00000000000000000000000000000000:588702C309F54A76467B8F587FE17096:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFC0008159E43DB66ECF3EABE5A44E0D4C0CF3 - -00000000000000000000000000000000:7779A89AD48BB3FD8BBFDC5BD8C9101E:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFE0008159E43DB66ECF3EABE5A44E0D4C0CF4 - -00000000000000000000000000000000:9EDB48F7416AE0BD9802172515AA3D80:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFF0008159E43DB66ECF3EABE5A44E0D4C0CF5 - -00000000000000000000000000000000:84AEA377BDDC54012F710254A435E1D1:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFF8008159E43DB66ECF3EABE5A44E0D4C0CF6 - -00000000000000000000000000000000:4BEE75DC775926F27373A958BF64A168:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFC008159E43DB66ECF3EABE5A44E0D4C0CF7 - -00000000000000000000000000000000:76B563BA44BFF0D9CB460CD5E8D55C32:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE008159E43DB66ECF3EABE5A44E0D4C0CF8 - -00000000000000000000000000000000:0682EA4560113BE4D3F3E92256D2BAAC:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF008159E43DB66ECF3EABE5A44E0D4C0CF9 - -00000000000000000000000000000000:65D98A2BC1A84569FC553ED36C28FF45:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808159E43DB66ECF3EABE5A44E0D4C0CFA - -00000000000000000000000000000000:0AABEB6CE77559F813C8257E57938C2C:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC08159E43DB66ECF3EABE5A44E0D4C0CFB - -00000000000000000000000000000000:5ED815849F9F2480202FDAE7C05CC83B:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE08159E43DB66ECF3EABE5A44E0D4C0CFC - -00000000000000000000000000000000:5F453DBC5FED77520B0AFB71DAE3C083:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08159E43DB66ECF3EABE5A44E0D4C0CFD - -00000000000000000000000000000000:14CAA4D84D923CCDAD2CD1CCD0377833:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88159E43DB66ECF3EABE5A44E0D4C0CFE - -00000000000000000000000000000000:573691CD8E310DC33A645582BA51DE9A:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8159E43DB66ECF3EABE5A44E0D4C0CFF - -00000000000000000000000000000000:8B77DFB1C9BD1FBF4B379B159230A7A6:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8159E43DB66ECF3EABE5A44E0D4C0D00 - -00000000000000000000000000000000:CCAE97D6E56FBDA46C9B0DF5B6AF71C3:\ -E8BF7880FD391D95F3F83B700422E91B22ACDEC4D2D9E163\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8159E43DB66ECF3EABE5A44E0D4C0D01 - -[X9.31-RNG(AES-256)] -00000000000000000000000000000000:6C5EE8D10201D608874E6AE8C8A2BA79:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -8000000000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666C2 - -00000000000000000000000000000000:3790A9D44DE68EF0800837B32E2ED032:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -C000000000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666C3 - -00000000000000000000000000000000:72A1742C79E8B1D4F62E0669657F744D:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -E000000000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666C4 - -00000000000000000000000000000000:9E5708E79B379B9D393C766CFD802C98:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -F000000000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666C5 - -00000000000000000000000000000000:AF7A0A13DE0B16512986538D5FECDC7D:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -F800000000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666C6 - -00000000000000000000000000000000:D885CBF7B4E38B9FAC1C8EB625DDABCA:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FC00000000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666C7 - -00000000000000000000000000000000:7AEF038A328D1827D52DA4A36567C7BA:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FE00000000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666C8 - -00000000000000000000000000000000:14169D5DE6E79DEA20E261DA55DBA593:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FF00000000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666C9 - -00000000000000000000000000000000:DFE31312A96369CF41CAED493D4DFF4B:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FF80000000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666CA - -00000000000000000000000000000000:BAFFD64502B19D26DCA93D09E43D8036:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFC0000000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666CB - -00000000000000000000000000000000:8BDEF0F95AB8F3B5A591A78364B723C7:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFE0000000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666CC - -00000000000000000000000000000000:38145A8F807E13CB05B2810E752BABDE:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFF0000000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666CD - -00000000000000000000000000000000:98EA671222B7332AEA395F37A355B1CC:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFF8000000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666CE - -00000000000000000000000000000000:20C8AB02049C9987A7B00B4498B2C6E3:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFC000000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666CF - -00000000000000000000000000000000:67B8ACDE366BD5D064CB53C09EB0A95A:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFE000000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666D0 - -00000000000000000000000000000000:137721E4A673550141E2E3CF652A0819:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFF000000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666D1 - -00000000000000000000000000000000:29C0369E50A4B5494166E60E7E394149:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFF800000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666D2 - -00000000000000000000000000000000:09FAA6F94FE3DAFE3E10A38D8B9ABDE4:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFC00000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666D3 - -00000000000000000000000000000000:5F976E965ABC8C93D1C175AA750C16DC:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFE00000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666D4 - -00000000000000000000000000000000:25C386A980D1E75632566AD290FE3333:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFF00000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666D5 - -00000000000000000000000000000000:D0CB44688ADA0966204B3D53FA89D534:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFF80000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666D6 - -00000000000000000000000000000000:D2D11DD6ABE3B30BAECAADE50A2E9642:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFC0000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666D7 - -00000000000000000000000000000000:068451BECF49C9AD8BF47F176B154092:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFE0000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666D8 - -00000000000000000000000000000000:A8B505B0B75D061A1111FF97EE70CB2D:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFF0000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666D9 - -00000000000000000000000000000000:0479DBD05E14286F769AD495AE114D56:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFF8000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666DA - -00000000000000000000000000000000:9C62B0A336593C307F2144658DA20BA2:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFC000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666DB - -00000000000000000000000000000000:D68EFECC5CA3C1109769F14288202779:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFE000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666DC - -00000000000000000000000000000000:DE6A7F99826A4F60BD70A2839B269A39:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFF000000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666DD - -00000000000000000000000000000000:F03D08EDF438E946E056B6D085C27B28:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFF800000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666DE - -00000000000000000000000000000000:4DB84EFD6F81DC4B70CAB3E365C70B21:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFC00000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666DF - -00000000000000000000000000000000:2D78FEC4CA1917B5070D4B5246D5CD11:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFE00000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666E0 - -00000000000000000000000000000000:CE9228E22BD9E7A39FF05E194805F730:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFF00000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666E1 - -00000000000000000000000000000000:D8912B41584C29C70874CBB947833B38:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFF80000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666E2 - -00000000000000000000000000000000:83644C0D80557650F719DF1B28A0CB3F:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFC0000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666E3 - -00000000000000000000000000000000:032A88989BB02C57501CC05D4D72E8A1:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFE0000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666E4 - -00000000000000000000000000000000:7C3607B5F5193A51DF18A19CF4577795:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFF0000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666E5 - -00000000000000000000000000000000:76B055658ADF07D15422895951F692E0:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFF8000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666E6 - -00000000000000000000000000000000:7F87F363569F479DA806ABF988002705:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFC000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666E7 - -00000000000000000000000000000000:9A830D8126A8D39BA023B4F545670618:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFE000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666E8 - -00000000000000000000000000000000:7C0907F8FEBC6DCF1A4D83D420E5DC85:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFF000000000000000000000097B45F0EE0FB64AC3B8A1B9B750666E9 - -00000000000000000000000000000000:F84F6500F554CAF20FF785C28E70AA69:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFF800000000000000000000097B45F0EE0FB64AC3B8A1B9B750666EA - -00000000000000000000000000000000:876052A291745E5479FD0ADB65AB3CFD:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFC00000000000000000000097B45F0EE0FB64AC3B8A1B9B750666EB - -00000000000000000000000000000000:69F6A409470573A5DEB23744A9FE8C26:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFE00000000000000000000097B45F0EE0FB64AC3B8A1B9B750666EC - -00000000000000000000000000000000:455FF206B8BA6D99DDA0B0E645DD03A0:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFF00000000000000000000097B45F0EE0FB64AC3B8A1B9B750666ED - -00000000000000000000000000000000:A82E4437632E216EA6E5F75AEB6DC148:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFF80000000000000000000097B45F0EE0FB64AC3B8A1B9B750666EE - -00000000000000000000000000000000:A7B1E69A85CC0E01CD2F59E7AFAF790F:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFC0000000000000000000097B45F0EE0FB64AC3B8A1B9B750666EF - -00000000000000000000000000000000:68FFCB667FCD6113A1B3E6F20ADBADFE:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFE0000000000000000000097B45F0EE0FB64AC3B8A1B9B750666F0 - -00000000000000000000000000000000:CEE4E4C331CE6AF61D07617079420E4E:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFF0000000000000000000097B45F0EE0FB64AC3B8A1B9B750666F1 - -00000000000000000000000000000000:E7CFD60A04AE3875F6E460FE73FC151E:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFF8000000000000000000097B45F0EE0FB64AC3B8A1B9B750666F2 - -00000000000000000000000000000000:301E3DA5BD96188B3154AAC685EB8B6F:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFC000000000000000000097B45F0EE0FB64AC3B8A1B9B750666F3 - -00000000000000000000000000000000:12588D677D871E4B042F16E98693167F:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFE000000000000000000097B45F0EE0FB64AC3B8A1B9B750666F4 - -00000000000000000000000000000000:938DF998D725B8EF5363C99A82D447F8:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFF000000000000000000097B45F0EE0FB64AC3B8A1B9B750666F5 - -00000000000000000000000000000000:6588A7E9B2D3F82BEACB086A24F05730:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFF800000000000000000097B45F0EE0FB64AC3B8A1B9B750666F6 - -00000000000000000000000000000000:CA0BBDDD004301639B1644A8CB9360B2:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFC00000000000000000097B45F0EE0FB64AC3B8A1B9B750666F7 - -00000000000000000000000000000000:35B609CE89EE33F267A4E875FA4128F3:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFE00000000000000000097B45F0EE0FB64AC3B8A1B9B750666F8 - -00000000000000000000000000000000:BAC817B7C3E5B617FFC977F23BBF755B:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFF00000000000000000097B45F0EE0FB64AC3B8A1B9B750666F9 - -00000000000000000000000000000000:46487C6F7B5EEDCDAB5BB08234EE4C76:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFF80000000000000000097B45F0EE0FB64AC3B8A1B9B750666FA - -00000000000000000000000000000000:752D69F5FFAAB3D22A07B5E8CC02C7DA:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFC0000000000000000097B45F0EE0FB64AC3B8A1B9B750666FB - -00000000000000000000000000000000:46688ED5C008A8431D25FECADCAC511E:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFE0000000000000000097B45F0EE0FB64AC3B8A1B9B750666FC - -00000000000000000000000000000000:2A5BCBE76FE95C1274F4B9315D4286CE:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFF0000000000000000097B45F0EE0FB64AC3B8A1B9B750666FD - -00000000000000000000000000000000:C9BD29164997EB53E05D41B4A5654AE8:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFF8000000000000000097B45F0EE0FB64AC3B8A1B9B750666FE - -00000000000000000000000000000000:EB5C8D67F1B7A2183A0B196E8450B873:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFC000000000000000097B45F0EE0FB64AC3B8A1B9B750666FF - -00000000000000000000000000000000:CD9231AF1BB1CA82226F5C5852BA17C2:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFE000000000000000097B45F0EE0FB64AC3B8A1B9B75066700 - -00000000000000000000000000000000:5C0DA74392E5BE679DBD40FC95EE03D4:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFF000000000000000097B45F0EE0FB64AC3B8A1B9B75066701 - -00000000000000000000000000000000:786D6BA1C0BA6FC1AF0F11EC5875A1F5:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFF800000000000000097B45F0EE0FB64AC3B8A1B9B75066702 - -00000000000000000000000000000000:1F251DD8210AAEDCB79D4152369CD76B:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFC00000000000000097B45F0EE0FB64AC3B8A1B9B75066703 - -00000000000000000000000000000000:1B291C0DBDB2075E9B9C709A15016ED7:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFE00000000000000097B45F0EE0FB64AC3B8A1B9B75066704 - -00000000000000000000000000000000:8465C72B7319CD4D0E35A05D49C5508D:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFF00000000000000097B45F0EE0FB64AC3B8A1B9B75066705 - -00000000000000000000000000000000:07F04A0749B6DE3B5C668729B28AFB54:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFF80000000000000097B45F0EE0FB64AC3B8A1B9B75066706 - -00000000000000000000000000000000:6C97CB048F5B4E7C32196C14E678A0E1:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFC0000000000000097B45F0EE0FB64AC3B8A1B9B75066707 - -00000000000000000000000000000000:BE029441D7AF7EE8CE7310F6F5006809:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFE0000000000000097B45F0EE0FB64AC3B8A1B9B75066708 - -00000000000000000000000000000000:31074BC8D063E87E2FF1F9E0EAA404D9:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFF0000000000000097B45F0EE0FB64AC3B8A1B9B75066709 - -00000000000000000000000000000000:37A677D029773FE867F07020F65F0246:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFF8000000000000097B45F0EE0FB64AC3B8A1B9B7506670A - -00000000000000000000000000000000:89DF0BD0FA7D852EAC6B564AB8E6F3F3:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFC000000000000097B45F0EE0FB64AC3B8A1B9B7506670B - -00000000000000000000000000000000:CA7747BEFE61CFA622F7A821116E43C2:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFE000000000000097B45F0EE0FB64AC3B8A1B9B7506670C - -00000000000000000000000000000000:82D1BA96DF72AC93CD57E9234509FB08:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFF000000000000097B45F0EE0FB64AC3B8A1B9B7506670D - -00000000000000000000000000000000:299ECF7AAFADB0F2B21812B8B2977470:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFF800000000000097B45F0EE0FB64AC3B8A1B9B7506670E - -00000000000000000000000000000000:7A7A2015F797F943F75F70994F43E523:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFC00000000000097B45F0EE0FB64AC3B8A1B9B7506670F - -00000000000000000000000000000000:88F208943716B38D25EC02E164357DBF:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFE00000000000097B45F0EE0FB64AC3B8A1B9B75066710 - -00000000000000000000000000000000:2420712BC5A2187E71436DF0C7D9E5D7:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFF00000000000097B45F0EE0FB64AC3B8A1B9B75066711 - -00000000000000000000000000000000:A95EC3F73418436AD057F861BBC1811C:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFF80000000000097B45F0EE0FB64AC3B8A1B9B75066712 - -00000000000000000000000000000000:713E1A0B1C56DD8D219921C8FEB462EF:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFC0000000000097B45F0EE0FB64AC3B8A1B9B75066713 - -00000000000000000000000000000000:B5AA2282CC8D2F0003A6492CDE8BD888:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFE0000000000097B45F0EE0FB64AC3B8A1B9B75066714 - -00000000000000000000000000000000:BD38241AF3C4E5CC844CED745CF65B7D:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFF0000000000097B45F0EE0FB64AC3B8A1B9B75066715 - -00000000000000000000000000000000:D6DF902987B9C3D5826BA71F1A5FA271:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFF8000000000097B45F0EE0FB64AC3B8A1B9B75066716 - -00000000000000000000000000000000:DCD0CA7E3C0422E4723AE53641DF1E47:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFC000000000097B45F0EE0FB64AC3B8A1B9B75066717 - -00000000000000000000000000000000:757E483E335672145C0C0C2097DACDA5:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFE000000000097B45F0EE0FB64AC3B8A1B9B75066718 - -00000000000000000000000000000000:3BAE296E2434A5331383085CC7704988:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFF000000000097B45F0EE0FB64AC3B8A1B9B75066719 - -00000000000000000000000000000000:F2CE3B5AA3DCCAF64722D1AE10DE005E:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFF800000000097B45F0EE0FB64AC3B8A1B9B7506671A - -00000000000000000000000000000000:58DEC1DEF6FD5E09D814AE6F8641A219:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFC00000000097B45F0EE0FB64AC3B8A1B9B7506671B - -00000000000000000000000000000000:2F28B31722EE508F8679234F458BDA26:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFE00000000097B45F0EE0FB64AC3B8A1B9B7506671C - -00000000000000000000000000000000:B89DE1B9E3937F115EEE36CE1C1BDD74:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFF00000000097B45F0EE0FB64AC3B8A1B9B7506671D - -00000000000000000000000000000000:B6B987E6C49B5BC452F97991838DDCEB:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFF80000000097B45F0EE0FB64AC3B8A1B9B7506671E - -00000000000000000000000000000000:E363D02F055C097BF19CD491654FF798:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFC0000000097B45F0EE0FB64AC3B8A1B9B7506671F - -00000000000000000000000000000000:654A5415175E6343672AE4C63D6643A2:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFE0000000097B45F0EE0FB64AC3B8A1B9B75066720 - -00000000000000000000000000000000:ED2313EFC077667BD26DB08F581F3C74:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFF0000000097B45F0EE0FB64AC3B8A1B9B75066721 - -00000000000000000000000000000000:FC6348FC174F45C96F5A3C78C13B220B:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFF8000000097B45F0EE0FB64AC3B8A1B9B75066722 - -00000000000000000000000000000000:65AEDCD56236E056217C94642BFEF8BC:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFC000000097B45F0EE0FB64AC3B8A1B9B75066723 - -00000000000000000000000000000000:920A3A154BD41CB775BA25C2EB3A6885:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFE000000097B45F0EE0FB64AC3B8A1B9B75066724 - -00000000000000000000000000000000:07953BBE0BE803D75E3B8A0EDBEF1D36:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFF000000097B45F0EE0FB64AC3B8A1B9B75066725 - -00000000000000000000000000000000:A0BCB7A68C7C29E13306E5BD11AD6746:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFF800000097B45F0EE0FB64AC3B8A1B9B75066726 - -00000000000000000000000000000000:6DEB2CEA2F4AC6AADB7D3A22A3DA0B65:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFC00000097B45F0EE0FB64AC3B8A1B9B75066727 - -00000000000000000000000000000000:9D70BC79E81D6279EDCBEFD2C0EF1C5D:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFE00000097B45F0EE0FB64AC3B8A1B9B75066728 - -00000000000000000000000000000000:AEF03890D852369F48651CF873E30710:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFF00000097B45F0EE0FB64AC3B8A1B9B75066729 - -00000000000000000000000000000000:F189987D9AA73395765EF29A72B8B058:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFF80000097B45F0EE0FB64AC3B8A1B9B7506672A - -00000000000000000000000000000000:87F833C8D5200898FF3B6BDD0B869F94:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFC0000097B45F0EE0FB64AC3B8A1B9B7506672B - -00000000000000000000000000000000:5A7B8BB4F19D6DAC3AB19C2F9E2C65DA:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFE0000097B45F0EE0FB64AC3B8A1B9B7506672C - -00000000000000000000000000000000:CBDBA79302A31040BEB82623B832DF92:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFF0000097B45F0EE0FB64AC3B8A1B9B7506672D - -00000000000000000000000000000000:38E92CC8333025DC803CE15A2628E34A:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFF8000097B45F0EE0FB64AC3B8A1B9B7506672E - -00000000000000000000000000000000:FB033A85B5CD43564D80C0280D70B92F:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFC000097B45F0EE0FB64AC3B8A1B9B7506672F - -00000000000000000000000000000000:21EC2A86B6A717DB2A3FC7F1DFF2ECEB:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFE000097B45F0EE0FB64AC3B8A1B9B75066730 - -00000000000000000000000000000000:7DDECD08BA8101F3CD61C42C33B987A7:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFF000097B45F0EE0FB64AC3B8A1B9B75066731 - -00000000000000000000000000000000:784E688C7D87FC3C9D31B2B45885DB6E:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFF800097B45F0EE0FB64AC3B8A1B9B75066732 - -00000000000000000000000000000000:08610008A6FF151C4DD5DE24D578A284:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFC00097B45F0EE0FB64AC3B8A1B9B75066733 - -00000000000000000000000000000000:91F83EC50CE5A5885659D15A3A50FF3E:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFE00097B45F0EE0FB64AC3B8A1B9B75066734 - -00000000000000000000000000000000:B4CE519B707EA0791AF63F4344207CB4:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFF00097B45F0EE0FB64AC3B8A1B9B75066735 - -00000000000000000000000000000000:94D92918083BF232F8D6580E6A0DEF10:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFF80097B45F0EE0FB64AC3B8A1B9B75066736 - -00000000000000000000000000000000:F62EE1B2DB6D84D57BEFC1C99C7F4B60:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0097B45F0EE0FB64AC3B8A1B9B75066737 - -00000000000000000000000000000000:5E4B8514D4CDFDD77796B3ED0E310AFE:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0097B45F0EE0FB64AC3B8A1B9B75066738 - -00000000000000000000000000000000:3175BBBFE5ED208D189E6B25ADEEB78B:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0097B45F0EE0FB64AC3B8A1B9B75066739 - -00000000000000000000000000000000:5AC67D25AA2BEFA746FCD6B3FF5BE1DA:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8097B45F0EE0FB64AC3B8A1B9B7506673A - -00000000000000000000000000000000:6842AA6307CC06A719828A0039FFC800:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC097B45F0EE0FB64AC3B8A1B9B7506673B - -00000000000000000000000000000000:664C66BDE4DEA06C4A79E2EC36DBA148:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE097B45F0EE0FB64AC3B8A1B9B7506673C - -00000000000000000000000000000000:F14CE6B410049F5601E8426C4DBAB6F8:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF097B45F0EE0FB64AC3B8A1B9B7506673D - -00000000000000000000000000000000:262051DCA403EFBABE2B6BD45C9952D5:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF897B45F0EE0FB64AC3B8A1B9B7506673E - -00000000000000000000000000000000:4B4D035F1419C491D8FB486510EA97D8:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC97B45F0EE0FB64AC3B8A1B9B7506673F - -00000000000000000000000000000000:152AF024DA001782BFEB875224F2622E:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE97B45F0EE0FB64AC3B8A1B9B75066740 - -00000000000000000000000000000000:8D7040135B3F89F28277A2527111CF36:\ -A53E052EA80A62133EB26B3372A71EA2CCDDF10E1A7CB80B6FD9C8A86DA45D46\ -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97B45F0EE0FB64AC3B8A1B9B75066741 - -[X9.31-RNG(TripleDES)] - -# Two-key TDES -0000000000000000:667BC708CC798ABE:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -8000000000000000F03E2147D5D7BC7F - -0000000000000000:E721EE3C0A2D3886:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -C000000000000000F03E2147D5D7BC80 - -0000000000000000:CB0FA40E1752F8B4:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -E000000000000000F03E2147D5D7BC81 - -0000000000000000:DF0351A5B44144A8:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -F000000000000000F03E2147D5D7BC82 - -0000000000000000:2110E29B7345A88D:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -F800000000000000F03E2147D5D7BC83 - -0000000000000000:78B751774AF554FB:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FC00000000000000F03E2147D5D7BC84 - -0000000000000000:E6BC50D6F128D30B:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FE00000000000000F03E2147D5D7BC85 - -0000000000000000:6B7A3116248AE121:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FF00000000000000F03E2147D5D7BC86 - -0000000000000000:B9B973F5CFA262BD:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FF80000000000000F03E2147D5D7BC87 - -0000000000000000:CF0A02808E4416F5:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFC0000000000000F03E2147D5D7BC88 - -0000000000000000:57AAA1031665A0F6:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFE0000000000000F03E2147D5D7BC89 - -0000000000000000:C5DA694741C400B8:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFF0000000000000F03E2147D5D7BC8A - -0000000000000000:827985C4BEED13AD:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFF8000000000000F03E2147D5D7BC8B - -0000000000000000:4C959F98D557367B:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFC000000000000F03E2147D5D7BC8C - -0000000000000000:FEB783CEC07F19E0:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFE000000000000F03E2147D5D7BC8D - -0000000000000000:B2729B4BC2D30E9A:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFF000000000000F03E2147D5D7BC8E - -0000000000000000:09F52DED6D12850F:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFF800000000000F03E2147D5D7BC8F - -0000000000000000:84255B4BEA0AD20E:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFC00000000000F03E2147D5D7BC90 - -0000000000000000:D85EC40C40BCA823:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFE00000000000F03E2147D5D7BC91 - -0000000000000000:66E000E798487EDB:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFF00000000000F03E2147D5D7BC92 - -0000000000000000:DA51E314770DC073:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFF80000000000F03E2147D5D7BC93 - -0000000000000000:3C9876ABFCD744E1:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFC0000000000F03E2147D5D7BC94 - -0000000000000000:35C48069FB403A05:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFE0000000000F03E2147D5D7BC95 - -0000000000000000:167E7A420F8CE115:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFF0000000000F03E2147D5D7BC96 - -0000000000000000:3F5F4A0BA480A18B:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFF8000000000F03E2147D5D7BC97 - -0000000000000000:F8A5AB2EFFBE6588:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFC000000000F03E2147D5D7BC98 - -0000000000000000:49D255DCA42D2980:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFE000000000F03E2147D5D7BC99 - -0000000000000000:01FD7EA6AC37D847:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFF000000000F03E2147D5D7BC9A - -0000000000000000:94A77C76071734A9:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFF800000000F03E2147D5D7BC9B - -0000000000000000:BF7E82A8F9ACEE71:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFC00000000F03E2147D5D7BC9C - -0000000000000000:F7CD2DB61C062B70:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFE00000000F03E2147D5D7BC9D - -0000000000000000:5D5FC3205EA443CB:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFF00000000F03E2147D5D7BC9E - -0000000000000000:177BA1ABE977A3BC:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFF80000000F03E2147D5D7BC9F - -0000000000000000:A216FB8EBB474E43:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFC0000000F03E2147D5D7BCA0 - -0000000000000000:EC01B37568C1C8E6:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFE0000000F03E2147D5D7BCA1 - -0000000000000000:5C99E5EC34992209:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFF0000000F03E2147D5D7BCA2 - -0000000000000000:7CA695FA30B7274C:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFF8000000F03E2147D5D7BCA3 - -0000000000000000:C4FEE5C7491D331A:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFC000000F03E2147D5D7BCA4 - -0000000000000000:E478C7F21574449D:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFE000000F03E2147D5D7BCA5 - -0000000000000000:A11D4FBD732DFD01:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFF000000F03E2147D5D7BCA6 - -0000000000000000:2C44DD477C786C0D:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFF800000F03E2147D5D7BCA7 - -0000000000000000:850D5D9DA85BC0FF:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFC00000F03E2147D5D7BCA8 - -0000000000000000:A3A6DDB46772D1B1:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFE00000F03E2147D5D7BCA9 - -0000000000000000:97FF98957CF38B00:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFF00000F03E2147D5D7BCAA - -0000000000000000:BC9E368D91CD2271:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFF80000F03E2147D5D7BCAB - -0000000000000000:6B47A38A2BBDD3C8:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFFC0000F03E2147D5D7BCAC - -0000000000000000:123A41498F2F64E0:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFFE0000F03E2147D5D7BCAD - -0000000000000000:7362426810CB6EAF:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFFF0000F03E2147D5D7BCAE - -0000000000000000:42FB3B0EC5DBC02C:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFFF8000F03E2147D5D7BCAF - -0000000000000000:B7524AB40D565D49:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFFFC000F03E2147D5D7BCB0 - -0000000000000000:811C84CD8E223FB5:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFFFE000F03E2147D5D7BCB1 - -0000000000000000:16DDAFC9DBA1194D:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFFFF000F03E2147D5D7BCB2 - -0000000000000000:390B6AB9069DC5B4:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFFFF800F03E2147D5D7BCB3 - -0000000000000000:009F167DC8664555:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFFFFC00F03E2147D5D7BCB4 - -0000000000000000:47645D90B39B319F:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFFFFE00F03E2147D5D7BCB5 - -0000000000000000:D75CEC7FBA2064DF:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFFFFF00F03E2147D5D7BCB6 - -0000000000000000:F59DDE3C02AD7C11:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFFFFF80F03E2147D5D7BCB7 - -0000000000000000:35AC2155446CCE9F:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFFFFFC0F03E2147D5D7BCB8 - -0000000000000000:1DFEBF13320F7758:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFFFFFE0F03E2147D5D7BCB9 - -0000000000000000:017CA3327FC53831:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFFFFFF0F03E2147D5D7BCBA - -0000000000000000:999A450B6E2040B9:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFFFFFF8F03E2147D5D7BCBB - -0000000000000000:49C1CAAC8C229EDE:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFFFFFFCF03E2147D5D7BCBC - -0000000000000000:2C9D8D0F5D014F7B:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFFFFFFEF03E2147D5D7BCBD - -0000000000000000:16D7C77223C2FAED:\ -E92C8F13F897BF76193DF2DAAB98DF49E92C8F13F897BF76\ -FFFFFFFFFFFFFFFFF03E2147D5D7BCBE - -# Three-key TDES -0000000000000000:4AACAD89C236FA2B:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -80000000000000000167E25F4EBC7336 - -0000000000000000:A255A79AAB2211BA:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -C0000000000000000167E25F4EBC7337 - -0000000000000000:061EFE779DAB818D:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -E0000000000000000167E25F4EBC7338 - -0000000000000000:23214F0B19BF16B4:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -F0000000000000000167E25F4EBC7339 - -0000000000000000:52D38F9D53B530AF:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -F8000000000000000167E25F4EBC733A - -0000000000000000:B9F4BA694FE9BC3E:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FC000000000000000167E25F4EBC733B - -0000000000000000:2384398BBFBD3010:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FE000000000000000167E25F4EBC733C - -0000000000000000:D33ECF451E367919:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FF000000000000000167E25F4EBC733D - -0000000000000000:FAA94CA00765794C:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FF800000000000000167E25F4EBC733E - -0000000000000000:14C1303AAEE1B314:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFC00000000000000167E25F4EBC733F - -0000000000000000:DC3A4F07DC68AC93:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFE00000000000000167E25F4EBC7340 - -0000000000000000:A4872C92A093B379:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFF00000000000000167E25F4EBC7341 - -0000000000000000:3EE74CDFFBEED032:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFF80000000000000167E25F4EBC7342 - -0000000000000000:328FD9C77EDC78BA:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFC0000000000000167E25F4EBC7343 - -0000000000000000:A5D36BD81D93CB71:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFE0000000000000167E25F4EBC7344 - -0000000000000000:D0765A50A9CAE3ED:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFF0000000000000167E25F4EBC7345 - -0000000000000000:15F3441B4AC4F802:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFF8000000000000167E25F4EBC7346 - -0000000000000000:01463E8F161851C2:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFC000000000000167E25F4EBC7347 - -0000000000000000:312E7CB57F08CBC2:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFE000000000000167E25F4EBC7348 - -0000000000000000:D9688FEF358FE5DF:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFF000000000000167E25F4EBC7349 - -0000000000000000:30B34034C46E22B5:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFF800000000000167E25F4EBC734A - -0000000000000000:A7CA7218CA7D5F9D:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFC00000000000167E25F4EBC734B - -0000000000000000:CE41C7659B6BFDA3:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFE00000000000167E25F4EBC734C - -0000000000000000:B8EED0C6DFB8B76B:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFF00000000000167E25F4EBC734D - -0000000000000000:A0C514277C70278A:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFF80000000000167E25F4EBC734E - -0000000000000000:7A8F57670E11D5D8:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFC0000000000167E25F4EBC734F - -0000000000000000:35AF5134EC18E0FC:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFE0000000000167E25F4EBC7350 - -0000000000000000:3034436B0E8B1B4D:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFF0000000000167E25F4EBC7351 - -0000000000000000:B1DC17DE141AD9EC:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFF8000000000167E25F4EBC7352 - -0000000000000000:40D2868DCF3BDA80:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFC000000000167E25F4EBC7353 - -0000000000000000:D3F365825B585FF6:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFE000000000167E25F4EBC7354 - -0000000000000000:952046F8E93A268A:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFF000000000167E25F4EBC7355 - -0000000000000000:97D96E48A9216264:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFF800000000167E25F4EBC7356 - -0000000000000000:DBEE3AD97B87915C:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFC00000000167E25F4EBC7357 - -0000000000000000:94093248683E084F:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFE00000000167E25F4EBC7358 - -0000000000000000:3133C57CE22A28AB:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFF00000000167E25F4EBC7359 - -0000000000000000:B32CC354449589E1:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFF80000000167E25F4EBC735A - -0000000000000000:979F03CF867FDA3C:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFC0000000167E25F4EBC735B - -0000000000000000:6BFECB79437E62F4:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFE0000000167E25F4EBC735C - -0000000000000000:BAFB5D5B9BE92EEC:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFF0000000167E25F4EBC735D - -0000000000000000:D4FB2CAF0F114F42:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFF8000000167E25F4EBC735E - -0000000000000000:3F910FDBC4C74698:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFC000000167E25F4EBC735F - -0000000000000000:516D7E7739908FED:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFE000000167E25F4EBC7360 - -0000000000000000:50DE403CB1FB1733:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFF000000167E25F4EBC7361 - -0000000000000000:1A91443B2892FE8C:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFF800000167E25F4EBC7362 - -0000000000000000:F3A490F9FE853450:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFFC00000167E25F4EBC7363 - -0000000000000000:B7F8398C9D32149C:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFFE00000167E25F4EBC7364 - -0000000000000000:179C6729EBDE6A46:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFFF00000167E25F4EBC7365 - -0000000000000000:34520C49E68D307B:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFFF80000167E25F4EBC7366 - -0000000000000000:B6C2F4E4763DF833:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFFFC0000167E25F4EBC7367 - -0000000000000000:F911A2AB5E1F0E49:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFFFE0000167E25F4EBC7368 - -0000000000000000:307C3C11DF3EE8EA:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFFFF0000167E25F4EBC7369 - -0000000000000000:C26A5A02596BFE8D:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFFFF8000167E25F4EBC736A - -0000000000000000:B44B68C5BE17352C:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFFFFC000167E25F4EBC736B - -0000000000000000:3779CEB11398375F:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFFFFE000167E25F4EBC736C - -0000000000000000:7A9EF507F43BD31C:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFFFFF000167E25F4EBC736D - -0000000000000000:85CD4D72D2664C70:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFFFFF800167E25F4EBC736E - -0000000000000000:9EB57EACAB2B38C8:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFFFFFC00167E25F4EBC736F - -0000000000000000:E521B274CC7EC06F:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFFFFFE00167E25F4EBC7370 - -0000000000000000:50148A63F3D39097:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFFFFFF00167E25F4EBC7371 - -0000000000000000:6DCE0D8E770CF809:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFFFFFF80167E25F4EBC7372 - -0000000000000000:CAF9334B5A606C31:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFFFFFFC0167E25F4EBC7373 - -0000000000000000:1088488A43D9ACAD:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFFFFFFE0167E25F4EBC7374 - -0000000000000000:F922C4B2357E9034:\ -5E5B890B133B345494AB15F75EB30757972667C862C4BF5E\ -FFFFFFFFFFFFFFFF0167E25F4EBC7375 - diff --git a/src/botan/checks/validate.h b/src/botan/checks/validate.h deleted file mode 100644 index 9e34d64fb..000000000 --- a/src/botan/checks/validate.h +++ /dev/null @@ -1,31 +0,0 @@ - -#ifndef BOTAN_TEST_VALIDATE_H__ -#define BOTAN_TEST_VALIDATE_H__ - -#include -#include -#include - -using Botan::RandomNumberGenerator; - -using Botan::u32bit; - -u32bit do_validation_tests(const std::string&, - RandomNumberGenerator& rng, - bool = true); - -u32bit do_bigint_tests(const std::string&, - RandomNumberGenerator& rng); - -u32bit do_pk_validation_tests(const std::string&, - RandomNumberGenerator&); - -void do_ec_tests(RandomNumberGenerator& rng); - -u32bit do_ecdsa_tests(RandomNumberGenerator& rng); -u32bit do_ecdh_tests(RandomNumberGenerator& rng); -u32bit do_cvc_tests(RandomNumberGenerator& rng); - -void do_x509_tests(RandomNumberGenerator&); - -#endif diff --git a/src/botan/checks/x509.cpp b/src/botan/checks/x509.cpp deleted file mode 100644 index 8c6cd8187..000000000 --- a/src/botan/checks/x509.cpp +++ /dev/null @@ -1,248 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - - -#include - -#if defined(BOTAN_HAS_RSA) - #include -#endif - -#if defined(BOTAN_HAS_DSA) - #include -#endif - -#if defined(BOTAN_HAS_ECDSA) - #include -#endif - -#if defined(BOTAN_HAS_X509_CERTIFICATES) - #include - #include - #include - #include -#endif - -using namespace Botan; - -#include -#include - -#include "validate.h" -#include "common.h" - -#if defined(BOTAN_HAS_X509_CERTIFICATES) && \ - defined(BOTAN_HAS_RSA) && \ - defined(BOTAN_HAS_DSA) - -namespace { - -u64bit key_id(const Public_Key* key) - { - Pipe pipe(new Hash_Filter("SHA-1", 8)); - pipe.start_msg(); - pipe.write(key->algo_name()); - pipe.write(key->algorithm_identifier().parameters); - pipe.write(key->x509_subject_public_key()); - pipe.end_msg(); - - SecureVector output = pipe.read_all(); - - if(output.size() != 8) - throw Internal_Error("Public_Key::key_id: Incorrect output size"); - - u64bit id = 0; - for(u32bit j = 0; j != 8; ++j) - id = (id << 8) | output[j]; - return id; - } - - -/* Return some option sets */ -X509_Cert_Options ca_opts() - { - X509_Cert_Options opts("Test CA/US/Botan Project/Testing"); - - opts.uri = "http://botan.randombit.net"; - opts.dns = "botan.randombit.net"; - opts.email = "testing@randombit.net"; - - opts.CA_key(1); - - return opts; - } - -X509_Cert_Options req_opts1() - { - X509_Cert_Options opts("Test User 1/US/Botan Project/Testing"); - - opts.uri = "http://botan.randombit.net"; - opts.dns = "botan.randombit.net"; - opts.email = "testing@randombit.net"; - - return opts; - } - -X509_Cert_Options req_opts2() - { - X509_Cert_Options opts("Test User 2/US/Botan Project/Testing"); - - opts.uri = "http://botan.randombit.net"; - opts.dns = "botan.randombit.net"; - opts.email = "testing@randombit.net"; - - opts.add_ex_constraint("PKIX.EmailProtection"); - - return opts; - } - -u32bit check_against_copy(const Private_Key& orig, - RandomNumberGenerator& rng) - { - Private_Key* copy_priv = PKCS8::copy_key(orig, rng); - Public_Key* copy_pub = X509::copy_key(orig); - - const std::string passphrase= "I need work! -Mr. T"; - DataSource_Memory enc_source(PKCS8::PEM_encode(orig, rng, passphrase)); - Private_Key* copy_priv_enc = PKCS8::load_key(enc_source, rng, - passphrase); - - u64bit orig_id = key_id(&orig); - u64bit pub_id = key_id(copy_pub); - u64bit priv_id = key_id(copy_priv); - u64bit priv_enc_id = key_id(copy_priv_enc); - - delete copy_pub; - delete copy_priv; - delete copy_priv_enc; - - if(orig_id != pub_id || orig_id != priv_id || orig_id != priv_enc_id) - { - std::cout << "Failed copy check for " << orig.algo_name() << "\n"; - return 1; - } - return 0; - } - -} - -void do_x509_tests(RandomNumberGenerator& rng) - { - std::cout << "Testing X.509 CA/CRL/cert/cert request: " << std::flush; - - std::string hash_fn = "SHA-256"; - - /* Create the CA's key and self-signed cert */ - std::cout << '.' << std::flush; - RSA_PrivateKey ca_key(rng, 1024); - - std::cout << '.' << std::flush; - X509_Certificate ca_cert = X509::create_self_signed_cert(ca_opts(), - ca_key, - hash_fn, - rng); - std::cout << '.' << std::flush; - - /* Create user #1's key and cert request */ - std::cout << '.' << std::flush; - DSA_PrivateKey user1_key(rng, DL_Group("dsa/jce/1024")); - - std::cout << '.' << std::flush; - PKCS10_Request user1_req = X509::create_cert_req(req_opts1(), - user1_key, - "SHA-1", - rng); - - /* Create user #2's key and cert request */ - std::cout << '.' << std::flush; -#if defined(BOTAN_HAS_ECDSA) - EC_Group ecc_domain(OID("1.2.840.10045.3.1.7")); - ECDSA_PrivateKey user2_key(rng, ecc_domain); -#else - RSA_PrivateKey user2_key(rng, 1024); -#endif - - std::cout << '.' << std::flush; - PKCS10_Request user2_req = X509::create_cert_req(req_opts2(), - user2_key, - hash_fn, - rng); - - /* Create the CA object */ - std::cout << '.' << std::flush; - X509_CA ca(ca_cert, ca_key, hash_fn); - std::cout << '.' << std::flush; - - /* Sign the requests to create the certs */ - std::cout << '.' << std::flush; - X509_Certificate user1_cert = - ca.sign_request(user1_req, rng, - X509_Time("2008-01-01"), X509_Time("2100-01-01")); - - std::cout << '.' << std::flush; - X509_Certificate user2_cert = ca.sign_request(user2_req, rng, - X509_Time("2008-01-01"), - X509_Time("2100-01-01")); - std::cout << '.' << std::flush; - - X509_CRL crl1 = ca.new_crl(rng); - - /* Verify the certs */ - X509_Store store; - - store.add_cert(ca_cert, true); // second arg == true: trusted CA cert - - std::cout << '.' << std::flush; - if(store.validate_cert(user1_cert) != VERIFIED) - std::cout << "\nFAILED: User cert #1 did not validate" << std::endl; - - if(store.validate_cert(user2_cert) != VERIFIED) - std::cout << "\nFAILED: User cert #2 did not validate" << std::endl; - - if(store.add_crl(crl1) != VERIFIED) - std::cout << "\nFAILED: CRL #1 did not validate" << std::endl; - - std::vector revoked; - revoked.push_back(CRL_Entry(user1_cert, CESSATION_OF_OPERATION)); - revoked.push_back(user2_cert); - - X509_CRL crl2 = ca.update_crl(crl1, revoked, rng); - - if(store.add_crl(crl2) != VERIFIED) - std::cout << "\nFAILED: CRL #2 did not validate" << std::endl; - - if(store.validate_cert(user1_cert) != CERT_IS_REVOKED) - std::cout << "\nFAILED: User cert #1 was not revoked" << std::endl; - - if(store.validate_cert(user2_cert) != CERT_IS_REVOKED) - std::cout << "\nFAILED: User cert #2 was not revoked" << std::endl; - - revoked.clear(); - revoked.push_back(CRL_Entry(user1_cert, REMOVE_FROM_CRL)); - X509_CRL crl3 = ca.update_crl(crl2, revoked, rng); - - if(store.add_crl(crl3) != VERIFIED) - std::cout << "\nFAILED: CRL #3 did not validate" << std::endl; - - if(store.validate_cert(user1_cert) != VERIFIED) - std::cout << "\nFAILED: User cert #1 was not un-revoked" << std::endl; - - check_against_copy(ca_key, rng); - check_against_copy(user1_key, rng); - check_against_copy(user2_key, rng); - - std::cout << std::endl; - } - -#else - -void do_x509_tests(RandomNumberGenerator&) - { - std::cout << "Skipping Botan X.509 tests (disabled in build)\n"; - } - -#endif - diff --git a/src/botan/configure.py b/src/botan/configure.py deleted file mode 100755 index f0559a2e4..000000000 --- a/src/botan/configure.py +++ /dev/null @@ -1,1893 +0,0 @@ -#!/usr/bin/env python - -""" -Configuration program for botan (http://botan.randombit.net/) - (C) 2009-2011 Jack Lloyd - Distributed under the terms of the Botan license - -Tested with CPython 2.6, 2.7, 3.1 and PyPy 1.5 - -Python 2.5 works if you change the exception catching syntax: - perl -pi -e 's/except (.*) as (.*):/except $1, $2:/g' configure.py - -Jython - Target detection does not work (use --os and --cpu) - -CPython 2.4 and earlier are not supported - -Has not been tested with IronPython -""" - -import sys -import os -import os.path -import platform -import re -import shlex -import shutil -import string -import subprocess -import logging -import getpass -import time -import errno -import optparse - -# Avoid useless botan_version.pyc (Python 2.6 or higher) -if 'dont_write_bytecode' in sys.__dict__: - sys.dont_write_bytecode = True - -import botan_version - -def flatten(l): - return sum(l, []) - -def get_vc_revision(): - try: - mtn = subprocess.Popen(['mtn', 'automate', 'heads'], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - universal_newlines=True) - - (stdout, stderr) = mtn.communicate() - - if mtn.returncode != 0: - logging.debug('Error getting rev from monotone - %d (%s)' - % (mtn.returncode, stderr)) - return 'unknown' - - rev = str(stdout).strip() - logging.debug('Monotone reported revision %s' % (rev)) - - return 'mtn:' + rev - except OSError as e: - logging.debug('Error getting rev from monotone - %s' % (e[1])) - return 'unknown' - except Exception as e: - logging.debug('Error getting rev from monotone - %s' % (e)) - return 'unknown' - - -class BuildConfigurationInformation(object): - - """ - Version information - """ - version_major = botan_version.release_major - version_minor = botan_version.release_minor - version_patch = botan_version.release_patch - version_so_rev = botan_version.release_so_abi_rev - - version_datestamp = botan_version.release_datestamp - - version_vc_rev = botan_version.release_vc_rev - version_string = '%d.%d.%d' % (version_major, version_minor, version_patch) - - """ - Constructor - """ - def __init__(self, options, modules): - - if self.version_vc_rev is None: - self.version_vc_rev = get_vc_revision() - - self.build_dir = os.path.join(options.with_build_dir, 'build') - - self.checkobj_dir = os.path.join(self.build_dir, 'checks') - self.libobj_dir = os.path.join(self.build_dir, 'lib') - - self.python_dir = os.path.join(options.src_dir, 'wrap', 'python') - - self.boost_python = options.boost_python - - self.doc_output_dir = os.path.join(self.build_dir, 'docs') - - self.pyobject_dir = os.path.join(self.build_dir, 'python') - - self.include_dir = os.path.join(self.build_dir, 'include') - self.botan_include_dir = os.path.join(self.include_dir, 'botan') - self.internal_include_dir = os.path.join(self.botan_include_dir, 'internal') - - self.sources = sorted(flatten([mod.sources() for mod in modules])) - self.internal_headers = sorted(flatten([m.internal_headers() for m in modules])) - - if options.via_amalgamation: - self.build_sources = ['botan_all.cpp'] - self.build_internal_headers = [] - else: - self.build_sources = self.sources - self.build_internal_headers = self.internal_headers - - self.public_headers = sorted(flatten([m.public_headers() for m in modules])) - - checks_dir = os.path.join(options.base_dir, 'checks') - - self.check_sources = sorted( - [os.path.join(checks_dir, file) for file in os.listdir(checks_dir) - if file.endswith('.cpp')]) - - self.python_sources = sorted( - [os.path.join(self.python_dir, file) - for file in os.listdir(self.python_dir) - if file.endswith('.cpp')]) - - self.manual_dir = os.path.join(self. doc_output_dir, 'manual') - - def build_doc_commands(): - yield '$(COPY) readme.txt %s' % (self.doc_output_dir) - - if options.with_sphinx: - yield 'sphinx-build $(SPHINX_OPTS) -b html doc %s' % ( - self.manual_dir) - else: - yield '$(COPY) doc/*.txt %s' % (self.manual_dir) - - if options.with_doxygen: - yield 'doxygen %s/botan.doxy' % (self.build_dir) - - self.build_doc_commands = '\n'.join(['\t' + s for s in build_doc_commands()]) - - def build_dirs(): - yield self.checkobj_dir - yield self.libobj_dir - yield self.botan_include_dir - yield self.internal_include_dir - yield os.path.join(self.doc_output_dir, 'manual') - if options.with_doxygen: - yield os.path.join(self.doc_output_dir, 'doxygen') - - if self.boost_python: - yield self.pyobject_dir - - self.build_dirs = list(build_dirs()) - - def pkg_config_file(self): - return 'botan-%d.%d.pc' % (self.version_major, - self.version_minor) - - def config_shell_script(self): - return 'botan-config-%d.%d' % (self.version_major, - self.version_minor) - - def username(self): - return getpass.getuser() - - def hostname(self): - return platform.node() - - def timestamp(self): - return time.ctime() - -""" -Handle command line options -""" -def process_command_line(args): - - parser = optparse.OptionParser( - formatter = optparse.IndentedHelpFormatter(max_help_position = 50), - version = BuildConfigurationInformation.version_string) - - parser.add_option('--verbose', action='store_true', default=False, - help='Show debug messages') - parser.add_option('--quiet', action='store_true', default=False, - help='Show only warnings and errors') - - target_group = optparse.OptionGroup(parser, 'Target options') - - target_group.add_option('--cpu', - help='set the target processor type/model') - - target_group.add_option('--os', - help='set the target operating system') - - target_group.add_option('--cc', dest='compiler', - help='set the desired build compiler') - - target_group.add_option('--cc-bin', dest='compiler_binary', - metavar='BINARY', - help='set the name of the compiler binary') - - target_group.add_option('--with-endian', metavar='ORDER', default=None, - help='override guess of CPU byte order') - - target_group.add_option('--with-unaligned-mem', - dest='unaligned_mem', action='store_true', - default=None, - help='enable unaligned memory accesses') - - target_group.add_option('--without-unaligned-mem', - dest='unaligned_mem', action='store_false', - help=optparse.SUPPRESS_HELP) - - for isa_extn_name in ['SSE2', 'SSSE3', 'AltiVec', 'AES-NI', 'movbe']: - isa_extn = isa_extn_name.lower() - - target_group.add_option('--enable-%s' % (isa_extn), - help='enable use of %s' % (isa_extn_name), - action='append_const', - const=isa_extn, - dest='enable_isa_extns') - - target_group.add_option('--disable-%s' % (isa_extn), - help=optparse.SUPPRESS_HELP, - action='append_const', - const=isa_extn, - dest='disable_isa_extns') - - build_group = optparse.OptionGroup(parser, 'Build options') - - build_group.add_option('--enable-shared', dest='build_shared_lib', - action='store_true', default=True, - help=optparse.SUPPRESS_HELP) - build_group.add_option('--disable-shared', dest='build_shared_lib', - action='store_false', - help='disable building a shared library') - - build_group.add_option('--enable-asm', dest='asm_ok', - action='store_true', default=True, - help=optparse.SUPPRESS_HELP) - build_group.add_option('--disable-asm', dest='asm_ok', - action='store_false', - help='disallow use of assembler') - - build_group.add_option('--enable-debug', dest='debug_build', - action='store_true', default=False, - help='enable debug build') - build_group.add_option('--disable-debug', dest='debug_build', - action='store_false', help=optparse.SUPPRESS_HELP) - - build_group.add_option('--no-optimizations', dest='no_optimizations', - action='store_true', default=False, - help=optparse.SUPPRESS_HELP) - - build_group.add_option('--gen-amalgamation', dest='gen_amalgamation', - default=False, action='store_true', - help='generate amalgamation files') - - build_group.add_option('--via-amalgamation', dest='via_amalgamation', - default=False, action='store_true', - help='build via amalgamation') - - build_group.add_option('--with-tr1-implementation', metavar='WHICH', - dest='with_tr1', default=None, - help='enable TR1 (choices: none, system, boost)') - - build_group.add_option('--with-build-dir', - metavar='DIR', default='', - help='setup the build in DIR') - - build_group.add_option('--makefile-style', metavar='STYLE', default=None, - help='choose a makefile style (unix or nmake)') - - build_group.add_option('--with-local-config', - dest='local_config', metavar='FILE', - help='include the contents of FILE into build.h') - - build_group.add_option('--distribution-info', metavar='STRING', - help='set distribution specific versioning', - default='unspecified') - - build_group.add_option('--with-sphinx', action='store_true', - default=None, - help='Use Sphinx to generate HTML manual') - - build_group.add_option('--without-sphinx', action='store_false', - dest='with_sphinx', help=optparse.SUPPRESS_HELP) - - build_group.add_option('--with-visibility', action='store_true', - default=None, help=optparse.SUPPRESS_HELP) - - build_group.add_option('--without-visibility', action='store_false', - dest='with_visibility', help=optparse.SUPPRESS_HELP) - - build_group.add_option('--with-doxygen', action='store_true', - default=False, - help='Use Doxygen to generate HTML API docs') - - build_group.add_option('--without-doxygen', action='store_false', - dest='with_doxygen', help=optparse.SUPPRESS_HELP) - - build_group.add_option('--dumb-gcc', dest='dumb_gcc', - action='store_true', default=False, - help=optparse.SUPPRESS_HELP) - - build_group.add_option('--maintainer-mode', dest='maintainer_mode', - action='store_true', default=False, - help=optparse.SUPPRESS_HELP) - - build_group.add_option('--dirty-tree', dest='clean_build_tree', - action='store_false', default=True, - help=optparse.SUPPRESS_HELP) - - build_group.add_option('--link-method', - default=None, - help=optparse.SUPPRESS_HELP) - - wrapper_group = optparse.OptionGroup(parser, 'Wrapper options') - - wrapper_group.add_option('--with-boost-python', dest='boost_python', - default=False, action='store_true', - help='enable Boost.Python wrapper') - - wrapper_group.add_option('--without-boost-python', - dest='boost_python', - action='store_false', - help=optparse.SUPPRESS_HELP) - - wrapper_group.add_option('--with-python-version', dest='python_version', - metavar='N.M', - default='.'.join(map(str, sys.version_info[0:2])), - help='specify Python to build against (eg %default)') - - mods_group = optparse.OptionGroup(parser, 'Module selection') - - mods_group.add_option('--enable-modules', dest='enabled_modules', - metavar='MODS', action='append', - help='enable specific modules') - mods_group.add_option('--disable-modules', dest='disabled_modules', - metavar='MODS', action='append', - help='disable specific modules') - mods_group.add_option('--no-autoload', action='store_true', default=False, - help='disable automatic loading') - - for lib in ['OpenSSL', 'GNU MP', 'Bzip2', 'Zlib']: - - mod = lib.lower().replace(' ', '') - - mods_group.add_option('--with-%s' % (mod), - help='add support for using %s' % (lib), - action='append_const', - const=mod, - dest='enabled_modules') - - mods_group.add_option('--without-%s' % (mod), - help=optparse.SUPPRESS_HELP, - action='append_const', - const=mod, - dest='disabled_modules') - - install_group = optparse.OptionGroup(parser, 'Installation options') - - install_group.add_option('--prefix', metavar='DIR', - help='set the base install directory') - install_group.add_option('--docdir', metavar='DIR', - help='set the documentation install directory') - install_group.add_option('--libdir', metavar='DIR', - help='set the library install directory') - install_group.add_option('--includedir', metavar='DIR', - help='set the include file install directory') - - parser.add_option_group(target_group) - parser.add_option_group(build_group) - parser.add_option_group(mods_group) - parser.add_option_group(wrapper_group) - parser.add_option_group(install_group) - - # These exist only for autoconf compatability (requested by zw for mtn) - compat_with_autoconf_options = [ - 'bindir', - 'datadir', - 'datarootdir', - 'dvidir', - 'exec-prefix', - 'htmldir', - 'infodir', - 'libexecdir', - 'localedir', - 'localstatedir', - 'mandir', - 'oldincludedir', - 'pdfdir', - 'psdir', - 'sbindir', - 'sharedstatedir', - 'sysconfdir' - ] - - for opt in compat_with_autoconf_options: - parser.add_option('--' + opt, help=optparse.SUPPRESS_HELP) - - (options, args) = parser.parse_args(args) - - if args != []: - raise Exception('Unhandled option(s): ' + ' '.join(args)) - if options.with_endian != None and \ - options.with_endian not in ['little', 'big']: - raise Exception('Bad value to --with-endian "%s"' % ( - options.with_endian)) - - def parse_multiple_enable(modules): - if modules is None: - return [] - return sorted(set(flatten([s.split(',') for s in modules]))) - - options.enabled_modules = parse_multiple_enable(options.enabled_modules) - options.disabled_modules = parse_multiple_enable(options.disabled_modules) - - options.enable_isa_extns = parse_multiple_enable(options.enable_isa_extns) - options.disable_isa_extns = parse_multiple_enable(options.disable_isa_extns) - - def enabled_or_disabled_isa(isa): - if isa in options.enable_isa_extns: - return True - if isa in options.disable_isa_extns: - return True - return False - - isa_deps = { - 'ssse3': 'sse2', - 'aes-ni': 'sse2' - } - - if 'sse2' in options.disable_isa_extns: - for isa in [k for (k,v) in isa_deps.items() if v == 'sse2']: - # If explicitly enabled, allow it even if a dependency - # violation; trust the user to know what they want - if not enabled_or_disabled_isa(isa): - options.disable_isa_extns.append(isa) - - for isa in options.enable_isa_extns: - if isa in isa_deps: - for dep in isa_deps.get(isa, '').split(','): - if not enabled_or_disabled_isa(dep): - options.enable_isa_extns.append(dep) - - return options - -""" -Generic lexer function for info.txt and src/build-data files -""" -def lex_me_harder(infofile, to_obj, allowed_groups, name_val_pairs): - - # Format as a nameable Python variable - def py_var(group): - return group.replace(':', '_') - - class LexerError(Exception): - def __init__(self, msg, line): - self.msg = msg - self.line = line - - def __str__(self): - return '%s at %s:%d' % (self.msg, infofile, self.line) - - (dirname, basename) = os.path.split(infofile) - - to_obj.lives_in = dirname - if basename == 'info.txt': - (obj_dir,to_obj.basename) = os.path.split(dirname) - if os.access(os.path.join(obj_dir, 'info.txt'), os.R_OK): - to_obj.parent_module = os.path.basename(obj_dir) - else: - to_obj.parent_module = None - else: - to_obj.basename = basename.replace('.txt', '') - - lexer = shlex.shlex(open(infofile), infofile, posix=True) - lexer.wordchars += '|:.<>/,-!+' # handle various funky chars in info.txt - - for group in allowed_groups: - to_obj.__dict__[py_var(group)] = [] - for (key,val) in name_val_pairs.items(): - to_obj.__dict__[key] = val - - def lexed_tokens(): # Convert to an interator - token = lexer.get_token() - while token != None: - yield token - token = lexer.get_token() - - for token in lexed_tokens(): - match = re.match('<(.*)>', token) - - # Check for a grouping - if match is not None: - group = match.group(1) - - if group not in allowed_groups: - raise LexerError('Unknown group "%s"' % (group), - lexer.lineno) - - end_marker = '' - - token = lexer.get_token() - while token != end_marker: - to_obj.__dict__[py_var(group)].append(token) - token = lexer.get_token() - if token is None: - raise LexerError('Group "%s" not terminated' % (group), - lexer.lineno) - - elif token in name_val_pairs.keys(): - next_val = lexer.get_token() - - if type(to_obj.__dict__[token]) is list: - to_obj.__dict__[token].append(next_val) - else: - to_obj.__dict__[token] = next_val - - else: # No match -> error - raise LexerError('Bad token "%s"' % (token), lexer.lineno) - -""" -Convert a lex'ed map (from build-data files) from a list to a dict -""" -def force_to_dict(l): - return dict(zip(l[::3],l[2::3])) - -""" -Represents the information about a particular module -""" -class ModuleInfo(object): - - def __init__(self, infofile): - - lex_me_harder(infofile, self, - ['source', 'header:internal', 'header:public', - 'requires', 'os', 'arch', 'cc', 'libs', - 'comment', 'warning'], - { - 'load_on': 'auto', - 'define': [], - 'uses_tr1': 'false', - 'need_isa': None, - 'mp_bits': 0 }) - - def extract_files_matching(basedir, suffixes): - for (dirpath, dirnames, filenames) in os.walk(basedir): - if dirpath == basedir: - for filename in filenames: - if filename.startswith('.'): - continue - - for suffix in suffixes: - if filename.endswith(suffix): - yield filename - - if self.source == []: - self.source = list(extract_files_matching(self.lives_in, ['.cpp', '.S'])) - - if self.header_internal == [] and self.header_public == []: - self.header_public = list(extract_files_matching(self.lives_in, ['.h'])) - - # Coerce to more useful types - def convert_lib_list(l): - result = {} - for (targetlist, vallist) in zip(l[::3], l[2::3]): - vals = vallist.split(',') - for target in targetlist.split(','): - result[target] = result.setdefault(target, []) + vals - return result - - self.libs = convert_lib_list(self.libs) - - def add_dir_name(filename): - if filename.count(':') == 0: - return os.path.join(self.lives_in, filename) - - # modules can request to add files of the form - # MODULE_NAME:FILE_NAME to add a file from another module - # For these, assume other module is always in a - # neighboring directory; this is true for all current uses - return os.path.join(os.path.split(self.lives_in)[0], - *filename.split(':')) - - self.source = [add_dir_name(s) for s in self.source] - self.header_internal = [add_dir_name(s) for s in self.header_internal] - self.header_public = [add_dir_name(s) for s in self.header_public] - - self.mp_bits = int(self.mp_bits) - - self.uses_tr1 = (True if self.uses_tr1 == 'yes' else False) - - if self.comment != []: - self.comment = ' '.join(self.comment) - else: - self.comment = None - - if self.warning != []: - self.warning = ' '.join(self.warning) - else: - self.warning = None - - def sources(self): - return self.source - - def public_headers(self): - return self.header_public - - def internal_headers(self): - return self.header_internal - - def defines(self): - return ['HAS_' + d for d in self.define] - - def compatible_cpu(self, archinfo, options): - - arch_name = archinfo.basename - cpu_name = options.cpu - - if self.arch != []: - if arch_name not in self.arch and cpu_name not in self.arch: - return False - - if self.need_isa != None: - if self.need_isa in options.disable_isa_extns: - return False # explicitly disabled - - if self.need_isa in options.enable_isa_extns: - return True # explicitly enabled - - # Default to whatever the CPU is supposed to support - return self.need_isa in archinfo.isa_extensions_in(cpu_name) - - return True - - def compatible_os(self, os): - return self.os == [] or os in self.os - - def compatible_compiler(self, cc): - return self.cc == [] or cc in self.cc - - def tr1_ok(self, with_tr1): - if self.uses_tr1: - return with_tr1 in ['boost', 'system'] - else: - return True - - def dependencies(self): - # utils is an implicit dep (contains types, etc) - deps = self.requires + ['utils'] - if self.parent_module != None: - deps.append(self.parent_module) - return deps - - """ - Ensure that all dependencies of this module actually exist, warning - about any that do not - """ - def dependencies_exist(self, modules): - all_deps = [s.split('|') for s in self.dependencies()] - - for missing in [s for s in flatten(all_deps) if s not in modules]: - logging.warn("Module '%s', dep of '%s', does not exist" % ( - missing, self.basename)) - - def __cmp__(self, other): - if self.basename < other.basename: - return -1 - if self.basename == other.basename: - return 0 - return 1 - -class ArchInfo(object): - def __init__(self, infofile): - lex_me_harder(infofile, self, - ['aliases', 'submodels', 'submodel_aliases', 'isa_extn'], - { 'endian': None, - 'family': None, - 'unaligned': 'no' - }) - - def convert_isa_list(input): - isa_info = {} - for line in self.isa_extn: - (isa,cpus) = line.split(':') - for cpu in cpus.split(','): - isa_info.setdefault(cpu, []).append(isa) - return isa_info - - self.isa_extn = convert_isa_list(self.isa_extn) - - self.submodel_aliases = force_to_dict(self.submodel_aliases) - - self.unaligned_ok = (1 if self.unaligned == 'ok' else 0) - - """ - Return ISA extensions specific to this CPU - """ - def isa_extensions_in(self, cpu_type): - return sorted(self.isa_extn.get(cpu_type, []) + - self.isa_extn.get('all', [])) - - """ - Return a list of all submodels for this arch, ordered longest - to shortest - """ - def all_submodels(self): - return sorted([(k,k) for k in self.submodels] + - [k for k in self.submodel_aliases.items()], - key = lambda k: len(k[0]), reverse = True) - - """ - Return CPU-specific defines for build.h - """ - def defines(self, options): - def form_macro(cpu_name): - return cpu_name.upper().replace('.', '').replace('-', '_') - - macros = ['TARGET_ARCH_IS_%s' % - (form_macro(self.basename.upper()))] - - if self.basename != options.cpu: - macros.append('TARGET_CPU_IS_%s' % (form_macro(options.cpu))) - - enabled_isas = set(self.isa_extensions_in(options.cpu) + - options.enable_isa_extns) - disabled_isas = set(options.disable_isa_extns) - - isa_extensions = sorted(enabled_isas - disabled_isas) - - for isa in isa_extensions: - macros.append('TARGET_CPU_HAS_%s' % (form_macro(isa))) - - endian = options.with_endian or self.endian - - if endian != None: - macros.append('TARGET_CPU_IS_%s_ENDIAN' % (endian.upper())) - logging.info('Assuming CPU is %s endian' % (endian)) - - unaligned_ok = options.unaligned_mem - if unaligned_ok is None: - unaligned_ok = self.unaligned_ok - if unaligned_ok: - logging.info('Assuming unaligned memory access works') - - if self.family is not None: - macros.append('TARGET_CPU_IS_%s_FAMILY' % (self.family.upper())) - - macros.append('TARGET_UNALIGNED_MEMORY_ACCESS_OK %d' % (unaligned_ok)) - - return macros - -class CompilerInfo(object): - def __init__(self, infofile): - lex_me_harder(infofile, self, - ['so_link_flags', 'mach_opt', 'mach_abi_linking'], - { 'binary_name': None, - 'macro_name': None, - 'compile_option': '-c', - 'output_to_option': '-o ', - 'add_include_dir_option': '-I', - 'add_lib_dir_option': '-L', - 'add_lib_option': '-l', - 'lib_opt_flags': '', - 'check_opt_flags': '', - 'debug_flags': '', - 'no_debug_flags': '', - 'shared_flags': '', - 'lang_flags': '', - 'warning_flags': '', - 'maintainer_warning_flags': '', - 'visibility_build_flags': '', - 'visibility_attribute': '', - 'ar_command': None, - 'makefile_style': '', - 'has_tr1': False, - }) - - self.so_link_flags = force_to_dict(self.so_link_flags) - self.mach_abi_linking = force_to_dict(self.mach_abi_linking) - - self.mach_opt_flags = {} - - while self.mach_opt != []: - proc = self.mach_opt.pop(0) - if self.mach_opt.pop(0) != '->': - raise Exception('Parsing err in %s mach_opt' % (self.basename)) - - flags = self.mach_opt.pop(0) - regex = '' - - if len(self.mach_opt) > 0 and \ - (len(self.mach_opt) == 1 or self.mach_opt[1] != '->'): - regex = self.mach_opt.pop(0) - - self.mach_opt_flags[proc] = (flags,regex) - - del self.mach_opt - - """ - Return the shared library build flags, if any - """ - def gen_shared_flags(self, options): - def flag_builder(): - if options.build_shared_lib: - yield self.shared_flags - if options.with_visibility: - yield self.visibility_build_flags - - return ' '.join(list(flag_builder())) - - def gen_visibility_attribute(self, options): - if options.build_shared_lib and options.with_visibility: - return self.visibility_attribute - return '' - - """ - Return the machine specific ABI flags - """ - def mach_abi_link_flags(self, osname, arch, submodel, debug_p): - - def all(): - if debug_p: - return 'all-debug' - return 'all' - - abi_link = set() - for what in [all(), osname, arch, submodel]: - if self.mach_abi_linking.get(what) != None: - abi_link.add(self.mach_abi_linking.get(what)) - - if len(abi_link) == 0: - return '' - return ' ' + ' '.join(abi_link) - - """ - Return the flags for MACH_OPT - """ - def mach_opts(self, arch, submodel): - - def submodel_fixup(tup): - return tup[0].replace('SUBMODEL', submodel.replace(tup[1], '')) - - if submodel == arch: - return '' - - if submodel in self.mach_opt_flags: - return submodel_fixup(self.mach_opt_flags[submodel]) - if arch in self.mach_opt_flags: - return submodel_fixup(self.mach_opt_flags[arch]) - - return '' - - """ - Return the flags for LIB_OPT - """ - def library_opt_flags(self, options): - def gen_flags(): - if options.debug_build: - yield self.debug_flags - - if not options.no_optimizations: - yield self.lib_opt_flags - - if not options.debug_build: - yield self.no_debug_flags - - return (' '.join(gen_flags())).strip() - - """ - Return the command needed to link a shared object - """ - def so_link_command_for(self, osname): - if osname in self.so_link_flags: - return self.so_link_flags[osname] - if 'default' in self.so_link_flags: - return self.so_link_flags['default'] - return '' - - """ - Return defines for build.h - """ - def defines(self, with_tr1): - - def tr1_macro(): - if with_tr1: - if with_tr1 == 'boost': - return ['USE_BOOST_TR1'] - elif with_tr1 == 'system': - return ['USE_STD_TR1'] - elif self.has_tr1: - return ['USE_STD_TR1'] - return [] - - return ['BUILD_COMPILER_IS_' + self.macro_name] + tr1_macro() - -class OsInfo(object): - def __init__(self, infofile): - lex_me_harder(infofile, self, - ['aliases', 'target_features'], - { 'os_type': None, - 'obj_suffix': 'o', - 'so_suffix': 'so', - 'static_suffix': 'a', - 'ar_command': 'ar crs', - 'ar_needs_ranlib': False, - 'install_root': '/usr/local', - 'header_dir': 'include', - 'lib_dir': 'lib', - 'doc_dir': 'share/doc', - 'build_shared': 'yes', - 'install_cmd_data': 'install -m 644', - 'install_cmd_exec': 'install -m 755' - }) - - self.ar_needs_ranlib = bool(self.ar_needs_ranlib) - - self.build_shared = (True if self.build_shared == 'yes' else False) - - def ranlib_command(self): - return ('ranlib' if self.ar_needs_ranlib else 'true') - - def defines(self): - return ['TARGET_OS_IS_%s' % (self.basename.upper())] + \ - ['TARGET_OS_HAS_' + feat.upper() - for feat in sorted(self.target_features)] - -def fixup_proc_name(proc): - proc = proc.lower().replace(' ', '') - for junk in ['(tm)', '(r)']: - proc = proc.replace(junk, '') - return proc - -def canon_processor(archinfo, proc): - proc = fixup_proc_name(proc) - - # First, try to search for an exact match - for ainfo in archinfo.values(): - if ainfo.basename == proc or proc in ainfo.aliases: - return (ainfo.basename, ainfo.basename) - - for (match,submodel) in ainfo.all_submodels(): - if proc == submodel or proc == match: - return (ainfo.basename, submodel) - - logging.debug('Could not find an exact match for CPU "%s"' % (proc)) - - # Now, try searching via regex match - for ainfo in archinfo.values(): - for (match,submodel) in ainfo.all_submodels(): - if re.search(match, proc) != None: - logging.debug('Possible match "%s" with "%s" (%s)' % ( - proc, match, submodel)) - return (ainfo.basename, submodel) - - logging.debug('Known CPU names: ' + ' '.join( - sorted(flatten([[ainfo.basename] + \ - ainfo.aliases + \ - [x for (x,_) in ainfo.all_submodels()] - for ainfo in archinfo.values()])))) - - raise Exception('Unknown or unidentifiable processor "%s"' % (proc)) - -def guess_processor(archinfo): - base_proc = platform.machine() - - if base_proc == '': - raise Exception('Could not determine target CPU; set with --cpu') - - full_proc = fixup_proc_name(platform.processor()) or base_proc - - for ainfo in archinfo.values(): - if ainfo.basename == base_proc or base_proc in ainfo.aliases: - for (match,submodel) in ainfo.all_submodels(): - if re.search(match, full_proc) != None: - return (ainfo.basename, submodel) - - return canon_processor(archinfo, ainfo.basename) - - # No matches, so just use the base proc type - return canon_processor(archinfo, base_proc) - -""" -Read a whole file into memory as a string -""" -def slurp_file(filename): - if filename is None: - return '' - return ''.join(open(filename).readlines()) - -""" -Perform template substitution -""" -def process_template(template_file, variables): - class PercentSignTemplate(string.Template): - delimiter = '%' - - try: - template = PercentSignTemplate(slurp_file(template_file)) - return template.substitute(variables) - except KeyError as e: - raise Exception('Unbound var %s in template %s' % (e, template_file)) - -""" -Create the template variables needed to process the makefile, build.h, etc -""" -def create_template_vars(build_config, options, modules, cc, arch, osinfo): - def make_cpp_macros(macros): - return '\n'.join(['#define BOTAN_' + macro for macro in macros]) - - """ - Figure out what external libraries are needed based on selected modules - """ - def link_to(): - libs = set() - for module in modules: - for (osname,link_to) in module.libs.items(): - if osname == 'all' or osname == osinfo.basename: - libs |= set(link_to) - else: - match = re.match('^all!(.*)', osname) - if match is not None: - exceptions = match.group(1).split(',') - if osinfo.basename not in exceptions: - libs |= set(link_to) - return sorted(libs) - - def objectfile_list(sources, obj_dir): - for src in sources: - (dir,file) = os.path.split(os.path.normpath(src)) - - if dir.startswith('src'): - parts = dir.split(os.sep)[1:] - if file == parts[-1] + '.cpp': - name = '_'.join(dir.split(os.sep)[1:]) + '.cpp' - else: - name = '_'.join(dir.split(os.sep)[1:]) + '_' + file - else: - name = file - - for src_suffix in ['.cpp', '.S']: - name = name.replace(src_suffix, '.' + osinfo.obj_suffix) - - yield os.path.join(obj_dir, name) - - - def choose_mp_bits(): - mp_bits = [mod.mp_bits for mod in modules if mod.mp_bits != 0] - - if mp_bits == []: - return 32 # default - - # Check that settings are consistent across modules - for mp_bit in mp_bits[1:]: - if mp_bit != mp_bits[0]: - raise Exception('Incompatible mp_bits settings found') - - return mp_bits[0] - - """ - Form snippets of makefile for building each source file - """ - def build_commands(sources, obj_dir, flags): - for (obj_file,src) in zip(objectfile_list(sources, obj_dir), sources): - yield '%s: %s\n\t$(CXX) %s%s $(%s_FLAGS) %s$? %s$@\n' % ( - obj_file, src, - cc.add_include_dir_option, - build_config.include_dir, - flags, - cc.compile_option, - cc.output_to_option) - - def makefile_list(items): - items = list(items) # force evaluation so we can slice it - return (' '*16).join([item + ' \\\n' for item in items[:-1]] + - [items[-1]]) - - def prefix_with_build_dir(path): - if options.with_build_dir != None: - return os.path.join(options.with_build_dir, path) - return path - - def warning_flags(normal_flags, - maintainer_flags, - maintainer_mode): - if maintainer_mode and maintainer_flags != '': - return maintainer_flags - return normal_flags - - return { - 'version_major': build_config.version_major, - 'version_minor': build_config.version_minor, - 'version_patch': build_config.version_patch, - 'version_vc_rev': build_config.version_vc_rev, - 'so_abi_rev': build_config.version_so_rev, - 'version': build_config.version_string, - - 'distribution_info': options.distribution_info, - - 'version_datestamp': build_config.version_datestamp, - - 'timestamp': build_config.timestamp(), - 'user': build_config.username(), - 'hostname': build_config.hostname(), - 'command_line': ' '.join(sys.argv), - 'local_config': slurp_file(options.local_config), - 'makefile_style': options.makefile_style or cc.makefile_style, - - 'makefile_path': prefix_with_build_dir('Makefile'), - - 'prefix': options.prefix or osinfo.install_root, - 'libdir': options.libdir or osinfo.lib_dir, - 'includedir': options.includedir or osinfo.header_dir, - 'docdir': options.docdir or osinfo.doc_dir, - - 'build_dir': build_config.build_dir, - 'doc_output_dir': build_config.doc_output_dir, - - 'build_doc_commands': build_config.build_doc_commands, - - 'python_dir': build_config.python_dir, - - 'os': options.os, - 'arch': options.arch, - 'submodel': options.cpu, - - 'mp_bits': choose_mp_bits(), - - 'cc': (options.compiler_binary or cc.binary_name) + - cc.mach_abi_link_flags(options.os, options.arch, - options.cpu, options.debug_build), - - 'lib_opt': cc.library_opt_flags(options), - 'mach_opt': cc.mach_opts(options.arch, options.cpu), - 'check_opt': '' if options.no_optimizations else cc.check_opt_flags, - 'lang_flags': cc.lang_flags + options.extra_flags, - 'warn_flags': warning_flags(cc.warning_flags, - cc.maintainer_warning_flags, - options.maintainer_mode), - - 'shared_flags': cc.gen_shared_flags(options), - 'visibility_attribute': cc.gen_visibility_attribute(options), - - 'so_link': cc.so_link_command_for(osinfo.basename), - - 'link_to': ' '.join([cc.add_lib_option + lib for lib in link_to()]), - - 'module_defines': make_cpp_macros(sorted(flatten([m.defines() for m in modules]))), - - 'target_os_defines': make_cpp_macros(osinfo.defines()), - - 'target_compiler_defines': make_cpp_macros( - cc.defines(options.with_tr1)), - - 'target_cpu_defines': make_cpp_macros(arch.defines(options)), - - 'include_files': makefile_list(build_config.public_headers), - - 'lib_objs': makefile_list( - objectfile_list(build_config.build_sources, - build_config.libobj_dir)), - - 'check_objs': makefile_list( - objectfile_list(build_config.check_sources, - build_config.checkobj_dir)), - - 'lib_build_cmds': '\n'.join( - build_commands(build_config.build_sources, - build_config.libobj_dir, 'LIB')), - - 'check_build_cmds': '\n'.join( - build_commands(build_config.check_sources, - build_config.checkobj_dir, 'CHECK')), - - 'python_obj_dir': build_config.pyobject_dir, - - 'python_objs': makefile_list( - objectfile_list(build_config.python_sources, - build_config.pyobject_dir)), - - 'python_build_cmds': '\n'.join( - build_commands(build_config.python_sources, - build_config.pyobject_dir, 'PYTHON')), - - 'ar_command': cc.ar_command or osinfo.ar_command, - 'ranlib_command': osinfo.ranlib_command(), - 'install_cmd_exec': osinfo.install_cmd_exec, - 'install_cmd_data': osinfo.install_cmd_data, - - 'check_prefix': prefix_with_build_dir(''), - 'lib_prefix': prefix_with_build_dir(''), - - 'static_suffix': osinfo.static_suffix, - 'so_suffix': osinfo.so_suffix, - - 'botan_config': prefix_with_build_dir( - os.path.join(build_config.build_dir, - build_config.config_shell_script())), - - 'botan_pkgconfig': prefix_with_build_dir( - os.path.join(build_config.build_dir, - build_config.pkg_config_file())), - - 'mod_list': '\n'.join(sorted([m.basename for m in modules])), - - 'python_version': options.python_version - } - -""" -Determine which modules to load based on options, target, etc -""" -def choose_modules_to_use(modules, archinfo, options): - - for mod in modules.values(): - mod.dependencies_exist(modules) - - to_load = [] - maybe_dep = [] - not_using_because = {} - - def cannot_use_because(mod, reason): - not_using_because.setdefault(reason, []).append(mod) - - for modname in options.enabled_modules: - if modname not in modules: - logging.warning("Unknown enabled module %s" % (modname)) - - for modname in options.disabled_modules: - if modname not in modules: - logging.warning("Unknown disabled module %s" % (modname)) - - for (modname, module) in modules.items(): - if modname in options.disabled_modules: - cannot_use_because(modname, 'disabled by user') - elif modname in options.enabled_modules: - to_load.append(modname) # trust the user - - elif not module.compatible_os(options.os): - cannot_use_because(modname, 'incompatible OS') - elif not module.compatible_compiler(options.compiler): - cannot_use_because(modname, 'incompatible compiler') - elif not module.compatible_cpu(archinfo, options): - cannot_use_because(modname, 'incompatible CPU') - elif not module.tr1_ok(options.with_tr1): - cannot_use_because(modname, 'missing TR1') - - else: - if module.load_on == 'never': - cannot_use_because(modname, 'disabled as buggy') - elif module.load_on == 'request': - cannot_use_because(modname, 'by request only') - elif module.load_on == 'dep': - maybe_dep.append(modname) - - elif module.load_on == 'always': - to_load.append(modname) - - elif module.load_on == 'asm_ok': - if options.asm_ok: - if options.no_autoload: - maybe_dep.append(modname) - else: - to_load.append(modname) - else: - cannot_use_because(modname, - 'uses assembly and --disable-asm set') - elif module.load_on == 'auto': - if options.no_autoload: - maybe_dep.append(modname) - else: - to_load.append(modname) - else: - logging.warning('Unknown load_on %s in %s' % ( - module.load_on, modname)) - - dependency_failure = True - - while dependency_failure: - dependency_failure = False - for modname in to_load: - for deplist in [s.split('|') for s in modules[modname].dependencies()]: - - dep_met = False - for mod in deplist: - if dep_met is True: - break - - if mod in to_load: - dep_met = True - elif mod in maybe_dep: - maybe_dep.remove(mod) - to_load.append(mod) - dep_met = True - - if dep_met == False: - dependency_failure = True - if modname in to_load: - to_load.remove(modname) - if modname in maybe_dep: - maybe_dep.remove(modname) - cannot_use_because(modname, 'dependency failure') - - for not_a_dep in maybe_dep: - cannot_use_because(not_a_dep, 'loaded only if needed by dependency') - - for reason in sorted(not_using_because.keys()): - disabled_mods = sorted(set([mod for mod in not_using_because[reason]])) - - if disabled_mods != []: - logging.info('Skipping, %s - %s' % ( - reason, ' '.join(disabled_mods))) - - for mod in sorted(to_load): - if mod.startswith('mp_'): - logging.info('Using MP module ' + mod) - if mod.startswith('simd_') and mod != 'simd_engine': - logging.info('Using SIMD module ' + mod) - if modules[mod].comment: - logging.info('%s: %s' % (mod, modules[mod].comment)) - if modules[mod].warning: - logging.warning('%s: %s' % (mod, modules[mod].warning)) - - logging.debug('Loading modules %s', ' '.join(sorted(to_load))) - - return [modules[mod] for mod in to_load] - -""" -Load the info files about modules, targets, etc -""" -def load_info_files(options): - - def find_files_named(desired_name, in_path): - for (dirpath, dirnames, filenames) in os.walk(in_path): - if desired_name in filenames: - yield os.path.join(dirpath, desired_name) - - modules = dict([(mod.basename, mod) for mod in - [ModuleInfo(info) for info in - find_files_named('info.txt', options.src_dir)]]) - - def list_files_in_build_data(subdir): - for (dirpath, dirnames, filenames) in \ - os.walk(os.path.join(options.build_data, subdir)): - for filename in filenames: - if filename.endswith('.txt'): - yield os.path.join(dirpath, filename) - - def form_name(filepath): - return os.path.basename(filepath).replace('.txt', '') - - archinfo = dict([(form_name(info), ArchInfo(info)) - for info in list_files_in_build_data('arch')]) - - osinfo = dict([(form_name(info), OsInfo(info)) - for info in list_files_in_build_data('os')]) - - ccinfo = dict([(form_name(info), CompilerInfo(info)) - for info in list_files_in_build_data('cc')]) - - def info_file_load_report(type, num): - if num > 0: - logging.debug('Loaded %d %s info files' % (num, type)) - else: - logging.warning('Failed to load any %s info files' % (type)) - - info_file_load_report('CPU', len(archinfo)); - info_file_load_report('OS', len(osinfo)) - info_file_load_report('compiler', len(ccinfo)) - - return (modules, archinfo, ccinfo, osinfo) - -""" -Perform the filesystem operations needed to setup the build -""" -def setup_build(build_config, options, template_vars): - - """ - Choose the link method based on system availablity and user request - """ - def choose_link_method(req_method): - - def useable_methods(): - if 'symlink' in os.__dict__: - yield 'symlink' - if 'link' in os.__dict__: - yield 'hardlink' - yield 'copy' - - for method in useable_methods(): - if req_method is None or req_method == method: - return method - - logging.info('Could not use requested link method %s' % (req_method)) - return 'copy' - - """ - Copy or link the file, depending on what the platform offers - """ - def portable_symlink(filename, target_dir, method): - - if not os.access(filename, os.R_OK): - logging.warning('Missing file %s' % (filename)) - return - - if method == 'symlink': - def count_dirs(dir, accum = 0): - if dir in ['', '/', os.path.curdir]: - return accum - (dir,basename) = os.path.split(dir) - return accum + 1 + count_dirs(dir) - - dirs_up = count_dirs(target_dir) - - source = os.path.join(os.path.join(*[os.path.pardir]*dirs_up), - filename) - - target = os.path.join(target_dir, os.path.basename(filename)) - - os.symlink(source, target) - - elif method == 'hardlink': - os.link(filename, - os.path.join(target_dir, os.path.basename(filename))) - - elif method == 'copy': - shutil.copy(filename, target_dir) - - else: - raise Exception('Unknown link method %s' % (method)) - - def choose_makefile_template(style): - if style == 'nmake': - return 'nmake.in' - elif style == 'unix': - return ('unix_shr.in' if options.build_shared_lib else 'unix.in') - else: - raise Exception('Unknown makefile style "%s"' % (style)) - - # First delete the build tree, if existing - try: - if options.clean_build_tree: - shutil.rmtree(build_config.build_dir) - except OSError as e: - if e.errno != errno.ENOENT: - logging.error('Problem while removing build dir: %s' % (e)) - - for dir in build_config.build_dirs: - try: - os.makedirs(dir) - except OSError as e: - if e.errno != errno.EEXIST: - logging.error('Error while creating "%s": %s' % (dir, e)) - - makefile_template = os.path.join( - options.makefile_dir, - choose_makefile_template(template_vars['makefile_style'])) - - logging.debug('Using makefile template %s' % (makefile_template)) - - templates_to_proc = { - makefile_template: template_vars['makefile_path'] - } - - def templates_to_use(): - yield (options.build_data, 'buildh.in', 'build.h') - yield (options.build_data, 'botan.doxy.in', 'botan.doxy') - - if options.os != 'windows': - yield (options.build_data, 'botan.pc.in', build_config.pkg_config_file()) - yield (options.build_data, 'botan-config.in', build_config.config_shell_script()) - - if options.os == 'windows': - yield (options.build_data, 'innosetup.in', 'botan.iss') - - if options.boost_python: - yield (options.makefile_dir, 'python.in', 'Makefile.python') - - for (template_dir, template, sink) in templates_to_use(): - source = os.path.join(template_dir, template) - if template_dir == options.build_data: - sink = os.path.join(build_config.build_dir, sink) - templates_to_proc[source] = sink - - for (template, sink) in templates_to_proc.items(): - try: - f = open(sink, 'w') - f.write(process_template(template, template_vars)) - finally: - f.close() - - link_method = choose_link_method(options.link_method) - logging.info('Using %s to link files into build directory' % (link_method)) - - def link_headers(header_list, type, dir): - logging.debug('Linking %d %s header files in %s' % ( - len(header_list), type, dir)) - - for header_file in header_list: - try: - portable_symlink(header_file, dir, link_method) - except OSError as e: - if e.errno != errno.EEXIST: - logging.error('Error linking %s into %s: %s' % ( - header_file, dir, e)) - - link_headers(build_config.public_headers, 'public', - build_config.botan_include_dir) - - link_headers(build_config.build_internal_headers, 'internal', - build_config.internal_include_dir) - -""" -Generate Amalgamation -""" -def generate_amalgamation(build_config): - def ending_with_suffix(suffix): - def predicate(val): - return val.endswith(suffix) - return predicate - - def strip_header_goop(header_name, contents): - header_guard = re.compile('^#define BOTAN_.*_H__$') - - while len(contents) > 0: - if header_guard.match(contents[0]): - contents = contents[1:] - break - - contents = contents[1:] - - if len(contents) == 0: - raise Exception("No header guard found in " + header_name) - - while contents[0] == '\n': - contents = contents[1:] - - while contents[-1] == '\n': - contents = contents[0:-1] - if contents[-1] == '#endif\n': - contents = contents[0:-1] - - return contents - - botan_include = re.compile('#include $') - std_include = re.compile('#include <([^/\.]+)>$') - - class Amalgamation_Generator: - def __init__(self, input_list): - - self.included_already = set() - self.all_std_includes = set() - - self.file_contents = {} - for f in sorted(input_list): - contents = strip_header_goop(f, open(f).readlines()) - self.file_contents[os.path.basename(f)] = contents - - self.contents = '' - for name in self.file_contents: - self.contents += ''.join(list(self.header_contents(name))) - - self.header_includes = '' - for std_header in self.all_std_includes: - self.header_includes += '#include <%s>\n' % (std_header) - self.header_includes += '\n' - - def header_contents(self, name): - name = name.replace('internal/', '') - - if name in self.included_already: - return - - self.included_already.add(name) - - if name not in self.file_contents: - return - - for line in self.file_contents[name]: - match = botan_include.search(line) - if match: - for c in self.header_contents(match.group(1)): - yield c - else: - match = std_include.search(line) - - if match and match.group(1) != 'functional': - self.all_std_includes.add(match.group(1)) - else: - yield line - - amalg_basename = 'botan_all' - - header_name = '%s.h' % (amalg_basename) - - botan_h = open(header_name, 'w') - - pub_header_amalag = Amalgamation_Generator(build_config.public_headers) - - amalg_header = """/* -* Botan %s Amalgamation -* (C) 1999-2011 Jack Lloyd and others -* -* Distributed under the terms of the Botan license -*/ -""" % (build_config.version_string) - - botan_h.write(amalg_header) - - botan_h.write(""" -#ifndef BOTAN_AMALGAMATION_H__ -#define BOTAN_AMALGAMATION_H__ - -""") - - botan_h.write(pub_header_amalag.header_includes) - botan_h.write(pub_header_amalag.contents) - botan_h.write("\n#endif\n") - - internal_header_amalag = Amalgamation_Generator( - [s for s in build_config.internal_headers - if s.find('asm_macr_') == -1]) - - botan_cpp = open('%s.cpp' % (amalg_basename), 'w') - - botan_cpp.write(amalg_header) - - botan_cpp.write('\n#include "%s"\n' % (header_name)) - - botan_cpp.write(internal_header_amalag.header_includes) - botan_cpp.write(internal_header_amalag.contents) - - for src in build_config.sources: - if src.endswith('.S'): - continue - - contents = open(src).readlines() - for line in contents: - if botan_include.search(line): - continue - else: - botan_cpp.write(line) - -""" -Test for the existence of a program -""" -def have_program(program): - - def exe_test(path, program): - exe_file = os.path.join(path, program) - - if os.path.exists(exe_file) and os.access(exe_file, os.X_OK): - logging.debug('Found program %s in %s' % (program, path)) - return True - else: - return False - - exe_suffixes = ['', '.exe'] - - for path in os.environ['PATH'].split(os.pathsep): - for suffix in exe_suffixes: - if exe_test(path, program + suffix): - return True - - return False - -""" -Main driver -""" -def main(argv = None): - if argv is None: - argv = sys.argv - - logging.basicConfig(stream = sys.stdout, - format = '%(levelname) 7s: %(message)s') - - options = process_command_line(argv[1:]) - - def log_level(): - if options.verbose: - return logging.DEBUG - if options.quiet: - return logging.WARNING - return logging.INFO - - logging.getLogger().setLevel(log_level()) - - logging.debug('%s invoked with options "%s"' % ( - argv[0], ' '.join(argv[1:]))) - - logging.debug('Platform: OS="%s" machine="%s" proc="%s"' % ( - platform.system(), platform.machine(), platform.processor())) - - if options.os == "java": - raise Exception("Jython detected: need --os and --cpu to set target") - - options.base_dir = os.path.dirname(argv[0]) - options.src_dir = os.path.join(options.base_dir, 'src') - - options.build_data = os.path.join(options.src_dir, 'build-data') - options.makefile_dir = os.path.join(options.build_data, 'makefile') - - (modules, archinfo, ccinfo, osinfo) = load_info_files(options) - - if options.compiler is None: - if options.os == 'windows': - if have_program('g++') and not have_program('cl'): - options.compiler = 'gcc' - else: - options.compiler = 'msvc' - else: - options.compiler = 'gcc' - logging.info('Guessing to use compiler %s (use --cc to set)' % ( - options.compiler)) - - if options.os is None: - options.os = platform.system().lower() - - if re.match('^cygwin_.*', options.os): - logging.debug("Converting '%s' to 'cygwin'", options.os) - options.os = 'cygwin' - - if options.os == 'windows' and options.compiler == 'gcc': - logging.warning('Detected GCC on Windows; use --os=cygwin or --os=mingw?') - - logging.info('Guessing target OS is %s (use --os to set)' % (options.os)) - - if options.compiler not in ccinfo: - raise Exception('Unknown compiler "%s"; available options: %s' % ( - options.compiler, ' '.join(sorted(ccinfo.keys())))) - - if options.os not in osinfo: - - def find_canonical_os_name(os): - for (name, info) in osinfo.items(): - if os in info.aliases: - return name - return os # not found - - options.os = find_canonical_os_name(options.os) - - if options.os not in osinfo: - raise Exception('Unknown OS "%s"; available options: %s' % ( - options.os, ' '.join(sorted(osinfo.keys())))) - - if options.cpu is None: - (options.arch, options.cpu) = guess_processor(archinfo) - logging.info('Guessing target processor is a %s/%s (use --cpu to set)' % ( - options.arch, options.cpu)) - else: - cpu_from_user = options.cpu - (options.arch, options.cpu) = canon_processor(archinfo, options.cpu) - logging.info('Canonicalizized --cpu=%s to %s/%s' % ( - cpu_from_user, options.arch, options.cpu)) - - logging.info('Target is %s-%s-%s-%s' % ( - options.compiler, options.os, options.arch, options.cpu)) - - cc = ccinfo[options.compiler] - - # Kind of a hack... - options.extra_flags = '' - if options.compiler == 'gcc': - - def get_gcc_version(gcc_bin): - try: - gcc_proc = subprocess.Popen( - gcc_bin.split(' ') + ['-dumpversion'], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - universal_newlines=True) - - (stdout, stderr) = gcc_proc.communicate() - - if gcc_proc.returncode != 0: - logging.warning("GCC returned non-zero result %s" % (stderr)) - return None - - gcc_version = stdout.strip() - - logging.info('Detected gcc version %s' % (gcc_version)) - return [int(v) for v in gcc_version.split('.')] - except OSError: - logging.warning('Could not execute %s for version check' % (gcc_bin)) - return None - - def is_64bit_arch(arch): - if arch.endswith('64') or arch in ['alpha', 's390x']: - return True - return False - - gcc_version = get_gcc_version(options.compiler_binary or cc.binary_name) - - def gcc_version_matches(matches): - for match in matches.items(): - if gcc_version[0] != match[0]: - continue - - for minor in match[1]: - if minor == gcc_version[1]: - return True - return False - - if gcc_version: - - if not is_64bit_arch(options.arch) and not options.dumb_gcc: - if gcc_version_matches({ 4 : [0, 1, 2, 3, 4], 3 : [3, 4], 2 : [95] }): - options.dumb_gcc = True - - if options.with_tr1 == None and \ - gcc_version_matches({ 4 : [0], 3 : [0,1,2,3,4], 2 : [95] }): - logging.info('Disabling TR1 support for this gcc, too old') - options.with_tr1 = 'none' - - if options.with_visibility == None and \ - gcc_version_matches({ 3 : [0,1,2,3,4], 2 : [95] }): - logging.info('Disabling DSO visibility support for this gcc, too old') - options.with_visibility = False - - if options.dumb_gcc is True: - logging.info('Setting -fpermissive to work around gcc bug') - options.extra_flags = ' -fpermissive' - - if options.with_visibility is None: - options.with_visibility = True - - if options.with_tr1 == None: - if cc.has_tr1: - logging.info('Assuming %s has TR1 (use --with-tr1=none to disable)' % ( - options.compiler)) - options.with_tr1 = 'system' - else: - options.with_tr1 = 'none' - - if options.with_sphinx is None: - if have_program('sphinx-build'): - logging.info('Found sphinx-build, will use it ' + - '(use --without-sphinx to disable)') - options.with_sphinx = True - - if options.via_amalgamation: - options.gen_amalgamation = True - - if options.gen_amalgamation: - if options.asm_ok: - logging.info('Disabling assembly code, cannot use in amalgamation') - options.asm_ok = False - - modules_to_use = choose_modules_to_use(modules, - archinfo[options.arch], - options) - - if not osinfo[options.os].build_shared: - if options.build_shared_lib: - logging.info('Disabling shared lib on %s' % (options.os)) - options.build_shared_lib = False - - build_config = BuildConfigurationInformation(options, modules_to_use) - build_config.public_headers.append( - os.path.join(build_config.build_dir, 'build.h')) - - template_vars = create_template_vars(build_config, options, - modules_to_use, - cc, - archinfo[options.arch], - osinfo[options.os]) - - # Performs the I/O - setup_build(build_config, options, template_vars) - - if options.gen_amalgamation: - generate_amalgamation(build_config) - - logging.info('Botan %s build setup is complete' % ( - build_config.version_string)) - -if __name__ == '__main__': - try: - main() - except Exception as e: - logging.error(str(e)) - import traceback - logging.debug(traceback.format_exc()) - sys.exit(1) - sys.exit(0) diff --git a/src/botan/doc/_templates/layout.html b/src/botan/doc/_templates/layout.html deleted file mode 100644 index c907c7597..000000000 --- a/src/botan/doc/_templates/layout.html +++ /dev/null @@ -1,9 +0,0 @@ -{% extends "!layout.html" %} - -{% block header %} -
-
-

{{ shorttitle|e }}

-
-
-{% endblock %} diff --git a/src/botan/doc/algos.txt b/src/botan/doc/algos.txt deleted file mode 100644 index 119b81a7f..000000000 --- a/src/botan/doc/algos.txt +++ /dev/null @@ -1,90 +0,0 @@ - -.. _algo_list: - -Algorithms -======================================== - -Supported Algorithms ----------------------------------------- - -Botan provides a number of different cryptographic algorithms and -primitives, including: - -* Public key cryptography - - * Encryption algorithms RSA, ElGamal, DLIES (padding schemes OAEP, - PKCS #1 v1.5) - * Signature algorithms RSA, DSA, ECDSA, GOST 34.10-2001, - Nyberg-Rueppel, Rabin-Williams (padding schemes PSS, PKCS #1 v1.5, - X9.31) - * Key agreement techniques Diffie-Hellman and ECDH - -* Hash functions - - * NIST hashes: SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512 - * RIPE hashes: RIPEMD-160 and RIPEMD-128 - * SHA-3 candidates Skein-512, Keccak, and Blue Midnight Wish-512 - * Other common hash functions Whirlpool and Tiger - * National standard hashes HAS-160 and GOST 34.11 - * Obsolete or insecure hashes MD5, MD4, MD2 - * Non-cryptographic checksums Adler32, CRC24, CRC32 - -* Block ciphers - - * AES (Rijndael) and AES candidates Serpent, Twofish, MARS, CAST-256, RC6 - * DES, and variants 3DES and DESX - * National/telecom block ciphers SEED, KASUMI, MISTY1, GOST 28147, Skipjack - * Other block ciphers including Blowfish, CAST-128, IDEA, Noekeon, - TEA, XTEA, RC2, RC5, SAFER-SK, and Square - * Block cipher constructions Luby-Rackoff and Lion - * Block cipher modes ECB, CBC, CBC/CTS, CFB, OFB, CTR, XTS and - authenticated cipher mode EAX - -* Stream ciphers ARC4, Salsa20/XSalsa20, Turing, and WiderWake4+1 - -* Authentication codes HMAC, CMAC (aka OMAC1), CBC-MAC, ANSI X9.19 - DES-MAC, and the protocol-specific SSLv3 authentication code - -* Public Key Infrastructure - - * X.509 certificates (including generating new self-signed and CA - certs) and CRLs - * Certificate path validation - * PKCS #10 certificate requests (creation and certificate issue) - -* Other cryptographic utility functions including - - * Key derivation functions for passwords: PBKDF1 (PKCS #5 v1.5), - PBKDF2 (PKCS #5 v2.0), OpenPGP S2K (RFC 2440) - * General key derivation functions KDF1 and KDF2 from IEEE 1363 - * PRFs from ANSI X9.42, SSL v3.0, TLS v1.0 - -Recommended Algorithms ---------------------------------- - -This section is by no means the last word on selecting which -algorithms to use. However, botan includes a sometimes bewildering -array of possible algorithms, and unless you're familiar with the -latest developments in the field, it can be hard to know what is -secure and what is not. The following attributes of the algorithms -were evaluated when making this list: security, standardization, -patent status, support by other implementations, and efficiency (in -roughly that order). - -It is intended as a set of simple guidelines for developers, and -nothing more. It's entirely possible that there are algorithms that -will turn out to be more secure than the ones listed, but the -algorithms listed here are (currently) thought to be safe. - -* Block ciphers: AES or Serpent in CBC, CTR, or XTS mode - -* Hash functions: SHA-256, SHA-512 - -* MACs: HMAC with any recommended hash function - -* Public Key Encryption: RSA with "EME1(SHA-256)" - -* Public Key Signatures: RSA with EMSA4 and any recommended hash, or - DSA or ECDSA with "EMSA1(SHA-256)" - -* Key Agreement: Diffie-Hellman or ECDH, with "KDF2(SHA-256)" diff --git a/src/botan/doc/bigint.txt b/src/botan/doc/bigint.txt deleted file mode 100644 index 7eb884039..000000000 --- a/src/botan/doc/bigint.txt +++ /dev/null @@ -1,104 +0,0 @@ -BigInt -======================================== - -``BigInt`` is Botan's implementation of a multiple-precision -integer. Thanks to C++'s operator overloading features, using -``BigInt`` is often quite similar to using a native integer type. The -number of functions related to ``BigInt`` is quite large. You can find -most of them in ``botan/bigint.h`` and ``botan/numthry.h``. - -.. note:: - - If you can, always use expressions of the form ``a += b`` over ``a = - a + b``. The difference can be *very* substantial, because the first - form prevents at least one needless memory allocation, and possibly - as many as three. This will be less of an issue once the library - adopts use of C++0x's rvalue references. - -Encoding Functions ----------------------------------------- - -These transform the normal representation of a ``BigInt`` into some -other form, such as a decimal string: - -.. cpp:function:: SecureVector BigInt::encode(const BigInt& n, Encoding enc = Binary) - - This function encodes the BigInt n into a memory - vector. ``Encoding`` is an enum that has values ``Binary``, - ``Octal``, ``Decimal``, and ``Hexadecimal``. - -.. cpp:function:: BigInt BigInt::decode(const MemoryRegion& vec, Encoding enc) - - Decode the integer from ``vec`` using the encoding specified. - -These functions are static member functions, so they would be called -like this:: - - BigInt n1 = ...; // some number - SecureVector n1_encoded = BigInt::encode(n1); - BigInt n2 = BigInt::decode(n1_encoded); - assert(n1 == n2); - -There are also C++-style I/O operators defined for use with -``BigInt``. The input operator understands negative numbers, -hexadecimal numbers (marked with a leading "0x"), and octal numbers -(marked with a leading '0'). The '-' must come before the "0x" or '0' -marker. The output operator will never adorn the output; for example, -when printing a hexadecimal number, there will not be a leading "0x" -(though a leading '-' will be printed if the number is negative). If -you want such things, you'll have to do them yourself. - -``BigInt`` has constructors that can create a ``BigInt`` from an -unsigned integer or a string. You can also decode an array (a ``byte`` -pointer plus a length) into a ``BigInt`` using a constructor. - -Number Theory ----------------------------------------- - -Number theoretic functions available include: - -.. cpp:function:: BigInt gcd(BigInt x, BigInt y) - - Returns the greatest common divisor of x and y - -.. cpp:function:: BigInt lcm(BigInt x, BigInt y) - - Returns an integer z which is the smallest integer such that z % x - == 0 and z % y == 0 - -.. cpp:function:: BigInt inverse_mod(BigInt x, BigInt m) - - Returns the modular inverse of x modulo m, that is, an integer - y such that (x*y) % m == 1. If no such y exists, returns zero. - -.. cpp:function:: BigInt power_mod(BigInt b, BigInt x, BigInt m) - - Returns b to the xth power modulo m. If you are doing many - exponentiations with a single fixed modulus, it is faster to use a - ``Power_Mod`` implementation. - -.. cpp:function:: BigInt ressol(BigInt x, BigInt p) - - Returns the square root modulo a prime, that is, returns a number y - such that (y*y) % p == x. Returns -1 if no such integer exists. - -.. cpp:function:: bool quick_check_prime(BigInt n, RandomNumberGenerator& rng) - -.. cpp:function:: bool check_prime(BigInt n, RandomNumberGenerator& rng) - -.. cpp:function:: bool verify_prime(BigInt n, RandomNumberGenerator& rng) - - Three variations on primality testing. All take an integer to test along with - a random number generator, and return true if the integer seems like it might - be prime; there is a chance that this function will return true even with - a composite number. The probability decreases with the amount of work performed, - so it is much less likely that ``verify_prime`` will return a false positive - than ``check_prime`` will. - -.. cpp:function BigInt random_prime(RandomNumberGenerator& rng, \ - size_t bits, BigInt coprime = 1, size_t equiv = 1, size_t equiv_mod = 2) - - Return a random prime number of ``bits`` bits long that is - relatively prime to ``coprime``, and equivalent to ``equiv`` modulo - ``equiv_mod``. - diff --git a/src/botan/doc/build_log.txt b/src/botan/doc/build_log.txt deleted file mode 100644 index 2e92a6f90..000000000 --- a/src/botan/doc/build_log.txt +++ /dev/null @@ -1,231 +0,0 @@ - -Build Log -======================================== - -To report build results (successful or not), email the `development -list `_ your -results and relevant system information (OS versions, compiler name -and version, CPU architecture and other hardware information, -configuration settings). - -Debian reports the build results for 1.8 on `a number of platforms -`_. - -=========== ======= =================== ======================== ============================ ======== -Date Version OS CPU Compiler Results -=========== ======= =================== ======================== ============================ ======== -2011-05-09 1.9.17 Debian 6.0 Intel Atom D510 GCC 4.4.5 OK -2010-05-09 1.9.17 Gentoo 10.0 PowerPC G5 GCC 4.4.5 OK -2011-05-02 1.9.17 FreeBSD 8.2 x86-64 GCC 4.2.1 OK -2011-04-25 1.9.16 Gentoo 10.0 Intel Core i7-860 Clang 2.9 Miscompiles SSE2 IDEA -2011-04-23 1.9.16 Gentoo 10.0 Intel Core i7-860 Sun C++ 5.10 OK -2011-04-22 1.9.16 Gentoo 10.0 Intel Core i7-860 Intel C++ 11.1 OK -2011-04-15 1.9.16 Haiku R1-alpha2 x86 GCC 4.3.3 OK -2011-04-15 1.9.16 Haiku R1-alpha2 x86 GCC 2.95.3 Can't compile -2011-04-15 1.9.16 Windows 7 x86-64 Visual C++ 16.00.30319.01 OK -2011-04-15 1.9.16 QNX 6.4.1 i386 GCC 4.3.3 OK -2011-03-29 1.9.15 Gentoo 10.0 Intel Core i5-520M GCC 4.5.2 OK -2011-03-21 1.9.15 Ark Linux x86-64 GCC 4.6.0-pre OK -2011-03-21 1.9.15 Ark Linux x86-32 GCC 4.6.0-pre OK -2011-03-21 1.9.15 Ark Linux ARM GCC 4.6.0-pre OK -2011-03-18 1.9.14 Debian 6.0 Intel Atom D510 GCC 4.4.5 OK -2011-03-01 1.9.14 OpenBSD 4.6 UltraSPARC IIIi GCC 4.2.4 OK -2011-03-01 1.9.14 OpenBSD 4.7 i386 GCC 4.2.4 OK -2011-03-01 1.9.14 Debian 6.0 Intel Madison IA-64 GCC 4.4.5 OK -2011-03-01 1.9.14 Ubuntu 9.10 ARM Cortex-A8 GCC 4.4.1 OK -2011-03-01 1.9.14 Debian 5.0 PowerPC G5/970 GCC 4.3.2 OK -2011-03-01 1.9.14 Windows 7 x64 Intel Core i5-520M Visual C++ 15.00.30729.01 OK (32/64) -2011-03-01 1.9.14 Gentoo 10.0 Intel Core i7-860 Open64 4.2.1 OK -2011-03-01 1.9.14 Gentoo 10.0 Intel Core i7-860 Sun C++ 5.10 OK -2011-03-01 1.9.14 Gentoo 10.0 Intel Core i7-860 Intel C++ 11.1 OK -2011-03-01 1.9.14 Gentoo 10.0 Intel Core i7-860 GCC 4.5.2 OK -2011-02-14 1.9.13 NetBSD 5.1 Intel Xeon P4 GNU GCC 4.1.3 OK -2011-01-14 1.9.12 FreeBSD 8.1 x86-64 Clang 2.9 OK -2010-11-29 1.9.11 Windows 7 x64 Intel Core i5-520M Visual C++ 15.00.30729.01 OK (32/64) -2010-11-29 1.9.11 Gentoo 10.0 Intel Core i7-860 GNU GCC 4.1.2, 4.4.5, 4.5.1 OK -2010-11-29 1.9.11 Debian 5.0 PowerPC G5/970 GCC 4.3.2 OK -2010-11-29 1.9.11 Gentoo 10.0 Intel Core i7-860 Intel C++ 11.1 OK -2010-11-29 1.9.11 Gentoo 10.0 Intel Core i7-860 Clang 2.8 Miscompiles SSE2 IDEA -2010-11-29 1.9.11 Debian 5.0 (32 bit) UltraSPARC T1 Niagra GCC 4.3.2 OK -2010-09-07 1.9.11 Gentoo 10.0 Intel Core i7-860 Sun C++ 5.10 OK -2010-08-12 1.9.10 Debian 5.0 Xeon X5450 Harpertown GCC 4.3.2 OK -2010-08-12 1.9.10 Ubuntu 9.04 Intel Atom N270 GCC 4.3.3 OK -2010-08-12 1.9.10 Debian 5.0 Intel Prescott GCC 4.3.2 OK -2010-08-08 1.9.10 Gentoo 10.0 Intel Core i7-860 GCC 3.4.6 OK -2010-08-08 1.9.10 Gentoo 10.0 Intel Core i7-860 GCC 4.1.2 OK -2010-08-08 1.9.10 Gentoo 10.0 Intel Core i7-860 GCC 4.3.5 OK -2010-08-08 1.9.10 Gentoo 10.0 Intel Core i7-860 GCC 4.4.4 OK -2010-08-08 1.9.10 Gentoo 10.0 Intel Core i7-860 GCC 4.5.1 OK -2010-08-08 1.9.10 Gentoo 10.0 Intel Core i7-860 Clang SVN Miscompiles Turing -2010-07-27 1.9.9 Debian 5.0 AMD Magny-Cours GCC 4.3.2, 4.5.0 OK -2010-06-16 1.9.8 Gentoo 10.0 Intel Core2 Q6600 Intel C++ 11.1 OK -2010-06-16 1.9.8 Debian 5.0 (32 bit) UltraSPARC T1 Niagra GCC 4.3.2 OK -2010-06-16 1.9.8 Debian 5.0 Intel Madison IA-64 GCC 4.3.2 OK -2010-06-16 1.9.8 Gentoo 10.0 IBM POWER5+ GCC 4.1.2, 4.2.4, 4.3.2 OK -2010-06-16 1.9.8 OpenBSD 4.6 UltraSPARC IIIi GCC 3.3.5, 4.2.4 OK -2010-06-16 1.9.8 FreeBSD 8.0 AMD Opteron 252 GCC 4.2.1 OK -2010-06-16 1.9.8 gNewSense MIPS Loongson-2 (64) GCC 4.3.2 OK -2010-06-16 1.9.8 Ubuntu 9.10 ARM Cortex-A8 GCC 4.4.1 OK -2010-06-11 1.9.8 Gentoo 10.0 Intel Core2 Q6600 GCC 3.4.6, 4.1.2 OK -2010-06-11 1.9.8 Windows 7 x64 Intel Core i5-520M Visual C++ 15.00.30729.01 OK (32 and 64 bit) -2010-06-11 1.9.8 Gentoo 10.0 Intel Core i5-520M GCC 4.5.0 OK -2010-06-01 1.9.8 OpenBSD 4.7 i386 GCC 3.3.5 OK -2010-05-03 1.9.7 Windows 7 x64 Intel Core i5-520M Visual C++ 15.00.30729.01 OK -2010-04-27 1.9.7 Gentoo 10.0 PPC 970FX (G5) GCC 4.3.4 OK -2010-04-27 1.9.7 Gentoo 10.0 Intel Core2 Q6600 GCC 4.4.3, 4.5.0 OK -2010-03-18 1.9.4 Gentoo 10.0 Intel Core2 Q6600 GCC 4.4.3 OK -2010-03-18 1.9.4 Debian 5.0 UltraSPARC II (64) GCC 4.3.2 OK -2010-03-18 1.9.4 Gentoo 10.0 PowerPC G5 GCC 4.3.4 OK -2010-03-18 1.9.4 Gentoo 10.0 IBM POWER5+ GCC 4.3.2 OK -2010-03-15 1.9.4 Windows XP x86 Visual C++ 15.00.30729.01 OK -2010-03-10 1.9.4 FreeBSD 8.0 AMD Opteron 252 GCC 4.2.1 OK, but missing includes -2009-12-29 1.9.4 Debian 4.0 PowerPC G4 7455 GCC 4.1.2 OK -2009-12-23 1.9.4 Debian 5.0 Xeon X5450 Harpertown GCC 4.3.2 OK -2009-11-13 1.9.3 Debian 5.0 UltraSPARC II GCC 4.3.2 OK -2009-11-10 1.9.2 Debian 4.0 PowerPC G4 GCC 4.1.2 OK -2009-11-03 1.9.2 Debian Linux 4.0 AMD Opteron 8354 GCC 4.4.1 OK -2009-10-27 1.9.2 Debian Linux 5.0 Xeon X5450 Harpertown GCC 4.3.2 OK -2009-10-23 1.9.1 Gentoo Linux Intel Core2 Q6600 GCC 4.4.1, Intel C++ 11.1 OK -2009-10-23 1.9.1 Gentoo Linux AMD Opteron 2212 GCC 4.3.4 OK -2009-09-24 1.9.0 Debian 4.0 AMD Opteron 8354 GCC 4.1.2, 4.4.1 OK -2010-07-01 1.8.9 OpenSUSE 10.3 Intel Core2 GCC 4.2.1 OK -2010-06-22 1.8.9 Slackware 13.1 Intel E5400 (64) GCC 4.4.4 OK -2010-06-22 1.8.9 Slackware 13.1 Pentium-M (32) GCC 4.4.4 OK -2010-06-16 1.8.9 Debian 5.0 (32 bit) UltraSPARC T1 Niagra GCC 4.3.2 (GCC TR1) Crashes in GF(p) tests -2010-03-18 1.8.8 Debian 5.0 UltraSPARC II (64) GCC 4.3.2 OK -2008-10-23 1.8.7 Gentoo 2008.0 PPC 970FX (G5) GCC 4.3.4 OK -2009-10-07 1.8.7 Debian GNU/Hurd 0.3 i686 GCC 4.3.4 OK -2009-09-08 1.8.7 Gentoo 2008.0 Intel Core2 Q6600 GCC 4.4.1 OK -2009-09-04 1.8.6 Gentoo 2008.0 PPC 970FX (G5) GCC 4.3.4 OK -2009-08-13 1.8.6 Gentoo 2008.0 Intel Core2 Q6600 GCC 4.3.3 OK -2009-08-13 1.8.6 Windows XP x86 Visual C++ 15.00.30729.01 OK (no TR1) -2009-08-03 1.8.5 openSuSE 10.3 x86 GCC 4.2.1 OK -2009-08-03 1.8.5 Gentoo 2008.0 Intel Core2 Q6600 Open64 4.2.1 BAD: Miscompiles several ciphers -2009-07-31 1.8.5 Solaris 11 x86 Sun C++ 5.9 OK, but minor build problems -2009-07-30 1.8.5 Gentoo 2006.1 UltraSPARC IIe (32) GCC 3.4.6 OK (no TR1) -2009-07-25 1.8.5 Debian 4.0 AMD Opteron 2212 GCC 4.1.2 OK -2009-07-23 1.8.5 Gentoo 2008.0 Marvel Feroceon 88FR131 GCC 4.1.2 OK -2009-07-23 1.8.5 Debian 5.0 Intel Xscale 80219 GCC 4.3.2 OK -2009-07-23 1.8.5 Debian 5.0 UltraSPARC II (64) GCC 4.3.2 OK -2009-07-23 1.8.5 Debian 5.0 UltraSPARC II (32) GCC 4.3.2 BAD: bus error in GF(p) -2009-07-23 1.8.5 Debian 5.0 UltraSPARC II (32) GCC 4.1.3 BAD: miscompiles BigInt code -2009-07-23 1.8.5 Debian 4.0 PowerPC G4 GCC 4.1.2 OK -2009-07-23 1.8.5 Debian 4.0 PowerPC G5 GCC 4.1.2 OK -2009-07-23 1.8.5 Debian 5.0 Intel Madison IA-64 GCC 4.1.3, 4.3.2 OK -2009-07-23 1.8.5 Debian 5.0 HP-PA PA8600 GCC 4.3.2 OK -2009-07-23 1.8.5 Mandriva 2008.1 MIPS Loongson-2 (32) GCC 4.2.3 OK -2009-07-23 1.8.5 gNewSense MIPS Loongson-2 (64) GCC 4.3.2 OK -2009-07-21 1.8.5 Windows XP x86 Visual C++ 15.00.30729.01 OK (no TR1) -2009-07-21 1.8.5 Gentoo 2008.0 Intel Core2 Q6600 GCC 4.1.2, 4.3.3 OK -2009-07-21 1.8.5 Gentoo 2008.0 Intel Core2 Q6600 Intel C++ 10.1 20080801 OK -2009-07-21 1.8.5 Gentoo 2008.0 AMD Opteron 2212 GCC 4.3.3 OK -2009-07-21 1.8.5 Ubuntu 8.04 Intel Xeon X5492 GCC 4.2.4 OK -2009-07-21 1.8.5 MacOS X 10.5.6 Intel Core 2 Duo T5600 GCC 4.0.1 OK -2009-07-21 1.8.5 Solaris 10 AMD Opteron GCC 3.4.3 OK (no TR1) -2008-07-11 1.8.3 Fedora 11 Intel Pentium E5200 GCC 4.4.0 OK -2008-07-10 1.8.3 Gentoo 2008.0 PPC 970FX (G5) GCC 4.3.1 OK -2008-07-10 1.8.3 Gentoo 2008.0 IBM POWER5+ GCC 4.2.2 OK -2009-07-10 1.8.3 Gentoo 2008.0 AMD Opteron 2212 GCC 4.3.3 OK -2009-07-10 1.8.3 Ubuntu 8.04 Intel Xeon X5492 GCC 4.2.4 OK -2009-07-10 1.8.3 MacOS X 10.5.6 Intel Core 2 Duo T5600 GCC 4.0.1 OK -2009-07-10 1.8.3 Debian 5.0.1 Intel Core 2 Duo T5600 GCC 4.3.2 OK -2009-07-10 1.8.3 Fedora 10 Intel Core 2 Duo T5600 GCC 4.3.2 OK -2009-07-10 1.8.3 Solaris 10 AMD Opteron GCC 3.4.3 OK (no TR1) -2009-07-09 1.8.3 Gentoo 2008.0 Intel Core2 Q6600 Intel C++ 10.1 20080801 OK -2009-07-02 1.8.3 Gentoo 2008.0 Intel Core2 Q6600 GCC 4.3.3 OK -2009-07-02 1.8.3 FreeBSD 7.0 x86-64 GCC 4.2.1 OK -2009-07-02 1.8.3 Windows XP x86 Visual C++ 15.00.30729.01 OK (no TR1) -2008-12-27 1.8.0 Ubuntu 8.04 Pentium 4-M GCC 4.2.3 OK -2008-12-14 1.8.0 FreeBSD 7.0 x86-64 GCC 4.2.1 OK -2008-12-10 1.8.0 Gentoo 2007.0 Intel Core2 Q6600 GCC 4.1.2, 4.2.4, 4.3.2 OK -2008-12-05 1.7.24 Gentoo 2007.0 Intel Core2 Q6600 GCC 4.1.2, 4.2.4, 4.3.2 OK -2008-12-04 1.7.24 Gentoo 2007.0 Intel Core2 Q6600 Intel 10.1-20080801 OK -2008-12-03 1.7.24 Solaris 10 x86 GCC 3.4.3 OK (small patch needed, fixed in 1.8.0) -2008-11-24 1.7.23 Gentoo 2007.0 Intel Core2 Q6600 GCC 4.1.2 OK -2008-11-24 1.7.23 Gentoo 2007.0 Intel Core2 Q6600 GCC 4.2.4 OK -2008-11-24 1.7.23 Gentoo 2007.0 Intel Core2 Q6600 GCC 4.3.2 OK -2008-11-24 1.7.23 Gentoo 2007.0 Intel Core2 Q6600 GCC 4.4-20081017 OK -2008-11-24 1.7.23 Gentoo 2007.0 Intel Core2 Q6600 (32) GCC 4.1.2, 4.2.4 OK -2008-11-24 1.7.23 Gentoo 2007.0 Intel Core2 Q6600 (32) GCC 4.3.2 OK (with Boost 1.35 TR1) -2008-11-24 1.7.23 Gentoo 2007.0 Intel Core2 Q6600 (32) GCC 4.3.2 Crashes (with libstdc++ TR1) -2008-11-24 1.7.23 Gentoo 2007.0 Intel Core2 Q6600 Intel C++ 9.1-20061101 OK -2008-11-24 1.7.23 Gentoo 2007.0 Intel Core2 Q6600 Intel C++ 10.1-20080801 OK -2008-11-24 1.7.23 Fedora 8 STI Cell PPU GCC 4.1.2 OK -2008-11-24 1.7.23 Fedora 8 STI Cell PPU IBM XLC for Cell 0.9 45 minute link. Miscompiles DES -2008-11-24 1.7.23 Gentoo 2007.0 IBM POWER5+ GCC 4.1.2, 4.2.2, 4.3.1 OK -2008-11-24 1.7.23 Gentoo 2007.0 AMD Opteron 2212 GCC 3.3.6, 4.1.2, 4.3.2 OK (no TR1 with 3.3.6) -2008-11-24 1.7.23 Windows XP x86 Visual C++ 15.00.30729.01 OK (no TR1) -2008-11-09 1.7.20 Gentoo 2007.0 IBM POWER5+ GCC 4.1.2 OK -2008-11-09 1.7.20 Gentoo 2007.0 Intel Core2 Q6600 GCC 4.3.2 OK -2008-11-09 1.7.20 Windows XP x86 Visual C++ 15.00.30729.01 OK -2008-11-06 1.7.19 Gentoo 2007.0 IBM POWER5+ GCC 4.1.2 OK -2008-11-06 1.7.19 Gentoo 2007.0 Intel Core2 Q6600 GCC 4.1.2, 4.3.1 OK -2008-11-06 1.7.19 Gentoo 2007.0 Intel Core2 Q6600 Intel C++ 9.1-20061101 OK -2008-11-06 1.7.19 Gentoo 2007.0 Intel Core2 Q6600 Intel C++ 10.1-20080801 OK -2008-11-06 1.7.19 Windows XP x86 Visual C++ 15.00.30729.01 OK -2008-11-03 1.7.19 FreeBSD 7.0 x86-64 GCC 4.2.1 OK -2008-10-24 1.7.18 Gentoo 2007.0 IBM POWER5+ GCC 4.2.2, 4.3.1 OK -2008-10-24 1.7.18 Fedora 8 STI Cell PPU GCC 4.1.2 OK -2008-10-22 1.7.18 Windows XP Pentium 4-M GCC 3.4.5 (MinGW) OK -2008-10-22 1.7.18 Windows XP Pentium 4-M Visual C++ 15.00.30729.01 OK -2008-10-22 1.7.18 Gentoo 2007.0 IBM POWER5+ GCC 4.1.2 OK -2008-10-22 1.7.18 Gentoo 2007.0 Intel Core2 Q6600 GCC 4.1.2, 4.2.4, 4.3.2 OK -2008-10-22 1.7.18 Gentoo 2007.0 Intel Core2 Q6600 Intel C++ 9.1-20061101 OK -2008-10-22 1.7.18 Gentoo 2007.0 Intel Core2 Q6600 Intel C++ 10.1-20080801 OK -2008-10-07 1.7.15 Gentoo 2007.0 IBM POWER5+ GCC 4.1.2 OK -2008-10-07 1.7.15 Gentoo 2007.0 Intel Core2 Q6600 GCC 4.3.1 OK -2008-09-30 1.7.14 Gentoo 2007.0 PPC 970FX (G5) GCC 4.3.1 OK -2008-09-30 1.7.14 Gentoo 2007.0 IBM POWER5+ GCC 4.1.2 OK -2008-09-30 1.7.14 Gentoo 2007.0 Intel Core2 Q6600 GCC 4.3.1 OK -2008-09-30 1.7.14 Gentoo 2007.0 Intel Core2 Q6600 Intel C++ 10.1.018 OK -2008-09-30 1.7.14 Windows XP Pentium 4-M Visual C++ 15.00.30729.01 OK -2008-09-30 1.7.14 Windows XP Pentium 4-M GCC 3.4.5 (MinGW) OK -2008-09-18 1.7.12 Gentoo 2007.0 IBM POWER5+ GCC 4.1.2, 4.2.2 OK -2008-09-18 1.7.12 Gentoo 2007.0 Intel Core2 Q6600 GCC 4.2.4, 4.3.1 OK -2008-09-18 1.7.12 Gentoo 2007.0 Intel Core2 Q6600 Intel C++ 10.1.018 OK -2008-09-18 1.7.12 Windows XP Pentium 4-M Visual C++ 15.00.30729.01 OK -2008-09-18 1.7.12 Windows XP Pentium 4-M GCC 3.4.5 (MinGW) OK -2008-09-16 1.7.12 Fedora 7 STI Cell PPU GCC 4.1.2 OK -2008-09-16 1.7.11 MacOS X 10.4 (32) Intel Core2 GCC 4.0.1 OK -2008-09-11 1.7.11 Gentoo 2007.0 Intel Core2 Q6600 GCC 4.3.1 OK -2008-09-11 1.7.11 Windows XP Pentium 4-M Visual C++ 15.00.30729.01 OK -2008-09-08 1.7.9 Gentoo 2007.0 Intel Core2 Q6600 Intel C++ 10.1.018 OK -2008-08-28 1.7.9 Gentoo 2007.0 IBM POWER5+ GCC 4.1.2 OK -2008-08-28 1.7.9 Gentoo 2007.0 IBM POWER5+ GCC 4.2.2 OK -2008-08-28 1.7.9 Gentoo 2007.0 IBM POWER5+ GCC 4.3.1 OK -2008-08-28 1.7.9 Gentoo STI Cell PPU GCC 4.1.2 OK -2008-08-27 1.7.9 Gentoo Intel Core2 Q6600 GCC 4.1.2 OK -2008-08-27 1.7.9 Gentoo Intel Core2 Q6600 GCC 4.2.4 OK -2008-08-27 1.7.9 Gentoo Intel Core2 Q6600 GCC 4.3.1 OK -2008-08-27 1.7.9 Gentoo Intel Core2 Q6600 GCC 4.4-20080822 OK -2008-08-27 1.7.9 Gentoo Intel Core2 Q6600 Intel C++ 9.1-20061101 OK -2008-08-27 1.7.9 Gentoo Intel Core2 Q6600 Intel C++ 10.1-20080602 OK -2008-08-27 1.7.9 Windows XP Pentium 4-M Visual C++ 2008 OK -2008-08-27 1.7.9 Windows XP Pentium 4-M GCC 3.4.5 (MinGW) OK -2008-08-18 1.7.8 Ubuntu 8.04 Pentium 4-M GCC 4.2.3 OK -2008-08-18 1.7.8 Windows XP Pentium 4-M Visual C++ 2008 OK -2008-08-18 1.7.8 Windows XP Pentium 4-M GCC 3.4.5 (MinGW) OK -2008-07-18 1.7.8 Gentoo IBM POWER5+ GCC 4.1.2 OK -2008-07-15 1.7.8 Gentoo Intel Core2 Q6600 GCC 4.3.1 OK -2008-07-06 1.7.7 Gentoo Intel Core2 Q6600 PGI 7.2 Miscompiles TEA, Turing, BigInt -2008-06-28 1.7.7 Gentoo Pentium 4-M GCC 4.1.2 OK -2008-06-28 1.7.7 Gentoo Intel Core2 Q6600 GCC 4.1.2, 4.2.4, 4.3.1 OK -2008-06-28 1.7.7 Gentoo Intel Core2 Q6600 Intel C++ 10.1 OK -2008-06-28 1.7.7 Gentoo IBM POWER5+ GCC 4.1.2, 4.2.2 OK -2008-06-25 1.7.6 Gentoo IBM POWER5+ GCC 4.1.2, 4.2.2 OK -2008-06-09 1.7.6 Gentoo PPC 970FX (G5) GCC 4.1.2 OK -2008-05-14 1.7.6 Gentoo Intel Core2 Q6600 Intel C++ 9.1 Builds, but link problems -2008-05-14 1.7.6 Gentoo Intel Core2 Q6600 GCC 4.2.3 OK -2008-04-21 1.7.5 Gentoo STI Cell PPU GCC 4.1.2 OK -2008-04-14 1.7.5 Debian Pentium 4 GCC 4.1.2 OK -2008-04-13 1.7.5 Gentoo 2006.1 UltraSPARC II (32) GCC 3.4.6 OK -2008-04-12 1.7.5 RHEL3 Pentium 4 Xeon GCC 3.2.3 OK -2008-04-12 1.7.5 Gentoo Intel Core2 Q6600 Intel C++ 10.1 OK -2008-04-12 1.7.5 Gentoo AMD Opteron 2212 GCC 4.1.2 OK -2008-04-12 1.7.5 Gentoo Intel Core2 Q6600 GCC 4.2.3 OK -2008-09-16 1.6.5 MacOS X 10.4 Intel Core2 (32) GCC 4.0.1 OK -2008-08-28 1.6.5 Gentoo 2007.0 IBM POWER5+ GCC 4.1.2, 4.2.2, 4.3.1 OK -2008-08-27 1.6.5 Gentoo Intel Core2 Q6600 GCC 4.3.1, 4.4-20080822 OK -2008-08-18 1.6.4 Windows XP Pentium 4-M Visual C++ 2008 OK -2008-07-02 1.6.4 Solaris 10 x86-64 Sun Forte 12 OK -=========== ======= =================== ======================== ============================ ======== diff --git a/src/botan/doc/building.txt b/src/botan/doc/building.txt deleted file mode 100644 index e16531de4..000000000 --- a/src/botan/doc/building.txt +++ /dev/null @@ -1,465 +0,0 @@ - -Building The Library -================================= - -This document describes how to build Botan on Unix/POSIX and MS -Windows systems. The POSIX oriented descriptions should apply to most -common Unix systems (including MacOS X), along with POSIX-ish systems -like BeOS, QNX, and Plan 9. Currently, systems other than Windows and -POSIX (such as VMS, MacOS 9, OS/390, OS/400, ...) are not supported by -the build system, primarily due to lack of access. Please contact the -maintainer if you would like to build Botan on such a system. - -Botan's build is controlled by configure.py, which is a `Python -`_ script. Python 2.5 or later is required. - -For the impatient, this works for most systems:: - - $ ./configure.py [--prefix=/some/directory] - $ make - $ make check - $ make install - -Or using ``nmake``, if you're compiling on Windows with Visual C++. On -platforms that do not understand the '#!' convention for beginning -script files, or that have Python installed in an unusual spot, you -might need to prefix the ``configure.py`` command with ``python`` or -``/path/to/python``:: - - $ python ./configure.py [arguments] - -Configuring the Build ---------------------------------- - -The first step is to run ``configure.py``, which is a Python script -that creates various directories, config files, and a Makefile for -building everything. The script requires at least Python 2.5; any -later version of Python 2.x should also work. Python 3.1 will also -work but requires an extra step; see :ref:`configure_with_python3` for -details. - -The script will attempt to guess what kind of system you are trying to -compile for (and will print messages telling you what it guessed). -You can override this process by passing the options ``--cc``, -``--os``, and ``--cpu``. - -You can pass basically anything reasonable with ``--cpu``: the script -knows about a large number of different architectures, their -sub-models, and common aliases for them. You should only select the -64-bit version of a CPU (such as "sparc64" or "mips64") if your -operating system knows how to handle 64-bit object code - a 32-bit -kernel on a 64-bit CPU will generally not like 64-bit code. - -By default the script tries to figure out what will work on your -system, and use that. It will print a display at the end showing which -algorithms have and have not been enabled. For instance on one system -we might see lines like:: - - INFO: Skipping, by request only - bzip2 gnump openssl qt_mutex zlib - INFO: Skipping, incompatible CPU - aes_intel aes_ssse3 asm_x86_64 mp_asm64 mp_x86_64 sha1_x86_64 - INFO: Skipping, incompatible OS - beos_stats cryptoapi_rng win32_crit_section win32_stats - INFO: Skipping, incompatible compiler - mp_msvc64 mp_x86_32_msvc - -The ones that are skipped because they are 'by request only' have to -be explicitly asked for, because they rely on third party libraries -which your system might not have or that you might not want the -resulting binary to depend on. For instance to enable zlib support, -add ``--with-zlib`` to your invocation of ``configure.py``. - -You can control which algorithms and modules are built using the -options ``--enable-modules=MODS`` and ``--disable-modules=MODS``, for -instance ``--enable-modules=zlib`` and ``--disable-modules=rc5,idea``. -Modules not listed on the command line will simply be loaded if needed -or if configured to load by default. If you use ``--no-autoload``, -only the most core modules will be included; you can then explicitly -enable things that you want to use with ``--enable-modules``. This is -useful for creating a minimal build targeting to a specific -application, especially in conjunction with the amalgamation option; -see :ref:`amalgamation`. - -For instance:: - - $ ./configure.py --no-autoload --enable-modules=rsa,ecdsa,eme1,emsa1,emsa4 - -will set up a build that only includes RSA, ECDSA, and some padding -modes, along with their dependencies. A small subset of core features, -including AES, SHA-2, HMAC, and the multiple precision integer -library, are always loaded. - -The script tries to guess what kind of makefile to generate, and it -almost always guesses correctly (basically, Visual C++ uses NMAKE with -Windows commands, and everything else uses Unix make with POSIX -commands). Just in case, you can override it with -``--make-style=somestyle``. The styles Botan currently knows about are -'unix' (normal Unix makefiles), and 'nmake', the make variant commonly -used by Windows compilers. To add a new variant (eg, a build script -for VMS), you will need to create a new template file in -``src/build-data/makefile``. - -On Unix -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The basic build procedure on Unix and Unix-like systems is:: - - $ ./configure.py [--enable-modules=] [--cc=CC] - $ make - # You may need to set your LD_LIBRARY_PATH or equivalent for ./check to run - $ make check # optional, but a good idea - $ make install - -On Unix systems the script will default to using GCC; use -``--cc`` if you want something else. For instance use -``--cc=icc`` for Intel C++ and ``--cc=clang`` for Clang. - -The ``make install`` target has a default directory in which it -will install Botan (typically ``/usr/local``). You can override -this by using the ``--prefix`` argument to -``configure.py``, like so: - -``./configure.py --prefix=/opt `` - -On some systems shared libraries might not be immediately visible to -the runtime linker. For example, on Linux you may have to edit -``/etc/ld.so.conf`` and run ``ldconfig`` (as root) in -order for new shared libraries to be picked up by the linker. An -alternative is to set your ``LD_LIBRARY_PATH`` shell variable -to include the directory that the Botan libraries were installed into. - -On Mac OS X -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -In general the Unix instructions above should apply, however OS X does -not support ``LD_LIBRARY_PATH``. Thomas Keller suggests instead -running ``install_name_tool`` between building and running the -self-test program:: - - $ VERSION=1.10.0 # or whatever the current version is - $ install_name_tool -change $(otool -X -D libbotan-$VERSION.dylib) \ - $PWD/libbotan-$VERSION.dylib check - -Building Universal Binaries -&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& - -To build a universal binary for OS X, some simple modifications are -required. First, create a CPU type for the target universalbinary, -one that doesn't specify any special handlers. This is done by -creating an empty file in src/build-data/arch:: - - $ touch src/build-data/arch/universalbinary.txt - -and then adding a special target for it in gcc, by adding the line:: - - universalbinary -> "-force_cpusubtype_ALL -mmacosx-version-min=10.4 -arch i386 -arch ppc" - -in the section marked `` in -`src/build-data/cc/gcc.txt`. Then configure with:: - - $ ./configure.py --cpu=universalbinary [other options here] - - -On MS Windows -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -If you don't want to deal with building botan on Windows, check the -website; commonly prebuilt Windows binaries with installers are -available, especially for stable versions. - -You need to have a copy of Python installed, and have both Python and -your chosen compiler in your path. Open a command shell (or the SDK -shell), and run:: - - > python configure.py --cc=msvc (or --cc=gcc for MinGW) [--cpu=CPU] - > nmake - > nmake check # optional, but recommended - > nmake install - -For Win95 pre OSR2, the ``cryptoapi_rng`` module will not work, -because CryptoAPI didn't exist. And all versions of NT4 lack the -ToolHelp32 interface, which is how ``win32_stats`` does its slow -polls, so a version of the library built with that module will not -load under NT4. Later versions of Windows support both methods, so -this shouldn't be much of an issue anymore. - -By default the install target will be ``C:\botan``; you can modify -this with the ``--prefix`` option. - -When building your applications, all you have to do is tell the -compiler to look for both include files and library files in -``C:\botan``, and it will find both. Or you can move them to a -place where they will be in the default compiler search paths (consult -your documentation and/or local expert for details). - -Other Build-Related Tasks ----------------------------------------- - -.. _building_docs: - -Building The Documentation -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -There are two documentation options available, Sphinx and Doxygen. -Sphinx will be used if ``sphinx-build`` is detected in the PATH, or if -``--with-sphinx`` is used at configure time. Doxygen is only enabled -if ``--with-doxygen`` is used. Both are generated by the makefile -target ``docs``. - - -.. _amalgamation: - -The Amalgamation Build -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -You can also configure Botan to be built using only a single source -file; this is quite convenient if you plan to embed the library into -another application. To do so, run ``configure.py`` with whatever -arguments you would ordinarily use, along with the option -``--gen-amalgamation``. This will create two (rather large) files, -``botan_all.h`` and ``botan_all.cpp``. - -Whenever you would have included a botan header, you can then include -``botan_all.h``, and include ``botan_all.cpp`` along with the rest of -the source files in your build. If you want to be able to easily -switch between amalgamated and non-amalgamated versions (for instance -to take advantage of prepackaged versions of botan on operating -systems that support it), you can instead ignore ``botan_all.h`` and -use the headers from ``build/include`` as normal. - -You can also build the library as normal but using the amalgamation -instead of the individual source files using ``--via-amalgamation``. -This is essentially a very simple form of link time optimization; -because the entire library source is visible to the compiler, it has -more opportunities for interprocedural optimizations. - -Modules Relying on Third Party Libraries -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -There are a fairly large number of modules included with Botan. Some -of these are extremely useful, while others are only necessary in very -unusual circumstances. Most are loaded (or not) automatically as -necessary, but some require external libraries are thus must be -enabled at build time; these include: - - - ``--with-bzip2`` enables the filters providing bzip2 compression - and decompression. Requires the bzip2 development libraries to be - installed. - - - ``--with-zlib`` enables the filters providing zlib compression - and decompression. Requires the zlib development libraries to be - installed. - - - ``--with-gnump`` adds an alternative engine for public key - cryptography that uses the GNU MP library. GNU MP 4.1 or later is - required. - - - ``--with-openssl`` adds an engine that uses OpenSSL for some public - key operations and ciphers/hashes. OpenSSL 0.9.7 or later is - required. Note that OpenSSL's versions are not always faster than - the versions built into botan. - -Multiple Builds -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -It may be useful to run multiple builds with different -configurations. Specify ``--build-dir=`` to set up a build -environment in a different directory. - -.. _configure_with_python3: - -Configuring the Build With Python 3.1 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The versions of Python beginning with 3 are (intentionally) -incompatible with the (currently more common) 2.x series. If you want -to use Python 3.1 to set up the build, you'll have to use the -``2to3`` program (included in the Python distribution) on the -script; this will convert the script to the Python 3.x dialect:: - - $ python ./configure.py - File "configure.py", line 860 - except KeyError, e: - ^ - SyntaxError: invalid syntax - $ # incompatible python version, let's fix it - $ 2to3 -w configure.py - [...] - RefactoringTool: Files that were modified: - RefactoringTool: configure.py - $ python ./configure.py - [...] - -Setting Distribution Info -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The build allows you to set some information about what distribution -this build of the library comes from. It is particularly relevant to -people packaging the library for wider distribution, to signify what -distribution this build is from. Applications can test this value by -checking the string value of the macro ``BOTAN_DISTRIBUTION_INFO``. It -can be set using the ``--distribution-info`` flag to ``configure.py``, -and otherwise defaults to "unspecified". For instance, a `Gentoo -`_ ebuild might set it with -``--distribution-info="Gentoo ${PVR}"`` where ``${PVR}`` is an ebuild -variable automatically set to a combination of the library and ebuild -versions. - -Local Configuration Settings -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -You may want to do something peculiar with the configuration; to -support this there is a flag to ``configure.py`` called -``--with-local-config=``. The contents of the file are -inserted into ``build/build.h`` which is (indirectly) included -into every Botan header and source file. - -Configuration Parameters -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -There are some configuration parameters which you may want to tweak -before building the library. These can be found in ``config.h``. This -file is overwritten every time the configure script is run (and does -not exist until after you run the script for the first time). - -Also included in ``build/build.h`` are macros which let applications -check which features are included in the current version of the -library. All of them begin with ``BOTAN_HAS_``. For example, if -``BOTAN_HAS_BLOWFISH`` is defined, then an application can include -```` and use the Blowfish class. - -``BOTAN_MP_WORD_BITS``: This macro controls the size of the words used -for calculations with the MPI implementation in Botan. You can choose -8, 16, 32, or 64. Normally this defaults to either 32 or 64, depending -on the processor. Unless you are building for a 8 or 16-bit CPU, this -isn't worth messing with. - -``BOTAN_VECTOR_OVER_ALLOCATE``: The memory container ``SecureVector`` -will over-allocate requests by this amount (in elements). In several -areas of the library, we grow a vector fairly often. By -over-allocating by a small amount, we don't have to do allocations as -often (which is good, because the allocators can be quite slow). If -you *really* want to reduce memory usage, set it to 0. Otherwise, the -default should be perfectly fine. - -``BOTAN_DEFAULT_BUFFER_SIZE``: This constant is used as the size of -buffers throughout Botan. A good rule of thumb would be to use the -page size of your machine. The default should be fine for most -purposes. - -Building Applications ----------------------------------------- - -Unix -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Botan usually links in several different system libraries (such as -``librt`` and ``libz``), depending on which modules are -configured at compile time. In many environments, particularly ones -using static libraries, an application has to link against the same -libraries as Botan for the linking step to succeed. But how does it -figure out what libraries it *is* linked against? - -The answer is to ask the ``botan-config`` script. This -basically solves the same problem all the other ``*-config`` -scripts solve, and in basically the same manner. - -There are 4 options: - -``--prefix[=DIR]``: If no argument, print the prefix where Botan -is installed (such as ``/opt`` or ``/usr/local``). If an -argument is specified, other options given with the same command will -execute as if Botan as actually installed at ``DIR`` and not -where it really is; or at least where ``botan-config`` thinks -it really is. I should mention that it - -``--version``: Print the Botan version number. - -``--cflags``: Print options that should be passed to the compiler -whenever a C++ file is compiled. Typically this is used for setting -include paths. - -``--libs``: Print options for which libraries to link to (this includes -``-lbotan``). - -Your ``Makefile`` can run ``botan-config`` and get the -options necessary for getting your application to compile and link, -regardless of whatever crazy libraries Botan might be linked against. - -Botan also by default installs a file for ``pkg-config``, -namespaced by the major and minor versions. So it can be used, -for instance, as:: - - $ pkg-config botan-1.10 --modversion - 1.10.0 - $ pkg-config botan-1.10 --cflags - -I/usr/local/include - $ pkg-config botan-1.10 --libs - -L/usr/local/lib -lbotan -lm -lbz2 -lpthread -lrt - -MS Windows -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -No special help exists for building applications on Windows. However, -given that typically Windows software is distributed as binaries, this -is less of a problem - only the developer needs to worry about it. As -long as they can remember where they installed Botan, they just have -to set the appropriate flags in their Makefile/project file. - -Language Wrappers ----------------------------------------- - -Building the Python wrappers -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The Python wrappers for Botan use Boost.Python, so you must have Boost -installed. To build the wrappers, pass the flag -``--with-boost-python`` to ``configure.py``. This will create a second -makefile, ``Makefile.python``, with instructions for building the -Python module. After building the library, execute:: - - $ make -f Makefile.python - -to build the module. Currently only Unix systems are supported, and -the Makefile assumes that the version of Python you want to build -against is the same one you used to run ``configure.py``. - -To install the module, use the ``install`` target. - -See :doc:`Python Bindings ` for more information about the -binding. - -Building the Perl XS wrappers -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -To build the Perl XS wrappers, change your directory to -``src/wrap/perl-xs`` and run ``perl Makefile.PL``, then run -``make`` to build the module and ``make test`` to run the test -suite:: - - $ perl Makefile.PL - Checking if your kit is complete... - Looks good - Writing Makefile for Botan - $ make - cp Botan.pm blib/lib/Botan.pm - AutoSplitting blib/lib/Botan.pm (blib/lib/auto/Botan) - /usr/bin/perl5.8.8 /usr/lib64/perl5/5.8.8/ExtUtils/xsubpp [...] - g++ -c -Wno-write-strings -fexceptions -g [...] - Running Mkbootstrap for Botan () - chmod 644 Botan.bs - rm -f blib/arch/auto/Botan/Botan.so - g++ -shared Botan.o -o blib/arch/auto/Botan/Botan.so \ - -lbotan -lbz2 -lpthread -lrt -lz \ - - chmod 755 blib/arch/auto/Botan/Botan.so - cp Botan.bs blib/arch/auto/Botan/Botan.bs - chmod 644 blib/arch/auto/Botan/Botan.bs - Manifying blib/man3/Botan.3pm - $ make test - PERL_DL_NONLAZY=1 /usr/bin/perl5.8.8 [...] - t/base64......ok - t/filt........ok - t/hex.........ok - t/oid.........ok - t/pipe........ok - t/x509cert....ok - All tests successful. - Files=6, Tests=83, 0 wallclock secs ( 0.08 cusr + 0.02 csys = 0.10 CPU) diff --git a/src/botan/doc/conf.py b/src/botan/doc/conf.py deleted file mode 100644 index 65f40314a..000000000 --- a/src/botan/doc/conf.py +++ /dev/null @@ -1,243 +0,0 @@ -# -*- coding: utf-8 -*- -# -# botan documentation build configuration file, created by -# sphinx-quickstart on Sun Apr 3 11:41:06 2011. -# -# This file is execfile()d with the current directory set to its containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys, os - -sys.path.insert(0, os.pardir) - -# Avoid useless botan_version.pyc (Python 2.6 or higher) -if 'dont_write_bytecode' in sys.__dict__: - sys.dont_write_bytecode = True - -import botan_version - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ----------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -needs_sphinx = '1.0' - -""" -Assert that we are running under Sphinx 1.0.7 or later. Earlier -versions have bugs in the C++ domain that cause crashes. And -needs_sphinx only allows us to assert needing a particular major/minor -version. -""" -def check_sphinx_version(): - import sphinx - - version = map(int, sphinx.__version__.split('.')) - if version[0] == 1 and version[1] == 0 and version[2] < 7: - # Exit rather than throwing to avoid a confusing backtrace - print "This Sphinx is too old - upgrade to at least 1.0.7" - import sys - sys.exit(1) - -check_sphinx_version() - -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = [] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.txt' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'contents' - -# General information about the project. -project = u'botan' -copyright = u'2000-2011, Jack Lloyd' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = '%d.%d' % (botan_version.release_major, botan_version.release_minor) -# The full version, including alpha/beta/rc tags. -release = '%d.%d.%d' % (botan_version.release_major, - botan_version.release_minor, - botan_version.release_patch) - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -#language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -today_fmt = '%Y-%m-%d' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = [] - -# The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -add_function_parentheses = False - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -highlight_language = 'cpp' - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - - -# -- Options for HTML output --------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'agogo' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -html_theme_options = { - 'linkcolor': 'blue', - 'headerlinkcolor': 'blue', - 'headercolor1': 'darkblue', - 'headercolor2': 'darkblue', - 'textalign': 'left' - } - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -html_title = 'Botan' - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = 'botandoc' - - -# -- Options for LaTeX output -------------------------------------------------- - -# The paper size ('letter' or 'a4'). -#latex_paper_size = 'letter' - -# The font size ('10pt', '11pt' or '12pt'). -#latex_font_size = '10pt' - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). -latex_documents = [ - ('contents', 'botan.tex', u'botan Reference Manual', - u'Jack Lloyd', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -latex_show_pagerefs = False - -# If true, show URL addresses after external links. -latex_show_urls = False - -# Additional stuff for the LaTeX preamble. -#latex_preamble = '' - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - diff --git a/src/botan/doc/contents.txt b/src/botan/doc/contents.txt deleted file mode 100644 index dd600d587..000000000 --- a/src/botan/doc/contents.txt +++ /dev/null @@ -1,44 +0,0 @@ - -Contents -================================= - -.. toctree:: - :maxdepth: 2 - - index - reading - building - firststep - filters - pubkey - x509 - ssl - bigint - lowlevel - secmem - kdf - pbkdf - passhash - rng - fpe - python - -.. toctree:: - :hidden: - - log - license - credits - faq - users - support - download - pgpkey - algos - build_log - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`search` diff --git a/src/botan/doc/credits.txt b/src/botan/doc/credits.txt deleted file mode 100644 index 076498756..000000000 --- a/src/botan/doc/credits.txt +++ /dev/null @@ -1,80 +0,0 @@ - -Credits -======================================== - -This is at least a partial credits-file of people that have contributed -to botan. It is sorted by name and formatted to allow easy grepping -and beautification by scripts. The fields are name (N), email (E), -web-address (W), PGP key ID and fingerprint (P), description (D), and -snail-mail address (S). - -:: - - N: Charles Brockman - W: http://www.securitygenetics.com/ - D: documentation editing - S: Oregon, USA - - N: Martin Doering - E: doering@cdc.informatik.tu-darmstadt.de - D: GF(p) arithmetic - - N: Olivier de Gaalon - D: SQLite encryption codec (src/wrap/sqlite) - - N: Matthew Gregan - D: Binary file I/O support, allocator fixes - - N: Hany Greiss - D: Windows porting - - N: Manuel Hartl - E: hartl@flexsecure.de - W: http://www.flexsecure.de/ - D: ECDSA, ECDH - - N: Yves Jerschow - E: yves.jerschow@uni-duesseldorf.de - D: Optimizations for memory load/store and HMAC - D: Support for IPv4 addresses in X.509 alternative names - S: Germany - - N: Matt Johnston - D: Allocator fixes and optimizations, decompressor fixes - - N: Peter J. Jones - E: pjones@pmade.org - D: Bzip2 compression module - S: Colorado, USA - - N: Justin Karneges - D: Qt support modules (mutexes and types), X.509 API design - - N: Jack Lloyd - E: lloyd@randombit.net - W: http://www.randombit.net/ - P: 3F69 2E64 6D92 3BBE E7AE 9258 5C0F 96E8 4EC1 6D6B - D: Original designer/author, maintainer 2001-current - S: Vermont, USA - - N: Joel Low - D: DLL symbol visibility and Windows DLL support in general - - N: Christoph Ludwig - E: ludwig@fh-worms.de - D: GP(p) arithmetic - - N: Vaclav Ovsik - E: vaclav.ovsik@i.cz - D: Perl XS module (src/wrap/perl-xs) - - N: Luca Piccarreta - E: luca.piccarreta@gmail.com - D: x86/amd64 assembler, BigInt optimizations, Win32 mutex module - S: Italy - - N: Falko Strenzke - E: strenzke@flexsecure.de - W: http://www.flexsecure.de/ - D: GF(p) arithmetic, CVC, Shanks-Tonelli algorithm - S: Darmstadt, Germany diff --git a/src/botan/doc/download.txt b/src/botan/doc/download.txt deleted file mode 100644 index ebd7004f7..000000000 --- a/src/botan/doc/download.txt +++ /dev/null @@ -1,103 +0,0 @@ - -Getting The Latest Sources -======================================== - -All releases are signed with a :doc:`PGP key `. - -Unsure which release you want? Check the :ref:`FAQ `. - -.. only:: not website - - .. note:: - - If you are viewing this documentation offline, a more recent - release `may be available `_ - -Current Stable Release (1.10) ----------------------------------------- - -The current stable release is `1.10.3 -`_ which was -released on 2012-07-10. - -Sources: - -`1.10.3 tar/gz `_ -(`1.10.3 tar/gz sig `_), - -`1.10.3 tar/bzip `_ -(`1.10.3 tar/bzip sig `_) - -.. - Windows binary installer for use with Visual C++ 2010: - - `1.10.1 x86-32 installer - `_ - - `1.10.1 x86-64 installer - `_ - -Previous Stable Release (1.8) ----------------------------------------- - -The previous stable release is `1.8.13 -`_ which was -released on 2011-07-02. - -Sources: - -`1.8.13 tar/gz `_ -(`1.8.13 tar/gz sig `_), - -`1.8.13 tar/bzip `_ -(`1.8.13 tar/bzip sig `_) - -.. - Windows binary installer for use with Visual C++ 2008: - - `1.8.13 x86-32 installer - `_ - - `1.8.13 x86-64 installer - `_ - -Accessing Version Control ----------------------------------------- - -Botan's development occurs using a distributed version control system -called `Monotone `_. - -The main branch of development occurs on the branch named -``net.randombit.botan``; this is probably the branch you want (for -1.8, use ``net.randombit.botan.1_8`` instead). To download that branch -and set up a new workspace, run:: - - $ mtn db init --db=botan.mtn - $ mtn pull --db=botan.mtn randombit.net 'net.randombit.botan' - [...] - $ mtn checkout --db=botan.mtn --branch=net.randombit.botan - [...] - -By default the ``checkout`` command will place the workspace in a directory -with the same name as the branch you are checking out. If you want a -different directory name, just include it after the ``--branch`` option (you -can also rename this directory at any time). - -If this is the first time you've connected to the server, Monotone -will print:: - - mtn: first time connecting to server randombit.net - mtn: I'll assume it's really them, but you might want to double-check - mtn: their key's fingerprint: 8c0b868f2247215c63c96983b1c8ca0f0f0cfd9a - -The fingerprint shown above was the correct one as of September 21, 2010. - -To pull further changes, from anywhere in the workspace run these commands:: - - $ mtn pull - [...] - $ mtn update - [summary of changes] - -The ``mtn update`` command will give you a summary of which files changed; -to view the full changelog, run ``mtn log``. diff --git a/src/botan/doc/examples/GNUmakefile b/src/botan/doc/examples/GNUmakefile deleted file mode 100644 index a5da47a7c..000000000 --- a/src/botan/doc/examples/GNUmakefile +++ /dev/null @@ -1,21 +0,0 @@ - -BOTAN_CONFIG = botan-config - -CXX = g++ -CFLAGS = -O2 -ansi -W -Wall -I../../build/include -LIBS = -L../.. -lbotan-1.10 - -SRCS=$(wildcard *.cpp) - -PROGS=$(patsubst %.cpp,%,$(SRCS)) - -all: $(PROGS) - -clean: - @rm -f $(PROGS) - -%: %.cpp - $(CXX) $(CFLAGS) $? $(LIBS) -o $@ - -eax_test: eax_test.cpp - $(CXX) $(CFLAGS) $? $(LIBS) -lboost_regex -o $@ diff --git a/src/botan/doc/examples/asn1.cpp b/src/botan/doc/examples/asn1.cpp deleted file mode 100644 index 95e5b2627..000000000 --- a/src/botan/doc/examples/asn1.cpp +++ /dev/null @@ -1,288 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -using namespace Botan; - -#include -#include - -// Set this if your terminal understands UTF-8; otherwise output is in Latin-1 -#define UTF8_TERMINAL 1 - -/* - What level the outermost layer of stuff is at. Probably 0 or 1; asn1parse - uses 0 as the outermost, while 1 makes more sense to me. 2+ doesn't make - much sense at all. -*/ -#define INITIAL_LEVEL 0 - -void decode(BER_Decoder&, size_t); -void emit(const std::string&, size_t, size_t, const std::string& = ""); -std::string type_name(ASN1_Tag); - -int main(int argc, char* argv[]) - { - if(argc != 2) - { - printf("Usage: %s \n", argv[0]); - return 1; - } - - LibraryInitializer init; - - try { - DataSource_Stream in(argv[1]); - - if(!PEM_Code::matches(in)) - { - BER_Decoder decoder(in); - decode(decoder, INITIAL_LEVEL); - } - else - { - std::string label; // ignored - BER_Decoder decoder(PEM_Code::decode(in, label)); - decode(decoder, INITIAL_LEVEL); - } - - } - catch(std::exception& e) - { - printf("%s\n", e.what()); - return 1; - } - return 0; - } - -void decode(BER_Decoder& decoder, size_t level) - { - BER_Object obj = decoder.get_next_object(); - - while(obj.type_tag != NO_OBJECT) - { - const ASN1_Tag type_tag = obj.type_tag; - const ASN1_Tag class_tag = obj.class_tag; - const size_t length = obj.value.size(); - - /* hack to insert the tag+length back in front of the stuff now - that we've gotten the type info */ - DER_Encoder encoder; - encoder.add_object(type_tag, class_tag, obj.value, obj.value.size()); - SecureVector bits = encoder.get_contents(); - - BER_Decoder data(bits); - - if(class_tag & CONSTRUCTED) - { - BER_Decoder cons_info(obj.value); - if(type_tag == SEQUENCE) - { - emit("SEQUENCE", level, length); - decode(cons_info, level+1); - } - else if(type_tag == SET) - { - emit("SET", level, length); - decode(cons_info, level+1); - } - else - { - std::string name; - - if((class_tag & APPLICATION) || (class_tag & CONTEXT_SPECIFIC) || - (class_tag & PRIVATE)) - { - name = "cons [" + to_string(type_tag) + "]"; - - if(class_tag & APPLICATION) - name += " appl"; - if(class_tag & CONTEXT_SPECIFIC) - name += " context"; - if(class_tag & PRIVATE) - name += " private"; - } - else - name = type_name(type_tag) + " (cons)"; - - emit(name, level, length); - decode(cons_info, level+1); - } - } - else if(class_tag == APPLICATION || class_tag == CONTEXT_SPECIFIC || - class_tag == PRIVATE) - { - bool not_text = false; - - for(size_t i = 0; i != bits.size(); ++i) - if(!isgraph(bits[i]) && !isspace(bits[i])) - not_text = true; - - Pipe pipe(((not_text) ? new Hex_Encoder : 0)); - pipe.process_msg(bits); - emit("[" + to_string(type_tag) + "]", level, length, - pipe.read_all_as_string()); - } - else if(type_tag == OBJECT_ID) - { - OID oid; - data.decode(oid); - - std::string out = OIDS::lookup(oid); - if(out != oid.as_string()) - out += " [" + oid.as_string() + "]"; - - emit(type_name(type_tag), level, length, out); - } - else if(type_tag == INTEGER) - { - BigInt number; - data.decode(number); - - SecureVector rep; - - /* If it's small, it's probably a number, not a hash */ - if(number.bits() <= 16) - rep = BigInt::encode(number, BigInt::Decimal); - else - rep = BigInt::encode(number, BigInt::Hexadecimal); - - std::string str; - for(size_t i = 0; i != rep.size(); ++i) - str += (char)rep[i]; - - emit(type_name(type_tag), level, length, str); - } - else if(type_tag == BOOLEAN) - { - bool boolean; - data.decode(boolean); - emit(type_name(type_tag), - level, length, (boolean ? "true" : "false")); - } - else if(type_tag == NULL_TAG) - { - emit(type_name(type_tag), level, length); - } - else if(type_tag == OCTET_STRING) - { - SecureVector bits; - data.decode(bits, type_tag); - bool not_text = false; - - for(size_t i = 0; i != bits.size(); ++i) - if(!isgraph(bits[i]) && !isspace(bits[i])) - not_text = true; - - Pipe pipe(((not_text) ? new Hex_Encoder : 0)); - pipe.process_msg(bits); - emit(type_name(type_tag), level, length, pipe.read_all_as_string()); - } - else if(type_tag == BIT_STRING) - { - SecureVector bits; - data.decode(bits, type_tag); - - std::vector bit_set; - - for(size_t i = 0; i != bits.size(); ++i) - for(size_t j = 0; j != 8; ++j) - bit_set.push_back((bool)((bits[bits.size()-i-1] >> (7-j)) & 1)); - - std::string bit_str; - for(size_t i = 0; i != bit_set.size(); ++i) - { - bool the_bit = bit_set[bit_set.size()-i-1]; - - if(!the_bit && bit_str.size() == 0) - continue; - bit_str += (the_bit ? "1" : "0"); - } - - emit(type_name(type_tag), level, length, bit_str); - } - else if(type_tag == PRINTABLE_STRING || - type_tag == NUMERIC_STRING || - type_tag == IA5_STRING || - type_tag == T61_STRING || - type_tag == VISIBLE_STRING || - type_tag == UTF8_STRING || - type_tag == BMP_STRING) - { - ASN1_String str; - data.decode(str); - if(UTF8_TERMINAL) - emit(type_name(type_tag), level, length, - Charset::transcode(str.iso_8859(), - LATIN1_CHARSET, UTF8_CHARSET)); - else - emit(type_name(type_tag), level, length, str.iso_8859()); - } - else if(type_tag == UTC_TIME || type_tag == GENERALIZED_TIME) - { - X509_Time time; - data.decode(time); - emit(type_name(type_tag), level, length, time.readable_string()); - } - else - fprintf(stderr, "Unknown tag: class=%02X, type=%02X\n", - class_tag, type_tag); - - obj = decoder.get_next_object(); - } - } - -void emit(const std::string& type, size_t level, size_t length, - const std::string& value) - { - const size_t LIMIT = 128; - const size_t BIN_LIMIT = 64; - - int written = 0; - written += printf(" d=%2d, l=%4d: ", (int)level, (int)length); - for(size_t i = INITIAL_LEVEL; i != level; ++i) - written += printf(" "); - written += printf("%s ", type.c_str()); - - bool should_skip = false; - if(value.length() > LIMIT) should_skip = true; - if((type == "OCTET STRING" || type == "BIT STRING") && - value.length() > BIN_LIMIT) - should_skip = true; - - if(value != "" && !should_skip) - { - if(written % 2 == 0) printf(" "); - while(written < 50) written += printf(" "); - printf(":%s\n", value.c_str()); - } - else - printf("\n"); - } - -std::string type_name(ASN1_Tag type) - { - if(type == PRINTABLE_STRING) return "PRINTABLE STRING"; - if(type == NUMERIC_STRING) return "NUMERIC STRING"; - if(type == IA5_STRING) return "IA5 STRING"; - if(type == T61_STRING) return "T61 STRING"; - if(type == UTF8_STRING) return "UTF8 STRING"; - if(type == VISIBLE_STRING) return "VISIBLE STRING"; - if(type == BMP_STRING) return "BMP STRING"; - - if(type == UTC_TIME) return "UTC TIME"; - if(type == GENERALIZED_TIME) return "GENERALIZED TIME"; - - if(type == OCTET_STRING) return "OCTET STRING"; - if(type == BIT_STRING) return "BIT STRING"; - - if(type == INTEGER) return "INTEGER"; - if(type == NULL_TAG) return "NULL"; - if(type == OBJECT_ID) return "OBJECT"; - if(type == BOOLEAN) return "BOOLEAN"; - return "(UNKNOWN)"; - } diff --git a/src/botan/doc/examples/base64.cpp b/src/botan/doc/examples/base64.cpp deleted file mode 100644 index dbe8d19e3..000000000 --- a/src/botan/doc/examples/base64.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* -* Encode/decode base64 strings -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include -#include - -int main(int argc, char* argv[]) - { - if(argc < 2) - { - std::cout << "Usage: " << argv[0] << " [-w] [-c n] [-e|-d] files...\n" - " -e : Encode input to base64 strings (default) \n" - " -d : Decode base64 input\n" - " -w : Wrap lines\n" - " -c n: Wrap lines at column n, default 78\n"; - return 1; - } - - Botan::LibraryInitializer init; - - int column = 78; - bool wrap = false; - bool encoding = true; - std::vector files; - - for(int j = 1; argv[j] != 0; j++) - { - std::string this_arg = argv[j]; - - if(this_arg == "-w") - wrap = true; - else if(this_arg == "-e"); - else if(this_arg == "-d") - encoding = false; - else if(this_arg == "-c") - { - if(argv[j+1]) - { column = atoi(argv[j+1]); j++; } - else - { - std::cout << "No argument for -c option" << std::endl; - return 1; - } - } - else files.push_back(argv[j]); - } - - for(unsigned int j = 0; j != files.size(); j++) - { - std::istream* stream; - if(files[j] == "-") stream = &std::cin; - else stream = new std::ifstream(files[j].c_str()); - - if(!*stream) - { - std::cout << "ERROR, couldn't open " << files[j] << std::endl; - continue; - } - - Botan::Pipe pipe((encoding) ? - ((Botan::Filter*)new Botan::Base64_Encoder(wrap, column)) : - ((Botan::Filter*)new Botan::Base64_Decoder)); - pipe.start_msg(); - *stream >> pipe; - pipe.end_msg(); - pipe.set_default_msg(j); - std::cout << pipe; - if(files[j] != "-") delete stream; - } - return 0; - } diff --git a/src/botan/doc/examples/bcrypt.cpp b/src/botan/doc/examples/bcrypt.cpp deleted file mode 100644 index 4154b26ad..000000000 --- a/src/botan/doc/examples/bcrypt.cpp +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include -#include - -using namespace Botan; - -int main(int argc, char* argv[]) - { - if(argc != 2 && argc != 3) - { - std::cout << "Usage: " << argv[0] << " password\n" - << " " << argv[0] << " password passhash\n"; - return 1; - } - - LibraryInitializer init; - - if(argc == 2) - { - AutoSeeded_RNG rng; - - std::cout << generate_bcrypt(argv[1], rng, 12) << "\n"; - } - else if(argc == 3) - { - if(strlen(argv[2]) != 60) - { - std::cout << "Note: hash " << argv[2] - << " has wrong length and cannot be valid\n"; - } - - const bool ok = check_bcrypt(argv[1], argv[2]); - - std::cout << "Password is " << (ok ? "valid" : "NOT valid") << "\n"; - } - - return 0; - } diff --git a/src/botan/doc/examples/bench.cpp b/src/botan/doc/examples/bench.cpp deleted file mode 100644 index 6cfd9205f..000000000 --- a/src/botan/doc/examples/bench.cpp +++ /dev/null @@ -1,107 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -using namespace Botan; - -#include - -namespace { - -const std::string algos[] = { - "AES-128", - "AES-192", - "AES-256", - "Blowfish", - "CAST-128", - "CAST-256", - "DES", - "DESX", - "TripleDES", - "GOST", - "IDEA", - "KASUMI", - "Lion(SHA-256,Turing,8192)", - "Luby-Rackoff(SHA-512)", - "MARS", - "MISTY1", - "Noekeon", - "RC2", - "RC5(12)", - "RC5(16)", - "RC6", - "SAFER-SK(10)", - "SEED", - "Serpent", - "Skipjack", - "Square", - "TEA", - "Twofish", - "XTEA", - "Adler32", - "CRC32", - "GOST-34.11", - "HAS-160", - "MD2", - "MD4", - "MD5", - "RIPEMD-128", - "RIPEMD-160", - "SHA-160", - "SHA-256", - "SHA-384", - "SHA-512", - "Skein-512", - "Tiger", - "Whirlpool", - "CMAC(AES-128)", - "HMAC(SHA-1)", - "X9.19-MAC", - "", -}; - -void benchmark_algo(const std::string& algo, - RandomNumberGenerator& rng) - { - u32bit milliseconds = 1000; - Algorithm_Factory& af = global_state().algorithm_factory(); - - std::map speeds = - algorithm_benchmark(algo, af, rng, milliseconds, 16); - - std::cout << algo << ":"; - - for(std::map::const_iterator i = speeds.begin(); - i != speeds.end(); ++i) - { - std::cout << " " << i->second << " [" << i->first << "]"; - } - std::cout << "\n"; - } - -} - -int main(int argc, char* argv[]) - { - LibraryInitializer init; - - AutoSeeded_RNG rng; - - if(argc == 1) // no args, benchmark everything - { - for(u32bit i = 0; algos[i] != ""; ++i) - benchmark_algo(algos[i], rng); - } - else - { - for(int i = 1; argv[i]; ++i) - benchmark_algo(argv[i], rng); - } - } diff --git a/src/botan/doc/examples/benchmark.cpp b/src/botan/doc/examples/benchmark.cpp deleted file mode 100644 index b5adb3d4f..000000000 --- a/src/botan/doc/examples/benchmark.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -#include -#include -#include -#include - -int main(int argc, char* argv[]) - { - if(argc <= 2) - { - std::cout << "Usage: " << argv[0] << " seconds ...\n"; - return 1; - } - - Botan::LibraryInitializer init; - - Botan::AutoSeeded_RNG rng; - - Botan::Algorithm_Factory& af = Botan::global_state().algorithm_factory(); - - double ms = 1000 * std::atof(argv[1]); - - for(size_t i = 2; argv[i]; ++i) - { - std::string algo = argv[i]; - - std::map results = - algorithm_benchmark(algo, af, rng, ms, 16); - - std::cout << algo << ":\n"; - for(std::map::iterator r = results.begin(); - r != results.end(); ++r) - { - std::cout << " " << r->first << ": " << r->second << " MiB/s\n"; - } - std::cout << "\n"; - } - } diff --git a/src/botan/doc/examples/bzip.cpp b/src/botan/doc/examples/bzip.cpp deleted file mode 100644 index 6137bb6af..000000000 --- a/src/botan/doc/examples/bzip.cpp +++ /dev/null @@ -1,116 +0,0 @@ -/* -* Bzip2 Compression/Decompression -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include - -/* -* If Bzip2 isn't included, we know nothing works at compile time, but -* we wait to fail at runtime. Otherwise I would get 2-3 mails a month -* about how this was failing to compile (even with an informative -* #error message explaining the situation) because bzip2 wasn't -* included in the build. -*/ - -#if defined(BOTAN_HAS_COMPRESSOR_BZIP2) - #include -#endif - -const std::string SUFFIX = ".bz2"; - -int main(int argc, char* argv[]) - { - if(argc < 2) - { - std::cout << "Usage: " << argv[0] - << " [-s] [-d] [-1...9] " << std::endl; - return 1; - } - - Botan::LibraryInitializer init; - - std::vector files; - bool decompress = false, small = false; - int level = 9; - - for(int j = 1; argv[j] != 0; j++) - { - if(std::strcmp(argv[j], "-d") == 0) { decompress = true; continue; } - if(std::strcmp(argv[j], "-s") == 0) { small = true; continue; } - if(std::strcmp(argv[j], "-1") == 0) { level = 1; continue; } - if(std::strcmp(argv[j], "-2") == 0) { level = 2; continue; } - if(std::strcmp(argv[j], "-3") == 0) { level = 3; continue; } - if(std::strcmp(argv[j], "-4") == 0) { level = 4; continue; } - if(std::strcmp(argv[j], "-5") == 0) { level = 5; continue; } - if(std::strcmp(argv[j], "-6") == 0) { level = 6; continue; } - if(std::strcmp(argv[j], "-7") == 0) { level = 7; continue; } - if(std::strcmp(argv[j], "-8") == 0) { level = 8; continue; } - if(std::strcmp(argv[j], "-9") == 0) { level = 9; continue; } - files.push_back(argv[j]); - } - - try { - - Botan::Filter* bzip = 0; -#ifdef BOTAN_HAS_COMPRESSOR_BZIP2 - if(decompress) - bzip = new Botan::Bzip_Decompression(small); - else - bzip = new Botan::Bzip_Compression(level); -#endif - - if(!bzip) - { - std::cout << "Sorry, support for bzip2 not compiled into Botan\n"; - return 1; - } - - Botan::Pipe pipe(bzip); - - for(unsigned int j = 0; j != files.size(); j++) - { - std::string infile = files[j], outfile = files[j]; - if(!decompress) - outfile = outfile += SUFFIX; - else - outfile = outfile.replace(outfile.find(SUFFIX), - SUFFIX.length(), ""); - - std::ifstream in(infile.c_str(), std::ios::binary); - std::ofstream out(outfile.c_str(), std::ios::binary); - if(!in) - { - std::cout << "ERROR: could not read " << infile << std::endl; - continue; - } - if(!out) - { - std::cout << "ERROR: could not write " << outfile << std::endl; - continue; - } - - pipe.start_msg(); - in >> pipe; - pipe.end_msg(); - pipe.set_default_msg(j); - out << pipe; - - in.close(); - out.close(); - } - } - catch(std::exception& e) - { - std::cout << "Exception caught: " << e.what() << std::endl; - return 1; - } - return 0; - } diff --git a/src/botan/doc/examples/ca.cpp b/src/botan/doc/examples/ca.cpp deleted file mode 100644 index 7a3e6daf9..000000000 --- a/src/botan/doc/examples/ca.cpp +++ /dev/null @@ -1,59 +0,0 @@ -#include -#include -#include -using namespace Botan; - -#include -#include - -int main(int argc, char* argv[]) - { - if(argc != 5) - { - std::cout << "Usage: " << argv[0] << " " - << " " << std::endl; - return 1; - } - - Botan::LibraryInitializer init; - - try - { - const std::string arg_passphrase = argv[1]; - const std::string arg_ca_cert = argv[2]; - const std::string arg_ca_key = argv[3]; - const std::string arg_req_file = argv[4]; - - AutoSeeded_RNG rng; - - X509_Certificate ca_cert(arg_ca_cert); - - std::auto_ptr privkey( - PKCS8::load_key(arg_ca_key, rng, arg_passphrase) - ); - - X509_CA ca(ca_cert, *privkey, "SHA-256"); - - // got a request - PKCS10_Request req(arg_req_file); - - // you would insert checks here, and perhaps modify the request - // (this example should be extended to show how) - - // now sign the request - X509_Time start_time(system_time()); - X509_Time end_time(system_time() + 365 * 60 * 60 * 24); - - X509_Certificate new_cert = ca.sign_request(req, rng, - start_time, end_time); - - // send the new cert back to the requestor - std::cout << new_cert.PEM_encode(); - } - catch(std::exception& e) - { - std::cout << e.what() << std::endl; - return 1; - } - return 0; - } diff --git a/src/botan/doc/examples/cert_verify.cpp b/src/botan/doc/examples/cert_verify.cpp deleted file mode 100644 index 04bcbecad..000000000 --- a/src/botan/doc/examples/cert_verify.cpp +++ /dev/null @@ -1,35 +0,0 @@ -/* -* Simple example of a certificate validation -* (C) 2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -#include - -using namespace Botan; - -int main() - { - LibraryInitializer init; - - X509_Certificate ca_cert("ca_cert.pem"); - X509_Certificate subject_cert("http_cert.pem"); - - X509_Store cert_store; - - cert_store.add_cert(ca_cert, /*trusted=*/true); - - X509_Code code = cert_store.validate_cert(subject_cert); - - if(code == VERIFIED) - printf("Cert validated\n"); - else - printf("Cert did not validate, code = %d\n", code); - - return 0; - } diff --git a/src/botan/doc/examples/checksum.cpp b/src/botan/doc/examples/checksum.cpp deleted file mode 100644 index dba7a7d70..000000000 --- a/src/botan/doc/examples/checksum.cpp +++ /dev/null @@ -1,37 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -#include - -using namespace Botan; - -int main(int argc, char* argv[]) - { - if(argc != 2) - { - std::cout << "Usage: " << argv[0] << " filename\n"; - return 1; - } - - Botan::LibraryInitializer init; - - Pipe pipe(new Fork( - new Chain(new Hash_Filter("CRC24"), new Hex_Encoder), - new Chain(new Hash_Filter("CRC32"), new Hex_Encoder), - new Chain(new Hash_Filter("Adler32"), new Hex_Encoder) - )); - - DataSource_Stream in(argv[1]); - - pipe.process_msg(in); - - std::cout << pipe.read_all_as_string(0) << "\n"; - std::cout << pipe.read_all_as_string(1) << "\n"; - std::cout << pipe.read_all_as_string(2) << "\n"; - } diff --git a/src/botan/doc/examples/cpuid.cpp b/src/botan/doc/examples/cpuid.cpp deleted file mode 100644 index bd81e417b..000000000 --- a/src/botan/doc/examples/cpuid.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -using namespace Botan; - -namespace { - -void print_if_feature(const std::string& feature_name, bool exists) - { - std::cout << (exists ? '+' : '-') << " " << feature_name << "\n"; - } - -void print_header(const std::string& descr) - { - std::cout << "\n" << descr << "\n-----\n"; - } - -} - -int main() - { - CPUID::initialize(); - - std::cout << "Cache line size = " << CPUID::cache_line_size() << "\n"; - - print_header("SIMD instruction sets"); - print_if_feature("SSE2", CPUID::has_sse2()); - print_if_feature("SSSE3", CPUID::has_ssse3()); - print_if_feature("SSE4.1", CPUID::has_sse41()); - print_if_feature("SSE4.2", CPUID::has_sse42()); - print_if_feature("AVX", CPUID::has_avx()); - print_if_feature("AltiVec", CPUID::has_altivec()); - - print_header("Other extensions"); - print_if_feature("RDTSC", CPUID::has_rdtsc()); - print_if_feature("PCMUL", CPUID::has_pcmuludq()); - print_if_feature("AES-NI", CPUID::has_aes_ni()); - print_if_feature("RDRND", CPUID::has_rdrand()); - print_if_feature("MOVBE", CPUID::has_movbe()); - } diff --git a/src/botan/doc/examples/cryptobox.cpp b/src/botan/doc/examples/cryptobox.cpp deleted file mode 100644 index 38d750d17..000000000 --- a/src/botan/doc/examples/cryptobox.cpp +++ /dev/null @@ -1,53 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include - -using namespace Botan; - -int main(int argc, char* argv[]) - { - LibraryInitializer init; - - AutoSeeded_RNG rng; - - if(argc != 3) - { - std::cout << "Usage: cryptobox pass filename\n"; - return 1; - } - - std::string pass = argv[1]; - std::string filename = argv[2]; - - std::ifstream input(filename.c_str(), std::ios::binary); - - std::vector file_contents; - while(input.good()) - { - byte filebuf[4096] = { 0 }; - input.read((char*)filebuf, sizeof(filebuf)); - size_t got = input.gcount(); - - file_contents.insert(file_contents.end(), filebuf, filebuf+got); - } - - std::string ciphertext = CryptoBox::encrypt(&file_contents[0], - file_contents.size(), - pass, rng); - - std::cout << ciphertext; - - /* - std::cout << CryptoBox::decrypt((const byte*)&ciphertext[0], - ciphertext.length(), - pass); - */ - } diff --git a/src/botan/doc/examples/decrypt.cpp b/src/botan/doc/examples/decrypt.cpp deleted file mode 100644 index ea510c5e9..000000000 --- a/src/botan/doc/examples/decrypt.cpp +++ /dev/null @@ -1,173 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -/* -Decrypt files encrypted with the 'encrypt' example application. - -I'm being lazy and writing the output to stdout rather than stripping -off the ".enc" suffix and writing it there. So all diagnostics go to -stderr so there is no confusion. -*/ - -#include -#include -#include -#include -#include -#include - -#include - -#if defined(BOTAN_HAS_COMPRESSOR_ZLIB) - #include -#endif - -using namespace Botan; - -SecureVector b64_decode(const std::string&); - -int main(int argc, char* argv[]) - { - if(argc < 2) - { - std::cout << "Usage: " << argv[0] << " [-p passphrase] file\n" - << " -p : Use this passphrase to decrypt\n"; - return 1; - } - - Botan::LibraryInitializer init; - - std::string filename, passphrase; - - for(int j = 1; argv[j] != 0; j++) - { - if(std::strcmp(argv[j], "-p") == 0) - { - if(argv[j+1]) - { - passphrase = argv[j+1]; - j++; - } - else - { - std::cout << "No argument for -p option" << std::endl; - return 1; - } - } - else - { - if(filename != "") - { - std::cout << "You can only specify one file at a time\n"; - return 1; - } - filename = argv[j]; - } - } - - if(passphrase == "") - { - std::cout << "You have to specify a passphrase!" << std::endl; - return 1; - } - - std::ifstream in(filename.c_str()); - if(!in) - { - std::cout << "ERROR: couldn't open " << filename << std::endl; - return 1; - } - - std::string algo; - - try { - std::string header, salt_str, mac_str; - std::getline(in, header); - std::getline(in, algo); - std::getline(in, salt_str); - std::getline(in, mac_str); - - if(header != "-------- ENCRYPTED FILE --------") - { - std::cout << "ERROR: File is missing the usual header" << std::endl; - return 1; - } - - const BlockCipher* cipher_proto = global_state().algorithm_factory().prototype_block_cipher(algo); - - if(!cipher_proto) - { - std::cout << "Don't know about the block cipher \"" << algo << "\"\n"; - return 1; - } - - const u32bit key_len = cipher_proto->maximum_keylength(); - const u32bit iv_len = cipher_proto->block_size(); - - std::auto_ptr pbkdf(get_pbkdf("PBKDF2(SHA-1)")); - - const u32bit PBKDF2_ITERATIONS = 8192; - - SecureVector salt = b64_decode(salt_str); - - SymmetricKey bc_key = pbkdf->derive_key(key_len, "BLK" + passphrase, - &salt[0], salt.size(), - PBKDF2_ITERATIONS); - - InitializationVector iv = pbkdf->derive_key(iv_len, "IVL" + passphrase, - &salt[0], salt.size(), - PBKDF2_ITERATIONS); - - SymmetricKey mac_key = pbkdf->derive_key(16, "MAC" + passphrase, - &salt[0], salt.size(), - PBKDF2_ITERATIONS); - - Pipe pipe(new Base64_Decoder, - get_cipher(algo + "/CBC", bc_key, iv, DECRYPTION), -#ifdef BOTAN_HAS_COMPRESSOR_ZLIB - new Zlib_Decompression, -#endif - new Fork( - 0, - new Chain(new MAC_Filter("HMAC(SHA-1)", mac_key), - new Base64_Encoder) - ) - ); - - pipe.start_msg(); - in >> pipe; - pipe.end_msg(); - - std::string our_mac = pipe.read_all_as_string(1); - if(our_mac != mac_str) - std::cout << "WARNING: MAC in message failed to verify\n"; - - std::cout << pipe.read_all_as_string(0); - } - catch(Algorithm_Not_Found) - { - std::cout << "Don't know about the block cipher \"" << algo << "\"\n"; - return 1; - } - catch(Decoding_Error) - { - std::cout << "Bad passphrase or corrupt file\n"; - return 1; - } - catch(std::exception& e) - { - std::cout << "Exception caught: " << e.what() << std::endl; - return 1; - } - return 0; - } - -SecureVector b64_decode(const std::string& in) - { - Pipe pipe(new Base64_Decoder); - pipe.process_msg(in); - return pipe.read_all(); - } diff --git a/src/botan/doc/examples/dh.cpp b/src/botan/doc/examples/dh.cpp deleted file mode 100644 index 8d163303a..000000000 --- a/src/botan/doc/examples/dh.cpp +++ /dev/null @@ -1,62 +0,0 @@ -#include -#include -#include -using namespace Botan; - -#include -#include - -int main() - { - try - { - LibraryInitializer init; - - AutoSeeded_RNG rng; - - // Alice and Bob agree on a DH domain to use - DL_Group shared_domain("modp/ietf/2048"); - - // Alice creates a DH key - DH_PrivateKey private_a(rng, shared_domain); - - // Bob creates a key with a matching group - DH_PrivateKey private_b(rng, shared_domain); - - // Alice sends to Bob her public key and a session parameter - MemoryVector public_a = private_a.public_value(); - const std::string session_param = - "Alice and Bob's shared session parameter"; - - // Bob sends his public key to Alice - MemoryVector public_b = private_b.public_value(); - - // Now Alice performs the key agreement operation - PK_Key_Agreement ka_alice(private_a, "KDF2(SHA-256)"); - SymmetricKey alice_key = ka_alice.derive_key(32, public_b, session_param); - - // Bob does the same: - PK_Key_Agreement ka_bob(private_b, "KDF2(SHA-256)"); - SymmetricKey bob_key = ka_bob.derive_key(32, public_a, session_param); - - if(alice_key == bob_key) - { - std::cout << "The two keys matched, everything worked\n"; - std::cout << "The shared key was: " << alice_key.as_string() << "\n"; - } - else - { - std::cout << "The two keys didn't match! Hmmm...\n"; - std::cout << "Alice's key was: " << alice_key.as_string() << "\n"; - std::cout << "Bob's key was: " << bob_key.as_string() << "\n"; - } - - // Now use the shared key for encryption or MACing or whatever - } - catch(std::exception& e) - { - std::cout << e.what() << std::endl; - return 1; - } - return 0; - } diff --git a/src/botan/doc/examples/dsa_kgen.cpp b/src/botan/doc/examples/dsa_kgen.cpp deleted file mode 100644 index fc5b7b501..000000000 --- a/src/botan/doc/examples/dsa_kgen.cpp +++ /dev/null @@ -1,48 +0,0 @@ -#include -#include -#include -#include -#include -#include -using namespace Botan; - -#include - -int main(int argc, char* argv[]) - { - try - { - if(argc != 1 && argc != 2) - { - std::cout << "Usage: " << argv[0] << " [passphrase]" << std::endl; - return 1; - } - - std::ofstream priv("dsapriv.pem"); - std::ofstream pub("dsapub.pem"); - if(!priv || !pub) - { - std::cout << "Couldn't write output files" << std::endl; - return 1; - } - - Botan::LibraryInitializer init; - - AutoSeeded_RNG rng; - - DL_Group group(rng, DL_Group::DSA_Kosherizer, 2048, 256); - - DSA_PrivateKey key(rng, group); - - pub << X509::PEM_encode(key); - if(argc == 1) - priv << PKCS8::PEM_encode(key); - else - priv << PKCS8::PEM_encode(key, rng, argv[1]); - } - catch(std::exception& e) - { - std::cout << "Exception caught: " << e.what() << std::endl; - } - return 0; - } diff --git a/src/botan/doc/examples/dsa_sign.cpp b/src/botan/doc/examples/dsa_sign.cpp deleted file mode 100644 index 3511eacfa..000000000 --- a/src/botan/doc/examples/dsa_sign.cpp +++ /dev/null @@ -1,73 +0,0 @@ -#include -#include -#include -#include -#include - -#include -#include -#include -#include -using namespace Botan; - -const std::string SUFFIX = ".sig"; - -int main(int argc, char* argv[]) - { - if(argc != 4) - { - std::cout << "Usage: " << argv[0] << " keyfile messagefile passphrase" - << std::endl; - return 1; - } - - Botan::LibraryInitializer init; - - try { - std::string passphrase(argv[3]); - - std::ifstream message(argv[2], std::ios::binary); - if(!message) - { - std::cout << "Couldn't read the message file." << std::endl; - return 1; - } - - std::string outfile = argv[2] + SUFFIX; - std::ofstream sigfile(outfile.c_str()); - if(!sigfile) - { - std::cout << "Couldn't write the signature to " - << outfile << std::endl; - return 1; - } - - AutoSeeded_RNG rng; - - std::auto_ptr key( - PKCS8::load_key(argv[1], rng, passphrase) - ); - - DSA_PrivateKey* dsakey = dynamic_cast(key.get()); - - if(!dsakey) - { - std::cout << "The loaded key is not a DSA key!\n"; - return 1; - } - - PK_Signer signer(*dsakey, "EMSA1(SHA-1)"); - - DataSource_Stream in(message); - byte buf[4096] = { 0 }; - while(size_t got = in.read(buf, sizeof(buf))) - signer.update(buf, got); - - sigfile << base64_encode(signer.signature(rng)) << "\n"; - } - catch(std::exception& e) - { - std::cout << "Exception caught: " << e.what() << std::endl; - } - return 0; - } diff --git a/src/botan/doc/examples/dsa_ver.cpp b/src/botan/doc/examples/dsa_ver.cpp deleted file mode 100644 index 9cb85740e..000000000 --- a/src/botan/doc/examples/dsa_ver.cpp +++ /dev/null @@ -1,85 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#include -#include -#include -using namespace Botan; - -namespace { - -SecureVector b64_decode(const std::string& in) - { - Pipe pipe(new Base64_Decoder); - pipe.process_msg(in); - return pipe.read_all(); - } - -} - -int main(int argc, char* argv[]) - { - if(argc != 4) - { - std::cout << "Usage: " << argv[0] - << " keyfile messagefile sigfile" << std::endl; - return 1; - } - - - try { - Botan::LibraryInitializer init; - - std::ifstream message(argv[2], std::ios::binary); - if(!message) - { - std::cout << "Couldn't read the message file." << std::endl; - return 1; - } - - std::ifstream sigfile(argv[3]); - if(!sigfile) - { - std::cout << "Couldn't read the signature file." << std::endl; - return 1; - } - - std::string sigstr; - getline(sigfile, sigstr); - - std::auto_ptr key(X509::load_key(argv[1])); - DSA_PublicKey* dsakey = dynamic_cast(key.get()); - - if(!dsakey) - { - std::cout << "The loaded key is not a DSA key!\n"; - return 1; - } - - SecureVector sig = b64_decode(sigstr); - - PK_Verifier ver(*dsakey, "EMSA1(SHA-1)"); - - DataSource_Stream in(message); - byte buf[4096] = { 0 }; - while(size_t got = in.read(buf, sizeof(buf))) - ver.update(buf, got); - - const bool ok = ver.check_signature(sig); - - if(ok) - std::cout << "Signature verified\n"; - else - std::cout << "Signature did NOT verify\n"; - } - catch(std::exception& e) - { - std::cout << "Exception caught: " << e.what() << std::endl; - return 1; - } - return 0; - } diff --git a/src/botan/doc/examples/eax.vec b/src/botan/doc/examples/eax.vec deleted file mode 100644 index 95cd7c1ab..000000000 --- a/src/botan/doc/examples/eax.vec +++ /dev/null @@ -1,461 +0,0 @@ -EAX Test Vectors. Uses the 00010203...NN-1 pattern for header/nonce/plaintext/key. The outputs -are of the form ciphertext,tag for a given NN. The key for step N>1 is the tag of the previous -step repeated sufficiently. - -EAX-aes (16 byte key) - 0: , 9AD07E7DBFF301F505DE596B9615DFFF - 1: 47, 57C4AC75A42D05260AFA093ACD4499ED - 2: C4E2, 26C5AB00325306772E6F6E4C8093F3D2 - 3: 16177B, 852260F91F27898D4FC176E311F6E1D1 - 4: F09F68BE, 700766CA231643B5D60C3B91B1B700C1 - 5: 8472705EDF, AC4C3359326EEA4CF71FC03E0E0292F2 - 6: 14C25EB5FD0D, 8DBD749CA79CCF11C1B370F8C975858C - 7: F6A37F60670A85, AFBD1D5921557187504ADE61014C9622 - 8: 1AACFEAE8FBAD833, 82F477325D6F76BB81940AE25F9801C2 - 9: 069414324EC293697C, B980E21C09CA129B69E9032D980A9DC5 - 10: D8174DE9A2FC92B7DA9C, 1E42CC58BA2C8BFD83806444EA29DB61 - 11: 2C087DEA30F8B7EE510990, 83DB400A080C4D43CAA6EC3F1085A923 - 12: F36B93C272A703D3422C6A11, 1370C3AF2F3392916364BBBCC2C62EC1 - 13: A0F33477BAE2E28E6747AA3193, B626DC719528CAC65DB0EF94E35422CE - 14: FCF5193506052E8BFA095C1A5205, F5BD02E0B3C91CC7D6FAAA8A9A76CE6A - 15: 3797D7F8599B8EEAB39C56241880DC, 0B70003E77146B903F06EF294FECD517 - 16: C4BAD0E0356FFD369110C048D45D81BE, DE7C2B1D83BE2CC8EA402ABE1038BB79 - 17: AF5C358BD31CDCAC2F0EA5252F1C3BE1E4, 2D700986F93B22DFE6695C2A243B4E42 - 18: 7DEF9056FBDAF491D7206B26B19DEF617AA1, E71A7D00BE972D85C77931D7591B2151 - 19: 6E9B2C0A90BF9D38A6EA3B5D2B9B2D97F938EB, 5B483D7F15C39602C2918181E57DA341 - 20: 7C5F68DEE9BBA3B04F11D5FC7C9C7FE6E8B5025C, 0AE6A12D37A9C10BB1A494E16705DC05 - 21: AF0A886BF673BC72045FC074F06A0176C96105E2E6, 06B2DC9A2868C23F86D710E01E37E07B - 22: 5F228A986DFE4301EDBAF07A02E114F1B30932995CD1, 74EBF68627C78B1FD024A59B56B2A8FA - 23: 911322F60555118CBECD8DD82F186AC19514316E8D48BA, B6A8BAF2F175CD0C71B63B1EF37E185E - 24: E7F52730CFB808EFDB376A5D5DF31A7EF8292DC5FC37E9BC, BA2AD158A2D2E5CE01296402B592E1DB - 25: B3F8D7CA47D8D86E94D670AFBAFA3B8D9E186C97DC029D4705, 709D2D2B9975D4729C19D4EAC430E65E - 26: 7178FEC027AFADDC2C03518E75CF34D207CAC2EB1537A0DBA520, A315F034CE5E66601444402520F55DE2 - 27: FC230B2B8522F53459D0B968421469BBA7E683ACB0190393B2870F, 48679A78E470E175CF3D3E9B46CEDFCE - 28: 35A641127C78C721ECDC50866C21637FDC9515E41CE60F09015EA713, 0062987222F6412B7AAF8A9ABF6FBF98 - 29: 3D42D6C113421743C08A6F682CFA0E517D5531BB66241C02EC4DCC26F7, B1AAFE11FA2D6E0C870177DDD7F98FF0 - 30: DAD065B4669B7C59C8392D8E7BD7E64BC01CEFFF27E335B25A328D356F0E, 8973B9B9ECF26DAB58CCF0787EE928E5 - 31: EBE626F9E241FD233D9781C359430C982667AA26921B62E98FAEC502C01B0B, 2AC0D7052A2CDCCE8E26FEA7595198AA - 32: 64D842B66796A797C2B4C6905742FDF2148FFC445E192F9E03B53810C082F788, 9778B345EC12D222DCC6DBABD2651750 - -EAX-blowfish (8 byte key) - 0: , D8C4C23A6AC0B7B7 - 1: 2A, 5E0E4BDDB60772FB - 2: 7695, 7581B16CCC9C45F1 - 3: EB14C8, 6223A121CFA216C7 - 4: 5A5C809C, 4A47658796337D6A - 5: 8BC2041181, E1FBA8DBA00571FC - 6: 89C666F015FA, 2B4A76A0E699FCFE - 7: 86C1FA92484AF6, 31B3B738A261D6F5 - 8: D1F401C145C9328B, 4C4A045EB489F59C - 9: 70C9C7753698324A73, AB298B5B20567EB4 - 10: A50D9D88DC101B6DC8D2, 529DFCBFD13B8E6C - 11: 7CC2885C2BE79C44F28FF2, 566255022B40C81C - 12: 6902D58347C29250EE07981C, 34619AF18E14C690 - 13: AB6C3C4AD3EC45143392B642DA, E6D2DD323DA175BB - 14: 7065B28BA8AB67B2FB7B6D5E3FAF, AEDCAA54F4B0772F - 15: CBBA14A74AD4ADC0EF036EDAE42D51, F2BFFA4D81BAC034 - 16: 60A315193F58144F5701D547C79FEEED, 912FDBDB05467DF5 - -EAX-xtea (16 byte key) - 0: , 86881D824E3BC561 - 1: EE, 4C3505F04611D9C2 - 2: 80C8, 6A3428BEEAD60738 - 3: BF88E7, 04F1E99E9F5906C2 - 4: E06574B7, 33B0153AAEF9776F - 5: 42D950AF63, 4A0F415640322FDF - 6: C30F6AD46EC9, 9646FE909D2B95CB - 7: A0049FCA856A14, A0257289C6BBF278 - 8: 2814B0C1358440E0, C4B0A2354925E887 - 9: BF4F062B52C1E489CF, B56442A3CA57A041 - 10: 63DF433956831B8780FC, ADF9ED0B46DCA19E - 11: C317FD079817F50E0E8A16, 2EA0EC993FC603AE - 12: 2BD12FDDD81EB11660346D2A, FBC6F69125BBA88D - 13: 85D356536FE2843C6BBE60EDBC, BB2FEFD04F230E79 - 14: 22493009DB01B4746F4927A8C4FB, 64CC08471D93C9AC - 15: C0F3C0DB08DC93FBA725D1E02DE084, 77B762213DDCCFFE - 16: 568B66D3112556BD98FF9339E9C002E5, C8355F508219FE0C - -EAX-rc5 (8 byte key) - 0: , 169C7954341EF44D - 1: 22, DABFDA9A0B0BA067 - 2: 2E54, 6A3D6D9AA5877C5A - 3: 2A6ECF, 2A34A3AF5DE8919E - 4: 9CC5F84F, D3F673EDAF75E3B5 - 5: FF5611756C, CC647FAAC8D49BF1 - 6: 74C939BEB31C, C335999CCFE8F5FA - 7: 7976B6F7709B5F, 2A7969C5FD063A88 - 8: 421EEC5022276174, 2C9BFB1EAC3C54A2 - 9: 6A4761CD266B1C0ECB, 3EA3CCEBC85FAC4E - 10: 7C09201098E764239A2E, 8043ABA9BF4D5AEE - 11: 8CE26277562F646DE33C88, D72AED48895E3B40 - 12: 52150F44D37D121560DA87F6, 58E865E22B485906 - 13: BA0A73B45F93ECFBFC3AB3D8D0, 683D52FA47FB1A52 - 14: 96546CBE01054AD24CC95DB54724, D80D0D530E5D1DDE - 15: 61E654BB18CD26FC36C09F874DC2C7, C65884CB9D9FEC1E - 16: 1D77B8BF02CDEAB4A707C07628826D5B, F18D1730C3D64701 - -EAX-rc6 (16 byte key) - 0: , 1DF8B0B92A3F0C951C425AF4830E63FD - 1: 1A, 8A2959EBBE90180999994DEB7036DB85 - 2: 435D, 7EF00CB57DB7B4155DB530D75CE6B025 - 3: 08A6CF, 2ED6AF0F2D5BAB05F623D389480A01F2 - 4: A86E54D3, FC69547C8BD922A5BF2F7B26C4D20F98 - 5: ED0822E439, 0007A3C6DEFC6C912C0E5B853B520368 - 6: 7BEFC7FD4054, D32C43A4D1086D57C5BCFAEE04EBC600 - 7: 5235E58E79287C, A27E9C781327C0FC7C55410EB0C828A9 - 8: CEB5EE99BE521F4D, 547F46383987F2A3582A81A3BCF9B280 - 9: 0358B063D5F99C3770, C0A73730512CDA6AD49599775D59EDA1 - 10: 434B9AEE07DFADD0A332, 499BD88881E558E09A8E822BE27D2496 - 11: D47849E650F350BB622D74, 638E37A84E7FAAF8F5D77F1B061773DC - 12: 814592F568284085E79A024B, 9EB1405E8422FE50BC0D88D837A2C650 - 13: 6F2B55EC91B591082053AF692E, C48F91EF01AA43A1EE3B36D233DDD48B - 14: 506CBDD2901838EE2F178B6953DA, 03778957F536509BFCA577B23A18F726 - 15: 446EE435D3D1848B51BB8C5F7BE4A1, 1129EAEAADE534940546D43242A4C839 - 16: FB9D2B150C42465B1685D8F069CC06DB, 41E2940F5DC63CB4E2FBEC25ED8A31E6 - 17: 9684F683260107BE8FEBBEE1D3EEDAA7BD, BAE7C116F7FF96631F4ACEE95C65CEF3 - 18: 5082B1FE48CD3AB58F63C2DCFDD4069AC736, 19AC7B8EE315CBB7131A283851B32266 - 19: 8C72AE495B6F003A3C784D144E84E88885F78E, FA4CEC023740A8D670E351FBCF62C1CB - 20: 815D6361C7AE34C9D796ADF9C71ABC46AEF88BC9, 9A1F7288C61A6623B9A82748137ED7CC - 21: 904A853E2E96BD2B85AAB3F5DFB900E9B3642EE667, 9AA90DBDD461CAD20495DCFBCB513DD2 - 22: 79D738A462F727B3D3C529ED999B6FDCCD991D1C5A4D, BF0987BEDDE650D73CAE7D380FED3431 - 23: B2DEFDB7D503A84E83155A04B8DE8C8DBB68C2FC475007, B7CE900CF43CD518024123C76F6DA328 - 24: 9E723E15439E12F6C46DF8A309AE1E97B6FD18436259CFB0, DF8B6E1E23512CC4CF5FF531A1908F69 - 25: A7F0AD03CEBCC9202718AA164886E1026975306A664C5AC7A9, 4A771BF8B9A4325705C85E5499FD98E9 - 26: A53A92AD1C6835F28E04EF591E783D36F3D76E489B31B87BEB7A, AA263B52A6E6A043DE4D7029D4DC73F5 - 27: 79BE3C38291A7F77E932C8A9DEAC08DE6442EA9B3895B101A14E7B, 33B84DE06342E675E019CD0237292ED0 - 28: FA108123C5A69571CFDFE8C3D00535121FDE3096DDC0D700F8F26A5A, 764025D7CA1A3F2C54D28956423B0C77 - 29: 36EC2D67FD977BD2B73DB6D8EB756B3EADA13690E1B6DFC12A4781B34B, 4BC6B38DE3B02283D92F4DF19A5C48C5 - 30: 96D3243C945905C9732B5927E46F00886D511463B38C86002FC26B65AB8C, 5B5511CDEC35687AB8425AB22D58B4F1 - 31: 9CF83B87BEA3374AF7722E999863E3DABB858B0383383EAC7757F5B80FD44B, 1E0CBC961940FDA93B73A92DACFD67F3 - 32: CE3BC3C9FA5EF4AFE5272B3EDD24B1B003FED2C2E501528CFF44D3FABFF52CB4, DC94FDDC78AAB2B7CAA1E1EF149AC355 - -EAX-safer+ (16 byte key) - 0: , B120C7B37450C46189712E4DFD1F0C44 - 1: CA, 82BA1869C5FF1EF2A4F6ADC1E7DC1F1D - 2: DD20, 6BD5601B16C9943A84AC1F99A176E6D1 - 3: C1C09F, 0911DC63AA414C004E2BD825BECDC93B - 4: 27E43F59, BD858F084B082F76814DC385E1FB20D1 - 5: 2A9A92F246, 5ADC4A32491934AC0BD00FCE686B26F1 - 6: 52C78C0CD6F4, F35886F46C03EDCA10B3D01CF07B1E0A - 7: 23E0D3CED3795F, FE33D96FC98B78A30C0A412C60E93992 - 8: CD3FC9961559F239, 9982364A61609FC41068260267231EE9 - 9: 6EA46CB7AD7505C1BC, BB15053EF0F78B9091B3064118F3E9BF - 10: 05D9BA230A56CCA0703A, 1338E68E3DC992B6EB2685C668E75869 - 11: 7AAD6049DFDCA6771AE42B, 35267E431051E1812495615324C4CBE6 - 12: 8695091532B83B23C296F620, 7B2EEA861E9A91E6B6A911E10FC3FDD1 - 13: D909DA4BC7372ACAEA78E6A0EE, EA6C1CD16180DF0B07F4E204A4B4FACB - 14: 7DEC8443600D0563AEFE87A2064F, DA454728069B3B409889664783588189 - 15: C042FE656742CD2FE5D9C212D18C6C, 5929E4AECC2CA047BAE948E7023FE4D0 - 16: 0B84D3CF59EEF7319633F4A397D47CF8, 31F892FFDB7535DF5D9143456E404163 - 17: 8C9E57AAFA7969B142742B63AB73286600, C418231C44F96660DDBA8C26B3BB3681 - 18: E9EED66D370A3A6A39C7E0E570D96F807EAC, A4AFE8D1D3C31B956A3BDBD043E7A665 - 19: 1A5D47992DA5597D1449B4C8DD47B7404C7657, F3ECEE5182014FC3365FDBC4C33CC06A - 20: E7C7945FD1AFD3F5DCE666D8A5A2E8A3C11A7A5F, 86D78B2FBA7597B8806BED505B52BDF6 - 21: 9E2165B47B29CBC4ACD50660E011D691F061209969, E9B1E860BD02085177E1A94E1EE6F3F0 - 22: 48EA2945C8DD3FE09407BAC8973A861DB15B788C8FFD, 502926712EDB1B3DD13806052C6C75D7 - 23: F37D46B35B60819EA52B00457D79155C04B55972D0DFA9, BB2B7D210BF0570F422640BF81F39B9E - 24: 12E85C0C78227205CC682360C79E35BF58EC6551CF8FE2D0, 042990D7A58D458C570A15DD375DB4E7 - 25: 4F6C15109DE980DD14A7F4C27F48671E4787C53A564232F427, B097A5990D8067DD89C21473150C070F - 26: AAC472E49DB101B564A8A01E2C80C0C6AE9065D332C2DE79FAB6, ACDD587A7DB86542E195DF73AF1C1CBC - 27: B9912CE18019C31692A1F7E11D9CCB20297ACCB9DC62C47C01D2C2, B0ACBF028CA5B15E0035D2EB8CA916BE - 28: B4F2B1FE14A1ECDC9C8EA1A0120395E6ED1E69D3FC85DD0F3F90F350, 9A561EBC769369B95B9CB74FC6AC27D3 - 29: 3FE397C8AD02689B7437A37861F0907AF1F6014A293B46419348771C5A, 6B7BEB9BD5018FECD71BE5081C7C2544 - 30: 5019089142199F7207E1B7731B8B247A18A685B231499DF12A73F5D67D37, 307E93446777005BA1B088F178A0DB6E - 31: EAE8F9F02F8DB3D70B78B08CFB0949D99F1A86C958A8E3823736BCEAB86BE1, 6C94F48591C18BF9C450515B73379973 - 32: B9C795F7A87305B4AD36DBA10B3B1C70B329D29E49C8C6A932D96A74334AEE4A, D18E6E233FEFD6E5C7148BDC1504299C - -EAX-twofish (16 byte key) - 0: , DB0C02CB069E3773296D3BD4A87A381B - 1: 99, 7D21D19E9C440F68E99F1F2EA2668694 - 2: 0696, EA590EC417C88E23FD23917F9ECFB0C6 - 3: B9B082, 82D4C9B68DDB02C906496413E13A2D68 - 4: D6B29D74, 5BCE5CA4F662E883BF7FCAAE5FB2CE01 - 5: A59C9CB009, CBFB04226D1029A7EC9D64A48A6729BE - 6: F4924FE3E355, 3D85B3900DECA0528C815F1447A1F209 - 7: 679C88D52FB519, 931C7A863C3701D8015FDBD8696C6C30 - 8: 26DA41C0D115375E, 7627E23E791A4DCB0FA5ED71B1ED2288 - 9: 8FEC6EB7016AD2B178, F65ED0286A724F0CB2EA317D5022B0D8 - 10: B5F22415B1334133C531, 87C4F3A8991BBB85984BC4D3305A5CF1 - 11: 23E1D0ED2E820AFE7DA2FE, 100499F1093FAB2ECF73B643594E98E3 - 12: 79519ABA91F46B8DAD6D5335, FBDCD1FCDB20AB99135F28A714C6992F - 13: 5968D0B4198A0AAD3D0395018F, 781F22E2DA98F83398FCF911B2010057 - 14: 4E55B14432B601E3EF2EF567CB15, 8BF6E53D7657E56EA3DA1BFD9C9EC06E - 15: 6ED89651CE19B3DD1EE5C8780B5015, 131CFD657D32D4E1B35140ADDCA0E13A - 16: 2295A968B4D072D12757756247554850, F35FAC95C2AA4155450EAAA6E2E789B5 - 17: F9B2AA2AA502EA79BBA0C5EAD932B8E1EE, 0ED81AA40B9BF39A9AAEDDDB7A04BEA6 - 18: 385055F1C1C26C0472A504B4CD225DCA55FE, 24831680B56368231AC54227D737F582 - 19: 771529585C741A3F8B1C973709892F255A99EE, 2A132B4BF96FD5109DB04459103F5E84 - 20: E7A2197D9FAA8AB8B303B5EC71AE34AD5EC5DD66, CCAB6518371EC8E0A9E9EE4F7CA5878B - 21: 279E54F755EAC6B57375B9EC4406E43DB3139D740C, 7B6F26F2C0ECC9F2DF4EDD7513E6E0B7 - 22: 27816AA94CBA2BF98E49E595AF5B3FAD12BF1D6F1AC6, D04876C5492D275F15C834E3CF794F0E - 23: B5658DC148855F68B282211D879F688F3C142FE555CF81, 4539CDA8A65DB9047AAD76B421B81120 - 24: 72F0BD4F939C2C9B4FA734DCB0AE4FB9BD342BC8459ED2FE, CEA8469BC0457EBF3418C1114288C904 - 25: 70568245E6E6BD5D11AD0C74030D7AE08BA05057DEA0FBF4AD, 71554FDE6B87477A51EE4499D78783D2 - 26: 8702D35BE07D7ADF70684046CC6C72FBBBF821E0BBCCBC973601, 33CC6FBFDA15E306919E0C3BB2E22BB6 - 27: 0BA23F4A6174165D4A8BA80B7C875340B0F8B2A6967D34E106BC22, 00E6679496714236EECEC84B9AF3072E - 28: B9E25ABA84C6BD95B5149E7616FE2E1D6FAACEAAD77A636C60279176, 8D8AD0B9D4C709E1DA370EE01611482A - 29: 74759711F6D542581F9F83498FB616638D092732BA07109BF4B5BE045C, 71A40DC777BD09F75362F7B20E0B7576 - 30: ADBF7E98926484BA2C7F6CD7CD9734FC19265F68AF3BFCAEB025F6296E37, 8DF15B5F69B67F7DABE44E3666B55047 - 31: 2DC26D449379997D110309B2A0DC2760FCE8CADB4B14ED580F86C70F69C9BA, EFCB60EB2B25737E256BC76700B198EF - 32: 2B1890EB9FC0B8293E45D42D2126F4072754AA54E220C853C5F20FBA86BE0795, 1A1B15BBC287372FB9AF035FB124B6A1 - -EAX-safer-k64 (8 byte key) - 0: , 9065118C8F6F7842 - 1: A1, 1926B3F5112C33BA - 2: 2E9A, 5FA6078A0AA7B7C8 - 3: 56FCE2, 984E385F9441FEC8 - 4: C33ACE8A, 24AC1CBBCCD0D00A - 5: 24307E196B, DD2D52EFCA571B68 - 6: 31471EAA5155, EB41C2B36FAAA774 - 7: 03D397F6CFFF62, 7DFBC8485C8B169B - 8: 8FA39E282C21B5B2, 2C7EC769966B36D7 - 9: FEA5402D9A8BE34946, A058E165B5FFB556 - 10: 6CDEF76554CA845193F0, FED516001FFE039A - 11: DC50D19E98463543D94820, 8F9CCF32394498A1 - 12: 42D8DC34F1974FB4EB2535D7, 77F648526BCBB5AF - 13: B75F1299EF6211A6318F6A8EAA, C5086AEA1BE7640B - 14: 1E28D68373330829DD1FFC5D083E, 33EDA06A7B5929A2 - 15: 85529CF87C4706751B0D47CC89CEA6, D031905D6141CBED - 16: FE5CB61BAF93B30ED3C296EE85F51864, CC484888F0ABD922 - -EAX-safer-sk64 (8 byte key) - 0: , 5254AB3079CDCB78 - 1: 75, 798DCF14FEF8F4D1 - 2: 0300, D5FCA75DAC97849C - 3: 520F98, 10E357957CE20898 - 4: 80E2764D, 5C7F46656C6A46EA - 5: C48960CDAA, 3CCF44BD41F01CA8 - 6: E0E60BD9AA2C, EBB493983FCEE79D - 7: D13D8804906A1B, 6EDDCA919978F0B6 - 8: B7AE14C37A343BFB, 2369E38A9B686747 - 9: 5DE326BBCC7D0D35E9, 041E5EE8568E941C - 10: 13494F5B0635BA3D6E53, EAEEA8AFA55141DD - 11: A9BB35B14C831FDA0D83F7, 4002A696F1363987 - 12: E242043A1C355409819FABFC, 63A085B8886C5FDC - 13: 204598B889272C6FE694BDBB4D, 194A1530138EFECE - 14: EE3F39E0823A82615679C664DEBF, 1EFF8134C8BEFB3A - 15: 8579D87FD3B5E2780BC229665F1D1B, A832CD3E1C1C2289 - 16: 74D7290D72DA67C4A9EAD434AE3A0A85, 96BAA615A5253CB5 - -EAX-safer-k128 (16 byte key) - 0: , 7E32E3F943777EE7 - 1: D1, BA00336F561731A7 - 2: F6D7, 8E3862846CD1F482 - 3: 5323B5, BD1B8C27B061969B - 4: A3EC3416, 170BBB9CE17D1D62 - 5: 0C74D66716, 7BD024B890C5CE01 - 6: 6158A630EB37, B5C5BD0652ACB712 - 7: 17F2D0E019947D, F9FF81E2638EC21C - 8: 68E135CC154509C8, AA9EAEF8426886AA - 9: EDB1ABE0B486749C21, 355C99E4651C0400 - 10: DB0C30E9367A72E8F5B2, 631B5671B8A1DB9A - 11: D4E5453D9A4C9DB5170FCE, 75A2DF0042E14D82 - 12: 3F429CC9A550CBDA44107AA7, 2C2977EA13FEBD45 - 13: A7CA22A97C2361171B415E7083, BFE81185F31727A8 - 14: 170F79D8B0E3F77299C44208C5B1, D5ED9F9459DF9C22 - 15: 2E24312D2AE5D5F09D5410900A4BBA, 2FC865CA96EA5A7E - 16: 8F3C49A316BA27067FF2C6D99EC8C846, 9D840F40CDB62E4B - -EAX-safer-sk128 (16 byte key) - 0: , 22D90A75BBA5F298 - 1: 3F, 98C31AB2DE61DE82 - 2: 584D, F4701D4A1A09928C - 3: B9DEAD, 6E221A98505153DA - 4: 06D4A6EB, 0E57C51B96BA13B6 - 5: 7B58B441CA, E28CCF271F5D0A29 - 6: 7950E0D1EC24, 2ACDDE6E38180C07 - 7: 65A4F4E098D7C6, 7DC1C9E9602BACF2 - 8: FEBE4E72BAA0848F, C4607EA3F138BAD9 - 9: 9B7BD6D6D655985AA3, 8B2C58A9530EA6AC - 10: 60C92F925D1478470203, 51E6F5F6DC996F84 - 11: 7B40769370E651F64AA654, 74F1F8A8D3F4B9AF - 12: 7215832C2FB9C54DF7A9C686, 9BF9AEF14F9151D1 - 13: AD0F9C79008572AB8AE2466EFF, F375D0583D921B69 - 14: C05076E2C330A0D25D7CEC80597F, 843C12F84B00A8E0 - 15: D18F0563AB0278140B0CD9A9B07B34, 262B1688E16A171E - 16: 650747091F5C532EE37D2D78EE1EC605, 1BAC36144F9A0E8D - -EAX-rc2 (8 byte key) - 0: , D6CC8632EEE0F46B - 1: 4C, EA19572CB8970CB4 - 2: 5537, 3EDD3253F6D0C1A8 - 3: 206FA6, 20FA88F03F240D31 - 4: 17EE8B40, 702E8194F1FCBFDE - 5: 2A89287136, 31C5534786E15FB3 - 6: 3A6AEDC7066B, 3C663A4081E1D243 - 7: 8BC5203947A644, 6AAC806C92BFBD6E - 8: 2E0274BBE14D21A3, CEB0E0CB73C3664C - 9: 9C4B292B0CF17E3A29, F23CD535559023EC - 10: 8E322734308F85662877, 46363D7EFC322821 - 11: C413C405767FF5F98E3667, E7BA35D8F3678E7E - 12: D77806B7A218098B1569EADC, BA67C306E5C0181B - 13: 4BE5EF74F9E9799A4D636FEA9F, 4C511C44ADBA4030 - 14: 7E19969170C2C8D8AEBA8C7FBC2C, 54CC6D466A2DF6DA - 15: 2EF1CEDC1DD3403CF440FC5561BE33, 61C6FB277E93701F - 16: DE052719153EBACE9D7B19F52AC4282F, 4AC2A96F2FA8634C - -EAX-des (8 byte key) - 0: , 44048B7F240B6F5F - 1: 0A, 37009B7D4E09953A - 2: 03BA, BFD2FD7758961728 - 3: 37EE10, 16A6AF96DE888A19 - 4: 07F44290, 100CA84AA0EDAA1D - 5: 389EF0023B, 9614FB800A533268 - 6: 3F4DBA8AA01C, EFA6B55B7ED5E40F - 7: 8C7B837896EAE7, C113CE8F664CE3D4 - 8: 7011D993D8EDB0C7, B4C370A919F60497 - 9: 0DEB30A31351B13D7B, 00ABC82DC5F3A1AF - 10: 8D3897B2CBE323D6EE1C, 7A2D15627CA1441B - 11: DBC002C817DEBFB419F94B, D8EB87F86D6ACDEF - 12: 17048E2976FA85AA849E9A80, 229FCD1C9D1E3B9C - 13: 30B989EF646544885A478AC198, C1B7EB4F799105C8 - 14: 5C2E12A7F118A08D6FD585F9C839, C358679FEE6FE7D7 - 15: 8D1A1E888BBB8648E638C4E74E11B8, 685E006C441448B8 - 16: 93AE906B8BE4EAC8ED6D8F48F04A7AFF, 71DD7AF752FE28FB - -EAX-3des (24 byte key) - 0: , 8914311BB990B725 - 1: D8, 2094EDC5D03E54B1 - 2: FEE5, 781CFB0EBE3895CA - 3: DECF5E, 59918E8A5C4B459B - 4: BD583AAD, 2013BEEBEEA795A1 - 5: 2BC01C6C78, 0B1134DBBEAB5D3F - 6: 4D5EAF01A895, AB4D17516ECBA50A - 7: AF229F90614480, D3113C0A9D133CD4 - 8: BCA6F375DF4568E0, 8E9EAEC8E77786BC - 9: 575F34219E6DD8DB4C, B40C75139E5D1860 - 10: A199B8AC433B615EC96F, 774AF803698ADE3D - 11: 718A2975DD9A872A68AE10, 3B9460F849CBA7FB - 12: AB38E148180F6E2FFBB96F91, E3EE3B8FC50DADBC - 13: EB10E0233507459D4A6C29EE80, 8D90B46BB1EAB27E - 14: EB48559C320DFB056C37458E19B5, 9315F0C4AF8500EB - 15: 9E8C73EADA105749B5D8D97392EDC3, 2E749EE66C1E6A16 - 16: 600FA4149AF252C87B828C780AEFF8BC, 33D7D11DCDC19936 - -EAX-cast5 (8 byte key) - 0: , 382FB8F7E9F69FDC - 1: 99, 20DA959849B3F7AB - 2: C54B, D05547C6AFA3484A - 3: 579836, AAA92B2321FC50C5 - 4: FEB7AE55, 639EDF01C4FB965D - 5: EA8A6023FA, 01274B3ED5CE102C - 6: B7C4E995121F, 712BFE27CAFF6DDE - 7: F44236660B0004, FAC51D1DF8EC7093 - 8: 01CD7E3D0BF29E8A, 049C47A45D868D0B - 9: DAB170493DFD6E0365, 6F3AEDD9A3ECF4FD - 10: 82C9EEC4803D9CD11FA8, 32683C0A9128C6EA - 11: 324AC59E87B244ECE0F32F, F6B095AAB49353CF - 12: DBDDAB11D02C9CA5843C406E, EA728FC46DDD3B04 - 13: D67376C2A4AD92E7DD80E39303, CAF72B7E7C237EB3 - 14: F2B9BBEF08036C2982C6DDD06918, 70A29D780C22752C - 15: 96E3D9141F8EBF520540C2BC9A9C23, CEFC86A1CD48203D - 16: 70CABBA983179106AE7FCD5F1F31D5C3, BF7F9168F4F82F56 - -EAX-noekeon (16 byte key) - 0: , 556805EEA595CFB9A30FAD196103D7FD - 1: F5, 0A7DAEDFB656526CEF4DDBA8087A227A - 2: 7B8C, 249895D79962D5B4D18FE07366281B72 - 3: ACFF15, DCC489D24832EB106F576AE6B6EB957A - 4: 08ADE7DB, 0D3215999E9960EDAB29B78744C7F139 - 5: 66139213F6, 505E1E7141D043E903C26EE0959EEECD - 6: 078B79F880A8, 35B7EB326A55E50332866EEDB682EC20 - 7: 2809E34D9667D4, FFDEC555F68524A09A6ABACA372077D9 - 8: 93D267DE1EC635D3, 4FF3561990A56E4B374618722EF850FF - 9: F377A4D93FF32F4A51, 91D4070423A90FC54D305169C03F49ED - 10: 6244B717E082993EB7A1, 2E3A8A354AFA9473667ED7FDD46BE9FC - 11: E917559625D25E6E5F2EDA, 19295C37A70314CC9A1D11FDE8D23C92 - 12: 1E6DF2EE112A893AB14DFA92, 12C4A89D4CD65F8116A03A135AFD3701 - 13: 47B18CD762E011770E203CF605, 434909A97E118B20D3AEDC79AFE33A9E - 14: 72D9A1A7DA6F33D5E0B927F9F32C, 779C23714FCAA2B2321EC7FB5B03E222 - 15: DA8B830FFCB3DB274807F780D33240, EDC2F1C8A401F328A53392597730B007 - 16: B53DD2BB840AD933D36A7B5FFDCCFBBB, 4EC0E6D1F916BF633869239B672B37A1 - 17: 42936BB9A936C30408660855F4F47F3314, F0DAA6DDA15585E1697ABBB4790B15B5 - 18: 00372E47F5BA016F1B2A1E680B76AB02052A, CDBF3D241BF7FF96D3DFBEDDB872E901 - 19: 8AA236B0C8BEF6F67A97C2DF90628F6E5838FF, 731DCD61F7F26004C03519F9500EA824 - 20: 55338647812FC9D86CBDDCED7120268A4D43F8BA, 0E61B3C835CAD95FD49FEF002C014E72 - 21: 435820B28E52154B47A04D5E635D8FE37FA47FC985, F6A96DCE4917E8D7C610923627E80970 - 22: 0D30C15B6FEB4A48B14DD15D41A4B25D442AA677B25C, 28E15CCB74AE992C68BDDC8D87802050 - 23: D9D701F9AD6B0E13D2CDDA15A5194E7CE8BD2C02137391, 2DB9A15884E9C996C3D6B5BDA44B9598 - 24: E2390AC5CE10CCFBC72106A52C7F180CB477E3C193CBACA8, 22D3F7DCD6947EA4E78DF57A8E1A9A59 - 25: ADEFB7D9500658D34996AF6BE6336CD78891064EA1DB8E9785, F239D67D039A15C620A7CD4BE4796B3F - 26: 89964C90ABF54A6DF9F13C3681E70C702D80A17BE79F8160F30E, 6336F729ECE1ED7368669D75B7E2DCBA - 27: 576B2813CECDA4F905BD5D58349EF070FF41B7EB6BB2B01B061B0B, 125324CBF2ACF1011A44A99A11EC8AFC - 28: 430B957481748519A60494F0B5F698F34B1A8235B00AC0D1F0A4442E, 1E80A7FCEBBB8E1E12D6831906154485 - 29: E781BFE5FCDE0BFC056CC86C4A0B9DD3B815BE8CA678204CF47289B5B5, 190D5AAA9EC1CB4CC86FACE53BF1201B - 30: 78BFAC07A9B7B2AE9329BF9F9BF18A1A49DD9587001EFCA00E9AD9752764, 4FB5ECBEEB0995C150EBC66508FA19C1 - 31: 7D6C20694109DE21F7955855A8FF832347518DD496C2A114DF142C68ACDEAA, B25D4BB34056DC091A7A3950D46C32EC - 32: 3E1E4395DEC1AFEA9212B95F37E679B6E2D14DF23C5DE49018C2C8038CC4AD45, 9A6DE7BD41A21918AD504490EF4E581D - -EAX-skipjack (10 byte key) - 0: , 85F74B6AFFB10ACD - 1: 3F, 604DF8BDD98A0B3F - 2: EA87, 792374FE07588BF9 - 3: 0169CA, 489AB8AF69DA3306 - 4: A7AC3EB1, 428DAF508E24B583 - 5: AA9028D5B3, C0A44EDA71FB2C86 - 6: DA97BA88A061, DA2EC34077F42585 - 7: 7E25FAA41CEBC8, 36D4987551E06D5B - 8: F662DA6C9001CBFE, B7DEF76680C316A9 - 9: 6D3F73EC716E1DA897, 5F0F83BAE4D3513B - 10: 2A300F585BEE9C889743, F4756C24DEB72A9C - 11: 80518B010DD77C82D19106, 50FF5CAA365F4A70 - 12: 6E579A2173C861B6F37B4CD3, 81E3E5ABBA8F0292 - 13: 5B04829880A72C38871C7021F3, 6B26F463708A3294 - 14: 934177878E9A9A9FB4DEB3895922, EBC1C32F0A2A3E96 - 15: 07AF486D1C458AAB2DBF13C3243FAD, 87288E41A9E64089 - 16: 84059283DF9A2A8563E7AF69235F26DF, 351652A0DBCE9D6E - -EAX-anubis (16 byte key) - 0: , 8E20F19D9BA22ABA09FB86FDE6B9EF38 - 1: 3B, F4201E546A9160F989191942EC8FD1D3 - 2: 9F38, 4E3CEAE3E1CB954E021A10E814B71732 - 3: 4F4769, 3E8F35A6A5B11200E9F1AA38590066CD - 4: AB41F5FC, EC4C97A8892AAF5433106D4AC8A49843 - 5: 414F95D61B, BF831E34D1E3FECB973A8C730ECA2E6D - 6: 4798322F06D1, 005BBC30BFEDBE6463536C4F80D1A071 - 7: F256B6CD1BF4F5, 468A28F0661884B846B191B530C8D064 - 8: 90906F27A633ADDE, 6D9200A37A7F6A456CB103673184C2E5 - 9: 16CD3C17C9B4EAB135, 6D716E23D7B35109F55B036EDFA7742E - 10: 7AD1C22F1F06298DFB25, B076990F8193543C8F3185D3792BCE56 - 11: 0476F2ABCD057FE6FEE39D, BB2876DB18C00038FADBBD9B264ACC3C - 12: B69EDE336407DBC2EE735857, AB63E5906116A8BE22C52B5DA31B1839 - 13: C3864C1354065A56470669E602, C72BFD3A0BC73BFF051C9AB2F0DFED93 - 14: 296D8F183A59020D33890420DD7B, C9D90B9EB42C32EDCF6223587D1598A6 - 15: 256ED8E9D982616680559979BDF2E9, 179FE4E7BA7E966050D35900317E9916 - 16: D4ED8F30FF9C0470D75B3B16750A3AE4, 5D50F05BB270A292DFF9F67A3BA84675 - 17: 40CDEB6388274143CA3C4F6020BD9A4875, B27C7DFB1BFBB3FCCEE0171852C7924E - 18: 54EF262EC1801D505C7629D038654EBA0594, 9D2060FCD0A2C577511C7752ADE60BBE - 19: F39EE54A37F16DD38B624D7AB8F0D9CBD4B981, BC056C7D2C09D813703CDD63C1C69F44 - 20: F4E7AD474FCA153ABD670E43081ED09EB2C4CC1A, F244BD4D630272F0D98FCA04226C04F1 - 21: 039ECC36A0A16273E7246CA1FF19D213AC87B53F29, 3056DB6916C925DF220B6C9980EE141A - 22: 7DE1DCDEF01447CA2FE83375A48DD84E4A7CB7C01992, 79AFEA4816EAF8DAC8A5E93960F1594F - 23: A886C4B914BF0983003272F226F9B2197EF2DC05ACDDE0, B59D85A0FDA5FA4422F7203C055B97A9 - 24: 00B3E1E91448E250AAFB695C0643A6577AB453EFECFABF53, 4A7EFF1CBC1AB535122A017203616D85 - 25: 85E972E774D66D0531E40B8FE9E264A77B50FA883AB0943080, B18E164BF89B7E7AB0DC256DFEC7C72F - 26: 004849E39334969B392CB0CF3FDEFB3D792DCBBC15F8328C7EDC, 3C51295711F5F878DE8F0B2B5A26A227 - 27: A0BAD6C2264AB1578993BA49E59D4598822FFED20A57D88F756FF1, 2EB9D525697A419A10DB2A84AEEA5FBC - 28: C34DD806EAB5AD823D78BCA78A7709A705FC94ECC521A367D76C9588, 3C57580C7903039D645C06DBAF07B477 - 29: C447EC77512938CF7862388C32AF22ACE6B5E4CBAA998BE4F5CBC4D215, 43425D09B7ACFD90371C08953946A955 - 30: 2C16993AAE624CBA4CDAF34FE3D368559E6BE548292B281439866375013B, 3B7360C3FA8FB1C15D19F567153CB46C - 31: 538E5DFAF14854A786851E4165F2E01CDDA963E318FCE4FB58E31A6B5CFC33, 2F8EA13B7A6873FE556CA535ABA0968B - 32: 5E29CDB7D9695A110043E9C260104BDF020A3A2A139D4112E918AB584BDD7EDA, 9133213AA7BCF062D2BD37F866683D3F - -EAX-khazad (16 byte key) - 0: , 75968E54452F6781 - 1: 95, ADAF5949F09B5A22 - 2: 6B8F, A06B201947424A11 - 3: 5BE668, 3251416625DF347A - 4: 5A92E82B, 33E25772427D9786 - 5: 62F9F2ABCC, DE714F5F5D17D6D0 - 6: 0E3CD825BD8D, A7991C8CB8975ED9 - 7: 4AD0D999503AAD, 53A827D7886F7227 - 8: BB08E6FAED1DAEE8, 91A118749B7AB9F3 - 9: 16E30CB12E20D18495, F8F8B8C1280158F9 - 10: 616DBCC6346959D89E4A, 506BF35A70297D53 - 11: F86B022D4B28FDB1F0B7D3, EA42220C805FD759 - 12: 9B8A3D9CDBADD9BBCCCD2B28, BB478D3CE9A229C9 - 13: CDC4AB4EF2D5B46E87827241F0, 658EDB9497A91823 - 14: 1A113D96B21B4AEBDB13E34C381A, 63AD0C4084AC84B0 - 15: 14DA751E5AF7E01F35B3CE74EE1ACF, 3C76AB64E1724DCE - 16: A13BBC7E408D2C550634CBC64690B8FE, 3D4BBC0C76536730 - diff --git a/src/botan/doc/examples/eax_test.cpp b/src/botan/doc/examples/eax_test.cpp deleted file mode 100644 index b43861132..000000000 --- a/src/botan/doc/examples/eax_test.cpp +++ /dev/null @@ -1,251 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -#include -#include - -using namespace Botan; - -namespace { - -unsigned from_string(const std::string& s) - { - std::istringstream stream(s); - unsigned n; - stream >> n; - return n; - } - -std::string seq(unsigned n) - { - std::string s; - - for(unsigned i = 0; i != n; ++i) - { - unsigned char b = (i & 0xFF); - - const char bin2hex[] = { '0', '1', '2', '3', '4', '5', '6', '7', - '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; - - s += bin2hex[(b >> 4)]; - s += bin2hex[(b & 0x0f)]; - } - - return s; - } - -void eax_test(const std::string& algo, - const std::string& key_str, - const std::string& nonce_str, - const std::string& header_str, - const std::string& tag_str, - const std::string& plaintext_str, - const std::string& ciphertext) - { - /* - printf("EAX(algo=%s key=%s nonce=%s header=%s tag=%s pt=%s ct=%s)\n", - algo.c_str(), key_str.c_str(), nonce_str.c_str(), header_str.c_str(), tag_str.c_str(), - plaintext_str.c_str(), ciphertext.c_str()); - */ - - SymmetricKey key(key_str); - InitializationVector iv(nonce_str); - - EAX_Encryption* enc; - - Pipe pipe(new Hex_Decoder, - enc = new EAX_Encryption(get_block_cipher(algo)), - new Hex_Encoder); - - enc->set_key(key); - enc->set_iv(iv); - - OctetString header(header_str); - - enc->set_header(header.begin(), header.length()); - - pipe.start_msg(); - pipe.write(plaintext_str); - pipe.end_msg(); - - std::string out = pipe.read_all_as_string(); - - if(out != ciphertext + tag_str) - { - printf("BAD enc %s '%s' != '%s%s'\n", algo.c_str(), - out.c_str(), ciphertext.c_str(), tag_str.c_str()); - } - else - printf("OK enc %s\n", algo.c_str()); - - try - { - EAX_Decryption* dec; - Pipe pipe2(new Hex_Decoder, - dec = new EAX_Decryption(get_block_cipher(algo)), - new Hex_Encoder); - - dec->set_key(key); - dec->set_iv(iv); - - dec->set_header(header.begin(), header.length()); - - pipe2.start_msg(); - pipe2.write(ciphertext); - pipe2.write(tag_str); - pipe2.end_msg(); - - std::string out2 = pipe2.read_all_as_string(); - - if(out2 != plaintext_str) - { - printf("BAD decrypt %s '%s'\n", algo.c_str(), out2.c_str()); - } - else - printf("OK decrypt %s\n", algo.c_str()); - } - catch(std::exception& e) - { - printf("%s\n", e.what()); - } - - } - -std::pair translate_algo(const std::string& in) - { - if(in == "aes (16 byte key)") - return std::make_pair("AES-128", 16); - - if(in == "blowfish (8 byte key)") - return std::make_pair("Blowfish", 8); - - if(in == "rc2 (8 byte key)") - return std::make_pair("RC2", 8); - - if(in == "rc5 (8 byte key)") - return std::make_pair("RC5", 8); - - if(in == "rc6 (16 byte key)") - return std::make_pair("RC6", 16); - - if(in == "safer-sk128 (16 byte key)") - return std::make_pair("SAFER-SK(10)", 16); - - if(in == "twofish (16 byte key)") - return std::make_pair("Twofish", 16); - - if(in == "des (8 byte key)") - return std::make_pair("DES", 8); - - if(in == "3des (24 byte key)") - return std::make_pair("TripleDES", 24); - - // These 3 are disabled due to differences in base algorithm. - -#if 0 - // XTEA: LTC uses little endian, Botan (and Crypto++) use big-endian - // I swapped to LE in XTEA and the vectors did match - if(in == "xtea (16 byte key)") - return std::make_pair("XTEA", 16); - - // Skipjack: LTC uses big-endian, Botan (and Crypto++) use - // little-endian I am not sure if that was the full difference - // though, was unable to replicate LTC's EAX vectors with Skipjack - if(in == "skipjack (10 byte key)") - return std::make_pair("Skipjack", 10); - - // Noekeon: unknown cause, though LTC's lone test vector does not - // match Botan - - if(in == "noekeon (16 byte key)") - return std::make_pair("Noekeon", 16); - -#endif - - return std::make_pair("", 0); - } - -std::string rep(const std::string& s_in, unsigned n) - { - std::string s_out; - - for(unsigned i = 0; i != n; ++i) - s_out += s_in[i % s_in.size()]; - - return s_out; - } - -void run_tests(std::istream& in) - { - std::string algo; - std::string key; - - while(in.good()) - { - std::string line; - - std::getline(in, line); - - if(line == "") - continue; - - if(line.size() > 5 && line.substr(0, 4) == "EAX-") - { - std::pair name_and_keylen = - translate_algo(line.substr(4)); - - algo = name_and_keylen.first; - key = seq(name_and_keylen.second); - } - else if(algo != "") - { - boost::regex vec_regex("^([ 0-9]{3}): (.*), (.*)$"); - - boost::smatch what; - - if(boost::regex_match(line, what, vec_regex, boost::match_extra)) - { - unsigned n = from_string(what[1]); - std::string ciphertext = what[2]; - std::string tag = what[3]; - - std::string plaintext = seq(n); - std::string header = seq(n); - std::string nonce = seq(n); - - eax_test(algo, key, nonce, header, tag, - plaintext, ciphertext); - - key = rep(tag, key.size()); // repeat as needed - } - } - } - - - } - -} - -int main() - { - std::ifstream in("eax.vec"); - - Botan::LibraryInitializer init; - - if(!in) - { - std::cerr << "Couldn't read input file\n"; - return 1; - } - - run_tests(in); - - } diff --git a/src/botan/doc/examples/ecdsa.cpp b/src/botan/doc/examples/ecdsa.cpp deleted file mode 100644 index 1607107eb..000000000 --- a/src/botan/doc/examples/ecdsa.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -#include -#include - -using namespace Botan; - -int main() - { - Botan::LibraryInitializer init; - - try - { - AutoSeeded_RNG rng; - - EC_Domain_Params params("secp160r1"); - - ECDSA_PrivateKey ecdsa(rng, params); - - ECDSA_PublicKey ecdsa_pub = ecdsa; - - /* - std::cout << params.get_curve().get_p() << "\n"; - std::cout << params.get_order() << "\n"; - std::cout << X509::PEM_encode(ecdsa); - std::cout << PKCS8::PEM_encode(ecdsa); - */ - - PK_Signer signer(ecdsa, "EMSA1(SHA-256)"); - - const char* message = "Hello World"; - - signer.update((const byte*)message, strlen(message)); - - SecureVector sig = signer.signature(rng); - - std::cout << sig.size() << "\n"; - - PK_Verifier verifier(ecdsa_pub, "EMSA1(SHA-256)"); - - verifier.update((const byte*)message, strlen(message)); - - bool ok = verifier.check_signature(sig); - if(ok) - std::cout << "Signature valid\n"; - else - std::cout << "Bad signature\n"; - } - catch(std::exception& e) - { - std::cout << e.what() << "\n"; - } - } diff --git a/src/botan/doc/examples/encrypt.cpp b/src/botan/doc/examples/encrypt.cpp deleted file mode 100644 index 28017d875..000000000 --- a/src/botan/doc/examples/encrypt.cpp +++ /dev/null @@ -1,193 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -/* -Encrypt a file using a block cipher in CBC mode. Compresses the plaintext -with Zlib, MACs with HMAC(SHA-1). Stores the block cipher used in the file, -so you don't have to specify it when decrypting. - -What a real application would do (and what this example should do), is test for -the presence of the Zlib module, and use it only if it's available. Then add -some marker to the stream so the other side knows whether or not the plaintext -was compressed. Bonus points for supporting multiple compression schemes. - -Another flaw is that is stores the entire ciphertext in memory, so if the file -you're encrypting is 1 Gb... you better have a lot of RAM. -*/ - -#include -#include -#include -#include -#include -#include - -#include - -#if defined(BOTAN_HAS_COMPRESSOR_ZLIB) - #include -#endif - -using namespace Botan; - -std::string b64_encode(const SecureVector&); - -int main(int argc, char* argv[]) - { - if(argc < 2) - { - std::cout << "Usage: " << argv[0] << " [-c algo] -p passphrase file\n" - " -p : Use this passphrase to encrypt\n" - " -c : Encrypt with block cipher 'algo' (default 3DES)\n"; - return 1; - } - - Botan::LibraryInitializer init; - - std::string algo = "TripleDES"; - std::string filename, passphrase; - - // Holy hell, argument processing is a PITA - for(int j = 1; argv[j] != 0; j++) - { - if(std::strcmp(argv[j], "-c") == 0) - { - if(argv[j+1]) - { - algo = argv[j+1]; - j++; - } - else - { - std::cout << "No argument for -c option" << std::endl; - return 1; - } - } - else if(std::strcmp(argv[j], "-p") == 0) - { - if(argv[j+1]) - { - passphrase = argv[j+1]; - j++; - } - else - { - std::cout << "No argument for -p option" << std::endl; - return 1; - } - } - else - { - if(filename != "") - { - std::cout << "You can only specify one file at a time\n"; - return 1; - } - filename = argv[j]; - } - } - - if(passphrase == "") - { - std::cout << "You have to specify a passphrase!" << std::endl; - return 1; - } - - std::ifstream in(filename.c_str(), std::ios::binary); - if(!in) - { - std::cout << "ERROR: couldn't open " << filename << std::endl; - return 1; - } - - std::string outfile = filename + ".enc"; - std::ofstream out(outfile.c_str()); - if(!out) - { - std::cout << "ERROR: couldn't open " << outfile << std::endl; - return 1; - } - - try - { - const BlockCipher* cipher_proto = global_state().algorithm_factory().prototype_block_cipher(algo); - - if(!cipher_proto) - { - std::cout << "Don't know about the block cipher \"" << algo << "\"\n"; - return 1; - } - - const u32bit key_len = cipher_proto->maximum_keylength(); - const u32bit iv_len = cipher_proto->block_size(); - - AutoSeeded_RNG rng; - - std::auto_ptr pbkdf(get_pbkdf("PBKDF2(SHA-1)")); - - SecureVector salt(8); - rng.randomize(&salt[0], salt.size()); - - const u32bit PBKDF2_ITERATIONS = 8192; - - SymmetricKey bc_key = pbkdf->derive_key(key_len, "BLK" + passphrase, - &salt[0], salt.size(), - PBKDF2_ITERATIONS); - - InitializationVector iv = pbkdf->derive_key(iv_len, "IVL" + passphrase, - &salt[0], salt.size(), - PBKDF2_ITERATIONS); - - SymmetricKey mac_key = pbkdf->derive_key(16, "MAC" + passphrase, - &salt[0], salt.size(), - PBKDF2_ITERATIONS); - - // Just to be all fancy we even write a (simple) header. - out << "-------- ENCRYPTED FILE --------" << std::endl; - out << algo << std::endl; - out << b64_encode(salt) << std::endl; - - Pipe pipe(new Fork( - new Chain(new MAC_Filter("HMAC(SHA-1)", mac_key), - new Base64_Encoder - ), - new Chain( -#ifdef BOTAN_HAS_COMPRESSOR_ZLIB - new Zlib_Compression, -#endif - get_cipher(algo + "/CBC", bc_key, iv, ENCRYPTION), - new Base64_Encoder(true) - ) - ) - ); - - pipe.start_msg(); - in >> pipe; - pipe.end_msg(); - - out << pipe.read_all_as_string(0) << std::endl; - out << pipe.read_all_as_string(1); - - } - catch(Algorithm_Not_Found) - { - std::cout << "Don't know about the block cipher \"" << algo << "\"\n"; - return 1; - } - catch(std::exception& e) - { - std::cout << "Exception caught: " << e.what() << std::endl; - return 1; - } - return 0; - } - -std::string b64_encode(const SecureVector& in) - { - Pipe pipe(new Base64_Encoder); - pipe.process_msg(in); - return pipe.read_all_as_string(); - } diff --git a/src/botan/doc/examples/encrypt2.cpp b/src/botan/doc/examples/encrypt2.cpp deleted file mode 100644 index 41f4fb478..000000000 --- a/src/botan/doc/examples/encrypt2.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -#include - -using namespace Botan; - -int main() - { - Botan::LibraryInitializer init; - - AutoSeeded_RNG rng; - - std::string passphrase = "secret"; - - std::ifstream infile("readme.txt"); - std::ofstream outfile("readme.txt.enc"); - - PKCS5_PBKDF2 pbkdf2(new HMAC(new SHA_160)); - - const u32bit PBKDF2_ITERATIONS = 8192; - - SecureVector salt(8); - rng.randomize(&salt[0], salt.size()); - - SecureVector master_key = pbkdf2.derive_key(48, passphrase, - &salt[0], salt.size(), - PBKDF2_ITERATIONS).bits_of(); - - KDF* kdf = get_kdf("KDF2(SHA-1)"); - - SymmetricKey key = kdf->derive_key(20, master_key, "cipher key"); - - SymmetricKey mac_key = kdf->derive_key(20, master_key, "hmac key"); - - InitializationVector iv = kdf->derive_key(8, master_key, "cipher iv"); - - Pipe pipe(new Fork( - new Chain( - get_cipher("Blowfish/CBC/PKCS7", key, iv, ENCRYPTION), - new Base64_Encoder, - new DataSink_Stream(outfile) - ), - new Chain( - new MAC_Filter("HMAC(SHA-1)", mac_key), - new Hex_Encoder) - ) - ); - - outfile.write((const char*)salt.begin(), salt.size()); - - pipe.start_msg(); - infile >> pipe; - pipe.end_msg(); - - SecureVector hmac = pipe.read_all(1); - outfile.write((const char*)hmac.begin(), hmac.size()); - } diff --git a/src/botan/doc/examples/factor.cpp b/src/botan/doc/examples/factor.cpp deleted file mode 100644 index 58b12d9a5..000000000 --- a/src/botan/doc/examples/factor.cpp +++ /dev/null @@ -1,154 +0,0 @@ -/* -* (C) 2009-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -* -* Factor integers using a combination of trial division by small -* primes, and Pollard's Rho algorithm -*/ - -#include -#include -#include -using namespace Botan; - -#include -#include -#include - -namespace { - -/* -* Pollard's Rho algorithm, as described in the MIT algorithms book. We -* use (x^2+x) mod n instead of (x*2-1) mod n as the random function, -* it _seems_ to lead to faster factorization for the values I tried. -*/ -BigInt rho(const BigInt& n, RandomNumberGenerator& rng) - { - BigInt x = BigInt::random_integer(rng, 0, n-1); - BigInt y = x; - BigInt d = 0; - - Modular_Reducer mod_n(n); - - u32bit i = 1, k = 2; - while(true) - { - i++; - - if(i == 0) // overflow, bail out - break; - - x = mod_n.multiply((x + 1), x); - - d = gcd(y - x, n); - if(d != 1 && d != n) - return d; - - if(i == k) - { - y = x; - k = 2*k; - } - } - return 0; - } - -// Remove (and return) any small (< 2^16) factors -std::vector remove_small_factors(BigInt& n) - { - std::vector factors; - - while(n.is_even()) - { - factors.push_back(2); - n /= 2; - } - - for(u32bit j = 0; j != PRIME_TABLE_SIZE; j++) - { - if(n < PRIMES[j]) - break; - - BigInt x = gcd(n, PRIMES[j]); - - if(x != 1) - { - n /= x; - - u32bit occurs = 0; - while(x != 1) - { - x /= PRIMES[j]; - occurs++; - } - - for(u32bit k = 0; k != occurs; k++) - factors.push_back(PRIMES[j]); - } - } - - return factors; - } - -std::vector factorize(const BigInt& n_in, - RandomNumberGenerator& rng) - { - BigInt n = n_in; - std::vector factors = remove_small_factors(n); - - while(n != 1) - { - if(check_prime(n, rng)) - { - factors.push_back(n); - break; - } - - BigInt a_factor = 0; - while(a_factor == 0) - a_factor = rho(n, rng); - - std::vector rho_factored = factorize(a_factor, rng); - for(u32bit j = 0; j != rho_factored.size(); j++) - factors.push_back(rho_factored[j]); - - n /= a_factor; - } - return factors; - } - -} - -int main(int argc, char* argv[]) - { - if(argc != 2) - { - std::cerr << "Usage: " << argv[0] << " integer\n"; - return 1; - } - - Botan::LibraryInitializer init; - - try - { - BigInt n(argv[1]); - - AutoSeeded_RNG rng; - - std::vector factors = factorize(n, rng); - std::sort(factors.begin(), factors.end()); - - std::cout << n << ": "; - std::copy(factors.begin(), - factors.end(), - std::ostream_iterator(std::cout, " ")); - std::cout << "\n"; - } - catch(std::exception& e) - { - std::cout << e.what() << std::endl; - return 1; - } - return 0; - } diff --git a/src/botan/doc/examples/fpe.cpp b/src/botan/doc/examples/fpe.cpp deleted file mode 100644 index 029a761e7..000000000 --- a/src/botan/doc/examples/fpe.cpp +++ /dev/null @@ -1,140 +0,0 @@ -#include -#include -#include - -using namespace Botan; - -#include -#include - -namespace { - -byte luhn_checksum(u64bit cc_number) - { - byte sum = 0; - - bool alt = false; - while(cc_number) - { - byte digit = cc_number % 10; - if(alt) - { - digit *= 2; - if(digit > 9) - digit -= 9; - } - - sum += digit; - - cc_number /= 10; - alt = !alt; - } - - return (sum % 10); - } - -bool luhn_check(u64bit cc_number) - { - return (luhn_checksum(cc_number) == 0); - } - -u64bit cc_rank(u64bit cc_number) - { - // Remove Luhn checksum - return cc_number / 10; - } - -u64bit cc_derank(u64bit cc_number) - { - for(u32bit i = 0; i != 10; ++i) - if(luhn_check(cc_number * 10 + i)) - return (cc_number * 10 + i); - return 0; - } - -/* -* Use the SHA-1 hash of the account name or ID as a tweak -*/ -SecureVector sha1(const std::string& acct_name) - { - SHA_160 hash; - hash.update(acct_name); - return hash.final(); - } - -u64bit encrypt_cc_number(u64bit cc_number, - const SymmetricKey& key, - const std::string& acct_name) - { - BigInt n = 1000000000000000; - - u64bit cc_ranked = cc_rank(cc_number); - - BigInt c = FPE::fe1_encrypt(n, cc_ranked, key, sha1(acct_name)); - - if(c.bits() > 50) - throw std::runtime_error("FPE produced a number too large"); - - u64bit enc_cc = 0; - for(u32bit i = 0; i != 7; ++i) - enc_cc = (enc_cc << 8) | c.byte_at(6-i); - return cc_derank(enc_cc); - } - -u64bit decrypt_cc_number(u64bit enc_cc, - const SymmetricKey& key, - const std::string& acct_name) - { - BigInt n = 1000000000000000; - - u64bit cc_ranked = cc_rank(enc_cc); - - BigInt c = FPE::fe1_decrypt(n, cc_ranked, key, sha1(acct_name)); - - if(c.bits() > 50) - throw std::runtime_error("FPE produced a number too large"); - - u64bit dec_cc = 0; - for(u32bit i = 0; i != 7; ++i) - dec_cc = (dec_cc << 8) | c.byte_at(6-i); - return cc_derank(dec_cc); - } - -} - -int main(int argc, char* argv[]) - { - LibraryInitializer init; - - if(argc != 4) - { - std::cout << "Usage: " << argv[0] << " cc-number acct-name passwd\n"; - return 1; - } - - u64bit cc_number = atoll(argv[1]); - std::string acct_name = argv[2]; - std::string passwd = argv[3]; - - std::cout << "Input was: " << cc_number << ' ' - << luhn_check(cc_number) << '\n'; - - /* - * In practice something like PBKDF2 with a salt and high iteration - * count would be a good idea. - */ - SymmetricKey key = sha1(passwd); - - u64bit enc_cc = encrypt_cc_number(cc_number, key, acct_name); - - std::cout << "Encrypted: " << enc_cc - << ' ' << luhn_check(enc_cc) << '\n'; - - u64bit dec_cc = decrypt_cc_number(enc_cc, key, acct_name); - - std::cout << "Decrypted: " << dec_cc - << ' ' << luhn_check(dec_cc) << '\n'; - - if(dec_cc != cc_number) - std::cout << "Something went wrong :( Bad CC checksum?\n"; - } diff --git a/src/botan/doc/examples/gen_certs.cpp b/src/botan/doc/examples/gen_certs.cpp deleted file mode 100644 index f8c9fe124..000000000 --- a/src/botan/doc/examples/gen_certs.cpp +++ /dev/null @@ -1,134 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -/* -* Generate a root CA plus httpd, dovecot, and postfix certs/keys -* -*/ - -#include -#include -#include -#include -#include - -using namespace Botan; - -#include -#include - -namespace { - -void fill_commoninfo(X509_Cert_Options& opts) - { - opts.country = "US"; - opts.organization = "randombit.net"; - opts.email = "admin@randombit.net"; - opts.locality = "Vermont"; - } - -X509_Certificate make_ca_cert(RandomNumberGenerator& rng, - const Private_Key& priv_key, - const X509_Time& now, - const X509_Time& later) - { - X509_Cert_Options opts; - fill_commoninfo(opts); - opts.common_name = "randombit.net CA"; - opts.start = now; - opts.end = later; - opts.CA_key(); - - return X509::create_self_signed_cert(opts, priv_key, "SHA-256", rng); - } - -PKCS10_Request make_server_cert_req(const Private_Key& key, - const std::string& hostname, - RandomNumberGenerator& rng) - { - X509_Cert_Options opts; - opts.common_name = hostname; - fill_commoninfo(opts); - - opts.add_ex_constraint("PKIX.ServerAuth"); - - return X509::create_cert_req(opts, key, "SHA-1", rng); - } - -void save_pair(const std::string& name, - const std::string& password, - const X509_Certificate& cert, - const Private_Key& key, - RandomNumberGenerator& rng) - { - std::string cert_fsname = name + "_cert.pem"; - std::string key_fsname = name + "_key.pem"; - - std::ofstream cert_out(cert_fsname.c_str()); - cert_out << cert.PEM_encode() << "\n"; - cert_out.close(); - - std::ofstream key_out(key_fsname.c_str()); - if(password != "") - key_out << PKCS8::PEM_encode(key, rng, password); - else - key_out << PKCS8::PEM_encode(key); - key_out.close(); - } - -} - -int main() - { - const u32bit seconds_in_a_year = 31556926; - - const u32bit current_time = system_time(); - - X509_Time now = X509_Time(current_time); - X509_Time later = X509_Time(current_time + 4*seconds_in_a_year); - - LibraryInitializer init; - - AutoSeeded_RNG rng; - - RSA_PrivateKey ca_key(rng, 2048); - - X509_Certificate ca_cert = make_ca_cert(rng, ca_key, now, later); - - const std::string ca_password = "sekrit"; - - save_pair("ca", ca_password, ca_cert, ca_key, rng); - - X509_CA ca(ca_cert, ca_key, "SHA-256"); - - RSA_PrivateKey httpd_key(rng, 1536); - X509_Certificate httpd_cert = ca.sign_request( - make_server_cert_req(httpd_key, "www.randombit.net", rng), - rng, now, later); - - save_pair("httpd", "", httpd_cert, httpd_key, rng); - - RSA_PrivateKey bugzilla_key(rng, 1536); - X509_Certificate bugzilla_cert = ca.sign_request( - make_server_cert_req(bugzilla_key, "bugs.randombit.net", rng), - rng, now, later); - - save_pair("bugzilla", "", bugzilla_cert, bugzilla_key, rng); - - RSA_PrivateKey postfix_key(rng, 1536); - X509_Certificate postfix_cert = ca.sign_request( - make_server_cert_req(postfix_key, "mail.randombit.net", rng), - rng, now, later); - - save_pair("postfix", "", postfix_cert, postfix_key, rng); - - RSA_PrivateKey dovecot_key(rng, 1536); - X509_Certificate dovecot_cert = ca.sign_request( - make_server_cert_req(dovecot_key, "imap.randombit.net", rng), - rng, now, later); - - save_pair("dovecot", "", dovecot_cert, dovecot_key, rng); - } diff --git a/src/botan/doc/examples/hash.cpp b/src/botan/doc/examples/hash.cpp deleted file mode 100644 index 1a4ca1b64..000000000 --- a/src/botan/doc/examples/hash.cpp +++ /dev/null @@ -1,58 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -int main(int argc, char* argv[]) - { - if(argc < 3) - { - std::cout << "Usage: " << argv[0] << " digest " << std::endl; - return 1; - } - - Botan::LibraryInitializer init; - - std::string hash = argv[1]; - /* a couple of special cases, kind of a crock */ - if(hash == "sha1") hash = "SHA-1"; - if(hash == "md5") hash = "MD5"; - - try { - if(!Botan::have_hash(hash)) - { - std::cout << "Unknown hash \"" << argv[1] << "\"" << std::endl; - return 1; - } - - Botan::Pipe pipe(new Botan::Hash_Filter(hash), - new Botan::Hex_Encoder); - - int skipped = 0; - for(int j = 2; argv[j] != 0; j++) - { - std::ifstream file(argv[j], std::ios::binary); - if(!file) - { - std::cout << "ERROR: could not open " << argv[j] << std::endl; - skipped++; - continue; - } - pipe.start_msg(); - file >> pipe; - pipe.end_msg(); - pipe.set_default_msg(j-2-skipped); - std::cout << pipe << " " << argv[j] << std::endl; - } - } - catch(std::exception& e) - { - std::cout << "Exception caught: " << e.what() << std::endl; - } - return 0; - } diff --git a/src/botan/doc/examples/hash_fd.cpp b/src/botan/doc/examples/hash_fd.cpp deleted file mode 100644 index 32acdbec3..000000000 --- a/src/botan/doc/examples/hash_fd.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -/* -This is just like the normal hash application, but uses the Unix I/O -system calls instead of C++ iostreams. Previously, this version was -much faster and smaller, but GCC 3.1's libstdc++ seems to have been -improved enough that the difference is now fairly minimal. - -Nicely enough, doing the change required changing only about 3 lines -of code. -*/ - -#include -#include - -#if !defined(BOTAN_HAS_PIPE_UNIXFD_IO) - #error "You didn't compile the pipe_unixfd module into Botan" -#endif - -#include -#include - -int main(int argc, char* argv[]) - { - if(argc < 3) - { - std::cout << "Usage: " << argv[0] << " digest " << std::endl; - return 1; - } - - Botan::LibraryInitializer init; - - try - { - Botan::Pipe pipe(new Botan::Hash_Filter(argv[1]), - new Botan::Hex_Encoder); - - int skipped = 0; - for(int j = 2; argv[j] != 0; j++) - { - int file = open(argv[j], O_RDONLY); - if(file == -1) - { - std::cout << "ERROR: could not open " << argv[j] << std::endl; - skipped++; - continue; - } - pipe.start_msg(); - file >> pipe; - pipe.end_msg(); - close(file); - pipe.set_default_msg(j-2-skipped); - std::cout << pipe << " " << argv[j] << std::endl; - } - } - catch(Botan::Algorithm_Not_Found) - { - std::cout << "Don't know about the hash function \"" << argv[1] << "\"" - << std::endl; - } - catch(std::exception& e) - { - std::cout << "Exception caught: " << e.what() << std::endl; - } - return 0; - } diff --git a/src/botan/doc/examples/hash_quickly.cpp b/src/botan/doc/examples/hash_quickly.cpp deleted file mode 100644 index a18ab4fa6..000000000 --- a/src/botan/doc/examples/hash_quickly.cpp +++ /dev/null @@ -1,98 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -/* -Try to find the fastest SHA-1 implementation and use it to hash -files. In most programs this isn't worth the bother and -overhead. However with large amount of input, it is worth it. On tests -on a Core2 system with the SHA-1 SSE2 code enabled, over a few hundred -Mb or so the overhead paid for itself. - -Of course you could also just do this once and save it as an -application config, which is probably the smart thing to do. -*/ - -#include -#include -#include - -#include -#include -#include -#include -#include - -namespace { - -void set_fastest_implementation(const std::string& algo, - Botan::RandomNumberGenerator& rng, - double ms = 30) - { - Botan::Algorithm_Factory& af = Botan::global_state().algorithm_factory(); - - std::map results = - Botan::algorithm_benchmark(algo, af, rng, ms, 16); - - std::string fastest_provider = ""; - double best_res = 0; - - for(std::map::iterator r = results.begin(); - r != results.end(); ++r) - { - std::cout << r->first << " @ " << r->second << " MiB/sec\n"; - - if(fastest_provider == "" || r->second > best_res) - { - fastest_provider = r->first; - best_res = r->second; - } - } - - std::cout << "Using " << fastest_provider << "\n"; - - af.set_preferred_provider(algo, fastest_provider); - } - -} - -int main(int argc, char* argv[]) - { - if(argc <= 1) - { - std::cout << "Usage: " << argv[0] << " ...\n"; - return 1; - } - - Botan::LibraryInitializer init; - Botan::AutoSeeded_RNG rng; - - const std::string hash = "SHA-1"; - - set_fastest_implementation(hash, rng); - - // Here we intentionally use the 'old style' lookup interface - // which will also respect the provider settings. Or can use: - // global_state().algorithm_factory().make_hash_function(hash) - Botan::Pipe pipe( - new Botan::Hash_Filter(Botan::get_hash(hash)), - new Botan::Hex_Encoder - ); - - for(size_t i = 1; argv[i]; ++i) - { - std::ifstream in(argv[i], std::ios::binary); - if(!in) - continue; - - pipe.start_msg(); - in >> pipe; - pipe.end_msg(); - - std::cout << argv[i] << " = " - << pipe.read_all_as_string(Botan::Pipe::LAST_MESSAGE) << "\n"; - - } - } diff --git a/src/botan/doc/examples/hasher.cpp b/src/botan/doc/examples/hasher.cpp deleted file mode 100644 index e5c52ba55..000000000 --- a/src/botan/doc/examples/hasher.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -int main(int argc, char* argv[]) - { - if(argc < 2) - { - std::cout << "Usage: " << argv[0] << " " << std::endl; - return 1; - } - - Botan::LibraryInitializer init; - - const int COUNT = 3; - std::string name[COUNT] = { "MD5", "SHA-1", "RIPEMD-160" }; - - for(int j = 1; argv[j] != 0; j++) - { - Botan::Filter* hash[COUNT] = { - new Botan::Chain(new Botan::Hash_Filter(name[0]), - new Botan::Hex_Encoder), - new Botan::Chain(new Botan::Hash_Filter(name[1]), - new Botan::Hex_Encoder), - new Botan::Chain(new Botan::Hash_Filter(name[2]), - new Botan::Hex_Encoder) - }; - - Botan::Pipe pipe(new Botan::Fork(hash, COUNT)); - - std::ifstream file(argv[j], std::ios::binary); - if(!file) - { - std::cout << "ERROR: could not open " << argv[j] << std::endl; - continue; - } - pipe.start_msg(); - file >> pipe; - pipe.end_msg(); - file.close(); - for(int k = 0; k != COUNT; k++) - { - pipe.set_default_msg(k); - std::cout << name[k] << "(" << argv[j] << ") = " << pipe << std::endl; - } - } - return 0; - } diff --git a/src/botan/doc/examples/hasher2.cpp b/src/botan/doc/examples/hasher2.cpp deleted file mode 100644 index b6303b644..000000000 --- a/src/botan/doc/examples/hasher2.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/* -* (C) 2001 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -/* -Identical to hasher.cpp, but uses Pipe in a different way. - -Note this tends to be much less efficient than hasher.cpp, because it -does three passes over the file. For a small file, it doesn't really -matter. But for a large file, or for something you can't re-read -easily (socket, stdin, ...) this is a bad idea. -*/ - -#include -#include -#include -#include - -int main(int argc, char* argv[]) - { - if(argc < 2) - { - std::cout << "Usage: " << argv[0] << " " << std::endl; - return 1; - } - - Botan::LibraryInitializer init; - - const int COUNT = 3; - std::string name[COUNT] = { "MD5", "SHA-1", "RIPEMD-160" }; - - Botan::Pipe pipe; - - int skipped = 0; - for(int j = 1; argv[j] != 0; j++) - { - Botan::Filter* hash[COUNT] = { - new Botan::Hash_Filter(name[0]), - new Botan::Hash_Filter(name[1]), - new Botan::Hash_Filter(name[2]), - }; - - std::ifstream file(argv[j], std::ios::binary); - if(!file) - { - std::cout << "ERROR: could not open " << argv[j] << std::endl; - skipped++; - continue; - } - for(int k = 0; k != COUNT; k++) - { - pipe.reset(); - pipe.append(hash[k]); - pipe.append(new Botan::Hex_Encoder); - pipe.start_msg(); - - // trickiness: the >> op reads until EOF, but seekg won't work - // unless we're in the "good" state (which EOF is not). - file.clear(); - file.seekg(0, std::ios::beg); - file >> pipe; - pipe.end_msg(); - } - file.close(); - for(int k = 0; k != COUNT; k++) - { - std::string out = pipe.read_all_as_string(COUNT*(j-1-skipped) + k); - std::cout << name[k] << "(" << argv[j] << ") = " << out << std::endl; - } - } - - return 0; - } diff --git a/src/botan/doc/examples/keywrap.cpp b/src/botan/doc/examples/keywrap.cpp deleted file mode 100644 index 730bcb6c9..000000000 --- a/src/botan/doc/examples/keywrap.cpp +++ /dev/null @@ -1,38 +0,0 @@ -/* -* NIST keywrap example -* (C) 2011 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -int main() - { - using namespace Botan; - - LibraryInitializer init; - - AutoSeeded_RNG rng; - - // The key to encrypt - SymmetricKey key(rng, 24); - - // The key encryption key - SymmetricKey kek(rng, 32); - - std::cout << "Original: " << key.as_string() << "\n"; - - Algorithm_Factory& af = global_state().algorithm_factory(); - - SecureVector enc = rfc3394_keywrap(key.bits_of(), kek, af); - - std::cout << "Encrypted: " << hex_encode(enc) << "\n"; - - SecureVector dec = rfc3394_keyunwrap(enc, kek, af); - - std::cout << "Decrypted: " << hex_encode(dec) << "\n"; - } diff --git a/src/botan/doc/examples/make_prime.cpp b/src/botan/doc/examples/make_prime.cpp deleted file mode 100644 index acaaac698..000000000 --- a/src/botan/doc/examples/make_prime.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -using namespace Botan; - -#include -#include -#include -#include - -int main() - { - Botan::LibraryInitializer init; - AutoSeeded_RNG rng; - - std::set primes; - - std::map bit_count; - - int not_new = 0; - - while(primes.size() < 10000) - { - u32bit start_cnt = primes.size(); - - u32bit bits = 18; - - if(rng.next_byte() % 128 == 0) - bits -= rng.next_byte() % (bits-2); - - bit_count[bits]++; - - //std::cout << "random_prime(" << bits << ")\n"; - - BigInt p = random_prime(rng, bits); - - if(p.bits() != bits) - { - std::cout << "Asked for " << bits << " got " << p - << " " << p.bits() << " bits\n"; - return 1; - } - - primes.insert(random_prime(rng, bits)); - - if(primes.size() != start_cnt) - std::cout << primes.size() << "\n"; - else - not_new++; - - //std::cout << "miss: " << not_new << "\n"; - - if(not_new % 100000 == 0) - { - for(std::map::iterator i = bit_count.begin(); - i != bit_count.end(); ++i) - std::cout << "bit_count[" << i->first << "] = " - << i->second << "\n"; - std::copy(primes.begin(), primes.end(), - std::ostream_iterator(std::cout, " ")); - } - } - - std::cout << "Generated all? primes\n"; - /* - for(u32bit j = 0; j != PRIME_TABLE_SIZE; ++j) - { - if(primes.count(PRIMES[j]) != 1) - std::cout << "Missing " << PRIMES[j] << "\n"; - } - */ - } diff --git a/src/botan/doc/examples/new_engine.cpp b/src/botan/doc/examples/new_engine.cpp deleted file mode 100644 index 42e5dbe33..000000000 --- a/src/botan/doc/examples/new_engine.cpp +++ /dev/null @@ -1,106 +0,0 @@ -/* -* Adding an application specific engine -* (C) 2004,2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -using namespace Botan; - -class XOR_Cipher : public StreamCipher - { - public: - void clear() throw() { mask.clear(); mask_pos = 0; } - - // what we want to call this cipher - std::string name() const { return "XOR"; } - - // return a new object of this type - StreamCipher* clone() const { return new XOR_Cipher; } - - Key_Length_Specification key_spec() const - { - return Key_Length_Specification(1, 32); - } - - XOR_Cipher() : mask_pos(0) {} - private: - void cipher(const byte in[], byte out[], size_t length) - { - for(size_t j = 0; j != length; j++) - { - out[j] = in[j] ^ mask[mask_pos]; - mask_pos = (mask_pos + 1) % mask.size(); - } - } - - void key_schedule(const byte key[], size_t length) - { - mask.resize(length); - copy_mem(&mask[0], key, length); - } - - SecureVector mask; - u32bit mask_pos; - }; - -class Application_Engine : public Engine - { - public: - std::string provider_name() const { return "application"; } - - StreamCipher* find_stream_cipher(const SCAN_Name& request, - Algorithm_Factory&) const - { - if(request.algo_name() == "XOR") - return new XOR_Cipher; - return 0; - } - }; - -#include -#include -#include - -int main() - { - - Botan::LibraryInitializer init; - - global_state().algorithm_factory().add_engine( - new Application_Engine); - - // a hex key value - SymmetricKey key("010203040506070809101112AAFF"); - - /* - Since stream ciphers are typically additive, the encryption and - decryption ops are the same, so this isn't terribly interesting. - - If this where a block cipher you would have to add a cipher mode and - padding method, such as "/CBC/PKCS7". - */ - Pipe enc(get_cipher("XOR", key, ENCRYPTION), new Hex_Encoder); - Pipe dec(new Hex_Decoder, get_cipher("XOR", key, DECRYPTION)); - - // I think the pigeons are actually asleep at midnight... - std::string secret = "The pigeon flys at midnight."; - - std::cout << "The secret message is '" << secret << "'" << std::endl; - - enc.process_msg(secret); - std::string cipher = enc.read_all_as_string(); - - std::cout << "The encrypted secret message is " << cipher << std::endl; - - dec.process_msg(cipher); - secret = dec.read_all_as_string(); - - std::cout << "The decrypted secret message is '" - << secret << "'" << std::endl; - - return 0; - } diff --git a/src/botan/doc/examples/package.cpp b/src/botan/doc/examples/package.cpp deleted file mode 100644 index 02cf52816..000000000 --- a/src/botan/doc/examples/package.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -#include -#include -#include - -using namespace Botan; - -namespace { - -std::vector slurp_file(const std::string& filename) - { - std::ifstream in(filename.c_str(), std::ios::binary); - - std::vector out; - byte buf[4096] = { 0 }; - - while(in.good()) - { - in.read((char*)buf, sizeof(buf)); - ssize_t got = in.gcount(); - - out.insert(out.end(), buf, buf+got); - } - - return out; - } - -} - -int main(int argc, char* argv[]) - { - if(argc != 2) - { - std::cout << "Usage: " << argv[0] << " filename\n"; - return 1; - } - - LibraryInitializer init; - - AutoSeeded_RNG rng; - - BlockCipher* cipher = new Serpent; - - std::vector input = slurp_file(argv[1]); - std::vector output(input.size() + cipher->block_size()); - - aont_package(rng, new Serpent, - &input[0], input.size(), - &output[0]); - - std::vector unpackage_output(output.size() - cipher->block_size()); - - aont_unpackage(new Serpent, - &output[0], output.size(), - &unpackage_output[0]); - - if(unpackage_output == input) - std::cout << "Package/unpackage worked\n"; - else - std::cout << "Something went wrong :(\n"; - } diff --git a/src/botan/doc/examples/passhash.cpp b/src/botan/doc/examples/passhash.cpp deleted file mode 100644 index 586c28c3f..000000000 --- a/src/botan/doc/examples/passhash.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -#include - -int main(int argc, char* argv[]) - { - if(argc != 2 && argc != 3) - { - std::cerr << "Usage: " << argv[0] << " password\n"; - std::cerr << "Usage: " << argv[0] << " password hash\n"; - return 1; - } - - Botan::LibraryInitializer init; - - try - { - - if(argc == 2) - { - Botan::AutoSeeded_RNG rng; - - std::cout << "H('" << argv[1] << "') = " - << Botan::generate_passhash9(argv[1], rng) << '\n'; - } - else - { - bool ok = Botan::check_passhash9(argv[1], argv[2]); - if(ok) - std::cout << "Password and hash match\n"; - else - std::cout << "Password and hash do not match\n"; - } - } - catch(std::exception& e) - { - std::cerr << e.what() << '\n'; - return 1; - } - return 0; - } diff --git a/src/botan/doc/examples/pkcs10.cpp b/src/botan/doc/examples/pkcs10.cpp deleted file mode 100644 index b5ad1d1dd..000000000 --- a/src/botan/doc/examples/pkcs10.cpp +++ /dev/null @@ -1,51 +0,0 @@ -#include -#include -#include -#include -#include -using namespace Botan; - -#include -#include -#include - -int main(int argc, char* argv[]) - { - if(argc != 6) - { - std::cout << "Usage: " << argv[0] << - " passphrase name country_code organization email" << std::endl; - return 1; - } - - Botan::LibraryInitializer init; - - try - { - AutoSeeded_RNG rng; - - RSA_PrivateKey priv_key(rng, 1024); - - std::ofstream key_file("private.pem"); - key_file << PKCS8::PEM_encode(priv_key, rng, argv[1]); - - X509_Cert_Options opts; - - opts.common_name = argv[2]; - opts.country = argv[3]; - opts.organization = argv[4]; - opts.email = argv[5]; - - PKCS10_Request req = X509::create_cert_req(opts, priv_key, - "SHA-256", rng); - - std::ofstream req_file("req.pem"); - req_file << req.PEM_encode(); - } - catch(std::exception& e) - { - std::cout << e.what() << std::endl; - return 1; - } - return 0; - } diff --git a/src/botan/doc/examples/pqg_gen.cpp b/src/botan/doc/examples/pqg_gen.cpp deleted file mode 100644 index c033dac3b..000000000 --- a/src/botan/doc/examples/pqg_gen.cpp +++ /dev/null @@ -1,121 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -using namespace Botan; - -bool check(RandomNumberGenerator& rng, - std::map); - -int main() - { - try { - Botan::LibraryInitializer init("use_engines"); - - AutoSeeded_RNG rng; - - std::ifstream in("PQGGen.rsp"); - if(!in) - throw std::runtime_error("Can't open response file"); - - std::map inputs; - - while(in.good()) - { - std::string line; - std::getline(in, line); - - if(line == "" || line[0] == '[' || line[0] == '#') - continue; - - std::vector name_and_val = split_on(line, '='); - - if(name_and_val.size() != 2) - throw std::runtime_error("Unexpected input: " + line); - - name_and_val[0].erase(name_and_val[0].size()-1); - name_and_val[1].erase(0, 1); - - std::string name = name_and_val[0], value = name_and_val[1]; - - inputs[name] = value; - - if(name == "H") - { - bool result = check(rng, inputs); - std::cout << "." << std::flush; - if(result == false) - { - std::cout << " Check failed\n"; - - std::map::const_iterator i; - - for(i = inputs.begin(); i != inputs.end(); i++) - std::cout << i->first << " = " << i->second << "\n"; - - std::cout << "\n"; - } - - inputs.clear(); - } - } - } - catch(std::exception& e) - { - std::cout << e.what() << std::endl; - return 1; - } - return 0; - } - -bool check(RandomNumberGenerator& rng, - std::map inputs) - { - BigInt p("0x"+inputs["P"]), - q("0x"+inputs["Q"]), - g("0x"+inputs["G"]), - h("0x"+inputs["H"]); - - if(h < 1 || h >= p-1) return false; - - //u32bit c = to_u32bit(inputs["c"]); - - Pipe pipe(new Hex_Decoder); - pipe.process_msg(inputs["Seed"]); - SecureVector seed = pipe.read_all(); - - BigInt our_p, our_q; - - u32bit qbits = (p.bits() <= 1024) ? 160 : 256; - - Algorithm_Factory& af = global_state().algorithm_factory(); - - bool found = generate_dsa_primes(rng, af, our_p, our_q, - p.bits(), qbits, seed); - - if(!found) /* bad seed */ - return false; - - if(our_p != p) return false; - if(our_q != q) return false; - - BigInt our_g = power_mod(h, (p-1)/q, p); - - if(our_g != g) return false; - - return true; - } diff --git a/src/botan/doc/examples/python/cipher.py b/src/botan/doc/examples/python/cipher.py deleted file mode 100755 index 1be2759ae..000000000 --- a/src/botan/doc/examples/python/cipher.py +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/python - -import botan -import sys - -def encrypt(input, passphrase): - rng = botan.RandomNumberGenerator() - - # Use as both EAX IV and PBKDF2 salt - salt = rng.gen_random(10) - - iterations = 10000 - output_size = 16 - - key = botan.pbkdf2(passphrase, salt, iterations, output_size, "SHA-1") - - encryptor = botan.Cipher("AES-128/EAX", "encrypt", key) - - ciphertext = encryptor.cipher(input, salt) - return (ciphertext, salt) - -def decrypt(input, salt, passphrase): - iterations = 10000 - output_size = 16 - - key = botan.pbkdf2(passphrase, salt, iterations, output_size, "SHA-1") - - decryptor = botan.Cipher("AES-128/EAX", "decrypt", key) - - return decryptor.cipher(input, salt) - -def main(args = None): - if args is None: - args = sys.argv - - passphrase = args[1] - input = ''.join(open(args[2]).readlines()) - - (ciphertext, salt) = encrypt(input, passphrase) - - print decrypt(ciphertext, salt, passphrase) - -if __name__ == '__main__': - sys.exit(main()) diff --git a/src/botan/doc/examples/python/cryptobox.py b/src/botan/doc/examples/python/cryptobox.py deleted file mode 100755 index f76ed6bc3..000000000 --- a/src/botan/doc/examples/python/cryptobox.py +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/python - -import sys -import botan - -def main(args = None): - if args is None: - args = sys.argv - - if len(args) != 3: - raise Exception("Usage: "); - - password = args[1] - input = ''.join(open(args[2]).readlines()) - - rng = botan.RandomNumberGenerator() - - ciphertext = botan.cryptobox_encrypt(input, password, rng) - - print ciphertext - - plaintext = '' - - try: - plaintext = botan.cryptobox_decrypt(ciphertext, password + 'FAIL') - except Exception, e: - print "Good news: bad password caused exception: " - print e - - plaintext = botan.cryptobox_decrypt(ciphertext, password) - - print "Original input was: " - print plaintext - -if __name__ == '__main__': - sys.exit(main()) diff --git a/src/botan/doc/examples/python/nisttest.py b/src/botan/doc/examples/python/nisttest.py deleted file mode 100755 index 1260b1226..000000000 --- a/src/botan/doc/examples/python/nisttest.py +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/python - -import sys, os, botan -from os.path import join; - -def validate(ca_certs, certs, crls, ee_certs): - store = botan.X509_Store() - for cert in certs: - if cert not in ee_certs: - store.add_cert(botan.X509_Certificate(cert), cert in ca_certs) - - for crl in crls: - r = store.add_crl(botan.X509_CRL(crl)) - if r != botan.verify_result.verified: - return r - - for ee in ee_certs: - r = store.validate(botan.X509_Certificate(ee)) - if r != botan.verify_result.verified: - return r - - return botan.verify_result.verified - -def run_test(files, rootdir, testname, expected): - crls = [join(rootdir,x) for x in files if x.endswith(".crl")] - certs = [join(rootdir,x) for x in files if x.endswith(".crt")] - end_entity = [x for x in certs if x.find("end.crt") != -1] - ca_certs = [x for x in certs if x.find("root.crt") != -1] - - print "%s..." % testname, - - result = validate(ca_certs, certs, crls, end_entity) - result = repr(result).replace('botan._botan.verify_result.', '') - - if result != expected: - print "FAILED: got %s, expected %s" % (result, expected) - else: - print "passed" - -def main(): - def load_results(file): - results = {} - for line in open(file, 'r'): - line = line[0:line.find('#')].strip() - if line: - test,result = line.split(' ') - results[test] = result - return results - - results = load_results('results.vec') - - for root, dirs, files in os.walk('../../checks/nist_tests/tests'): - if files: - thistest = root[root.rfind('/')+1:] - if thistest in results: - run_test(files, root, thistest, results[thistest]) - else: - print "%s... skipping - no expected result set" % thistest - -if __name__ == "__main__": - sys.exit(main()) diff --git a/src/botan/doc/examples/python/results.vec b/src/botan/doc/examples/python/results.vec deleted file mode 100644 index 7a3824001..000000000 --- a/src/botan/doc/examples/python/results.vec +++ /dev/null @@ -1,60 +0,0 @@ -# This is the file of expected results for nisttest.py -test01 verified -test02 signature_error -test03 signature_error -test04 verified -test05 cert_not_yet_valid -test06 cert_not_yet_valid -test07 verified -test08 cert_not_yet_valid -test09 cert_has_expired -test10 cert_has_expired -test11 cert_has_expired -test12 verified -test13 cert_issuer_not_found -test14 cert_issuer_not_found -test15 verified -test16 verified -test17 verified -test18 verified -# changed; should be no_revocation_data_available, but I don't want to -# force people to use CRLs -test19 verified -test20 cert_is_revoked -test21 cert_is_revoked -test22 ca_cert_not_for_cert_issuer -test23 ca_cert_not_for_cert_issuer -test24 verified -test25 ca_cert_not_for_cert_issuer -test26 verified -test27 verified -test28 ca_cert_not_for_cert_issuer -test29 ca_cert_not_for_cert_issuer -test30 verified -test31 ca_cert_not_for_crl_issuer -test32 ca_cert_not_for_crl_issuer -test33 verified -test54 cert_chain_too_long -test55 cert_chain_too_long -test56 verified -test57 verified -test58 cert_chain_too_long -test59 cert_chain_too_long -test60 cert_chain_too_long -test61 cert_chain_too_long -test62 verified -test63 verified -test64 signature_error -# changed; I have no idea why this test is supposed to fail -test65 verified -test66 crl_issuer_not_found -# changed; one of the CRLs has an unknown creator, so we fail -# prior to getting to the end-entity check -test67 crl_issuer_not_found -test68 cert_is_revoked -test69 cert_is_revoked -test70 cert_is_revoked -test71 cert_is_revoked -test72 crl_has_expired -test73 crl_has_expired -test74 verified diff --git a/src/botan/doc/examples/python/rng_test.py b/src/botan/doc/examples/python/rng_test.py deleted file mode 100755 index 06c79b84e..000000000 --- a/src/botan/doc/examples/python/rng_test.py +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/python - -import botan - -rng = botan.RandomNumberGenerator() - -print "name", rng.name() - -rng.add_entropy("blah") - -print "random 16", rng.gen_random(16).encode("hex") -print "random 32", rng.gen_random(32).encode("base64"), - -rng.reseed() - -for i in range(0, 10): - print rng.gen_random_byte(), -print - -rng.add_entropy("blah") - -print "random 16", rng.gen_random(16).encode("hex") diff --git a/src/botan/doc/examples/python/rsa.py b/src/botan/doc/examples/python/rsa.py deleted file mode 100755 index 8ca95ff8b..000000000 --- a/src/botan/doc/examples/python/rsa.py +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/python - -import botan - -def make_into_c_array(ber): - output = 'static unsigned char key_data[%d] = {\n\t' % (len(ber)) - - for (idx,c) in zip(range(len(ber)), ber): - if idx != 0 and idx % 8 == 0: - output += "\n\t" - output += "0x%s, " % (c.encode('hex')) - - output += "\n};\n" - - return output - -rng = botan.RandomNumberGenerator() - -rsa_priv = botan.RSA_PrivateKey(768, rng) - -print rsa_priv.to_string() -print int(rsa_priv.get_N()) -print int(rsa_priv.get_E()) - -rsa_pub = botan.RSA_PublicKey(rsa_priv) - -print make_into_c_array(rsa_pub.to_ber()) -#print make_into_c_array(rsa_priv.to_ber()) - -key = rng.gen_random(20) - -ciphertext = rsa_pub.encrypt(key, 'EME1(SHA-1)', rng) - -print ciphertext.encode('hex') - -plaintext = rsa_priv.decrypt(ciphertext, 'EME1(SHA-1)') - -print plaintext == key - -signature = rsa_priv.sign(key, 'EMSA4(SHA-256)', rng) - -print rsa_pub.verify(key, signature, 'EMSA4(SHA-256)') - -# Corrupt the signature, make sure it doesn't verify -signature = signature.replace(signature[0], '0') - -print rsa_pub.verify(key, signature, 'EMSA4(SHA-256)') diff --git a/src/botan/doc/examples/read_ssh.cpp b/src/botan/doc/examples/read_ssh.cpp deleted file mode 100644 index a1e7482d3..000000000 --- a/src/botan/doc/examples/read_ssh.cpp +++ /dev/null @@ -1,131 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -/* -* Example of reading SSH2 format public keys (see RFC 4716) -*/ - -#include -#include -#include -#include -#include -#include - -using namespace Botan; - -namespace { - -u32bit read_u32bit(Pipe& pipe) - { - byte out[4] = { 0 }; - pipe.read(out, 4); - u32bit len = load_be(out, 0); - if(len > 10000) - throw Decoding_Error("Huge size in read_u32bit, something went wrong"); - return len; - } - -std::string read_string(Pipe& pipe) - { - u32bit len = read_u32bit(pipe); - - std::string out(len, 'X'); - pipe.read(reinterpret_cast(&out[0]), len); - return out; - } - -BigInt read_bigint(Pipe& pipe) - { - u32bit len = read_u32bit(pipe); - - SecureVector buf(len); - pipe.read(&buf[0], len); - return BigInt::decode(buf); - } - -Public_Key* read_ssh_pubkey(const std::string& file) - { - std::ifstream in(file.c_str()); - - const std::string ssh_header = "---- BEGIN SSH2 PUBLIC KEY ----"; - const std::string ssh_trailer = "---- END SSH2 PUBLIC KEY ----"; - - std::string hex_bits; - - std::string line; - std::getline(in, line); - - if(line != ssh_header) - return 0; - - while(in.good()) - { - std::getline(in, line); - - if(line.find("Comment: ") == 0) - { - while(line[line.size()-1] == '\\') - std::getline(in, line); - std::getline(in, line); - } - - if(line == ssh_trailer) - break; - - hex_bits += line; - } - - Pipe pipe(new Base64_Decoder); - pipe.process_msg(hex_bits); - - std::string key_type = read_string(pipe); - - if(key_type != "ssh-rsa" && key_type != "ssh-dss") - return 0; - - if(key_type == "ssh-rsa") - { - BigInt e = read_bigint(pipe); - BigInt n = read_bigint(pipe); - return new RSA_PublicKey(n, e); - } - else if(key_type == "ssh-dss") - { - BigInt p = read_bigint(pipe); - BigInt q = read_bigint(pipe); - BigInt g = read_bigint(pipe); - BigInt y = read_bigint(pipe); - - return new DSA_PublicKey(DL_Group(p, q, g), y); - } - - return 0; - } - -} - -#include -#include - -int main() - { - LibraryInitializer init; - - Public_Key* key = read_ssh_pubkey("dsa.ssh"); - - if(key == 0) - { - std::cout << "Failed\n"; - return 1; - } - - std::cout << X509::PEM_encode(*key); - - delete key; - - return 0; - } diff --git a/src/botan/doc/examples/rng_test.cpp b/src/botan/doc/examples/rng_test.cpp deleted file mode 100644 index c0d24fd80..000000000 --- a/src/botan/doc/examples/rng_test.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -#include -#include -#include -#include - -using namespace Botan; - -namespace { - -class Fixed_Output_RNG : public RandomNumberGenerator - { - public: - bool is_seeded() const { return !buf.empty(); } - - byte random() - { - if(buf.empty()) - throw std::runtime_error("Out of bytes"); - - byte out = buf.front(); - buf.pop_front(); - return out; - } - - void randomize(byte out[], size_t len) throw() - { - for(size_t j = 0; j != len; j++) - out[j] = random(); - } - - std::string name() const { return "Fixed_Output_RNG"; } - - void reseed(size_t) {} - - void clear() throw() {} - - void add_entropy(const byte in[], size_t len) - { - buf.insert(buf.end(), in, in + len); - } - - void add_entropy_source(EntropySource* es) { delete es; } - - Fixed_Output_RNG() {} - private: - std::deque buf; - }; - -void x931_tests(std::vector > vecs, - const std::string& cipher) - { - for(size_t j = 0; j != vecs.size(); ++j) - { - const std::string result = vecs[j].first; - const std::string input = vecs[j].second; - - ANSI_X931_RNG prng(get_block_cipher(cipher), - new Fixed_Output_RNG); - - SecureVector x = hex_decode(input); - prng.add_entropy(x.begin(), x.size()); - - SecureVector output(result.size() / 2); - prng.randomize(output, output.size()); - - if(hex_decode(result) != output) - std::cout << "FAIL"; - else - std::cout << "PASS"; - - std::cout << " Seed " << input << " " - << "Got " << hex_encode(output) << " " - << "Exp " << result << "\n"; - } - - } - -std::vector > -read_file(const std::string& fsname) - { - std::ifstream in(fsname.c_str()); - - std::vector > out; - - while(in.good()) - { - std::string line; - std::getline(in, line); - - if(line == "") - break; - - std::vector l = split_on(line, ':'); - - if(l.size() != 2) - throw std::runtime_error("Bad line " + line); - - out.push_back(std::make_pair(l[0], l[1])); - } - - return out; - } - -} - -int main() - { - Botan::LibraryInitializer init; - - x931_tests(read_file("ANSI931_AES128VST.txt.vst"), "AES-128"); - x931_tests(read_file("ANSI931_AES192VST.txt.vst"), "AES-192"); - x931_tests(read_file("ANSI931_AES256VST.txt.vst"), "AES-256"); - x931_tests(read_file("ANSI931_TDES2VST.txt.vst"), "TripleDES"); - x931_tests(read_file("ANSI931_TDES3VST.txt.vst"), "TripleDES"); - } diff --git a/src/botan/doc/examples/row_encryptor.cpp b/src/botan/doc/examples/row_encryptor.cpp deleted file mode 100644 index 685850945..000000000 --- a/src/botan/doc/examples/row_encryptor.cpp +++ /dev/null @@ -1,171 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include - -#include -#include -#include - -using namespace Botan; - -/* -* Encrypt and decrypt small rows -*/ -class Row_Encryptor - { - public: - Row_Encryptor(const std::string& passphrase, - RandomNumberGenerator& rng); - - Row_Encryptor(const std::string& passphrase, - const MemoryRegion& salt); - - std::string encrypt(const std::string& input, - const MemoryRegion& salt); - - std::string decrypt(const std::string& input, - const MemoryRegion& salt); - - SecureVector get_pbkdf_salt() const { return pbkdf_salt; } - private: - void init(const std::string& passphrase); - - Row_Encryptor(const Row_Encryptor&) {} - Row_Encryptor& operator=(const Row_Encryptor&) { return (*this); } - - SecureVector pbkdf_salt; - Pipe enc_pipe, dec_pipe; - EAX_Encryption* eax_enc; // owned by enc_pipe - EAX_Decryption* eax_dec; // owned by dec_pipe; - }; - -Row_Encryptor::Row_Encryptor(const std::string& passphrase, - RandomNumberGenerator& rng) - { - pbkdf_salt.resize(10); // 80 bits - rng.randomize(&pbkdf_salt[0], pbkdf_salt.size()); - init(passphrase); - } - -Row_Encryptor::Row_Encryptor(const std::string& passphrase, - const MemoryRegion& salt) - { - pbkdf_salt = salt; - init(passphrase); - } - -void Row_Encryptor::init(const std::string& passphrase) - { - std::auto_ptr pbkdf(get_pbkdf("PBKDF2(SHA-160)")); - - SecureVector key = pbkdf->derive_key(32, passphrase, - &pbkdf_salt[0], pbkdf_salt.size(), - 10000).bits_of(); - - /* - Save pointers to the EAX objects so we can change the IV as needed - */ - - Algorithm_Factory& af = global_state().algorithm_factory(); - - const BlockCipher* proto = af.prototype_block_cipher("Serpent"); - - if(!proto) - throw std::runtime_error("Could not get a Serpent proto object"); - - enc_pipe.append(eax_enc = new EAX_Encryption(proto->clone())); - dec_pipe.append(eax_dec = new EAX_Decryption(proto->clone())); - - eax_enc->set_key(key); - eax_dec->set_key(key); - } - -std::string Row_Encryptor::encrypt(const std::string& input, - const MemoryRegion& salt) - { - eax_enc->set_iv(salt); - enc_pipe.process_msg(input); - return enc_pipe.read_all_as_string(Pipe::LAST_MESSAGE); - } - -std::string Row_Encryptor::decrypt(const std::string& input, - const MemoryRegion& salt) - { - eax_dec->set_iv(salt); - dec_pipe.process_msg(input); - return dec_pipe.read_all_as_string(Pipe::LAST_MESSAGE); - } - -/* -* Test code follows: -*/ - -int main() - { - Botan::LibraryInitializer init; - - AutoSeeded_RNG rng; - - const std::string secret_passphrase = "secret passphrase"; - - Row_Encryptor encryptor("secret passphrase", rng); - - std::vector original_inputs; - - for(u32bit i = 0; i != 50000; ++i) - { - std::ostringstream out; - - u32bit output_bytes = rng.next_byte(); - - for(u32bit j = 0; j != output_bytes; ++j) - out << std::hex << (int)rng.next_byte(); - - original_inputs.push_back(out.str()); - } - - std::vector encrypted_values; - MemoryVector salt(4); // keep out of loop to avoid excessive dynamic allocation - - for(u32bit i = 0; i != original_inputs.size(); ++i) - { - std::string input = original_inputs[i]; - - for(u32bit j = 0; j != 4; ++j) - salt[j] = (i >> 8) & 0xFF; - - encrypted_values.push_back(encryptor.encrypt(input, salt)); - } - - for(u32bit i = 0; i != encrypted_values.size(); ++i) - { - std::string ciphertext = encrypted_values[i]; - - // NOTE: same salt value as previous loop (index value) - for(u32bit j = 0; j != 4; ++j) - salt[j] = (i >> 8) & 0xFF; - - std::string output = encryptor.decrypt(ciphertext, salt); - - if(output != original_inputs[i]) - std::cout << "BOOM " << i << "\n"; - } - - Row_Encryptor test_pbkdf_salt_copy(secret_passphrase, - encryptor.get_pbkdf_salt()); - - zeroise(salt); - std::string test = test_pbkdf_salt_copy.decrypt(encrypted_values[0], salt); - if(test != original_inputs[0]) - std::cout << "PBKDF salt copy failed to decrypt properly\n"; - - return 0; - } diff --git a/src/botan/doc/examples/rsa_dec.cpp b/src/botan/doc/examples/rsa_dec.cpp deleted file mode 100644 index 81592328c..000000000 --- a/src/botan/doc/examples/rsa_dec.cpp +++ /dev/null @@ -1,129 +0,0 @@ -/* -* (C) 2002-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -/* -Decrypt an encrypted RSA private key. Then use that key to decrypt a -message. This program can decrypt messages generated by rsa_enc, and uses the -same key format as that generated by rsa_kgen. -*/ - -#include -#include -#include -#include - -#include -#include -#include -using namespace Botan; - -SecureVector b64_decode(const std::string&); -SymmetricKey derive_key(const std::string&, const SymmetricKey&, u32bit); - -const std::string SUFFIX = ".enc"; - -int main(int argc, char* argv[]) - { - if(argc != 4) - { - std::cout << "Usage: " << argv[0] << " keyfile messagefile passphrase" - << std::endl; - return 1; - } - - Botan::LibraryInitializer init; - - try - { - AutoSeeded_RNG rng; - - std::auto_ptr key( - PKCS8::load_key(argv[1], rng, argv[3])); - - RSA_PrivateKey* rsakey = dynamic_cast(key.get()); - if(!rsakey) - { - std::cout << "The loaded key is not a RSA key!\n"; - return 1; - } - - std::ifstream message(argv[2]); - if(!message) - { - std::cout << "Couldn't read the message file." << std::endl; - return 1; - } - - std::string outfile(argv[2]); - outfile = outfile.replace(outfile.find(SUFFIX), SUFFIX.length(), ""); - - std::ofstream plaintext(outfile.c_str(), std::ios::binary); - if(!plaintext) - { - std::cout << "Couldn't write the plaintext to " - << outfile << std::endl; - return 1; - } - - std::string enc_masterkey_str; - std::getline(message, enc_masterkey_str); - std::string mac_str; - std::getline(message, mac_str); - - SecureVector enc_masterkey = b64_decode(enc_masterkey_str); - - PK_Decryptor_EME decryptor(*rsakey, "EME1(SHA-1)"); - - SecureVector masterkey = decryptor.decrypt(enc_masterkey); - - SymmetricKey cast_key = derive_key("CAST", masterkey, 16); - InitializationVector iv = derive_key("IV", masterkey, 8); - SymmetricKey mac_key = derive_key("MAC", masterkey, 16); - - Pipe pipe(new Base64_Decoder, - get_cipher("CAST-128/CBC/PKCS7", cast_key, iv, DECRYPTION), - new Fork( - 0, - new Chain( - new MAC_Filter("HMAC(SHA-1)", mac_key, 12), - new Base64_Encoder - ) - ) - ); - - pipe.start_msg(); - message >> pipe; - pipe.end_msg(); - - std::string our_mac = pipe.read_all_as_string(1); - - if(our_mac != mac_str) - std::cout << "WARNING: MAC in message failed to verify\n"; - - plaintext << pipe.read_all_as_string(0); - } - catch(std::exception& e) - { - std::cout << "Exception caught: " << e.what() << std::endl; - return 1; - } - return 0; - } - -SecureVector b64_decode(const std::string& in) - { - Pipe pipe(new Base64_Decoder); - pipe.process_msg(in); - return pipe.read_all(); - } - -SymmetricKey derive_key(const std::string& param, - const SymmetricKey& masterkey, - u32bit outputlength) - { - std::auto_ptr kdf(get_kdf("KDF2(SHA-1)")); - return kdf->derive_key(outputlength, masterkey.bits_of(), param); - } diff --git a/src/botan/doc/examples/rsa_enc.cpp b/src/botan/doc/examples/rsa_enc.cpp deleted file mode 100644 index ac609c4b3..000000000 --- a/src/botan/doc/examples/rsa_enc.cpp +++ /dev/null @@ -1,151 +0,0 @@ -/* -* (C) 2002 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -/* - Grab an RSA public key from the file given as an argument, grab a message - from another file, and encrypt the message. - - Algorithms used: - RSA with EME1(SHA-1) padding to encrypt the master key - CAST-128 in CBC mode with PKCS#7 padding to encrypt the message. - HMAC with SHA-1 is used to authenticate the message - - The keys+IV used are derived from the master key (the thing that's encrypted - with RSA) using KDF2(SHA-1). The 3 outputs of KDF2 are parameterized by P, - where P is "CAST", "IV" or "MAC", in order to make each key/IV unique. - - The format is: - 1) First line is the master key, encrypted with the recipients public key - using EME1(SHA-1), and then base64 encoded. - 2) Second line is the first 96 bits (12 bytes) of the HMAC(SHA-1) of - the _plaintext_ - 3) Following lines are base64 encoded ciphertext (CAST-128 as described), - each broken after ~72 characters. -*/ - -#include -#include -#include -#include - -#include -#include -#include -using namespace Botan; - -std::string b64_encode(const SecureVector&); -SymmetricKey derive_key(const std::string&, const SymmetricKey&, u32bit); - -int main(int argc, char* argv[]) - { - if(argc != 3) - { - std::cout << "Usage: " << argv[0] << " keyfile messagefile" << std::endl; - return 1; - } - - std::ifstream message(argv[2], std::ios::binary); - if(!message) - { - std::cout << "Couldn't read the message file." << std::endl; - return 1; - } - - Botan::LibraryInitializer init; - - std::string output_name(argv[2]); - output_name += ".enc"; - std::ofstream ciphertext(output_name.c_str()); - if(!ciphertext) - { - std::cout << "Couldn't write the ciphertext to " << output_name - << std::endl; - return 1; - } - - try { - std::auto_ptr key(X509::load_key(argv[1])); - RSA_PublicKey* rsakey = dynamic_cast(key.get()); - if(!rsakey) - { - std::cout << "The loaded key is not a RSA key!\n"; - return 1; - } - - AutoSeeded_RNG rng; - - PK_Encryptor_EME encryptor(*rsakey, "EME1(SHA-1)"); - - /* Generate the master key (the other keys are derived from this) - - Basically, make the key as large as can be encrypted by this key, up - to a limit of 256 bits. For 512 bit keys, the master key will be >160 - bits. A >600 bit key will use the full 256 bit master key. - - In theory, this is not enough, because we derive 16+16+8=40 bytes of - secrets (if you include the IV) using the master key, so they are not - statistically indepedent. Practically speaking I don't think this is - a problem. - */ - SymmetricKey masterkey(rng, - std::min(32, - encryptor.maximum_input_size())); - - SymmetricKey cast_key = derive_key("CAST", masterkey, 16); - SymmetricKey mac_key = derive_key("MAC", masterkey, 16); - SymmetricKey iv = derive_key("IV", masterkey, 8); - - SecureVector encrypted_key = - encryptor.encrypt(masterkey.bits_of(), rng); - - ciphertext << b64_encode(encrypted_key) << std::endl; - - Pipe pipe(new Fork( - new Chain( - get_cipher("CAST-128/CBC/PKCS7", cast_key, iv, - ENCRYPTION), - new Base64_Encoder(true) // true == do linebreaking - ), - new Chain( - new MAC_Filter("HMAC(SHA-1)", mac_key, 12), - new Base64_Encoder - ) - ) - ); - - pipe.start_msg(); - message >> pipe; - pipe.end_msg(); - - /* Write the MAC as the second line. That way we can pull it off right - from the start, and feed the rest of the file right into a pipe on the - decrypting end. - */ - - ciphertext << pipe.read_all_as_string(1) << std::endl; - ciphertext << pipe.read_all_as_string(0); - } - catch(std::exception& e) - { - std::cout << "Exception: " << e.what() << std::endl; - } - return 0; - } - -std::string b64_encode(const SecureVector& in) - { - Pipe pipe(new Base64_Encoder); - pipe.process_msg(in); - return pipe.read_all_as_string(); - } - -SymmetricKey derive_key(const std::string& param, - const SymmetricKey& masterkey, - u32bit outputlength) - { - std::auto_ptr kdf(get_kdf("KDF2(SHA-1)")); - return kdf->derive_key(outputlength, masterkey.bits_of(), param); - } diff --git a/src/botan/doc/examples/rsa_kgen.cpp b/src/botan/doc/examples/rsa_kgen.cpp deleted file mode 100644 index a1f0fe71d..000000000 --- a/src/botan/doc/examples/rsa_kgen.cpp +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include -#include -#include -#include - -#include -#include -using namespace Botan; - -int main(int argc, char* argv[]) - { - if(argc != 2 && argc != 3) - { - std::cout << "Usage: " << argv[0] << " bitsize [passphrase]" - << std::endl; - return 1; - } - - const size_t bits = std::atoi(argv[1]); - if(bits < 1024 || bits > 16384) - { - std::cout << "Invalid argument for bitsize" << std::endl; - return 1; - } - - try - { - Botan::LibraryInitializer init; - - std::ofstream pub("rsapub.pem"); - std::ofstream priv("rsapriv.pem"); - if(!priv || !pub) - { - std::cout << "Couldn't write output files" << std::endl; - return 1; - } - - AutoSeeded_RNG rng; - - RSA_PrivateKey key(rng, bits); - pub << X509::PEM_encode(key); - - if(argc == 2) - priv << PKCS8::PEM_encode(key); - else - priv << PKCS8::PEM_encode(key, rng, argv[2]); - } - catch(std::exception& e) - { - std::cout << "Exception caught: " << e.what() << std::endl; - } - return 0; - } diff --git a/src/botan/doc/examples/rsa_manykey.cpp b/src/botan/doc/examples/rsa_manykey.cpp deleted file mode 100644 index e6a511753..000000000 --- a/src/botan/doc/examples/rsa_manykey.cpp +++ /dev/null @@ -1,42 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -/* -Generate a whole sequence of keys (for benchmarking) -*/ - -#include -#include -#include -#include -#include - -#include -#include -#include -using namespace Botan; - -int main() - { - Botan::LibraryInitializer init; - - AutoSeeded_RNG rng; - - for(u32bit j = 512; j <= 8192; j += 256) - { - std::cout << j << "..."; - - RSA_PrivateKey key(rng, j); - - std::ofstream priv(("rsa/" + to_string(j) + ".pem").c_str()); - priv << PKCS8::PEM_encode(key); - priv.close(); - - std::cout << " done" << std::endl; - } - - return 0; - } diff --git a/src/botan/doc/examples/self_sig.cpp b/src/botan/doc/examples/self_sig.cpp deleted file mode 100644 index 64b778b71..000000000 --- a/src/botan/doc/examples/self_sig.cpp +++ /dev/null @@ -1,69 +0,0 @@ -#include -#include -#include -#include -using namespace Botan; - -#include -#include -#include - -int main(int argc, char* argv[]) - { - if(argc != 7) - { - std::cout << "Usage: " << argv[0] - << " passphrase [CA|user] name country_code organization email" - << std::endl; - return 1; - } - - Botan::LibraryInitializer init; - - std::string CA_flag = argv[2]; - bool do_CA = false; - - if(CA_flag == "CA") do_CA = true; - else if(CA_flag == "user") do_CA = false; - else - { - std::cout << "Bad flag for CA/user switch: " << CA_flag << std::endl; - return 1; - } - - try - { - AutoSeeded_RNG rng; - - RSA_PrivateKey key(rng, 2048); - - std::ofstream priv_key("private.pem"); - priv_key << PKCS8::PEM_encode(key, rng, argv[1]); - - X509_Cert_Options opts; - - opts.common_name = argv[3]; - opts.country = argv[4]; - opts.organization = argv[5]; - opts.email = argv[6]; - /* Fill in other values of opts here */ - - //opts.xmpp = "lloyd@randombit.net"; - - if(do_CA) - opts.CA_key(); - - X509_Certificate cert = - X509::create_self_signed_cert(opts, key, "SHA-256", rng); - - std::ofstream cert_file("cert.pem"); - cert_file << cert.PEM_encode(); - } - catch(std::exception& e) - { - std::cout << "Exception: " << e.what() << std::endl; - return 1; - } - - return 0; - } diff --git a/src/botan/doc/examples/sig_gen.cpp b/src/botan/doc/examples/sig_gen.cpp deleted file mode 100644 index cf273216a..000000000 --- a/src/botan/doc/examples/sig_gen.cpp +++ /dev/null @@ -1,96 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -using namespace Botan; - -bool check(std::map); - -int main() - { - try { - Botan::LibraryInitializer init; - - std::ifstream in("SigGen.rsp"); - if(!in) - throw Exception("Can't open response file"); - - std::map inputs; - - while(in.good()) - { - std::string line; - std::getline(in, line); - - if(line == "" || line[0] == '[' || line[0] == '#') - continue; - - std::vector name_and_val = split_on(line, '='); - - if(name_and_val.size() != 2) - throw Decoding_Error("Unexpected input: " + line); - - name_and_val[0].erase(name_and_val[0].size()-1); - name_and_val[1].erase(0, 1); - - std::string name = name_and_val[0], value = name_and_val[1]; - - inputs[name] = value; - - if(name == "S") - { - bool result = check(inputs); - if(result == false) - { - std::cout << " Check failed\n"; - - std::map::const_iterator i; - - for(i = inputs.begin(); i != inputs.end(); i++) - std::cout << i->first << " = " << i->second << "\n"; - } - inputs["Msg"] = inputs["R"] = inputs["S"] = ""; - } - } - } - catch(std::exception& e) - { - std::cout << e.what() << std::endl; - return 1; - } - return 0; - } - -bool check(std::map inputs) - { - BigInt p("0x"+inputs["P"]), - q("0x"+inputs["Q"]), - g("0x"+inputs["G"]), - y("0x"+inputs["Y"]); - - DSA_PublicKey key(DL_Group(p, q, g), y); - - Pipe pipe(new Hex_Decoder); - - pipe.process_msg(inputs["Msg"]); - pipe.start_msg(); - pipe.write(inputs["R"]); - pipe.write(inputs["S"] ); - pipe.end_msg(); - - PK_Verifier verifier(key, "EMSA1(SHA-1)"); - - return verifier.verify_message(pipe.read_all(0), pipe.read_all(1)); - } diff --git a/src/botan/doc/examples/socket.h b/src/botan/doc/examples/socket.h deleted file mode 100644 index f7ce98fea..000000000 --- a/src/botan/doc/examples/socket.h +++ /dev/null @@ -1,257 +0,0 @@ -/* -* Unix Socket -* (C) 2004-2010 Jack Lloyd -* -* Released under the terms of the Botan license -*/ - -#ifndef SOCKET_WRAPPER_H__ -#define SOCKET_WRAPPER_H__ - -#include - -#if defined(_MSC_VER) - #define SOCKET_IS_WINSOCK 1 -#endif - -#if !defined(SOCKET_IS_WINSOCK) - #define SOCKET_IS_WINSOCK 0 -#endif - -#if SOCKET_IS_WINSOCK - #include - - typedef SOCKET socket_t; - const socket_t invalid_socket = INVALID_SOCKET; - #define socket_error_code WSAGetLastError() - typedef int ssize_t; - - class SocketInitializer - { - public: - SocketInitializer() - { - WSADATA wsadata; - WSAStartup(MAKEWORD(2, 2), &wsadata); - } - - ~SocketInitializer() - { - WSACleanup(); - } - }; -#else - #include - #include - #include - #include - #include - #include - #include - - typedef int socket_t; - const socket_t invalid_socket = -1; - #define socket_error_code errno - #define closesocket close - - class SocketInitializer {}; -#endif - -#if !defined(MSG_NOSIGNAL) - #define MSG_NOSIGNAL 0 -#endif - -#include - -class Socket - { - public: - size_t read(unsigned char[], size_t); - void write(const unsigned char[], size_t); - - std::string peer_id() const { return peer; } - - void close() - { - if(sockfd != invalid_socket) - { - if(::closesocket(sockfd) != 0) - throw std::runtime_error("Socket::close failed"); - sockfd = invalid_socket; - } - } - - Socket(socket_t fd, const std::string& peer_id = "") : - peer(peer_id), sockfd(fd) - { - } - - Socket(const std::string&, unsigned short); - ~Socket() { close(); } - private: - std::string peer; - socket_t sockfd; - }; - -class Server_Socket - { - public: - /** - * Accept a new connection - */ - Socket* accept() - { - socket_t retval = ::accept(sockfd, 0, 0); - if(retval == invalid_socket) - throw std::runtime_error("Server_Socket: accept failed"); - return new Socket(retval); - } - - void close() - { - if(sockfd != invalid_socket) - { - if(::closesocket(sockfd) != 0) - throw std::runtime_error("Server_Socket::close failed"); - sockfd = invalid_socket; - } - } - - Server_Socket(unsigned short); - ~Server_Socket() { close(); } - private: - socket_t sockfd; - }; - -/** -* Unix Socket Constructor -*/ -Socket::Socket(const std::string& host, unsigned short port) : peer(host) - { - sockfd = invalid_socket; - - hostent* host_addr = ::gethostbyname(host.c_str()); - - if(host_addr == 0) - throw std::runtime_error("Socket: gethostbyname failed for " + host); - if(host_addr->h_addrtype != AF_INET) // FIXME - throw std::runtime_error("Socket: " + host + " has IPv6 address"); - - socket_t fd = ::socket(PF_INET, SOCK_STREAM, 0); - if(fd == invalid_socket) - throw std::runtime_error("Socket: Unable to acquire socket"); - - sockaddr_in socket_info; - ::memset(&socket_info, 0, sizeof(socket_info)); - socket_info.sin_family = AF_INET; - socket_info.sin_port = htons(port); - - ::memcpy(&socket_info.sin_addr, - host_addr->h_addr, - host_addr->h_length); - - socket_info.sin_addr = *(struct in_addr*)host_addr->h_addr; // FIXME - - if(::connect(fd, (sockaddr*)&socket_info, sizeof(struct sockaddr)) != 0) - { - ::closesocket(fd); - throw std::runtime_error("Socket: connect failed"); - } - - sockfd = fd; - } - -/** -* Read from a Unix socket -*/ -size_t Socket::read(unsigned char buf[], size_t length) - { - if(sockfd == invalid_socket) - throw std::runtime_error("Socket::read: Socket not connected"); - - size_t got = 0; - - while(length) - { - ssize_t this_time = ::recv(sockfd, (char*)buf + got, - length, MSG_NOSIGNAL); - - if(this_time == 0) - break; - - if(this_time == -1) - { - if(socket_error_code == EINTR) - this_time = 0; - else - throw std::runtime_error("Socket::read: Socket read failed"); - } - - got += this_time; - length -= this_time; - } - return got; - } - -/** -* Write to a Unix socket -*/ -void Socket::write(const unsigned char buf[], size_t length) - { - if(sockfd == invalid_socket) - throw std::runtime_error("Socket::write: Socket not connected"); - - size_t offset = 0; - while(length) - { - ssize_t sent = ::send(sockfd, (const char*)buf + offset, - length, MSG_NOSIGNAL); - - if(sent == -1) - { - if(socket_error_code == EINTR) - sent = 0; - else - throw std::runtime_error("Socket::write: Socket write failed"); - } - - offset += sent; - length -= sent; - } - } - -/** -* Unix Server Socket Constructor -*/ -Server_Socket::Server_Socket(unsigned short port) - { - sockfd = invalid_socket; - - socket_t fd = ::socket(PF_INET, SOCK_STREAM, 0); - if(fd == invalid_socket) - throw std::runtime_error("Server_Socket: Unable to acquire socket"); - - sockaddr_in socket_info; - ::memset(&socket_info, 0, sizeof(socket_info)); - socket_info.sin_family = AF_INET; - socket_info.sin_port = htons(port); - - // FIXME: support limiting listeners - socket_info.sin_addr.s_addr = INADDR_ANY; - - if(::bind(fd, (sockaddr*)&socket_info, sizeof(struct sockaddr)) != 0) - { - ::closesocket(fd); - throw std::runtime_error("Server_Socket: bind failed"); - } - - if(::listen(fd, 100) != 0) // FIXME: totally arbitrary - { - ::closesocket(fd); - throw std::runtime_error("Server_Socket: listen failed"); - } - - sockfd = fd; - } - -#endif diff --git a/src/botan/doc/examples/stack.cpp b/src/botan/doc/examples/stack.cpp deleted file mode 100644 index 0c00ed183..000000000 --- a/src/botan/doc/examples/stack.cpp +++ /dev/null @@ -1,88 +0,0 @@ -/* -* (C) 2002 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -/* -An Botan example application showing how to use the pop and prepend -functions of Pipe. Based on the md5 example. It's output should always -be identical to such. -*/ - -#include -#include -#include - -int main(int argc, char* argv[]) - { - if(argc < 2) - { - std::cout << "Usage: " << argv[0] << " " << std::endl; - return 1; - } - - Botan::LibraryInitializer init; - - // this is a pretty vacuous example, but it's useful as a test - Botan::Pipe pipe; - - // CPS == Current Pipe Status, ie what Filters are set up - - pipe.prepend(new Botan::Hash_Filter("MD5")); - // CPS: MD5 - - pipe.prepend(new Botan::Hash_Filter("RIPEMD-160")); - // CPS: RIPEMD-160 | MD5 - - pipe.prepend(new Botan::Chain( - new Botan::Hash_Filter("RIPEMD-160"), - new Botan::Hash_Filter("RIPEMD-160"))); - // CPS: (RIPEMD-160 | RIPEMD-160) | RIPEMD-160 | MD5 - - pipe.pop(); // will pop everything inside the Chain as well as Chain itself - // CPS: RIPEMD-160 | MD5 - - pipe.pop(); // will get rid of the RIPEMD-160 Hash_Filter - // CPS: MD5 - - pipe.prepend(new Botan::Hash_Filter("SHA-1")); - // CPS: SHA-1 | MD5 - - pipe.append(new Botan::Hex_Encoder); - // CPS: SHA-1 | MD5 | Hex_Encoder - - pipe.prepend(new Botan::Hash_Filter("SHA-1")); - // CPS: SHA-1 | SHA-1 | MD5 | Hex_Encoder - - pipe.pop(); // Get rid of the Hash_Filter(SHA-1) - pipe.pop(); // Get rid of the other Hash_Filter(SHA-1) - // CPS: MD5 | Hex_Encoder - // The Hex_Encoder is safe because it is at the end of the Pipe, - // and pop() pulls off the Filter that is at the start. - - pipe.prepend(new Botan::Hash_Filter("RIPEMD-160")); - // CPS: RIPEMD-160 | MD5 | Hex_Encoder - - pipe.pop(); // Get rid of that last prepended Hash_Filter(RIPEMD-160) - // CPS: MD5 | Hex_Encoder - - int skipped = 0; - for(int j = 1; argv[j] != 0; j++) - { - std::ifstream file(argv[j], std::ios::binary); - if(!file) - { - std::cout << "ERROR: could not open " << argv[j] << std::endl; - skipped++; - continue; - } - pipe.start_msg(); - file >> pipe; - pipe.end_msg(); - file.close(); - pipe.set_default_msg(j-1-skipped); - std::cout << pipe << " " << argv[j] << std::endl; - } - return 0; - } diff --git a/src/botan/doc/examples/tls_client.cpp b/src/botan/doc/examples/tls_client.cpp deleted file mode 100644 index cedfe1ca8..000000000 --- a/src/botan/doc/examples/tls_client.cpp +++ /dev/null @@ -1,92 +0,0 @@ -#include -#include -#include "socket.h" - -using namespace Botan; - -#include -#include -#include -#include - -class Client_TLS_Policy : public TLS_Policy - { - public: - bool check_cert(const std::vector& certs) const - { - for(size_t i = 0; i != certs.size(); ++i) - { - std::cout << certs[i].to_string(); - } - - std::cout << "Warning: not checking cert signatures\n"; - - return true; - } - }; - -int main(int argc, char* argv[]) - { - if(argc != 2 && argc != 3) - { - printf("Usage: %s host [port]\n", argv[0]); - return 1; - } - - try - { - LibraryInitializer botan_init; - - std::string host = argv[1]; - u32bit port = argc == 3 ? Botan::to_u32bit(argv[2]) : 443; - - printf("Connecting to %s:%d...\n", host.c_str(), port); - - SocketInitializer socket_init; - - Socket sock(argv[1], port); - - AutoSeeded_RNG rng; - - Client_TLS_Policy policy; - - TLS_Client tls(std::tr1::bind(&Socket::read, std::tr1::ref(sock), _1, _2), - std::tr1::bind(&Socket::write, std::tr1::ref(sock), _1, _2), - policy, rng); - - printf("Handshake extablished...\n"); - -#if 0 - std::string http_command = "GET / HTTP/1.1\r\n" - "Server: " + host + ':' + to_string(port) + "\r\n\r\n"; -#else - std::string http_command = "GET / HTTP/1.0\r\n\r\n"; -#endif - - tls.write((const Botan::byte*)http_command.c_str(), - http_command.length()); - - size_t total_got = 0; - - while(true) - { - if(tls.is_closed()) - break; - - Botan::byte buf[128+1] = { 0 }; - size_t got = tls.read(buf, sizeof(buf)-1); - printf("%s", buf); - fflush(0); - - total_got += got; - } - - printf("\nRetrieved %d bytes total\n", total_got); - } - catch(std::exception& e) - { - printf("%s\n", e.what()); - return 1; - } - return 0; - } diff --git a/src/botan/doc/examples/tls_server.cpp b/src/botan/doc/examples/tls_server.cpp deleted file mode 100644 index 153b26d04..000000000 --- a/src/botan/doc/examples/tls_server.cpp +++ /dev/null @@ -1,104 +0,0 @@ -#include -#include - -#include -#include -#include - -#include "socket.h" - -using namespace Botan; - -#include -#include -#include -#include - -class Server_TLS_Policy : public TLS_Policy - { - public: - bool check_cert(const std::vector& certs) const - { - for(size_t i = 0; i != certs.size(); ++i) - { - std::cout << certs[i].to_string(); - } - - std::cout << "Warning: not checking cert signatures\n"; - - return true; - } - }; - -int main(int argc, char* argv[]) - { - int port = 4433; - - if(argc == 2) - port = to_u32bit(argv[1]); - - try - { - LibraryInitializer botan_init; - SocketInitializer socket_init; - - AutoSeeded_RNG rng; - - //RSA_PrivateKey key(rng, 1024); - DSA_PrivateKey key(rng, DL_Group("dsa/jce/1024")); - - X509_Cert_Options options( - "localhost/US/Syn Ack Labs/Mathematical Munitions Dept"); - - X509_Certificate cert = - X509::create_self_signed_cert(options, key, "SHA-1", rng); - - Server_Socket listener(port); - - Server_TLS_Policy policy; - - while(true) - { - try { - printf("Listening for new connection on port %d\n", port); - - Socket* sock = listener.accept(); - - printf("Got new connection\n"); - - TLS_Server tls( - std::tr1::bind(&Socket::read, std::tr1::ref(sock), _1, _2), - std::tr1::bind(&Socket::write, std::tr1::ref(sock), _1, _2), - policy, - rng, - cert, - key); - - std::string hostname = tls.requested_hostname(); - - if(hostname != "") - printf("Client requested host '%s'\n", hostname.c_str()); - - printf("Writing some text\n"); - - char msg[] = "Foo\nBar\nBaz\nQuux\n"; - tls.write((const Botan::byte*)msg, strlen(msg)); - - printf("Now trying a read...\n"); - - char buf[1024] = { 0 }; - u32bit got = tls.read((Botan::byte*)buf, sizeof(buf)-1); - printf("%d: '%s'\n", got, buf); - - tls.close(); - } - catch(std::exception& e) { printf("%s\n", e.what()); } - } - } - catch(std::exception& e) - { - printf("%s\n", e.what()); - return 1; - } - return 0; - } diff --git a/src/botan/doc/examples/toolbox.cpp b/src/botan/doc/examples/toolbox.cpp deleted file mode 100644 index 622a1f56f..000000000 --- a/src/botan/doc/examples/toolbox.cpp +++ /dev/null @@ -1,235 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include - -#if defined(BOTAN_HAS_COMPRESSOR_BZIP2) - #include -#endif - -#if defined(BOTAN_HAS_COMPRESSOR_ZLIB) - #include -#endif - -#include -#include - -using namespace Botan; - -#include "../../checks/getopt.h" - -class Encoder_Decoder - { - public: - Encoder_Decoder(const std::string& command, - bool decode, - const std::vector& args) : - type(command), - args(args), - decode(decode) - { } - - void run(std::istream& in, std::ostream& out) - { - Filter* filt = decode ? decoder(type) : encoder(type); - - DataSource_Stream src(in); - Pipe pipe(filt, new DataSink_Stream(out)); - pipe.process_msg(src); - } - - Filter* encoder(const std::string& type) const - { - if(type == "hex") return new Hex_Encoder; - if(type == "base64") return new Base64_Encoder; - -#if defined(BOTAN_HAS_COMPRESSOR_BZIP2) - if(type == "bzip2") return new Bzip_Compression; -#endif - -#if defined(BOTAN_HAS_COMPRESSOR_ZLIB) - if(type == "zlib") return new Zlib_Compression; -#endif - return 0; - } - - Filter* decoder(const std::string& type) const - { - if(type == "hex") return new Hex_Decoder; - if(type == "base64") return new Base64_Decoder; - -#if defined(BOTAN_HAS_COMPRESSOR_BZIP2) - if(type == "bzip2") return new Bzip_Decompression; -#endif - -#if defined(BOTAN_HAS_COMPRESSOR_ZLIB) - if(type == "zlib") return new Zlib_Decompression; -#endif - - return 0; - } - - private: - std::string type; - std::vector args; - bool decode; - }; - -void run_command(const std::string& command, - const std::vector& arguments, - const OptionParser& opts) - { - if(command == "hex" || - command == "base64" || - command == "bzip2" || - command == "zlib") - { - bool decode = opts.is_set("decode"); - - std::string output = opts.value_or_else("output", "-"); - std::string input = opts.value_or_else("input", "-"); - - Encoder_Decoder enc_dec(command, decode, arguments); - - try - { - if(output == "-") - { - if(input == "-") - enc_dec.run(std::cin, std::cout); - else - { - std::ifstream in(input.c_str()); - enc_dec.run(in, std::cout); - } - } - else // output != "-" - { - std::ofstream out(output.c_str()); - - if(input == "-") - enc_dec.run(std::cin, out); - else - { - std::ifstream in(input.c_str()); - enc_dec.run(in, out); - } - } - } - catch(Botan::Stream_IO_Error& e) - { - std::cout << "I/O failure - " << e.what() << '\n'; - } - } - else if(command == "hash" || - command == "sha1" || - command == "md5") - { - std::string hash; - - if(command == "md5") - hash = "MD5"; - if(command == "sha1") - hash = "SHA-160"; - else - hash = opts.value_or_else("hash", "SHA-160"); // sha1 is default - - Pipe pipe(new Hash_Filter(get_hash(hash)), - new Hex_Encoder(false, 0, Hex_Encoder::Lowercase)); - - for(size_t i = 0; i != arguments.size(); ++i) - { - std::string file_name = arguments[i]; - - u32bit previously = pipe.message_count(); - - if(file_name == "-") - { - pipe.start_msg(); - std::cin >> pipe; - pipe.end_msg(); - } - else - { - std::ifstream in(file_name.c_str()); - if(in) - { - pipe.start_msg(); - in >> pipe; - pipe.end_msg(); - } - else - std::cerr << "Could not read " << file_name << '\n'; - } - - if(pipe.message_count() > previously) - std::cout << pipe.read_all_as_string(Pipe::LAST_MESSAGE) << " " - << file_name << '\n'; - } - - } - else - { - std::cerr << "Command " << command << " not known\n"; - } - } - -int main(int argc, char* argv[]) - { - LibraryInitializer init; - - OptionParser opts("help|version|seconds=|" - "input=|output=|decode|" - "hash=|key="); - - try - { - opts.parse(argv); - } - catch(std::runtime_error& e) - { - std::cout << "Command line problem: " << e.what() << '\n'; - return 2; - } - - if(opts.is_set("version") || argc <= 1) - { - std::cerr << "Botan Toolbox v" << version_string() << '\n'; - std::cerr << "Commands: hash hex base64 "; -#if defined(BOTAN_HAS_COMPRESSOR_BZIP2) - std::cerr << "bzip2 "; -#endif - -#if defined(BOTAN_HAS_COMPRESSOR_ZLIB) - std::cerr << "zlib "; -#endif - - std::cerr << "\n"; - - return 0; - } - - if(opts.is_set("help")) - { - std::vector what = opts.leftovers(); - - for(size_t i = 0; i != what.size(); ++i) - std::cerr << what[i] << "? Never heard of it\n"; - return 0; - } - - std::vector args = opts.leftovers(); - - if(args.size() == 0) - return 0; - - std::string command = args[0]; - args.erase(args.begin()); - - run_command(command, args, opts); - - return 0; - } diff --git a/src/botan/doc/examples/tss.cpp b/src/botan/doc/examples/tss.cpp deleted file mode 100644 index 03d7699bf..000000000 --- a/src/botan/doc/examples/tss.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -namespace { - -void print(const Botan::SecureVector& r) - { - for(Botan::u32bit i = 0; i != r.size(); ++i) - printf("%02X", r[i]); - printf("\n"); - } - -} - -int main() - { - using namespace Botan; - - LibraryInitializer init; - - AutoSeeded_RNG rng; - - byte id[16]; - for(int i = 0; i != 16; ++i) - id[i] = i; - - const byte S2[] = { 0xDE, 0xAD, 0xCA, 0xFE, 0xBA, 0xBE, 0xBE, 0xEF }; - - std::vector shares = - RTSS_Share::split(4, 6, S2, sizeof(S2), id, rng); - - for(size_t i = 0; i != shares.size(); ++i) - std::cout << i << " = " << shares[i].to_string() << "\n"; - - print(RTSS_Share::reconstruct(shares)); - } diff --git a/src/botan/doc/faq.txt b/src/botan/doc/faq.txt deleted file mode 100644 index 9658621fe..000000000 --- a/src/botan/doc/faq.txt +++ /dev/null @@ -1,208 +0,0 @@ - -Frequently Asked Questions -======================================== - -What is this thing? ----------------------------------------- - -Botan is a library written in C++ which provides a fairly high level -and C++-ish interface to a number of different crypto algorithms. In -addition to the bare algorithms there is also support for number of -standards and de-facto standards like X.509v3 certificates, and -various useful constructs like format-preserving encryption, all or -nothing transforms, and secret splitting. - -.. _devel_vs_stable: - -Which release should I use? ----------------------------------------- - -The library is normally released along two different trees, termed -stable and development. The stable tree is a branch off the main line, -and typically only sees bug fixes; almost all new development occurs -in the unstable/development releases. The primary issue is not -stability of the program (bugs of course do occur, and are more likely -to occur in code that is more in flux), but rather stability of API -and ABI. In particular, you should not expect any level of ABI -stability between releases on the development branch, and API changes -may be made without notice. Feel free to send comments on API changes, -or API problems, to the list. - -If you don't want to have to worry about tracking a moving target, and -just want something that works, you'll probably prefer using the -stable releases. If you want to get the latest features, the -development releases are the obvious choice. - -If you want to ship a binary that is usable out of the box on a Linux -distro that ships botan, you'll probably want to match versions with -that distro; as of this writing most ship with 1.8. - -If you're building an application that will embed botan into it -(without relying on a shared library), you want to use an amalgamation -build, which basically turns botan into a single header and a single -source file which you can easily include in your existing application -build. In this case you can pick which ever tree you prefer. - -The self-test program can't locate the library ------------------------------------------------ - -Are you sure either the current working directory ('.') or the -directory botan is building into are in the dynamic library path? On -many Unix systems this is controlled by the ``LD_LIBRARY_PATH`` -variable. You can add the currently directory to the list of -directories to search with this Bourne shell command:: - - $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. - -If you install the library into a well known location like -``/usr/local/lib``, then probably no particular -``LD_LIBRARY_PATH`` needs to be set. - -My program aborts with any message ----------------------------------------- - -Does your main function wrap all code inside a try/catch block? If an -exception is thrown and is not caught, many C++ runtimes simply crash -the process without providing any sort of diagnostic. - -Is the library thread-safe? ----------------------------------------- - -Yes, botan is thread safe. However, because mutual exclusion depends -on OS specific code, you must load a module to help. POSIX threads and -Win32 critical sections are both supported out of the box, other -thread libraries are very easy to add. To enable thread safe -operation, include "thread_safe" in the string you pass to -``Botan::LibraryInitializer`` constructor. If for whatever reason a -working mutex implementation cannot be found, LibraryInitializer will -throw an exception rather than continue operating in a bad state. - -How do I load this key generated by OpenSSL into botan? --------------------------------------------------------- - -The encrypted key format used by the ``openssl`` command line tool is -undocumented and apparently specific to OpenSSL. The easiest approach -is to convert it to the (standard) PKCS #8 format, using:: - - openssl pkcs8 -topk8 -in my_key.pem - -Add ``-nocrypt`` to the command line if you want the resulting PKCS #8 -file to be unencrypted, otherwise it will ask you for a new password -to use. - -For unencrypted keys, you can also manually decode the parameters -using the existing PEM and BER support; see `this post -`_ -to the dev list for an example. - -Is botan FIPS 140 certified? ----------------------------------------- - -No version of botan has been certified under FIPS 140. This is -unlikely to happen unless/until an organization is willing to fund and -shepherd the validation process, which typically requires several -months and many thousands of dollars. - -Is this thing safe to use? ----------------------------------------- - -The primary author/maintainer (Jack Lloyd) has 5+ years of experience -reviewing code for security flaws, and has additionally performed -several FIPS 140 validations of hardware and software crypto -implementations. However the library has never undergone an -*impartial* third-party security review, and thus it is entirely -possible/probable that a number of exploitable flaws remain in the -source. (If your company is interested in handling such a review, -please contact the maintainers). - -There has been one known security flaw. Between versions 0.7.8 -(released Feb 2002) and 1.3.7 (released Dec 2003), the ``es_unix`` -module, which runs Unix programs to gather entropy for seeding a -random number generator, ran programs by invoking the ``popen`` -library function with commands with no leading directory names. This -means setuid or setgid programs that used this entropy source could be -tricked into executing arbitrary programs via manipulation of the PATH -variable. Later versions will only search through specific (presumed -safe) directories like ``/usr/bin``; the list of directories to search -can be controlled by the application. - -Is botan vulnerable to timing attacks? ----------------------------------------- - -Botan's public key implementations do make some attempt to defend -against timing attacks; random blinding is used to protect all RSA, -Rabin-Williams, ElGamal, and Diffie-Hellman private key operations. - -Public key algorithms implemented using the Chinese Remainder Theorem -(RSA and Rabin-Williams) are subject to a catastrophic failure: if a -computational error (either induced by an attacker or merely -accidental) occurs during the private key operation, the private key -can be revealed. Other, more subtle, fault attacks are possible against -other schemes. For this reason, private key operations are checked -for consistency with the public key - if the results are not -consistent, then an exception is thrown indicating an error has -occurred rather than release information that might compromise the -key. - -AES implementations are usually quite vulnerable to timing attacks. -The table based implementation of AES included in botan uses small -tables in the first and last rounds which makes such attacks somewhat -more difficult. Alternate implementations of AES using SSSE3 and -AES-NI instruction sets are also included, and run in constant time, -but of course require a processor that supports these instruction -sets. - -I think I've found a security flaw. What should I do? ------------------------------------------------------------- - -You can do any combination of: - -* Contact the current lead maintainer personally; currently - `Jack Lloyd `_ - (`personal PGP key `_) - -* Email the `development list - `_ - -* File a bug in `Bugzilla `_ - -Does botan support SSL/TLS, SSH, S/MIME, OpenPGP... ------------------------------------------------------------- - -Support for SSL/TLS is included in version 1.9.4 and later. Currently -SSLv3 and TLS 1.0 and 1.1 are supported. - -`NetSieben SSH `_ is an open -source SSHv2 implementation that uses botan. - -A preliminary and very incomplete implementation of CMS (the crypto -layer underlying S/MIME) is included in ``src/cms``, but it needs a -lot of love and attention before being truly useful. - -There is currently no support for OpenPGP. - -Will it work on my platform XYZ?? ----------------------------------------- - -The most common stumbling block is a compiler that is buggy or can't -handle modern C++ (specifically, C++98). Check out the :doc:`build log -` for a sense of which platforms are actively being tested. - -I'm not feeling this, what can I use instead? ------------------------------------------------------------- - -* `Crypto++ `_ is another C++ crypto - library. Its API is more heavily based on templates and in general - has a very different design philosophy from botan - so if you feel - botan's API is not a good match, you may well like Crypto++. - -* `OpenSSL `_ is written in C and mostly - targeted to being an SSL/TLS implementation but there is a lot of - other stuff in there as well. - -* `XySSL `_ is a C library - providing a very small footprint crypto library and SSL - implementation. - -* `Adam Shostack `_ maintains a - (somewhat out of date) list of open source crypto libraries. diff --git a/src/botan/doc/filters.txt b/src/botan/doc/filters.txt deleted file mode 100644 index 2355005aa..000000000 --- a/src/botan/doc/filters.txt +++ /dev/null @@ -1,780 +0,0 @@ - -Information Flow: Pipes and Filters -======================================== - -Many common uses of cryptography involve processing one or more -streams of data. Botan provides services that make setting up data -flows through various operations, such as compression, encryption, and -base64 encoding. Each of these operations is implemented in what are -called *filters* in Botan. A set of filters are created and placed into -a *pipe*, and information "flows" through the pipe until it reaches -the end, where the output is collected for retrieval. If you're -familiar with the Unix shell environment, this design will sound quite -familiar. - -Here is an example that uses a pipe to base64 encode some strings:: - - Pipe pipe(new Base64_Encoder); // pipe owns the pointer - pipe.start_msg(); - pipe.write("message 1"); - pipe.end_msg(); // flushes buffers, increments message number - - // process_msg(x) is start_msg() && write(x) && end_msg() - pipe.process_msg("message2"); - - std::string m1 = pipe.read_all_as_string(0); // "message1" - std::string m2 = pipe.read_all_as_string(1); // "message2" - -Bytestreams in the pipe are grouped into messages; blocks of data that -are processed in an identical fashion (ie, with the same sequence of -filter operations). Messages are delimited by calls to ``start_msg`` -and ``end_msg``. Each message in a pipe has its own identifier, which -currently is an integer that increments up from zero. - -The ``Base64_Encoder`` was allocated using ``new``; but where was it -deallocated? When a filter object is passed to a ``Pipe``, the pipe -takes ownership of the object, and will deallocate it when it is no -longer needed. - -There are two different ways to make use of messages. One is to send -several messages through a ``Pipe`` without changing the ``Pipe`` -configuration, so you end up with a sequence of messages; one use of -this would be to send a sequence of identically encrypted UDP packets, -for example (note that the *data* need not be identical; it is just -that each is encrypted, encoded, signed, etc in an identical -fashion). Another is to change the filters that are used in the -``Pipe`` between each message, by adding or removing filters; -functions that let you do this are documented in the Pipe API section. - -Botan has about 40 filters that perform different operations on data. -Here's code that uses one of them to encrypt a string with AES:: - - AutoSeeded_RNG rng, - SymmetricKey key(rng, 16); // a random 128-bit key - InitializationVector iv(rng, 16); // a random 128-bit IV - - // The algorithm we want is specified by a string - Pipe pipe(get_cipher("AES-128/CBC", key, iv, ENCRYPTION)); - - pipe.process_msg("secrets"); - pipe.process_msg("more secrets"); - - MemoryVector c1 = pipe.read_all(0); - - byte c2[4096] = { 0 }; - size_t got_out = pipe.read(c2, sizeof(c2), 1); - // use c2[0...got_out] - -Note the use of ``AutoSeeded_RNG``, which is a random number -generator. If you want to, you can explicitly set up the random number -generators and entropy sources you want to, however for 99% of cases -``AutoSeeded_RNG`` is preferable. - -``Pipe`` also has convenience methods for dealing with -``std::iostream``. Here is an example of those, using the -``Bzip_Compression`` filter (included as a module; if you have bzlib -available, check the build instructions for how to enable it) to -compress a file:: - - std::ifstream in("data.bin", std::ios::binary) - std::ofstream out("data.bin.bz2", std::ios::binary) - - Pipe pipe(new Bzip_Compression); - - pipe.start_msg(); - in >> pipe; - pipe.end_msg(); - out << pipe; - -However there is a hitch to the code above; the complete contents of -the compressed data will be held in memory until the entire message -has been compressed, at which time the statement ``out << pipe`` is -executed, and the data is freed as it is read from the pipe and -written to the file. But if the file is very large, we might not have -enough physical memory (or even enough virtual memory!) for that to be -practical. So instead of storing the compressed data in the pipe for -reading it out later, we divert it directly to the file:: - - std::ifstream in("data.bin", std::ios::binary) - std::ofstream out("data.bin.bz2", std::ios::binary) - - Pipe pipe(new Bzip_Compression, new DataSink_Stream(out)); - - pipe.start_msg(); - in >> pipe; - pipe.end_msg(); - -This is the first code we've seen so far that uses more than one -filter in a pipe. The output of the compressor is sent to the -``DataSink_Stream``. Anything written to a ``DataSink_Stream`` is -written to a file; the filter produces no output. As soon as the -compression algorithm finishes up a block of data, it will send it -along to the sink filter, which will immediately write it to the -stream; if you were to call ``pipe.read_all()`` after -``pipe.end_msg()``, you'd get an empty vector out. This is -particularly useful for cases where you are processing a large amount -of data, as it means you don't have to store everything in memory at -once. - -Here's an example using two computational filters:: - - AutoSeeded_RNG rng, - SymmetricKey key(rng, 32); - InitializationVector iv(rng, 16); - - Pipe encryptor(get_cipher("AES/CBC/PKCS7", key, iv, ENCRYPTION), - new Base64_Encoder); - - encryptor.start_msg(); - file >> encryptor; - encryptor.end_msg(); // flush buffers, complete computations - std::cout << encryptor; - -You can read from a pipe while you are still writing to it, which -allows you to bound the amount of memory that is in use at any one -time. A common idiom for this is:: - - pipe.start_msg(); - SecureBuffer buffer; - while(infile.good()) - { - infile.read((char*)&buffer[0], buffer.size()); - const size_t got_from_infile = infile.gcount(); - pipe.write(buffer, got_from_infile); - - if(infile.eof()) - pipe.end_msg(); - - while(pipe.remaining() > 0) - { - const size_t buffered = pipe.read(buffer, buffer.size()); - outfile.write((const char*)&buffer[0], buffered); - } - } - if(infile.bad() || (infile.fail() && !infile.eof())) - throw Some_Exception(); - -Fork ---------------------------------- - -It is common that you might receive some data and want to perform more -than one operation on it (ie, encrypt it with Serpent and calculate -the SHA-256 hash of the plaintext at the same time). That's where -``Fork`` comes in. ``Fork`` is a filter that takes input and passes it -on to *one or more* filters that are attached to it. ``Fork`` changes -the nature of the pipe system completely: instead of being a linked -list, it becomes a tree or acyclic graph. - -Each filter in the fork is given its own output buffer, and thus its -own message. For example, if you had previously written two messages -into a pipe, then you start a new one with a fork that has three -paths of filter's inside it, you add three new messages to the -pipe. The data you put into the pipe is duplicated and sent -into each set of filter and the eventual output is placed into a -dedicated message slot in the pipe. - -Messages in the pipe are allocated in a depth-first manner. This is only -interesting if you are using more than one fork in a single pipe. -As an example, consider the following:: - - Pipe pipe(new Fork( - new Fork( - new Base64_Encoder, - new Fork( - NULL, - new Base64_Encoder - ) - ), - new Hex_Encoder - ) - ); - -In this case, message 0 will be the output of the first -``Base64_Encoder``, message 1 will be a copy of the input (see below -for how fork interprets NULL pointers), message 2 will be the output -of the second ``Base64_Encoder``, and message 3 will be the output of -the ``Hex_Encoder``. This results in message numbers being allocated -in a top to bottom fashion, when looked at on the screen. However, -note that there could be potential for bugs if this is not -anticipated. For example, if your code is passed a filter, and you -assume it is a "normal" one that only uses one message, your message -offsets would be wrong, leading to some confusion during output. - -If Fork's first argument is a null pointer, but a later argument is -not, then Fork will feed a copy of its input directly through. Here's -a case where that is useful:: - - // have std::string ciphertext, auth_code, key, iv, mac_key; - - Pipe pipe(new Base64_Decoder, - get_cipher("AES-128", key, iv, DECRYPTION), - new Fork( - 0, // this message gets ciphertext - new MAC_Filter("HMAC(SHA-1)", mac_key) - ) - ); - - pipe.process_msg(ciphertext); - std::string plaintext = pipe.read_all_as_string(0); - SecureVector mac = pipe.read_all(1); - - if(mac != auth_code) - error(); - -Here we wanted to not only decrypt the message, but send the decrypted -text through an additional computation, in order to compute the -authentication code. - -Any filters that are attached to the pipe after the fork are -implicitly attached onto the first branch created by the fork. For -example, let's say you created this pipe:: - - Pipe pipe(new Fork(new Hash_Filter("SHA-256"), - new Hash_Filter("SHA-512")), - new Hex_Encoder); - -And then called ``start_msg``, inserted some data, then -``end_msg``. Then ``pipe`` would contain two messages. The first one -(message number 0) would contain the SHA-256 sum of the input in hex -encoded form, and the other would contain the SHA-512 sum of the input -in raw binary. In many situations you'll want to perform a sequence of -operations on multiple branches of the fork; in which case, use -the filter described in :ref:`chain`. - -.. _chain: - -Chain ---------------------------------- - -A ``Chain`` filter creates a chain of filters and encapsulates them -inside a single filter (itself). This allows a sequence of filters to -become a single filter, to be passed into or out of a function, or to -a ``Fork`` constructor. - -You can call ``Chain``'s constructor with up to four ``Filter`` -pointers (they will be added in order), or with an array of filter -pointers and a ``size_t`` that tells ``Chain`` how many filters are in -the array (again, they will be attached in order). Here's the example -from the last section, using chain instead of relying on the implicit -passthrough the other version used:: - - Pipe pipe(new Fork( - new Chain(new Hash_Filter("SHA-256"), new Hex_Encoder), - new Hash_Filter("SHA-512") - ) - ); - -Sources and Sinks ----------------------------------------- - -Data Sources -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -A ``DataSource`` is a simple abstraction for a thing that stores -bytes. This type is used heavily in the areas of the API related to -ASN.1 encoding/decoding. The following types are ``DataSource``: -``Pipe``, ``SecureQueue``, and a couple of special purpose ones: -``DataSource_Memory`` and ``DataSource_Stream``. - -You can create a ``DataSource_Memory`` with an array of bytes and a -length field. The object will make a copy of the data, so you don't -have to worry about keeping that memory allocated. This is mostly for -internal use, but if it comes in handy, feel free to use it. - -A ``DataSource_Stream`` is probably more useful than the memory based -one. Its constructors take either a ``std::istream`` or a -``std::string``. If it's a stream, the data source will use the -``istream`` to satisfy read requests (this is particularly useful to -use with ``std::cin``). If the string version is used, it will attempt -to open up a file with that name and read from it. - -Data Sinks -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -A ``DataSink`` (in ``data_snk.h``) is a ``Filter`` that takes -arbitrary amounts of input, and produces no output. This means it's -doing something with the data outside the realm of what -``Filter``/``Pipe`` can handle, for example, writing it to a file -(which is what the ``DataSink_Stream`` does). There is no need for -``DataSink``s that write to a ``std::string`` or memory buffer, -because ``Pipe`` can handle that by itself. - -Here's a quick example of using a ``DataSink``, which encrypts -``in.txt`` and sends the output to ``out.txt``. There is -no explicit output operation; the writing of ``out.txt`` is -implicit:: - - DataSource_Stream in("in.txt"); - Pipe pipe(get_cipher("AES-128/CTR-BE", key, iv), - new DataSink_Stream("out.txt")); - pipe.process_msg(in); - -A real advantage of this is that even if "in.txt" is large, only as -much memory is needed for internal I/O buffers will be used. - -The Pipe API ---------------------------------- - -Initializing Pipe -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -By default, ``Pipe`` will do nothing at all; any input placed into the -``Pipe`` will be read back unchanged. Obviously, this has limited -utility, and presumably you want to use one or more filters to somehow -process the data. First, you can choose a set of filters to initialize -the ``Pipe`` via the constructor. You can pass it either a set of up -to four filter pointers, or a pre-defined array and a length:: - - Pipe pipe1(new Filter1(/*args*/), new Filter2(/*args*/), - new Filter3(/*args*/), new Filter4(/*args*/)); - Pipe pipe2(new Filter1(/*args*/), new Filter2(/*args*/)); - - Filter* filters[5] = { - new Filter1(/*args*/), new Filter2(/*args*/), new Filter3(/*args*/), - new Filter4(/*args*/), new Filter5(/*args*/) /* more if desired... */ - }; - Pipe pipe3(filters, 5); - -This is by far the most common way to initialize a ``Pipe``. However, -occasionally a more flexible initialization strategy is necessary; -this is supported by 4 member functions. These functions may only be -used while the pipe in question is not in use; that is, either before -calling ``start_msg``, or after ``end_msg`` has been called (and no -new calls to ``start_msg`` have been made yet). - -.. cpp:function:: void Pipe::prepend(Filter* filter) - - Calling ``prepend`` will put the passed filter first in the list of - transformations. For example, if you prepend a filter implementing - encryption, and the pipe already had a filter that hex encoded the - input, then the next message processed would be first encrypted, - and *then* hex encoded. - -.. cpp:function:: void Pipe::append(Filter* filter) - - Like ``prepend``, but places the filter at the end of the message - flow. This doesn't always do what you expect if there is a fork. - -.. cpp:function:: void Pipe::pop() - - Removes the first filter in the flow. - -.. cpp:function:: void Pipe::reset() - - Removes all the filters that the pipe currently holds - it is reset - to an empty/no-op state. Any data that is being retained by the - pipe is retained after a ``reset``, and ``reset`` does not affect - message numbers (discussed later). - -Giving Data to a Pipe -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Input to a ``Pipe`` is delimited into messages, which can be read from -independently (ie, you can read 5 bytes from one message, and then all of -another message, without either read affecting any other messages). - -.. cpp:function:: void Pipe::start_msg() - - Starts a new message; if a message was already running, an exception is - thrown. After this function returns, you can call ``write``. - -.. cpp:function:: void Pipe::write(const byte* input, size_t length) - -.. cpp:function:: void Pipe::write(const MemoryRegion& input) - -.. cpp:function:: void Pipe::write(const std::string& input) - -.. cpp:function:: void Pipe::write(DataSource& input) - -.. cpp:function:: void Pipe::write(byte input) - - All versions of ``write`` write the input into the filter sequence. - If a message is not currently active, an exception is thrown. - -.. cpp:function:: void Pipe::end_msg() - - End the currently active message - -Sometimes, you may want to do only a single write per message. In this -case, you can use the ``process_msg`` series of functions, which start -a message, write their argument into the pipe, and then end the -message. In this case you would not make any explicit calls to -``start_msg``/``end_msg``. - -Pipes can also be used with the ``>>`` operator, and will accept a -``std::istream``, or on Unix systems with the ``fd_unix`` module, a -Unix file descriptor. In either case, the entire contents of the file -will be read into the pipe. - -Getting Output from a Pipe -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Retrieving the processed data from a pipe is a bit more complicated, -for various reasons. The pipe will separate each message into a -separate buffer, and you have to retrieve data from each message -independently. Each of the reader functions has a final parameter that -specifies what message to read from. If this parameter is set to -``Pipe::DEFAULT_MESSAGE``, it will read the current default message -(``DEFAULT_MESSAGE`` is also the default value of this parameter). - -Functions in ``Pipe`` related to reading include: - -.. cpp:function:: size_t Pipe::read(byte* out, size_t len) - - Reads up to ``len`` bytes into ``out``, and returns the number of - bytes actually read. - -.. cpp:function:: size_t Pipe::peek(byte* out, size_t len) - - Acts exactly like `read`, except the data is not actually read; the - next read will return the same data. - -.. cpp:function:: SecureVector Pipe::read_all() - - Reads the entire message into a buffer and returns it - -.. cpp:function:: std::string Pipe::read_all_as_string() - - Like ``read_all``, but it returns the data as a ``std::string``. - No encoding is done; if the message contains raw binary, so will - the string. - -.. cpp:function:: size_t Pipe::remaining() - - Returns how many bytes are left in the message - -.. cpp:function:: Pipe::message_id Pipe::default_msg() - - Returns the current default message number - -.. cpp:function:: Pipe::message_id Pipe::message_count() - - Returns the total number of messages currently in the pipe - -.. cpp:function:: Pipe::set_default_msg(Pipe::message_id msgno) - - Sets the default message number (which must be a valid message - number for that pipe). The ability to set the default message number - is particularly important in the case of using the file output - operations (``<<`` with a ``std::ostream`` or Unix file descriptor), - because there is no way to specify the message explicitly when using - the output operator. - -Pipe I/O for Unix File Descriptors -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -This is a minor feature, but it comes in handy sometimes. In all -installations of the library, Botan's ``Pipe`` object overloads the -``<<`` and ``>>`` operators for C++ iostream objects, -which is usually more than sufficient for doing I/O. - -However, there are cases where the iostream hierarchy does not map well to -local 'file types', so there is also the ability to do I/O directly with Unix -file descriptors. This is most useful when you want to read from or write to -something like a TCP or Unix-domain socket, or a pipe, since for simple file -access it's usually easier to just use C++'s file streams. - -If ``BOTAN_EXT_PIPE_UNIXFD_IO`` is defined, then you can use the -overloaded I/O operators with Unix file descriptors. For an example of this, -check out the ``hash_fd`` example, included in the Botan distribution. - -Filter Catalog ---------------------------------- - -This section documents most of the useful filters included in the -library. - -Keyed Filters -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -A few sections ago, it was mentioned that ``Pipe`` can process -multiple messages, treating each of them the same. Well, that was a -bit of a lie. There are some algorithms (in particular, block ciphers -not in ECB mode, and all stream ciphers) that change their state as -data is put through them. - -Naturally, you might well want to reset the keys or (in the case of -block cipher modes) IVs used by such filters, so multiple messages can -be processed using completely different keys, or new IVs, or new keys -and IVs, or whatever. And in fact, even for a MAC or an ECB block -cipher, you might well want to change the key used from message to -message. - -Enter ``Keyed_Filter``, which acts as an abstract interface for any -filter that is uses keys: block cipher modes, stream ciphers, MACs, -and so on. It has two functions, ``set_key`` and ``set_iv``. Calling -``set_key`` will set (or reset) the key used by the algorithm. Setting -the IV only makes sense in certain algorithms -- a call to ``set_iv`` -on an object that doesn't support IVs will cause an exception. You -must call ``set_key`` *before* calling ``set_iv``. - -Here's a example:: - - Keyed_Filter *aes, *hmac; - Pipe pipe(new Base64_Decoder, - // Note the assignments to the cast and hmac variables - aes = get_cipher("AES-128/CBC", aes_key, iv), - new Fork( - 0, // Read the section 'Fork' to understand this - new Chain( - hmac = new MAC_Filter("HMAC(SHA-1)", mac_key, 12), - new Base64_Encoder - ) - ) - ); - pipe.start_msg(); - // use pipe for a while, decrypt some stuff, derive new keys and IVs - pipe.end_msg(); - - aes->set_key(aes_key2); - aes->set_iv(iv2); - hmac->set_key(mac_key2); - - pipe.start_msg(); - // use pipe for some other things - pipe.end_msg(); - -There are some requirements to using ``Keyed_Filter`` that you must -follow. If you call ``set_key`` or ``set_iv`` on a filter that is -owned by a ``Pipe``, you must do so while the ``Pipe`` is -"unlocked". This refers to the times when no messages are being -processed by ``Pipe`` -- either before ``Pipe``'s ``start_msg`` is -called, or after ``end_msg`` is called (and no new call to -``start_msg`` has happened yet). Doing otherwise will result in -undefined behavior, probably silently getting invalid output. - -And remember: if you're resetting both values, reset the key *first*. - -Cipher Filters -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Getting a hold of a ``Filter`` implementing a cipher is very -easy. Make sure you're including the header ``lookup.h``, and -then call ``get_cipher``. You will pass the return value -directly into a ``Pipe``. There are a couple different functions -which do varying levels of initialization: - -.. cpp:function:: Keyed_Filter* get_cipher(std::string cipher_spec, \ - SymmetricKey key, InitializationVector iv, Cipher_Dir dir) - -.. cpp:function:: Keyed_Filter* get_cipher(std::string cipher_spec, \ - SymmetricKey key, Cipher_Dir dir) - -The version that doesn't take an IV is useful for things that don't -use them, like block ciphers in ECB mode, or most stream ciphers. If -you specify a cipher spec that does want a IV, and you use the version -that doesn't take one, an exception will be thrown. The ``dir`` -argument can be either ``ENCRYPTION`` or ``DECRYPTION``. - -The cipher_spec is a string that specifies what cipher is to be -used. The general syntax for "cipher_spec" is "STREAM_CIPHER", -"BLOCK_CIPHER/MODE", or "BLOCK_CIPHER/MODE/PADDING". In the case of -stream ciphers, no mode is necessary, so just the name is -sufficient. A block cipher requires a mode of some sort, which can be -"ECB", "CBC", "CFB(n)", "OFB", "CTR-BE", or "EAX(n)". The argument to -CFB mode is how many bits of feedback should be used. If you just use -"CFB" with no argument, it will default to using a feedback equal to -the block size of the cipher. EAX mode also takes an optional bit -argument, which tells EAX how large a tag size to use~--~generally -this is the size of the block size of the cipher, which is the default -if you don't specify any argument. - -In the case of the ECB and CBC modes, a padding method can also be -specified. If it is not supplied, ECB defaults to not padding, and CBC -defaults to using PKCS #5/#7 compatible padding. The padding methods -currently available are "NoPadding", "PKCS7", "OneAndZeros", and -"CTS". CTS padding is currently only available for CBC mode, but the -others can also be used in ECB mode. - -Some example "cipher_spec arguments are: "AES-128/CBC", -"Blowfish/CTR-BE", "Serpent/XTS", and "AES-256/EAX". - -"CTR-BE" refers to counter mode where the counter is incremented as if -it were a big-endian encoded integer. This is compatible with most -other implementations, but it is possible some will use the -incompatible little endian convention. This version would be denoted -as "CTR-LE" if it were supported. - -"EAX" is a new cipher mode designed by Wagner, Rogaway, and -Bellare. It is an authenticated cipher mode (that is, no separate -authentication is needed), has provable security, and is free from -patent entanglements. It runs about half as fast as most of the other -cipher modes (like CBC, OFB, or CTR), which is not bad considering you -don't need to use an authentication code. - -Hashes and MACs -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Hash functions and MACs don't need anything special when it comes to -filters. Both just take their input and produce no output until -``end_msg`` is called, at which time they complete the hash or MAC and -send that as output. - -These filters take a string naming the type to be used. If for some -reason you name something that doesn't exist, an exception will be thrown. - -.. cpp:function:: Hash_Filter::Hash_Filter(std::string hash, size_t outlen = 0) - - This constructor creates a filter that hashes its input with - ``hash``. When ``end_msg`` is called on the owning pipe, the hash is - completed and the digest is sent on to the next filter in the - pipeline. The parameter ``outlen`` specifies how many bytes of the - hash output will be passed along to the next filter when ``end_msg`` - is called. By default, it will pass the entire hash. - - Examples of names for ``Hash_Filter`` are "SHA-1" and "Whirlpool". - -.. cpp:function:: MAC_Filter::MAC_Filter(std::string mac, SymmetricKey key, size_t outlen = 0) - - This constructor takes a name for a mac, such as "HMAC(SHA-1)" or - "CMAC(AES-128)", along with a key to use. The optional ``outlen`` - works the same as in ``Hash_Filter``. - -PK Filters -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -There are four classes in this category, ``PK_Encryptor_Filter``, -``PK_Decryptor_Filter``, ``PK_Signer_Filter``, and -``PK_Verifier_Filter``. Each takes a pointer to an object of the -appropriate type (``PK_Encryptor``, ``PK_Decryptor``, etc) that is -deleted by the destructor. These classes are found in ``pk_filts.h``. - -Three of these, for encryption, decryption, and signing are much the -same in terms of dataflow - ach of them buffers its input until the -end of the message is marked with a call to the ``end_msg`` -function. Then they encrypt, decrypt, or sign the entire input as a -single blob and send the output (the ciphertext, the plaintext, or the -signature) into the next filter. - -Signature verification works a little differently, because it needs to -know what the signature is in order to check it. You can either pass -this in along with the constructor, or call the function -``set_signature`` -- with this second method, you need to keep -a pointer to the filter around so you can send it this command. In -either case, after ``end_msg`` is called, it will try to -verify the signature (if the signature has not been set by either -method, an exception will be thrown here). It will then send a single -byte onto the next filter -- a 1 or a 0, which specifies whether the -signature verified or not (respectively). - -For more information about PK algorithms (including creating the -appropriate objects to pass to the constructors), see :doc:`pubkey`. - -Encoders -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Often you want your data to be in some form of text (for sending over -channels that aren't 8-bit clean, printing it, etc). The filters -``Hex_Encoder`` and ``Base64_Encoder`` will convert arbitrary binary -data into hex or base64 formats. Not surprisingly, you can use -``Hex_Decoder`` and ``Base64_Decoder`` to convert it back into its -original form. - -Both of the encoders can take a few options about how the data should -be formatted (all of which have defaults). The first is a ``bool`` -which says if the encoder should insert line breaks. This defaults to -false. Line breaks don't matter either way to the decoder, but it -makes the output a bit more appealing to the human eye, and a few -transport mechanisms (notably some email systems) limit the maximum -line length. - -The second encoder option is an integer specifying how long such lines -will be (obviously this will be ignored if line-breaking isn't being -used). The default tends to be in the range of 60-80 characters, but -is not specified. If you want a specific value, set it. Otherwise the -default should be fine. - -Lastly, ``Hex_Encoder`` takes an argument of type ``Case``, which can -be ``Uppercase`` or ``Lowercase`` (default is ``Uppercase``). This -specifies what case the characters A-F should be output as. The base64 -encoder has no such option, because it uses both upper and lower case -letters for its output. - -You can find the declarations for these types in ``hex_filt.h`` and -``b64_filt.h``. - -Compressors -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -There are two compression algorithms supported by Botan, zlib and -bzip2. Only lossless compression algorithms are currently supported by -Botan, because they tend to be the most useful for -cryptography. However, it is very reasonable to consider supporting -something like GSM speech encoding (which is lossy), for use in -encrypted voice applications. - -You should always compress *before* you encrypt, because encryption seeks -to hide the redundancy that compression is supposed to try to find and remove. - -To test for Bzip2, check to see if ``BOTAN_HAS_COMPRESSOR_BZIP2`` is -defined. If so, you can include ``botan/bzip2.h``, which will declare -a pair of ``Filter`` objects: ``Bzip2_Compression`` and -``Bzip2_Decompression``. - -You should be prepared to take an exception when using the -decompressing filter, for if the input is not valid bzip2 data, that -is what you will receive. You can specify the desired level of -compression to ``Bzip2_Compression``'s constructor as an integer -between 1 and 9, 1 meaning worst compression, and 9 meaning the -best. The default is to use 9, since small values take the same amount -of time, just use a little less memory. - -Zlib compression works much like Bzip2 compression. The only -differences in this case are that the macro is -``BOTAN_HAS_COMPRESSOR_ZLIB``, the header you need to include is -called ``botan/zlib.h`` (remember that you shouldn't just ``#include -``, or you'll get the regular zlib API, which is not what you -want). The Botan classes for zlib compression/decompression are called -``Zlib_Compression`` and ``Zlib_Decompression``. - -Like Bzip2, a ``Zlib_Decompression`` object will throw an exception if -invalid (in the sense of not being in the Zlib format) data is passed -into it. - -While the zlib compression library uses the same compression algorithm -as the gzip and zip programs, the format is different. The zlib format -is defined in RFC 1950. - -Writing New Filters ---------------------------------- - -The system of filters and pipes was designed in an attempt to make it -as simple as possible to write new filter types. There are four -functions that need to be implemented by a class deriving from -``Filter``: - -.. cpp:function:: void Filter::write(const byte* input, size_t length) - - This function is what is called when a filter receives input for it - to process. The filter is not required to process the data right - away; many filters buffer their input before producing any output. A - filter will usually have ``write`` called many times during its - lifetime. - -.. cpp:function:: void Filter::send(byte* output, size_t length) - - Eventually, a filter will want to produce some output to send along - to the next filter in the pipeline. It does so by calling ``send`` - with whatever it wants to send along to the next filter. There is - also a version of ``send`` taking a single byte argument, as a - convenience. - -.. cpp:function:: void Filter::start_msg() - - Implementing this function is optional. Implement it if your filter - would like to do some processing or setup at the start of each - message, such as allocating a data structure. - -.. cpp:function:: void Filter::end_msg() - - Implementing this function is optional. It is called when it has - been requested that filters finish up their computations. The filter - should finish up with whatever computation it is working on (for - example, a compressing filter would flush the compressor and - ``send`` the final block), and empty any buffers in preparation for - processing a fresh new set of input. - -Additionally, if necessary, filters can define a constructor that -takes any needed arguments, and a destructor to deal with deallocating -memory, closing files, etc. - diff --git a/src/botan/doc/firststep.txt b/src/botan/doc/firststep.txt deleted file mode 100644 index fb4eb583e..000000000 --- a/src/botan/doc/firststep.txt +++ /dev/null @@ -1,107 +0,0 @@ - -Getting Started -======================================== - -All declarations in the library are contained within the namespace -``Botan``, so you need to either prefix types with ``Botan::`` or add -a ``using`` declaration in your code. All examples will assume a -``using`` declaration. - -All library headers are included like so:: - - #include - -Initializing the Library ----------------------------------------- - -There is a set of core services that the library needs access to while -it is performing requests. To ensure these are set up, you must create -an object of type - -.. cpp:class:: LibraryInitializer - -prior to making any other library calls. Typically this will be named -something like ``init`` or ``botan_init``. The object lifetime must -exceed that of all other Botan objects your application creates; for -this reason the best place to create the ``LibraryInitializer`` is at -the start of your ``main`` function, since this guarantees that it -will be created first and destroyed last (via standard C++ RAII -rules). The initializer does things like setting up the memory -allocation system and algorithm lookup tables, finding out if there is -a high resolution timer available to use, and similar such -matters. With no arguments, the library is initialized with various -default settings. So (unless you are writing threaded code; see -below), all you need is:: - - Botan::LibraryInitializer init; - -at the start of your ``main``. - -The constructor takes an optional string that specifies arguments. -Currently the only possible argument is "thread_safe", which must have -an boolean argument (for instance "thread_safe=false" or -"thread_safe=true"). If "thread_safe" is specified as true the library -will attempt to register a mutex type to properly guard access to -shared resources. However these locks do not protect individual Botan -objects: explicit locking must be used if you wish to share a single -object between threads. - -If you do not create a ``LibraryInitializer`` object, all library -operations will fail, because it will be unable to do basic things -like allocate memory or get random bits. You should never create more -than one ``LibraryInitializer``. - -Pitfalls ----------------------------------------- - -There are a few things to watch out for to prevent problems when using -the library. - -Never allocate any kind of Botan object globally. The problem with -doing this is that the constructor for such an object will be called -before the library is initialized. Many Botan objects will, in their -constructor, make one or more calls into the library global state -object. Access to this object is checked, so an exception should be -thrown (rather than a memory access violation or undetected -uninitialized object access). A rough equivalent that will work is to -keep a global pointer to the object, initializing it after creating -your ``LibraryInitializer``. Merely making the -``LibraryInitializer`` also global will probably not help, because -C++ does not make very strong guarantees about the order that such -objects will be created. - -The same rule applies for making sure the destructors of all your -Botan objects are called before the ``LibraryInitializer`` is -destroyed. This implies you can't have static variables that are Botan -objects inside functions or classes; in many C++ runtimes, these -objects will be destroyed after main has returned. - -The memory object classes (``MemoryRegion``, ``MemoryVector``, -``SecureVector``) are extremely primitive, and meant only for -secure storage of potentially sensitive data like keys. They do not -meet the requirements for an STL container object and you should not -try to use them with STL algorithms. For a general-purpose container, -use ``std::vector``. - -Use a ``try``/``catch`` block inside your ``main`` function, and catch -any ``std::exception`` throws (remember to catch by reference, as -``std::exception::what`` is polymorphic):: - - int main() - { - try - { - LibraryInitializer init; - - // ... - } - catch(std::exception& e) - { - std::cerr << e.what() << "\n"; - } - } - -This is not strictly required, but if you don't, and Botan throws an -exception, the runtime will call ``std::terminate``, which usually -calls ``abort`` or something like it, leaving you (or worse, a user of -your application) wondering what went wrong. diff --git a/src/botan/doc/fpe.txt b/src/botan/doc/fpe.txt deleted file mode 100644 index 5c035f0b7..000000000 --- a/src/botan/doc/fpe.txt +++ /dev/null @@ -1,58 +0,0 @@ - -Format Preserving Encryption -======================================== - -.. versionadded:: 1.9.17 - -Format preserving encryption (FPE) refers to a set of techniques for -encrypting data such that the ciphertext has the same format as the -plaintext. For instance, you can use FPE to encrypt credit card -numbers with valid checksums such that the ciphertext is also an -credit card number with a valid checksum, or similiarly for bank -account numbers, US Social Security numbers, or even more general -mappings like English words onto other English words. - -The scheme currently implemented in botan is called FE1, and described -in the paper `Format Preserving Encryption -`_ by Mihir Bellare, Thomas -Ristenpart, Phillip Rogaway, and Till Stegers. FPE is an area of -ongoing standardization and it is likely that other schemes will be -included in the future. - -To use FE1, use these functions, from ``fpe_fe1.h``: - -.. cpp:function:: BigInt FPE::fe1_encrypt(const BigInt& n, const BigInt& X, \ - const SymmetricKey& key, const MemoryRegion& tweak) - - Encrypts the value *X* modulo the value *n* using the *key* and - *tweak* specified. Returns an integer less than *n*. The *tweak* is - a value that does not need to be secret that parameterizes the - encryption function. For instance, if you were encrypting a - database column with a single key, you could use a per-row-unique - integer index value as the tweak. - - To encrypt an arbitrary value using FE1, you need to use a ranking - method. Basically, the idea is to assign an integer to every value - you might encrypt. For instance, a 16 digit credit card number - consists of a 15 digit code plus a 1 digit checksum. So to encrypt - a credit card number, you first remove the checksum, encrypt the 15 - digit value modulo 10\ :sup:`15`, and then calculate what the - checksum is for the new (ciphertext) number. - -.. cpp:function:: BigInt FPE::fe1_decrypt(const BigInt& n, const BigInt& X, \ - const SymmetricKey& key, const MemoryRegion& tweak) - - Decrypts an FE1 ciphertext produced by :cpp:func:`fe1_encrypt`; the - *n*, *key* and *tweak* should be the same as that provided to the - encryption function. Returns the plaintext. - - Note that there is not any implicit authentication or checking of - data, so if you provide an incorrect key or tweak the result is - simply a random integer. - -This example encrypts a credit card number with a valid -`Luhn checksum `_ to -another number with the same format, including a correct checksum. - -.. literalinclude:: examples/fpe.cpp - diff --git a/src/botan/doc/indent.el b/src/botan/doc/indent.el deleted file mode 100644 index 7fa2540b0..000000000 --- a/src/botan/doc/indent.el +++ /dev/null @@ -1,55 +0,0 @@ -; This Emacs Lips code defines the indentation style used in Botan. If doesn't -; get everything perfectly correct, but it's pretty close. Copy this code into -; your .emacs file, or use M-x eval-buffer. Make sure to also set -; indent-tabs-mode to nil so spaces are inserted instead. -; -; This style is basically Whitesmiths style with 3 space indents (the Emacs -; "whitesmith" style seems more like a weird Whitesmiths/Allman mutant style). -; -; To activate using this style, open the file you want to edit and run this: -; M-x c-set-style and then enter "botan". - -(setq botan-style '( - (c-basic-offset . 3) - (c-comment-only-line-offset . 0) - (c-offsets-alist - (c . 0) - (comment-intro . 0) - - (statement-block-intro . 0) - (statement-cont . +) - - (substatement . +) - (substatement-open . +) - - (block-open . +) - (block-close . 0) - - (defun-open . +) - (defun-close . 0) - (defun-block-intro . 0) - (func-decl-cont . +) - - (class-open . +) - (class-close . +) - (inclass . +) - (access-label . -) - (inline-open . +) - (inline-close . 0) - - (extern-lang-open . 0) - (extern-lang-close . 0) - (inextern-lang . 0) - - (statement-case-open +) - - (namespace-open . 0) - (namespace-close . 0) - (innamespace . 0) - - (label . 0) - ) -)) - -(add-hook 'c++-mode-common-hook - (function (lambda () (c-add-style "botan" botan-style nil)))) diff --git a/src/botan/doc/index.txt b/src/botan/doc/index.txt deleted file mode 100644 index 75e2ca434..000000000 --- a/src/botan/doc/index.txt +++ /dev/null @@ -1,69 +0,0 @@ - -Welcome -======================================== - -Botan is a :doc:`BSD-licensed ` crypto library for C++. It -provides applications with most any :doc:`cryptographic algorithm -` you might be looking for, along with :doc:`SSL/TLS `, -:doc:`X.509 certificates and CRLs `, a :doc:`pipeline-style -message processing system `, and a wide variety of other -features. A third party open source implementation of `SSHv2 -`_ that uses botan is also -available. In addition to C++ you can use botan from :doc:`Python -` or Perl, though the current bindings only wrap portions of -the library. - -See the :doc:`faq` for a list of common questions and answers. - -.. only:: html and website - - See :doc:`download` for information about getting the latest version. - -The core of botan is written in C++98 with no dependencies besides the -STL and the rest of the ISO standard library, but the library also -includes optional modules which make further assumptions about their -environment, providing features such as compression (using zlib or -bzip2), entropy gathering, and secure memory allocation. Assembly -implementations of key algorithms like SHA-1 and multiple precision -integer routines for x86 and x86-64 processors are also included. - -It runs on most common operating systems and can be used with a number -of different commercial and open source compilers. The :doc:`build log -` contains information about recently tested targets. It is -already included in most major package distributions, including -\ -`Fedora `_, -`EPEL `_ (for RHEL/CentOS), -`Debian `_, -`Ubuntu `_, -`Gentoo `_, -`Arch Linux `_, -`Slackbuild `_, -`FreeBSD `_, -`NetBSD `_, -`Cygwin `_, -`MacPorts `_, -`OpenPKG `_, and -`T2 SDE `_ and has -more than a few :doc:`known users `. - -It was started as a personal project by `Jack Lloyd -`_,who continues to be the maintainer and -release manager. Since the first release in 2001, a number of -:doc:`individuals and organizations ` have contributed bug -fixes and new features. Check out the :doc:`release notes ` and -`news archive `_ for more project -history. - -If you need help or have questions, send a mail to the `development -mailing list -`_. -"Philosophical" bug reports, announcements of programs using the -library, and related topics are also welcome. :doc:`Commercial support -options ` are also available. If you find what you believe to -be a bug, please file a ticket in `Bugzilla -`_. - -A useful reference while reading this manual is the `Doxygen -documentation `_. - diff --git a/src/botan/doc/kdf.txt b/src/botan/doc/kdf.txt deleted file mode 100644 index da916dcb3..000000000 --- a/src/botan/doc/kdf.txt +++ /dev/null @@ -1,37 +0,0 @@ - -.. _key_derivation_function: - -Key Derivation Functions -======================================== - -Key derivation functions are used to turn some amount of shared secret -material into uniform random keys suitable for use with symmetric -algorithms. An example of an input which is useful for a KDF is a -shared secret created using Diffie-Hellman key agreement. - -.. cpp:class:: KDF - - .. cpp:function:: SecureVector derive_key( \ - size_t key_len, const MemoryRegion& secret, \ - const std::string& salt = "") const - - .. cpp:function:: SecureVector derive_key( \ - size_t key_len, const MemoryRegion& secret, \ - const MemoryRegion& salt) const - - .. cpp:function:: SecureVector derive_key( \ - size_t key_len, const MemoryRegion& secret, \ - const byte* salt, size_t salt_len) const - - .. cpp:function:: SecureVector derive_key( \ - size_t key_len, const byte* secret, size_t secret_len, \ - const std::string& salt) const - - All variations on the same theme. Deterministically creates a - uniform random value from *secret* and *salt*. Typically *salt* is - a lable or identifier, such as a session id. - -You can create a :cpp:class:`KDF` using - -.. cpp:function:: KDF* get_kdf(const std::string& algo_spec) - diff --git a/src/botan/doc/license.txt b/src/botan/doc/license.txt deleted file mode 100644 index aefcee395..000000000 --- a/src/botan/doc/license.txt +++ /dev/null @@ -1,49 +0,0 @@ - -.. _license: -.. highlight:: none - -License -======================================== - -Botan (http://botan.randombit.net/) is distributed under these terms:: - - Copyright (C) 1999-2011 Jack Lloyd - 2001 Peter J Jones - 2004-2007 Justin Karneges - 2004 Vaclav Ovsik - 2005 Matthew Gregan - 2005-2006 Matt Johnston - 2006 Luca Piccarreta - 2007 Yves Jerschow - 2007-2008 FlexSecure GmbH - 2007-2008 Technische Universitat Darmstadt - 2007-2008 Falko Strenzke - 2007-2008 Martin Doering - 2007 Manuel Hartl - 2007 Christoph Ludwig - 2007 Patrick Sona - 2010 Olivier de Gaalon - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions, and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions, and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) "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(S) OR CONTRIBUTOR(S) 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. diff --git a/src/botan/doc/log.txt b/src/botan/doc/log.txt deleted file mode 100644 index a7d014500..000000000 --- a/src/botan/doc/log.txt +++ /dev/null @@ -1,2337 +0,0 @@ - -.. _relnotes: - -Release Notes -======================================== - -Series 1.10 ----------------------------------------- - -Version 1.10.10, 2015-08-03 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* SECURITY: The BER decoder would crash due to reading from offset 0 - of an empty vector if it encountered a BIT STRING which did not - contain any data at all. As the type requires a 1 byte field this is - not valid BER but could occur in malformed data. Found with afl. - -* SECURITY: The BER decoder would allocate a fairly arbitrary amount - of memory in a length field, even if there was no chance the read - request would succeed. This might cause the process to run out of - memory or invoke the OOM killer. Found with afl. - -* Due to an ABI incompatible (though not API incompatible) change in - this release, the version number of the shared object has been - increased. - -* The default TLS policy no longer allows RC4. - -* Fix a signed integer overflow in Blue Midnight Wish that may cause - incorrect computations or undefined behavior. - -Version 1.10.9, 2014-12-13 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixed EAX tag verification to run in constant time - -* The default TLS policy now disables SSLv3. - -* A crash could occur when reading from a blocking random device if - the device initially indicated that entropy was available but - a concurrent process drained the entropy pool before the - read was initiated. - -* Fix decoding indefinite length BER constructs that contain a context - sensitive tag of zero. Github pull 26 from Janusz Chorko. - -* The `botan-config` script previously tried to guess its prefix from - the location of the binary. However this was error prone, and now - the script assumes the final installation prefix matches the value - set during the build. Github issue 29. - -Version 1.10.8, 2014-04-10 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fix a bug in primality testing introduced in 1.8.3 which caused only - a single random base, rather than a sequence of random bases, to be - used in the Miller-Rabin test. This increased the probability that a - non-prime would be accepted, for instance a 1024 bit number would be - incorrectly classed as prime with probability around 2^-40. Reported - by Jeff Marrison. - -* The key length limit on HMAC has been raised to 512 bytes, allowing - the use of very long passphrases with PBKDF2. - -Version 1.10.7, 2013-12-29 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* OAEP had two bugs, one of which allowed it to be used even if the - key was too small, and the other of which would cause a crash during - decryption if the EME data was too large for the associated key. - -Version 1.10.6, 2013-11-10 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* The device reading entropy source now attempts to read from all - available devices. Previously it would break out early if a partial - read from a blocking source occured, not continuing to read from a - non-blocking device. This would cause the library to fall back on - slower and less reliable techniques for collecting PRNG seed - material. Reported by Rickard Bellgrim. - -* HMAC_RNG (the default PRNG implementation) now automatically reseeds - itself periodically. Previously reseeds only occured on explicit - application request. - -* Fix an encoding error in EC_Group when encoding using EC_DOMPAR_ENC_OID. - Reported by fxdupont on github. - -* In EMSA2 and Randpool, avoid calling name() on objects after deleting them if - the provided algorithm objects are not suitable for use. Found by Clang - analyzer, reported by Jeffrey Walton. - -* If X509_Store was copied, the u32bit containing how long to cache validation - results was not initialized, potentially causing results to be cached for - significant amounts of time. This could allow a certificate to be considered - valid after its issuing CA's cert expired. Expiration of the end-entity cert - is always checked, and reading a CRL always causes the status to be reset, so - this issue does not affect revocation. Found by Coverity scanner. - -* Avoid off by one causing a potentially unterminated string to be passed to - the connect system call if the library was configured to use a very long path - name for the EGD socket. Found by Coverity Scanner. - -* In PK_Encryptor_EME, PK_Decryptor_EME, PK_Verifier, and PK_Key_Agreement, - avoid dereferencing an unitialized pointer if no engine supported operations - on the key object given. Found by Coverity scanner. - -* Avoid leaking a file descriptor in the /dev/random and EGD entropy sources if - stdin (file descriptor 0) was closed. Found by Coverity scanner. - -* Avoid a potentially undefined operation in the bit rotation operations. Not - known to have caused problems under any existing compiler, but might have - caused problems in the future. Caught by Clang sanitizer, reported by Jeffrey - Walton. - -* Increase default hash iterations from 10000 to 50000 in PBES1 and PBES2 - -* Add a fix for mips64el builds from Brad Smith. - -Version 1.10.5, 2013-03-02 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* A potential crash in the AES-NI implementation of the AES-192 key - schedule (caused by misaligned loads) has been fixed. - -* A previously conditional operation in Montgomery multiplication and - squaring is now always performed, removing a possible timing - channel. - -* Use correct flags for creating a shared library on OS X under Clang. - -* Fix a compile time incompatability with Visual C++ 2012 - -Version 1.10.4, 2013-01-07 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Avoid a conditional operation in the power mod implementations on if - a nibble of the exponent was zero or not. This may help protect - against certain forms of side channel attacks. - -* The SRP6 code was checking for invalid values as specified in RFC - 5054, specifically values equal to zero mod p. However SRP would - accept negative A/B values, or ones larger than p, neither of which - should occur in a normal run of the protocol. These values are now - rejected. Credits to Timothy Prepscius for pointing out these values - are not normally used and probably signal something fishy. - -* The return value of version_string is now a compile time constant - string, so version information can be more easily extracted from - binaries. - -Version 1.10.3, 2012-07-10 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* A change in 1.10.2 accidentally broke ABI compatibility with 1.10.1 - and earlier versions, causing programs compiled against 1.10.1 to - crash if linked with 1.10.2 at runtime. - -* Recent versions of OpenSSL include extra information in ECC private - keys, the presence of which caused an exception when such a key was - loaded by botan. The decoding of ECC private keys has been changed - to ignore these fields if they are set. - -Version 1.10.2, 2012-06-17 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* To protect clients against renegotiation attacks, the TLS client - now sends the renegotiation extension SCSV. - -* TLS renegotiation is completely disabled in this release. All hello - requests, and all client hellos after the initial negotiation, are - ignored. - -* Fix bugs in TLS affecting DSA servers. - -* Pipe::reset no longer requires that message processing be completed, - a requirement that caused problems when a Filter's end_msg call - threw an exception, after which point the Pipe object was no longer - usable. - -* Add support for the rdrand instruction introduced in Intel's Ivy - Bridge processors. - -* CPUID::has_rdrand was checking the wrong cpuid bit, and would false - positive on AMD Bulldozer processors. - -* Add the Camellia block cipher - -* An implementation of SRP-6a compatible with the specification in - RFC 5054 is now available in srp6.h - -* The exception catching syntax of configure.py has been changed to - the Python 3.x syntax. This syntax also works with Python 2.6 and - 2.7, but not with any earlier Python 2 release. A simple search and - replace will allow running it under Python 2.5:: - perl -pi -e 's/except (.*) as (.*):/except $1, $2:/g' configure.py - -* If clock_gettime is available on the system, poll all available - clock types in the hres_timer poll. - -* Add AltiVec detection for IBM POWER7 processors. - -* Add AltiVec detection for OpenBSD, contributed by Brad Smith (PR 162) - -* Add Google's Native Client as an compile target - -* The Qt mutex wrapper was broken and would not compile with any recent - version of Qt. It has been removed. - -* If targetting GCC on a Windows system, configure.py will warn that - likely you wanted to configure for either MinGW or Cygwin, not the - generic Windows target which is oriented to Win32 plus the Visual - C++ runtime. - -* Fixed a compilation problem of the dynamic loader hooks under MinGW GCC - -* Don't set a soname on OpenBSD, as it doesn't support it (PR 158) - -* Fix a configure.py incompatability with the subprocess module - included in Python 3.1 (PR 157) - -* A bug in configure.py would cause it to interpret `--cpu=s390x` as - `s390`. This may have affected other CPUs as well. Now configure.py - searches for an exact match, and only if no exact match is found - will it search for substring matches. - -Version 1.10.1, 2011-07-11 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* A race condition in `Algorithm_Factory` could cause crashes in - multithreaded code. See `this thread on botan-devel - `_ - for details and workarounds. - -* The return value of ``name`` has changed for GOST 28147-89 and - Skein-512. GOST's ``name`` now includes the name of the sbox, and - Skein's includes the personalization string (if nonempty). This - allows an object to be properly roundtripped, which is necessary to - fix the race condition described above. - -* A new distribution script is now included, as - ``src/build-data/scripts/dist.py`` - -* The ``build.h`` header now includes, if available, an identifier of - the source revision that was used. This identifier is also included - in the result of ``version_string``. - -Version 1.10.0, 2011-06-20 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Detection for the rdrand instruction being added to upcoming Intel - Ivy Bridge processors has been added. - -* A template specialization of std::swap was added for the memory - container types. - -Series 1.9 ----------------------------------------- - -Version 1.9.18, 2011-06-03 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fourth release candidate for 1.10.0 - -* The GOST 34.10 verification operation was not ensuring that s and r - were both greater than zero. This could potentially have meant it - would have accepted an invalid all-zero signature as valid for any - message. Due to how ECC points are internally represented it instead - resulted in an exception being thrown. - -* A simple multiexponentation algorithm is now used in ECDSA and - GOST-34.10 signature verification, leading to 20 to 25% improvements - in ECDSA and 25% to 40% improvements in GOST-34.10 verification - performance. - -* The internal representation of elliptic curve points has been - modified to use Montgomery representation exclusively, resulting in - reduced memory usage and a 10 to 20% performance improvement for - ECDSA and ECDH. - -* In OAEP decoding, scan for the delimiter bytes using a loop that is - written without conditionals so as to help avoid timing analysis. - Unfortunately GCC at least is 'smart' enough to compile it to - jumps anyway. - -* The SSE2 implementation of IDEA did not work correctly when compiled - by Clang, because the trick it used to emulate a 16 bit unsigned - compare in SSE (which doesn't contain one natively) relied on signed - overflow working in the 'usual' way. A different method that doesn't - rely on signed overflow is now used. - -* Add support for compiling SSL using Visual C++ 2010's TR1 - implementation. - -* Fix a bug under Visual C++ 2010 which would cause ``hex_encode`` to - crash if given a zero-sized input to encode. - -* A new build option ``--via-amalgamation`` will first generate the - single-file amalgamation, then build the library from that single - file. This option requires a lot of memory and does not parallelize, - but the resulting library is smaller and may be faster. - -* On Unix, the library and header paths have been changed to allow - parallel installation of different versions of the library. Headers - are installed into ``/include/botan-1.9/botan``, libraries - are named ``libbotan-1.9``, and ``botan-config`` is now namespaced - (so in this release ``botan-config-1.9``). All of these embedded - versions will be 1.10 in the upcoming stable release. - -* The soname system has been modified. In this release the library - soname is ``libbotan-1.9.so.0``, with the full library being named - ``libbotan-1.9.so.0.18``. The ``0`` is the ABI version, and will be - incremented whenever a breaking ABI change is made. - -* TR1 support is not longer automatically assumed under older versions - of GCC - -* Functions for base64 decoding that work standalone (without needing - to use a pipe) have been added to ``base64.h`` - -* The function ``BigInt::to_u32bit`` was inadvertently removed in 1.9.11 - and has been added back. - -* The function ``BigInt::get_substring`` did not work correctly with a - *length* argument of 32. - -* The implementation of ``FD_ZERO`` on Solaris uses ``memset`` and - assumes the caller included ``string.h`` on its behalf. Do so to - fix compilation in the ``dev_random`` and ``unix_procs`` entropy - sources. Patch from Jeremy C. Reed. - -* Add two different configuration targets for Atom, since some are - 32-bit and some are 64-bit. The 'atom' target now refers to the - 64-bit implementations, use 'atom32' to target the 32-bit - processors. - -* The (incomplete) support for CMS and card verifiable certificates - are disabled by default; add ``--enable-modules=cms`` or - ``--enable-modules=cvc`` during configuration to turn them back on. - -Version 1.9.17, 2011-04-29 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Third release candidate for 1.10.0 - -* The format preserving encryption method currently available was - presented in the header ``fpe.h`` and the functions ``fpe_encrypt`` - and ``fpe_decrypt``. These were renamed as it is likely that other - FPE schemes will be included in the future. The header is now - ``fpe_fe1.h``, and the functions are named ``fe1_encrypt`` and - ``fe1_decrypt``. See :doc:`fpe` for more information. - -* New options to ``configure.py`` control what tools are used for - documentation generation. The ``--with-sphinx`` option enables using - Sphinx to convert ReST into HTML; otherwise the ReST sources are - installed directly. If ``--with-doxygen`` is used, Doxygen will run - as well. Documentation generation can be triggered via the ``docs`` - target in the makefile; it will also be installed by the install - target on Unix. - -* A bug in 1.9.16 effectively disabled support for runtime CPU feature - detection on x86 under GCC in that release. - -* A mostly internal change, all references to "ia32" and "amd64" have - been changed to the vendor neutral and probably easier to understand - "x86-32" and "x86-64". For instance, the "mp_amd64" module has been - renamed "mp_x86_64", and the macro indicating x86-32 has changed - from ``BOTAN_TARGET_ARCH_IS_IA32`` to - ``BOTAN_TARGET_ARCH_IS_X86_32``. The classes calling assembly have - also been renamed. - -* Similiarly to the above change, the AES implemenations using the - AES-NI instruction set have been renamed from AES_XXX_Intel to - AES_XXX_NI. - -* Systems that are identified as `sun4u` will default to compiling for - 32-bit SPARCv9 code rather than 64-bit. This matches the still - common convention for 32-bit SPARC userspaces. If you want 64-bit - code on such as system, use ``--cpu=sparc64``. - -* Some minor fixes for compiling botan under the BeOS - clone/continuation `Haiku `_. - -* Further updates to the documentation - -Version 1.9.16, 2011-04-11 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Second release candidate for 1.10.0 - -* The documentation, previously written in LaTeX, is now in - reStructuredText suitable for processing by `Sphinx - `_, which can generate nicely formatted - HTML and PDFs. The documentation has also been greatly updated and - expanded. - -* The class ``EC_Domain_Params`` has been renamed ``EC_Group``, with a - typedef for backwards compatability. - -* ``EC_Group``'s string constructor didn't understand the standard - names like "secp160r1", forcing use of the OIDs. - -* Two constructors for ECDSA private keys, the one that creates a new - random key, and the one that provides a preset private key as a - ``BigInt``, have been merged. This matches the existing interface - for DSA and DH keys. If you previously used the version taking a - ``BigInt`` private key, you'll have to additionally pass in a - ``RandomNumberGenerator`` object starting in this release. - -* It is now possible to create ECDH keys with a preset ``BigInt`` - private key; previously no method for this was available. - -* The overload of ``generate_passhash9`` that takes an explicit - algorithm identifier has been merged with the one that does not. - The algorithm identifier code has been moved from the second - parameter to the fourth. See :ref:`passhash9` for details. - -* Change shared library versioning to match the normal Unix - conventions. Instead of ``libbotan-X.Y.Z.so``, the shared lib is - named ``libbotan-X.Y.so.Z``; this allows the runtime linker to do - its runtime linky magic. It can be safely presumed that any change - in the major or minor version indicates ABI incompatability. - -* Remove the socket wrapper code; it was not actually used by anything - in the library, only in the examples, and you can use whatever kind - of (blocking) socket interface you like with the SSL/TLS code. It's - available as socket.h in the examples directory if you want to use - it. - -* Disable the by-default 'strong' checking of private keys that are - loaded from storage. You can always request key material sanity - checking using Private_Key::check_key. - -* Bring back removed functions ``min_keylength_of``, - ``max_keylength_of``, ``keylength_multiple_of`` in ``lookup.h`` to - avoid breaking applications written against 1.8 - -Version 1.9.15, 2011-03-21 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* First release candidate for 1.10.0 - -* Modify how message expansion is done in SHA-256 and SHA-512. - Instead of expanding the entire message at the start, compute them - in the minimum number of registers. Values are computed 15 rounds - before they are needed. On a Core i7-860, GCC 4.5.2, went from 143 - to 157 MiB/s in SHA-256, and 211 to 256 MiB/s in SHA-512. - -* Pipe will delete empty output queues as soon as they are no longer - needed, even if earlier messages still have data unread. However an - (empty) entry in a deque of pointers will remain until all prior - messages are completely emptied. - -* Avoid reading the SPARC ``%tick`` register on OpenBSD as unlike - Linux the kernel will not trap and emulate it for us, causing a - illegal instruction crash. - -* Improve detection and autoconfiguration for ARM processors. - -Version 1.9.14, 2011-03-01 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add support for bcrypt, OpenBSD's password hashing scheme. It is - described in :ref:`bcrypt`. - -* Add support for NIST's AES key wrapping algorithm, as described in - :rfc:`3394`. It is available by including ``rfc3394.h``. - -* Fix an infinite loop in zlib filters introduced in 1.9.11 (PR 142) - -Version 1.9.13, 2011-02-19 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Update Keccak to the round 3 variant -* Fix ordering in GOST 34.10 signatures to match DNSSEC specifications -* Use ``size_t`` instead of ``u32bit`` for small integers in DER/BER codecs -* Add new build option ``--distribution-info`` -* Fix problems in the amalgamation build -* Fix building under Clang 2.9 and Sun Studio 12 - -Version 1.9.12, 2010-12-13 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add the Keccak hash function -* Fix compilation problems in Python wrappers -* Fix compilation problem in OpenSSL engine -* Update SQLite3 database encryption codec - -Version 1.9.11, 2010-11-29 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Many SSL/TLS APIs have changed. This API is still unstable. -* The SSL interface requires TR1 (uses std::tr1::function) -* Fix SSL handshake failures when using RC4 ciphersuites -* Fix a number of CRL encoding and decoding bugs -* Counter mode now always encrypts 256 blocks in parallel -* Code where u32bit was used to represent a length now uses size_t -* Use small tables in the first round of AES -* Removed AES class: app must choose AES-128, AES-192, or AES-256 -* Add hex encoding/decoding functions that can be used without a Pipe -* Add base64 encoding functions that can be used without a Pipe -* Add to_string function to X509_Certificate -* Add support for dynamic engine loading on Windows -* Replace BlockCipher::BLOCK_SIZE attribute with function block_size() -* Replace HashFunction::HASH_BLOCK_SIZE attribute with hash_block_size() -* Changed semantics of MemoryRegion::resize and clear to match STL -* Removed MemoryRegion::append, replaced by push_back and operator+= -* Move PBKDF lookup to engine system -* The IDEA key schedule has been changed to run in constant time -* Avoid a possible timing vulnerability in Montgomery reduction -* Add Algorithm and Key_Length_Specification classes -* Switch default PKCS #8 encryption algorithm from AES-128 to AES-256 -* Update Skein-512 to match the v1.3 specification -* Allow using PBKDF2 with empty passphrases -* Add compile-time deprecation warnings for GCC, Clang, and MSVC -* Support use of HMAC(SHA-256) and CMAC(Blowfish) in passhash9 -* Improve support for Intel Atom processors -* Fix compilation problems under Sun Studio and Clang - -Version 1.9.10, 2010-08-12 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add a constant time AES implementation using SSSE3 -* Add support for loading new Engines at runtime -* Use GCC byteswap intrinsics where possible -* Drop support for building with Python 2.4 -* Fix benchmarking of block ciphers in ECB mode -* Consolidate the two x86 assembly engines -* Rename S2K to PBKDF - -Version 1.9.9, 2010-06-28 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add new X509::BER_encode and PKCS8::BER_encode -* Give all Filter objects a name() function -* Add Keyed_Filter::valid_iv_length -* Increase default iteration counts for private key encryption -* Fix compilation of mp_asm64 on 64-bit MIPS with GCC 4.4 and later -* Fix compilation under Apple's GCC 4.2 -* Expand and update the Doxygen documentation - -Version 1.9.8, 2010-06-14 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add support for wide multiplications on 64-bit Windows -* Use constant time multiplication in IDEA -* Avoid possible timing attack against OAEP decoding -* Removed FORK-256; rarely used and it has been broken -* Rename ``--use-boost-python`` to ``--with-boost-python`` -* Skip building shared libraries on MinGW/Cygwin -* Fix creation of 512 and 768 bit DL groups using the DSA kosherizer -* Fix compilation on GCC versions before 4.3 (missing cpuid.h) -* Fix compilation under the Clang compiler - -Version 1.9.7, 2010-04-27 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* TLS: Support reading SSLv2 client hellos -* TLS: Add support for SEED ciphersuites (RFC 4162) -* Add Comb4P hash combiner function -* Fix checking of EMSA_Raw signatures with leading 0 bytes - -Version 1.9.6, 2010-04-09 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* TLS: Add support for TLS v1.1 -* TLS: Support server name indicator extension -* TLS: Fix server handshake -* TLS: Fix server using DSA certificates -* TLS: Avoid timing channel between CBC padding check and MAC verification - -Version 1.9.5, 2010-03-29 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Numerous ECC optimizations -* Fix GOST 34.10-2001 X.509 key loading -* Allow PK_Signer's fault protection checks to be toggled off -* Avoid using pool-based locking allocator if we can't mlock -* Remove all runtime options -* New BER_Decoder::{decode_and_check, decode_octet_string_bigint} -* Remove SecureBuffer in favor of SecureVector length parameter -* HMAC_RNG: Perform a poll along with user-supplied entropy -* Fix crash in MemoryRegion if Allocator::get failed -* Fix small compilation problem on FreeBSD - -Version 1.9.4, 2010-03-09 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add the Ajisai SSLv3/TLSv1.0 implementation -* Add GOST 34.10-2001 public key signature scheme -* Add SIMD implementation of Noekeon -* Add SSE2 implementation of IDEA -* Extend Salsa20 to support longer IVs (XSalsa20) -* Perform XTS encryption and decryption in parallel where possible -* Perform CBC decryption in parallel where possible -* Add SQLite3 db encryption codec, contributed by Olivier de Gaalon -* Add a block cipher cascade construction -* Add support for password hashing for authentication (passhash9.h) -* Add support for Win32 high resolution system timers -* Major refactoring and API changes in the public key code -* Use consistency checking (anti-fault attack) for all signature schemes -* Changed S2K interface: derive_key now takes salt, iteration count -* Remove dependency on TR1 for ECC and CVC code -* Renamed ECKAEG to its more usual name, ECDH -* Fix crash in GMP_Engine if library is shutdown and reinitialized -* Fix an invalid memory read in MD4 -* Fix Visual C++ static builds -* Remove Timer class entirely -* Switch default PKCS #8 encryption algorithm from 3DES to AES-128 -* New option --gen-amalgamation for creating a SQLite-style amalgamation -* Many headers are now explicitly internal-use-only and are not installed -* Greatly improve the Win32 installer -* Several fixes for Visual C++ debug builds - -Version 1.9.3, 2009-11-19 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add new AES implementation using Intel's AES instruction intrinsics -* Add an implementation of format preserving encryption -* Allow use of any hash function in X.509 certificate creation -* Optimizations for MARS, Skipjack, and AES -* Set macros for available SIMD instructions in build.h -* Add support for using InnoSetup to package Windows builds -* By default build a DLL on Windows - -Version 1.9.2, 2009-11-03 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add SIMD version of XTEA -* Support both SSE2 and AltiVec SIMD for Serpent and XTEA -* Optimizations for SHA-1 and SHA-2 -* Add AltiVec runtime detection -* Fix x86 CPU identification with Intel C++ and Visual C++ - -Version 1.9.1, 2009-10-23 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Better support for Python and Perl wrappers -* Add an implementation of Blue Midnight Wish (Round 2 tweak version) -* Modify Skein-512 to match the tweaked 1.2 specification -* Add threshold secret sharing (draft-mcgrew-tss-02) -* Add runtime cpu feature detection for x86/x86-64 -* Add code for general runtime self testing for hashes, MACs, and ciphers -* Optimize XTEA; twice as fast as before on Core2 and Opteron -* Convert CTR_BE and OFB from filters to stream ciphers -* New parsing code for SCAN algorithm names -* Enable SSE2 optimizations under Visual C++ -* Remove all use of C++ exception specifications -* Add support for GNU/Hurd and Clang/LLVM - -Version 1.9.0, 2009-09-09 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add support for parallel invocation of block ciphers where possible -* Add SSE2 implementation of Serpent -* Add Rivest's package transform (an all or nothing transform) -* Minor speedups to the Turing key schedule -* Fix processing multiple messages in XTS mode -* Add --no-autoload option to configure.py, for minimized builds -* The previously used configure.pl script is no longer supported - -Series 1.8 ----------------------------------------- - -Version 1.8.13, 2011-07-02 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* A race condition in `Algorithm_Factory` could cause crashes in - multithreaded code. See `this thread on botan-devel - `_ - for details and workarounds. - -Version 1.8.12, 2011-06-20 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -* If EMSA3(Raw) was used for more than one signature, it would produce - incorrect output. - -* Fix the --enable-debug option to configure.py - -* Improve OS detection on Cygwin - -* Fix compilation under Sun Studio 12 on Solaris - -* Fix a memory leak in the constructors of DataSource_Stream and - DataSink_Stream which would occur if opening the file failed. PR 144 - -Version 1.8.11, 2010-11-02 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fix a number of CRL encoding and decoding bugs -* When building a debug library under VC++, use the debug runtime -* Fix compilation under Sun Studio on Linux and Solaris -* Add several functions for compatability with 1.9 -* In the examples, read most input files as binary -* The Perl build script has been removed in this release - -Version 1.8.10, 2010-08-31 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Switch default PKCS #8 encryption algorithm from 3DES to AES-256 -* Increase default hash iterations from 2048 to 10000 in PBES1 and PBES2 -* Use small tables in the first round of AES -* Add PBKDF typedef and get_pbkdf for better compatability with 1.9 -* Add version of S2K::derive_key taking salt and iteration count -* Enable the /proc-walking entropy source on NetBSD -* Fix the doxygen makefile target - -Version 1.8.9, 2010-06-16 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Use constant time multiplication in IDEA -* Avoid possible timing attack against OAEP decoding -* Add new X509::BER_encode and PKCS8::BER_encode -* Enable DLL builds under Windows -* Add Win32 installer support -* Add support for the Clang compiler -* Fix problem in semcem.h preventing build under Clang or GCC 3.4 -* Fix bug that prevented creation of DSA groups under 1024 bits -* Fix crash in GMP_Engine if library is shutdown and reinitialized -* Work around problem with recent binutils in x86-64 SHA-1 -* The Perl build script is no longer supported and refuses to run by default - -Version 1.8.8, 2009-11-03 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Alter Skein-512 to match the tweaked 1.2 specification -* Fix use of inline asm for access to x86 bswap function -* Allow building the library without AES enabled -* Add 'powerpc64' alias to ppc64 arch for Gentoo ebuild - -Version 1.8.7, 2009-09-09 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fix processing multiple messages in XTS mode -* Add --no-autoload option to configure.py, for minimized builds - -Version 1.8.6, 2009-08-13 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add Cryptobox, a set of simple password-based encryption routines -* Only read world-readable files when walking /proc for entropy -* Fix building with TR1 disabled -* Fix x86 bswap support for Visual C++ -* Fixes for compilation under Sun C++ -* Add support for Dragonfly BSD (contributed by Patrick Georgi) -* Add support for the Open64 C++ compiler -* Build fixes for MIPS systems running Linux -* Minor changes to license, now equivalent to the FreeBSD/NetBSD license - -Version 1.8.5, 2009-07-23 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Change configure.py to work on stock Python 2.4 -* Avoid a crash in Skein_512::add_data processing a zero-length input -* Small build fixes for SPARC, ARM, and HP-PA processors -* The test suite now returns an error code from main() if any tests failed - -Version 1.8.4, 2009-07-12 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fix a bug in nonce generation in the Miller-Rabin test - -Version 1.8.3, 2009-07-11 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add a new Python configuration script -* Add the Skein-512 SHA-3 candidate hash function -* Add the XTS block cipher mode from IEEE P1619 -* Fix random_prime when generating a prime of less than 7 bits -* Improve handling of low-entropy situations during PRNG seeding -* Change random device polling to prefer /dev/urandom over /dev/random -* Use an input insensitive implementation of same_mem instead of memcmp -* Correct DataSource::discard_next to return the number of discarded bytes -* Provide a default value for AutoSeeded_RNG::reseed -* Fix Gentoo bug 272242 - -Version 1.8.2, 2009-04-07 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Make entropy polling more flexible and in most cases faster -* GOST 28147 now supports multiple sbox parameters -* Added the GOST 34.11 hash function -* Fix botan-config problems on MacOS X - -Version 1.8.1, 2009-01-20 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Avoid a valgrind warning in es_unix.cpp on 32-bit Linux -* Fix memory leak in PKCS8 load_key and encrypt_key -* Relicense api.tex from CC-By-SA 2.5 to BSD -* Fix botan-config on MacOS X, Solaris - -Version 1.8.0, 2008-12-08 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fix compilation on Solaris with GCC - -Series 1.7 ----------------------------------------- - -Version 1.7.24, 2008-12-01 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fix a compatibility problem with SHA-512/EMSA3 signature padding -* Fix bug preventing EGD/PRNGD entropy poller from working -* Fix integer overflow in Pooling_Allocator::get_more_core (bug id #27) -* Add EMSA3_Raw, a variant of EMSA3 called CKM_RSA_PKCS in PKCS #11 -* Add support for SHA-224 in EMSA2 and EMSA3 PK signature padding schemes -* Add many more test vectors for RSA with EMSA2, EMSA3, and EMSA4 -* Wrap private structs in SSE2 SHA-1 code in anonymous namespace -* Change configure.pl's CPU autodetection output to be more consistent -* Disable using OpenSSL's AES due to crashes of unknown cause -* Fix warning in /proc walking entropy poller -* Fix compilation with IBM XLC for Cell 0.9-200709 - -Version 1.7.23, 2008-11-23 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Change to use TR1 (thus enabling ECDSA) with GCC and ICC -* Optimize almost all hash functions, especially MD4 and Tiger -* Add configure.pl options --{with,without}-{bzip2,zlib,openssl,gnump} -* Change Timer to be pure virtual, and add ANSI_Clock_Timer -* Cache socket descriptors in the EGD entropy source -* Avoid bogging down startup in /proc walking entropy source -* Remove Buffered_EntropySource helper class -* Add a Default_Benchmark_Timer typedef in benchmark.h -* Add examples using benchmark.h and Algorithm_Factory -* Add ECC tests from InSiTo -* Minor documentation updates - -Version 1.7.22, 2008-11-17 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add provider preferences to Algorithm_Factory -* Fix memory leaks in PBE_PKCS5v20 and get_pbe introduced in 1.7.21 -* Optimize AES encryption and decryption (about 10% faster) -* Enable SSE2 optimized SHA-1 implementation on Intel Prescott CPUs -* Fix nanoseconds overflow in benchmark code -* Remove Engine::add_engine - -Version 1.7.21, 2008-11-11 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Make algorithm lookup much more configuable -* Add facilities for runtime performance testing of algorithms -* Drop use of entropy estimation in the PRNGs -* Increase intervals between HMAC_RNG automatic reseeding -* Drop InitializerOptions class, all options but thread safety - -Version 1.7.20, 2008-11-09 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Namespace pkg-config file by major and minor versions -* Cache device descriptors in Device_EntropySource -* Split base.h into {block_cipher,stream_cipher,mac,hash}.h -* Removed get_mgf function from lookup.h - -Version 1.7.19, 2008-11-06 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add HMAC_RNG, based on a design by Hugo Krawczyk -* Optimized the Turing stream cipher (about 20% faster on x86-64) -* Modify Randpool's reseeding algorithm to poll more sources -* Add a new AutoSeeded_RNG in auto_rng.h -* OpenPGP_S2K changed to take hash object instead of name -* Add automatic identification for Intel's Prescott processors - -Version 1.7.18, 2008-10-22 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add Doxygen comments from InSiTo -* Add ECDSA and ECKAEG benchmarks -* Add configure.pl switch --with-tr1-implementation -* Fix configure.pl's --with-endian and --with-unaligned-mem options -* Added support for pkg-config -* Optimize byteswap with x86 inline asm for Visual C++ by Yves Jerschow -* Use const references to avoid copying overhead in CurveGFp, GFpModulus - -Version 1.7.17, 2008-10-12 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add missing ECDSA object identifiers -* Fix error in x86 and x86-64 assembler affecting GF(p) math -* Remove Boost dependency from GF(p) math -* Modify botan-config to not print -L/usr/lib or -L/usr/local/lib -* Add BOTAN_DLL macro to over 30 classes missing it -* Rename the two SHA-2 base classes for consistency - -Version 1.7.16, 2008-10-09 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add several missing pieces needed for ECDSA and ECKAEG -* Add Card Verifiable Certificates from InSiTo -* Add SHA-224 from InSiTo -* Add BSI variant of EMSA1 from InSiTo -* Add GF(p) and ECDSA tests from InSiTo -* Split ECDSA and ECKAEG into distinct modules -* Allow OpenSSL and GNU MP engines to be built with public key algos disabled -* Rename sha256.h to sha2_32.h and sha_64.h to sha2_64.h - -Version 1.7.15, 2008-10-07 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add GF(p) arithmetic from InSiTo -* Add ECDSA and ECKAEG implementations from InSiTo -* Minimize internal dependencies, allowing for smaller build configurations -* Add new User Manual and Architecture Guide from FlexSecure GmbH -* Alter configure.pl options for better autotools compatibility -* Update build instructions for recent changes to configure.pl -* Fix CPU detection using /proc/cpuinfo - -Version 1.7.14, 2008-09-30 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Split library into parts allowing modular builds -* Add (very preliminary) CMS support to the main library -* Some constructors now require object pointers instead of names -* Support multiple implementations of the same algorithm -* Build support for Pentium-M processors, from Derek Scherger -* Build support for MinGW/MSYS, from Zbigniew Zagorski -* Use inline assembly for bswap on 32-bit x86 - -Version 1.7.13, 2008-09-27 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add SSLv3 MAC, SSLv3 PRF, and TLS v1.0 PRF from Ajisai -* Allow all examples to compile even if compression not enabled -* Make CMAC's polynomial doubling operation a public class method -* Use the -m64 flag when compiling with Sun Forte on x86-64 -* Clean up and slightly optimize CMAC::final_result - -Version 1.7.12, 2008-09-18 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add x86 assembly for Visual Studio C++, by Luca Piccarreta -* Add a Perl XS module, by Vaclav Ovsik -* Add SWIG-based wrapper for Botan -* Add SSE2 implementation of SHA-1, by Dean Gaudet -* Remove the BigInt::sig_words cache due to bugs -* Combined the 4 Blowfish sboxes, suggested by Yves Jerschow -* Changed BigInt::grow_by and BigInt::grow_to to be non-const -* Add private assignment operators to classes that don't support assignment -* Benchmark RSA encryption and signatures -* Added test programs for random_prime and ressol -* Add high resolution timers for IA-64, HP-PA, S390x -* Reduce use of the RNG during benchmarks -* Fix builds on STI Cell PPU -* Add support for IBM's XLC compiler -* Add IETF 8192 bit MODP group - -Version 1.7.11, 2008-09-11 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added the Salsa20 stream cipher -* Optimized Montgomery reduction, Karatsuba squaring -* Added 16x16->32 word Comba multiplication and squaring -* Use a much larger Karatsuba cutoff point -* Remove bigint_mul_add_words -* Inlined several BigInt functions -* Add useful information to the generated build.h -* Rename alg_{ia32,amd64} modules to asm_{ia32,amd64} -* Fix the Windows build - -Version 1.7.10, 2008-09-05 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Public key benchmarks run using a selection of random keys -* New benchmark timer options are clock_gettime, gettimeofday, times, clock -* Including reinterpret_cast optimization for xor_buf in default header -* Split byte swapping and word rotation functions into distinct headers -* Add IETF modp 6144 group and 2048 and 3072 bit DSS groups -* Optimizes BigInt right shift -* Add aliases in DL_Group::Format enum -* BigInt now caches the significant word count - -Version 1.7.9, 2008-08-27 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Make clear() in most algorithm base classes a pure virtual -* Add noexec stack marker for GNU linker in assembly code -* Avoid string operations in ressol -* Compilation fixes for MinGW and Visual Studio C++ 2008 -* Some autoconfiguration fixes for Windows - -Version 1.7.8, 2008-07-15 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added the block cipher Noekeon -* Remove global deref_alias function -* X509_Store takes timeout options as constructor arguments -* Add Shanks-Tonelli algorithm, contributed by FlexSecure GmbH -* Extend random_prime() for generating primes of any bit length -* Remove Config class -* Allow adding new entropy via base RNG interface -* Reseeding a X9.31 PRNG also reseeds the underlying PRNG - -Version 1.7.7, 2008-06-28 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Remove the global PRNG object -* The PK filter objects were removed -* Add a test suite for the ANSI X9.31 PRNG -* Much cleaner and (mostly) thread-safe reimplementation of es_ftw -* Remove both default arguments to ANSI_X931_RNG's constructor -* Remove the randomizing version of OctetString::change -* Make the cipher and MAC to use in Randpool configurable -* Move RandomNumberGenerator declaration to rng.h -* RSA_PrivateKey will not generate keys smaller than 1024 bits -* Fix an error decoding BER UNIVERSAL types with special taggings - -Version 1.7.6, 2008-05-05 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Initial support for Windows DLLs, from Joel Low -* Reset the position pointer when a new block is generated in X9.32 PRNG -* Timer objects are now treated as entropy sources -* Moved several ASN.1-related enums from enums.h to an appropriate header -* Removed the AEP module, due to inability to test -* Removed Global_RNG and rng.h -* Removed system_clock -* Removed Library_State::UI and the pulse callback logic - -Version 1.7.5, 2008-04-12 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* The API of X509_CA::sign_request was altered to avoid race conditions -* New type Pipe::message_id to represent the Pipe message number -* Remove the Named_Mutex_Holder for a small performance gain -* Removed several unused or rarely used functions from Config -* Ignore spaces inside of a decimal string in BigInt::decode -* Allow using a std::istream to initialize a DataSource_Stream object -* Fix compilation problem in zlib compression module -* The chunk sized used by Pooling_Allocator is now a compile time setting -* The size of random blinding factors is now a compile time setting -* The install target no longer tries to set a particular owner/group - -Version 1.7.4, 2008-03-10 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Use unaligned memory read/writes on systems that allow it, for performance -* Assembly for x86-64 for accessing the bswap instruction -* Use larger buffers in ARC4 and WiderWAKE for significant throughput increase -* Unroll loops in SHA-160 for a few percent increase in performance -* Fix compilation with GCC 3.2 in es_ftw and es_unix -* Build fix for NetBSD systems -* Prevent es_dev from being built except on Unix systems - -Version 1.7.3, 2008-01-23 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* New invocation syntax for configure.pl with several new options -* Support for IPv4 addresses in a subject alternative name -* New fast poll for the generic Unix entropy source (es_unix) -* The es_file entropy source has been replaced by the es_dev module -* The malloc allocator does not inherit from Pooling_Allocator anymore -* The path that es_unix will search in are now fully user-configurable -* Truncate X9.42 PRF output rather than allow counter overflow -* PowerPC is now assumed to be big-endian - -Version 1.7.2, 2007-10-13 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Initialize the global library state lazily -* Add plain CBC-MAC for backwards compatibility with old systems -* Clean up some of the self test code -* Throw a sensible exception if a DL_Group is not found -* Truncate KDF2 output rather than allowing counter overflow -* Add newly assigned OIDs for SHA-2 and DSA with SHA-224/256 -* Fix a Visual Studio compilation problem in x509stat.cpp - -Version 1.7.1, 2007-07-23 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fix a race condition in the algorithm object cache -* HMAC key schedule optimization -* The build header sets a macro defining endianness, if known -* New word load/store abstraction allowing further optimization -* Modify most of the library to avoid use the C-style casts -* Use higher resolution timers in symmetric benchmarks - -Version 1.7.0, 2007-05-19 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* DSA parameter generation now follows FIPS 186-3 -* Added OIDs for Rabin-Williams and Nyberg-Rueppel -* Somewhat better support for out of tree builds -* Minor optimizations for RC2 and Tiger -* Documentation updates -* Update the todo list - -Series 1.6 ----------------------------------------- - -Version 1.6.5, 2008-08-27 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add noexec stack marker for GNU linker in assembly code -* Fix autoconfiguration problem on x86 with GCC 4.2 and 4.3 - -Version 1.6.4, 2008-03-08 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fix a compilation problem with Visual Studio C++ 2003 - -Version 1.6.3, 2007-07-23 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fix a race condition in the algorithm lookup cache -* Fix problems building the memory pool on some versions of Visual C++ - -Version 1.6.2, 2007-03-24 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fix autodection on Athlon64s running Linux -* Fix builds on QNX and compilers using STLport -* Remove a call to abort() that crept into production - -Version 1.6.1, 2007-01-20 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fix some base64 decoder bugs -* Add a new option to base64 encoding, to always append a newline -* Fix some build problems under Visual Studio with debug enabled -* Fix a bug in BER_Decoder that was triggered under some compilers - -Version 1.6.0, 2006-12-17 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Minor cleanups versus 1.5.13 - -Series 1.5 ----------------------------------------- - -Version 1.5.13, 2006-12-10 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Compilation fixes for the bzip2, zlib, and GNU MP modules -* Better support for Intel C++ and EKOpath C++ on x86-64 - -Version 1.5.12, 2006-10-27 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Cleanups in the initialization routines -* Add some x86-64 assembly for multiply-add -* Fix problems generating very small (below 384 bit) RSA keys -* Support out of tree builds -* Bring some of the documentation up to date -* More improvements to the Python bindings - -Version 1.5.11, 2006-09-10 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Removed the Algorithm base class -* Various cleanups in the public key inheritance hierarchy -* Major overhaul of the configure/build setup -* Added x86 assembler implementations of Serpent and low-level MPI code -* Optimizations for the SHA-1 x86 assembler -* Various improvements to the Python wrappers -* Work around a Visual Studio compiler bug - -Version 1.5.10, 2006-08-13 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add x86 assembler versions of MD4, MD5, and SHA-1 -* Expand InitializerOptions' language to support on/off switches -* Fix definition of OID 2.5.4.8; was accidentally changed in 1.5.9 -* Fix possible resource leaks in the mmap allocator -* Slightly optimized buffering in MDx_HashFunction -* Initialization failures are dealt with somewhat better -* Add an example implementing Pollard's Rho algorithm -* Better option handling in the test/benchmark tool -* Expand the xor_ciph example to support longer keys -* Some updates to the documentation - -Version 1.5.9, 2006-07-12 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixed bitrot in the AEP engine -* Fix support for marking certificate/CRL extensions as critical -* Significant cleanups in the library state / initialization code -* LibraryInitializer takes an explicit InitializerOptions object -* Make Mutex_Factory an abstract class, add Default_Mutex_Factory -* Change configuration access to using global_state() -* Add support for global named mutexes throughout the library -* Add some STL wrappers for the delete operator -* Change how certificates are created to be more flexible and general - -Version 1.5.8, 2006-06-23 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Many internal cleanups to the X.509 cert/CRL code -* Allow for application code to support new X.509 extensions -* Change the return type of X509_Certificate::{subject,issuer}_info -* Allow for alternate character set handling mechanisms -* Fix a bug that was slowing squaring performance somewhat -* Fix a very hard to hit overflow bug in the C version of word3_muladd -* Minor cleanups to the assembler modules -* Disable es_unix module on FreeBSD due to build problem on FreeBSD 6.1 -* Support for GCC 2.95.x has been dropped in this release - -Version 1.5.7, 2006-05-28 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Further, major changes to the BER/DER coding system -* Updated the Qt mutex module to use Mutex_Factory -* Moved the library global state object into an anonymous namespace -* Drop the Visual C++ x86 assembly module due to bugs - -Version 1.5.6, 2006-03-01 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* The low-level DER/BER coding system was redesigned and rewritten -* Portions of the certificate code were cleaned up internally -* Use macros to substantially clean up the GCC assembly code -* Added 32-bit x86 assembly for Visual C++ (by Luca Piccarreta) -* Avoid a couple of spurious warnings under Visual C++ -* Some slight cleanups in X509_PublicKey::key_id - -Version 1.5.5, 2006-02-04 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixed a potential infinite loop in the memory pool code (Matt Johnston) -* Made Pooling_Allocator::Memory_Block an actual class of sorts -* Some small optimizations to the division and modulo computations -* Cleaned up the implementation of some of the BigInt operators -* Reduced use of dynamic memory allocation in low-level BigInt functions -* A few simplifications in the Randpool mixing function -* Removed power(), as it was not particularly useful (or fast) -* Fixed some annoying bugs in the benchmark code -* Added a real credits file - -Version 1.5.4, 2006-01-29 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Integrated x86 and amd64 assembly code, contributed by Luca Piccarreta -* Fixed a memory access off-by-one in the Karatsuba code -* Changed Pooling_Allocator's free list search to a log(N) algorithm -* Merged ModularReducer with its only subclass, Barrett_Reducer -* Fixed sign-handling bugs in some of the division and modulo code -* Renamed the module description files to modinfo.txt -* Further cleanups in the initialization code -* Removed BigInt::add and BigInt::sub -* Merged all the division-related functions into just divide() -* Modified the functions to allow for better optimizations -* Made the number of bits polled from an EntropySource user configurable -* Avoid including in -* Fixed some build problems with Sun Forte -* Removed some dead code from bigint_modop -* Fix the definition of same_mem - -Version 1.5.3, 2006-01-24 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Many optimizations in the low-level multiple precision integer code -* Added hooks for assembly implementations of the MPI code -* Support for the X.509 issuer alternative name extension in new certs -* Fixed a bug in the decompression modules; found and patched by Matt Johnston -* New Windows mutex module (mux_win32), by Luca Piccarreta -* Changed the Windows timer module to use QueryPerformanceCounter -* mem_pool.cpp was using std::set iterators instead of std::multiset ones -* Fixed a bug in X509_CA preventing users from disabling particular extensions -* Fixed the mp_asm64 module, which was entirely broken in 1.5.2 -* Fixed some module build problems on FreeBSD and Tru64 - -Version 1.5.2, 2006-01-15 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixed an off-by-one memory read in MISTY1::key() -* Fixed a nasty memory leak in Output_Buffers::retire() -* Reimplemented the memory allocator from scratch -* Improved memory caching in Montgomery exponentiation -* Optimizations for multiple precision addition and subtraction -* Fixed a build problem in the hardware timer module on 64-bit PowerPC -* Changed default Karatsuba cutoff to 12 words (was 14) -* Removed MemoryRegion::bits(), which was unused and incorrect -* Changed maximum HMAC keylength to 1024 bits -* Various minor Makefile and build system changes -* Avoid using std::min in to bypass Windows libc macro pollution -* Switched checks/clock.cpp back to using clock() by default -* Enabled the symmetric algorithm tests, which were accidentally off in 1.5.1 -* Removed the Default_Mutex's unused clone() member function - -Version 1.5.1, 2006-01-08 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Implemented Montgomery exponentiation -* Implemented generalized Karatsuba multiplication and squaring -* Implemented Comba squaring for 4, 6, and 8 word inputs -* Added new Modular_Exponentiator and Power_Mod classes -* Removed FixedBase_Exp and FixedExponent_Exp -* Fixed a performance regression in get_allocator introduced in 1.5.0 -* Engines can now offer S2K algorithms and block cipher padding methods -* Merged the remaining global 'algolist' code into Default_Engine -* The low-level MPI code is linked as C again -* Replaced BigInt's get_nibble with the more general get_substring -* Some documentation updates - -Version 1.5.0, 2006-01-01 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Moved all global/shared library state into a single object -* Mutex objects are created through mutex factories instead of a global -* Removed ::get_mutex(), ::initialize_mutex(), and Mutex::clone() -* Removed the RNG_Quality enum entirely -* There is now only a single global-use PRNG -* Removed the no_aliases and no_oids options for LibraryInitializer -* Removed the deprecated algorithms SEAL, ISAAC, and HAVAL -* Change es_ftw to use unbuffered I/O - -Series 1.4 ----------------------------------------- - -Version 1.4.12, 2006-01-15 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixed an off-by-one memory read in MISTY1::key() -* Fixed a nasty memory leak in Output_Buffers::retire() -* Changed maximum HMAC keylength to 1024 bits -* Fixed a build problem in the hardware timer module on 64-bit PowerPC - -Version 1.4.11, 2005-12-31 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Changed Whirlpool diffusion matrix to match updated algorithm spec -* Fixed several engine module build errors introduced in 1.4.10 -* Fixed two build problems in es_capi; reported by Matthew Gregan -* Added a constructor to DataSource_Memory taking a std::string -* Placing the same Filter in multiple Pipes triggers an exception -* The configure script accepts --docdir and --libdir -* Merged doc/rngs.txt into the main API document -* Thanks to Joel Low for several bug reports on early tarballs of 1.4.11 - -Version 1.4.10, 2005-12-18 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added an implementation of KASUMI, the block cipher used in 3G phones -* Refactored Pipe; output queues are now managed by a distinct class -* Made certain Filter facilities only available to subclasses of Fanout_Filter -* There is no longer any overhead in Pipe for a message that has been read out -* It is now possible to generate RSA keys as small as 128 bits -* Changed some of the core classes to derive from Algorithm as a virtual base -* Changed Randpool to use HMAC instead of a plain hash as the mixing function -* Fixed a bug in the allocators; found and fixed by Matthew Gregan -* Enabled the use of binary file I/O, when requested by the application -* The OpenSSL engine's block cipher code was missing some deallocation calls -* Disabled the es_ftw module on NetBSD, due to header problems there -* Fixed a problem preventing tm_hard from building on MacOS X on PowerPC -* Some cleanups for the modules that use inline assembler -* config.h is now stored in build/ instead of build/include/botan/ -* The header util.h was split into bit_ops.h, parsing.h, and util.h -* Cleaned up some redundant include directives - -Version 1.4.9, 2005-11-06 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added the IBM-created AES candidate algorithm MARS -* Added the South Korean block cipher SEED -* Added the stream cipher Turing -* Added the new hash function FORK-256 -* Deprecated the ISAAC stream cipher -* Twofish and RC6 are significantly faster with GCC -* Much better support for 64-bit PowerPC -* Added support for high-resolution PowerPC timers -* Fixed a bug in the configure script causing problems on FreeBSD -* Changed ANSI X9.31 to support arbitrary block ciphers -* Make the configure script a bit less noisy -* Added more test vectors for some algorithms, including all the AES finalists -* Various cosmetic source code cleanups - -Version 1.4.8, 2005-10-16 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Resolved a bad performance problem in the allocators; fix by Matt Johnston -* Worked around a Visual Studio 2003 compilation problem introduced in 1.4.7 -* Renamed OMAC to CMAC to match the official NIST naming -* Added single byte versions of update() to PK_Signer and PK_Verifier -* Removed the unused reverse_bits and reverse_bytes functions - -Version 1.4.7, 2005-09-25 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixed major performance problems with recent versions of GNU C++ -* Added an implementation of the X9.31 PRNG -* Removed the X9.17 and FIPS 186-2 PRNG algorithms -* Changed defaults to use X9.31 PRNGs as global PRNG objects -* Documentation updates to reflect the PRNG changes -* Some cleanups related to the engine code -* Removed two useless headers, base_eng.h and secalloc.h -* Removed PK_Verifier::valid_signature -* Fixed configure/build system bugs affecting MacOS X builds -* Added support for the EKOPath x86-64 compiler -* Added missing destructor for BlockCipherModePaddingMethod -* Fix some build problems with Visual C++ 2005 beta -* Fix some build problems with Visual C++ 2003 Workshop - -Version 1.4.6, 2005-03-13 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fix an error in the shutdown code introduced in 1.4.5 -* Setting base/pkcs8_tries to 0 disables the builtin fail-out -* Support for XMPP identifiers in X.509 certificates -* Duplicate entries in X.509 DNs are removed -* More fixes for Borland C++, from Friedemann Kleint -* Add a workaround for buggy iostreams - -Version 1.4.5, 2005-02-26 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add support for AES encryption of private keys -* Minor fixes for PBES2 parameter decoding -* Internal cleanups for global state variables -* GCC 3.x version detection was broken in non-English locales -* Work around a Sun Forte bug affecting mem_pool.h -* Several fixes for Borland C++ 5.5, from Friedemann Kleint -* Removed inclusion of init.h into base.h -* Fixed a major bug in reading from certificate stores -* Cleaned up a couple of mutex leaks -* Removed some left-over debugging code -* Removed SSL3_MAC, SSL3_PRF, and TLS_PRF - -Version 1.4.4, 2004-12-02 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Further tweaks to the pooling allocator -* Modified EMSA3 to support SSL/TLS signatures -* Changes to support Qt/QCA, from Justin Karneges -* Moved mux_qt module code into mod_qt -* Fixes for HP-UX from Mike Desjardins - -Version 1.4.3, 2004-11-06 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Split up SecureAllocator into Allocator and Pooling_Allocator -* Memory locking allocators are more likely to be used -* Fixed the placement of includes in some modules -* Fixed broken installation procedure -* Fixes in configure script to support alternate install programs -* Modules can specify the minimum version they support - -Version 1.4.2, 2004-10-31 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixed a major CRL handling bug -* Cipher and hash operations can be offloaded to engines -* Added support for cipher and hash offload in OpenSSL engine -* Improvements for 64-bit CPUs without a widening multiply instruction -* Support for SHA2-* and Whirlpool with EMSA2 -* Fixed a long-standing build problem with conflicting include files -* Fixed some examples that hadn't been updated for 1.4.x -* Portability fixes for Solaris, BSD, HP-UX, and others -* Lots of fixes and cleanups in the configure script -* Updated the Gentoo ebuild file - -Version 1.4.1, 2004-10-10 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixed major errors in the X.509 and PKCS #8 copy_key functions -* Added a LAST_MESSAGE meta-message number for Pipe -* Added new aliases (3DES and DES-EDE) for Triple-DES -* Added some new functions to PK_Verifier -* Cleaned up the KDF interface -* Disabled tm_posix on BSD due to header issues -* Fixed a build problem on PowerPC with GNU C++ pre-3.4 - -Version 1.4.0, 2004-06-26 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added the FIPS 186 RNG back -* Added copy_key functions for X.509 public keys and PKCS #8 private keys -* Fixed PKCS #1 signatures with RIPEMD-128 -* Moved some code around to avoid warnings with Sun ONE compiler -* Fixed a bug in botan-config affecting OpenBSD -* Fixed some build problems on Tru64, HP-UX -* Fixed compile problems with Intel C++, Compaq C++ - -Series 1.3 ----------------------------------------- - -Version 1.3.14, 2004-06-12 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added support for AEP's AEP1000/AEP2000 crypto cards -* Added a Mutex module using Qt, from Justin Karneges -* Added support for engine loading in LibraryInitializer -* Tweaked SecureAllocator, giving 20% better performance under heavy load -* Added timer and memory locking modules for Win32 (tm_win32, ml_win32) -* Renamed PK_Engine to Engine_Core -* Improved the Karatsuba cutoff points -* Fixes for compiling with GCC 3.4 and Sun C++ 5.5 -* Fixes for Linux/s390, OpenBSD, and Solaris -* Added support for Linux/s390x -* The configure script was totally broken for 'generic' OS -* Removed Montgomery reduction due to bugs -* Removed an unused header, pkcs8alg.h -* check --validate returns an error code if any tests failed -* Removed duplicate entry in Unix command list for es_unix -* Moved the Cert_Usage enumeration into X509_Store -* Added new timing methods for PK benchmarks, clock_gettime and RDTSC -* Fixed a few minor bugs in the configure script -* Removed some deprecated functions from x509cert.h and pkcs10.h -* Removed the 'minimal' module, has to be updated for Engine support -* Changed MP_WORD_BITS macro to BOTAN_MP_WORD_BITS to clean up namespace -* Documentation updates - -Version 1.3.13, 2004-05-15 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Major fixes for Cygwin builds -* Minor MacOS X install fixes -* The configure script is a little better at picking the right modules -* Removed ml_unix from the 'unix' module set for Cygwin compatibility -* Fixed a stupid compile problem in pkcs10.h - -Version 1.3.12, 2004-05-02 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added ability to remove old entries from CRLs -* Swapped the first two arguments of X509_CA::update_crl() -* Added an < operator for MemoryRegion, so it can be used as a std::map key -* Changed X.509 searching by DNS name from substring to full string compares -* Renamed a few X509_Certificate and PKCS10_Request member functions -* Fixed a problem when decoding some PKCS #10 requests -* Hex_Decoder would not check inputs, reported by Vaclav Ovsik -* Changed default CRL expire time from 30 days to 7 days -* X509_CRL's default PEM header is now "X509 CRL", for OpenSSL compatibility -* Corrected errors in the API doc, fixes from Ken Perano -* More documentation about the Pipe/Filter code - -Version 1.3.11, 2004-04-01 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixed two show-stopping bugs in PKCS10_Request -* Added some sanity checks in Pipe/Filter -* The DNS and URI entries would get swapped in subjectAlternativeNames -* MAC_Filter is now willing to not take a key at creation time -* Setting the expiration times of certs and CRLs is more flexible -* Fixed problems building on AIX with GCC -* Fixed some problems in the tutorial pointed out by Dominik Vogt -* Documentation updates - -Version 1.3.10, 2004-03-27 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added support for OpenPGP's ASCII armor format -* Cleaned up the RNG system; seeding is much more flexible -* Added simple autoconfiguration abilities to configure.pl -* Fixed a GCC 2.95.x compile problem -* Updated the example configuration file -* Documentation updates - -Version 1.3.9, 2004-03-07 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added an engine using OpenSSL (requires 0.9.7 or later) -* X509_Certificate would lose email addresses stored in the DN -* Fixed a missing initialization in a BigInt constructor -* Fixed several Visual C++ compile problems -* Fixed some BeOS build problems -* Fixed the WiderWake benchmark - -Version 1.3.8, 2003-12-30 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Internal changes to PK algorithms to divide data and algorithms -* DSA/DH/NR/ElGamal constructors accept taking just the private key again -* ElGamal keys now support being imported/exported as ASN.1 objects -* Much more consistent and complete error checking in PK algorithms -* Support for arbitrary backends (engines) for PK operations -* Added Montgomery reductions -* Added an engine that uses GNU MP (requires 4.1 or later) -* Removed the obsolete mp_gmp module -* Moved several initialization/shutdown functions to init.h -* Major refactoring of the memory containers -* New non-locking container, MemoryVector -* Fixed 64-bit problems in BigInt::set_bit/clear_bit -* Renamed PK_Key::check_params() to check_key() -* Some incompatible changes to OctetString -* Added version checking macros in version.h -* Removed the fips140 module pending rewrite -* Added some functions and hooks to help GUIs -* Moved more shared code into MDx_HashFunction -* Added a policy hook for specifying the encoding of X.509 strings - -Version 1.3.7, 2003-12-12 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixed a big security problem in es_unix -* Fixed several stability problems in es_unix -* Expanded the list of programs es_unix will try to use -* SecureAllocator now only preallocates blocks in special cases -* Added a special case in Global_RNG::seed for forcing a full poll -* Removed the FIPS 186 RNG added in 1.3.5 pending further testing -* Configure updates for PowerPC CPUs -* Removed the (never tested) VAX support -* Added support for S/390 Linux - -Version 1.3.6, 2003-12-07 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added a new module 'minimal', which disables most algorithms -* SecureAllocator allocates a few blocks at startup -* A few minor MPI cleanups -* RPM spec file cleanups and fixes - -Version 1.3.5, 2003-11-30 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Major improvements in ASN.1 string handling -* Added partial support for ASN.1 UTF8 STRINGs and BMP STRINGs -* Added partial support for the X.509v3 certificate policies extension -* Centralized the handling of character set information -* Added FIPS 140-2 startup self tests -* Added a module (fips140) for doing extra FIPS 140-2 tests -* Added FIPS 186-2 RNG -* Improved ASN.1 BIT STRING handling -* Removed a memory leak in PKCS10_Request -* The encoding of DirectoryString now follows PKIX guidelines -* Fixed some of the character set dependencies -* Fixed a DER encoding error for tags greater than 30 -* The BER decoder can now handle tags larger than 30 -* Fixed tm_hard.cpp to recognize SPARC on more systems -* Workarounds for a GCC 2.95.x bug in x509find.cpp -* RPM changed to install into /usr instead of /usr/local -* Added support for QNX - -Version 1.3.4, 2003-11-21 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added a module that does certain MPI operations using GNU MP -* Added the X9.42 Diffie-Hellman PRF -* The Zlib and Bzip2 objects now use custom allocators -* Added member functions for directly hashing/MACing SecureVectors -* Minor optimizations to the MPI addition and subtraction algorithms -* Some cleanups in the low-level MPI code -* Created separate AES-{128,192,256} objects - -Version 1.3.3, 2003-11-17 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* The library can now be repeatedly initialized and shutdown without crashing -* Fixed an off-by-one error in the CTS code -* Fixed an error in the EMSA4 verification code -* Fixed a memory leak in mutex.cpp (pointed out by James Widener) -* Fixed a memory leak in Pthread_Mutex -* Fixed several memory leaks in the testing code -* Bulletproofed the EMSA/EME/KDF/MGF retrieval functions -* Minor cleanups in SecureAllocator -* Removed a needless mutex guarding the (stateless) global timer -* Fixed a piece of bash-specific code in botan-config -* X.509 objects report more information about decoding errors -* Cleaned up some of the exception handling -* Updated the example config file with new OIDSs -* Moved the build instructions into a separate document, building.tex - -Version 1.3.2, 2003-11-13 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixed a bug preventing DSA signatures from verifying on X.509 objects -* Made the X509_Store search routines more efficient and flexible -* Added a function to X509_PublicKey to do easy public/private key matching -* Added support for decoding indefinite length BER data -* Changed Pipe's peek() to take an offset -* Removed Filter::set_owns in favor of the new incr_owns function -* Removed BigInt::zero() and BigInt::one() -* Renamed the PEM related options from base/pem_* to pem/* -* Added an option to specify the line width when encoding PEM -* Removed the "rng/safe_longterm" option; it's always on now -* Changed the cipher used for RNG super-encryption from ARC4 to WiderWake4+1 -* Cleaned up the base64/hex encoders and decoders -* Added an ASN.1/BER decoder as an example -* AES had its internals marked 'public' in previous versions -* Changed the value of the ASN.1 NO_OBJECT enum -* Various new hacks in the configure script -* Removed the already nominal support for SunOS - -Version 1.3.1, 2003-11-04 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Generalized a few pieces of the DER encoder -* PKCS8::load_key would fail if handed an unencrypted key -* Added a failsafe so PKCS #8 key decoding can't go into an infinite loop - -Version 1.3.0, 2003-11-02 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Major redesign of the PKCS #8 private key import/export system -* Added a small amount of UI interface code for getting passphrases -* Added heuristics that tell if a key, cert, etc is stored as PEM or BER -* Removed CS-Cipher, SHARK, ThreeWay, MD5-MAC, and EMAC -* Removed certain deprecated constructors of RSA, DSA, DH, RW, NR -* Made PEM decoding more forgiving of extra text before the header - -Series 1.2 ----------------------------------------- - -Version 1.2.8, 2003-11-21 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Merged several important bug fixes from 1.3.x - -Version 1.2.7, 2003-10-31 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added support for reading configuration files -* Added constructors so NR and RW keys can be imported easily -* Fixed mp_asm64, which was completely broken in 1.2.6 -* Removed tm_hw_ia32 module; replaced by tm_hard -* Added support for loading certain oddly formed RSA certificates -* Fixed spelling of NON_REPUDIATION enum -* Renamed the option default_to_ca to v1_assume_ca -* Fixed a minor bug in X.509 certificate generation -* Fixed a latent bug in the OID lookup code -* Updated the RPM spec file -* Added to the tutorial - -Version 1.2.6, 2003-07-04 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Major performance increase for PK algorithms on most 64-bit systems -* Cleanups in the low-level MPI code to support asm implementations -* Fixed build problems with some versions of Compaq's C++ compiler -* Removed useless constructors for NR public and private keys -* Removed support for the patch_file directive in module files -* Removed several deprecated functions - -Version 1.2.5, 2003-06-22 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixed a tricky and long-standing memory leak in Pipe -* Major cleanups and fixes in the memory allocation system -* Removed alloc_mlock, which has been superseded by the ml_unix module -* Removed a denial of service vulnerability in X509_Store -* Fixed compilation problems with VS .NET 2003 and Codewarrior 8 -* Added another variant of PKCS8::load_key, taking a memory buffer -* Fixed various minor/obscure bugs which occurred when MP_WORD_BITS != 32 -* BigInt::operator%=(word) was a no-op if the input was a power of 2 -* Fixed portability problems in BigInt::to_u32bit -* Fixed major bugs in SSL3-MAC -* Cleaned up some messes in the PK algorithms -* Cleanups and extensions for OMAC and EAX -* Made changes to the entropy estimation function -* Added a 'beos' module set for use on BeOS -* Officially deprecated a few X509:: and PKCS8:: functions -* Moved the contents of primes.h to numthry.h -* Moved the contents of x509opt.h to x509self.h -* Removed the (empty) desx.h header -* Documentation updates - -Version 1.2.4, 2003-05-29 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixed a bug in EMSA1 affecting NR signature verification -* Fixed a few latent bugs in BigInt related to word size -* Removed an unused function, mp_add2_nc, from the MPI implementation -* Reorganized the core MPI files - -Version 1.2.3, 2003-05-20 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixed a bug that prevented DSA/NR key generation -* Fixed a bug that prevented importing some root CA certs -* Fixed a bug in the BER decoder when handing optional bit or byte strings -* Fixed the encoding of authorityKeyIdentifier in X509_CA -* Added a sanity check in PBKDF2 for zero length passphrases -* Added versions of X509::load_key and PKCS8::load_key that take a file name -* X509_CA generates 128 bit serial numbers now -* Added tests to check PK key generation -* Added a simplistic X.509 CA example -* Cleaned up some of the examples - -Version 1.2.2, 2003-05-13 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Add checks to prevent any BigInt bugs from revealing an RSA or RW key -* Changed the interface of Global_RNG::seed -* Major improvements for the es_unix module -* Added another Win32 entropy source, es_win32 -* The Win32 CryptoAPI entropy source can now poll multiple providers -* Improved the BeOS entropy source -* Renamed pipe_unixfd module to fd_unix -* Fixed a file descriptor leak in the EGD module -* Fixed a few locking bugs - -Version 1.2.1, 2003-05-06 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added ANSI X9.23 compatible CBC padding -* Added an entropy source using Win32 CryptoAPI -* Removed the Pipe I/O operators taking a FILE* -* Moved the BigInt encoding/decoding functions into the BigInt class -* Integrated several fixes for VC++ 7 (from Hany Greiss) -* Fixed the configure.pl script for Windows builds - -Version 1.2.0, 2003-04-28 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Tweaked the Karatsuba cut-off points -* Increased the allowed keylength of HMAC and Blowfish -* Removed the 'mpi_ia32' module, pending rewrite -* Workaround a GCC 2.95.x bug in eme1.cpp - -Series 1.1 ----------------------------------------- - -Version 1.1.13, 2003-04-22 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added OMAC -* Added EAX authenticated cipher mode -* Diffie-Hellman would not do blinding in some cases -* Optimized the OFB and CTR modes -* Corrected Skipjack's word ordering, as per NIST clarification -* Support for all subject/issuer attribute types required by RFC 3280 -* The removeFromCRL CRL reason code is now handled correctly -* Increased the flexibility of the allocators -* Renamed Rijndael to AES, created aes.h, deleted rijndael.h -* Removed support for the 'no_timer' LibraryInitializer option -* Removed 'es_pthr' module, pending further testing -* Cleaned up get_ciph.cpp - -Version 1.1.12, 2003-04-15 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixed a ASN.1 string encoding bug -* Fixed a pair of X509_DN encoding problems -* Base64_Decoder and Hex_Decoder can now validate input -* Removed support for the LibraryInitializer option 'egd_path' -* Added tests for DSA X.509 and PKCS #8 key formats -* Removed a long deprecated feature of DH_PrivateKey's constructor -* Updated the RPM .spec file -* Major documentation updates - -Version 1.1.11, 2003-04-07 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added PKCS #10 certificate requests -* Changed X509_Store searching interface to be more flexible -* Added a generic Certificate_Store interface -* Added a function for generating self-signed X.509 certs -* Cleanups and changes to X509_CA -* New examples for PKCS #10 and self-signed certificates -* Some documentation updates - -Version 1.1.10, 2003-04-03 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* X509_CA can now generate new X.509 CRLs -* Added blinding for RSA, RW, DH, and ElGamal to prevent timing attacks -* More certificate and CRL extensions/attributes are supported -* Better DN handling in X.509 certificates/CRLs -* Added a DataSink hierarchy (suggested by Jim Darby) -* Consolidated SecureAllocator and ManagedAllocator -* Many cleanups and generalizations -* Added a (slow) pthreads based EntropySource -* Fixed some threading bugs - -Version 1.1.9, 2003-02-25 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added support for using X.509v2 CRLs -* Fixed several bugs in the path validation algorithm -* Certificates can be verified for a particular usage -* Algorithm for comparing distinguished names now follows X.509 -* Cleaned up the code for the es_beos, es_ftw, es_unix modules -* Documentation updates - -Version 1.1.8, 2003-01-29 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixes for the certificate path validation algorithm in X509_Store -* Fixed a bug affecting X509_Certificate::is_ca_cert() -* Added a general configuration interface for policy issues -* Cleanups and API changes in the X.509 CA, cert, and store code -* Made various options available for X509_CA users -* Changed X509_Time's interface to work around time_t problems -* Fixed a theoretical weakness in Randpool's entropy mixing function -* Fixed problems compiling with GCC 2.95.3 and GCC 2.96 -* Fixed a configure bug (reported by Jon Wilson) affecting MinGW - -Version 1.1.7, 2003-01-12 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixed an obscure but dangerous bug in SecureVector::swap -* Consolidated SHA-384 and SHA-512 to save code space -* Added SSL3-MAC and SSL3-PRF -* Documentation updates, including a new tutorial - -Version 1.1.6, 2002-12-10 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Initial support for X.509v3 certificates and CAs -* Major redesign/rewrite of the ASN.1 encoding/decoding code -* Added handling for DSA/NR signatures encoded as DER SEQUENCEs -* Documented the generic cipher lookup interface -* Added an (untested) entropy source for BeOS -* Various cleanups and bug fixes - -Version 1.1.5, 2002-11-17 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added the discrete logarithm integrated encryption system (DLIES) -* Various optimizations for BigInt -* Added support for assembler optimizations in modules -* Added BigInt x86 optimizations module (mpi_ia32) - -Version 1.1.4, 2002-11-10 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Speedup of 15-30% for PK algorithms -* Implemented the PBES2 encryption scheme -* Fixed a potential bug in decoding RSA and RW private keys -* Changed the DL_Group class interface to handle different formats better -* Added support for PKCS #3 encoded DH parameters -* X9.42 DH parameters use a PEM label of 'X942 DH PARAMETERS' -* Added key pair consistency checking -* Fixed a compatibility problem with gcc 2.96 (pointed out by Hany Greiss) -* A botan-config script is generated at configure time -* Documentation updates - -Version 1.1.3, 2002-11-03 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added a generic public/private key loading interface -* Fixed a small encoding bug in RSA, RW, and DH -* Changed the PK encryption/decryption interface classes -* ECB supports using padding methods -* Added a function-based interface for library initialization -* Added support for RIPEMD-128 and Tiger PKCS#1 v1.5 signatures -* The cipher mode benchmarks now use 128-bit AES instead of DES -* Removed some obsolete typedefs -* Removed OpenCL support (opencl.h, the OPENCL_* macros, etc) -* Added tests for PKCS #8 encoding/decoding -* Added more tests for ECB and CBC - -Version 1.1.2, 2002-10-21 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Support for PKCS #8 encoded RSA, DSA, and DH private keys -* Support for Diffie-Hellman X.509 public keys -* Major reorganization of how X.509 keys are handled -* Added PKCS #5 v2.0's PBES1 encryption scheme -* Added a generic cipher lookup interface -* Added the WiderWake4+1 stream cipher -* Added support for sync-able stream ciphers -* Added a 'paranoia level' option for the LibraryInitializer -* More security for RNG output meant for long term keys -* Added documentation for some of the new 1.1.x features -* CFB's feedback argument is now specified in bits -* Renamed CTR class to CTR_BE -* Updated the RSA and DSA examples to use X.509 and PKCS #8 key formats - -Version 1.1.1, 2002-10-15 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added the Korean hash function HAS-160 -* Partial support for RSA and DSA X.509 public keys -* Added a mostly functional BER encoder/decoder -* Added support for non-deterministic MAC functions -* Initial support for PEM encoding/decoding -* Internal cleanups in the PK algorithms -* Several new convenience functions in Pipe -* Fixed two nasty bugs in Pipe -* Messed with the entropy sources for es_unix -* Discrete logarithm groups are checked for safety more closely now -* For compatibility with GnuPG, ElGamal now supports DSA-style groups - -Version 1.1.0, 2002-09-14 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added entropy estimation to the RNGs -* Improved the overall design of both Randpool and ANSI_X917_RNG -* Added a separate RNG for nonce generation -* Added window exponentiation support in power_mod -* Added a get_s2k function and the PKCS #5 S2K algorithms -* Added the TLSv1 PRF -* Replaced BlockCipherModeIV typedef with InitializationVector class -* Renamed PK_Key_Agreement_Scheme to PK_Key_Agreement -* Renamed SHA1 -> SHA_160 and SHA2_x -> SHA_x -* Added support for RIPEMD-160 PKCS#1 v1.5 signatures -* Changed the key agreement scheme interface -* Changed the S2K and KDF interfaces -* Better SCAN compatibility for HAVAL, Tiger, MISTY1, SEAL, RC5, SAFER-SK -* Added support for variable-pass Tiger -* Major speedup for Rabin-Williams key generation - -Series 1.0 ----------------------------------------- - -Version 1.0.2, 2003-01-12 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixed an obscure SEGFAULT causing bug in Pipe -* Fixed an obscure but dangerous bug in SecureVector::swap - -Version 1.0.1, 2002-09-14 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixed a minor bug in Randpool::random() -* Added some new aliases and typedefs for 1.1.x compatibility -* The 4096-bit RSA benchmark key was decimal instead of hex -* EMAC was returning an incorrect name - -Version 1.0.0, 2002-08-26 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Octal I/O of BigInt is now supported -* Fixed portability problems in the es_egd module -* Generalized IV handling in the block cipher modes -* Added Karatsuba multiplication and k-ary exponentiation -* Fixed a problem in the multiplication routines - -Series 0.9 ----------------------------------------- - -Version 0.9.2, 2002-08-18 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* DH_PrivateKey::public_value() was returning the wrong value -* Various BigInt optimizations -* The filters.h header now includes hex.h and base64.h -* Moved Counter mode to ctr.h -* Fixed a couple minor problems with VC++ 7 -* Fixed problems with the RPM spec file - -Version 0.9.1, 2002-08-10 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Grand rename from OpenCL to Botan -* Major optimizations for the PK algorithms -* Added ElGamal encryption -* Added Whirlpool -* Tweaked memory allocation parameters -* Improved the method of seeding the global RNG -* Moved pkcs1.h to eme_pkcs.h -* Added more test vectors for some algorithms -* Fixed error reporting in the BigInt tests -* Removed Default_Timer, it was pointless -* Added some new example applications -* Removed some old examples that weren't that interesting -* Documented the compression modules - -Version 0.9.0, 2002-08-03 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* EMSA4 supports variable salt size -* PK_* can take a string naming the encoding method to use -* Started writing some internals documentation - -Series 0.8 ----------------------------------------- - -Version 0.8.7, 2002-07-30 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixed bugs in EME1 and EMSA4 -* Fixed a potential crash at shutdown -* Cipher modes returned an ill-formed name -* Removed various deprecated types and headers -* Cleaned up the Pipe interface a bit -* Minor additions to the documentation -* First stab at a Visual C++ makefile (doc/Makefile.vc7) - -Version 0.8.6, 2002-07-25 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added EMSA4 (aka PSS) -* Brought the manual up to date; many corrections and additions -* Added a parallel hash function construction -* Lookup supports all available algorithms now -* Lazy initialization of the lookup tables -* Made more discrete logarithm groups available through get_dl_group() -* StreamCipher_Filter supports seeking (if the underlying cipher does) -* Minor optimization for GCD calculations -* Renamed SAFER_SK128 to SAFER_SK -* Removed many previously deprecated functions -* Some now-obsolete functions, headers, and types have been deprecated -* Fixed some bugs in DSA prime generation -* DL_Group had a constructor for DSA-style prime gen but it wasn't defined -* Reversed the ordering of the two arguments to SEAL's constructor -* Fixed a threading problem in the PK algorithms -* Fixed a minor memory leak in lookup.cpp -* Fixed pk_types.h (it was broken in 0.8.5) -* Made validation tests more verbose -* Updated the check and example applications - -Version 0.8.5, 2002-07-21 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Major changes to constructors for DL-based cryptosystems (DSA, NR, DH) -* Added a DL_Group class -* Reworking of the pubkey internals -* Support in lookup for aliases and PK algorithms -* Renamed CAST5 to CAST_128 and CAST256 to CAST_256 -* Added EMSA1 -* Reorganization of header files -* LibraryInitializer will install new allocator types if requested -* Fixed a bug in Diffie-Hellman key generation -* Did a workaround in pipe.cpp for GCC 2.95.x on Linux -* Removed some debugging code from init.cpp that made FTW ES useless -* Better checking for invalid arguments in the PK algorithms -* Reduced Base64 and Hex default line length (if line breaking is used) -* Fixes for HP's aCC compiler -* Cleanups in BigInt - -Version 0.8.4, 2002-07-14 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added Nyberg-Rueppel signatures -* Added Diffie-Hellman key exchange (kex interface is subject to change) -* Added KDF2 -* Enhancements to the lookup API -* Many things formerly taking pointers to algorithms now take names -* Speedups for prime generation -* LibraryInitializer has support for seeding the global RNG -* Reduced SAFER-SK128 memory consumption -* Reversed the ordering of public and private key values in DSA constructor -* Fixed serious bugs in MemoryMapping_Allocator -* Fixed memory leak in Lion -* FTW_EntropySource was not closing the files it read -* Fixed line breaking problem in Hex_Encoder - -Version 0.8.3, 2002-06-09 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added DSA and Rabin-Williams signature schemes -* Added EMSA3 -* Added PKCS#1 v1.5 encryption padding -* Added Filters for PK algorithms -* Added a Keyed_Filter class -* LibraryInitializer processes arguments now -* Major revamp of the PK interface classes -* Changed almost all of the Filters for non-template operation -* Changed HMAC, Lion, Luby-Rackoff to non-template classes -* Some fairly minor BigInt optimizations -* Added simple benchmarking for PK algorithms -* Added hooks for fixed base and fixed exponent modular exponentiation -* Added some examples for using RSA -* Numerous bugfixes and cleanups -* Documentation updates - -Version 0.8.2, 2002-05-18 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added an (experimental) algorithm lookup interface -* Added code for directly testing BigInt -* Added SHA2-384 -* Optimized SHA2-512 -* Major optimization for Adler32 (thanks to Dan Nicolaescu) -* Various minor optimizations in BigInt and related areas -* Fixed two bugs in X9.19 MAC, both reported by Darren Starsmore -* Fixed a bug in BufferingFilter -* Made a few fixes for MacOS X -* Added a workaround in configure.pl for GCC 2.95.x -* Better support for PowerPC, ARM, and Alpha -* Some more cleanups - -Version 0.8.1, 2002-05-06 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Major code cleanup (check doc/deprecated.txt) -* Various bugs fixed, including several portability problems -* Renamed MessageAuthCode to MessageAuthenticationCode -* A replacement for X917 is in x917_rng.h -* Changed EMAC to non-template class -* Added ANSI X9.19 compatible CBC-MAC -* TripleDES now supports 128 bit keys - -Version 0.8.0, 2002-04-24 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Merged BigInt: many bugfixes and optimizations since alpha2 -* Added RSA (rsa.h) -* Added EMSA2 (emsa2.h) -* Lots of new interface code for public key algorithms (pk_base.h, pubkey.h) -* Changed some interfaces, including SymmetricKey, to support the global rng -* Fixed a serious bug in ManagedAllocator -* Renamed RIPEMD128 to RIPEMD_128 and RIPEMD160 to RIPEMD_160 -* Removed some deprecated stuff -* Added a global random number generator (rng.h) -* Added clone functions to most of the basic algorithms -* Added a library initializer class (init.h) -* Version macros in version.h -* Moved the base classes from opencl.h to base.h -* Renamed the bzip2 module to comp_bzip2 and zlib to comp_zlib -* Documentation updates for the new stuff (still incomplete) -* Many new deprecated things: check doc/deprecated.txt - -Series 0.7 ----------------------------------------- - -Version 0.7.10, 2002-04-07 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Added EGD_EntropySource module (es_egd) -* Added a file tree walking EntropySource (es_ftw) -* Added MemoryLocking_Allocator module (alloc_mlock) -* Renamed the pthr_mux, unix_rnd, and mmap_mem modules -* Changed timer mechanism; the clock method can be switched on the fly. -* Renamed MmapDisk_Allocator to MemoryMapping_Allocator -* Renamed ent_file.h to es_file.h (ent_file.h is around, but deprecated) -* Fixed several bugs in MemoryMapping_Allocator -* Added more default sources for Unix_EntropySource -* Changed SecureBuffer to use same allocation methods as SecureVector -* Added bigint_divcore into mp_core to support BigInt alpha2 release -* Removed some Pipe functions deprecated since 0.7.8 -* Some fixes for the configure program - -Version 0.7.9, 2002-03-19 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Memory allocation substantially revamped -* Added memory allocation method based on mmap(2) in the mmap_mem module -* Added ECB and CTS block cipher modes (ecb.h, cts.h) -* Added a Mutex interface (mutex.h) -* Added module pthr_mux, implementing the Mutex interface -* Added Threaded Filter interface (thr_filt.h) -* All algorithms can now by keyed with SymmetricKey objects -* More testing occurs with --validate (expected failures) -* Fixed two bugs reported by Hany Greiss, in Luby-Rackoff and RC6 -* Fixed a buffering bug in Bzip_Decompress and Zlib_Decompress -* Made X917 safer (and about 1/3 as fast) -* Documentation updates - -Version 0.7.8, 2002-02-28 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* More capabilities for Pipe, inspired by SysV STREAMS, including peeking, - better buffering, and stack ops. NOT BACKWARDS COMPATIBLE: SEE DOCUMENTATION -* Added a BufferingFilter class -* Added popen() based EntropySource for generic Unix systems (unix_rnd) -* Moved 'devrand' module into main distribution (ent_file.h), renamed to - File_EntropySource, and changed interface somewhat. -* Made Randpool somewhat more conservative and also 25% faster -* Minor fixes and updates for the configure script -* Added some tweaks for memory allocation -* Documentation updates for the new Pipe interface -* Fixed various minor bugs -* Added a couple of new example programs (stack and hasher2) - -Version 0.7.7, 2001-11-24 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Filter::send now works in the constructor of a Filter subclass -* You may now have to include explicitly in some code -* Added preliminary PK infrastructure classes in pubkey.h and pkbase.h -* Enhancements to SecureVector (append, destroy functions) -* New infrastructure for secure memory allocation -* Added IEEE P1363 primitives MGF1, EME1, KDF1 -* Rijndael optimizations and cleanups -* Changed CipherMode to BlockCipherMode(B*) -* Fixed a nasty bug in pipe_unixfd -* Added portions of the BigInt code into the main library -* Support for VAX, SH, POWER, PowerPC-64, Intel C++ - -Version 0.7.6, 2001-10-14 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fixed several serious bugs in SecureVector created in 0.7.5 -* Square optimizations -* Fixed shared objects on MacOS X and HP-UX -* Fixed static libs for KCC 4.0; works with KCC 3.4g as well -* Full support for Athlon and K6 processors using GCC -* Added a table of prime numbers < 2**16 (primes.h) -* Some minor documentation updates - -Version 0.7.5, 2001-08-19 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Split checksum.h into adler32.h, crc24.h, and crc32.h -* Split modes.h into cbc.h, cfb.h, and ofb.h -* CBC_wPadding* has been replaced by CBC_Encryption and CBC_Decryption -* Added OneAndZeros and NoPadding methods for CBC -* Added Lion, a very fast block cipher construction -* Added an S2K base class (s2k.h) and an OpenPGP_S2K class (pgp_s2k.h) -* Basic types (ciphers, hashes, etc) know their names now (call name()) -* Changed the EntropySource type somewhat -* Big speed-ups for ISAAC, Adler32, CRC24, and CRC32 -* Optimized CAST-256, DES, SAFER-SK, Serpent, SEAL, MD2, and RIPEMD-160 -* Some semantics of SecureVector have changed slightly -* The mlock module has been removed for the time being -* Added string handling functions for hashes and MACs -* Various non-user-visible cleanups -* Shared library soname is now set to the full version number - -Version 0.7.4, 2001-07-15 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* New modules: Zlib, gettimeofday and x86 RTC timers, Unix I/O for Pipe -* Fixed a vast number of errors in the config script/makefile/specfile -* Pipe now has a stdio(3) interface as well as C++ iostreams -* ARC4 supports skipping the first N bytes of the cipher stream (ala MARK4) -* Bzip2 supports decompressing multiple concatenated streams, and flushing -* Added a simple 'overall average' score to the benchmarks -* Fixed a small bug in the POSIX timer module -* Removed a very-unlikely-to-occur bug in most of the hash functions -* filtbase.h now includes , not -* Minor documentation updates - -Version 0.7.3, 2001-06-08 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Fix build problems on Solaris/SPARC -* Fix build problems with Perl versions < 5.6 -* Fixed some stupid code that broke on a few compilers -* Added string handling functions to Pipe -* MISTY1 optimizations - -Version 0.7.2, 2001-06-03 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Build system supports modules -* Added modules for mlock, a /dev/random EntropySource, POSIX1.b timers -* Added Bzip2 compression filter, contributed by Peter Jones -* GNU make no longer required (tested with 4.4BSD pmake and Solaris make) -* Fixed minor bug in several of the hash functions -* Various other minor fixes and changes -* Updates to the documentation - -Version 0.7.1, 2001-05-16 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Rewrote configure script: more consistent and complete -* Made it easier to find out parameters of types at run time (opencl.h) -* New functions for finding the version being used (version.h) -* New SymmetricKey interface for Filters (symkey.h) -* InvalidKeyLength now records what the invalid key length was -* Optimized DES, CS-Cipher, MISTY1, Skipjack, XTEA -* Changed GOST to use correct S-box ordering (incompatible change) -* Benchmark code was almost totally rewritten -* Many more entries in the test vector file -* Fixed minor and idiotic bug in check.cpp - -Version 0.7.0, 2001-03-01 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* First public release - diff --git a/src/botan/doc/lowlevel.txt b/src/botan/doc/lowlevel.txt deleted file mode 100644 index 852d7eb43..000000000 --- a/src/botan/doc/lowlevel.txt +++ /dev/null @@ -1,236 +0,0 @@ - -The Low-Level Interface -================================= - -Botan has two different interfaces. The one documented in this section -is meant more for implementing higher-level types (see the section on -filters, earlier in this manual) than for use by applications. Using -it safely requires a solid knowledge of encryption techniques and best -practices, so unless you know, for example, what CBC mode and nonces -are, and why PKCS #1 padding is important, you should avoid this -interface in favor of something working at a higher level. - -Basic Algorithm Abilities ---------------------------------- - -There are a small handful of functions implemented by most of Botan's -algorithm objects. Among these are: - -.. cpp:function:: std::string Algorithm::name() - -Returns a human-readable string of the name of this -algorithm. Examples of names returned are "AES-128" and -"HMAC(SHA-512)". You can turn names back into algorithm objects using -the functions in ``lookup.h``. - -.. cpp:function:: void Algorithm::clear() - -Clear out the algorithm's internal state. A block cipher object will -"forget" its key, a hash function will "forget" any data put into it, -etc. The object will look and behave as it did when you initially -allocated it. - -.. cpp:function:: T* Algorithm::clone() - -This function is central to Botan's name-based interface. The -``clone`` has many different return types, such as ``BlockCipher``\* -and ``HashFunction``\*, depending on what kind of object it is called -on. Note that unlike Java's clone, this returns a new object in a -"pristine" state; that is, operations done on the initial object -before calling ``clone`` do not affect the initial state of the new -clone. - -Cloned objects can (and should) be deallocated with the C++ ``delete`` -operator. - -Keys and IVs ---------------------------------- - -Both symmetric keys and initialization values can be considered byte -(or octet) strings. These are represented by - -.. cpp:class:: OctetString - - Also known as ``SymmetricKey`` and ``InitializationVector``, when - you want to express intent. - - .. cpp:function:: OctetString(RandomNumberGenerator& rng, size_t length) - - This constructor creates a new random key *length* bytes long - using the random number generator. - - .. cpp:function:: OctetString(std::string str) - - The argument *str* is assumed to be a hex string; it is - converted to binary and stored. Whitespace is ignored. - - .. cpp:function:: OctetString(const byte* input, size_t length) - - This constructor copies its input. - - .. cpp:function:: as_string() const - - Returns the hex representation of the key or IV - -Symmetrically Keyed Algorithms ---------------------------------- - -Block ciphers, stream ciphers, and MACs are all keyed operations; to -be useful, they have to be set to use a particular key, which is a -randomly chosen string of bits of a specified length. The length -required by any particular algorithm may vary, depending on both the -algorithm specification and the implementation. You can query any -botan object to find out what key length(s) it supports. - -To make this similarity in terms of keying explicit, all algorithms of -those types are derived from the :cpp:class`SymmetricAlgorithm` base. -This type provides functions for setting the key, and querying -restrictions on the size of the key. - -.. cpp:class:: SymmetricAlgorithm - - .. cpp:function:: void set_key(const byte* key, size_t length) - - .. cpp:function:: void set_key(const SymmetricKey& key) - - This sets the key to the value specified. Most algorithms only - accept keys of certain lengths. If you attempt to call - ``set_key`` with a key length that is not supported, the - exception ``Invalid_Key_Length`` will be thrown. - - In all cases, ``set_key`` must be called on an object before any - data processing (encryption, decryption, etc) is done by that - object. If this is not done, the results are undefined. - - .. cpp:function:: bool valid_keylength(size_t length) const - - This function returns true if and only if *length* is a valid - keylength for the algorithm. - - .. cpp:function:: size_t minimum_keylength() const - - Return the smallest key length (in bytes) that is acceptible for the - algorithm. - - .. cpp:function:: size_t maximum_keylength() const - - Return the largest key length (in bytes) that is acceptible for the - algorithm - -Block Ciphers ---------------------------------- - -All block ciphers classes in botan are subclasses of - -.. cpp:class:: BlockCipher - - Which subclasses the :cpp:class:`SymmetricAlgorithm` interface. - - .. cpp:function:: size_t block_size() const - - Returns the block size of the cipher in bytes - - .. cpp:function:: void encrypt_n(const byte* in, \ - byte* out, size_t n) const - - Encrypt *n* blocks of data, taking the input from the array *in* - and placing the ciphertext into *out*. The two pointers may be - identical, but should not overlap ranges. - - .. cpp:function:: void encrypt(const byte* in, byte* out) const - - Encrypt a single block, taking the input from *in* and placing - it in *out*. Acts like :cpp:func:`encrypt_n`\ (in, out, 1). - - .. cpp:function:: void encrypt(byte* block) const - - Identical to :cpp:func:`encrypt`\ (block, block) - - .. cpp:function:: void decrypt_n(const byte* in, byte out, size_t n) const - - Decrypt *n* blocks of data, taking the input from *in* and - placing the plaintext in *out*. The two pointers may be - identical, but should not overlap ranges. - - .. cpp:function:: void decrypt(const byte* in, byte* out) const - - Decrypt a single block, taking the input from *in* and placing it - in *out*. Acts like :cpp:func:`decrypt_n`\ (in, out, 1). - - .. cpp:function:: void decrypt(byte* block) const - - Identical to :cpp:func:`decrypt`\ (block, block) - -Stream Ciphers ---------------------------------- - -Stream ciphers are somewhat different from block ciphers, in that -encrypting data results in changing the internal state of the -cipher. Also, you may encrypt any length of data in one go (in byte -amounts). - -.. cpp:function:: void StreamCipher::encrypt(const byte* in, byte* out, size_t length) - -.. cpp:function:: void StreamCipher::encrypt(byte* data, size_t length) - -Stream ciphers implement the ``SymmetricAlgorithm`` interface. - -Hash Functions / Message Authentication Codes ----------------------------------------------- - -Hash functions take their input without producing any output, only -producing anything when all input has already taken place. MACs are -very similar, but are additionally keyed. Both of these are derived -from the base class ``BufferedComputation``, which has the following -functions. - -.. cpp:function:: size_t BufferedComputation::output_length() - -Return the size of the output of this function. - -.. cpp:function:: void BufferedComputation::update(const byte* input, size_t length) - -.. cpp:function:: void BufferedComputation::update(byte input) - -.. cpp:function:: void BufferedComputation::update(const std::string& input) - -Updates the hash/mac calculation with *input*. - -.. cpp:function:: void BufferedComputation::final(byte* out) - -.. cpp:function:: SecureVector BufferedComputation::final() - -Complete the hash/MAC calculation and place the result into ``out``. -For the argument taking an array, exactly ``output_length`` bytes will -be written. After you call ``final``, the hash function is reset to -its initial state, so it may be reused immediately. - -The second method of using final is to call it with no arguments at -all, as shown in the second prototype. It will return the hash/mac -value in a memory buffer. - -There is also a pair of functions called ``process``. They are a -combination of a single ``update``, and ``final``. Both versions -return the final value, rather than placing it an array. Calling -``process`` with a single byte value isn't available, mostly because -it would rarely be useful. - -A MAC can be viewed (in most cases) as a keyed hash function, so -classes that are derived from ``MessageAuthenticationCode`` have -``update`` and ``final`` classes just like a ``HashFunction`` (and -like a ``HashFunction``, after ``final`` is called, it can be used to -make a new MAC right away; the key is kept around). - -A MAC has the ``SymmetricAlgorithm`` interface in addition to the -``BufferedComputation`` interface. - -Checksums -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Checksums are very similar to hash functions, and in fact share the -same interface. But there are some significant differences, the major -ones being that the output size is very small (usually in the range of -2 to 4 bytes), and is not cryptographically secure. But for their -intended purpose (error checking), they perform very well. Some -examples of checksums included in Botan are the Adler32 and CRC32 -checksums. diff --git a/src/botan/doc/passhash.txt b/src/botan/doc/passhash.txt deleted file mode 100644 index 8ce3cf805..000000000 --- a/src/botan/doc/passhash.txt +++ /dev/null @@ -1,117 +0,0 @@ - -Password Hashing -======================================== - -Storing passwords for user authentication purposes in plaintext is the -simplest but least secure method; when an attacker compromises the -database in which the passwords are stored, they immediately gain -access to all of them. Often passwords are reused among multiple -services or machines, meaning once a password to a single service is -known an attacker has a substantial head start on attacking other -machines. - -The general approach is to store, instead of the password, the output -of a one way function of the password. Upon receiving an -authentication request, the authenticator can recompute the one way -function and compare the value just computed with the one that was -stored. If they match, then the authentication request succeeds. But -when an attacker gains access to the database, they only have the -output of the one way function, not the original password. - -Common hash functions such as SHA-256 are one way, but used alone they -have problems for this purpose. What an attacker can do, upon gaining -access to such a stored password database, is hash common dictionary -words and other possible passwords, storing them in a list. Then he -can search through his list; if a stored hash and an entry in his list -match, then he has found the password. Even worse, this can happen -*offline*: an attacker can begin hashing common passwords days, -months, or years before ever gaining access to the database. In -addition, if two users choose the same password, the one way function -output will be the same for both of them, which will be visible upon -inspection of the database. - -There are two solutions to these problems: salting and -iteration. Salting refers to including, along with the password, a -randomly chosen value which perturbs the one way function. Salting can -reduce the effectivness of offline dictionary generation (because for -each potential password, an attacker would have to compute the one way -function output for all possible salts - with a large enough salt, -this can make the problem quite difficult). It also prevents the same -password from producing the same output, as long as the salts do not -collide. With a large salt (say 80 to 128 bits) this will be quite -unlikely. Iteration refers to the general technique of forcing -multiple one way function evaluations when computing the output, to -slow down the operation. For instance if hashing a single password -requires running SHA-256 100,000 times instead of just once, that will -slow down user authentication by a factor of 100,000, but user -authentication happens quite rarely, and usually there are more -expensive operations that need to occur anyway (network and database -I/O, etc). On the other hand, an attacker who is attempting to break a -database full of stolen password hashes will be seriously -inconvenienced by a factor of 100,000 slowdown; they will be able to -only test at a rate of .0001% of what they would without iterations -(or, equivalently, will require 100,000 times as many zombie botnet -hosts). - -Botan provides two techniques for password hashing, bcrypt and -passhash9. - -.. _bcrypt: - -Bcrypt Password Hashing ----------------------------------------- - -Bcrypt is a password hashing scheme originally designed for use in -OpenBSD, but numerous other implementations exist. It is made -available by including ``bcrypt.h``. Bcrypt provides outputs that -look like this:: - - "$2a$12$7KIYdyv8Bp32WAvc.7YvI.wvRlyVn0HP/EhPmmOyMQA4YKxINO0p2" - -.. cpp:function:: std::string generate_bcrypt(const std::string& password, \ - RandomNumberGenerator& rng, u16bit work_factor = 10) - - Takes the password to hash, a rng, and a work factor. Higher values - increase the amount of time the algorithm runs, increasing the cost - of cracking attempts. The resulting hash is returned as a string. - -.. cpp:function:: bool check_bcrypt(const std::string& password, \ - const std::string& hash) - - Takes a password and a bcrypt output and returns true if the - password is the same as the one that was used to generate the - bcrypt hash. - -Here is an example of using bcrypt: - -.. literalinclude:: examples/bcrypt.cpp - -.. _passhash9: - -Passhash9 ----------------------------------------- - -Botan also provides a password hashing technique called passhash9, in -``passhash9.h``, which is based on PBKDF2. Its outputs look like:: - - "$9$AAAKxwMGNPSdPkOKJS07Xutm3+1Cr3ytmbnkjO6LjHzCMcMQXvcT" - -.. cpp:function:: std::string generate_passhash9(const std::string& password, \ - RandomNumberGenerator& rng, u16bit work_factor = 10, byte alg_id = 0) - - Functions much like ``generate_bcrypt``. The last parameter, - ``alg_id``, specifies which PRF to use. Currently defined values - are - - ======= ============== - Value PRF algorithm - ======= ============== - 0 HMAC(SHA-1) - 1 HMAC(SHA-256) - 2 CMAC(Blowfish) - ======= ============== - -.. cpp:function:: bool check_passhash9(const std::string& password, \ - const std::string& hash) - - Functions much like ``check_bcrypt`` diff --git a/src/botan/doc/pbkdf.txt b/src/botan/doc/pbkdf.txt deleted file mode 100644 index f24dcd188..000000000 --- a/src/botan/doc/pbkdf.txt +++ /dev/null @@ -1,76 +0,0 @@ - -.. _pbkdf: - -PBKDF Algorithms -======================================== - -There are various procedures for turning a passphrase into a arbitrary -length key for use with a symmetric cipher. A general interface for -such algorithms is presented in ``pbkdf.h``. The main function is -``derive_key``, which takes a passphrase, a salt, an iteration count, -and the desired length of the output key, and returns a key of that -length, deterministically produced from the passphrase and salt. If an -algorithm can't produce a key of that size, it will throw an exception -(most notably, PKCS #5's PBKDF1 can only produce strings between 1 and -$n$ bytes, where $n$ is the output size of the underlying hash -function). - -The purpose of the iteration count is to make the algorithm take -longer to compute the final key (reducing the speed of brute-force -attacks of various kinds). Most standards recommend an iteration count -of at least 10000. Currently defined PBKDF algorithms are -"PBKDF1(digest)", "PBKDF2(digest)", and "OpenPGP-S2K(digest)"; you can -retrieve any of these using the ``get_pbkdf``, found in -``lookup.h``. As of this writing, "PBKDF2(SHA-256)" with 10000 -iterations and a 16 byte salt is recommend for new applications. - -.. cpp:function:: OctetString PBKDF::derive_key( \ - size_t output_len, const std::string& passphrase, \ - const byte* salt, size_t salt_len, \ - size_t iterations) const - - Computes a key from *passphrase* and the *salt* (of length - *salt_len* bytes) using an algorithm-specific interpretation of - *iterations*, producing a key of length *output_len*. - - Use an iteration count of at least 10000. The salt should be - randomly chosen by a good random number generator (see - :ref:`random_number_generators` for how), or at the very least - unique to this usage of the passphrase. - - If you call this function again with the same parameters, you will - get the same key. - -:: - - PBKDF* pbkdf = get_pbkdf("PBKDF2(SHA-256)"); - AutoSeeded_RNG rng; - - SecureVector salt = rng.random_vec(16); - OctetString aes256_key = pbkdf->derive_key(32, "password", - &salt[0], salt.size(), - 10000); - - -OpenPGP S2K ----------------------------------------- - -There are some oddities about OpenPGP's S2K algorithms that are -documented here. For one thing, it uses the iteration count in a -strange manner; instead of specifying how many times to iterate the -hash, it tells how many *bytes* should be hashed in total -(including the salt). So the exact iteration count will depend on the -size of the salt (which is fixed at 8 bytes by the OpenPGP standard, -though the implementation will allow any salt size) and the size of -the passphrase. - -To get what OpenPGP calls "Simple S2K", set iterations to 0, and do -not specify a salt. To get "Salted S2K", again leave the iteration -count at 0, but give an 8-byte salt. "Salted and Iterated S2K" -requires an 8-byte salt and some iteration count (this should be -significantly larger than the size of the longest passphrase that -might reasonably be used; somewhere from 1024 to 65536 would probably -be about right). Using both a reasonably sized salt and a large -iteration count is highly recommended to prevent password guessing -attempts. - diff --git a/src/botan/doc/pgpkey.txt b/src/botan/doc/pgpkey.txt deleted file mode 100644 index ef8827835..000000000 --- a/src/botan/doc/pgpkey.txt +++ /dev/null @@ -1,43 +0,0 @@ - -PGP Code Signing Key -======================================== - -.. highlight:: none - -The following PGP key is used to sign all releases:: - - pub 2048R/EFBADFBC 2004-10-30 - Key fingerprint = 621D AF64 11E1 851C 4CF9 A2E1 6211 EBF1 EFBA DFBC - uid Botan Distribution Key - - -----BEGIN PGP PUBLIC KEY BLOCK----- - Version: GnuPG v2.0.17 (GNU/Linux) - - mQELBEGD1j0BCADHxPJkPcjJE+4Dlisx2hVc0Dj6JI1MSLrkM8R+2bOhVUSferxP - T1EMPhfrAdOHTAloyvRThJztnZsNKqfLL49GGcBLdEGAVNks1pG37Teze5Lx1XIu - zJFrozL2sqBy5C6nHpFgd1tcD68Rah2wp0u2cR9owXf1IqKdEfuo661+MTv7wTB1 - 4hKV75nB7ZO6676SEZRILYM+7RJwKAKEmEPJc6hEf94VXn9ecNzaTlHgYkjhz9db - LOd3od9XvuUw+LMR1dwBqMxbvR90MiXjbedDEkbArcZB9YOAIvEX/lC3qaW4XJt4 - iwHWl/YVZEfALcvQywe2CDrH5hO794wd9MpBAAYptBZCb3RhbiBEaXN0cmlidXRp - b24gS2V5iQEqBBMBAgAUAhsDAh4BAheABQJKfFpnBBUKCQgACgkQYhHr8e+637xk - PQf/aOi78XenwwvFrwXOVIVTdZIf8rK1zJksf26h09UD8uVV6z5iiTcpn86+eN9p - 6Ar8IH3tD+JuFnPSwZ/r9MNC2XZwenYo4Gb14jqM6/9hBe328vmeM4Y1G7bD4HrL - kgV5WEyokqm3zbp3FBLr3Vh68TAC5JB9aHevra+cCA2u3vBNI3YUM5z4TdO150P3 - J00whkqImQEUni8bgxvllBLFM+uhucsX3HZWkoDEpotbg8yd0bqMkiPEyMr1OnJq - eDVDMrB5wnyLgLFfRAAw3mopM0C1PNOAHr/BIYiaDHX2OwnOfep8rMDoRVf2Ge0D - DBgsJJ6LduQHLeg403SHWL2F6YkCHAQTAQIABgUCQYPWUgAKCRBcD5boTsFta+r9 - EACWVis7YcaGkKKgRB/5ox8rM36XVhMXdh/hnnGHt5rapbbRRkRHRcWU8WIcFO1A - 59+TfwNNd8gN1MEt/5aX5KHWVKHBDexJgIxm6Dm1pisYHf/dnYQPM18hmqqwNlKY - 97hFkPpHd7enrtc/SvGbQhhLXYlpwBrdMl76e9xJLnnrRQksxegGPo8cr+C9HTs1 - Lwa8zzBxyBwYBYX+0moDkDShEhuXx6mEOXrGvQanJuIvpoIwGH+62E65MbJGlwWp - w/MAtm2jFhBIhGV0bqJCFp9zIgdNgfskBaPr0oilbuJQZqP0Iqe/6CCt4XkS51yW - ZqxjLAFpEpvDec4PGw3witKf/koGon9X8C035+nEjLBrWy18Q91vw2USyLI+mm9d - iMAS8pY2gomfxBO2VwYHJryZykjCYQkccRA1tHteRj4gqTObo0Ak47y5MnplTWwi - 40oP7K2cfhCRBmMioxmYES4xsHEupfRBo3xr1Jq9q0t688WTT1NXHPMPoueF9mKZ - Cf2pa9aHsqBmWTm3sCaNQKGubCDBEUmJUyndmSatJyYM7NVYoUp6EfqMACFuTNdB - sjKMh7aWVikQpbJDfA1BIU3lZeqgjgrghVAWkEOBfhG0IVZj+RVCJpsqoTJ8asY2 - VreArSCyr/VnLEnfuH/QpgvCiCbepo3E34DJt4SaAOO2ZohGBBARAgAGBQJMGVc1 - AAoJEKY/LL36AvvMgsoAn2G7kXd09BF7ffk1Sfh174SVrvM9AKC7+R7x0+yV3SCd - JkkUOo3xR5cOxw== - =1QuR - -----END PGP PUBLIC KEY BLOCK----- diff --git a/src/botan/doc/pubkey.txt b/src/botan/doc/pubkey.txt deleted file mode 100644 index 6ff016038..000000000 --- a/src/botan/doc/pubkey.txt +++ /dev/null @@ -1,541 +0,0 @@ - -Public Key Cryptography -================================= - -Public key cryptography (also called assymmetric cryptography) is a collection -of techniques allowing for encryption, signatures, and key agreement. - -Key Objects ----------------------------------------- - -Public and private keys are represented by classes ``Public_Key`` and it's -subclass ``Private_Key``. The use of inheritence here means that a -``Private_Key`` can be converted into a reference to a public key. - -None of the functions on ``Public_Key`` and ``Private_Key`` itself are -particularly useful for users of the library, because 'bare' public key -operations are *very insecure*. The only purpose of these functions is to -provide a clean interface that higher level operations can be built on. So -really the only thing you need to know is that when a function takes a -reference to a ``Public_Key``, it can take any public key or private key, and -similiarly for ``Private_Key``. - -Types of ``Public_Key`` include ``RSA_PublicKey``, ``DSA_PublicKey``, -``ECDSA_PublicKey``, ``DH_PublicKey``, ``ECDH_PublicKey``, ``RW_PublicKey``, -``NR_PublicKey``,, and ``GOST_3410_PublicKey``. There are cooresponding -``Private_Key`` classes for each of these algorithms. - -.. _creating_new_private_keys: - -Creating New Private Keys ----------------------------------------- - -Creating a new private key requires two things: a source of random numbers -(see :ref:`random_number_generators`) and some algorithm specific parameters -that define the *security level* of the resulting key. For instance, the -security level of an RSA key is (at least in part) defined by the length of -the public key modulus in bits. So to create a new RSA private key, you would -call - -.. cpp:function:: RSA_PrivateKey::RSA_PrivateKey(RandomNumberGenerator& rng, size_t bits) - - A constructor that creates a new random RSA private key with a modulus - of length *bits*. - -Algorithms based on the discrete-logarithm problem uses what is called a -*group*; a group can safely be used with many keys, and for some operations, -like key agreement, the two keys *must* use the same group. There are -currently two kinds of discrete logarithm groups supported in botan: the -integers modulo a prime, represented by :ref:`dl_group`, and elliptic curves -in GF(p), represented by :ref:`ec_group`. A rough generalization is that the -larger the group is, the more secure the algorithm is, but coorespondingly the -slower the operations will be. - -Given a ``DL_Group``, you can create new DSA, Diffie-Hellman, and -Nyberg-Rueppel key pairs with - -.. cpp:function:: DSA_PrivateKey::DSA_PrivateKey(RandomNumberGenerator& rng, \ - const DL_Group& group, const BigInt& x = 0) - -.. cpp:function:: DH_PrivateKey::DH_PrivateKey(RandomNumberGenerator& rng, \ - const DL_Group& group, const BigInt& x = 0) - -.. cpp:function:: NR_PrivateKey::NR_PrivateKey(RandomNumberGenerator& rng, \ - const DL_Group& group, const BigInt& x = 0) - -.. cpp:function:: ElGamal_PrivateKey::ElGamal_PrivateKey(RandomNumberGenerator& rng, \ - const DL_Group& group, const BigInt& x = 0) - - The optional *x* parameter to each of these contructors is a private key - value. This allows you to create keys where the private key is formed by - some special technique; for instance you can use the hash of a password (see - :ref:`pbkdf` for how to do that) as a private key value. Normally, you would - leave the value as zero, letting the class generate a new random key. - -Finally, given an ``EC_Group`` object, you can create a new ECDSA, -ECDH, or GOST 34.10-2001 private key with - -.. cpp:function:: ECDSA_PrivateKey::ECDSA_PrivateKey(RandomNumberGenerator& rng, \ - const EC_Group& domain, const BigInt& x = 0) - -.. cpp:function:: ECDH_PrivateKey::ECDH_PrivateKey(RandomNumberGenerator& rng, \ - const EC_Group& domain, const BigInt& x = 0) - -.. cpp:function:: GOST_3410_PrivateKey::GOST_3410_PrivateKey(RandomNumberGenerator& rng, \ - const EC_Group& domain, const BigInt& x = 0) - - -Generating RSA keys -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -This example will generate an RSA key of a specified bitlength, and put it -into a pair of key files. One is the public key in X.509 format (PEM encoded), -the private key is in PKCS #8 format (also PEM encoded), either encrypted or -unencrypted depending on if a password was given. - -.. literalinclude:: examples/rsa_kgen.cpp - -Generate DSA keys -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -This example generates a 2048 bit DSA key - -.. literalinclude:: examples/dsa_kgen.cpp - - -.. _serializing_private_keys: - -Serializing Private Keys Using PKCS #8 ----------------------------------------- - -The standard format for serializing a private key is PKCS #8, the operations -for which are defined in ``pkcs8.h``. It supports both unencrypted and -encrypted storage. - -.. cpp:function:: SecureVector PKCS8::BER_encode(const Private_Key& key, \ - RandomNumberGenerator& rng, const std::string& password, const std::string& pbe_algo = "") - - Takes any private key object, serializes it, encrypts it using - *password*, and returns a binary structure representing the private - key. - - The final (optional) argument, *pbe_algo*, specifies a particular - password based encryption (or PBE) algorithm. If you don't specify a - PBE, a sensible default will be used. - -.. cpp:function:: std::string PKCS8::PEM_encode(const Private_Key& key, \ - RandomNumberGenerator& rng, const std::string& pass, const std::string& pbe_algo = "") - - This formats the key in the same manner as ``BER_encode``, but additionally - encodes it into a text format with identifying headers. Using PEM encoding - is *highly* recommended for many reasons, including compatibility with other - software, for transmission over 8-bit unclean channels, because it can be - identified by a human without special tools, and because it sometimes allows - more sane behavior of tools that process the data. - -Unencrypted serialization is also supported. - -.. warning:: - - In most situations, using unecrypted private key storage is a bad idea, - because anyone can come along and grab the private key without having to - know any passwords or other secrets. Unless you have very particular - security requirements, always use the versions that encrypt the key based on - a passphrase, described above. - -.. cpp:function:: SecureVector PKCS8::BER_encode(const Private_Key& key) - - Serializes the private key and returns the result. - -.. cpp:function:: std::string PKCS8::PEM_encode(const Private_Key& key) - - Serializes the private key, base64 encodes it, and returns the - result. - -Last but not least, there are some functions that will load (and -decrypt, if necessary) a PKCS #8 private key: - -.. cpp:function:: Private_Key* PKCS8::load_key(DataSource& in, \ - RandomNumberGenerator& rng, const User_Interface& ui) - -.. cpp:function:: Private_Key* PKCS8::load_key(DataSource& in, \ - RandomNumberGenerator& rng, std::string passphrase = "") - -.. cpp:function:: Private_Key* PKCS8::load_key(const std::string& filename, \ - RandomNumberGenerator& rng, const User_Interface& ui) - -.. cpp:function:: Private_Key* PKCS8::load_key(const std::string& filename, \ - RandomNumberGenerator& rng, const std::string& passphrase = "") - -These functions will return an object allocated key object based on the data -from whatever source it is using (assuming, of course, the source is in fact -storing a representation of a private key, and the decryption was -sucessful). The encoding used (PEM or BER) need not be specified; the format -will be detected automatically. The key is allocated with ``new``, and should -be released with ``delete`` when you are done with it. The first takes a -generic ``DataSource`` that you have to create - the other is a simple wrapper -functions that take either a filename or a memory buffer and create the -appropriate ``DataSource``. - -The versions taking a ``std::string`` attempt to decrypt using the password -given (if the key is encrypted; if it is not, the passphase value will be -ignored). If the passphrase does not decrypt the key, an exception will be -thrown. - -The ones taking a ``User_Interface`` provide a simple callback interface which -makes handling incorrect passphrases and such a bit simpler. A -``User_Interface`` has very little to do with talking to users; it's just a -way to glue together Botan and whatever user interface you happen to be using. - -.. note:: - - In a future version, it is likely that ``User_Interface`` will be - replaced by a simple callback using ``std::function``. - -To use ``User_Interface``, derive a subclass and implement: - -.. cpp:function:: std::string User_Interface::get_passphrase(const std::string& what, \ - const std::string& source, UI_Result& result) const - - The ``what`` argument specifies what the passphrase is needed for (for - example, PKCS #8 key loading passes ``what`` as "PKCS #8 private key"). This - lets you provide the user with some indication of *why* your application is - asking for a passphrase; feel free to pass the string through ``gettext(3)`` - or moral equivalent for i18n purposes. Similarly, ``source`` specifies where - the data in question came from, if available (for example, a file name). If - the source is not available for whatever reason, then ``source`` will be an - empty string; be sure to account for this possibility. - - The function returns the passphrase as the return value, and a status code - in ``result`` (either ``OK`` or ``CANCEL_ACTION``). If ``CANCEL_ACTION`` is - returned in ``result``, then the return value will be ignored, and the - caller will take whatever action is necessary (typically, throwing an - exception stating that the passphrase couldn't be determined). In the - specific case of PKCS #8 key decryption, a ``Decoding_Error`` exception will - be thrown; your UI should assume this can happen, and provide appropriate - error handling (such as putting up a dialog box informing the user of the - situation, and canceling the operation in progress). - -.. _serializing_public_keys: - -Serializing Public Keys -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -To import and export public keys, use: - -.. cpp:function:: MemoryVector X509::BER_encode(const Public_Key& key) - -.. cpp:function:: std::string X509::PEM_encode(const Public_Key& key) - -.. cpp:function:: Public_Key* X509::load_key(DataSource& in) - -.. cpp:function:: Public_Key* X509::load_key(const SecureVector& buffer) - -.. cpp:function:: Public_Key* X509::load_key(const std::string& filename) - - These functions operate in the same way as the ones described in - :ref:`serializing_private_keys`, except that no encryption option is - availabe. - -.. _dl_group: - -DL_Group -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -As described in :ref:`creating_new_private_keys`, a discrete logarithm group -can be shared among many keys, even keys created by users who do not trust -each other. However, it is necessary to trust the entity who created the -group; that is why organization like NIST use algorithms which generate groups -in a deterministic way such that creating a bogus group would require breaking -some trusted cryptographic primitive like SHA-2. - -Instantiating a ``DL_Group`` simply requires calling - -.. cpp:function:: DL_Group::DL_Group(const std::string& name) - - The *name* parameter is a specially formatted string that consists of three - things, the type of the group ("modp" or "dsa"), the creator of the group, - and the size of the group in bits, all delimited by '/' characters. - - Currently all "modp" groups included in botan are ones defined by the - Internet Engineering Task Force, so the provider is "ietf", and the strings - look like "modp/ietf/N" where N can be any of 768, 1024, 1536, 2048, 3072, - 4096, 6144, or 8192. This group type is used for Diffie-Hellman and ElGamal - algorithms. - - The other type, "dsa" is used for DSA and Nyberg-Rueppel keys. They can - also be used with Diffie-Hellman and ElGamal, but this is less common. The - currently available groups are "dsa/jce/N" for N in 512, 768, or 1024, and - "dsa/botan/N" with N being 2048 or 3072. The "jce" groups are the standard - DSA groups used in the Java Cryptography Extensions, while the "botan" - groups were randomly generated using the FIPS 186-3 algorithm by the library - maintainers. - -You can generate a new random group using - -.. cpp:function:: DL_Group::DL_Group(RandomNumberGenerator& rng, \ - PrimeType type, size_t pbits, size_t qbits = 0) - - The *type* can be either ``Strong``, ``Prime_Subgroup``, or - ``DSA_Kosherizer``. *pbits* specifies the size of the prime in - bits. If the *type* is ``Prime_Subgroup`` or ``DSA_Kosherizer``, - then *qbits* specifies the size of the subgroup. - -You can serialize a ``DL_Group`` using - -.. cpp:function:: SecureVector DL_Group::DER_Encode(Format format) - -or - -.. cpp:function:: std::string DL_Group::PEM_encode(Format format) - -where *format* is any of - -* ``ANSI_X9_42`` (or ``DH_PARAMETERS``) for modp groups -* ``ANSI_X9_57`` (or ``DSA_PARAMETERS``) for DSA-style groups -* ``PKCS_3`` is an older format for modp groups; it should only - be used for backwards compatability. - -You can reload a serialized group using - -.. cpp:function:: void DL_Group::BER_decode(DataSource& source, Format format) - -.. cpp:function:: void DL_Group::PEM_decode(DataSource& source) - -.. _ec_group: - -EC_Group -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -An ``EC_Group`` is initialized by passing the name of the -group to be used to the constructor. These groups have -semi-standardized names like "secp256r1" and "brainpool512r1". - -Key Checking ---------------------------------- - -Most public key algorithms have limitations or restrictions on their -parameters. For example RSA requires an odd exponent, and algorithms -based on the discrete logarithm problem need a generator $> 1$. - -Each public key type has a function - -.. cpp:function:: bool Public_Key::check_key(RandomNumberGenerator& rng, bool strong) - - This function performs a number of algorithm-specific tests that the key - seems to be mathematically valid and consistent, and returns true if all of - the tests pass. - - It does not have anything to do with the validity of the key for any - particular use, nor does it have anything to do with certificates that link - a key (which, after all, is just some numbers) with a user or other - entity. If *strong* is ``true``, then it does "strong" checking, which - includes expensive operations like primality checking. - -Encryption ---------------------------------- - -Safe public key encryption requires the use of a padding scheme which hides -the underlying mathematical properties of the algorithm. Additionally, they -will add randomness, so encrypting the same plaintext twice produces two -different ciphertexts. - -The primary interface for encryption is - -.. cpp:class:: PK_Encryptor - - .. cpp:function:: SecureVector encrypt( \ - const byte* in, size_t length, RandomNumberGenerator& rng) const - - .. cpp:function:: SecureVector encrypt( \ - const MemoryRegion& in, RandomNumberGenerator& rng) const - - These encrypt a message, returning the ciphertext. - - .. cpp:function:: size_t maximum_input_size() const - - Returns the maximum size of the message that can be processed, in - bytes. If you call :cpp:func:`PK_Encryptor::encrypt` with a value larger - than this the operation will fail with an exception. - -:cpp:class:`PK_Encryptor` is only an interface - to actually encrypt you have -to create an implementation, of which there are currently two available in the -library, :cpp:class:`PK_Encryptor_EME` and :cpp:class:`DLIES_Encryptor`. DLIES -is a standard method (from IEEE 1363) that uses a key agreement technique such -as DH or ECDH to perform message encryption. Normally, public key encryption -is done using algorithms which support it directly, such as RSA or ElGamal; -these use the EME class: - -.. cpp:class:: PK_Encryptor_EME - - .. cpp:function:: PK_Encryptor_EME(const Public_Key& key, std::string eme) - - With *key* being the key you want to encrypt messages to. The padding - method to use is specified in *eme*. - - The recommended values for *eme* is "EME1(SHA-1)" or "EME1(SHA-256)". If - you need compatability with protocols using the PKCS #1 v1.5 standard, - you can also use "EME-PKCS1-v1_5". - -.. cpp:class:: DLIES_Encryptor - - Available in the header ``dlies.h`` - - .. cpp:function:: DLIES_Encryptor(const PK_Key_Agreement_Key& key, \ - KDF* kdf, MessageAuthenticationCode* mac, size_t mac_key_len = 20) - - Where *kdf* is a key derivation function (see - :ref:`key_derivation_function`) and *mac* is a - MessageAuthenticationCode. - -The decryption classes are named ``PK_Decryptor``, ``PK_Decryptor_EME``, and -``DLIES_Decryptor``. They are created in the exact same way, except they take -the private key, and the processing function is named ``decrypt``. - - -Signatures ---------------------------------- - -Signature generation is performed using - -.. cpp:class:: PK_Signer - - .. cpp:function:: PK_Signer(const Private_Key& key, \ - const std::string& emsa, \ - Signature_Format format = IEEE_1363) - - Constructs a new signer object for the private key *key* using the - signature format *emsa*. The key must support signature operations. In - the current version of the library, this includes RSA, DSA, ECDSA, GOST - 34.10-2001, Nyberg-Rueppel, and Rabin-Williams. Other signature schemes - may be supported in the future. - - Currently available values for *emsa* include EMSA1, EMSA2, EMSA3, EMSA4, - and Raw. All of them, except Raw, take a parameter naming a message - digest function to hash the message with. The Raw encoding signs the - input directly; if the message is too big, the signing operation will - fail. Raw is not useful except in very specialized applications. Examples - are "EMSA1(SHA-1)" and "EMSA4(SHA-256)". - - For RSA, use EMSA4 (also called PSS) unless you need compatability with - software that uses the older PKCS #1 v1.5 standard, in which case use - EMSA3 (also called "EMSA-PKCS1-v1_5"). For DSA, ECDSA, GOST 34.10-2001, - and Nyberg-Rueppel, you should use EMSA1. - - The *format* defaults to ``IEEE_1363`` which is the only available - format for RSA. For DSA and ECDSA, you can also use - ``DER_SEQUENCE``, which will format the signature as an ASN.1 - SEQUENCE value. - - .. cpp:function:: void update(const byte* in, size_t length) - .. cpp:function:: void update(const MemoryRegion& in) - .. cpp:function:: void update(byte in) - - These add more data to be included in the signature - computation. Typically, the input will be provided directly to a - hash function. - - .. cpp:function:: SecureVector signature(RandomNumberGenerator& rng) - - Creates the signature and returns it - - .. cpp:function:: SecureVector sign_message( \ - const byte* in, size_t length, RandomNumberGenerator& rng) - - .. cpp:function:: SecureVector sign_message( \ - const MemoryRegion& in, RandomNumberGenerator& rng) - - These functions are equivalent to calling - :cpp:func:`PK_Signer::update` and then - :cpp:func:`PK_Signer::signature`. Any data previously provided - using ``update`` will be included. - -Signatures are verified using - -.. cpp:class:: PK_Verifier - - .. cpp:function:: PK_Verifier(const Public_Key& pub_key, \ - const std::string& emsa, Signature_Format format = IEEE_1363) - - Construct a new verifier for signatures assicated with public - key *pub_key*. The *emsa* and *format* should be the same as - that used by the signer. - - .. cpp:function:: void update(const byte* in, size_t length) - .. cpp:function:: void update(const MemoryRegion& in) - .. cpp:function:: void update(byte in) - - Add further message data that is purportedly assocated with the - signature that will be checked. - - .. cpp:function:: bool check_signature(const byte* sig, size_t length) - .. cpp:function:: bool check_signature(const MemoryRegion& sig) - - Check to see if *sig* is a valid signature for the message data - that was written in. Return true if so. This function clears the - internal message state, so after this call you can call - :cpp:func:`PK_Verifier::update` to start verifying another - message. - - .. cpp:function:: bool verify_message(const byte* msg, size_t msg_length, \ - const byte* sig, size_t sig_length) - - .. cpp:function:: bool verify_message(const MemoryRegion& msg, \ - const MemoryRegion& sig) - - These are equivalent to calling :cpp:func:`PK_Verifier::update` - on *msg* and then calling :cpp:func:`PK_Verifier::check_signature` - on *sig*. - -Here is an example of DSA signature generation - -.. literalinclude:: examples/dsa_sign.cpp - -Here is an example that verifies DSA signatures - -.. literalinclude:: examples/dsa_ver.cpp - -Key Agreement ---------------------------------- - -You can get a hold of a ``PK_Key_Agreement_Scheme`` object by calling -``get_pk_kas`` with a key that is of a type that supports key -agreement (such as a Diffie-Hellman key stored in a ``DH_PrivateKey`` -object), and the name of a key derivation function. This can be "Raw", -meaning the output of the primitive itself is returned as the key, or -"KDF1(hash)" or "KDF2(hash)" where "hash" is any string you happen to -like (hopefully you like strings like "SHA-256" or "RIPEMD-160"), or -"X9.42-PRF(keywrap)", which uses the PRF specified in ANSI X9.42. It -takes the name or OID of the key wrap algorithm that will be used to -encrypt a content encryption key. - -How key agreement works is that you trade public values with some -other party, and then each of you runs a computation with the other's -value and your key (this should return the same result to both -parties). This computation can be called by using -``derive_key`` with either a byte array/length pair, or a -``SecureVector`` than holds the public value of the other -party. The last argument to either call is a number that specifies how -long a key you want. - -Depending on the KDF you're using, you *might not* get back a key -of the size you requested. In particular "Raw" will return a number -about the size of the Diffie-Hellman modulus, and KDF1 can only return -a key that is the same size as the output of the hash. KDF2, on the -other hand, will always give you a key exactly as long as you request, -regardless of the underlying hash used with it. The key returned is a -``SymmetricKey``, ready to pass to a block cipher, MAC, or other -symmetric algorithm. - -The public value that should be used can be obtained by calling -``public_data``, which exists for any key that is associated with a -key agreement algorithm. It returns a ``SecureVector``. - -"KDF2(SHA-256)" is by far the preferred algorithm for key derivation -in new applications. The X9.42 algorithm may be useful in some -circumstances, but unless you need X9.42 compatibility, KDF2 is easier -to use. - -An example of using Diffie-Hellman: - -.. literalinclude:: examples/dh.cpp diff --git a/src/botan/doc/python.txt b/src/botan/doc/python.txt deleted file mode 100644 index dcd274eed..000000000 --- a/src/botan/doc/python.txt +++ /dev/null @@ -1,14 +0,0 @@ - -Python Binding -======================================== - -.. highlight:: python - -.. note:: - - The Python binding should be considered alpha software, and the - interfaces may change in the future. - -Botan includes a binding for Python, implemented using Boost.Python. - -.. literalinclude:: examples/python/rsa.py diff --git a/src/botan/doc/reading.txt b/src/botan/doc/reading.txt deleted file mode 100644 index a0e547296..000000000 --- a/src/botan/doc/reading.txt +++ /dev/null @@ -1,23 +0,0 @@ - -Recommended Reading -======================================== - -It's a very good idea if you have some knowledge of cryptography -*before* trying to use the library. This is an area where it is very -easy to make mistakes, and where things are often subtle and/or -counterintuitive. Obviously the library tries to provide things at a -high level precisely to minimize the number of ways things can go -wrong, but naive use will almost certainly not result in a secure -system. - -Especially recommended are: - -- *Cryptography Engineering* - Niels Ferguson, Bruce Schneier, and Tadayoshi Kohno - -- *Security Engineering -- A Guide to Building Dependable Distributed Systems* - Ross Anderson - -- *Handbook of Applied Cryptography* - Alfred J. Menezes, Paul C. Van Oorschot, and Scott A. Vanstone - (`available online `_) diff --git a/src/botan/doc/rng.txt b/src/botan/doc/rng.txt deleted file mode 100644 index 66679271d..000000000 --- a/src/botan/doc/rng.txt +++ /dev/null @@ -1,129 +0,0 @@ -.. _random_number_generators: - -Random Number Generators -======================================== - -The random number generators provided in Botan are meant for creating -keys, IVs, padding, nonces, and anything else that requires 'random' -data. It is important to remember that the output of these classes -will vary, even if they are supplied with the same seed (ie, two -``Randpool`` objects with similar initial states will not produce the -same output, because the value of high resolution timers is added to -the state at various points). - -To create a random number generator, instantiate a ``AutoSeeded_RNG`` -object. This object will handle choosing the right algorithms from the -set of enabled ones and doing seeding using OS specific -routines. The main service a RandomNumberGenerator provides is, of -course, random numbers: - -.. cpp:function:: byte RandomNumberGenerator::random() - - Generates a single random byte and returns it - -.. cpp:function:: void RandomNumberGenerator::randomize(byte* data, size_t length) - - Places *length* bytes into the array pointed to by *data* - -To ensure good quality output, a PRNG needs to be seeded with truly -random data. Normally this is done for you. However it may happen that -your application has access to data that is potentially unpredictable -to an attacker. If so, use - -.. cpp:function:: void RandomNumberGenerator::add_entropy(const byte* data, \ - size_t length) - -which incorporates the data into the current randomness state. Don't -worry about filtering the data or doing any kind of cryptographic -preprocessing (such as hashing); the RNG objects in botan are designed -such that you can feed them any arbitrary non-random or even -maliciously chosen data - as long as at some point some of the seed -data was good the output will be secure. - - -Implementation Notes ----------------------------------------- - -Randpool -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -``Randpool`` is the primary PRNG within Botan. In recent versions all -uses of it have been wrapped by an implementation of the X9.31 PRNG -(see below). If for some reason you should have cause to create a PRNG -instead of using the "global" one owned by the library, it would be -wise to consider the same on the grounds of general caution; while -``Randpool`` is designed with known attacks and PRNG weaknesses in -mind, it is not an standard/official PRNG. The remainder of this -section is a (fairly technical, though high-level) description of the -algorithms used in this PRNG. Unless you have a specific interest in -this subject, the rest of this section might prove somewhat -uninteresting. - -``Randpool`` has an internal state called pool, which is 512 bytes -long. This is where entropy is mixed into and extracted from. There is also a -small output buffer (called buffer), which holds the data which has already -been generated but has just not been output yet. - -It is based around a MAC and a block cipher (which are currently -HMAC(SHA-256) and AES-256). Where a specific size is mentioned, it -should be taken as a multiple of the cipher's block size. For example, -if a 256-bit block cipher were used instead of AES, all the sizes -internally would double. Every time some new output is needed, we -compute the MAC of a counter and a high resolution timer. The -resulting MAC is XORed into the output buffer (wrapping as needed), -and the output buffer is then encrypted with AES, producing 16 bytes -of output. - -After 8 blocks (or 128 bytes) have been produced, we mix the pool. To -do this, we first rekey both the MAC and the cipher; the new MAC key -is the MAC of the current pool under the old MAC key, while the new -cipher key is the MAC of the current pool under the just-chosen MAC -key. We then encrypt the entire pool in CBC mode, using the current -(unused) output buffer as the IV. We then generate a new output -buffer, using the mechanism described in the previous paragraph. - -To add randomness to the PRNG, we compute the MAC of the input and XOR -the output into the start of the pool. Then we remix the pool and -produce a new output buffer. The initial MAC operation should make it -very hard for chosen inputs to harm the security of ``Randpool``, and -as HMAC should be able to hold roughly 256 bits of state, it is -unlikely that we are wasting much input entropy (or, if we are, it -doesn't matter, because we have a very abundant supply). - -ANSI X9.31 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -``ANSI_X931_PRNG`` is the standard issue X9.31 Appendix A.2.4 PRNG, -though using AES-256 instead of 3DES as the block cipher. This PRNG -implementation has been checked against official X9.31 test vectors. - -Internally, the PRNG holds a pointer to another PRNG (typically -Randpool). This internal PRNG generates the key and seed used by the -X9.31 algorithm, as well as the date/time vectors. Each time an X9.31 -PRNG object receives entropy, it passes it along to the PRNG it is -holding, and then pulls out some random bits to generate a new key and -seed. This PRNG considers itself seeded as soon as the internal PRNG -is seeded. - - -Entropy Sources ---------------------------------- - -An ``EntropySource`` is an abstract representation of some method of -gather "real" entropy. This tends to be very system dependent. The -*only* way you should use an ``EntropySource`` is to pass it to a PRNG -that will extract entropy from it -- never use the output directly for -any kind of key or nonce generation! - -``EntropySource`` has a pair of functions for getting entropy from -some external source, called ``fast_poll`` and ``slow_poll``. These -pass a buffer of bytes to be written; the functions then return how -many bytes of entropy were gathered. - -Note for writers of ``EntropySource`` subclasses: it isn't necessary -to use any kind of cryptographic hash on your output. The data -produced by an EntropySource is only used by an application after it -has been hashed by the ``RandomNumberGenerator`` that asked for the -entropy, thus any hashing you do will be wasteful of both CPU cycles -and entropy. - diff --git a/src/botan/doc/secmem.txt b/src/botan/doc/secmem.txt deleted file mode 100644 index eba3462de..000000000 --- a/src/botan/doc/secmem.txt +++ /dev/null @@ -1,81 +0,0 @@ - -Secure Memory Containers -======================================== - -A major concern with mixing modern multiuser OSes and cryptographic -code is that at any time the code (including secret keys) could be -swapped to disk, where it can later be read by an attacker. Botan -stores almost everything (and especially anything sensitive) in memory -buffers that a) clear out their contents when their destructors are -called, and b) have easy plugins for various memory locking functions, -such as the ``mlock`` call on many Unix systems. - -Two of the allocation method used ("malloc" and "mmap") don't -require any extra privileges on Unix, but locking memory does. At -startup, each allocator type will attempt to allocate a few blocks -(typically totaling 128k), so if you want, you can run your -application ``setuid`` ``root``, and then drop privileges -immediately after creating your ``LibraryInitializer``. If you end -up using more than what's been allocated, some of your sensitive data -might end up being swappable, but that beats running as ``root`` -all the time. - -These classes should also be used within your own code for storing -sensitive data. They are only meant for primitive data types (int, -long, etc): if you want a container of higher level Botan objects, you -can just use a ``std::vector``, since these objects know how to clear -themselves when they are destroyed. You cannot, however, have a -``std::vector`` (or any other container) of ``Pipe`` objects or -filters, because these types have pointers to other filters, and -implementing copy constructors for these types would be both hard and -quite expensive (vectors of pointers to such objects is fine, though). - -These types are not described in any great detail: for more information, -consult the definitive sources~--~the header files ``secmem.h`` and -``allocate.h``. - -``SecureBuffer`` is a simple array type, whose size is specified at -compile time. It will automatically convert to a pointer of the -appropriate type, and has a number of useful functions, including -``clear()``, and ``size_t`` ``size()``, which returns the length of -the array. It is a template that takes as parameters a type, and a -constant integer which is how long the array is (for example: -``SecureBuffer key;``). - -``SecureVector`` is a variable length array. Its size can be increased -or decreased as need be, and it has a wide variety of functions useful -for copying data into its buffer. Like ``SecureBuffer``, it implements -``clear`` and ``size``. - -Allocators -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The containers described above get their memory from allocators. As a -user of the library, you can add new allocator methods at run time for -containers, including the ones used internally by the library, to -use. The interface to this is in ``allocate.h``. Code needing to -allocate or deallocate memory calls ``get_allocator``, which returns a -pointer to an allocator object. This pointer should not be freed: the -caller does not own the allocator (it is shared among multiple -allocatore users, and uses a mutex to serialize access internally if -necessary). It is possible to call ``get_allocator`` with a specific -name to request a particular type of allocator, otherwise, a default -allocator type is returned. - -At start time, the only allocator known is a ``Default_Allocator``, -which just allocates memory using ``malloc``, and zeroizes it when the -memory is released. It is known by the name "malloc". If you ask for -another type of allocator ("locking" and "mmap" are currently used), -and it is not available, some other allocator will be returned. - -You can add in a new allocator type using ``add_allocator_type``. This -function takes a string and a pointer to an allocator. The string gives this -allocator type a name to which it can be referred when one is requesting it -with ``get_allocator``. If an error occurs (such as the name being -already registered), this function returns false. It will return true if the -allocator was successfully registered. If you ask it to, -``LibraryInitializer`` will do this for you. - -Finally, you can set the default allocator type that will be returned -using the policy setting "default_alloc" to the name of any previously -registered allocator. diff --git a/src/botan/doc/ssl.txt b/src/botan/doc/ssl.txt deleted file mode 100644 index f536b7198..000000000 --- a/src/botan/doc/ssl.txt +++ /dev/null @@ -1,58 +0,0 @@ - -.. _ssl_api: - -SSL and TLS -======================================== - -.. versionadded:: 1.9.4 - -Botan supports both client and server implementations of the SSL/TLS -protocols, including SSL v3, TLS v1.0, and TLS v1.1. The insecure and -obsolete SSL v2 is not supported. - -The implementation uses ``std::tr1::function``, so it may not have -been compiled into the version you are using; you can test for the -feature macro ``BOTAN_HAS_SSL_TLS`` to check. - -TLS Clients ----------------------------------------- - -.. cpp:class:: TLS_Client - - .. cpp:function:: TLS_Client( \ - std::tr1::function input_fn, \ - std::tr1::function output_fn, \ - const TLS_Policy& policy, RandomNumberGenerator& rng) - - Creates a TLS client. It will call *input_fn* to read bytes from - the network and call *output_fn* when bytes need to be written to - the network. - - .. cpp:function:: size_t read(byte* buf, size_t buf_len) - - Reads up to *buf_len* bytes from the open connection into *buf*, - returning the number of bytes actually written. - - .. cpp:function:: void write(const byte* buf, size_t buf_len) - - Writes *buf_len* bytes in *buf* to the remote side - - .. cpp:function:: void close() - - Closes the connection - - .. cpp:function:: std::vector peer_cert_chain() - - Returns the certificate chain of the server - -A simple TLS client example: - -.. literalinclude:: examples/tls_client.cpp - - -TLS Servers ----------------------------------------- - -A simple TLS server - -.. literalinclude:: examples/tls_server.cpp diff --git a/src/botan/doc/support.txt b/src/botan/doc/support.txt deleted file mode 100644 index 288ed8aa0..000000000 --- a/src/botan/doc/support.txt +++ /dev/null @@ -1,19 +0,0 @@ - -Commercial Support Options -======================================== - -Commercial support is currently available for Botan from a couple of -sources. If you provide services related to Botan, email the -development list and your information can be added here. - -* `FlexSecure GmbH `_ offers support for - both Botan and `InSiTo `_ - libraries. Developers from FlexSecure have done extensive work - with Botan in the past, and many new features to Botan have been - implemented and contributed by them. More information at - http://www.flexsecure.eu/insito/support.html - -* `Jack Lloyd `_ can provide services - relating to Botan including performance analysis of application - code using Botan, review of cryptographic use and designs for - security flaws, and implementing new features. diff --git a/src/botan/doc/users.txt b/src/botan/doc/users.txt deleted file mode 100644 index a48d9e60b..000000000 --- a/src/botan/doc/users.txt +++ /dev/null @@ -1,114 +0,0 @@ - -Known Users -======================================== - -This is a list of some of the known users of botan. If you'd like to -be added to the list, email the development list. - -Open Source Software -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* `SoftHSM `_ an open sourced - software PKCS #11 implementation, which is used as part of the - `OpenDNSSEC `_ project. - -* `Qt Creator `_, an - IDE for building Qt applications. - -* `NetSieben's `_ - SSH library provides SSHv2 client connections for C++ - applications, using botan for the crypto. (GPL or commercial) - -* `InSiTo `_ is a library - for ePassports based on botan which was commissioned by the German - Federal Office for Information Security. - -* `QCA `_, the Qt Cryptographic - Architecture (part of KDE4) uses parts of botan as an `embedded - crypto provider - `_. - -* `TCHead `_ is a utility for analyzing - TrueCrypt volume headers. - -* `Octopod `_ is a - file sharing system. - -* `Silverlock `_ - is a GPL password management tool for Windows, OS X, and Linux.

- -* `Monotone `_, a free distributed - version control system, uses botan for RSA authentication, - content hashing, and message authentication. - -* `Publimark `_ - is a tool for hiding messages in an audio file. - -* `KeySafe `_, - a password application for GNOME - -* `SuSE `_ uses botan as part - of a test suite for the GCC optimizer. - -* `Openbench `_, - an open source benchmark suite, uses botan as a component. - -* `VNCcrack `_ - is a password cracker for the VNC authentication/response protocol. - -Commercial Software -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* `Hulu Desktop `_ uses botan - on Windows `(ref) - `_. - -* `Hitman Pro `_ is a malware - scanner for Windows. - -* `Flying Lab Software `_, a Seattle based - game developer, uses botan as a part of their user authentication - process. - -* `CryptoTE `_ is a text editor - with integrated strong cryptography. - -* `TextEgg `_ is an encrypted document editor. - -* `Seagate `_ - uses botan for the drive encryption in the Maxtor OneTouch III Mini - Edition hard drive. - -* `Aegeus Technology Ltd `_ used - botan in a research implementation of SPKI. - -* `E.V.E. Paradox `_, a - suite of games for Windows. - -Research Projects -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* `A Unified Approach to Intra-Domain Security - `_ - describes a system by researches from Oak Ridge National Lab and - Indiana University that uses botan to secure ARP and DHCP. - -* `CLL: A Cryptographic Link Layer for Local Area Networks - `_ describes - a network encryption system using botan. (One of the coauthors, Yves - Jerschow, also contributed a number of optimizations to the - library). - -* The system described in `Enabling Intrusion Detection in IPsec - Protected IPv6 Networks Through Secret-key Sharing - `_ - -* `An experimental tamper detection system - `_ - designed by researchers from the University of Delaware and the US - Army Research Laboratory. - -* A prototype implementation of a telephony signal security system, - described in `Prototyping and evaluation of TCAPsec - `_ - by Kang Chung and Mathilda Gustafsson. diff --git a/src/botan/doc/x509.txt b/src/botan/doc/x509.txt deleted file mode 100644 index d31a84498..000000000 --- a/src/botan/doc/x509.txt +++ /dev/null @@ -1,527 +0,0 @@ - -.. _x509_certificates: - -Certificate Handling -================================= - -A certificate is a binding between some identifying information -(called a *subject*) and a public key. This binding is asserted by a -signature on the certificate, which is placed there by some authority -(the *issuer*) that at least claims that it knows the subject named in -the certificate really "owns" the private key corresponding to the -public key in the certificate. - -The major certificate format in use today is X.509v3, designed by ISO -and further hacked on by dozens (hundreds?) of other organizations. - -When working with certificates, the main class to remember is -``X509_Certificate``. You can read an object of this type, but you can't create -one on the fly; a CA object is necessary for making a new certificate. So for -the most part, you only have to worry about reading them in, verifying the -signatures, and getting the bits of data in them (most commonly the public key, -and the information about the user of that key). An X.509v3 certificate can -contain a literally infinite number of items related to all kinds of -things. Botan doesn't support a lot of them, because nobody uses them and -they're an impossible mess to work with. This section only documents the most -commonly used ones of the ones that are supported; for the rest, read -``x509cert.h`` and ``asn1_obj.h`` (which has the definitions of various common -ASN.1 constructs used in X.509). - -So what's in an X.509 certificate? ------------------------------------ - -Obviously, you want to be able to get the public key. This is achieved by -calling the member function ``subject_public_key``, which will return a -``Public_Key``\*. As to what to do with this, read about ``load_key`` in -:ref:`serializing_public_keys`. In the general case, this could be any kind of -public key, though 99% of the time it will be an RSA key. However, -Diffie-Hellman, DSA, and ECDSA keys are also supported, so be careful about how -you treat this. It is also a wise idea to examine the value returned by -``constraints``, to see what uses the public key is approved for. - -The second major piece of information you'll want is the name/email/etc of the -person to whom this certificate is assigned. Here is where things get a little -nasty. X.509v3 has two (well, mostly just two...) different places where you -can stick information about the user: the *subject* field, and in an extension -called *subjectAlternativeName*. The *subject* field is supposed to only -included the following information: country, organization, an organizational -sub-unit name, and a so-called common name. The common name is usually the name -of the person, or it could be a title associated with a position of some sort -in the organization. It may also include fields for state/province and -locality. What a locality is, nobody knows, but it's usually given as a city -name. - -Botan doesn't currently support any of the Unicode variants used in ASN.1 -(UTF-8, UCS-2, and UCS-4), any of which could be used for the fields in the -DN. This could be problematic, particularly in Asia and other areas where -non-ASCII characters are needed for most names. The UTF-8 and UCS-2 string -types *are* accepted (in fact, UTF-8 is used when encoding much of the time), -but if any of the characters included in the string are not in ISO 8859-1 (ie 0 -... 255), an exception will get thrown. Currently the ``ASN1_String`` type -holds its data as ISO 8859-1 internally (regardless of local character set); -this would have to be changed to hold UCS-2 or UCS-4 in order to support -Unicode (also, many interfaces in the X.509 code would have to accept or return -a ``std::wstring`` instead of a ``std::string``). - -Like the distinguished names, subject alternative names can contain a lot of -things that Botan will flat out ignore (most of which you would likely never -want to use). However, there are three very useful pieces of information that -this extension might hold: an email address (mailbox@example.com), a DNS name -(somehost.example.com), or a URI (http://www.example.com). - -So, how to get the information? Call ``subject_info`` with the name of the -piece of information you want, and it will return a ``std::string`` that is -either empty (signifying that the certificate doesn't have this information), -or has the information requested. There are several names for each possible -item, but the most easily readable ones are: "Name", "Country", "Organization", -"Organizational Unit", "Locality", "State", "RFC822", "URI", and "DNS". These -values are returned as a ``std::string``. - -You can also get information about the issuer of the certificate in the same -way, using ``issuer_info``. - -X.509v3 Extensions -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -X.509v3 specifies a large number of possible extensions. Botan supports some, -but by no means all of them. This section lists which ones are supported, and -notes areas where there may be problems with the handling. - - - Key Usage and Extended Key Usage: No problems known. - - - Basic Constraints: No problems known. The default for a v1/v2 certificate is - assume it's a CA if and only if the option "x509/default_to_ca" is set. A v3 - certificate is marked as a CA if (and only if) the basic constraints - extension is present and set for a CA cert. - - - Subject Alternative Names: Only the "rfc822Name", "dNSName", and - "uniformResourceIdentifier" fields will be stored; all others are - ignored. - - - Issuer Alternative Names: Same restrictions as the Subject - Alternative Names extension. New certificates generated by Botan - never include the issuer alternative name. - - - Authority Key Identifier: Only the version using KeyIdentifier is - supported. If the GeneralNames version is used and the extension is - critical, an exception is thrown. If both the KeyIdentifier and GeneralNames - versions are present, then the KeyIdentifier will be used, and the - GeneralNames ignored. - - - Subject Key Identifier: No problems known. - -Revocation Lists -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -It will occasionally happen that a certificate must be revoked before its -expiration date. Examples of this happening include the private key being -compromised, or the user to which it has been assigned leaving an -organization. Certificate revocation lists are an answer to this problem -(though online certificate validation techniques are starting to become -somewhat more popular). Every once in a while the CA will release a new CRL, -listing all certificates that have been revoked. Also included is various -pieces of information like what time a particular certificate was revoked, and -for what reason. In most systems, it is wise to support some form of -certificate revocation, and CRLs handle this easily. - -For most users, processing a CRL is quite easy. All you have to do is call the -constructor, which will take a filename (or a ``DataSource&``). The CRLs -can either be in raw BER/DER, or in PEM format; the constructor will figure out -which format without any extra information. For example:: - - X509_CRL crl1("crl1.der"); - - DataSource_Stream in("crl2.pem"); - X509_CRL crl2(in); - -After that, pass the ``X509_CRL`` object to a ``X509_Store`` object -with - -.. cpp:function:: X509_Code X509_Store::add_crl(const X509_CRL& crl) - -and all future verifications will take into account the certificates -listed, assuming ``add_crl`` returns ``VERIFIED``. If it doesn't -return ``VERIFIED``, then the return value is an error code signifying -that the CRL could not be processed due to some problem (which could -be something like the issuing certificate could not being found, an -invalid signature, or the CRL having some format problem). For more -about the ``X509_Store`` API, read :ref:`x509_store`. - -Reading Certificates ---------------------------------- - -``X509_Certificate`` has two constructors, each of which takes a source of -data; a filename to read, and a ``DataSource&``:: - - X509_Certificate cert1("cert1.pem"); - - /* This file contains two certificates, concatenated */ - DataSource_Stream in("certs2_and_3.pem"); - - X509_Certificate cert2(in); // read the first cert - X509_Certificate cert3(in); // read the second cert - -.. _x509_store: - -Storing and Using Certificates ---------------------------------- - -If you read a certificate, you probably want to verify the signature on -it. However, consider that to do so, we may have to verify the signature on the -certificate that we used to verify the first certificate, and on and on until -we hit the top of the certificate tree somewhere. It would be a might huge pain -to have to handle all of that manually in every application, so there is -something that does it for you: ``X509_Store``. - -The basic operations are: put certificates and CRLs into it, search for -certificates, and attempt to verify certificates. That's about it. In the -future, there will be support for online retrieval of certificates and CRLs (eg -with the HTTP cert-store interface currently under consideration by PKIX). - -Adding Certificates -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -You can add new certificates to a certificate store using any of these -functions: - -.. cpp:function:: void X509_Store::add_cert(const X509_Certificate& cert, \ - bool trusted = false) - -.. cpp:function:: void X509_Store::add_cert(DataSource& source) - -.. cpp:function:: void X509_Store::add_trusted_certs(DataSource& source) - -The versions that take a ``DataSource&`` will add all the certificates -that it can find in that source. - -All of them add the cert(s) to the store. The "trusted" certificates are the -ones that you are willing to trust for certification purposes. For example, say -your application is working with certificates that are owned by employees of -some company, and all of their certificates are signed by the company CA, whose -certificate is in turned signed by a commercial root CA. What you would then do -is include the certificate of the commercial CA with your application, and read -it in as a trusted certificate. From there, you could verify the company CA's -certificate, and then use that to verify the end user's certificates. Only -self-signed certificates may be considered trusted. - -Adding CRLs -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. cpp:function:: X509_Code X509_Store::add_crl(const X509_CRL& crl) - -This will process the CRL and mark the revoked certificates. This will -also work if a revoked certificate is added to the store sometime -after the CRL is processed. The function can return an error code -(listed later), or will return ``VERIFIED`` if everything completed -successfully. - -Storing Certificates -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -You can output a set of certificates by calling ``PEM_encode``, which -will return a ``std::string`` containing each of the certificates in -the store, PEM encoded and concatenated. This simple format can easily -be read by both Botan and other libraries/applications. - -Certificate Stores -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -An object of type ``Certificate_Store`` is a generalized interface to an -external source for certificates (and CRLs). Examples of such a store would be -one that looked up the certificates in a SQL database, or by contacting a CGI -script running on a HTTP server. There are currently three mechanisms for -looking up a certificate, and one for retrieving CRLs. By default, most of -these mechanisms will return an empty ``std::vector`` of -``X509_Certificate``. This storage mechanism is *only* queried when doing -certificate validation: it allows you to distribute only the root key with an -application, and let some online method handle getting all the other -certificates that are needed to validate an end entity certificate. In -particular, the search routines will not attempt to access the external -database. - -The three certificate lookup methods are ``by_SKID`` (Subject Key Identifier), -``by_name`` (the CommonName DN entry), and ``by_email`` (stored in either the -distinguished name, or in a subjectAlternativeName extension). The name and -email versions take a ``std::string``, while the SKID version takes a -``SecureVector`` containing the subject key identifier in raw binary. You -can choose not to implement ``by_name`` or ``by_email``, but ``by_SKID`` is -mandatory to implement, and, currently, is the only version that is used by -``X509_Store``. - -Finally, there is a method for finding CRLs, called ``get_crls_for``, that -takes an ``X509_Certificate`` object, and returns a ``std::vector`` of -``X509_CRL``. While normally there will be only one CRL, the use of the vector -makes it easy to return no CRLs (eg, if the certificate store doesn't support -retrieving them), or return multiple ones (for example, if the certificate -store can't determine precisely which key was used to sign the -certificate). Implementing the function is optional, and by default will return -no CRLs. If it is available, it will be used by ``X509_CRL``. - -As for using such a store, you have to tell ``X509_Store`` about it -with - -.. cpp:function:: void X509_Store::add_new_certstore(Certificate_Store* new_store) - - The store object will be owned by (and deleted by) ``X509_Store``, - so make sure to allocate it with ``new``. - -Verifying Certificates -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Verifying a certificate requires that we build up a chain of trust, starting -from the root (usually a commercial CA), down through some number of -intermediate CAs, and finally reaching the actual certificate in -question. Thus, to verify, we actually have to have all those certificates on -hand (or at the very least, know where we can get the ones we need). - -The class which handles both storing certificates, and verifying them, -is - -.. cpp:class:: X509_Store - -.. cpp:type:: Cert_Usage - - Can be any of: - * ``ANY`` (any usage is OK) - * ``CRL_SIGNING`` - * ``TLS_SERVER`` (for SSL/TLS server authentication) - * ``TLS_CLIENT`` (for SSL/TLS client authentication) - * ``CODE_SIGNING`` - * ``EMAIL_PROTECTION`` (usually this means S/MIME) - * ``TIME_STAMPING`` (in theory any time stamp application, - usually IETF PKIX's Time Stamp Protocol) - -.. cpp:function:: X509_Code validate_cert(const X509_Certificate& cert, \ - Cert_Usage usage = ANY) - - Return ``VERIFIED`` if the certificate can safely be considered - valid for the usage(s) described by *usage*, and an error code if - it is not. - -First, how does :cpp:class`X509_Store::validate_cert` know if a certificate is -valid? A certificate is valid if both of the following hold: a) the signature -in the certificate can be verified using the public key in the issuer's -certificate, and b) the issuer's certificate is a valid CA certificate. Note -that this definition is recursive. We get out of this by "bottoming out" when -we reach a certificate that we consider trusted. In general this will either be -a commercial root CA, or an organization or application specific CA. - -There are a few other restrictions (validity periods, key usage restrictions, -etc), but the above summarizes the major points of the validation algorithm. In -theory, Botan implements the certificate path validation algorithm given in RFC -2459, but in practice it does not (yet), because we don't support the X.509v3 -policy or name constraint extensions. - -The default ``ANY`` does not mean valid for any use, it means "is valid for -some usage". This is usually what you want; requiring that a random certificate -support a particular usage will likely result in a lot of failures, unless your -application is very careful to always issue certificates with the proper -extensions, and you never use certificates generated by other apps. - -Return values for ``validate_cert`` (and ``add_crl``) include: - -* VERIFIED: The certificate is valid for the specified use. -* INVALID_USAGE: The certificate cannot be used for the specified use. - -* CANNOT_ESTABLISH_TRUST: The root certificate was not marked as trusted. - -* CERT_CHAIN_TOO_LONG: The certificate chain exceeded the length - allowed by a basicConstraints extension. - -* SIGNATURE_ERROR: An invalid signature was found - -* POLICY_ERROR: Some problem with the certificate policies was found. - -* CERT_FORMAT_ERROR: Some format problem was found in a certificate. -* CERT_ISSUER_NOT_FOUND: The issuer of a certificate could not be found. -* CERT_NOT_YET_VALID: The certificate is not yet valid. -* CERT_HAS_EXPIRED: The certificate has expired. -* CERT_IS_REVOKED: The certificate has been revoked. -* CRL_FORMAT_ERROR: Some format problem was found in a CRL. -* CRL_ISSUER_NOT_FOUND: The issuer of a CRL could not be found. -* CRL_NOT_YET_VALID: The CRL is not yet valid. -* CRL_HAS_EXPIRED: The CRL has expired. -* CA_CERT_CANNOT_SIGN: The CA certificate found does not have an - contain a public key that allows signature verification. -* CA_CERT_NOT_FOR_CERT_ISSUER: The CA cert found is not allowed to - issue certificates. -* CA_CERT_NOT_FOR_CRL_ISSUER: The CA cert found is not allowed to - issue CRLs. -* UNKNOWN_X509_ERROR: Some other error occurred. - -Certificate Authorities ---------------------------------- - -Setting up a CA for X.509 certificates is perhaps the easiest thing to -do related to X.509. A CA is represented by the type ``X509_CA``, -which can be found in ``x509_ca.h``. A CA always needs its own -certificate, which can either be a self-signed certificate (see below -on how to create one) or one issued by another CA (see the section on -PKCS #10 requests). Creating a CA object is done by the following -constructor: - -.. cpp:function:: X509_CA::X509_CA(const X509_Certificate& cert, \ - const Private_Key& key) - -The private key is the private key corresponding to the public key in the -CA's certificate. - -Requests for new certificates are supplied to a CA in the form on PKCS -#10 certificate requests (called a ``PKCS10_Request`` object in -Botan). These are decoded in a similar manner to -certificates/CRLs/etc. A request is vetted by humans (who somehow -verify that the name in the request corresponds to the name of the -entity who requested it), and then signed by a CA key, generating a -new certificate: - -.. cpp:function:: X509_Certificate \ - X509_CA::sign_request(const PKCS10_Request& req) const - -Here's an example: - -.. literalinclude examples/ca.cpp - -Generating CRLs -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -As mentioned previously, the ability to process CRLs is highly important in -many PKI systems. In fact, according to strict X.509 rules, you must not -validate any certificate if the appropriate CRLs are not available (though -hardly any systems are that strict). In any case, a CA should have a valid CRL -available at all times. - -Of course, you might be wondering what to do if no certificates have -been revoked. Never fear; empty CRLs, which revoke nothing at all, can -be issued. To generate a new, empty CRL, just call - -.. cpp:function:: X509_CRL X509_CA::new_crl(u32bit seconds_to_expiration = 0) - - This function will return a new, empty CRL. The - ``seconds_to_expiration`` parameter is the number of seconds before - the CRL expires. If it is set to the (default) value of zero, then a - reasonable default (currently 7 days) will be used. - -On the other hand, you may have issued a CRL before. In that case, you will -want to issue a new CRL that contains all previously revoked -certificates, along with any new ones. This is done by calling - -.. cpp:function:: X509_CRL X509_CA::update_crl(const X509_CRL& old_crl, \ - std::vector new_revoked, size_t seconds_to_expiration = 0) - - Where ``X509_CRL`` is the last CRL this CA issued, and - ``new_revoked`` is a list of any newly revoked certificates. The - function returns a new ``X509_CRL`` to make available for - clients. - -The ``CRL_Entry`` type is a structure that contains, at a minimum, the serial -number of the revoked certificate. As serial numbers are never repeated, the -pairing of an issuer and a serial number (should) distinctly identify any -certificate. In this case, we represent the serial number as a -``SecureVector`` called ``serial``. There are two additional (optional) -values, an enumeration called ``CRL_Code`` that specifies the reason for -revocation (``reason``), and an object that represents the time that the -certificate became invalid (if this information is known). - -If you wish to remove an old entry from the CRL, insert a new entry for the -same cert, with a ``reason`` code of ``DELETE_CRL_ENTRY``. For example, if a -revoked certificate has expired 'normally', there is no reason to continue to -explicitly revoke it, since clients will reject the cert as expired in any -case. - -Self-Signed Certificates -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Generating a new self-signed certificate can often be useful, for example when -setting up a new root CA, or for use in email applications. The library -provides a utility function for this: - -.. cpp:function:: X509_Certificate create_self_signed_cert( \ - const X509_Cert_Options& opts, const Private_Key& key) - - Where *key* is the private key you wish to use (the public key, - used in the certificate itself, is extracted from the private key), - and *opts* is an structure that has various bits of information - that will be used in creating the certificate (this structure, and - its use, is discussed below). - -An example: - -.. literalinclude:: examples/self_sig.cpp - -Creating PKCS #10 Requests -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Also in ``x509self.h``, there is a function for generating new PKCS #10 -certificate requests: - -.. cpp:function:: PKCS10_Request create_cert_req( \ - const X509_Cert_Options& opts, const Private_Key& key) - -This function acts quite similarly to -:cpp:func:`create_self_signed_cert`, except it instead returns a PKCS -#10 certificate request. After creating it, one would typically -transmit it to a CA, who signs it and returns a freshly minted X.509 -certificate. - -An example: - -.. literalinclude:: examples/pkcs10.cpp - -Certificate Options -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -What is this ``X509_Cert_Options`` thing we've been passing around? It's a -class representing a bunch of information that will end up being stored into -the certificate. This information comes in 3 major flavors: information about -the subject (CA or end-user), the validity period of the certificate, and -restrictions on the usage of the certificate. - -First and foremost is a number of ``std::string`` members, which contains -various bits of information about the user: ``common_name``, ``serial_number``, -``country``, ``organization``, ``org_unit``, ``locality``, ``state``, -``email``, ``dns_name``, and ``uri``. As many of these as possible should be -filled it (especially an email address), though the only required ones are -``common_name`` and ``country``. - -There is another value that is only useful when creating a PKCS #10 request, -which is called ``challenge``. This is a challenge password, which you can -later use to request certificate revocation (*if* the CA supports doing -revocations in this manner). - -Then there is the validity period; these are set with ``not_before`` and -``not_after``. Both of these functions also take a ``std::string``, which -specifies when the certificate should start being valid, and when it should -stop being valid. If you don't set the starting validity period, it will -automatically choose the current time. If you don't set the ending time, it -will choose the starting time plus a default time period. The arguments to -these functions specify the time in the following format: "2002/11/27 -1:50:14". The time is in 24-hour format, and the date is encoded as -year/month/day. The date must be specified, but you can omit the time or -trailing parts of it, for example "2002/11/27 1:50" or "2002/11/27". - -Lastly, you can set constraints on a key. The one you're mostly likely to want -to use is to create (or request) a CA certificate, which can be done by calling -the member function ``CA_key``. This should only be used when needed. - -Other constraints can be set by calling the member functions -``add_constraints`` and ``add_ex_constraints``. The first takes a -``Key_Constraints`` value, and replaces any previously set value. If no value -is set, then the certificate key is marked as being valid for any usage. You -can set it to any of the following (for more than one usage, OR them together): -``DIGITAL_SIGNATURE``, ``NON_REPUDIATION``, ``KEY_ENCIPHERMENT``, -``DATA_ENCIPHERMENT``, ``KEY_AGREEMENT``, ``KEY_CERT_SIGN``, ``CRL_SIGN``, -``ENCIPHER_ONLY``, ``DECIPHER_ONLY``. Many of these have quite special -semantics, so you should either consult the appropriate standards document -(such as RFC 3280), or just not call ``add_constraints``, in which case the -appropriate values will be chosen for you. - -The second function, ``add_ex_constraints``, allows you to specify an OID that -has some meaning with regards to restricting the key to particular usages. You -can, if you wish, specify any OID you like, but there is a set of standard ones -that other applications will be able to understand. These are the ones -specified by the PKIX standard, and are named "PKIX.ServerAuth" (for TLS server -authentication), "PKIX.ClientAuth" (for TLS client authentication), -"PKIX.CodeSigning", "PKIX.EmailProtection" (most likely for use with S/MIME), -"PKIX.IPsecUser", "PKIX.IPsecTunnel", "PKIX.IPsecEndSystem", and -"PKIX.TimeStamping". You can call "add_ex_constraints" any number of times - -each new OID will be added to the list to include in the certificate. diff --git a/src/botan/libbotan-1.10.so b/src/botan/libbotan-1.10.so deleted file mode 120000 index c8c3632c6..000000000 --- a/src/botan/libbotan-1.10.so +++ /dev/null @@ -1 +0,0 @@ -libbotan-1.10.so.1.10 \ No newline at end of file diff --git a/src/botan/libbotan-1.10.so.1 b/src/botan/libbotan-1.10.so.1 deleted file mode 120000 index c8c3632c6..000000000 --- a/src/botan/libbotan-1.10.so.1 +++ /dev/null @@ -1 +0,0 @@ -libbotan-1.10.so.1.10 \ No newline at end of file diff --git a/src/botan/libbotan-1.10.so.1.10 b/src/botan/libbotan-1.10.so.1.10 deleted file mode 100755 index 2cef179d9..000000000 Binary files a/src/botan/libbotan-1.10.so.1.10 and /dev/null differ diff --git a/src/botan/readme.txt b/src/botan/readme.txt deleted file mode 100644 index d823b4e04..000000000 --- a/src/botan/readme.txt +++ /dev/null @@ -1,11 +0,0 @@ - -Botan is a C++ library for performing a wide variety of cryptographic -operations. It is released under the 2 clause BSD license; see -doc/license.rst for the specifics. You can file bugs in Bugzilla -(http://bugs.randombit.net/) or by sending a report to the botan-devel -mailing list. More information about the mailing list is at -http://lists.randombit.net/mailman/listinfo/botan-devel/ - -You can find documentation online at http://botan.randombit.net/ as -well as in the doc directory in the distribution. Several examples can -be found in doc/examples as well. diff --git a/src/botan/src/algo_base/algo_base.h b/src/botan/src/algo_base/algo_base.h deleted file mode 100644 index 813216a36..000000000 --- a/src/botan/src/algo_base/algo_base.h +++ /dev/null @@ -1,42 +0,0 @@ -/* -* Algorithm Base Class -* (C) 2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_ALGO_BASE_CLASS_H__ -#define BOTAN_ALGO_BASE_CLASS_H__ - -#include -#include - -namespace Botan { - -/** -* This class represents an algorithm of some kind -*/ -class BOTAN_DLL Algorithm - { - public: - - /** - * Zeroize internal state - */ - virtual void clear() = 0; - - /** - * @return name of this algorithm - */ - virtual std::string name() const = 0; - - Algorithm() {} - virtual ~Algorithm() {} - private: - Algorithm(const Algorithm&) {} - Algorithm& operator=(const Algorithm&) { return (*this); } - }; - -} - -#endif diff --git a/src/botan/src/algo_base/buf_comp.h b/src/botan/src/algo_base/buf_comp.h deleted file mode 100644 index 7838571e9..000000000 --- a/src/botan/src/algo_base/buf_comp.h +++ /dev/null @@ -1,149 +0,0 @@ -/* -* Buffered Computation -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_BUFFERED_COMPUTATION_H__ -#define BOTAN_BUFFERED_COMPUTATION_H__ - -#include -#include - -namespace Botan { - -/** -* This class represents any kind of computation which uses an internal -* state, such as hash functions or MACs -*/ -class BOTAN_DLL Buffered_Computation - { - public: - /** - * @return length of the output of this function in bytes - */ - virtual size_t output_length() const = 0; - - /** - * Add new input to process. - * @param in the input to process as a byte array - * @param length of param in in bytes - */ - void update(const byte in[], size_t length) { add_data(in, length); } - - /** - * Add new input to process. - * @param in the input to process as a MemoryRegion - */ - void update(const MemoryRegion& in) - { - add_data(&in[0], in.size()); - } - - /** - * Add an integer in big-endian order - * @param in the value - */ - template void update_be(const T in) - { - for(size_t i = 0; i != sizeof(T); ++i) - { - byte b = get_byte(i, in); - add_data(&b, 1); - } - } - - /** - * Add new input to process. - * @param str the input to process as a std::string. Will be interpreted - * as a byte array based on - * the strings encoding. - */ - void update(const std::string& str) - { - add_data(reinterpret_cast(str.data()), str.size()); - } - - /** - * Process a single byte. - * @param in the byte to process - */ - void update(byte in) { add_data(&in, 1); } - - /** - * Complete the computation and retrieve the - * final result. - * @param out The byte array to be filled with the result. - * Must be of length output_length() - */ - void final(byte out[]) { final_result(out); } - - /** - * Complete the computation and retrieve the - * final result. - * @return SecureVector holding the result - */ - SecureVector final() - { - SecureVector output(output_length()); - final_result(&output[0]); - return output; - } - - /** - * Update and finalize computation. Does the same as calling update() - * and final() consecutively. - * @param in the input to process as a byte array - * @param length the length of the byte array - * @result the result of the call to final() - */ - SecureVector process(const byte in[], size_t length) - { - add_data(in, length); - return final(); - } - - /** - * Update and finalize computation. Does the same as calling update() - * and final() consecutively. - * @param in the input to process - * @result the result of the call to final() - */ - SecureVector process(const MemoryRegion& in) - { - add_data(&in[0], in.size()); - return final(); - } - - /** - * Update and finalize computation. Does the same as calling update() - * and final() consecutively. - * @param in the input to process as a string - * @result the result of the call to final() - */ - SecureVector process(const std::string& in) - { - update(in); - return final(); - } - - virtual ~Buffered_Computation() {} - private: - /** - * Add more data to the computation - * @param input is an input buffer - * @param length is the length of input in bytes - */ - virtual void add_data(const byte input[], size_t length) = 0; - - /** - * Write the final output to out - * @param out is an output buffer of output_length() - */ - virtual void final_result(byte out[]) = 0; - }; - -} - -#endif diff --git a/src/botan/src/algo_base/info.txt b/src/botan/src/algo_base/info.txt deleted file mode 100644 index cfdd9b691..000000000 --- a/src/botan/src/algo_base/info.txt +++ /dev/null @@ -1,6 +0,0 @@ - -alloc -filters -hex -rng - diff --git a/src/botan/src/algo_base/key_spec.h b/src/botan/src/algo_base/key_spec.h deleted file mode 100644 index 73cd9126f..000000000 --- a/src/botan/src/algo_base/key_spec.h +++ /dev/null @@ -1,88 +0,0 @@ -/* -* Symmetric Key Length Specification -* (C) 2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_KEY_LEN_SPECIFICATION_H__ -#define BOTAN_KEY_LEN_SPECIFICATION_H__ - -#include - -namespace Botan { - -/** -* Represents the length requirements on an algorithm key -*/ -class BOTAN_DLL Key_Length_Specification - { - public: - /** - * Constructor for fixed length keys - * @param keylen the supported key length - */ - Key_Length_Specification(size_t keylen) : - min_keylen(keylen), - max_keylen(keylen), - keylen_mod(1) - { - } - - /** - * Constructor for variable length keys - * @param min_k the smallest supported key length - * @param max_k the largest supported key length - * @param k_mod the number of bytes the key must be a multiple of - */ - Key_Length_Specification(size_t min_k, - size_t max_k, - size_t k_mod = 1) : - min_keylen(min_k), - max_keylen(max_k ? max_k : min_k), - keylen_mod(k_mod) - { - } - - /** - * @param length is a key length in bytes - * @return true iff this length is a valid length for this algo - */ - bool valid_keylength(size_t length) const - { - return ((length >= min_keylen) && - (length <= max_keylen) && - (length % keylen_mod == 0)); - } - - /** - * @return minimum key length in bytes - */ - size_t minimum_keylength() const - { - return min_keylen; - } - - /** - * @return maximum key length in bytes - */ - size_t maximum_keylength() const - { - return max_keylen; - } - - /** - * @return key length multiple in bytes - */ - size_t keylength_multiple() const - { - return keylen_mod; - } - - private: - size_t min_keylen, max_keylen, keylen_mod; - }; - -} - -#endif diff --git a/src/botan/src/algo_base/sym_algo.h b/src/botan/src/algo_base/sym_algo.h deleted file mode 100644 index 705c7d00a..000000000 --- a/src/botan/src/algo_base/sym_algo.h +++ /dev/null @@ -1,91 +0,0 @@ -/* -* Symmetric Algorithm Base Class -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_SYMMETRIC_ALGORITHM_H__ -#define BOTAN_SYMMETRIC_ALGORITHM_H__ - -#include -#include -#include -#include -#include - -namespace Botan { - -/** -* This class represents a symmetric algorithm object. -*/ -class BOTAN_DLL SymmetricAlgorithm : public Algorithm - { - public: - /** - * @return object describing limits on key size - */ - virtual Key_Length_Specification key_spec() const = 0; - - /** - * @return minimum allowed key length - */ - size_t maximum_keylength() const - { - return key_spec().maximum_keylength(); - } - - /** - * @return maxmium allowed key length - */ - size_t minimum_keylength() const - { - return key_spec().minimum_keylength(); - } - - /** - * Check whether a given key length is valid for this algorithm. - * @param length the key length to be checked. - * @return true if the key length is valid. - */ - bool valid_keylength(size_t length) const - { - return key_spec().valid_keylength(length); - } - - /** - * Set the symmetric key of this object. - * @param key the SymmetricKey to be set. - */ - void set_key(const SymmetricKey& key) - { set_key(key.begin(), key.length()); } - - /** - * Set the symmetric key of this object. - * @param key the to be set as a byte array. - * @param length in bytes of key param - */ - void set_key(const byte key[], size_t length) - { - if(!valid_keylength(length)) - throw Invalid_Key_Length(name(), length); - key_schedule(key, length); - } - private: - /** - * Run the key schedule - * @param key the key - * @param length of key - */ - virtual void key_schedule(const byte key[], size_t length) = 0; - }; - -/** -* The two possible directions for cipher filters, determining whether they -* actually perform encryption or decryption. -*/ -enum Cipher_Dir { ENCRYPTION, DECRYPTION }; - -} - -#endif diff --git a/src/botan/src/algo_base/symkey.cpp b/src/botan/src/algo_base/symkey.cpp deleted file mode 100644 index 56648d9c5..000000000 --- a/src/botan/src/algo_base/symkey.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/* -* OctetString -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include - -namespace Botan { - -/* -* Create an OctetString from RNG output -*/ -OctetString::OctetString(RandomNumberGenerator& rng, - size_t length) - { - bits = rng.random_vec(length); - } - -/* -* Create an OctetString from a hex string -*/ -void OctetString::change(const std::string& hex_string) - { - bits.resize(1 + hex_string.length() / 2); - bits.resize(hex_decode(&bits[0], hex_string)); - } - -/* -* Create an OctetString from a byte string -*/ -void OctetString::change(const byte in[], size_t n) - { - bits.resize(n); - bits.copy(in, n); - } - -/* -* Set the parity of each key byte to odd -*/ -void OctetString::set_odd_parity() - { - const byte ODD_PARITY[256] = { - 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x07, 0x07, 0x08, 0x08, 0x0B, 0x0B, - 0x0D, 0x0D, 0x0E, 0x0E, 0x10, 0x10, 0x13, 0x13, 0x15, 0x15, 0x16, 0x16, - 0x19, 0x19, 0x1A, 0x1A, 0x1C, 0x1C, 0x1F, 0x1F, 0x20, 0x20, 0x23, 0x23, - 0x25, 0x25, 0x26, 0x26, 0x29, 0x29, 0x2A, 0x2A, 0x2C, 0x2C, 0x2F, 0x2F, - 0x31, 0x31, 0x32, 0x32, 0x34, 0x34, 0x37, 0x37, 0x38, 0x38, 0x3B, 0x3B, - 0x3D, 0x3D, 0x3E, 0x3E, 0x40, 0x40, 0x43, 0x43, 0x45, 0x45, 0x46, 0x46, - 0x49, 0x49, 0x4A, 0x4A, 0x4C, 0x4C, 0x4F, 0x4F, 0x51, 0x51, 0x52, 0x52, - 0x54, 0x54, 0x57, 0x57, 0x58, 0x58, 0x5B, 0x5B, 0x5D, 0x5D, 0x5E, 0x5E, - 0x61, 0x61, 0x62, 0x62, 0x64, 0x64, 0x67, 0x67, 0x68, 0x68, 0x6B, 0x6B, - 0x6D, 0x6D, 0x6E, 0x6E, 0x70, 0x70, 0x73, 0x73, 0x75, 0x75, 0x76, 0x76, - 0x79, 0x79, 0x7A, 0x7A, 0x7C, 0x7C, 0x7F, 0x7F, 0x80, 0x80, 0x83, 0x83, - 0x85, 0x85, 0x86, 0x86, 0x89, 0x89, 0x8A, 0x8A, 0x8C, 0x8C, 0x8F, 0x8F, - 0x91, 0x91, 0x92, 0x92, 0x94, 0x94, 0x97, 0x97, 0x98, 0x98, 0x9B, 0x9B, - 0x9D, 0x9D, 0x9E, 0x9E, 0xA1, 0xA1, 0xA2, 0xA2, 0xA4, 0xA4, 0xA7, 0xA7, - 0xA8, 0xA8, 0xAB, 0xAB, 0xAD, 0xAD, 0xAE, 0xAE, 0xB0, 0xB0, 0xB3, 0xB3, - 0xB5, 0xB5, 0xB6, 0xB6, 0xB9, 0xB9, 0xBA, 0xBA, 0xBC, 0xBC, 0xBF, 0xBF, - 0xC1, 0xC1, 0xC2, 0xC2, 0xC4, 0xC4, 0xC7, 0xC7, 0xC8, 0xC8, 0xCB, 0xCB, - 0xCD, 0xCD, 0xCE, 0xCE, 0xD0, 0xD0, 0xD3, 0xD3, 0xD5, 0xD5, 0xD6, 0xD6, - 0xD9, 0xD9, 0xDA, 0xDA, 0xDC, 0xDC, 0xDF, 0xDF, 0xE0, 0xE0, 0xE3, 0xE3, - 0xE5, 0xE5, 0xE6, 0xE6, 0xE9, 0xE9, 0xEA, 0xEA, 0xEC, 0xEC, 0xEF, 0xEF, - 0xF1, 0xF1, 0xF2, 0xF2, 0xF4, 0xF4, 0xF7, 0xF7, 0xF8, 0xF8, 0xFB, 0xFB, - 0xFD, 0xFD, 0xFE, 0xFE }; - - for(size_t j = 0; j != bits.size(); ++j) - bits[j] = ODD_PARITY[bits[j]]; - } - -/* -* Hex encode an OctetString -*/ -std::string OctetString::as_string() const - { - return hex_encode(&bits[0], bits.size()); - } - -/* -* XOR Operation for OctetStrings -*/ -OctetString& OctetString::operator^=(const OctetString& k) - { - if(&k == this) { zeroise(bits); return (*this); } - xor_buf(&bits[0], k.begin(), std::min(length(), k.length())); - return (*this); - } - -/* -* Equality Operation for OctetStrings -*/ -bool operator==(const OctetString& s1, const OctetString& s2) - { - return (s1.bits_of() == s2.bits_of()); - } - -/* -* Unequality Operation for OctetStrings -*/ -bool operator!=(const OctetString& s1, const OctetString& s2) - { - return !(s1 == s2); - } - -/* -* Append Operation for OctetStrings -*/ -OctetString operator+(const OctetString& k1, const OctetString& k2) - { - SecureVector out; - out += k1.bits_of(); - out += k2.bits_of(); - return OctetString(out); - } - -/* -* XOR Operation for OctetStrings -*/ -OctetString operator^(const OctetString& k1, const OctetString& k2) - { - SecureVector ret(std::max(k1.length(), k2.length())); - ret.copy(k1.begin(), k1.length()); - xor_buf(ret, k2.begin(), k2.length()); - return OctetString(ret); - } - -} diff --git a/src/botan/src/algo_base/symkey.h b/src/botan/src/algo_base/symkey.h deleted file mode 100644 index 6735b2b87..000000000 --- a/src/botan/src/algo_base/symkey.h +++ /dev/null @@ -1,156 +0,0 @@ -/* -* OctetString -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_SYMKEY_H__ -#define BOTAN_SYMKEY_H__ - -#include -#include - -namespace Botan { - -/** -* Octet String -*/ -class BOTAN_DLL OctetString - { - public: - /** - * @return size of this octet string in bytes - */ - size_t length() const { return bits.size(); } - - /** - * @return this object as a SecureVector - */ - SecureVector bits_of() const { return bits; } - - /** - * @return start of this string - */ - const byte* begin() const { return &bits[0]; } - - /** - * @return end of this string - */ - const byte* end() const { return &bits[bits.size()]; } - - /** - * @return this encoded as hex - */ - std::string as_string() const; - - /** - * XOR the contents of another octet string into this one - * @param other octet string - * @return reference to this - */ - OctetString& operator^=(const OctetString& other); - - /** - * Force to have odd parity - */ - void set_odd_parity(); - - /** - * Change the contents of this octet string - * @param hex_string a hex encoded bytestring - */ - void change(const std::string& hex_string); - - /** - * Change the contents of this octet string - * @param in the input - * @param length of in in bytes - */ - void change(const byte in[], size_t length); - - /** - * Change the contents of this octet string - * @param in the input - */ - void change(const MemoryRegion& in) { bits = in; } - - /** - * Create a new random OctetString - * @param rng is a random number generator - * @param len is the desired length in bytes - */ - OctetString(class RandomNumberGenerator& rng, size_t len); - - /** - * Create a new OctetString - * @param str is a hex encoded string - */ - OctetString(const std::string& str = "") { change(str); } - - /** - * Create a new OctetString - * @param in is an array - * @param len is the length of in in bytes - */ - OctetString(const byte in[], size_t len) { change(in, len); } - - /** - * Create a new OctetString - * @param in a bytestring - */ - OctetString(const MemoryRegion& in) { change(in); } - private: - SecureVector bits; - }; - -/** -* Compare two strings -* @param x an octet string -* @param y an octet string -* @return if x is equal to y -*/ -BOTAN_DLL bool operator==(const OctetString& x, - const OctetString& y); - -/** -* Compare two strings -* @param x an octet string -* @param y an octet string -* @return if x is not equal to y -*/ -BOTAN_DLL bool operator!=(const OctetString& x, - const OctetString& y); - -/** -* Concatenate two strings -* @param x an octet string -* @param y an octet string -* @return x concatenated with y -*/ -BOTAN_DLL OctetString operator+(const OctetString& x, - const OctetString& y); - -/** -* XOR two strings -* @param x an octet string -* @param y an octet string -* @return x XORed with y -*/ -BOTAN_DLL OctetString operator^(const OctetString& x, - const OctetString& y); - - -/** -* Alternate name for octet string showing intent to use as a key -*/ -typedef OctetString SymmetricKey; - -/** -* Alternate name for octet string showing intent to use as an IV -*/ -typedef OctetString InitializationVector; - -} - -#endif diff --git a/src/botan/src/algo_factory/algo_cache.h b/src/botan/src/algo_factory/algo_cache.h deleted file mode 100644 index 25f2db023..000000000 --- a/src/botan/src/algo_factory/algo_cache.h +++ /dev/null @@ -1,250 +0,0 @@ -/* -* An algorithm cache (used by Algorithm_Factory) -* (C) 2008-2009,2011 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_ALGORITHM_CACHE_TEMPLATE_H__ -#define BOTAN_ALGORITHM_CACHE_TEMPLATE_H__ - -#include -#include -#include -#include -#include - -namespace Botan { - -/** -* @param prov_name a provider name -* @return weight for this provider -*/ -size_t static_provider_weight(const std::string& prov_name); - -/** -* Algorithm_Cache (used by Algorithm_Factory) -*/ -template -class Algorithm_Cache - { - public: - /** - * @param algo_spec names the requested algorithm - * @param pref_provider suggests a preferred provider - * @return prototype object, or NULL - */ - const T* get(const std::string& algo_spec, - const std::string& pref_provider); - - /** - * Add a new algorithm implementation to the cache - * @param algo the algorithm prototype object - * @param requested_name how this name will be requested - * @param provider_name is the name of the provider of this prototype - */ - void add(T* algo, - const std::string& requested_name, - const std::string& provider_name); - - /** - * Set the preferred provider - * @param algo_spec names the algorithm - * @param provider names the preferred provider - */ - void set_preferred_provider(const std::string& algo_spec, - const std::string& provider); - - /** - * Return the list of providers of this algorithm - * @param algo_name names the algorithm - * @return list of providers of this algorithm - */ - std::vector providers_of(const std::string& algo_name); - - /** - * Clear the cache - */ - void clear_cache(); - - /** - * Constructor - * @param m a mutex to serialize internal access - */ - Algorithm_Cache(Mutex* m) : mutex(m) {} - ~Algorithm_Cache() { clear_cache(); delete mutex; } - private: - typedef typename std::map >::iterator - algorithms_iterator; - - typedef typename std::map::iterator provider_iterator; - - algorithms_iterator find_algorithm(const std::string& algo_spec); - - Mutex* mutex; - std::map aliases; - std::map pref_providers; - std::map > algorithms; - }; - -/* -* Look for an algorithm implementation in the cache, also checking aliases -* Assumes object lock is held -*/ -template -typename Algorithm_Cache::algorithms_iterator -Algorithm_Cache::find_algorithm(const std::string& algo_spec) - { - algorithms_iterator algo = algorithms.find(algo_spec); - - // Not found? Check if a known alias - if(algo == algorithms.end()) - { - std::map::const_iterator alias = - aliases.find(algo_spec); - - if(alias != aliases.end()) - algo = algorithms.find(alias->second); - } - - return algo; - } - -/* -* Look for an algorithm implementation by a particular provider -*/ -template -const T* Algorithm_Cache::get(const std::string& algo_spec, - const std::string& requested_provider) - { - Mutex_Holder lock(mutex); - - algorithms_iterator algo = find_algorithm(algo_spec); - if(algo == algorithms.end()) // algo not found at all (no providers) - return 0; - - // If a provider is requested specifically, return it or fail entirely - if(requested_provider != "") - { - provider_iterator prov = algo->second.find(requested_provider); - if(prov != algo->second.end()) - return prov->second; - return 0; - } - - const T* prototype = 0; - std::string prototype_provider; - size_t prototype_prov_weight = 0; - - const std::string pref_provider = search_map(pref_providers, algo_spec); - - for(provider_iterator i = algo->second.begin(); i != algo->second.end(); ++i) - { - const std::string prov_name = i->first; - const size_t prov_weight = static_provider_weight(prov_name); - - // preferred prov exists, return immediately - if(prov_name == pref_provider) - return i->second; - - if(prototype == 0 || prov_weight > prototype_prov_weight) - { - prototype = i->second; - prototype_provider = i->first; - prototype_prov_weight = prov_weight; - } - } - - return prototype; - } - -/* -* Add an implementation to the cache -*/ -template -void Algorithm_Cache::add(T* algo, - const std::string& requested_name, - const std::string& provider) - { - if(!algo) - return; - - Mutex_Holder lock(mutex); - - if(algo->name() != requested_name && - aliases.find(requested_name) == aliases.end()) - { - aliases[requested_name] = algo->name(); - } - - if(!algorithms[algo->name()][provider]) - algorithms[algo->name()][provider] = algo; - else - delete algo; - } - -/* -* Find the providers of this algo (if any) -*/ -template std::vector -Algorithm_Cache::providers_of(const std::string& algo_name) - { - Mutex_Holder lock(mutex); - - std::vector providers; - - algorithms_iterator algo = find_algorithm(algo_name); - - if(algo != algorithms.end()) - { - provider_iterator provider = algo->second.begin(); - - while(provider != algo->second.end()) - { - providers.push_back(provider->first); - ++provider; - } - } - - return providers; - } - -/* -* Set the preferred provider for an algorithm -*/ -template -void Algorithm_Cache::set_preferred_provider(const std::string& algo_spec, - const std::string& provider) - { - Mutex_Holder lock(mutex); - - pref_providers[algo_spec] = provider; - } - -/* -* Clear out the cache -*/ -template -void Algorithm_Cache::clear_cache() - { - algorithms_iterator algo = algorithms.begin(); - - while(algo != algorithms.end()) - { - provider_iterator provider = algo->second.begin(); - - while(provider != algo->second.end()) - { - delete provider->second; - ++provider; - } - - ++algo; - } - - algorithms.clear(); - } - -} - -#endif diff --git a/src/botan/src/algo_factory/algo_factory.cpp b/src/botan/src/algo_factory/algo_factory.cpp deleted file mode 100644 index 3d640ab8a..000000000 --- a/src/botan/src/algo_factory/algo_factory.cpp +++ /dev/null @@ -1,351 +0,0 @@ -/* -* Algorithm Factory -* (C) 2008-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include - -namespace Botan { - -namespace { - -/* -* Template functions for the factory prototype/search algorithm -*/ -template -T* engine_get_algo(Engine*, - const SCAN_Name&, - Algorithm_Factory&) - { return 0; } - -template<> -BlockCipher* engine_get_algo(Engine* engine, - const SCAN_Name& request, - Algorithm_Factory& af) - { return engine->find_block_cipher(request, af); } - -template<> -StreamCipher* engine_get_algo(Engine* engine, - const SCAN_Name& request, - Algorithm_Factory& af) - { return engine->find_stream_cipher(request, af); } - -template<> -HashFunction* engine_get_algo(Engine* engine, - const SCAN_Name& request, - Algorithm_Factory& af) - { return engine->find_hash(request, af); } - -template<> -MessageAuthenticationCode* engine_get_algo(Engine* engine, - const SCAN_Name& request, - Algorithm_Factory& af) - { return engine->find_mac(request, af); } - -template<> -PBKDF* engine_get_algo(Engine* engine, - const SCAN_Name& request, - Algorithm_Factory& af) - { return engine->find_pbkdf(request, af); } - -template -const T* factory_prototype(const std::string& algo_spec, - const std::string& provider, - const std::vector& engines, - Algorithm_Factory& af, - Algorithm_Cache* cache) - { - if(const T* cache_hit = cache->get(algo_spec, provider)) - return cache_hit; - - SCAN_Name scan_name(algo_spec); - - if(scan_name.cipher_mode() != "") - return 0; - - for(size_t i = 0; i != engines.size(); ++i) - { - if(provider == "" || engines[i]->provider_name() == provider) - { - if(T* impl = engine_get_algo(engines[i], scan_name, af)) - cache->add(impl, algo_spec, engines[i]->provider_name()); - } - } - - return cache->get(algo_spec, provider); - } - -} - -/* -* Setup caches -*/ -Algorithm_Factory::Algorithm_Factory(Mutex_Factory& mf) - { - block_cipher_cache = new Algorithm_Cache(mf.make()); - stream_cipher_cache = new Algorithm_Cache(mf.make()); - hash_cache = new Algorithm_Cache(mf.make()); - mac_cache = new Algorithm_Cache(mf.make()); - pbkdf_cache = new Algorithm_Cache(mf.make()); - } - -/* -* Delete all engines -*/ -Algorithm_Factory::~Algorithm_Factory() - { - delete block_cipher_cache; - delete stream_cipher_cache; - delete hash_cache; - delete mac_cache; - delete pbkdf_cache; - - std::for_each(engines.begin(), engines.end(), del_fun()); - } - -void Algorithm_Factory::clear_caches() - { - block_cipher_cache->clear_cache(); - stream_cipher_cache->clear_cache(); - hash_cache->clear_cache(); - mac_cache->clear_cache(); - pbkdf_cache->clear_cache(); - } - -void Algorithm_Factory::add_engine(Engine* engine) - { - clear_caches(); - engines.push_back(engine); - } - -/* -* Set the preferred provider for an algorithm -*/ -void Algorithm_Factory::set_preferred_provider(const std::string& algo_spec, - const std::string& provider) - { - if(prototype_block_cipher(algo_spec)) - block_cipher_cache->set_preferred_provider(algo_spec, provider); - else if(prototype_stream_cipher(algo_spec)) - stream_cipher_cache->set_preferred_provider(algo_spec, provider); - else if(prototype_hash_function(algo_spec)) - hash_cache->set_preferred_provider(algo_spec, provider); - else if(prototype_mac(algo_spec)) - mac_cache->set_preferred_provider(algo_spec, provider); - else if(prototype_pbkdf(algo_spec)) - pbkdf_cache->set_preferred_provider(algo_spec, provider); - } - -/* -* Get an engine out of the list -*/ -Engine* Algorithm_Factory::get_engine_n(size_t n) const - { - if(n >= engines.size()) - return 0; - return engines[n]; - } - -/* -* Return the possible providers of a request -* Note: assumes you don't have different types by the same name -*/ -std::vector -Algorithm_Factory::providers_of(const std::string& algo_spec) - { - /* The checks with if(prototype_X(algo_spec)) have the effect of - forcing a full search, since otherwise there might not be any - providers at all in the cache. - */ - - if(prototype_block_cipher(algo_spec)) - return block_cipher_cache->providers_of(algo_spec); - else if(prototype_stream_cipher(algo_spec)) - return stream_cipher_cache->providers_of(algo_spec); - else if(prototype_hash_function(algo_spec)) - return hash_cache->providers_of(algo_spec); - else if(prototype_mac(algo_spec)) - return mac_cache->providers_of(algo_spec); - else if(prototype_pbkdf(algo_spec)) - return pbkdf_cache->providers_of(algo_spec); - else - return std::vector(); - } - -/* -* Return the prototypical block cipher corresponding to this request -*/ -const BlockCipher* -Algorithm_Factory::prototype_block_cipher(const std::string& algo_spec, - const std::string& provider) - { - return factory_prototype(algo_spec, provider, engines, - *this, block_cipher_cache); - } - -/* -* Return the prototypical stream cipher corresponding to this request -*/ -const StreamCipher* -Algorithm_Factory::prototype_stream_cipher(const std::string& algo_spec, - const std::string& provider) - { - return factory_prototype(algo_spec, provider, engines, - *this, stream_cipher_cache); - } - -/* -* Return the prototypical object corresponding to this request (if found) -*/ -const HashFunction* -Algorithm_Factory::prototype_hash_function(const std::string& algo_spec, - const std::string& provider) - { - return factory_prototype(algo_spec, provider, engines, - *this, hash_cache); - } - -/* -* Return the prototypical object corresponding to this request -*/ -const MessageAuthenticationCode* -Algorithm_Factory::prototype_mac(const std::string& algo_spec, - const std::string& provider) - { - return factory_prototype(algo_spec, provider, - engines, - *this, mac_cache); - } - -/* -* Return the prototypical object corresponding to this request -*/ -const PBKDF* -Algorithm_Factory::prototype_pbkdf(const std::string& algo_spec, - const std::string& provider) - { - return factory_prototype(algo_spec, provider, - engines, - *this, pbkdf_cache); - } - -/* -* Return a new block cipher corresponding to this request -*/ -BlockCipher* -Algorithm_Factory::make_block_cipher(const std::string& algo_spec, - const std::string& provider) - { - if(const BlockCipher* proto = prototype_block_cipher(algo_spec, provider)) - return proto->clone(); - throw Algorithm_Not_Found(algo_spec); - } - -/* -* Return a new stream cipher corresponding to this request -*/ -StreamCipher* -Algorithm_Factory::make_stream_cipher(const std::string& algo_spec, - const std::string& provider) - { - if(const StreamCipher* proto = prototype_stream_cipher(algo_spec, provider)) - return proto->clone(); - throw Algorithm_Not_Found(algo_spec); - } - -/* -* Return a new object corresponding to this request -*/ -HashFunction* -Algorithm_Factory::make_hash_function(const std::string& algo_spec, - const std::string& provider) - { - if(const HashFunction* proto = prototype_hash_function(algo_spec, provider)) - return proto->clone(); - throw Algorithm_Not_Found(algo_spec); - } - -/* -* Return a new object corresponding to this request -*/ -MessageAuthenticationCode* -Algorithm_Factory::make_mac(const std::string& algo_spec, - const std::string& provider) - { - if(const MessageAuthenticationCode* proto = prototype_mac(algo_spec, provider)) - return proto->clone(); - throw Algorithm_Not_Found(algo_spec); - } - -/* -* Return a new object corresponding to this request -*/ -PBKDF* -Algorithm_Factory::make_pbkdf(const std::string& algo_spec, - const std::string& provider) - { - if(const PBKDF* proto = prototype_pbkdf(algo_spec, provider)) - return proto->clone(); - throw Algorithm_Not_Found(algo_spec); - } - -/* -* Add a new block cipher -*/ -void Algorithm_Factory::add_block_cipher(BlockCipher* block_cipher, - const std::string& provider) - { - block_cipher_cache->add(block_cipher, block_cipher->name(), provider); - } - -/* -* Add a new stream cipher -*/ -void Algorithm_Factory::add_stream_cipher(StreamCipher* stream_cipher, - const std::string& provider) - { - stream_cipher_cache->add(stream_cipher, stream_cipher->name(), provider); - } - -/* -* Add a new hash -*/ -void Algorithm_Factory::add_hash_function(HashFunction* hash, - const std::string& provider) - { - hash_cache->add(hash, hash->name(), provider); - } - -/* -* Add a new mac -*/ -void Algorithm_Factory::add_mac(MessageAuthenticationCode* mac, - const std::string& provider) - { - mac_cache->add(mac, mac->name(), provider); - } - -/* -* Add a new PBKDF -*/ -void Algorithm_Factory::add_pbkdf(PBKDF* pbkdf, - const std::string& provider) - { - pbkdf_cache->add(pbkdf, pbkdf->name(), provider); - } - -} diff --git a/src/botan/src/algo_factory/algo_factory.h b/src/botan/src/algo_factory/algo_factory.h deleted file mode 100644 index b9f15757d..000000000 --- a/src/botan/src/algo_factory/algo_factory.h +++ /dev/null @@ -1,227 +0,0 @@ -/* -* Algorithm Factory -* (C) 2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_ALGORITHM_FACTORY_H__ -#define BOTAN_ALGORITHM_FACTORY_H__ - -#include -#include -#include - -namespace Botan { - -/** -* Forward declarations (don't need full definitions here) -*/ -class BlockCipher; -class StreamCipher; -class HashFunction; -class MessageAuthenticationCode; -class PBKDF; - -template class Algorithm_Cache; - -class Engine; -class Mutex_Factory; - -/** -* Algorithm Factory -*/ -class BOTAN_DLL Algorithm_Factory - { - public: - /** - * Constructor - * @param mf a mutex factory - */ - Algorithm_Factory(Mutex_Factory& mf); - - /** - * Destructor - */ - ~Algorithm_Factory(); - - /** - * @param engine to add (Algorithm_Factory takes ownership) - */ - void add_engine(Engine* engine); - - /** - * Clear out any cached objects - */ - void clear_caches(); - - /** - * @param algo_spec the algorithm we are querying - * @returns list of providers of this algorithm - */ - std::vector providers_of(const std::string& algo_spec); - - /** - * @param algo_spec the algorithm we are setting a provider for - * @param provider the provider we would like to use - */ - void set_preferred_provider(const std::string& algo_spec, - const std::string& provider); - - /** - * @param algo_spec the algorithm we want - * @param provider the provider we would like to use - * @returns pointer to const prototype object, ready to clone(), or NULL - */ - const BlockCipher* - prototype_block_cipher(const std::string& algo_spec, - const std::string& provider = ""); - - /** - * @param algo_spec the algorithm we want - * @param provider the provider we would like to use - * @returns pointer to freshly created instance of the request algorithm - */ - BlockCipher* make_block_cipher(const std::string& algo_spec, - const std::string& provider = ""); - - /** - * @param algo the algorithm to add - * @param provider the provider of this algorithm - */ - void add_block_cipher(BlockCipher* algo, const std::string& provider); - - /** - * @param algo_spec the algorithm we want - * @param provider the provider we would like to use - * @returns pointer to const prototype object, ready to clone(), or NULL - */ - const StreamCipher* - prototype_stream_cipher(const std::string& algo_spec, - const std::string& provider = ""); - - /** - * @param algo_spec the algorithm we want - * @param provider the provider we would like to use - * @returns pointer to freshly created instance of the request algorithm - */ - StreamCipher* make_stream_cipher(const std::string& algo_spec, - const std::string& provider = ""); - - /** - * @param algo the algorithm to add - * @param provider the provider of this algorithm - */ - void add_stream_cipher(StreamCipher* algo, const std::string& provider); - - /** - * @param algo_spec the algorithm we want - * @param provider the provider we would like to use - * @returns pointer to const prototype object, ready to clone(), or NULL - */ - const HashFunction* - prototype_hash_function(const std::string& algo_spec, - const std::string& provider = ""); - - /** - * @param algo_spec the algorithm we want - * @param provider the provider we would like to use - * @returns pointer to freshly created instance of the request algorithm - */ - HashFunction* make_hash_function(const std::string& algo_spec, - const std::string& provider = ""); - - /** - * @param algo the algorithm to add - * @param provider the provider of this algorithm - */ - void add_hash_function(HashFunction* algo, const std::string& provider); - - /** - * @param algo_spec the algorithm we want - * @param provider the provider we would like to use - * @returns pointer to const prototype object, ready to clone(), or NULL - */ - const MessageAuthenticationCode* - prototype_mac(const std::string& algo_spec, - const std::string& provider = ""); - - /** - * @param algo_spec the algorithm we want - * @param provider the provider we would like to use - * @returns pointer to freshly created instance of the request algorithm - */ - MessageAuthenticationCode* make_mac(const std::string& algo_spec, - const std::string& provider = ""); - - /** - * @param algo the algorithm to add - * @param provider the provider of this algorithm - */ - void add_mac(MessageAuthenticationCode* algo, - const std::string& provider); - - /** - * @param algo_spec the algorithm we want - * @param provider the provider we would like to use - * @returns pointer to const prototype object, ready to clone(), or NULL - */ - const PBKDF* prototype_pbkdf(const std::string& algo_spec, - const std::string& provider = ""); - - /** - * @param algo_spec the algorithm we want - * @param provider the provider we would like to use - * @returns pointer to freshly created instance of the request algorithm - */ - PBKDF* make_pbkdf(const std::string& algo_spec, - const std::string& provider = ""); - - /** - * @param algo the algorithm to add - * @param provider the provider of this algorithm - */ - void add_pbkdf(PBKDF* algo, const std::string& provider); - - /** - * An iterator for the engines in this factory - * @deprecated Avoid in new code - */ - class BOTAN_DLL Engine_Iterator - { - public: - /** - * @return next engine in the sequence - */ - Engine* next() { return af.get_engine_n(n++); } - - /** - * @param a an algorithm factory - */ - Engine_Iterator(const Algorithm_Factory& a) : - af(a) { n = 0; } - private: - const Algorithm_Factory& af; - size_t n; - }; - friend class Engine_Iterator; - - private: - Algorithm_Factory(const Algorithm_Factory&) {} - Algorithm_Factory& operator=(const Algorithm_Factory&) - { return (*this); } - - Engine* get_engine_n(size_t n) const; - - std::vector engines; - - Algorithm_Cache* block_cipher_cache; - Algorithm_Cache* stream_cipher_cache; - Algorithm_Cache* hash_cache; - Algorithm_Cache* mac_cache; - Algorithm_Cache* pbkdf_cache; - }; - -} - -#endif diff --git a/src/botan/src/algo_factory/info.txt b/src/botan/src/algo_factory/info.txt deleted file mode 100644 index eae4b3934..000000000 --- a/src/botan/src/algo_factory/info.txt +++ /dev/null @@ -1,25 +0,0 @@ -load_on auto - -define ALGORITHM_FACTORY - - -algo_factory.h - - - -algo_cache.h - - - -algo_factory.cpp -prov_weight.cpp - - - -block -engine -hash -mac -mutex -stream - diff --git a/src/botan/src/algo_factory/prov_weight.cpp b/src/botan/src/algo_factory/prov_weight.cpp deleted file mode 100644 index fca791333..000000000 --- a/src/botan/src/algo_factory/prov_weight.cpp +++ /dev/null @@ -1,34 +0,0 @@ -/* -* Default provider weights for Algorithm_Cache -* (C) 2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include - -namespace Botan { - -/** -* Return a static provider weighing -*/ -size_t static_provider_weight(const std::string& prov_name) - { - /* - * Prefer asm over C++, but prefer anything over OpenSSL or GNU MP; to use - * them, set the provider explicitly for the algorithms you want - */ - - if(prov_name == "aes_isa") return 9; - if(prov_name == "simd") return 8; - if(prov_name == "asm") return 7; - - if(prov_name == "core") return 5; - - if(prov_name == "openssl") return 2; - if(prov_name == "gmp") return 1; - - return 0; // other/unknown - } - -} diff --git a/src/botan/src/alloc/alloc_mmap/info.txt b/src/botan/src/alloc/alloc_mmap/info.txt deleted file mode 100644 index 562277a37..000000000 --- a/src/botan/src/alloc/alloc_mmap/info.txt +++ /dev/null @@ -1,28 +0,0 @@ -define ALLOC_MMAP - - -mmap_mem.cpp - - - -mmap_mem.h - - - -linux -freebsd -dragonfly -openbsd -netbsd -solaris -qnx -darwin -tru64 - -# Only without -ansi, otherwise can't get mkstemp -#cygwin - - - -mem_pool - diff --git a/src/botan/src/alloc/alloc_mmap/mmap_mem.cpp b/src/botan/src/alloc/alloc_mmap/mmap_mem.cpp deleted file mode 100644 index 17c189e9b..000000000 --- a/src/botan/src/alloc/alloc_mmap/mmap_mem.cpp +++ /dev/null @@ -1,145 +0,0 @@ -/* -* Memory Mapping Allocator -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#ifndef MAP_FAILED - #define MAP_FAILED -1 -#endif - -namespace Botan { - -namespace { - -/* -* MemoryMapping_Allocator Exception -*/ -class BOTAN_DLL MemoryMapping_Failed : public Exception - { - public: - MemoryMapping_Failed(const std::string& msg) : - Exception("MemoryMapping_Allocator: " + msg) {} - }; - -} - -/* -* Memory Map a File into Memory -*/ -void* MemoryMapping_Allocator::alloc_block(size_t n) - { - class TemporaryFile - { - public: - int get_fd() const { return fd; } - - TemporaryFile(const std::string& base) - { - const std::string mkstemp_template = base + "XXXXXX"; - - std::vector filepath(mkstemp_template.begin(), - mkstemp_template.end()); - filepath.push_back(0); // add terminating NULL - - mode_t old_umask = ::umask(077); - fd = ::mkstemp(&filepath[0]); - ::umask(old_umask); - - if(fd == -1) - throw MemoryMapping_Failed("Temporary file allocation failed"); - - if(::unlink(&filepath[0]) != 0) - throw MemoryMapping_Failed("Could not unlink temporary file"); - } - - ~TemporaryFile() - { - /* - * We can safely close here, because post-mmap the file - * will continue to exist until the mmap is unmapped from - * our address space upon deallocation (or process exit). - */ - if(fd != -1 && ::close(fd) == -1) - throw MemoryMapping_Failed("Could not close file"); - } - private: - int fd; - }; - - TemporaryFile file("/tmp/botan_"); - - if(file.get_fd() == -1) - throw MemoryMapping_Failed("Could not create file"); - - std::vector zeros(4096); - - size_t remaining = n; - - while(remaining) - { - const size_t write_try = std::min(zeros.size(), remaining); - - ssize_t wrote_got = ::write(file.get_fd(), - &zeros[0], - write_try); - - if(wrote_got == -1 && errno != EINTR) - throw MemoryMapping_Failed("Could not write to file"); - - remaining -= wrote_got; - } - -#ifndef MAP_NOSYNC - #define MAP_NOSYNC 0 -#endif - - void* ptr = ::mmap(0, n, - PROT_READ | PROT_WRITE, - MAP_SHARED | MAP_NOSYNC, - file.get_fd(), 0); - - if(ptr == static_cast(MAP_FAILED)) - throw MemoryMapping_Failed("Could not map file"); - - return ptr; - } - -/* -* Remove a Memory Mapping -*/ -void MemoryMapping_Allocator::dealloc_block(void* ptr, size_t n) - { - if(ptr == 0) - return; - - const byte PATTERNS[] = { 0x00, 0xF5, 0x5A, 0xAF, 0x00 }; - - // The char* casts are for Solaris, args are void* on most other systems - - for(size_t i = 0; i != sizeof(PATTERNS); ++i) - { - std::memset(ptr, PATTERNS[i], n); - - if(::msync(static_cast(ptr), n, MS_SYNC)) - throw MemoryMapping_Failed("Sync operation failed"); - } - - if(::munmap(static_cast(ptr), n)) - throw MemoryMapping_Failed("Could not unmap file"); - } - -} diff --git a/src/botan/src/alloc/alloc_mmap/mmap_mem.h b/src/botan/src/alloc/alloc_mmap/mmap_mem.h deleted file mode 100644 index fa4e5e715..000000000 --- a/src/botan/src/alloc/alloc_mmap/mmap_mem.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -* Memory Mapping Allocator -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MMAP_ALLOCATOR_H__ -#define BOTAN_MMAP_ALLOCATOR_H__ - -#include - -namespace Botan { - -/** -* Allocator that uses memory maps backed by disk. We zeroize the map -* upon deallocation. If swap occurs, the VM will swap to the shared -* file backing rather than to a swap device, which means we know where -* it is and can zap it later. -*/ -class MemoryMapping_Allocator : public Pooling_Allocator - { - public: - /** - * @param mutex used for internal locking - */ - MemoryMapping_Allocator(Mutex* mutex) : Pooling_Allocator(mutex) {} - std::string type() const { return "mmap"; } - private: - void* alloc_block(size_t); - void dealloc_block(void*, size_t); - }; - -} - -#endif diff --git a/src/botan/src/alloc/allocate.h b/src/botan/src/alloc/allocate.h deleted file mode 100644 index b8574be1e..000000000 --- a/src/botan/src/alloc/allocate.h +++ /dev/null @@ -1,65 +0,0 @@ -/* -* Allocator -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_ALLOCATOR_H__ -#define BOTAN_ALLOCATOR_H__ - -#include -#include - -namespace Botan { - -/** -* Allocator Interface -*/ -class BOTAN_DLL Allocator - { - public: - /** - * Acquire a pointer to an allocator - * @param locking is true if the allocator should attempt to - * secure the memory (eg for using to store keys) - * @return pointer to an allocator; ownership remains with library, - * so do not delete - */ - static Allocator* get(bool locking); - - /** - * Allocate a block of memory - * @param n how many bytes to allocate - * @return pointer to n bytes of memory - */ - virtual void* allocate(size_t n) = 0; - - /** - * Deallocate memory allocated with allocate() - * @param ptr the pointer returned by allocate() - * @param n the size of the block pointed to by ptr - */ - virtual void deallocate(void* ptr, size_t n) = 0; - - /** - * @return name of this allocator type - */ - virtual std::string type() const = 0; - - /** - * Initialize the allocator - */ - virtual void init() {} - - /** - * Shutdown the allocator - */ - virtual void destroy() {} - - virtual ~Allocator() {} - }; - -} - -#endif diff --git a/src/botan/src/alloc/info.txt b/src/botan/src/alloc/info.txt deleted file mode 100644 index 40e7bacdf..000000000 --- a/src/botan/src/alloc/info.txt +++ /dev/null @@ -1,4 +0,0 @@ - -allocate.h -secmem.h - diff --git a/src/botan/src/alloc/mem_pool/info.txt b/src/botan/src/alloc/mem_pool/info.txt deleted file mode 100644 index 5097c325f..000000000 --- a/src/botan/src/alloc/mem_pool/info.txt +++ /dev/null @@ -1,12 +0,0 @@ - - -mem_pool.cpp - - - -mem_pool.h - - - -mutex - diff --git a/src/botan/src/alloc/mem_pool/mem_pool.cpp b/src/botan/src/alloc/mem_pool/mem_pool.cpp deleted file mode 100644 index 5f53c9ba6..000000000 --- a/src/botan/src/alloc/mem_pool/mem_pool.cpp +++ /dev/null @@ -1,252 +0,0 @@ -/* -* Pooling Allocator -* (C) 1999-2008 Jack Lloyd -* 2005 Matthew Gregan -* 2005-2006 Matt Johnston -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include - -namespace Botan { - -/* -* Memory_Block Constructor -*/ -Pooling_Allocator::Memory_Block::Memory_Block(void* buf) - { - buffer = static_cast(buf); - bitmap = 0; - buffer_end = buffer + (BLOCK_SIZE * BITMAP_SIZE); - } - -/* -* See if ptr is contained by this block -*/ -bool Pooling_Allocator::Memory_Block::contains(void* ptr, - size_t length) const - { - return ((buffer <= ptr) && - (buffer_end >= static_cast(ptr) + length * BLOCK_SIZE)); - } - -/* -* Allocate some memory, if possible -*/ -byte* Pooling_Allocator::Memory_Block::alloc(size_t n) - { - if(n == 0 || n > BITMAP_SIZE) - return 0; - - if(n == BITMAP_SIZE) - { - if(bitmap) - return 0; - else - { - bitmap = ~bitmap; - return buffer; - } - } - - bitmap_type mask = (static_cast(1) << n) - 1; - size_t offset = 0; - - while(bitmap & mask) - { - mask <<= 1; - ++offset; - - if((bitmap & mask) == 0) - break; - if(mask >> 63) - break; - } - - if(bitmap & mask) - return 0; - - bitmap |= mask; - return buffer + offset * BLOCK_SIZE; - } - -/* -* Mark this memory as free, if we own it -*/ -void Pooling_Allocator::Memory_Block::free(void* ptr, size_t blocks) - { - clear_mem(static_cast(ptr), blocks * BLOCK_SIZE); - - const size_t offset = (static_cast(ptr) - buffer) / BLOCK_SIZE; - - if(offset == 0 && blocks == BITMAP_SIZE) - bitmap = ~bitmap; - else - { - for(size_t j = 0; j != blocks; ++j) - bitmap &= ~(static_cast(1) << (j+offset)); - } - } - -/* -* Pooling_Allocator Constructor -*/ -Pooling_Allocator::Pooling_Allocator(Mutex* m) : mutex(m) - { - last_used = blocks.begin(); - } - -/* -* Pooling_Allocator Destructor -*/ -Pooling_Allocator::~Pooling_Allocator() - { - delete mutex; - if(blocks.size()) - throw Invalid_State("Pooling_Allocator: Never released memory"); - } - -/* -* Free all remaining memory -*/ -void Pooling_Allocator::destroy() - { - Mutex_Holder lock(mutex); - - blocks.clear(); - - for(size_t j = 0; j != allocated.size(); ++j) - dealloc_block(allocated[j].first, allocated[j].second); - allocated.clear(); - } - -/* -* Allocation -*/ -void* Pooling_Allocator::allocate(size_t n) - { - const size_t BITMAP_SIZE = Memory_Block::bitmap_size(); - const size_t BLOCK_SIZE = Memory_Block::block_size(); - - Mutex_Holder lock(mutex); - - if(n <= BITMAP_SIZE * BLOCK_SIZE) - { - const size_t block_no = round_up(n, BLOCK_SIZE) / BLOCK_SIZE; - - byte* mem = allocate_blocks(block_no); - if(mem) - return mem; - - get_more_core(BOTAN_MEM_POOL_CHUNK_SIZE); - - mem = allocate_blocks(block_no); - if(mem) - return mem; - - throw Memory_Exhaustion(); - } - - void* new_buf = alloc_block(n); - if(new_buf) - return new_buf; - - throw Memory_Exhaustion(); - } - -/* -* Deallocation -*/ -void Pooling_Allocator::deallocate(void* ptr, size_t n) - { - const size_t BITMAP_SIZE = Memory_Block::bitmap_size(); - const size_t BLOCK_SIZE = Memory_Block::block_size(); - - if(ptr == 0 || n == 0) - return; - - Mutex_Holder lock(mutex); - - if(n > BITMAP_SIZE * BLOCK_SIZE) - dealloc_block(ptr, n); - else - { - const size_t block_no = round_up(n, BLOCK_SIZE) / BLOCK_SIZE; - - std::vector::iterator i = - std::lower_bound(blocks.begin(), blocks.end(), Memory_Block(ptr)); - - if(i == blocks.end() || !i->contains(ptr, block_no)) - throw Invalid_State("Pointer released to the wrong allocator"); - - i->free(ptr, block_no); - } - } - -/* -* Try to get some memory from an existing block -*/ -byte* Pooling_Allocator::allocate_blocks(size_t n) - { - if(blocks.empty()) - return 0; - - std::vector::iterator i = last_used; - - do - { - byte* mem = i->alloc(n); - if(mem) - { - last_used = i; - return mem; - } - - ++i; - if(i == blocks.end()) - i = blocks.begin(); - } - while(i != last_used); - - return 0; - } - -/* -* Allocate more memory for the pool -*/ -void Pooling_Allocator::get_more_core(size_t in_bytes) - { - const size_t BITMAP_SIZE = Memory_Block::bitmap_size(); - const size_t BLOCK_SIZE = Memory_Block::block_size(); - - const size_t TOTAL_BLOCK_SIZE = BLOCK_SIZE * BITMAP_SIZE; - - // upper bound on allocation is 1 MiB - in_bytes = std::min(in_bytes, 1024 * 1024); - - const size_t in_blocks = round_up(in_bytes, BLOCK_SIZE) / TOTAL_BLOCK_SIZE; - const size_t to_allocate = in_blocks * TOTAL_BLOCK_SIZE; - - void* ptr = alloc_block(to_allocate); - if(ptr == 0) - throw Memory_Exhaustion(); - - allocated.push_back(std::make_pair(ptr, to_allocate)); - - for(size_t j = 0; j != in_blocks; ++j) - { - byte* byte_ptr = static_cast(ptr); - blocks.push_back(Memory_Block(byte_ptr + j * TOTAL_BLOCK_SIZE)); - } - - std::sort(blocks.begin(), blocks.end()); - last_used = std::lower_bound(blocks.begin(), blocks.end(), - Memory_Block(ptr)); - } - -} diff --git a/src/botan/src/alloc/mem_pool/mem_pool.h b/src/botan/src/alloc/mem_pool/mem_pool.h deleted file mode 100644 index 28d4dd903..000000000 --- a/src/botan/src/alloc/mem_pool/mem_pool.h +++ /dev/null @@ -1,77 +0,0 @@ -/* -* Pooling Allocator -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_POOLING_ALLOCATOR_H__ -#define BOTAN_POOLING_ALLOCATOR_H__ - -#include -#include -#include -#include -#include - -namespace Botan { - -/** -* Pooling Allocator -*/ -class Pooling_Allocator : public Allocator - { - public: - void* allocate(size_t); - void deallocate(void*, size_t); - - void destroy(); - - /** - * @param mutex used for internal locking - */ - Pooling_Allocator(Mutex* mutex); - ~Pooling_Allocator(); - private: - void get_more_core(size_t); - byte* allocate_blocks(size_t); - - virtual void* alloc_block(size_t) = 0; - virtual void dealloc_block(void*, size_t) = 0; - - class Memory_Block - { - public: - Memory_Block(void*); - - static size_t bitmap_size() { return BITMAP_SIZE; } - static size_t block_size() { return BLOCK_SIZE; } - - bool contains(void*, size_t) const; - byte* alloc(size_t); - void free(void*, size_t); - - bool operator<(const Memory_Block& other) const - { - if(buffer < other.buffer && other.buffer < buffer_end) - return false; - return (buffer < other.buffer); - } - private: - typedef u64bit bitmap_type; - static const size_t BITMAP_SIZE = 8 * sizeof(bitmap_type); - static const size_t BLOCK_SIZE = 64; - - bitmap_type bitmap; - byte* buffer, *buffer_end; - }; - - std::vector blocks; - std::vector::iterator last_used; - std::vector > allocated; - Mutex* mutex; - }; - -} - -#endif diff --git a/src/botan/src/alloc/secmem.h b/src/botan/src/alloc/secmem.h deleted file mode 100644 index 4ff530ecc..000000000 --- a/src/botan/src/alloc/secmem.h +++ /dev/null @@ -1,432 +0,0 @@ -/* -* Secure Memory Buffers -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_SECURE_MEMORY_BUFFERS_H__ -#define BOTAN_SECURE_MEMORY_BUFFERS_H__ - -#include -#include -#include - -namespace Botan { - -/** -* This class represents variable length memory buffers. -*/ -template -class MemoryRegion - { - public: - /** - * Find out the size of the buffer, i.e. how many objects of type T it - * contains. - * @return size of the buffer - */ - size_t size() const { return used; } - - /** - * Find out whether this buffer is empty. - * @return true if the buffer is empty, false otherwise - */ - bool empty() const { return (used == 0); } - - /** - * Get a pointer to the first element in the buffer. - * @return pointer to the first element in the buffer - */ - operator T* () { return buf; } - - /** - * Get a constant pointer to the first element in the buffer. - * @return constant pointer to the first element in the buffer - */ - operator const T* () const { return buf; } - - /** - * Get a pointer to the first element in the buffer. - * @return pointer to the first element in the buffer - */ - T* begin() { return buf; } - - /** - * Get a constant pointer to the first element in the buffer. - * @return constant pointer to the first element in the buffer - */ - const T* begin() const { return buf; } - - /** - * Get a pointer to one past the last element in the buffer. - * @return pointer to one past the last element in the buffer - */ - T* end() { return (buf + size()); } - - /** - * Get a const pointer to one past the last element in the buffer. - * @return const pointer to one past the last element in the buffer - */ - const T* end() const { return (buf + size()); } - - /** - * Check two buffers for equality. - * @return true iff the content of both buffers is byte-wise equal - */ - bool operator==(const MemoryRegion& other) const - { - return (size() == other.size() && - same_mem(buf, other.buf, size())); - } - - /** - * Compare two buffers - * @return true iff this is ordered before other - */ - bool operator<(const MemoryRegion& other) const; - - /** - * Check two buffers for inequality. - * @return false if the content of both buffers is byte-wise equal, true - * otherwise. - */ - bool operator!=(const MemoryRegion& other) const - { return (!(*this == other)); } - - /** - * Copy the contents of another buffer into this buffer. - * The former contents of *this are discarded. - * @param other the buffer to copy the contents from. - * @return reference to *this - */ - MemoryRegion& operator=(const MemoryRegion& other) - { - if(this != &other) - { - this->resize(other.size()); - this->copy(&other[0], other.size()); - } - return (*this); - } - - /** - * Copy the contents of an array of objects of type T into this buffer. - * The former contents of *this are discarded. - * The length of *this must be at least n, otherwise memory errors occur. - * @param in the array to copy the contents from - * @param n the length of in - */ - void copy(const T in[], size_t n) - { - copy_mem(buf, in, std::min(n, size())); - } - - /** - * Copy the contents of an array of objects of type T into this buffer. - * The former contents of *this are discarded. - * The length of *this must be at least n, otherwise memory errors occur. - * @param off the offset position inside this buffer to start inserting - * the copied bytes - * @param in the array to copy the contents from - * @param n the length of in - */ - void copy(size_t off, const T in[], size_t n) - { - copy_mem(buf + off, in, std::min(n, size() - off)); - } - - /** - * Append a single element. - * @param x the element to append - */ - void push_back(T x) - { - resize(size() + 1); - buf[size()-1] = x; - } - - /** - * Reset this buffer to an empty buffer with size zero. - */ - void clear() { resize(0); } - - /** - * Inserts or erases elements at the end such that the size - * becomes n, leaving elements in the range 0...n unmodified if - * set or otherwise zero-initialized - * @param n length of the new buffer - */ - void resize(size_t n); - - /** - * Swap this buffer with another object. - */ - void swap(MemoryRegion& other); - - ~MemoryRegion() { deallocate(buf, allocated); } - protected: - MemoryRegion() : buf(0), used(0), allocated(0), alloc(0) {} - - /** - * Copy constructor - * @param other the other region to copy - */ - MemoryRegion(const MemoryRegion& other) : - buf(0), - used(0), - allocated(0), - alloc(other.alloc) - { - resize(other.size()); - copy(&other[0], other.size()); - } - - /** - * @param locking should we use a locking allocator - * @param length the initial length to use - */ - void init(bool locking, size_t length = 0) - { alloc = Allocator::get(locking); resize(length); } - - private: - T* allocate(size_t n) - { - return static_cast(alloc->allocate(sizeof(T)*n)); - } - - void deallocate(T* p, size_t n) - { if(alloc && p && n) alloc->deallocate(p, sizeof(T)*n); } - - T* buf; - size_t used; - size_t allocated; - Allocator* alloc; - }; - -/* -* Change the size of the buffer -*/ -template -void MemoryRegion::resize(size_t n) - { - if(n <= allocated) - { - size_t zap = std::min(used, n); - clear_mem(buf + zap, allocated - zap); - used = n; - } - else - { - T* new_buf = allocate(n); - copy_mem(new_buf, buf, used); - deallocate(buf, allocated); - buf = new_buf; - allocated = used = n; - } - } - -/* -* Compare this buffer with another one -*/ -template -bool MemoryRegion::operator<(const MemoryRegion& other) const - { - const size_t min_size = std::min(size(), other.size()); - - // This should probably be rewritten to run in constant time - for(size_t i = 0; i != min_size; ++i) - { - if(buf[i] < other[i]) - return true; - if(buf[i] > other[i]) - return false; - } - - // First min_size bytes are equal, shorter is first - return (size() < other.size()); - } - -/* -* Swap this buffer with another one -*/ -template -void MemoryRegion::swap(MemoryRegion& x) - { - std::swap(buf, x.buf); - std::swap(used, x.used); - std::swap(allocated, x.allocated); - std::swap(alloc, x.alloc); - } - -/** -* This class represents variable length buffers that do not -* make use of memory locking. -*/ -template -class MemoryVector : public MemoryRegion - { - public: - /** - * Copy the contents of another buffer into this buffer. - * @param in the buffer to copy the contents from - * @return reference to *this - */ - MemoryVector& operator=(const MemoryRegion& in) - { - if(this != &in) - { - this->resize(in.size()); - this->copy(&in[0], in.size()); - } - return (*this); - } - - /** - * Create a buffer of the specified length. - * @param n the length of the buffer to create. - */ - MemoryVector(size_t n = 0) { this->init(false, n); } - - /** - * Create a buffer with the specified contents. - * @param in the array containing the data to be initially copied - * into the newly created buffer - * @param n the size of the arry in - */ - MemoryVector(const T in[], size_t n) - { - this->init(false); - this->resize(n); - this->copy(in, n); - } - - /** - * Copy constructor. - */ - MemoryVector(const MemoryRegion& in) - { - this->init(false); - this->resize(in.size()); - this->copy(&in[0], in.size()); - } - }; - -/** -* This class represents variable length buffers using the operating -* systems capability to lock memory, i.e. keeping it from being -* swapped out to disk. In this way, a security hole allowing attackers -* to find swapped out secret keys is closed. -*/ -template -class SecureVector : public MemoryRegion - { - public: - /** - * Copy the contents of another buffer into this buffer. - * @param other the buffer to copy the contents from - * @return reference to *this - */ - SecureVector& operator=(const MemoryRegion& other) - { - if(this != &other) - { - this->resize(other.size()); - this->copy(&other[0], other.size()); - } - return (*this); - } - - /** - * Create a buffer of the specified length. - * @param n the length of the buffer to create. - */ - SecureVector(size_t n = 0) { this->init(true, n); } - - /** - * Create a buffer with the specified contents. - * @param in the array containing the data to be initially copied - * into the newly created buffer - * @param n the size of the array in - */ - SecureVector(const T in[], size_t n) - { - this->init(true); - this->resize(n); - this->copy(&in[0], n); - } - - /** - * Create a buffer with contents specified contents. - * @param in the buffer holding the contents that will be - * copied into the newly created buffer. - */ - SecureVector(const MemoryRegion& in) - { - this->init(true); - this->resize(in.size()); - this->copy(&in[0], in.size()); - } - }; - -template -MemoryRegion& operator+=(MemoryRegion& out, - const MemoryRegion& in) - { - const size_t copy_offset = out.size(); - out.resize(out.size() + in.size()); - copy_mem(&out[copy_offset], &in[0], in.size()); - return out; - } - -template -MemoryRegion& operator+=(MemoryRegion& out, - T in) - { - out.push_back(in); - return out; - } - -template -MemoryRegion& operator+=(MemoryRegion& out, - const std::pair& in) - { - const size_t copy_offset = out.size(); - out.resize(out.size() + in.second); - copy_mem(&out[copy_offset], in.first, in.second); - return out; - } - -template -MemoryRegion& operator+=(MemoryRegion& out, - const std::pair& in) - { - const size_t copy_offset = out.size(); - out.resize(out.size() + in.second); - copy_mem(&out[copy_offset], in.first, in.second); - return out; - } - -/** -* Zeroise the values; length remains unchanged -* @param vec the vector to zeroise -*/ -template -void zeroise(MemoryRegion& vec) - { - clear_mem(&vec[0], vec.size()); - } - -} - -namespace std { - -template -inline void swap(Botan::MemoryRegion& x, Botan::MemoryRegion& y) - { - x.swap(y); - } - -} - -#endif diff --git a/src/botan/src/alloc/system_alloc/defalloc.cpp b/src/botan/src/alloc/system_alloc/defalloc.cpp deleted file mode 100644 index 8e178bb14..000000000 --- a/src/botan/src/alloc/system_alloc/defalloc.cpp +++ /dev/null @@ -1,103 +0,0 @@ -/* -* Basic Allocators -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include - -namespace Botan { - -namespace { - -/* -* Perform Memory Allocation -*/ -void* do_malloc(size_t n, bool do_lock) - { - void* ptr = std::malloc(n); - - if(!ptr) - return 0; - - if(do_lock) - lock_mem(ptr, n); - - std::memset(ptr, 0, n); - return ptr; - } - -/* -* Perform Memory Deallocation -*/ -void do_free(void* ptr, size_t n, bool do_lock) - { - if(!ptr) - return; - - std::memset(ptr, 0, n); - if(do_lock) - unlock_mem(ptr, n); - - std::free(ptr); - } - -} - -/* -* Malloc_Allocator's Allocation -*/ -void* Malloc_Allocator::allocate(size_t n) - { - void* ptr = do_malloc(n, false); - if(!ptr) - throw Memory_Exhaustion(); - return ptr; - } - -/* -* Malloc_Allocator's Deallocation -*/ -void Malloc_Allocator::deallocate(void* ptr, size_t n) - { - do_free(ptr, n, false); - } - -/* -* Locking_Allocator's Allocation -*/ -void* Locking_Allocator::alloc_block(size_t n) - { - return do_malloc(n, true); - } - -/* -* Locking_Allocator's Deallocation -*/ -void Locking_Allocator::dealloc_block(void* ptr, size_t n) - { - do_free(ptr, n, true); - } - -/* -* Get an allocator -*/ -Allocator* Allocator::get(bool locking) - { - std::string type = ""; - if(!locking) - type = "malloc"; - - Allocator* alloc = global_state().get_allocator(type); - if(alloc) - return alloc; - - throw Internal_Error("Couldn't find an allocator to use in get_allocator"); - } - -} diff --git a/src/botan/src/alloc/system_alloc/defalloc.h b/src/botan/src/alloc/system_alloc/defalloc.h deleted file mode 100644 index 6fba0e511..000000000 --- a/src/botan/src/alloc/system_alloc/defalloc.h +++ /dev/null @@ -1,46 +0,0 @@ -/* -* Basic Allocators -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_BASIC_ALLOC_H__ -#define BOTAN_BASIC_ALLOC_H__ - -#include - -namespace Botan { - -/** -* Allocator using malloc -*/ -class Malloc_Allocator : public Allocator - { - public: - void* allocate(size_t); - void deallocate(void*, size_t); - - std::string type() const { return "malloc"; } - }; - -/** -* Allocator using malloc plus locking -*/ -class Locking_Allocator : public Pooling_Allocator - { - public: - /** - * @param mutex used for internal locking - */ - Locking_Allocator(Mutex* mutex) : Pooling_Allocator(mutex) {} - - std::string type() const { return "locking"; } - private: - void* alloc_block(size_t); - void dealloc_block(void*, size_t); - }; - -} - -#endif diff --git a/src/botan/src/alloc/system_alloc/info.txt b/src/botan/src/alloc/system_alloc/info.txt deleted file mode 100644 index 87de0cb67..000000000 --- a/src/botan/src/alloc/system_alloc/info.txt +++ /dev/null @@ -1,13 +0,0 @@ - - -defalloc.cpp - - - -defalloc.h - - - -libstate -mem_pool - diff --git a/src/botan/src/asn1/alg_id.cpp b/src/botan/src/asn1/alg_id.cpp deleted file mode 100644 index f085d924e..000000000 --- a/src/botan/src/asn1/alg_id.cpp +++ /dev/null @@ -1,111 +0,0 @@ -/* -* Algorithm Identifier -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -namespace Botan { - -/* -* Create an AlgorithmIdentifier -*/ -AlgorithmIdentifier::AlgorithmIdentifier(const OID& alg_id, - const MemoryRegion& param) - { - oid = alg_id; - parameters = param; - } - -/* -* Create an AlgorithmIdentifier -*/ -AlgorithmIdentifier::AlgorithmIdentifier(const std::string& alg_id, - const MemoryRegion& param) - { - oid = OIDS::lookup(alg_id); - parameters = param; - } - -/* -* Create an AlgorithmIdentifier -*/ -AlgorithmIdentifier::AlgorithmIdentifier(const OID& alg_id, - Encoding_Option option) - { - const byte DER_NULL[] = { 0x05, 0x00 }; - - oid = alg_id; - - if(option == USE_NULL_PARAM) - { - parameters += std::pair( - DER_NULL, sizeof(DER_NULL)); - } - } - -/* -* Create an AlgorithmIdentifier -*/ -AlgorithmIdentifier::AlgorithmIdentifier(const std::string& alg_id, - Encoding_Option option) - { - const byte DER_NULL[] = { 0x05, 0x00 }; - - oid = OIDS::lookup(alg_id); - - if(option == USE_NULL_PARAM) - { - parameters += std::pair( - DER_NULL, sizeof(DER_NULL)); - } - } - -/* -* Compare two AlgorithmIdentifiers -*/ -bool operator==(const AlgorithmIdentifier& a1, const AlgorithmIdentifier& a2) - { - if(a1.oid != a2.oid) - return false; - if(a1.parameters != a2.parameters) - return false; - return true; - } - -/* -* Compare two AlgorithmIdentifiers -*/ -bool operator!=(const AlgorithmIdentifier& a1, const AlgorithmIdentifier& a2) - { - return !(a1 == a2); - } - -/* -* DER encode an AlgorithmIdentifier -*/ -void AlgorithmIdentifier::encode_into(DER_Encoder& codec) const - { - codec.start_cons(SEQUENCE) - .encode(oid) - .raw_bytes(parameters) - .end_cons(); - } - -/* -* Decode a BER encoded AlgorithmIdentifier -*/ -void AlgorithmIdentifier::decode_from(BER_Decoder& codec) - { - codec.start_cons(SEQUENCE) - .decode(oid) - .raw_bytes(parameters) - .end_cons(); - } - -} diff --git a/src/botan/src/asn1/alg_id.h b/src/botan/src/asn1/alg_id.h deleted file mode 100644 index 417a71b30..000000000 --- a/src/botan/src/asn1/alg_id.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -* Algorithm Identifier -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_ALGORITHM_IDENTIFIER_H__ -#define BOTAN_ALGORITHM_IDENTIFIER_H__ - -#include -#include -#include - -namespace Botan { - -/** -* Algorithm Identifier -*/ -class BOTAN_DLL AlgorithmIdentifier : public ASN1_Object - { - public: - enum Encoding_Option { USE_NULL_PARAM }; - - void encode_into(class DER_Encoder&) const; - void decode_from(class BER_Decoder&); - - AlgorithmIdentifier() {} - AlgorithmIdentifier(const OID&, Encoding_Option); - AlgorithmIdentifier(const std::string&, Encoding_Option); - - AlgorithmIdentifier(const OID&, const MemoryRegion&); - AlgorithmIdentifier(const std::string&, const MemoryRegion&); - - OID oid; - SecureVector parameters; - }; - -/* -* Comparison Operations -*/ -bool BOTAN_DLL operator==(const AlgorithmIdentifier&, - const AlgorithmIdentifier&); -bool BOTAN_DLL operator!=(const AlgorithmIdentifier&, - const AlgorithmIdentifier&); - -} - -#endif diff --git a/src/botan/src/asn1/asn1_alt.cpp b/src/botan/src/asn1/asn1_alt.cpp deleted file mode 100644 index 2d8e3a1d2..000000000 --- a/src/botan/src/asn1/asn1_alt.cpp +++ /dev/null @@ -1,246 +0,0 @@ -/* -* AlternativeName -* (C) 1999-2007 Jack Lloyd -* 2007 Yves Jerschow -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace Botan { - -namespace { - -/* -* Check if type is a known ASN.1 string type -*/ -bool is_string_type(ASN1_Tag tag) - { - return (tag == NUMERIC_STRING || - tag == PRINTABLE_STRING || - tag == VISIBLE_STRING || - tag == T61_STRING || - tag == IA5_STRING || - tag == UTF8_STRING || - tag == BMP_STRING); - } - -} - -/* -* Create an AlternativeName -*/ -AlternativeName::AlternativeName(const std::string& email_addr, - const std::string& uri, - const std::string& dns, - const std::string& ip) - { - add_attribute("RFC822", email_addr); - add_attribute("DNS", dns); - add_attribute("URI", uri); - add_attribute("IP", ip); - } - -/* -* Add an attribute to an alternative name -*/ -void AlternativeName::add_attribute(const std::string& type, - const std::string& str) - { - if(type == "" || str == "") - return; - - typedef std::multimap::iterator iter; - std::pair range = alt_info.equal_range(type); - for(iter j = range.first; j != range.second; ++j) - if(j->second == str) - return; - - multimap_insert(alt_info, type, str); - } - -/* -* Add an OtherName field -*/ -void AlternativeName::add_othername(const OID& oid, const std::string& value, - ASN1_Tag type) - { - if(value == "") - return; - multimap_insert(othernames, oid, ASN1_String(value, type)); - } - -/* -* Get the attributes of this alternative name -*/ -std::multimap AlternativeName::get_attributes() const - { - return alt_info; - } - -/* -* Get the otherNames -*/ -std::multimap AlternativeName::get_othernames() const - { - return othernames; - } - -/* -* Return all of the alternative names -*/ -std::multimap AlternativeName::contents() const - { - std::multimap names; - - typedef std::multimap::const_iterator rdn_iter; - for(rdn_iter j = alt_info.begin(); j != alt_info.end(); ++j) - multimap_insert(names, j->first, j->second); - - typedef std::multimap::const_iterator on_iter; - for(on_iter j = othernames.begin(); j != othernames.end(); ++j) - multimap_insert(names, OIDS::lookup(j->first), j->second.value()); - - return names; - } - -/* -* Return if this object has anything useful -*/ -bool AlternativeName::has_items() const - { - return (alt_info.size() > 0 || othernames.size() > 0); - } - -namespace { - -/* -* DER encode an AlternativeName entry -*/ -void encode_entries(DER_Encoder& encoder, - const std::multimap& attr, - const std::string& type, ASN1_Tag tagging) - { - typedef std::multimap::const_iterator iter; - - std::pair range = attr.equal_range(type); - for(iter j = range.first; j != range.second; ++j) - { - if(type == "RFC822" || type == "DNS" || type == "URI") - { - ASN1_String asn1_string(j->second, IA5_STRING); - encoder.add_object(tagging, CONTEXT_SPECIFIC, asn1_string.iso_8859()); - } - else if(type == "IP") - { - const u32bit ip = string_to_ipv4(j->second); - byte ip_buf[4] = { 0 }; - store_be(ip, ip_buf); - encoder.add_object(tagging, CONTEXT_SPECIFIC, ip_buf, 4); - } - } - } - -} - -/* -* DER encode an AlternativeName extension -*/ -void AlternativeName::encode_into(DER_Encoder& der) const - { - der.start_cons(SEQUENCE); - - encode_entries(der, alt_info, "RFC822", ASN1_Tag(1)); - encode_entries(der, alt_info, "DNS", ASN1_Tag(2)); - encode_entries(der, alt_info, "URI", ASN1_Tag(6)); - encode_entries(der, alt_info, "IP", ASN1_Tag(7)); - - std::multimap::const_iterator i; - for(i = othernames.begin(); i != othernames.end(); ++i) - { - der.start_explicit(0) - .encode(i->first) - .start_explicit(0) - .encode(i->second) - .end_explicit() - .end_explicit(); - } - - der.end_cons(); - } - -/* -* Decode a BER encoded AlternativeName -*/ -void AlternativeName::decode_from(BER_Decoder& source) - { - BER_Decoder names = source.start_cons(SEQUENCE); - - while(names.more_items()) - { - BER_Object obj = names.get_next_object(); - if((obj.class_tag != CONTEXT_SPECIFIC) && - (obj.class_tag != (CONTEXT_SPECIFIC | CONSTRUCTED))) - continue; - - const ASN1_Tag tag = obj.type_tag; - - if(tag == 0) - { - BER_Decoder othername(obj.value); - - OID oid; - othername.decode(oid); - if(othername.more_items()) - { - BER_Object othername_value_outer = othername.get_next_object(); - othername.verify_end(); - - if(othername_value_outer.type_tag != ASN1_Tag(0) || - othername_value_outer.class_tag != - (CONTEXT_SPECIFIC | CONSTRUCTED) - ) - throw Decoding_Error("Invalid tags on otherName value"); - - BER_Decoder othername_value_inner(othername_value_outer.value); - - BER_Object value = othername_value_inner.get_next_object(); - othername_value_inner.verify_end(); - - const ASN1_Tag value_type = value.type_tag; - - if(is_string_type(value_type) && value.class_tag == UNIVERSAL) - add_othername(oid, ASN1::to_string(value), value_type); - } - } - else if(tag == 1 || tag == 2 || tag == 6) - { - const std::string value = Charset::transcode(ASN1::to_string(obj), - LATIN1_CHARSET, - LOCAL_CHARSET); - - if(tag == 1) add_attribute("RFC822", value); - if(tag == 2) add_attribute("DNS", value); - if(tag == 6) add_attribute("URI", value); - } - else if(tag == 7) - { - if(obj.value.size() == 4) - { - const u32bit ip = load_be(&obj.value[0], 0); - add_attribute("IP", ipv4_to_string(ip)); - } - } - - } - } - -} diff --git a/src/botan/src/asn1/asn1_att.cpp b/src/botan/src/asn1/asn1_att.cpp deleted file mode 100644 index c8d771e25..000000000 --- a/src/botan/src/asn1/asn1_att.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* -* Attribute -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -namespace Botan { - -/* -* Create an Attribute -*/ -Attribute::Attribute(const OID& attr_oid, const MemoryRegion& attr_value) - { - oid = attr_oid; - parameters = attr_value; - } - -/* -* Create an Attribute -*/ -Attribute::Attribute(const std::string& attr_oid, - const MemoryRegion& attr_value) - { - oid = OIDS::lookup(attr_oid); - parameters = attr_value; - } - -/* -* DER encode a Attribute -*/ -void Attribute::encode_into(DER_Encoder& codec) const - { - codec.start_cons(SEQUENCE) - .encode(oid) - .start_cons(SET) - .raw_bytes(parameters) - .end_cons() - .end_cons(); - } - -/* -* Decode a BER encoded Attribute -*/ -void Attribute::decode_from(BER_Decoder& codec) - { - codec.start_cons(SEQUENCE) - .decode(oid) - .start_cons(SET) - .raw_bytes(parameters) - .end_cons() - .end_cons(); - } - -} diff --git a/src/botan/src/asn1/asn1_int.cpp b/src/botan/src/asn1/asn1_int.cpp deleted file mode 100644 index 75cb1f90c..000000000 --- a/src/botan/src/asn1/asn1_int.cpp +++ /dev/null @@ -1,68 +0,0 @@ -/* -* ASN.1 Internals -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include - -namespace Botan { - -/* -* BER Decoding Exceptions -*/ -BER_Decoding_Error::BER_Decoding_Error(const std::string& str) : - Decoding_Error("BER: " + str) {} - -BER_Bad_Tag::BER_Bad_Tag(const std::string& str, ASN1_Tag tag) : - BER_Decoding_Error(str + ": " + to_string(tag)) {} - -BER_Bad_Tag::BER_Bad_Tag(const std::string& str, - ASN1_Tag tag1, ASN1_Tag tag2) : - BER_Decoding_Error(str + ": " + to_string(tag1) + "/" + to_string(tag2)) {} - -namespace ASN1 { - -/* -* Put some arbitrary bytes into a SEQUENCE -*/ -SecureVector put_in_sequence(const MemoryRegion& contents) - { - return DER_Encoder() - .start_cons(SEQUENCE) - .raw_bytes(contents) - .end_cons() - .get_contents(); - } - -/* -* Convert a BER object into a string object -*/ -std::string to_string(const BER_Object& obj) - { - return std::string(reinterpret_cast(&obj.value[0]), - obj.value.size()); - } - -/* -* Do heuristic tests for BER data -*/ -bool maybe_BER(DataSource& source) - { - byte first_byte; - if(!source.peek_byte(first_byte)) - throw Stream_IO_Error("ASN1::maybe_BER: Source was empty"); - - if(first_byte == (SEQUENCE | CONSTRUCTED)) - return true; - return false; - } - -} - -} diff --git a/src/botan/src/asn1/asn1_int.h b/src/botan/src/asn1/asn1_int.h deleted file mode 100644 index 25b3cf100..000000000 --- a/src/botan/src/asn1/asn1_int.h +++ /dev/null @@ -1,123 +0,0 @@ -/* -* ASN.1 Internals -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_ASN1_H__ -#define BOTAN_ASN1_H__ - -#include -#include - -namespace Botan { - -/** -* ASN.1 Type and Class Tags -*/ -enum ASN1_Tag { - UNIVERSAL = 0x00, - APPLICATION = 0x40, - CONTEXT_SPECIFIC = 0x80, - PRIVATE = 0xC0, - - CONSTRUCTED = 0x20, - - EOC = 0x00, - BOOLEAN = 0x01, - INTEGER = 0x02, - BIT_STRING = 0x03, - OCTET_STRING = 0x04, - NULL_TAG = 0x05, - OBJECT_ID = 0x06, - ENUMERATED = 0x0A, - SEQUENCE = 0x10, - SET = 0x11, - - UTF8_STRING = 0x0C, - NUMERIC_STRING = 0x12, - PRINTABLE_STRING = 0x13, - T61_STRING = 0x14, - IA5_STRING = 0x16, - VISIBLE_STRING = 0x1A, - BMP_STRING = 0x1E, - - UTC_TIME = 0x17, - GENERALIZED_TIME = 0x18, - - NO_OBJECT = 0xFF00, - DIRECTORY_STRING = 0xFF01 -}; - -/** -* Basic ASN.1 Object Interface -*/ -class BOTAN_DLL ASN1_Object - { - public: - /** - * Encode whatever this object is into to - * @param to the DER_Encoder that will be written to - */ - virtual void encode_into(class DER_Encoder& to) const = 0; - - /** - * Decode whatever this object is from from - * @param from the BER_Decoder that will be read from - */ - virtual void decode_from(class BER_Decoder& from) = 0; - - virtual ~ASN1_Object() {} - }; - -/** -* BER Encoded Object -*/ -class BOTAN_DLL BER_Object - { - public: - void assert_is_a(ASN1_Tag, ASN1_Tag); - - ASN1_Tag type_tag, class_tag; - SecureVector value; - }; - -/* -* ASN.1 Utility Functions -*/ -class DataSource; - -namespace ASN1 { - -SecureVector put_in_sequence(const MemoryRegion& val); -std::string to_string(const BER_Object& obj); - -/** -* Heuristics tests; is this object possibly BER? -* @param src a data source that will be peeked at but not modified -*/ -bool maybe_BER(DataSource& src); - -} - -/** -* General BER Decoding Error Exception -*/ -struct BOTAN_DLL BER_Decoding_Error : public Decoding_Error - { - BER_Decoding_Error(const std::string&); - }; - -/** -* Exception For Incorrect BER Taggings -*/ -struct BOTAN_DLL BER_Bad_Tag : public BER_Decoding_Error - { - BER_Bad_Tag(const std::string& msg, ASN1_Tag tag); - BER_Bad_Tag(const std::string& msg, ASN1_Tag tag1, ASN1_Tag tag2); - }; - -} - -#endif diff --git a/src/botan/src/asn1/asn1_obj.h b/src/botan/src/asn1/asn1_obj.h deleted file mode 100644 index 692a6fde6..000000000 --- a/src/botan/src/asn1/asn1_obj.h +++ /dev/null @@ -1,103 +0,0 @@ -/* -* Common ASN.1 Objects -* (C) 1999-2007 Jack Lloyd -* 2007 Yves Jerschow -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_ASN1_OBJ_H__ -#define BOTAN_ASN1_OBJ_H__ - -#include -#include -#include -#include -#include -#include - -namespace Botan { - -/** -* Attribute -*/ -class BOTAN_DLL Attribute : public ASN1_Object - { - public: - void encode_into(class DER_Encoder& to) const; - void decode_from(class BER_Decoder& from); - - OID oid; - MemoryVector parameters; - - Attribute() {} - Attribute(const OID&, const MemoryRegion&); - Attribute(const std::string&, const MemoryRegion&); - }; - -/** -* X.509 Time -*/ -class BOTAN_DLL X509_Time : public ASN1_Object - { - public: - void encode_into(class DER_Encoder&) const; - void decode_from(class BER_Decoder&); - - std::string as_string() const; - std::string readable_string() const; - bool time_is_set() const; - - s32bit cmp(const X509_Time&) const; - - void set_to(const std::string&); - void set_to(const std::string&, ASN1_Tag); - - X509_Time(u64bit); - X509_Time(const std::string& = ""); - X509_Time(const std::string&, ASN1_Tag); - private: - bool passes_sanity_check() const; - u32bit year, month, day, hour, minute, second; - ASN1_Tag tag; - }; - -/** -* Alternative Name -*/ -class BOTAN_DLL AlternativeName : public ASN1_Object - { - public: - void encode_into(class DER_Encoder&) const; - void decode_from(class BER_Decoder&); - - std::multimap contents() const; - - void add_attribute(const std::string&, const std::string&); - std::multimap get_attributes() const; - - void add_othername(const OID&, const std::string&, ASN1_Tag); - std::multimap get_othernames() const; - - bool has_items() const; - - AlternativeName(const std::string& = "", const std::string& = "", - const std::string& = "", const std::string& = ""); - private: - std::multimap alt_info; - std::multimap othernames; - }; - -/* -* Comparison Operations -*/ -bool BOTAN_DLL operator==(const X509_Time&, const X509_Time&); -bool BOTAN_DLL operator!=(const X509_Time&, const X509_Time&); -bool BOTAN_DLL operator<=(const X509_Time&, const X509_Time&); -bool BOTAN_DLL operator>=(const X509_Time&, const X509_Time&); -bool BOTAN_DLL operator<(const X509_Time&, const X509_Time&); -bool BOTAN_DLL operator>(const X509_Time&, const X509_Time&); - -} - -#endif diff --git a/src/botan/src/asn1/asn1_oid.cpp b/src/botan/src/asn1/asn1_oid.cpp deleted file mode 100644 index ae3d48ce2..000000000 --- a/src/botan/src/asn1/asn1_oid.cpp +++ /dev/null @@ -1,184 +0,0 @@ -/* -* ASN.1 OID -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include - -namespace Botan { - -/* -* ASN.1 OID Constructor -*/ -OID::OID(const std::string& oid_str) - { - if(oid_str != "") - { - try - { - id = parse_asn1_oid(oid_str); - } - catch(...) - { - throw Invalid_OID(oid_str); - } - - if(id.size() < 2 || id[0] > 2) - throw Invalid_OID(oid_str); - if((id[0] == 0 || id[0] == 1) && id[1] > 39) - throw Invalid_OID(oid_str); - } - } - -/* -* Clear the current OID -*/ -void OID::clear() - { - id.clear(); - } - -/* -* Return this OID as a string -*/ -std::string OID::as_string() const - { - std::string oid_str; - for(size_t i = 0; i != id.size(); ++i) - { - oid_str += to_string(id[i]); - if(i != id.size() - 1) - oid_str += '.'; - } - return oid_str; - } - -/* -* OID equality comparison -*/ -bool OID::operator==(const OID& oid) const - { - if(id.size() != oid.id.size()) - return false; - for(size_t i = 0; i != id.size(); ++i) - if(id[i] != oid.id[i]) - return false; - return true; - } - -/* -* Append another component to the OID -*/ -OID& OID::operator+=(u32bit component) - { - id.push_back(component); - return (*this); - } - -/* -* Append another component to the OID -*/ -OID operator+(const OID& oid, u32bit component) - { - OID new_oid(oid); - new_oid += component; - return new_oid; - } - -/* -* OID inequality comparison -*/ -bool operator!=(const OID& a, const OID& b) - { - return !(a == b); - } - -/* -* Compare two OIDs -*/ -bool operator<(const OID& a, const OID& b) - { - std::vector oid1 = a.get_id(); - std::vector oid2 = b.get_id(); - - if(oid1.size() < oid2.size()) - return true; - if(oid1.size() > oid2.size()) - return false; - for(size_t i = 0; i != oid1.size(); ++i) - { - if(oid1[i] < oid2[i]) - return true; - if(oid1[i] > oid2[i]) - return false; - } - return false; - } - -/* -* DER encode an OBJECT IDENTIFIER -*/ -void OID::encode_into(DER_Encoder& der) const - { - if(id.size() < 2) - throw Invalid_Argument("OID::encode_into: OID is invalid"); - - MemoryVector encoding; - encoding.push_back(40 * id[0] + id[1]); - - for(size_t i = 2; i != id.size(); ++i) - { - if(id[i] == 0) - encoding.push_back(0); - else - { - size_t blocks = high_bit(id[i]) + 6; - blocks = (blocks - (blocks % 7)) / 7; - - for(size_t j = 0; j != blocks - 1; ++j) - encoding.push_back(0x80 | ((id[i] >> 7*(blocks-j-1)) & 0x7F)); - encoding.push_back(id[i] & 0x7F); - } - } - der.add_object(OBJECT_ID, UNIVERSAL, encoding); - } - -/* -* Decode a BER encoded OBJECT IDENTIFIER -*/ -void OID::decode_from(BER_Decoder& decoder) - { - BER_Object obj = decoder.get_next_object(); - if(obj.type_tag != OBJECT_ID || obj.class_tag != UNIVERSAL) - throw BER_Bad_Tag("Error decoding OID, unknown tag", - obj.type_tag, obj.class_tag); - if(obj.value.size() < 2) - throw BER_Decoding_Error("OID encoding is too short"); - - - clear(); - id.push_back(obj.value[0] / 40); - id.push_back(obj.value[0] % 40); - - size_t i = 0; - while(i != obj.value.size() - 1) - { - u32bit component = 0; - while(i != obj.value.size() - 1) - { - ++i; - component = (component << 7) + (obj.value[i] & 0x7F); - if(!(obj.value[i] & 0x80)) - break; - } - id.push_back(component); - } - } - -} diff --git a/src/botan/src/asn1/asn1_oid.h b/src/botan/src/asn1/asn1_oid.h deleted file mode 100644 index b3db97744..000000000 --- a/src/botan/src/asn1/asn1_oid.h +++ /dev/null @@ -1,96 +0,0 @@ -/* -* ASN.1 OID -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_ASN1_OID_H__ -#define BOTAN_ASN1_OID_H__ - -#include -#include -#include - -namespace Botan { - -/** -* This class represents ASN.1 object identifiers. -*/ -class BOTAN_DLL OID : public ASN1_Object - { - public: - void encode_into(class DER_Encoder&) const; - void decode_from(class BER_Decoder&); - - /** - * Find out whether this OID is empty - * @return true is no OID value is set - */ - bool is_empty() const { return id.size() == 0; } - - /** - * Get this OID as list (vector) of its components. - * @return vector representing this OID - */ - std::vector get_id() const { return id; } - - /** - * Get this OID as a string - * @return string representing this OID - */ - std::string as_string() const; - - /** - * Compare two OIDs. - * @return true if they are equal, false otherwise - */ - bool operator==(const OID&) const; - - /** - * Reset this instance to an empty OID. - */ - void clear(); - - /** - * Add a component to this OID. - * @param new_comp the new component to add to the end of this OID - * @return reference to *this - */ - OID& operator+=(u32bit new_comp); - - /** - * Construct an OID from a string. - * @param str a string in the form "a.b.c" etc., where a,b,c are numbers - */ - OID(const std::string& str = ""); - private: - std::vector id; - }; - -/** -* Append another component onto the OID. -* @param oid the OID to add the new component to -* @param new_comp the new component to add -*/ -OID operator+(const OID& oid, u32bit new_comp); - -/** -* Compare two OIDs. -* @param a the first OID -* @param b the second OID -* @return true if a is not equal to b -*/ -bool operator!=(const OID& a, const OID& b); - -/** -* Compare two OIDs. -* @param a the first OID -* @param b the second OID -* @return true if a is lexicographically smaller than b -*/ -bool operator<(const OID& a, const OID& b); - -} - -#endif diff --git a/src/botan/src/asn1/asn1_str.cpp b/src/botan/src/asn1/asn1_str.cpp deleted file mode 100644 index b28f36d90..000000000 --- a/src/botan/src/asn1/asn1_str.cpp +++ /dev/null @@ -1,148 +0,0 @@ -/* -* Simple ASN.1 String Types -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include - -namespace Botan { - -namespace { - -/* -* Choose an encoding for the string -*/ -ASN1_Tag choose_encoding(const std::string& str, - const std::string& type) - { - static const byte IS_PRINTABLE[256] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, - 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00 }; - - for(size_t i = 0; i != str.size(); ++i) - { - if(!IS_PRINTABLE[static_cast(str[i])]) - { - if(type == "utf8") return UTF8_STRING; - if(type == "latin1") return T61_STRING; - throw Invalid_Argument("choose_encoding: Bad string type " + type); - } - } - return PRINTABLE_STRING; - } - -} - -/* -* Create an ASN1_String -*/ -ASN1_String::ASN1_String(const std::string& str, ASN1_Tag t) : tag(t) - { - iso_8859_str = Charset::transcode(str, LOCAL_CHARSET, LATIN1_CHARSET); - - if(tag == DIRECTORY_STRING) - tag = choose_encoding(iso_8859_str, "latin1"); - - if(tag != NUMERIC_STRING && - tag != PRINTABLE_STRING && - tag != VISIBLE_STRING && - tag != T61_STRING && - tag != IA5_STRING && - tag != UTF8_STRING && - tag != BMP_STRING) - throw Invalid_Argument("ASN1_String: Unknown string type " + - to_string(tag)); - } - -/* -* Create an ASN1_String -*/ -ASN1_String::ASN1_String(const std::string& str) - { - iso_8859_str = Charset::transcode(str, LOCAL_CHARSET, LATIN1_CHARSET); - tag = choose_encoding(iso_8859_str, "latin1"); - } - -/* -* Return this string in ISO 8859-1 encoding -*/ -std::string ASN1_String::iso_8859() const - { - return iso_8859_str; - } - -/* -* Return this string in local encoding -*/ -std::string ASN1_String::value() const - { - return Charset::transcode(iso_8859_str, LATIN1_CHARSET, LOCAL_CHARSET); - } - -/* -* Return the type of this string object -*/ -ASN1_Tag ASN1_String::tagging() const - { - return tag; - } - -/* -* DER encode an ASN1_String -*/ -void ASN1_String::encode_into(DER_Encoder& encoder) const - { - std::string value = iso_8859(); - if(tagging() == UTF8_STRING) - value = Charset::transcode(value, LATIN1_CHARSET, UTF8_CHARSET); - encoder.add_object(tagging(), UNIVERSAL, value); - } - -/* -* Decode a BER encoded ASN1_String -*/ -void ASN1_String::decode_from(BER_Decoder& source) - { - BER_Object obj = source.get_next_object(); - - Character_Set charset_is; - - if(obj.type_tag == BMP_STRING) - charset_is = UCS2_CHARSET; - else if(obj.type_tag == UTF8_STRING) - charset_is = UTF8_CHARSET; - else - charset_is = LATIN1_CHARSET; - - *this = ASN1_String( - Charset::transcode(ASN1::to_string(obj), charset_is, LOCAL_CHARSET), - obj.type_tag); - } - -} diff --git a/src/botan/src/asn1/asn1_str.h b/src/botan/src/asn1/asn1_str.h deleted file mode 100644 index ba43b0e94..000000000 --- a/src/botan/src/asn1/asn1_str.h +++ /dev/null @@ -1,38 +0,0 @@ -/* -* ASN.1 string type -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_ASN1_STRING_H__ -#define BOTAN_ASN1_STRING_H__ - -#include - -namespace Botan { - -/** -* Simple String -*/ -class BOTAN_DLL ASN1_String : public ASN1_Object - { - public: - void encode_into(class DER_Encoder&) const; - void decode_from(class BER_Decoder&); - - std::string value() const; - std::string iso_8859() const; - - ASN1_Tag tagging() const; - - ASN1_String(const std::string& = ""); - ASN1_String(const std::string&, ASN1_Tag); - private: - std::string iso_8859_str; - ASN1_Tag tag; - }; - -} - -#endif diff --git a/src/botan/src/asn1/asn1_tm.cpp b/src/botan/src/asn1/asn1_tm.cpp deleted file mode 100644 index a059e0528..000000000 --- a/src/botan/src/asn1/asn1_tm.cpp +++ /dev/null @@ -1,291 +0,0 @@ -/* -* X.509 Time Types -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include - -namespace Botan { - -/* -* Create an X509_Time -*/ -X509_Time::X509_Time(const std::string& time_str) - { - set_to(time_str); - } - -/* -* Create an X509_Time -*/ -X509_Time::X509_Time(u64bit timer) - { - calendar_point cal = calendar_value(timer); - - year = cal.year; - month = cal.month; - day = cal.day; - hour = cal.hour; - minute = cal.minutes; - second = cal.seconds; - - tag = (year >= 2050) ? GENERALIZED_TIME : UTC_TIME; - } - -/* -* Create an X509_Time -*/ -X509_Time::X509_Time(const std::string& t_spec, ASN1_Tag t) : tag(t) - { - set_to(t_spec, tag); - } - -/* -* Set the time with a human readable string -*/ -void X509_Time::set_to(const std::string& time_str) - { - if(time_str == "") - { - year = month = day = hour = minute = second = 0; - tag = NO_OBJECT; - return; - } - - std::vector params; - std::string current; - - for(size_t j = 0; j != time_str.size(); ++j) - { - if(Charset::is_digit(time_str[j])) - current += time_str[j]; - else - { - if(current != "") - params.push_back(current); - current.clear(); - } - } - if(current != "") - params.push_back(current); - - if(params.size() < 3 || params.size() > 6) - throw Invalid_Argument("Invalid time specification " + time_str); - - year = to_u32bit(params[0]); - month = to_u32bit(params[1]); - day = to_u32bit(params[2]); - hour = (params.size() >= 4) ? to_u32bit(params[3]) : 0; - minute = (params.size() >= 5) ? to_u32bit(params[4]) : 0; - second = (params.size() == 6) ? to_u32bit(params[5]) : 0; - - tag = (year >= 2050) ? GENERALIZED_TIME : UTC_TIME; - - if(!passes_sanity_check()) - throw Invalid_Argument("Invalid time specification " + time_str); - } - -/* -* Set the time with an ISO time format string -*/ -void X509_Time::set_to(const std::string& t_spec, ASN1_Tag spec_tag) - { - if(spec_tag != GENERALIZED_TIME && spec_tag != UTC_TIME) - throw Invalid_Argument("X509_Time: Invalid tag " + to_string(spec_tag)); - - if(spec_tag == GENERALIZED_TIME && t_spec.size() != 13 && t_spec.size() != 15) - throw Invalid_Argument("Invalid GeneralizedTime: " + t_spec); - - if(spec_tag == UTC_TIME && t_spec.size() != 11 && t_spec.size() != 13) - throw Invalid_Argument("Invalid UTCTime: " + t_spec); - - if(t_spec[t_spec.size()-1] != 'Z') - throw Invalid_Argument("Invalid time encoding: " + t_spec); - - const size_t YEAR_SIZE = (spec_tag == UTC_TIME) ? 2 : 4; - - std::vector params; - std::string current; - - for(size_t j = 0; j != YEAR_SIZE; ++j) - current += t_spec[j]; - params.push_back(current); - current.clear(); - - for(size_t j = YEAR_SIZE; j != t_spec.size() - 1; ++j) - { - current += t_spec[j]; - if(current.size() == 2) - { - params.push_back(current); - current.clear(); - } - } - - year = to_u32bit(params[0]); - month = to_u32bit(params[1]); - day = to_u32bit(params[2]); - hour = to_u32bit(params[3]); - minute = to_u32bit(params[4]); - second = (params.size() == 6) ? to_u32bit(params[5]) : 0; - tag = spec_tag; - - if(spec_tag == UTC_TIME) - { - if(year >= 50) year += 1900; - else year += 2000; - } - - if(!passes_sanity_check()) - throw Invalid_Argument("Invalid time specification " + t_spec); - } - -/* -* DER encode a X509_Time -*/ -void X509_Time::encode_into(DER_Encoder& der) const - { - if(tag != GENERALIZED_TIME && tag != UTC_TIME) - throw Invalid_Argument("X509_Time: Bad encoding tag"); - - der.add_object(tag, UNIVERSAL, - Charset::transcode(as_string(), - LOCAL_CHARSET, - LATIN1_CHARSET)); - } - -/* -* Decode a BER encoded X509_Time -*/ -void X509_Time::decode_from(BER_Decoder& source) - { - BER_Object ber_time = source.get_next_object(); - - set_to(Charset::transcode(ASN1::to_string(ber_time), - LATIN1_CHARSET, - LOCAL_CHARSET), - ber_time.type_tag); - } - -/* -* Return a string representation of the time -*/ -std::string X509_Time::as_string() const - { - if(time_is_set() == false) - throw Invalid_State("X509_Time::as_string: No time set"); - - std::string asn1rep; - if(tag == GENERALIZED_TIME) - asn1rep = to_string(year, 4); - else if(tag == UTC_TIME) - { - if(year < 1950 || year >= 2050) - throw Encoding_Error("X509_Time: The time " + readable_string() + - " cannot be encoded as a UTCTime"); - u32bit asn1year = (year >= 2000) ? (year - 2000) : (year - 1900); - asn1rep = to_string(asn1year, 2); - } - else - throw Invalid_Argument("X509_Time: Invalid tag " + to_string(tag)); - - asn1rep += to_string(month, 2) + to_string(day, 2); - asn1rep += to_string(hour, 2) + to_string(minute, 2) + to_string(second, 2); - asn1rep += "Z"; - return asn1rep; - } - -/* -* Return if the time has been set somehow -*/ -bool X509_Time::time_is_set() const - { - return (year != 0); - } - -/* -* Return a human readable string representation -*/ -std::string X509_Time::readable_string() const - { - if(time_is_set() == false) - throw Invalid_State("X509_Time::readable_string: No time set"); - - std::string readable; - readable += to_string(year, 4) + "/"; - readable += to_string(month ) + "/"; - readable += to_string(day ) + " "; - readable += to_string(hour ) + ":"; - readable += to_string(minute, 2) + ":"; - readable += to_string(second, 2) + " UTC"; - return readable; - } - -/* -* Do a general sanity check on the time -*/ -bool X509_Time::passes_sanity_check() const - { - if(year < 1950 || year > 2100) - return false; - if(month == 0 || month > 12) - return false; - if(day == 0 || day > 31) - return false; - if(hour >= 24 || minute > 60 || second > 60) - return false; - return true; - } - -/* -* Compare this time against another -*/ -s32bit X509_Time::cmp(const X509_Time& other) const - { - if(time_is_set() == false) - throw Invalid_State("X509_Time::cmp: No time set"); - - const s32bit EARLIER = -1, LATER = 1, SAME_TIME = 0; - - if(year < other.year) return EARLIER; - if(year > other.year) return LATER; - if(month < other.month) return EARLIER; - if(month > other.month) return LATER; - if(day < other.day) return EARLIER; - if(day > other.day) return LATER; - if(hour < other.hour) return EARLIER; - if(hour > other.hour) return LATER; - if(minute < other.minute) return EARLIER; - if(minute > other.minute) return LATER; - if(second < other.second) return EARLIER; - if(second > other.second) return LATER; - - return SAME_TIME; - } - -/* -* Compare two X509_Times for in various ways -*/ -bool operator==(const X509_Time& t1, const X509_Time& t2) - { return (t1.cmp(t2) == 0); } -bool operator!=(const X509_Time& t1, const X509_Time& t2) - { return (t1.cmp(t2) != 0); } - -bool operator<=(const X509_Time& t1, const X509_Time& t2) - { return (t1.cmp(t2) <= 0); } -bool operator>=(const X509_Time& t1, const X509_Time& t2) - { return (t1.cmp(t2) >= 0); } - -bool operator<(const X509_Time& t1, const X509_Time& t2) - { return (t1.cmp(t2) < 0); } -bool operator>(const X509_Time& t1, const X509_Time& t2) - { return (t1.cmp(t2) > 0); } - -} diff --git a/src/botan/src/asn1/ber_dec.cpp b/src/botan/src/asn1/ber_dec.cpp deleted file mode 100644 index 478ebae86..000000000 --- a/src/botan/src/asn1/ber_dec.cpp +++ /dev/null @@ -1,494 +0,0 @@ -/* -* BER Decoder -* (C) 1999-2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -namespace { - -/* -* BER decode an ASN.1 type tag -*/ -size_t decode_tag(DataSource* ber, ASN1_Tag& type_tag, ASN1_Tag& class_tag) - { - byte b; - if(!ber->read_byte(b)) - { - class_tag = type_tag = NO_OBJECT; - return 0; - } - - if((b & 0x1F) != 0x1F) - { - type_tag = ASN1_Tag(b & 0x1F); - class_tag = ASN1_Tag(b & 0xE0); - return 1; - } - - size_t tag_bytes = 1; - class_tag = ASN1_Tag(b & 0xE0); - - size_t tag_buf = 0; - while(true) - { - if(!ber->read_byte(b)) - throw BER_Decoding_Error("Long-form tag truncated"); - if(tag_buf & 0xFF000000) - throw BER_Decoding_Error("Long-form tag overflowed 32 bits"); - ++tag_bytes; - tag_buf = (tag_buf << 7) | (b & 0x7F); - if((b & 0x80) == 0) break; - } - type_tag = ASN1_Tag(tag_buf); - return tag_bytes; - } - -/* -* Find the EOC marker -*/ -size_t find_eoc(DataSource*); - -/* -* BER decode an ASN.1 length field -*/ -size_t decode_length(DataSource* ber, size_t& field_size) - { - byte b; - if(!ber->read_byte(b)) - throw BER_Decoding_Error("Length field not found"); - field_size = 1; - if((b & 0x80) == 0) - return b; - - field_size += (b & 0x7F); - if(field_size == 1) return find_eoc(ber); - if(field_size > 5) - throw BER_Decoding_Error("Length field is too large"); - - size_t length = 0; - - for(size_t i = 0; i != field_size - 1; ++i) - { - if(get_byte(0, length) != 0) - throw BER_Decoding_Error("Field length overflow"); - if(!ber->read_byte(b)) - throw BER_Decoding_Error("Corrupted length field"); - length = (length << 8) | b; - } - return length; - } - -/* -* BER decode an ASN.1 length field -*/ -size_t decode_length(DataSource* ber) - { - size_t dummy; - return decode_length(ber, dummy); - } - -/* -* Find the EOC marker -*/ -size_t find_eoc(DataSource* ber) - { - SecureVector buffer(DEFAULT_BUFFERSIZE), data; - - while(true) - { - const size_t got = ber->peek(&buffer[0], buffer.size(), data.size()); - if(got == 0) - break; - - data += std::make_pair(&buffer[0], got); - } - - DataSource_Memory source(data); - data.clear(); - - size_t length = 0; - while(true) - { - ASN1_Tag type_tag, class_tag; - size_t tag_size = decode_tag(&source, type_tag, class_tag); - if(type_tag == NO_OBJECT) - break; - - size_t length_size = 0; - size_t item_size = decode_length(&source, length_size); - source.discard_next(item_size); - - length += item_size + length_size + tag_size; - - if(type_tag == EOC && class_tag == UNIVERSAL) - break; - } - return length; - } - -} - -/* -* Check a type invariant on BER data -*/ -void BER_Object::assert_is_a(ASN1_Tag type_tag, ASN1_Tag class_tag) - { - if(this->type_tag != type_tag || this->class_tag != class_tag) - throw BER_Decoding_Error("Tag mismatch when decoding"); - } - -/* -* Check if more objects are there -*/ -bool BER_Decoder::more_items() const - { - if(source->end_of_data() && (pushed.type_tag == NO_OBJECT)) - return false; - return true; - } - -/* -* Verify that no bytes remain in the source -*/ -BER_Decoder& BER_Decoder::verify_end() - { - if(!source->end_of_data() || (pushed.type_tag != NO_OBJECT)) - throw Invalid_State("BER_Decoder::verify_end called, but data remains"); - return (*this); - } - -/* -* Save all the bytes remaining in the source -*/ -BER_Decoder& BER_Decoder::raw_bytes(MemoryRegion& out) - { - out.clear(); - byte buf; - while(source->read_byte(buf)) - out.push_back(buf); - return (*this); - } - -/* -* Discard all the bytes remaining in the source -*/ -BER_Decoder& BER_Decoder::discard_remaining() - { - byte buf; - while(source->read_byte(buf)) - ; - return (*this); - } - -/* -* Return the BER encoding of the next object -*/ -BER_Object BER_Decoder::get_next_object() - { - BER_Object next; - - if(pushed.type_tag != NO_OBJECT) - { - next = pushed; - pushed.class_tag = pushed.type_tag = NO_OBJECT; - return next; - } - - decode_tag(source, next.type_tag, next.class_tag); - if(next.type_tag == NO_OBJECT) - return next; - - const size_t length = decode_length(source); - if(!source->check_available(length)) - throw BER_Decoding_Error("Value truncated"); - - next.value.resize(length); - if(source->read(&next.value[0], length) != length) - throw BER_Decoding_Error("Value truncated"); - - if(next.type_tag == EOC && next.class_tag == UNIVERSAL) - return get_next_object(); - - return next; - } - -/* -* Push a object back into the stream -*/ -void BER_Decoder::push_back(const BER_Object& obj) - { - if(pushed.type_tag != NO_OBJECT) - throw Invalid_State("BER_Decoder: Only one push back is allowed"); - pushed = obj; - } - -/* -* Begin decoding a CONSTRUCTED type -*/ -BER_Decoder BER_Decoder::start_cons(ASN1_Tag type_tag, - ASN1_Tag class_tag) - { - BER_Object obj = get_next_object(); - obj.assert_is_a(type_tag, ASN1_Tag(class_tag | CONSTRUCTED)); - - BER_Decoder result(&obj.value[0], obj.value.size()); - result.parent = this; - return result; - } - -/* -* Finish decoding a CONSTRUCTED type -*/ -BER_Decoder& BER_Decoder::end_cons() - { - if(!parent) - throw Invalid_State("BER_Decoder::end_cons called with NULL parent"); - if(!source->end_of_data()) - throw Decoding_Error("BER_Decoder::end_cons called with data left"); - return (*parent); - } - -/* -* BER_Decoder Constructor -*/ -BER_Decoder::BER_Decoder(DataSource& src) - { - source = &src; - owns = false; - pushed.type_tag = pushed.class_tag = NO_OBJECT; - parent = 0; - } - -/* -* BER_Decoder Constructor - */ -BER_Decoder::BER_Decoder(const byte data[], size_t length) - { - source = new DataSource_Memory(data, length); - owns = true; - pushed.type_tag = pushed.class_tag = NO_OBJECT; - parent = 0; - } - -/* -* BER_Decoder Constructor -*/ -BER_Decoder::BER_Decoder(const MemoryRegion& data) - { - source = new DataSource_Memory(data); - owns = true; - pushed.type_tag = pushed.class_tag = NO_OBJECT; - parent = 0; - } - -/* -* BER_Decoder Copy Constructor -*/ -BER_Decoder::BER_Decoder(const BER_Decoder& other) - { - source = other.source; - owns = false; - if(other.owns) - { - other.owns = false; - owns = true; - } - pushed.type_tag = pushed.class_tag = NO_OBJECT; - parent = other.parent; - } - -/* -* BER_Decoder Destructor -*/ -BER_Decoder::~BER_Decoder() - { - if(owns) - delete source; - source = 0; - } - -/* -* Request for an object to decode itself -*/ -BER_Decoder& BER_Decoder::decode(ASN1_Object& obj) - { - obj.decode_from(*this); - return (*this); - } - -/* -* Decode a BER encoded NULL -*/ -BER_Decoder& BER_Decoder::decode_null() - { - BER_Object obj = get_next_object(); - obj.assert_is_a(NULL_TAG, UNIVERSAL); - if(obj.value.size()) - throw BER_Decoding_Error("NULL object had nonzero size"); - return (*this); - } - -/* -* Decode a BER encoded BOOLEAN -*/ -BER_Decoder& BER_Decoder::decode(bool& out) - { - return decode(out, BOOLEAN, UNIVERSAL); - } - -/* -* Decode a small BER encoded INTEGER -*/ -BER_Decoder& BER_Decoder::decode(size_t& out) - { - return decode(out, INTEGER, UNIVERSAL); - } - -/* -* Decode a BER encoded INTEGER -*/ -BER_Decoder& BER_Decoder::decode(BigInt& out) - { - return decode(out, INTEGER, UNIVERSAL); - } - -BER_Decoder& BER_Decoder::decode_octet_string_bigint(BigInt& out) - { - SecureVector out_vec; - decode(out_vec, OCTET_STRING); - out = BigInt::decode(&out_vec[0], out_vec.size()); - return (*this); - } - -/* -* Decode a BER encoded BOOLEAN -*/ -BER_Decoder& BER_Decoder::decode(bool& out, - ASN1_Tag type_tag, ASN1_Tag class_tag) - { - BER_Object obj = get_next_object(); - obj.assert_is_a(type_tag, class_tag); - - if(obj.value.size() != 1) - throw BER_Decoding_Error("BER boolean value had invalid size"); - - out = (obj.value[0]) ? true : false; - return (*this); - } - -/* -* Decode a small BER encoded INTEGER -*/ -BER_Decoder& BER_Decoder::decode(size_t& out, - ASN1_Tag type_tag, ASN1_Tag class_tag) - { - BigInt integer; - decode(integer, type_tag, class_tag); - - if(integer.bits() > 32) - throw BER_Decoding_Error("Decoded integer value larger than expected"); - - out = 0; - for(size_t i = 0; i != 4; ++i) - out = (out << 8) | integer.byte_at(3-i); - - return (*this); - } - -/* -* Decode a BER encoded INTEGER -*/ -BER_Decoder& BER_Decoder::decode(BigInt& out, - ASN1_Tag type_tag, ASN1_Tag class_tag) - { - BER_Object obj = get_next_object(); - obj.assert_is_a(type_tag, class_tag); - - if(obj.value.empty()) - out = 0; - else - { - const bool negative = (obj.value[0] & 0x80) ? true : false; - - if(negative) - { - for(size_t i = obj.value.size(); i > 0; --i) - if(obj.value[i-1]--) - break; - for(size_t i = 0; i != obj.value.size(); ++i) - obj.value[i] = ~obj.value[i]; - } - - out = BigInt(&obj.value[0], obj.value.size()); - - if(negative) - out.flip_sign(); - } - - return (*this); - } - -/* -* BER decode a BIT STRING or OCTET STRING -*/ -BER_Decoder& BER_Decoder::decode(MemoryRegion& out, ASN1_Tag real_type) - { - return decode(out, real_type, real_type, UNIVERSAL); - } - -/* -* BER decode a BIT STRING or OCTET STRING -*/ -BER_Decoder& BER_Decoder::decode(MemoryRegion& buffer, - ASN1_Tag real_type, - ASN1_Tag type_tag, ASN1_Tag class_tag) - { - if(real_type != OCTET_STRING && real_type != BIT_STRING) - throw BER_Bad_Tag("Bad tag for {BIT,OCTET} STRING", real_type); - - BER_Object obj = get_next_object(); - obj.assert_is_a(type_tag, class_tag); - - if(real_type == OCTET_STRING) - buffer = obj.value; - else - { - if(obj.value.empty()) - throw BER_Decoding_Error("Invalid BIT STRING"); - if(obj.value[0] >= 8) - throw BER_Decoding_Error("Bad number of unused bits in BIT STRING"); - - buffer.resize(obj.value.size() - 1); - copy_mem(&buffer[0], &obj.value[1], obj.value.size() - 1); - } - return (*this); - } - -/* -* Decode an OPTIONAL string type -*/ -BER_Decoder& BER_Decoder::decode_optional_string(MemoryRegion& out, - ASN1_Tag real_type, - u16bit type_no) - { - BER_Object obj = get_next_object(); - - ASN1_Tag type_tag = static_cast(type_no); - - out.clear(); - push_back(obj); - - if(obj.type_tag == type_tag && obj.class_tag == CONTEXT_SPECIFIC) - decode(out, real_type, type_tag, CONTEXT_SPECIFIC); - - return (*this); - } - -} diff --git a/src/botan/src/asn1/ber_dec.h b/src/botan/src/asn1/ber_dec.h deleted file mode 100644 index 5f79d3fc1..000000000 --- a/src/botan/src/asn1/ber_dec.h +++ /dev/null @@ -1,141 +0,0 @@ -/* -* BER Decoder -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_BER_DECODER_H__ -#define BOTAN_BER_DECODER_H__ - -#include -#include - -namespace Botan { - -/** -* BER Decoding Object -*/ -class BOTAN_DLL BER_Decoder - { - public: - BER_Object get_next_object(); - void push_back(const BER_Object&); - - bool more_items() const; - BER_Decoder& verify_end(); - BER_Decoder& discard_remaining(); - - BER_Decoder start_cons(ASN1_Tag, ASN1_Tag = UNIVERSAL); - BER_Decoder& end_cons(); - - BER_Decoder& raw_bytes(MemoryRegion&); - - BER_Decoder& decode_null(); - BER_Decoder& decode(bool&); - BER_Decoder& decode(size_t&); - BER_Decoder& decode(class BigInt&); - BER_Decoder& decode(MemoryRegion&, ASN1_Tag); - - BER_Decoder& decode(bool&, ASN1_Tag, ASN1_Tag = CONTEXT_SPECIFIC); - BER_Decoder& decode(size_t&, ASN1_Tag, ASN1_Tag = CONTEXT_SPECIFIC); - BER_Decoder& decode(class BigInt&, - ASN1_Tag, ASN1_Tag = CONTEXT_SPECIFIC); - BER_Decoder& decode(MemoryRegion&, ASN1_Tag, - ASN1_Tag, ASN1_Tag = CONTEXT_SPECIFIC); - - BER_Decoder& decode(class ASN1_Object&); - - BER_Decoder& decode_octet_string_bigint(class BigInt&); - - template - BER_Decoder& decode_optional(T& out, - ASN1_Tag type_tag, - ASN1_Tag class_tag, - const T& default_value = T()); - - template - BER_Decoder& decode_list(std::vector& out, - bool clear_out = true); - - template - BER_Decoder& decode_and_check(const T& expected, - const std::string& error_msg) - { - T actual; - decode(actual); - - if(actual != expected) - throw Decoding_Error(error_msg); - - return (*this); - } - - BER_Decoder& decode_optional_string(MemoryRegion&, - ASN1_Tag, u16bit); - - BER_Decoder(DataSource&); - BER_Decoder(const byte[], size_t); - BER_Decoder(const MemoryRegion&); - BER_Decoder(const BER_Decoder&); - ~BER_Decoder(); - private: - BER_Decoder& operator=(const BER_Decoder&) { return (*this); } - - BER_Decoder* parent; - DataSource* source; - BER_Object pushed; - mutable bool owns; - }; - -/* -* Decode an OPTIONAL or DEFAULT element -*/ -template -BER_Decoder& BER_Decoder::decode_optional(T& out, - ASN1_Tag type_tag, - ASN1_Tag class_tag, - const T& default_value) - { - BER_Object obj = get_next_object(); - - if(obj.type_tag == type_tag && obj.class_tag == class_tag) - { - if(class_tag & CONSTRUCTED) - BER_Decoder(obj.value).decode(out).verify_end(); - else - { - push_back(obj); - decode(out, type_tag, class_tag); - } - } - else - { - out = default_value; - push_back(obj); - } - - return (*this); - } - -/* -* Decode a list of homogenously typed values -*/ -template -BER_Decoder& BER_Decoder::decode_list(std::vector& vec, bool clear_it) - { - if(clear_it) - vec.clear(); - - while(more_items()) - { - T value; - decode(value); - vec.push_back(value); - } - return (*this); - } - -} - -#endif diff --git a/src/botan/src/asn1/der_enc.cpp b/src/botan/src/asn1/der_enc.cpp deleted file mode 100644 index a14b3c5e2..000000000 --- a/src/botan/src/asn1/der_enc.cpp +++ /dev/null @@ -1,388 +0,0 @@ -/* -* DER Encoder -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include -#include - -namespace Botan { - -namespace { - -/* -* DER encode an ASN.1 type tag -*/ -SecureVector encode_tag(ASN1_Tag type_tag, ASN1_Tag class_tag) - { - if((class_tag | 0xE0) != 0xE0) - throw Encoding_Error("DER_Encoder: Invalid class tag " + - to_string(class_tag)); - - SecureVector encoded_tag; - if(type_tag <= 30) - encoded_tag.push_back(static_cast(type_tag | class_tag)); - else - { - size_t blocks = high_bit(type_tag) + 6; - blocks = (blocks - (blocks % 7)) / 7; - - encoded_tag.push_back(class_tag | 0x1F); - for(size_t i = 0; i != blocks - 1; ++i) - encoded_tag.push_back(0x80 | ((type_tag >> 7*(blocks-i-1)) & 0x7F)); - encoded_tag.push_back(type_tag & 0x7F); - } - - return encoded_tag; - } - -/* -* DER encode an ASN.1 length field -*/ -SecureVector encode_length(size_t length) - { - SecureVector encoded_length; - if(length <= 127) - encoded_length.push_back(static_cast(length)); - else - { - const size_t top_byte = significant_bytes(length); - - encoded_length.push_back(static_cast(0x80 | top_byte)); - - for(size_t i = sizeof(length) - top_byte; i != sizeof(length); ++i) - encoded_length.push_back(get_byte(i, length)); - } - return encoded_length; - } - -} - -/* -* Return the encoded SEQUENCE/SET -*/ -SecureVector DER_Encoder::DER_Sequence::get_contents() - { - const ASN1_Tag real_class_tag = ASN1_Tag(class_tag | CONSTRUCTED); - - if(type_tag == SET) - { - std::sort(set_contents.begin(), set_contents.end()); - for(size_t i = 0; i != set_contents.size(); ++i) - contents += set_contents[i]; - set_contents.clear(); - } - - SecureVector result; - result += encode_tag(type_tag, real_class_tag); - result += encode_length(contents.size()); - result += contents; - contents.clear(); - - return result; - } - -/* -* Add an encoded value to the SEQUENCE/SET -*/ -void DER_Encoder::DER_Sequence::add_bytes(const byte data[], size_t length) - { - if(type_tag == SET) - set_contents.push_back(SecureVector(data, length)); - else - contents += std::make_pair(data, length); - } - -/* -* Return the type and class taggings -*/ -ASN1_Tag DER_Encoder::DER_Sequence::tag_of() const - { - return ASN1_Tag(type_tag | class_tag); - } - -/* -* DER_Sequence Constructor -*/ -DER_Encoder::DER_Sequence::DER_Sequence(ASN1_Tag t1, ASN1_Tag t2) : - type_tag(t1), class_tag(t2) - { - } - -/* -* Return the encoded contents -*/ -SecureVector DER_Encoder::get_contents() - { - if(subsequences.size() != 0) - throw Invalid_State("DER_Encoder: Sequence hasn't been marked done"); - - SecureVector output; - std::swap(output, contents); - return output; - } - -/* -* Start a new ASN.1 SEQUENCE/SET/EXPLICIT -*/ -DER_Encoder& DER_Encoder::start_cons(ASN1_Tag type_tag, - ASN1_Tag class_tag) - { - subsequences.push_back(DER_Sequence(type_tag, class_tag)); - return (*this); - } - -/* -* Finish the current ASN.1 SEQUENCE/SET/EXPLICIT -*/ -DER_Encoder& DER_Encoder::end_cons() - { - if(subsequences.empty()) - throw Invalid_State("DER_Encoder::end_cons: No such sequence"); - - SecureVector seq = subsequences[subsequences.size()-1].get_contents(); - subsequences.pop_back(); - raw_bytes(seq); - return (*this); - } - -/* -* Start a new ASN.1 EXPLICIT encoding -*/ -DER_Encoder& DER_Encoder::start_explicit(u16bit type_no) - { - ASN1_Tag type_tag = static_cast(type_no); - - if(type_tag == SET) - throw Internal_Error("DER_Encoder.start_explicit(SET); cannot perform"); - - return start_cons(type_tag, CONTEXT_SPECIFIC); - } - -/* -* Finish the current ASN.1 EXPLICIT encoding -*/ -DER_Encoder& DER_Encoder::end_explicit() - { - return end_cons(); - } - -/* -* Write raw bytes into the stream -*/ -DER_Encoder& DER_Encoder::raw_bytes(const MemoryRegion& val) - { - return raw_bytes(&val[0], val.size()); - } - -/* -* Write raw bytes into the stream -*/ -DER_Encoder& DER_Encoder::raw_bytes(const byte bytes[], size_t length) - { - if(subsequences.size()) - subsequences[subsequences.size()-1].add_bytes(bytes, length); - else - contents += std::make_pair(bytes, length); - - return (*this); - } - -/* -* Encode a NULL object -*/ -DER_Encoder& DER_Encoder::encode_null() - { - return add_object(NULL_TAG, UNIVERSAL, 0, 0); - } - -/* -* DER encode a BOOLEAN -*/ -DER_Encoder& DER_Encoder::encode(bool is_true) - { - return encode(is_true, BOOLEAN, UNIVERSAL); - } - -/* -* DER encode a small INTEGER -*/ -DER_Encoder& DER_Encoder::encode(size_t n) - { - return encode(BigInt(n), INTEGER, UNIVERSAL); - } - -/* -* DER encode a small INTEGER -*/ -DER_Encoder& DER_Encoder::encode(const BigInt& n) - { - return encode(n, INTEGER, UNIVERSAL); - } - -/* -* DER encode an OCTET STRING or BIT STRING -*/ -DER_Encoder& DER_Encoder::encode(const MemoryRegion& bytes, - ASN1_Tag real_type) - { - return encode(&bytes[0], bytes.size(), - real_type, real_type, UNIVERSAL); - } - -/* -* Encode this object -*/ -DER_Encoder& DER_Encoder::encode(const byte bytes[], size_t length, - ASN1_Tag real_type) - { - return encode(bytes, length, real_type, real_type, UNIVERSAL); - } - -/* -* DER encode a BOOLEAN -*/ -DER_Encoder& DER_Encoder::encode(bool is_true, - ASN1_Tag type_tag, ASN1_Tag class_tag) - { - byte val = is_true ? 0xFF : 0x00; - return add_object(type_tag, class_tag, &val, 1); - } - -/* -* DER encode a small INTEGER -*/ -DER_Encoder& DER_Encoder::encode(size_t n, - ASN1_Tag type_tag, ASN1_Tag class_tag) - { - return encode(BigInt(n), type_tag, class_tag); - } - -/* -* DER encode an INTEGER -*/ -DER_Encoder& DER_Encoder::encode(const BigInt& n, - ASN1_Tag type_tag, ASN1_Tag class_tag) - { - if(n == 0) - return add_object(type_tag, class_tag, 0); - - bool extra_zero = (n.bits() % 8 == 0); - SecureVector contents(extra_zero + n.bytes()); - BigInt::encode(&contents[extra_zero], n); - if(n < 0) - { - for(size_t i = 0; i != contents.size(); ++i) - contents[i] = ~contents[i]; - for(size_t i = contents.size(); i > 0; --i) - if(++contents[i-1]) - break; - } - - return add_object(type_tag, class_tag, contents); - } - -/* -* DER encode an OCTET STRING or BIT STRING -*/ -DER_Encoder& DER_Encoder::encode(const MemoryRegion& bytes, - ASN1_Tag real_type, - ASN1_Tag type_tag, ASN1_Tag class_tag) - { - return encode(&bytes[0], bytes.size(), - real_type, type_tag, class_tag); - } - -/* -* DER encode an OCTET STRING or BIT STRING -*/ -DER_Encoder& DER_Encoder::encode(const byte bytes[], size_t length, - ASN1_Tag real_type, - ASN1_Tag type_tag, ASN1_Tag class_tag) - { - if(real_type != OCTET_STRING && real_type != BIT_STRING) - throw Invalid_Argument("DER_Encoder: Invalid tag for byte/bit string"); - - if(real_type == BIT_STRING) - { - SecureVector encoded; - encoded.push_back(0); - encoded += std::make_pair(bytes, length); - return add_object(type_tag, class_tag, encoded); - } - else - return add_object(type_tag, class_tag, bytes, length); - } - -/* -* Conditionally write some values to the stream -*/ -DER_Encoder& DER_Encoder::encode_if(bool cond, DER_Encoder& codec) - { - if(cond) - return raw_bytes(codec.get_contents()); - return (*this); - } - -/* -* Request for an object to encode itself -*/ -DER_Encoder& DER_Encoder::encode(const ASN1_Object& obj) - { - obj.encode_into(*this); - return (*this); - } - -/* -* Write the encoding of the byte(s) -*/ -DER_Encoder& DER_Encoder::add_object(ASN1_Tag type_tag, ASN1_Tag class_tag, - const byte rep[], size_t length) - { - SecureVector buffer; - buffer += encode_tag(type_tag, class_tag); - buffer += encode_length(length); - buffer += std::make_pair(rep, length); - - return raw_bytes(buffer); - } - -/* -* Write the encoding of the byte(s) -*/ -DER_Encoder& DER_Encoder::add_object(ASN1_Tag type_tag, ASN1_Tag class_tag, - const MemoryRegion& rep_buf) - { - const byte* rep = &rep_buf[0]; - const size_t rep_len = rep_buf.size(); - return add_object(type_tag, class_tag, rep, rep_len); - } - -/* -* Write the encoding of the byte(s) -*/ -DER_Encoder& DER_Encoder::add_object(ASN1_Tag type_tag, ASN1_Tag class_tag, - const std::string& rep_str) - { - const byte* rep = reinterpret_cast(rep_str.data()); - const size_t rep_len = rep_str.size(); - return add_object(type_tag, class_tag, rep, rep_len); - } - -/* -* Write the encoding of the byte -*/ -DER_Encoder& DER_Encoder::add_object(ASN1_Tag type_tag, - ASN1_Tag class_tag, byte rep) - { - return add_object(type_tag, class_tag, &rep, 1); - } - -} diff --git a/src/botan/src/asn1/der_enc.h b/src/botan/src/asn1/der_enc.h deleted file mode 100644 index 183e43b80..000000000 --- a/src/botan/src/asn1/der_enc.h +++ /dev/null @@ -1,117 +0,0 @@ -/* -* DER Encoder -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_DER_ENCODER_H__ -#define BOTAN_DER_ENCODER_H__ - -#include -#include - -namespace Botan { - -class BigInt; -class ASN1_Object; - -/** -* General DER Encoding Object -*/ -class BOTAN_DLL DER_Encoder - { - public: - SecureVector get_contents(); - - DER_Encoder& start_cons(ASN1_Tag type_tag, - ASN1_Tag class_tag = UNIVERSAL); - DER_Encoder& end_cons(); - - DER_Encoder& start_explicit(u16bit type_tag); - DER_Encoder& end_explicit(); - - DER_Encoder& raw_bytes(const byte val[], size_t len); - DER_Encoder& raw_bytes(const MemoryRegion& val); - - DER_Encoder& encode_null(); - DER_Encoder& encode(bool b); - DER_Encoder& encode(size_t s); - DER_Encoder& encode(const BigInt& n); - DER_Encoder& encode(const MemoryRegion& v, ASN1_Tag real_type); - DER_Encoder& encode(const byte val[], size_t len, ASN1_Tag real_type); - - DER_Encoder& encode(bool b, - ASN1_Tag type_tag, - ASN1_Tag class_tag = CONTEXT_SPECIFIC); - - DER_Encoder& encode(size_t s, - ASN1_Tag type_tag, - ASN1_Tag class_tag = CONTEXT_SPECIFIC); - - DER_Encoder& encode(const BigInt& n, - ASN1_Tag type_tag, - ASN1_Tag class_tag = CONTEXT_SPECIFIC); - - DER_Encoder& encode(const MemoryRegion& v, - ASN1_Tag real_type, - ASN1_Tag type_tag, - ASN1_Tag class_tag = CONTEXT_SPECIFIC); - - DER_Encoder& encode(const byte v[], size_t len, - ASN1_Tag real_type, - ASN1_Tag type_tag, - ASN1_Tag class_tag = CONTEXT_SPECIFIC); - - template - DER_Encoder& encode_optional(const T& value, const T& default_value) - { - if(value != default_value) - encode(value); - return (*this); - } - - template - DER_Encoder& encode_list(const std::vector& values) - { - for(size_t i = 0; i != values.size(); ++i) - encode(values[i]); - return (*this); - } - - DER_Encoder& encode(const ASN1_Object& obj); - DER_Encoder& encode_if(bool pred, DER_Encoder& enc); - - DER_Encoder& add_object(ASN1_Tag type_tag, ASN1_Tag class_tag, - const byte rep[], size_t length); - - DER_Encoder& add_object(ASN1_Tag type_tag, ASN1_Tag class_tag, - const MemoryRegion& rep); - - DER_Encoder& add_object(ASN1_Tag type_tag, ASN1_Tag class_tag, - const std::string& str); - - DER_Encoder& add_object(ASN1_Tag type_tag, ASN1_Tag class_tag, - byte val); - - private: - class DER_Sequence - { - public: - ASN1_Tag tag_of() const; - SecureVector get_contents(); - void add_bytes(const byte[], size_t); - DER_Sequence(ASN1_Tag, ASN1_Tag); - private: - ASN1_Tag type_tag, class_tag; - SecureVector contents; - std::vector< SecureVector > set_contents; - }; - - SecureVector contents; - std::vector subsequences; - }; - -} - -#endif diff --git a/src/botan/src/asn1/info.txt b/src/botan/src/asn1/info.txt deleted file mode 100644 index e190ad9ea..000000000 --- a/src/botan/src/asn1/info.txt +++ /dev/null @@ -1,34 +0,0 @@ -define ASN1 - -load_on auto - - -alg_id.cpp -asn1_alt.cpp -asn1_att.cpp -asn1_int.cpp -asn1_oid.cpp -asn1_str.cpp -asn1_tm.cpp -ber_dec.cpp -der_enc.cpp -x509_dn.cpp - - - -alg_id.h -asn1_int.h -asn1_obj.h -asn1_oid.h -asn1_str.h -ber_dec.h -der_enc.h -x509_dn.h - - - -alloc -bigint -filters -oid_lookup - diff --git a/src/botan/src/asn1/x509_dn.cpp b/src/botan/src/asn1/x509_dn.cpp deleted file mode 100644 index f91303296..000000000 --- a/src/botan/src/asn1/x509_dn.cpp +++ /dev/null @@ -1,296 +0,0 @@ -/* -* X509_DN -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include - -namespace Botan { - -/* -* Create an empty X509_DN -*/ -X509_DN::X509_DN() - { - } - -/* -* Create an X509_DN -*/ -X509_DN::X509_DN(const std::multimap& args) - { - std::multimap::const_iterator j; - for(j = args.begin(); j != args.end(); ++j) - add_attribute(j->first, j->second); - } - -/* -* Create an X509_DN -*/ -X509_DN::X509_DN(const std::multimap& args) - { - std::multimap::const_iterator j; - for(j = args.begin(); j != args.end(); ++j) - add_attribute(OIDS::lookup(j->first), j->second); - } - -/* -* Add an attribute to a X509_DN -*/ -void X509_DN::add_attribute(const std::string& type, - const std::string& str) - { - OID oid = OIDS::lookup(type); - add_attribute(oid, str); - } - -/* -* Add an attribute to a X509_DN -*/ -void X509_DN::add_attribute(const OID& oid, const std::string& str) - { - if(str == "") - return; - - typedef std::multimap::iterator rdn_iter; - - std::pair range = dn_info.equal_range(oid); - for(rdn_iter j = range.first; j != range.second; ++j) - if(j->second.value() == str) - return; - - multimap_insert(dn_info, oid, ASN1_String(str)); - dn_bits.clear(); - } - -/* -* Get the attributes of this X509_DN -*/ -std::multimap X509_DN::get_attributes() const - { - typedef std::multimap::const_iterator rdn_iter; - - std::multimap retval; - for(rdn_iter j = dn_info.begin(); j != dn_info.end(); ++j) - multimap_insert(retval, j->first, j->second.value()); - return retval; - } - -/* -* Get the contents of this X.500 Name -*/ -std::multimap X509_DN::contents() const - { - typedef std::multimap::const_iterator rdn_iter; - - std::multimap retval; - for(rdn_iter j = dn_info.begin(); j != dn_info.end(); ++j) - multimap_insert(retval, OIDS::lookup(j->first), j->second.value()); - return retval; - } - -/* -* Get a single attribute type -*/ -std::vector X509_DN::get_attribute(const std::string& attr) const - { - typedef std::multimap::const_iterator rdn_iter; - - const OID oid = OIDS::lookup(deref_info_field(attr)); - std::pair range = dn_info.equal_range(oid); - - std::vector values; - for(rdn_iter j = range.first; j != range.second; ++j) - values.push_back(j->second.value()); - return values; - } - -/* -* Return the BER encoded data, if any -*/ -MemoryVector X509_DN::get_bits() const - { - return dn_bits; - } - -/* -* Deref aliases in a subject/issuer info request -*/ -std::string X509_DN::deref_info_field(const std::string& info) - { - if(info == "Name" || info == "CommonName") return "X520.CommonName"; - if(info == "SerialNumber") return "X520.SerialNumber"; - if(info == "Country") return "X520.Country"; - if(info == "Organization") return "X520.Organization"; - if(info == "Organizational Unit" || info == "OrgUnit") - return "X520.OrganizationalUnit"; - if(info == "Locality") return "X520.Locality"; - if(info == "State" || info == "Province") return "X520.State"; - if(info == "Email") return "RFC822"; - return info; - } - -/* -* Compare two X509_DNs for equality -*/ -bool operator==(const X509_DN& dn1, const X509_DN& dn2) - { - typedef std::multimap::const_iterator rdn_iter; - - std::multimap attr1 = dn1.get_attributes(); - std::multimap attr2 = dn2.get_attributes(); - - if(attr1.size() != attr2.size()) return false; - - rdn_iter p1 = attr1.begin(); - rdn_iter p2 = attr2.begin(); - - while(true) - { - if(p1 == attr1.end() && p2 == attr2.end()) - break; - if(p1 == attr1.end()) return false; - if(p2 == attr2.end()) return false; - if(p1->first != p2->first) return false; - if(!x500_name_cmp(p1->second, p2->second)) - return false; - ++p1; - ++p2; - } - return true; - } - -/* -* Compare two X509_DNs for inequality -*/ -bool operator!=(const X509_DN& dn1, const X509_DN& dn2) - { - return !(dn1 == dn2); - } - -/* -* Compare two X509_DNs -*/ -bool operator<(const X509_DN& dn1, const X509_DN& dn2) - { - typedef std::multimap::const_iterator rdn_iter; - - std::multimap attr1 = dn1.get_attributes(); - std::multimap attr2 = dn2.get_attributes(); - - if(attr1.size() < attr2.size()) return true; - if(attr1.size() > attr2.size()) return false; - - for(rdn_iter p1 = attr1.begin(); p1 != attr1.end(); ++p1) - { - std::multimap::const_iterator p2; - p2 = attr2.find(p1->first); - if(p2 == attr2.end()) return false; - if(p1->second > p2->second) return false; - if(p1->second < p2->second) return true; - } - return false; - } - -namespace { - -/* -* DER encode a RelativeDistinguishedName -*/ -void do_ava(DER_Encoder& encoder, - const std::multimap& dn_info, - ASN1_Tag string_type, const std::string& oid_str, - bool must_exist = false) - { - typedef std::multimap::const_iterator rdn_iter; - - const OID oid = OIDS::lookup(oid_str); - const bool exists = (dn_info.find(oid) != dn_info.end()); - - if(!exists && must_exist) - throw Encoding_Error("X509_DN: No entry for " + oid_str); - if(!exists) return; - - std::pair range = dn_info.equal_range(oid); - - for(rdn_iter j = range.first; j != range.second; ++j) - { - encoder.start_cons(SET) - .start_cons(SEQUENCE) - .encode(oid) - .encode(ASN1_String(j->second, string_type)) - .end_cons() - .end_cons(); - } - } - -} - -/* -* DER encode a DistinguishedName -*/ -void X509_DN::encode_into(DER_Encoder& der) const - { - std::multimap dn_info = get_attributes(); - - der.start_cons(SEQUENCE); - - if(!dn_bits.empty()) - der.raw_bytes(dn_bits); - else - { - do_ava(der, dn_info, PRINTABLE_STRING, "X520.Country"); - do_ava(der, dn_info, DIRECTORY_STRING, "X520.State"); - do_ava(der, dn_info, DIRECTORY_STRING, "X520.Locality"); - do_ava(der, dn_info, DIRECTORY_STRING, "X520.Organization"); - do_ava(der, dn_info, DIRECTORY_STRING, "X520.OrganizationalUnit"); - do_ava(der, dn_info, DIRECTORY_STRING, "X520.CommonName"); - do_ava(der, dn_info, PRINTABLE_STRING, "X520.SerialNumber"); - } - - der.end_cons(); - } - -/* -* Decode a BER encoded DistinguishedName -*/ -void X509_DN::decode_from(BER_Decoder& source) - { - MemoryVector bits; - - source.start_cons(SEQUENCE) - .raw_bytes(bits) - .end_cons(); - - BER_Decoder sequence(bits); - - while(sequence.more_items()) - { - BER_Decoder rdn = sequence.start_cons(SET); - - while(rdn.more_items()) - { - OID oid; - ASN1_String str; - - rdn.start_cons(SEQUENCE) - .decode(oid) - .decode(str) - .verify_end() - .end_cons(); - - add_attribute(oid, str.value()); - } - } - - dn_bits = bits; - } - -} diff --git a/src/botan/src/asn1/x509_dn.h b/src/botan/src/asn1/x509_dn.h deleted file mode 100644 index 3f63eb49c..000000000 --- a/src/botan/src/asn1/x509_dn.h +++ /dev/null @@ -1,53 +0,0 @@ -/* -* X.509 Distinguished Name -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_X509_DN_H__ -#define BOTAN_X509_DN_H__ - -#include -#include -#include -#include - -namespace Botan { - -/** -* Distinguished Name -*/ -class BOTAN_DLL X509_DN : public ASN1_Object - { - public: - void encode_into(class DER_Encoder&) const; - void decode_from(class BER_Decoder&); - - std::multimap get_attributes() const; - std::vector get_attribute(const std::string&) const; - - std::multimap contents() const; - - void add_attribute(const std::string&, const std::string&); - void add_attribute(const OID&, const std::string&); - - static std::string deref_info_field(const std::string&); - - MemoryVector get_bits() const; - - X509_DN(); - X509_DN(const std::multimap&); - X509_DN(const std::multimap&); - private: - std::multimap dn_info; - MemoryVector dn_bits; - }; - -bool BOTAN_DLL operator==(const X509_DN&, const X509_DN&); -bool BOTAN_DLL operator!=(const X509_DN&, const X509_DN&); -bool BOTAN_DLL operator<(const X509_DN&, const X509_DN&); - -} - -#endif diff --git a/src/botan/src/block/aes/aes.cpp b/src/botan/src/block/aes/aes.cpp deleted file mode 100644 index 66c9de31e..000000000 --- a/src/botan/src/block/aes/aes.cpp +++ /dev/null @@ -1,749 +0,0 @@ -/* -* AES -* (C) 1999-2010 Jack Lloyd -* -* Based on the public domain reference implemenation -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -namespace Botan { - -namespace { - -const byte SE[256] = { - 0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, - 0xFE, 0xD7, 0xAB, 0x76, 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, - 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0, 0xB7, 0xFD, 0x93, 0x26, - 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15, - 0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, - 0xEB, 0x27, 0xB2, 0x75, 0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, - 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x84, 0x53, 0xD1, 0x00, 0xED, - 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xCF, - 0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, - 0x50, 0x3C, 0x9F, 0xA8, 0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, - 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD2, 0xCD, 0x0C, 0x13, 0xEC, - 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x73, - 0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, - 0xDE, 0x5E, 0x0B, 0xDB, 0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, - 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x79, 0xE7, 0xC8, 0x37, 0x6D, - 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x08, - 0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, - 0x4B, 0xBD, 0x8B, 0x8A, 0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, - 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E, 0xE1, 0xF8, 0x98, 0x11, - 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF, - 0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, - 0xB0, 0x54, 0xBB, 0x16 }; - -const byte SD[256] = { - 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, - 0x81, 0xF3, 0xD7, 0xFB, 0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, - 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB, 0x54, 0x7B, 0x94, 0x32, - 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E, - 0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, - 0x6D, 0x8B, 0xD1, 0x25, 0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, - 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x92, 0x6C, 0x70, 0x48, 0x50, - 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x84, - 0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, - 0xB8, 0xB3, 0x45, 0x06, 0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, - 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6B, 0x3A, 0x91, 0x11, 0x41, - 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x73, - 0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, - 0x1C, 0x75, 0xDF, 0x6E, 0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, - 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1B, 0xFC, 0x56, 0x3E, 0x4B, - 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4, - 0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, - 0x27, 0x80, 0xEC, 0x5F, 0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, - 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF, 0xA0, 0xE0, 0x3B, 0x4D, - 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61, - 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, - 0x55, 0x21, 0x0C, 0x7D }; - -const u32bit TE[1024] = { - 0xC66363A5, 0xF87C7C84, 0xEE777799, 0xF67B7B8D, 0xFFF2F20D, 0xD66B6BBD, - 0xDE6F6FB1, 0x91C5C554, 0x60303050, 0x02010103, 0xCE6767A9, 0x562B2B7D, - 0xE7FEFE19, 0xB5D7D762, 0x4DABABE6, 0xEC76769A, 0x8FCACA45, 0x1F82829D, - 0x89C9C940, 0xFA7D7D87, 0xEFFAFA15, 0xB25959EB, 0x8E4747C9, 0xFBF0F00B, - 0x41ADADEC, 0xB3D4D467, 0x5FA2A2FD, 0x45AFAFEA, 0x239C9CBF, 0x53A4A4F7, - 0xE4727296, 0x9BC0C05B, 0x75B7B7C2, 0xE1FDFD1C, 0x3D9393AE, 0x4C26266A, - 0x6C36365A, 0x7E3F3F41, 0xF5F7F702, 0x83CCCC4F, 0x6834345C, 0x51A5A5F4, - 0xD1E5E534, 0xF9F1F108, 0xE2717193, 0xABD8D873, 0x62313153, 0x2A15153F, - 0x0804040C, 0x95C7C752, 0x46232365, 0x9DC3C35E, 0x30181828, 0x379696A1, - 0x0A05050F, 0x2F9A9AB5, 0x0E070709, 0x24121236, 0x1B80809B, 0xDFE2E23D, - 0xCDEBEB26, 0x4E272769, 0x7FB2B2CD, 0xEA75759F, 0x1209091B, 0x1D83839E, - 0x582C2C74, 0x341A1A2E, 0x361B1B2D, 0xDC6E6EB2, 0xB45A5AEE, 0x5BA0A0FB, - 0xA45252F6, 0x763B3B4D, 0xB7D6D661, 0x7DB3B3CE, 0x5229297B, 0xDDE3E33E, - 0x5E2F2F71, 0x13848497, 0xA65353F5, 0xB9D1D168, 0x00000000, 0xC1EDED2C, - 0x40202060, 0xE3FCFC1F, 0x79B1B1C8, 0xB65B5BED, 0xD46A6ABE, 0x8DCBCB46, - 0x67BEBED9, 0x7239394B, 0x944A4ADE, 0x984C4CD4, 0xB05858E8, 0x85CFCF4A, - 0xBBD0D06B, 0xC5EFEF2A, 0x4FAAAAE5, 0xEDFBFB16, 0x864343C5, 0x9A4D4DD7, - 0x66333355, 0x11858594, 0x8A4545CF, 0xE9F9F910, 0x04020206, 0xFE7F7F81, - 0xA05050F0, 0x783C3C44, 0x259F9FBA, 0x4BA8A8E3, 0xA25151F3, 0x5DA3A3FE, - 0x804040C0, 0x058F8F8A, 0x3F9292AD, 0x219D9DBC, 0x70383848, 0xF1F5F504, - 0x63BCBCDF, 0x77B6B6C1, 0xAFDADA75, 0x42212163, 0x20101030, 0xE5FFFF1A, - 0xFDF3F30E, 0xBFD2D26D, 0x81CDCD4C, 0x180C0C14, 0x26131335, 0xC3ECEC2F, - 0xBE5F5FE1, 0x359797A2, 0x884444CC, 0x2E171739, 0x93C4C457, 0x55A7A7F2, - 0xFC7E7E82, 0x7A3D3D47, 0xC86464AC, 0xBA5D5DE7, 0x3219192B, 0xE6737395, - 0xC06060A0, 0x19818198, 0x9E4F4FD1, 0xA3DCDC7F, 0x44222266, 0x542A2A7E, - 0x3B9090AB, 0x0B888883, 0x8C4646CA, 0xC7EEEE29, 0x6BB8B8D3, 0x2814143C, - 0xA7DEDE79, 0xBC5E5EE2, 0x160B0B1D, 0xADDBDB76, 0xDBE0E03B, 0x64323256, - 0x743A3A4E, 0x140A0A1E, 0x924949DB, 0x0C06060A, 0x4824246C, 0xB85C5CE4, - 0x9FC2C25D, 0xBDD3D36E, 0x43ACACEF, 0xC46262A6, 0x399191A8, 0x319595A4, - 0xD3E4E437, 0xF279798B, 0xD5E7E732, 0x8BC8C843, 0x6E373759, 0xDA6D6DB7, - 0x018D8D8C, 0xB1D5D564, 0x9C4E4ED2, 0x49A9A9E0, 0xD86C6CB4, 0xAC5656FA, - 0xF3F4F407, 0xCFEAEA25, 0xCA6565AF, 0xF47A7A8E, 0x47AEAEE9, 0x10080818, - 0x6FBABAD5, 0xF0787888, 0x4A25256F, 0x5C2E2E72, 0x381C1C24, 0x57A6A6F1, - 0x73B4B4C7, 0x97C6C651, 0xCBE8E823, 0xA1DDDD7C, 0xE874749C, 0x3E1F1F21, - 0x964B4BDD, 0x61BDBDDC, 0x0D8B8B86, 0x0F8A8A85, 0xE0707090, 0x7C3E3E42, - 0x71B5B5C4, 0xCC6666AA, 0x904848D8, 0x06030305, 0xF7F6F601, 0x1C0E0E12, - 0xC26161A3, 0x6A35355F, 0xAE5757F9, 0x69B9B9D0, 0x17868691, 0x99C1C158, - 0x3A1D1D27, 0x279E9EB9, 0xD9E1E138, 0xEBF8F813, 0x2B9898B3, 0x22111133, - 0xD26969BB, 0xA9D9D970, 0x078E8E89, 0x339494A7, 0x2D9B9BB6, 0x3C1E1E22, - 0x15878792, 0xC9E9E920, 0x87CECE49, 0xAA5555FF, 0x50282878, 0xA5DFDF7A, - 0x038C8C8F, 0x59A1A1F8, 0x09898980, 0x1A0D0D17, 0x65BFBFDA, 0xD7E6E631, - 0x844242C6, 0xD06868B8, 0x824141C3, 0x299999B0, 0x5A2D2D77, 0x1E0F0F11, - 0x7BB0B0CB, 0xA85454FC, 0x6DBBBBD6, 0x2C16163A, 0xA5C66363, 0x84F87C7C, - 0x99EE7777, 0x8DF67B7B, 0x0DFFF2F2, 0xBDD66B6B, 0xB1DE6F6F, 0x5491C5C5, - 0x50603030, 0x03020101, 0xA9CE6767, 0x7D562B2B, 0x19E7FEFE, 0x62B5D7D7, - 0xE64DABAB, 0x9AEC7676, 0x458FCACA, 0x9D1F8282, 0x4089C9C9, 0x87FA7D7D, - 0x15EFFAFA, 0xEBB25959, 0xC98E4747, 0x0BFBF0F0, 0xEC41ADAD, 0x67B3D4D4, - 0xFD5FA2A2, 0xEA45AFAF, 0xBF239C9C, 0xF753A4A4, 0x96E47272, 0x5B9BC0C0, - 0xC275B7B7, 0x1CE1FDFD, 0xAE3D9393, 0x6A4C2626, 0x5A6C3636, 0x417E3F3F, - 0x02F5F7F7, 0x4F83CCCC, 0x5C683434, 0xF451A5A5, 0x34D1E5E5, 0x08F9F1F1, - 0x93E27171, 0x73ABD8D8, 0x53623131, 0x3F2A1515, 0x0C080404, 0x5295C7C7, - 0x65462323, 0x5E9DC3C3, 0x28301818, 0xA1379696, 0x0F0A0505, 0xB52F9A9A, - 0x090E0707, 0x36241212, 0x9B1B8080, 0x3DDFE2E2, 0x26CDEBEB, 0x694E2727, - 0xCD7FB2B2, 0x9FEA7575, 0x1B120909, 0x9E1D8383, 0x74582C2C, 0x2E341A1A, - 0x2D361B1B, 0xB2DC6E6E, 0xEEB45A5A, 0xFB5BA0A0, 0xF6A45252, 0x4D763B3B, - 0x61B7D6D6, 0xCE7DB3B3, 0x7B522929, 0x3EDDE3E3, 0x715E2F2F, 0x97138484, - 0xF5A65353, 0x68B9D1D1, 0x00000000, 0x2CC1EDED, 0x60402020, 0x1FE3FCFC, - 0xC879B1B1, 0xEDB65B5B, 0xBED46A6A, 0x468DCBCB, 0xD967BEBE, 0x4B723939, - 0xDE944A4A, 0xD4984C4C, 0xE8B05858, 0x4A85CFCF, 0x6BBBD0D0, 0x2AC5EFEF, - 0xE54FAAAA, 0x16EDFBFB, 0xC5864343, 0xD79A4D4D, 0x55663333, 0x94118585, - 0xCF8A4545, 0x10E9F9F9, 0x06040202, 0x81FE7F7F, 0xF0A05050, 0x44783C3C, - 0xBA259F9F, 0xE34BA8A8, 0xF3A25151, 0xFE5DA3A3, 0xC0804040, 0x8A058F8F, - 0xAD3F9292, 0xBC219D9D, 0x48703838, 0x04F1F5F5, 0xDF63BCBC, 0xC177B6B6, - 0x75AFDADA, 0x63422121, 0x30201010, 0x1AE5FFFF, 0x0EFDF3F3, 0x6DBFD2D2, - 0x4C81CDCD, 0x14180C0C, 0x35261313, 0x2FC3ECEC, 0xE1BE5F5F, 0xA2359797, - 0xCC884444, 0x392E1717, 0x5793C4C4, 0xF255A7A7, 0x82FC7E7E, 0x477A3D3D, - 0xACC86464, 0xE7BA5D5D, 0x2B321919, 0x95E67373, 0xA0C06060, 0x98198181, - 0xD19E4F4F, 0x7FA3DCDC, 0x66442222, 0x7E542A2A, 0xAB3B9090, 0x830B8888, - 0xCA8C4646, 0x29C7EEEE, 0xD36BB8B8, 0x3C281414, 0x79A7DEDE, 0xE2BC5E5E, - 0x1D160B0B, 0x76ADDBDB, 0x3BDBE0E0, 0x56643232, 0x4E743A3A, 0x1E140A0A, - 0xDB924949, 0x0A0C0606, 0x6C482424, 0xE4B85C5C, 0x5D9FC2C2, 0x6EBDD3D3, - 0xEF43ACAC, 0xA6C46262, 0xA8399191, 0xA4319595, 0x37D3E4E4, 0x8BF27979, - 0x32D5E7E7, 0x438BC8C8, 0x596E3737, 0xB7DA6D6D, 0x8C018D8D, 0x64B1D5D5, - 0xD29C4E4E, 0xE049A9A9, 0xB4D86C6C, 0xFAAC5656, 0x07F3F4F4, 0x25CFEAEA, - 0xAFCA6565, 0x8EF47A7A, 0xE947AEAE, 0x18100808, 0xD56FBABA, 0x88F07878, - 0x6F4A2525, 0x725C2E2E, 0x24381C1C, 0xF157A6A6, 0xC773B4B4, 0x5197C6C6, - 0x23CBE8E8, 0x7CA1DDDD, 0x9CE87474, 0x213E1F1F, 0xDD964B4B, 0xDC61BDBD, - 0x860D8B8B, 0x850F8A8A, 0x90E07070, 0x427C3E3E, 0xC471B5B5, 0xAACC6666, - 0xD8904848, 0x05060303, 0x01F7F6F6, 0x121C0E0E, 0xA3C26161, 0x5F6A3535, - 0xF9AE5757, 0xD069B9B9, 0x91178686, 0x5899C1C1, 0x273A1D1D, 0xB9279E9E, - 0x38D9E1E1, 0x13EBF8F8, 0xB32B9898, 0x33221111, 0xBBD26969, 0x70A9D9D9, - 0x89078E8E, 0xA7339494, 0xB62D9B9B, 0x223C1E1E, 0x92158787, 0x20C9E9E9, - 0x4987CECE, 0xFFAA5555, 0x78502828, 0x7AA5DFDF, 0x8F038C8C, 0xF859A1A1, - 0x80098989, 0x171A0D0D, 0xDA65BFBF, 0x31D7E6E6, 0xC6844242, 0xB8D06868, - 0xC3824141, 0xB0299999, 0x775A2D2D, 0x111E0F0F, 0xCB7BB0B0, 0xFCA85454, - 0xD66DBBBB, 0x3A2C1616, 0x63A5C663, 0x7C84F87C, 0x7799EE77, 0x7B8DF67B, - 0xF20DFFF2, 0x6BBDD66B, 0x6FB1DE6F, 0xC55491C5, 0x30506030, 0x01030201, - 0x67A9CE67, 0x2B7D562B, 0xFE19E7FE, 0xD762B5D7, 0xABE64DAB, 0x769AEC76, - 0xCA458FCA, 0x829D1F82, 0xC94089C9, 0x7D87FA7D, 0xFA15EFFA, 0x59EBB259, - 0x47C98E47, 0xF00BFBF0, 0xADEC41AD, 0xD467B3D4, 0xA2FD5FA2, 0xAFEA45AF, - 0x9CBF239C, 0xA4F753A4, 0x7296E472, 0xC05B9BC0, 0xB7C275B7, 0xFD1CE1FD, - 0x93AE3D93, 0x266A4C26, 0x365A6C36, 0x3F417E3F, 0xF702F5F7, 0xCC4F83CC, - 0x345C6834, 0xA5F451A5, 0xE534D1E5, 0xF108F9F1, 0x7193E271, 0xD873ABD8, - 0x31536231, 0x153F2A15, 0x040C0804, 0xC75295C7, 0x23654623, 0xC35E9DC3, - 0x18283018, 0x96A13796, 0x050F0A05, 0x9AB52F9A, 0x07090E07, 0x12362412, - 0x809B1B80, 0xE23DDFE2, 0xEB26CDEB, 0x27694E27, 0xB2CD7FB2, 0x759FEA75, - 0x091B1209, 0x839E1D83, 0x2C74582C, 0x1A2E341A, 0x1B2D361B, 0x6EB2DC6E, - 0x5AEEB45A, 0xA0FB5BA0, 0x52F6A452, 0x3B4D763B, 0xD661B7D6, 0xB3CE7DB3, - 0x297B5229, 0xE33EDDE3, 0x2F715E2F, 0x84971384, 0x53F5A653, 0xD168B9D1, - 0x00000000, 0xED2CC1ED, 0x20604020, 0xFC1FE3FC, 0xB1C879B1, 0x5BEDB65B, - 0x6ABED46A, 0xCB468DCB, 0xBED967BE, 0x394B7239, 0x4ADE944A, 0x4CD4984C, - 0x58E8B058, 0xCF4A85CF, 0xD06BBBD0, 0xEF2AC5EF, 0xAAE54FAA, 0xFB16EDFB, - 0x43C58643, 0x4DD79A4D, 0x33556633, 0x85941185, 0x45CF8A45, 0xF910E9F9, - 0x02060402, 0x7F81FE7F, 0x50F0A050, 0x3C44783C, 0x9FBA259F, 0xA8E34BA8, - 0x51F3A251, 0xA3FE5DA3, 0x40C08040, 0x8F8A058F, 0x92AD3F92, 0x9DBC219D, - 0x38487038, 0xF504F1F5, 0xBCDF63BC, 0xB6C177B6, 0xDA75AFDA, 0x21634221, - 0x10302010, 0xFF1AE5FF, 0xF30EFDF3, 0xD26DBFD2, 0xCD4C81CD, 0x0C14180C, - 0x13352613, 0xEC2FC3EC, 0x5FE1BE5F, 0x97A23597, 0x44CC8844, 0x17392E17, - 0xC45793C4, 0xA7F255A7, 0x7E82FC7E, 0x3D477A3D, 0x64ACC864, 0x5DE7BA5D, - 0x192B3219, 0x7395E673, 0x60A0C060, 0x81981981, 0x4FD19E4F, 0xDC7FA3DC, - 0x22664422, 0x2A7E542A, 0x90AB3B90, 0x88830B88, 0x46CA8C46, 0xEE29C7EE, - 0xB8D36BB8, 0x143C2814, 0xDE79A7DE, 0x5EE2BC5E, 0x0B1D160B, 0xDB76ADDB, - 0xE03BDBE0, 0x32566432, 0x3A4E743A, 0x0A1E140A, 0x49DB9249, 0x060A0C06, - 0x246C4824, 0x5CE4B85C, 0xC25D9FC2, 0xD36EBDD3, 0xACEF43AC, 0x62A6C462, - 0x91A83991, 0x95A43195, 0xE437D3E4, 0x798BF279, 0xE732D5E7, 0xC8438BC8, - 0x37596E37, 0x6DB7DA6D, 0x8D8C018D, 0xD564B1D5, 0x4ED29C4E, 0xA9E049A9, - 0x6CB4D86C, 0x56FAAC56, 0xF407F3F4, 0xEA25CFEA, 0x65AFCA65, 0x7A8EF47A, - 0xAEE947AE, 0x08181008, 0xBAD56FBA, 0x7888F078, 0x256F4A25, 0x2E725C2E, - 0x1C24381C, 0xA6F157A6, 0xB4C773B4, 0xC65197C6, 0xE823CBE8, 0xDD7CA1DD, - 0x749CE874, 0x1F213E1F, 0x4BDD964B, 0xBDDC61BD, 0x8B860D8B, 0x8A850F8A, - 0x7090E070, 0x3E427C3E, 0xB5C471B5, 0x66AACC66, 0x48D89048, 0x03050603, - 0xF601F7F6, 0x0E121C0E, 0x61A3C261, 0x355F6A35, 0x57F9AE57, 0xB9D069B9, - 0x86911786, 0xC15899C1, 0x1D273A1D, 0x9EB9279E, 0xE138D9E1, 0xF813EBF8, - 0x98B32B98, 0x11332211, 0x69BBD269, 0xD970A9D9, 0x8E89078E, 0x94A73394, - 0x9BB62D9B, 0x1E223C1E, 0x87921587, 0xE920C9E9, 0xCE4987CE, 0x55FFAA55, - 0x28785028, 0xDF7AA5DF, 0x8C8F038C, 0xA1F859A1, 0x89800989, 0x0D171A0D, - 0xBFDA65BF, 0xE631D7E6, 0x42C68442, 0x68B8D068, 0x41C38241, 0x99B02999, - 0x2D775A2D, 0x0F111E0F, 0xB0CB7BB0, 0x54FCA854, 0xBBD66DBB, 0x163A2C16, - 0x6363A5C6, 0x7C7C84F8, 0x777799EE, 0x7B7B8DF6, 0xF2F20DFF, 0x6B6BBDD6, - 0x6F6FB1DE, 0xC5C55491, 0x30305060, 0x01010302, 0x6767A9CE, 0x2B2B7D56, - 0xFEFE19E7, 0xD7D762B5, 0xABABE64D, 0x76769AEC, 0xCACA458F, 0x82829D1F, - 0xC9C94089, 0x7D7D87FA, 0xFAFA15EF, 0x5959EBB2, 0x4747C98E, 0xF0F00BFB, - 0xADADEC41, 0xD4D467B3, 0xA2A2FD5F, 0xAFAFEA45, 0x9C9CBF23, 0xA4A4F753, - 0x727296E4, 0xC0C05B9B, 0xB7B7C275, 0xFDFD1CE1, 0x9393AE3D, 0x26266A4C, - 0x36365A6C, 0x3F3F417E, 0xF7F702F5, 0xCCCC4F83, 0x34345C68, 0xA5A5F451, - 0xE5E534D1, 0xF1F108F9, 0x717193E2, 0xD8D873AB, 0x31315362, 0x15153F2A, - 0x04040C08, 0xC7C75295, 0x23236546, 0xC3C35E9D, 0x18182830, 0x9696A137, - 0x05050F0A, 0x9A9AB52F, 0x0707090E, 0x12123624, 0x80809B1B, 0xE2E23DDF, - 0xEBEB26CD, 0x2727694E, 0xB2B2CD7F, 0x75759FEA, 0x09091B12, 0x83839E1D, - 0x2C2C7458, 0x1A1A2E34, 0x1B1B2D36, 0x6E6EB2DC, 0x5A5AEEB4, 0xA0A0FB5B, - 0x5252F6A4, 0x3B3B4D76, 0xD6D661B7, 0xB3B3CE7D, 0x29297B52, 0xE3E33EDD, - 0x2F2F715E, 0x84849713, 0x5353F5A6, 0xD1D168B9, 0x00000000, 0xEDED2CC1, - 0x20206040, 0xFCFC1FE3, 0xB1B1C879, 0x5B5BEDB6, 0x6A6ABED4, 0xCBCB468D, - 0xBEBED967, 0x39394B72, 0x4A4ADE94, 0x4C4CD498, 0x5858E8B0, 0xCFCF4A85, - 0xD0D06BBB, 0xEFEF2AC5, 0xAAAAE54F, 0xFBFB16ED, 0x4343C586, 0x4D4DD79A, - 0x33335566, 0x85859411, 0x4545CF8A, 0xF9F910E9, 0x02020604, 0x7F7F81FE, - 0x5050F0A0, 0x3C3C4478, 0x9F9FBA25, 0xA8A8E34B, 0x5151F3A2, 0xA3A3FE5D, - 0x4040C080, 0x8F8F8A05, 0x9292AD3F, 0x9D9DBC21, 0x38384870, 0xF5F504F1, - 0xBCBCDF63, 0xB6B6C177, 0xDADA75AF, 0x21216342, 0x10103020, 0xFFFF1AE5, - 0xF3F30EFD, 0xD2D26DBF, 0xCDCD4C81, 0x0C0C1418, 0x13133526, 0xECEC2FC3, - 0x5F5FE1BE, 0x9797A235, 0x4444CC88, 0x1717392E, 0xC4C45793, 0xA7A7F255, - 0x7E7E82FC, 0x3D3D477A, 0x6464ACC8, 0x5D5DE7BA, 0x19192B32, 0x737395E6, - 0x6060A0C0, 0x81819819, 0x4F4FD19E, 0xDCDC7FA3, 0x22226644, 0x2A2A7E54, - 0x9090AB3B, 0x8888830B, 0x4646CA8C, 0xEEEE29C7, 0xB8B8D36B, 0x14143C28, - 0xDEDE79A7, 0x5E5EE2BC, 0x0B0B1D16, 0xDBDB76AD, 0xE0E03BDB, 0x32325664, - 0x3A3A4E74, 0x0A0A1E14, 0x4949DB92, 0x06060A0C, 0x24246C48, 0x5C5CE4B8, - 0xC2C25D9F, 0xD3D36EBD, 0xACACEF43, 0x6262A6C4, 0x9191A839, 0x9595A431, - 0xE4E437D3, 0x79798BF2, 0xE7E732D5, 0xC8C8438B, 0x3737596E, 0x6D6DB7DA, - 0x8D8D8C01, 0xD5D564B1, 0x4E4ED29C, 0xA9A9E049, 0x6C6CB4D8, 0x5656FAAC, - 0xF4F407F3, 0xEAEA25CF, 0x6565AFCA, 0x7A7A8EF4, 0xAEAEE947, 0x08081810, - 0xBABAD56F, 0x787888F0, 0x25256F4A, 0x2E2E725C, 0x1C1C2438, 0xA6A6F157, - 0xB4B4C773, 0xC6C65197, 0xE8E823CB, 0xDDDD7CA1, 0x74749CE8, 0x1F1F213E, - 0x4B4BDD96, 0xBDBDDC61, 0x8B8B860D, 0x8A8A850F, 0x707090E0, 0x3E3E427C, - 0xB5B5C471, 0x6666AACC, 0x4848D890, 0x03030506, 0xF6F601F7, 0x0E0E121C, - 0x6161A3C2, 0x35355F6A, 0x5757F9AE, 0xB9B9D069, 0x86869117, 0xC1C15899, - 0x1D1D273A, 0x9E9EB927, 0xE1E138D9, 0xF8F813EB, 0x9898B32B, 0x11113322, - 0x6969BBD2, 0xD9D970A9, 0x8E8E8907, 0x9494A733, 0x9B9BB62D, 0x1E1E223C, - 0x87879215, 0xE9E920C9, 0xCECE4987, 0x5555FFAA, 0x28287850, 0xDFDF7AA5, - 0x8C8C8F03, 0xA1A1F859, 0x89898009, 0x0D0D171A, 0xBFBFDA65, 0xE6E631D7, - 0x4242C684, 0x6868B8D0, 0x4141C382, 0x9999B029, 0x2D2D775A, 0x0F0F111E, - 0xB0B0CB7B, 0x5454FCA8, 0xBBBBD66D, 0x16163A2C }; - -const u32bit TD[1024] = { - 0x51F4A750, 0x7E416553, 0x1A17A4C3, 0x3A275E96, 0x3BAB6BCB, 0x1F9D45F1, - 0xACFA58AB, 0x4BE30393, 0x2030FA55, 0xAD766DF6, 0x88CC7691, 0xF5024C25, - 0x4FE5D7FC, 0xC52ACBD7, 0x26354480, 0xB562A38F, 0xDEB15A49, 0x25BA1B67, - 0x45EA0E98, 0x5DFEC0E1, 0xC32F7502, 0x814CF012, 0x8D4697A3, 0x6BD3F9C6, - 0x038F5FE7, 0x15929C95, 0xBF6D7AEB, 0x955259DA, 0xD4BE832D, 0x587421D3, - 0x49E06929, 0x8EC9C844, 0x75C2896A, 0xF48E7978, 0x99583E6B, 0x27B971DD, - 0xBEE14FB6, 0xF088AD17, 0xC920AC66, 0x7DCE3AB4, 0x63DF4A18, 0xE51A3182, - 0x97513360, 0x62537F45, 0xB16477E0, 0xBB6BAE84, 0xFE81A01C, 0xF9082B94, - 0x70486858, 0x8F45FD19, 0x94DE6C87, 0x527BF8B7, 0xAB73D323, 0x724B02E2, - 0xE31F8F57, 0x6655AB2A, 0xB2EB2807, 0x2FB5C203, 0x86C57B9A, 0xD33708A5, - 0x302887F2, 0x23BFA5B2, 0x02036ABA, 0xED16825C, 0x8ACF1C2B, 0xA779B492, - 0xF307F2F0, 0x4E69E2A1, 0x65DAF4CD, 0x0605BED5, 0xD134621F, 0xC4A6FE8A, - 0x342E539D, 0xA2F355A0, 0x058AE132, 0xA4F6EB75, 0x0B83EC39, 0x4060EFAA, - 0x5E719F06, 0xBD6E1051, 0x3E218AF9, 0x96DD063D, 0xDD3E05AE, 0x4DE6BD46, - 0x91548DB5, 0x71C45D05, 0x0406D46F, 0x605015FF, 0x1998FB24, 0xD6BDE997, - 0x894043CC, 0x67D99E77, 0xB0E842BD, 0x07898B88, 0xE7195B38, 0x79C8EEDB, - 0xA17C0A47, 0x7C420FE9, 0xF8841EC9, 0x00000000, 0x09808683, 0x322BED48, - 0x1E1170AC, 0x6C5A724E, 0xFD0EFFFB, 0x0F853856, 0x3DAED51E, 0x362D3927, - 0x0A0FD964, 0x685CA621, 0x9B5B54D1, 0x24362E3A, 0x0C0A67B1, 0x9357E70F, - 0xB4EE96D2, 0x1B9B919E, 0x80C0C54F, 0x61DC20A2, 0x5A774B69, 0x1C121A16, - 0xE293BA0A, 0xC0A02AE5, 0x3C22E043, 0x121B171D, 0x0E090D0B, 0xF28BC7AD, - 0x2DB6A8B9, 0x141EA9C8, 0x57F11985, 0xAF75074C, 0xEE99DDBB, 0xA37F60FD, - 0xF701269F, 0x5C72F5BC, 0x44663BC5, 0x5BFB7E34, 0x8B432976, 0xCB23C6DC, - 0xB6EDFC68, 0xB8E4F163, 0xD731DCCA, 0x42638510, 0x13972240, 0x84C61120, - 0x854A247D, 0xD2BB3DF8, 0xAEF93211, 0xC729A16D, 0x1D9E2F4B, 0xDCB230F3, - 0x0D8652EC, 0x77C1E3D0, 0x2BB3166C, 0xA970B999, 0x119448FA, 0x47E96422, - 0xA8FC8CC4, 0xA0F03F1A, 0x567D2CD8, 0x223390EF, 0x87494EC7, 0xD938D1C1, - 0x8CCAA2FE, 0x98D40B36, 0xA6F581CF, 0xA57ADE28, 0xDAB78E26, 0x3FADBFA4, - 0x2C3A9DE4, 0x5078920D, 0x6A5FCC9B, 0x547E4662, 0xF68D13C2, 0x90D8B8E8, - 0x2E39F75E, 0x82C3AFF5, 0x9F5D80BE, 0x69D0937C, 0x6FD52DA9, 0xCF2512B3, - 0xC8AC993B, 0x10187DA7, 0xE89C636E, 0xDB3BBB7B, 0xCD267809, 0x6E5918F4, - 0xEC9AB701, 0x834F9AA8, 0xE6956E65, 0xAAFFE67E, 0x21BCCF08, 0xEF15E8E6, - 0xBAE79BD9, 0x4A6F36CE, 0xEA9F09D4, 0x29B07CD6, 0x31A4B2AF, 0x2A3F2331, - 0xC6A59430, 0x35A266C0, 0x744EBC37, 0xFC82CAA6, 0xE090D0B0, 0x33A7D815, - 0xF104984A, 0x41ECDAF7, 0x7FCD500E, 0x1791F62F, 0x764DD68D, 0x43EFB04D, - 0xCCAA4D54, 0xE49604DF, 0x9ED1B5E3, 0x4C6A881B, 0xC12C1FB8, 0x4665517F, - 0x9D5EEA04, 0x018C355D, 0xFA877473, 0xFB0B412E, 0xB3671D5A, 0x92DBD252, - 0xE9105633, 0x6DD64713, 0x9AD7618C, 0x37A10C7A, 0x59F8148E, 0xEB133C89, - 0xCEA927EE, 0xB761C935, 0xE11CE5ED, 0x7A47B13C, 0x9CD2DF59, 0x55F2733F, - 0x1814CE79, 0x73C737BF, 0x53F7CDEA, 0x5FFDAA5B, 0xDF3D6F14, 0x7844DB86, - 0xCAAFF381, 0xB968C43E, 0x3824342C, 0xC2A3405F, 0x161DC372, 0xBCE2250C, - 0x283C498B, 0xFF0D9541, 0x39A80171, 0x080CB3DE, 0xD8B4E49C, 0x6456C190, - 0x7BCB8461, 0xD532B670, 0x486C5C74, 0xD0B85742, 0x5051F4A7, 0x537E4165, - 0xC31A17A4, 0x963A275E, 0xCB3BAB6B, 0xF11F9D45, 0xABACFA58, 0x934BE303, - 0x552030FA, 0xF6AD766D, 0x9188CC76, 0x25F5024C, 0xFC4FE5D7, 0xD7C52ACB, - 0x80263544, 0x8FB562A3, 0x49DEB15A, 0x6725BA1B, 0x9845EA0E, 0xE15DFEC0, - 0x02C32F75, 0x12814CF0, 0xA38D4697, 0xC66BD3F9, 0xE7038F5F, 0x9515929C, - 0xEBBF6D7A, 0xDA955259, 0x2DD4BE83, 0xD3587421, 0x2949E069, 0x448EC9C8, - 0x6A75C289, 0x78F48E79, 0x6B99583E, 0xDD27B971, 0xB6BEE14F, 0x17F088AD, - 0x66C920AC, 0xB47DCE3A, 0x1863DF4A, 0x82E51A31, 0x60975133, 0x4562537F, - 0xE0B16477, 0x84BB6BAE, 0x1CFE81A0, 0x94F9082B, 0x58704868, 0x198F45FD, - 0x8794DE6C, 0xB7527BF8, 0x23AB73D3, 0xE2724B02, 0x57E31F8F, 0x2A6655AB, - 0x07B2EB28, 0x032FB5C2, 0x9A86C57B, 0xA5D33708, 0xF2302887, 0xB223BFA5, - 0xBA02036A, 0x5CED1682, 0x2B8ACF1C, 0x92A779B4, 0xF0F307F2, 0xA14E69E2, - 0xCD65DAF4, 0xD50605BE, 0x1FD13462, 0x8AC4A6FE, 0x9D342E53, 0xA0A2F355, - 0x32058AE1, 0x75A4F6EB, 0x390B83EC, 0xAA4060EF, 0x065E719F, 0x51BD6E10, - 0xF93E218A, 0x3D96DD06, 0xAEDD3E05, 0x464DE6BD, 0xB591548D, 0x0571C45D, - 0x6F0406D4, 0xFF605015, 0x241998FB, 0x97D6BDE9, 0xCC894043, 0x7767D99E, - 0xBDB0E842, 0x8807898B, 0x38E7195B, 0xDB79C8EE, 0x47A17C0A, 0xE97C420F, - 0xC9F8841E, 0x00000000, 0x83098086, 0x48322BED, 0xAC1E1170, 0x4E6C5A72, - 0xFBFD0EFF, 0x560F8538, 0x1E3DAED5, 0x27362D39, 0x640A0FD9, 0x21685CA6, - 0xD19B5B54, 0x3A24362E, 0xB10C0A67, 0x0F9357E7, 0xD2B4EE96, 0x9E1B9B91, - 0x4F80C0C5, 0xA261DC20, 0x695A774B, 0x161C121A, 0x0AE293BA, 0xE5C0A02A, - 0x433C22E0, 0x1D121B17, 0x0B0E090D, 0xADF28BC7, 0xB92DB6A8, 0xC8141EA9, - 0x8557F119, 0x4CAF7507, 0xBBEE99DD, 0xFDA37F60, 0x9FF70126, 0xBC5C72F5, - 0xC544663B, 0x345BFB7E, 0x768B4329, 0xDCCB23C6, 0x68B6EDFC, 0x63B8E4F1, - 0xCAD731DC, 0x10426385, 0x40139722, 0x2084C611, 0x7D854A24, 0xF8D2BB3D, - 0x11AEF932, 0x6DC729A1, 0x4B1D9E2F, 0xF3DCB230, 0xEC0D8652, 0xD077C1E3, - 0x6C2BB316, 0x99A970B9, 0xFA119448, 0x2247E964, 0xC4A8FC8C, 0x1AA0F03F, - 0xD8567D2C, 0xEF223390, 0xC787494E, 0xC1D938D1, 0xFE8CCAA2, 0x3698D40B, - 0xCFA6F581, 0x28A57ADE, 0x26DAB78E, 0xA43FADBF, 0xE42C3A9D, 0x0D507892, - 0x9B6A5FCC, 0x62547E46, 0xC2F68D13, 0xE890D8B8, 0x5E2E39F7, 0xF582C3AF, - 0xBE9F5D80, 0x7C69D093, 0xA96FD52D, 0xB3CF2512, 0x3BC8AC99, 0xA710187D, - 0x6EE89C63, 0x7BDB3BBB, 0x09CD2678, 0xF46E5918, 0x01EC9AB7, 0xA8834F9A, - 0x65E6956E, 0x7EAAFFE6, 0x0821BCCF, 0xE6EF15E8, 0xD9BAE79B, 0xCE4A6F36, - 0xD4EA9F09, 0xD629B07C, 0xAF31A4B2, 0x312A3F23, 0x30C6A594, 0xC035A266, - 0x37744EBC, 0xA6FC82CA, 0xB0E090D0, 0x1533A7D8, 0x4AF10498, 0xF741ECDA, - 0x0E7FCD50, 0x2F1791F6, 0x8D764DD6, 0x4D43EFB0, 0x54CCAA4D, 0xDFE49604, - 0xE39ED1B5, 0x1B4C6A88, 0xB8C12C1F, 0x7F466551, 0x049D5EEA, 0x5D018C35, - 0x73FA8774, 0x2EFB0B41, 0x5AB3671D, 0x5292DBD2, 0x33E91056, 0x136DD647, - 0x8C9AD761, 0x7A37A10C, 0x8E59F814, 0x89EB133C, 0xEECEA927, 0x35B761C9, - 0xEDE11CE5, 0x3C7A47B1, 0x599CD2DF, 0x3F55F273, 0x791814CE, 0xBF73C737, - 0xEA53F7CD, 0x5B5FFDAA, 0x14DF3D6F, 0x867844DB, 0x81CAAFF3, 0x3EB968C4, - 0x2C382434, 0x5FC2A340, 0x72161DC3, 0x0CBCE225, 0x8B283C49, 0x41FF0D95, - 0x7139A801, 0xDE080CB3, 0x9CD8B4E4, 0x906456C1, 0x617BCB84, 0x70D532B6, - 0x74486C5C, 0x42D0B857, 0xA75051F4, 0x65537E41, 0xA4C31A17, 0x5E963A27, - 0x6BCB3BAB, 0x45F11F9D, 0x58ABACFA, 0x03934BE3, 0xFA552030, 0x6DF6AD76, - 0x769188CC, 0x4C25F502, 0xD7FC4FE5, 0xCBD7C52A, 0x44802635, 0xA38FB562, - 0x5A49DEB1, 0x1B6725BA, 0x0E9845EA, 0xC0E15DFE, 0x7502C32F, 0xF012814C, - 0x97A38D46, 0xF9C66BD3, 0x5FE7038F, 0x9C951592, 0x7AEBBF6D, 0x59DA9552, - 0x832DD4BE, 0x21D35874, 0x692949E0, 0xC8448EC9, 0x896A75C2, 0x7978F48E, - 0x3E6B9958, 0x71DD27B9, 0x4FB6BEE1, 0xAD17F088, 0xAC66C920, 0x3AB47DCE, - 0x4A1863DF, 0x3182E51A, 0x33609751, 0x7F456253, 0x77E0B164, 0xAE84BB6B, - 0xA01CFE81, 0x2B94F908, 0x68587048, 0xFD198F45, 0x6C8794DE, 0xF8B7527B, - 0xD323AB73, 0x02E2724B, 0x8F57E31F, 0xAB2A6655, 0x2807B2EB, 0xC2032FB5, - 0x7B9A86C5, 0x08A5D337, 0x87F23028, 0xA5B223BF, 0x6ABA0203, 0x825CED16, - 0x1C2B8ACF, 0xB492A779, 0xF2F0F307, 0xE2A14E69, 0xF4CD65DA, 0xBED50605, - 0x621FD134, 0xFE8AC4A6, 0x539D342E, 0x55A0A2F3, 0xE132058A, 0xEB75A4F6, - 0xEC390B83, 0xEFAA4060, 0x9F065E71, 0x1051BD6E, 0x8AF93E21, 0x063D96DD, - 0x05AEDD3E, 0xBD464DE6, 0x8DB59154, 0x5D0571C4, 0xD46F0406, 0x15FF6050, - 0xFB241998, 0xE997D6BD, 0x43CC8940, 0x9E7767D9, 0x42BDB0E8, 0x8B880789, - 0x5B38E719, 0xEEDB79C8, 0x0A47A17C, 0x0FE97C42, 0x1EC9F884, 0x00000000, - 0x86830980, 0xED48322B, 0x70AC1E11, 0x724E6C5A, 0xFFFBFD0E, 0x38560F85, - 0xD51E3DAE, 0x3927362D, 0xD9640A0F, 0xA621685C, 0x54D19B5B, 0x2E3A2436, - 0x67B10C0A, 0xE70F9357, 0x96D2B4EE, 0x919E1B9B, 0xC54F80C0, 0x20A261DC, - 0x4B695A77, 0x1A161C12, 0xBA0AE293, 0x2AE5C0A0, 0xE0433C22, 0x171D121B, - 0x0D0B0E09, 0xC7ADF28B, 0xA8B92DB6, 0xA9C8141E, 0x198557F1, 0x074CAF75, - 0xDDBBEE99, 0x60FDA37F, 0x269FF701, 0xF5BC5C72, 0x3BC54466, 0x7E345BFB, - 0x29768B43, 0xC6DCCB23, 0xFC68B6ED, 0xF163B8E4, 0xDCCAD731, 0x85104263, - 0x22401397, 0x112084C6, 0x247D854A, 0x3DF8D2BB, 0x3211AEF9, 0xA16DC729, - 0x2F4B1D9E, 0x30F3DCB2, 0x52EC0D86, 0xE3D077C1, 0x166C2BB3, 0xB999A970, - 0x48FA1194, 0x642247E9, 0x8CC4A8FC, 0x3F1AA0F0, 0x2CD8567D, 0x90EF2233, - 0x4EC78749, 0xD1C1D938, 0xA2FE8CCA, 0x0B3698D4, 0x81CFA6F5, 0xDE28A57A, - 0x8E26DAB7, 0xBFA43FAD, 0x9DE42C3A, 0x920D5078, 0xCC9B6A5F, 0x4662547E, - 0x13C2F68D, 0xB8E890D8, 0xF75E2E39, 0xAFF582C3, 0x80BE9F5D, 0x937C69D0, - 0x2DA96FD5, 0x12B3CF25, 0x993BC8AC, 0x7DA71018, 0x636EE89C, 0xBB7BDB3B, - 0x7809CD26, 0x18F46E59, 0xB701EC9A, 0x9AA8834F, 0x6E65E695, 0xE67EAAFF, - 0xCF0821BC, 0xE8E6EF15, 0x9BD9BAE7, 0x36CE4A6F, 0x09D4EA9F, 0x7CD629B0, - 0xB2AF31A4, 0x23312A3F, 0x9430C6A5, 0x66C035A2, 0xBC37744E, 0xCAA6FC82, - 0xD0B0E090, 0xD81533A7, 0x984AF104, 0xDAF741EC, 0x500E7FCD, 0xF62F1791, - 0xD68D764D, 0xB04D43EF, 0x4D54CCAA, 0x04DFE496, 0xB5E39ED1, 0x881B4C6A, - 0x1FB8C12C, 0x517F4665, 0xEA049D5E, 0x355D018C, 0x7473FA87, 0x412EFB0B, - 0x1D5AB367, 0xD25292DB, 0x5633E910, 0x47136DD6, 0x618C9AD7, 0x0C7A37A1, - 0x148E59F8, 0x3C89EB13, 0x27EECEA9, 0xC935B761, 0xE5EDE11C, 0xB13C7A47, - 0xDF599CD2, 0x733F55F2, 0xCE791814, 0x37BF73C7, 0xCDEA53F7, 0xAA5B5FFD, - 0x6F14DF3D, 0xDB867844, 0xF381CAAF, 0xC43EB968, 0x342C3824, 0x405FC2A3, - 0xC372161D, 0x250CBCE2, 0x498B283C, 0x9541FF0D, 0x017139A8, 0xB3DE080C, - 0xE49CD8B4, 0xC1906456, 0x84617BCB, 0xB670D532, 0x5C74486C, 0x5742D0B8, - 0xF4A75051, 0x4165537E, 0x17A4C31A, 0x275E963A, 0xAB6BCB3B, 0x9D45F11F, - 0xFA58ABAC, 0xE303934B, 0x30FA5520, 0x766DF6AD, 0xCC769188, 0x024C25F5, - 0xE5D7FC4F, 0x2ACBD7C5, 0x35448026, 0x62A38FB5, 0xB15A49DE, 0xBA1B6725, - 0xEA0E9845, 0xFEC0E15D, 0x2F7502C3, 0x4CF01281, 0x4697A38D, 0xD3F9C66B, - 0x8F5FE703, 0x929C9515, 0x6D7AEBBF, 0x5259DA95, 0xBE832DD4, 0x7421D358, - 0xE0692949, 0xC9C8448E, 0xC2896A75, 0x8E7978F4, 0x583E6B99, 0xB971DD27, - 0xE14FB6BE, 0x88AD17F0, 0x20AC66C9, 0xCE3AB47D, 0xDF4A1863, 0x1A3182E5, - 0x51336097, 0x537F4562, 0x6477E0B1, 0x6BAE84BB, 0x81A01CFE, 0x082B94F9, - 0x48685870, 0x45FD198F, 0xDE6C8794, 0x7BF8B752, 0x73D323AB, 0x4B02E272, - 0x1F8F57E3, 0x55AB2A66, 0xEB2807B2, 0xB5C2032F, 0xC57B9A86, 0x3708A5D3, - 0x2887F230, 0xBFA5B223, 0x036ABA02, 0x16825CED, 0xCF1C2B8A, 0x79B492A7, - 0x07F2F0F3, 0x69E2A14E, 0xDAF4CD65, 0x05BED506, 0x34621FD1, 0xA6FE8AC4, - 0x2E539D34, 0xF355A0A2, 0x8AE13205, 0xF6EB75A4, 0x83EC390B, 0x60EFAA40, - 0x719F065E, 0x6E1051BD, 0x218AF93E, 0xDD063D96, 0x3E05AEDD, 0xE6BD464D, - 0x548DB591, 0xC45D0571, 0x06D46F04, 0x5015FF60, 0x98FB2419, 0xBDE997D6, - 0x4043CC89, 0xD99E7767, 0xE842BDB0, 0x898B8807, 0x195B38E7, 0xC8EEDB79, - 0x7C0A47A1, 0x420FE97C, 0x841EC9F8, 0x00000000, 0x80868309, 0x2BED4832, - 0x1170AC1E, 0x5A724E6C, 0x0EFFFBFD, 0x8538560F, 0xAED51E3D, 0x2D392736, - 0x0FD9640A, 0x5CA62168, 0x5B54D19B, 0x362E3A24, 0x0A67B10C, 0x57E70F93, - 0xEE96D2B4, 0x9B919E1B, 0xC0C54F80, 0xDC20A261, 0x774B695A, 0x121A161C, - 0x93BA0AE2, 0xA02AE5C0, 0x22E0433C, 0x1B171D12, 0x090D0B0E, 0x8BC7ADF2, - 0xB6A8B92D, 0x1EA9C814, 0xF1198557, 0x75074CAF, 0x99DDBBEE, 0x7F60FDA3, - 0x01269FF7, 0x72F5BC5C, 0x663BC544, 0xFB7E345B, 0x4329768B, 0x23C6DCCB, - 0xEDFC68B6, 0xE4F163B8, 0x31DCCAD7, 0x63851042, 0x97224013, 0xC6112084, - 0x4A247D85, 0xBB3DF8D2, 0xF93211AE, 0x29A16DC7, 0x9E2F4B1D, 0xB230F3DC, - 0x8652EC0D, 0xC1E3D077, 0xB3166C2B, 0x70B999A9, 0x9448FA11, 0xE9642247, - 0xFC8CC4A8, 0xF03F1AA0, 0x7D2CD856, 0x3390EF22, 0x494EC787, 0x38D1C1D9, - 0xCAA2FE8C, 0xD40B3698, 0xF581CFA6, 0x7ADE28A5, 0xB78E26DA, 0xADBFA43F, - 0x3A9DE42C, 0x78920D50, 0x5FCC9B6A, 0x7E466254, 0x8D13C2F6, 0xD8B8E890, - 0x39F75E2E, 0xC3AFF582, 0x5D80BE9F, 0xD0937C69, 0xD52DA96F, 0x2512B3CF, - 0xAC993BC8, 0x187DA710, 0x9C636EE8, 0x3BBB7BDB, 0x267809CD, 0x5918F46E, - 0x9AB701EC, 0x4F9AA883, 0x956E65E6, 0xFFE67EAA, 0xBCCF0821, 0x15E8E6EF, - 0xE79BD9BA, 0x6F36CE4A, 0x9F09D4EA, 0xB07CD629, 0xA4B2AF31, 0x3F23312A, - 0xA59430C6, 0xA266C035, 0x4EBC3774, 0x82CAA6FC, 0x90D0B0E0, 0xA7D81533, - 0x04984AF1, 0xECDAF741, 0xCD500E7F, 0x91F62F17, 0x4DD68D76, 0xEFB04D43, - 0xAA4D54CC, 0x9604DFE4, 0xD1B5E39E, 0x6A881B4C, 0x2C1FB8C1, 0x65517F46, - 0x5EEA049D, 0x8C355D01, 0x877473FA, 0x0B412EFB, 0x671D5AB3, 0xDBD25292, - 0x105633E9, 0xD647136D, 0xD7618C9A, 0xA10C7A37, 0xF8148E59, 0x133C89EB, - 0xA927EECE, 0x61C935B7, 0x1CE5EDE1, 0x47B13C7A, 0xD2DF599C, 0xF2733F55, - 0x14CE7918, 0xC737BF73, 0xF7CDEA53, 0xFDAA5B5F, 0x3D6F14DF, 0x44DB8678, - 0xAFF381CA, 0x68C43EB9, 0x24342C38, 0xA3405FC2, 0x1DC37216, 0xE2250CBC, - 0x3C498B28, 0x0D9541FF, 0xA8017139, 0x0CB3DE08, 0xB4E49CD8, 0x56C19064, - 0xCB84617B, 0x32B670D5, 0x6C5C7448, 0xB85742D0 }; - -/* -* AES Encryption -*/ -void aes_encrypt_n(const byte in[], byte out[], - size_t blocks, - const MemoryRegion& EK, - const MemoryRegion& ME) - { - const size_t BLOCK_SIZE = 16; - - const u32bit* TE0 = TE; - const u32bit* TE1 = TE + 256; - const u32bit* TE2 = TE + 512; - const u32bit* TE3 = TE + 768; - - for(size_t i = 0; i != blocks; ++i) - { - u32bit T0 = load_be(in, 0) ^ EK[0]; - u32bit T1 = load_be(in, 1) ^ EK[1]; - u32bit T2 = load_be(in, 2) ^ EK[2]; - u32bit T3 = load_be(in, 3) ^ EK[3]; - - /* Use only the first 256 entries of the TE table and do the - * rotations directly in the code. This reduces the number of - * cache lines potentially used in the first round from 64 to 16 - * (assuming a typical 64 byte cache line), which makes timing - * attacks a little harder; the first round is particularly - * vulnerable. - */ - - u32bit B0 = TE[get_byte(0, T0)] ^ - rotate_right(TE[get_byte(1, T1)], 8) ^ - rotate_right(TE[get_byte(2, T2)], 16) ^ - rotate_right(TE[get_byte(3, T3)], 24) ^ EK[4]; - - u32bit B1 = TE[get_byte(0, T1)] ^ - rotate_right(TE[get_byte(1, T2)], 8) ^ - rotate_right(TE[get_byte(2, T3)], 16) ^ - rotate_right(TE[get_byte(3, T0)], 24) ^ EK[5]; - - u32bit B2 = TE[get_byte(0, T2)] ^ - rotate_right(TE[get_byte(1, T3)], 8) ^ - rotate_right(TE[get_byte(2, T0)], 16) ^ - rotate_right(TE[get_byte(3, T1)], 24) ^ EK[6]; - - u32bit B3 = TE[get_byte(0, T3)] ^ - rotate_right(TE[get_byte(1, T0)], 8) ^ - rotate_right(TE[get_byte(2, T1)], 16) ^ - rotate_right(TE[get_byte(3, T2)], 24) ^ EK[7]; - - for(size_t r = 2*4; r < EK.size(); r += 2*4) - { - T0 = TE0[get_byte(0, B0)] ^ TE1[get_byte(1, B1)] ^ - TE2[get_byte(2, B2)] ^ TE3[get_byte(3, B3)] ^ EK[r]; - T1 = TE0[get_byte(0, B1)] ^ TE1[get_byte(1, B2)] ^ - TE2[get_byte(2, B3)] ^ TE3[get_byte(3, B0)] ^ EK[r+1]; - T2 = TE0[get_byte(0, B2)] ^ TE1[get_byte(1, B3)] ^ - TE2[get_byte(2, B0)] ^ TE3[get_byte(3, B1)] ^ EK[r+2]; - T3 = TE0[get_byte(0, B3)] ^ TE1[get_byte(1, B0)] ^ - TE2[get_byte(2, B1)] ^ TE3[get_byte(3, B2)] ^ EK[r+3]; - - B0 = TE0[get_byte(0, T0)] ^ TE1[get_byte(1, T1)] ^ - TE2[get_byte(2, T2)] ^ TE3[get_byte(3, T3)] ^ EK[r+4]; - B1 = TE0[get_byte(0, T1)] ^ TE1[get_byte(1, T2)] ^ - TE2[get_byte(2, T3)] ^ TE3[get_byte(3, T0)] ^ EK[r+5]; - B2 = TE0[get_byte(0, T2)] ^ TE1[get_byte(1, T3)] ^ - TE2[get_byte(2, T0)] ^ TE3[get_byte(3, T1)] ^ EK[r+6]; - B3 = TE0[get_byte(0, T3)] ^ TE1[get_byte(1, T0)] ^ - TE2[get_byte(2, T1)] ^ TE3[get_byte(3, T2)] ^ EK[r+7]; - } - - /* - Joseph Bonneau and Ilya Mironov's paper "Cache-Collision Timing - Attacks Against AES" describes an attack that can recover AES - keys with as few as 2**13 samples. - - http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.88.4753 - - They recommend using a byte-wide table, which still allows an attack - but increases the samples required from 2**13 to 2**25: - - """In addition to OpenSSL v. 0.9.8.(a), which was used in our - experiments, the AES implementations of Crypto++ 5.2.1 and - LibTomCrypt 1.09 use the original Rijndael C implementation with - very few changes and are highly vulnerable. The AES implementations - in libgcrypt v. 1.2.2 and Botan v. 1.4.2 are also vulnerable, but - use a smaller byte-wide final table which lessens the effectiveness - of the attacks.""" - */ - - out[ 0] = SE[get_byte(0, B0)] ^ ME[0]; - out[ 1] = SE[get_byte(1, B1)] ^ ME[1]; - out[ 2] = SE[get_byte(2, B2)] ^ ME[2]; - out[ 3] = SE[get_byte(3, B3)] ^ ME[3]; - out[ 4] = SE[get_byte(0, B1)] ^ ME[4]; - out[ 5] = SE[get_byte(1, B2)] ^ ME[5]; - out[ 6] = SE[get_byte(2, B3)] ^ ME[6]; - out[ 7] = SE[get_byte(3, B0)] ^ ME[7]; - out[ 8] = SE[get_byte(0, B2)] ^ ME[8]; - out[ 9] = SE[get_byte(1, B3)] ^ ME[9]; - out[10] = SE[get_byte(2, B0)] ^ ME[10]; - out[11] = SE[get_byte(3, B1)] ^ ME[11]; - out[12] = SE[get_byte(0, B3)] ^ ME[12]; - out[13] = SE[get_byte(1, B0)] ^ ME[13]; - out[14] = SE[get_byte(2, B1)] ^ ME[14]; - out[15] = SE[get_byte(3, B2)] ^ ME[15]; - - in += BLOCK_SIZE; - out += BLOCK_SIZE; - } - } - -/* -* AES Decryption -*/ -void aes_decrypt_n(const byte in[], byte out[], size_t blocks, - const MemoryRegion& DK, - const MemoryRegion& MD) - { - const size_t BLOCK_SIZE = 16; - - const u32bit* TD0 = TD; - const u32bit* TD1 = TD + 256; - const u32bit* TD2 = TD + 512; - const u32bit* TD3 = TD + 768; - - for(size_t i = 0; i != blocks; ++i) - { - u32bit T0 = load_be(in, 0) ^ DK[0]; - u32bit T1 = load_be(in, 1) ^ DK[1]; - u32bit T2 = load_be(in, 2) ^ DK[2]; - u32bit T3 = load_be(in, 3) ^ DK[3]; - - u32bit B0 = TD[get_byte(0, T0)] ^ - rotate_right(TD[get_byte(1, T3)], 8) ^ - rotate_right(TD[get_byte(2, T2)], 16) ^ - rotate_right(TD[get_byte(3, T1)], 24) ^ DK[4]; - - u32bit B1 = TD[get_byte(0, T1)] ^ - rotate_right(TD[get_byte(1, T0)], 8) ^ - rotate_right(TD[get_byte(2, T3)], 16) ^ - rotate_right(TD[get_byte(3, T2)], 24) ^ DK[5]; - - u32bit B2 = TD[get_byte(0, T2)] ^ - rotate_right(TD[get_byte(1, T1)], 8) ^ - rotate_right(TD[get_byte(2, T0)], 16) ^ - rotate_right(TD[get_byte(3, T3)], 24) ^ DK[6]; - - u32bit B3 = TD[get_byte(0, T3)] ^ - rotate_right(TD[get_byte(1, T2)], 8) ^ - rotate_right(TD[get_byte(2, T1)], 16) ^ - rotate_right(TD[get_byte(3, T0)], 24) ^ DK[7]; - - for(size_t r = 2*4; r < DK.size(); r += 2*4) - { - T0 = TD0[get_byte(0, B0)] ^ TD1[get_byte(1, B3)] ^ - TD2[get_byte(2, B2)] ^ TD3[get_byte(3, B1)] ^ DK[r]; - T1 = TD0[get_byte(0, B1)] ^ TD1[get_byte(1, B0)] ^ - TD2[get_byte(2, B3)] ^ TD3[get_byte(3, B2)] ^ DK[r+1]; - T2 = TD0[get_byte(0, B2)] ^ TD1[get_byte(1, B1)] ^ - TD2[get_byte(2, B0)] ^ TD3[get_byte(3, B3)] ^ DK[r+2]; - T3 = TD0[get_byte(0, B3)] ^ TD1[get_byte(1, B2)] ^ - TD2[get_byte(2, B1)] ^ TD3[get_byte(3, B0)] ^ DK[r+3]; - - B0 = TD0[get_byte(0, T0)] ^ TD1[get_byte(1, T3)] ^ - TD2[get_byte(2, T2)] ^ TD3[get_byte(3, T1)] ^ DK[r+4]; - B1 = TD0[get_byte(0, T1)] ^ TD1[get_byte(1, T0)] ^ - TD2[get_byte(2, T3)] ^ TD3[get_byte(3, T2)] ^ DK[r+5]; - B2 = TD0[get_byte(0, T2)] ^ TD1[get_byte(1, T1)] ^ - TD2[get_byte(2, T0)] ^ TD3[get_byte(3, T3)] ^ DK[r+6]; - B3 = TD0[get_byte(0, T3)] ^ TD1[get_byte(1, T2)] ^ - TD2[get_byte(2, T1)] ^ TD3[get_byte(3, T0)] ^ DK[r+7]; - } - - out[ 0] = SD[get_byte(0, B0)] ^ MD[0]; - out[ 1] = SD[get_byte(1, B3)] ^ MD[1]; - out[ 2] = SD[get_byte(2, B2)] ^ MD[2]; - out[ 3] = SD[get_byte(3, B1)] ^ MD[3]; - out[ 4] = SD[get_byte(0, B1)] ^ MD[4]; - out[ 5] = SD[get_byte(1, B0)] ^ MD[5]; - out[ 6] = SD[get_byte(2, B3)] ^ MD[6]; - out[ 7] = SD[get_byte(3, B2)] ^ MD[7]; - out[ 8] = SD[get_byte(0, B2)] ^ MD[8]; - out[ 9] = SD[get_byte(1, B1)] ^ MD[9]; - out[10] = SD[get_byte(2, B0)] ^ MD[10]; - out[11] = SD[get_byte(3, B3)] ^ MD[11]; - out[12] = SD[get_byte(0, B3)] ^ MD[12]; - out[13] = SD[get_byte(1, B2)] ^ MD[13]; - out[14] = SD[get_byte(2, B1)] ^ MD[14]; - out[15] = SD[get_byte(3, B0)] ^ MD[15]; - - in += BLOCK_SIZE; - out += BLOCK_SIZE; - } - } - -void aes_key_schedule(const byte key[], size_t length, - MemoryRegion& EK, - MemoryRegion& DK, - MemoryRegion& ME, - MemoryRegion& MD) - { - static const u32bit RC[10] = { - 0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, - 0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000 }; - - const size_t rounds = (length / 4) + 6; - - SecureVector XEK(length + 32), XDK(length + 32); - - const size_t X = length / 4; - - BOTAN_ASSERT(X == 4 || X == 6 || X == 8, "Known AES key size"); - - for(size_t i = 0; i != X; ++i) - XEK[i] = load_be(key, i); - - for(size_t i = X; i < 4*(rounds+1); i += X) - { - XEK[i] = XEK[i-X] ^ RC[(i-X)/X] ^ - make_u32bit(SE[get_byte(1, XEK[i-1])], - SE[get_byte(2, XEK[i-1])], - SE[get_byte(3, XEK[i-1])], - SE[get_byte(0, XEK[i-1])]); - - for(size_t j = 1; j != X; ++j) - { - XEK[i+j] = XEK[i+j-X]; - - if(X == 8 && j == 4) - XEK[i+j] ^= make_u32bit(SE[get_byte(0, XEK[i+j-1])], - SE[get_byte(1, XEK[i+j-1])], - SE[get_byte(2, XEK[i+j-1])], - SE[get_byte(3, XEK[i+j-1])]); - else - XEK[i+j] ^= XEK[i+j-1]; - } - } - - for(size_t i = 0; i != 4*(rounds+1); i += 4) - { - XDK[i ] = XEK[4*rounds-i ]; - XDK[i+1] = XEK[4*rounds-i+1]; - XDK[i+2] = XEK[4*rounds-i+2]; - XDK[i+3] = XEK[4*rounds-i+3]; - } - - for(size_t i = 4; i != length + 24; ++i) - XDK[i] = TD[SE[get_byte(0, XDK[i])] + 0] ^ - TD[SE[get_byte(1, XDK[i])] + 256] ^ - TD[SE[get_byte(2, XDK[i])] + 512] ^ - TD[SE[get_byte(3, XDK[i])] + 768]; - - for(size_t i = 0; i != 4; ++i) - { - store_be(XEK[i+4*rounds], &ME[4*i]); - store_be(XEK[i], &MD[4*i]); - } - - EK.resize(length + 24); - DK.resize(length + 24); - copy_mem(&EK[0], &XEK[0], EK.size()); - copy_mem(&DK[0], &XDK[0], DK.size()); - } - -} - -void AES_128::encrypt_n(const byte in[], byte out[], size_t blocks) const - { - aes_encrypt_n(in, out, blocks, EK, ME); - } - -void AES_128::decrypt_n(const byte in[], byte out[], size_t blocks) const - { - aes_decrypt_n(in, out, blocks, DK, MD); - } - -void AES_128::key_schedule(const byte key[], size_t length) - { - aes_key_schedule(key, length, EK, DK, ME, MD); - } - -void AES_128::clear() - { - zeroise(EK); - zeroise(DK); - zeroise(ME); - zeroise(MD); - } - -void AES_192::encrypt_n(const byte in[], byte out[], size_t blocks) const - { - aes_encrypt_n(in, out, blocks, EK, ME); - } - -void AES_192::decrypt_n(const byte in[], byte out[], size_t blocks) const - { - aes_decrypt_n(in, out, blocks, DK, MD); - } - -void AES_192::key_schedule(const byte key[], size_t length) - { - aes_key_schedule(key, length, EK, DK, ME, MD); - } - -void AES_192::clear() - { - zeroise(EK); - zeroise(DK); - zeroise(ME); - zeroise(MD); - } - -void AES_256::encrypt_n(const byte in[], byte out[], size_t blocks) const - { - aes_encrypt_n(in, out, blocks, EK, ME); - } - -void AES_256::decrypt_n(const byte in[], byte out[], size_t blocks) const - { - aes_decrypt_n(in, out, blocks, DK, MD); - } - -void AES_256::key_schedule(const byte key[], size_t length) - { - aes_key_schedule(key, length, EK, DK, ME, MD); - } - -void AES_256::clear() - { - zeroise(EK); - zeroise(DK); - zeroise(ME); - zeroise(MD); - } - -} diff --git a/src/botan/src/block/aes/aes.h b/src/botan/src/block/aes/aes.h deleted file mode 100644 index a165f83b5..000000000 --- a/src/botan/src/block/aes/aes.h +++ /dev/null @@ -1,83 +0,0 @@ -/* -* AES -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_AES_H__ -#define BOTAN_AES_H__ - -#include - -namespace Botan { - -/** -* AES-128 -*/ -class BOTAN_DLL AES_128 : public Block_Cipher_Fixed_Params<16, 16> - { - public: - AES_128() : EK(40), DK(40), ME(16), MD(16) {} - - void encrypt_n(const byte in[], byte out[], size_t blocks) const; - void decrypt_n(const byte in[], byte out[], size_t blocks) const; - - void clear(); - - std::string name() const { return "AES-128"; } - BlockCipher* clone() const { return new AES_128; } - private: - void key_schedule(const byte key[], size_t length); - - SecureVector EK, DK; - SecureVector ME, MD; - }; - -/** -* AES-192 -*/ -class BOTAN_DLL AES_192 : public Block_Cipher_Fixed_Params<16, 24> - { - public: - AES_192() : EK(48), DK(48), ME(16), MD(16) {} - - void encrypt_n(const byte in[], byte out[], size_t blocks) const; - void decrypt_n(const byte in[], byte out[], size_t blocks) const; - - void clear(); - - std::string name() const { return "AES-192"; } - BlockCipher* clone() const { return new AES_192; } - private: - void key_schedule(const byte key[], size_t length); - - SecureVector EK, DK; - SecureVector ME, MD; - }; - -/** -* AES-256 -*/ -class BOTAN_DLL AES_256 : public Block_Cipher_Fixed_Params<16, 32> - { - public: - AES_256() : EK(56), DK(56), ME(16), MD(16) {} - - void encrypt_n(const byte in[], byte out[], size_t blocks) const; - void decrypt_n(const byte in[], byte out[], size_t blocks) const; - - void clear(); - - std::string name() const { return "AES-256"; } - BlockCipher* clone() const { return new AES_256; } - private: - void key_schedule(const byte key[], size_t length); - - SecureVector EK, DK; - SecureVector ME, MD; - }; - -} - -#endif diff --git a/src/botan/src/block/aes/info.txt b/src/botan/src/block/aes/info.txt deleted file mode 100644 index 480973100..000000000 --- a/src/botan/src/block/aes/info.txt +++ /dev/null @@ -1 +0,0 @@ -define AES diff --git a/src/botan/src/block/block_cipher.h b/src/botan/src/block/block_cipher.h deleted file mode 100644 index 8e820fc5a..000000000 --- a/src/botan/src/block/block_cipher.h +++ /dev/null @@ -1,118 +0,0 @@ -/* -* Block Cipher Base Class -* (C) 1999-2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_BLOCK_CIPHER_H__ -#define BOTAN_BLOCK_CIPHER_H__ - -#include - -namespace Botan { - -/** -* This class represents a block cipher object. -*/ -class BOTAN_DLL BlockCipher : public SymmetricAlgorithm - { - public: - - /** - * @return block size of this algorithm - */ - virtual size_t block_size() const = 0; - - /** - * @return native parallelism of this cipher in blocks - */ - virtual size_t parallelism() const { return 1; } - - /** - * @return prefererred parallelism of this cipher in bytes - */ - size_t parallel_bytes() const - { - return parallelism() * block_size() * BOTAN_BLOCK_CIPHER_PAR_MULT; - } - - /** - * Encrypt a block. - * @param in The plaintext block to be encrypted as a byte array. - * Must be of length block_size(). - * @param out The byte array designated to hold the encrypted block. - * Must be of length block_size(). - */ - void encrypt(const byte in[], byte out[]) const - { encrypt_n(in, out, 1); } - - /** - * Decrypt a block. - * @param in The ciphertext block to be decypted as a byte array. - * Must be of length block_size(). - * @param out The byte array designated to hold the decrypted block. - * Must be of length block_size(). - */ - void decrypt(const byte in[], byte out[]) const - { decrypt_n(in, out, 1); } - - /** - * Encrypt a block. - * @param block the plaintext block to be encrypted - * Must be of length block_size(). Will hold the result when the function - * has finished. - */ - void encrypt(byte block[]) const { encrypt_n(block, block, 1); } - - /** - * Decrypt a block. - * @param block the ciphertext block to be decrypted - * Must be of length block_size(). Will hold the result when the function - * has finished. - */ - void decrypt(byte block[]) const { decrypt_n(block, block, 1); } - - /** - * Encrypt one or more blocks - * @param in the input buffer (multiple of block_size()) - * @param out the output buffer (same size as in) - * @param blocks the number of blocks to process - */ - virtual void encrypt_n(const byte in[], byte out[], - size_t blocks) const = 0; - - /** - * Decrypt one or more blocks - * @param in the input buffer (multiple of block_size()) - * @param out the output buffer (same size as in) - * @param blocks the number of blocks to process - */ - virtual void decrypt_n(const byte in[], byte out[], - size_t blocks) const = 0; - - /** - * Get a new object representing the same algorithm as *this - */ - virtual BlockCipher* clone() const = 0; - }; - -/** -* Represents a block cipher with a single fixed block size -*/ -template -class Block_Cipher_Fixed_Params : public BlockCipher - { - public: - enum { BLOCK_SIZE = BS }; - size_t block_size() const { return BS; } - - Key_Length_Specification key_spec() const - { - return Key_Length_Specification(KMIN, KMAX, KMOD); - } - }; - -} - -#endif diff --git a/src/botan/src/block/info.txt b/src/botan/src/block/info.txt deleted file mode 100644 index c9757cadc..000000000 --- a/src/botan/src/block/info.txt +++ /dev/null @@ -1,5 +0,0 @@ -define BLOCK_CIPHER - - -algo_base - diff --git a/src/botan/src/build-data/arch/alpha.txt b/src/botan/src/build-data/arch/alpha.txt deleted file mode 100644 index 2bf72edef..000000000 --- a/src/botan/src/build-data/arch/alpha.txt +++ /dev/null @@ -1,28 +0,0 @@ -endian little - - -axp -alphaaxp - - - -alpha-ev4 -alpha-ev5 -alpha-ev56 -alpha-pca56 -alpha-ev6 -alpha-ev67 -alpha-ev68 -alpha-ev7 - - - -alphaev4 -> alpha-ev4 -alphaev5 -> alpha-ev5 -alphaev56 -> alpha-ev56 -alphapca56 -> alpha-pca56 -alphaev6 -> alpha-ev6 -alphaev67 -> alpha-ev67 -alphaev68 -> alpha-ev68 -alphaev7 -> alpha-ev7 - diff --git a/src/botan/src/build-data/arch/arm.txt b/src/botan/src/build-data/arch/arm.txt deleted file mode 100644 index b822fe130..000000000 --- a/src/botan/src/build-data/arch/arm.txt +++ /dev/null @@ -1,43 +0,0 @@ - -endian little -family arm - - -armel # For Debian -armhf # For Debian - - - -armv2 -armv2a -armv3 -armv3m -armv4 -armv5 -armv5e -armv5te -armv6 -armv6j -armv6t2 -armv6z -armv6zk -armv6-m -armv7 -armv7-a -armv7-r -armv7-m -iwmmxt -iwmmxt2 -ep9312 - - - -strongarm -> armv4 -xscale -> armv5te -cortex-a8 -> armv7-a -cortex-a9 -> armv7-a - - - -neon:armv7-a - diff --git a/src/botan/src/build-data/arch/hppa.txt b/src/botan/src/build-data/arch/hppa.txt deleted file mode 100644 index 0f7d90c68..000000000 --- a/src/botan/src/build-data/arch/hppa.txt +++ /dev/null @@ -1,13 +0,0 @@ - -hp-pa -parisc -pa-risc -hp-parisc -hp-pa-risc - - - -hppa1.0 -hppa1.1 -hppa2.0 - diff --git a/src/botan/src/build-data/arch/ia64.txt b/src/botan/src/build-data/arch/ia64.txt deleted file mode 100644 index 55967d5ab..000000000 --- a/src/botan/src/build-data/arch/ia64.txt +++ /dev/null @@ -1,14 +0,0 @@ - -itanium -itanic - - - -merced -mckinley -montvale - - - -itanium2 -> mckinley - diff --git a/src/botan/src/build-data/arch/m68k.txt b/src/botan/src/build-data/arch/m68k.txt deleted file mode 100644 index 691c45b92..000000000 --- a/src/botan/src/build-data/arch/m68k.txt +++ /dev/null @@ -1,16 +0,0 @@ -endian big - -# Except for Coldfire -#unaligned ok - - -680x0 -68k - - - -68020 -68030 -68040 -68060 - diff --git a/src/botan/src/build-data/arch/mips32.txt b/src/botan/src/build-data/arch/mips32.txt deleted file mode 100644 index b69abdacb..000000000 --- a/src/botan/src/build-data/arch/mips32.txt +++ /dev/null @@ -1,18 +0,0 @@ - -mips -mipsel # For Debian - - - -r3000 -r6000 - - - -r3k -> r3000 -r6k -> r6000 - -# These are for RPM -mipsbe -> r3000 -mipsle -> r3000 - diff --git a/src/botan/src/build-data/arch/mips64.txt b/src/botan/src/build-data/arch/mips64.txt deleted file mode 100644 index d6f481346..000000000 --- a/src/botan/src/build-data/arch/mips64.txt +++ /dev/null @@ -1,22 +0,0 @@ - -mips64el - - - -r4000 -r4100 -r4300 -r4400 -r4600 -r4560 -r5000 -r8000 -r10000 - - - -r4k -> r4000 -r5k -> r5000 -r8k -> r8000 -r10k -> r10000 - diff --git a/src/botan/src/build-data/arch/ppc32.txt b/src/botan/src/build-data/arch/ppc32.txt deleted file mode 100644 index e33c8ff24..000000000 --- a/src/botan/src/build-data/arch/ppc32.txt +++ /dev/null @@ -1,30 +0,0 @@ -endian big -unaligned ok - -family ppc - - -powerpc -ppc - - - -ppc601 -ppc603 -ppc604 -ppc740 -ppc750 -ppc7400 -ppc7450 -e500v2 - - - -g3 -> ppc740 -g4 -> ppc7450 -powerpcspe -> e500v2 # for Debian - - - -altivec:ppc7400,ppc7450 - diff --git a/src/botan/src/build-data/arch/ppc64.txt b/src/botan/src/build-data/arch/ppc64.txt deleted file mode 100644 index 954d9181e..000000000 --- a/src/botan/src/build-data/arch/ppc64.txt +++ /dev/null @@ -1,29 +0,0 @@ -endian big - -family ppc - - -powerpc64 - - - -g5 -> ppc970 - - - -ppc970 -power3 -power4 -power5 -power6 -power7 -cellppu - - - -cellbroadbandengine -> cellppu - - - -altivec:cellppu,ppc970,power6,power7 - diff --git a/src/botan/src/build-data/arch/s390.txt b/src/botan/src/build-data/arch/s390.txt deleted file mode 100644 index 6e9f99f12..000000000 --- a/src/botan/src/build-data/arch/s390.txt +++ /dev/null @@ -1,6 +0,0 @@ -endian big -unaligned ok - - -s390 - diff --git a/src/botan/src/build-data/arch/s390x.txt b/src/botan/src/build-data/arch/s390x.txt deleted file mode 100644 index 6f4271607..000000000 --- a/src/botan/src/build-data/arch/s390x.txt +++ /dev/null @@ -1,6 +0,0 @@ -endian big -unaligned ok - - -s390x - diff --git a/src/botan/src/build-data/arch/sparc32.txt b/src/botan/src/build-data/arch/sparc32.txt deleted file mode 100644 index 69f3479aa..000000000 --- a/src/botan/src/build-data/arch/sparc32.txt +++ /dev/null @@ -1,31 +0,0 @@ -endian big - -family sparc - - -sparc - - - -sparc32-v7 -sparc32-v8 -sparc32-v9 - - - -cypress -> sparc32-v7 -supersparc -> sparc32-v8 -hypersparc -> sparc32-v8 -microsparc -> sparc32-v8 -sparclite -> sparc32-v8 - -sparcv7 -> sparc32-v7 -sparcv8 -> sparc32-v8 -sparcv9 -> sparc32-v9 - -sparc-v7 -> sparc32-v7 -sparc-v8 -> sparc32-v8 -sparc-v9 -> sparc32-v9 - -sun4u -> sparc32-v9 - diff --git a/src/botan/src/build-data/arch/sparc64.txt b/src/botan/src/build-data/arch/sparc64.txt deleted file mode 100644 index 3a6acd6c3..000000000 --- a/src/botan/src/build-data/arch/sparc64.txt +++ /dev/null @@ -1,14 +0,0 @@ - -family sparc - - -ultrasparc -ultrasparc3 -niagra -niagra2 - - - -# Functionally the same for optimization purposes -ultrasparc2 -> ultrasparc - diff --git a/src/botan/src/build-data/arch/superh.txt b/src/botan/src/build-data/arch/superh.txt deleted file mode 100644 index c7dc09861..000000000 --- a/src/botan/src/build-data/arch/superh.txt +++ /dev/null @@ -1,5 +0,0 @@ - -sh2 -sh3 -sh4 - diff --git a/src/botan/src/build-data/arch/x86_32.txt b/src/botan/src/build-data/arch/x86_32.txt deleted file mode 100644 index 482a53057..000000000 --- a/src/botan/src/build-data/arch/x86_32.txt +++ /dev/null @@ -1,68 +0,0 @@ -endian little -unaligned ok - -family x86 - - -ia32 -x86 -ix86 -80x86 -i86pc # for Solaris -x86pc # for QNX -bepc # for Haiku - - - -i386 -i486 -i586 -i686 -pentium2 -pentium3 -pentium4 -pentium-m -prescott -k6 -athlon -atom32 - - - -pentium -> i586 -pentiumpro -> i686 -pentium_pro -> i686 -pentium2 -> pentium2 -pentiumii -> pentium2 -pentium3 -> pentium3 -pentiumiii -> pentium3 - -x86family5 -> i586 -x86family6 -> i686 - -pentiumm -> pentium-m -intelpentiumm -> pentium-m - -intelpentium4 -> pentium4 - -duron -> athlon -athlon-xp -> athlon -k7 -> athlon - -p2 -> i686 -p3 -> i686 -p4 -> pentium4 - -intelcput2250 -> prescott -intelcput2300 -> prescott -intelcput2400 -> prescott -intelcput2500 -> prescott -intelcput2600 -> prescott -intelcput2700 -> prescott - - - -sse2:pentium4,prescott,pentium-m,atom32 -ssse3:atom32 -movbe:atom32 - diff --git a/src/botan/src/build-data/arch/x86_64.txt b/src/botan/src/build-data/arch/x86_64.txt deleted file mode 100644 index 922daa104..000000000 --- a/src/botan/src/build-data/arch/x86_64.txt +++ /dev/null @@ -1,43 +0,0 @@ -endian little -unaligned ok - -family x86 - - -amd64 -x86-64 -em64t -x64 - - - -k8 -k10 -atom -nocona -core2 -nehalem -westmere -sandybridge - - - -core2duo -> core2 -intelcore2 -> core2 -intelcore2duo -> core2 - -sledgehammer -> k8 -opteron -> k8 -amdopteron -> k8 -athlon64 -> k8 -barcelona -> k10 - -corei5cpum520 -> westmere -corei7cpu860 -> nehalem - - - -sse2:all -ssse3:core2,nehalem,westmere,atom,sandybridge -aes-ni:westmere,sandybridge - diff --git a/src/botan/src/build-data/botan-config.in b/src/botan/src/build-data/botan-config.in deleted file mode 100644 index 44b6caef5..000000000 --- a/src/botan/src/build-data/botan-config.in +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh - -includedir=%{includedir}/botan-%{version_major}.%{version_minor} -libdir=%{libdir} - -prefix=%{prefix} - -usage() -{ - echo "$0 [--prefix[=DIR]] [--version] [--libs] [--cflags]" - exit 1 -} - -if test $# -eq 0; then - usage -fi - -while test $# -gt 0; do - case "$1" in - -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) optarg= ;; - esac - case "$1" in - --prefix=*) - prefix=$optarg - ;; - --prefix) - echo $prefix - ;; - --version) - echo %{version} - exit 0 - ;; - --cflags) - echo -I$prefix/$includedir - ;; - --libs) - if [ $prefix != "/usr" ] - then - echo -L$prefix/$libdir -lbotan-%{version_major}.%{version_minor} %{link_to} - else - echo -lbotan-%{version_major}.%{version_minor} %{link_to} - fi - ;; - *) - usage - ;; - esac - shift -done - -exit 0 diff --git a/src/botan/src/build-data/botan.doxy.in b/src/botan/src/build-data/botan.doxy.in deleted file mode 100644 index 52021c01f..000000000 --- a/src/botan/src/build-data/botan.doxy.in +++ /dev/null @@ -1,186 +0,0 @@ -# Doxyfile 1.5.4 - -PROJECT_NAME = Botan -PROJECT_NUMBER = %{version} -OUTPUT_DIRECTORY = %{doc_output_dir}/doxygen -DOXYFILE_ENCODING = UTF-8 -CREATE_SUBDIRS = NO -OUTPUT_LANGUAGE = English -BRIEF_MEMBER_DESC = YES -REPEAT_BRIEF = YES -ABBREVIATE_BRIEF = -ALWAYS_DETAILED_SEC = NO -INLINE_INHERITED_MEMB = YES -FULL_PATH_NAMES = YES -STRIP_FROM_PATH = -STRIP_FROM_INC_PATH = -SHORT_NAMES = NO -JAVADOC_AUTOBRIEF = NO -QT_AUTOBRIEF = NO -MULTILINE_CPP_IS_BRIEF = NO -INHERIT_DOCS = YES -SEPARATE_MEMBER_PAGES = NO -TAB_SIZE = 8 -ALIASES = -OPTIMIZE_OUTPUT_FOR_C = NO -OPTIMIZE_OUTPUT_JAVA = NO -BUILTIN_STL_SUPPORT = NO -CPP_CLI_SUPPORT = NO -SIP_SUPPORT = NO -DISTRIBUTE_GROUP_DOC = NO -SUBGROUPING = YES -TYPEDEF_HIDES_STRUCT = NO - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- -EXTRACT_ALL = YES -EXTRACT_PRIVATE = NO -EXTRACT_STATIC = NO -EXTRACT_LOCAL_CLASSES = NO -EXTRACT_LOCAL_METHODS = NO -EXTRACT_ANON_NSPACES = NO -HIDE_UNDOC_MEMBERS = NO -HIDE_UNDOC_CLASSES = NO -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO -INTERNAL_DOCS = NO -CASE_SENSE_NAMES = YES -HIDE_SCOPE_NAMES = NO -SHOW_INCLUDE_FILES = YES -INLINE_INFO = YES -SORT_MEMBER_DOCS = YES -SORT_BRIEF_DOCS = YES -SORT_BY_SCOPE_NAME = NO -GENERATE_TODOLIST = YES -GENERATE_TESTLIST = YES -GENERATE_BUGLIST = YES -GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = -MAX_INITIALIZER_LINES = 30 -SHOW_USED_FILES = YES -SHOW_DIRECTORIES = NO -FILE_VERSION_FILTER = - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- -QUIET = YES -WARNINGS = YES -WARN_IF_UNDOCUMENTED = YES -WARN_IF_DOC_ERROR = YES -WARN_NO_PARAMDOC = NO -WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- -INPUT = src -INPUT_ENCODING = UTF-8 -FILE_PATTERNS = -RECURSIVE = YES -EXCLUDE = -EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = */wrap/* -EXCLUDE_SYMBOLS = -EXAMPLE_PATH = -EXAMPLE_PATTERNS = -EXAMPLE_RECURSIVE = NO -IMAGE_PATH = -INPUT_FILTER = -FILTER_PATTERNS = -FILTER_SOURCE_FILES = NO -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- -SOURCE_BROWSER = YES -INLINE_SOURCES = YES -STRIP_CODE_COMMENTS = NO -REFERENCED_BY_RELATION = YES -REFERENCES_RELATION = YES -REFERENCES_LINK_SOURCE = YES -USE_HTAGS = NO -VERBATIM_HEADERS = YES -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = YES -COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- -GENERATE_HTML = YES -HTML_OUTPUT = . -HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = -HTML_ALIGN_MEMBERS = YES -GENERATE_HTMLHELP = NO -HTML_DYNAMIC_SECTIONS = NO -CHM_FILE = -HHC_LOCATION = -GENERATE_CHI = NO -BINARY_TOC = NO -TOC_EXPAND = NO -DISABLE_INDEX = NO -ENUM_VALUES_PER_LINE = 4 -GENERATE_TREEVIEW = NO -TREEVIEW_WIDTH = 250 - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = YES -MACRO_EXPANSION = NO -EXPAND_ONLY_PREDEF = NO -SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = -EXPAND_AS_DEFINED = -SKIP_FUNCTION_MACROS = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = -ALLEXTERNALS = NO -EXTERNAL_GROUPS = YES -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- -CLASS_DIAGRAMS = YES -MSCGEN_PATH = -HIDE_UNDOC_RELATIONS = YES -HAVE_DOT = NO -CLASS_GRAPH = YES -COLLABORATION_GRAPH = YES -GROUP_GRAPHS = YES -UML_LOOK = NO -TEMPLATE_RELATIONS = NO -INCLUDE_GRAPH = YES -INCLUDED_BY_GRAPH = YES -CALL_GRAPH = NO -CALLER_GRAPH = NO -GRAPHICAL_HIERARCHY = YES -DIRECTORY_GRAPH = YES -DOT_IMAGE_FORMAT = png -DOT_PATH = -DOTFILE_DIRS = -DOT_GRAPH_MAX_NODES = 50 -MAX_DOT_GRAPH_DEPTH = 0 -DOT_TRANSPARENT = YES -DOT_MULTI_TARGETS = NO -GENERATE_LEGEND = YES -DOT_CLEANUP = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- -SEARCHENGINE = NO diff --git a/src/botan/src/build-data/botan.pc.in b/src/botan/src/build-data/botan.pc.in deleted file mode 100644 index 301f84600..000000000 --- a/src/botan/src/build-data/botan.pc.in +++ /dev/null @@ -1,12 +0,0 @@ -prefix=%{prefix} -exec_prefix=${prefix} -libdir=${prefix}/%{libdir} -includedir=${prefix}/include/botan-%{version_major}.%{version_minor} - -Name: Botan -Description: Multi-platform C++ crypto library -Version: %{version} - -Libs: -L${libdir} -lbotan-%{version_major}.%{version_minor} -Libs.private: %{link_to} -Cflags: -I${includedir} diff --git a/src/botan/src/build-data/buildh.in b/src/botan/src/build-data/buildh.in deleted file mode 100644 index 3ef9adb35..000000000 --- a/src/botan/src/build-data/buildh.in +++ /dev/null @@ -1,121 +0,0 @@ - -#ifndef BOTAN_BUILD_CONFIG_H__ -#define BOTAN_BUILD_CONFIG_H__ - -/* -* This file was automatically generated %{timestamp} UTC by -* %{user}@%{hostname} running '%{command_line}' -* -* Target -* - Compiler: %{cc} %{lib_opt} %{mach_opt} -* - Arch: %{submodel}/%{arch} -* - OS: %{os} -*/ - -#define BOTAN_VERSION_MAJOR %{version_major} -#define BOTAN_VERSION_MINOR %{version_minor} -#define BOTAN_VERSION_PATCH %{version_patch} -#define BOTAN_VERSION_DATESTAMP %{version_datestamp} - -#define BOTAN_VERSION_VC_REVISION "%{version_vc_rev}" - -#define BOTAN_DISTRIBUTION_INFO "%{distribution_info}" - -#ifndef BOTAN_DLL - #define BOTAN_DLL %{visibility_attribute} -#endif - -/* Chunk sizes */ -#define BOTAN_DEFAULT_BUFFER_SIZE 4096 -#define BOTAN_MEM_POOL_CHUNK_SIZE 64*1024 -#define BOTAN_BLOCK_CIPHER_PAR_MULT 4 - -/* BigInt toggles */ -#define BOTAN_MP_WORD_BITS %{mp_bits} -#define BOTAN_KARAT_MUL_THRESHOLD 32 -#define BOTAN_KARAT_SQR_THRESHOLD 32 - -/* PK key consistency checking toggles */ -#define BOTAN_PUBLIC_KEY_STRONG_CHECKS_ON_LOAD 1 -#define BOTAN_PRIVATE_KEY_STRONG_CHECKS_ON_LOAD 0 -#define BOTAN_PRIVATE_KEY_STRONG_CHECKS_ON_GENERATE 1 - -/* -* RNGs will automatically poll the system for additional -* seed material after producing this many bytes of output. -*/ -#define BOTAN_RNG_MAX_OUTPUT_BEFORE_RESEED 512 -#define BOTAN_RNG_RESEED_POLL_BITS 128 - -/* Should we use GCC-style inline assembler? */ -#if !defined(BOTAN_USE_GCC_INLINE_ASM) && defined(__GNUG__) - #define BOTAN_USE_GCC_INLINE_ASM 1 -#endif - -#if !defined(BOTAN_USE_GCC_INLINE_ASM) - #define BOTAN_USE_GCC_INLINE_ASM 0 -#endif - -#ifdef __GNUC__ - #define BOTAN_GCC_VERSION \ - (__GNUC__ * 100 + __GNUC_MINOR__ * 10 + __GNUC_PATCHLEVEL__) -#else - #define BOTAN_GCC_VERSION 0 -#endif - -/* Target identification and feature test macros */ -%{target_os_defines} - -%{target_cpu_defines} - -#if defined(BOTAN_TARGET_CPU_IS_LITTLE_ENDIAN) || \ - defined(BOTAN_TARGET_CPU_IS_BIG_ENDIAN) - #define BOTAN_TARGET_CPU_HAS_KNOWN_ENDIANNESS -#endif - -%{target_compiler_defines} - -#if defined(_MSC_VER) - // 4250: inherits via dominance (diamond inheritence issue) - // 4251: needs DLL interface (STL DLL exports) - #pragma warning(disable: 4250 4251) -#endif - -/* -* Compile-time deprecatation warnings -*/ -#if !defined(BOTAN_NO_DEPRECATED_WARNINGS) - - #if defined(__clang__) - #define BOTAN_DEPRECATED(msg) __attribute__ ((deprecated)) - - #elif defined(_MSC_VER) - #define BOTAN_DEPRECATED(msg) __declspec(deprecated(msg)) - - #elif defined(__GNUG__) - - #if BOTAN_GCC_VERSION >= 450 && !defined(__INTEL_COMPILER) - #define BOTAN_DEPRECATED(msg) __attribute__ ((deprecated(msg))) - #else - #define BOTAN_DEPRECATED(msg) __attribute__ ((deprecated)) - #endif - - #endif - -#endif - -#if !defined(BOTAN_DEPRECATED) - #define BOTAN_DEPRECATED(msg) -#endif - -/* -* Module availability definitions -*/ -%{module_defines} - -/* -* Local configuration options (if any) follow -*/ -%{local_config} - -#endif diff --git a/src/botan/src/build-data/cc/bcc.txt b/src/botan/src/build-data/cc/bcc.txt deleted file mode 100644 index f2ea46ef2..000000000 --- a/src/botan/src/build-data/cc/bcc.txt +++ /dev/null @@ -1,25 +0,0 @@ -macro_name BORLAND - -binary_name bcc32 - -compile_option "-c " -output_to_option "-o" -add_include_dir_option -I -add_lib_dir_option -L -add_lib_option "" - -no_debug_flags "-O2" -debug_flags "" -check_opt_flags "-O2" -lang_flags "" -warning_flags "" - -shared_flags "" - -ar_command lib - -makefile_style nmake - - -all -> "-tM" - diff --git a/src/botan/src/build-data/cc/clang.txt b/src/botan/src/build-data/cc/clang.txt deleted file mode 100644 index cbcfd8949..000000000 --- a/src/botan/src/build-data/cc/clang.txt +++ /dev/null @@ -1,55 +0,0 @@ -# Largely copied from the gcc config - -macro_name CLANG - -binary_name clang++ - -compile_option "-c " -output_to_option "-o " -add_include_dir_option -I -add_lib_dir_option -L -add_lib_option -l - -lang_flags "-D_REENTRANT -ansi -Wno-long-long" -warning_flags "-W -Wall" - -makefile_style unix - -lib_opt_flags "-O2" -check_opt_flags "-O2" -shared_flags "-fPIC" -debug_flags -g -no_debug_flags "-finline-functions" - -visibility_build_flags "-fvisibility=hidden" -visibility_attribute '__attribute__((visibility("default")))' - - -# The default works for GNU ld and several other Unix linkers -default -> "$(CXX) -shared -fPIC -Wl,-soname,$(SONAME)" - -darwin -> "$(CXX) -dynamiclib -fPIC -install_name $(LIBDIR)/$(SONAME)" - - - -x86_64 -> "-march=SUBMODEL" -nehalem -> "-march=corei7" -westmere -> "-march=corei7 -maes" - - - -x86_64 -> "-m64" -mips64 -> "-mabi=64" -s390 -> "-m31" -s390x -> "-m64" -sparc32 -> "-m32 -mno-app-regs" -sparc64 -> "-m64 -mno-app-regs" -ppc64 -> "-m64" - -# This should probably be used on most/all targets, but the docs are incomplete -openbsd -> "-pthread" -freebsd -> "-pthread" -dragonfly -> "-pthread" -netbsd -> "-pthread -D_NETBSD_SOURCE" -qnx -> "-fexceptions -D_QNX_SOURCE" - diff --git a/src/botan/src/build-data/cc/compaq.txt b/src/botan/src/build-data/cc/compaq.txt deleted file mode 100644 index 7e7f1ea56..000000000 --- a/src/botan/src/build-data/cc/compaq.txt +++ /dev/null @@ -1,26 +0,0 @@ -macro_name COMPAQ - -binary_name cxx - -compile_option "-c " -output_to_option "-o " -add_include_dir_option -I -add_lib_dir_option -L -add_lib_option -l - -# -O3 and up seem to be unhappy with Botan -lib_opt_flags "-O2" -check_opt_flags "-O2" -debug_flags -g -no_debug_flags "" -lang_flags "-std ansi -D__USE_STD_IOSTREAM" - -makefile_style unix - - -default -> "$(CXX) -shared -soname $(SONAME)" - - - -alpha -> "-arch=SUBMODEL" alpha- - diff --git a/src/botan/src/build-data/cc/ekopath.txt b/src/botan/src/build-data/cc/ekopath.txt deleted file mode 100644 index c6e8b6550..000000000 --- a/src/botan/src/build-data/cc/ekopath.txt +++ /dev/null @@ -1,36 +0,0 @@ -macro_name PATHSCALE - -binary_name pathCC - -compile_option "-c " -output_to_option "-o " -add_include_dir_option -I -add_lib_dir_option -L -add_lib_option -l - -lib_opt_flags "-O3 -OPT:Ofast:alias=disjoint" -check_opt_flags "-O2" -lang_flags "-D_REENTRANT -ansi -Wno-long-long" -warning_flags "-W -Wall" - -ar_command "pathCC -ar -o" - -shared_flags "-fPIC" -debug_flags -g - -makefile_style unix - - -default -> "$(CXX) -shared -fPIC -Wl,-soname,$(SONAME)" - - - -athlon -> "-mcpu=athlon" -pentium4 -> "-mcpu=pentium4" - -k8 -> "-mcpu=opteron" -core2 -> "-mcpu=core" - -x86_32 -> "-mcpu=anyx86" -x86_64 -> "-mcpu=athlon64" - diff --git a/src/botan/src/build-data/cc/gcc.txt b/src/botan/src/build-data/cc/gcc.txt deleted file mode 100644 index 1fc6831aa..000000000 --- a/src/botan/src/build-data/cc/gcc.txt +++ /dev/null @@ -1,108 +0,0 @@ -macro_name GCC - -binary_name g++ - -has_tr1 yes - -compile_option "-c " -output_to_option "-o " -add_include_dir_option -I -add_lib_dir_option -L -add_lib_option -l - -lang_flags "-D_REENTRANT -Wno-long-long" -warning_flags "-W -Wall" - -maintainer_warning_flags "-Werror -Wall -Wextra -Wstrict-aliasing -Wstrict-overflow=5 -Wcast-align -Wmissing-declarations -Wpointer-arith -Wcast-qual -Wold-style-cast" - -lib_opt_flags "-O3" -check_opt_flags "-O2" -shared_flags "-fPIC" -debug_flags -g -no_debug_flags "-finline-functions" - -visibility_build_flags "-fvisibility=hidden" -visibility_attribute '__attribute__((visibility("default")))' - -makefile_style unix - - -# The default works for GNU ld and several other Unix linkers -default -> "$(CXX) -shared -fPIC -Wl,-soname,$(SONAME)" - -# AIX doesn't seem to have soname support (weird...) -aix -> "$(CXX) -shared -fPIC" - -# OpenBSD doesn't use soname -openbsd -> "$(CXX) -shared -fPIC" - -darwin -> "$(CXX) -dynamiclib -fPIC -install_name $(LIBDIR)/$(SONAME)" -hpux -> "$(CXX) -shared -fPIC -Wl,+h,$(SONAME)" -solaris -> "$(CXX) -shared -fPIC -Wl,-h,$(SONAME)" - - - -# Avoid using -march=i[345]86, instead tune for generic -i386 -> "-mtune=generic -momit-leaf-frame-pointer" -i486 -> "-mtune=generic -momit-leaf-frame-pointer" -i586 -> "-mtune=generic -momit-leaf-frame-pointer" - -sandybridge -> "-march=corei7-avx -momit-leaf-frame-pointer" -atom32 -> "-march=atom -momit-leaf-frame-pointer" - -# For recent GCC -nehalem -> "-march=corei7 -momit-leaf-frame-pointer" -westmere -> "-march=corei7 -maes -momit-leaf-frame-pointer" - -# For older GCC -#nehalem -> "-march=core2 -msse4.1 -msse4.2 -momit-leaf-frame-pointer" -#westmere -> "-march=core2 -msse4.1 -msse4.2 -maes -momit-leaf-frame-pointer" - -ppc601 -> "-mpowerpc -mcpu=601" -cellppu -> "-mcpu=cell" -e500v2 -> "-mcpu=8548" - -# No scheduler in GCC for anything after EV67 -alpha-ev68 -> "-mcpu=ev67" -alpha-ev7 -> "-mcpu=ev67" - -# The patch from Debian bug 594159 has this, don't know why though... -sh4 -> "-m4 -mieee" - -# Default family options (SUBMODEL is substitued with the actual -# submodel name). Anything after the quotes is what should be -# *removed* from the submodel name before it's put into SUBMODEL. - -alpha -> "-mcpu=SUBMODEL" alpha- -arm -> "-march=SUBMODEL" -superh -> "-mSUBMODEL" sh -hppa -> "-march=SUBMODEL" hppa -ia64 -> "-mtune=SUBMODEL" -m68k -> "-mSUBMODEL" -mips32 -> "-mips1 -mcpu=SUBMODEL" mips32- -mips64 -> "-mips3 -mcpu=SUBMODEL" mips64- -ppc32 -> "-mcpu=SUBMODEL" ppc -ppc64 -> "-mcpu=SUBMODEL" ppc -sparc32 -> "-mcpu=SUBMODEL -Wa,-xarch=v8plus" sparc32- -sparc64 -> "-mcpu=v9 -mtune=SUBMODEL" -x86_32 -> "-march=SUBMODEL -momit-leaf-frame-pointer" -x86_64 -> "-march=SUBMODEL -momit-leaf-frame-pointer" - - -# The 'linking' bit means "use this for both compiling *and* linking" - -x86_64 -> "-m64" -mips64 -> "-mabi=64" -s390 -> "-m31" -s390x -> "-m64" -sparc32 -> "-m32 -mno-app-regs" -sparc64 -> "-m64 -mno-app-regs" -ppc64 -> "-m64" - -# This should probably be used on most/all targets, but the docs are unclear -openbsd -> "-pthread" -freebsd -> "-pthread" -dragonfly -> "-pthread" -netbsd -> "-pthread -D_NETBSD_SOURCE" -qnx -> "-fexceptions -D_QNX_SOURCE" - diff --git a/src/botan/src/build-data/cc/hpcc.txt b/src/botan/src/build-data/cc/hpcc.txt deleted file mode 100644 index 4b21a03de..000000000 --- a/src/botan/src/build-data/cc/hpcc.txt +++ /dev/null @@ -1,29 +0,0 @@ -macro_name HP_ACC - -binary_name aCC - -compile_option "-c " -output_to_option "-o " -add_include_dir_option -I -add_lib_dir_option -L -add_lib_option -l - -lib_opt_flags "+O2" -check_opt_flags "+O2" -debug_flags -g -no_debug_flags "" -lang_flags "-AA -ext +eh -z" -warning_flags "" # +w -shared_flags "+Z" - -makefile_style unix - - -hppa1.0 -> "+DAportable" -hppa1.1 -> "+DA1.1" -hppa2.0 -> "+DA2.0W" - - - -default -> "$(CXX) +Z -b -Wl,+h,$(SONAME)" # Documented in cc(1), but not CC(1) (?) - diff --git a/src/botan/src/build-data/cc/icc.txt b/src/botan/src/build-data/cc/icc.txt deleted file mode 100644 index 28c1a2816..000000000 --- a/src/botan/src/build-data/cc/icc.txt +++ /dev/null @@ -1,36 +0,0 @@ -macro_name INTEL - -binary_name icpc - -has_tr1 yes - -compile_option "-c " -output_to_option "-o " -add_include_dir_option -I -add_lib_dir_option -L -add_lib_option -l - -lib_opt_flags "-O2 -ip -unroll" -check_opt_flags "-O2" -debug_flags -g -no_debug_flags "-fomit-frame-pointer" -lang_flags "" -warning_flags "-w1" -shared_flags "-fPIC" - -makefile_style unix - - -pentium3 -> "-march=pentium3" -pentium4 -> "-march=pentium4" -pentium-m -> "-march=pentium3" -core2 -> "-march=core2" - -# ICC 11.1 doesn't have native Nehalem or Westmere support -nehalem -> "-march=core2" -westmere -> "-march=core2" - - - -default -> "$(CXX) -fPIC -shared -Wl,-soname,$(SONAME)" - diff --git a/src/botan/src/build-data/cc/kai.txt b/src/botan/src/build-data/cc/kai.txt deleted file mode 100644 index 2d9c0cd65..000000000 --- a/src/botan/src/build-data/cc/kai.txt +++ /dev/null @@ -1,27 +0,0 @@ -macro_name KAI - -binary_name KCC - -compile_option "-c " -output_to_option "-o " -add_include_dir_option -I -add_lib_dir_option -L -add_lib_option -l - -ar_command "KCC -o" - -lib_opt_flags "+K3 --inline_auto_space_time=65 --abstract_pointer" -check_opt_flags "+K3" -lang_flags "-D__KAI_STRICT" -debug_flags -g -no_debug_flags "" - -makefile_style unix - - -default -> "$(CXX) --soname $(SONAME)" - - - -all -> "--one_per" - diff --git a/src/botan/src/build-data/cc/mipspro.txt b/src/botan/src/build-data/cc/mipspro.txt deleted file mode 100644 index 28b47b30d..000000000 --- a/src/botan/src/build-data/cc/mipspro.txt +++ /dev/null @@ -1,39 +0,0 @@ -macro_name MIPSPRO - -binary_name CC - -compile_option "-c " -output_to_option "-o " -add_include_dir_option -I -add_lib_dir_option -L -add_lib_option -l - -lib_opt_flags "-O3 -OPT:alias=TYPED" -check_opt_flags "-O3 -OPT:alias=TYPED" -debug_flags "-g3" -no_debug_flags "" -shared_flags "-KPIC" -lang_flags "-ansi -LANG:ansi-for-init-scope=ON" -# Disabled, because, while my code is fine, it warns about a lot of it's own -# headers -#warning_flags "-fullwarn" - -makefile_style unix - - -default -> "$(CXX) -shared -Wl,-soname,$(SONAME)" - - - -mips32 -> "-mips1" -mips64 -> "-mips3" - -mips64-r5000 -> "-mips4 -r5000" -mips64-r8000 -> "-mips4 -r8000" -mips64-r10000 -> "-mips4 -r10000" - - - -mips32 -> "-n32" -mips64 -> "-64" - diff --git a/src/botan/src/build-data/cc/msvc.txt b/src/botan/src/build-data/cc/msvc.txt deleted file mode 100644 index 034ea7444..000000000 --- a/src/botan/src/build-data/cc/msvc.txt +++ /dev/null @@ -1,31 +0,0 @@ -macro_name MSVC - -binary_name cl - -compile_option "/nologo /c " -output_to_option "/Fo" -add_include_dir_option "/I" -add_lib_dir_option -L -add_lib_option "" - -no_debug_flags "/O2" -debug_flags "/Od /Zi /DDEBUG" -check_opt_flags "/O2 /D_CONSOLE" -lang_flags "/EHs /GR" -warning_flags "/W3 /wd4275 /wd4267" - -visibility_build_flags "/DBOTAN_DLL=__declspec(dllexport)" -visibility_attribute "__declspec(dllimport)" - -ar_command lib - -makefile_style nmake - - -default -> "$(CXX) /LD" - - - -all -> "/MD" -all-debug -> "/MDd" - diff --git a/src/botan/src/build-data/cc/open64.txt b/src/botan/src/build-data/cc/open64.txt deleted file mode 100644 index 52f35a7e8..000000000 --- a/src/botan/src/build-data/cc/open64.txt +++ /dev/null @@ -1,27 +0,0 @@ -macro_name OPEN64 - -binary_name openCC - -compile_option "-c " -output_to_option "-o " -add_include_dir_option -I -add_lib_dir_option -L -add_lib_option -l - -lib_opt_flags "-O3 -OPT:alias=TYPED" -check_opt_flags "-O3 -OPT:alias=TYPED" -debug_flags "-g3" -no_debug_flags "-fomit-frame-pointer" -shared_flags "-fPIC" -lang_flags "-ansi -LANG:ansi-for-init-scope=ON" -warning_flags "-Wall -W" - -makefile_style unix - - -default -> "$(CXX) -shared -Wl,-soname,$(SONAME)" - - - -x86_64 -> "-m64" - diff --git a/src/botan/src/build-data/cc/pgi.txt b/src/botan/src/build-data/cc/pgi.txt deleted file mode 100644 index 985c534b9..000000000 --- a/src/botan/src/build-data/cc/pgi.txt +++ /dev/null @@ -1,28 +0,0 @@ -macro_name PORTLAND_GROUP - -binary_name pgCC - -compile_option "-c " -output_to_option "-o " -add_include_dir_option -I -add_lib_dir_option -L -add_lib_option -l - -lib_opt_flags "-fast -Minline" -check_opt_flags "-fast" -shared_flags "-fPIC" - -makefile_style unix - - -linux -> "$(CXX) -shared -fPIC -Wl,-soname,$(SONAME)" -solaris -> "$(CXX) -G -fPIC -Wl,-h,$(SONAME)" - - - -i586 -> "-tp p5" -i686 -> "-tp p6" -athlon -> "-tp k7" -pentium4 -> "-tp p6" -x86_32 -> "-tp px" - diff --git a/src/botan/src/build-data/cc/sgipro64.txt b/src/botan/src/build-data/cc/sgipro64.txt deleted file mode 100644 index e6a58f16d..000000000 --- a/src/botan/src/build-data/cc/sgipro64.txt +++ /dev/null @@ -1,27 +0,0 @@ -macro_name SGI_PRO64 - -binary_name sgiCC - -compile_option "-c " -output_to_option "-o " -add_include_dir_option -I -add_lib_dir_option -L -add_lib_option -l - -lib_opt_flags "-O3 -OPT:alias=TYPED" -check_opt_flags "-O3 -OPT:alias=TYPED" -debug_flags "-g3" -no_debug_flags "" -shared_flags "-KPIC" -lang_flags "-ansi -LANG:ansi-for-init-scope=ON" -warning_flags "-Wall -W" - -makefile_style unix - - -default -> "$(CXX) -shared -Wl,-soname,$(SONAME)" - - - - - diff --git a/src/botan/src/build-data/cc/sunstudio.txt b/src/botan/src/build-data/cc/sunstudio.txt deleted file mode 100644 index 43e5fcf8a..000000000 --- a/src/botan/src/build-data/cc/sunstudio.txt +++ /dev/null @@ -1,57 +0,0 @@ -macro_name SUN_STUDIO - -binary_name CC - -compile_option "-c " -output_to_option "-o " -add_include_dir_option -I -add_lib_dir_option -L -add_lib_option -l - -lib_opt_flags "-xO5" -check_opt_flags "-xO2" -debug_flags -g -no_debug_flags "" -shared_flags "-KPIC" -warning_flags "+w -erroff=truncwarn,wnoretvalue" -lang_flags "+p -features=extensions -D__FUNCTION__=__func__" - -ar_command "CC -xar -o" - -makefile_style unix - - -default -> "$(CXX) -G -h$(SONAME)" - - - -i386 -> "-xtarget=486" -i486 -> "-xtarget=486" -i586 -> "-xtarget=pentium" -k6 -> "-xtarget=pentium" -i686 -> "-xtarget=pentium_pro" - -pentium3 -> "-xtarget=pentium3" -pentium4 -> "-xtarget=pentium4" - -core2 -> "-xtarget=core2" -opteron -> "-xtarget=opteron" -nehalem -> "-xtarget=nehalem" - -sparc32-v9 -> "-xchip=ultra -xarch=v8" - -ultrasparc3 -> "-xchip=ultra3" -niagra1 -> "-xchip=ultraT1" -niagra2 -> "-xchip=ultraT2" - -sparc32 -> "-xchip=ultra -xarch=SUBMODEL" sparc32- -sparc64 -> "-xchip=generic" - - - -# Needed on some Linux distros -linux -> "-library=stlport4" - -sparc64 -> "-xarch=v9" -x86_64 -> "-m64" - diff --git a/src/botan/src/build-data/cc/xlc.txt b/src/botan/src/build-data/cc/xlc.txt deleted file mode 100644 index 87b32746b..000000000 --- a/src/botan/src/build-data/cc/xlc.txt +++ /dev/null @@ -1,30 +0,0 @@ -macro_name IBM_XLC - -binary_name xlC - -compile_option "-c " -output_to_option "-o " -add_include_dir_option -I -add_lib_dir_option -L -add_lib_option -l - -lib_opt_flags "-O2" -check_opt_flags "-O2" -lang_flags "" -debug_flags -g -no_debug_flags "" - -makefile_style unix - - -cellppu -> "-qarch=cell" -ppc970 -> "-qarch=ppc970" -power4 -> "-qarch=pwr4" -power5 -> "-qarch=pwr5" - -cellppu -> "-qarch=cell" - - - -default -> "$(CXX) -qmkshrobj" - diff --git a/src/botan/src/build-data/innosetup.in b/src/botan/src/build-data/innosetup.in deleted file mode 100644 index ed618e8fb..000000000 --- a/src/botan/src/build-data/innosetup.in +++ /dev/null @@ -1,78 +0,0 @@ -; A script for packaging botan with InnoSetup - -[Setup] -AppName=Botan -AppVerName=Botan %{version} - -AppPublisher=Jack Lloyd -AppPublisherURL=http://botan.randombit.net/ -AppVersion=%{version} - -VersionInfoCopyright=Copyright (C) 1999-2010 Jack Lloyd and others -VersionInfoVersion=%{version_major}.%{version_minor}.%{version_patch}.0 - -; Require at least Windows 98 or 2000 -MinVersion=4.1,5.0 - -; Uncomment for 64 bit builds -;ArchitecturesAllowed = x64 -;ArchitecturesInstallIn64BitMode = x64 - -DefaultDirName={pf}\botan -DefaultGroupName=botan - -SolidCompression=yes - -OutputDir=. -OutputBaseFilename=botan-%{version} - -[Types] -Name: "user"; Description: "User" -Name: "devel"; Description: "Developer" -Name: "custom"; Description: "Custom"; Flags: iscustom - -[Components] -name: "dll"; Description: "Runtime DLLs"; Types: user devel custom; Flags: fixed -name: "implib"; Description: "Import Library"; Types: devel -name: "includes"; Description: "Include Files"; Types: devel -name: "docs"; Description: "Developer Documentation"; Types: devel - -[Files] -; DLL and license file is always included -Source: "..\doc\license.txt"; DestDir: "{app}"; Components: dll; AfterInstall: ConvertLineEndings -Source: "..\botan.dll"; DestDir: "{app}"; Components: dll -Source: "..\botan.dll.manifest"; DestDir: "{app}"; Components: dll; Flags: skipifsourcedoesntexist - -Source: "include\botan\*"; DestDir: "{app}\include\botan"; Components: includes; AfterInstall: ConvertLineEndings - -Source: "..\readme.txt"; DestDir: "{app}\doc"; Components: docs; AfterInstall: ConvertLineEndings -Source: "..\doc\*.txt"; DestDir: "{app}\doc"; Excludes: "license.txt"; Components: docs; AfterInstall: ConvertLineEndings - -Source: "..\doc\examples\*.cpp"; DestDir: "{app}\doc\examples"; Components: docs; AfterInstall: ConvertLineEndings - -Source: "..\botan.exp"; DestDir: "{app}"; Components: implib -Source: "..\botan.lib"; DestDir: "{app}"; Components: implib - -Source: "..\doc\manual.pdf"; DestDir: "{app}\doc"; Components: docs; Flags: skipifsourcedoesntexist -Source: "..\doc\tutorial.pdf"; DestDir: "{app}\doc"; Components: docs; Flags: skipifsourcedoesntexist - -[Code] -const - LF = #10; - CR = #13; - CRLF = CR + LF; - -procedure ConvertLineEndings(); - var - FilePath : String; - FileContents : String; -begin - FilePath := ExpandConstant(CurrentFileName) - - if ExtractFileName(CurrentFileName) <> 'build.h' then - begin - LoadStringFromFile(FilePath, FileContents); - StringChangeEx(FileContents, LF, CRLF, False); - SaveStringToFile(FilePath, FileContents, False); - end; -end; diff --git a/src/botan/src/build-data/makefile/nmake.in b/src/botan/src/build-data/makefile/nmake.in deleted file mode 100644 index 3e20d988a..000000000 --- a/src/botan/src/build-data/makefile/nmake.in +++ /dev/null @@ -1,90 +0,0 @@ -### Compiler Options -CXX = %{cc} -LIB_OPT = %{lib_opt} -CHECK_OPT = %{check_opt} -MACH_OPT = %{mach_opt} -LANG_FLAGS = %{lang_flags} -WARN_FLAGS = %{warn_flags} -SO_OBJ_FLAGS = %{shared_flags} -LIB_LINK_CMD = %{so_link} -LINK_TO = %{link_to} - -### Version Numbers -VERSION = %{version} - -### Installation Settings -DESTDIR = %{prefix} - -### Aliases for Common Programs -AR = %{ar_command} -COPY = copy -CD = @cd -ECHO = @echo -INSTALL = %{install_cmd_exec} -INSTALL_CMD = %{install_cmd_exec} -MKDIR = @md -MKDIR_INSTALL = @md -RM = @del /Q -RM_R = $(RM) /S -RMDIR = @rmdir - -### File Lists -CHECK = check - -HEADERS = %{include_files} - -LIBOBJS = %{lib_objs} - -CHECKOBJS = %{check_objs} - -LIB_FLAGS = $(LIB_OPT) $(MACH_OPT) $(LANG_FLAGS) $(WARN_FLAGS) $(SO_OBJ_FLAGS) -CHECK_FLAGS = $(CHECK_OPT) $(LANG_FLAGS) $(WARN_FLAGS) - -LIBNAME = botan - -LIBRARIES = $(BOTAN_LIB) - -# This will be either a static lib or the DLL import lib -BOTAN_LIB = $(LIBNAME).%{static_suffix} - -all: $(LIBRARIES) - -### Build Commands -%{lib_build_cmds} - -%{check_build_cmds} - -### Link Commands -$(CHECK): $(LIBRARIES) $(CHECKOBJS) - $(CXX) /Fe$@ $(CHECKOBJS) $(BOTAN_LIB) $(LINK_TO) - -$(BOTAN_LIB): $(LIBOBJS) -!If "$(SO_OBJ_FLAGS)" == "" - $(AR) /OUT:$(BOTAN_LIB) $(LIBOBJS) -!Else - $(LIB_LINK_CMD) /Fe$(LIBNAME) $(LIBOBJS) $(LINK_TO) -!Endif - -### Fake Targets -docs: -%{build_doc_commands} - -clean: - $(RM) %{build_dir}\lib\* %{build_dir}\checks\* - $(RM) *.manifest *.exp *.dll - $(RM) $(LIBRARIES) $(CHECK) - -distclean: clean - $(RM_R) %{build_dir} - $(RMDIR) %{build_dir}\include\botan\internal - $(RMDIR) %{build_dir}\include\botan - $(RMDIR) %{build_dir}\include - $(RMDIR) %{build_dir}\lib %{build_dir}\checks - $(RMDIR) %{build_dir} - $(RM) Makefile $(LIBNAME).* $(CHECK).* - -### Install Commands -install: $(LIBRARIES) - -$(MKDIR) $(DESTDIR)\include\botan - $(INSTALL_CMD) botan.* $(DESTDIR) - $(INSTALL_CMD) build\include\botan\*.h $(DESTDIR)\include\botan diff --git a/src/botan/src/build-data/makefile/python.in b/src/botan/src/build-data/makefile/python.in deleted file mode 100644 index 74620fe06..000000000 --- a/src/botan/src/build-data/makefile/python.in +++ /dev/null @@ -1,33 +0,0 @@ -CXX = %{cc} -CFLAGS = -Os -LDFLAGS = -WARN_FLAGS = %{warn_flags} - -SERIES = %{version_major}.%{version_minor} - -PYTHON_ROOT = /usr/lib/python%{python_version}/config -PYTHON_INC = -I/usr/include/python%{python_version} -PYTHON_SITE_PACKAGE_DIR = /usr/lib/python%{python_version}/site-packages/ - -PYTHON_FLAGS = -I%{python_dir} -fPIC -ftemplate-depth-255 $(WARN_FLAGS) $(PYTHON_INC) $(CFLAGS) - -BOTAN_PYTHON_MODDIR = %{python_obj_dir} - -PYTHON_OBJS = %{python_objs} - -all: $(BOTAN_PYTHON_MODDIR)/_botan.so - -%{python_build_cmds} - -$(BOTAN_PYTHON_MODDIR)/_botan.so: $(PYTHON_OBJS) - cp %{python_dir}/*.py $(BOTAN_PYTHON_MODDIR) - $(CXX) -shared -Wl,-soname,$@ $(PYTHON_OBJS) -L. -L$(PYTHON_ROOT) $(LDFLAGS) -lbotan-$(SERIES) -lboost_python -o $@ - -clean: - rm -rf $(BOTAN_PYTHON_MODDIR)/* - rm -f $(PYTHON_OBJS) - -install: - mkdir -p $(PYTHON_SITE_PACKAGE_DIR)/botan - cp $(BOTAN_PYTHON_MODDIR)/_botan.so $(BOTAN_PYTHON_MODDIR)/*.py $(PYTHON_SITE_PACKAGE_DIR)/botan - chmod -R u=rwX,go=rX $(PYTHON_SITE_PACKAGE_DIR)/botan diff --git a/src/botan/src/build-data/makefile/unix.in b/src/botan/src/build-data/makefile/unix.in deleted file mode 100644 index 5290beda8..000000000 --- a/src/botan/src/build-data/makefile/unix.in +++ /dev/null @@ -1,108 +0,0 @@ -# Compiler Options -CXX = %{cc} -LIB_OPT = %{lib_opt} -CHECK_OPT = %{check_opt} -MACH_OPT = %{mach_opt} -LANG_FLAGS = %{lang_flags} -WARN_FLAGS = %{warn_flags} -LINK_TO = %{link_to} - -# Version Numbers -VERSION = %{version} -SERIES = %{version_major}.%{version_minor} - -# Installation Settings -DESTDIR = %{prefix} - -BINDIR = $(DESTDIR)/bin -LIBDIR = $(DESTDIR)/%{libdir} -HEADERDIR = $(DESTDIR)/%{includedir}/botan-$(SERIES)/botan -DOCDIR = $(DESTDIR)/%{docdir}/botan-$(VERSION) -PKGCONF_DIR = $(LIBDIR)/pkgconfig - -CONFIG_SCRIPT = %{botan_config} -PKGCONFIG = %{botan_pkgconfig} - -# Aliases for Common Programs -AR = %{ar_command} -COPY = cp -COPY_R = cp -r -CD = @cd -ECHO = @echo -INSTALL_CMD_EXEC = %{install_cmd_exec} -INSTALL_CMD_DATA = %{install_cmd_data} -LN = ln -fs -MKDIR = @mkdir -MKDIR_INSTALL = @umask 022; mkdir -p -m 755 -RANLIB = %{ranlib_command} -RM = @rm -f -RM_R = @rm -rf - -# File Lists -CHECK = %{check_prefix}check - -HEADERS = %{include_files} - -LIBOBJS = %{lib_objs} - -CHECKOBJS = %{check_objs} - -LIB_FLAGS = $(LIB_OPT) $(MACH_OPT) $(LANG_FLAGS) $(WARN_FLAGS) -CHECK_FLAGS = $(CHECK_OPT) $(LANG_FLAGS) $(WARN_FLAGS) - -LIBRARIES = $(STATIC_LIB) - -LIBNAME = %{lib_prefix}libbotan -STATIC_LIB = $(LIBNAME)-$(SERIES).a - -all: $(LIBRARIES) - -# Build Commands -%{lib_build_cmds} - -%{check_build_cmds} - -# Link Commands -$(CHECK): $(LIBRARIES) $(CHECKOBJS) - $(CXX) $(CHECKOBJS) $(STATIC_LIB) $(LINK_TO) -o $(CHECK) - -$(STATIC_LIB): $(LIBOBJS) - $(RM) $(STATIC_LIB) - $(AR) $(STATIC_LIB) $(LIBOBJS) - $(RANLIB) $(STATIC_LIB) - -# Fake Targets -.PHONY = docs clean distclean install static - -static: $(STATIC_LIB) - -docs: -%{build_doc_commands} - -clean: - $(RM_R) %{build_dir}/lib/* %{build_dir}/checks/* - $(RM) $(LIBRARIES) $(SYMLINK) $(CHECK) - -distclean: clean - $(RM_R) %{build_dir} - $(RM) Makefile* $(CONFIG_SCRIPT) $(PKGCONFIG) - $(RM) botan_all.cpp botan_all.h - -install: $(LIBRARIES) docs - $(ECHO) "Installing Botan into $(DESTDIR)... " - $(MKDIR_INSTALL) $(DOCDIR) - $(COPY_R) %{doc_output_dir}/* $(DOCDIR) - - $(MKDIR_INSTALL) $(HEADERDIR) - for i in $(HEADERS); do \ - $(INSTALL_CMD_DATA) $$i $(HEADERDIR); \ - done - - $(MKDIR_INSTALL) $(LIBDIR) - $(INSTALL_CMD_DATA) $(STATIC_LIB) $(LIBDIR) - - $(MKDIR_INSTALL) $(BINDIR) - $(INSTALL_CMD_EXEC) $(CONFIG_SCRIPT) $(BINDIR) - - $(MKDIR_INSTALL) $(PKGCONF_DIR) - $(INSTALL_CMD_DATA) $(PKGCONFIG) $(PKGCONF_DIR) diff --git a/src/botan/src/build-data/makefile/unix_shr.in b/src/botan/src/build-data/makefile/unix_shr.in deleted file mode 100644 index 31060afbb..000000000 --- a/src/botan/src/build-data/makefile/unix_shr.in +++ /dev/null @@ -1,125 +0,0 @@ -# Compiler Options -CXX = %{cc} -LIB_OPT = %{lib_opt} -CHECK_OPT = %{check_opt} -MACH_OPT = %{mach_opt} -LANG_FLAGS = %{lang_flags} -WARN_FLAGS = %{warn_flags} -SO_OBJ_FLAGS = %{shared_flags} -SO_LINK_CMD = %{so_link} -LINK_TO = %{link_to} - -# Version Numbers -VERSION = %{version} -SERIES = %{version_major}.%{version_minor} - -# Installation Settings -DESTDIR = %{prefix} - -BINDIR = $(DESTDIR)/bin -LIBDIR = $(DESTDIR)/%{libdir} -HEADERDIR = $(DESTDIR)/%{includedir}/botan-$(SERIES)/botan -DOCDIR = $(DESTDIR)/%{docdir}/botan-$(VERSION) -PKGCONF_DIR = $(LIBDIR)/pkgconfig - -CONFIG_SCRIPT = %{botan_config} -PKGCONFIG = %{botan_pkgconfig} - -# Aliases for Common Programs -AR = %{ar_command} -COPY = cp -COPY_R = cp -r -CD = @cd -ECHO = @echo -INSTALL_CMD_EXEC = %{install_cmd_exec} -INSTALL_CMD_DATA = %{install_cmd_data} -LN = ln -fs -MKDIR = @mkdir -MKDIR_INSTALL = @umask 022; mkdir -p -m 755 -RANLIB = %{ranlib_command} -RM = @rm -f -RM_R = @rm -rf - -# File Lists -CHECK = %{check_prefix}check - -HEADERS = %{include_files} - -LIBOBJS = %{lib_objs} - -CHECKOBJS = %{check_objs} - -LIB_FLAGS = $(LIB_OPT) $(MACH_OPT) $(LANG_FLAGS) $(WARN_FLAGS) $(SO_OBJ_FLAGS) -CHECK_FLAGS = $(CHECK_OPT) $(LANG_FLAGS) $(WARN_FLAGS) - -LIBRARIES = $(STATIC_LIB) $(SHARED_LIB) - -LIBNAME = %{lib_prefix}libbotan -STATIC_LIB = $(LIBNAME)-$(SERIES).a - -SONAME = $(LIBNAME)-$(SERIES).%{so_suffix}.%{so_abi_rev} -SHARED_LIB = $(SONAME).%{version_patch} - -SYMLINK = $(LIBNAME)-$(SERIES).%{so_suffix} - -all: $(LIBRARIES) - -# Build Commands -%{lib_build_cmds} - -%{check_build_cmds} - -# Link Commands -$(CHECK): $(LIBRARIES) $(CHECKOBJS) - $(CXX) $(LDFLAGS) $(CHECKOBJS) $(SHARED_LIB) $(LINK_TO) -o $(CHECK) - -$(STATIC_LIB): $(LIBOBJS) - $(RM) $(STATIC_LIB) - $(AR) $(STATIC_LIB) $(LIBOBJS) - $(RANLIB) $(STATIC_LIB) - -$(SHARED_LIB): $(LIBOBJS) - $(SO_LINK_CMD) $(LDFLAGS) $(LIBOBJS) -o $(SHARED_LIB) $(LINK_TO) - $(LN) $(SHARED_LIB) $(SONAME) - $(LN) $(SHARED_LIB) $(SYMLINK) - -# Fake Targets -.PHONY = docs clean distclean install static shared - -static: $(STATIC_LIB) - -shared: $(SHARED_LIB) - -docs: -%{build_doc_commands} - -clean: - $(RM_R) %{build_dir}/lib/* %{build_dir}/checks/* - $(RM) $(LIBRARIES) $(SYMLINK) $(SONAME) $(CHECK) - -distclean: clean - $(RM_R) %{build_dir} - $(RM) Makefile* $(CONFIG_SCRIPT) $(PKGCONFIG) - $(RM) botan_all.cpp botan_all.h - -install: $(LIBRARIES) docs - $(ECHO) "Installing Botan into $(DESTDIR)... " - $(MKDIR_INSTALL) $(DOCDIR) - $(COPY_R) %{doc_output_dir}/* $(DOCDIR) - - $(MKDIR_INSTALL) $(HEADERDIR) - for i in $(HEADERS); do \ - $(INSTALL_CMD_DATA) $$i $(HEADERDIR); \ - done - - $(MKDIR_INSTALL) $(LIBDIR) - $(INSTALL_CMD_DATA) $(STATIC_LIB) $(LIBDIR) - $(INSTALL_CMD_EXEC) $(SHARED_LIB) $(LIBDIR) - $(CD) $(LIBDIR); $(LN) $(SHARED_LIB) $(SYMLINK) - $(CD) $(LIBDIR); $(LN) $(SHARED_LIB) $(SONAME) - - $(MKDIR_INSTALL) $(BINDIR) - $(INSTALL_CMD_EXEC) $(CONFIG_SCRIPT) $(BINDIR) - - $(MKDIR_INSTALL) $(PKGCONF_DIR) - $(INSTALL_CMD_DATA) $(PKGCONFIG) $(PKGCONF_DIR) diff --git a/src/botan/src/build-data/os/aix.txt b/src/botan/src/build-data/os/aix.txt deleted file mode 100644 index 369b720c4..000000000 --- a/src/botan/src/build-data/os/aix.txt +++ /dev/null @@ -1,5 +0,0 @@ -os_type unix - - -gettimeofday - diff --git a/src/botan/src/build-data/os/cygwin.txt b/src/botan/src/build-data/os/cygwin.txt deleted file mode 100644 index 9ec86736d..000000000 --- a/src/botan/src/build-data/os/cygwin.txt +++ /dev/null @@ -1,13 +0,0 @@ -os_type unix - -# Cygwin supports shared libs fine, but there are problems with making a Botan -# shared library when libraries it depends on are static-only (such as libz). -# So until I can figure out a work-around, it's disabled. -build_shared no - -install_root c:\Botan -doc_dir docs - - -gettimeofday - diff --git a/src/botan/src/build-data/os/darwin.txt b/src/botan/src/build-data/os/darwin.txt deleted file mode 100644 index b63abf32c..000000000 --- a/src/botan/src/build-data/os/darwin.txt +++ /dev/null @@ -1,17 +0,0 @@ -os_type unix - -so_suffix dylib - -# It doesn't have the 's' option; you need to use needs ranlib -ar_command "ar cr" -ar_needs_ranlib yes - -doc_dir doc - - -gettimeofday - - - -macosx - diff --git a/src/botan/src/build-data/os/dragonfly.txt b/src/botan/src/build-data/os/dragonfly.txt deleted file mode 100644 index ff8f41d2a..000000000 --- a/src/botan/src/build-data/os/dragonfly.txt +++ /dev/null @@ -1,7 +0,0 @@ -os_type unix - - -clock_gettime -gettimeofday -posix_mlock - diff --git a/src/botan/src/build-data/os/freebsd.txt b/src/botan/src/build-data/os/freebsd.txt deleted file mode 100644 index 14e6c63e2..000000000 --- a/src/botan/src/build-data/os/freebsd.txt +++ /dev/null @@ -1,6 +0,0 @@ -os_type unix - - -posix_mlock -gettimeofday - diff --git a/src/botan/src/build-data/os/haiku.txt b/src/botan/src/build-data/os/haiku.txt deleted file mode 100644 index 8e35e76eb..000000000 --- a/src/botan/src/build-data/os/haiku.txt +++ /dev/null @@ -1,15 +0,0 @@ -os_type unix - -install_root /boot -header_dir develop/headers -lib_dir system/lib -doc_dir system/documentation - - -gettimeofday -gmtime_r - - - -beos - diff --git a/src/botan/src/build-data/os/hpux.txt b/src/botan/src/build-data/os/hpux.txt deleted file mode 100644 index 19c230d77..000000000 --- a/src/botan/src/build-data/os/hpux.txt +++ /dev/null @@ -1,11 +0,0 @@ -os_type unix - -so_suffix sl - - -gettimeofday - - - -hp-ux - diff --git a/src/botan/src/build-data/os/hurd.txt b/src/botan/src/build-data/os/hurd.txt deleted file mode 100644 index e3906f63a..000000000 --- a/src/botan/src/build-data/os/hurd.txt +++ /dev/null @@ -1,9 +0,0 @@ -os_type unix - - -posix_mlock - - - -gnu - diff --git a/src/botan/src/build-data/os/irix.txt b/src/botan/src/build-data/os/irix.txt deleted file mode 100644 index 369b720c4..000000000 --- a/src/botan/src/build-data/os/irix.txt +++ /dev/null @@ -1,5 +0,0 @@ -os_type unix - - -gettimeofday - diff --git a/src/botan/src/build-data/os/linux.txt b/src/botan/src/build-data/os/linux.txt deleted file mode 100644 index 4c0965764..000000000 --- a/src/botan/src/build-data/os/linux.txt +++ /dev/null @@ -1,9 +0,0 @@ -os_type unix - - -clock_gettime -gettimeofday -posix_mlock -gmtime_r -dlopen - diff --git a/src/botan/src/build-data/os/mingw.txt b/src/botan/src/build-data/os/mingw.txt deleted file mode 100644 index 1268298cb..000000000 --- a/src/botan/src/build-data/os/mingw.txt +++ /dev/null @@ -1,26 +0,0 @@ -os_type windows - -obj_suffix o -so_suffix dll -static_suffix a - -build_shared no - -ar_command "ar crs" -ar_needs_ranlib yes - -install_root /mingw -header_dir include -lib_dir lib -doc_dir share/doc - - -msys -mingw32 - - - -loadlibrary -win32_virtual_lock -win32_get_systemtime - diff --git a/src/botan/src/build-data/os/nacl.txt b/src/botan/src/build-data/os/nacl.txt deleted file mode 100644 index 3df798ed8..000000000 --- a/src/botan/src/build-data/os/nacl.txt +++ /dev/null @@ -1,4 +0,0 @@ - - -gettimeofday - diff --git a/src/botan/src/build-data/os/netbsd.txt b/src/botan/src/build-data/os/netbsd.txt deleted file mode 100644 index 369b720c4..000000000 --- a/src/botan/src/build-data/os/netbsd.txt +++ /dev/null @@ -1,5 +0,0 @@ -os_type unix - - -gettimeofday - diff --git a/src/botan/src/build-data/os/openbsd.txt b/src/botan/src/build-data/os/openbsd.txt deleted file mode 100644 index 369b720c4..000000000 --- a/src/botan/src/build-data/os/openbsd.txt +++ /dev/null @@ -1,5 +0,0 @@ -os_type unix - - -gettimeofday - diff --git a/src/botan/src/build-data/os/qnx.txt b/src/botan/src/build-data/os/qnx.txt deleted file mode 100644 index 4c0965764..000000000 --- a/src/botan/src/build-data/os/qnx.txt +++ /dev/null @@ -1,9 +0,0 @@ -os_type unix - - -clock_gettime -gettimeofday -posix_mlock -gmtime_r -dlopen - diff --git a/src/botan/src/build-data/os/solaris.txt b/src/botan/src/build-data/os/solaris.txt deleted file mode 100644 index 0ed785036..000000000 --- a/src/botan/src/build-data/os/solaris.txt +++ /dev/null @@ -1,13 +0,0 @@ -os_type unix - -install_cmd_data '/usr/ucb/install -m 644' -install_cmd_exec '/usr/ucb/install -m 755' - - -posix_mlock -gettimeofday - - - -sunos - diff --git a/src/botan/src/build-data/os/tru64.txt b/src/botan/src/build-data/os/tru64.txt deleted file mode 100644 index a442743bc..000000000 --- a/src/botan/src/build-data/os/tru64.txt +++ /dev/null @@ -1,9 +0,0 @@ -os_type unix - - -gettimeofday - - - -osf1 - diff --git a/src/botan/src/build-data/os/windows.txt b/src/botan/src/build-data/os/windows.txt deleted file mode 100644 index 2f344e33c..000000000 --- a/src/botan/src/build-data/os/windows.txt +++ /dev/null @@ -1,23 +0,0 @@ -os_type windows - -obj_suffix obj -so_suffix dll -static_suffix lib - -install_root c:\\Botan -doc_dir docs - -install_cmd_data "copy" -install_cmd_exec "copy" - - -win32_virtual_lock -win32_get_systemtime -gmtime_s -loadlibrary - - - -win32 -MSWin32 - diff --git a/src/botan/src/build-data/scripts/dist.py b/src/botan/src/build-data/scripts/dist.py deleted file mode 100755 index e54d40869..000000000 --- a/src/botan/src/build-data/scripts/dist.py +++ /dev/null @@ -1,229 +0,0 @@ -#!/usr/bin/python - -""" -Release script for botan (http://botan.randombit.net/) - -(C) 2011, 2012 Jack Lloyd - -Distributed under the terms of the Botan license -""" - -import errno -import logging -import optparse -import os -import shlex -import StringIO -import shutil -import subprocess -import sys -import tarfile - -def check_subprocess_results(subproc, name): - (stdout, stderr) = subproc.communicate() - - stdout = stdout.strip() - stderr = stderr.strip() - - if subproc.returncode != 0: - if stdout != '': - logging.error(stdout) - if stderr != '': - logging.error(stderr) - raise Exception('Running %s failed' % (name)) - else: - if stderr != '': - logging.debug(stderr) - - return stdout - -def run_monotone(db, args): - mtn = subprocess.Popen(['mtn', '--db', db] + args, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - - return check_subprocess_results(mtn, 'mtn') - -def get_certs(db, rev_id): - tokens = shlex.split(run_monotone(db, ['automate', 'certs', rev_id])) - - def usable_cert(cert): - if 'signature' not in cert or cert['signature'] != 'ok': - return False - if 'trust' not in cert or cert['trust'] != 'trusted': - return False - if 'name' not in cert or 'value' not in cert: - return False - return True - - def cert_builder(tokens): - pairs = zip(tokens[::2], tokens[1::2]) - current_cert = {} - for pair in pairs: - if pair[0] == 'key': - if usable_cert(current_cert): - name = current_cert['name'] - value = current_cert['value'] - current_cert = {} - - logging.debug('Cert %s "%s" for rev %s' % (name, value, rev_id)) - yield (name, value) - - current_cert[pair[0]] = pair[1] - - certs = dict(cert_builder(tokens)) - return certs - -def datestamp(db, rev_id): - certs = get_certs(db, rev_id) - - if 'date' in certs: - return int(certs['date'].replace('-','')[0:8]) - - logging.info('Could not retreive date for %s' % (rev_id)) - return 0 - -def gpg_sign(keyid, files): - for filename in files: - logging.info('Signing %s using PGP id %s' % (filename, keyid)) - - gpg = subprocess.Popen(['gpg', '--armor', '--detach-sign', - '--local-user', keyid, filename], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - - check_subprocess_results(gpg, 'gpg') - -def parse_args(args): - parser = optparse.OptionParser() - parser.add_option('--verbose', action='store_true', - default=False, help='Extra debug output') - - parser.add_option('--output-dir', metavar='DIR', - default='.', - help='Where to place output (default %default)') - - parser.add_option('--mtn-db', metavar='DB', - default=os.getenv('BOTAN_MTN_DB', ''), - help='Set monotone db (default \'%default\')') - - parser.add_option('--pgp-key-id', metavar='KEYID', - default='EFBADFBC', - help='PGP signing key (default %default)') - - return parser.parse_args(args) - -def remove_file_if_exists(fspath): - try: - os.unlink(fspath) - except OSError as e: - if e.errno != errno.ENOENT: - raise - -def main(args = None): - if args is None: - args = sys.argv[1:] - - (options, args) = parse_args(args) - - def log_level(): - if options.verbose: - return logging.DEBUG - return logging.INFO - - logging.basicConfig(stream = sys.stdout, - format = '%(levelname) 7s: %(message)s', - level = log_level()) - - if options.mtn_db == '': - logging.error('No monotone db set (use --mtn-db)') - return 1 - - if not os.access(options.mtn_db, os.R_OK): - logging.error('Monotone db %s not found' % (options.mtn_db)) - return 1 - - if len(args) != 1: - logging.error('Usage: %s version' % (sys.argv[0])) - return 1 - - version = args[0] - - rev_id = run_monotone(options.mtn_db, - ['automate', 'select', 't:' + version]) - - if rev_id == '': - logging.error('No revision for %s found' % (version)) - return 2 - - output_basename = os.path.join(options.output_dir, 'Botan-' + version) - - output_tgz = output_basename + '.tgz' - output_tbz = output_basename + '.tbz' - - logging.info('Found revision id %s' % (rev_id)) - - if os.access(output_basename, os.X_OK): - shutil.rmtree(output_basename) - - run_monotone(options.mtn_db, - ['checkout', '-r', rev_id, output_basename]) - - shutil.rmtree(os.path.join(output_basename, '_MTN')) - remove_file_if_exists(os.path.join(output_basename, '.mtn-ignore')) - - version_file = os.path.join(output_basename, 'botan_version.py') - - if os.access(version_file, os.R_OK): - # rewrite botan_version.py - - contents = open(version_file).readlines() - - def content_rewriter(): - for line in contents: - if line == 'release_vc_rev = None\n': - yield 'release_vc_rev = \'mtn:%s\'\n' % (rev_id) - elif line == 'release_datestamp = 0\n': - yield 'release_datestamp = %d\n' % (datestamp(options.mtn_db, rev_id)) - else: - yield line - - open(version_file, 'w').write(''.join(list(content_rewriter()))) - else: - logging.error('Cannot find %s' % (version_file)) - return 2 - - try: - os.makedirs(options.output_dir) - except OSError as e: - if e.errno != errno.EEXIST: - logging.error('Creating dir %s failed %s' % (options.output_dir, e)) - return 2 - - remove_file_if_exists(output_tgz) - remove_file_if_exists(output_tgz + '.asc') - archive = tarfile.open(output_tgz, 'w:gz') - archive.add(output_basename) - archive.close() - - remove_file_if_exists(output_tbz) - remove_file_if_exists(output_tbz + '.asc') - archive = tarfile.open(output_tbz, 'w:bz2') - archive.add(output_basename) - archive.close() - - if options.pgp_key_id != '': - gpg_sign(options.pgp_key_id, [output_tbz, output_tgz]) - - shutil.rmtree(output_basename) - - return 0 - -if __name__ == '__main__': - try: - sys.exit(main()) - except Exception as e: - logging.error(e) - import traceback - logging.info(traceback.format_exc()) - sys.exit(1) diff --git a/src/botan/src/codec/base64/base64.cpp b/src/botan/src/codec/base64/base64.cpp deleted file mode 100644 index 6a53a7a9a..000000000 --- a/src/botan/src/codec/base64/base64.cpp +++ /dev/null @@ -1,251 +0,0 @@ -/* -* Base64 Encoding and Decoding -* (C) 2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include - -namespace Botan { - -namespace { - -static const byte BIN_TO_BASE64[64] = { - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', - 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', - 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', - 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' -}; - -void do_base64_encode(char out[4], const byte in[3]) - { - out[0] = BIN_TO_BASE64[((in[0] & 0xFC) >> 2)]; - out[1] = BIN_TO_BASE64[((in[0] & 0x03) << 4) | (in[1] >> 4)]; - out[2] = BIN_TO_BASE64[((in[1] & 0x0F) << 2) | (in[2] >> 6)]; - out[3] = BIN_TO_BASE64[((in[2] & 0x3F) )]; - } - -} - -size_t base64_encode(char out[], - const byte in[], - size_t input_length, - size_t& input_consumed, - bool final_inputs) - { - input_consumed = 0; - - size_t input_remaining = input_length; - size_t output_produced = 0; - - while(input_remaining >= 3) - { - do_base64_encode(out + output_produced, in + input_consumed); - - input_consumed += 3; - output_produced += 4; - input_remaining -= 3; - } - - if(final_inputs && input_remaining) - { - byte remainder[3] = { 0 }; - for(size_t i = 0; i != input_remaining; ++i) - remainder[i] = in[input_consumed + i]; - - do_base64_encode(out + output_produced, remainder); - - size_t empty_bits = 8 * (3 - input_remaining); - size_t index = output_produced + 4 - 1; - while(empty_bits >= 8) - { - out[index--] = '='; - empty_bits -= 6; - } - - input_consumed += input_remaining; - output_produced += 4; - } - - return output_produced; - } - -std::string base64_encode(const byte input[], - size_t input_length) - { - std::string output((round_up(input_length, 3) / 3) * 4, 0); - - size_t consumed = 0; - size_t produced = base64_encode(&output[0], - input, input_length, - consumed, true); - - BOTAN_ASSERT_EQUAL(consumed, input_length, "Did not consume all input"); - BOTAN_ASSERT_EQUAL(produced, output.size(), "Did not produce right amount"); - - return output; - } - -std::string base64_encode(const MemoryRegion& input) - { - return base64_encode(&input[0], input.size()); - } - -size_t base64_decode(byte output[], - const char input[], - size_t input_length, - size_t& input_consumed, - bool final_inputs, - bool ignore_ws) - { - /* - * Base64 Decoder Lookup Table - * Warning: assumes ASCII encodings - */ - static const byte BASE64_TO_BIN[256] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, - 0x80, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x3E, 0xFF, 0xFF, 0xFF, 0x3F, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0xFF, 0xFF, - 0xFF, 0x81, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0x02, 0x03, 0x04, - 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, - 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, - 0x19, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1A, 0x1B, 0x1C, - 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, - 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, - 0x31, 0x32, 0x33, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; - - byte* out_ptr = output; - byte decode_buf[4]; - size_t decode_buf_pos = 0; - size_t final_truncate = 0; - - clear_mem(output, input_length * 3 / 4); - - for(size_t i = 0; i != input_length; ++i) - { - const byte bin = BASE64_TO_BIN[static_cast(input[i])]; - - if(bin <= 0x3F) - { - decode_buf[decode_buf_pos] = bin; - decode_buf_pos += 1; - } - else if(!(bin == 0x81 || (bin == 0x80 && ignore_ws))) - { - std::string bad_char(1, input[i]); - if(bad_char == "\t") - bad_char = "\\t"; - else if(bad_char == "\n") - bad_char = "\\n"; - else if(bad_char == "\r") - bad_char = "\\r"; - - throw std::invalid_argument( - std::string("base64_decode: invalid base64 character '") + - bad_char + "'"); - } - - /* - * If we're at the end of the input, pad with 0s and truncate - */ - if(final_inputs && (i == input_length - 1)) - { - if(decode_buf_pos) - { - for(size_t i = decode_buf_pos; i != 4; ++i) - decode_buf[i] = 0; - final_truncate = (4 - decode_buf_pos); - decode_buf_pos = 4; - } - } - - if(decode_buf_pos == 4) - { - out_ptr[0] = (decode_buf[0] << 2) | (decode_buf[1] >> 4); - out_ptr[1] = (decode_buf[1] << 4) | (decode_buf[2] >> 2); - out_ptr[2] = (decode_buf[2] << 6) | decode_buf[3]; - - out_ptr += 3; - decode_buf_pos = 0; - input_consumed = i+1; - } - } - - while(input_consumed < input_length && - BASE64_TO_BIN[static_cast(input[input_consumed])] == 0x80) - { - ++input_consumed; - } - - size_t written = (out_ptr - output) - final_truncate; - - return written; - } - -size_t base64_decode(byte output[], - const char input[], - size_t input_length, - bool ignore_ws) - { - size_t consumed = 0; - size_t written = base64_decode(output, input, input_length, - consumed, true, ignore_ws); - - if(consumed != input_length) - throw std::invalid_argument("base64_decode: input did not have full bytes"); - - return written; - } - -size_t base64_decode(byte output[], - const std::string& input, - bool ignore_ws) - { - return base64_decode(output, &input[0], input.length(), ignore_ws); - } - -SecureVector base64_decode(const char input[], - size_t input_length, - bool ignore_ws) - { - SecureVector bin((round_up(input_length, 4) * 3) / 4); - - size_t written = base64_decode(&bin[0], - input, - input_length, - ignore_ws); - - bin.resize(written); - return bin; - } - -SecureVector base64_decode(const std::string& input, - bool ignore_ws) - { - return base64_decode(&input[0], input.size(), ignore_ws); - } - - -} diff --git a/src/botan/src/codec/base64/base64.h b/src/botan/src/codec/base64/base64.h deleted file mode 100644 index 23a2558bd..000000000 --- a/src/botan/src/codec/base64/base64.h +++ /dev/null @@ -1,123 +0,0 @@ -/* -* Base64 Encoding and Decoding -* (C) 2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_BASE64_CODEC_H__ -#define BOTAN_BASE64_CODEC_H__ - -#include -#include - -namespace Botan { - -/** -* Perform base64 encoding -* @param output an array of at least input_length*4/3 bytes -* @param input is some binary data -* @param input_length length of input in bytes -* @param input_consumed is an output parameter which says how many -* bytes of input were actually consumed. If less than -* input_length, then the range input[consumed:length] -* should be passed in later along with more input. -* @param final_inputs true iff this is the last input, in which case - padding chars will be applied if needed -* @return number of bytes written to output -*/ -size_t BOTAN_DLL base64_encode(char output[], - const byte input[], - size_t input_length, - size_t& input_consumed, - bool final_inputs); - -/** -* Perform base64 encoding -* @param input some input -* @param input_length length of input in bytes -* @return base64adecimal representation of input -*/ -std::string BOTAN_DLL base64_encode(const byte input[], - size_t input_length); - -/** -* Perform base64 encoding -* @param input some input -* @return base64adecimal representation of input -*/ -std::string BOTAN_DLL base64_encode(const MemoryRegion& input); - -/** -* Perform base64 decoding -* @param output an array of at least input_length*3/4 bytes -* @param input some base64 input -* @param input_length length of input in bytes -* @param input_consumed is an output parameter which says how many -* bytes of input were actually consumed. If less than -* input_length, then the range input[consumed:length] -* should be passed in later along with more input. -* @param final_inputs true iff this is the last input, in which case - padding is allowed -* @param ignore_ws ignore whitespace on input; if false, throw an - exception if whitespace is encountered -* @return number of bytes written to output -*/ -size_t BOTAN_DLL base64_decode(byte output[], - const char input[], - size_t input_length, - size_t& input_consumed, - bool final_inputs, - bool ignore_ws = true); - -/** -* Perform base64 decoding -* @param output an array of at least input_length*3/4 bytes -* @param input some base64 input -* @param input_length length of input in bytes -* @param ignore_ws ignore whitespace on input; if false, throw an - exception if whitespace is encountered -* @return number of bytes written to output -*/ -size_t BOTAN_DLL base64_decode(byte output[], - const char input[], - size_t input_length, - bool ignore_ws = true); - -/** -* Perform base64 decoding -* @param output an array of at least input_length/3*4 bytes -* @param input some base64 input -* @param ignore_ws ignore whitespace on input; if false, throw an - exception if whitespace is encountered -* @return number of bytes written to output -*/ -size_t BOTAN_DLL base64_decode(byte output[], - const std::string& input, - bool ignore_ws = true); - -/** -* Perform base64 decoding -* @param input some base64 input -* @param input_length the length of input in bytes -* @param ignore_ws ignore whitespace on input; if false, throw an - exception if whitespace is encountered -* @return decoded base64 output -*/ -SecureVector BOTAN_DLL base64_decode(const char input[], - size_t input_length, - bool ignore_ws = true); - -/** -* Perform base64 decoding -* @param input some base64 input -* @param ignore_ws ignore whitespace on input; if false, throw an - exception if whitespace is encountered -* @return decoded base64 output -*/ -SecureVector BOTAN_DLL base64_decode(const std::string& input, - bool ignore_ws = true); - -} - -#endif diff --git a/src/botan/src/codec/base64/info.txt b/src/botan/src/codec/base64/info.txt deleted file mode 100644 index aed5db3b6..000000000 --- a/src/botan/src/codec/base64/info.txt +++ /dev/null @@ -1 +0,0 @@ -define BASE64_CODEC diff --git a/src/botan/src/codec/hex/hex.cpp b/src/botan/src/codec/hex/hex.cpp deleted file mode 100644 index 41ba1298d..000000000 --- a/src/botan/src/codec/hex/hex.cpp +++ /dev/null @@ -1,189 +0,0 @@ -/* -* Hex Encoding and Decoding -* (C) 2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -void hex_encode(char output[], - const byte input[], - size_t input_length, - bool uppercase) - { - static const byte BIN_TO_HEX_UPPER[16] = { - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - 'A', 'B', 'C', 'D', 'E', 'F' }; - - static const byte BIN_TO_HEX_LOWER[16] = { - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - 'a', 'b', 'c', 'd', 'e', 'f' }; - - const byte* tbl = uppercase ? BIN_TO_HEX_UPPER : BIN_TO_HEX_LOWER; - - for(size_t i = 0; i != input_length; ++i) - { - byte x = input[i]; - output[2*i ] = tbl[(x >> 4) & 0x0F]; - output[2*i+1] = tbl[(x ) & 0x0F]; - } - } - -std::string hex_encode(const MemoryRegion& input, - bool uppercase) - { - return hex_encode(&input[0], input.size(), uppercase); - } - -std::string hex_encode(const byte input[], - size_t input_length, - bool uppercase) - { - std::string output(2 * input_length, 0); - - if(input_length) - hex_encode(&output[0], input, input_length, uppercase); - - return output; - } - -size_t hex_decode(byte output[], - const char input[], - size_t input_length, - size_t& input_consumed, - bool ignore_ws) - { - /* - * Mapping of hex characters to either their binary equivalent - * or to an error code. - * If valid hex (0-9 A-F a-f), the value. - * If whitespace, then 0x80 - * Otherwise 0xFF - * Warning: this table assumes ASCII character encodings - */ - - static const byte HEX_TO_BIN[256] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, - 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x01, - 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, - 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0x0B, 0x0C, - 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; - - byte* out_ptr = output; - bool top_nibble = true; - - clear_mem(output, input_length / 2); - - for(size_t i = 0; i != input_length; ++i) - { - const byte bin = HEX_TO_BIN[static_cast(input[i])]; - - if(bin >= 0x10) - { - if(bin == 0x80 && ignore_ws) - continue; - - std::string bad_char(1, input[i]); - if(bad_char == "\t") - bad_char = "\\t"; - else if(bad_char == "\n") - bad_char = "\\n"; - - throw std::invalid_argument( - std::string("hex_decode: invalid hex character '") + - bad_char + "'"); - } - - *out_ptr |= bin << (top_nibble*4); - - top_nibble = !top_nibble; - if(top_nibble) - ++out_ptr; - } - - input_consumed = input_length; - size_t written = (out_ptr - output); - - /* - * We only got half of a byte at the end; zap the half-written - * output and mark it as unread - */ - if(!top_nibble) - { - *out_ptr = 0; - input_consumed -= 1; - } - - return written; - } - -size_t hex_decode(byte output[], - const char input[], - size_t input_length, - bool ignore_ws) - { - size_t consumed = 0; - size_t written = hex_decode(output, input, input_length, - consumed, ignore_ws); - - if(consumed != input_length) - throw std::invalid_argument("hex_decode: input did not have full bytes"); - - return written; - } - -size_t hex_decode(byte output[], - const std::string& input, - bool ignore_ws) - { - return hex_decode(output, &input[0], input.length(), ignore_ws); - } - -SecureVector hex_decode(const char input[], - size_t input_length, - bool ignore_ws) - { - SecureVector bin(1 + input_length / 2); - - size_t written = hex_decode(&bin[0], - input, - input_length, - ignore_ws); - - bin.resize(written); - return bin; - } - -SecureVector hex_decode(const std::string& input, - bool ignore_ws) - { - return hex_decode(&input[0], input.size(), ignore_ws); - } - -} diff --git a/src/botan/src/codec/hex/hex.h b/src/botan/src/codec/hex/hex.h deleted file mode 100644 index 40930e808..000000000 --- a/src/botan/src/codec/hex/hex.h +++ /dev/null @@ -1,117 +0,0 @@ -/* -* Hex Encoding and Decoding -* (C) 2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_HEX_CODEC_H__ -#define BOTAN_HEX_CODEC_H__ - -#include -#include - -namespace Botan { - -/** -* Perform hex encoding -* @param output an array of at least input_length*2 bytes -* @param input is some binary data -* @param input_length length of input in bytes -* @param uppercase should output be upper or lower case? -*/ -void BOTAN_DLL hex_encode(char output[], - const byte input[], - size_t input_length, - bool uppercase = true); - -/** -* Perform hex encoding -* @param input some input -* @param input_length length of input in bytes -* @param uppercase should output be upper or lower case? -* @return hexadecimal representation of input -*/ -std::string BOTAN_DLL hex_encode(const byte input[], - size_t input_length, - bool uppercase = true); - -/** -* Perform hex encoding -* @param input some input -* @param uppercase should output be upper or lower case? -* @return hexadecimal representation of input -*/ -std::string BOTAN_DLL hex_encode(const MemoryRegion& input, - bool uppercase = true); - -/** -* Perform hex decoding -* @param output an array of at least input_length/2 bytes -* @param input some hex input -* @param input_length length of input in bytes -* @param input_consumed is an output parameter which says how many -* bytes of input were actually consumed. If less than -* input_length, then the range input[consumed:length] -* should be passed in later along with more input. -* @param ignore_ws ignore whitespace on input; if false, throw an - exception if whitespace is encountered -* @return number of bytes written to output -*/ -size_t BOTAN_DLL hex_decode(byte output[], - const char input[], - size_t input_length, - size_t& input_consumed, - bool ignore_ws = true); - -/** -* Perform hex decoding -* @param output an array of at least input_length/2 bytes -* @param input some hex input -* @param input_length length of input in bytes -* @param ignore_ws ignore whitespace on input; if false, throw an - exception if whitespace is encountered -* @return number of bytes written to output -*/ -size_t BOTAN_DLL hex_decode(byte output[], - const char input[], - size_t input_length, - bool ignore_ws = true); - -/** -* Perform hex decoding -* @param output an array of at least input_length/2 bytes -* @param input some hex input -* @param ignore_ws ignore whitespace on input; if false, throw an - exception if whitespace is encountered -* @return number of bytes written to output -*/ -size_t BOTAN_DLL hex_decode(byte output[], - const std::string& input, - bool ignore_ws = true); - -/** -* Perform hex decoding -* @param input some hex input -* @param input_length the length of input in bytes -* @param ignore_ws ignore whitespace on input; if false, throw an - exception if whitespace is encountered -* @return decoded hex output -*/ -SecureVector BOTAN_DLL hex_decode(const char input[], - size_t input_length, - bool ignore_ws = true); - -/** -* Perform hex decoding -* @param input some hex input -* @param ignore_ws ignore whitespace on input; if false, throw an - exception if whitespace is encountered -* @return decoded hex output -*/ -SecureVector BOTAN_DLL hex_decode(const std::string& input, - bool ignore_ws = true); - -} - -#endif diff --git a/src/botan/src/codec/hex/info.txt b/src/botan/src/codec/hex/info.txt deleted file mode 100644 index c9eb8fb73..000000000 --- a/src/botan/src/codec/hex/info.txt +++ /dev/null @@ -1 +0,0 @@ -define HEX_CODEC diff --git a/src/botan/src/codec/pem/info.txt b/src/botan/src/codec/pem/info.txt deleted file mode 100644 index 6f9635d10..000000000 --- a/src/botan/src/codec/pem/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -define PEM_CODEC - - -base64 -codec_filt - diff --git a/src/botan/src/codec/pem/pem.cpp b/src/botan/src/codec/pem/pem.cpp deleted file mode 100644 index 005ec7310..000000000 --- a/src/botan/src/codec/pem/pem.cpp +++ /dev/null @@ -1,143 +0,0 @@ -/* -* PEM Encoding/Decoding -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -namespace PEM_Code { - -/* -* PEM encode BER/DER-encoded objects -*/ -std::string encode(const byte der[], size_t length, const std::string& label, - size_t width) - { - const std::string PEM_HEADER = "-----BEGIN " + label + "-----\n"; - const std::string PEM_TRAILER = "-----END " + label + "-----\n"; - - Pipe pipe(new Base64_Encoder(true, width)); - pipe.process_msg(der, length); - return (PEM_HEADER + pipe.read_all_as_string() + PEM_TRAILER); - } - -/* -* PEM encode BER/DER-encoded objects -*/ -std::string encode(const MemoryRegion& data, const std::string& label, - size_t width) - { - return encode(&data[0], data.size(), label, width); - } - -/* -* Decode PEM down to raw BER/DER -*/ -SecureVector decode_check_label(DataSource& source, - const std::string& label_want) - { - std::string label_got; - SecureVector ber = decode(source, label_got); - if(label_got != label_want) - throw Decoding_Error("PEM: Label mismatch, wanted " + label_want + - ", got " + label_got); - return ber; - } - -/* -* Decode PEM down to raw BER/DER -*/ -SecureVector decode(DataSource& source, std::string& label) - { - const size_t RANDOM_CHAR_LIMIT = 8; - - const std::string PEM_HEADER1 = "-----BEGIN "; - const std::string PEM_HEADER2 = "-----"; - size_t position = 0; - - while(position != PEM_HEADER1.length()) - { - byte b; - if(!source.read_byte(b)) - throw Decoding_Error("PEM: No PEM header found"); - if(b == PEM_HEADER1[position]) - ++position; - else if(position >= RANDOM_CHAR_LIMIT) - throw Decoding_Error("PEM: Malformed PEM header"); - else - position = 0; - } - position = 0; - while(position != PEM_HEADER2.length()) - { - byte b; - if(!source.read_byte(b)) - throw Decoding_Error("PEM: No PEM header found"); - if(b == PEM_HEADER2[position]) - ++position; - else if(position) - throw Decoding_Error("PEM: Malformed PEM header"); - - if(position == 0) - label += static_cast(b); - } - - Pipe base64(new Base64_Decoder); - base64.start_msg(); - - const std::string PEM_TRAILER = "-----END " + label + "-----"; - position = 0; - while(position != PEM_TRAILER.length()) - { - byte b; - if(!source.read_byte(b)) - throw Decoding_Error("PEM: No PEM trailer found"); - if(b == PEM_TRAILER[position]) - ++position; - else if(position) - throw Decoding_Error("PEM: Malformed PEM trailer"); - - if(position == 0) - base64.write(b); - } - base64.end_msg(); - return base64.read_all(); - } - -/* -* Search for a PEM signature -*/ -bool matches(DataSource& source, const std::string& extra, - size_t search_range) - { - const std::string PEM_HEADER = "-----BEGIN " + extra; - - SecureVector search_buf(search_range); - size_t got = source.peek(&search_buf[0], search_buf.size(), 0); - - if(got < PEM_HEADER.length()) - return false; - - size_t index = 0; - - for(size_t j = 0; j != got; ++j) - { - if(search_buf[j] == PEM_HEADER[index]) - ++index; - else - index = 0; - if(index == PEM_HEADER.size()) - return true; - } - return false; - } - -} - -} diff --git a/src/botan/src/codec/pem/pem.h b/src/botan/src/codec/pem/pem.h deleted file mode 100644 index d15bfe978..000000000 --- a/src/botan/src/codec/pem/pem.h +++ /dev/null @@ -1,35 +0,0 @@ -/* -* PEM Encoding/Decoding -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_PEM_H__ -#define BOTAN_PEM_H__ - -#include - -namespace Botan { - -namespace PEM_Code { - -/* -* PEM Encoding/Decoding -*/ -BOTAN_DLL std::string encode(const byte[], size_t, - const std::string&, size_t = 64); -BOTAN_DLL std::string encode(const MemoryRegion&, - const std::string&, size_t = 64); - -BOTAN_DLL SecureVector decode(DataSource&, std::string&); -BOTAN_DLL SecureVector decode_check_label(DataSource&, - const std::string&); -BOTAN_DLL bool matches(DataSource&, const std::string& = "", - size_t search_range = 4096); - -} - -} - -#endif diff --git a/src/botan/src/engine/asm_engine/asm_engine.cpp b/src/botan/src/engine/asm_engine/asm_engine.cpp deleted file mode 100644 index 6d475136f..000000000 --- a/src/botan/src/engine/asm_engine/asm_engine.cpp +++ /dev/null @@ -1,72 +0,0 @@ -/* -* Assembly Implementation Engine -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include - -#if defined(BOTAN_HAS_SERPENT_X86_32) - #include -#endif - -#if defined(BOTAN_HAS_MD4_X86_32) - #include -#endif - -#if defined(BOTAN_HAS_MD5_X86_32) - #include -#endif - -#if defined(BOTAN_HAS_SHA1_X86_64) - #include -#endif - -#if defined(BOTAN_HAS_SHA1_X86_32) - #include -#endif - -namespace Botan { - -BlockCipher* -Assembler_Engine::find_block_cipher(const SCAN_Name& request, - Algorithm_Factory&) const - { - if(request.algo_name() == "Serpent") - { -#if defined(BOTAN_HAS_SERPENT_X86_32) - return new Serpent_X86_32; -#endif - } - - return 0; - } - -HashFunction* -Assembler_Engine::find_hash(const SCAN_Name& request, - Algorithm_Factory&) const - { -#if defined(BOTAN_HAS_MD4_X86_32) - if(request.algo_name() == "MD4") - return new MD4_X86_32; -#endif - -#if defined(BOTAN_HAS_MD5_X86_32) - if(request.algo_name() == "MD5") - return new MD5_X86_32; -#endif - - if(request.algo_name() == "SHA-160") - { -#if defined(BOTAN_HAS_SHA1_X86_64) - return new SHA_160_X86_64; -#elif defined(BOTAN_HAS_SHA1_X86_32) - return new SHA_160_X86_32; -#endif - } - - return 0; - } - -} diff --git a/src/botan/src/engine/asm_engine/asm_engine.h b/src/botan/src/engine/asm_engine/asm_engine.h deleted file mode 100644 index 40fe5342f..000000000 --- a/src/botan/src/engine/asm_engine/asm_engine.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -* Assembly Implementation Engine -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_X86_32_ASM_ENGINE_H__ -#define BOTAN_X86_32_ASM_ENGINE_H__ - -#include - -namespace Botan { - -/** -* Engine for x86-32 specific implementations -*/ -class Assembler_Engine : public Engine - { - public: - std::string provider_name() const { return "asm"; } - - BlockCipher* find_block_cipher(const SCAN_Name&, - Algorithm_Factory&) const; - - HashFunction* find_hash(const SCAN_Name& request, - Algorithm_Factory&) const; - }; - -} - -#endif diff --git a/src/botan/src/engine/asm_engine/info.txt b/src/botan/src/engine/asm_engine/info.txt deleted file mode 100644 index c2258d57b..000000000 --- a/src/botan/src/engine/asm_engine/info.txt +++ /dev/null @@ -1,11 +0,0 @@ -define ENGINE_ASSEMBLER - -load_on dep - - -asm_engine.cpp - - - -asm_engine.h - diff --git a/src/botan/src/engine/core_engine/core_engine.h b/src/botan/src/engine/core_engine/core_engine.h deleted file mode 100644 index 983b75290..000000000 --- a/src/botan/src/engine/core_engine/core_engine.h +++ /dev/null @@ -1,71 +0,0 @@ -/* -* Core Engine -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_CORE_ENGINE_H__ -#define BOTAN_CORE_ENGINE_H__ - -#include - -namespace Botan { - -/** -* Core Engine -*/ -class Core_Engine : public Engine - { - public: - std::string provider_name() const { return "core"; } - - PK_Ops::Key_Agreement* - get_key_agreement_op(const Private_Key& key) const; - - PK_Ops::Signature* - get_signature_op(const Private_Key& key) const; - - PK_Ops::Verification* get_verify_op(const Public_Key& key) const; - - PK_Ops::Encryption* get_encryption_op(const Public_Key& key) const; - - PK_Ops::Decryption* get_decryption_op(const Private_Key& key) const; - - Modular_Exponentiator* mod_exp(const BigInt& n, - Power_Mod::Usage_Hints) const; - - Keyed_Filter* get_cipher(const std::string&, Cipher_Dir, - Algorithm_Factory&); - - BlockCipher* find_block_cipher(const SCAN_Name&, - Algorithm_Factory&) const; - - StreamCipher* find_stream_cipher(const SCAN_Name&, - Algorithm_Factory&) const; - - HashFunction* find_hash(const SCAN_Name& request, - Algorithm_Factory&) const; - - MessageAuthenticationCode* find_mac(const SCAN_Name& request, - Algorithm_Factory&) const; - - PBKDF* find_pbkdf(const SCAN_Name& algo_spec, - Algorithm_Factory& af) const; - }; - -/** -* Create a cipher mode filter object -* @param block_cipher a block cipher object -* @param direction are we encrypting or decrypting? -* @param mode the name of the cipher mode to use -* @param padding the mode padding to use (only used for ECB, CBC) -*/ -Keyed_Filter* get_cipher_mode(const BlockCipher* block_cipher, - Cipher_Dir direction, - const std::string& mode, - const std::string& padding); - -} - -#endif diff --git a/src/botan/src/engine/core_engine/core_modes.cpp b/src/botan/src/engine/core_engine/core_modes.cpp deleted file mode 100644 index 8a929e880..000000000 --- a/src/botan/src/engine/core_engine/core_modes.cpp +++ /dev/null @@ -1,227 +0,0 @@ -/* -* Core Engine -* (C) 1999-2007,2011 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include - -#if defined(BOTAN_HAS_ECB) - #include -#endif - -#if defined(BOTAN_HAS_CBC) - #include -#endif - -#if defined(BOTAN_HAS_CTS) - #include -#endif - -#if defined(BOTAN_HAS_CFB) - #include -#endif - -#if defined(BOTAN_HAS_OFB) - #include -#endif - -#if defined(BOTAN_HAS_CTR_BE) - #include -#endif - -#if defined(BOTAN_HAS_EAX) - #include -#endif - -#if defined(BOTAN_HAS_XTS) - #include -#endif - -namespace Botan { - -namespace { - -/** -* Get a block cipher padding method by name -*/ -BlockCipherModePaddingMethod* get_bc_pad(const std::string& algo_spec, - const std::string& def_if_empty) - { -#if defined(BOTAN_HAS_CIPHER_MODE_PADDING) - if(algo_spec == "NoPadding" || (algo_spec == "" && def_if_empty == "NoPadding")) - return new Null_Padding; - - if(algo_spec == "PKCS7" || (algo_spec == "" && def_if_empty == "PKCS7")) - return new PKCS7_Padding; - - if(algo_spec == "OneAndZeros") - return new OneAndZeros_Padding; - - if(algo_spec == "X9.23") - return new ANSI_X923_Padding; - -#endif - - throw Algorithm_Not_Found(algo_spec); - } - -} - -Keyed_Filter* get_cipher_mode(const BlockCipher* block_cipher, - Cipher_Dir direction, - const std::string& mode, - const std::string& padding) - { -#if defined(BOTAN_HAS_OFB) - if(mode == "OFB") - return new StreamCipher_Filter(new OFB(block_cipher->clone())); -#endif - -#if defined(BOTAN_HAS_CTR_BE) - if(mode == "CTR-BE") - return new StreamCipher_Filter(new CTR_BE(block_cipher->clone())); -#endif - -#if defined(BOTAN_HAS_ECB) - if(mode == "ECB" || mode == "") - { - if(direction == ENCRYPTION) - return new ECB_Encryption(block_cipher->clone(), - get_bc_pad(padding, "NoPadding")); - else - return new ECB_Decryption(block_cipher->clone(), - get_bc_pad(padding, "NoPadding")); - } -#endif - - if(mode == "CBC") - { - if(padding == "CTS") - { -#if defined(BOTAN_HAS_CTS) - if(direction == ENCRYPTION) - return new CTS_Encryption(block_cipher->clone()); - else - return new CTS_Decryption(block_cipher->clone()); -#else - return 0; -#endif - } - -#if defined(BOTAN_HAS_CBC) - if(direction == ENCRYPTION) - return new CBC_Encryption(block_cipher->clone(), - get_bc_pad(padding, "PKCS7")); - else - return new CBC_Decryption(block_cipher->clone(), - get_bc_pad(padding, "PKCS7")); -#else - return 0; -#endif - } - -#if defined(BOTAN_HAS_XTS) - if(mode == "XTS") - { - if(direction == ENCRYPTION) - return new XTS_Encryption(block_cipher->clone()); - else - return new XTS_Decryption(block_cipher->clone()); - } -#endif - - if(mode.find("CFB") != std::string::npos || - mode.find("EAX") != std::string::npos) - { - size_t bits = 0; - - std::vector algo_info = parse_algorithm_name(mode); - std::string mode_name = algo_info[0]; - if(algo_info.size() == 1) - bits = 8 * block_cipher->block_size(); - else if(algo_info.size() == 2) - bits = to_u32bit(algo_info[1]); - else - return 0; - -#if defined(BOTAN_HAS_CFB) - if(mode_name == "CFB") - { - if(direction == ENCRYPTION) - return new CFB_Encryption(block_cipher->clone(), bits); - else - return new CFB_Decryption(block_cipher->clone(), bits); - } -#endif - -#if defined(BOTAN_HAS_EAX) - if(mode_name == "EAX") - { - if(direction == ENCRYPTION) - return new EAX_Encryption(block_cipher->clone(), bits); - else - return new EAX_Decryption(block_cipher->clone(), bits); - } -#endif - } - - return 0; - } - -/* -* Get a cipher object -*/ -Keyed_Filter* Core_Engine::get_cipher(const std::string& algo_spec, - Cipher_Dir direction, - Algorithm_Factory& af) - { - std::vector algo_parts = split_on(algo_spec, '/'); - if(algo_parts.empty()) - throw Invalid_Algorithm_Name(algo_spec); - - const std::string cipher_name = algo_parts[0]; - - // check if it is a stream cipher first (easy case) - const StreamCipher* stream_cipher = af.prototype_stream_cipher(cipher_name); - if(stream_cipher) - return new StreamCipher_Filter(stream_cipher->clone()); - - const BlockCipher* block_cipher = af.prototype_block_cipher(cipher_name); - if(!block_cipher) - return 0; - - if(algo_parts.size() >= 4) - return 0; // 4 part mode, not something we know about - - if(algo_parts.size() < 2) - throw Lookup_Error("Cipher specification '" + algo_spec + - "' is missing mode identifier"); - - std::string mode = algo_parts[1]; - - std::string padding; - if(algo_parts.size() == 3) - padding = algo_parts[2]; - else - padding = (mode == "CBC") ? "PKCS7" : "NoPadding"; - - if(mode == "ECB" && padding == "CTS") - return 0; - else if((mode != "CBC" && mode != "ECB") && padding != "NoPadding") - throw Invalid_Algorithm_Name(algo_spec); - - Keyed_Filter* filt = get_cipher_mode(block_cipher, direction, mode, padding); - if(filt) - return filt; - - throw Algorithm_Not_Found(cipher_name + "/" + mode + "/" + padding); - } - -} diff --git a/src/botan/src/engine/core_engine/def_pk_ops.cpp b/src/botan/src/engine/core_engine/def_pk_ops.cpp deleted file mode 100644 index db418d5bc..000000000 --- a/src/botan/src/engine/core_engine/def_pk_ops.cpp +++ /dev/null @@ -1,170 +0,0 @@ -/* -* PK Operations -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include - -#if defined(BOTAN_HAS_RSA) - #include -#endif - -#if defined(BOTAN_HAS_RW) - #include -#endif - -#if defined(BOTAN_HAS_DSA) - #include -#endif - -#if defined(BOTAN_HAS_ECDSA) - #include -#endif - -#if defined(BOTAN_HAS_ELGAMAL) - #include -#endif - -#if defined(BOTAN_HAS_GOST_34_10_2001) - #include -#endif - -#if defined(BOTAN_HAS_NYBERG_RUEPPEL) - #include -#endif - -#if defined(BOTAN_HAS_DIFFIE_HELLMAN) - #include -#endif - -#if defined(BOTAN_HAS_ECDH) - #include -#endif - -namespace Botan { - -PK_Ops::Encryption* -Core_Engine::get_encryption_op(const Public_Key& key) const - { -#if defined(BOTAN_HAS_RSA) - if(const RSA_PublicKey* s = dynamic_cast(&key)) - return new RSA_Public_Operation(*s); -#endif - -#if defined(BOTAN_HAS_ELGAMAL) - if(const ElGamal_PublicKey* s = dynamic_cast(&key)) - return new ElGamal_Encryption_Operation(*s); -#endif - - return 0; - } - -PK_Ops::Decryption* -Core_Engine::get_decryption_op(const Private_Key& key) const - { -#if defined(BOTAN_HAS_RSA) - if(const RSA_PrivateKey* s = dynamic_cast(&key)) - return new RSA_Private_Operation(*s); -#endif - -#if defined(BOTAN_HAS_ELGAMAL) - if(const ElGamal_PrivateKey* s = dynamic_cast(&key)) - return new ElGamal_Decryption_Operation(*s); -#endif - - return 0; - } - -PK_Ops::Key_Agreement* -Core_Engine::get_key_agreement_op(const Private_Key& key) const - { -#if defined(BOTAN_HAS_DIFFIE_HELLMAN) - if(const DH_PrivateKey* dh = dynamic_cast(&key)) - return new DH_KA_Operation(*dh); -#endif - -#if defined(BOTAN_HAS_ECDH) - if(const ECDH_PrivateKey* ecdh = dynamic_cast(&key)) - return new ECDH_KA_Operation(*ecdh); -#endif - - return 0; - } - -PK_Ops::Signature* -Core_Engine::get_signature_op(const Private_Key& key) const - { -#if defined(BOTAN_HAS_RSA) - if(const RSA_PrivateKey* s = dynamic_cast(&key)) - return new RSA_Private_Operation(*s); -#endif - -#if defined(BOTAN_HAS_RW) - if(const RW_PrivateKey* s = dynamic_cast(&key)) - return new RW_Signature_Operation(*s); -#endif - -#if defined(BOTAN_HAS_DSA) - if(const DSA_PrivateKey* s = dynamic_cast(&key)) - return new DSA_Signature_Operation(*s); -#endif - -#if defined(BOTAN_HAS_ECDSA) - if(const ECDSA_PrivateKey* s = dynamic_cast(&key)) - return new ECDSA_Signature_Operation(*s); -#endif - -#if defined(BOTAN_HAS_GOST_34_10_2001) - if(const GOST_3410_PrivateKey* s = - dynamic_cast(&key)) - return new GOST_3410_Signature_Operation(*s); -#endif - -#if defined(BOTAN_HAS_NYBERG_RUEPPEL) - if(const NR_PrivateKey* s = dynamic_cast(&key)) - return new NR_Signature_Operation(*s); -#endif - - return 0; - } - -PK_Ops::Verification* -Core_Engine::get_verify_op(const Public_Key& key) const - { -#if defined(BOTAN_HAS_RSA) - if(const RSA_PublicKey* s = dynamic_cast(&key)) - return new RSA_Public_Operation(*s); -#endif - -#if defined(BOTAN_HAS_RW) - if(const RW_PublicKey* s = dynamic_cast(&key)) - return new RW_Verification_Operation(*s); -#endif - -#if defined(BOTAN_HAS_DSA) - if(const DSA_PublicKey* s = dynamic_cast(&key)) - return new DSA_Verification_Operation(*s); -#endif - -#if defined(BOTAN_HAS_ECDSA) - if(const ECDSA_PublicKey* s = dynamic_cast(&key)) - return new ECDSA_Verification_Operation(*s); -#endif - -#if defined(BOTAN_HAS_GOST_34_10_2001) - if(const GOST_3410_PublicKey* s = - dynamic_cast(&key)) - return new GOST_3410_Verification_Operation(*s); -#endif - -#if defined(BOTAN_HAS_NYBERG_RUEPPEL) - if(const NR_PublicKey* s = dynamic_cast(&key)) - return new NR_Verification_Operation(*s); -#endif - - return 0; - } - -} diff --git a/src/botan/src/engine/core_engine/def_powm.cpp b/src/botan/src/engine/core_engine/def_powm.cpp deleted file mode 100644 index 56a4b6844..000000000 --- a/src/botan/src/engine/core_engine/def_powm.cpp +++ /dev/null @@ -1,24 +0,0 @@ -/* -* Modular Exponentiation -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -namespace Botan { - -/* -* Choose a modular exponentation algorithm -*/ -Modular_Exponentiator* -Core_Engine::mod_exp(const BigInt& n, Power_Mod::Usage_Hints hints) const - { - if(n.is_odd()) - return new Montgomery_Exponentiator(n, hints); - return new Fixed_Window_Exponentiator(n, hints); - } - -} diff --git a/src/botan/src/engine/core_engine/info.txt b/src/botan/src/engine/core_engine/info.txt deleted file mode 100644 index 1935b0518..000000000 --- a/src/botan/src/engine/core_engine/info.txt +++ /dev/null @@ -1,24 +0,0 @@ -define CORE_ENGINE - - -core_engine.h - - - -core_modes.cpp -def_pk_ops.cpp -def_powm.cpp -lookup_block.cpp -lookup_hash.cpp -lookup_mac.cpp -lookup_stream.cpp -lookup_pbkdf.cpp - - - -algo_factory -filters -libstate -mode_pad -numbertheory - diff --git a/src/botan/src/engine/core_engine/lookup_block.cpp b/src/botan/src/engine/core_engine/lookup_block.cpp deleted file mode 100644 index c46d4f4cd..000000000 --- a/src/botan/src/engine/core_engine/lookup_block.cpp +++ /dev/null @@ -1,289 +0,0 @@ -/* -* Block Cipher Lookup -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -#if defined(BOTAN_HAS_AES) - #include -#endif - -#if defined(BOTAN_HAS_BLOWFISH) - #include -#endif - -#if defined(BOTAN_HAS_CAMELLIA) - #include -#endif - -#if defined(BOTAN_HAS_CAST) - #include - #include -#endif - -#if defined(BOTAN_HAS_CASCADE) - #include -#endif - -#if defined(BOTAN_HAS_DES) - #include - #include -#endif - -#if defined(BOTAN_HAS_GOST_28147_89) - #include -#endif - -#if defined(BOTAN_HAS_IDEA) - #include -#endif - -#if defined(BOTAN_HAS_KASUMI) - #include -#endif - -#if defined(BOTAN_HAS_LION) - #include -#endif - -#if defined(BOTAN_HAS_LUBY_RACKOFF) - #include -#endif - -#if defined(BOTAN_HAS_MARS) - #include -#endif - -#if defined(BOTAN_HAS_MISTY1) - #include -#endif - -#if defined(BOTAN_HAS_NOEKEON) - #include -#endif - -#if defined(BOTAN_HAS_RC2) - #include -#endif - -#if defined(BOTAN_HAS_RC5) - #include -#endif - -#if defined(BOTAN_HAS_RC6) - #include -#endif - -#if defined(BOTAN_HAS_SAFER) - #include -#endif - -#if defined(BOTAN_HAS_SEED) - #include -#endif - -#if defined(BOTAN_HAS_SERPENT) - #include -#endif - -#if defined(BOTAN_HAS_SKIPJACK) - #include -#endif - -#if defined(BOTAN_HAS_SQUARE) - #include -#endif - -#if defined(BOTAN_HAS_TEA) - #include -#endif - -#if defined(BOTAN_HAS_TWOFISH) - #include -#endif - -#if defined(BOTAN_HAS_XTEA) - #include -#endif - -namespace Botan { - -/* -* Look for an algorithm with this name -*/ -BlockCipher* Core_Engine::find_block_cipher(const SCAN_Name& request, - Algorithm_Factory& af) const - { - -#if defined(BOTAN_HAS_AES) - if(request.algo_name() == "AES-128") - return new AES_128; - if(request.algo_name() == "AES-192") - return new AES_192; - if(request.algo_name() == "AES-256") - return new AES_256; -#endif - -#if defined(BOTAN_HAS_BLOWFISH) - if(request.algo_name() == "Blowfish") - return new Blowfish; -#endif - -#if defined(BOTAN_HAS_CAMELLIA) - if(request.algo_name() == "Camellia-128") - return new Camellia_128; - if(request.algo_name() == "Camellia-192") - return new Camellia_192; - if(request.algo_name() == "Camellia-256") - return new Camellia_256; -#endif - -#if defined(BOTAN_HAS_CAST) - if(request.algo_name() == "CAST-128") - return new CAST_128; - if(request.algo_name() == "CAST-256") - return new CAST_256; -#endif - -#if defined(BOTAN_HAS_DES) - if(request.algo_name() == "DES") - return new DES; - if(request.algo_name() == "DESX") - return new DESX; - if(request.algo_name() == "TripleDES") - return new TripleDES; -#endif - -#if defined(BOTAN_HAS_GOST_28147_89) - if(request.algo_name() == "GOST-28147-89") - return new GOST_28147_89(request.arg(0, "R3411_94_TestParam")); -#endif - -#if defined(BOTAN_HAS_IDEA) - if(request.algo_name() == "IDEA") - return new IDEA; -#endif - -#if defined(BOTAN_HAS_KASUMI) - if(request.algo_name() == "KASUMI") - return new KASUMI; -#endif - -#if defined(BOTAN_HAS_MARS) - if(request.algo_name() == "MARS") - return new MARS; -#endif - -#if defined(BOTAN_HAS_MISTY1) - if(request.algo_name() == "MISTY1") - return new MISTY1(request.arg_as_integer(0, 8)); -#endif - -#if defined(BOTAN_HAS_NOEKEON) - if(request.algo_name() == "Noekeon") - return new Noekeon; -#endif - -#if defined(BOTAN_HAS_RC2) - if(request.algo_name() == "RC2") - return new RC2; -#endif - -#if defined(BOTAN_HAS_RC5) - if(request.algo_name() == "RC5") - return new RC5(request.arg_as_integer(0, 12)); -#endif - -#if defined(BOTAN_HAS_RC6) - if(request.algo_name() == "RC6") - return new RC6; -#endif - -#if defined(BOTAN_HAS_SAFER) - if(request.algo_name() == "SAFER-SK") - return new SAFER_SK(request.arg_as_integer(0, 10)); -#endif - -#if defined(BOTAN_HAS_SEED) - if(request.algo_name() == "SEED") - return new SEED; -#endif - -#if defined(BOTAN_HAS_SERPENT) - if(request.algo_name() == "Serpent") - return new Serpent; -#endif - -#if defined(BOTAN_HAS_SKIPJACK) - if(request.algo_name() == "Skipjack") - return new Skipjack; -#endif - -#if defined(BOTAN_HAS_SQUARE) - if(request.algo_name() == "Square") - return new Square; -#endif - -#if defined(BOTAN_HAS_TEA) - if(request.algo_name() == "TEA") - return new TEA; -#endif - -#if defined(BOTAN_HAS_TWOFISH) - if(request.algo_name() == "Twofish") - return new Twofish; -#endif - -#if defined(BOTAN_HAS_XTEA) - if(request.algo_name() == "XTEA") - return new XTEA; -#endif - -#if defined(BOTAN_HAS_LUBY_RACKOFF) - if(request.algo_name() == "Luby-Rackoff" && request.arg_count() == 1) - { - const HashFunction* hash = af.prototype_hash_function(request.arg(0)); - - if(hash) - return new LubyRackoff(hash->clone()); - } -#endif - -#if defined(BOTAN_HAS_CASCADE) - if(request.algo_name() == "Cascade" && request.arg_count() == 2) - { - const BlockCipher* c1 = af.prototype_block_cipher(request.arg(0)); - const BlockCipher* c2 = af.prototype_block_cipher(request.arg(1)); - - if(c1 && c2) - return new Cascade_Cipher(c1->clone(), c2->clone()); - } -#endif - -#if defined(BOTAN_HAS_LION) - if(request.algo_name() == "Lion" && request.arg_count_between(2, 3)) - { - const size_t block_size = request.arg_as_integer(2, 1024); - - const HashFunction* hash = - af.prototype_hash_function(request.arg(0)); - - const StreamCipher* stream_cipher = - af.prototype_stream_cipher(request.arg(1)); - - if(!hash || !stream_cipher) - return 0; - - return new Lion(hash->clone(), stream_cipher->clone(), block_size); - } -#endif - - return 0; - } - -} diff --git a/src/botan/src/engine/core_engine/lookup_hash.cpp b/src/botan/src/engine/core_engine/lookup_hash.cpp deleted file mode 100644 index f94a97864..000000000 --- a/src/botan/src/engine/core_engine/lookup_hash.cpp +++ /dev/null @@ -1,238 +0,0 @@ -/* -* Hash Algorithms Lookup -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -#if defined(BOTAN_HAS_ADLER32) - #include -#endif - -#if defined(BOTAN_HAS_CRC24) - #include -#endif - -#if defined(BOTAN_HAS_CRC32) - #include -#endif - -#if defined(BOTAN_HAS_BMW_512) - #include -#endif - -#if defined(BOTAN_HAS_GOST_34_11) - #include -#endif - -#if defined(BOTAN_HAS_HAS_160) - #include -#endif - -#if defined(BOTAN_HAS_KECCAK) - #include -#endif - -#if defined(BOTAN_HAS_MD2) - #include -#endif - -#if defined(BOTAN_HAS_MD4) - #include -#endif - -#if defined(BOTAN_HAS_MD5) - #include -#endif - -#if defined(BOTAN_HAS_RIPEMD_128) - #include -#endif - -#if defined(BOTAN_HAS_RIPEMD_160) - #include -#endif - -#if defined(BOTAN_HAS_SHA1) - #include -#endif - -#if defined(BOTAN_HAS_SHA2_32) - #include -#endif - -#if defined(BOTAN_HAS_SHA2_64) - #include -#endif - -#if defined(BOTAN_HAS_SKEIN_512) - #include -#endif - -#if defined(BOTAN_HAS_TIGER) - #include -#endif - -#if defined(BOTAN_HAS_WHIRLPOOL) - #include -#endif - -#if defined(BOTAN_HAS_PARALLEL_HASH) - #include -#endif - -#if defined(BOTAN_HAS_COMB4P) - #include -#endif - -namespace Botan { - -/* -* Look for an algorithm with this name -*/ -HashFunction* Core_Engine::find_hash(const SCAN_Name& request, - Algorithm_Factory& af) const - { -#if defined(BOTAN_HAS_ADLER32) - if(request.algo_name() == "Adler32") - return new Adler32; -#endif - -#if defined(BOTAN_HAS_CRC24) - if(request.algo_name() == "CRC24") - return new CRC24; -#endif - -#if defined(BOTAN_HAS_CRC32) - if(request.algo_name() == "CRC32") - return new CRC32; -#endif - -#if defined(BOTAN_HAS_BMW_512) - if(request.algo_name() == "BMW-512") - return new BMW_512; -#endif - -#if defined(BOTAN_HAS_GOST_34_11) - if(request.algo_name() == "GOST-34.11") - return new GOST_34_11; -#endif - -#if defined(BOTAN_HAS_HAS_160) - if(request.algo_name() == "HAS-160") - return new HAS_160; -#endif - -#if defined(BOTAN_HAS_KECCAK) - if(request.algo_name() == "Keccak-1600") - return new Keccak_1600(request.arg_as_integer(0, 512)); -#endif - -#if defined(BOTAN_HAS_MD2) - if(request.algo_name() == "MD2") - return new MD2; -#endif - -#if defined(BOTAN_HAS_MD4) - if(request.algo_name() == "MD4") - return new MD4; -#endif - -#if defined(BOTAN_HAS_MD5) - if(request.algo_name() == "MD5") - return new MD5; -#endif - -#if defined(BOTAN_HAS_RIPEMD_128) - if(request.algo_name() == "RIPEMD-128") - return new RIPEMD_128; -#endif - -#if defined(BOTAN_HAS_RIPEMD_160) - if(request.algo_name() == "RIPEMD-160") - return new RIPEMD_160; -#endif - -#if defined(BOTAN_HAS_SHA1) - if(request.algo_name() == "SHA-160") - return new SHA_160; -#endif - -#if defined(BOTAN_HAS_SHA2_32) - if(request.algo_name() == "SHA-224") - return new SHA_224; - if(request.algo_name() == "SHA-256") - return new SHA_256; -#endif - -#if defined(BOTAN_HAS_SHA2_64) - if(request.algo_name() == "SHA-384") - return new SHA_384; - if(request.algo_name() == "SHA-512") - return new SHA_512; -#endif - -#if defined(BOTAN_HAS_TIGER) - if(request.algo_name() == "Tiger") - return new Tiger(request.arg_as_integer(0, 24), // hash output - request.arg_as_integer(1, 3)); // # passes -#endif - -#if defined(BOTAN_HAS_SKEIN_512) - if(request.algo_name() == "Skein-512") - return new Skein_512(request.arg_as_integer(0, 512), - request.arg(1, "")); -#endif - -#if defined(BOTAN_HAS_WHIRLPOOL) - if(request.algo_name() == "Whirlpool") - return new Whirlpool; -#endif - -#if defined(BOTAN_HAS_COMB4P) - if(request.algo_name() == "Comb4P" && request.arg_count() == 2) - { - const HashFunction* h1 = af.prototype_hash_function(request.arg(0)); - const HashFunction* h2 = af.prototype_hash_function(request.arg(1)); - - if(h1 && h2) - return new Comb4P(h1->clone(), h2->clone()); - } -#endif - -#if defined(BOTAN_HAS_PARALLEL_HASH) - - if(request.algo_name() == "Parallel") - { - std::vector hash_prototypes; - - /* First pass, just get the prototypes (no memory allocation). Then - if all were found, replace each prototype with a newly created clone - */ - for(size_t i = 0; i != request.arg_count(); ++i) - { - const HashFunction* hash = af.prototype_hash_function(request.arg(i)); - if(!hash) - return 0; - - hash_prototypes.push_back(hash); - } - - std::vector hashes; - for(size_t i = 0; i != hash_prototypes.size(); ++i) - hashes.push_back(hash_prototypes[i]->clone()); - - return new Parallel(hashes); - } - -#endif - - return 0; - } - -} diff --git a/src/botan/src/engine/core_engine/lookup_mac.cpp b/src/botan/src/engine/core_engine/lookup_mac.cpp deleted file mode 100644 index 9f322b399..000000000 --- a/src/botan/src/engine/core_engine/lookup_mac.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/* -* MAC Lookup -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -#if defined(BOTAN_HAS_CBC_MAC) - #include -#endif - -#if defined(BOTAN_HAS_CMAC) - #include -#endif - -#if defined(BOTAN_HAS_HMAC) - #include -#endif - -#if defined(BOTAN_HAS_SSL3_MAC) - #include -#endif - -#if defined(BOTAN_HAS_ANSI_X919_MAC) - #include -#endif - -namespace Botan { - -/* -* Look for an algorithm with this name -*/ -MessageAuthenticationCode* -Core_Engine::find_mac(const SCAN_Name& request, - Algorithm_Factory& af) const - { - -#if defined(BOTAN_HAS_CBC_MAC) - if(request.algo_name() == "CBC-MAC" && request.arg_count() == 1) - return new CBC_MAC(af.make_block_cipher(request.arg(0))); -#endif - -#if defined(BOTAN_HAS_CMAC) - if(request.algo_name() == "CMAC" && request.arg_count() == 1) - return new CMAC(af.make_block_cipher(request.arg(0))); -#endif - -#if defined(BOTAN_HAS_HMAC) - if(request.algo_name() == "HMAC" && request.arg_count() == 1) - return new HMAC(af.make_hash_function(request.arg(0))); -#endif - -#if defined(BOTAN_HAS_SSL3_MAC) - if(request.algo_name() == "SSL3-MAC" && request.arg_count() == 1) - return new SSL3_MAC(af.make_hash_function(request.arg(0))); -#endif - -#if defined(BOTAN_HAS_ANSI_X919_MAC) - if(request.algo_name() == "X9.19-MAC" && request.arg_count() == 0) - return new ANSI_X919_MAC(af.make_block_cipher("DES")); -#endif - - return 0; - } - -} diff --git a/src/botan/src/engine/core_engine/lookup_pbkdf.cpp b/src/botan/src/engine/core_engine/lookup_pbkdf.cpp deleted file mode 100644 index 9e9255f0a..000000000 --- a/src/botan/src/engine/core_engine/lookup_pbkdf.cpp +++ /dev/null @@ -1,52 +0,0 @@ -/* -* PBKDF Lookup -* (C) 2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -#if defined(BOTAN_HAS_PBKDF1) - #include -#endif - -#if defined(BOTAN_HAS_PBKDF2) - #include -#endif - -#if defined(BOTAN_HAS_PGPS2K) - #include -#endif - -namespace Botan { - -PBKDF* Core_Engine::find_pbkdf(const SCAN_Name& algo_spec, - Algorithm_Factory& af) const - { -#if defined(BOTAN_HAS_PBKDF1) - if(algo_spec.algo_name() == "PBKDF1" && algo_spec.arg_count() == 1) - return new PKCS5_PBKDF1(af.make_hash_function(algo_spec.arg(0))); -#endif - -#if defined(BOTAN_HAS_PBKDF2) - if(algo_spec.algo_name() == "PBKDF2" && algo_spec.arg_count() == 1) - { - if(const MessageAuthenticationCode* mac_proto = af.prototype_mac(algo_spec.arg(0))) - return new PKCS5_PBKDF2(mac_proto->clone()); - - return new PKCS5_PBKDF2(af.make_mac("HMAC(" + algo_spec.arg(0) + ")")); - } -#endif - -#if defined(BOTAN_HAS_PGPS2K) - if(algo_spec.algo_name() == "OpenPGP-S2K" && algo_spec.arg_count() == 1) - return new OpenPGP_S2K(af.make_hash_function(algo_spec.arg(0))); -#endif - - return 0; - } - -} diff --git a/src/botan/src/engine/core_engine/lookup_stream.cpp b/src/botan/src/engine/core_engine/lookup_stream.cpp deleted file mode 100644 index 5b4859c1a..000000000 --- a/src/botan/src/engine/core_engine/lookup_stream.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/* -* Stream Cipher Lookup -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -#if defined(BOTAN_HAS_ARC4) - #include -#endif - -#if defined(BOTAN_HAS_SALSA20) - #include -#endif - -#if defined(BOTAN_HAS_TURING) - #include -#endif - -#if defined(BOTAN_HAS_WID_WAKE) - #include -#endif - -namespace Botan { - -/* -* Look for an algorithm with this name -*/ -StreamCipher* -Core_Engine::find_stream_cipher(const SCAN_Name& request, - Algorithm_Factory&) const - { -#if defined(BOTAN_HAS_ARC4) - if(request.algo_name() == "ARC4") - return new ARC4(request.arg_as_integer(0, 0)); - if(request.algo_name() == "RC4_drop") - return new ARC4(768); -#endif - -#if defined(BOTAN_HAS_SALSA20) - if(request.algo_name() == "Salsa20") - return new Salsa20; -#endif - -#if defined(BOTAN_HAS_TURING) - if(request.algo_name() == "Turing") - return new Turing; -#endif - -#if defined(BOTAN_HAS_WID_WAKE) - if(request.algo_name() == "WiderWake4+1-BE") - return new WiderWake_41_BE; -#endif - - return 0; - } - -} diff --git a/src/botan/src/engine/engine.cpp b/src/botan/src/engine/engine.cpp deleted file mode 100644 index 80712a2f8..000000000 --- a/src/botan/src/engine/engine.cpp +++ /dev/null @@ -1,91 +0,0 @@ -/* -* Engine -* (C) 2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include - -namespace Botan { - -BlockCipher* -Engine::find_block_cipher(const SCAN_Name&, - Algorithm_Factory&) const - { - return 0; - } - -StreamCipher* -Engine::find_stream_cipher(const SCAN_Name&, - Algorithm_Factory&) const - { - return 0; - } - -HashFunction* -Engine::find_hash(const SCAN_Name&, - Algorithm_Factory&) const - { - return 0; - } - -MessageAuthenticationCode* -Engine::find_mac(const SCAN_Name&, - Algorithm_Factory&) const - { - return 0; - } - -PBKDF* -Engine::find_pbkdf(const SCAN_Name&, - Algorithm_Factory&) const - { - return 0; - } - -Modular_Exponentiator* -Engine::mod_exp(const BigInt&, - Power_Mod::Usage_Hints) const - { - return 0; - } - -Keyed_Filter* Engine::get_cipher(const std::string&, - Cipher_Dir, - Algorithm_Factory&) - { - return 0; - } - -PK_Ops::Key_Agreement* -Engine::get_key_agreement_op(const Private_Key&) const - { - return 0; - } - -PK_Ops::Signature* -Engine::get_signature_op(const Private_Key&) const - { - return 0; - } - -PK_Ops::Verification* -Engine::get_verify_op(const Public_Key&) const - { - return 0; - } - -PK_Ops::Encryption* -Engine::get_encryption_op(const Public_Key&) const - { - return 0; - } - -PK_Ops::Decryption* -Engine::get_decryption_op(const Private_Key&) const - { - return 0; - } - -} diff --git a/src/botan/src/engine/engine.h b/src/botan/src/engine/engine.h deleted file mode 100644 index 136fbeb23..000000000 --- a/src/botan/src/engine/engine.h +++ /dev/null @@ -1,149 +0,0 @@ -/* -* Engine -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_ENGINE_H__ -#define BOTAN_ENGINE_H__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace Botan { - -class Algorithm_Factory; -class Keyed_Filter; - -/** -* Base class for all engines. All non-pure virtual functions simply -* return NULL, indicating the algorithm in question is not -* supported. Subclasses can reimplement whichever function(s) -* they want to hook in a particular type. -*/ -class BOTAN_DLL Engine - { - public: - virtual ~Engine() {} - - /** - * @return name of this engine - */ - virtual std::string provider_name() const = 0; - - /** - * @param algo_spec the algorithm name/specification - * @param af an algorithm factory object - * @return newly allocated object, or NULL - */ - virtual BlockCipher* - find_block_cipher(const SCAN_Name& algo_spec, - Algorithm_Factory& af) const; - - /** - * @param algo_spec the algorithm name/specification - * @param af an algorithm factory object - * @return newly allocated object, or NULL - */ - virtual StreamCipher* - find_stream_cipher(const SCAN_Name& algo_spec, - Algorithm_Factory& af) const; - - /** - * @param algo_spec the algorithm name/specification - * @param af an algorithm factory object - * @return newly allocated object, or NULL - */ - virtual HashFunction* - find_hash(const SCAN_Name& algo_spec, - Algorithm_Factory& af) const; - - /** - * @param algo_spec the algorithm name/specification - * @param af an algorithm factory object - * @return newly allocated object, or NULL - */ - virtual MessageAuthenticationCode* - find_mac(const SCAN_Name& algo_spec, - Algorithm_Factory& af) const; - - /** - * @param algo_spec the algorithm name/specification - * @param af an algorithm factory object - * @return newly allocated object, or NULL - */ - virtual PBKDF* find_pbkdf(const SCAN_Name& algo_spec, - Algorithm_Factory& af) const; - - /** - * @param n the modulus - * @param hints any use hints - * @return newly allocated object, or NULL - */ - virtual Modular_Exponentiator* - mod_exp(const BigInt& n, - Power_Mod::Usage_Hints hints) const; - - /** - * Return a new cipher object - * @param algo_spec the algorithm name/specification - * @param dir specifies if encryption or decryption is desired - * @param af an algorithm factory object - * @return newly allocated object, or NULL - */ - virtual Keyed_Filter* get_cipher(const std::string& algo_spec, - Cipher_Dir dir, - Algorithm_Factory& af); - - /** - * Return a new operator object for this key, if possible - * @param key the key we want an operator for - * @return newly allocated operator object, or NULL - */ - virtual PK_Ops::Key_Agreement* - get_key_agreement_op(const Private_Key& key) const; - - /** - * Return a new operator object for this key, if possible - * @param key the key we want an operator for - * @return newly allocated operator object, or NULL - */ - virtual PK_Ops::Signature* - get_signature_op(const Private_Key& key) const; - - /** - * Return a new operator object for this key, if possible - * @param key the key we want an operator for - * @return newly allocated operator object, or NULL - */ - virtual PK_Ops::Verification* - get_verify_op(const Public_Key& key) const; - - /** - * Return a new operator object for this key, if possible - * @param key the key we want an operator for - * @return newly allocated operator object, or NULL - */ - virtual PK_Ops::Encryption* - get_encryption_op(const Public_Key& key) const; - - /** - * Return a new operator object for this key, if possible - * @param key the key we want an operator for - * @return newly allocated operator object, or NULL - */ - virtual PK_Ops::Decryption* - get_decryption_op(const Private_Key& key) const; - }; - -} - -#endif diff --git a/src/botan/src/engine/gnump/gmp_mem.cpp b/src/botan/src/engine/gnump/gmp_mem.cpp deleted file mode 100644 index 7cf11654d..000000000 --- a/src/botan/src/engine/gnump/gmp_mem.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/* -* GNU MP Memory Handlers -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -namespace { - -/* -* Allocator used by GNU MP -*/ -Allocator* gmp_alloc = 0; -size_t gmp_alloc_refcnt = 0; - -/* -* Allocation Function for GNU MP -*/ -void* gmp_malloc(size_t n) - { - return gmp_alloc->allocate(n); - } - -/* -* Reallocation Function for GNU MP -*/ -void* gmp_realloc(void* ptr, size_t old_n, size_t new_n) - { - void* new_buf = gmp_alloc->allocate(new_n); - std::memcpy(new_buf, ptr, std::min(old_n, new_n)); - gmp_alloc->deallocate(ptr, old_n); - return new_buf; - } - -/* -* Deallocation Function for GNU MP -*/ -void gmp_free(void* ptr, size_t n) - { - gmp_alloc->deallocate(ptr, n); - } - -} - -/* -* GMP_Engine Constructor -*/ -GMP_Engine::GMP_Engine() - { - if(gmp_alloc == 0) - { - gmp_alloc = Allocator::get(true); - mp_set_memory_functions(gmp_malloc, gmp_realloc, gmp_free); - } - - ++gmp_alloc_refcnt; - } - -GMP_Engine::~GMP_Engine() - { - --gmp_alloc_refcnt; - - if(gmp_alloc_refcnt == 0) - { - mp_set_memory_functions(NULL, NULL, NULL); - gmp_alloc = 0; - } - } - -} diff --git a/src/botan/src/engine/gnump/gmp_powm.cpp b/src/botan/src/engine/gnump/gmp_powm.cpp deleted file mode 100644 index 70c2b2f5e..000000000 --- a/src/botan/src/engine/gnump/gmp_powm.cpp +++ /dev/null @@ -1,53 +0,0 @@ -/* -* GMP Modular Exponentiation -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -namespace Botan { - -namespace { - -/* -* GMP Modular Exponentiator -*/ -class GMP_Modular_Exponentiator : public Modular_Exponentiator - { - public: - void set_base(const BigInt& b) { base = b; } - void set_exponent(const BigInt& e) { exp = e; } - BigInt execute() const; - Modular_Exponentiator* copy() const - { return new GMP_Modular_Exponentiator(*this); } - - GMP_Modular_Exponentiator(const BigInt& n) : mod(n) {} - private: - GMP_MPZ base, exp, mod; - }; - -/* -* Compute the result -*/ -BigInt GMP_Modular_Exponentiator::execute() const - { - GMP_MPZ r; - mpz_powm(r.value, base.value, exp.value, mod.value); - return r.to_bigint(); - } - -} - -/* -* Return the GMP-based modular exponentiator -*/ -Modular_Exponentiator* GMP_Engine::mod_exp(const BigInt& n, - Power_Mod::Usage_Hints) const - { - return new GMP_Modular_Exponentiator(n); - } - -} diff --git a/src/botan/src/engine/gnump/gmp_wrap.cpp b/src/botan/src/engine/gnump/gmp_wrap.cpp deleted file mode 100644 index 107823ab3..000000000 --- a/src/botan/src/engine/gnump/gmp_wrap.cpp +++ /dev/null @@ -1,98 +0,0 @@ -/* -* GMP Wrapper -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include - -#define GNU_MP_VERSION_CODE_FOR(a,b,c) ((a << 16) | (b << 8) | (c)) - -#define GNU_MP_VERSION_CODE \ - GNU_MP_VERSION_CODE_FOR(__GNU_MP_VERSION, __GNU_MP_VERSION_MINOR, \ - __GNU_MP_VERSION_PATCHLEVEL) - -#if GNU_MP_VERSION_CODE < GNU_MP_VERSION_CODE_FOR(4,1,0) - #error Your GNU MP install is too old, upgrade to 4.1 or later -#endif - -namespace Botan { - -/* -* GMP_MPZ Constructor -*/ -GMP_MPZ::GMP_MPZ(const BigInt& in) - { - mpz_init(value); - if(in != 0) - mpz_import(value, in.sig_words(), -1, sizeof(word), 0, 0, in.data()); - } - -/* -* GMP_MPZ Constructor -*/ -GMP_MPZ::GMP_MPZ(const byte in[], size_t length) - { - mpz_init(value); - mpz_import(value, length, 1, 1, 0, 0, in); - } - -/* -* GMP_MPZ Copy Constructor -*/ -GMP_MPZ::GMP_MPZ(const GMP_MPZ& other) - { - mpz_init_set(value, other.value); - } - -/* -* GMP_MPZ Destructor -*/ -GMP_MPZ::~GMP_MPZ() - { - mpz_clear(value); - } - -/* -* GMP_MPZ Assignment Operator -*/ -GMP_MPZ& GMP_MPZ::operator=(const GMP_MPZ& other) - { - mpz_set(value, other.value); - return (*this); - } - -/* -* Export the mpz_t as a bytestring -*/ -void GMP_MPZ::encode(byte out[], size_t length) const - { - size_t dummy = 0; - mpz_export(out + (length - bytes()), &dummy, 1, 1, 0, 0, value); - } - -/* -* Return the number of significant bytes -*/ -size_t GMP_MPZ::bytes() const - { - return ((mpz_sizeinbase(value, 2) + 7) / 8); - } - -/* -* GMP to BigInt Conversions -*/ -BigInt GMP_MPZ::to_bigint() const - { - BigInt out(BigInt::Positive, (bytes() + sizeof(word) - 1) / sizeof(word)); - size_t dummy = 0; - mpz_export(out.get_reg(), &dummy, -1, sizeof(word), 0, 0, value); - - if(mpz_sgn(value) < 0) - out.flip_sign(); - - return out; - } - -} diff --git a/src/botan/src/engine/gnump/gmp_wrap.h b/src/botan/src/engine/gnump/gmp_wrap.h deleted file mode 100644 index fc7aa856e..000000000 --- a/src/botan/src/engine/gnump/gmp_wrap.h +++ /dev/null @@ -1,41 +0,0 @@ -/* -* GMP MPZ Wrapper -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_GMP_MPZ_WRAP_H__ -#define BOTAN_GMP_MPZ_WRAP_H__ - -#include -#include - -namespace Botan { - -/** -* Lightweight GMP mpz_t wrapper. For internal use only. -*/ -class GMP_MPZ - { - public: - mpz_t value; - - BigInt to_bigint() const; - void encode(byte[], size_t) const; - size_t bytes() const; - - SecureVector to_bytes() const - { return BigInt::encode(to_bigint()); } - - GMP_MPZ& operator=(const GMP_MPZ&); - - GMP_MPZ(const GMP_MPZ&); - GMP_MPZ(const BigInt& = 0); - GMP_MPZ(const byte[], size_t); - ~GMP_MPZ(); - }; - -} - -#endif diff --git a/src/botan/src/engine/gnump/gnump_engine.h b/src/botan/src/engine/gnump/gnump_engine.h deleted file mode 100644 index fe154b914..000000000 --- a/src/botan/src/engine/gnump/gnump_engine.h +++ /dev/null @@ -1,44 +0,0 @@ -/* -* GMP Engine -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_ENGINE_GMP_H__ -#define BOTAN_ENGINE_GMP_H__ - -#include - -namespace Botan { - -/** -* Engine using GNU MP -*/ -class GMP_Engine : public Engine - { - public: - GMP_Engine(); - ~GMP_Engine(); - - std::string provider_name() const { return "gmp"; } - - PK_Ops::Key_Agreement* - get_key_agreement_op(const Private_Key& key) const; - - PK_Ops::Signature* - get_signature_op(const Private_Key& key) const; - - PK_Ops::Verification* get_verify_op(const Public_Key& key) const; - - PK_Ops::Encryption* get_encryption_op(const Public_Key& key) const; - - PK_Ops::Decryption* get_decryption_op(const Private_Key& key) const; - - Modular_Exponentiator* mod_exp(const BigInt&, - Power_Mod::Usage_Hints) const; - }; - -} - -#endif diff --git a/src/botan/src/engine/gnump/gnump_pk.cpp b/src/botan/src/engine/gnump/gnump_pk.cpp deleted file mode 100644 index 25735fe55..000000000 --- a/src/botan/src/engine/gnump/gnump_pk.cpp +++ /dev/null @@ -1,338 +0,0 @@ -/* -* GnuMP PK operations -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -/* GnuMP 5.0 and later have a side-channel resistent powm */ -#if defined(HAVE_MPZ_POWM_SEC) - #undef mpz_powm - #define mpz_powm mpz_powm_sec -#endif - -#if defined(BOTAN_HAS_RSA) - #include -#endif - -#if defined(BOTAN_HAS_DSA) - #include -#endif - -#if defined(BOTAN_HAS_DIFFIE_HELLMAN) - #include -#endif - -namespace Botan { - -namespace { - -#if defined(BOTAN_HAS_DIFFIE_HELLMAN) -class GMP_DH_KA_Operation : public PK_Ops::Key_Agreement - { - public: - GMP_DH_KA_Operation(const DH_PrivateKey& dh) : - x(dh.get_x()), p(dh.group_p()) {} - - SecureVector agree(const byte w[], size_t w_len) - { - GMP_MPZ z(w, w_len); - mpz_powm(z.value, z.value, x.value, p.value); - return z.to_bytes(); - } - - private: - GMP_MPZ x, p; - }; -#endif - -#if defined(BOTAN_HAS_DSA) - -class GMP_DSA_Signature_Operation : public PK_Ops::Signature - { - public: - GMP_DSA_Signature_Operation(const DSA_PrivateKey& dsa) : - x(dsa.get_x()), - p(dsa.group_p()), - q(dsa.group_q()), - g(dsa.group_g()), - q_bits(dsa.group_q().bits()) {} - - size_t message_parts() const { return 2; } - size_t message_part_size() const { return (q_bits + 7) / 8; } - size_t max_input_bits() const { return q_bits; } - - SecureVector sign(const byte msg[], size_t msg_len, - RandomNumberGenerator& rng); - private: - const GMP_MPZ x, p, q, g; - size_t q_bits; - }; - -SecureVector -GMP_DSA_Signature_Operation::sign(const byte msg[], size_t msg_len, - RandomNumberGenerator& rng) - { - const size_t q_bytes = (q_bits + 7) / 8; - - rng.add_entropy(msg, msg_len); - - BigInt k_bn; - do - k_bn.randomize(rng, q_bits); - while(k_bn >= q.to_bigint()); - - GMP_MPZ i(msg, msg_len); - GMP_MPZ k(k_bn); - - GMP_MPZ r; - mpz_powm(r.value, g.value, k.value, p.value); - mpz_mod(r.value, r.value, q.value); - - mpz_invert(k.value, k.value, q.value); - - GMP_MPZ s; - mpz_mul(s.value, x.value, r.value); - mpz_add(s.value, s.value, i.value); - mpz_mul(s.value, s.value, k.value); - mpz_mod(s.value, s.value, q.value); - - if(mpz_cmp_ui(r.value, 0) == 0 || mpz_cmp_ui(s.value, 0) == 0) - throw Internal_Error("GMP_DSA_Op::sign: r or s was zero"); - - SecureVector output(2*q_bytes); - r.encode(output, q_bytes); - s.encode(output + q_bytes, q_bytes); - return output; - } - -class GMP_DSA_Verification_Operation : public PK_Ops::Verification - { - public: - GMP_DSA_Verification_Operation(const DSA_PublicKey& dsa) : - y(dsa.get_y()), - p(dsa.group_p()), - q(dsa.group_q()), - g(dsa.group_g()), - q_bits(dsa.group_q().bits()) {} - - size_t message_parts() const { return 2; } - size_t message_part_size() const { return (q_bits + 7) / 8; } - size_t max_input_bits() const { return q_bits; } - - bool with_recovery() const { return false; } - - bool verify(const byte msg[], size_t msg_len, - const byte sig[], size_t sig_len); - private: - const GMP_MPZ y, p, q, g; - size_t q_bits; - }; - -bool GMP_DSA_Verification_Operation::verify(const byte msg[], size_t msg_len, - const byte sig[], size_t sig_len) - { - const size_t q_bytes = q.bytes(); - - if(sig_len != 2*q_bytes || msg_len > q_bytes) - return false; - - GMP_MPZ r(sig, q_bytes); - GMP_MPZ s(sig + q_bytes, q_bytes); - GMP_MPZ i(msg, msg_len); - - if(mpz_cmp_ui(r.value, 0) <= 0 || mpz_cmp(r.value, q.value) >= 0) - return false; - if(mpz_cmp_ui(s.value, 0) <= 0 || mpz_cmp(s.value, q.value) >= 0) - return false; - - if(mpz_invert(s.value, s.value, q.value) == 0) - return false; - - GMP_MPZ si; - mpz_mul(si.value, s.value, i.value); - mpz_mod(si.value, si.value, q.value); - mpz_powm(si.value, g.value, si.value, p.value); - - GMP_MPZ sr; - mpz_mul(sr.value, s.value, r.value); - mpz_mod(sr.value, sr.value, q.value); - mpz_powm(sr.value, y.value, sr.value, p.value); - - mpz_mul(si.value, si.value, sr.value); - mpz_mod(si.value, si.value, p.value); - mpz_mod(si.value, si.value, q.value); - - if(mpz_cmp(si.value, r.value) == 0) - return true; - return false; - } - -#endif - -#if defined(BOTAN_HAS_RSA) - -class GMP_RSA_Private_Operation : public PK_Ops::Signature, - public PK_Ops::Decryption - { - public: - GMP_RSA_Private_Operation(const RSA_PrivateKey& rsa) : - mod(rsa.get_n()), - p(rsa.get_p()), - q(rsa.get_q()), - d1(rsa.get_d1()), - d2(rsa.get_d2()), - c(rsa.get_c()), - n_bits(rsa.get_n().bits()) - {} - - size_t max_input_bits() const { return (n_bits - 1); } - - SecureVector sign(const byte msg[], size_t msg_len, - RandomNumberGenerator&) - { - BigInt m(msg, msg_len); - BigInt x = private_op(m); - return BigInt::encode_1363(x, (n_bits + 7) / 8); - } - - SecureVector decrypt(const byte msg[], size_t msg_len) - { - BigInt m(msg, msg_len); - return BigInt::encode(private_op(m)); - } - - private: - BigInt private_op(const BigInt& m) const; - - GMP_MPZ mod, p, q, d1, d2, c; - size_t n_bits; - }; - -BigInt GMP_RSA_Private_Operation::private_op(const BigInt& m) const - { - GMP_MPZ j1, j2, h(m); - - mpz_powm(j1.value, h.value, d1.value, p.value); - mpz_powm(j2.value, h.value, d2.value, q.value); - mpz_sub(h.value, j1.value, j2.value); - mpz_mul(h.value, h.value, c.value); - mpz_mod(h.value, h.value, p.value); - mpz_mul(h.value, h.value, q.value); - mpz_add(h.value, h.value, j2.value); - return h.to_bigint(); - } - -class GMP_RSA_Public_Operation : public PK_Ops::Verification, - public PK_Ops::Encryption - { - public: - GMP_RSA_Public_Operation(const RSA_PublicKey& rsa) : - n(rsa.get_n()), e(rsa.get_e()), mod(rsa.get_n()) - {} - - size_t max_input_bits() const { return (n.bits() - 1); } - bool with_recovery() const { return true; } - - SecureVector encrypt(const byte msg[], size_t msg_len, - RandomNumberGenerator&) - { - BigInt m(msg, msg_len); - return BigInt::encode_1363(public_op(m), n.bytes()); - } - - SecureVector verify_mr(const byte msg[], size_t msg_len) - { - BigInt m(msg, msg_len); - return BigInt::encode(public_op(m)); - } - - private: - BigInt public_op(const BigInt& m) const - { - if(m >= n) - throw Invalid_Argument("RSA public op - input is too large"); - - GMP_MPZ m_gmp(m); - mpz_powm(m_gmp.value, m_gmp.value, e.value, mod.value); - return m_gmp.to_bigint(); - } - - const BigInt& n; - const GMP_MPZ e, mod; - }; - -#endif - -} - -PK_Ops::Key_Agreement* -GMP_Engine::get_key_agreement_op(const Private_Key& key) const - { -#if defined(BOTAN_HAS_DIFFIE_HELLMAN) - if(const DH_PrivateKey* dh = dynamic_cast(&key)) - return new GMP_DH_KA_Operation(*dh); -#endif - - return 0; - } - -PK_Ops::Signature* -GMP_Engine::get_signature_op(const Private_Key& key) const - { -#if defined(BOTAN_HAS_RSA) - if(const RSA_PrivateKey* s = dynamic_cast(&key)) - return new GMP_RSA_Private_Operation(*s); -#endif - -#if defined(BOTAN_HAS_DSA) - if(const DSA_PrivateKey* s = dynamic_cast(&key)) - return new GMP_DSA_Signature_Operation(*s); -#endif - - return 0; - } - -PK_Ops::Verification* -GMP_Engine::get_verify_op(const Public_Key& key) const - { -#if defined(BOTAN_HAS_RSA) - if(const RSA_PublicKey* s = dynamic_cast(&key)) - return new GMP_RSA_Public_Operation(*s); -#endif - -#if defined(BOTAN_HAS_DSA) - if(const DSA_PublicKey* s = dynamic_cast(&key)) - return new GMP_DSA_Verification_Operation(*s); -#endif - - return 0; - } - -PK_Ops::Encryption* -GMP_Engine::get_encryption_op(const Public_Key& key) const - { -#if defined(BOTAN_HAS_RSA) - if(const RSA_PublicKey* s = dynamic_cast(&key)) - return new GMP_RSA_Public_Operation(*s); -#endif - - return 0; - } - -PK_Ops::Decryption* -GMP_Engine::get_decryption_op(const Private_Key& key) const - { -#if defined(BOTAN_HAS_RSA) - if(const RSA_PrivateKey* s = dynamic_cast(&key)) - return new GMP_RSA_Private_Operation(*s); -#endif - - return 0; - } - -} diff --git a/src/botan/src/engine/gnump/info.txt b/src/botan/src/engine/gnump/info.txt deleted file mode 100644 index 7a789681e..000000000 --- a/src/botan/src/engine/gnump/info.txt +++ /dev/null @@ -1,23 +0,0 @@ -define ENGINE_GNU_MP - -load_on request - - -all -> gmp - - - -gnump_engine.h -gmp_wrap.h - - - -gmp_mem.cpp -gmp_powm.cpp -gmp_wrap.cpp -gnump_pk.cpp - - - -bigint - diff --git a/src/botan/src/engine/info.txt b/src/botan/src/engine/info.txt deleted file mode 100644 index 0c73450bc..000000000 --- a/src/botan/src/engine/info.txt +++ /dev/null @@ -1,20 +0,0 @@ -define ENGINES - - -engine.h - - - -engine.cpp - - - -block -hash -libstate -mac -numbertheory -pbkdf -pubkey -stream - diff --git a/src/botan/src/entropy/entropy_src.h b/src/botan/src/entropy/entropy_src.h deleted file mode 100644 index 3f15b5907..000000000 --- a/src/botan/src/entropy/entropy_src.h +++ /dev/null @@ -1,141 +0,0 @@ -/* -* EntropySource -* (C) 2008-2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_ENTROPY_SOURCE_BASE_H__ -#define BOTAN_ENTROPY_SOURCE_BASE_H__ - -#include -#include - -namespace Botan { - -/** -* Class used to accumulate the poll results of EntropySources -*/ -class BOTAN_DLL Entropy_Accumulator - { - public: - /** - * Initialize an Entropy_Accumulator - * @param goal is how many bits we would like to collect - */ - Entropy_Accumulator(size_t goal) : - entropy_goal(goal), collected_bits(0) {} - - virtual ~Entropy_Accumulator() {} - - /** - * Get a cached I/O buffer (purely for minimizing allocation - * overhead to polls) - * - * @param size requested size for the I/O buffer - * @return cached I/O buffer for repeated polls - */ - MemoryRegion& get_io_buffer(size_t size) - { io_buffer.resize(size); return io_buffer; } - - /** - * @return number of bits collected so far - */ - size_t bits_collected() const - { return static_cast(collected_bits); } - - /** - * @return if our polling goal has been achieved - */ - bool polling_goal_achieved() const - { return (collected_bits >= entropy_goal); } - - /** - * @return how many bits we need to reach our polling goal - */ - size_t desired_remaining_bits() const - { - if(collected_bits >= entropy_goal) - return 0; - return static_cast(entropy_goal - collected_bits); - } - - /** - * Add entropy to the accumulator - * @param bytes the input bytes - * @param length specifies how many bytes the input is - * @param entropy_bits_per_byte is a best guess at how much - * entropy per byte is in this input - */ - void add(const void* bytes, size_t length, double entropy_bits_per_byte) - { - add_bytes(reinterpret_cast(bytes), length); - collected_bits += entropy_bits_per_byte * length; - } - - /** - * Add entropy to the accumulator - * @param v is some value - * @param entropy_bits_per_byte is a best guess at how much - * entropy per byte is in this input - */ - template - void add(const T& v, double entropy_bits_per_byte) - { - add(&v, sizeof(T), entropy_bits_per_byte); - } - private: - virtual void add_bytes(const byte bytes[], size_t length) = 0; - - SecureVector io_buffer; - size_t entropy_goal; - double collected_bits; - }; - -/** -* Entropy accumulator that puts the input into a Buffered_Computation -*/ -class BOTAN_DLL Entropy_Accumulator_BufferedComputation : - public Entropy_Accumulator - { - public: - /** - * @param sink the hash or MAC we are feeding the poll data into - * @param goal is how many bits we want to collect in this poll - */ - Entropy_Accumulator_BufferedComputation(Buffered_Computation& sink, - size_t goal) : - Entropy_Accumulator(goal), entropy_sink(sink) {} - - private: - virtual void add_bytes(const byte bytes[], size_t length) - { - entropy_sink.update(bytes, length); - } - - Buffered_Computation& entropy_sink; - }; - -/** -* Abstract interface to a source of (hopefully unpredictable) system entropy -*/ -class BOTAN_DLL EntropySource - { - public: - /** - * @return name identifying this entropy source - */ - virtual std::string name() const = 0; - - /** - * Perform an entropy gathering poll - * @param accum is an accumulator object that will be given entropy - */ - virtual void poll(Entropy_Accumulator& accum) = 0; - - virtual ~EntropySource() {} - }; - -} - -#endif diff --git a/src/botan/src/entropy/info.txt b/src/botan/src/entropy/info.txt deleted file mode 100644 index d991577f7..000000000 --- a/src/botan/src/entropy/info.txt +++ /dev/null @@ -1,3 +0,0 @@ - -algo_base - diff --git a/src/botan/src/filters/algo_filt.cpp b/src/botan/src/filters/algo_filt.cpp deleted file mode 100644 index 337733b5f..000000000 --- a/src/botan/src/filters/algo_filt.cpp +++ /dev/null @@ -1,135 +0,0 @@ -/* -* Filters -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -/* -* StreamCipher_Filter Constructor -*/ -StreamCipher_Filter::StreamCipher_Filter(StreamCipher* stream_cipher) : - buffer(DEFAULT_BUFFERSIZE) - { - cipher = stream_cipher; - } - -/* -* StreamCipher_Filter Constructor -*/ -StreamCipher_Filter::StreamCipher_Filter(StreamCipher* stream_cipher, - const SymmetricKey& key) : - buffer(DEFAULT_BUFFERSIZE) - { - cipher = stream_cipher; - cipher->set_key(key); - } - -/* -* StreamCipher_Filter Constructor -*/ -StreamCipher_Filter::StreamCipher_Filter(const std::string& sc_name) : - buffer(DEFAULT_BUFFERSIZE) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - cipher = af.make_stream_cipher(sc_name); - } - -/* -* StreamCipher_Filter Constructor -*/ -StreamCipher_Filter::StreamCipher_Filter(const std::string& sc_name, - const SymmetricKey& key) : - buffer(DEFAULT_BUFFERSIZE) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - cipher = af.make_stream_cipher(sc_name); - cipher->set_key(key); - } - -/* -* Set the IV of a stream cipher -*/ -void StreamCipher_Filter::set_iv(const InitializationVector& iv) - { - cipher->set_iv(iv.begin(), iv.length()); - } - -/* -* Write data into a StreamCipher_Filter -*/ -void StreamCipher_Filter::write(const byte input[], size_t length) - { - while(length) - { - size_t copied = std::min(length, buffer.size()); - cipher->cipher(input, &buffer[0], copied); - send(buffer, copied); - input += copied; - length -= copied; - } - } - -/* -* Hash_Filter Constructor -*/ -Hash_Filter::Hash_Filter(const std::string& algo_spec, - size_t len) : - OUTPUT_LENGTH(len) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - hash = af.make_hash_function(algo_spec); - } - -/* -* Complete a calculation by a Hash_Filter -*/ -void Hash_Filter::end_msg() - { - SecureVector output = hash->final(); - if(OUTPUT_LENGTH) - send(output, std::min(OUTPUT_LENGTH, output.size())); - else - send(output); - } - -/* -* MAC_Filter Constructor -*/ -MAC_Filter::MAC_Filter(const std::string& mac_name, size_t len) : - OUTPUT_LENGTH(len) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - mac = af.make_mac(mac_name); - } - -/* -* MAC_Filter Constructor -*/ -MAC_Filter::MAC_Filter(const std::string& mac_name, const SymmetricKey& key, - size_t len) : OUTPUT_LENGTH(len) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - mac = af.make_mac(mac_name); - mac->set_key(key); - } - -/* -* Complete a calculation by a MAC_Filter -*/ -void MAC_Filter::end_msg() - { - SecureVector output = mac->final(); - if(OUTPUT_LENGTH) - send(output, std::min(OUTPUT_LENGTH, output.size())); - else - send(output); - } - -} diff --git a/src/botan/src/filters/basefilt.cpp b/src/botan/src/filters/basefilt.cpp deleted file mode 100644 index eace9cfd5..000000000 --- a/src/botan/src/filters/basefilt.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/* -* Basic Filters -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -namespace Botan { - -void Keyed_Filter::set_iv(const InitializationVector& iv) - { - if(iv.length() != 0) - throw Invalid_IV_Length(name(), iv.length()); - } - -/* -* Chain Constructor -*/ -Chain::Chain(Filter* f1, Filter* f2, Filter* f3, Filter* f4) - { - if(f1) { attach(f1); incr_owns(); } - if(f2) { attach(f2); incr_owns(); } - if(f3) { attach(f3); incr_owns(); } - if(f4) { attach(f4); incr_owns(); } - } - -/* -* Chain Constructor -*/ -Chain::Chain(Filter* filters[], size_t count) - { - for(size_t j = 0; j != count; ++j) - if(filters[j]) - { - attach(filters[j]); - incr_owns(); - } - } - -std::string Chain::name() const - { - return "Chain"; - } - -/* -* Fork Constructor -*/ -Fork::Fork(Filter* f1, Filter* f2, Filter* f3, Filter* f4) - { - Filter* filters[4] = { f1, f2, f3, f4 }; - set_next(filters, 4); - } - -/* -* Fork Constructor -*/ -Fork::Fork(Filter* filters[], size_t count) - { - set_next(filters, count); - } - -std::string Fork::name() const - { - return "Fork"; - } - -} diff --git a/src/botan/src/filters/basefilt.h b/src/botan/src/filters/basefilt.h deleted file mode 100644 index adde3dd54..000000000 --- a/src/botan/src/filters/basefilt.h +++ /dev/null @@ -1,80 +0,0 @@ -/* -* Basic Filters -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_BASEFILT_H__ -#define BOTAN_BASEFILT_H__ - -#include - -namespace Botan { - -/** -* BitBucket is a filter which simply discards all inputs -*/ -struct BOTAN_DLL BitBucket : public Filter - { - void write(const byte[], size_t) {} - - std::string name() const { return "BitBucket"; } - }; - -/** -* This class represents Filter chains. A Filter chain is an ordered -* concatenation of Filters, the input to a Chain sequentially passes -* through all the Filters contained in the Chain. -*/ - -class BOTAN_DLL Chain : public Fanout_Filter - { - public: - void write(const byte input[], size_t length) { send(input, length); } - - std::string name() const; - - /** - * Construct a chain of up to four filters. The filters are set - * up in the same order as the arguments. - */ - Chain(Filter* = 0, Filter* = 0, Filter* = 0, Filter* = 0); - - /** - * Construct a chain from range of filters - * @param filter_arr the list of filters - * @param length how many filters - */ - Chain(Filter* filter_arr[], size_t length); - }; - -/** -* This class represents a fork filter, whose purpose is to fork the -* flow of data. It causes an input message to result in n messages at -* the end of the filter, where n is the number of forks. -*/ -class BOTAN_DLL Fork : public Fanout_Filter - { - public: - void write(const byte input[], size_t length) { send(input, length); } - void set_port(size_t n) { Fanout_Filter::set_port(n); } - - std::string name() const; - - /** - * Construct a Fork filter with up to four forks. - */ - Fork(Filter*, Filter*, Filter* = 0, Filter* = 0); - - /** - * Construct a Fork from range of filters - * @param filter_arr the list of filters - * @param length how many filters - */ - Fork(Filter* filter_arr[], size_t length); - }; - -} - -#endif diff --git a/src/botan/src/filters/buf_filt.cpp b/src/botan/src/filters/buf_filt.cpp deleted file mode 100644 index ca3fa9a3c..000000000 --- a/src/botan/src/filters/buf_filt.cpp +++ /dev/null @@ -1,103 +0,0 @@ -/* -* Buffered Filter -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -namespace Botan { - -/* -* Buffered_Filter Constructor -*/ -Buffered_Filter::Buffered_Filter(size_t b, size_t f) : - main_block_mod(b), final_minimum(f) - { - if(main_block_mod == 0) - throw std::invalid_argument("main_block_mod == 0"); - - if(final_minimum > main_block_mod) - throw std::invalid_argument("final_minimum > main_block_mod"); - - buffer.resize(2 * main_block_mod); - buffer_pos = 0; - } - -/* -* Buffer input into blocks, trying to minimize copying -*/ -void Buffered_Filter::write(const byte input[], size_t input_size) - { - if(!input_size) - return; - - if(buffer_pos + input_size >= main_block_mod + final_minimum) - { - size_t to_copy = std::min(buffer.size() - buffer_pos, input_size); - - copy_mem(&buffer[buffer_pos], input, to_copy); - buffer_pos += to_copy; - - input += to_copy; - input_size -= to_copy; - - size_t total_to_consume = - round_down(std::min(buffer_pos, - buffer_pos + input_size - final_minimum), - main_block_mod); - - buffered_block(&buffer[0], total_to_consume); - - buffer_pos -= total_to_consume; - - copy_mem(&buffer[0], &buffer[total_to_consume], buffer_pos); - } - - if(input_size >= final_minimum) - { - size_t full_blocks = (input_size - final_minimum) / main_block_mod; - size_t to_copy = full_blocks * main_block_mod; - - if(to_copy) - { - buffered_block(input, to_copy); - - input += to_copy; - input_size -= to_copy; - } - } - - copy_mem(&buffer[buffer_pos], input, input_size); - buffer_pos += input_size; - } - -/* -* Finish/flush operation -*/ -void Buffered_Filter::end_msg() - { - if(buffer_pos < final_minimum) - throw std::runtime_error("Buffered filter end_msg without enough input"); - - size_t spare_blocks = (buffer_pos - final_minimum) / main_block_mod; - - if(spare_blocks) - { - size_t spare_bytes = main_block_mod * spare_blocks; - buffered_block(&buffer[0], spare_bytes); - buffered_final(&buffer[spare_bytes], buffer_pos - spare_bytes); - } - else - { - buffered_final(&buffer[0], buffer_pos); - } - - buffer_pos = 0; - } - -} diff --git a/src/botan/src/filters/buf_filt.h b/src/botan/src/filters/buf_filt.h deleted file mode 100644 index 87180e3e1..000000000 --- a/src/botan/src/filters/buf_filt.h +++ /dev/null @@ -1,87 +0,0 @@ -/* -* Buffered Filter -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_BUFFERED_FILTER_H__ -#define BOTAN_BUFFERED_FILTER_H__ - -#include - -namespace Botan { - -/** -* Filter mixin that breaks input into blocks, useful for -* cipher modes -*/ -class BOTAN_DLL Buffered_Filter - { - public: - /** - * Write bytes into the buffered filter, which will them emit them - * in calls to buffered_block in the subclass - * @param in the input bytes - * @param length of in in bytes - */ - void write(const byte in[], size_t length); - - /** - * Finish a message, emitting to buffered_block and buffered_final - * Will throw an exception if less than final_minimum bytes were - * written into the filter. - */ - void end_msg(); - - /** - * Initialize a Buffered_Filter - * @param block_size the function buffered_block will be called - * with inputs which are a multiple of this size - * @param final_minimum the function buffered_final will be called - * with at least this many bytes. - */ - Buffered_Filter(size_t block_size, size_t final_minimum); - - virtual ~Buffered_Filter() {} - protected: - /** - * The block processor, implemented by subclasses - * @param input some input bytes - * @param length the size of input, guaranteed to be a multiple - * of block_size - */ - virtual void buffered_block(const byte input[], size_t length) = 0; - - /** - * The final block, implemented by subclasses - * @param input some input bytes - * @param length the size of input, guaranteed to be at least - * final_minimum bytes - */ - virtual void buffered_final(const byte input[], size_t length) = 0; - - /** - * @return block size of inputs - */ - size_t buffered_block_size() const { return main_block_mod; } - - /** - * @return current position in the buffer - */ - size_t current_position() const { return buffer_pos; } - - /** - * Reset the buffer position - */ - void buffer_reset() { buffer_pos = 0; } - private: - size_t main_block_mod, final_minimum; - - SecureVector buffer; - size_t buffer_pos; - }; - -} - -#endif diff --git a/src/botan/src/filters/codec_filt/b64_filt.cpp b/src/botan/src/filters/codec_filt/b64_filt.cpp deleted file mode 100644 index 34d00fdf5..000000000 --- a/src/botan/src/filters/codec_filt/b64_filt.cpp +++ /dev/null @@ -1,183 +0,0 @@ -/* -* Base64 Encoder/Decoder -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include - -namespace Botan { - -/* -* Base64_Encoder Constructor -*/ -Base64_Encoder::Base64_Encoder(bool breaks, size_t length, bool t_n) : - line_length(breaks ? length : 0), - trailing_newline(t_n && breaks), - in(48), - out(64), - position(0), - out_position(0) - { - } - -/* -* Encode and send a block -*/ -void Base64_Encoder::encode_and_send(const byte input[], size_t length, - bool final_inputs) - { - while(length) - { - const size_t proc = std::min(length, in.size()); - - size_t consumed = 0; - size_t produced = base64_encode(reinterpret_cast(&out[0]), input, - proc, consumed, final_inputs); - - do_output(&out[0], produced); - - // FIXME: s/proc/consumed/? - input += proc; - length -= proc; - } - } - -/* -* Handle the output -*/ -void Base64_Encoder::do_output(const byte input[], size_t length) - { - if(line_length == 0) - send(input, length); - else - { - size_t remaining = length, offset = 0; - while(remaining) - { - size_t sent = std::min(line_length - out_position, remaining); - send(input + offset, sent); - out_position += sent; - remaining -= sent; - offset += sent; - if(out_position == line_length) - { - send('\n'); - out_position = 0; - } - } - } - } - -/* -* Convert some data into Base64 -*/ -void Base64_Encoder::write(const byte input[], size_t length) - { - in.copy(position, input, length); - if(position + length >= in.size()) - { - encode_and_send(&in[0], in.size()); - input += (in.size() - position); - length -= (in.size() - position); - while(length >= in.size()) - { - encode_and_send(input, in.size()); - input += in.size(); - length -= in.size(); - } - in.copy(input, length); - position = 0; - } - position += length; - } - -/* -* Flush buffers -*/ -void Base64_Encoder::end_msg() - { - encode_and_send(&in[0], position, true); - - if(trailing_newline || (out_position && line_length)) - send('\n'); - - out_position = position = 0; - } - -/* -* Base64_Decoder Constructor -*/ -Base64_Decoder::Base64_Decoder(Decoder_Checking c) : - checking(c), in(64), out(48), position(0) - { - } - -/* -* Convert some data from Base64 -*/ -void Base64_Decoder::write(const byte input[], size_t length) - { - while(length) - { - size_t to_copy = std::min(length, in.size() - position); - if(to_copy == 0) - { - in.resize(in.size()*2); - out.resize(out.size()*2); - } - copy_mem(&in[position], input, to_copy); - position += to_copy; - - size_t consumed = 0; - size_t written = base64_decode(&out[0], - reinterpret_cast(&in[0]), - position, - consumed, - false, - checking != FULL_CHECK); - - send(out, written); - - if(consumed != position) - { - copy_mem(&in[0], &in[consumed], position - consumed); - position = position - consumed; - } - else - position = 0; - - length -= to_copy; - input += to_copy; - } - } - -/* -* Flush buffers -*/ -void Base64_Decoder::end_msg() - { - size_t consumed = 0; - size_t written = base64_decode(&out[0], - reinterpret_cast(&in[0]), - position, - consumed, - true, - checking != FULL_CHECK); - - send(out, written); - - const bool not_full_bytes = consumed != position; - - position = 0; - - if(not_full_bytes) - throw std::invalid_argument("Base64_Decoder: Input not full bytes"); - } - -} diff --git a/src/botan/src/filters/codec_filt/b64_filt.h b/src/botan/src/filters/codec_filt/b64_filt.h deleted file mode 100644 index afff53f30..000000000 --- a/src/botan/src/filters/codec_filt/b64_filt.h +++ /dev/null @@ -1,88 +0,0 @@ -/* -* Base64 Encoder/Decoder -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_BASE64_FILTER_H__ -#define BOTAN_BASE64_FILTER_H__ - -#include - -namespace Botan { - -/** -* This class represents a Base64 encoder. -*/ -class BOTAN_DLL Base64_Encoder : public Filter - { - public: - std::string name() const { return "Base64_Encoder"; } - - /** - * Input a part of a message to the encoder. - * @param input the message to input as a byte array - * @param length the length of the byte array input - */ - void write(const byte input[], size_t length); - - /** - * Inform the Encoder that the current message shall be closed. - */ - void end_msg(); - - /** - * Create a base64 encoder. - * @param breaks whether to use line breaks in the output - * @param length the length of the lines of the output - * @param t_n whether to use a trailing newline - */ - Base64_Encoder(bool breaks = false, size_t length = 72, - bool t_n = false); - private: - void encode_and_send(const byte input[], size_t length, - bool final_inputs = false); - void do_output(const byte output[], size_t length); - - const size_t line_length; - const bool trailing_newline; - MemoryVector in, out; - size_t position, out_position; - }; - -/** -* This object represents a Base64 decoder. -*/ -class BOTAN_DLL Base64_Decoder : public Filter - { - public: - std::string name() const { return "Base64_Decoder"; } - - /** - * Input a part of a message to the decoder. - * @param input the message to input as a byte array - * @param length the length of the byte array input - */ - void write(const byte input[], size_t length); - - /** - * Finish up the current message - */ - void end_msg(); - - /** - * Create a base64 decoder. - * @param checking the type of checking that shall be performed by - * the decoder - */ - Base64_Decoder(Decoder_Checking checking = NONE); - private: - const Decoder_Checking checking; - MemoryVector in, out; - size_t position; - }; - -} - -#endif diff --git a/src/botan/src/filters/codec_filt/hex_filt.cpp b/src/botan/src/filters/codec_filt/hex_filt.cpp deleted file mode 100644 index 3d56beec4..000000000 --- a/src/botan/src/filters/codec_filt/hex_filt.cpp +++ /dev/null @@ -1,172 +0,0 @@ -/* -* Hex Encoder/Decoder -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include - -namespace Botan { - -/** -* Size used for internal buffer in hex encoder/decoder -*/ -const size_t HEX_CODEC_BUFFER_SIZE = 256; - -/* -* Hex_Encoder Constructor -*/ -Hex_Encoder::Hex_Encoder(bool breaks, size_t length, Case c) : - casing(c), line_length(breaks ? length : 0) - { - in.resize(HEX_CODEC_BUFFER_SIZE); - out.resize(2*in.size()); - counter = position = 0; - } - -/* -* Hex_Encoder Constructor -*/ -Hex_Encoder::Hex_Encoder(Case c) : casing(c), line_length(0) - { - in.resize(HEX_CODEC_BUFFER_SIZE); - out.resize(2*in.size()); - counter = position = 0; - } - -/* -* Encode and send a block -*/ -void Hex_Encoder::encode_and_send(const byte block[], size_t length) - { - hex_encode(reinterpret_cast(&out[0]), - block, length, - casing == Uppercase); - - if(line_length == 0) - send(out, 2*length); - else - { - size_t remaining = 2*length, offset = 0; - while(remaining) - { - size_t sent = std::min(line_length - counter, remaining); - send(&out[offset], sent); - counter += sent; - remaining -= sent; - offset += sent; - if(counter == line_length) - { - send('\n'); - counter = 0; - } - } - } - } - -/* -* Convert some data into hex format -*/ -void Hex_Encoder::write(const byte input[], size_t length) - { - in.copy(position, input, length); - if(position + length >= in.size()) - { - encode_and_send(&in[0], in.size()); - input += (in.size() - position); - length -= (in.size() - position); - while(length >= in.size()) - { - encode_and_send(input, in.size()); - input += in.size(); - length -= in.size(); - } - in.copy(input, length); - position = 0; - } - position += length; - } - -/* -* Flush buffers -*/ -void Hex_Encoder::end_msg() - { - encode_and_send(&in[0], position); - if(counter && line_length) - send('\n'); - counter = position = 0; - } - -/* -* Hex_Decoder Constructor -*/ -Hex_Decoder::Hex_Decoder(Decoder_Checking c) : checking(c) - { - in.resize(HEX_CODEC_BUFFER_SIZE); - out.resize(in.size() / 2); - position = 0; - } - -/* -* Convert some data from hex format -*/ -void Hex_Decoder::write(const byte input[], size_t length) - { - while(length) - { - size_t to_copy = std::min(length, in.size() - position); - copy_mem(&in[position], input, to_copy); - position += to_copy; - - size_t consumed = 0; - size_t written = hex_decode(&out[0], - reinterpret_cast(&in[0]), - position, - consumed, - checking != FULL_CHECK); - - send(out, written); - - if(consumed != position) - { - copy_mem(&in[0], &in[consumed], position - consumed); - position = position - consumed; - } - else - position = 0; - - length -= to_copy; - input += to_copy; - } - } - -/* -* Flush buffers -*/ -void Hex_Decoder::end_msg() - { - size_t consumed = 0; - size_t written = hex_decode(&out[0], - reinterpret_cast(&in[0]), - position, - consumed, - checking != FULL_CHECK); - - send(out, written); - - const bool not_full_bytes = consumed != position; - - position = 0; - - if(not_full_bytes) - throw std::invalid_argument("Hex_Decoder: Input not full bytes"); - } - -} diff --git a/src/botan/src/filters/codec_filt/hex_filt.h b/src/botan/src/filters/codec_filt/hex_filt.h deleted file mode 100644 index 0dc38c804..000000000 --- a/src/botan/src/filters/codec_filt/hex_filt.h +++ /dev/null @@ -1,81 +0,0 @@ -/* -* Hex Encoder/Decoder -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_HEX_FILTER_H__ -#define BOTAN_HEX_FILTER_H__ - -#include - -namespace Botan { - -/** -* Converts arbitrary binary data to hex strings, optionally with -* newlines inserted -*/ -class BOTAN_DLL Hex_Encoder : public Filter - { - public: - /** - * Whether to use uppercase or lowercase letters for the encoded string. - */ - enum Case { Uppercase, Lowercase }; - - std::string name() const { return "Hex_Encoder"; } - - void write(const byte in[], size_t length); - void end_msg(); - - /** - * Create a hex encoder. - * @param the_case the case to use in the encoded strings. - */ - Hex_Encoder(Case the_case); - - /** - * Create a hex encoder. - * @param newlines should newlines be used - * @param line_length if newlines are used, how long are lines - * @param the_case the case to use in the encoded strings - */ - Hex_Encoder(bool newlines = false, - size_t line_length = 72, - Case the_case = Uppercase); - private: - void encode_and_send(const byte[], size_t); - - const Case casing; - const size_t line_length; - MemoryVector in, out; - size_t position, counter; - }; - -/** -* Converts hex strings to bytes -*/ -class BOTAN_DLL Hex_Decoder : public Filter - { - public: - std::string name() const { return "Hex_Decoder"; } - - void write(const byte[], size_t); - void end_msg(); - - /** - * Construct a Hex Decoder using the specified - * character checking. - * @param checking the checking to use during decoding. - */ - Hex_Decoder(Decoder_Checking checking = NONE); - private: - const Decoder_Checking checking; - MemoryVector in, out; - size_t position; - }; - -} - -#endif diff --git a/src/botan/src/filters/codec_filt/info.txt b/src/botan/src/filters/codec_filt/info.txt deleted file mode 100644 index 080cc8f44..000000000 --- a/src/botan/src/filters/codec_filt/info.txt +++ /dev/null @@ -1,5 +0,0 @@ -define CODEC_FILTERS - - -filters - diff --git a/src/botan/src/filters/data_snk.cpp b/src/botan/src/filters/data_snk.cpp deleted file mode 100644 index d651dcba7..000000000 --- a/src/botan/src/filters/data_snk.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/* -* DataSink -* (C) 1999-2007 Jack Lloyd -* 2005 Matthew Gregan -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -/* -* Write to a stream -*/ -void DataSink_Stream::write(const byte out[], size_t length) - { - sink.write(reinterpret_cast(out), length); - if(!sink.good()) - throw Stream_IO_Error("DataSink_Stream: Failure writing to " + - identifier); - } - -/* -* DataSink_Stream Constructor -*/ -DataSink_Stream::DataSink_Stream(std::ostream& out, - const std::string& name) : - identifier(name), - sink_p(0), - sink(out) - { - } - -/* -* DataSink_Stream Constructor -*/ -DataSink_Stream::DataSink_Stream(const std::string& path, - bool use_binary) : - identifier(path), - sink_p(new std::ofstream( - path.c_str(), - use_binary ? std::ios::binary : std::ios::out)), - sink(*sink_p) - { - if(!sink.good()) - { - delete sink_p; - throw Stream_IO_Error("DataSink_Stream: Failure opening " + path); - } - } - -/* -* DataSink_Stream Destructor -*/ -DataSink_Stream::~DataSink_Stream() - { - delete sink_p; - } - -} diff --git a/src/botan/src/filters/data_snk.h b/src/botan/src/filters/data_snk.h deleted file mode 100644 index e31cb9d28..000000000 --- a/src/botan/src/filters/data_snk.h +++ /dev/null @@ -1,67 +0,0 @@ -/* -* DataSink -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_DATA_SINK_H__ -#define BOTAN_DATA_SINK_H__ - -#include -#include - -namespace Botan { - -/** -* This class represents abstract data sink objects. -*/ -class BOTAN_DLL DataSink : public Filter - { - public: - bool attachable() { return false; } - DataSink() {} - virtual ~DataSink() {} - private: - DataSink& operator=(const DataSink&) { return (*this); } - DataSink(const DataSink&); - }; - -/** -* This class represents a data sink which writes its output to a stream. -*/ -class BOTAN_DLL DataSink_Stream : public DataSink - { - public: - std::string name() const { return identifier; } - - void write(const byte[], size_t); - - /** - * Construct a DataSink_Stream from a stream. - * @param stream the stream to write to - * @param name identifier - */ - DataSink_Stream(std::ostream& stream, - const std::string& name = ""); - - /** - * Construct a DataSink_Stream from a stream. - * @param pathname the name of the file to open a stream to - * @param use_binary indicates whether to treat the file - * as a binary file or not - */ - DataSink_Stream(const std::string& pathname, - bool use_binary = false); - - ~DataSink_Stream(); - private: - const std::string identifier; - - std::ostream* sink_p; - std::ostream& sink; - }; - -} - -#endif diff --git a/src/botan/src/filters/data_src.cpp b/src/botan/src/filters/data_src.cpp deleted file mode 100644 index b69601336..000000000 --- a/src/botan/src/filters/data_src.cpp +++ /dev/null @@ -1,221 +0,0 @@ -/* -* DataSource -* (C) 1999-2007 Jack Lloyd -* 2005 Matthew Gregan -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -namespace Botan { - -/* -* Read a single byte from the DataSource -*/ -size_t DataSource::read_byte(byte& out) - { - return read(&out, 1); - } - -/* -* Peek a single byte from the DataSource -*/ -size_t DataSource::peek_byte(byte& out) const - { - return peek(&out, 1, 0); - } - -/* -* Discard the next N bytes of the data -*/ -size_t DataSource::discard_next(size_t n) - { - size_t discarded = 0; - byte dummy; - for(size_t j = 0; j != n; ++j) - discarded += read_byte(dummy); - return discarded; - } - -/* -* Read from a memory buffer -*/ -size_t DataSource_Memory::read(byte out[], size_t length) - { - size_t got = std::min(source.size() - offset, length); - copy_mem(out, &source[offset], got); - offset += got; - return got; - } - -/* -* Peek into a memory buffer -*/ -size_t DataSource_Memory::peek(byte out[], size_t length, - size_t peek_offset) const - { - const size_t bytes_left = source.size() - offset; - if(peek_offset >= bytes_left) return 0; - - size_t got = std::min(bytes_left - peek_offset, length); - copy_mem(out, &source[offset + peek_offset], got); - return got; - } - -/* -* Check if the memory buffer is empty -*/ -bool DataSource_Memory::end_of_data() const - { - return (offset == source.size()); - } - -/* -* DataSource_Memory Constructor -*/ -DataSource_Memory::DataSource_Memory(const byte in[], size_t length) : - source(in, length) - { - offset = 0; - } - -/* -* DataSource_Memory Constructor -*/ -DataSource_Memory::DataSource_Memory(const MemoryRegion& in) : - source(in) - { - offset = 0; - } - -/* -* DataSource_Memory Constructor -*/ -DataSource_Memory::DataSource_Memory(const std::string& in) : - source(reinterpret_cast(in.data()), in.length()) - { - offset = 0; - } - -bool DataSource_Memory::check_available(size_t n) - { - return (n <= (source.size() - offset)); - } - -/* -* Read from a stream -*/ -size_t DataSource_Stream::read(byte out[], size_t length) - { - source.read(reinterpret_cast(out), length); - if(source.bad()) - throw Stream_IO_Error("DataSource_Stream::read: Source failure"); - - size_t got = source.gcount(); - total_read += got; - return got; - } - -bool DataSource_Stream::check_available(size_t n) - { - const std::streampos orig_pos = source.tellg(); - source.seekg(0, std::ios::end); - const size_t avail = source.tellg() - orig_pos; - source.seekg(orig_pos); - return (avail >= n); - } - -/* -* Peek into a stream -*/ -size_t DataSource_Stream::peek(byte out[], size_t length, size_t offset) const - { - if(end_of_data()) - throw Invalid_State("DataSource_Stream: Cannot peek when out of data"); - - size_t got = 0; - - if(offset) - { - SecureVector buf(offset); - source.read(reinterpret_cast(&buf[0]), buf.size()); - if(source.bad()) - throw Stream_IO_Error("DataSource_Stream::peek: Source failure"); - got = source.gcount(); - } - - if(got == offset) - { - source.read(reinterpret_cast(out), length); - if(source.bad()) - throw Stream_IO_Error("DataSource_Stream::peek: Source failure"); - got = source.gcount(); - } - - if(source.eof()) - source.clear(); - source.seekg(total_read, std::ios::beg); - - return got; - } - -/* -* Check if the stream is empty or in error -*/ -bool DataSource_Stream::end_of_data() const - { - return (!source.good()); - } - -/* -* Return a human-readable ID for this stream -*/ -std::string DataSource_Stream::id() const - { - return identifier; - } - -/* -* DataSource_Stream Constructor -*/ -DataSource_Stream::DataSource_Stream(const std::string& path, - bool use_binary) : - identifier(path), - source_p(new std::ifstream( - path.c_str(), - use_binary ? std::ios::binary : std::ios::in)), - source(*source_p), - total_read(0) - { - if(!source.good()) - { - delete source_p; - throw Stream_IO_Error("DataSource: Failure opening file " + path); - } - } - -/* -* DataSource_Stream Constructor -*/ -DataSource_Stream::DataSource_Stream(std::istream& in, - const std::string& name) : - identifier(name), - source_p(0), - source(in), - total_read(0) - { - } - -/* -* DataSource_Stream Destructor -*/ -DataSource_Stream::~DataSource_Stream() - { - delete source_p; - } - -} diff --git a/src/botan/src/filters/data_src.h b/src/botan/src/filters/data_src.h deleted file mode 100644 index 36d705760..000000000 --- a/src/botan/src/filters/data_src.h +++ /dev/null @@ -1,158 +0,0 @@ -/* -* DataSource -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_DATA_SRC_H__ -#define BOTAN_DATA_SRC_H__ - -#include -#include -#include - -namespace Botan { - -/** -* This class represents an abstract data source object. -*/ -class BOTAN_DLL DataSource - { - public: - /** - * Read from the source. Moves the internal offset so that every - * call to read will return a new portion of the source. - * - * @param out the byte array to write the result to - * @param length the length of the byte array out - * @return length in bytes that was actually read and put - * into out - */ - virtual size_t read(byte out[], size_t length) = 0; - - /** - * Read from the source but do not modify the internal - * offset. Consecutive calls to peek() will return portions of - * the source starting at the same position. - * - * @param out the byte array to write the output to - * @param length the length of the byte array out - * @param peek_offset the offset into the stream to read at - * @return length in bytes that was actually read and put - * into out - */ - virtual size_t peek(byte out[], size_t length, - size_t peek_offset) const = 0; - - /** - * Test whether the source still has data that can be read. - * @return true if there is still data to read, false otherwise - */ - virtual bool end_of_data() const = 0; - /** - * return the id of this data source - * @return std::string representing the id of this data source - */ - virtual std::string id() const { return ""; } - - virtual bool check_available(size_t n) = 0; - - /** - * Read one byte. - * @param out the byte to read to - * @return length in bytes that was actually read and put - * into out - */ - size_t read_byte(byte& out); - - /** - * Peek at one byte. - * @param out an output byte - * @return length in bytes that was actually read and put - * into out - */ - size_t peek_byte(byte& out) const; - - /** - * Discard the next N bytes of the data - * @param N the number of bytes to discard - * @return number of bytes actually discarded - */ - size_t discard_next(size_t N); - - DataSource() {} - virtual ~DataSource() {} - private: - DataSource& operator=(const DataSource&) { return (*this); } - DataSource(const DataSource&); - }; - -/** -* This class represents a Memory-Based DataSource -*/ -class BOTAN_DLL DataSource_Memory : public DataSource - { - public: - size_t read(byte[], size_t); - size_t peek(byte[], size_t, size_t) const; - bool check_available(size_t n); - bool end_of_data() const; - - /** - * Construct a memory source that reads from a string - * @param in the string to read from - */ - DataSource_Memory(const std::string& in); - - /** - * Construct a memory source that reads from a byte array - * @param in the byte array to read from - * @param length the length of the byte array - */ - DataSource_Memory(const byte in[], size_t length); - - /** - * Construct a memory source that reads from a MemoryRegion - * @param in the MemoryRegion to read from - */ - DataSource_Memory(const MemoryRegion& in); - private: - SecureVector source; - size_t offset; - }; - -/** -* This class represents a Stream-Based DataSource. -*/ -class BOTAN_DLL DataSource_Stream : public DataSource - { - public: - size_t read(byte[], size_t); - size_t peek(byte[], size_t, size_t) const; - bool check_available(size_t n); - bool end_of_data() const; - std::string id() const; - - DataSource_Stream(std::istream&, - const std::string& id = ""); - - /** - * Construct a Stream-Based DataSource from file - * @param file the name of the file - * @param use_binary whether to treat the file as binary or not - */ - DataSource_Stream(const std::string& file, bool use_binary = false); - - ~DataSource_Stream(); - private: - const std::string identifier; - - std::istream* source_p; - std::istream& source; - size_t total_read; - }; - -} - -#endif diff --git a/src/botan/src/filters/filter.cpp b/src/botan/src/filters/filter.cpp deleted file mode 100644 index af3ed15fe..000000000 --- a/src/botan/src/filters/filter.cpp +++ /dev/null @@ -1,127 +0,0 @@ -/* -* Filter -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -/* -* Filter Constructor -*/ -Filter::Filter() - { - next.resize(1); - port_num = 0; - filter_owns = 0; - owned = false; - } - -/* -* Send data to all ports -*/ -void Filter::send(const byte input[], size_t length) - { - bool nothing_attached = true; - for(size_t j = 0; j != total_ports(); ++j) - if(next[j]) - { - if(write_queue.size()) - next[j]->write(&write_queue[0], write_queue.size()); - next[j]->write(input, length); - nothing_attached = false; - } - - if(nothing_attached) - write_queue += std::make_pair(input, length); - else - write_queue.clear(); - } - -/* -* Start a new message -*/ -void Filter::new_msg() - { - start_msg(); - for(size_t j = 0; j != total_ports(); ++j) - if(next[j]) - next[j]->new_msg(); - } - -/* -* End the current message -*/ -void Filter::finish_msg() - { - end_msg(); - for(size_t j = 0; j != total_ports(); ++j) - if(next[j]) - next[j]->finish_msg(); - } - -/* -* Attach a filter to the current port -*/ -void Filter::attach(Filter* new_filter) - { - if(new_filter) - { - Filter* last = this; - while(last->get_next()) - last = last->get_next(); - last->next[last->current_port()] = new_filter; - } - } - -/* -* Set the active port on a filter -*/ -void Filter::set_port(size_t new_port) - { - if(new_port >= total_ports()) - throw Invalid_Argument("Filter: Invalid port number"); - port_num = new_port; - } - -/* -* Return the next Filter in the logical chain -*/ -Filter* Filter::get_next() const - { - if(port_num < next.size()) - return next[port_num]; - return 0; - } - -/* -* Set the next Filters -*/ -void Filter::set_next(Filter* filters[], size_t size) - { - next.clear(); - - port_num = 0; - filter_owns = 0; - - while(size && filters && filters[size-1] == 0) - --size; - - if(filters && size) - next.assign(filters, filters + size); - } - -/* -* Return the total number of ports -*/ -size_t Filter::total_ports() const - { - return next.size(); - } - -} diff --git a/src/botan/src/filters/filter.h b/src/botan/src/filters/filter.h deleted file mode 100644 index 962b2816e..000000000 --- a/src/botan/src/filters/filter.h +++ /dev/null @@ -1,159 +0,0 @@ -/* -* Filter -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_FILTER_H__ -#define BOTAN_FILTER_H__ - -#include -#include - -namespace Botan { - -/** -* This class represents general abstract filter objects. -*/ -class BOTAN_DLL Filter - { - public: - /** - * @return descriptive name for this filter - */ - virtual std::string name() const = 0; - - /** - * Write a portion of a message to this filter. - * @param input the input as a byte array - * @param length the length of the byte array input - */ - virtual void write(const byte input[], size_t length) = 0; - - /** - * Start a new message. Must be closed by end_msg() before another - * message can be started. - */ - virtual void start_msg() {} - - /** - * Notify that the current message is finished; flush buffers and - * do end-of-message processing (if any). - */ - virtual void end_msg() {} - - /** - * Check whether this filter is an attachable filter. - * @return true if this filter is attachable, false otherwise - */ - virtual bool attachable() { return true; } - - virtual ~Filter() {} - protected: - /** - * @param in some input for the filter - * @param length the length of in - */ - void send(const byte in[], size_t length); - - /** - * @param in some input for the filter - */ - void send(byte in) { send(&in, 1); } - - /** - * @param in some input for the filter - */ - void send(const MemoryRegion& in) { send(&in[0], in.size()); } - - /** - * @param in some input for the filter - * @param length the number of bytes of in to send - */ - void send(const MemoryRegion& in, size_t length) - { - send(&in[0], length); - } - - Filter(); - private: - Filter(const Filter&) {} - Filter& operator=(const Filter&) { return (*this); } - - /** - * Start a new message in *this and all following filters. Only for - * internal use, not intended for use in client applications. - */ - void new_msg(); - - /** - * End a new message in *this and all following filters. Only for - * internal use, not intended for use in client applications. - */ - void finish_msg(); - - friend class Pipe; - friend class Fanout_Filter; - - size_t total_ports() const; - size_t current_port() const { return port_num; } - - /** - * Set the active port - * @param new_port the new value - */ - void set_port(size_t new_port); - - size_t owns() const { return filter_owns; } - - /** - * Attach another filter to this one - * @param f filter to attach - */ - void attach(Filter* f); - - /** - * @param filters the filters to set - * @param count number of items in filters - */ - void set_next(Filter* filters[], size_t count); - Filter* get_next() const; - - SecureVector write_queue; - std::vector next; - size_t port_num, filter_owns; - - // true if filter belongs to a pipe --> prohibit filter sharing! - bool owned; - }; - -/** -* This is the abstract Fanout_Filter base class. -**/ -class BOTAN_DLL Fanout_Filter : public Filter - { - protected: - /** - * Increment the number of filters past us that we own - */ - void incr_owns() { ++filter_owns; } - - void set_port(size_t n) { Filter::set_port(n); } - - void set_next(Filter* f[], size_t n) { Filter::set_next(f, n); } - - void attach(Filter* f) { Filter::attach(f); } - }; - -/** -* The type of checking to be performed by decoders: -* NONE - no checks, IGNORE_WS - perform checks, but ignore -* whitespaces, FULL_CHECK - perform checks, also complain -* about white spaces. -*/ -enum Decoder_Checking { NONE, IGNORE_WS, FULL_CHECK }; - -} - -#endif diff --git a/src/botan/src/filters/filters.h b/src/botan/src/filters/filters.h deleted file mode 100644 index b409e78f5..000000000 --- a/src/botan/src/filters/filters.h +++ /dev/null @@ -1,225 +0,0 @@ -/* -* Filters -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_FILTERS_H__ -#define BOTAN_FILTERS_H__ - -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -#if defined(BOTAN_HAS_CODEC_FILTERS) - #include - #include -#endif - -namespace Botan { - -/** -* Stream Cipher Filter. -*/ -class BOTAN_DLL StreamCipher_Filter : public Keyed_Filter - { - public: - - std::string name() const { return cipher->name(); } - - /** - * Write input data - * @param input data - * @param input_len length of input in bytes - */ - void write(const byte input[], size_t input_len); - - bool valid_iv_length(size_t iv_len) const - { return cipher->valid_iv_length(iv_len); } - - /** - * Set the initialization vector for this filter. - * @param iv the initialization vector to set - */ - void set_iv(const InitializationVector& iv); - - /** - * Set the key of this filter. - * @param key the key to set - */ - void set_key(const SymmetricKey& key) { cipher->set_key(key); } - - /** - * Check whether a key length is valid for this filter. - * @param length the key length to be checked for validity - * @return true if the key length is valid, false otherwise - */ - bool valid_keylength(size_t length) const - { return cipher->valid_keylength(length); } - - /** - * Construct a stream cipher filter. - * @param cipher_obj a cipher object to use - */ - StreamCipher_Filter(StreamCipher* cipher_obj); - - /** - * Construct a stream cipher filter. - * @param cipher_obj a cipher object to use - * @param key the key to use inside this filter - */ - StreamCipher_Filter(StreamCipher* cipher_obj, const SymmetricKey& key); - - /** - * Construct a stream cipher filter. - * @param cipher the name of the desired cipher - */ - StreamCipher_Filter(const std::string& cipher); - - /** - * Construct a stream cipher filter. - * @param cipher the name of the desired cipher - * @param key the key to use inside this filter - */ - StreamCipher_Filter(const std::string& cipher, const SymmetricKey& key); - - ~StreamCipher_Filter() { delete cipher; } - private: - SecureVector buffer; - StreamCipher* cipher; - }; - -/** -* Hash Filter. -*/ -class BOTAN_DLL Hash_Filter : public Filter - { - public: - void write(const byte input[], size_t len) { hash->update(input, len); } - void end_msg(); - - std::string name() const { return hash->name(); } - - /** - * Construct a hash filter. - * @param hash_fun the hash function to use - * @param len the output length of this filter. Leave the default - * value 0 if you want to use the full output of the hashfunction - * hash. Otherwise, specify a smaller value here so that the - * output of the hash algorithm will be cut off. - */ - Hash_Filter(HashFunction* hash_fun, size_t len = 0) : - OUTPUT_LENGTH(len), hash(hash_fun) {} - - /** - * Construct a hash filter. - * @param request the name of the hash algorithm to use - * @param len the output length of this filter. Leave the default - * value 0 if you want to use the full output of the hashfunction - * hash. Otherwise, specify a smaller value here so that the - * output of the hash algorithm will be cut off. - */ - Hash_Filter(const std::string& request, size_t len = 0); - - ~Hash_Filter() { delete hash; } - private: - const size_t OUTPUT_LENGTH; - HashFunction* hash; - }; - -/** -* MessageAuthenticationCode Filter. -*/ -class BOTAN_DLL MAC_Filter : public Keyed_Filter - { - public: - void write(const byte input[], size_t len) { mac->update(input, len); } - void end_msg(); - - std::string name() const { return mac->name(); } - - /** - * Set the key of this filter. - * @param key the key to set - */ - void set_key(const SymmetricKey& key) { mac->set_key(key); } - - /** - * Check whether a key length is valid for this filter. - * @param length the key length to be checked for validity - * @return true if the key length is valid, false otherwise - */ - bool valid_keylength(size_t length) const - { return mac->valid_keylength(length); } - - /** - * Construct a MAC filter. The MAC key will be left empty. - * @param mac_obj the MAC to use - * @param out_len the output length of this filter. Leave the default - * value 0 if you want to use the full output of the - * MAC. Otherwise, specify a smaller value here so that the - * output of the MAC will be cut off. - */ - MAC_Filter(MessageAuthenticationCode* mac_obj, - size_t out_len = 0) : OUTPUT_LENGTH(out_len) - { - mac = mac_obj; - } - - /** - * Construct a MAC filter. - * @param mac_obj the MAC to use - * @param key the MAC key to use - * @param out_len the output length of this filter. Leave the default - * value 0 if you want to use the full output of the - * MAC. Otherwise, specify a smaller value here so that the - * output of the MAC will be cut off. - */ - MAC_Filter(MessageAuthenticationCode* mac_obj, - const SymmetricKey& key, - size_t out_len = 0) : OUTPUT_LENGTH(out_len) - { - mac = mac_obj; - mac->set_key(key); - } - - /** - * Construct a MAC filter. The MAC key will be left empty. - * @param mac the name of the MAC to use - * @param len the output length of this filter. Leave the default - * value 0 if you want to use the full output of the - * MAC. Otherwise, specify a smaller value here so that the - * output of the MAC will be cut off. - */ - MAC_Filter(const std::string& mac, size_t len = 0); - - /** - * Construct a MAC filter. - * @param mac the name of the MAC to use - * @param key the MAC key to use - * @param len the output length of this filter. Leave the default - * value 0 if you want to use the full output of the - * MAC. Otherwise, specify a smaller value here so that the - * output of the MAC will be cut off. - */ - MAC_Filter(const std::string& mac, const SymmetricKey& key, - size_t len = 0); - - ~MAC_Filter() { delete mac; } - private: - const size_t OUTPUT_LENGTH; - MessageAuthenticationCode* mac; - }; - -} - -#endif diff --git a/src/botan/src/filters/info.txt b/src/botan/src/filters/info.txt deleted file mode 100644 index fde5780f4..000000000 --- a/src/botan/src/filters/info.txt +++ /dev/null @@ -1,43 +0,0 @@ -define FILTERS - - -algo_filt.cpp -basefilt.cpp -buf_filt.cpp -data_snk.cpp -data_src.cpp -filter.cpp -out_buf.cpp -pipe.cpp -pipe_io.cpp -pipe_rw.cpp -secqueue.cpp - - - -basefilt.h -buf_filt.h -data_snk.h -data_src.h -filter.h -filters.h -key_filt.h -pipe.h -secqueue.h - - - -out_buf.h - - - -alloc -asn1 -block -hash -libstate -mac -rng -stream -algo_base - diff --git a/src/botan/src/filters/key_filt.h b/src/botan/src/filters/key_filt.h deleted file mode 100644 index 3c79ebac9..000000000 --- a/src/botan/src/filters/key_filt.h +++ /dev/null @@ -1,54 +0,0 @@ -/* -* Keyed_Filter -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_KEYED_FILTER_H__ -#define BOTAN_KEYED_FILTER_H__ - -#include -#include - -namespace Botan { - -/** -* This class represents keyed filters, i.e. filters that have to be -* fed with a key in order to function. -*/ -class BOTAN_DLL Keyed_Filter : public Filter - { - public: - /** - * Set the key of this filter - * @param key the key to use - */ - virtual void set_key(const SymmetricKey& key) = 0; - - /** - * Set the initialization vector of this filter. Note: you should - * call set_iv() only after you have called set_key() - * @param iv the initialization vector to use - */ - virtual void set_iv(const InitializationVector& iv); - - /** - * Check whether a key length is valid for this filter - * @param length the key length to be checked for validity - * @return true if the key length is valid, false otherwise - */ - virtual bool valid_keylength(size_t length) const = 0; - - /** - * Check whether an IV length is valid for this filter - * @param length the IV length to be checked for validity - * @return true if the IV length is valid, false otherwise - */ - virtual bool valid_iv_length(size_t length) const - { return (length == 0); } - }; - -} - -#endif diff --git a/src/botan/src/filters/modes/mode_pad/info.txt b/src/botan/src/filters/modes/mode_pad/info.txt deleted file mode 100644 index e97ea03a5..000000000 --- a/src/botan/src/filters/modes/mode_pad/info.txt +++ /dev/null @@ -1 +0,0 @@ -define CIPHER_MODE_PADDING diff --git a/src/botan/src/filters/modes/mode_pad/mode_pad.cpp b/src/botan/src/filters/modes/mode_pad/mode_pad.cpp deleted file mode 100644 index 495a0abe9..000000000 --- a/src/botan/src/filters/modes/mode_pad/mode_pad.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/* -* CBC Padding Methods -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -/* -* Default amount of padding -*/ -size_t BlockCipherModePaddingMethod::pad_bytes(size_t bs, size_t pos) const - { - return (bs - pos); - } - -/* -* Pad with PKCS #7 Method -*/ -void PKCS7_Padding::pad(byte block[], size_t size, size_t position) const - { - const size_t bytes_remaining = size - position; - const byte pad_value = static_cast(bytes_remaining); - - BOTAN_ASSERT_EQUAL(pad_value, bytes_remaining, - "Overflow in PKCS7_Padding"); - - for(size_t j = 0; j != size; ++j) - block[j] = pad_value; - } - -/* -* Unpad with PKCS #7 Method -*/ -size_t PKCS7_Padding::unpad(const byte block[], size_t size) const - { - size_t position = block[size-1]; - if(position > size) - throw Decoding_Error(name()); - for(size_t j = size-position; j != size-1; ++j) - if(block[j] != position) - throw Decoding_Error(name()); - return (size-position); - } - -/* -* Query if the size is valid for this method -*/ -bool PKCS7_Padding::valid_blocksize(size_t size) const - { - if(size > 0 && size < 256) - return true; - else - return false; - } - -/* -* Pad with ANSI X9.23 Method -*/ -void ANSI_X923_Padding::pad(byte block[], size_t size, size_t position) const - { - for(size_t j = 0; j != size-position; ++j) - block[j] = 0; - block[size-position-1] = static_cast(size-position); - } - -/* -* Unpad with ANSI X9.23 Method -*/ -size_t ANSI_X923_Padding::unpad(const byte block[], size_t size) const - { - size_t position = block[size-1]; - if(position > size) - throw Decoding_Error(name()); - for(size_t j = size-position; j != size-1; ++j) - if(block[j] != 0) - throw Decoding_Error(name()); - return (size-position); - } - -/* -* Query if the size is valid for this method -*/ -bool ANSI_X923_Padding::valid_blocksize(size_t size) const - { - if(size > 0 && size < 256) - return true; - else - return false; - } - -/* -* Pad with One and Zeros Method -*/ -void OneAndZeros_Padding::pad(byte block[], size_t size, size_t) const - { - block[0] = 0x80; - for(size_t j = 1; j != size; ++j) - block[j] = 0x00; - } - -/* -* Unpad with One and Zeros Method -*/ -size_t OneAndZeros_Padding::unpad(const byte block[], size_t size) const - { - while(size) - { - if(block[size-1] == 0x80) - break; - if(block[size-1] != 0x00) - throw Decoding_Error(name()); - size--; - } - if(!size) - throw Decoding_Error(name()); - return (size-1); - } - -/* -* Query if the size is valid for this method -*/ -bool OneAndZeros_Padding::valid_blocksize(size_t size) const - { - return (size > 0); - } - -} diff --git a/src/botan/src/filters/modes/mode_pad/mode_pad.h b/src/botan/src/filters/modes/mode_pad/mode_pad.h deleted file mode 100644 index 48cda02f4..000000000 --- a/src/botan/src/filters/modes/mode_pad/mode_pad.h +++ /dev/null @@ -1,120 +0,0 @@ -/* -* CBC Padding Methods -* (C) 1999-2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_CBC_PADDING_H__ -#define BOTAN_CBC_PADDING_H__ - -#include -#include - -namespace Botan { - -/** -* Block Cipher Mode Padding Method -* This class is pretty limited, it cannot deal well with -* randomized padding methods, or any padding method that -* wants to add more than one block. For instance, it should -* be possible to define cipher text stealing mode as simply -* a padding mode for CBC, which happens to consume the last -* two block (and requires use of the block cipher). -*/ -class BOTAN_DLL BlockCipherModePaddingMethod - { - public: - /** - * @param block output buffer - * @param size of the block - * @param current_position in the last block - */ - virtual void pad(byte block[], - size_t size, - size_t current_position) const = 0; - - /** - * @param block the last block - * @param size the of the block - */ - virtual size_t unpad(const byte block[], - size_t size) const = 0; - - /** - * @param block_size of the cipher - * @param position in the current block - * @return number of padding bytes that will be appended - */ - virtual size_t pad_bytes(size_t block_size, - size_t position) const; - - /** - * @param block_size of the cipher - * @return valid block size for this padding mode - */ - virtual bool valid_blocksize(size_t block_size) const = 0; - - /** - * @return name of the mode - */ - virtual std::string name() const = 0; - - /** - * virtual destructor - */ - virtual ~BlockCipherModePaddingMethod() {} - }; - -/** -* PKCS#7 Padding -*/ -class BOTAN_DLL PKCS7_Padding : public BlockCipherModePaddingMethod - { - public: - void pad(byte[], size_t, size_t) const; - size_t unpad(const byte[], size_t) const; - bool valid_blocksize(size_t) const; - std::string name() const { return "PKCS7"; } - }; - -/** -* ANSI X9.23 Padding -*/ -class BOTAN_DLL ANSI_X923_Padding : public BlockCipherModePaddingMethod - { - public: - void pad(byte[], size_t, size_t) const; - size_t unpad(const byte[], size_t) const; - bool valid_blocksize(size_t) const; - std::string name() const { return "X9.23"; } - }; - -/** -* One And Zeros Padding -*/ -class BOTAN_DLL OneAndZeros_Padding : public BlockCipherModePaddingMethod - { - public: - void pad(byte[], size_t, size_t) const; - size_t unpad(const byte[], size_t) const; - bool valid_blocksize(size_t) const; - std::string name() const { return "OneAndZeros"; } - }; - -/** -* Null Padding -*/ -class BOTAN_DLL Null_Padding : public BlockCipherModePaddingMethod - { - public: - void pad(byte[], size_t, size_t) const { return; } - size_t unpad(const byte[], size_t size) const { return size; } - size_t pad_bytes(size_t, size_t) const { return 0; } - bool valid_blocksize(size_t) const { return true; } - std::string name() const { return "NoPadding"; } - }; - -} - -#endif diff --git a/src/botan/src/filters/out_buf.cpp b/src/botan/src/filters/out_buf.cpp deleted file mode 100644 index 7b79b4b70..000000000 --- a/src/botan/src/filters/out_buf.cpp +++ /dev/null @@ -1,121 +0,0 @@ -/* -* Pipe Output Buffer -* (C) 1999-2007,2011 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -/* -* Read data from a message -*/ -size_t Output_Buffers::read(byte output[], size_t length, - Pipe::message_id msg) - { - SecureQueue* q = get(msg); - if(q) - return q->read(output, length); - return 0; - } - -/* -* Peek at data in a message -*/ -size_t Output_Buffers::peek(byte output[], size_t length, - size_t stream_offset, - Pipe::message_id msg) const - { - SecureQueue* q = get(msg); - if(q) - return q->peek(output, length, stream_offset); - return 0; - } - -/* -* Check available bytes in a message -*/ -size_t Output_Buffers::remaining(Pipe::message_id msg) const - { - SecureQueue* q = get(msg); - if(q) - return q->size(); - return 0; - } - -/* -* Add a new output queue -*/ -void Output_Buffers::add(SecureQueue* queue) - { - BOTAN_ASSERT(queue, "argument was NULL"); - - BOTAN_ASSERT(buffers.size() < buffers.max_size(), - "No more room in container"); - - buffers.push_back(queue); - } - -/* -* Retire old output queues -*/ -void Output_Buffers::retire() - { - for(size_t i = 0; i != buffers.size(); ++i) - if(buffers[i] && buffers[i]->size() == 0) - { - delete buffers[i]; - buffers[i] = 0; - } - - while(buffers.size() && !buffers[0]) - { - buffers.pop_front(); - offset = offset + Pipe::message_id(1); - } - } - -/* -* Get a particular output queue -*/ -SecureQueue* Output_Buffers::get(Pipe::message_id msg) const - { - if(msg < offset) - return 0; - - BOTAN_ASSERT(msg < message_count(), - "Message number out of range"); - - return buffers[msg-offset]; - } - -/* -* Return the total number of messages -*/ -Pipe::message_id Output_Buffers::message_count() const - { - return (offset + buffers.size()); - } - -/* -* Output_Buffers Constructor -*/ -Output_Buffers::Output_Buffers() - { - offset = 0; - } - -/* -* Output_Buffers Destructor -*/ -Output_Buffers::~Output_Buffers() - { - for(size_t j = 0; j != buffers.size(); ++j) - delete buffers[j]; - } - -} diff --git a/src/botan/src/filters/out_buf.h b/src/botan/src/filters/out_buf.h deleted file mode 100644 index d4244ca5e..000000000 --- a/src/botan/src/filters/out_buf.h +++ /dev/null @@ -1,43 +0,0 @@ -/* -* Output Buffer -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_OUTPUT_BUFFER_H__ -#define BOTAN_OUTPUT_BUFFER_H__ - -#include -#include -#include - -namespace Botan { - -/** -* Container of output buffers for Pipe -*/ -class Output_Buffers - { - public: - size_t read(byte[], size_t, Pipe::message_id); - size_t peek(byte[], size_t, size_t, Pipe::message_id) const; - size_t remaining(Pipe::message_id) const; - - void add(class SecureQueue*); - void retire(); - - Pipe::message_id message_count() const; - - Output_Buffers(); - ~Output_Buffers(); - private: - class SecureQueue* get(Pipe::message_id) const; - - std::deque buffers; - Pipe::message_id offset; - }; - -} - -#endif diff --git a/src/botan/src/filters/pipe.cpp b/src/botan/src/filters/pipe.cpp deleted file mode 100644 index 85a6cddab..000000000 --- a/src/botan/src/filters/pipe.cpp +++ /dev/null @@ -1,296 +0,0 @@ -/* -* Pipe -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -namespace Botan { - -namespace { - -/* -* A Filter that does nothing -*/ -class Null_Filter : public Filter - { - public: - void write(const byte input[], size_t length) - { send(input, length); } - - std::string name() const { return "Null"; } - }; - -} - -/* -* Pipe Constructor -*/ -Pipe::Pipe(Filter* f1, Filter* f2, Filter* f3, Filter* f4) - { - init(); - append(f1); - append(f2); - append(f3); - append(f4); - } - -/* -* Pipe Constructor -*/ -Pipe::Pipe(Filter* filter_array[], size_t count) - { - init(); - for(size_t j = 0; j != count; ++j) - append(filter_array[j]); - } - -/* -* Pipe Destructor -*/ -Pipe::~Pipe() - { - destruct(pipe); - delete outputs; - } - -/* -* Initialize the Pipe -*/ -void Pipe::init() - { - outputs = new Output_Buffers; - pipe = 0; - default_read = 0; - inside_msg = false; - } - -/* -* Reset the Pipe -*/ -void Pipe::reset() - { - destruct(pipe); - pipe = 0; - inside_msg = false; - } - -/* -* Destroy the Pipe -*/ -void Pipe::destruct(Filter* to_kill) - { - if(!to_kill || dynamic_cast(to_kill)) - return; - for(size_t j = 0; j != to_kill->total_ports(); ++j) - destruct(to_kill->next[j]); - delete to_kill; - } - -/* -* Test if the Pipe has any data in it -*/ -bool Pipe::end_of_data() const - { - return (remaining() == 0); - } - -/* -* Set the default read message -*/ -void Pipe::set_default_msg(message_id msg) - { - if(msg >= message_count()) - throw Invalid_Argument("Pipe::set_default_msg: msg number is too high"); - default_read = msg; - } - -/* -* Process a full message at once -*/ -void Pipe::process_msg(const byte input[], size_t length) - { - start_msg(); - write(input, length); - end_msg(); - } - -/* -* Process a full message at once -*/ -void Pipe::process_msg(const MemoryRegion& input) - { - process_msg(&input[0], input.size()); - } - -/* -* Process a full message at once -*/ -void Pipe::process_msg(const std::string& input) - { - process_msg(reinterpret_cast(input.data()), input.length()); - } - -/* -* Process a full message at once -*/ -void Pipe::process_msg(DataSource& input) - { - start_msg(); - write(input); - end_msg(); - } - -/* -* Start a new message -*/ -void Pipe::start_msg() - { - if(inside_msg) - throw Invalid_State("Pipe::start_msg: Message was already started"); - if(pipe == 0) - pipe = new Null_Filter; - find_endpoints(pipe); - pipe->new_msg(); - inside_msg = true; - } - -/* -* End the current message -*/ -void Pipe::end_msg() - { - if(!inside_msg) - throw Invalid_State("Pipe::end_msg: Message was already ended"); - pipe->finish_msg(); - clear_endpoints(pipe); - if(dynamic_cast(pipe)) - { - delete pipe; - pipe = 0; - } - inside_msg = false; - - outputs->retire(); - } - -/* -* Find the endpoints of the Pipe -*/ -void Pipe::find_endpoints(Filter* f) - { - for(size_t j = 0; j != f->total_ports(); ++j) - if(f->next[j] && !dynamic_cast(f->next[j])) - find_endpoints(f->next[j]); - else - { - SecureQueue* q = new SecureQueue; - f->next[j] = q; - outputs->add(q); - } - } - -/* -* Remove the SecureQueues attached to the Filter -*/ -void Pipe::clear_endpoints(Filter* f) - { - if(!f) return; - for(size_t j = 0; j != f->total_ports(); ++j) - { - if(f->next[j] && dynamic_cast(f->next[j])) - f->next[j] = 0; - clear_endpoints(f->next[j]); - } - } - -/* -* Append a Filter to the Pipe -*/ -void Pipe::append(Filter* filter) - { - if(inside_msg) - throw Invalid_State("Cannot append to a Pipe while it is processing"); - if(!filter) - return; - if(dynamic_cast(filter)) - throw Invalid_Argument("Pipe::append: SecureQueue cannot be used"); - if(filter->owned) - throw Invalid_Argument("Filters cannot be shared among multiple Pipes"); - - filter->owned = true; - - if(!pipe) pipe = filter; - else pipe->attach(filter); - } - -/* -* Prepend a Filter to the Pipe -*/ -void Pipe::prepend(Filter* filter) - { - if(inside_msg) - throw Invalid_State("Cannot prepend to a Pipe while it is processing"); - if(!filter) - return; - if(dynamic_cast(filter)) - throw Invalid_Argument("Pipe::prepend: SecureQueue cannot be used"); - if(filter->owned) - throw Invalid_Argument("Filters cannot be shared among multiple Pipes"); - - filter->owned = true; - - if(pipe) filter->attach(pipe); - pipe = filter; - } - -/* -* Pop a Filter off the Pipe -*/ -void Pipe::pop() - { - if(inside_msg) - throw Invalid_State("Cannot pop off a Pipe while it is processing"); - - if(!pipe) - return; - - if(pipe->total_ports() > 1) - throw Invalid_State("Cannot pop off a Filter with multiple ports"); - - Filter* f = pipe; - size_t owns = f->owns(); - pipe = pipe->next[0]; - delete f; - - while(owns--) - { - f = pipe; - pipe = pipe->next[0]; - delete f; - } - } - -/* -* Return the number of messages in this Pipe -*/ -Pipe::message_id Pipe::message_count() const - { - return outputs->message_count(); - } - -/* -* Static Member Variables -*/ -const Pipe::message_id Pipe::LAST_MESSAGE = - static_cast(-2); - -const Pipe::message_id Pipe::DEFAULT_MESSAGE = - static_cast(-1); - -} diff --git a/src/botan/src/filters/pipe.h b/src/botan/src/filters/pipe.h deleted file mode 100644 index 3d9ffab9c..000000000 --- a/src/botan/src/filters/pipe.h +++ /dev/null @@ -1,314 +0,0 @@ -/* -* Pipe -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_PIPE_H__ -#define BOTAN_PIPE_H__ - -#include -#include -#include -#include - -namespace Botan { - -/** -* This class represents pipe objects. -* A set of filters can be placed into a pipe, and information flows -* through the pipe until it reaches the end, where the output is -* collected for retrieval. If you're familiar with the Unix shell -* environment, this design will sound quite familiar. -*/ -class BOTAN_DLL Pipe : public DataSource - { - public: - /** - * An opaque type that identifies a message in this Pipe - */ - typedef size_t message_id; - - /** - * Exception if you use an invalid message as an argument to - * read, remaining, etc - */ - struct BOTAN_DLL Invalid_Message_Number : public Invalid_Argument - { - /** - * @param where the error occured - * @param msg the invalid message id that was used - */ - Invalid_Message_Number(const std::string& where, message_id msg) : - Invalid_Argument("Pipe::" + where + ": Invalid message number " + - to_string(msg)) - {} - }; - - /** - * A meta-id for whatever the last message is - */ - static const message_id LAST_MESSAGE; - - /** - * A meta-id for the default message (set with set_default_msg) - */ - static const message_id DEFAULT_MESSAGE; - - /** - * Write input to the pipe, i.e. to its first filter. - * @param in the byte array to write - * @param length the length of the byte array in - */ - void write(const byte in[], size_t length); - - /** - * Write input to the pipe, i.e. to its first filter. - * @param in the MemoryRegion containing the data to write - */ - void write(const MemoryRegion& in); - - /** - * Write input to the pipe, i.e. to its first filter. - * @param in the string containing the data to write - */ - void write(const std::string& in); - - /** - * Write input to the pipe, i.e. to its first filter. - * @param in the DataSource to read the data from - */ - void write(DataSource& in); - - /** - * Write input to the pipe, i.e. to its first filter. - * @param in a single byte to be written - */ - void write(byte in); - - /** - * Perform start_msg(), write() and end_msg() sequentially. - * @param in the byte array containing the data to write - * @param length the length of the byte array to write - */ - void process_msg(const byte in[], size_t length); - - /** - * Perform start_msg(), write() and end_msg() sequentially. - * @param in the MemoryRegion containing the data to write - */ - void process_msg(const MemoryRegion& in); - - /** - * Perform start_msg(), write() and end_msg() sequentially. - * @param in the string containing the data to write - */ - void process_msg(const std::string& in); - - /** - * Perform start_msg(), write() and end_msg() sequentially. - * @param in the DataSource providing the data to write - */ - void process_msg(DataSource& in); - - /** - * Find out how many bytes are ready to read. - * @param msg the number identifying the message - * for which the information is desired - * @return number of bytes that can still be read - */ - size_t remaining(message_id msg = DEFAULT_MESSAGE) const; - - /** - * Read the default message from the pipe. Moves the internal - * offset so that every call to read will return a new portion of - * the message. - * - * @param output the byte array to write the read bytes to - * @param length the length of the byte array output - * @return number of bytes actually read into output - */ - size_t read(byte output[], size_t length); - - /** - * Read a specified message from the pipe. Moves the internal - * offset so that every call to read will return a new portion of - * the message. - * @param output the byte array to write the read bytes to - * @param length the length of the byte array output - * @param msg the number identifying the message to read from - * @return number of bytes actually read into output - */ - size_t read(byte output[], size_t length, message_id msg); - - /** - * Read a single byte from the pipe. Moves the internal offset so - * that every call to read will return a new portion of the - * message. - * - * @param output the byte to write the result to - * @param msg the message to read from - * @return number of bytes actually read into output - */ - size_t read(byte& output, message_id msg = DEFAULT_MESSAGE); - - /** - * Read the full contents of the pipe. - * @param msg the number identifying the message to read from - * @return SecureVector holding the contents of the pipe - */ - SecureVector read_all(message_id msg = DEFAULT_MESSAGE); - - /** - * Read the full contents of the pipe. - * @param msg the number identifying the message to read from - * @return string holding the contents of the pipe - */ - std::string read_all_as_string(message_id = DEFAULT_MESSAGE); - - /** Read from the default message but do not modify the internal - * offset. Consecutive calls to peek() will return portions of - * the message starting at the same position. - * @param output the byte array to write the peeked message part to - * @param length the length of the byte array output - * @param offset the offset from the current position in message - * @return number of bytes actually peeked and written into output - */ - size_t peek(byte output[], size_t length, size_t offset) const; - - /** Read from the specified message but do not modify the - * internal offset. Consecutive calls to peek() will return - * portions of the message starting at the same position. - * @param output the byte array to write the peeked message part to - * @param length the length of the byte array output - * @param offset the offset from the current position in message - * @param msg the number identifying the message to peek from - * @return number of bytes actually peeked and written into output - */ - size_t peek(byte output[], size_t length, - size_t offset, message_id msg) const; - - /** Read a single byte from the specified message but do not - * modify the internal offset. Consecutive calls to peek() will - * return portions of the message starting at the same position. - * @param output the byte to write the peeked message byte to - * @param offset the offset from the current position in message - * @param msg the number identifying the message to peek from - * @return number of bytes actually peeked and written into output - */ - size_t peek(byte& output, size_t offset, - message_id msg = DEFAULT_MESSAGE) const; - - bool check_available(size_t n); - bool check_available_msg(size_t n, message_id msg); - - /** - * @return currently set default message - */ - size_t default_msg() const { return default_read; } - - /** - * Set the default message - * @param msg the number identifying the message which is going to - * be the new default message - */ - void set_default_msg(message_id msg); - - /** - * Get the number of messages the are in this pipe. - * @return number of messages the are in this pipe - */ - message_id message_count() const; - - /** - * Test whether this pipe has any data that can be read from. - * @return true if there is more data to read, false otherwise - */ - bool end_of_data() const; - - /** - * Start a new message in the pipe. A potential other message in this pipe - * must be closed with end_msg() before this function may be called. - */ - void start_msg(); - - /** - * End the current message. - */ - void end_msg(); - - /** - * Insert a new filter at the front of the pipe - * @param filt the new filter to insert - */ - void prepend(Filter* filt); - - /** - * Insert a new filter at the back of the pipe - * @param filt the new filter to insert - */ - void append(Filter* filt); - - /** - * Remove the first filter at the front of the pipe. - */ - void pop(); - - /** - * Reset this pipe to an empty pipe. - */ - void reset(); - - /** - * Construct a Pipe of up to four filters. The filters are set up - * in the same order as the arguments. - */ - Pipe(Filter* = 0, Filter* = 0, Filter* = 0, Filter* = 0); - - /** - * Construct a Pipe from range of filters passed as an array - * @param filters the set of filters to use - * @param count the number of elements in filters - */ - Pipe(Filter* filters[], size_t count); - ~Pipe(); - private: - Pipe(const Pipe&) : DataSource() {} - Pipe& operator=(const Pipe&) { return (*this); } - void init(); - void destruct(Filter*); - void find_endpoints(Filter*); - void clear_endpoints(Filter*); - - message_id get_message_no(const std::string&, message_id) const; - - Filter* pipe; - class Output_Buffers* outputs; - message_id default_read; - bool inside_msg; - }; - -/** -* Stream output operator; dumps the results from pipe's default -* message to the output stream. -* @param out an output stream -* @param pipe the pipe -*/ -BOTAN_DLL std::ostream& operator<<(std::ostream& out, Pipe& pipe); - -/** -* Stream input operator; dumps the remaining bytes of input -* to the (assumed open) pipe message. -* @param in the input stream -* @param pipe the pipe -*/ -BOTAN_DLL std::istream& operator>>(std::istream& in, Pipe& pipe); - -} - -#if defined(BOTAN_HAS_PIPE_UNIXFD_IO) - #include -#endif - -#endif diff --git a/src/botan/src/filters/pipe_io.cpp b/src/botan/src/filters/pipe_io.cpp deleted file mode 100644 index 9dd0ad0bb..000000000 --- a/src/botan/src/filters/pipe_io.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/* -* Pipe I/O -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -namespace Botan { - -/* -* Write data from a pipe into an ostream -*/ -std::ostream& operator<<(std::ostream& stream, Pipe& pipe) - { - SecureVector buffer(DEFAULT_BUFFERSIZE); - while(stream.good() && pipe.remaining()) - { - size_t got = pipe.read(&buffer[0], buffer.size()); - stream.write(reinterpret_cast(&buffer[0]), got); - } - if(!stream.good()) - throw Stream_IO_Error("Pipe output operator (iostream) has failed"); - return stream; - } - -/* -* Read data from an istream into a pipe -*/ -std::istream& operator>>(std::istream& stream, Pipe& pipe) - { - SecureVector buffer(DEFAULT_BUFFERSIZE); - while(stream.good()) - { - stream.read(reinterpret_cast(&buffer[0]), buffer.size()); - pipe.write(&buffer[0], stream.gcount()); - } - if(stream.bad() || (stream.fail() && !stream.eof())) - throw Stream_IO_Error("Pipe input operator (iostream) has failed"); - return stream; - } - -} diff --git a/src/botan/src/filters/pipe_rw.cpp b/src/botan/src/filters/pipe_rw.cpp deleted file mode 100644 index 145a7e32a..000000000 --- a/src/botan/src/filters/pipe_rw.cpp +++ /dev/null @@ -1,178 +0,0 @@ -/* -* Pipe Reading/Writing -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -/* -* Look up the canonical ID for a queue -*/ -Pipe::message_id Pipe::get_message_no(const std::string& func_name, - message_id msg) const - { - if(msg == DEFAULT_MESSAGE) - msg = default_msg(); - else if(msg == LAST_MESSAGE) - msg = message_count() - 1; - - if(msg >= message_count()) - throw Invalid_Message_Number(func_name, msg); - - return msg; - } - -/* -* Write into a Pipe -*/ -void Pipe::write(const byte input[], size_t length) - { - if(!inside_msg) - throw Invalid_State("Cannot write to a Pipe while it is not processing"); - pipe->write(input, length); - } - -/* -* Write into a Pipe -*/ -void Pipe::write(const MemoryRegion& input) - { - write(&input[0], input.size()); - } - -/* -* Write a string into a Pipe -*/ -void Pipe::write(const std::string& str) - { - write(reinterpret_cast(str.data()), str.size()); - } - -/* -* Write a single byte into a Pipe -*/ -void Pipe::write(byte input) - { - write(&input, 1); - } - -/* -* Write the contents of a DataSource into a Pipe -*/ -void Pipe::write(DataSource& source) - { - SecureVector buffer(DEFAULT_BUFFERSIZE); - while(!source.end_of_data()) - { - size_t got = source.read(&buffer[0], buffer.size()); - write(&buffer[0], got); - } - } - -/* -* Read some data from the pipe -*/ -size_t Pipe::read(byte output[], size_t length, message_id msg) - { - return outputs->read(output, length, get_message_no("read", msg)); - } - -/* -* Read some data from the pipe -*/ -size_t Pipe::read(byte output[], size_t length) - { - return read(output, length, DEFAULT_MESSAGE); - } - -/* -* Read a single byte from the pipe -*/ -size_t Pipe::read(byte& out, message_id msg) - { - return read(&out, 1, msg); - } - -/* -* Return all data in the pipe -*/ -SecureVector Pipe::read_all(message_id msg) - { - msg = ((msg != DEFAULT_MESSAGE) ? msg : default_msg()); - SecureVector buffer(remaining(msg)); - size_t got = read(&buffer[0], buffer.size(), msg); - buffer.resize(got); - return buffer; - } - -/* -* Return all data in the pipe as a string -*/ -std::string Pipe::read_all_as_string(message_id msg) - { - msg = ((msg != DEFAULT_MESSAGE) ? msg : default_msg()); - SecureVector buffer(DEFAULT_BUFFERSIZE); - std::string str; - str.reserve(remaining(msg)); - - while(true) - { - size_t got = read(&buffer[0], buffer.size(), msg); - if(got == 0) - break; - str.append(reinterpret_cast(&buffer[0]), got); - } - - return str; - } - -/* -* Find out how many bytes are ready to read -*/ -size_t Pipe::remaining(message_id msg) const - { - return outputs->remaining(get_message_no("remaining", msg)); - } - -bool Pipe::check_available(size_t n) - { - return (n <= remaining(DEFAULT_MESSAGE)); - } - -bool Pipe::check_available_msg(size_t n, message_id msg) - { - return (n <= remaining(msg)); - } - -/* -* Peek at some data in the pipe -*/ -size_t Pipe::peek(byte output[], size_t length, - size_t offset, message_id msg) const - { - return outputs->peek(output, length, offset, get_message_no("peek", msg)); - } - -/* -* Peek at some data in the pipe -*/ -size_t Pipe::peek(byte output[], size_t length, size_t offset) const - { - return peek(output, length, offset, DEFAULT_MESSAGE); - } - -/* -* Peek at a byte in the pipe -*/ -size_t Pipe::peek(byte& out, size_t offset, message_id msg) const - { - return peek(&out, 1, offset, msg); - } - -} diff --git a/src/botan/src/filters/secqueue.cpp b/src/botan/src/filters/secqueue.cpp deleted file mode 100644 index 8dc95ea99..000000000 --- a/src/botan/src/filters/secqueue.cpp +++ /dev/null @@ -1,211 +0,0 @@ -/* -* SecureQueue -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -namespace Botan { - -/** -* A node in a SecureQueue -*/ -class SecureQueueNode - { - public: - SecureQueueNode() : buffer(DEFAULT_BUFFERSIZE) - { next = 0; start = end = 0; } - - ~SecureQueueNode() { next = 0; start = end = 0; } - - size_t write(const byte input[], size_t length) - { - size_t copied = std::min(length, buffer.size() - end); - copy_mem(&buffer[end], input, copied); - end += copied; - return copied; - } - - size_t read(byte output[], size_t length) - { - size_t copied = std::min(length, end - start); - copy_mem(output, &buffer[start], copied); - start += copied; - return copied; - } - - size_t peek(byte output[], size_t length, size_t offset = 0) - { - const size_t left = end - start; - if(offset >= left) return 0; - size_t copied = std::min(length, left - offset); - copy_mem(output, &buffer[start + offset], copied); - return copied; - } - - size_t size() const { return (end - start); } - private: - friend class SecureQueue; - SecureQueueNode* next; - SecureVector buffer; - size_t start, end; - }; - -/* -* Create a SecureQueue -*/ -SecureQueue::SecureQueue() - { - set_next(0, 0); - head = tail = new SecureQueueNode; - } - -/* -* Copy a SecureQueue -*/ -SecureQueue::SecureQueue(const SecureQueue& input) : - Fanout_Filter(), DataSource() - { - set_next(0, 0); - - head = tail = new SecureQueueNode; - SecureQueueNode* temp = input.head; - while(temp) - { - write(&temp->buffer[temp->start], temp->end - temp->start); - temp = temp->next; - } - } - -/* -* Destroy this SecureQueue -*/ -void SecureQueue::destroy() - { - SecureQueueNode* temp = head; - while(temp) - { - SecureQueueNode* holder = temp->next; - delete temp; - temp = holder; - } - head = tail = 0; - } - -/* -* Copy a SecureQueue -*/ -SecureQueue& SecureQueue::operator=(const SecureQueue& input) - { - destroy(); - head = tail = new SecureQueueNode; - SecureQueueNode* temp = input.head; - while(temp) - { - write(&temp->buffer[temp->start], temp->end - temp->start); - temp = temp->next; - } - return (*this); - } - -/* -* Add some bytes to the queue -*/ -void SecureQueue::write(const byte input[], size_t length) - { - if(!head) - head = tail = new SecureQueueNode; - while(length) - { - const size_t n = tail->write(input, length); - input += n; - length -= n; - if(length) - { - tail->next = new SecureQueueNode; - tail = tail->next; - } - } - } - -/* -* Read some bytes from the queue -*/ -size_t SecureQueue::read(byte output[], size_t length) - { - size_t got = 0; - while(length && head) - { - const size_t n = head->read(output, length); - output += n; - got += n; - length -= n; - if(head->size() == 0) - { - SecureQueueNode* holder = head->next; - delete head; - head = holder; - } - } - return got; - } - -/* -* Read data, but do not remove it from queue -*/ -size_t SecureQueue::peek(byte output[], size_t length, size_t offset) const - { - SecureQueueNode* current = head; - - while(offset && current) - { - if(offset >= current->size()) - { - offset -= current->size(); - current = current->next; - } - else - break; - } - - size_t got = 0; - while(length && current) - { - const size_t n = current->peek(output, length, offset); - offset = 0; - output += n; - got += n; - length -= n; - current = current->next; - } - return got; - } - -/* -* Return how many bytes the queue holds -*/ -size_t SecureQueue::size() const - { - SecureQueueNode* current = head; - size_t count = 0; - - while(current) - { - count += current->size(); - current = current->next; - } - return count; - } - -/* -* Test if the queue has any data in it -*/ -bool SecureQueue::end_of_data() const - { - return (size() == 0); - } - -} diff --git a/src/botan/src/filters/secqueue.h b/src/botan/src/filters/secqueue.h deleted file mode 100644 index 15f336e6f..000000000 --- a/src/botan/src/filters/secqueue.h +++ /dev/null @@ -1,66 +0,0 @@ -/* -* SecureQueue -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_SECURE_QUEUE_H__ -#define BOTAN_SECURE_QUEUE_H__ - -#include -#include - -namespace Botan { - -/** -* A queue that knows how to zeroize itself -*/ -class BOTAN_DLL SecureQueue : public Fanout_Filter, public DataSource - { - public: - std::string name() const { return "Queue"; } - - void write(const byte[], size_t); - - size_t read(byte[], size_t); - size_t peek(byte[], size_t, size_t = 0) const; - - bool end_of_data() const; - - /** - * @return number of bytes available in the queue - */ - size_t size() const; - - bool attachable() { return false; } - - bool check_available(size_t n) { return n <= size(); } - - /** - * SecureQueue assignment - * @param other the queue to copy - */ - SecureQueue& operator=(const SecureQueue& other); - - /** - * SecureQueue default constructor (creates empty queue) - */ - SecureQueue(); - - /** - * SecureQueue copy constructor - * @param other the queue to copy - */ - SecureQueue(const SecureQueue& other); - - ~SecureQueue() { destroy(); } - private: - void destroy(); - class SecureQueueNode* head; - class SecureQueueNode* tail; - }; - -} - -#endif diff --git a/src/botan/src/hash/hash.h b/src/botan/src/hash/hash.h deleted file mode 100644 index 8143e8e90..000000000 --- a/src/botan/src/hash/hash.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -* Hash Function Base Class -* (C) 1999-2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_HASH_FUNCTION_BASE_CLASS_H__ -#define BOTAN_HASH_FUNCTION_BASE_CLASS_H__ - -#include -#include -#include - -namespace Botan { - -/** -* This class represents hash function (message digest) objects -*/ -class BOTAN_DLL HashFunction : public Buffered_Computation, - public Algorithm - { - public: - /** - * Get a new object representing the same algorithm as *this - */ - virtual HashFunction* clone() const = 0; - - /** - * The hash block size as defined for this algorithm - */ - virtual size_t hash_block_size() const { return 0; } - }; - -} - -#endif diff --git a/src/botan/src/hash/info.txt b/src/botan/src/hash/info.txt deleted file mode 100644 index d991577f7..000000000 --- a/src/botan/src/hash/info.txt +++ /dev/null @@ -1,3 +0,0 @@ - -algo_base - diff --git a/src/botan/src/hash/keccak/info.txt b/src/botan/src/hash/keccak/info.txt deleted file mode 100644 index a2ed48200..000000000 --- a/src/botan/src/hash/keccak/info.txt +++ /dev/null @@ -1,5 +0,0 @@ -define KECCAK - - -alloc - diff --git a/src/botan/src/hash/keccak/keccak.cpp b/src/botan/src/hash/keccak/keccak.cpp deleted file mode 100644 index 922167b61..000000000 --- a/src/botan/src/hash/keccak/keccak.cpp +++ /dev/null @@ -1,198 +0,0 @@ -/* -* Keccak -* (C) 2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include - -namespace Botan { - -namespace { - -void keccak_f_1600(u64bit A[25]) - { - static const u64bit RC[24] = { - 0x0000000000000001, 0x0000000000008082, 0x800000000000808A, - 0x8000000080008000, 0x000000000000808B, 0x0000000080000001, - 0x8000000080008081, 0x8000000000008009, 0x000000000000008A, - 0x0000000000000088, 0x0000000080008009, 0x000000008000000A, - 0x000000008000808B, 0x800000000000008B, 0x8000000000008089, - 0x8000000000008003, 0x8000000000008002, 0x8000000000000080, - 0x000000000000800A, 0x800000008000000A, 0x8000000080008081, - 0x8000000000008080, 0x0000000080000001, 0x8000000080008008 - }; - - for(size_t i = 0; i != 24; ++i) - { - const u64bit C0 = A[0] ^ A[5] ^ A[10] ^ A[15] ^ A[20]; - const u64bit C1 = A[1] ^ A[6] ^ A[11] ^ A[16] ^ A[21]; - const u64bit C2 = A[2] ^ A[7] ^ A[12] ^ A[17] ^ A[22]; - const u64bit C3 = A[3] ^ A[8] ^ A[13] ^ A[18] ^ A[23]; - const u64bit C4 = A[4] ^ A[9] ^ A[14] ^ A[19] ^ A[24]; - - const u64bit D0 = rotate_left(C0, 1) ^ C3; - const u64bit D1 = rotate_left(C1, 1) ^ C4; - const u64bit D2 = rotate_left(C2, 1) ^ C0; - const u64bit D3 = rotate_left(C3, 1) ^ C1; - const u64bit D4 = rotate_left(C4, 1) ^ C2; - - const u64bit B00 = A[ 0] ^ D1; - const u64bit B01 = rotate_left(A[ 6] ^ D2, 44); - const u64bit B02 = rotate_left(A[12] ^ D3, 43); - const u64bit B03 = rotate_left(A[18] ^ D4, 21); - const u64bit B04 = rotate_left(A[24] ^ D0, 14); - const u64bit B05 = rotate_left(A[ 3] ^ D4, 28); - const u64bit B06 = rotate_left(A[ 9] ^ D0, 20); - const u64bit B07 = rotate_left(A[10] ^ D1, 3); - const u64bit B08 = rotate_left(A[16] ^ D2, 45); - const u64bit B09 = rotate_left(A[22] ^ D3, 61); - const u64bit B10 = rotate_left(A[ 1] ^ D2, 1); - const u64bit B11 = rotate_left(A[ 7] ^ D3, 6); - const u64bit B12 = rotate_left(A[13] ^ D4, 25); - const u64bit B13 = rotate_left(A[19] ^ D0, 8); - const u64bit B14 = rotate_left(A[20] ^ D1, 18); - const u64bit B15 = rotate_left(A[ 4] ^ D0, 27); - const u64bit B16 = rotate_left(A[ 5] ^ D1, 36); - const u64bit B17 = rotate_left(A[11] ^ D2, 10); - const u64bit B18 = rotate_left(A[17] ^ D3, 15); - const u64bit B19 = rotate_left(A[23] ^ D4, 56); - const u64bit B20 = rotate_left(A[ 2] ^ D3, 62); - const u64bit B21 = rotate_left(A[ 8] ^ D4, 55); - const u64bit B22 = rotate_left(A[14] ^ D0, 39); - const u64bit B23 = rotate_left(A[15] ^ D1, 41); - const u64bit B24 = rotate_left(A[21] ^ D2, 2); - - A[ 0] = B00 ^ (~B01 & B02); - A[ 1] = B01 ^ (~B02 & B03); - A[ 2] = B02 ^ (~B03 & B04); - A[ 3] = B03 ^ (~B04 & B00); - A[ 4] = B04 ^ (~B00 & B01); - A[ 5] = B05 ^ (~B06 & B07); - A[ 6] = B06 ^ (~B07 & B08); - A[ 7] = B07 ^ (~B08 & B09); - A[ 8] = B08 ^ (~B09 & B05); - A[ 9] = B09 ^ (~B05 & B06); - A[10] = B10 ^ (~B11 & B12); - A[11] = B11 ^ (~B12 & B13); - A[12] = B12 ^ (~B13 & B14); - A[13] = B13 ^ (~B14 & B10); - A[14] = B14 ^ (~B10 & B11); - A[15] = B15 ^ (~B16 & B17); - A[16] = B16 ^ (~B17 & B18); - A[17] = B17 ^ (~B18 & B19); - A[18] = B18 ^ (~B19 & B15); - A[19] = B19 ^ (~B15 & B16); - A[20] = B20 ^ (~B21 & B22); - A[21] = B21 ^ (~B22 & B23); - A[22] = B22 ^ (~B23 & B24); - A[23] = B23 ^ (~B24 & B20); - A[24] = B24 ^ (~B20 & B21); - - A[0] ^= RC[i]; - } - } - -} - -Keccak_1600::Keccak_1600(size_t output_bits) : - output_bits(output_bits), - bitrate(1600 - 2*output_bits), - S(25), - S_pos(0) - { - // We only support the parameters for the SHA-3 proposal - - if(output_bits != 224 && output_bits != 256 && - output_bits != 384 && output_bits != 512) - throw Invalid_Argument("Keccak_1600: Invalid output length " + - to_string(output_bits)); - } - -std::string Keccak_1600::name() const - { - return "Keccak-1600(" + to_string(output_bits) + ")"; - } - -HashFunction* Keccak_1600::clone() const - { - return new Keccak_1600(output_bits); - } - -void Keccak_1600::clear() - { - zeroise(S); - S_pos = 0; - } - -void Keccak_1600::add_data(const byte input[], size_t length) - { - if(length == 0) - return; - - while(length) - { - size_t to_take = std::min(length, bitrate / 8 - S_pos); - - length -= to_take; - - while(to_take && S_pos % 8) - { - S[S_pos / 8] ^= static_cast(input[0]) << (8 * (S_pos % 8)); - - ++S_pos; - ++input; - --to_take; - } - - while(to_take && to_take % 8 == 0) - { - S[S_pos / 8] ^= load_le(input, 0); - S_pos += 8; - input += 8; - to_take -= 8; - } - - while(to_take) - { - S[S_pos / 8] ^= static_cast(input[0]) << (8 * (S_pos % 8)); - - ++S_pos; - ++input; - --to_take; - } - - if(S_pos == bitrate / 8) - { - keccak_f_1600(&S[0]); - S_pos = 0; - } - } - } - -void Keccak_1600::final_result(byte output[]) - { - MemoryVector padding(bitrate / 8 - S_pos); - - padding[0] = 0x01; - padding[padding.size()-1] |= 0x80; - - add_data(padding, padding.size()); - - /* - * We never have to run the permutation again because we only support - * limited output lengths - */ - for(size_t i = 0; i != output_bits/8; ++i) - output[i] = get_byte(7 - (i % 8), S[i/8]); - - clear(); - } - -} diff --git a/src/botan/src/hash/keccak/keccak.h b/src/botan/src/hash/keccak/keccak.h deleted file mode 100644 index 17ae632ba..000000000 --- a/src/botan/src/hash/keccak/keccak.h +++ /dev/null @@ -1,47 +0,0 @@ -/* -* Keccak -* (C) 2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_KECCAK_H__ -#define BOTAN_KECCAK_H__ - -#include -#include -#include - -namespace Botan { - -/** -* Keccak[1600], a SHA-3 candidate -*/ -class BOTAN_DLL Keccak_1600 : public HashFunction - { - public: - - /** - * @param output_bits the size of the hash output; must be one of - * 224, 256, 384, or 512 - */ - Keccak_1600(size_t output_bits = 512); - - size_t hash_block_size() const { return bitrate / 8; } - size_t output_length() const { return output_bits / 8; } - - HashFunction* clone() const; - std::string name() const; - void clear(); - private: - void add_data(const byte input[], size_t length); - void final_result(byte out[]); - - size_t output_bits, bitrate; - SecureVector S; - size_t S_pos; - }; - -} - -#endif diff --git a/src/botan/src/hash/md5/info.txt b/src/botan/src/hash/md5/info.txt deleted file mode 100644 index a4ad1462c..000000000 --- a/src/botan/src/hash/md5/info.txt +++ /dev/null @@ -1,5 +0,0 @@ -define MD5 - - -mdx_hash - diff --git a/src/botan/src/hash/md5/md5.cpp b/src/botan/src/hash/md5/md5.cpp deleted file mode 100644 index 948f4e73b..000000000 --- a/src/botan/src/hash/md5/md5.cpp +++ /dev/null @@ -1,136 +0,0 @@ -/* -* MD5 -* (C) 1999-2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -namespace { - -/* -* MD5 FF Function -*/ -inline void FF(u32bit& A, u32bit B, u32bit C, u32bit D, u32bit msg, - byte S, u32bit magic) - { - A += (D ^ (B & (C ^ D))) + msg + magic; - A = rotate_left(A, S) + B; - } - -/* -* MD5 GG Function -*/ -inline void GG(u32bit& A, u32bit B, u32bit C, u32bit D, u32bit msg, - byte S, u32bit magic) - { - A += (C ^ (D & (B ^ C))) + msg + magic; - A = rotate_left(A, S) + B; - } - -/* -* MD5 HH Function -*/ -inline void HH(u32bit& A, u32bit B, u32bit C, u32bit D, u32bit msg, - byte S, u32bit magic) - { - A += (B ^ C ^ D) + msg + magic; - A = rotate_left(A, S) + B; - } - -/* -* MD5 II Function -*/ -inline void II(u32bit& A, u32bit B, u32bit C, u32bit D, u32bit msg, - byte S, u32bit magic) - { - A += (C ^ (B | ~D)) + msg + magic; - A = rotate_left(A, S) + B; - } - -} - -/* -* MD5 Compression Function -*/ -void MD5::compress_n(const byte input[], size_t blocks) - { - u32bit A = digest[0], B = digest[1], C = digest[2], D = digest[3]; - - for(size_t i = 0; i != blocks; ++i) - { - load_le(&M[0], input, M.size()); - - FF(A,B,C,D,M[ 0], 7,0xD76AA478); FF(D,A,B,C,M[ 1],12,0xE8C7B756); - FF(C,D,A,B,M[ 2],17,0x242070DB); FF(B,C,D,A,M[ 3],22,0xC1BDCEEE); - FF(A,B,C,D,M[ 4], 7,0xF57C0FAF); FF(D,A,B,C,M[ 5],12,0x4787C62A); - FF(C,D,A,B,M[ 6],17,0xA8304613); FF(B,C,D,A,M[ 7],22,0xFD469501); - FF(A,B,C,D,M[ 8], 7,0x698098D8); FF(D,A,B,C,M[ 9],12,0x8B44F7AF); - FF(C,D,A,B,M[10],17,0xFFFF5BB1); FF(B,C,D,A,M[11],22,0x895CD7BE); - FF(A,B,C,D,M[12], 7,0x6B901122); FF(D,A,B,C,M[13],12,0xFD987193); - FF(C,D,A,B,M[14],17,0xA679438E); FF(B,C,D,A,M[15],22,0x49B40821); - - GG(A,B,C,D,M[ 1], 5,0xF61E2562); GG(D,A,B,C,M[ 6], 9,0xC040B340); - GG(C,D,A,B,M[11],14,0x265E5A51); GG(B,C,D,A,M[ 0],20,0xE9B6C7AA); - GG(A,B,C,D,M[ 5], 5,0xD62F105D); GG(D,A,B,C,M[10], 9,0x02441453); - GG(C,D,A,B,M[15],14,0xD8A1E681); GG(B,C,D,A,M[ 4],20,0xE7D3FBC8); - GG(A,B,C,D,M[ 9], 5,0x21E1CDE6); GG(D,A,B,C,M[14], 9,0xC33707D6); - GG(C,D,A,B,M[ 3],14,0xF4D50D87); GG(B,C,D,A,M[ 8],20,0x455A14ED); - GG(A,B,C,D,M[13], 5,0xA9E3E905); GG(D,A,B,C,M[ 2], 9,0xFCEFA3F8); - GG(C,D,A,B,M[ 7],14,0x676F02D9); GG(B,C,D,A,M[12],20,0x8D2A4C8A); - - HH(A,B,C,D,M[ 5], 4,0xFFFA3942); HH(D,A,B,C,M[ 8],11,0x8771F681); - HH(C,D,A,B,M[11],16,0x6D9D6122); HH(B,C,D,A,M[14],23,0xFDE5380C); - HH(A,B,C,D,M[ 1], 4,0xA4BEEA44); HH(D,A,B,C,M[ 4],11,0x4BDECFA9); - HH(C,D,A,B,M[ 7],16,0xF6BB4B60); HH(B,C,D,A,M[10],23,0xBEBFBC70); - HH(A,B,C,D,M[13], 4,0x289B7EC6); HH(D,A,B,C,M[ 0],11,0xEAA127FA); - HH(C,D,A,B,M[ 3],16,0xD4EF3085); HH(B,C,D,A,M[ 6],23,0x04881D05); - HH(A,B,C,D,M[ 9], 4,0xD9D4D039); HH(D,A,B,C,M[12],11,0xE6DB99E5); - HH(C,D,A,B,M[15],16,0x1FA27CF8); HH(B,C,D,A,M[ 2],23,0xC4AC5665); - - II(A,B,C,D,M[ 0], 6,0xF4292244); II(D,A,B,C,M[ 7],10,0x432AFF97); - II(C,D,A,B,M[14],15,0xAB9423A7); II(B,C,D,A,M[ 5],21,0xFC93A039); - II(A,B,C,D,M[12], 6,0x655B59C3); II(D,A,B,C,M[ 3],10,0x8F0CCC92); - II(C,D,A,B,M[10],15,0xFFEFF47D); II(B,C,D,A,M[ 1],21,0x85845DD1); - II(A,B,C,D,M[ 8], 6,0x6FA87E4F); II(D,A,B,C,M[15],10,0xFE2CE6E0); - II(C,D,A,B,M[ 6],15,0xA3014314); II(B,C,D,A,M[13],21,0x4E0811A1); - II(A,B,C,D,M[ 4], 6,0xF7537E82); II(D,A,B,C,M[11],10,0xBD3AF235); - II(C,D,A,B,M[ 2],15,0x2AD7D2BB); II(B,C,D,A,M[ 9],21,0xEB86D391); - - A = (digest[0] += A); - B = (digest[1] += B); - C = (digest[2] += C); - D = (digest[3] += D); - - input += hash_block_size(); - } - } - -/* -* Copy out the digest -*/ -void MD5::copy_out(byte output[]) - { - for(size_t i = 0; i != output_length(); i += 4) - store_le(digest[i/4], output + i); - } - -/* -* Clear memory of sensitive data -*/ -void MD5::clear() - { - MDx_HashFunction::clear(); - zeroise(M); - digest[0] = 0x67452301; - digest[1] = 0xEFCDAB89; - digest[2] = 0x98BADCFE; - digest[3] = 0x10325476; - } - -} diff --git a/src/botan/src/hash/md5/md5.h b/src/botan/src/hash/md5/md5.h deleted file mode 100644 index 92c023c92..000000000 --- a/src/botan/src/hash/md5/md5.h +++ /dev/null @@ -1,46 +0,0 @@ -/* -* MD5 -* (C) 1999-2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MD5_H__ -#define BOTAN_MD5_H__ - -#include - -namespace Botan { - -/** -* MD5 -*/ -class BOTAN_DLL MD5 : public MDx_HashFunction - { - public: - std::string name() const { return "MD5"; } - size_t output_length() const { return 16; } - HashFunction* clone() const { return new MD5; } - - void clear(); - - MD5() : MDx_HashFunction(64, false, true), M(16), digest(4) - { clear(); } - protected: - void compress_n(const byte[], size_t blocks); - void copy_out(byte[]); - - /** - * The message buffer, exposed for use by subclasses (x86 asm) - */ - SecureVector M; - - /** - * The digest value, exposed for use by subclasses (x86 asm) - */ - SecureVector digest; - }; - -} - -#endif diff --git a/src/botan/src/hash/mdx_hash/info.txt b/src/botan/src/hash/mdx_hash/info.txt deleted file mode 100644 index 0c30a1a54..000000000 --- a/src/botan/src/hash/mdx_hash/info.txt +++ /dev/null @@ -1,3 +0,0 @@ -define MDX_HASH_FUNCTION - -load_on dep diff --git a/src/botan/src/hash/mdx_hash/mdx_hash.cpp b/src/botan/src/hash/mdx_hash/mdx_hash.cpp deleted file mode 100644 index 7bfcf6592..000000000 --- a/src/botan/src/hash/mdx_hash/mdx_hash.cpp +++ /dev/null @@ -1,108 +0,0 @@ -/* -* Merkle-Damgard Hash Function -* (C) 1999-2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -/* -* MDx_HashFunction Constructor -*/ -MDx_HashFunction::MDx_HashFunction(size_t block_len, - bool byte_end, - bool bit_end, - size_t cnt_size) : - buffer(block_len), - BIG_BYTE_ENDIAN(byte_end), - BIG_BIT_ENDIAN(bit_end), - COUNT_SIZE(cnt_size) - { - count = position = 0; - } - -/* -* Clear memory of sensitive data -*/ -void MDx_HashFunction::clear() - { - zeroise(buffer); - count = position = 0; - } - -/* -* Update the hash -*/ -void MDx_HashFunction::add_data(const byte input[], size_t length) - { - count += length; - - if(position) - { - buffer.copy(position, input, length); - - if(position + length >= buffer.size()) - { - compress_n(&buffer[0], 1); - input += (buffer.size() - position); - length -= (buffer.size() - position); - position = 0; - } - } - - const size_t full_blocks = length / buffer.size(); - const size_t remaining = length % buffer.size(); - - if(full_blocks) - compress_n(input, full_blocks); - - buffer.copy(position, input + full_blocks * buffer.size(), remaining); - position += remaining; - } - -/* -* Finalize a hash -*/ -void MDx_HashFunction::final_result(byte output[]) - { - buffer[position] = (BIG_BIT_ENDIAN ? 0x80 : 0x01); - for(size_t i = position+1; i != buffer.size(); ++i) - buffer[i] = 0; - - if(position >= buffer.size() - COUNT_SIZE) - { - compress_n(&buffer[0], 1); - zeroise(buffer); - } - - write_count(&buffer[buffer.size() - COUNT_SIZE]); - - compress_n(&buffer[0], 1); - copy_out(output); - clear(); - } - -/* -* Write the count bits to the buffer -*/ -void MDx_HashFunction::write_count(byte out[]) - { - if(COUNT_SIZE < 8) - throw Invalid_State("MDx_HashFunction::write_count: COUNT_SIZE < 8"); - if(COUNT_SIZE >= output_length() || COUNT_SIZE >= hash_block_size()) - throw Invalid_Argument("MDx_HashFunction: COUNT_SIZE is too big"); - - const u64bit bit_count = count * 8; - - if(BIG_BYTE_ENDIAN) - store_be(bit_count, out + COUNT_SIZE - 8); - else - store_le(bit_count, out + COUNT_SIZE - 8); - } - -} diff --git a/src/botan/src/hash/mdx_hash/mdx_hash.h b/src/botan/src/hash/mdx_hash/mdx_hash.h deleted file mode 100644 index ed3381605..000000000 --- a/src/botan/src/hash/mdx_hash/mdx_hash.h +++ /dev/null @@ -1,68 +0,0 @@ -/* -* MDx Hash Function -* (C) 1999-2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MDX_BASE_H__ -#define BOTAN_MDX_BASE_H__ - -#include - -namespace Botan { - -/** -* MDx Hash Function Base Class -*/ -class BOTAN_DLL MDx_HashFunction : public HashFunction - { - public: - /** - * @param block_length is the number of bytes per block - * @param big_byte_endian specifies if the hash uses big-endian bytes - * @param big_bit_endian specifies if the hash uses big-endian bits - * @param counter_size specifies the size of the counter var in bytes - */ - MDx_HashFunction(size_t block_length, - bool big_byte_endian, - bool big_bit_endian, - size_t counter_size = 8); - - size_t hash_block_size() const { return buffer.size(); } - protected: - void add_data(const byte input[], size_t length); - void final_result(byte output[]); - - /** - * Run the hash's compression function over a set of blocks - * @param blocks the input - * @param block_n the number of blocks - */ - virtual void compress_n(const byte blocks[], size_t block_n) = 0; - - void clear(); - - /** - * Copy the output to the buffer - * @param buffer to put the output into - */ - virtual void copy_out(byte buffer[]) = 0; - - /** - * Write the count, if used, to this spot - * @param out where to write the counter to - */ - virtual void write_count(byte out[]); - private: - SecureVector buffer; - u64bit count; - size_t position; - - const bool BIG_BYTE_ENDIAN, BIG_BIT_ENDIAN; - const size_t COUNT_SIZE; - }; - -} - -#endif diff --git a/src/botan/src/hash/sha1/info.txt b/src/botan/src/hash/sha1/info.txt deleted file mode 100644 index 56403db21..000000000 --- a/src/botan/src/hash/sha1/info.txt +++ /dev/null @@ -1,5 +0,0 @@ -define SHA1 - - -mdx_hash - diff --git a/src/botan/src/hash/sha1/sha160.cpp b/src/botan/src/hash/sha1/sha160.cpp deleted file mode 100644 index f5daaadb2..000000000 --- a/src/botan/src/hash/sha1/sha160.cpp +++ /dev/null @@ -1,161 +0,0 @@ -/* -* SHA-160 -* (C) 1999-2008,2011 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -namespace SHA1_F { - -namespace { - -/* -* SHA-160 F1 Function -*/ -inline void F1(u32bit A, u32bit& B, u32bit C, u32bit D, u32bit& E, u32bit msg) - { - E += (D ^ (B & (C ^ D))) + msg + 0x5A827999 + rotate_left(A, 5); - B = rotate_left(B, 30); - } - -/* -* SHA-160 F2 Function -*/ -inline void F2(u32bit A, u32bit& B, u32bit C, u32bit D, u32bit& E, u32bit msg) - { - E += (B ^ C ^ D) + msg + 0x6ED9EBA1 + rotate_left(A, 5); - B = rotate_left(B, 30); - } - -/* -* SHA-160 F3 Function -*/ -inline void F3(u32bit A, u32bit& B, u32bit C, u32bit D, u32bit& E, u32bit msg) - { - E += ((B & C) | ((B | C) & D)) + msg + 0x8F1BBCDC + rotate_left(A, 5); - B = rotate_left(B, 30); - } - -/* -* SHA-160 F4 Function -*/ -inline void F4(u32bit A, u32bit& B, u32bit C, u32bit D, u32bit& E, u32bit msg) - { - E += (B ^ C ^ D) + msg + 0xCA62C1D6 + rotate_left(A, 5); - B = rotate_left(B, 30); - } - -} - -} - -/* -* SHA-160 Compression Function -*/ -void SHA_160::compress_n(const byte input[], size_t blocks) - { - using namespace SHA1_F; - - u32bit A = digest[0], B = digest[1], C = digest[2], - D = digest[3], E = digest[4]; - - for(size_t i = 0; i != blocks; ++i) - { - load_be(&W[0], input, 16); - - for(size_t j = 16; j != 80; j += 8) - { - W[j ] = rotate_left((W[j-3] ^ W[j-8] ^ W[j-14] ^ W[j-16]), 1); - W[j+1] = rotate_left((W[j-2] ^ W[j-7] ^ W[j-13] ^ W[j-15]), 1); - W[j+2] = rotate_left((W[j-1] ^ W[j-6] ^ W[j-12] ^ W[j-14]), 1); - W[j+3] = rotate_left((W[j ] ^ W[j-5] ^ W[j-11] ^ W[j-13]), 1); - W[j+4] = rotate_left((W[j+1] ^ W[j-4] ^ W[j-10] ^ W[j-12]), 1); - W[j+5] = rotate_left((W[j+2] ^ W[j-3] ^ W[j- 9] ^ W[j-11]), 1); - W[j+6] = rotate_left((W[j+3] ^ W[j-2] ^ W[j- 8] ^ W[j-10]), 1); - W[j+7] = rotate_left((W[j+4] ^ W[j-1] ^ W[j- 7] ^ W[j- 9]), 1); - } - - F1(A, B, C, D, E, W[ 0]); F1(E, A, B, C, D, W[ 1]); - F1(D, E, A, B, C, W[ 2]); F1(C, D, E, A, B, W[ 3]); - F1(B, C, D, E, A, W[ 4]); F1(A, B, C, D, E, W[ 5]); - F1(E, A, B, C, D, W[ 6]); F1(D, E, A, B, C, W[ 7]); - F1(C, D, E, A, B, W[ 8]); F1(B, C, D, E, A, W[ 9]); - F1(A, B, C, D, E, W[10]); F1(E, A, B, C, D, W[11]); - F1(D, E, A, B, C, W[12]); F1(C, D, E, A, B, W[13]); - F1(B, C, D, E, A, W[14]); F1(A, B, C, D, E, W[15]); - F1(E, A, B, C, D, W[16]); F1(D, E, A, B, C, W[17]); - F1(C, D, E, A, B, W[18]); F1(B, C, D, E, A, W[19]); - - F2(A, B, C, D, E, W[20]); F2(E, A, B, C, D, W[21]); - F2(D, E, A, B, C, W[22]); F2(C, D, E, A, B, W[23]); - F2(B, C, D, E, A, W[24]); F2(A, B, C, D, E, W[25]); - F2(E, A, B, C, D, W[26]); F2(D, E, A, B, C, W[27]); - F2(C, D, E, A, B, W[28]); F2(B, C, D, E, A, W[29]); - F2(A, B, C, D, E, W[30]); F2(E, A, B, C, D, W[31]); - F2(D, E, A, B, C, W[32]); F2(C, D, E, A, B, W[33]); - F2(B, C, D, E, A, W[34]); F2(A, B, C, D, E, W[35]); - F2(E, A, B, C, D, W[36]); F2(D, E, A, B, C, W[37]); - F2(C, D, E, A, B, W[38]); F2(B, C, D, E, A, W[39]); - - F3(A, B, C, D, E, W[40]); F3(E, A, B, C, D, W[41]); - F3(D, E, A, B, C, W[42]); F3(C, D, E, A, B, W[43]); - F3(B, C, D, E, A, W[44]); F3(A, B, C, D, E, W[45]); - F3(E, A, B, C, D, W[46]); F3(D, E, A, B, C, W[47]); - F3(C, D, E, A, B, W[48]); F3(B, C, D, E, A, W[49]); - F3(A, B, C, D, E, W[50]); F3(E, A, B, C, D, W[51]); - F3(D, E, A, B, C, W[52]); F3(C, D, E, A, B, W[53]); - F3(B, C, D, E, A, W[54]); F3(A, B, C, D, E, W[55]); - F3(E, A, B, C, D, W[56]); F3(D, E, A, B, C, W[57]); - F3(C, D, E, A, B, W[58]); F3(B, C, D, E, A, W[59]); - - F4(A, B, C, D, E, W[60]); F4(E, A, B, C, D, W[61]); - F4(D, E, A, B, C, W[62]); F4(C, D, E, A, B, W[63]); - F4(B, C, D, E, A, W[64]); F4(A, B, C, D, E, W[65]); - F4(E, A, B, C, D, W[66]); F4(D, E, A, B, C, W[67]); - F4(C, D, E, A, B, W[68]); F4(B, C, D, E, A, W[69]); - F4(A, B, C, D, E, W[70]); F4(E, A, B, C, D, W[71]); - F4(D, E, A, B, C, W[72]); F4(C, D, E, A, B, W[73]); - F4(B, C, D, E, A, W[74]); F4(A, B, C, D, E, W[75]); - F4(E, A, B, C, D, W[76]); F4(D, E, A, B, C, W[77]); - F4(C, D, E, A, B, W[78]); F4(B, C, D, E, A, W[79]); - - A = (digest[0] += A); - B = (digest[1] += B); - C = (digest[2] += C); - D = (digest[3] += D); - E = (digest[4] += E); - - input += hash_block_size(); - } - } - -/* -* Copy out the digest -*/ -void SHA_160::copy_out(byte output[]) - { - for(size_t i = 0; i != output_length(); i += 4) - store_be(digest[i/4], output + i); - } - -/* -* Clear memory of sensitive data -*/ -void SHA_160::clear() - { - MDx_HashFunction::clear(); - zeroise(W); - digest[0] = 0x67452301; - digest[1] = 0xEFCDAB89; - digest[2] = 0x98BADCFE; - digest[3] = 0x10325476; - digest[4] = 0xC3D2E1F0; - } - -} diff --git a/src/botan/src/hash/sha1/sha160.h b/src/botan/src/hash/sha1/sha160.h deleted file mode 100644 index c3b264861..000000000 --- a/src/botan/src/hash/sha1/sha160.h +++ /dev/null @@ -1,60 +0,0 @@ -/* -* SHA-160 -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_SHA_160_H__ -#define BOTAN_SHA_160_H__ - -#include - -namespace Botan { - -/** -* NIST's SHA-160 -*/ -class BOTAN_DLL SHA_160 : public MDx_HashFunction - { - public: - std::string name() const { return "SHA-160"; } - size_t output_length() const { return 20; } - HashFunction* clone() const { return new SHA_160; } - - void clear(); - - SHA_160() : MDx_HashFunction(64, true, true), digest(5), W(80) - { - clear(); - } - protected: - /** - * Set a custom size for the W array. Normally 80, but some - * subclasses need slightly more for best performance/internal - * constraints - * @param W_size how big to make W - */ - SHA_160(size_t W_size) : - MDx_HashFunction(64, true, true), digest(5), W(W_size) - { - clear(); - } - - void compress_n(const byte[], size_t blocks); - void copy_out(byte[]); - - /** - * The digest value, exposed for use by subclasses (asm, SSE2) - */ - SecureVector digest; - - /** - * The message buffer, exposed for use by subclasses (asm, SSE2) - */ - SecureVector W; - }; - -} - -#endif diff --git a/src/botan/src/hash/sha2_32/info.txt b/src/botan/src/hash/sha2_32/info.txt deleted file mode 100644 index 2f0b8a7ee..000000000 --- a/src/botan/src/hash/sha2_32/info.txt +++ /dev/null @@ -1,5 +0,0 @@ -define SHA2_32 - - -mdx_hash - diff --git a/src/botan/src/hash/sha2_32/sha2_32.cpp b/src/botan/src/hash/sha2_32/sha2_32.cpp deleted file mode 100644 index 6dd780e64..000000000 --- a/src/botan/src/hash/sha2_32/sha2_32.cpp +++ /dev/null @@ -1,227 +0,0 @@ -/* -* SHA-{224,256} -* (C) 1999-2010 Jack Lloyd -* 2007 FlexSecure GmbH -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -namespace { - -namespace SHA2_32 { - -/* -* SHA-256 Rho Function -*/ -inline u32bit rho(u32bit X, u32bit rot1, u32bit rot2, u32bit rot3) - { - return (rotate_right(X, rot1) ^ rotate_right(X, rot2) ^ - rotate_right(X, rot3)); - } - -/* -* SHA-256 Sigma Function -*/ -inline u32bit sigma(u32bit X, u32bit rot1, u32bit rot2, u32bit shift) - { - return (rotate_right(X, rot1) ^ rotate_right(X, rot2) ^ (X >> shift)); - } - -/* -* SHA-256 F1 Function -* -* Use a macro as many compilers won't inline a function this big, -* even though it is much faster if inlined. -*/ -#define SHA2_32_F(A, B, C, D, E, F, G, H, M1, M2, M3, M4, magic) \ - do { \ - H += magic + rho(E, 6, 11, 25) + ((E & F) ^ (~E & G)) + M1; \ - D += H; \ - H += rho(A, 2, 13, 22) + ((A & B) | ((A | B) & C)); \ - M1 += sigma(M2, 17, 19, 10) + M3 + sigma(M4, 7, 18, 3); \ - } while(0); - -/* -* SHA-224 / SHA-256 compression function -*/ -void compress(MemoryRegion& digest, - const byte input[], size_t blocks) - { - u32bit A = digest[0], B = digest[1], C = digest[2], - D = digest[3], E = digest[4], F = digest[5], - G = digest[6], H = digest[7]; - - for(size_t i = 0; i != blocks; ++i) - { - u32bit W00 = load_be(input, 0); - u32bit W01 = load_be(input, 1); - u32bit W02 = load_be(input, 2); - u32bit W03 = load_be(input, 3); - u32bit W04 = load_be(input, 4); - u32bit W05 = load_be(input, 5); - u32bit W06 = load_be(input, 6); - u32bit W07 = load_be(input, 7); - u32bit W08 = load_be(input, 8); - u32bit W09 = load_be(input, 9); - u32bit W10 = load_be(input, 10); - u32bit W11 = load_be(input, 11); - u32bit W12 = load_be(input, 12); - u32bit W13 = load_be(input, 13); - u32bit W14 = load_be(input, 14); - u32bit W15 = load_be(input, 15); - - SHA2_32_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0x428A2F98); - SHA2_32_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0x71374491); - SHA2_32_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0xB5C0FBCF); - SHA2_32_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0xE9B5DBA5); - SHA2_32_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x3956C25B); - SHA2_32_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x59F111F1); - SHA2_32_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x923F82A4); - SHA2_32_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0xAB1C5ED5); - SHA2_32_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0xD807AA98); - SHA2_32_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0x12835B01); - SHA2_32_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0x243185BE); - SHA2_32_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0x550C7DC3); - SHA2_32_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0x72BE5D74); - SHA2_32_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0x80DEB1FE); - SHA2_32_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0x9BDC06A7); - SHA2_32_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0xC19BF174); - SHA2_32_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0xE49B69C1); - SHA2_32_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0xEFBE4786); - SHA2_32_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0x0FC19DC6); - SHA2_32_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0x240CA1CC); - SHA2_32_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x2DE92C6F); - SHA2_32_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x4A7484AA); - SHA2_32_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x5CB0A9DC); - SHA2_32_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0x76F988DA); - SHA2_32_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0x983E5152); - SHA2_32_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0xA831C66D); - SHA2_32_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0xB00327C8); - SHA2_32_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0xBF597FC7); - SHA2_32_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0xC6E00BF3); - SHA2_32_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0xD5A79147); - SHA2_32_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0x06CA6351); - SHA2_32_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0x14292967); - SHA2_32_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0x27B70A85); - SHA2_32_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0x2E1B2138); - SHA2_32_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0x4D2C6DFC); - SHA2_32_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0x53380D13); - SHA2_32_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x650A7354); - SHA2_32_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x766A0ABB); - SHA2_32_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x81C2C92E); - SHA2_32_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0x92722C85); - SHA2_32_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0xA2BFE8A1); - SHA2_32_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0xA81A664B); - SHA2_32_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0xC24B8B70); - SHA2_32_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0xC76C51A3); - SHA2_32_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0xD192E819); - SHA2_32_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0xD6990624); - SHA2_32_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0xF40E3585); - SHA2_32_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0x106AA070); - SHA2_32_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0x19A4C116); - SHA2_32_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0x1E376C08); - SHA2_32_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0x2748774C); - SHA2_32_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0x34B0BCB5); - SHA2_32_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x391C0CB3); - SHA2_32_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x4ED8AA4A); - SHA2_32_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x5B9CCA4F); - SHA2_32_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0x682E6FF3); - SHA2_32_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0x748F82EE); - SHA2_32_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0x78A5636F); - SHA2_32_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0x84C87814); - SHA2_32_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0x8CC70208); - SHA2_32_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0x90BEFFFA); - SHA2_32_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0xA4506CEB); - SHA2_32_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0xBEF9A3F7); - SHA2_32_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0xC67178F2); - - A = (digest[0] += A); - B = (digest[1] += B); - C = (digest[2] += C); - D = (digest[3] += D); - E = (digest[4] += E); - F = (digest[5] += F); - G = (digest[6] += G); - H = (digest[7] += H); - - input += 64; - } - } - -} - -} - -/* -* SHA-224 compression function -*/ -void SHA_224::compress_n(const byte input[], size_t blocks) - { - SHA2_32::compress(digest, input, blocks); - } - -/* -* Copy out the digest -*/ -void SHA_224::copy_out(byte output[]) - { - for(size_t i = 0; i != output_length(); i += 4) - store_be(digest[i/4], output + i); - } - -/* -* Clear memory of sensitive data -*/ -void SHA_224::clear() - { - MDx_HashFunction::clear(); - digest[0] = 0xC1059ED8; - digest[1] = 0x367CD507; - digest[2] = 0x3070DD17; - digest[3] = 0xF70E5939; - digest[4] = 0xFFC00B31; - digest[5] = 0x68581511; - digest[6] = 0x64F98FA7; - digest[7] = 0xBEFA4FA4; - } - -/* -* SHA-256 compression function -*/ -void SHA_256::compress_n(const byte input[], size_t blocks) - { - SHA2_32::compress(digest, input, blocks); - } - -/* -* Copy out the digest -*/ -void SHA_256::copy_out(byte output[]) - { - for(size_t i = 0; i != output_length(); i += 4) - store_be(digest[i/4], output + i); - } - -/* -* Clear memory of sensitive data -*/ -void SHA_256::clear() - { - MDx_HashFunction::clear(); - digest[0] = 0x6A09E667; - digest[1] = 0xBB67AE85; - digest[2] = 0x3C6EF372; - digest[3] = 0xA54FF53A; - digest[4] = 0x510E527F; - digest[5] = 0x9B05688C; - digest[6] = 0x1F83D9AB; - digest[7] = 0x5BE0CD19; - } - -} diff --git a/src/botan/src/hash/sha2_32/sha2_32.h b/src/botan/src/hash/sha2_32/sha2_32.h deleted file mode 100644 index 807b979d1..000000000 --- a/src/botan/src/hash/sha2_32/sha2_32.h +++ /dev/null @@ -1,60 +0,0 @@ -/* -* SHA-{224,256} -* (C) 1999-2011 Jack Lloyd -* 2007 FlexSecure GmbH -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_SHA_224_256_H__ -#define BOTAN_SHA_224_256_H__ - -#include - -namespace Botan { - -/** -* SHA-224 -*/ -class BOTAN_DLL SHA_224 : public MDx_HashFunction - { - public: - std::string name() const { return "SHA-224"; } - size_t output_length() const { return 28; } - HashFunction* clone() const { return new SHA_224; } - - void clear(); - - SHA_224() : MDx_HashFunction(64, true, true), digest(8) - { clear(); } - private: - void compress_n(const byte[], size_t blocks); - void copy_out(byte[]); - - SecureVector digest; - }; - -/** -* SHA-256 -*/ -class BOTAN_DLL SHA_256 : public MDx_HashFunction - { - public: - std::string name() const { return "SHA-256"; } - size_t output_length() const { return 32; } - HashFunction* clone() const { return new SHA_256; } - - void clear(); - - SHA_256() : MDx_HashFunction(64, true, true), digest(8) - { clear(); } - private: - void compress_n(const byte[], size_t blocks); - void copy_out(byte[]); - - SecureVector digest; - }; - -} - -#endif diff --git a/src/botan/src/hash/sha2_64/info.txt b/src/botan/src/hash/sha2_64/info.txt deleted file mode 100644 index 02e9971ce..000000000 --- a/src/botan/src/hash/sha2_64/info.txt +++ /dev/null @@ -1,5 +0,0 @@ -define SHA2_64 - - -mdx_hash - diff --git a/src/botan/src/hash/sha2_64/sha2_64.cpp b/src/botan/src/hash/sha2_64/sha2_64.cpp deleted file mode 100644 index 3026c3a39..000000000 --- a/src/botan/src/hash/sha2_64/sha2_64.cpp +++ /dev/null @@ -1,242 +0,0 @@ -/* -* SHA-{384,512} -* (C) 1999-2011 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -namespace { - -namespace SHA2_64 { - -/* -* SHA-{384,512} Rho Function -*/ -inline u64bit rho(u64bit X, u32bit rot1, u32bit rot2, u32bit rot3) - { - return (rotate_right(X, rot1) ^ rotate_right(X, rot2) ^ - rotate_right(X, rot3)); - } - -/* -* SHA-{384,512} Sigma Function -*/ -inline u64bit sigma(u64bit X, u32bit rot1, u32bit rot2, u32bit shift) - { - return (rotate_right(X, rot1) ^ rotate_right(X, rot2) ^ (X >> shift)); - } - -/* -* SHA-512 F1 Function -* -* Use a macro as many compilers won't inline a function this big, -* even though it is much faster if inlined. -*/ -#define SHA2_64_F(A, B, C, D, E, F, G, H, M1, M2, M3, M4, magic) \ - do { \ - H += magic + rho(E, 14, 18, 41) + ((E & F) ^ (~E & G)) + M1; \ - D += H; \ - H += rho(A, 28, 34, 39) + ((A & B) | ((A | B) & C)); \ - M1 += sigma(M2, 19, 61, 6) + M3 + sigma(M4, 1, 8, 7); \ - } while(0); - -/* -* SHA-{384,512} Compression Function -*/ -void compress(MemoryRegion& digest, - const byte input[], size_t blocks) - { - u64bit A = digest[0], B = digest[1], C = digest[2], - D = digest[3], E = digest[4], F = digest[5], - G = digest[6], H = digest[7]; - - for(size_t i = 0; i != blocks; ++i) - { - u64bit W00 = load_be(input, 0); - u64bit W01 = load_be(input, 1); - u64bit W02 = load_be(input, 2); - u64bit W03 = load_be(input, 3); - u64bit W04 = load_be(input, 4); - u64bit W05 = load_be(input, 5); - u64bit W06 = load_be(input, 6); - u64bit W07 = load_be(input, 7); - u64bit W08 = load_be(input, 8); - u64bit W09 = load_be(input, 9); - u64bit W10 = load_be(input, 10); - u64bit W11 = load_be(input, 11); - u64bit W12 = load_be(input, 12); - u64bit W13 = load_be(input, 13); - u64bit W14 = load_be(input, 14); - u64bit W15 = load_be(input, 15); - - SHA2_64_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0x428A2F98D728AE22); - SHA2_64_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0x7137449123EF65CD); - SHA2_64_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0xB5C0FBCFEC4D3B2F); - SHA2_64_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0xE9B5DBA58189DBBC); - SHA2_64_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x3956C25BF348B538); - SHA2_64_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x59F111F1B605D019); - SHA2_64_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x923F82A4AF194F9B); - SHA2_64_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0xAB1C5ED5DA6D8118); - SHA2_64_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0xD807AA98A3030242); - SHA2_64_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0x12835B0145706FBE); - SHA2_64_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0x243185BE4EE4B28C); - SHA2_64_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0x550C7DC3D5FFB4E2); - SHA2_64_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0x72BE5D74F27B896F); - SHA2_64_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0x80DEB1FE3B1696B1); - SHA2_64_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0x9BDC06A725C71235); - SHA2_64_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0xC19BF174CF692694); - SHA2_64_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0xE49B69C19EF14AD2); - SHA2_64_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0xEFBE4786384F25E3); - SHA2_64_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0x0FC19DC68B8CD5B5); - SHA2_64_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0x240CA1CC77AC9C65); - SHA2_64_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x2DE92C6F592B0275); - SHA2_64_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x4A7484AA6EA6E483); - SHA2_64_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x5CB0A9DCBD41FBD4); - SHA2_64_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0x76F988DA831153B5); - SHA2_64_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0x983E5152EE66DFAB); - SHA2_64_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0xA831C66D2DB43210); - SHA2_64_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0xB00327C898FB213F); - SHA2_64_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0xBF597FC7BEEF0EE4); - SHA2_64_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0xC6E00BF33DA88FC2); - SHA2_64_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0xD5A79147930AA725); - SHA2_64_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0x06CA6351E003826F); - SHA2_64_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0x142929670A0E6E70); - SHA2_64_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0x27B70A8546D22FFC); - SHA2_64_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0x2E1B21385C26C926); - SHA2_64_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0x4D2C6DFC5AC42AED); - SHA2_64_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0x53380D139D95B3DF); - SHA2_64_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x650A73548BAF63DE); - SHA2_64_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x766A0ABB3C77B2A8); - SHA2_64_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x81C2C92E47EDAEE6); - SHA2_64_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0x92722C851482353B); - SHA2_64_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0xA2BFE8A14CF10364); - SHA2_64_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0xA81A664BBC423001); - SHA2_64_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0xC24B8B70D0F89791); - SHA2_64_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0xC76C51A30654BE30); - SHA2_64_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0xD192E819D6EF5218); - SHA2_64_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0xD69906245565A910); - SHA2_64_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0xF40E35855771202A); - SHA2_64_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0x106AA07032BBD1B8); - SHA2_64_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0x19A4C116B8D2D0C8); - SHA2_64_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0x1E376C085141AB53); - SHA2_64_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0x2748774CDF8EEB99); - SHA2_64_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0x34B0BCB5E19B48A8); - SHA2_64_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x391C0CB3C5C95A63); - SHA2_64_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x4ED8AA4AE3418ACB); - SHA2_64_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x5B9CCA4F7763E373); - SHA2_64_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0x682E6FF3D6B2B8A3); - SHA2_64_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0x748F82EE5DEFB2FC); - SHA2_64_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0x78A5636F43172F60); - SHA2_64_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0x84C87814A1F0AB72); - SHA2_64_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0x8CC702081A6439EC); - SHA2_64_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0x90BEFFFA23631E28); - SHA2_64_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0xA4506CEBDE82BDE9); - SHA2_64_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0xBEF9A3F7B2C67915); - SHA2_64_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0xC67178F2E372532B); - SHA2_64_F(A, B, C, D, E, F, G, H, W00, W14, W09, W01, 0xCA273ECEEA26619C); - SHA2_64_F(H, A, B, C, D, E, F, G, W01, W15, W10, W02, 0xD186B8C721C0C207); - SHA2_64_F(G, H, A, B, C, D, E, F, W02, W00, W11, W03, 0xEADA7DD6CDE0EB1E); - SHA2_64_F(F, G, H, A, B, C, D, E, W03, W01, W12, W04, 0xF57D4F7FEE6ED178); - SHA2_64_F(E, F, G, H, A, B, C, D, W04, W02, W13, W05, 0x06F067AA72176FBA); - SHA2_64_F(D, E, F, G, H, A, B, C, W05, W03, W14, W06, 0x0A637DC5A2C898A6); - SHA2_64_F(C, D, E, F, G, H, A, B, W06, W04, W15, W07, 0x113F9804BEF90DAE); - SHA2_64_F(B, C, D, E, F, G, H, A, W07, W05, W00, W08, 0x1B710B35131C471B); - SHA2_64_F(A, B, C, D, E, F, G, H, W08, W06, W01, W09, 0x28DB77F523047D84); - SHA2_64_F(H, A, B, C, D, E, F, G, W09, W07, W02, W10, 0x32CAAB7B40C72493); - SHA2_64_F(G, H, A, B, C, D, E, F, W10, W08, W03, W11, 0x3C9EBE0A15C9BEBC); - SHA2_64_F(F, G, H, A, B, C, D, E, W11, W09, W04, W12, 0x431D67C49C100D4C); - SHA2_64_F(E, F, G, H, A, B, C, D, W12, W10, W05, W13, 0x4CC5D4BECB3E42B6); - SHA2_64_F(D, E, F, G, H, A, B, C, W13, W11, W06, W14, 0x597F299CFC657E2A); - SHA2_64_F(C, D, E, F, G, H, A, B, W14, W12, W07, W15, 0x5FCB6FAB3AD6FAEC); - SHA2_64_F(B, C, D, E, F, G, H, A, W15, W13, W08, W00, 0x6C44198C4A475817); - - A = (digest[0] += A); - B = (digest[1] += B); - C = (digest[2] += C); - D = (digest[3] += D); - E = (digest[4] += E); - F = (digest[5] += F); - G = (digest[6] += G); - H = (digest[7] += H); - - input += 128; - } - } - -} - -} - -/* -* SHA-384 compression function -*/ -void SHA_384::compress_n(const byte input[], size_t blocks) - { - SHA2_64::compress(digest, input, blocks); - } - -/* -* Copy out the digest -*/ -void SHA_384::copy_out(byte output[]) - { - for(size_t i = 0; i != output_length(); i += 8) - store_be(digest[i/8], output + i); - } - -/* -* Clear memory of sensitive data -*/ -void SHA_384::clear() - { - MDx_HashFunction::clear(); - digest[0] = 0xCBBB9D5DC1059ED8; - digest[1] = 0x629A292A367CD507; - digest[2] = 0x9159015A3070DD17; - digest[3] = 0x152FECD8F70E5939; - digest[4] = 0x67332667FFC00B31; - digest[5] = 0x8EB44A8768581511; - digest[6] = 0xDB0C2E0D64F98FA7; - digest[7] = 0x47B5481DBEFA4FA4; - } - -/* -* SHA-512 compression function -*/ -void SHA_512::compress_n(const byte input[], size_t blocks) - { - SHA2_64::compress(digest, input, blocks); - } - -/* -* Copy out the digest -*/ -void SHA_512::copy_out(byte output[]) - { - for(size_t i = 0; i != output_length(); i += 8) - store_be(digest[i/8], output + i); - } - -/* -* Clear memory of sensitive data -*/ -void SHA_512::clear() - { - MDx_HashFunction::clear(); - digest[0] = 0x6A09E667F3BCC908; - digest[1] = 0xBB67AE8584CAA73B; - digest[2] = 0x3C6EF372FE94F82B; - digest[3] = 0xA54FF53A5F1D36F1; - digest[4] = 0x510E527FADE682D1; - digest[5] = 0x9B05688C2B3E6C1F; - digest[6] = 0x1F83D9ABFB41BD6B; - digest[7] = 0x5BE0CD19137E2179; - } - -} diff --git a/src/botan/src/hash/sha2_64/sha2_64.h b/src/botan/src/hash/sha2_64/sha2_64.h deleted file mode 100644 index 124d4bbfb..000000000 --- a/src/botan/src/hash/sha2_64/sha2_64.h +++ /dev/null @@ -1,59 +0,0 @@ -/* -* SHA-{384,512} -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_SHA_64BIT_H__ -#define BOTAN_SHA_64BIT_H__ - -#include - -namespace Botan { - -/** -* SHA-384 -*/ -class BOTAN_DLL SHA_384 : public MDx_HashFunction - { - public: - std::string name() const { return "SHA-384"; } - size_t output_length() const { return 48; } - HashFunction* clone() const { return new SHA_384; } - - void clear(); - - SHA_384() : MDx_HashFunction(128, true, true, 16), digest(8) - { clear(); } - private: - void compress_n(const byte[], size_t blocks); - void copy_out(byte[]); - - SecureVector digest; - }; - -/** -* SHA-512 -*/ -class BOTAN_DLL SHA_512 : public MDx_HashFunction - { - public: - std::string name() const { return "SHA-512"; } - size_t output_length() const { return 64; } - HashFunction* clone() const { return new SHA_512; } - - void clear(); - - SHA_512() : MDx_HashFunction(128, true, true, 16), digest(8) - { clear(); } - private: - void compress_n(const byte[], size_t blocks); - void copy_out(byte[]); - - SecureVector digest; - }; - -} - -#endif diff --git a/src/botan/src/hash/skein/info.txt b/src/botan/src/hash/skein/info.txt deleted file mode 100644 index 427f59121..000000000 --- a/src/botan/src/hash/skein/info.txt +++ /dev/null @@ -1,5 +0,0 @@ -define SKEIN_512 - - -alloc - diff --git a/src/botan/src/hash/skein/skein_512.cpp b/src/botan/src/hash/skein/skein_512.cpp deleted file mode 100644 index 571bf9c0b..000000000 --- a/src/botan/src/hash/skein/skein_512.cpp +++ /dev/null @@ -1,273 +0,0 @@ -/* -* The Skein-512 hash function -* (C) 2009-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include - -namespace Botan { - -namespace { - -enum type_code { - SKEIN_KEY = 0, - SKEIN_CONFIG = 4, - SKEIN_PERSONALIZATION = 8, - SKEIN_PUBLIC_KEY = 12, - SKEIN_KEY_IDENTIFIER = 16, - SKEIN_NONCE = 20, - SKEIN_MSG = 48, - SKEIN_OUTPUT = 63 -}; - -void ubi_512(MemoryRegion& H, - MemoryRegion& T, - const byte msg[], size_t msg_len) - { - do - { - const size_t to_proc = std::min(msg_len, 64); - T[0] += to_proc; - - u64bit M[8] = { 0 }; - - load_le(M, msg, to_proc / 8); - - if(to_proc % 8) - { - for(size_t j = 0; j != to_proc % 8; ++j) - M[to_proc/8] |= static_cast(msg[8*(to_proc/8)+j]) << (8*j); - } - - H[8] = H[0] ^ H[1] ^ H[2] ^ H[3] ^ - H[4] ^ H[5] ^ H[6] ^ H[7] ^ 0x1BD11BDAA9FC1A22; - - T[2] = T[0] ^ T[1]; - - u64bit X0 = M[0] + H[0]; - u64bit X1 = M[1] + H[1]; - u64bit X2 = M[2] + H[2]; - u64bit X3 = M[3] + H[3]; - u64bit X4 = M[4] + H[4]; - u64bit X5 = M[5] + H[5] + T[0]; - u64bit X6 = M[6] + H[6] + T[1]; - u64bit X7 = M[7] + H[7]; - -#define THREEFISH_ROUND(I1,I2,I3,I4,I5,I6,I7,I8,ROT1,ROT2,ROT3,ROT4) \ - do { \ - X##I1 += X##I2; X##I2 = rotate_left(X##I2, ROT1) ^ X##I1; \ - X##I3 += X##I4; X##I4 = rotate_left(X##I4, ROT2) ^ X##I3; \ - X##I5 += X##I6; X##I6 = rotate_left(X##I6, ROT3) ^ X##I5; \ - X##I7 += X##I8; X##I8 = rotate_left(X##I8, ROT4) ^ X##I7; \ - } while(0); - -#define THREEFISH_INJECT_KEY(r) \ - do { \ - X0 += H[(r ) % 9]; \ - X1 += H[(r+1) % 9]; \ - X2 += H[(r+2) % 9]; \ - X3 += H[(r+3) % 9]; \ - X4 += H[(r+4) % 9]; \ - X5 += H[(r+5) % 9] + T[(r ) % 3]; \ - X6 += H[(r+6) % 9] + T[(r+1) % 3]; \ - X7 += H[(r+7) % 9] + (r); \ - } while(0); - -#define THREEFISH_8_ROUNDS(R1,R2) \ - do { \ - THREEFISH_ROUND(0,1,2,3,4,5,6,7, 46,36,19,37); \ - THREEFISH_ROUND(2,1,4,7,6,5,0,3, 33,27,14,42); \ - THREEFISH_ROUND(4,1,6,3,0,5,2,7, 17,49,36,39); \ - THREEFISH_ROUND(6,1,0,7,2,5,4,3, 44, 9,54,56); \ - \ - THREEFISH_INJECT_KEY(R1); \ - \ - THREEFISH_ROUND(0,1,2,3,4,5,6,7, 39,30,34,24); \ - THREEFISH_ROUND(2,1,4,7,6,5,0,3, 13,50,10,17); \ - THREEFISH_ROUND(4,1,6,3,0,5,2,7, 25,29,39,43); \ - THREEFISH_ROUND(6,1,0,7,2,5,4,3, 8,35,56,22); \ - \ - THREEFISH_INJECT_KEY(R2); \ - } while(0); - - THREEFISH_8_ROUNDS(1,2); - THREEFISH_8_ROUNDS(3,4); - THREEFISH_8_ROUNDS(5,6); - THREEFISH_8_ROUNDS(7,8); - THREEFISH_8_ROUNDS(9,10); - THREEFISH_8_ROUNDS(11,12); - THREEFISH_8_ROUNDS(13,14); - THREEFISH_8_ROUNDS(15,16); - THREEFISH_8_ROUNDS(17,18); - - // message feed forward - H[0] = X0 ^ M[0]; - H[1] = X1 ^ M[1]; - H[2] = X2 ^ M[2]; - H[3] = X3 ^ M[3]; - H[4] = X4 ^ M[4]; - H[5] = X5 ^ M[5]; - H[6] = X6 ^ M[6]; - H[7] = X7 ^ M[7]; - - // clear first flag if set - T[1] &= ~(static_cast(1) << 62); - - msg_len -= to_proc; - msg += to_proc; - } while(msg_len); - } - -void reset_tweak(MemoryRegion& T, - type_code type, bool final) - { - T[0] = 0; - - T[1] = (static_cast(type) << 56) | - (static_cast(1) << 62) | - (static_cast(final) << 63); - } - -void initial_block(MemoryRegion& H, - MemoryRegion& T, - size_t output_bits, - const std::string& personalization) - { - zeroise(H); - - // ASCII("SHA3") followed by version (0x0001) code - byte config_str[32] = { 0x53, 0x48, 0x41, 0x33, 0x01, 0x00, 0 }; - store_le(u32bit(output_bits), config_str + 8); - - reset_tweak(T, SKEIN_CONFIG, true); - ubi_512(H, T, config_str, sizeof(config_str)); - - if(personalization != "") - { - /* - This is a limitation of this implementation, and not of the - algorithm specification. Could be fixed relatively easily, but - doesn't seem worth the trouble. - */ - if(personalization.length() > 64) - throw Invalid_Argument("Skein personalization must be <= 64 bytes"); - - const byte* bits = reinterpret_cast(personalization.data()); - - reset_tweak(T, SKEIN_PERSONALIZATION, true); - ubi_512(H, T, bits, personalization.length()); - } - - reset_tweak(T, SKEIN_MSG, false); - } - -} - -Skein_512::Skein_512(size_t arg_output_bits, - const std::string& arg_personalization) : - personalization(arg_personalization), - output_bits(arg_output_bits), - H(9), T(3), buffer(64), buf_pos(0) - { - if(output_bits == 0 || output_bits % 8 != 0 || output_bits > 64*1024) - throw Invalid_Argument("Bad output bits size for Skein-512"); - - initial_block(H, T, output_bits, personalization); - } - -std::string Skein_512::name() const - { - if(personalization != "") - return "Skein-512(" + to_string(output_bits) + "," + personalization + ")"; - return "Skein-512(" + to_string(output_bits) + ")"; - } - -HashFunction* Skein_512::clone() const - { - return new Skein_512(output_bits, personalization); - } - -void Skein_512::clear() - { - zeroise(H); - zeroise(T); - zeroise(buffer); - buf_pos = 0; - } - -void Skein_512::add_data(const byte input[], size_t length) - { - if(length == 0) - return; - - if(buf_pos) - { - buffer.copy(buf_pos, input, length); - if(buf_pos + length > 64) - { - ubi_512(H, T, &buffer[0], buffer.size()); - - input += (64 - buf_pos); - length -= (64 - buf_pos); - buf_pos = 0; - } - } - - const size_t full_blocks = (length - 1) / 64; - - if(full_blocks) - ubi_512(H, T, input, 64*full_blocks); - - length -= full_blocks * 64; - - buffer.copy(buf_pos, input + full_blocks * 64, length); - buf_pos += length; - } - -void Skein_512::final_result(byte out[]) - { - T[1] |= (static_cast(1) << 63); // final block flag - - for(size_t i = buf_pos; i != buffer.size(); ++i) - buffer[i] = 0; - - ubi_512(H, T, &buffer[0], buf_pos); - - byte counter[8] = { 0 }; - - size_t out_bytes = output_bits / 8; - - SecureVector H_out(9); - - while(out_bytes) - { - const size_t to_proc = std::min(out_bytes, 64); - - H_out.copy(&H[0], 8); - - reset_tweak(T, SKEIN_OUTPUT, true); - ubi_512(H_out, T, counter, sizeof(counter)); - - for(size_t i = 0; i != to_proc; ++i) - out[i] = get_byte(7-i%8, H_out[i/8]); - - out_bytes -= to_proc; - out += to_proc; - - for(size_t i = 0; i != sizeof(counter); ++i) - if(++counter[i]) - break; - } - - buf_pos = 0; - initial_block(H, T, output_bits, personalization); - } - -} diff --git a/src/botan/src/hash/skein/skein_512.h b/src/botan/src/hash/skein/skein_512.h deleted file mode 100644 index 8605e5991..000000000 --- a/src/botan/src/hash/skein/skein_512.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -* The Skein-512 hash function -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_SKEIN_512_H__ -#define BOTAN_SKEIN_512_H__ - -#include -#include -#include - -namespace Botan { - -/** -* Skein-512, a SHA-3 candidate -*/ -class BOTAN_DLL Skein_512 : public HashFunction - { - public: - /** - * @param output_bits the output size of Skein in bits - * @param personalization is a string that will paramaterize the - * hash output - */ - Skein_512(size_t output_bits = 512, - const std::string& personalization = ""); - - size_t hash_block_size() const { return 64; } - size_t output_length() const { return output_bits / 8; } - - HashFunction* clone() const; - std::string name() const; - void clear(); - private: - void add_data(const byte input[], size_t length); - void final_result(byte out[]); - - std::string personalization; - size_t output_bits; - - SecureVector H; - SecureVector T; - SecureVector buffer; - size_t buf_pos; - }; - -} - -#endif diff --git a/src/botan/src/kdf/info.txt b/src/botan/src/kdf/info.txt deleted file mode 100644 index a4cd72bf5..000000000 --- a/src/botan/src/kdf/info.txt +++ /dev/null @@ -1,5 +0,0 @@ -define KDF_BASE - - -alloc - diff --git a/src/botan/src/kdf/kdf.cpp b/src/botan/src/kdf/kdf.cpp deleted file mode 100644 index 6281f753c..000000000 --- a/src/botan/src/kdf/kdf.cpp +++ /dev/null @@ -1,68 +0,0 @@ -/* -* KDF Base Class -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include - -namespace Botan { - -/* -* Derive a key -*/ -SecureVector KDF::derive_key(size_t key_len, - const MemoryRegion& secret, - const std::string& salt) const - { - return derive_key(key_len, &secret[0], secret.size(), - reinterpret_cast(salt.data()), - salt.length()); - } - -/* -* Derive a key -*/ -SecureVector KDF::derive_key(size_t key_len, - const MemoryRegion& secret, - const byte salt[], size_t salt_len) const - { - return derive_key(key_len, &secret[0], secret.size(), - salt, salt_len); - } - -/* -* Derive a key -*/ -SecureVector KDF::derive_key(size_t key_len, - const MemoryRegion& secret, - const MemoryRegion& salt) const - { - return derive_key(key_len, &secret[0], secret.size(), - &salt[0], salt.size()); - } - -/* -* Derive a key -*/ -SecureVector KDF::derive_key(size_t key_len, - const byte secret[], size_t secret_len, - const std::string& salt) const - { - return derive_key(key_len, secret, secret_len, - reinterpret_cast(salt.data()), - salt.length()); - } - -/* -* Derive a key -*/ -SecureVector KDF::derive_key(size_t key_len, - const byte secret[], size_t secret_len, - const byte salt[], size_t salt_len) const - { - return derive(key_len, secret, secret_len, salt, salt_len); - } - -} diff --git a/src/botan/src/kdf/kdf.h b/src/botan/src/kdf/kdf.h deleted file mode 100644 index 3ec912cfe..000000000 --- a/src/botan/src/kdf/kdf.h +++ /dev/null @@ -1,105 +0,0 @@ -/* -* KDF/MGF -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_KDF_BASE_H__ -#define BOTAN_KDF_BASE_H__ - -#include -#include -#include - -namespace Botan { - -/** -* Key Derivation Function -*/ -class BOTAN_DLL KDF : public Algorithm - { - public: - /** - * Derive a key - * @param key_len the desired output length in bytes - * @param secret the secret input - * @param salt a diversifier - */ - SecureVector derive_key(size_t key_len, - const MemoryRegion& secret, - const std::string& salt = "") const; - - /** - * Derive a key - * @param key_len the desired output length in bytes - * @param secret the secret input - * @param salt a diversifier - */ - SecureVector derive_key(size_t key_len, - const MemoryRegion& secret, - const MemoryRegion& salt) const; - - /** - * Derive a key - * @param key_len the desired output length in bytes - * @param secret the secret input - * @param salt a diversifier - * @param salt_len size of salt in bytes - */ - SecureVector derive_key(size_t key_len, - const MemoryRegion& secret, - const byte salt[], - size_t salt_len) const; - - /** - * Derive a key - * @param key_len the desired output length in bytes - * @param secret the secret input - * @param secret_len size of secret in bytes - * @param salt a diversifier - */ - SecureVector derive_key(size_t key_len, - const byte secret[], - size_t secret_len, - const std::string& salt = "") const; - - /** - * Derive a key - * @param key_len the desired output length in bytes - * @param secret the secret input - * @param secret_len size of secret in bytes - * @param salt a diversifier - * @param salt_len size of salt in bytes - */ - SecureVector derive_key(size_t key_len, - const byte secret[], - size_t secret_len, - const byte salt[], - size_t salt_len) const; - - void clear() {} - - virtual KDF* clone() const = 0; - private: - virtual SecureVector - derive(size_t key_len, - const byte secret[], size_t secret_len, - const byte salt[], size_t salt_len) const = 0; - }; - -/** -* Mask Generation Function -*/ -class BOTAN_DLL MGF - { - public: - virtual void mask(const byte in[], size_t in_len, - byte out[], size_t out_len) const = 0; - - virtual ~MGF() {} - }; - -} - -#endif diff --git a/src/botan/src/libstate/botan.h b/src/botan/src/libstate/botan.h deleted file mode 100644 index 42d3dc392..000000000 --- a/src/botan/src/libstate/botan.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -* A vague catch all include file for Botan -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_BOTAN_H__ -#define BOTAN_BOTAN_H__ - -#include -#include -#include -#include -#include - -#include - -#if defined(BOTAN_HAS_AUTO_SEEDING_RNG) - #include -#endif - -#endif diff --git a/src/botan/src/libstate/get_enc.cpp b/src/botan/src/libstate/get_enc.cpp deleted file mode 100644 index 6a87268e8..000000000 --- a/src/botan/src/libstate/get_enc.cpp +++ /dev/null @@ -1,211 +0,0 @@ -/* -* PBKDF/EMSA/EME/KDF/MGF Retrieval -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -#if defined(BOTAN_HAS_MGF1) - #include -#endif - -#if defined(BOTAN_HAS_EMSA1) - #include -#endif - -#if defined(BOTAN_HAS_EMSA1_BSI) - #include -#endif - -#if defined(BOTAN_HAS_EMSA2) - #include -#endif - -#if defined(BOTAN_HAS_EMSA3) - #include -#endif - -#if defined(BOTAN_HAS_EMSA4) - #include -#endif - -#if defined(BOTAN_HAS_EMSA_RAW) - #include -#endif - -#if defined(BOTAN_HAS_EME1) - #include -#endif - -#if defined(BOTAN_HAS_EME_PKCS1v15) - #include -#endif - -#if defined(BOTAN_HAS_KDF1) - #include -#endif - -#if defined(BOTAN_HAS_KDF2) - #include -#endif - -#if defined(BOTAN_HAS_X942_PRF) - #include -#endif - -#if defined(BOTAN_HAS_SSL_V3_PRF) - #include -#endif - -#if defined(BOTAN_HAS_TLS_V10_PRF) - #include -#endif - -namespace Botan { - -/* -* Get a PBKDF algorithm by name -*/ -PBKDF* get_pbkdf(const std::string& algo_spec) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - - if(PBKDF* pbkdf = af.make_pbkdf(algo_spec)) - return pbkdf; - - throw Algorithm_Not_Found(algo_spec); - } - -/* -* Get an EMSA by name -*/ -EMSA* get_emsa(const std::string& algo_spec) - { - SCAN_Name request(algo_spec); - - Algorithm_Factory& af = global_state().algorithm_factory(); - -#if defined(BOTAN_HAS_EMSA_RAW) - if(request.algo_name() == "Raw" && request.arg_count() == 0) - return new EMSA_Raw; -#endif - -#if defined(BOTAN_HAS_EMSA1) - if(request.algo_name() == "EMSA1" && request.arg_count() == 1) - return new EMSA1(af.make_hash_function(request.arg(0))); -#endif - -#if defined(BOTAN_HAS_EMSA1_BSI) - if(request.algo_name() == "EMSA1_BSI" && request.arg_count() == 1) - return new EMSA1_BSI(af.make_hash_function(request.arg(0))); -#endif - -#if defined(BOTAN_HAS_EMSA2) - if(request.algo_name() == "EMSA2" && request.arg_count() == 1) - return new EMSA2(af.make_hash_function(request.arg(0))); -#endif - -#if defined(BOTAN_HAS_EMSA3) - if(request.algo_name() == "EMSA3" && request.arg_count() == 1) - { - if(request.arg(0) == "Raw") - return new EMSA3_Raw; - return new EMSA3(af.make_hash_function(request.arg(0))); - } -#endif - -#if defined(BOTAN_HAS_EMSA4) - if(request.algo_name() == "EMSA4" && request.arg_count_between(1, 3)) - { - // 3 args: Hash, MGF, salt size (MGF is hardcoded MGF1 in Botan) - if(request.arg_count() == 1) - return new EMSA4(af.make_hash_function(request.arg(0))); - - if(request.arg_count() == 2 && request.arg(1) != "MGF1") - return new EMSA4(af.make_hash_function(request.arg(0))); - - if(request.arg_count() == 3) - return new EMSA4(af.make_hash_function(request.arg(0)), - request.arg_as_integer(2, 0)); - } -#endif - - throw Algorithm_Not_Found(algo_spec); - } - -/* -* Get an EME by name -*/ -EME* get_eme(const std::string& algo_spec) - { - SCAN_Name request(algo_spec); - - Algorithm_Factory& af = global_state().algorithm_factory(); - - if(request.algo_name() == "Raw") - return 0; // No padding - -#if defined(BOTAN_HAS_EME_PKCS1v15) - if(request.algo_name() == "PKCS1v15" && request.arg_count() == 0) - return new EME_PKCS1v15; -#endif - -#if defined(BOTAN_HAS_EME1) - if(request.algo_name() == "EME1" && request.arg_count_between(1, 2)) - { - if(request.arg_count() == 1 || - (request.arg_count() == 2 && request.arg(1) == "MGF1")) - { - return new EME1(af.make_hash_function(request.arg(0))); - } - } -#endif - - throw Algorithm_Not_Found(algo_spec); - } - -/* -* Get an KDF by name -*/ -KDF* get_kdf(const std::string& algo_spec) - { - SCAN_Name request(algo_spec); - - Algorithm_Factory& af = global_state().algorithm_factory(); - - if(request.algo_name() == "Raw") - return 0; // No KDF - -#if defined(BOTAN_HAS_KDF1) - if(request.algo_name() == "KDF1" && request.arg_count() == 1) - return new KDF1(af.make_hash_function(request.arg(0))); -#endif - -#if defined(BOTAN_HAS_KDF2) - if(request.algo_name() == "KDF2" && request.arg_count() == 1) - return new KDF2(af.make_hash_function(request.arg(0))); -#endif - -#if defined(BOTAN_HAS_X942_PRF) - if(request.algo_name() == "X9.42-PRF" && request.arg_count() == 1) - return new X942_PRF(request.arg(0)); // OID -#endif - -#if defined(BOTAN_HAS_TLS_V10_PRF) - if(request.algo_name() == "TLS-PRF" && request.arg_count() == 0) - return new TLS_PRF; -#endif - -#if defined(BOTAN_HAS_SSL_V3_PRF) - if(request.algo_name() == "SSL3-PRF" && request.arg_count() == 0) - return new SSL3_PRF; -#endif - - throw Algorithm_Not_Found(algo_spec); - } - -} diff --git a/src/botan/src/libstate/global_rng.cpp b/src/botan/src/libstate/global_rng.cpp deleted file mode 100644 index 9bf8030dd..000000000 --- a/src/botan/src/libstate/global_rng.cpp +++ /dev/null @@ -1,204 +0,0 @@ -/* -* Global PRNG -* (C) 2008-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -#if defined(BOTAN_HAS_RANDPOOL) - #include -#endif - -#if defined(BOTAN_HAS_HMAC_RNG) - #include -#endif - -#if defined(BOTAN_HAS_X931_RNG) - #include -#endif - -#if defined(BOTAN_HAS_ENTROPY_SRC_HIGH_RESOLUTION_TIMER) - #include -#endif - -#if defined(BOTAN_HAS_ENTROPY_SRC_RDRAND) - #include -#endif - -#if defined(BOTAN_HAS_ENTROPY_SRC_DEV_RANDOM) - #include -#endif - -#if defined(BOTAN_HAS_ENTROPY_SRC_EGD) - #include -#endif - -#if defined(BOTAN_HAS_ENTROPY_SRC_UNIX) - #include -#endif - -#if defined(BOTAN_HAS_ENTROPY_SRC_BEOS) - #include -#endif - -#if defined(BOTAN_HAS_ENTROPY_SRC_CAPI) - #include -#endif - -#if defined(BOTAN_HAS_ENTROPY_SRC_WIN32) - #include -#endif - -#if defined(BOTAN_HAS_ENTROPY_SRC_FTW) - #include -#endif - -namespace Botan { - -namespace { - -/** -* Add any known entropy sources to this RNG -*/ -void add_entropy_sources(RandomNumberGenerator* rng) - { -#if defined(BOTAN_HAS_ENTROPY_SRC_HIGH_RESOLUTION_TIMER) - rng->add_entropy_source(new High_Resolution_Timestamp); -#endif - -#if defined(BOTAN_HAS_ENTROPY_SRC_RDRAND) - rng->add_entropy_source(new Intel_Rdrand); -#endif - -#if defined(BOTAN_HAS_ENTROPY_SRC_DEV_RANDOM) - rng->add_entropy_source( - new Device_EntropySource( - split_on("/dev/urandom:/dev/srandom:/dev/random", ':') - ) - ); -#endif - -#if defined(BOTAN_HAS_ENTROPY_SRC_EGD) - rng->add_entropy_source( - new EGD_EntropySource(split_on("/var/run/egd-pool:/dev/egd-pool", ':')) - ); -#endif - -#if defined(BOTAN_HAS_ENTROPY_SRC_CAPI) - rng->add_entropy_source(new Win32_CAPI_EntropySource); -#endif - -#if defined(BOTAN_HAS_ENTROPY_SRC_FTW) - rng->add_entropy_source(new FTW_EntropySource("/proc")); -#endif - -#if defined(BOTAN_HAS_ENTROPY_SRC_WIN32) - rng->add_entropy_source(new Win32_EntropySource); -#endif - -#if defined(BOTAN_HAS_ENTROPY_SRC_BEOS) - rng->add_entropy_source(new BeOS_EntropySource); -#endif - -#if defined(BOTAN_HAS_ENTROPY_SRC_UNIX) - rng->add_entropy_source( - new Unix_EntropySource(split_on("/bin:/sbin:/usr/bin:/usr/sbin", ':')) - ); -#endif - } - -class Serialized_PRNG : public RandomNumberGenerator - { - public: - void randomize(byte out[], size_t len) - { - Mutex_Holder lock(mutex); - rng->randomize(out, len); - } - - bool is_seeded() const - { - Mutex_Holder lock(mutex); - return rng->is_seeded(); - } - - void clear() - { - Mutex_Holder lock(mutex); - rng->clear(); - } - - std::string name() const - { - Mutex_Holder lock(mutex); - return rng->name(); - } - - void reseed(size_t poll_bits) - { - Mutex_Holder lock(mutex); - rng->reseed(poll_bits); - } - - void add_entropy_source(EntropySource* es) - { - Mutex_Holder lock(mutex); - rng->add_entropy_source(es); - } - - void add_entropy(const byte in[], size_t len) - { - Mutex_Holder lock(mutex); - rng->add_entropy(in, len); - } - - // We do not own the mutex; Library_State does - Serialized_PRNG(RandomNumberGenerator* r, Mutex* m) : - mutex(m), rng(r) {} - - ~Serialized_PRNG() { delete rng; } - private: - Mutex* mutex; - RandomNumberGenerator* rng; - }; - -} - -RandomNumberGenerator* Library_State::make_global_rng(Algorithm_Factory& af, - Mutex* mutex) - { - RandomNumberGenerator* rng = 0; - -#if defined(BOTAN_HAS_HMAC_RNG) - - rng = new HMAC_RNG(af.make_mac("HMAC(SHA-512)"), - af.make_mac("HMAC(SHA-256)")); - -#elif defined(BOTAN_HAS_RANDPOOL) - - rng = new Randpool(af.make_block_cipher("AES-256"), - af.make_mac("HMAC(SHA-256)")); - -#endif - - if(!rng) - throw Internal_Error("No usable RNG found enabled in build"); - - /* If X9.31 is available, use it to wrap the other RNG as a failsafe */ -#if defined(BOTAN_HAS_X931_RNG) - - rng = new ANSI_X931_RNG(af.make_block_cipher("AES-256"), rng); - -#endif - - add_entropy_sources(rng); - - rng->reseed(256); - - return new Serialized_PRNG(rng, mutex); - } - -} diff --git a/src/botan/src/libstate/global_state.cpp b/src/botan/src/libstate/global_state.cpp deleted file mode 100644 index 43c935ca3..000000000 --- a/src/botan/src/libstate/global_state.cpp +++ /dev/null @@ -1,91 +0,0 @@ -/* -* Global State Management -* (C) 2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -namespace Botan { - -/* -* @todo There should probably be a lock to avoid racy manipulation -* of the state among different threads -*/ - -namespace Global_State_Management { - -/* -* Botan's global state -*/ -namespace { - -Library_State* global_lib_state = 0; - -} - -/* -* Access the global state object -*/ -Library_State& global_state() - { - /* Lazy initialization. Botan still needs to be deinitialized later - on or memory might leak. - */ - if(!global_lib_state) - { - global_lib_state = new Library_State; - global_lib_state->initialize(true); - } - - return (*global_lib_state); - } - -/* -* Set a new global state object -*/ -void set_global_state(Library_State* new_state) - { - delete swap_global_state(new_state); - } - -/* -* Set a new global state object unless one already existed -*/ -bool set_global_state_unless_set(Library_State* new_state) - { - if(global_lib_state) - { - delete new_state; - return false; - } - else - { - delete swap_global_state(new_state); - return true; - } - } - -/* -* Swap two global state objects -*/ -Library_State* swap_global_state(Library_State* new_state) - { - Library_State* old_state = global_lib_state; - global_lib_state = new_state; - return old_state; - } - -/* -* Query if library is initialized -*/ -bool global_state_exists() - { - return (global_lib_state != 0); - } - -} - -} diff --git a/src/botan/src/libstate/global_state.h b/src/botan/src/libstate/global_state.h deleted file mode 100644 index 486aed17e..000000000 --- a/src/botan/src/libstate/global_state.h +++ /dev/null @@ -1,69 +0,0 @@ -/* -* Global State Management -* (C) 2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_GLOBAL_STATE_H__ -#define BOTAN_GLOBAL_STATE_H__ - -#include - -namespace Botan { - -/* -* Forward declare to avoid recursive dependency between this header -* and libstate.h -*/ -class Library_State; - -/** -* Namespace for management of the global state -*/ -namespace Global_State_Management { - -/** -* Access the global library state -* @return reference to the global library state -*/ -BOTAN_DLL Library_State& global_state(); - -/** -* Set the global state object -* @param state the new global state to use -*/ -BOTAN_DLL void set_global_state(Library_State* state); - -/** -* Set the global state object unless it is already set -* @param state the new global state to use -* @return true if the state parameter is now being used as the global -* state, or false if one was already set, in which case the -* parameter was deleted immediately -*/ -BOTAN_DLL bool set_global_state_unless_set(Library_State* state); - -/** -* Swap the current state for another -* @param new_state the new state object to use -* @return previous state (or NULL if none) -*/ -BOTAN_DLL Library_State* swap_global_state(Library_State* new_state); - -/** -* Query if the library is currently initialized -* @return true iff the library is initialized -*/ -BOTAN_DLL bool global_state_exists(); - -} - -/* -* Insert into Botan ns for convenience/backwards compatability -*/ -using Global_State_Management::global_state; - -} - -#endif diff --git a/src/botan/src/libstate/info.txt b/src/botan/src/libstate/info.txt deleted file mode 100644 index d48ad70d5..000000000 --- a/src/botan/src/libstate/info.txt +++ /dev/null @@ -1,51 +0,0 @@ -load_on always - -define LIBSTATE_MODULE - - -botan.h -global_state.h -init.h -libstate.h -look_pk.h -lookup.h -scan_name.h - - - -get_enc.cpp -global_rng.cpp -global_state.cpp -init.cpp -libstate.cpp -lookup.cpp -policy.cpp -scan_name.cpp - - - -aes -algo_factory -alloc -bigint -block -core_engine -engine -filters -hash -hmac -hmac_rng -kdf -mac -mode_pad -mutex -noop_mutex -pbkdf -pk_pad -pubkey -rng -sha2_32 -sha2_64 -stream -system_alloc - diff --git a/src/botan/src/libstate/init.cpp b/src/botan/src/libstate/init.cpp deleted file mode 100644 index 6d1ca1dbc..000000000 --- a/src/botan/src/libstate/init.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/* -* Default Initialization Function -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -namespace Botan { - -/* -* Library Initialization -*/ -void LibraryInitializer::initialize(const std::string& arg_string) - { - bool thread_safe = false; - - const std::vector arg_list = split_on(arg_string, ' '); - for(size_t i = 0; i != arg_list.size(); ++i) - { - if(arg_list[i].size() == 0) - continue; - - std::string name, value; - - if(arg_list[i].find('=') == std::string::npos) - { - name = arg_list[i]; - value = "true"; - } - else - { - std::vector name_and_value = split_on(arg_list[i], '='); - name = name_and_value[0]; - value = name_and_value[1]; - } - - bool is_on = - (value == "1" || value == "true" || value == "yes" || value == "on"); - - if(name == "thread_safe") - thread_safe = is_on; - } - - try - { - /* - This two stage initialization process is because Library_State's - constructor will implicitly refer to global state through the - allocators and so forth, so global_state() has to be a valid - reference before initialize() can be called. Yeah, gross. - */ - Global_State_Management::set_global_state(new Library_State); - - global_state().initialize(thread_safe); - } - catch(...) - { - deinitialize(); - throw; - } - } - -/* -* Library Shutdown -*/ -void LibraryInitializer::deinitialize() - { - Global_State_Management::set_global_state(0); - } - -} diff --git a/src/botan/src/libstate/init.h b/src/botan/src/libstate/init.h deleted file mode 100644 index 2d70e4370..000000000 --- a/src/botan/src/libstate/init.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -* Library Initialization -* (C) 1999-2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_LIBRARY_INITIALIZER_H__ -#define BOTAN_LIBRARY_INITIALIZER_H__ - -#include -#include - -namespace Botan { - -/** -* This class represents the Library Initialization/Shutdown Object. It -* has to exceed the lifetime of any Botan object used in an -* application. You can call initialize/deinitialize or use -* LibraryInitializer in the RAII style. -*/ -class BOTAN_DLL LibraryInitializer - { - public: - /** - * Initialize the library - * @param options a string listing initialization options - */ - static void initialize(const std::string& options = ""); - - /** - * Shutdown the library - */ - static void deinitialize(); - - /** - * Initialize the library - * @param options a string listing initialization options - */ - LibraryInitializer(const std::string& options = "") - { LibraryInitializer::initialize(options); } - - ~LibraryInitializer() { LibraryInitializer::deinitialize(); } - }; - -} - -#endif diff --git a/src/botan/src/libstate/libstate.cpp b/src/botan/src/libstate/libstate.cpp deleted file mode 100644 index 3a5c0a9e7..000000000 --- a/src/botan/src/libstate/libstate.cpp +++ /dev/null @@ -1,299 +0,0 @@ -/* -* Library Internal/Global State -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined(BOTAN_HAS_SELFTESTS) - #include -#endif - -#if defined(BOTAN_HAS_MUTEX_PTHREAD) - #include -#elif defined(BOTAN_HAS_MUTEX_WIN32) - #include -#endif - -#if defined(BOTAN_HAS_ALLOC_MMAP) - #include -#endif - -#if defined(BOTAN_HAS_ENGINE_ASSEMBLER) - #include -#endif - -#if defined(BOTAN_HAS_ENGINE_AES_ISA) - #include -#endif - -#if defined(BOTAN_HAS_ENGINE_SIMD) - #include -#endif - -#if defined(BOTAN_HAS_ENGINE_GNU_MP) - #include -#endif - -#if defined(BOTAN_HAS_ENGINE_OPENSSL) - #include -#endif - -namespace Botan { - -/* -* Get a new mutex object -*/ -Mutex* Library_State::get_mutex() const - { - return mutex_factory->make(); - } - -/* -* Get an allocator by its name -*/ -Allocator* Library_State::get_allocator(const std::string& type) const - { - Mutex_Holder lock(allocator_lock); - - if(type != "") - return search_map(alloc_factory, type, 0); - - if(!cached_default_allocator) - { - cached_default_allocator = - search_map(alloc_factory, - default_allocator_name, 0); - } - - return cached_default_allocator; - } - -/* -* Create a new name to object mapping -*/ -void Library_State::add_allocator(Allocator* allocator) - { - Mutex_Holder lock(allocator_lock); - - allocator->init(); - - allocators.push_back(allocator); - alloc_factory[allocator->type()] = allocator; - } - -/* -* Set the default allocator type -*/ -void Library_State::set_default_allocator(const std::string& type) - { - Mutex_Holder lock(allocator_lock); - - if(type == "") - return; - - default_allocator_name = type; - cached_default_allocator = 0; - } - -/* -* Get a configuration value -*/ -std::string Library_State::get(const std::string& section, - const std::string& key) const - { - Mutex_Holder lock(config_lock); - - return search_map(config, - section + "/" + key, ""); - } - -/* -* See if a particular option has been set -*/ -bool Library_State::is_set(const std::string& section, - const std::string& key) const - { - Mutex_Holder lock(config_lock); - - return config.count(section + "/" + key) != 0; - } - -/* -* Set a configuration value -*/ -void Library_State::set(const std::string& section, const std::string& key, - const std::string& value, bool overwrite) - { - Mutex_Holder lock(config_lock); - - std::string full_key = section + "/" + key; - - std::map::const_iterator i = - config.find(full_key); - - if(overwrite || i == config.end() || i->second == "") - config[full_key] = value; - } - -/* -* Add an alias -*/ -void Library_State::add_alias(const std::string& key, const std::string& value) - { - set("alias", key, value); - } - -/* -* Dereference an alias to a fixed name -*/ -std::string Library_State::deref_alias(const std::string& key) const - { - std::string result = key; - while(is_set("alias", result)) - result = get("alias", result); - return result; - } - -/* -* Return a reference to the Algorithm_Factory -*/ -Algorithm_Factory& Library_State::algorithm_factory() const - { - if(!m_algorithm_factory) - throw Invalid_State("Uninitialized in Library_State::algorithm_factory"); - return *m_algorithm_factory; - } - -/* -* Return a reference to the global PRNG -*/ -RandomNumberGenerator& Library_State::global_rng() - { - Mutex_Holder lock(global_rng_lock); - - if(!global_rng_ptr) - global_rng_ptr = make_global_rng(algorithm_factory(), - global_rng_lock); - - return *global_rng_ptr; - } - -/* -* Load a set of modules -*/ -void Library_State::initialize(bool thread_safe) - { - CPUID::initialize(); - - if(mutex_factory) - throw Invalid_State("Library_State has already been initialized"); - - if(!thread_safe) - { - mutex_factory = new Noop_Mutex_Factory; - } - else - { -#if defined(BOTAN_HAS_MUTEX_PTHREAD) - mutex_factory = new Pthread_Mutex_Factory; -#elif defined(BOTAN_HAS_MUTEX_WIN32) - mutex_factory = new Win32_Mutex_Factory; -#else - throw Invalid_State("Could not find a thread-safe mutex object to use"); -#endif - } - - allocator_lock = get_mutex(); - config_lock = get_mutex(); - global_rng_lock = get_mutex(); - - default_allocator_name = has_mlock() ? "locking" : "malloc"; - - add_allocator(new Malloc_Allocator); - add_allocator(new Locking_Allocator(get_mutex())); - -#if defined(BOTAN_HAS_ALLOC_MMAP) - add_allocator(new MemoryMapping_Allocator(get_mutex())); -#endif - - load_default_config(); - - m_algorithm_factory = new Algorithm_Factory(*mutex_factory); - -#if defined(BOTAN_HAS_ENGINE_GNU_MP) - algorithm_factory().add_engine(new GMP_Engine); -#endif - -#if defined(BOTAN_HAS_ENGINE_OPENSSL) - algorithm_factory().add_engine(new OpenSSL_Engine); -#endif - -#if defined(BOTAN_HAS_ENGINE_AES_ISA) - algorithm_factory().add_engine(new AES_ISA_Engine); -#endif - -#if defined(BOTAN_HAS_ENGINE_SIMD) - algorithm_factory().add_engine(new SIMD_Engine); -#endif - -#if defined(BOTAN_HAS_ENGINE_ASSEMBLER) - algorithm_factory().add_engine(new Assembler_Engine); -#endif - - algorithm_factory().add_engine(new Core_Engine); - -#if defined(BOTAN_HAS_SELFTESTS) - confirm_startup_self_tests(algorithm_factory()); -#endif - } - -/* -* Library_State Constructor -*/ -Library_State::Library_State() - { - mutex_factory = 0; - allocator_lock = config_lock = 0; - cached_default_allocator = 0; - m_algorithm_factory = 0; - - global_rng_lock = 0; - global_rng_ptr = 0; - } - -/* -* Library_State Destructor -*/ -Library_State::~Library_State() - { - delete m_algorithm_factory; - delete global_rng_ptr; - - cached_default_allocator = 0; - - for(size_t i = 0; i != allocators.size(); ++i) - { - allocators[i]->destroy(); - delete allocators[i]; - } - - delete global_rng_lock; - delete allocator_lock; - delete mutex_factory; - delete config_lock; - } - -} diff --git a/src/botan/src/libstate/libstate.h b/src/botan/src/libstate/libstate.h deleted file mode 100644 index aa957c8c9..000000000 --- a/src/botan/src/libstate/libstate.h +++ /dev/null @@ -1,146 +0,0 @@ -/* -* Library Internal/Global State -* (C) 1999-2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_LIB_STATE_H__ -#define BOTAN_LIB_STATE_H__ - -#include -#include -#include -#include - -#include -#include -#include - -namespace Botan { - -class Mutex; - -/** -* Global state container aka the buritto at the center of it all -*/ -class BOTAN_DLL Library_State - { - public: - Library_State(); - ~Library_State(); - - /** - * @param thread_safe should a mutex be used for serialization - */ - void initialize(bool thread_safe); - - /** - * @return global Algorithm_Factory - */ - Algorithm_Factory& algorithm_factory() const; - - /** - * @return global RandomNumberGenerator - */ - RandomNumberGenerator& global_rng(); - - /** - * @param name the name of the allocator - * @return allocator matching this name, or NULL - */ - Allocator* get_allocator(const std::string& name = "") const; - - /** - * Add a new allocator to the list of available ones - * @param alloc the allocator to add - */ - void add_allocator(Allocator* alloc); - - /** - * Set the default allocator - * @param name the name of the allocator to use as the default - */ - void set_default_allocator(const std::string& name); - - /** - * Get a parameter value as std::string. - * @param section the section of the desired key - * @param key the desired keys name - * @result the value of the parameter - */ - std::string get(const std::string& section, - const std::string& key) const; - - /** - * Check whether a certain parameter is set or not. - * @param section the section of the desired key - * @param key the desired keys name - * @result true if the parameters value is set, - * false otherwise - */ - bool is_set(const std::string& section, - const std::string& key) const; - - /** - * Set a configuration parameter. - * @param section the section of the desired key - * @param key the desired keys name - * @param value the new value - * @param overwrite if set to true, the parameters value - * will be overwritten even if it is already set, otherwise - * no existing values will be overwritten. - */ - void set(const std::string& section, - const std::string& key, - const std::string& value, - bool overwrite = true); - - /** - * Add a parameter value to the "alias" section. - * @param key the name of the parameter which shall have a new alias - * @param value the new alias - */ - void add_alias(const std::string& key, - const std::string& value); - - /** - * Resolve an alias. - * @param alias the alias to resolve. - * @return what the alias stands for - */ - std::string deref_alias(const std::string& alias) const; - - /** - * @return newly created Mutex (free with delete) - */ - Mutex* get_mutex() const; - private: - static RandomNumberGenerator* make_global_rng(Algorithm_Factory& af, - Mutex* mutex); - - void load_default_config(); - - Library_State(const Library_State&) {} - Library_State& operator=(const Library_State&) { return (*this); } - - class Mutex_Factory* mutex_factory; - - Mutex* global_rng_lock; - RandomNumberGenerator* global_rng_ptr; - - Mutex* config_lock; - std::map config; - - Mutex* allocator_lock; - std::string default_allocator_name; - std::map alloc_factory; - mutable Allocator* cached_default_allocator; - std::vector allocators; - - Algorithm_Factory* m_algorithm_factory; - }; - -} - -#endif diff --git a/src/botan/src/libstate/look_pk.h b/src/botan/src/libstate/look_pk.h deleted file mode 100644 index bbd0e7dba..000000000 --- a/src/botan/src/libstate/look_pk.h +++ /dev/null @@ -1,97 +0,0 @@ -/* -* PK Algorithm Lookup -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_PK_LOOKUP_H__ -#define BOTAN_PK_LOOKUP_H__ - -#include -#include - -namespace Botan { - -/** -* Public key encryptor factory method. -* @deprecated Instantiate object from pubkey.h directly -* -* @param key the key that will work inside the encryptor -* @param eme determines the algorithm and encoding -* @return public key encryptor object -*/ -BOTAN_DEPRECATED("Instantiate object directly") -inline PK_Encryptor* get_pk_encryptor(const Public_Key& key, - const std::string& eme) - { - return new PK_Encryptor_EME(key, eme); - } - -/** -* Public key decryptor factory method. -* @deprecated Instantiate object from pubkey.h directly -* -* @param key the key that will work inside the decryptor -* @param eme determines the algorithm and encoding -* @return public key decryptor object -*/ -BOTAN_DEPRECATED("Instantiate object directly") -inline PK_Decryptor* get_pk_decryptor(const Private_Key& key, - const std::string& eme) - { - return new PK_Decryptor_EME(key, eme); - } - -/** -* Public key signer factory method. -* @deprecated Instantiate object from pubkey.h directly -* -* @param key the key that will work inside the signer -* @param emsa determines the algorithm, encoding and hash algorithm -* @param sig_format the signature format to be used -* @return public key signer object -*/ -BOTAN_DEPRECATED("Instantiate object directly") -inline PK_Signer* get_pk_signer(const Private_Key& key, - const std::string& emsa, - Signature_Format sig_format = IEEE_1363) - { - return new PK_Signer(key, emsa, sig_format); - } - -/** -* Public key verifier factory method. -* @deprecated Instantiate object from pubkey.h directly -* -* @param key the key that will work inside the verifier -* @param emsa determines the algorithm, encoding and hash algorithm -* @param sig_format the signature format to be used -* @return public key verifier object -*/ -BOTAN_DEPRECATED("Instantiate object directly") -inline PK_Verifier* get_pk_verifier(const Public_Key& key, - const std::string& emsa, - Signature_Format sig_format = IEEE_1363) - { - return new PK_Verifier(key, emsa, sig_format); - } - -/** -* Public key key agreement factory method. -* @deprecated Instantiate object from pubkey.h directly -* -* @param key the key that will work inside the key agreement -* @param kdf the kdf algorithm to use -* @return key agreement algorithm -*/ -BOTAN_DEPRECATED("Instantiate object directly") -inline PK_Key_Agreement* get_pk_kas(const PK_Key_Agreement_Key& key, - const std::string& kdf) - { - return new PK_Key_Agreement(key, kdf); - } - -} - -#endif diff --git a/src/botan/src/libstate/lookup.cpp b/src/botan/src/libstate/lookup.cpp deleted file mode 100644 index 0d3f33573..000000000 --- a/src/botan/src/libstate/lookup.cpp +++ /dev/null @@ -1,168 +0,0 @@ -/* -* Algorithm Retrieval -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -/* -* Query if an algorithm exists -*/ -bool have_algorithm(const std::string& name) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - - if(af.prototype_block_cipher(name)) - return true; - if(af.prototype_stream_cipher(name)) - return true; - if(af.prototype_hash_function(name)) - return true; - if(af.prototype_mac(name)) - return true; - return false; - } - -/* -* Query the block size of a cipher or hash -*/ -size_t block_size_of(const std::string& name) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - - if(const BlockCipher* cipher = af.prototype_block_cipher(name)) - return cipher->block_size(); - - if(const HashFunction* hash = af.prototype_hash_function(name)) - return hash->hash_block_size(); - - throw Algorithm_Not_Found(name); - } - -/* -* Query the output_length() of a hash or MAC -*/ -size_t output_length_of(const std::string& name) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - - if(const HashFunction* hash = af.prototype_hash_function(name)) - return hash->output_length(); - - if(const MessageAuthenticationCode* mac = af.prototype_mac(name)) - return mac->output_length(); - - throw Algorithm_Not_Found(name); - } - -/* -* Query the minimum allowed key length of an algorithm implementation -*/ -size_t min_keylength_of(const std::string& name) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - - if(const BlockCipher* bc = af.prototype_block_cipher(name)) - return bc->key_spec().minimum_keylength(); - - if(const StreamCipher* sc = af.prototype_stream_cipher(name)) - return sc->key_spec().minimum_keylength(); - - if(const MessageAuthenticationCode* mac = af.prototype_mac(name)) - return mac->key_spec().minimum_keylength(); - - throw Algorithm_Not_Found(name); - } - -/* -* Query the maximum allowed keylength of an algorithm implementation -*/ -size_t max_keylength_of(const std::string& name) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - - if(const BlockCipher* bc = af.prototype_block_cipher(name)) - return bc->key_spec().maximum_keylength(); - - if(const StreamCipher* sc = af.prototype_stream_cipher(name)) - return sc->key_spec().maximum_keylength(); - - if(const MessageAuthenticationCode* mac = af.prototype_mac(name)) - return mac->key_spec().maximum_keylength(); - - throw Algorithm_Not_Found(name); - } - -/* -* Query the number of byte a valid key must be a multiple of -*/ -size_t keylength_multiple_of(const std::string& name) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - - if(const BlockCipher* bc = af.prototype_block_cipher(name)) - return bc->key_spec().keylength_multiple(); - - if(const StreamCipher* sc = af.prototype_stream_cipher(name)) - return sc->key_spec().keylength_multiple(); - - if(const MessageAuthenticationCode* mac = af.prototype_mac(name)) - return mac->key_spec().keylength_multiple(); - - throw Algorithm_Not_Found(name); - } - -/* -* Get a cipher object -*/ -Keyed_Filter* get_cipher(const std::string& algo_spec, - Cipher_Dir direction) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - - Algorithm_Factory::Engine_Iterator i(af); - - while(Engine* engine = i.next()) - { - if(Keyed_Filter* algo = engine->get_cipher(algo_spec, direction, af)) - return algo; - } - - throw Algorithm_Not_Found(algo_spec); - } - -/* -* Get a cipher object -*/ -Keyed_Filter* get_cipher(const std::string& algo_spec, - const SymmetricKey& key, - const InitializationVector& iv, - Cipher_Dir direction) - { - Keyed_Filter* cipher = get_cipher(algo_spec, direction); - cipher->set_key(key); - - if(iv.length()) - cipher->set_iv(iv); - - return cipher; - } - -/* -* Get a cipher object -*/ -Keyed_Filter* get_cipher(const std::string& algo_spec, - const SymmetricKey& key, - Cipher_Dir direction) - { - return get_cipher(algo_spec, - key, InitializationVector(), direction); - } - -} diff --git a/src/botan/src/libstate/lookup.h b/src/botan/src/libstate/lookup.h deleted file mode 100644 index e10c195b8..000000000 --- a/src/botan/src/libstate/lookup.h +++ /dev/null @@ -1,334 +0,0 @@ -/* -* Algorithm Lookup -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_LOOKUP_H__ -#define BOTAN_LOOKUP_H__ - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace Botan { - -/** -* Retrieve an object prototype from the global factory -* @param algo_spec an algorithm name -* @return constant prototype object (use clone to create usable object), - library retains ownership -*/ -inline const BlockCipher* -retrieve_block_cipher(const std::string& algo_spec) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - return af.prototype_block_cipher(algo_spec); - } - -/** -* Retrieve an object prototype from the global factory -* @param algo_spec an algorithm name -* @return constant prototype object (use clone to create usable object), - library retains ownership -*/ -inline const StreamCipher* -retrieve_stream_cipher(const std::string& algo_spec) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - return af.prototype_stream_cipher(algo_spec); - } - -/** -* Retrieve an object prototype from the global factory -* @param algo_spec an algorithm name -* @return constant prototype object (use clone to create usable object), - library retains ownership -*/ -inline const HashFunction* -retrieve_hash(const std::string& algo_spec) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - return af.prototype_hash_function(algo_spec); - } - -/** -* Retrieve an object prototype from the global factory -* @param algo_spec an algorithm name -* @return constant prototype object (use clone to create usable object), - library retains ownership -*/ -inline const MessageAuthenticationCode* -retrieve_mac(const std::string& algo_spec) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - return af.prototype_mac(algo_spec); - } - -/* -* Get an algorithm object -* NOTE: these functions create and return new objects, letting the -* caller assume ownership of them -*/ - -/** -* Block cipher factory method. -* @deprecated Call algorithm_factory() directly -* -* @param algo_spec the name of the desired block cipher -* @return pointer to the block cipher object -*/ -inline BlockCipher* get_block_cipher(const std::string& algo_spec) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - return af.make_block_cipher(algo_spec); - } - -/** -* Stream cipher factory method. -* @deprecated Call algorithm_factory() directly -* -* @param algo_spec the name of the desired stream cipher -* @return pointer to the stream cipher object -*/ -inline StreamCipher* get_stream_cipher(const std::string& algo_spec) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - return af.make_stream_cipher(algo_spec); - } - -/** -* Hash function factory method. -* @deprecated Call algorithm_factory() directly -* -* @param algo_spec the name of the desired hash function -* @return pointer to the hash function object -*/ -inline HashFunction* get_hash(const std::string& algo_spec) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - return af.make_hash_function(algo_spec); - } - -/** -* MAC factory method. -* @deprecated Call algorithm_factory() directly -* -* @param algo_spec the name of the desired MAC -* @return pointer to the MAC object -*/ -inline MessageAuthenticationCode* get_mac(const std::string& algo_spec) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - return af.make_mac(algo_spec); - } - -/** -* Password based key derivation function factory method -* @param algo_spec the name of the desired PBKDF algorithm -* @return pointer to newly allocated object of that type -*/ -BOTAN_DLL PBKDF* get_pbkdf(const std::string& algo_spec); - -/** -* @deprecated Use get_pbkdf -* @param algo_spec the name of the desired algorithm -* @return pointer to newly allocated object of that type -*/ -inline PBKDF* get_s2k(const std::string& algo_spec) - { - return get_pbkdf(algo_spec); - } - -/* -* Get an EMSA/EME/KDF/MGF function -*/ -// NOTE: these functions create and return new objects, letting the -// caller assume ownership of them - -/** -* Factory method for EME (message-encoding methods for encryption) objects -* @param algo_spec the name of the EME to create -* @return pointer to newly allocated object of that type -*/ -BOTAN_DLL EME* get_eme(const std::string& algo_spec); - -/** -* Factory method for EMSA (message-encoding methods for signatures -* with appendix) objects -* @param algo_spec the name of the EME to create -* @return pointer to newly allocated object of that type -*/ -BOTAN_DLL EMSA* get_emsa(const std::string& algo_spec); - -/** -* Factory method for KDF (key derivation function) -* @param algo_spec the name of the KDF to create -* @return pointer to newly allocated object of that type -*/ -BOTAN_DLL KDF* get_kdf(const std::string& algo_spec); - -/* -* Get a cipher object -*/ - -/** -* Factory method for general symmetric cipher filters. -* @param algo_spec the name of the desired cipher -* @param key the key to be used for encryption/decryption performed by -* the filter -* @param iv the initialization vector to be used -* @param direction determines whether the filter will be an encrypting -* or decrypting filter -* @return pointer to newly allocated encryption or decryption filter -*/ -BOTAN_DLL Keyed_Filter* get_cipher(const std::string& algo_spec, - const SymmetricKey& key, - const InitializationVector& iv, - Cipher_Dir direction); - -/** -* Factory method for general symmetric cipher filters. -* @param algo_spec the name of the desired cipher -* @param key the key to be used for encryption/decryption performed by -* the filter -* @param direction determines whether the filter will be an encrypting -* or decrypting filter -* @return pointer to the encryption or decryption filter -*/ -BOTAN_DLL Keyed_Filter* get_cipher(const std::string& algo_spec, - const SymmetricKey& key, - Cipher_Dir direction); - -/** -* Factory method for general symmetric cipher filters. No key will be -* set in the filter. -* -* @param algo_spec the name of the desired cipher -* @param direction determines whether the filter will be an encrypting or -* decrypting filter -* @return pointer to the encryption or decryption filter -*/ -BOTAN_DLL Keyed_Filter* get_cipher(const std::string& algo_spec, - Cipher_Dir direction); - -/** -* Check if an algorithm exists. -* @param algo_spec the name of the algorithm to check for -* @return true if the algorithm exists, false otherwise -*/ -BOTAN_DLL bool have_algorithm(const std::string& algo_spec); - -/** -* Check if a block cipher algorithm exists. -* @deprecated Call algorithm_factory() directly -* -* @param algo_spec the name of the algorithm to check for -* @return true if the algorithm exists, false otherwise -*/ -inline bool have_block_cipher(const std::string& algo_spec) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - return (af.prototype_block_cipher(algo_spec) != 0); - } - -/** -* Check if a stream cipher algorithm exists. -* @deprecated Call algorithm_factory() directly -* -* @param algo_spec the name of the algorithm to check for -* @return true if the algorithm exists, false otherwise -*/ -inline bool have_stream_cipher(const std::string& algo_spec) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - return (af.prototype_stream_cipher(algo_spec) != 0); - } - -/** -* Check if a hash algorithm exists. -* @deprecated Call algorithm_factory() directly -* -* @param algo_spec the name of the algorithm to check for -* @return true if the algorithm exists, false otherwise -*/ -inline bool have_hash(const std::string& algo_spec) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - return (af.prototype_hash_function(algo_spec) != 0); - } - -/** -* Check if a MAC algorithm exists. -* @deprecated Call algorithm_factory() directly -* -* @param algo_spec the name of the algorithm to check for -* @return true if the algorithm exists, false otherwise -*/ -inline bool have_mac(const std::string& algo_spec) - { - Algorithm_Factory& af = global_state().algorithm_factory(); - return (af.prototype_mac(algo_spec) != 0); - } - -/* -* Query information about an algorithm -*/ - -/** -* Find out the block size of a certain symmetric algorithm. -* @deprecated Call algorithm_factory() directly -* -* @param algo_spec the name of the algorithm -* @return block size of the specified algorithm -*/ -BOTAN_DLL size_t block_size_of(const std::string& algo_spec); - -/** -* Find out the output length of a certain symmetric algorithm. -* @deprecated Call algorithm_factory() directly -* -* @param algo_spec the name of the algorithm -* @return output length of the specified algorithm -*/ -BOTAN_DLL size_t output_length_of(const std::string& algo_spec); - -/** -* Find out the minimum key size of a certain symmetric algorithm. -* @deprecated Call algorithm_factory() directly -* -* @param algo_spec the name of the algorithm -* @return minimum key length of the specified algorithm -*/ -BOTAN_DEPRECATED("Retrieve object you want and then call key_spec") -BOTAN_DLL size_t min_keylength_of(const std::string& algo_spec); - -/** -* Find out the maximum key size of a certain symmetric algorithm. -* @deprecated Call algorithm_factory() directly -* -* @param algo_spec the name of the algorithm -* @return maximum key length of the specified algorithm -*/ -BOTAN_DEPRECATED("Retrieve object you want and then call key_spec") -BOTAN_DLL size_t max_keylength_of(const std::string& algo_spec); - -/** -* Find out the size any valid key is a multiple of for a certain algorithm. -* @deprecated Call algorithm_factory() directly -* -* @param algo_spec the name of the algorithm -* @return size any valid key is a multiple of -*/ -BOTAN_DEPRECATED("Retrieve object you want and then call key_spec") -BOTAN_DLL size_t keylength_multiple_of(const std::string& algo_spec); - -} - -#endif diff --git a/src/botan/src/libstate/oid_lookup/info.txt b/src/botan/src/libstate/oid_lookup/info.txt deleted file mode 100644 index 6544c9501..000000000 --- a/src/botan/src/libstate/oid_lookup/info.txt +++ /dev/null @@ -1,5 +0,0 @@ -define OID_LOOKUP - - -asn1 - diff --git a/src/botan/src/libstate/oid_lookup/oids.cpp b/src/botan/src/libstate/oid_lookup/oids.cpp deleted file mode 100644 index c54762c58..000000000 --- a/src/botan/src/libstate/oid_lookup/oids.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/* -* OID Registry -* (C) 1999-2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -namespace Botan { - -namespace OIDS { - -/* -* Register an OID to string mapping -*/ -void add_oid(const OID& oid, const std::string& name) - { - const std::string oid_str = oid.as_string(); - - if(!global_state().is_set("oid2str", oid_str)) - global_state().set("oid2str", oid_str, name); - if(!global_state().is_set("str2oid", name)) - global_state().set("str2oid", name, oid_str); - } - -/* -* Do an OID to string lookup -*/ -std::string lookup(const OID& oid) - { - std::string name = global_state().get("oid2str", oid.as_string()); - if(name == "") - return oid.as_string(); - return name; - } - -/* -* Do a string to OID lookup -*/ -OID lookup(const std::string& name) - { - std::string value = global_state().get("str2oid", name); - if(value != "") - return OID(value); - - try - { - return OID(name); - } - catch(...) - { - throw Lookup_Error("No object identifier found for " + name); - } - } - -/* -* Check to see if an OID exists in the table -*/ -bool have_oid(const std::string& name) - { - return global_state().is_set("str2oid", name); - } - -/* -* Check to see if an OID exists in the table -*/ -bool name_of(const OID& oid, const std::string& name) - { - return (oid == lookup(name)); - } - -} - -} diff --git a/src/botan/src/libstate/oid_lookup/oids.h b/src/botan/src/libstate/oid_lookup/oids.h deleted file mode 100644 index 70b7dee81..000000000 --- a/src/botan/src/libstate/oid_lookup/oids.h +++ /dev/null @@ -1,58 +0,0 @@ -/* -* OID Registry -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_OIDS_H__ -#define BOTAN_OIDS_H__ - -#include - -namespace Botan { - -namespace OIDS { - -/** -* Register an OID to string mapping. -* @param oid the oid to register -* @param name the name to be associated with the oid -*/ -BOTAN_DLL void add_oid(const OID& oid, const std::string& name); - -/** -* See if an OID exists in the internal table. -* @param oid the oid to check for -* @return true if the oid is registered -*/ -BOTAN_DLL bool have_oid(const std::string& oid); - -/** -* Resolve an OID -* @param oid the OID to look up -* @return name associated with this OID -*/ -BOTAN_DLL std::string lookup(const OID& oid); - -/** -* Find the OID to a name. The lookup will be performed in the -* general OID section of the configuration. -* @param name the name to resolve -* @return OID associated with the specified name -*/ -BOTAN_DLL OID lookup(const std::string& name); - -/** -* Tests whether the specified OID stands for the specified name. -* @param oid the OID to check -* @param name the name to check -* @return true if the specified OID stands for the specified name -*/ -BOTAN_DLL bool name_of(const OID& oid, const std::string& name); - -} - -} - -#endif diff --git a/src/botan/src/libstate/policy.cpp b/src/botan/src/libstate/policy.cpp deleted file mode 100644 index b1da22ce8..000000000 --- a/src/botan/src/libstate/policy.cpp +++ /dev/null @@ -1,923 +0,0 @@ -/* -* Default Policy -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include - -namespace Botan { - -namespace { - -/* -* OID loading helper function -*/ -void add_oid(Library_State& config, - const std::string& oid_str, - const std::string& name) - { - if(!config.is_set("oid2str", oid_str)) - config.set("oid2str", oid_str, name); - if(!config.is_set("str2oid", name)) - config.set("str2oid", name, oid_str); - } - -/* -* Load all of the default OIDs -*/ -void set_default_oids(Library_State& config) - { - /* Public key types */ - add_oid(config, "1.2.840.113549.1.1.1", "RSA"); - add_oid(config, "2.5.8.1.1", "RSA"); // RSA alternate - add_oid(config, "1.2.840.10040.4.1", "DSA"); - add_oid(config, "1.2.840.10046.2.1", "DH"); - add_oid(config, "1.3.6.1.4.1.3029.1.2.1", "ElGamal"); - add_oid(config, "1.3.6.1.4.1.25258.1.1", "RW"); - add_oid(config, "1.3.6.1.4.1.25258.1.2", "NR"); - - // X9.62 ecPublicKey, valid for ECDSA and ECDH (RFC 3279 sec 2.3.5) - add_oid(config, "1.2.840.10045.2.1", "ECDSA"); - - /* - * This is an OID defined for ECDH keys though rarely used for such. - * In this configuration it is accepted on decoding, but not used for - * encoding. You can enable it for encoding by calling - * global_state().set("str2oid", "ECDH", "1.3.132.1.12") - * from your application code. - */ - config.set("oid2str", "1.3.132.1.12", "ECDH"); - - add_oid(config, "1.2.643.2.2.19", "GOST-34.10"); // RFC 4491 - - /* Ciphers */ - add_oid(config, "1.3.14.3.2.7", "DES/CBC"); - add_oid(config, "1.2.840.113549.3.7", "TripleDES/CBC"); - add_oid(config, "1.2.840.113549.3.2", "RC2/CBC"); - add_oid(config, "1.2.840.113533.7.66.10", "CAST-128/CBC"); - add_oid(config, "2.16.840.1.101.3.4.1.2", "AES-128/CBC"); - add_oid(config, "2.16.840.1.101.3.4.1.22", "AES-192/CBC"); - add_oid(config, "2.16.840.1.101.3.4.1.42", "AES-256/CBC"); - add_oid(config, "1.2.410.200004.1.4", "SEED/CBC"); // RFC 4010 - add_oid(config, "1.3.6.1.4.1.25258.3.1", "Serpent/CBC"); - - /* Hash Functions */ - add_oid(config, "1.2.840.113549.2.5", "MD5"); - add_oid(config, "1.3.6.1.4.1.11591.12.2", "Tiger(24,3)"); - - add_oid(config, "1.3.14.3.2.26", "SHA-160"); - add_oid(config, "2.16.840.1.101.3.4.2.4", "SHA-224"); - add_oid(config, "2.16.840.1.101.3.4.2.1", "SHA-256"); - add_oid(config, "2.16.840.1.101.3.4.2.2", "SHA-384"); - add_oid(config, "2.16.840.1.101.3.4.2.3", "SHA-512"); - - /* MACs */ - add_oid(config, "1.2.840.113549.2.7", "HMAC(SHA-1)"); - add_oid(config, "1.2.840.113549.2.8", "HMAC(SHA-224)"); - add_oid(config, "1.2.840.113549.2.9", "HMAC(SHA-256)"); - add_oid(config, "1.2.840.113549.2.10", "HMAC(SHA-384)"); - add_oid(config, "1.2.840.113549.2.11", "HMAC(SHA-512)"); - - /* Key Wrap */ - add_oid(config, "1.2.840.113549.1.9.16.3.6", "KeyWrap.TripleDES"); - add_oid(config, "1.2.840.113549.1.9.16.3.7", "KeyWrap.RC2"); - add_oid(config, "1.2.840.113533.7.66.15", "KeyWrap.CAST-128"); - add_oid(config, "2.16.840.1.101.3.4.1.5", "KeyWrap.AES-128"); - add_oid(config, "2.16.840.1.101.3.4.1.25", "KeyWrap.AES-192"); - add_oid(config, "2.16.840.1.101.3.4.1.45", "KeyWrap.AES-256"); - - /* Compression */ - add_oid(config, "1.2.840.113549.1.9.16.3.8", "Compression.Zlib"); - - /* Public key signature schemes */ - add_oid(config, "1.2.840.113549.1.1.1", "RSA/EME-PKCS1-v1_5"); - add_oid(config, "1.2.840.113549.1.1.2", "RSA/EMSA3(MD2)"); - add_oid(config, "1.2.840.113549.1.1.4", "RSA/EMSA3(MD5)"); - add_oid(config, "1.2.840.113549.1.1.5", "RSA/EMSA3(SHA-160)"); - add_oid(config, "1.2.840.113549.1.1.11", "RSA/EMSA3(SHA-256)"); - add_oid(config, "1.2.840.113549.1.1.12", "RSA/EMSA3(SHA-384)"); - add_oid(config, "1.2.840.113549.1.1.13", "RSA/EMSA3(SHA-512)"); - add_oid(config, "1.3.36.3.3.1.2", "RSA/EMSA3(RIPEMD-160)"); - - add_oid(config, "1.2.840.10040.4.3", "DSA/EMSA1(SHA-160)"); - add_oid(config, "2.16.840.1.101.3.4.3.1", "DSA/EMSA1(SHA-224)"); - add_oid(config, "2.16.840.1.101.3.4.3.2", "DSA/EMSA1(SHA-256)"); - - add_oid(config, "0.4.0.127.0.7.1.1.4.1.1", "ECDSA/EMSA1_BSI(SHA-160)"); - add_oid(config, "0.4.0.127.0.7.1.1.4.1.2", "ECDSA/EMSA1_BSI(SHA-224)"); - add_oid(config, "0.4.0.127.0.7.1.1.4.1.3", "ECDSA/EMSA1_BSI(SHA-256)"); - add_oid(config, "0.4.0.127.0.7.1.1.4.1.4", "ECDSA/EMSA1_BSI(SHA-384)"); - add_oid(config, "0.4.0.127.0.7.1.1.4.1.5", "ECDSA/EMSA1_BSI(SHA-512)"); - add_oid(config, "0.4.0.127.0.7.1.1.4.1.6", "ECDSA/EMSA1_BSI(RIPEMD-160)"); - - add_oid(config, "1.2.840.10045.4.1", "ECDSA/EMSA1(SHA-160)"); - add_oid(config, "1.2.840.10045.4.3.1", "ECDSA/EMSA1(SHA-224)"); - add_oid(config, "1.2.840.10045.4.3.2", "ECDSA/EMSA1(SHA-256)"); - add_oid(config, "1.2.840.10045.4.3.3", "ECDSA/EMSA1(SHA-384)"); - add_oid(config, "1.2.840.10045.4.3.4", "ECDSA/EMSA1(SHA-512)"); - - add_oid(config, "1.2.643.2.2.3", "GOST-34.10/EMSA1(GOST-R-34.11-94)"); - - add_oid(config, "1.3.6.1.4.1.25258.2.1.1.1", "RW/EMSA2(RIPEMD-160)"); - add_oid(config, "1.3.6.1.4.1.25258.2.1.1.2", "RW/EMSA2(SHA-160)"); - add_oid(config, "1.3.6.1.4.1.25258.2.1.1.3", "RW/EMSA2(SHA-224)"); - add_oid(config, "1.3.6.1.4.1.25258.2.1.1.4", "RW/EMSA2(SHA-256)"); - add_oid(config, "1.3.6.1.4.1.25258.2.1.1.5", "RW/EMSA2(SHA-384)"); - add_oid(config, "1.3.6.1.4.1.25258.2.1.1.6", "RW/EMSA2(SHA-512)"); - - add_oid(config, "1.3.6.1.4.1.25258.2.1.2.1", "RW/EMSA4(RIPEMD-160)"); - add_oid(config, "1.3.6.1.4.1.25258.2.1.2.2", "RW/EMSA4(SHA-160)"); - add_oid(config, "1.3.6.1.4.1.25258.2.1.2.3", "RW/EMSA4(SHA-224)"); - add_oid(config, "1.3.6.1.4.1.25258.2.1.2.4", "RW/EMSA4(SHA-256)"); - add_oid(config, "1.3.6.1.4.1.25258.2.1.2.5", "RW/EMSA4(SHA-384)"); - add_oid(config, "1.3.6.1.4.1.25258.2.1.2.6", "RW/EMSA4(SHA-512)"); - - add_oid(config, "1.3.6.1.4.1.25258.2.2.1.1", "NR/EMSA2(RIPEMD-160)"); - add_oid(config, "1.3.6.1.4.1.25258.2.2.1.2", "NR/EMSA2(SHA-160)"); - add_oid(config, "1.3.6.1.4.1.25258.2.2.1.3", "NR/EMSA2(SHA-224)"); - add_oid(config, "1.3.6.1.4.1.25258.2.2.1.4", "NR/EMSA2(SHA-256)"); - add_oid(config, "1.3.6.1.4.1.25258.2.2.1.5", "NR/EMSA2(SHA-384)"); - add_oid(config, "1.3.6.1.4.1.25258.2.2.1.6", "NR/EMSA2(SHA-512)"); - - add_oid(config, "2.5.4.3", "X520.CommonName"); - add_oid(config, "2.5.4.4", "X520.Surname"); - add_oid(config, "2.5.4.5", "X520.SerialNumber"); - add_oid(config, "2.5.4.6", "X520.Country"); - add_oid(config, "2.5.4.7", "X520.Locality"); - add_oid(config, "2.5.4.8", "X520.State"); - add_oid(config, "2.5.4.10", "X520.Organization"); - add_oid(config, "2.5.4.11", "X520.OrganizationalUnit"); - add_oid(config, "2.5.4.12", "X520.Title"); - add_oid(config, "2.5.4.42", "X520.GivenName"); - add_oid(config, "2.5.4.43", "X520.Initials"); - add_oid(config, "2.5.4.44", "X520.GenerationalQualifier"); - add_oid(config, "2.5.4.46", "X520.DNQualifier"); - add_oid(config, "2.5.4.65", "X520.Pseudonym"); - - add_oid(config, "1.2.840.113549.1.5.12", "PKCS5.PBKDF2"); - add_oid(config, "1.2.840.113549.1.5.1", "PBE-PKCS5v15(MD2,DES/CBC)"); - add_oid(config, "1.2.840.113549.1.5.4", "PBE-PKCS5v15(MD2,RC2/CBC)"); - add_oid(config, "1.2.840.113549.1.5.3", "PBE-PKCS5v15(MD5,DES/CBC)"); - add_oid(config, "1.2.840.113549.1.5.6", "PBE-PKCS5v15(MD5,RC2/CBC)"); - add_oid(config, "1.2.840.113549.1.5.10", "PBE-PKCS5v15(SHA-160,DES/CBC)"); - add_oid(config, "1.2.840.113549.1.5.11", "PBE-PKCS5v15(SHA-160,RC2/CBC)"); - add_oid(config, "1.2.840.113549.1.5.13", "PBE-PKCS5v20"); - - add_oid(config, "1.2.840.113549.1.9.1", "PKCS9.EmailAddress"); - add_oid(config, "1.2.840.113549.1.9.2", "PKCS9.UnstructuredName"); - add_oid(config, "1.2.840.113549.1.9.3", "PKCS9.ContentType"); - add_oid(config, "1.2.840.113549.1.9.4", "PKCS9.MessageDigest"); - add_oid(config, "1.2.840.113549.1.9.7", "PKCS9.ChallengePassword"); - add_oid(config, "1.2.840.113549.1.9.14", "PKCS9.ExtensionRequest"); - - add_oid(config, "1.2.840.113549.1.7.1", "CMS.DataContent"); - add_oid(config, "1.2.840.113549.1.7.2", "CMS.SignedData"); - add_oid(config, "1.2.840.113549.1.7.3", "CMS.EnvelopedData"); - add_oid(config, "1.2.840.113549.1.7.5", "CMS.DigestedData"); - add_oid(config, "1.2.840.113549.1.7.6", "CMS.EncryptedData"); - add_oid(config, "1.2.840.113549.1.9.16.1.2", "CMS.AuthenticatedData"); - add_oid(config, "1.2.840.113549.1.9.16.1.9", "CMS.CompressedData"); - - add_oid(config, "2.5.29.14", "X509v3.SubjectKeyIdentifier"); - add_oid(config, "2.5.29.15", "X509v3.KeyUsage"); - add_oid(config, "2.5.29.17", "X509v3.SubjectAlternativeName"); - add_oid(config, "2.5.29.18", "X509v3.IssuerAlternativeName"); - add_oid(config, "2.5.29.19", "X509v3.BasicConstraints"); - add_oid(config, "2.5.29.20", "X509v3.CRLNumber"); - add_oid(config, "2.5.29.21", "X509v3.ReasonCode"); - add_oid(config, "2.5.29.23", "X509v3.HoldInstructionCode"); - add_oid(config, "2.5.29.24", "X509v3.InvalidityDate"); - add_oid(config, "2.5.29.32", "X509v3.CertificatePolicies"); - add_oid(config, "2.5.29.35", "X509v3.AuthorityKeyIdentifier"); - add_oid(config, "2.5.29.36", "X509v3.PolicyConstraints"); - add_oid(config, "2.5.29.37", "X509v3.ExtendedKeyUsage"); - - add_oid(config, "2.5.29.32.0", "X509v3.AnyPolicy"); - - add_oid(config, "1.3.6.1.5.5.7.3.1", "PKIX.ServerAuth"); - add_oid(config, "1.3.6.1.5.5.7.3.2", "PKIX.ClientAuth"); - add_oid(config, "1.3.6.1.5.5.7.3.3", "PKIX.CodeSigning"); - add_oid(config, "1.3.6.1.5.5.7.3.4", "PKIX.EmailProtection"); - add_oid(config, "1.3.6.1.5.5.7.3.5", "PKIX.IPsecEndSystem"); - add_oid(config, "1.3.6.1.5.5.7.3.6", "PKIX.IPsecTunnel"); - add_oid(config, "1.3.6.1.5.5.7.3.7", "PKIX.IPsecUser"); - add_oid(config, "1.3.6.1.5.5.7.3.8", "PKIX.TimeStamping"); - add_oid(config, "1.3.6.1.5.5.7.3.9", "PKIX.OCSPSigning"); - - add_oid(config, "1.3.6.1.5.5.7.8.5", "PKIX.XMPPAddr"); - - /* ECC domain parameters */ - - add_oid(config, "1.3.132.0.6", "secp112r1"); - add_oid(config, "1.3.132.0.7", "secp112r2"); - add_oid(config, "1.3.132.0.8", "secp160r1"); - add_oid(config, "1.3.132.0.9", "secp160k1"); - add_oid(config, "1.3.132.0.10", "secp256k1"); - add_oid(config, "1.3.132.0.28", "secp128r1"); - add_oid(config, "1.3.132.0.29", "secp128r2"); - add_oid(config, "1.3.132.0.30", "secp160r2"); - add_oid(config, "1.3.132.0.31", "secp192k1"); - add_oid(config, "1.3.132.0.32", "secp224k1"); - add_oid(config, "1.3.132.0.33", "secp224r1"); - add_oid(config, "1.3.132.0.34", "secp384r1"); - add_oid(config, "1.3.132.0.35", "secp521r1"); - - add_oid(config, "1.2.840.10045.3.1.1", "secp192r1"); - add_oid(config, "1.2.840.10045.3.1.2", "x962_p192v2"); - add_oid(config, "1.2.840.10045.3.1.3", "x962_p192v3"); - add_oid(config, "1.2.840.10045.3.1.4", "x962_p239v1"); - add_oid(config, "1.2.840.10045.3.1.5", "x962_p239v2"); - add_oid(config, "1.2.840.10045.3.1.6", "x962_p239v3"); - add_oid(config, "1.2.840.10045.3.1.7", "secp256r1"); - - add_oid(config, "1.3.36.3.3.2.8.1.1.1", "brainpool160r1"); - add_oid(config, "1.3.36.3.3.2.8.1.1.3", "brainpool192r1"); - add_oid(config, "1.3.36.3.3.2.8.1.1.5", "brainpool224r1"); - add_oid(config, "1.3.36.3.3.2.8.1.1.7", "brainpool256r1"); - add_oid(config, "1.3.36.3.3.2.8.1.1.9", "brainpool320r1"); - add_oid(config, "1.3.36.3.3.2.8.1.1.11", "brainpool384r1"); - add_oid(config, "1.3.36.3.3.2.8.1.1.13", "brainpool512r1"); - - add_oid(config, "1.2.643.2.2.35.1", "gost_256A"); - add_oid(config, "1.2.643.2.2.36.0", "gost_256A"); - - /* CVC */ - add_oid(config, "0.4.0.127.0.7.3.1.2.1", - "CertificateHolderAuthorizationTemplate"); - } - -/* -* Set the default algorithm aliases -*/ -void set_default_aliases(Library_State& config) - { - config.add_alias("OpenPGP.Cipher.1", "IDEA"); - config.add_alias("OpenPGP.Cipher.2", "TripleDES"); - config.add_alias("OpenPGP.Cipher.3", "CAST-128"); - config.add_alias("OpenPGP.Cipher.4", "Blowfish"); - config.add_alias("OpenPGP.Cipher.5", "SAFER-SK(13)"); - config.add_alias("OpenPGP.Cipher.7", "AES-128"); - config.add_alias("OpenPGP.Cipher.8", "AES-192"); - config.add_alias("OpenPGP.Cipher.9", "AES-256"); - config.add_alias("OpenPGP.Cipher.10", "Twofish"); - - config.add_alias("OpenPGP.Digest.1", "MD5"); - config.add_alias("OpenPGP.Digest.2", "SHA-1"); - config.add_alias("OpenPGP.Digest.3", "RIPEMD-160"); - config.add_alias("OpenPGP.Digest.5", "MD2"); - config.add_alias("OpenPGP.Digest.6", "Tiger(24,3)"); - config.add_alias("OpenPGP.Digest.8", "SHA-256"); - - config.add_alias("TLS.Digest.0", "Parallel(MD5,SHA-160)"); - - config.add_alias("EME-PKCS1-v1_5", "PKCS1v15"); - config.add_alias("OAEP-MGF1", "EME1"); - config.add_alias("EME-OAEP", "EME1"); - config.add_alias("X9.31", "EMSA2"); - config.add_alias("EMSA-PKCS1-v1_5", "EMSA3"); - config.add_alias("PSS-MGF1", "EMSA4"); - config.add_alias("EMSA-PSS", "EMSA4"); - - config.add_alias("3DES", "TripleDES"); - config.add_alias("DES-EDE", "TripleDES"); - config.add_alias("CAST5", "CAST-128"); - config.add_alias("SHA1", "SHA-160"); - config.add_alias("SHA-1", "SHA-160"); - config.add_alias("MARK-4", "ARC4(256)"); - config.add_alias("OMAC", "CMAC"); - config.add_alias("GOST", "GOST-28147-89"); - } - -/* -* Set the built-in discrete log groups -*/ -void set_default_dl_groups(Library_State& config) - { - config.set("dl", "modp/ietf/768", - "-----BEGIN X942 DH PARAMETERS-----" - "MIHIAmEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxObIlFK" - "CHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjo2IP//" - "////////AgECAmB//////////+SH7VEQtGEaYmMxRcBuDmiUgScERTPmOgEF31Md" - "ic2RKKUEPMcaAm73yozZ5p0hjZgVhTb5L4obp/Catrao4SLyQtq7MS8/Y3omIXTT" - "HRsQf/////////8=" - "-----END X942 DH PARAMETERS-----"); - - config.set("dl", "modp/ietf/1024", - "-----BEGIN X942 DH PARAMETERS-----" - "MIIBCgKBgQD//////////8kP2qIhaMI0xMZii4DcHNEpAk4IimfMdAILvqY7E5si" - "UUoIeY40BN3vlRmzzTpDGzArCm3yXxQ3T+E1bW1RwkXkhbV2Yl5+xvRMQummN+1r" - "C/9ctvQGt+3uOGv7Womfpa6fJBF8Sx/mSShmUezmU4H//////////wIBAgKBgH//" - "////////5IftURC0YRpiYzFFwG4OaJSBJwRFM+Y6AQXfUx2JzZEopQQ8xxoCbvfK" - "jNnmnSGNmBWFNvkvihun8Jq2tqjhIvJC2rsxLz9jeiYhdNMb9rWF/65begNb9vcc" - "Nf2tRM/S10+SCL4lj/MklDMo9nMpwP//////////" - "-----END X942 DH PARAMETERS-----"); - - config.set("dl", "modp/srp/1024", - "-----BEGIN X942 DH PARAMETERS-----" - "MIIBCgKBgQDurwq5rbON1pwz+Ar6j8XoYHJhh3X/PAueojFMnCVldtZ033SW6oHT" - "ODtIE9aSxuDg1djiULmL5I5JXB1gidrRXcfXtGFU1rbOjvStabFdSYJVmyl7zxiF" - "xSn1ZmYOV+xo7bw8BXJswC/Uy/SXbqqa/VE4/oN2Q1ufxh0vwOsG4wIBAgKBgHdX" - "hVzW2cbrThn8BX1H4vQwOTDDuv+eBc9RGKZOErK7azpvukt1QOmcHaQJ60ljcHBq" - "7HEoXMXyRySuDrBE7Wiu4+vaMKprW2dHela02K6kwSrNlL3njELilPqzMwcr9jR2" - "3h4CuTZgF+pl+ku3VU1+qJx/Qbshrc/jDpfgdYNx" - "-----END X942 DH PARAMETERS-----"); - - config.set("dl", "modp/ietf/1536", - "-----BEGIN X942 DH PARAMETERS-----" - "MIIBigKBwQD//////////8kP2qIhaMI0xMZii4DcHNEpAk4IimfMdAILvqY7E5si" - "UUoIeY40BN3vlRmzzTpDGzArCm3yXxQ3T+E1bW1RwkXkhbV2Yl5+xvRMQummN+1r" - "C/9ctvQGt+3uOGv7Womfpa6fJBF8Sx/mSShmUezkWz3CAHy4oWO/BZjaSDYcVdOa" - "aRY/qP0kz1+DZV0j3KOtlhxi81YghVK7ntUpB3CWlm1nDDVOSryYBPF0bAjKI3Mn" - "//////////8CAQICgcB//////////+SH7VEQtGEaYmMxRcBuDmiUgScERTPmOgEF" - "31Mdic2RKKUEPMcaAm73yozZ5p0hjZgVhTb5L4obp/Catrao4SLyQtq7MS8/Y3om" - "IXTTG/a1hf+uW3oDW/b3HDX9rUTP0tdPkgi+JY/zJJQzKPZyLZ7hAD5cULHfgsxt" - "JBsOKunNNIsf1H6SZ6/Bsq6R7lHWyw4xeasQQqldz2qUg7hLSzazhhqnJV5MAni6" - "NgRlEbmT//////////8=" - "-----END X942 DH PARAMETERS-----"); - - config.set("dl", "modp/srp/1536", - "-----BEGIN DH PARAMETERS-----" - "MIHHAoHBAJ3vPK+5OSd6sfEqhheke7vbpR30maxMgL7uqWFLGcxNX09fVW4ny95R" - "xqlL5GB6KRVYkDug0PhDgLZVu5oi6NzfAop87Gfw0IE0sci5eYkUm2CeC+O6tj1H" - "VIOB28Wx/HZOP0tT3Z2hFYv9PiucjPVu3wGVOTSWJ9sv1T0kt8SGZXcuQ31sf4zk" - "QnNK98y3roN8Jkrjqb64f4ov6bi1KS5aAh//XpFHnoznoowkQsbzFRgPk0maI03P" - "duP+0TX5uwIBAg==" - "-----END DH PARAMETERS-----"); - - config.set("dl", "modp/ietf/2048", - "-----BEGIN X942 DH PARAMETERS-----" - "MIICDAKCAQEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxOb" - "IlFKCHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjft" - "awv/XLb0Brft7jhr+1qJn6WunyQRfEsf5kkoZlHs5Fs9wgB8uKFjvwWY2kg2HFXT" - "mmkWP6j9JM9fg2VdI9yjrZYcYvNWIIVSu57VKQdwlpZtZww1Tkq8mATxdGwIyhgh" - "fDKQXkYuNs474553LBgOhgObJ4Oi7Aeij7XFXfBvTFLJ3ivL9pVYFxg5lUl86pVq" - "5RXSJhiY+gUQFXKOWoqsqmj//////////wIBAgKCAQB//////////+SH7VEQtGEa" - "YmMxRcBuDmiUgScERTPmOgEF31Mdic2RKKUEPMcaAm73yozZ5p0hjZgVhTb5L4ob" - "p/Catrao4SLyQtq7MS8/Y3omIXTTG/a1hf+uW3oDW/b3HDX9rUTP0tdPkgi+JY/z" - "JJQzKPZyLZ7hAD5cULHfgsxtJBsOKunNNIsf1H6SZ6/Bsq6R7lHWyw4xeasQQqld" - "z2qUg7hLSzazhhqnJV5MAni6NgRlDBC+GUgvIxcbZx3xzzuWDAdDAc2TwdF2A9FH" - "2uKu+DemKWTvFeX7SqwLjBzKpL51SrVyiukTDEx9AogKuUctRVZVNH//////////" - "-----END X942 DH PARAMETERS-----"); - - config.set("dl", "modp/srp/2048", - "-----BEGIN X942 DH PARAMETERS-----" - "MIICDAKCAQEArGvbQTJKmpvxZt5eE4lYL69ytmUZh+4H/DGSlD21YFCjcynLtKCZ" - "7YGT4HV3Z6E91SMSq0sDMQ3Nf0ip2gT9UOgIOWntt2ewz2CVF5oWOrNmGgX71fqq" - "6CkYqZYvC5O4Vfl5k+yXXuqoDXQK2/T/dHNZ0EHVwz6nHSgeRGsUdzvKl7Q6I/uA" - "Fna9IHpDbGSB8dK5B4cXRhpbnTLmiPh3SFRFI7UksNV9Xqd6J3XS7PoDLPvb9S+z" - "eGFgJ5AE5Xrmr4dOcwPOUymczAQce8MI2CpWmPOo0MOCca41+Onb+7aUtcgD2J96" - "5DXeI21SX1R1m2XjcvzWjvIPpxEfnkr/cwIBAgKCAQBWNe2gmSVNTfizby8JxKwX" - "17lbMozD9wP+GMlKHtqwKFG5lOXaUEz2wMnwOruz0J7qkYlVpYGYhua/pFTtAn6o" - "dAQctPbbs9hnsEqLzQsdWbMNAv3q/VV0FIxUyxeFydwq/LzJ9kuvdVQGugVt+n+6" - "OazoIOrhn1OOlA8iNYo7neVL2h0R/cALO16QPSG2MkD46VyDw4ujDS3OmXNEfDuk" - "KiKR2pJYar6vU70Tuul2fQGWfe36l9m8MLATyAJyvXNXw6c5gecplM5mAg494YRs" - "FStMedRoYcE41xr8dO3920pa5AHsT71yGu8RtqkvqjrNsvG5fmtHeQfTiI/PJX+5" - "-----END X942 DH PARAMETERS-----"); - - config.set("dl", "modp/ietf/3072", - "-----BEGIN X942 DH PARAMETERS-----" - "MIIDDAKCAYEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxOb" - "IlFKCHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjft" - "awv/XLb0Brft7jhr+1qJn6WunyQRfEsf5kkoZlHs5Fs9wgB8uKFjvwWY2kg2HFXT" - "mmkWP6j9JM9fg2VdI9yjrZYcYvNWIIVSu57VKQdwlpZtZww1Tkq8mATxdGwIyhgh" - "fDKQXkYuNs474553LBgOhgObJ4Oi7Aeij7XFXfBvTFLJ3ivL9pVYFxg5lUl86pVq" - "5RXSJhiY+gUQFXKOWoqqxC2tMxcNBFB6M6hVIavfHLpk7PuFBFjb7wqK6nFXXQYM" - "fbOXD4Wm4eTHq/WujNsJM9cejJTgSiVhnc7j0iYa0u5r8S/6BtmKCGTYdgJzPshq" - "ZFIfKxgXeyAMu+EXV3phXWx3CYjAutlG4gjiT6B05asxQ9tb/OD9EI5LgtEgqTrS" - "yv//////////AgECAoIBgH//////////5IftURC0YRpiYzFFwG4OaJSBJwRFM+Y6" - "AQXfUx2JzZEopQQ8xxoCbvfKjNnmnSGNmBWFNvkvihun8Jq2tqjhIvJC2rsxLz9j" - "eiYhdNMb9rWF/65begNb9vccNf2tRM/S10+SCL4lj/MklDMo9nItnuEAPlxQsd+C" - "zG0kGw4q6c00ix/UfpJnr8GyrpHuUdbLDjF5qxBCqV3PapSDuEtLNrOGGqclXkwC" - "eLo2BGUMEL4ZSC8jFxtnHfHPO5YMB0MBzZPB0XYD0Ufa4q74N6YpZO8V5ftKrAuM" - "HMqkvnVKtXKK6RMMTH0CiAq5Ry1FVWIW1pmLhoIoPRnUKpDV745dMnZ9woIsbfeF" - "RXU4q66DBj7Zy4fC03DyY9X610ZthJnrj0ZKcCUSsM7ncekTDWl3NfiX/QNsxQQy" - "bDsBOZ9kNTIpD5WMC72QBl3wi6u9MK62O4TEYF1so3EEcSfQOnLVmKHtrf5wfohH" - "JcFokFSdaWV//////////w==" - "-----END X942 DH PARAMETERS-----"); - - config.set("dl", "modp/srp/3072", - "-----BEGIN DH PARAMETERS-----" - "MIIBiAKCAYEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxOb" - "IlFKCHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjft" - "awv/XLb0Brft7jhr+1qJn6WunyQRfEsf5kkoZlHs5Fs9wgB8uKFjvwWY2kg2HFXT" - "mmkWP6j9JM9fg2VdI9yjrZYcYvNWIIVSu57VKQdwlpZtZww1Tkq8mATxdGwIyhgh" - "fDKQXkYuNs474553LBgOhgObJ4Oi7Aeij7XFXfBvTFLJ3ivL9pVYFxg5lUl86pVq" - "5RXSJhiY+gUQFXKOWoqqxC2tMxcNBFB6M6hVIavfHLpk7PuFBFjb7wqK6nFXXQYM" - "fbOXD4Wm4eTHq/WujNsJM9cejJTgSiVhnc7j0iYa0u5r8S/6BtmKCGTYdgJzPshq" - "ZFIfKxgXeyAMu+EXV3phXWx3CYjAutlG4gjiT6B05asxQ9tb/OD9EI5LgtEgqTrS" - "yv//////////AgEF" - "-----END DH PARAMETERS-----"); - - config.set("dl", "modp/ietf/4096", - "-----BEGIN X942 DH PARAMETERS-----" - "MIIEDAKCAgEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxOb" - "IlFKCHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjft" - "awv/XLb0Brft7jhr+1qJn6WunyQRfEsf5kkoZlHs5Fs9wgB8uKFjvwWY2kg2HFXT" - "mmkWP6j9JM9fg2VdI9yjrZYcYvNWIIVSu57VKQdwlpZtZww1Tkq8mATxdGwIyhgh" - "fDKQXkYuNs474553LBgOhgObJ4Oi7Aeij7XFXfBvTFLJ3ivL9pVYFxg5lUl86pVq" - "5RXSJhiY+gUQFXKOWoqqxC2tMxcNBFB6M6hVIavfHLpk7PuFBFjb7wqK6nFXXQYM" - "fbOXD4Wm4eTHq/WujNsJM9cejJTgSiVhnc7j0iYa0u5r8S/6BtmKCGTYdgJzPshq" - "ZFIfKxgXeyAMu+EXV3phXWx3CYjAutlG4gjiT6B05asxQ9tb/OD9EI5LgtEgqSEI" - "ARpyPBKnh+bXiHGaEL26WyaZwycYavTiPBqUaDS2FQvaJYPpyirUTOjbu8LbBN6O" - "+S6O/BQfvsqmKHxZR05rwF2ZspZPoJDDoiM7oYZRW+ftH2EpcM7i16+4G912IXBI" - "HNAGkSfVsFqpk7TqmI2P3cGG/7fckKbAj030Nck0BjGZ//////////8CAQICggIA" - "f//////////kh+1RELRhGmJjMUXAbg5olIEnBEUz5joBBd9THYnNkSilBDzHGgJu" - "98qM2eadIY2YFYU2+S+KG6fwmra2qOEi8kLauzEvP2N6JiF00xv2tYX/rlt6A1v2" - "9xw1/a1Ez9LXT5IIviWP8ySUMyj2ci2e4QA+XFCx34LMbSQbDirpzTSLH9R+kmev" - "wbKuke5R1ssOMXmrEEKpXc9qlIO4S0s2s4YapyVeTAJ4ujYEZQwQvhlILyMXG2cd" - "8c87lgwHQwHNk8HRdgPRR9rirvg3pilk7xXl+0qsC4wcyqS+dUq1corpEwxMfQKI" - "CrlHLUVVYhbWmYuGgig9GdQqkNXvjl0ydn3Cgixt94VFdTirroMGPtnLh8LTcPJj" - "1frXRm2EmeuPRkpwJRKwzudx6RMNaXc1+Jf9A2zFBDJsOwE5n2Q1MikPlYwLvZAG" - "XfCLq70wrrY7hMRgXWyjcQRxJ9A6ctWYoe2t/nB+iEclwWiQVJCEAI05HglTw/Nr" - "xDjNCF7dLZNM4ZOMNXpxHg1KNBpbCoXtEsH05RVqJnRt3eFtgm9HfJdHfgoP32VT" - "FD4so6c14C7M2Usn0Ehh0RGd0MMorfP2j7CUuGdxa9fcDe67ELgkDmgDSJPq2C1U" - "ydp1TEbH7uDDf9vuSFNgR6b6GuSaAxjM//////////8=" - "-----END X942 DH PARAMETERS-----"); - - config.set("dl", "modp/srp/4096", - "-----BEGIN DH PARAMETERS-----" - "MIICCAKCAgEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxOb" - "IlFKCHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjft" - "awv/XLb0Brft7jhr+1qJn6WunyQRfEsf5kkoZlHs5Fs9wgB8uKFjvwWY2kg2HFXT" - "mmkWP6j9JM9fg2VdI9yjrZYcYvNWIIVSu57VKQdwlpZtZww1Tkq8mATxdGwIyhgh" - "fDKQXkYuNs474553LBgOhgObJ4Oi7Aeij7XFXfBvTFLJ3ivL9pVYFxg5lUl86pVq" - "5RXSJhiY+gUQFXKOWoqqxC2tMxcNBFB6M6hVIavfHLpk7PuFBFjb7wqK6nFXXQYM" - "fbOXD4Wm4eTHq/WujNsJM9cejJTgSiVhnc7j0iYa0u5r8S/6BtmKCGTYdgJzPshq" - "ZFIfKxgXeyAMu+EXV3phXWx3CYjAutlG4gjiT6B05asxQ9tb/OD9EI5LgtEgqSEI" - "ARpyPBKnh+bXiHGaEL26WyaZwycYavTiPBqUaDS2FQvaJYPpyirUTOjbu8LbBN6O" - "+S6O/BQfvsqmKHxZR05rwF2ZspZPoJDDoiM7oYZRW+ftH2EpcM7i16+4G912IXBI" - "HNAGkSfVsFqpk7TqmI2P3cGG/7fckKbAj030Nck0BjGZ//////////8CAQU=" - "-----END DH PARAMETERS-----"); - - config.set("dl", "modp/ietf/6144", - "-----BEGIN X942 DH PARAMETERS-----" - "MIIGDAKCAwEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxOb" - "IlFKCHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjft" - "awv/XLb0Brft7jhr+1qJn6WunyQRfEsf5kkoZlHs5Fs9wgB8uKFjvwWY2kg2HFXT" - "mmkWP6j9JM9fg2VdI9yjrZYcYvNWIIVSu57VKQdwlpZtZww1Tkq8mATxdGwIyhgh" - "fDKQXkYuNs474553LBgOhgObJ4Oi7Aeij7XFXfBvTFLJ3ivL9pVYFxg5lUl86pVq" - "5RXSJhiY+gUQFXKOWoqqxC2tMxcNBFB6M6hVIavfHLpk7PuFBFjb7wqK6nFXXQYM" - "fbOXD4Wm4eTHq/WujNsJM9cejJTgSiVhnc7j0iYa0u5r8S/6BtmKCGTYdgJzPshq" - "ZFIfKxgXeyAMu+EXV3phXWx3CYjAutlG4gjiT6B05asxQ9tb/OD9EI5LgtEgqSEI" - "ARpyPBKnh+bXiHGaEL26WyaZwycYavTiPBqUaDS2FQvaJYPpyirUTOjbu8LbBN6O" - "+S6O/BQfvsqmKHxZR05rwF2ZspZPoJDDoiM7oYZRW+ftH2EpcM7i16+4G912IXBI" - "HNAGkSfVsFqpk7TqmI2P3cGG/7fckKbAj030Nck0AoSSNsP6tNJ8cCbB1NyyYCZG" - "3sl1HnY9uje9+P+UBq2eUw7l2zgvQTABrrBqU+2QJ9gxF5cnsIZaiRjaPtvrz5sU" - "7UTObLrO1Lsb238UR+bMJUszIFFRK9evQm+49AE3jNK/WYPKAcZLkuzwMuoV0XId" - "A/SC185udP721V5wL0aYDIK1qEAxkAscnlnnyX++x+jzI6l6fjbMiL4PHUW3/1ha" - "xUvUB7IrQVSqzI9tfr9I4dgUzF7SD4A34KeXFe7ym+MoBqHVi7fF2nb1UKo9ih+/" - "8OsZzLGjE9Vc2lbJ7C7yljI4f+jXbjwEaAQ+j2Y/SGDuEr8tWwt0dNbmlPkebcxA" - "JP//////////AoIDAH//////////5IftURC0YRpiYzFFwG4OaJSBJwRFM+Y6AQXf" - "Ux2JzZEopQQ8xxoCbvfKjNnmnSGNmBWFNvkvihun8Jq2tqjhIvJC2rsxLz9jeiYh" - "dNMb9rWF/65begNb9vccNf2tRM/S10+SCL4lj/MklDMo9nItnuEAPlxQsd+CzG0k" - "Gw4q6c00ix/UfpJnr8GyrpHuUdbLDjF5qxBCqV3PapSDuEtLNrOGGqclXkwCeLo2" - "BGUMEL4ZSC8jFxtnHfHPO5YMB0MBzZPB0XYD0Ufa4q74N6YpZO8V5ftKrAuMHMqk" - "vnVKtXKK6RMMTH0CiAq5Ry1FVWIW1pmLhoIoPRnUKpDV745dMnZ9woIsbfeFRXU4" - "q66DBj7Zy4fC03DyY9X610ZthJnrj0ZKcCUSsM7ncekTDWl3NfiX/QNsxQQybDsB" - "OZ9kNTIpD5WMC72QBl3wi6u9MK62O4TEYF1so3EEcSfQOnLVmKHtrf5wfohHJcFo" - "kFSQhACNOR4JU8Pza8Q4zQhe3S2TTOGTjDV6cR4NSjQaWwqF7RLB9OUVaiZ0bd3h" - "bYJvR3yXR34KD99lUxQ+LKOnNeAuzNlLJ9BIYdERndDDKK3z9o+wlLhncWvX3A3u" - "uxC4JA5oA0iT6tgtVMnadUxGx+7gw3/b7khTYEem+hrkmgFCSRth/VppPjgTYOpu" - "WTATI29kuo87Ht0b3vx/ygNWzymHcu2cF6CYANdYNSn2yBPsGIvLk9hDLUSMbR9t" - "9efNinaiZzZdZ2pdje2/iiPzZhKlmZAoqJXr16E33HoAm8ZpX6zB5QDjJcl2eBl1" - "Cui5DoH6QWvnNzp/e2qvOBejTAZBWtQgGMgFjk8s8+S/32P0eZHUvT8bZkRfB46i" - "2/+sLWKl6gPZFaCqVWZHtr9fpHDsCmYvaQfAG/BTy4r3eU3xlANQ6sXb4u07eqhV" - "HsUP3/h1jOZY0Ynqrm0rZPYXeUsZHD/0a7ceAjQCH0ezH6Qwdwlflq2Fujprc0p8" - "jzbmIBJ//////////wIBAg==" - "-----END X942 DH PARAMETERS-----"); - - config.set("dl", "modp/srp/6144", - "-----BEGIN DH PARAMETERS-----" - "MIIDCAKCAwEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxOb" - "IlFKCHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjft" - "awv/XLb0Brft7jhr+1qJn6WunyQRfEsf5kkoZlHs5Fs9wgB8uKFjvwWY2kg2HFXT" - "mmkWP6j9JM9fg2VdI9yjrZYcYvNWIIVSu57VKQdwlpZtZww1Tkq8mATxdGwIyhgh" - "fDKQXkYuNs474553LBgOhgObJ4Oi7Aeij7XFXfBvTFLJ3ivL9pVYFxg5lUl86pVq" - "5RXSJhiY+gUQFXKOWoqqxC2tMxcNBFB6M6hVIavfHLpk7PuFBFjb7wqK6nFXXQYM" - "fbOXD4Wm4eTHq/WujNsJM9cejJTgSiVhnc7j0iYa0u5r8S/6BtmKCGTYdgJzPshq" - "ZFIfKxgXeyAMu+EXV3phXWx3CYjAutlG4gjiT6B05asxQ9tb/OD9EI5LgtEgqSEI" - "ARpyPBKnh+bXiHGaEL26WyaZwycYavTiPBqUaDS2FQvaJYPpyirUTOjbu8LbBN6O" - "+S6O/BQfvsqmKHxZR05rwF2ZspZPoJDDoiM7oYZRW+ftH2EpcM7i16+4G912IXBI" - "HNAGkSfVsFqpk7TqmI2P3cGG/7fckKbAj030Nck0AoSSNsP6tNJ8cCbB1NyyYCZG" - "3sl1HnY9uje9+P+UBq2eUw7l2zgvQTABrrBqU+2QJ9gxF5cnsIZaiRjaPtvrz5sU" - "7UTObLrO1Lsb238UR+bMJUszIFFRK9evQm+49AE3jNK/WYPKAcZLkuzwMuoV0XId" - "A/SC185udP721V5wL0aYDIK1qEAxkAscnlnnyX++x+jzI6l6fjbMiL4PHUW3/1ha" - "xUvUB7IrQVSqzI9tfr9I4dgUzF7SD4A34KeXFe7ym+MoBqHVi7fF2nb1UKo9ih+/" - "8OsZzLGjE9Vc2lbJ7C7yljI4f+jXbjwEaAQ+j2Y/SGDuEr8tWwt0dNbmlPkebcxA" - "JP//////////AgEF" - "-----END DH PARAMETERS-----"); - - config.set("dl", "modp/ietf/8192", - "-----BEGIN X942 DH PARAMETERS-----" - "MIIIDAKCBAEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxOb" - "IlFKCHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjft" - "awv/XLb0Brft7jhr+1qJn6WunyQRfEsf5kkoZlHs5Fs9wgB8uKFjvwWY2kg2HFXT" - "mmkWP6j9JM9fg2VdI9yjrZYcYvNWIIVSu57VKQdwlpZtZww1Tkq8mATxdGwIyhgh" - "fDKQXkYuNs474553LBgOhgObJ4Oi7Aeij7XFXfBvTFLJ3ivL9pVYFxg5lUl86pVq" - "5RXSJhiY+gUQFXKOWoqqxC2tMxcNBFB6M6hVIavfHLpk7PuFBFjb7wqK6nFXXQYM" - "fbOXD4Wm4eTHq/WujNsJM9cejJTgSiVhnc7j0iYa0u5r8S/6BtmKCGTYdgJzPshq" - "ZFIfKxgXeyAMu+EXV3phXWx3CYjAutlG4gjiT6B05asxQ9tb/OD9EI5LgtEgqSEI" - "ARpyPBKnh+bXiHGaEL26WyaZwycYavTiPBqUaDS2FQvaJYPpyirUTOjbu8LbBN6O" - "+S6O/BQfvsqmKHxZR05rwF2ZspZPoJDDoiM7oYZRW+ftH2EpcM7i16+4G912IXBI" - "HNAGkSfVsFqpk7TqmI2P3cGG/7fckKbAj030Nck0AoSSNsP6tNJ8cCbB1NyyYCZG" - "3sl1HnY9uje9+P+UBq2eUw7l2zgvQTABrrBqU+2QJ9gxF5cnsIZaiRjaPtvrz5sU" - "7UTObLrO1Lsb238UR+bMJUszIFFRK9evQm+49AE3jNK/WYPKAcZLkuzwMuoV0XId" - "A/SC185udP721V5wL0aYDIK1qEAxkAscnlnnyX++x+jzI6l6fjbMiL4PHUW3/1ha" - "xUvUB7IrQVSqzI9tfr9I4dgUzF7SD4A34KeXFe7ym+MoBqHVi7fF2nb1UKo9ih+/" - "8OsZzLGjE9Vc2lbJ7C7yljI4f+jXbjwEaAQ+j2Y/SGDuEr8tWwt0dNbmlPkebb4R" - "WXSjkm8S/uXkOHd8tqky34zYvsTQc7kxujvIMraNndMAdB+nv4r8R+0ldvaTa6Qk" - "ZjqrY5xa5PVoNCO0dCvxyXgjjxbL451lLeP9uL78hIrZIiIuBKQDfAcT61eoGiPw" - "xzRz/GRs6jBrS8vIhi+Dhd36nUt/osCH6HloMwPtW906Bis89bOieKZtKhP4P0T4" - "Ld8xDuB0q2o2RZfomaAlXcFk8xzFCEaFHfmrSBld7X6hsdUQvX7nTXP682vDHs+i" - "aDWQRvTrh5+SQAlDi0gcbNeImgAu1e44K8kZDab8Am5HlVjkR1Z36aqeMFDidlaU" - "38gfVuiAuW5xYMmA3Zjt09///////////wKCBAB//////////+SH7VEQtGEaYmMx" - "RcBuDmiUgScERTPmOgEF31Mdic2RKKUEPMcaAm73yozZ5p0hjZgVhTb5L4obp/Ca" - "trao4SLyQtq7MS8/Y3omIXTTG/a1hf+uW3oDW/b3HDX9rUTP0tdPkgi+JY/zJJQz" - "KPZyLZ7hAD5cULHfgsxtJBsOKunNNIsf1H6SZ6/Bsq6R7lHWyw4xeasQQqldz2qU" - "g7hLSzazhhqnJV5MAni6NgRlDBC+GUgvIxcbZx3xzzuWDAdDAc2TwdF2A9FH2uKu" - "+DemKWTvFeX7SqwLjBzKpL51SrVyiukTDEx9AogKuUctRVViFtaZi4aCKD0Z1CqQ" - "1e+OXTJ2fcKCLG33hUV1OKuugwY+2cuHwtNw8mPV+tdGbYSZ649GSnAlErDO53Hp" - "Ew1pdzX4l/0DbMUEMmw7ATmfZDUyKQ+VjAu9kAZd8IurvTCutjuExGBdbKNxBHEn" - "0Dpy1Zih7a3+cH6IRyXBaJBUkIQAjTkeCVPD82vEOM0IXt0tk0zhk4w1enEeDUo0" - "GlsKhe0SwfTlFWomdG3d4W2Cb0d8l0d+Cg/fZVMUPiyjpzXgLszZSyfQSGHREZ3Q" - "wyit8/aPsJS4Z3Fr19wN7rsQuCQOaANIk+rYLVTJ2nVMRsfu4MN/2+5IU2BHpvoa" - "5JoBQkkbYf1aaT44E2DqblkwEyNvZLqPOx7dG978f8oDVs8ph3LtnBegmADXWDUp" - "9sgT7BiLy5PYQy1EjG0fbfXnzYp2omc2XWdqXY3tv4oj82YSpZmQKKiV69ehN9x6" - "AJvGaV+sweUA4yXJdngZdQrouQ6B+kFr5zc6f3tqrzgXo0wGQVrUIBjIBY5PLPPk" - "v99j9HmR1L0/G2ZEXweOotv/rC1ipeoD2RWgqlVmR7a/X6Rw7ApmL2kHwBvwU8uK" - "93lN8ZQDUOrF2+LtO3qoVR7FD9/4dYzmWNGJ6q5tK2T2F3lLGRw/9Gu3HgI0Ah9H" - "sx+kMHcJX5athbo6a3NKfI823wisulHJN4l/cvIcO75bVJlvxmxfYmg53JjdHeQZ" - "W0bO6YA6D9PfxX4j9pK7e0m10hIzHVWxzi1yerQaEdo6FfjkvBHHi2XxzrKW8f7c" - "X35CRWyRERcCUgG+A4n1q9QNEfhjmjn+MjZ1GDWl5eRDF8HC7v1Opb/RYEP0PLQZ" - "gfat7p0DFZ562dE8UzaVCfwfonwW75iHcDpVtRsiy/RM0BKu4LJ5jmKEI0KO/NWk" - "DK72v1DY6ohev3Omuf15teGPZ9E0GsgjenXDz8kgBKHFpA42a8RNABdq9xwV5IyG" - "034BNyPKrHIjqzv01U8YKHE7K0pv5A+rdEBctziwZMBuzHbp7///////////AgEC" - "-----END X942 DH PARAMETERS-----"); - - config.set("dl", "modp/srp/8192", - "-----BEGIN DH PARAMETERS-----" - "MIIECAKCBAEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxOb" - "IlFKCHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjft" - "awv/XLb0Brft7jhr+1qJn6WunyQRfEsf5kkoZlHs5Fs9wgB8uKFjvwWY2kg2HFXT" - "mmkWP6j9JM9fg2VdI9yjrZYcYvNWIIVSu57VKQdwlpZtZww1Tkq8mATxdGwIyhgh" - "fDKQXkYuNs474553LBgOhgObJ4Oi7Aeij7XFXfBvTFLJ3ivL9pVYFxg5lUl86pVq" - "5RXSJhiY+gUQFXKOWoqqxC2tMxcNBFB6M6hVIavfHLpk7PuFBFjb7wqK6nFXXQYM" - "fbOXD4Wm4eTHq/WujNsJM9cejJTgSiVhnc7j0iYa0u5r8S/6BtmKCGTYdgJzPshq" - "ZFIfKxgXeyAMu+EXV3phXWx3CYjAutlG4gjiT6B05asxQ9tb/OD9EI5LgtEgqSEI" - "ARpyPBKnh+bXiHGaEL26WyaZwycYavTiPBqUaDS2FQvaJYPpyirUTOjbu8LbBN6O" - "+S6O/BQfvsqmKHxZR05rwF2ZspZPoJDDoiM7oYZRW+ftH2EpcM7i16+4G912IXBI" - "HNAGkSfVsFqpk7TqmI2P3cGG/7fckKbAj030Nck0AoSSNsP6tNJ8cCbB1NyyYCZG" - "3sl1HnY9uje9+P+UBq2eUw7l2zgvQTABrrBqU+2QJ9gxF5cnsIZaiRjaPtvrz5sU" - "7UTObLrO1Lsb238UR+bMJUszIFFRK9evQm+49AE3jNK/WYPKAcZLkuzwMuoV0XId" - "A/SC185udP721V5wL0aYDIK1qEAxkAscnlnnyX++x+jzI6l6fjbMiL4PHUW3/1ha" - "xUvUB7IrQVSqzI9tfr9I4dgUzF7SD4A34KeXFe7ym+MoBqHVi7fF2nb1UKo9ih+/" - "8OsZzLGjE9Vc2lbJ7C7yljI4f+jXbjwEaAQ+j2Y/SGDuEr8tWwt0dNbmlPkebb4R" - "WXSjkm8S/uXkOHd8tqky34zYvsTQc7kxujvIMraNndMAdB+nv4r8R+0ldvaTa6Qk" - "ZjqrY5xa5PVoNCO0dCvxyXgjjxbL451lLeP9uL78hIrZIiIuBKQDfAcT61eoGiPw" - "xzRz/GRs6jBrS8vIhi+Dhd36nUt/osCH6HloMwPtW906Bis89bOieKZtKhP4P0T4" - "Ld8xDuB0q2o2RZfomaAlXcFk8xzFCEaFHfmrSBld7X6hsdUQvX7nTXP682vDHs+i" - "aDWQRvTrh5+SQAlDi0gcbNeImgAu1e44K8kZDab8Am5HlVjkR1Z36aqeMFDidlaU" - "38gfVuiAuW5xYMmA3Zjt09///////////wIBEw==" - "-----END DH PARAMETERS-----"); - - config.set("dl", "dsa/jce/512", - "-----BEGIN DSA PARAMETERS-----" - "MIGdAkEA/KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9jQT" - "xeEu0ImbzRMqzVDZkVG9xD7nN1kuFwIVAJYu3cw2nLqOuyYO5rahJtk0bjjFAkEA" - "3gtU76vylwh+5iPVylWIxkgo70/eT/uuHs0gBndrBbEbgeo83pvDlkwWh8UyW/Q9" - "fM76DQqGvl3/3dDRFD3NdQ==" - "-----END DSA PARAMETERS-----"); - - config.set("dl", "dsa/jce/768", - "-----BEGIN DSA PARAMETERS-----" - "MIHdAmEA6eZCWZ01XzfJf/01ZxILjiXJzUPpJ7OpZw++xdiQFBki0sOzrSSACTeZ" - "hp0ehGqrSfqwrSbSzmoiIZ1HC859d31KIfvpwnC1f2BwAvPO+Dk2lM9F7jaIwRqM" - "VqsSej2vAhUAnNvYTJ8awvOND4D0KrlS5zOL9RECYQDe7p717RUWzn5pXmcrjO5F" - "5s17NuDmOF+JS6hhY/bz5sbU6KgRRtQBfe/dccvZD6Akdlm4i3zByJT0gmn9Txqs" - "CjBTjf9rP8ds+xMcnnlltYhYqwpDtVczWRKoqlR/lWg=" - "-----END DSA PARAMETERS-----"); - - config.set("dl", "dsa/jce/1024", - "-----BEGIN DSA PARAMETERS-----" - "MIIBHgKBgQD9f1OBHXUSKVLfSpwu7OTn9hG3UjzvRADDHj+AtlEmaUVdQCJR+1k9" - "jVj6v8X1ujD2y5tVbNeBO4AdNG/yZmC3a5lQpaSfn+gEexAiwk+7qdf+t8Yb+DtX" - "58aophUPBPuD9tPFHsMCNVQTWhaRMvZ1864rYdcq7/IiAxmd0UgBxwIVAJdgUI8V" - "IwvMspK5gqLrhAvwWBz1AoGARpYDUS4wJ4zTlHWV2yLuyYJqYyKtyXNE9B10DDJX" - "JMj577qn1NgD/4xgnc0QDrxb38+tfGpCX66nhuogUOvpg1HqH9of3yTWlHqmuaoj" - "dmlTgC9NfUqOy6BtGXaKJJH/sW0O+cQ6mbX3FnL/bwoktETQc20E04oaEyLa9s3Y" - "jJ0=" - "-----END DSA PARAMETERS-----"); - - config.set("dl", "dsa/botan/2048", - "-----BEGIN DSA PARAMETERS-----" - "MIICLAKCAQEAkcSKT9+898Aq6V59oSYSK13Shk9Vm4fo50oobVL1m9HeaN/WRdDg" - "DGDAgAMYkZgDdO61lKUyv9Z7mgnqxLhmOgeRDmjzlGX7cEDSXfE5MuusQ0elMOy6" - "YchU+biA08DDZgCAWHxFVm2t4mvVo5S+CTtMDyS1r/747GxbPlf7iQJam8FnaZMh" - "MeFtPJTvyrGNDfBhIDzFPmEDvHLVWUv9QMplOA9EqahR3LB1SV/AM6ilgHGhvXj+" - "BS9mVVZI60txnSr+i0iA+NrW8VgYuhePiSdMhwvpuW6wjEbEAEDMLv4d+xsYaN0x" - "nePDSjKmOrbrEiQgmkGWgMx5AtFyjU354QIhAIzX1FD4bwrZTu5M5GmodW0evRBY" - "JBlD6v+ws1RYXpJNAoIBAA2fXgdhtNvRgz1qsalhoJlsXyIwP3LYTBQPZ8Qx2Uq1" - "cVvqgaDJjTnOS8941rnryJXTT+idlAkdWEhhXvFfXobxHZb2yWniA936WDVkIKSc" - "tES1lbkBqTPP4HZ7WU8YoHt/kd7NukRriJkPePL/kfL+fNQ/0uRtGOraH3u2YCxh" - "f27zpLKE8v2boQo2BC3o+oeiyjZZf+yBFXoUheRAQd8CgwERy4gLvm7UlIFIhvll" - "zcMTX1zPE4Nyi/ZbgG+WksCxDWxMCcdabKO0ATyxarLBBfa+I66pAA6rIXiYX5cs" - "mAV+HIbkTnIYaI6krg82NtzKdFydzU5q/7Z8y8E9YTE=" - "-----END DSA PARAMETERS-----"); - - config.set("dl", "dsa/botan/3072", - "-----BEGIN DSA PARAMETERS-----" - "MIIDLAKCAYEA5LUIgHWWY1heFCRgyi2d/xMviuTIQN2jomZoiRJP5WOLhOiim3rz" - "+hIJvmv8S1By7Tsrc4e68/hX9HioAijvNgC3az3Pth0g00RlslBtLK+H3259wM6R" - "vS0Wekb2rcwxxTHk+cervbkq3fNbCoBsZikqX14X6WTdCZkDczrEKKs12A6m9oW/" - "uovkBo5UGK5eytno/wc94rY+Tn6tNciptwtb1Hz7iNNztm83kxk5sKtxvVWVgJCG" - "2gFVM30YWg5Ps2pRmxtiArhZHmACRJzxzTpmOE9tIHOxzXO+ypO68eGmEX0COPIi" - "rh7X/tGFqJDn9n+rj+uXU8wTSlGD3+h64llfe1wtn7tCJJ/dWVE+HTOWs+sv2GaE" - "8oWoRI/nV6ApiBxAdguU75Gb35dAw4OJWZ7FGm6btRmo4GhJHpzgovz+PLYNZs8N" - "+tIKjsaEBIaEphREV1vRck1zUrRKdgB3s71r04XOWwpyUMwL92jagpI4Buuc+7E4" - "hDcxthggjHWbAiEAs+vTZOxp74zzuvZDt1c0sWM5suSeXN4bWcHp+0DuDFsCggGA" - "K+0h7vg5ZKIwrom7px2ffDnFL8gim047x+WUTTKdoQ8BDqyee69sAJ/E6ylgcj4r" - "Vt9GY+TDrIAOkljeL3ZJ0gZ4KJP4Ze/KSY0u7zAHTqXop6smJxKk2UovOwuaku5A" - "D7OKPMWaXcfkNtXABLIuNQKDgbUck0B+sy1K4P1Cy0XhLQ7O6KJiOO3iCCp7FSIR" - "PGbO+NdFxs88uUX4TS9N4W1Epx3hmCcOE/A1U8iLjTI60LlIob8hA6lJl5tu0W+1" - "88lT2Vt8jojKZ9z1pjb7nKOdkkIV96iE7Wx+48ltjZcVQnl0t8Q1EoLhPTdz99KL" - "RS8QiSoTx1hzKN6kgntrNpsqjcFyrcWD9R8qZZjFSD5bxGewL5HQWcQC0Y4sJoD3" - "dqoG9JKAoscsF8xC1bbnQMXEsas8UcLtCSviotiwU65Xc9FCXtKwjwbi3VBZLfGk" - "eMFVkc39EVZP+I/zi3IdQjkv2kcyEtz9jS2IqXagCv/m//tDCjWeZMorNRyiQSOU" - "-----END DSA PARAMETERS-----"); - - config.set("ec", "secp112r1", - "-----BEGIN EC PARAMETERS-----" - "MHQCAQEwGgYHKoZIzj0BAQIPANt8Kr9i415mgHa+rSCLMCAEDtt8Kr9i415mgHa+" - "rSCIBA5lnvi6BDkW7t6JEXArIgQdBAlIcjmZWl7na1X5wvCYqJzlr4ckwKI+Dg/3" - "dQACDwDbfCq/YuNedijfrGVhxQIBAQ==" - "-----END EC PARAMETERS-----"); - - config.set("ec", "secp112r2", - "-----BEGIN EC PARAMETERS-----" - "MHMCAQEwGgYHKoZIzj0BAQIPANt8Kr9i415mgHa+rSCLMCAEDmEnwkwF84oKqvZc" - "DvAsBA5R3vGBXbXtdPzDTIXXCQQdBEujCrXokrThZJ3QkoZDrc1G9YguN0fe826V" - "bpcCDjbfCq/YuNdZfKEFINBLAgEB" - "-----END EC PARAMETERS-----"); - - config.set("ec", "secp128r1", - "-----BEGIN EC PARAMETERS-----" - "MIGAAgEBMBwGByqGSM49AQECEQD////9////////////////MCQEEP////3/////" - "//////////wEEOh1ecEQefQ92CSZPCzuXtMEIQQWH/dSi4mbLQwoYHylLFuGz1rI" - "OVuv6xPALaKS3e16gwIRAP////4AAAAAdaMNG5A4oRUCAQE=" - "-----END EC PARAMETERS-----"); - - config.set("ec", "secp128r2", - "-----BEGIN EC PARAMETERS-----" - "MH8CAQEwHAYHKoZIzj0BAQIRAP////3///////////////8wJAQQ1gMZmNGzu/6/" - "Wcybv/mu4QQQXu78o4DQKRncLGVYu22KXQQhBHtqpdheVymD5vsyp83rwUAntpFq" - "iU067nEG/oBfw0tEAhA/////f////74AJHIGE7WjAgEE" - "-----END EC PARAMETERS-----"); - - config.set("ec", "secp160k1", - "-----BEGIN EC PARAMETERS-----" - "MIGYAgEBMCAGByqGSM49AQECFQD////////////////////+//+sczAsBBQAAAAA" - "AAAAAAAAAAAAAAAAAAAAAAQUAAAAAAAAAAAAAAAAAAAAAAAAAAcEKQQ7TDgs43qh" - "kqQBnnYwNvT13U1+u5OM+TUxj9zta8KChlMXM8PwPE/uAhUBAAAAAAAAAAAAAbj6" - "Ft+rmsoWtrMCAQE=" - "-----END EC PARAMETERS-----"); - - config.set("ec", "secp160r1", - "-----BEGIN EC PARAMETERS-----" - "MIGYAgEBMCAGByqGSM49AQECFQD/////////////////////f////zAsBBT/////" - "////////////////f////AQUHJe+/FS9eotlrPifgdTUrcVl+kUEKQRKlrVojvVz" - "KEZkaYlow4u5E8v8giOmKFUxaJR9WdzJEgQjUTd6xfsyAhUBAAAAAAAAAAAAAfTI" - "+Seu08p1IlcCAQE=" - "-----END EC PARAMETERS-----"); - - config.set("ec", "secp160r2", - "-----BEGIN EC PARAMETERS-----" - "MIGYAgEBMCAGByqGSM49AQECFQD////////////////////+//+sczAsBBT/////" - "///////////////+//+scAQUtOE00/tZ64urVydJBGZNWvUDiLoEKQRS3LA0KToR" - "fh9P8Rsw9xmdMUTObf6v/vLjMfKW4HH6DfmYLP6n1D8uAhUBAAAAAAAAAAAAADUe" - "54aoGPOhoWsCAQE=" - "-----END EC PARAMETERS-----"); - - config.set("ec", "secp192k1", - "-----BEGIN EC PARAMETERS-----" - "MIGwAgEBMCQGByqGSM49AQECGQD//////////////////////////v//7jcwNAQY" - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - "AAMEMQTbT/EOwFfpriawfQKAt/Q0HaXRsergbH2bLy9tnFYop4RBY9AVvoY0QIKq" - "iNleL50CGQD///////////////4m8vwXD2lGanTe/Y0CAQE=" - "-----END EC PARAMETERS-----"); - - config.set("ec", "secp192r1", - "-----BEGIN EC PARAMETERS-----" - "MIGwAgEBMCQGByqGSM49AQECGQD////////////////////+//////////8wNAQY" - "/////////////////////v/////////8BBhkIQUZ5ZyA5w+n6atyJDBJ/rje7MFG" - "ubEEMQQYjagOsDCQ9ny/IOtDoYgA9P8K/YL/EBIHGSuV/8jaeGMQEe1rJM3Vc/l3" - "oR55SBECGQD///////////////+Z3vg2FGvJsbTSKDECAQE=" - "-----END EC PARAMETERS-----"); - - config.set("ec", "secp224k1", - "-----BEGIN EC PARAMETERS-----" - "MIHIAgEBMCgGByqGSM49AQECHQD///////////////////////////////7//+Vt" - "MDwEHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEHAAAAAAAAAAAAAAAAAAA" - "AAAAAAAAAAAAAAAAAAUEOQShRVszTfCZ3zD8KKFppGfp5HB1qQ9+ZQ62t6Rcfgif" - "7X+6NEKCyvvW9+MZ98CwvVniykvbVW1hpQIdAQAAAAAAAAAAAAAAAAAB3OjS7GGE" - "yvCpcXafsfcCAQE=" - "-----END EC PARAMETERS-----"); - - config.set("ec", "secp224r1", - "-----BEGIN EC PARAMETERS-----" - "MIHIAgEBMCgGByqGSM49AQECHQD/////////////////////AAAAAAAAAAAAAAAB" - "MDwEHP////////////////////7///////////////4EHLQFCoUMBLOr9UEyVlBE" - "sLfXv9i6Jws5QyNV/7QEOQS3Dgy9a7S/fzITkLlKA8HTVsIRIjQygNYRXB0hvTdj" - "iLX3I/tMIt/mzUN1oFoHR2RE1YGZhQB+NAIdAP//////////////////FqLguPA+" - "E90pRVxcKj0CAQE=" - "-----END EC PARAMETERS-----"); - - config.set("ec", "secp256k1", - "-----BEGIN EC PARAMETERS-----" - "MIHgAgEBMCwGByqGSM49AQECIQD////////////////////////////////////+" - "///8LzBEBCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQgAAAAAAAA" - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcEQQR5vmZ++dy7rFWgYpXOhwsHApv8" - "2y3OKNlZ8oFbFvgXmEg62ncmo8RlXaT7/A4RCKj9F7RIpoVUGZxH0I/7ENS4AiEA" - "/////////////////////rqu3OavSKA7v9JejNA2QUECAQE=" - "-----END EC PARAMETERS-----"); - - config.set("ec", "secp256r1", - "-----BEGIN EC PARAMETERS-----" - "MIHgAgEBMCwGByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP//////////" - "/////zBEBCD/////AAAAAQAAAAAAAAAAAAAAAP///////////////AQgWsY12Ko6" - "k+ez671VdpiGvGUdBrDMU7D2O848PifSYEsEQQRrF9Hy4SxCR/i85uVjpEDydwN9" - "gS3rM6D0oTlF2JjClk/jQuL+Gn+bjufrSnwPnhYrzjNXazFezsu2QGg3v1H1AiEA" - "/////wAAAAD//////////7zm+q2nF56E87nKwvxjJVECAQE=" - "-----END EC PARAMETERS-----"); - - config.set("ec", "secp384r1", - "-----BEGIN EC PARAMETERS-----" - "MIIBQAIBATA8BgcqhkjOPQEBAjEA////////////////////////////////////" - "//////7/////AAAAAAAAAAD/////MGQEMP//////////////////////////////" - "///////////+/////wAAAAAAAAAA/////AQwszEvp+I+5+SYjgVr4/gtGRgdnG7+" - "gUESAxQIj1ATh1rGVjmNii7RnSqFyO3T7CrvBGEEqofKIr6LBTeOscce8yCtdG4d" - "O2KLp5uYWfdB4IJUKjhVAvJdv1UpbDpUXjhydgq3NhfeSpYmLG9dnpi/kpLcKfj0" - "Hb0omhR86doxE7XwuMAKYLHOHX6BnXpDHXyQ6g5fAjEA////////////////////" - "////////////x2NNgfQ3Ld9YGg2ySLCneuzsGWrMxSlzAgEB" - "-----END EC PARAMETERS-----"); - - config.set("ec", "secp521r1", - "-----BEGIN EC PARAMETERS-----" - "MIIBrAIBATBNBgcqhkjOPQEBAkIB////////////////////////////////////" - "//////////////////////////////////////////////////8wgYgEQgH/////" - "////////////////////////////////////////////////////////////////" - "/////////////////ARCAFGVPrlhjhyaH5KaIaC2hUDuotpyW5mzFfO4tImRjvEJ" - "4VYZOVHsfpN7FlLAvTuxvwc1c9+IPSw08e9FH9RrUD8ABIGFBADGhY4GtwQE6c2e" - "PstmI5W0QpxkgTkFP7Uh+CivYGtNPbqhS1537+dZKP4dwSei/6jeM0izwYVqQpv5" - "fn4xwuW9ZgEYOSlqeJo7wARcil+0LH0b2Zj1RElXm0RoF6+9Fyc+ZiyX7nKZXvQm" - "QMVQuQE/rQdhNTxwhqJywkCIvpR2n9FmUAJCAf//////////////////////////" - "////////////////+lGGh4O/L5Zrf8wBSPcJpdA7tcm4iZxHrrtvtx6ROGQJAgEB" - "-----END EC PARAMETERS-----"); - - config.set("ec", "1.3.6.1.4.1.8301.3.1.2.9.0.38", - "-----BEGIN EC PARAMETERS-----" - "MIIBrAIBATBNBgcqhkjOPQEBAkIB////////////////////////////////////" - "//////////////////////////////////////////////////8wgYgEQgH/////" - "////////////////////////////////////////////////////////////////" - "/////////////////ARCAFGVPrlhjhyaH5KaIaC2hUDuotpyW5mzFfO4tImRjvEJ" - "4VYZOVHsfpN7FlLAvTuxvwc1c9+IPSw08e9FH9RrUD8ABIGFBADGhY4GtwQE6c2e" - "PstmI5W0QpxkgTkFP7Uh+CivYGtNPbqhS1537+dZKP4dwSei/6jeM0izwYVqQpv5" - "fn4xwuW9ZgEYOSlqeJo7wARcil+0LH0b2Zj1RElXm0RoF6+9Fyc+ZiyX7nKZXvQm" - "QMVQuQE/rQdhNTxwhqJywkCIvpR2n9FmUAJCAf//////////////////////////" - "////////////////+lGGh4O/L5Zrf8wBSPcJpdA7tcm4iZxHrrtvtx6ROGQJAgEB" - "-----END EC PARAMETERS-----"); - - config.set("ec", "brainpool160r1", - "-----BEGIN EC PARAMETERS-----" - "MIGYAgEBMCAGByqGSM49AQECFQDpXkpfc3BZ3GDfx62Vs9gTlRViDzAsBBQ0Dnvi" - "ooDrdOK+YbradF2X6PfDAAQUHliahZVCNBITT6otveyVyNhnXlgEKQS+1a8W6j9q" - "T2KTjEYx61r3vbzbwxZny0d6Go7DOPlHQWacl2MW2mMhAhUA6V5KX3NwWdxg31mR" - "1FApQJ5g/AkCAQE=" - "-----END EC PARAMETERS-----"); - - config.set("ec", "brainpool192r1", - "-----BEGIN EC PARAMETERS-----" - "MIGwAgEBMCQGByqGSM49AQECGQDDAvQdkyo2zaejRjCT0Y23j85HbeGoYpcwNAQY" - "apEXQHax4OGcOcAx/oaFwcrgQOXGmijvBBhGmijvfCjMo9xyHQRPRJa8yn70FG+/" - "JckEMQTAoGR+qrakh1OwM8VssPCQCi9cSFM3X9YUtpCGar1buItfSCjBSQAC5nc/" - "ovopm48CGQDDAvQdkyo2zaejRi+enpFrW+jxAprErMECAQE=" - "-----END EC PARAMETERS-----"); - - config.set("ec", "brainpool224r1", - "-----BEGIN EC PARAMETERS-----" - "MIHIAgEBMCgGByqGSM49AQECHQDXwTSqJkNmhioYMCV10deHsJ8HV5faifV+yMD/" - "MDwEHGil5iypzmwcKZgDpsFTC1FOGCrYsAQqWcrSn0MEHCWA9jzP5EE4hwcTsakj" - "aeM+ITXSZtuzcjhsQAsEOQQNkCmtLH5c9DQII7KofcaMnkzjF0webv3uEsB9WKpW" - "93LAcm8kxrieTs2sJDVLnpnKo/bTdhQCzQIdANfBNKomQ2aGKhgwJXXQ+5jRFrxL" - "bd68o6Wnk58CAQE=" - "-----END EC PARAMETERS-----"); - - config.set("ec", "brainpool256r1", - "-----BEGIN EC PARAMETERS-----" - "MIHgAgEBMCwGByqGSM49AQECIQCp+1fboe6pvD5mCpCdg41ybjv2I9UmICggE0gd" - "H25TdzBEBCB9Wgl1/CwwV+72dTBBev/n+4BVwSbcXGzpSktE8zC12QQgJtxcbOlK" - "S0TzMLXZu9d8v5WEFilc9+HOa8zcGP+MB7YEQQSL0q65y35XyyxLSC/8gbevud4n" - "4eO9I8I6RFO9ms4yYlR++DXD2sT9l/hGGhRhHcnCd0UTLe2OVFwdVMcvBGmXAiEA" - "qftX26Huqbw+ZgqQnYONcYw5eqO1Yab3kB4OgpdIVqcCAQE=" - "-----END EC PARAMETERS-----"); - - config.set("ec", "brainpool320r1", - "-----BEGIN EC PARAMETERS-----" - "MIIBEAIBATA0BgcqhkjOPQEBAikA015HIDa8T7fhPHhe0gHgZfmPz6b29A3vT5K5" - "7HiT7Cj81BKx8bMuJzBUBCg+4wtWj7qw+IPM69RtPzu4oqc1E/XredpmGQ6whf+p" - "9JLzdal9hg60BChSCIOUnf28QtOtGYZAaIpv4T9BNJVUtJrMMdzNiEU5gW9etKyP" - "sfGmBFEEQ71+mvtT2LhSibzEjuW/5vIBN9EKCH6254ceKhClmccQr40NOeIGERT9" - "0FVF7BzIq0CTJH93J14HQ//tEXGC6qnHeHeqrGrH01JF0WkujuECKQDTXkcgNrxP" - "t+E8eF7SAeBl+Y/PpbaPEqMtSC7H7oZY6YaRVVtExZMRAgEB" - "-----END EC PARAMETERS-----"); - - config.set("ec", "brainpool384r1", - "-----BEGIN EC PARAMETERS-----" - "MIIBQAIBATA8BgcqhkjOPQEBAjEAjLkegqM4bSgPXW9+UOZB3xUvcQntVFa0ErHa" - "GX+3ESOs06cpkB0acYdHABMxB+xTMGQEMHvDgsY9jBUMPHIICs4Fr6DCvqKOT7In" - "hxORZe+6kfkPiqWBSlA61OsEqMfdIs4oJgQwBKjH3SLOKCaLObVUFvBEfC+3feEH" - "3NKmLogOpT7rYtV8tDkCldvJlDq3hpb6UEwRBGEEHRxk8GjPRf+ipjqBt8E/a4hH" - "o+d+8U/j23/K/gy9EOjoJuA0NtZGqu+HsuJH1K8eir4ddSD5wqRcseuOlc/VUmK3" - "Cyn+7Fhk4ZwFT/mRKSgORkYhd5GBEUKCA0EmPFMVAjEAjLkegqM4bSgPXW9+UOZB" - "3xUvcQntVFazHxZubKwEJafPOrava3/DEDuIMgLpBGVlAgEB" - "-----END EC PARAMETERS-----"); - - config.set("ec", "brainpool512r1", - "-----BEGIN EC PARAMETERS-----" - "MIIBogIBATBMBgcqhkjOPQEBAkEAqt2duNvpxIs/1OauM8n8B8swjbOzydIO1mOc" - "ynAzCHF9TZsAm8ZoQq7NoSrmo4DmKIH/Ly2CxoUoqmBWWDpI8zCBhARAeDCjMYtg" - "O4niMnFFrCNMxZTL3Y09+RYQqDRByuqYY7wt7V1aqCU6oQou8cmLmsi1fxEXpyvy" - "x7nnwaxNd/yUygRAPfkWEKg0QcrqmGO8Le1dWqglOqEKLvHJi5rItX8RF6cr8se5" - "58GsTXf8lMrcCD5nmEBQt1665d0oCb1jgBb3IwSBgQSBruS92C7ZZFohMi6cTGqT" - "he2fcLXZFsG0O2Lu9NAJjv87H3ji0NSNUNFoe5O5fV98bVBHQGpeaIs1Igm8ufgi" - "fd44XVZjMuzA6r+pz3gi/fIJ9wAkpXsaoADFW4gfgRGy3N5JSl9IXlvKS9iKJ2Ou" - "0corL6jwVAZ4zR4POtgIkgJBAKrdnbjb6cSLP9TmrjPJ/AfLMI2zs8nSDtZjnMpw" - "MwhwVT5cQUypJhlBhmEZf6wQRx2x04EIXdrdtYeWgpypAGkCAQE=" - "-----END EC PARAMETERS-----"); - - config.set("ec", "x962_p192v2", - "-----BEGIN EC PARAMETERS-----" - "MIGwAgEBMCQGByqGSM49AQECGQD////////////////////+//////////8wNAQY" - "/////////////////////v/////////8BBjMItbfuVxrJeScDWNkpOWYDDk6ohZo" - "2VMEMQTuorrn4Ul4QvLed2nP6cmJwHKtaW9IA0pldNEdabbsemcruCoIPfLysIR9" - "6XCy3hUCGQD///////////////5fsack3IBBhkjY3TECAQE=" - "-----END EC PARAMETERS-----"); - - config.set("ec", "x962_p192v3", - "-----BEGIN EC PARAMETERS-----" - "MIGwAgEBMCQGByqGSM49AQECGQD////////////////////+//////////8wNAQY" - "/////////////////////v/////////8BBgiEj3COVoFyqdCPa7MyUdgp9RiJWvV" - "aRYEMQR9KXeBAMZaHaF4NxZYjc4ri0rujiKPGJY4qQ8iY3M3M0tJ3LZqbcj5l4rK" - "dkipQ7ACGQD///////////////96YtAxyD9ClPZA7BMCAQE=" - "-----END EC PARAMETERS-----"); - - config.set("ec", "x962_p239v1", - "-----BEGIN EC PARAMETERS-----" - "MIHSAgEBMCkGByqGSM49AQECHn///////////////3///////4AAAAAAAH//////" - "/zBABB5///////////////9///////+AAAAAAAB///////wEHmsBbDvc8YlB0NZU" - "khR1ynGp2y+yfR03eWGFwpQsCgQ9BA/6ljzcqIFszDO4ZCvt+QXD01hXPT8n+707" - "PLmqr33r6OTpCl2ubkBUylMLoEZUs2gYziJrOfzLewLxrgIef///////////////" - "f///nl6an12QcfvRUiaIkJ0LAgEB" - "-----END EC PARAMETERS-----"); - - config.set("ec", "x962_p239v2", - "-----BEGIN EC PARAMETERS-----" - "MIHSAgEBMCkGByqGSM49AQECHn///////////////3///////4AAAAAAAH//////" - "/zBABB5///////////////9///////+AAAAAAAB///////wEHmF/q2gyV2y7/tUN" - "mfAknD/uWLlLoAOMeuhMjIMvLAQ9BDivCdmHJ3BRIMkhu16eJilqPNzy81dXoOr9" - "h7gw51sBJeTb6g7HIG2g/AHZsIEyn7VV3m70YCN9/4vkugIef///////////////" - "gAAAz6foWUN31BTAOCG8WCBjAgEB" - "-----END EC PARAMETERS-----"); - - config.set("ec", "x962_p239v3", - "-----BEGIN EC PARAMETERS-----" - "MIHSAgEBMCkGByqGSM49AQECHn///////////////3///////4AAAAAAAH//////" - "/zBABB5///////////////9///////+AAAAAAAB///////wEHiVXBfoqMGZUsfTL" - "A9anUKMMJQEC1JiHF9m6FattPgQ9BGdoro4Yu5LPzwBclJqixtlIU9DmYLv4VLHJ" - "UF/pWhYH5omPOQwGvB1VK60ibztvz+SLboGEma8Y4+1s8wIef///////////////" - "f///l13rQbOmBXw8QyFGUmVRAgEB" - "-----END EC PARAMETERS-----"); - - config.set("ec", "gost_256A", - "-----BEGIN EC PARAMETERS-----" - "MIHgAgEBMCwGByqGSM49AQECIQD/////////////////////////////////////" - "///9lzBEBCD////////////////////////////////////////9lAQgAAAAAAAA" - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKYEQQQAAAAAAAAAAAAAAAAAAAAAAAAA" - "AAAAAAAAAAAAAAAAAY2R5HHgmJzaJ99QWkU/K3Y1KU8t3yPjsSKsyZyenx4UAiEA" - "/////////////////////2xhEHCZWtEARYQbCbdhuJMCAQE=" - "-----END EC PARAMETERS-----"); - } -} - -/* -* Set the default policy -*/ -void Library_State::load_default_config() - { - set_default_aliases(*this); - set_default_oids(*this); - set_default_dl_groups(*this); - } - -} diff --git a/src/botan/src/libstate/scan_name.cpp b/src/botan/src/libstate/scan_name.cpp deleted file mode 100644 index a17dc4ad0..000000000 --- a/src/botan/src/libstate/scan_name.cpp +++ /dev/null @@ -1,174 +0,0 @@ -/* -* SCAN Name Abstraction -* (C) 2008-2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include - -namespace Botan { - -namespace { - -std::string make_arg( - const std::vector >& name, size_t start) - { - std::string output = name[start].second; - size_t level = name[start].first; - - size_t paren_depth = 0; - - for(size_t i = start + 1; i != name.size(); ++i) - { - if(name[i].first <= name[start].first) - break; - - if(name[i].first > level) - { - output += '(' + name[i].second; - ++paren_depth; - } - else if(name[i].first < level) - { - output += ")," + name[i].second; - --paren_depth; - } - else - { - if(output[output.size() - 1] != '(') - output += ","; - output += name[i].second; - } - - level = name[i].first; - } - - for(size_t i = 0; i != paren_depth; ++i) - output += ')'; - - return output; - } - -std::pair -deref_aliases(const std::pair& in) - { - return std::make_pair(in.first, - global_state().deref_alias(in.second)); - } - -} - -SCAN_Name::SCAN_Name(std::string algo_spec) - { - orig_algo_spec = algo_spec; - - std::vector > name; - size_t level = 0; - std::pair accum = std::make_pair(level, ""); - - std::string decoding_error = "Bad SCAN name '" + algo_spec + "': "; - - algo_spec = global_state().deref_alias(algo_spec); - - for(size_t i = 0; i != algo_spec.size(); ++i) - { - char c = algo_spec[i]; - - if(c == '/' || c == ',' || c == '(' || c == ')') - { - if(c == '(') - ++level; - else if(c == ')') - { - if(level == 0) - throw Decoding_Error(decoding_error + "Mismatched parens"); - --level; - } - - if(c == '/' && level > 0) - accum.second.push_back(c); - else - { - if(accum.second != "") - name.push_back(deref_aliases(accum)); - accum = std::make_pair(level, ""); - } - } - else - accum.second.push_back(c); - } - - if(accum.second != "") - name.push_back(deref_aliases(accum)); - - if(level != 0) - throw Decoding_Error(decoding_error + "Missing close paren"); - - if(name.size() == 0) - throw Decoding_Error(decoding_error + "Empty name"); - - alg_name = name[0].second; - - bool in_modes = false; - - for(size_t i = 1; i != name.size(); ++i) - { - if(name[i].first == 0) - { - mode_info.push_back(make_arg(name, i)); - in_modes = true; - } - else if(name[i].first == 1 && !in_modes) - args.push_back(make_arg(name, i)); - } - } - -std::string SCAN_Name::algo_name_and_args() const - { - std::string out; - - out = algo_name(); - - if(arg_count()) - { - out += '('; - for(size_t i = 0; i != arg_count(); ++i) - { - out += arg(i); - if(i != arg_count() - 1) - out += ','; - } - out += ')'; - - } - - return out; - } - -std::string SCAN_Name::arg(size_t i) const - { - if(i >= arg_count()) - throw std::range_error("SCAN_Name::argument - i out of range"); - return args[i]; - } - -std::string SCAN_Name::arg(size_t i, const std::string& def_value) const - { - if(i >= arg_count()) - return def_value; - return args[i]; - } - -size_t SCAN_Name::arg_as_integer(size_t i, size_t def_value) const - { - if(i >= arg_count()) - return def_value; - return to_u32bit(args[i]); - } - -} diff --git a/src/botan/src/libstate/scan_name.h b/src/botan/src/libstate/scan_name.h deleted file mode 100644 index 3e1728f29..000000000 --- a/src/botan/src/libstate/scan_name.h +++ /dev/null @@ -1,98 +0,0 @@ -/* -* SCAN Name Abstraction -* (C) 2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_SCAN_NAME_H__ -#define BOTAN_SCAN_NAME_H__ - -#include -#include -#include - -namespace Botan { - -/** -A class encapsulating a SCAN name (similar to JCE conventions) -http://www.users.zetnet.co.uk/hopwood/crypto/scan/ -*/ -class BOTAN_DLL SCAN_Name - { - public: - /** - * @param algo_spec A SCAN-format name - */ - SCAN_Name(std::string algo_spec); - - /** - * @return original input string - */ - std::string as_string() const { return orig_algo_spec; } - - /** - * @return algorithm name - */ - std::string algo_name() const { return alg_name; } - - /** - * @return algorithm name plus any arguments - */ - std::string algo_name_and_args() const; - - /** - * @return number of arguments - */ - size_t arg_count() const { return args.size(); } - - /** - * @param lower is the lower bound - * @param upper is the upper bound - * @return if the number of arguments is between lower and upper - */ - bool arg_count_between(size_t lower, size_t upper) const - { return ((arg_count() >= lower) && (arg_count() <= upper)); } - - /** - * @param i which argument - * @return ith argument - */ - std::string arg(size_t i) const; - - /** - * @param i which argument - * @param def_value the default value - * @return ith argument or the default value - */ - std::string arg(size_t i, const std::string& def_value) const; - - /** - * @param i which argument - * @param def_value the default value - * @return ith argument as an integer, or the default value - */ - size_t arg_as_integer(size_t i, size_t def_value) const; - - /** - * @return cipher mode (if any) - */ - std::string cipher_mode() const - { return (mode_info.size() >= 1) ? mode_info[0] : ""; } - - /** - * @return cipher mode padding (if any) - */ - std::string cipher_mode_pad() const - { return (mode_info.size() >= 2) ? mode_info[1] : ""; } - - private: - std::string orig_algo_spec; - std::string alg_name; - std::vector args; - std::vector mode_info; - }; - -} - -#endif diff --git a/src/botan/src/mac/hmac/hmac.cpp b/src/botan/src/mac/hmac/hmac.cpp deleted file mode 100644 index fc35e26ea..000000000 --- a/src/botan/src/mac/hmac/hmac.cpp +++ /dev/null @@ -1,96 +0,0 @@ -/* -* HMAC -* (C) 1999-2007 Jack Lloyd -* 2007 Yves Jerschow -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -namespace Botan { - -/* -* Update a HMAC Calculation -*/ -void HMAC::add_data(const byte input[], size_t length) - { - hash->update(input, length); - } - -/* -* Finalize a HMAC Calculation -*/ -void HMAC::final_result(byte mac[]) - { - hash->final(mac); - hash->update(o_key); - hash->update(mac, output_length()); - hash->final(mac); - hash->update(i_key); - } - -/* -* HMAC Key Schedule -*/ -void HMAC::key_schedule(const byte key[], size_t length) - { - hash->clear(); - std::fill(i_key.begin(), i_key.end(), 0x36); - std::fill(o_key.begin(), o_key.end(), 0x5C); - - if(length > hash->hash_block_size()) - { - SecureVector hmac_key = hash->process(key, length); - xor_buf(i_key, hmac_key, hmac_key.size()); - xor_buf(o_key, hmac_key, hmac_key.size()); - } - else - { - xor_buf(i_key, key, length); - xor_buf(o_key, key, length); - } - - hash->update(i_key); - } - -/* -* Clear memory of sensitive data -*/ -void HMAC::clear() - { - hash->clear(); - zeroise(i_key); - zeroise(o_key); - } - -/* -* Return the name of this type -*/ -std::string HMAC::name() const - { - return "HMAC(" + hash->name() + ")"; - } - -/* -* Return a clone of this object -*/ -MessageAuthenticationCode* HMAC::clone() const - { - return new HMAC(hash->clone()); - } - -/* -* HMAC Constructor -*/ -HMAC::HMAC(HashFunction* hash_in) : hash(hash_in) - { - if(hash->hash_block_size() == 0) - throw Invalid_Argument("HMAC cannot be used with " + hash->name()); - - i_key.resize(hash->hash_block_size()); - o_key.resize(hash->hash_block_size()); - } - -} diff --git a/src/botan/src/mac/hmac/hmac.h b/src/botan/src/mac/hmac/hmac.h deleted file mode 100644 index bc69f1952..000000000 --- a/src/botan/src/mac/hmac/hmac.h +++ /dev/null @@ -1,50 +0,0 @@ -/* -* HMAC -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_HMAC_H__ -#define BOTAN_HMAC_H__ - -#include -#include - -namespace Botan { - -/** -* HMAC -*/ -class BOTAN_DLL HMAC : public MessageAuthenticationCode - { - public: - void clear(); - std::string name() const; - MessageAuthenticationCode* clone() const; - - size_t output_length() const { return hash->output_length(); } - - Key_Length_Specification key_spec() const - { - // Absurd max length here is to support PBKDF2 - return Key_Length_Specification(0, 512); - } - - /** - * @param hash the hash to use for HMACing - */ - HMAC(HashFunction* hash); - ~HMAC() { delete hash; } - private: - void add_data(const byte[], size_t); - void final_result(byte[]); - void key_schedule(const byte[], size_t); - - HashFunction* hash; - SecureVector i_key, o_key; - }; - -} - -#endif diff --git a/src/botan/src/mac/hmac/info.txt b/src/botan/src/mac/hmac/info.txt deleted file mode 100644 index b1a69c25b..000000000 --- a/src/botan/src/mac/hmac/info.txt +++ /dev/null @@ -1,5 +0,0 @@ -define HMAC - - -hash - diff --git a/src/botan/src/mac/info.txt b/src/botan/src/mac/info.txt deleted file mode 100644 index d991577f7..000000000 --- a/src/botan/src/mac/info.txt +++ /dev/null @@ -1,3 +0,0 @@ - -algo_base - diff --git a/src/botan/src/mac/mac.cpp b/src/botan/src/mac/mac.cpp deleted file mode 100644 index 2ef4ab64c..000000000 --- a/src/botan/src/mac/mac.cpp +++ /dev/null @@ -1,26 +0,0 @@ -/* -* Message Authentication Code base class -* (C) 1999-2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -namespace Botan { - -/* -* Default (deterministic) MAC verification operation -*/ -bool MessageAuthenticationCode::verify_mac(const byte mac[], size_t length) - { - SecureVector our_mac = final(); - - if(our_mac.size() != length) - return false; - - return same_mem(&our_mac[0], &mac[0], length); - } - -} diff --git a/src/botan/src/mac/mac.h b/src/botan/src/mac/mac.h deleted file mode 100644 index d42092908..000000000 --- a/src/botan/src/mac/mac.h +++ /dev/null @@ -1,46 +0,0 @@ -/* -* Base class for message authentiction codes -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MESSAGE_AUTH_CODE_BASE_H__ -#define BOTAN_MESSAGE_AUTH_CODE_BASE_H__ - -#include -#include -#include - -namespace Botan { - -/** -* This class represents Message Authentication Code (MAC) objects. -*/ -class BOTAN_DLL MessageAuthenticationCode : public Buffered_Computation, - public SymmetricAlgorithm - { - public: - /** - * Verify a MAC. - * @param in the MAC to verify as a byte array - * @param length the length of param in - * @return true if the MAC is valid, false otherwise - */ - virtual bool verify_mac(const byte in[], size_t length); - - /** - * Get a new object representing the same algorithm as *this - */ - virtual MessageAuthenticationCode* clone() const = 0; - - /** - * Get the name of this algorithm. - * @return name of this algorithm - */ - virtual std::string name() const = 0; - }; - -} - -#endif diff --git a/src/botan/src/mac/ssl3mac/info.txt b/src/botan/src/mac/ssl3mac/info.txt deleted file mode 100644 index 8c636dbae..000000000 --- a/src/botan/src/mac/ssl3mac/info.txt +++ /dev/null @@ -1,5 +0,0 @@ -define SSL3_MAC - - -hash - diff --git a/src/botan/src/mac/ssl3mac/ssl3_mac.cpp b/src/botan/src/mac/ssl3mac/ssl3_mac.cpp deleted file mode 100644 index a07622eb3..000000000 --- a/src/botan/src/mac/ssl3mac/ssl3_mac.cpp +++ /dev/null @@ -1,88 +0,0 @@ -/* -* SSL3-MAC -* (C) 1999-2004 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include - -namespace Botan { - -/* -* Update a SSL3-MAC Calculation -*/ -void SSL3_MAC::add_data(const byte input[], size_t length) - { - hash->update(input, length); - } - -/* -* Finalize a SSL3-MAC Calculation -*/ -void SSL3_MAC::final_result(byte mac[]) - { - hash->final(mac); - hash->update(o_key); - hash->update(mac, output_length()); - hash->final(mac); - hash->update(i_key); - } - -/* -* SSL3-MAC Key Schedule -*/ -void SSL3_MAC::key_schedule(const byte key[], size_t length) - { - hash->clear(); - std::fill(i_key.begin(), i_key.end(), 0x36); - std::fill(o_key.begin(), o_key.end(), 0x5C); - - i_key.copy(key, length); - o_key.copy(key, length); - hash->update(i_key); - } - -/* -* Clear memory of sensitive data -*/ -void SSL3_MAC::clear() - { - hash->clear(); - zeroise(i_key); - zeroise(o_key); - } - -/* -* Return the name of this type -*/ -std::string SSL3_MAC::name() const - { - return "SSL3-MAC(" + hash->name() + ")"; - } - -/* -* Return a clone of this object -*/ -MessageAuthenticationCode* SSL3_MAC::clone() const - { - return new SSL3_MAC(hash->clone()); - } - -/* -* SSL3-MAC Constructor -*/ -SSL3_MAC::SSL3_MAC(HashFunction* hash_in) : hash(hash_in) - { - if(hash->hash_block_size() == 0) - throw Invalid_Argument("SSL3-MAC cannot be used with " + hash->name()); - - // Quirk to deal with specification bug - const size_t INNER_HASH_LENGTH = - (hash->name() == "SHA-160") ? 60 : hash->hash_block_size(); - - i_key.resize(INNER_HASH_LENGTH); - o_key.resize(INNER_HASH_LENGTH); - } - -} diff --git a/src/botan/src/mac/ssl3mac/ssl3_mac.h b/src/botan/src/mac/ssl3mac/ssl3_mac.h deleted file mode 100644 index a85a78263..000000000 --- a/src/botan/src/mac/ssl3mac/ssl3_mac.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -* SSL3-MAC -* (C) 1999-2004 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_SSL3_MAC_H__ -#define BOTAN_SSL3_MAC_H__ - -#include -#include - -namespace Botan { - -/** -* A MAC only used in SSLv3. Do not use elsewhere! Use HMAC instead. -*/ -class BOTAN_DLL SSL3_MAC : public MessageAuthenticationCode - { - public: - std::string name() const; - size_t output_length() const { return hash->output_length(); } - MessageAuthenticationCode* clone() const; - - void clear(); - - Key_Length_Specification key_spec() const - { - return Key_Length_Specification(hash->output_length()); - } - - /** - * @param hash the underlying hash to use - */ - SSL3_MAC(HashFunction* hash); - ~SSL3_MAC() { delete hash; } - private: - void add_data(const byte[], size_t); - void final_result(byte[]); - void key_schedule(const byte[], size_t); - - HashFunction* hash; - SecureVector i_key, o_key; - }; - -} - -#endif diff --git a/src/botan/src/math/bigint/big_code.cpp b/src/botan/src/math/bigint/big_code.cpp deleted file mode 100644 index 97e18ba5d..000000000 --- a/src/botan/src/math/bigint/big_code.cpp +++ /dev/null @@ -1,157 +0,0 @@ -/* -* BigInt Encoding/Decoding -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -namespace Botan { - -/* -* Encode a BigInt -*/ -void BigInt::encode(byte output[], const BigInt& n, Base base) - { - if(base == Binary) - n.binary_encode(output); - else if(base == Hexadecimal) - { - SecureVector binary(n.encoded_size(Binary)); - n.binary_encode(&binary[0]); - - hex_encode(reinterpret_cast(output), - &binary[0], binary.size()); - } - else if(base == Octal) - { - BigInt copy = n; - const size_t output_size = n.encoded_size(Octal); - for(size_t j = 0; j != output_size; ++j) - { - output[output_size - 1 - j] = - Charset::digit2char(static_cast(copy % 8)); - - copy /= 8; - } - } - else if(base == Decimal) - { - BigInt copy = n; - BigInt remainder; - copy.set_sign(Positive); - const size_t output_size = n.encoded_size(Decimal); - for(size_t j = 0; j != output_size; ++j) - { - divide(copy, 10, copy, remainder); - output[output_size - 1 - j] = - Charset::digit2char(static_cast(remainder.word_at(0))); - if(copy.is_zero()) - break; - } - } - else - throw Invalid_Argument("Unknown BigInt encoding method"); - } - -/* -* Encode a BigInt -*/ -SecureVector BigInt::encode(const BigInt& n, Base base) - { - SecureVector output(n.encoded_size(base)); - encode(&output[0], n, base); - if(base != Binary) - for(size_t j = 0; j != output.size(); ++j) - if(output[j] == 0) - output[j] = '0'; - return output; - } - -/* -* Encode a BigInt, with leading 0s if needed -*/ -SecureVector BigInt::encode_1363(const BigInt& n, size_t bytes) - { - const size_t n_bytes = n.bytes(); - if(n_bytes > bytes) - throw Encoding_Error("encode_1363: n is too large to encode properly"); - - const size_t leading_0s = bytes - n_bytes; - - SecureVector output(bytes); - encode(&output[leading_0s], n, Binary); - return output; - } - -/* -* Decode a BigInt -*/ -BigInt BigInt::decode(const MemoryRegion& buf, Base base) - { - return BigInt::decode(&buf[0], buf.size(), base); - } - -/* -* Decode a BigInt -*/ -BigInt BigInt::decode(const byte buf[], size_t length, Base base) - { - BigInt r; - if(base == Binary) - r.binary_decode(buf, length); - else if(base == Hexadecimal) - { - SecureVector binary; - - if(length % 2) - { - // Handle lack of leading 0 - const char buf0_with_leading_0[2] = { '0', static_cast(buf[0]) }; - binary = hex_decode(buf0_with_leading_0, 2); - - binary += hex_decode(reinterpret_cast(&buf[1]), - length - 1, - false); - } - else - binary = hex_decode(reinterpret_cast(buf), - length, false); - - r.binary_decode(&binary[0], binary.size()); - } - else if(base == Decimal || base == Octal) - { - const size_t RADIX = ((base == Decimal) ? 10 : 8); - for(size_t j = 0; j != length; ++j) - { - if(Charset::is_space(buf[j])) - continue; - - if(!Charset::is_digit(buf[j])) - throw Invalid_Argument("BigInt::decode: " - "Invalid character in decimal input"); - - byte x = Charset::char2digit(buf[j]); - if(x >= RADIX) - { - if(RADIX == 10) - throw Invalid_Argument("BigInt: Invalid decimal string"); - else - throw Invalid_Argument("BigInt: Invalid octal string"); - } - - r *= RADIX; - r += x; - } - } - else - throw Invalid_Argument("Unknown BigInt decoding method"); - return r; - } - -} diff --git a/src/botan/src/math/bigint/big_io.cpp b/src/botan/src/math/bigint/big_io.cpp deleted file mode 100644 index 70e4a464a..000000000 --- a/src/botan/src/math/bigint/big_io.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -* BigInt Input/Output -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -namespace Botan { - -/* -* Write the BigInt into a stream -*/ -std::ostream& operator<<(std::ostream& stream, const BigInt& n) - { - BigInt::Base base = BigInt::Decimal; - if(stream.flags() & std::ios::hex) - base = BigInt::Hexadecimal; - else if(stream.flags() & std::ios::oct) - base = BigInt::Octal; - - if(n == 0) - stream.write("0", 1); - else - { - if(n < 0) - stream.write("-", 1); - SecureVector buffer = BigInt::encode(n, base); - size_t skip = 0; - while(buffer[skip] == '0' && skip < buffer.size()) - ++skip; - stream.write(reinterpret_cast(&buffer[0]) + skip, - buffer.size() - skip); - } - if(!stream.good()) - throw Stream_IO_Error("BigInt output operator has failed"); - return stream; - } - -/* -* Read the BigInt from a stream -*/ -std::istream& operator>>(std::istream& stream, BigInt& n) - { - std::string str; - std::getline(stream, str); - if(stream.bad() || (stream.fail() && !stream.eof())) - throw Stream_IO_Error("BigInt input operator has failed"); - n = BigInt(str); - return stream; - } - -} diff --git a/src/botan/src/math/bigint/big_ops2.cpp b/src/botan/src/math/bigint/big_ops2.cpp deleted file mode 100644 index ff5cc7922..000000000 --- a/src/botan/src/math/bigint/big_ops2.cpp +++ /dev/null @@ -1,220 +0,0 @@ -/* -* BigInt Assignment Operators -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -namespace Botan { - -/* -* Addition Operator -*/ -BigInt& BigInt::operator+=(const BigInt& y) - { - const size_t x_sw = sig_words(), y_sw = y.sig_words(); - - const size_t reg_size = std::max(x_sw, y_sw) + 1; - grow_to(reg_size); - - if(sign() == y.sign()) - bigint_add2(get_reg(), reg_size - 1, y.data(), y_sw); - else - { - s32bit relative_size = bigint_cmp(data(), x_sw, y.data(), y_sw); - - if(relative_size < 0) - { - SecureVector z(reg_size - 1); - bigint_sub3(z, y.data(), reg_size - 1, data(), x_sw); - copy_mem(®[0], &z[0], z.size()); - set_sign(y.sign()); - } - else if(relative_size == 0) - { - zeroise(reg); - set_sign(Positive); - } - else if(relative_size > 0) - bigint_sub2(get_reg(), x_sw, y.data(), y_sw); - } - - return (*this); - } - -/* -* Subtraction Operator -*/ -BigInt& BigInt::operator-=(const BigInt& y) - { - const size_t x_sw = sig_words(), y_sw = y.sig_words(); - - s32bit relative_size = bigint_cmp(data(), x_sw, y.data(), y_sw); - - const size_t reg_size = std::max(x_sw, y_sw) + 1; - grow_to(reg_size); - - if(relative_size < 0) - { - if(sign() == y.sign()) - bigint_sub2_rev(get_reg(), y.data(), y_sw); - else - bigint_add2(get_reg(), reg_size - 1, y.data(), y_sw); - - set_sign(y.reverse_sign()); - } - else if(relative_size == 0) - { - if(sign() == y.sign()) - { - clear(); - set_sign(Positive); - } - else - bigint_shl1(get_reg(), x_sw, 0, 1); - } - else if(relative_size > 0) - { - if(sign() == y.sign()) - bigint_sub2(get_reg(), x_sw, y.data(), y_sw); - else - bigint_add2(get_reg(), reg_size - 1, y.data(), y_sw); - } - - return (*this); - } - -/* -* Multiplication Operator -*/ -BigInt& BigInt::operator*=(const BigInt& y) - { - const size_t x_sw = sig_words(), y_sw = y.sig_words(); - set_sign((sign() == y.sign()) ? Positive : Negative); - - if(x_sw == 0 || y_sw == 0) - { - clear(); - set_sign(Positive); - } - else if(x_sw == 1 && y_sw) - { - grow_to(y_sw + 2); - bigint_linmul3(get_reg(), y.data(), y_sw, word_at(0)); - } - else if(y_sw == 1 && x_sw) - { - grow_to(x_sw + 2); - bigint_linmul2(get_reg(), x_sw, y.word_at(0)); - } - else - { - grow_to(size() + y.size()); - - SecureVector z(data(), x_sw); - SecureVector workspace(size()); - - bigint_mul(get_reg(), size(), workspace, - z, z.size(), x_sw, - y.data(), y.size(), y_sw); - } - - return (*this); - } - -/* -* Division Operator -*/ -BigInt& BigInt::operator/=(const BigInt& y) - { - if(y.sig_words() == 1 && power_of_2(y.word_at(0))) - (*this) >>= (y.bits() - 1); - else - (*this) = (*this) / y; - return (*this); - } - -/* -* Modulo Operator -*/ -BigInt& BigInt::operator%=(const BigInt& mod) - { - return (*this = (*this) % mod); - } - -/* -* Modulo Operator -*/ -word BigInt::operator%=(word mod) - { - if(mod == 0) - throw BigInt::DivideByZero(); - if(power_of_2(mod)) - { - word result = (word_at(0) & (mod - 1)); - clear(); - grow_to(2); - get_reg()[0] = result; - return result; - } - - word remainder = 0; - - for(size_t j = sig_words(); j > 0; --j) - remainder = bigint_modop(remainder, word_at(j-1), mod); - clear(); - grow_to(2); - - if(remainder && sign() == BigInt::Negative) - get_reg()[0] = mod - remainder; - else - get_reg()[0] = remainder; - - set_sign(BigInt::Positive); - - return word_at(0); - } - -/* -* Left Shift Operator -*/ -BigInt& BigInt::operator<<=(size_t shift) - { - if(shift) - { - const size_t shift_words = shift / MP_WORD_BITS, - shift_bits = shift % MP_WORD_BITS, - words = sig_words(); - - grow_to(words + shift_words + (shift_bits ? 1 : 0)); - bigint_shl1(get_reg(), words, shift_words, shift_bits); - } - - return (*this); - } - -/* -* Right Shift Operator -*/ -BigInt& BigInt::operator>>=(size_t shift) - { - if(shift) - { - const size_t shift_words = shift / MP_WORD_BITS, - shift_bits = shift % MP_WORD_BITS; - - bigint_shr1(get_reg(), sig_words(), shift_words, shift_bits); - - if(is_zero()) - set_sign(Positive); - } - - return (*this); - } - -} diff --git a/src/botan/src/math/bigint/big_ops3.cpp b/src/botan/src/math/bigint/big_ops3.cpp deleted file mode 100644 index 52472bc52..000000000 --- a/src/botan/src/math/bigint/big_ops3.cpp +++ /dev/null @@ -1,190 +0,0 @@ -/* -* BigInt Binary Operators -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include - -namespace Botan { - -/* -* Addition Operator -*/ -BigInt operator+(const BigInt& x, const BigInt& y) - { - const size_t x_sw = x.sig_words(), y_sw = y.sig_words(); - - BigInt z(x.sign(), std::max(x_sw, y_sw) + 1); - - if((x.sign() == y.sign())) - bigint_add3(z.get_reg(), x.data(), x_sw, y.data(), y_sw); - else - { - s32bit relative_size = bigint_cmp(x.data(), x_sw, y.data(), y_sw); - - if(relative_size < 0) - { - bigint_sub3(z.get_reg(), y.data(), y_sw, x.data(), x_sw); - z.set_sign(y.sign()); - } - else if(relative_size == 0) - z.set_sign(BigInt::Positive); - else if(relative_size > 0) - bigint_sub3(z.get_reg(), x.data(), x_sw, y.data(), y_sw); - } - - return z; - } - -/* -* Subtraction Operator -*/ -BigInt operator-(const BigInt& x, const BigInt& y) - { - const size_t x_sw = x.sig_words(), y_sw = y.sig_words(); - - s32bit relative_size = bigint_cmp(x.data(), x_sw, y.data(), y_sw); - - BigInt z(BigInt::Positive, std::max(x_sw, y_sw) + 1); - - if(relative_size < 0) - { - if(x.sign() == y.sign()) - bigint_sub3(z.get_reg(), y.data(), y_sw, x.data(), x_sw); - else - bigint_add3(z.get_reg(), x.data(), x_sw, y.data(), y_sw); - z.set_sign(y.reverse_sign()); - } - else if(relative_size == 0) - { - if(x.sign() != y.sign()) - bigint_shl2(z.get_reg(), x.data(), x_sw, 0, 1); - } - else if(relative_size > 0) - { - if(x.sign() == y.sign()) - bigint_sub3(z.get_reg(), x.data(), x_sw, y.data(), y_sw); - else - bigint_add3(z.get_reg(), x.data(), x_sw, y.data(), y_sw); - z.set_sign(x.sign()); - } - return z; - } - -/* -* Multiplication Operator -*/ -BigInt operator*(const BigInt& x, const BigInt& y) - { - const size_t x_sw = x.sig_words(), y_sw = y.sig_words(); - - BigInt z(BigInt::Positive, x.size() + y.size()); - - if(x_sw == 1 && y_sw) - bigint_linmul3(z.get_reg(), y.data(), y_sw, x.word_at(0)); - else if(y_sw == 1 && x_sw) - bigint_linmul3(z.get_reg(), x.data(), x_sw, y.word_at(0)); - else if(x_sw && y_sw) - { - SecureVector workspace(z.size()); - bigint_mul(z.get_reg(), z.size(), workspace, - x.data(), x.size(), x_sw, - y.data(), y.size(), y_sw); - } - - if(x_sw && y_sw && x.sign() != y.sign()) - z.flip_sign(); - return z; - } - -/* -* Division Operator -*/ -BigInt operator/(const BigInt& x, const BigInt& y) - { - BigInt q, r; - divide(x, y, q, r); - return q; - } - -/* -* Modulo Operator -*/ -BigInt operator%(const BigInt& n, const BigInt& mod) - { - if(mod.is_zero()) - throw BigInt::DivideByZero(); - if(mod.is_negative()) - throw Invalid_Argument("BigInt::operator%: modulus must be > 0"); - if(n.is_positive() && mod.is_positive() && n < mod) - return n; - - BigInt q, r; - divide(n, mod, q, r); - return r; - } - -/* -* Modulo Operator -*/ -word operator%(const BigInt& n, word mod) - { - if(mod == 0) - throw BigInt::DivideByZero(); - if(power_of_2(mod)) - return (n.word_at(0) & (mod - 1)); - - word remainder = 0; - - for(size_t j = n.sig_words(); j > 0; --j) - remainder = bigint_modop(remainder, n.word_at(j-1), mod); - - if(remainder && n.sign() == BigInt::Negative) - return mod - remainder; - return remainder; - } - -/* -* Left Shift Operator -*/ -BigInt operator<<(const BigInt& x, size_t shift) - { - if(shift == 0) - return x; - - const size_t shift_words = shift / MP_WORD_BITS, - shift_bits = shift % MP_WORD_BITS; - - const size_t x_sw = x.sig_words(); - - BigInt y(x.sign(), x_sw + shift_words + (shift_bits ? 1 : 0)); - bigint_shl2(y.get_reg(), x.data(), x_sw, shift_words, shift_bits); - return y; - } - -/* -* Right Shift Operator -*/ -BigInt operator>>(const BigInt& x, size_t shift) - { - if(shift == 0) - return x; - if(x.bits() <= shift) - return 0; - - const size_t shift_words = shift / MP_WORD_BITS, - shift_bits = shift % MP_WORD_BITS, - x_sw = x.sig_words(); - - BigInt y(x.sign(), x_sw - shift_words); - bigint_shr2(y.get_reg(), x.data(), x_sw, shift_words, shift_bits); - return y; - } - -} diff --git a/src/botan/src/math/bigint/big_rand.cpp b/src/botan/src/math/bigint/big_rand.cpp deleted file mode 100644 index 7cddb2de0..000000000 --- a/src/botan/src/math/bigint/big_rand.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/* -* BigInt Random Generation -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -namespace Botan { - -/* -* Construct a BigInt of a specific form -*/ -BigInt::BigInt(NumberType type, size_t bits) - { - set_sign(Positive); - - if(type == Power2) - set_bit(bits); - else - throw Invalid_Argument("BigInt(NumberType): Unknown type"); - } - -/* -* Randomize this number -*/ -void BigInt::randomize(RandomNumberGenerator& rng, - size_t bitsize) - { - set_sign(Positive); - - if(bitsize == 0) - clear(); - else - { - SecureVector array = rng.random_vec((bitsize + 7) / 8); - - if(bitsize % 8) - array[0] &= 0xFF >> (8 - (bitsize % 8)); - array[0] |= 0x80 >> ((bitsize % 8) ? (8 - bitsize % 8) : 0); - binary_decode(&array[0], array.size()); - } - } - -/* -* Generate a random integer within given range -*/ -BigInt BigInt::random_integer(RandomNumberGenerator& rng, - const BigInt& min, const BigInt& max) - { - BigInt range = max - min; - - if(range <= 0) - throw Invalid_Argument("random_integer: invalid min/max values"); - - return (min + (BigInt(rng, range.bits() + 2) % range)); - } - -} diff --git a/src/botan/src/math/bigint/bigint.cpp b/src/botan/src/math/bigint/bigint.cpp deleted file mode 100644 index e2e062f2d..000000000 --- a/src/botan/src/math/bigint/bigint.cpp +++ /dev/null @@ -1,376 +0,0 @@ -/* -* BigInt Base -* (C) 1999-2011 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include - -namespace Botan { - -/* -* Construct a BigInt from a regular number -*/ -BigInt::BigInt(u64bit n) - { - set_sign(Positive); - - if(n == 0) - return; - - const size_t limbs_needed = sizeof(u64bit) / sizeof(word); - - reg.resize(4*limbs_needed); - for(size_t i = 0; i != limbs_needed; ++i) - reg[i] = ((n >> (i*MP_WORD_BITS)) & MP_WORD_MASK); - } - -/* -* Construct a BigInt of the specified size -*/ -BigInt::BigInt(Sign s, size_t size) - { - reg.resize(round_up(size, 8)); - signedness = s; - } - -/* -* Construct a BigInt from a "raw" BigInt -*/ -BigInt::BigInt(const BigInt& b) - { - const size_t b_words = b.sig_words(); - - if(b_words) - { - reg.resize(round_up(b_words, 8)); - reg.copy(b.data(), b_words); - set_sign(b.sign()); - } - else - { - reg.resize(2); - set_sign(Positive); - } - } - -/* -* Construct a BigInt from a string -*/ -BigInt::BigInt(const std::string& str) - { - Base base = Decimal; - size_t markers = 0; - bool negative = false; - if(str.length() > 0 && str[0] == '-') { markers += 1; negative = true; } - - if(str.length() > markers + 2 && str[markers ] == '0' && - str[markers + 1] == 'x') - { markers += 2; base = Hexadecimal; } - else if(str.length() > markers + 1 && str[markers] == '0') - { markers += 1; base = Octal; } - - *this = decode(reinterpret_cast(str.data()) + markers, - str.length() - markers, base); - - if(negative) set_sign(Negative); - else set_sign(Positive); - } - -/* -* Construct a BigInt from an encoded BigInt -*/ -BigInt::BigInt(const byte input[], size_t length, Base base) - { - set_sign(Positive); - *this = decode(input, length, base); - } - -/* -* Construct a BigInt from an encoded BigInt -*/ -BigInt::BigInt(RandomNumberGenerator& rng, size_t bits) - { - set_sign(Positive); - randomize(rng, bits); - } - -/* -* Swap this BigInt with another -*/ -void BigInt::swap(BigInt& other) - { - reg.swap(other.reg); - std::swap(signedness, other.signedness); - } - -/* -* Grow the internal storage -*/ -void BigInt::grow_reg(size_t n) - { - reg.resize(round_up(size() + n, 8)); - } - -/* -* Grow the internal storage -*/ -void BigInt::grow_to(size_t n) - { - if(n > size()) - reg.resize(round_up(n, 8)); - } - -/* -* Comparison Function -*/ -s32bit BigInt::cmp(const BigInt& n, bool check_signs) const - { - if(check_signs) - { - if(n.is_positive() && this->is_negative()) return -1; - if(n.is_negative() && this->is_positive()) return 1; - if(n.is_negative() && this->is_negative()) - return (-bigint_cmp(data(), sig_words(), n.data(), n.sig_words())); - } - return bigint_cmp(data(), sig_words(), n.data(), n.sig_words()); - } - -/* -* Return byte n of this number -*/ -byte BigInt::byte_at(size_t n) const - { - const size_t WORD_BYTES = sizeof(word); - size_t word_num = n / WORD_BYTES, byte_num = n % WORD_BYTES; - if(word_num >= size()) - return 0; - else - return get_byte(WORD_BYTES - byte_num - 1, reg[word_num]); - } - -/* -* Return bit n of this number -*/ -bool BigInt::get_bit(size_t n) const - { - return ((word_at(n / MP_WORD_BITS) >> (n % MP_WORD_BITS)) & 1); - } - -/* -* Return bits {offset...offset+length} -*/ -u32bit BigInt::get_substring(size_t offset, size_t length) const - { - if(length > 32) - throw Invalid_Argument("BigInt::get_substring: Substring size too big"); - - u64bit piece = 0; - for(size_t i = 0; i != 8; ++i) - { - const byte part = byte_at((offset / 8) + (7-i)); - piece = (piece << 8) | part; - } - - const u64bit mask = (static_cast(1) << length) - 1; - const size_t shift = (offset % 8); - - return static_cast((piece >> shift) & mask); - } - -/* -* Convert this number to a u32bit, if possible -*/ -u32bit BigInt::to_u32bit() const - { - if(is_negative()) - throw Encoding_Error("BigInt::to_u32bit: Number is negative"); - if(bits() >= 32) - throw Encoding_Error("BigInt::to_u32bit: Number is too big to convert"); - - u32bit out = 0; - for(u32bit j = 0; j != 4; ++j) - out = (out << 8) | byte_at(3-j); - return out; - } - -/* -* Set bit number n -*/ -void BigInt::set_bit(size_t n) - { - const size_t which = n / MP_WORD_BITS; - const word mask = static_cast(1) << (n % MP_WORD_BITS); - if(which >= size()) grow_to(which + 1); - reg[which] |= mask; - } - -/* -* Clear bit number n -*/ -void BigInt::clear_bit(size_t n) - { - const size_t which = n / MP_WORD_BITS; - const word mask = static_cast(1) << (n % MP_WORD_BITS); - if(which < size()) - reg[which] &= ~mask; - } - -/* -* Clear all but the lowest n bits -*/ -void BigInt::mask_bits(size_t n) - { - if(n == 0) { clear(); return; } - if(n >= bits()) return; - - const size_t top_word = n / MP_WORD_BITS; - const word mask = (static_cast(1) << (n % MP_WORD_BITS)) - 1; - - if(top_word < size()) - for(size_t i = top_word + 1; i != size(); ++i) - reg[i] = 0; - - reg[top_word] &= mask; - } - -/* -* Count how many bytes are being used -*/ -size_t BigInt::bytes() const - { - return (bits() + 7) / 8; - } - -/* -* Count how many bits are being used -*/ -size_t BigInt::bits() const - { - const size_t words = sig_words(); - - if(words == 0) - return 0; - - size_t full_words = words - 1, top_bits = MP_WORD_BITS; - word top_word = word_at(full_words), mask = MP_WORD_TOP_BIT; - - while(top_bits && ((top_word & mask) == 0)) - { mask >>= 1; top_bits--; } - - return (full_words * MP_WORD_BITS + top_bits); - } - -/* -* Calcluate the size in a certain base -*/ -size_t BigInt::encoded_size(Base base) const - { - static const double LOG_2_BASE_10 = 0.30102999566; - - if(base == Binary) - return bytes(); - else if(base == Hexadecimal) - return 2*bytes(); - else if(base == Octal) - return ((bits() + 2) / 3); - else if(base == Decimal) - return static_cast((bits() * LOG_2_BASE_10) + 1); - else - throw Invalid_Argument("Unknown base for BigInt encoding"); - } - -/* -* Set the sign -*/ -void BigInt::set_sign(Sign s) - { - if(is_zero()) - signedness = Positive; - else - signedness = s; - } - -/* -* Reverse the value of the sign flag -*/ -void BigInt::flip_sign() - { - set_sign(reverse_sign()); - } - -/* -* Return the opposite value of the current sign -*/ -BigInt::Sign BigInt::reverse_sign() const - { - if(sign() == Positive) - return Negative; - return Positive; - } - -/* -* Return the negation of this number -*/ -BigInt BigInt::operator-() const - { - BigInt x = (*this); - x.flip_sign(); - return x; - } - -/* -* Return the absolute value of this number -*/ -BigInt BigInt::abs() const - { - BigInt x = (*this); - x.set_sign(Positive); - return x; - } - -/* -* Encode this number into bytes -*/ -void BigInt::binary_encode(byte output[]) const - { - const size_t sig_bytes = bytes(); - for(size_t i = 0; i != sig_bytes; ++i) - output[sig_bytes-i-1] = byte_at(i); - } - -/* -* Set this number to the value in buf -*/ -void BigInt::binary_decode(const byte buf[], size_t length) - { - const size_t WORD_BYTES = sizeof(word); - - clear(); - reg.resize(round_up((length / WORD_BYTES) + 1, 8)); - - for(size_t i = 0; i != length / WORD_BYTES; ++i) - { - const size_t top = length - WORD_BYTES*i; - for(size_t j = WORD_BYTES; j > 0; --j) - reg[i] = (reg[i] << 8) | buf[top - j]; - } - - for(size_t i = 0; i != length % WORD_BYTES; ++i) - reg[length / WORD_BYTES] = (reg[length / WORD_BYTES] << 8) | buf[i]; - } - -/* -* Set this number to the value in buf -*/ -void BigInt::binary_decode(const MemoryRegion& buf) - { - binary_decode(buf, buf.size()); - } - -} diff --git a/src/botan/src/math/bigint/bigint.h b/src/botan/src/math/bigint/bigint.h deleted file mode 100644 index 87c7cb766..000000000 --- a/src/botan/src/math/bigint/bigint.h +++ /dev/null @@ -1,554 +0,0 @@ -/* -* BigInt -* (C) 1999-2008 Jack Lloyd -* 2007 FlexSecure -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_BIGINT_H__ -#define BOTAN_BIGINT_H__ - -#include -#include -#include -#include - -namespace Botan { - -/** -* Arbitrary precision integer -*/ -class BOTAN_DLL BigInt - { - public: - /** - * Base enumerator for encoding and decoding - */ - enum Base { Octal = 8, Decimal = 10, Hexadecimal = 16, Binary = 256 }; - - /** - * Sign symbol definitions for positive and negative numbers - */ - enum Sign { Negative = 0, Positive = 1 }; - - /** - * Number types (currently only power-of-2 supported) - */ - enum NumberType { Power2 }; - - /** - * DivideByZero Exception - */ - struct BOTAN_DLL DivideByZero : public Exception - { DivideByZero() : Exception("BigInt divide by zero") {} }; - - /** - * += operator - * @param y the BigInt to add to this - */ - BigInt& operator+=(const BigInt& y); - - /** - * -= operator - * @param y the BigInt to subtract from this - */ - BigInt& operator-=(const BigInt& y); - - /** - * *= operator - * @param y the BigInt to multiply with this - */ - BigInt& operator*=(const BigInt& y); - - /** - * /= operator - * @param y the BigInt to divide this by - */ - BigInt& operator/=(const BigInt& y); - - /** - * Modulo operator - * @param y the modulus to reduce this by - */ - BigInt& operator%=(const BigInt& y); - - /** - * Modulo operator - * @param y the modulus (word) to reduce this by - */ - word operator%=(word y); - - /** - * Left shift operator - * @param shift the number of bits to shift this left by - */ - BigInt& operator<<=(size_t shift); - - /** - * Right shift operator - * @param shift the number of bits to shift this right by - */ - BigInt& operator>>=(size_t shift); - - /** - * Increment operator - */ - BigInt& operator++() { return (*this += 1); } - - /** - * Decrement operator - */ - BigInt& operator--() { return (*this -= 1); } - - /** - * Postfix increment operator - */ - BigInt operator++(int) { BigInt x = (*this); ++(*this); return x; } - - /** - * Postfix decrement operator - */ - BigInt operator--(int) { BigInt x = (*this); --(*this); return x; } - - /** - * Unary negation operator - * @return negative this - */ - BigInt operator-() const; - - /** - * ! operator - * @return true iff this is zero, otherwise false - */ - bool operator !() const { return (!is_nonzero()); } - - /** - * [] operator (array access) - * @param i a word index - * @return the word at index i - */ - word& operator[](size_t i) { return reg[i]; } - - /** - * [] operator (array access) - * @param i a word index - * @return the word at index i - */ - const word& operator[](size_t i) const { return reg[i]; } - - /** - * Zeroize the BigInt - */ - void clear() { zeroise(reg); } - - /** - * Compare this to another BigInt - * @param n the BigInt value to compare with - * @param check_signs include sign in comparison? - * @result if (thisn) return 1, if both - * values are identical return 0 [like Perl's <=> operator] - */ - s32bit cmp(const BigInt& n, bool check_signs = true) const; - - /** - * Test if the integer has an even value - * @result true if the integer is even, false otherwise - */ - bool is_even() const { return (get_bit(0) == 0); } - - /** - * Test if the integer has an odd value - * @result true if the integer is odd, false otherwise - */ - bool is_odd() const { return (get_bit(0) == 1); } - - /** - * Test if the integer is not zero - * @result true if the integer is non-zero, false otherwise - */ - bool is_nonzero() const { return (!is_zero()); } - - /** - * Test if the integer is zero - * @result true if the integer is zero, false otherwise - */ - bool is_zero() const - { - const size_t sw = sig_words(); - - for(size_t i = 0; i != sw; ++i) - if(reg[i]) - return false; - return true; - } - - /** - * Set bit at specified position - * @param n bit position to set - */ - void set_bit(size_t n); - - /** - * Clear bit at specified position - * @param n bit position to clear - */ - void clear_bit(size_t n); - - /** - * Clear all but the lowest n bits - * @param n amount of bits to keep - */ - void mask_bits(size_t n); - - /** - * Return bit value at specified position - * @param n the bit offset to test - * @result true, if the bit at position n is set, false otherwise - */ - bool get_bit(size_t n) const; - - /** - * Return (a maximum of) 32 bits of the complete value - * @param offset the offset to start extracting - * @param length amount of bits to extract (starting at offset) - * @result the integer extracted from the register starting at - * offset with specified length - */ - u32bit get_substring(size_t offset, size_t length) const; - - /** - * Convert this value into a u32bit, if it is in the range - * [0 ... 2**32-1], or otherwise throw an exception. - * @result the value as a u32bit if conversion is possible - */ - u32bit to_u32bit() const; - - /** - * @param n the offset to get a byte from - * @result byte at offset n - */ - byte byte_at(size_t n) const; - - /** - * Return the word at a specified position of the internal register - * @param n position in the register - * @return value at position n - */ - word word_at(size_t n) const - { return ((n < size()) ? reg[n] : 0); } - - /** - * Tests if the sign of the integer is negative - * @result true, iff the integer has a negative sign - */ - bool is_negative() const { return (sign() == Negative); } - - /** - * Tests if the sign of the integer is positive - * @result true, iff the integer has a positive sign - */ - bool is_positive() const { return (sign() == Positive); } - - /** - * Return the sign of the integer - * @result the sign of the integer - */ - Sign sign() const { return (signedness); } - - /** - * @result the opposite sign of the represented integer value - */ - Sign reverse_sign() const; - - /** - * Flip the sign of this BigInt - */ - void flip_sign(); - - /** - * Set sign of the integer - * @param sign new Sign to set - */ - void set_sign(Sign sign); - - /** - * @result absolute (positive) value of this - */ - BigInt abs() const; - - /** - * Give size of internal register - * @result size of internal register in words - */ - size_t size() const { return get_reg().size(); } - - /** - * Return how many words we need to hold this value - * @result significant words of the represented integer value - */ - size_t sig_words() const - { - const word* x = ®[0]; - size_t sig = reg.size(); - - while(sig && (x[sig-1] == 0)) - sig--; - return sig; - } - - /** - * Give byte length of the integer - * @result byte length of the represented integer value - */ - size_t bytes() const; - - /** - * Get the bit length of the integer - * @result bit length of the represented integer value - */ - size_t bits() const; - - /** - * Return a pointer to the big integer word register - * @result a pointer to the start of the internal register of - * the integer value - */ - const word* data() const { return ®[0]; } - - /** - * return a reference to the internal register containing the value - * @result a reference to the word-array (SecureVector) - * with the internal register value (containing the integer - * value) - */ - SecureVector& get_reg() { return reg; } - - /** - * return a const reference to the internal register containing the value - * @result a const reference to the word-array (SecureVector) - * with the internal register value (containing the integer value) - */ - const SecureVector& get_reg() const { return reg; } - - /** - * Assign using a plain word array - */ - void assign(const word x[], size_t length) - { - reg.resize(length); - copy_mem(®[0], x, length); - } - - /** - * Increase internal register buffer by n words - * @param n increase by n words - */ - void grow_reg(size_t n); - - void grow_to(size_t n); - - /** - * Fill BigInt with a random number with size of bitsize - * @param rng the random number generator to use - * @param bitsize number of bits the created random value should have - */ - void randomize(RandomNumberGenerator& rng, size_t bitsize = 0); - - /** - * Store BigInt-value in a given byte array - * @param buf destination byte array for the integer value - */ - void binary_encode(byte buf[]) const; - - /** - * Read integer value from a byte array with given size - * @param buf byte array buffer containing the integer - * @param length size of buf - */ - void binary_decode(const byte buf[], size_t length); - - /** - * Read integer value from a byte array (MemoryRegion) - * @param buf the array to load from - */ - void binary_decode(const MemoryRegion& buf); - - /** - * @param base the base to measure the size for - * @return size of this integer in base base - */ - size_t encoded_size(Base base = Binary) const; - - /** - * @param rng a random number generator - * @param min the minimum value - * @param max the maximum value - * @return random integer between min and max - */ - static BigInt random_integer(RandomNumberGenerator& rng, - const BigInt& min, - const BigInt& max); - - /** - * Encode the integer value from a BigInt to a SecureVector of bytes - * @param n the BigInt to use as integer source - * @param base number-base of resulting byte array representation - * @result SecureVector of bytes containing the integer with given base - */ - static SecureVector encode(const BigInt& n, Base base = Binary); - - /** - * Encode the integer value from a BigInt to a byte array - * @param buf destination byte array for the encoded integer - * value with given base - * @param n the BigInt to use as integer source - * @param base number-base of resulting byte array representation - */ - static void encode(byte buf[], const BigInt& n, Base base = Binary); - - /** - * Create a BigInt from an integer in a byte array - * @param buf the binary value to load - * @param length size of buf - * @param base number-base of the integer in buf - * @result BigInt representing the integer in the byte array - */ - static BigInt decode(const byte buf[], size_t length, - Base base = Binary); - - /** - * Create a BigInt from an integer in a byte array - * @param buf the binary value to load - * @param base number-base of the integer in buf - * @result BigInt representing the integer in the byte array - */ - static BigInt decode(const MemoryRegion& buf, - Base base = Binary); - - /** - * Encode a BigInt to a byte array according to IEEE 1363 - * @param n the BigInt to encode - * @param bytes the length of the resulting SecureVector - * @result a SecureVector containing the encoded BigInt - */ - static SecureVector encode_1363(const BigInt& n, size_t bytes); - - /** - * Swap this value with another - * @param other BigInt to swap values with - */ - void swap(BigInt& other); - - /** - * Create empty BigInt - */ - BigInt() { signedness = Positive; } - - /** - * Create BigInt from 64 bit integer - * @param n initial value of this BigInt - */ - BigInt(u64bit n); - - /** - * Copy Constructor - * @param other the BigInt to copy - */ - BigInt(const BigInt& other); - - /** - * Create BigInt from a string. If the string starts with 0x the - * rest of the string will be interpreted as hexadecimal digits. - * If the string starts with 0 and the second character is NOT an - * 'x' the string will be interpreted as octal digits. If the - * string starts with non-zero digit, it will be interpreted as a - * decimal number. - * - * @param str the string to parse for an integer value - */ - BigInt(const std::string& str); - - /** - * Create a BigInt from an integer in a byte array - * @param buf the byte array holding the value - * @param length size of buf - * @param base is the number base of the integer in buf - */ - BigInt(const byte buf[], size_t length, Base base = Binary); - - /** - * Create a random BigInt of the specified size - * @param rng random number generator - * @param bits size in bits - */ - BigInt(RandomNumberGenerator& rng, size_t bits); - - /** - * Create BigInt of specified size, all zeros - * @param sign the sign - * @param n size of the internal register in words - */ - BigInt(Sign sign, size_t n); - - /** - * Create a number of the specified type and size - * @param type the type of number to create. For Power2, - * will create the integer 2^n - * @param n a size/length parameter, interpretation depends upon - * the value of type - */ - BigInt(NumberType type, size_t n); - - private: - SecureVector reg; - Sign signedness; - }; - -/* -* Arithmetic Operators -*/ -BigInt BOTAN_DLL operator+(const BigInt& x, const BigInt& y); -BigInt BOTAN_DLL operator-(const BigInt& x, const BigInt& y); -BigInt BOTAN_DLL operator*(const BigInt& x, const BigInt& y); -BigInt BOTAN_DLL operator/(const BigInt& x, const BigInt& d); -BigInt BOTAN_DLL operator%(const BigInt& x, const BigInt& m); -word BOTAN_DLL operator%(const BigInt& x, word m); -BigInt BOTAN_DLL operator<<(const BigInt& x, size_t n); -BigInt BOTAN_DLL operator>>(const BigInt& x, size_t n); - -/* -* Comparison Operators -*/ -inline bool operator==(const BigInt& a, const BigInt& b) - { return (a.cmp(b) == 0); } -inline bool operator!=(const BigInt& a, const BigInt& b) - { return (a.cmp(b) != 0); } -inline bool operator<=(const BigInt& a, const BigInt& b) - { return (a.cmp(b) <= 0); } -inline bool operator>=(const BigInt& a, const BigInt& b) - { return (a.cmp(b) >= 0); } -inline bool operator<(const BigInt& a, const BigInt& b) - { return (a.cmp(b) < 0); } -inline bool operator>(const BigInt& a, const BigInt& b) - { return (a.cmp(b) > 0); } - -/* -* I/O Operators -*/ -BOTAN_DLL std::ostream& operator<<(std::ostream&, const BigInt&); -BOTAN_DLL std::istream& operator>>(std::istream&, BigInt&); - -} - -namespace std { - -template<> -inline void swap(Botan::BigInt& x, Botan::BigInt& y) - { - x.swap(y); - } - -} - -#endif diff --git a/src/botan/src/math/bigint/divide.cpp b/src/botan/src/math/bigint/divide.cpp deleted file mode 100644 index ba84aa7d9..000000000 --- a/src/botan/src/math/bigint/divide.cpp +++ /dev/null @@ -1,109 +0,0 @@ -/* -* Division Algorithm -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -namespace Botan { - -namespace { - -/* -* Handle signed operands, if necessary -*/ -void sign_fixup(const BigInt& x, const BigInt& y, BigInt& q, BigInt& r) - { - if(x.sign() == BigInt::Negative) - { - q.flip_sign(); - if(r.is_nonzero()) { --q; r = y.abs() - r; } - } - if(y.sign() == BigInt::Negative) - q.flip_sign(); - } - -} - -/* -* Solve x = q * y + r -*/ -void divide(const BigInt& x, const BigInt& y_arg, BigInt& q, BigInt& r) - { - if(y_arg.is_zero()) - throw BigInt::DivideByZero(); - - BigInt y = y_arg; - const size_t y_words = y.sig_words(); - - r = x; - q = 0; - - r.set_sign(BigInt::Positive); - y.set_sign(BigInt::Positive); - - s32bit compare = r.cmp(y); - - if(compare == 0) - { - q = 1; - r = 0; - } - else if(compare > 0) - { - size_t shifts = 0; - word y_top = y[y.sig_words()-1]; - while(y_top < MP_WORD_TOP_BIT) { y_top <<= 1; ++shifts; } - y <<= shifts; - r <<= shifts; - - const size_t n = r.sig_words() - 1, t = y_words - 1; - - if(n < t) - throw Internal_Error("BigInt division word sizes"); - - q.get_reg().resize(n - t + 1); - if(n <= t) - { - while(r > y) { r -= y; ++q; } - r >>= shifts; - sign_fixup(x, y_arg, q, r); - return; - } - - BigInt temp = y << (MP_WORD_BITS * (n-t)); - - while(r >= temp) { r -= temp; ++q[n-t]; } - - for(size_t j = n; j != t; --j) - { - const word x_j0 = r.word_at(j); - const word x_j1 = r.word_at(j-1); - const word y_t = y.word_at(t); - - if(x_j0 == y_t) - q[j-t-1] = MP_WORD_MAX; - else - q[j-t-1] = bigint_divop(x_j0, x_j1, y_t); - - while(bigint_divcore(q[j-t-1], y_t, y.word_at(t-1), - x_j0, x_j1, r.word_at(j-2))) - --q[j-t-1]; - - r -= (q[j-t-1] * y) << (MP_WORD_BITS * (j-t-1)); - if(r.is_negative()) - { - r += y << (MP_WORD_BITS * (j-t-1)); - --q[j-t-1]; - } - } - r >>= shifts; - } - - sign_fixup(x, y_arg, q, r); - } - -} diff --git a/src/botan/src/math/bigint/divide.h b/src/botan/src/math/bigint/divide.h deleted file mode 100644 index 36aed7854..000000000 --- a/src/botan/src/math/bigint/divide.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -* Division -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_DIVISON_ALGORITHM_H__ -#define BOTAN_DIVISON_ALGORITHM_H__ - -#include - -namespace Botan { - -/** -* BigInt Division -* @param x an integer -* @param y a non-zero integer -* @param q will be set to x / y -* @param r will be set to x % y -*/ -void BOTAN_DLL divide(const BigInt& x, - const BigInt& y, - BigInt& q, - BigInt& r); - -} - -#endif diff --git a/src/botan/src/math/bigint/info.txt b/src/botan/src/math/bigint/info.txt deleted file mode 100644 index 6057c708e..000000000 --- a/src/botan/src/math/bigint/info.txt +++ /dev/null @@ -1,25 +0,0 @@ -load_on auto - -define BIGINT - - -bigint.h -divide.h - - - -big_code.cpp -big_io.cpp -big_ops2.cpp -big_ops3.cpp -big_rand.cpp -bigint.cpp -divide.cpp - - - -alloc -mp -hex -rng - diff --git a/src/botan/src/math/ec_gfp/curve_gfp.h b/src/botan/src/math/ec_gfp/curve_gfp.h deleted file mode 100644 index 7ac761ab9..000000000 --- a/src/botan/src/math/ec_gfp/curve_gfp.h +++ /dev/null @@ -1,160 +0,0 @@ -/* -* Elliptic curves over GF(p) -* -* (C) 2007 Martin Doering, Christoph Ludwig, Falko Strenzke -* 2010-2011 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_GFP_CURVE_H__ -#define BOTAN_GFP_CURVE_H__ - -#include - -namespace Botan { - -/** -* This class represents an elliptic curve over GF(p) -*/ -class BOTAN_DLL CurveGFp - { - public: - - /** - * Create an uninitialized CurveGFp - */ - CurveGFp() : p_words(0), p_dash(0) {} - - /** - * Construct the elliptic curve E: y^2 = x^3 + ax + b over GF(p) - * @param p prime number of the field - * @param a first coefficient - * @param b second coefficient - */ - CurveGFp(const BigInt& p, const BigInt& a, const BigInt& b) : - p(p), a(a), b(b), p_words(p.sig_words()) - { - BigInt r(BigInt::Power2, p_words * BOTAN_MP_WORD_BITS); - - p_dash = (((r * inverse_mod(r, p)) - 1) / p).word_at(0); - - r2 = (r * r) % p; - a_r = (a * r) % p; - b_r = (b * r) % p; - } - - // CurveGFp(const CurveGFp& other) = default; - // CurveGFp& operator=(const CurveGFp& other) = default; - - /** - * @return curve coefficient a - */ - const BigInt& get_a() const { return a; } - - /** - * @return curve coefficient b - */ - const BigInt& get_b() const { return b; } - - /** - * Get prime modulus of the field of the curve - * @return prime modulus of the field of the curve - */ - const BigInt& get_p() const { return p; } - - /** - * @return Montgomery parameter r^2 % p - */ - const BigInt& get_r2() const { return r2; } - - /** - * @return a * r mod p - */ - const BigInt& get_a_r() const { return a_r; } - - /** - * @return b * r mod p - */ - const BigInt& get_b_r() const { return b_r; } - - /** - * @return Montgomery parameter p-dash - */ - word get_p_dash() const { return p_dash; } - - /** - * @return p.sig_words() - */ - size_t get_p_words() const { return p_words; } - - /** - * swaps the states of *this and other, does not throw - * @param other curve to swap values with - */ - void swap(CurveGFp& other) - { - std::swap(p, other.p); - - std::swap(a, other.a); - std::swap(b, other.b); - - std::swap(a_r, other.a_r); - std::swap(b_r, other.b_r); - - std::swap(p_words, other.p_words); - - std::swap(r2, other.r2); - std::swap(p_dash, other.p_dash); - } - - /** - * Equality operator - * @param other curve to compare with - * @return true iff this is the same curve as other - */ - bool operator==(const CurveGFp& other) const - { - /* - Relies on choice of R, but that is fixed by constructor based - on size of p - */ - return (p == other.p && a_r == other.a_r && b_r == other.b_r); - } - - private: - // Curve parameters - BigInt p, a, b; - - size_t p_words; // cache of p.sig_words() - - // Montgomery parameters - BigInt r2, a_r, b_r; - word p_dash; - }; - -/** -* Equality operator -* @param lhs a curve -* @param rhs a curve -* @return true iff lhs is not the same as rhs -*/ -inline bool operator!=(const CurveGFp& lhs, const CurveGFp& rhs) - { - return !(lhs == rhs); - } - -} - -namespace std { - -template<> inline -void swap(Botan::CurveGFp& curve1, - Botan::CurveGFp& curve2) - { - curve1.swap(curve2); - } - -} // namespace std - -#endif diff --git a/src/botan/src/math/ec_gfp/info.txt b/src/botan/src/math/ec_gfp/info.txt deleted file mode 100644 index e6ee1d6bf..000000000 --- a/src/botan/src/math/ec_gfp/info.txt +++ /dev/null @@ -1,16 +0,0 @@ -define EC_CURVE_GFP - -load_on auto - - -curve_gfp.h -point_gfp.h - - - -point_gfp.cpp - - - -numbertheory - diff --git a/src/botan/src/math/ec_gfp/point_gfp.cpp b/src/botan/src/math/ec_gfp/point_gfp.cpp deleted file mode 100644 index 7ac6b4141..000000000 --- a/src/botan/src/math/ec_gfp/point_gfp.cpp +++ /dev/null @@ -1,604 +0,0 @@ -/* -* Point arithmetic on elliptic curves over GF(p) -* -* (C) 2007 Martin Doering, Christoph Ludwig, Falko Strenzke -* 2008-2011 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -namespace Botan { - -PointGFp::PointGFp(const CurveGFp& curve) : - curve(curve), ws(2 * (curve.get_p_words() + 2)) - { - coord_x = 0; - coord_y = monty_mult(1, curve.get_r2()); - coord_z = 0; - } - -PointGFp::PointGFp(const CurveGFp& curve, const BigInt& x, const BigInt& y) : - curve(curve), ws(2 * (curve.get_p_words() + 2)) - { - coord_x = monty_mult(x, curve.get_r2()); - coord_y = monty_mult(y, curve.get_r2()); - coord_z = monty_mult(1, curve.get_r2()); - } - -// Montgomery multiplication -void PointGFp::monty_mult(BigInt& z, const BigInt& x, const BigInt& y) const - { - //assert(&z != &x && &z != &y); - - if(x.is_zero() || y.is_zero()) - { - z = 0; - return; - } - - const BigInt& p = curve.get_p(); - const size_t p_size = curve.get_p_words(); - const word p_dash = curve.get_p_dash(); - - SecureVector& z_reg = z.get_reg(); - z_reg.resize(2*p_size+1); - zeroise(z_reg); - - bigint_monty_mul(&z_reg[0], z_reg.size(), - x.data(), x.size(), x.sig_words(), - y.data(), y.size(), y.sig_words(), - p.data(), p_size, p_dash, - &ws[0]); - } - -// Montgomery squaring -void PointGFp::monty_sqr(BigInt& z, const BigInt& x) const - { - //assert(&z != &x); - - if(x.is_zero()) - { - z = 0; - return; - } - - const BigInt& p = curve.get_p(); - const size_t p_size = curve.get_p_words(); - const word p_dash = curve.get_p_dash(); - - SecureVector& z_reg = z.get_reg(); - z_reg.resize(2*p_size+1); - zeroise(z_reg); - - bigint_monty_sqr(&z_reg[0], z_reg.size(), - x.data(), x.size(), x.sig_words(), - p.data(), p_size, p_dash, - &ws[0]); - } - -// Point addition -void PointGFp::add(const PointGFp& rhs, std::vector& ws_bn) - { - if(is_zero()) - { - coord_x = rhs.coord_x; - coord_y = rhs.coord_y; - coord_z = rhs.coord_z; - return; - } - else if(rhs.is_zero()) - return; - - const BigInt& p = curve.get_p(); - - BigInt& rhs_z2 = ws_bn[0]; - BigInt& U1 = ws_bn[1]; - BigInt& S1 = ws_bn[2]; - - BigInt& lhs_z2 = ws_bn[3]; - BigInt& U2 = ws_bn[4]; - BigInt& S2 = ws_bn[5]; - - BigInt& H = ws_bn[6]; - BigInt& r = ws_bn[7]; - - monty_sqr(rhs_z2, rhs.coord_z); - monty_mult(U1, coord_x, rhs_z2); - monty_mult(S1, coord_y, monty_mult(rhs.coord_z, rhs_z2)); - - monty_sqr(lhs_z2, coord_z); - monty_mult(U2, rhs.coord_x, lhs_z2); - monty_mult(S2, rhs.coord_y, monty_mult(coord_z, lhs_z2)); - - H = U2; - H -= U1; - if(H.is_negative()) - H += p; - - r = S2; - r -= S1; - if(r.is_negative()) - r += p; - - if(H.is_zero()) - { - if(r.is_zero()) - { - mult2(ws_bn); - return; - } - - *this = PointGFp(curve); // setting myself to zero - return; - } - - monty_sqr(U2, H); - - monty_mult(S2, U2, H); - - U2 = monty_mult(U1, U2); - - monty_sqr(coord_x, r); - coord_x -= S2; - coord_x -= (U2 << 1); - while(coord_x.is_negative()) - coord_x += p; - - U2 -= coord_x; - if(U2.is_negative()) - U2 += p; - - monty_mult(coord_y, r, U2); - coord_y -= monty_mult(S1, S2); - if(coord_y.is_negative()) - coord_y += p; - - monty_mult(coord_z, monty_mult(coord_z, rhs.coord_z), H); - } - -// *this *= 2 -void PointGFp::mult2(std::vector& ws_bn) - { - if(is_zero()) - return; - else if(coord_y.is_zero()) - { - *this = PointGFp(curve); // setting myself to zero - return; - } - - const BigInt& p = curve.get_p(); - - BigInt& y_2 = ws_bn[0]; - BigInt& S = ws_bn[1]; - BigInt& z4 = ws_bn[2]; - BigInt& a_z4 = ws_bn[3]; - BigInt& M = ws_bn[4]; - BigInt& U = ws_bn[5]; - BigInt& x = ws_bn[6]; - BigInt& y = ws_bn[7]; - BigInt& z = ws_bn[8]; - - monty_sqr(y_2, coord_y); - - monty_mult(S, coord_x, y_2); - S <<= 2; // * 4 - while(S >= p) - S -= p; - - monty_sqr(z4, monty_sqr(coord_z)); - monty_mult(a_z4, curve.get_a_r(), z4); - - M = 3 * monty_sqr(coord_x); - M += a_z4; - while(M >= p) - M -= p; - - monty_sqr(x, M); - x -= (S << 1); - while(x.is_negative()) - x += p; - - monty_sqr(U, y_2); - U <<= 3; - while(U >= p) - U -= p; - - S -= x; - while(S.is_negative()) - S += p; - - monty_mult(y, M, S); - y -= U; - if(y.is_negative()) - y += p; - - monty_mult(z, coord_y, coord_z); - z <<= 1; - if(z >= p) - z -= p; - - coord_x = x; - coord_y = y; - coord_z = z; - } - -// arithmetic operators -PointGFp& PointGFp::operator+=(const PointGFp& rhs) - { - std::vector ws(9); - add(rhs, ws); - return *this; - } - -PointGFp& PointGFp::operator-=(const PointGFp& rhs) - { - PointGFp minus_rhs = PointGFp(rhs).negate(); - - if(is_zero()) - *this = minus_rhs; - else - *this += minus_rhs; - - return *this; - } - -PointGFp& PointGFp::operator*=(const BigInt& scalar) - { - *this = scalar * *this; - return *this; - } - -PointGFp multi_exponentiate(const PointGFp& p1, const BigInt& z1, - const PointGFp& p2, const BigInt& z2) - { - const PointGFp p3 = p1 + p2; - - PointGFp H(p1.curve); // create as zero - size_t bits_left = std::max(z1.bits(), z2.bits()); - - std::vector ws(9); - - while(bits_left) - { - H.mult2(ws); - - const bool z1_b = z1.get_bit(bits_left - 1); - const bool z2_b = z2.get_bit(bits_left - 1); - - if(z1_b == true && z2_b == true) - H.add(p3, ws); - else if(z1_b) - H.add(p1, ws); - else if(z2_b) - H.add(p2, ws); - - --bits_left; - } - - if(z1.is_negative() != z2.is_negative()) - H.negate(); - - return H; - } - -PointGFp operator*(const BigInt& scalar, const PointGFp& point) - { - const CurveGFp& curve = point.get_curve(); - - if(scalar.is_zero()) - return PointGFp(curve); // zero point - - std::vector ws(9); - - if(scalar.abs() <= 2) // special cases for small values - { - byte value = scalar.abs().byte_at(0); - - PointGFp result = point; - - if(value == 2) - result.mult2(ws); - - if(scalar.is_negative()) - result.negate(); - - return result; - } - - const size_t scalar_bits = scalar.bits(); - -#if 0 - - PointGFp x1 = PointGFp(curve); - PointGFp x2 = point; - - size_t bits_left = scalar_bits; - - // Montgomery Ladder - while(bits_left) - { - const bool bit_set = scalar.get_bit(bits_left - 1); - - if(bit_set) - { - x1.add(x2, ws); - x2.mult2(ws); - } - else - { - x2.add(x1, ws); - x1.mult2(ws); - } - - --bits_left; - } - - if(scalar.is_negative()) - x1.negate(); - - return x1; - -#else - const size_t window_size = 4; - - std::vector Ps(1 << window_size); - Ps[0] = PointGFp(curve); - Ps[1] = point; - - for(size_t i = 2; i != Ps.size(); ++i) - { - Ps[i] = Ps[i-1]; - Ps[i].add(point, ws); - } - - PointGFp H(curve); // create as zero - size_t bits_left = scalar_bits; - - while(bits_left >= window_size) - { - for(size_t i = 0; i != window_size; ++i) - H.mult2(ws); - - const u32bit nibble = scalar.get_substring(bits_left - window_size, - window_size); - - H.add(Ps[nibble], ws); - - bits_left -= window_size; - } - - while(bits_left) - { - H.mult2(ws); - if(scalar.get_bit(bits_left-1)) - H.add(point, ws); - - --bits_left; - } - - if(scalar.is_negative()) - H.negate(); - - return H; -#endif - } - -BigInt PointGFp::get_affine_x() const - { - if(is_zero()) - throw Illegal_Transformation("Cannot convert zero point to affine"); - - const BigInt& r2 = curve.get_r2(); - - BigInt z2 = monty_sqr(coord_z); - z2 = inverse_mod(z2, curve.get_p()); - - z2 = monty_mult(z2, r2); - return monty_mult(coord_x, z2); - } - -BigInt PointGFp::get_affine_y() const - { - if(is_zero()) - throw Illegal_Transformation("Cannot convert zero point to affine"); - - const BigInt& r2 = curve.get_r2(); - - BigInt z3 = monty_mult(coord_z, monty_sqr(coord_z)); - z3 = inverse_mod(z3, curve.get_p()); - z3 = monty_mult(z3, r2); - return monty_mult(coord_y, z3); - } - -bool PointGFp::on_the_curve() const - { - /* - Is the point still on the curve?? (If everything is correct, the - point is always on its curve; then the function will return true. - If somehow the state is corrupted, which suggests a fault attack - (or internal computational error), then return false. - */ - - if(is_zero()) - return true; - - BigInt y2 = monty_mult(monty_sqr(coord_y), 1); - BigInt x3 = monty_mult(coord_x, monty_sqr(coord_x)); - - BigInt ax = monty_mult(coord_x, curve.get_a_r()); - - const BigInt& b_r = curve.get_b_r(); - - BigInt z2 = monty_sqr(coord_z); - - if(coord_z == z2) // Is z equal to 1 (in Montgomery form)? - { - if(y2 != monty_mult(x3 + ax + b_r, 1)) - return false; - } - - BigInt z3 = monty_mult(coord_z, z2); - - BigInt ax_z4 = monty_mult(ax, monty_sqr(z2)); - - BigInt b_z6 = monty_mult(b_r, monty_sqr(z3)); - - if(y2 != monty_mult(x3 + ax_z4 + b_z6, 1)) - return false; - - return true; - } - -// swaps the states of *this and other, does not throw! -void PointGFp::swap(PointGFp& other) - { - curve.swap(other.curve); - coord_x.swap(other.coord_x); - coord_y.swap(other.coord_y); - coord_z.swap(other.coord_z); - ws.swap(other.ws); - } - -bool PointGFp::operator==(const PointGFp& other) const - { - if(get_curve() != other.get_curve()) - return false; - - // If this is zero, only equal if other is also zero - if(is_zero()) - return other.is_zero(); - - return (get_affine_x() == other.get_affine_x() && - get_affine_y() == other.get_affine_y()); - } - -// encoding and decoding -SecureVector EC2OSP(const PointGFp& point, byte format) - { - if(point.is_zero()) - return SecureVector(1); // single 0 byte - - const size_t p_bytes = point.get_curve().get_p().bytes(); - - BigInt x = point.get_affine_x(); - BigInt y = point.get_affine_y(); - - SecureVector bX = BigInt::encode_1363(x, p_bytes); - SecureVector bY = BigInt::encode_1363(y, p_bytes); - - if(format == PointGFp::UNCOMPRESSED) - { - SecureVector result; - result.push_back(0x04); - - result += bX; - result += bY; - - return result; - } - else if(format == PointGFp::COMPRESSED) - { - SecureVector result; - result.push_back(0x02 | static_cast(y.get_bit(0))); - - result += bX; - - return result; - } - else if(format == PointGFp::HYBRID) - { - SecureVector result; - result.push_back(0x06 | static_cast(y.get_bit(0))); - - result += bX; - result += bY; - - return result; - } - else - throw Invalid_Argument("illegal point encoding format specification"); - } - -namespace { - -BigInt decompress_point(bool yMod2, - const BigInt& x, - const CurveGFp& curve) - { - BigInt xpow3 = x * x * x; - - BigInt g = curve.get_a() * x; - g += xpow3; - g += curve.get_b(); - g = g % curve.get_p(); - - BigInt z = ressol(g, curve.get_p()); - - if(z < 0) - throw Illegal_Point("error during decompression"); - - if(z.get_bit(0) != yMod2) - z = curve.get_p() - z; - - return z; - } - -} - -PointGFp OS2ECP(const byte data[], size_t data_len, - const CurveGFp& curve) - { - if(data_len <= 1) - return PointGFp(curve); // return zero - - const byte pc = data[0]; - - BigInt x, y; - - if(pc == 2 || pc == 3) - { - //compressed form - x = BigInt::decode(&data[1], data_len - 1); - - const bool y_mod_2 = ((pc & 0x01) == 1); - y = decompress_point(y_mod_2, x, curve); - } - else if(pc == 4) - { - const size_t l = (data_len - 1) / 2; - - // uncompressed form - x = BigInt::decode(&data[1], l); - y = BigInt::decode(&data[l+1], l); - } - else if(pc == 6 || pc == 7) - { - const size_t l = (data_len - 1) / 2; - - // hybrid form - x = BigInt::decode(&data[1], l); - y = BigInt::decode(&data[l+1], l); - - const bool y_mod_2 = ((pc & 0x01) == 1); - - if(decompress_point(y_mod_2, x, curve) != y) - throw Illegal_Point("OS2ECP: Decoding error in hybrid format"); - } - else - throw Invalid_Argument("OS2ECP: Unknown format type"); - - PointGFp result(curve, x, y); - - if(!result.on_the_curve()) - throw Illegal_Point("OS2ECP: Decoded point was not on the curve"); - - return result; - } - -} diff --git a/src/botan/src/math/ec_gfp/point_gfp.h b/src/botan/src/math/ec_gfp/point_gfp.h deleted file mode 100644 index b2b6fe2f0..000000000 --- a/src/botan/src/math/ec_gfp/point_gfp.h +++ /dev/null @@ -1,274 +0,0 @@ -/* -* Point arithmetic on elliptic curves over GF(p) -* -* (C) 2007 Martin Doering, Christoph Ludwig, Falko Strenzke -* 2008-2011 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_POINT_GFP_H__ -#define BOTAN_POINT_GFP_H__ - -#include -#include - -namespace Botan { - -/** -* Exception thrown if you try to convert a zero point to an affine -* coordinate -*/ -struct BOTAN_DLL Illegal_Transformation : public Exception - { - Illegal_Transformation(const std::string& err = - "Requested transformation is not possible") : - Exception(err) {} - }; - -/** -* Exception thrown if some form of illegal point is decoded -*/ -struct BOTAN_DLL Illegal_Point : public Exception - { - Illegal_Point(const std::string& err = "Malformed ECP point detected") : - Exception(err) {} - }; - -/** -* This class represents one point on a curve of GF(p) -*/ -class BOTAN_DLL PointGFp - { - public: - enum Compression_Type { - UNCOMPRESSED = 0, - COMPRESSED = 1, - HYBRID = 2 - }; - - /** - * Construct an uninitialized PointGFp - */ - PointGFp() {} - - /** - * Construct the zero point - * @param curve The base curve - */ - PointGFp(const CurveGFp& curve); - - /** - * Construct a point from its affine coordinates - * @param curve the base curve - * @param x affine x coordinate - * @param y affine y coordinate - */ - PointGFp(const CurveGFp& curve, const BigInt& x, const BigInt& y); - - //PointGFp(const PointGFp& other) = default; - //PointGFp& operator=(const PointGFp& other) = default; - - /** - * += Operator - * @param rhs the PointGFp to add to the local value - * @result resulting PointGFp - */ - PointGFp& operator+=(const PointGFp& rhs); - - /** - * -= Operator - * @param rhs the PointGFp to subtract from the local value - * @result resulting PointGFp - */ - PointGFp& operator-=(const PointGFp& rhs); - - /** - * *= Operator - * @param scalar the PointGFp to multiply with *this - * @result resulting PointGFp - */ - PointGFp& operator*=(const BigInt& scalar); - - /** - * Multiplication Operator - * @param scalar the scalar value - * @param point the point value - * @return scalar*point on the curve - */ - friend BOTAN_DLL PointGFp operator*(const BigInt& scalar, const PointGFp& point); - - /** - * Multiexponentiation - * @param p1 a point - * @param z1 a scalar - * @param p2 a point - * @param z2 a scalar - * @result (p1 * z1 + p2 * z2) - */ - friend BOTAN_DLL PointGFp multi_exponentiate( - const PointGFp& p1, const BigInt& z1, - const PointGFp& p2, const BigInt& z2); - - /** - * Negate this point - * @return *this - */ - PointGFp& negate() - { - if(!is_zero()) - coord_y = curve.get_p() - coord_y; - return *this; - } - - /** - * Return base curve of this point - * @result the curve over GF(p) of this point - */ - const CurveGFp& get_curve() const { return curve; } - - /** - * get affine x coordinate - * @result affine x coordinate - */ - BigInt get_affine_x() const; - - /** - * get affine y coordinate - * @result affine y coordinate - */ - BigInt get_affine_y() const; - - /** - * Is this the point at infinity? - * @result true, if this point is at infinity, false otherwise. - */ - bool is_zero() const - { return (coord_x.is_zero() && coord_z.is_zero()); } - - /** - * Checks whether the point is to be found on the underlying - * curve; used to prevent fault attacks. - * @return if the point is on the curve - */ - bool on_the_curve() const; - - /** - * swaps the states of *this and other, does not throw! - * @param other the object to swap values with - */ - void swap(PointGFp& other); - - /** - * Equality operator - */ - bool operator==(const PointGFp& other) const; - private: - - /** - * Montgomery multiplication/reduction - * @param x first multiplicand - * @param y second multiplicand - * @param workspace temp space - */ - BigInt monty_mult(const BigInt& x, const BigInt& y) const - { - BigInt result; - monty_mult(result, x, y); - return result; - } - - /** - * Montgomery multiplication/reduction - * @warning z cannot alias x or y - * @param z output - * @param x first multiplicand - * @param y second multiplicand - */ - void monty_mult(BigInt& z, const BigInt& x, const BigInt& y) const; - - /** - * Montgomery squaring/reduction - * @param x multiplicand - */ - BigInt monty_sqr(const BigInt& x) const - { - BigInt result; - monty_sqr(result, x); - return result; - } - - /** - * Montgomery squaring/reduction - * @warning z cannot alias x - * @param z output - * @param x multiplicand - */ - void monty_sqr(BigInt& z, const BigInt& x) const; - - /** - * Point addition - * @param workspace temp space, at least 11 elements - */ - void add(const PointGFp& other, std::vector& workspace); - - /** - * Point doubling - * @param workspace temp space, at least 9 elements - */ - void mult2(std::vector& workspace); - - CurveGFp curve; - BigInt coord_x, coord_y, coord_z; - mutable SecureVector ws; // workspace for Montgomery - }; - -// relational operators -inline bool operator!=(const PointGFp& lhs, const PointGFp& rhs) - { - return !(rhs == lhs); - } - -// arithmetic operators -inline PointGFp operator-(const PointGFp& lhs) - { - return PointGFp(lhs).negate(); - } - -inline PointGFp operator+(const PointGFp& lhs, const PointGFp& rhs) - { - PointGFp tmp(lhs); - return tmp += rhs; - } - -inline PointGFp operator-(const PointGFp& lhs, const PointGFp& rhs) - { - PointGFp tmp(lhs); - return tmp -= rhs; - } - -inline PointGFp operator*(const PointGFp& point, const BigInt& scalar) - { - return scalar * point; - } - -// encoding and decoding -SecureVector BOTAN_DLL EC2OSP(const PointGFp& point, byte format); - -PointGFp BOTAN_DLL OS2ECP(const byte data[], size_t data_len, - const CurveGFp& curve); - -inline PointGFp OS2ECP(const MemoryRegion& data, const CurveGFp& curve) - { return OS2ECP(&data[0], data.size(), curve); } - -} - -namespace std { - -template<> -inline void swap(Botan::PointGFp& x, Botan::PointGFp& y) - { x.swap(y); } - -} - -#endif diff --git a/src/botan/src/math/mp/info.txt b/src/botan/src/math/mp/info.txt deleted file mode 100644 index bf7f40d3c..000000000 --- a/src/botan/src/math/mp/info.txt +++ /dev/null @@ -1,23 +0,0 @@ -define BIGINT_MP - - -mp_asm.cpp -mp_comba.cpp -mp_karat.cpp -mp_monty.cpp -mp_mulop.cpp -mp_misc.cpp -mp_shift.cpp - - - -mp_types.h - - - -mp_core.h - - - -mp_x86_64|mp_msvc64|mp_asm64|mp_x86_32|mp_x86_32_msvc|mp_generic - diff --git a/src/botan/src/math/mp/mp_asm.cpp b/src/botan/src/math/mp/mp_asm.cpp deleted file mode 100644 index 3ba52c4b1..000000000 --- a/src/botan/src/math/mp/mp_asm.cpp +++ /dev/null @@ -1,184 +0,0 @@ -/* -* Lowest Level MPI Algorithms -* (C) 1999-2010 Jack Lloyd -* 2006 Luca Piccarreta -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include - -namespace Botan { - -extern "C" { - -/* -* Two Operand Addition, No Carry -*/ -word bigint_add2_nc(word x[], size_t x_size, const word y[], size_t y_size) - { - word carry = 0; - - const size_t blocks = y_size - (y_size % 8); - - for(size_t i = 0; i != blocks; i += 8) - carry = word8_add2(x + i, y + i, carry); - - for(size_t i = blocks; i != y_size; ++i) - x[i] = word_add(x[i], y[i], &carry); - - for(size_t i = y_size; i != x_size; ++i) - x[i] = word_add(x[i], 0, &carry); - - return carry; - } - -/* -* Three Operand Addition, No Carry -*/ -word bigint_add3_nc(word z[], const word x[], size_t x_size, - const word y[], size_t y_size) - { - if(x_size < y_size) - { return bigint_add3_nc(z, y, y_size, x, x_size); } - - word carry = 0; - - const size_t blocks = y_size - (y_size % 8); - - for(size_t i = 0; i != blocks; i += 8) - carry = word8_add3(z + i, x + i, y + i, carry); - - for(size_t i = blocks; i != y_size; ++i) - z[i] = word_add(x[i], y[i], &carry); - - for(size_t i = y_size; i != x_size; ++i) - z[i] = word_add(x[i], 0, &carry); - - return carry; - } - -/* -* Two Operand Addition -*/ -void bigint_add2(word x[], size_t x_size, const word y[], size_t y_size) - { - if(bigint_add2_nc(x, x_size, y, y_size)) - x[x_size] += 1; - } - -/* -* Three Operand Addition -*/ -void bigint_add3(word z[], const word x[], size_t x_size, - const word y[], size_t y_size) - { - z[(x_size > y_size ? x_size : y_size)] += - bigint_add3_nc(z, x, x_size, y, y_size); - } - -/* -* Two Operand Subtraction -*/ -word bigint_sub2(word x[], size_t x_size, const word y[], size_t y_size) - { - word borrow = 0; - - const size_t blocks = y_size - (y_size % 8); - - for(size_t i = 0; i != blocks; i += 8) - borrow = word8_sub2(x + i, y + i, borrow); - - for(size_t i = blocks; i != y_size; ++i) - x[i] = word_sub(x[i], y[i], &borrow); - - for(size_t i = y_size; i != x_size; ++i) - x[i] = word_sub(x[i], 0, &borrow); - - return borrow; - } - -/* -* Two Operand Subtraction x = y - x -*/ -void bigint_sub2_rev(word x[], const word y[], size_t y_size) - { - word borrow = 0; - - const size_t blocks = y_size - (y_size % 8); - - for(size_t i = 0; i != blocks; i += 8) - borrow = word8_sub2_rev(x + i, y + i, borrow); - - for(size_t i = blocks; i != y_size; ++i) - x[i] = word_sub(y[i], x[i], &borrow); - - if(borrow) - throw Internal_Error("bigint_sub2_rev: x >= y"); - } - -/* -* Three Operand Subtraction -*/ -word bigint_sub3(word z[], const word x[], size_t x_size, - const word y[], size_t y_size) - { - word borrow = 0; - - const size_t blocks = y_size - (y_size % 8); - - for(size_t i = 0; i != blocks; i += 8) - borrow = word8_sub3(z + i, x + i, y + i, borrow); - - for(size_t i = blocks; i != y_size; ++i) - z[i] = word_sub(x[i], y[i], &borrow); - - for(size_t i = y_size; i != x_size; ++i) - z[i] = word_sub(x[i], 0, &borrow); - - return borrow; - } - -/* -* Two Operand Linear Multiply -*/ -void bigint_linmul2(word x[], size_t x_size, word y) - { - const size_t blocks = x_size - (x_size % 8); - - word carry = 0; - - for(size_t i = 0; i != blocks; i += 8) - carry = word8_linmul2(x + i, y, carry); - - for(size_t i = blocks; i != x_size; ++i) - x[i] = word_madd2(x[i], y, &carry); - - x[x_size] = carry; - } - -/* -* Three Operand Linear Multiply -*/ -void bigint_linmul3(word z[], const word x[], size_t x_size, word y) - { - const size_t blocks = x_size - (x_size % 8); - - word carry = 0; - - for(size_t i = 0; i != blocks; i += 8) - carry = word8_linmul3(z + i, x + i, y, carry); - - for(size_t i = blocks; i != x_size; ++i) - z[i] = word_madd2(x[i], y, &carry); - - z[x_size] = carry; - } - -} - -} diff --git a/src/botan/src/math/mp/mp_asm64/info.txt b/src/botan/src/math/mp/mp_asm64/info.txt deleted file mode 100644 index 9af7c4ae7..000000000 --- a/src/botan/src/math/mp/mp_asm64/info.txt +++ /dev/null @@ -1,24 +0,0 @@ -mp_bits 64 - -load_on dep - - -mp_asm.h -mp_generic:mp_asmi.h - - - -alpha -ia64 -mips64 -ppc64 -sparc64 - - -# The inline asm only works with gcc, but it looks like (at least on -# UltraSPARC), using 64-bit words and the sythensized multiply is a 5 to 25% -# win, so it's probably worth using elsewhere. - -gcc -sunstudio - diff --git a/src/botan/src/math/mp/mp_asm64/mp_asm.h b/src/botan/src/math/mp/mp_asm64/mp_asm.h deleted file mode 100644 index 625ea1c4f..000000000 --- a/src/botan/src/math/mp/mp_asm64/mp_asm.h +++ /dev/null @@ -1,120 +0,0 @@ -/* -* MPI Multiply-Add Core -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MP_MADD_H__ -#define BOTAN_MP_MADD_H__ - -#include - -namespace Botan { - -#if (BOTAN_MP_WORD_BITS != 64) - #error The mp_asm64 module requires that BOTAN_MP_WORD_BITS == 64 -#endif - -#if defined(BOTAN_TARGET_ARCH_IS_ALPHA) - -#define BOTAN_WORD_MUL(a,b,z1,z0) do { \ - asm("umulh %1,%2,%0" : "=r" (z0) : "r" (a), "r" (b)); \ - z1 = a * b; \ -} while(0); - -#elif defined(BOTAN_TARGET_ARCH_IS_IA64) - -#define BOTAN_WORD_MUL(a,b,z1,z0) do { \ - asm("xmpy.hu %0=%1,%2" : "=f" (z0) : "f" (a), "f" (b)); \ - z1 = a * b; \ -} while(0); - -#elif defined(BOTAN_TARGET_ARCH_IS_PPC64) - -#define BOTAN_WORD_MUL(a,b,z1,z0) do { \ - asm("mulhdu %0,%1,%2" : "=r" (z0) : "r" (a), "r" (b) : "cc"); \ - z1 = a * b; \ -} while(0); - -#elif defined(BOTAN_TARGET_ARCH_IS_MIPS64) - -#define BOTAN_WORD_MUL(a,b,z1,z0) do { \ - typedef unsigned int uint128_t __attribute__((mode(TI))); \ - uint128_t r = (uint128_t)a * b; \ - z0 = (r >> 64) & 0xFFFFFFFFFFFFFFFF; \ - z1 = (r ) & 0xFFFFFFFFFFFFFFFF; \ -} while(0); - -#else - -// Do a 64x64->128 multiply using four 64x64->64 multiplies -// plus some adds and shifts. Last resort for CPUs like UltraSPARC, -// with 64-bit registers/ALU, but no 64x64->128 multiply. -inline void bigint_2word_mul(word a, word b, word* z1, word* z0) - { - const size_t MP_HWORD_BITS = BOTAN_MP_WORD_BITS / 2; - const word MP_HWORD_MASK = ((word)1 << MP_HWORD_BITS) - 1; - - const word a_hi = (a >> MP_HWORD_BITS); - const word a_lo = (a & MP_HWORD_MASK); - const word b_hi = (b >> MP_HWORD_BITS); - const word b_lo = (b & MP_HWORD_MASK); - - word x0 = a_hi * b_hi; - word x1 = a_lo * b_hi; - word x2 = a_hi * b_lo; - word x3 = a_lo * b_lo; - - x2 += x3 >> (MP_HWORD_BITS); - x2 += x1; - - if(x2 < x1) // timing channel - x0 += ((word)1 << MP_HWORD_BITS); - - *z0 = x0 + (x2 >> MP_HWORD_BITS); - *z1 = ((x2 & MP_HWORD_MASK) << MP_HWORD_BITS) + (x3 & MP_HWORD_MASK); - } - -#define BOTAN_WORD_MUL(a,b,z1,z0) bigint_2word_mul(a, b, &z1, &z0) - -#endif - -/* -* Word Multiply/Add -*/ -inline word word_madd2(word a, word b, word* c) - { - word z0 = 0, z1 = 0; - - BOTAN_WORD_MUL(a, b, z1, z0); - - z1 += *c; - z0 += (z1 < *c); - - *c = z0; - return z1; - } - -/* -* Word Multiply/Add -*/ -inline word word_madd3(word a, word b, word c, word* d) - { - word z0 = 0, z1 = 0; - - BOTAN_WORD_MUL(a, b, z1, z0); - - z1 += c; - z0 += (z1 < c); - - z1 += *d; - z0 += (z1 < *d); - - *d = z0; - return z1; - } - -} - -#endif diff --git a/src/botan/src/math/mp/mp_comba.cpp b/src/botan/src/math/mp/mp_comba.cpp deleted file mode 100644 index 99dcda176..000000000 --- a/src/botan/src/math/mp/mp_comba.cpp +++ /dev/null @@ -1,920 +0,0 @@ -/* -* Comba Multiplication and Squaring -* (C) 1999-2007,2011 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -namespace Botan { - -extern "C" { - -/* -* Comba 4x4 Squaring -*/ -void bigint_comba_sqr4(word z[8], const word x[4]) - { - word w2 = 0, w1 = 0, w0 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 0], x[ 0]); - z[ 0] = w0; w0 = 0; - - word3_muladd_2(&w0, &w2, &w1, x[ 0], x[ 1]); - z[ 1] = w1; w1 = 0; - - word3_muladd_2(&w1, &w0, &w2, x[ 0], x[ 2]); - word3_muladd(&w1, &w0, &w2, x[ 1], x[ 1]); - z[ 2] = w2; w2 = 0; - - word3_muladd_2(&w2, &w1, &w0, x[ 0], x[ 3]); - word3_muladd_2(&w2, &w1, &w0, x[ 1], x[ 2]); - z[ 3] = w0; w0 = 0; - - word3_muladd_2(&w0, &w2, &w1, x[ 1], x[ 3]); - word3_muladd(&w0, &w2, &w1, x[ 2], x[ 2]); - z[ 4] = w1; w1 = 0; - - word3_muladd_2(&w1, &w0, &w2, x[ 2], x[ 3]); - z[ 5] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 3], x[ 3]); - z[ 6] = w0; - z[ 7] = w1; - } - -/* -* Comba 4x4 Multiplication -*/ -void bigint_comba_mul4(word z[8], const word x[4], const word y[4]) - { - word w2 = 0, w1 = 0, w0 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 0], y[ 0]); - z[ 0] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[ 0], y[ 1]); - word3_muladd(&w0, &w2, &w1, x[ 1], y[ 0]); - z[ 1] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[ 0], y[ 2]); - word3_muladd(&w1, &w0, &w2, x[ 1], y[ 1]); - word3_muladd(&w1, &w0, &w2, x[ 2], y[ 0]); - z[ 2] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 0], y[ 3]); - word3_muladd(&w2, &w1, &w0, x[ 1], y[ 2]); - word3_muladd(&w2, &w1, &w0, x[ 2], y[ 1]); - word3_muladd(&w2, &w1, &w0, x[ 3], y[ 0]); - z[ 3] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[ 1], y[ 3]); - word3_muladd(&w0, &w2, &w1, x[ 2], y[ 2]); - word3_muladd(&w0, &w2, &w1, x[ 3], y[ 1]); - z[ 4] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[ 2], y[ 3]); - word3_muladd(&w1, &w0, &w2, x[ 3], y[ 2]); - z[ 5] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 3], y[ 3]); - z[ 6] = w0; - z[ 7] = w1; - } - -/* -* Comba 6x6 Squaring -*/ -void bigint_comba_sqr6(word z[12], const word x[6]) - { - word w2 = 0, w1 = 0, w0 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 0], x[ 0]); - z[ 0] = w0; w0 = 0; - - word3_muladd_2(&w0, &w2, &w1, x[ 0], x[ 1]); - z[ 1] = w1; w1 = 0; - - word3_muladd_2(&w1, &w0, &w2, x[ 0], x[ 2]); - word3_muladd(&w1, &w0, &w2, x[ 1], x[ 1]); - z[ 2] = w2; w2 = 0; - - word3_muladd_2(&w2, &w1, &w0, x[ 0], x[ 3]); - word3_muladd_2(&w2, &w1, &w0, x[ 1], x[ 2]); - z[ 3] = w0; w0 = 0; - - word3_muladd_2(&w0, &w2, &w1, x[ 0], x[ 4]); - word3_muladd_2(&w0, &w2, &w1, x[ 1], x[ 3]); - word3_muladd(&w0, &w2, &w1, x[ 2], x[ 2]); - z[ 4] = w1; w1 = 0; - - word3_muladd_2(&w1, &w0, &w2, x[ 0], x[ 5]); - word3_muladd_2(&w1, &w0, &w2, x[ 1], x[ 4]); - word3_muladd_2(&w1, &w0, &w2, x[ 2], x[ 3]); - z[ 5] = w2; w2 = 0; - - word3_muladd_2(&w2, &w1, &w0, x[ 1], x[ 5]); - word3_muladd_2(&w2, &w1, &w0, x[ 2], x[ 4]); - word3_muladd(&w2, &w1, &w0, x[ 3], x[ 3]); - z[ 6] = w0; w0 = 0; - - word3_muladd_2(&w0, &w2, &w1, x[ 2], x[ 5]); - word3_muladd_2(&w0, &w2, &w1, x[ 3], x[ 4]); - z[ 7] = w1; w1 = 0; - - word3_muladd_2(&w1, &w0, &w2, x[ 3], x[ 5]); - word3_muladd(&w1, &w0, &w2, x[ 4], x[ 4]); - z[ 8] = w2; w2 = 0; - - word3_muladd_2(&w2, &w1, &w0, x[ 4], x[ 5]); - z[ 9] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[ 5], x[ 5]); - z[10] = w1; - z[11] = w2; - } - -/* -* Comba 6x6 Multiplication -*/ -void bigint_comba_mul6(word z[12], const word x[6], const word y[6]) - { - word w2 = 0, w1 = 0, w0 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 0], y[ 0]); - z[ 0] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[ 0], y[ 1]); - word3_muladd(&w0, &w2, &w1, x[ 1], y[ 0]); - z[ 1] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[ 0], y[ 2]); - word3_muladd(&w1, &w0, &w2, x[ 1], y[ 1]); - word3_muladd(&w1, &w0, &w2, x[ 2], y[ 0]); - z[ 2] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 0], y[ 3]); - word3_muladd(&w2, &w1, &w0, x[ 1], y[ 2]); - word3_muladd(&w2, &w1, &w0, x[ 2], y[ 1]); - word3_muladd(&w2, &w1, &w0, x[ 3], y[ 0]); - z[ 3] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[ 0], y[ 4]); - word3_muladd(&w0, &w2, &w1, x[ 1], y[ 3]); - word3_muladd(&w0, &w2, &w1, x[ 2], y[ 2]); - word3_muladd(&w0, &w2, &w1, x[ 3], y[ 1]); - word3_muladd(&w0, &w2, &w1, x[ 4], y[ 0]); - z[ 4] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[ 0], y[ 5]); - word3_muladd(&w1, &w0, &w2, x[ 1], y[ 4]); - word3_muladd(&w1, &w0, &w2, x[ 2], y[ 3]); - word3_muladd(&w1, &w0, &w2, x[ 3], y[ 2]); - word3_muladd(&w1, &w0, &w2, x[ 4], y[ 1]); - word3_muladd(&w1, &w0, &w2, x[ 5], y[ 0]); - z[ 5] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 1], y[ 5]); - word3_muladd(&w2, &w1, &w0, x[ 2], y[ 4]); - word3_muladd(&w2, &w1, &w0, x[ 3], y[ 3]); - word3_muladd(&w2, &w1, &w0, x[ 4], y[ 2]); - word3_muladd(&w2, &w1, &w0, x[ 5], y[ 1]); - z[ 6] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[ 2], y[ 5]); - word3_muladd(&w0, &w2, &w1, x[ 3], y[ 4]); - word3_muladd(&w0, &w2, &w1, x[ 4], y[ 3]); - word3_muladd(&w0, &w2, &w1, x[ 5], y[ 2]); - z[ 7] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[ 3], y[ 5]); - word3_muladd(&w1, &w0, &w2, x[ 4], y[ 4]); - word3_muladd(&w1, &w0, &w2, x[ 5], y[ 3]); - z[ 8] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 4], y[ 5]); - word3_muladd(&w2, &w1, &w0, x[ 5], y[ 4]); - z[ 9] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[ 5], y[ 5]); - z[10] = w1; - z[11] = w2; - } - -/* -* Comba 8x8 Squaring -*/ -void bigint_comba_sqr8(word z[16], const word x[8]) - { - word w2 = 0, w1 = 0, w0 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 0], x[ 0]); - z[ 0] = w0; w0 = 0; - - word3_muladd_2(&w0, &w2, &w1, x[ 0], x[ 1]); - z[ 1] = w1; w1 = 0; - - word3_muladd_2(&w1, &w0, &w2, x[ 0], x[ 2]); - word3_muladd(&w1, &w0, &w2, x[ 1], x[ 1]); - z[ 2] = w2; w2 = 0; - - word3_muladd_2(&w2, &w1, &w0, x[ 0], x[ 3]); - word3_muladd_2(&w2, &w1, &w0, x[ 1], x[ 2]); - z[ 3] = w0; w0 = 0; - - word3_muladd_2(&w0, &w2, &w1, x[ 0], x[ 4]); - word3_muladd_2(&w0, &w2, &w1, x[ 1], x[ 3]); - word3_muladd(&w0, &w2, &w1, x[ 2], x[ 2]); - z[ 4] = w1; w1 = 0; - - word3_muladd_2(&w1, &w0, &w2, x[ 0], x[ 5]); - word3_muladd_2(&w1, &w0, &w2, x[ 1], x[ 4]); - word3_muladd_2(&w1, &w0, &w2, x[ 2], x[ 3]); - z[ 5] = w2; w2 = 0; - - word3_muladd_2(&w2, &w1, &w0, x[ 0], x[ 6]); - word3_muladd_2(&w2, &w1, &w0, x[ 1], x[ 5]); - word3_muladd_2(&w2, &w1, &w0, x[ 2], x[ 4]); - word3_muladd(&w2, &w1, &w0, x[ 3], x[ 3]); - z[ 6] = w0; w0 = 0; - - word3_muladd_2(&w0, &w2, &w1, x[ 0], x[ 7]); - word3_muladd_2(&w0, &w2, &w1, x[ 1], x[ 6]); - word3_muladd_2(&w0, &w2, &w1, x[ 2], x[ 5]); - word3_muladd_2(&w0, &w2, &w1, x[ 3], x[ 4]); - z[ 7] = w1; w1 = 0; - - word3_muladd_2(&w1, &w0, &w2, x[ 1], x[ 7]); - word3_muladd_2(&w1, &w0, &w2, x[ 2], x[ 6]); - word3_muladd_2(&w1, &w0, &w2, x[ 3], x[ 5]); - word3_muladd(&w1, &w0, &w2, x[ 4], x[ 4]); - z[ 8] = w2; w2 = 0; - - word3_muladd_2(&w2, &w1, &w0, x[ 2], x[ 7]); - word3_muladd_2(&w2, &w1, &w0, x[ 3], x[ 6]); - word3_muladd_2(&w2, &w1, &w0, x[ 4], x[ 5]); - z[ 9] = w0; w0 = 0; - - word3_muladd_2(&w0, &w2, &w1, x[ 3], x[ 7]); - word3_muladd_2(&w0, &w2, &w1, x[ 4], x[ 6]); - word3_muladd(&w0, &w2, &w1, x[ 5], x[ 5]); - z[10] = w1; w1 = 0; - - word3_muladd_2(&w1, &w0, &w2, x[ 4], x[ 7]); - word3_muladd_2(&w1, &w0, &w2, x[ 5], x[ 6]); - z[11] = w2; w2 = 0; - - word3_muladd_2(&w2, &w1, &w0, x[ 5], x[ 7]); - word3_muladd(&w2, &w1, &w0, x[ 6], x[ 6]); - z[12] = w0; w0 = 0; - - word3_muladd_2(&w0, &w2, &w1, x[ 6], x[ 7]); - z[13] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[ 7], x[ 7]); - z[14] = w2; - z[15] = w0; - } - -/* -* Comba 8x8 Multiplication -*/ -void bigint_comba_mul8(word z[16], const word x[8], const word y[8]) - { - word w2 = 0, w1 = 0, w0 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 0], y[ 0]); - z[ 0] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[ 0], y[ 1]); - word3_muladd(&w0, &w2, &w1, x[ 1], y[ 0]); - z[ 1] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[ 0], y[ 2]); - word3_muladd(&w1, &w0, &w2, x[ 1], y[ 1]); - word3_muladd(&w1, &w0, &w2, x[ 2], y[ 0]); - z[ 2] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 0], y[ 3]); - word3_muladd(&w2, &w1, &w0, x[ 1], y[ 2]); - word3_muladd(&w2, &w1, &w0, x[ 2], y[ 1]); - word3_muladd(&w2, &w1, &w0, x[ 3], y[ 0]); - z[ 3] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[ 0], y[ 4]); - word3_muladd(&w0, &w2, &w1, x[ 1], y[ 3]); - word3_muladd(&w0, &w2, &w1, x[ 2], y[ 2]); - word3_muladd(&w0, &w2, &w1, x[ 3], y[ 1]); - word3_muladd(&w0, &w2, &w1, x[ 4], y[ 0]); - z[ 4] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[ 0], y[ 5]); - word3_muladd(&w1, &w0, &w2, x[ 1], y[ 4]); - word3_muladd(&w1, &w0, &w2, x[ 2], y[ 3]); - word3_muladd(&w1, &w0, &w2, x[ 3], y[ 2]); - word3_muladd(&w1, &w0, &w2, x[ 4], y[ 1]); - word3_muladd(&w1, &w0, &w2, x[ 5], y[ 0]); - z[ 5] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 0], y[ 6]); - word3_muladd(&w2, &w1, &w0, x[ 1], y[ 5]); - word3_muladd(&w2, &w1, &w0, x[ 2], y[ 4]); - word3_muladd(&w2, &w1, &w0, x[ 3], y[ 3]); - word3_muladd(&w2, &w1, &w0, x[ 4], y[ 2]); - word3_muladd(&w2, &w1, &w0, x[ 5], y[ 1]); - word3_muladd(&w2, &w1, &w0, x[ 6], y[ 0]); - z[ 6] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[ 0], y[ 7]); - word3_muladd(&w0, &w2, &w1, x[ 1], y[ 6]); - word3_muladd(&w0, &w2, &w1, x[ 2], y[ 5]); - word3_muladd(&w0, &w2, &w1, x[ 3], y[ 4]); - word3_muladd(&w0, &w2, &w1, x[ 4], y[ 3]); - word3_muladd(&w0, &w2, &w1, x[ 5], y[ 2]); - word3_muladd(&w0, &w2, &w1, x[ 6], y[ 1]); - word3_muladd(&w0, &w2, &w1, x[ 7], y[ 0]); - z[ 7] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[ 1], y[ 7]); - word3_muladd(&w1, &w0, &w2, x[ 2], y[ 6]); - word3_muladd(&w1, &w0, &w2, x[ 3], y[ 5]); - word3_muladd(&w1, &w0, &w2, x[ 4], y[ 4]); - word3_muladd(&w1, &w0, &w2, x[ 5], y[ 3]); - word3_muladd(&w1, &w0, &w2, x[ 6], y[ 2]); - word3_muladd(&w1, &w0, &w2, x[ 7], y[ 1]); - z[ 8] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 2], y[ 7]); - word3_muladd(&w2, &w1, &w0, x[ 3], y[ 6]); - word3_muladd(&w2, &w1, &w0, x[ 4], y[ 5]); - word3_muladd(&w2, &w1, &w0, x[ 5], y[ 4]); - word3_muladd(&w2, &w1, &w0, x[ 6], y[ 3]); - word3_muladd(&w2, &w1, &w0, x[ 7], y[ 2]); - z[ 9] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[ 3], y[ 7]); - word3_muladd(&w0, &w2, &w1, x[ 4], y[ 6]); - word3_muladd(&w0, &w2, &w1, x[ 5], y[ 5]); - word3_muladd(&w0, &w2, &w1, x[ 6], y[ 4]); - word3_muladd(&w0, &w2, &w1, x[ 7], y[ 3]); - z[10] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[ 4], y[ 7]); - word3_muladd(&w1, &w0, &w2, x[ 5], y[ 6]); - word3_muladd(&w1, &w0, &w2, x[ 6], y[ 5]); - word3_muladd(&w1, &w0, &w2, x[ 7], y[ 4]); - z[11] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 5], y[ 7]); - word3_muladd(&w2, &w1, &w0, x[ 6], y[ 6]); - word3_muladd(&w2, &w1, &w0, x[ 7], y[ 5]); - z[12] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[ 6], y[ 7]); - word3_muladd(&w0, &w2, &w1, x[ 7], y[ 6]); - z[13] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[ 7], y[ 7]); - z[14] = w2; - z[15] = w0; - } - -/* -* Comba 16x16 Squaring -*/ -void bigint_comba_sqr16(word z[32], const word x[16]) - { - word w2 = 0, w1 = 0, w0 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 0], x[ 0]); - z[ 0] = w0; w0 = 0; - - word3_muladd_2(&w0, &w2, &w1, x[ 0], x[ 1]); - z[ 1] = w1; w1 = 0; - - word3_muladd_2(&w1, &w0, &w2, x[ 0], x[ 2]); - word3_muladd(&w1, &w0, &w2, x[ 1], x[ 1]); - z[ 2] = w2; w2 = 0; - - word3_muladd_2(&w2, &w1, &w0, x[ 0], x[ 3]); - word3_muladd_2(&w2, &w1, &w0, x[ 1], x[ 2]); - z[ 3] = w0; w0 = 0; - - word3_muladd_2(&w0, &w2, &w1, x[ 0], x[ 4]); - word3_muladd_2(&w0, &w2, &w1, x[ 1], x[ 3]); - word3_muladd(&w0, &w2, &w1, x[ 2], x[ 2]); - z[ 4] = w1; w1 = 0; - - word3_muladd_2(&w1, &w0, &w2, x[ 0], x[ 5]); - word3_muladd_2(&w1, &w0, &w2, x[ 1], x[ 4]); - word3_muladd_2(&w1, &w0, &w2, x[ 2], x[ 3]); - z[ 5] = w2; w2 = 0; - - word3_muladd_2(&w2, &w1, &w0, x[ 0], x[ 6]); - word3_muladd_2(&w2, &w1, &w0, x[ 1], x[ 5]); - word3_muladd_2(&w2, &w1, &w0, x[ 2], x[ 4]); - word3_muladd(&w2, &w1, &w0, x[ 3], x[ 3]); - z[ 6] = w0; w0 = 0; - - word3_muladd_2(&w0, &w2, &w1, x[ 0], x[ 7]); - word3_muladd_2(&w0, &w2, &w1, x[ 1], x[ 6]); - word3_muladd_2(&w0, &w2, &w1, x[ 2], x[ 5]); - word3_muladd_2(&w0, &w2, &w1, x[ 3], x[ 4]); - z[ 7] = w1; w1 = 0; - - word3_muladd_2(&w1, &w0, &w2, x[ 0], x[ 8]); - word3_muladd_2(&w1, &w0, &w2, x[ 1], x[ 7]); - word3_muladd_2(&w1, &w0, &w2, x[ 2], x[ 6]); - word3_muladd_2(&w1, &w0, &w2, x[ 3], x[ 5]); - word3_muladd(&w1, &w0, &w2, x[ 4], x[ 4]); - z[ 8] = w2; w2 = 0; - - word3_muladd_2(&w2, &w1, &w0, x[ 0], x[ 9]); - word3_muladd_2(&w2, &w1, &w0, x[ 1], x[ 8]); - word3_muladd_2(&w2, &w1, &w0, x[ 2], x[ 7]); - word3_muladd_2(&w2, &w1, &w0, x[ 3], x[ 6]); - word3_muladd_2(&w2, &w1, &w0, x[ 4], x[ 5]); - z[ 9] = w0; w0 = 0; - - word3_muladd_2(&w0, &w2, &w1, x[ 0], x[10]); - word3_muladd_2(&w0, &w2, &w1, x[ 1], x[ 9]); - word3_muladd_2(&w0, &w2, &w1, x[ 2], x[ 8]); - word3_muladd_2(&w0, &w2, &w1, x[ 3], x[ 7]); - word3_muladd_2(&w0, &w2, &w1, x[ 4], x[ 6]); - word3_muladd(&w0, &w2, &w1, x[ 5], x[ 5]); - z[10] = w1; w1 = 0; - - word3_muladd_2(&w1, &w0, &w2, x[ 0], x[11]); - word3_muladd_2(&w1, &w0, &w2, x[ 1], x[10]); - word3_muladd_2(&w1, &w0, &w2, x[ 2], x[ 9]); - word3_muladd_2(&w1, &w0, &w2, x[ 3], x[ 8]); - word3_muladd_2(&w1, &w0, &w2, x[ 4], x[ 7]); - word3_muladd_2(&w1, &w0, &w2, x[ 5], x[ 6]); - z[11] = w2; w2 = 0; - - word3_muladd_2(&w2, &w1, &w0, x[ 0], x[12]); - word3_muladd_2(&w2, &w1, &w0, x[ 1], x[11]); - word3_muladd_2(&w2, &w1, &w0, x[ 2], x[10]); - word3_muladd_2(&w2, &w1, &w0, x[ 3], x[ 9]); - word3_muladd_2(&w2, &w1, &w0, x[ 4], x[ 8]); - word3_muladd_2(&w2, &w1, &w0, x[ 5], x[ 7]); - word3_muladd(&w2, &w1, &w0, x[ 6], x[ 6]); - z[12] = w0; w0 = 0; - - word3_muladd_2(&w0, &w2, &w1, x[ 0], x[13]); - word3_muladd_2(&w0, &w2, &w1, x[ 1], x[12]); - word3_muladd_2(&w0, &w2, &w1, x[ 2], x[11]); - word3_muladd_2(&w0, &w2, &w1, x[ 3], x[10]); - word3_muladd_2(&w0, &w2, &w1, x[ 4], x[ 9]); - word3_muladd_2(&w0, &w2, &w1, x[ 5], x[ 8]); - word3_muladd_2(&w0, &w2, &w1, x[ 6], x[ 7]); - z[13] = w1; w1 = 0; - - word3_muladd_2(&w1, &w0, &w2, x[ 0], x[14]); - word3_muladd_2(&w1, &w0, &w2, x[ 1], x[13]); - word3_muladd_2(&w1, &w0, &w2, x[ 2], x[12]); - word3_muladd_2(&w1, &w0, &w2, x[ 3], x[11]); - word3_muladd_2(&w1, &w0, &w2, x[ 4], x[10]); - word3_muladd_2(&w1, &w0, &w2, x[ 5], x[ 9]); - word3_muladd_2(&w1, &w0, &w2, x[ 6], x[ 8]); - word3_muladd(&w1, &w0, &w2, x[ 7], x[ 7]); - z[14] = w2; w2 = 0; - - word3_muladd_2(&w2, &w1, &w0, x[ 0], x[15]); - word3_muladd_2(&w2, &w1, &w0, x[ 1], x[14]); - word3_muladd_2(&w2, &w1, &w0, x[ 2], x[13]); - word3_muladd_2(&w2, &w1, &w0, x[ 3], x[12]); - word3_muladd_2(&w2, &w1, &w0, x[ 4], x[11]); - word3_muladd_2(&w2, &w1, &w0, x[ 5], x[10]); - word3_muladd_2(&w2, &w1, &w0, x[ 6], x[ 9]); - word3_muladd_2(&w2, &w1, &w0, x[ 7], x[ 8]); - z[15] = w0; w0 = 0; - - word3_muladd_2(&w0, &w2, &w1, x[ 1], x[15]); - word3_muladd_2(&w0, &w2, &w1, x[ 2], x[14]); - word3_muladd_2(&w0, &w2, &w1, x[ 3], x[13]); - word3_muladd_2(&w0, &w2, &w1, x[ 4], x[12]); - word3_muladd_2(&w0, &w2, &w1, x[ 5], x[11]); - word3_muladd_2(&w0, &w2, &w1, x[ 6], x[10]); - word3_muladd_2(&w0, &w2, &w1, x[ 7], x[ 9]); - word3_muladd(&w0, &w2, &w1, x[ 8], x[ 8]); - z[16] = w1; w1 = 0; - - word3_muladd_2(&w1, &w0, &w2, x[ 2], x[15]); - word3_muladd_2(&w1, &w0, &w2, x[ 3], x[14]); - word3_muladd_2(&w1, &w0, &w2, x[ 4], x[13]); - word3_muladd_2(&w1, &w0, &w2, x[ 5], x[12]); - word3_muladd_2(&w1, &w0, &w2, x[ 6], x[11]); - word3_muladd_2(&w1, &w0, &w2, x[ 7], x[10]); - word3_muladd_2(&w1, &w0, &w2, x[ 8], x[ 9]); - z[17] = w2; w2 = 0; - - word3_muladd_2(&w2, &w1, &w0, x[ 3], x[15]); - word3_muladd_2(&w2, &w1, &w0, x[ 4], x[14]); - word3_muladd_2(&w2, &w1, &w0, x[ 5], x[13]); - word3_muladd_2(&w2, &w1, &w0, x[ 6], x[12]); - word3_muladd_2(&w2, &w1, &w0, x[ 7], x[11]); - word3_muladd_2(&w2, &w1, &w0, x[ 8], x[10]); - word3_muladd(&w2, &w1, &w0, x[ 9], x[ 9]); - z[18] = w0; w0 = 0; - - word3_muladd_2(&w0, &w2, &w1, x[ 4], x[15]); - word3_muladd_2(&w0, &w2, &w1, x[ 5], x[14]); - word3_muladd_2(&w0, &w2, &w1, x[ 6], x[13]); - word3_muladd_2(&w0, &w2, &w1, x[ 7], x[12]); - word3_muladd_2(&w0, &w2, &w1, x[ 8], x[11]); - word3_muladd_2(&w0, &w2, &w1, x[ 9], x[10]); - z[19] = w1; w1 = 0; - - word3_muladd_2(&w1, &w0, &w2, x[ 5], x[15]); - word3_muladd_2(&w1, &w0, &w2, x[ 6], x[14]); - word3_muladd_2(&w1, &w0, &w2, x[ 7], x[13]); - word3_muladd_2(&w1, &w0, &w2, x[ 8], x[12]); - word3_muladd_2(&w1, &w0, &w2, x[ 9], x[11]); - word3_muladd(&w1, &w0, &w2, x[10], x[10]); - z[20] = w2; w2 = 0; - - word3_muladd_2(&w2, &w1, &w0, x[ 6], x[15]); - word3_muladd_2(&w2, &w1, &w0, x[ 7], x[14]); - word3_muladd_2(&w2, &w1, &w0, x[ 8], x[13]); - word3_muladd_2(&w2, &w1, &w0, x[ 9], x[12]); - word3_muladd_2(&w2, &w1, &w0, x[10], x[11]); - z[21] = w0; w0 = 0; - - word3_muladd_2(&w0, &w2, &w1, x[ 7], x[15]); - word3_muladd_2(&w0, &w2, &w1, x[ 8], x[14]); - word3_muladd_2(&w0, &w2, &w1, x[ 9], x[13]); - word3_muladd_2(&w0, &w2, &w1, x[10], x[12]); - word3_muladd(&w0, &w2, &w1, x[11], x[11]); - z[22] = w1; w1 = 0; - - word3_muladd_2(&w1, &w0, &w2, x[ 8], x[15]); - word3_muladd_2(&w1, &w0, &w2, x[ 9], x[14]); - word3_muladd_2(&w1, &w0, &w2, x[10], x[13]); - word3_muladd_2(&w1, &w0, &w2, x[11], x[12]); - z[23] = w2; w2 = 0; - - word3_muladd_2(&w2, &w1, &w0, x[ 9], x[15]); - word3_muladd_2(&w2, &w1, &w0, x[10], x[14]); - word3_muladd_2(&w2, &w1, &w0, x[11], x[13]); - word3_muladd(&w2, &w1, &w0, x[12], x[12]); - z[24] = w0; w0 = 0; - - word3_muladd_2(&w0, &w2, &w1, x[10], x[15]); - word3_muladd_2(&w0, &w2, &w1, x[11], x[14]); - word3_muladd_2(&w0, &w2, &w1, x[12], x[13]); - z[25] = w1; w1 = 0; - - word3_muladd_2(&w1, &w0, &w2, x[11], x[15]); - word3_muladd_2(&w1, &w0, &w2, x[12], x[14]); - word3_muladd(&w1, &w0, &w2, x[13], x[13]); - z[26] = w2; w2 = 0; - - word3_muladd_2(&w2, &w1, &w0, x[12], x[15]); - word3_muladd_2(&w2, &w1, &w0, x[13], x[14]); - z[27] = w0; w0 = 0; - - word3_muladd_2(&w0, &w2, &w1, x[13], x[15]); - word3_muladd(&w0, &w2, &w1, x[14], x[14]); - z[28] = w1; w1 = 0; - - word3_muladd_2(&w1, &w0, &w2, x[14], x[15]); - z[29] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[15], x[15]); - z[30] = w0; - z[31] = w1; - } - -/* -* Comba 16x16 Multiplication -*/ -void bigint_comba_mul16(word z[32], const word x[16], const word y[16]) - { - word w2 = 0, w1 = 0, w0 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 0], y[ 0]); - z[ 0] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[ 0], y[ 1]); - word3_muladd(&w0, &w2, &w1, x[ 1], y[ 0]); - z[ 1] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[ 0], y[ 2]); - word3_muladd(&w1, &w0, &w2, x[ 1], y[ 1]); - word3_muladd(&w1, &w0, &w2, x[ 2], y[ 0]); - z[ 2] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 0], y[ 3]); - word3_muladd(&w2, &w1, &w0, x[ 1], y[ 2]); - word3_muladd(&w2, &w1, &w0, x[ 2], y[ 1]); - word3_muladd(&w2, &w1, &w0, x[ 3], y[ 0]); - z[ 3] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[ 0], y[ 4]); - word3_muladd(&w0, &w2, &w1, x[ 1], y[ 3]); - word3_muladd(&w0, &w2, &w1, x[ 2], y[ 2]); - word3_muladd(&w0, &w2, &w1, x[ 3], y[ 1]); - word3_muladd(&w0, &w2, &w1, x[ 4], y[ 0]); - z[ 4] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[ 0], y[ 5]); - word3_muladd(&w1, &w0, &w2, x[ 1], y[ 4]); - word3_muladd(&w1, &w0, &w2, x[ 2], y[ 3]); - word3_muladd(&w1, &w0, &w2, x[ 3], y[ 2]); - word3_muladd(&w1, &w0, &w2, x[ 4], y[ 1]); - word3_muladd(&w1, &w0, &w2, x[ 5], y[ 0]); - z[ 5] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 0], y[ 6]); - word3_muladd(&w2, &w1, &w0, x[ 1], y[ 5]); - word3_muladd(&w2, &w1, &w0, x[ 2], y[ 4]); - word3_muladd(&w2, &w1, &w0, x[ 3], y[ 3]); - word3_muladd(&w2, &w1, &w0, x[ 4], y[ 2]); - word3_muladd(&w2, &w1, &w0, x[ 5], y[ 1]); - word3_muladd(&w2, &w1, &w0, x[ 6], y[ 0]); - z[ 6] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[ 0], y[ 7]); - word3_muladd(&w0, &w2, &w1, x[ 1], y[ 6]); - word3_muladd(&w0, &w2, &w1, x[ 2], y[ 5]); - word3_muladd(&w0, &w2, &w1, x[ 3], y[ 4]); - word3_muladd(&w0, &w2, &w1, x[ 4], y[ 3]); - word3_muladd(&w0, &w2, &w1, x[ 5], y[ 2]); - word3_muladd(&w0, &w2, &w1, x[ 6], y[ 1]); - word3_muladd(&w0, &w2, &w1, x[ 7], y[ 0]); - z[ 7] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[ 0], y[ 8]); - word3_muladd(&w1, &w0, &w2, x[ 1], y[ 7]); - word3_muladd(&w1, &w0, &w2, x[ 2], y[ 6]); - word3_muladd(&w1, &w0, &w2, x[ 3], y[ 5]); - word3_muladd(&w1, &w0, &w2, x[ 4], y[ 4]); - word3_muladd(&w1, &w0, &w2, x[ 5], y[ 3]); - word3_muladd(&w1, &w0, &w2, x[ 6], y[ 2]); - word3_muladd(&w1, &w0, &w2, x[ 7], y[ 1]); - word3_muladd(&w1, &w0, &w2, x[ 8], y[ 0]); - z[ 8] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 0], y[ 9]); - word3_muladd(&w2, &w1, &w0, x[ 1], y[ 8]); - word3_muladd(&w2, &w1, &w0, x[ 2], y[ 7]); - word3_muladd(&w2, &w1, &w0, x[ 3], y[ 6]); - word3_muladd(&w2, &w1, &w0, x[ 4], y[ 5]); - word3_muladd(&w2, &w1, &w0, x[ 5], y[ 4]); - word3_muladd(&w2, &w1, &w0, x[ 6], y[ 3]); - word3_muladd(&w2, &w1, &w0, x[ 7], y[ 2]); - word3_muladd(&w2, &w1, &w0, x[ 8], y[ 1]); - word3_muladd(&w2, &w1, &w0, x[ 9], y[ 0]); - z[ 9] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[ 0], y[10]); - word3_muladd(&w0, &w2, &w1, x[ 1], y[ 9]); - word3_muladd(&w0, &w2, &w1, x[ 2], y[ 8]); - word3_muladd(&w0, &w2, &w1, x[ 3], y[ 7]); - word3_muladd(&w0, &w2, &w1, x[ 4], y[ 6]); - word3_muladd(&w0, &w2, &w1, x[ 5], y[ 5]); - word3_muladd(&w0, &w2, &w1, x[ 6], y[ 4]); - word3_muladd(&w0, &w2, &w1, x[ 7], y[ 3]); - word3_muladd(&w0, &w2, &w1, x[ 8], y[ 2]); - word3_muladd(&w0, &w2, &w1, x[ 9], y[ 1]); - word3_muladd(&w0, &w2, &w1, x[10], y[ 0]); - z[10] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[ 0], y[11]); - word3_muladd(&w1, &w0, &w2, x[ 1], y[10]); - word3_muladd(&w1, &w0, &w2, x[ 2], y[ 9]); - word3_muladd(&w1, &w0, &w2, x[ 3], y[ 8]); - word3_muladd(&w1, &w0, &w2, x[ 4], y[ 7]); - word3_muladd(&w1, &w0, &w2, x[ 5], y[ 6]); - word3_muladd(&w1, &w0, &w2, x[ 6], y[ 5]); - word3_muladd(&w1, &w0, &w2, x[ 7], y[ 4]); - word3_muladd(&w1, &w0, &w2, x[ 8], y[ 3]); - word3_muladd(&w1, &w0, &w2, x[ 9], y[ 2]); - word3_muladd(&w1, &w0, &w2, x[10], y[ 1]); - word3_muladd(&w1, &w0, &w2, x[11], y[ 0]); - z[11] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 0], y[12]); - word3_muladd(&w2, &w1, &w0, x[ 1], y[11]); - word3_muladd(&w2, &w1, &w0, x[ 2], y[10]); - word3_muladd(&w2, &w1, &w0, x[ 3], y[ 9]); - word3_muladd(&w2, &w1, &w0, x[ 4], y[ 8]); - word3_muladd(&w2, &w1, &w0, x[ 5], y[ 7]); - word3_muladd(&w2, &w1, &w0, x[ 6], y[ 6]); - word3_muladd(&w2, &w1, &w0, x[ 7], y[ 5]); - word3_muladd(&w2, &w1, &w0, x[ 8], y[ 4]); - word3_muladd(&w2, &w1, &w0, x[ 9], y[ 3]); - word3_muladd(&w2, &w1, &w0, x[10], y[ 2]); - word3_muladd(&w2, &w1, &w0, x[11], y[ 1]); - word3_muladd(&w2, &w1, &w0, x[12], y[ 0]); - z[12] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[ 0], y[13]); - word3_muladd(&w0, &w2, &w1, x[ 1], y[12]); - word3_muladd(&w0, &w2, &w1, x[ 2], y[11]); - word3_muladd(&w0, &w2, &w1, x[ 3], y[10]); - word3_muladd(&w0, &w2, &w1, x[ 4], y[ 9]); - word3_muladd(&w0, &w2, &w1, x[ 5], y[ 8]); - word3_muladd(&w0, &w2, &w1, x[ 6], y[ 7]); - word3_muladd(&w0, &w2, &w1, x[ 7], y[ 6]); - word3_muladd(&w0, &w2, &w1, x[ 8], y[ 5]); - word3_muladd(&w0, &w2, &w1, x[ 9], y[ 4]); - word3_muladd(&w0, &w2, &w1, x[10], y[ 3]); - word3_muladd(&w0, &w2, &w1, x[11], y[ 2]); - word3_muladd(&w0, &w2, &w1, x[12], y[ 1]); - word3_muladd(&w0, &w2, &w1, x[13], y[ 0]); - z[13] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[ 0], y[14]); - word3_muladd(&w1, &w0, &w2, x[ 1], y[13]); - word3_muladd(&w1, &w0, &w2, x[ 2], y[12]); - word3_muladd(&w1, &w0, &w2, x[ 3], y[11]); - word3_muladd(&w1, &w0, &w2, x[ 4], y[10]); - word3_muladd(&w1, &w0, &w2, x[ 5], y[ 9]); - word3_muladd(&w1, &w0, &w2, x[ 6], y[ 8]); - word3_muladd(&w1, &w0, &w2, x[ 7], y[ 7]); - word3_muladd(&w1, &w0, &w2, x[ 8], y[ 6]); - word3_muladd(&w1, &w0, &w2, x[ 9], y[ 5]); - word3_muladd(&w1, &w0, &w2, x[10], y[ 4]); - word3_muladd(&w1, &w0, &w2, x[11], y[ 3]); - word3_muladd(&w1, &w0, &w2, x[12], y[ 2]); - word3_muladd(&w1, &w0, &w2, x[13], y[ 1]); - word3_muladd(&w1, &w0, &w2, x[14], y[ 0]); - z[14] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 0], y[15]); - word3_muladd(&w2, &w1, &w0, x[ 1], y[14]); - word3_muladd(&w2, &w1, &w0, x[ 2], y[13]); - word3_muladd(&w2, &w1, &w0, x[ 3], y[12]); - word3_muladd(&w2, &w1, &w0, x[ 4], y[11]); - word3_muladd(&w2, &w1, &w0, x[ 5], y[10]); - word3_muladd(&w2, &w1, &w0, x[ 6], y[ 9]); - word3_muladd(&w2, &w1, &w0, x[ 7], y[ 8]); - word3_muladd(&w2, &w1, &w0, x[ 8], y[ 7]); - word3_muladd(&w2, &w1, &w0, x[ 9], y[ 6]); - word3_muladd(&w2, &w1, &w0, x[10], y[ 5]); - word3_muladd(&w2, &w1, &w0, x[11], y[ 4]); - word3_muladd(&w2, &w1, &w0, x[12], y[ 3]); - word3_muladd(&w2, &w1, &w0, x[13], y[ 2]); - word3_muladd(&w2, &w1, &w0, x[14], y[ 1]); - word3_muladd(&w2, &w1, &w0, x[15], y[ 0]); - z[15] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[ 1], y[15]); - word3_muladd(&w0, &w2, &w1, x[ 2], y[14]); - word3_muladd(&w0, &w2, &w1, x[ 3], y[13]); - word3_muladd(&w0, &w2, &w1, x[ 4], y[12]); - word3_muladd(&w0, &w2, &w1, x[ 5], y[11]); - word3_muladd(&w0, &w2, &w1, x[ 6], y[10]); - word3_muladd(&w0, &w2, &w1, x[ 7], y[ 9]); - word3_muladd(&w0, &w2, &w1, x[ 8], y[ 8]); - word3_muladd(&w0, &w2, &w1, x[ 9], y[ 7]); - word3_muladd(&w0, &w2, &w1, x[10], y[ 6]); - word3_muladd(&w0, &w2, &w1, x[11], y[ 5]); - word3_muladd(&w0, &w2, &w1, x[12], y[ 4]); - word3_muladd(&w0, &w2, &w1, x[13], y[ 3]); - word3_muladd(&w0, &w2, &w1, x[14], y[ 2]); - word3_muladd(&w0, &w2, &w1, x[15], y[ 1]); - z[16] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[ 2], y[15]); - word3_muladd(&w1, &w0, &w2, x[ 3], y[14]); - word3_muladd(&w1, &w0, &w2, x[ 4], y[13]); - word3_muladd(&w1, &w0, &w2, x[ 5], y[12]); - word3_muladd(&w1, &w0, &w2, x[ 6], y[11]); - word3_muladd(&w1, &w0, &w2, x[ 7], y[10]); - word3_muladd(&w1, &w0, &w2, x[ 8], y[ 9]); - word3_muladd(&w1, &w0, &w2, x[ 9], y[ 8]); - word3_muladd(&w1, &w0, &w2, x[10], y[ 7]); - word3_muladd(&w1, &w0, &w2, x[11], y[ 6]); - word3_muladd(&w1, &w0, &w2, x[12], y[ 5]); - word3_muladd(&w1, &w0, &w2, x[13], y[ 4]); - word3_muladd(&w1, &w0, &w2, x[14], y[ 3]); - word3_muladd(&w1, &w0, &w2, x[15], y[ 2]); - z[17] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 3], y[15]); - word3_muladd(&w2, &w1, &w0, x[ 4], y[14]); - word3_muladd(&w2, &w1, &w0, x[ 5], y[13]); - word3_muladd(&w2, &w1, &w0, x[ 6], y[12]); - word3_muladd(&w2, &w1, &w0, x[ 7], y[11]); - word3_muladd(&w2, &w1, &w0, x[ 8], y[10]); - word3_muladd(&w2, &w1, &w0, x[ 9], y[ 9]); - word3_muladd(&w2, &w1, &w0, x[10], y[ 8]); - word3_muladd(&w2, &w1, &w0, x[11], y[ 7]); - word3_muladd(&w2, &w1, &w0, x[12], y[ 6]); - word3_muladd(&w2, &w1, &w0, x[13], y[ 5]); - word3_muladd(&w2, &w1, &w0, x[14], y[ 4]); - word3_muladd(&w2, &w1, &w0, x[15], y[ 3]); - z[18] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[ 4], y[15]); - word3_muladd(&w0, &w2, &w1, x[ 5], y[14]); - word3_muladd(&w0, &w2, &w1, x[ 6], y[13]); - word3_muladd(&w0, &w2, &w1, x[ 7], y[12]); - word3_muladd(&w0, &w2, &w1, x[ 8], y[11]); - word3_muladd(&w0, &w2, &w1, x[ 9], y[10]); - word3_muladd(&w0, &w2, &w1, x[10], y[ 9]); - word3_muladd(&w0, &w2, &w1, x[11], y[ 8]); - word3_muladd(&w0, &w2, &w1, x[12], y[ 7]); - word3_muladd(&w0, &w2, &w1, x[13], y[ 6]); - word3_muladd(&w0, &w2, &w1, x[14], y[ 5]); - word3_muladd(&w0, &w2, &w1, x[15], y[ 4]); - z[19] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[ 5], y[15]); - word3_muladd(&w1, &w0, &w2, x[ 6], y[14]); - word3_muladd(&w1, &w0, &w2, x[ 7], y[13]); - word3_muladd(&w1, &w0, &w2, x[ 8], y[12]); - word3_muladd(&w1, &w0, &w2, x[ 9], y[11]); - word3_muladd(&w1, &w0, &w2, x[10], y[10]); - word3_muladd(&w1, &w0, &w2, x[11], y[ 9]); - word3_muladd(&w1, &w0, &w2, x[12], y[ 8]); - word3_muladd(&w1, &w0, &w2, x[13], y[ 7]); - word3_muladd(&w1, &w0, &w2, x[14], y[ 6]); - word3_muladd(&w1, &w0, &w2, x[15], y[ 5]); - z[20] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 6], y[15]); - word3_muladd(&w2, &w1, &w0, x[ 7], y[14]); - word3_muladd(&w2, &w1, &w0, x[ 8], y[13]); - word3_muladd(&w2, &w1, &w0, x[ 9], y[12]); - word3_muladd(&w2, &w1, &w0, x[10], y[11]); - word3_muladd(&w2, &w1, &w0, x[11], y[10]); - word3_muladd(&w2, &w1, &w0, x[12], y[ 9]); - word3_muladd(&w2, &w1, &w0, x[13], y[ 8]); - word3_muladd(&w2, &w1, &w0, x[14], y[ 7]); - word3_muladd(&w2, &w1, &w0, x[15], y[ 6]); - z[21] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[ 7], y[15]); - word3_muladd(&w0, &w2, &w1, x[ 8], y[14]); - word3_muladd(&w0, &w2, &w1, x[ 9], y[13]); - word3_muladd(&w0, &w2, &w1, x[10], y[12]); - word3_muladd(&w0, &w2, &w1, x[11], y[11]); - word3_muladd(&w0, &w2, &w1, x[12], y[10]); - word3_muladd(&w0, &w2, &w1, x[13], y[ 9]); - word3_muladd(&w0, &w2, &w1, x[14], y[ 8]); - word3_muladd(&w0, &w2, &w1, x[15], y[ 7]); - z[22] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[ 8], y[15]); - word3_muladd(&w1, &w0, &w2, x[ 9], y[14]); - word3_muladd(&w1, &w0, &w2, x[10], y[13]); - word3_muladd(&w1, &w0, &w2, x[11], y[12]); - word3_muladd(&w1, &w0, &w2, x[12], y[11]); - word3_muladd(&w1, &w0, &w2, x[13], y[10]); - word3_muladd(&w1, &w0, &w2, x[14], y[ 9]); - word3_muladd(&w1, &w0, &w2, x[15], y[ 8]); - z[23] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[ 9], y[15]); - word3_muladd(&w2, &w1, &w0, x[10], y[14]); - word3_muladd(&w2, &w1, &w0, x[11], y[13]); - word3_muladd(&w2, &w1, &w0, x[12], y[12]); - word3_muladd(&w2, &w1, &w0, x[13], y[11]); - word3_muladd(&w2, &w1, &w0, x[14], y[10]); - word3_muladd(&w2, &w1, &w0, x[15], y[ 9]); - z[24] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[10], y[15]); - word3_muladd(&w0, &w2, &w1, x[11], y[14]); - word3_muladd(&w0, &w2, &w1, x[12], y[13]); - word3_muladd(&w0, &w2, &w1, x[13], y[12]); - word3_muladd(&w0, &w2, &w1, x[14], y[11]); - word3_muladd(&w0, &w2, &w1, x[15], y[10]); - z[25] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[11], y[15]); - word3_muladd(&w1, &w0, &w2, x[12], y[14]); - word3_muladd(&w1, &w0, &w2, x[13], y[13]); - word3_muladd(&w1, &w0, &w2, x[14], y[12]); - word3_muladd(&w1, &w0, &w2, x[15], y[11]); - z[26] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[12], y[15]); - word3_muladd(&w2, &w1, &w0, x[13], y[14]); - word3_muladd(&w2, &w1, &w0, x[14], y[13]); - word3_muladd(&w2, &w1, &w0, x[15], y[12]); - z[27] = w0; w0 = 0; - - word3_muladd(&w0, &w2, &w1, x[13], y[15]); - word3_muladd(&w0, &w2, &w1, x[14], y[14]); - word3_muladd(&w0, &w2, &w1, x[15], y[13]); - z[28] = w1; w1 = 0; - - word3_muladd(&w1, &w0, &w2, x[14], y[15]); - word3_muladd(&w1, &w0, &w2, x[15], y[14]); - z[29] = w2; w2 = 0; - - word3_muladd(&w2, &w1, &w0, x[15], y[15]); - z[30] = w0; - z[31] = w1; - } - -} - -} diff --git a/src/botan/src/math/mp/mp_core.h b/src/botan/src/math/mp/mp_core.h deleted file mode 100644 index 82bdbad53..000000000 --- a/src/botan/src/math/mp/mp_core.h +++ /dev/null @@ -1,159 +0,0 @@ -/* -* MPI Algorithms -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MP_CORE_H__ -#define BOTAN_MP_CORE_H__ - -#include - -namespace Botan { - -/* -* The size of the word type, in bits -*/ -const size_t MP_WORD_BITS = BOTAN_MP_WORD_BITS; - -extern "C" { - -/* -* Addition/Subtraction Operations -*/ -void bigint_add2(word x[], size_t x_size, - const word y[], size_t y_size); - -void bigint_add3(word z[], - const word x[], size_t x_size, - const word y[], size_t y_size); - -word bigint_add2_nc(word x[], size_t x_size, const word y[], size_t y_size); - -word bigint_add3_nc(word z[], - const word x[], size_t x_size, - const word y[], size_t y_size); - -word bigint_sub2(word x[], size_t x_size, - const word y[], size_t y_size); - -/** -* x = y - x; assumes y >= x -*/ -void bigint_sub2_rev(word x[], const word y[], size_t y_size); - -word bigint_sub3(word z[], - const word x[], size_t x_size, - const word y[], size_t y_size); - -/* -* Shift Operations -*/ -void bigint_shl1(word x[], size_t x_size, - size_t word_shift, size_t bit_shift); - -void bigint_shr1(word x[], size_t x_size, - size_t word_shift, size_t bit_shift); - -void bigint_shl2(word y[], const word x[], size_t x_size, - size_t word_shift, size_t bit_shift); - -void bigint_shr2(word y[], const word x[], size_t x_size, - size_t word_shift, size_t bit_shift); - -/* -* Simple O(N^2) Multiplication and Squaring -*/ -void bigint_simple_mul(word z[], - const word x[], size_t x_size, - const word y[], size_t y_size); - -void bigint_simple_sqr(word z[], const word x[], size_t x_size); - -/* -* Linear Multiply -*/ -void bigint_linmul2(word x[], size_t x_size, word y); -void bigint_linmul3(word z[], const word x[], size_t x_size, word y); - -/** -* Montgomery Reduction -* @param z integer to reduce (also output in first p_size+1 words) -* @param z_size size of z (should be >= 2*p_size+1) -* @param p modulus -* @param p_size size of p -* @param p_dash Montgomery value -* @param workspace array of at least 2*(p_size+1) words -*/ -void bigint_monty_redc(word z[], size_t z_size, - const word p[], size_t p_size, word p_dash, - word workspace[]); - -/* -* Montgomery Multiplication -*/ -void bigint_monty_mul(word z[], size_t z_size, - const word x[], size_t x_size, size_t x_sw, - const word y[], size_t y_size, size_t y_sw, - const word p[], size_t p_size, word p_dash, - word workspace[]); - -/* -* Montgomery Squaring -*/ -void bigint_monty_sqr(word z[], size_t z_size, - const word x[], size_t x_size, size_t x_sw, - const word p[], size_t p_size, word p_dash, - word workspace[]); - -/* -* Division operation -*/ -size_t bigint_divcore(word q, word y2, word y1, - word x3, word x2, word x1); - -/** -* Compare x and y -*/ -s32bit bigint_cmp(const word x[], size_t x_size, - const word y[], size_t y_size); - -/** -* Compute ((n1< -mp_asm.h -mp_asmi.h - diff --git a/src/botan/src/math/mp/mp_generic/mp_asm.h b/src/botan/src/math/mp/mp_generic/mp_asm.h deleted file mode 100644 index 7c18343ef..000000000 --- a/src/botan/src/math/mp/mp_generic/mp_asm.h +++ /dev/null @@ -1,54 +0,0 @@ -/* -* Lowest Level MPI Algorithms -* (C) 1999-2008 Jack Lloyd -* 2006 Luca Piccarreta -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MP_ASM_H__ -#define BOTAN_MP_ASM_H__ - -#include - -#if (BOTAN_MP_WORD_BITS == 8) - typedef Botan::u16bit dword; -#elif (BOTAN_MP_WORD_BITS == 16) - typedef Botan::u32bit dword; -#elif (BOTAN_MP_WORD_BITS == 32) - typedef Botan::u64bit dword; -#elif (BOTAN_MP_WORD_BITS == 64) - #error BOTAN_MP_WORD_BITS can be 64 only with assembly support -#else - #error BOTAN_MP_WORD_BITS must be 8, 16, 32, or 64 -#endif - -namespace Botan { - -extern "C" { - -/* -* Word Multiply/Add -*/ -inline word word_madd2(word a, word b, word* c) - { - dword z = (dword)a * b + *c; - *c = (word)(z >> BOTAN_MP_WORD_BITS); - return (word)z; - } - -/* -* Word Multiply/Add -*/ -inline word word_madd3(word a, word b, word c, word* d) - { - dword z = (dword)a * b + c + *d; - *d = (word)(z >> BOTAN_MP_WORD_BITS); - return (word)z; - } - -} - -} - -#endif diff --git a/src/botan/src/math/mp/mp_generic/mp_asmi.h b/src/botan/src/math/mp/mp_generic/mp_asmi.h deleted file mode 100644 index 8225f372d..000000000 --- a/src/botan/src/math/mp/mp_generic/mp_asmi.h +++ /dev/null @@ -1,207 +0,0 @@ -/* -* Lowest Level MPI Algorithms -* (C) 1999-2010 Jack Lloyd -* 2006 Luca Piccarreta -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MP_ASM_INTERNAL_H__ -#define BOTAN_MP_ASM_INTERNAL_H__ - -#include - -namespace Botan { - -extern "C" { - -/* -* Word Addition -*/ -inline word word_add(word x, word y, word* carry) - { - word z = x + y; - word c1 = (z < x); - z += *carry; - *carry = c1 | (z < *carry); - return z; - } - -/* -* Eight Word Block Addition, Two Argument -*/ -inline word word8_add2(word x[8], const word y[8], word carry) - { - x[0] = word_add(x[0], y[0], &carry); - x[1] = word_add(x[1], y[1], &carry); - x[2] = word_add(x[2], y[2], &carry); - x[3] = word_add(x[3], y[3], &carry); - x[4] = word_add(x[4], y[4], &carry); - x[5] = word_add(x[5], y[5], &carry); - x[6] = word_add(x[6], y[6], &carry); - x[7] = word_add(x[7], y[7], &carry); - return carry; - } - -/* -* Eight Word Block Addition, Three Argument -*/ -inline word word8_add3(word z[8], const word x[8], - const word y[8], word carry) - { - z[0] = word_add(x[0], y[0], &carry); - z[1] = word_add(x[1], y[1], &carry); - z[2] = word_add(x[2], y[2], &carry); - z[3] = word_add(x[3], y[3], &carry); - z[4] = word_add(x[4], y[4], &carry); - z[5] = word_add(x[5], y[5], &carry); - z[6] = word_add(x[6], y[6], &carry); - z[7] = word_add(x[7], y[7], &carry); - return carry; - } - -/* -* Word Subtraction -*/ -inline word word_sub(word x, word y, word* carry) - { - word t0 = x - y; - word c1 = (t0 > x); - word z = t0 - *carry; - *carry = c1 | (z > t0); - return z; - } - -/* -* Eight Word Block Subtraction, Two Argument -*/ -inline word word8_sub2(word x[8], const word y[8], word carry) - { - x[0] = word_sub(x[0], y[0], &carry); - x[1] = word_sub(x[1], y[1], &carry); - x[2] = word_sub(x[2], y[2], &carry); - x[3] = word_sub(x[3], y[3], &carry); - x[4] = word_sub(x[4], y[4], &carry); - x[5] = word_sub(x[5], y[5], &carry); - x[6] = word_sub(x[6], y[6], &carry); - x[7] = word_sub(x[7], y[7], &carry); - return carry; - } - -/* -* Eight Word Block Subtraction, Two Argument -*/ -inline word word8_sub2_rev(word x[8], const word y[8], word carry) - { - x[0] = word_sub(y[0], x[0], &carry); - x[1] = word_sub(y[1], x[1], &carry); - x[2] = word_sub(y[2], x[2], &carry); - x[3] = word_sub(y[3], x[3], &carry); - x[4] = word_sub(y[4], x[4], &carry); - x[5] = word_sub(y[5], x[5], &carry); - x[6] = word_sub(y[6], x[6], &carry); - x[7] = word_sub(y[7], x[7], &carry); - return carry; - } - -/* -* Eight Word Block Subtraction, Three Argument -*/ -inline word word8_sub3(word z[8], const word x[8], - const word y[8], word carry) - { - z[0] = word_sub(x[0], y[0], &carry); - z[1] = word_sub(x[1], y[1], &carry); - z[2] = word_sub(x[2], y[2], &carry); - z[3] = word_sub(x[3], y[3], &carry); - z[4] = word_sub(x[4], y[4], &carry); - z[5] = word_sub(x[5], y[5], &carry); - z[6] = word_sub(x[6], y[6], &carry); - z[7] = word_sub(x[7], y[7], &carry); - return carry; - } - -/* -* Eight Word Block Linear Multiplication -*/ -inline word word8_linmul2(word x[8], word y, word carry) - { - x[0] = word_madd2(x[0], y, &carry); - x[1] = word_madd2(x[1], y, &carry); - x[2] = word_madd2(x[2], y, &carry); - x[3] = word_madd2(x[3], y, &carry); - x[4] = word_madd2(x[4], y, &carry); - x[5] = word_madd2(x[5], y, &carry); - x[6] = word_madd2(x[6], y, &carry); - x[7] = word_madd2(x[7], y, &carry); - return carry; - } - -/* -* Eight Word Block Linear Multiplication -*/ -inline word word8_linmul3(word z[8], const word x[8], word y, word carry) - { - z[0] = word_madd2(x[0], y, &carry); - z[1] = word_madd2(x[1], y, &carry); - z[2] = word_madd2(x[2], y, &carry); - z[3] = word_madd2(x[3], y, &carry); - z[4] = word_madd2(x[4], y, &carry); - z[5] = word_madd2(x[5], y, &carry); - z[6] = word_madd2(x[6], y, &carry); - z[7] = word_madd2(x[7], y, &carry); - return carry; - } - -/* -* Eight Word Block Multiply/Add -*/ -inline word word8_madd3(word z[8], const word x[8], word y, word carry) - { - z[0] = word_madd3(x[0], y, z[0], &carry); - z[1] = word_madd3(x[1], y, z[1], &carry); - z[2] = word_madd3(x[2], y, z[2], &carry); - z[3] = word_madd3(x[3], y, z[3], &carry); - z[4] = word_madd3(x[4], y, z[4], &carry); - z[5] = word_madd3(x[5], y, z[5], &carry); - z[6] = word_madd3(x[6], y, z[6], &carry); - z[7] = word_madd3(x[7], y, z[7], &carry); - return carry; - } - -/* -* Multiply-Add Accumulator -*/ -inline void word3_muladd(word* w2, word* w1, word* w0, word a, word b) - { - word carry = *w0; - *w0 = word_madd2(a, b, &carry); - *w1 += carry; - *w2 += (*w1 < carry) ? 1 : 0; - } - -/* -* Multiply-Add Accumulator -*/ -inline void word3_muladd_2(word* w2, word* w1, word* w0, word a, word b) - { - word carry = 0; - a = word_madd2(a, b, &carry); - b = carry; - - word top = (b >> (BOTAN_MP_WORD_BITS-1)); - b <<= 1; - b |= (a >> (BOTAN_MP_WORD_BITS-1)); - a <<= 1; - - carry = 0; - *w0 = word_add(*w0, a, &carry); - *w1 = word_add(*w1, b, &carry); - *w2 = word_add(*w2, top, &carry); - } - -} - -} - -#endif diff --git a/src/botan/src/math/mp/mp_karat.cpp b/src/botan/src/math/mp/mp_karat.cpp deleted file mode 100644 index 945b3b61a..000000000 --- a/src/botan/src/math/mp/mp_karat.cpp +++ /dev/null @@ -1,344 +0,0 @@ -/* -* Karatsuba Multiplication/Squaring -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -namespace { - -/* -* Karatsuba Multiplication Operation -*/ -void karatsuba_mul(word z[], const word x[], const word y[], size_t N, - word workspace[]) - { - if(N < BOTAN_KARAT_MUL_THRESHOLD || N % 2) - { - if(N == 6) - return bigint_comba_mul6(z, x, y); - else if(N == 8) - return bigint_comba_mul8(z, x, y); - else if(N == 16) - return bigint_comba_mul16(z, x, y); - else - return bigint_simple_mul(z, x, N, y, N); - } - - const size_t N2 = N / 2; - - const word* x0 = x; - const word* x1 = x + N2; - const word* y0 = y; - const word* y1 = y + N2; - word* z0 = z; - word* z1 = z + N; - - const s32bit cmp0 = bigint_cmp(x0, N2, x1, N2); - const s32bit cmp1 = bigint_cmp(y1, N2, y0, N2); - - clear_mem(workspace, 2*N); - - //if(cmp0 && cmp1) - { - if(cmp0 > 0) - bigint_sub3(z0, x0, N2, x1, N2); - else - bigint_sub3(z0, x1, N2, x0, N2); - - if(cmp1 > 0) - bigint_sub3(z1, y1, N2, y0, N2); - else - bigint_sub3(z1, y0, N2, y1, N2); - - karatsuba_mul(workspace, z0, z1, N2, workspace+N); - } - - karatsuba_mul(z0, x0, y0, N2, workspace+N); - karatsuba_mul(z1, x1, y1, N2, workspace+N); - - const size_t blocks_of_8 = N - (N % 8); - - word ws_carry = 0; - - for(size_t j = 0; j != blocks_of_8; j += 8) - ws_carry = word8_add3(workspace + N + j, z0 + j, z1 + j, ws_carry); - - for(size_t j = blocks_of_8; j != N; ++j) - workspace[N + j] = word_add(z0[j], z1[j], &ws_carry); - - word z_carry = 0; - - for(size_t j = 0; j != blocks_of_8; j += 8) - z_carry = word8_add2(z + N2 + j, workspace + N + j, z_carry); - - for(size_t j = blocks_of_8; j != N; ++j) - z[N2 + j] = word_add(z[N2 + j], workspace[N + j], &z_carry); - - z[N + N2] = word_add(z[N + N2], ws_carry, &z_carry); - - if(z_carry) - for(size_t j = 1; j != N2; ++j) - if(++z[N + N2 + j]) - break; - - if((cmp0 == cmp1) || (cmp0 == 0) || (cmp1 == 0)) - bigint_add2(z + N2, 2*N-N2, workspace, N); - else - bigint_sub2(z + N2, 2*N-N2, workspace, N); - } - -/* -* Karatsuba Squaring Operation -*/ -void karatsuba_sqr(word z[], const word x[], size_t N, word workspace[]) - { - if(N < BOTAN_KARAT_SQR_THRESHOLD || N % 2) - { - if(N == 6) - return bigint_comba_sqr6(z, x); - else if(N == 8) - return bigint_comba_sqr8(z, x); - else if(N == 16) - return bigint_comba_sqr16(z, x); - else - return bigint_simple_sqr(z, x, N); - } - - const size_t N2 = N / 2; - - const word* x0 = x; - const word* x1 = x + N2; - word* z0 = z; - word* z1 = z + N; - - const s32bit cmp = bigint_cmp(x0, N2, x1, N2); - - clear_mem(workspace, 2*N); - - //if(cmp) - { - if(cmp > 0) - bigint_sub3(z0, x0, N2, x1, N2); - else - bigint_sub3(z0, x1, N2, x0, N2); - - karatsuba_sqr(workspace, z0, N2, workspace+N); - } - - karatsuba_sqr(z0, x0, N2, workspace+N); - karatsuba_sqr(z1, x1, N2, workspace+N); - - const size_t blocks_of_8 = N - (N % 8); - - word ws_carry = 0; - - for(size_t j = 0; j != blocks_of_8; j += 8) - ws_carry = word8_add3(workspace + N + j, z0 + j, z1 + j, ws_carry); - - for(size_t j = blocks_of_8; j != N; ++j) - workspace[N + j] = word_add(z0[j], z1[j], &ws_carry); - - word z_carry = 0; - - for(size_t j = 0; j != blocks_of_8; j += 8) - z_carry = word8_add2(z + N2 + j, workspace + N + j, z_carry); - - for(size_t j = blocks_of_8; j != N; ++j) - z[N2 + j] = word_add(z[N2 + j], workspace[N + j], &z_carry); - - z[N + N2] = word_add(z[N + N2], ws_carry, &z_carry); - - if(z_carry) - for(size_t j = 1; j != N2; ++j) - if(++z[N + N2 + j]) - break; - - /* - * This is only actually required if cmp is != 0, however - * if cmp==0 then workspace[0:N] == 0 and avoiding the jump - * hides a timing channel. - */ - bigint_sub2(z + N2, 2*N-N2, workspace, N); - } - -/* -* Pick a good size for the Karatsuba multiply -*/ -size_t karatsuba_size(size_t z_size, - size_t x_size, size_t x_sw, - size_t y_size, size_t y_sw) - { - if(x_sw > x_size || x_sw > y_size || y_sw > x_size || y_sw > y_size) - return 0; - - if(((x_size == x_sw) && (x_size % 2)) || - ((y_size == y_sw) && (y_size % 2))) - return 0; - - const size_t start = (x_sw > y_sw) ? x_sw : y_sw; - const size_t end = (x_size < y_size) ? x_size : y_size; - - if(start == end) - { - if(start % 2) - return 0; - return start; - } - - for(size_t j = start; j <= end; ++j) - { - if(j % 2) - continue; - - if(2*j > z_size) - return 0; - - if(x_sw <= j && j <= x_size && y_sw <= j && j <= y_size) - { - if(j % 4 == 2 && - (j+2) <= x_size && (j+2) <= y_size && 2*(j+2) <= z_size) - return j+2; - return j; - } - } - - return 0; - } - -/* -* Pick a good size for the Karatsuba squaring -*/ -size_t karatsuba_size(size_t z_size, size_t x_size, size_t x_sw) - { - if(x_sw == x_size) - { - if(x_sw % 2) - return 0; - return x_sw; - } - - for(size_t j = x_sw; j <= x_size; ++j) - { - if(j % 2) - continue; - - if(2*j > z_size) - return 0; - - if(j % 4 == 2 && (j+2) <= x_size && 2*(j+2) <= z_size) - return j+2; - return j; - } - - return 0; - } - -} - -/* -* Multiplication Algorithm Dispatcher -*/ -void bigint_mul(word z[], size_t z_size, word workspace[], - const word x[], size_t x_size, size_t x_sw, - const word y[], size_t y_size, size_t y_sw) - { - if(x_sw == 1) - { - bigint_linmul3(z, y, y_sw, x[0]); - } - else if(y_sw == 1) - { - bigint_linmul3(z, x, x_sw, y[0]); - } - else if(x_sw <= 4 && x_size >= 4 && - y_sw <= 4 && y_size >= 4 && z_size >= 8) - { - bigint_comba_mul4(z, x, y); - } - else if(x_sw <= 6 && x_size >= 6 && - y_sw <= 6 && y_size >= 6 && z_size >= 12) - { - bigint_comba_mul6(z, x, y); - } - else if(x_sw <= 8 && x_size >= 8 && - y_sw <= 8 && y_size >= 8 && z_size >= 16) - { - bigint_comba_mul8(z, x, y); - } - else if(x_sw <= 16 && x_size >= 16 && - y_sw <= 16 && y_size >= 16 && z_size >= 32) - { - bigint_comba_mul16(z, x, y); - } - else if(x_sw < BOTAN_KARAT_MUL_THRESHOLD || - y_sw < BOTAN_KARAT_MUL_THRESHOLD || - !workspace) - { - bigint_simple_mul(z, x, x_sw, y, y_sw); - } - else - { - const size_t N = karatsuba_size(z_size, x_size, x_sw, y_size, y_sw); - - if(N) - { - clear_mem(workspace, 2*N); - karatsuba_mul(z, x, y, N, workspace); - } - else - bigint_simple_mul(z, x, x_sw, y, y_sw); - } - } - -/* -* Squaring Algorithm Dispatcher -*/ -void bigint_sqr(word z[], size_t z_size, word workspace[], - const word x[], size_t x_size, size_t x_sw) - { - if(x_sw == 1) - { - bigint_linmul3(z, x, x_sw, x[0]); - } - else if(x_sw <= 4 && x_size >= 4 && z_size >= 8) - { - bigint_comba_sqr4(z, x); - } - else if(x_sw <= 6 && x_size >= 6 && z_size >= 12) - { - bigint_comba_sqr6(z, x); - } - else if(x_sw <= 8 && x_size >= 8 && z_size >= 16) - { - bigint_comba_sqr8(z, x); - } - else if(x_sw <= 16 && x_size >= 16 && z_size >= 32) - { - bigint_comba_sqr16(z, x); - } - else if(x_size < BOTAN_KARAT_SQR_THRESHOLD || !workspace) - { - bigint_simple_sqr(z, x, x_sw); - } - else - { - const size_t N = karatsuba_size(z_size, x_size, x_sw); - - if(N) - { - clear_mem(workspace, 2*N); - karatsuba_sqr(z, x, N, workspace); - } - else - bigint_simple_sqr(z, x, x_sw); - } - } - -} diff --git a/src/botan/src/math/mp/mp_misc.cpp b/src/botan/src/math/mp/mp_misc.cpp deleted file mode 100644 index 0232f01d6..000000000 --- a/src/botan/src/math/mp/mp_misc.cpp +++ /dev/null @@ -1,102 +0,0 @@ -/* -* MP Misc Functions -* (C) 1999-2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -namespace Botan { - -extern "C" { - -/* -* Core Division Operation -*/ -size_t bigint_divcore(word q, word y2, word y1, - word x3, word x2, word x1) - { - // Compute (y2,y1) * q - - word y3 = 0; - y1 = word_madd2(q, y1, &y3); - y2 = word_madd2(q, y2, &y3); - - // Return (y3,y2,y1) >? (x3,x2,x1) - - if(y3 > x3) return 1; - if(y3 < x3) return 0; - if(y2 > x2) return 1; - if(y2 < x2) return 0; - if(y1 > x1) return 1; - if(y1 < x1) return 0; - return 0; - } - -/* -* Compare two MP integers -*/ -s32bit bigint_cmp(const word x[], size_t x_size, - const word y[], size_t y_size) - { - if(x_size < y_size) { return (-bigint_cmp(y, y_size, x, x_size)); } - - while(x_size > y_size) - { - if(x[x_size-1]) - return 1; - x_size--; - } - - for(size_t j = x_size; j > 0; --j) - { - if(x[j-1] > y[j-1]) - return 1; - if(x[j-1] < y[j-1]) - return -1; - } - - return 0; - } - -/* -* Do a 2-word/1-word Division -*/ -word bigint_divop(word n1, word n0, word d) - { - word high = n1 % d, quotient = 0; - - for(size_t j = 0; j != MP_WORD_BITS; ++j) - { - word high_top_bit = (high & MP_WORD_TOP_BIT); - - high <<= 1; - high |= (n0 >> (MP_WORD_BITS-1-j)) & 1; - quotient <<= 1; - - if(high_top_bit || high >= d) - { - high -= d; - quotient |= 1; - } - } - - return quotient; - } - -/* -* Do a 2-word/1-word Modulo -*/ -word bigint_modop(word n1, word n0, word d) - { - word z = bigint_divop(n1, n0, d); - word dummy = 0; - z = word_madd2(z, d, &dummy); - return (n0-z); - } - -} - -} diff --git a/src/botan/src/math/mp/mp_monty.cpp b/src/botan/src/math/mp/mp_monty.cpp deleted file mode 100644 index d37fb5844..000000000 --- a/src/botan/src/math/mp/mp_monty.cpp +++ /dev/null @@ -1,99 +0,0 @@ -/* -* Montgomery Reduction -* (C) 1999-2011 Jack Lloyd -* 2006 Luca Piccarreta -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -namespace Botan { - -extern "C" { - -/* -* Montgomery Reduction Algorithm -*/ -void bigint_monty_redc(word z[], size_t z_size, - const word p[], size_t p_size, - word p_dash, word ws[]) - { - const size_t blocks_of_8 = p_size - (p_size % 8); - - for(size_t i = 0; i != p_size; ++i) - { - word* z_i = z + i; - - const word y = z_i[0] * p_dash; - - /* - bigint_linmul3(ws, p, p_size, y); - bigint_add2(z_i, z_size - i, ws, p_size+1); - */ - - word carry = 0; - - for(size_t j = 0; j != blocks_of_8; j += 8) - carry = word8_madd3(z_i + j, p + j, y, carry); - - for(size_t j = blocks_of_8; j != p_size; ++j) - z_i[j] = word_madd3(p[j], y, z_i[j], &carry); - - word z_sum = z_i[p_size] + carry; - carry = (z_sum < z_i[p_size]); - z_i[p_size] = z_sum; - - for(size_t j = p_size + 1; carry && j != z_size - i; ++j) - { - ++z_i[j]; - carry = !z_i[j]; - } - } - - word borrow = 0; - for(size_t i = 0; i != p_size; ++i) - ws[i] = word_sub(z[p_size + i], p[i], &borrow); - - ws[p_size] = word_sub(z[p_size+p_size], 0, &borrow); - - copy_mem(ws + p_size + 1, z + p_size, p_size + 1); - - copy_mem(z, ws + borrow*(p_size+1), p_size + 1); - clear_mem(z + p_size + 1, z_size - p_size - 1); - } - -void bigint_monty_mul(word z[], size_t z_size, - const word x[], size_t x_size, size_t x_sw, - const word y[], size_t y_size, size_t y_sw, - const word p[], size_t p_size, word p_dash, - word ws[]) - { - bigint_mul(&z[0], z_size, &ws[0], - &x[0], x_size, x_sw, - &y[0], y_size, y_sw); - - bigint_monty_redc(&z[0], z_size, - &p[0], p_size, p_dash, - &ws[0]); - } - -void bigint_monty_sqr(word z[], size_t z_size, - const word x[], size_t x_size, size_t x_sw, - const word p[], size_t p_size, word p_dash, - word ws[]) - { - bigint_sqr(&z[0], z_size, &ws[0], - &x[0], x_size, x_sw); - - bigint_monty_redc(&z[0], z_size, - &p[0], p_size, p_dash, - &ws[0]); - } - -} - -} diff --git a/src/botan/src/math/mp/mp_msvc64/info.txt b/src/botan/src/math/mp/mp_msvc64/info.txt deleted file mode 100644 index fa7d90fed..000000000 --- a/src/botan/src/math/mp/mp_msvc64/info.txt +++ /dev/null @@ -1,17 +0,0 @@ -load_on dep - -mp_bits 64 - - -mp_asm.h -mp_generic:mp_asmi.h - - - -x86_64 -ia64 - - - -msvc - diff --git a/src/botan/src/math/mp/mp_msvc64/mp_asm.h b/src/botan/src/math/mp/mp_msvc64/mp_asm.h deleted file mode 100644 index 8e4535c35..000000000 --- a/src/botan/src/math/mp/mp_msvc64/mp_asm.h +++ /dev/null @@ -1,61 +0,0 @@ -/* -* Multiply-Add for 64-bit MSVC -* (C) 2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MP_ASM_H__ -#define BOTAN_MP_ASM_H__ - -#include -#include - -#if (BOTAN_MP_WORD_BITS != 64) - #error The mp_msvc64 module requires that BOTAN_MP_WORD_BITS == 64 -#endif - -#pragma intrinsic(_umul128) - -namespace Botan { - -extern "C" { - -/* -* Word Multiply -*/ -inline word word_madd2(word a, word b, word* c) - { - word hi, lo; - lo = _umul128(a, b, &hi); - - lo += *c; - hi += (lo < *c); // carry? - - *c = hi; - return lo; - } - -/* -* Word Multiply/Add -*/ -inline word word_madd3(word a, word b, word c, word* d) - { - word hi, lo; - lo = _umul128(a, b, &hi); - - lo += c; - hi += (lo < c); // carry? - - lo += *d; - hi += (lo < *d); // carry? - - *d = hi; - return lo; - } - -} - -} - -#endif diff --git a/src/botan/src/math/mp/mp_mulop.cpp b/src/botan/src/math/mp/mp_mulop.cpp deleted file mode 100644 index e6a8ba891..000000000 --- a/src/botan/src/math/mp/mp_mulop.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* -* Simple O(N^2) Multiplication and Squaring -* (C) 1999-2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -namespace Botan { - -extern "C" { - -/* -* Simple O(N^2) Multiplication -*/ -void bigint_simple_mul(word z[], const word x[], size_t x_size, - const word y[], size_t y_size) - { - const size_t x_size_8 = x_size - (x_size % 8); - - clear_mem(z, x_size + y_size); - - for(size_t i = 0; i != y_size; ++i) - { - const word y_i = y[i]; - - word carry = 0; - - for(size_t j = 0; j != x_size_8; j += 8) - carry = word8_madd3(z + i + j, x + j, y_i, carry); - - for(size_t j = x_size_8; j != x_size; ++j) - z[i+j] = word_madd3(x[j], y_i, z[i+j], &carry); - - z[x_size+i] = carry; - } - } - -/* -* Simple O(N^2) Squaring -* -* This is exactly the same algorithm as bigint_simple_mul, however -* because C/C++ compilers suck at alias analysis it is good to have -* the version where the compiler knows that x == y -* -* There is an O(n^1.5) squaring algorithm specified in Handbook of -* Applied Cryptography, chapter 14 -* -*/ -void bigint_simple_sqr(word z[], const word x[], size_t x_size) - { - const size_t x_size_8 = x_size - (x_size % 8); - - clear_mem(z, 2*x_size); - - for(size_t i = 0; i != x_size; ++i) - { - const word x_i = x[i]; - word carry = 0; - - for(size_t j = 0; j != x_size_8; j += 8) - carry = word8_madd3(z + i + j, x + j, x_i, carry); - - for(size_t j = x_size_8; j != x_size; ++j) - z[i+j] = word_madd3(x[j], x_i, z[i+j], &carry); - - z[x_size+i] = carry; - } - } - -} - -} diff --git a/src/botan/src/math/mp/mp_shift.cpp b/src/botan/src/math/mp/mp_shift.cpp deleted file mode 100644 index 0531658ec..000000000 --- a/src/botan/src/math/mp/mp_shift.cpp +++ /dev/null @@ -1,138 +0,0 @@ -/* -* MP Shift Algorithms -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -namespace Botan { - -extern "C" { - -/* -* Single Operand Left Shift -*/ -void bigint_shl1(word x[], size_t x_size, size_t word_shift, size_t bit_shift) - { - if(word_shift) - { - for(size_t j = 1; j != x_size + 1; ++j) - x[(x_size - j) + word_shift] = x[x_size - j]; - clear_mem(x, word_shift); - } - - if(bit_shift) - { - word carry = 0; - for(size_t j = word_shift; j != x_size + word_shift + 1; ++j) - { - word temp = x[j]; - x[j] = (temp << bit_shift) | carry; - carry = (temp >> (MP_WORD_BITS - bit_shift)); - } - } - } - -/* -* Single Operand Right Shift -*/ -void bigint_shr1(word x[], size_t x_size, size_t word_shift, size_t bit_shift) - { - if(x_size < word_shift) - { - clear_mem(x, x_size); - return; - } - - if(word_shift) - { - copy_mem(x, x + word_shift, x_size - word_shift); - clear_mem(x + x_size - word_shift, word_shift); - } - - if(bit_shift) - { - word carry = 0; - - size_t top = x_size - word_shift; - - while(top >= 4) - { - word w = x[top-1]; - x[top-1] = (w >> bit_shift) | carry; - carry = (w << (MP_WORD_BITS - bit_shift)); - - w = x[top-2]; - x[top-2] = (w >> bit_shift) | carry; - carry = (w << (MP_WORD_BITS - bit_shift)); - - w = x[top-3]; - x[top-3] = (w >> bit_shift) | carry; - carry = (w << (MP_WORD_BITS - bit_shift)); - - w = x[top-4]; - x[top-4] = (w >> bit_shift) | carry; - carry = (w << (MP_WORD_BITS - bit_shift)); - - top -= 4; - } - - while(top) - { - word w = x[top-1]; - x[top-1] = (w >> bit_shift) | carry; - carry = (w << (MP_WORD_BITS - bit_shift)); - - top--; - } - } - } - -/* -* Two Operand Left Shift -*/ -void bigint_shl2(word y[], const word x[], size_t x_size, - size_t word_shift, size_t bit_shift) - { - for(size_t j = 0; j != x_size; ++j) - y[j + word_shift] = x[j]; - if(bit_shift) - { - word carry = 0; - for(size_t j = word_shift; j != x_size + word_shift + 1; ++j) - { - word w = y[j]; - y[j] = (w << bit_shift) | carry; - carry = (w >> (MP_WORD_BITS - bit_shift)); - } - } - } - -/* -* Two Operand Right Shift -*/ -void bigint_shr2(word y[], const word x[], size_t x_size, - size_t word_shift, size_t bit_shift) - { - if(x_size < word_shift) return; - - for(size_t j = 0; j != x_size - word_shift; ++j) - y[j] = x[j + word_shift]; - if(bit_shift) - { - word carry = 0; - for(size_t j = x_size - word_shift; j > 0; --j) - { - word w = y[j-1]; - y[j-1] = (w >> bit_shift) | carry; - carry = (w << (MP_WORD_BITS - bit_shift)); - } - } - } - -} - -} diff --git a/src/botan/src/math/mp/mp_types.h b/src/botan/src/math/mp/mp_types.h deleted file mode 100644 index 1648713ed..000000000 --- a/src/botan/src/math/mp/mp_types.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -* Low Level MPI Types -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MPI_TYPES_H__ -#define BOTAN_MPI_TYPES_H__ - -#include - -namespace Botan { - -#if (BOTAN_MP_WORD_BITS == 8) - typedef byte word; -#elif (BOTAN_MP_WORD_BITS == 16) - typedef u16bit word; -#elif (BOTAN_MP_WORD_BITS == 32) - typedef u32bit word; -#elif (BOTAN_MP_WORD_BITS == 64) - typedef u64bit word; -#else - #error BOTAN_MP_WORD_BITS must be 8, 16, 32, or 64 -#endif - -const word MP_WORD_MASK = ~static_cast(0); -const word MP_WORD_TOP_BIT = static_cast(1) << (8*sizeof(word) - 1); -const word MP_WORD_MAX = MP_WORD_MASK; - -} - -#endif diff --git a/src/botan/src/math/mp/mp_x86_32/info.txt b/src/botan/src/math/mp/mp_x86_32/info.txt deleted file mode 100644 index 432f909f8..000000000 --- a/src/botan/src/math/mp/mp_x86_32/info.txt +++ /dev/null @@ -1,18 +0,0 @@ -load_on dep - -mp_bits 32 - - -mp_asm.h -mp_asmi.h - - - -x86_32 - - - -clang -gcc -icc - diff --git a/src/botan/src/math/mp/mp_x86_32/mp_asm.h b/src/botan/src/math/mp/mp_x86_32/mp_asm.h deleted file mode 100644 index 9be5680f8..000000000 --- a/src/botan/src/math/mp/mp_x86_32/mp_asm.h +++ /dev/null @@ -1,67 +0,0 @@ -/* -* Lowest Level MPI Algorithms -* (C) 1999-2008 Jack Lloyd -* 2006 Luca Piccarreta -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MP_ASM_H__ -#define BOTAN_MP_ASM_H__ - -#include - -#if (BOTAN_MP_WORD_BITS != 32) - #error The mp_x86_32 module requires that BOTAN_MP_WORD_BITS == 32 -#endif - -namespace Botan { - -extern "C" { - -/* -* Helper Macros for x86 Assembly -*/ -#define ASM(x) x "\n\t" - -/* -* Word Multiply -*/ -inline word word_madd2(word a, word b, word* c) - { - asm( - ASM("mull %[b]") - ASM("addl %[c],%[a]") - ASM("adcl $0,%[carry]") - - : [a]"=a"(a), [b]"=rm"(b), [carry]"=&d"(*c) - : "0"(a), "1"(b), [c]"g"(*c) : "cc"); - - return a; - } - -/* -* Word Multiply/Add -*/ -inline word word_madd3(word a, word b, word c, word* d) - { - asm( - ASM("mull %[b]") - - ASM("addl %[c],%[a]") - ASM("adcl $0,%[carry]") - - ASM("addl %[d],%[a]") - ASM("adcl $0,%[carry]") - - : [a]"=a"(a), [b]"=rm"(b), [carry]"=&d"(*d) - : "0"(a), "1"(b), [c]"g"(c), [d]"g"(*d) : "cc"); - - return a; - } - -} - -} - -#endif diff --git a/src/botan/src/math/mp/mp_x86_32/mp_asmi.h b/src/botan/src/math/mp/mp_x86_32/mp_asmi.h deleted file mode 100644 index c7b679e80..000000000 --- a/src/botan/src/math/mp/mp_x86_32/mp_asmi.h +++ /dev/null @@ -1,240 +0,0 @@ -/* -* Lowest Level MPI Algorithms -* (C) 1999-2010 Jack Lloyd -* 2006 Luca Piccarreta -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MP_ASM_INTERNAL_H__ -#define BOTAN_MP_ASM_INTERNAL_H__ - -#include - -namespace Botan { - -extern "C" { - -/* -* Helper Macros for x86 Assembly -*/ -#ifndef ASM - #define ASM(x) x "\n\t" -#endif - -#define ADDSUB2_OP(OPERATION, INDEX) \ - ASM("movl 4*" #INDEX "(%[y]), %[carry]") \ - ASM(OPERATION " %[carry], 4*" #INDEX "(%[x])") \ - -#define ADDSUB3_OP(OPERATION, INDEX) \ - ASM("movl 4*" #INDEX "(%[x]), %[carry]") \ - ASM(OPERATION " 4*" #INDEX "(%[y]), %[carry]") \ - ASM("movl %[carry], 4*" #INDEX "(%[z])") \ - -#define LINMUL_OP(WRITE_TO, INDEX) \ - ASM("movl 4*" #INDEX "(%[x]),%%eax") \ - ASM("mull %[y]") \ - ASM("addl %[carry],%%eax") \ - ASM("adcl $0,%%edx") \ - ASM("movl %%edx,%[carry]") \ - ASM("movl %%eax, 4*" #INDEX "(%[" WRITE_TO "])") - -#define MULADD_OP(IGNORED, INDEX) \ - ASM("movl 4*" #INDEX "(%[x]),%%eax") \ - ASM("mull %[y]") \ - ASM("addl %[carry],%%eax") \ - ASM("adcl $0,%%edx") \ - ASM("addl 4*" #INDEX "(%[z]),%%eax") \ - ASM("adcl $0,%%edx") \ - ASM("movl %%edx,%[carry]") \ - ASM("movl %%eax, 4*" #INDEX " (%[z])") - -#define DO_8_TIMES(MACRO, ARG) \ - MACRO(ARG, 0) \ - MACRO(ARG, 1) \ - MACRO(ARG, 2) \ - MACRO(ARG, 3) \ - MACRO(ARG, 4) \ - MACRO(ARG, 5) \ - MACRO(ARG, 6) \ - MACRO(ARG, 7) - -#define ADD_OR_SUBTRACT(CORE_CODE) \ - ASM("rorl %[carry]") \ - CORE_CODE \ - ASM("sbbl %[carry],%[carry]") \ - ASM("negl %[carry]") - -/* -* Word Addition -*/ -inline word word_add(word x, word y, word* carry) - { - asm( - ADD_OR_SUBTRACT(ASM("adcl %[y],%[x]")) - : [x]"=r"(x), [carry]"=r"(*carry) - : "0"(x), [y]"rm"(y), "1"(*carry) - : "cc"); - return x; - } - -/* -* Eight Word Block Addition, Two Argument -*/ -inline word word8_add2(word x[8], const word y[8], word carry) - { - asm( - ADD_OR_SUBTRACT(DO_8_TIMES(ADDSUB2_OP, "adcl")) - : [carry]"=r"(carry) - : [x]"r"(x), [y]"r"(y), "0"(carry) - : "cc", "memory"); - return carry; - } - -/* -* Eight Word Block Addition, Three Argument -*/ -inline word word8_add3(word z[8], const word x[8], const word y[8], word carry) - { - asm( - ADD_OR_SUBTRACT(DO_8_TIMES(ADDSUB3_OP, "adcl")) - : [carry]"=r"(carry) - : [x]"r"(x), [y]"r"(y), [z]"r"(z), "0"(carry) - : "cc", "memory"); - return carry; - } - -/* -* Word Subtraction -*/ -inline word word_sub(word x, word y, word* carry) - { - asm( - ADD_OR_SUBTRACT(ASM("sbbl %[y],%[x]")) - : [x]"=r"(x), [carry]"=r"(*carry) - : "0"(x), [y]"rm"(y), "1"(*carry) - : "cc"); - return x; - } - -/* -* Eight Word Block Subtraction, Two Argument -*/ -inline word word8_sub2(word x[8], const word y[8], word carry) - { - asm( - ADD_OR_SUBTRACT(DO_8_TIMES(ADDSUB2_OP, "sbbl")) - : [carry]"=r"(carry) - : [x]"r"(x), [y]"r"(y), "0"(carry) - : "cc", "memory"); - return carry; - } - -/* -* Eight Word Block Subtraction, Two Argument -*/ -inline word word8_sub2_rev(word x[8], const word y[8], word carry) - { - asm( - ADD_OR_SUBTRACT(DO_8_TIMES(ADDSUB3_OP, "sbbl")) - : [carry]"=r"(carry) - : [x]"r"(y), [y]"r"(x), [z]"r"(x), "0"(carry) - : "cc", "memory"); - return carry; - } - -/* -* Eight Word Block Subtraction, Three Argument -*/ -inline word word8_sub3(word z[8], const word x[8], const word y[8], word carry) - { - asm( - ADD_OR_SUBTRACT(DO_8_TIMES(ADDSUB3_OP, "sbbl")) - : [carry]"=r"(carry) - : [x]"r"(x), [y]"r"(y), [z]"r"(z), "0"(carry) - : "cc", "memory"); - return carry; - } - -/* -* Eight Word Block Linear Multiplication -*/ -inline word word8_linmul2(word x[8], word y, word carry) - { - asm( - DO_8_TIMES(LINMUL_OP, "x") - : [carry]"=r"(carry) - : [x]"r"(x), [y]"rm"(y), "0"(carry) - : "cc", "%eax", "%edx"); - return carry; - } - -/* -* Eight Word Block Linear Multiplication -*/ -inline word word8_linmul3(word z[8], const word x[8], word y, word carry) - { - asm( - DO_8_TIMES(LINMUL_OP, "z") - : [carry]"=r"(carry) - : [z]"r"(z), [x]"r"(x), [y]"rm"(y), "0"(carry) - : "cc", "%eax", "%edx"); - return carry; - } - -/* -* Eight Word Block Multiply/Add -*/ -inline word word8_madd3(word z[8], const word x[8], word y, word carry) - { - asm( - DO_8_TIMES(MULADD_OP, "") - : [carry]"=r"(carry) - : [z]"r"(z), [x]"r"(x), [y]"rm"(y), "0"(carry) - : "cc", "%eax", "%edx"); - return carry; - } - -/* -* Multiply-Add Accumulator -*/ -inline void word3_muladd(word* w2, word* w1, word* w0, word x, word y) - { - asm( - ASM("mull %[y]") - - ASM("addl %[x],%[w0]") - ASM("adcl %[y],%[w1]") - ASM("adcl $0,%[w2]") - - : [w0]"=r"(*w0), [w1]"=r"(*w1), [w2]"=r"(*w2) - : [x]"a"(x), [y]"d"(y), "0"(*w0), "1"(*w1), "2"(*w2) - : "cc"); - } - -/* -* Multiply-Add Accumulator -*/ -inline void word3_muladd_2(word* w2, word* w1, word* w0, word x, word y) - { - asm( - ASM("mull %[y]") - - ASM("addl %[x],%[w0]") - ASM("adcl %[y],%[w1]") - ASM("adcl $0,%[w2]") - - ASM("addl %[x],%[w0]") - ASM("adcl %[y],%[w1]") - ASM("adcl $0,%[w2]") - - : [w0]"=r"(*w0), [w1]"=r"(*w1), [w2]"=r"(*w2) - : [x]"a"(x), [y]"d"(y), "0"(*w0), "1"(*w1), "2"(*w2) - : "cc"); - } - -} - -} - -#endif diff --git a/src/botan/src/math/mp/mp_x86_32_msvc/info.txt b/src/botan/src/math/mp/mp_x86_32_msvc/info.txt deleted file mode 100644 index 8d35c02e7..000000000 --- a/src/botan/src/math/mp/mp_x86_32_msvc/info.txt +++ /dev/null @@ -1,16 +0,0 @@ -mp_bits 32 - -load_on dep - - -mp_generic:mp_asm.h -mp_asmi.h - - - -x86_32 - - - -msvc - diff --git a/src/botan/src/math/mp/mp_x86_32_msvc/mp_asmi.h b/src/botan/src/math/mp/mp_x86_32_msvc/mp_asmi.h deleted file mode 100644 index aee457d65..000000000 --- a/src/botan/src/math/mp/mp_x86_32_msvc/mp_asmi.h +++ /dev/null @@ -1,542 +0,0 @@ -/* -* Lowest Level MPI Algorithms -* (C) 1999-2010 Jack Lloyd -* 2006 Luca Piccarreta -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MP_ASM_INTERNAL_H__ -#define BOTAN_MP_ASM_INTERNAL_H__ - -#include - -namespace Botan { - -extern "C" { - -/* -* Word Addition -*/ -inline word word_add(word x, word y, word* carry) - { - word z = x + y; - word c1 = (z < x); - z += *carry; - *carry = c1 | (z < *carry); - return z; - } - -/* -* Eight Word Block Addition, Two Argument -*/ -inline word word8_add2(word x[8], const word y[8], word carry) - { - __asm { - mov edx,[x] - mov esi,[y] - xor eax,eax - sub eax,[carry] //force CF=1 iff *carry==1 - mov eax,[esi] - adc [edx],eax - mov eax,[esi+4] - adc [edx+4],eax - mov eax,[esi+8] - adc [edx+8],eax - mov eax,[esi+12] - adc [edx+12],eax - mov eax,[esi+16] - adc [edx+16],eax - mov eax,[esi+20] - adc [edx+20],eax - mov eax,[esi+24] - adc [edx+24],eax - mov eax,[esi+28] - adc [edx+28],eax - sbb eax,eax - neg eax - } - } - -/* -* Eight Word Block Addition, Three Argument -*/ -inline word word8_add3(word z[8], const word x[8], const word y[8], word carry) - { - __asm { - mov edi,[x] - mov esi,[y] - mov ebx,[z] - xor eax,eax - sub eax,[carry] //force CF=1 iff *carry==1 - mov eax,[edi] - adc eax,[esi] - mov [ebx],eax - - mov eax,[edi+4] - adc eax,[esi+4] - mov [ebx+4],eax - - mov eax,[edi+8] - adc eax,[esi+8] - mov [ebx+8],eax - - mov eax,[edi+12] - adc eax,[esi+12] - mov [ebx+12],eax - - mov eax,[edi+16] - adc eax,[esi+16] - mov [ebx+16],eax - - mov eax,[edi+20] - adc eax,[esi+20] - mov [ebx+20],eax - - mov eax,[edi+24] - adc eax,[esi+24] - mov [ebx+24],eax - - mov eax,[edi+28] - adc eax,[esi+28] - mov [ebx+28],eax - - sbb eax,eax - neg eax - } - } - -/* -* Word Subtraction -*/ -inline word word_sub(word x, word y, word* carry) - { - word t0 = x - y; - word c1 = (t0 > x); - word z = t0 - *carry; - *carry = c1 | (z > t0); - return z; - } - -/* -* Eight Word Block Subtraction, Two Argument -*/ -inline word word8_sub2(word x[8], const word y[8], word carry) - { - __asm { - mov edi,[x] - mov esi,[y] - xor eax,eax - sub eax,[carry] //force CF=1 iff *carry==1 - mov eax,[edi] - sbb eax,[esi] - mov [edi],eax - mov eax,[edi+4] - sbb eax,[esi+4] - mov [edi+4],eax - mov eax,[edi+8] - sbb eax,[esi+8] - mov [edi+8],eax - mov eax,[edi+12] - sbb eax,[esi+12] - mov [edi+12],eax - mov eax,[edi+16] - sbb eax,[esi+16] - mov [edi+16],eax - mov eax,[edi+20] - sbb eax,[esi+20] - mov [edi+20],eax - mov eax,[edi+24] - sbb eax,[esi+24] - mov [edi+24],eax - mov eax,[edi+28] - sbb eax,[esi+28] - mov [edi+28],eax - sbb eax,eax - neg eax - } - } - -/* -* Eight Word Block Subtraction, Two Argument -*/ -inline word word8_sub2_rev(word x[8], const word y[8], word carry) - { - x[0] = word_sub(y[0], x[0], &carry); - x[1] = word_sub(y[1], x[1], &carry); - x[2] = word_sub(y[2], x[2], &carry); - x[3] = word_sub(y[3], x[3], &carry); - x[4] = word_sub(y[4], x[4], &carry); - x[5] = word_sub(y[5], x[5], &carry); - x[6] = word_sub(y[6], x[6], &carry); - x[7] = word_sub(y[7], x[7], &carry); - return carry; - } - - -/* -* Eight Word Block Subtraction, Three Argument -*/ -inline word word8_sub3(word z[8], const word x[8], - const word y[8], word carry) - { - __asm { - mov edi,[x] - mov esi,[y] - xor eax,eax - sub eax,[carry] //force CF=1 iff *carry==1 - mov ebx,[z] - mov eax,[edi] - sbb eax,[esi] - mov [ebx],eax - mov eax,[edi+4] - sbb eax,[esi+4] - mov [ebx+4],eax - mov eax,[edi+8] - sbb eax,[esi+8] - mov [ebx+8],eax - mov eax,[edi+12] - sbb eax,[esi+12] - mov [ebx+12],eax - mov eax,[edi+16] - sbb eax,[esi+16] - mov [ebx+16],eax - mov eax,[edi+20] - sbb eax,[esi+20] - mov [ebx+20],eax - mov eax,[edi+24] - sbb eax,[esi+24] - mov [ebx+24],eax - mov eax,[edi+28] - sbb eax,[esi+28] - mov [ebx+28],eax - sbb eax,eax - neg eax - } - } - -/* -* Eight Word Block Linear Multiplication -*/ -inline word word8_linmul2(word x[8], word y, word carry) - { - __asm { - mov esi,[x] - mov eax,[esi] //load a - mul [y] //edx(hi):eax(lo)=a*b - add eax,[carry] //sum lo carry - adc edx,0 //sum hi carry - mov ecx,edx //store carry - mov [esi],eax //load a - - mov eax,[esi+4] //load a - mul [y] //edx(hi):eax(lo)=a*b - add eax,ecx //sum lo carry - adc edx,0 //sum hi carry - mov ecx,edx //store carry - mov [esi+4],eax //load a - - mov eax,[esi+8] //load a - mul [y] //edx(hi):eax(lo)=a*b - add eax,ecx //sum lo carry - adc edx,0 //sum hi carry - mov ecx,edx //store carry - mov [esi+8],eax //load a - - mov eax,[esi+12] //load a - mul [y] //edx(hi):eax(lo)=a*b - add eax,ecx //sum lo carry - adc edx,0 //sum hi carry - mov ecx,edx //store carry - mov [esi+12],eax //load a - - mov eax,[esi+16] //load a - mul [y] //edx(hi):eax(lo)=a*b - add eax,ecx //sum lo carry - adc edx,0 //sum hi carry - mov ecx,edx //store carry - mov [esi+16],eax //load a - - mov eax,[esi+20] //load a - mul [y] //edx(hi):eax(lo)=a*b - add eax,ecx //sum lo carry - adc edx,0 //sum hi carry - mov ecx,edx //store carry - mov [esi+20],eax //load a - - mov eax,[esi+24] //load a - mul [y] //edx(hi):eax(lo)=a*b - add eax,ecx //sum lo carry - adc edx,0 //sum hi carry - mov ecx,edx //store carry - mov [esi+24],eax //load a - - mov eax,[esi+28] //load a - mul [y] //edx(hi):eax(lo)=a*b - add eax,ecx //sum lo carry - adc edx,0 //sum hi carry - mov [esi+28],eax //load a - - mov eax,edx //store carry - } - } - -/* -* Eight Word Block Linear Multiplication -*/ -inline word word8_muladd(word z[8], const word x[8], - word y, word carry) - { - __asm { - mov esi,[x] - mov ebx,[y] - mov edi,[z] - mov eax,[esi] //load a - mul ebx //edx(hi):eax(lo)=a*b - add eax,[carry] //sum lo carry - adc edx,0 //sum hi carry - add eax,[edi] //sum lo z - adc edx,0 //sum hi z - mov ecx,edx //carry for next block = hi z - mov [edi],eax //save lo z - - mov eax,[esi+4] - mul ebx - add eax,ecx - adc edx,0 - add eax,[edi+4] - adc edx,0 - mov ecx,edx - mov [edi+4],eax - - mov eax,[esi+8] - mul ebx - add eax,ecx - adc edx,0 - add eax,[edi+8] - adc edx,0 - mov ecx,edx - mov [edi+8],eax - - mov eax,[esi+12] - mul ebx - add eax,ecx - adc edx,0 - add eax,[edi+12] - adc edx,0 - mov ecx,edx - mov [edi+12],eax - - mov eax,[esi+16] - mul ebx - add eax,ecx - adc edx,0 - add eax,[edi+16] - adc edx,0 - mov ecx,edx - mov [edi+16],eax - - mov eax,[esi+20] - mul ebx - add eax,ecx - adc edx,0 - add eax,[edi+20] - adc edx,0 - mov ecx,edx - mov [edi+20],eax - - mov eax,[esi+24] - mul ebx - add eax,ecx - adc edx,0 - add eax,[edi+24] - adc edx,0 - mov ecx,edx - mov [edi+24],eax - - mov eax,[esi+28] - mul ebx - add eax,ecx - adc edx,0 - add eax,[edi+28] - adc edx,0 - mov [edi+28],eax - mov eax,edx - } - } - -inline word word8_linmul3(word z[4], const word x[4], word y, word carry) - { - __asm { -#if 0 - //it's slower!!! - mov edx,[z] - mov eax,[x] - movd mm7,[y] - - movd mm0,[eax] - movd mm1,[eax+4] - movd mm2,[eax+8] - pmuludq mm0,mm7 - pmuludq mm1,mm7 - pmuludq mm2,mm7 - - movd mm6,[carry] - paddq mm0,mm6 - movd [edx],mm0 - - psrlq mm0,32 - paddq mm1,mm0 - movd [edx+4],mm1 - - movd mm3,[eax+12] - psrlq mm1,32 - paddq mm2,mm1 - movd [edx+8],mm2 - - pmuludq mm3,mm7 - movd mm4,[eax+16] - psrlq mm2,32 - paddq mm3,mm2 - movd [edx+12],mm3 - - pmuludq mm4,mm7 - movd mm5,[eax+20] - psrlq mm3,32 - paddq mm4,mm3 - movd [edx+16],mm4 - - pmuludq mm5,mm7 - movd mm0,[eax+24] - psrlq mm4,32 - paddq mm5,mm4 - movd [edx+20],mm5 - - pmuludq mm0,mm7 - movd mm1,[eax+28] - psrlq mm5,32 - paddq mm0,mm5 - movd [edx+24],mm0 - - pmuludq mm1,mm7 - psrlq mm0,32 - paddq mm1,mm0 - movd [edx+28],mm1 - psrlq mm1,32 - - movd eax,mm1 - emms -#else - mov edi,[z] - mov esi,[x] - mov eax,[esi] //load a - mul [y] //edx(hi):eax(lo)=a*b - add eax,[carry] //sum lo carry - adc edx,0 //sum hi carry - mov ecx,edx //store carry - mov [edi],eax //load a - - mov eax,[esi+4] //load a - mul [y] //edx(hi):eax(lo)=a*b - add eax,ecx //sum lo carry - adc edx,0 //sum hi carry - mov ecx,edx //store carry - mov [edi+4],eax //load a - - mov eax,[esi+8] //load a - mul [y] //edx(hi):eax(lo)=a*b - add eax,ecx //sum lo carry - adc edx,0 //sum hi carry - mov ecx,edx //store carry - mov [edi+8],eax //load a - - mov eax,[esi+12] //load a - mul [y] //edx(hi):eax(lo)=a*b - add eax,ecx //sum lo carry - adc edx,0 //sum hi carry - mov ecx,edx //store carry - mov [edi+12],eax //load a - - mov eax,[esi+16] //load a - mul [y] //edx(hi):eax(lo)=a*b - add eax,ecx //sum lo carry - adc edx,0 //sum hi carry - mov ecx,edx //store carry - mov [edi+16],eax //load a - - mov eax,[esi+20] //load a - mul [y] //edx(hi):eax(lo)=a*b - add eax,ecx //sum lo carry - adc edx,0 //sum hi carry - mov ecx,edx //store carry - mov [edi+20],eax //load a - - mov eax,[esi+24] //load a - mul [y] //edx(hi):eax(lo)=a*b - add eax,ecx //sum lo carry - adc edx,0 //sum hi carry - mov ecx,edx //store carry - mov [edi+24],eax //load a - - mov eax,[esi+28] //load a - mul [y] //edx(hi):eax(lo)=a*b - add eax,ecx //sum lo carry - adc edx,0 //sum hi carry - mov [edi+28],eax //load a - mov eax,edx //store carry -#endif - } - } - -/* -* Eight Word Block Multiply/Add -*/ -inline word word8_madd3(word z[8], const word x[8], word y, word carry) - { - z[0] = word_madd3(x[0], y, z[0], &carry); - z[1] = word_madd3(x[1], y, z[1], &carry); - z[2] = word_madd3(x[2], y, z[2], &carry); - z[3] = word_madd3(x[3], y, z[3], &carry); - z[4] = word_madd3(x[4], y, z[4], &carry); - z[5] = word_madd3(x[5], y, z[5], &carry); - z[6] = word_madd3(x[6], y, z[6], &carry); - z[7] = word_madd3(x[7], y, z[7], &carry); - return carry; - } - -/* -* Multiply-Add Accumulator -*/ -inline void word3_muladd(word* w2, word* w1, word* w0, word a, word b) - { - word carry = *w0; - *w0 = word_madd2(a, b, &carry); - *w1 += carry; - *w2 += (*w1 < carry) ? 1 : 0; - } - -/* -* Multiply-Add Accumulator -*/ -inline void word3_muladd_2(word* w2, word* w1, word* w0, word a, word b) - { - word carry = 0; - a = word_madd2(a, b, &carry); - b = carry; - - word top = (b >> (BOTAN_MP_WORD_BITS-1)); - b <<= 1; - b |= (a >> (BOTAN_MP_WORD_BITS-1)); - a <<= 1; - - carry = 0; - *w0 = word_add(*w0, a, &carry); - *w1 = word_add(*w1, b, &carry); - *w2 = word_add(*w2, top, &carry); - } - -} - -} - -#endif diff --git a/src/botan/src/math/mp/mp_x86_64/info.txt b/src/botan/src/math/mp/mp_x86_64/info.txt deleted file mode 100644 index fdcc05dd6..000000000 --- a/src/botan/src/math/mp/mp_x86_64/info.txt +++ /dev/null @@ -1,18 +0,0 @@ -load_on dep - -mp_bits 64 - - -mp_asm.h -mp_asmi.h - - - -x86_64 - - - -clang -gcc -icc - diff --git a/src/botan/src/math/mp/mp_x86_64/mp_asm.h b/src/botan/src/math/mp/mp_x86_64/mp_asm.h deleted file mode 100644 index edfaf6352..000000000 --- a/src/botan/src/math/mp/mp_x86_64/mp_asm.h +++ /dev/null @@ -1,69 +0,0 @@ -/* -* Lowest Level MPI Algorithms -* (C) 1999-2008 Jack Lloyd -* 2006 Luca Piccarreta -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MP_ASM_H__ -#define BOTAN_MP_ASM_H__ - -#include - -#if (BOTAN_MP_WORD_BITS != 64) - #error The mp_x86_64 module requires that BOTAN_MP_WORD_BITS == 64 -#endif - -namespace Botan { - -extern "C" { - -/* -* Helper Macros for x86-64 Assembly -*/ -#define ASM(x) x "\n\t" - -/* -* Word Multiply -*/ -inline word word_madd2(word a, word b, word* c) - { - asm( - ASM("mulq %[b]") - ASM("addq %[c],%[a]") - ASM("adcq $0,%[carry]") - - : [a]"=a"(a), [b]"=rm"(b), [carry]"=&d"(*c) - : "0"(a), "1"(b), [c]"g"(*c) : "cc"); - - return a; - } - -/* -* Word Multiply/Add -*/ -inline word word_madd3(word a, word b, word c, word* d) - { - asm( - ASM("mulq %[b]") - - ASM("addq %[c],%[a]") - ASM("adcq $0,%[carry]") - - ASM("addq %[d],%[a]") - ASM("adcq $0,%[carry]") - - : [a]"=a"(a), [b]"=rm"(b), [carry]"=&d"(*d) - : "0"(a), "1"(b), [c]"g"(c), [d]"g"(*d) : "cc"); - - return a; - } - -#undef ASM - -} - -} - -#endif diff --git a/src/botan/src/math/mp/mp_x86_64/mp_asmi.h b/src/botan/src/math/mp/mp_x86_64/mp_asmi.h deleted file mode 100644 index f14df0e89..000000000 --- a/src/botan/src/math/mp/mp_x86_64/mp_asmi.h +++ /dev/null @@ -1,248 +0,0 @@ -/* -* Lowest Level MPI Algorithms -* (C) 1999-2010 Jack Lloyd -* 2006 Luca Piccarreta -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MP_ASM_INTERNAL_H__ -#define BOTAN_MP_ASM_INTERNAL_H__ - -#include - -namespace Botan { - -extern "C" { - -/* -* Helper Macros for x86-64 Assembly -*/ -#ifndef ASM - #define ASM(x) x "\n\t" -#endif - -#define ADDSUB2_OP(OPERATION, INDEX) \ - ASM("movq 8*" #INDEX "(%[y]), %[carry]") \ - ASM(OPERATION " %[carry], 8*" #INDEX "(%[x])") \ - -#define ADDSUB3_OP(OPERATION, INDEX) \ - ASM("movq 8*" #INDEX "(%[x]), %[carry]") \ - ASM(OPERATION " 8*" #INDEX "(%[y]), %[carry]") \ - ASM("movq %[carry], 8*" #INDEX "(%[z])") \ - -#define LINMUL_OP(WRITE_TO, INDEX) \ - ASM("movq 8*" #INDEX "(%[x]),%%rax") \ - ASM("mulq %[y]") \ - ASM("addq %[carry],%%rax") \ - ASM("adcq $0,%%rdx") \ - ASM("movq %%rdx,%[carry]") \ - ASM("movq %%rax, 8*" #INDEX "(%[" WRITE_TO "])") - -#define MULADD_OP(IGNORED, INDEX) \ - ASM("movq 8*" #INDEX "(%[x]),%%rax") \ - ASM("mulq %[y]") \ - ASM("addq %[carry],%%rax") \ - ASM("adcq $0,%%rdx") \ - ASM("addq 8*" #INDEX "(%[z]),%%rax") \ - ASM("adcq $0,%%rdx") \ - ASM("movq %%rdx,%[carry]") \ - ASM("movq %%rax, 8*" #INDEX " (%[z])") - -#define DO_8_TIMES(MACRO, ARG) \ - MACRO(ARG, 0) \ - MACRO(ARG, 1) \ - MACRO(ARG, 2) \ - MACRO(ARG, 3) \ - MACRO(ARG, 4) \ - MACRO(ARG, 5) \ - MACRO(ARG, 6) \ - MACRO(ARG, 7) - -#define ADD_OR_SUBTRACT(CORE_CODE) \ - ASM("rorq %[carry]") \ - CORE_CODE \ - ASM("sbbq %[carry],%[carry]") \ - ASM("negq %[carry]") - -/* -* Word Addition -*/ -inline word word_add(word x, word y, word* carry) - { - asm( - ADD_OR_SUBTRACT(ASM("adcq %[y],%[x]")) - : [x]"=r"(x), [carry]"=r"(*carry) - : "0"(x), [y]"rm"(y), "1"(*carry) - : "cc"); - return x; - } - -/* -* Eight Word Block Addition, Two Argument -*/ -inline word word8_add2(word x[8], const word y[8], word carry) - { - asm( - ADD_OR_SUBTRACT(DO_8_TIMES(ADDSUB2_OP, "adcq")) - : [carry]"=r"(carry) - : [x]"r"(x), [y]"r"(y), "0"(carry) - : "cc", "memory"); - return carry; - } - -/* -* Eight Word Block Addition, Three Argument -*/ -inline word word8_add3(word z[8], const word x[8], const word y[8], word carry) - { - asm( - ADD_OR_SUBTRACT(DO_8_TIMES(ADDSUB3_OP, "adcq")) - : [carry]"=r"(carry) - : [x]"r"(x), [y]"r"(y), [z]"r"(z), "0"(carry) - : "cc", "memory"); - return carry; - } - -/* -* Word Subtraction -*/ -inline word word_sub(word x, word y, word* carry) - { - asm( - ADD_OR_SUBTRACT(ASM("sbbq %[y],%[x]")) - : [x]"=r"(x), [carry]"=r"(*carry) - : "0"(x), [y]"rm"(y), "1"(*carry) - : "cc"); - return x; - } - -/* -* Eight Word Block Subtraction, Two Argument -*/ -inline word word8_sub2(word x[8], const word y[8], word carry) - { - asm( - ADD_OR_SUBTRACT(DO_8_TIMES(ADDSUB2_OP, "sbbq")) - : [carry]"=r"(carry) - : [x]"r"(x), [y]"r"(y), "0"(carry) - : "cc", "memory"); - return carry; - } - -/* -* Eight Word Block Subtraction, Two Argument -*/ -inline word word8_sub2_rev(word x[8], const word y[8], word carry) - { - asm( - ADD_OR_SUBTRACT(DO_8_TIMES(ADDSUB3_OP, "sbbq")) - : [carry]"=r"(carry) - : [x]"r"(y), [y]"r"(x), [z]"r"(x), "0"(carry) - : "cc", "memory"); - return carry; - } - -/* -* Eight Word Block Subtraction, Three Argument -*/ -inline word word8_sub3(word z[8], const word x[8], const word y[8], word carry) - { - asm( - ADD_OR_SUBTRACT(DO_8_TIMES(ADDSUB3_OP, "sbbq")) - : [carry]"=r"(carry) - : [x]"r"(x), [y]"r"(y), [z]"r"(z), "0"(carry) - : "cc", "memory"); - return carry; - } - -/* -* Eight Word Block Linear Multiplication -*/ -inline word word8_linmul2(word x[8], word y, word carry) - { - asm( - DO_8_TIMES(LINMUL_OP, "x") - : [carry]"=r"(carry) - : [x]"r"(x), [y]"rm"(y), "0"(carry) - : "cc", "%rax", "%rdx"); - return carry; - } - -/* -* Eight Word Block Linear Multiplication -*/ -inline word word8_linmul3(word z[8], const word x[8], word y, word carry) - { - asm( - DO_8_TIMES(LINMUL_OP, "z") - : [carry]"=r"(carry) - : [z]"r"(z), [x]"r"(x), [y]"rm"(y), "0"(carry) - : "cc", "%rax", "%rdx"); - return carry; - } - -/* -* Eight Word Block Multiply/Add -*/ -inline word word8_madd3(word z[8], const word x[8], word y, word carry) - { - asm( - DO_8_TIMES(MULADD_OP, "") - : [carry]"=r"(carry) - : [z]"r"(z), [x]"r"(x), [y]"rm"(y), "0"(carry) - : "cc", "%rax", "%rdx"); - return carry; - } - -/* -* Multiply-Add Accumulator -*/ -inline void word3_muladd(word* w2, word* w1, word* w0, word x, word y) - { - asm( - ASM("mulq %[y]") - - ASM("addq %[x],%[w0]") - ASM("adcq %[y],%[w1]") - ASM("adcq $0,%[w2]") - - : [w0]"=r"(*w0), [w1]"=r"(*w1), [w2]"=r"(*w2) - : [x]"a"(x), [y]"d"(y), "0"(*w0), "1"(*w1), "2"(*w2) - : "cc"); - } - -/* -* Multiply-Add Accumulator -*/ -inline void word3_muladd_2(word* w2, word* w1, word* w0, word x, word y) - { - asm( - ASM("mulq %[y]") - - ASM("addq %[x],%[w0]") - ASM("adcq %[y],%[w1]") - ASM("adcq $0,%[w2]") - - ASM("addq %[x],%[w0]") - ASM("adcq %[y],%[w1]") - ASM("adcq $0,%[w2]") - - : [w0]"=r"(*w0), [w1]"=r"(*w1), [w2]"=r"(*w2) - : [x]"a"(x), [y]"d"(y), "0"(*w0), "1"(*w1), "2"(*w2) - : "cc"); - } - - -#undef ASM -#undef DO_8_TIMES -#undef ADD_OR_SUBTRACT -#undef ADDSUB2_OP -#undef ADDSUB3_OP -#undef LINMUL_OP -#undef MULADD_OP - -} - -} -#endif diff --git a/src/botan/src/math/numbertheory/def_powm.h b/src/botan/src/math/numbertheory/def_powm.h deleted file mode 100644 index a93db9b82..000000000 --- a/src/botan/src/math/numbertheory/def_powm.h +++ /dev/null @@ -1,64 +0,0 @@ -/* -* Modular Exponentiation -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_DEFAULT_MODEXP_H__ -#define BOTAN_DEFAULT_MODEXP_H__ - -#include -#include -#include - -namespace Botan { - -/** -* Fixed Window Exponentiator -*/ -class Fixed_Window_Exponentiator : public Modular_Exponentiator - { - public: - void set_exponent(const BigInt&); - void set_base(const BigInt&); - BigInt execute() const; - - Modular_Exponentiator* copy() const - { return new Fixed_Window_Exponentiator(*this); } - - Fixed_Window_Exponentiator(const BigInt&, Power_Mod::Usage_Hints); - private: - Modular_Reducer reducer; - BigInt exp; - size_t window_bits; - std::vector g; - Power_Mod::Usage_Hints hints; - }; - -/** -* Montgomery Exponentiator -*/ -class Montgomery_Exponentiator : public Modular_Exponentiator - { - public: - void set_exponent(const BigInt&); - void set_base(const BigInt&); - BigInt execute() const; - - Modular_Exponentiator* copy() const - { return new Montgomery_Exponentiator(*this); } - - Montgomery_Exponentiator(const BigInt&, Power_Mod::Usage_Hints); - private: - BigInt exp, modulus; - BigInt R2, R_mod; - std::vector g; - word mod_prime; - size_t mod_words, exp_bits, window_bits; - Power_Mod::Usage_Hints hints; - }; - -} - -#endif diff --git a/src/botan/src/math/numbertheory/dsa_gen.cpp b/src/botan/src/math/numbertheory/dsa_gen.cpp deleted file mode 100644 index 670f103da..000000000 --- a/src/botan/src/math/numbertheory/dsa_gen.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/* -* DSA Parameter Generation -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include - -namespace Botan { - -namespace { - -/* -* Check if this size is allowed by FIPS 186-3 -*/ -bool fips186_3_valid_size(size_t pbits, size_t qbits) - { - if(qbits == 160) - return (pbits == 512 || pbits == 768 || pbits == 1024); - - if(qbits == 224) - return (pbits == 2048); - - if(qbits == 256) - return (pbits == 2048 || pbits == 3072); - - return false; - } - -} - -/* -* Attempt DSA prime generation with given seed -*/ -bool generate_dsa_primes(RandomNumberGenerator& rng, - Algorithm_Factory& af, - BigInt& p, BigInt& q, - size_t pbits, size_t qbits, - const MemoryRegion& seed_c) - { - if(!fips186_3_valid_size(pbits, qbits)) - throw Invalid_Argument( - "FIPS 186-3 does not allow DSA domain parameters of " + - to_string(pbits) + "/" + to_string(qbits) + " bits long"); - - if(seed_c.size() * 8 < qbits) - throw Invalid_Argument( - "Generating a DSA parameter set with a " + to_string(qbits) + - "long q requires a seed at least as many bits long"); - - std::auto_ptr hash( - af.make_hash_function("SHA-" + to_string(qbits))); - - const size_t HASH_SIZE = hash->output_length(); - - class Seed - { - public: - Seed(const MemoryRegion& s) : seed(s) {} - - operator MemoryRegion& () { return seed; } - - Seed& operator++() - { - for(size_t j = seed.size(); j > 0; --j) - if(++seed[j-1]) - break; - return (*this); - } - private: - SecureVector seed; - }; - - Seed seed(seed_c); - - q.binary_decode(hash->process(seed)); - q.set_bit(qbits-1); - q.set_bit(0); - - if(!check_prime(q, rng)) - return false; - - const size_t n = (pbits-1) / (HASH_SIZE * 8), - b = (pbits-1) % (HASH_SIZE * 8); - - BigInt X; - SecureVector V(HASH_SIZE * (n+1)); - - for(size_t j = 0; j != 4096; ++j) - { - for(size_t k = 0; k <= n; ++k) - { - ++seed; - hash->update(seed); - hash->final(&V[HASH_SIZE * (n-k)]); - } - - X.binary_decode(&V[HASH_SIZE - 1 - b/8], - V.size() - (HASH_SIZE - 1 - b/8)); - X.set_bit(pbits-1); - - p = X - (X % (2*q) - 1); - - if(p.bits() == pbits && check_prime(p, rng)) - return true; - } - return false; - } - -/* -* Generate DSA Primes -*/ -SecureVector generate_dsa_primes(RandomNumberGenerator& rng, - Algorithm_Factory& af, - BigInt& p, BigInt& q, - size_t pbits, size_t qbits) - { - while(true) - { - SecureVector seed = rng.random_vec(qbits / 8); - - if(generate_dsa_primes(rng, af, p, q, pbits, qbits, seed)) - return seed; - } - } - -} diff --git a/src/botan/src/math/numbertheory/info.txt b/src/botan/src/math/numbertheory/info.txt deleted file mode 100644 index 0c6a9aefc..000000000 --- a/src/botan/src/math/numbertheory/info.txt +++ /dev/null @@ -1,35 +0,0 @@ -define BIGINT_MATH - -load_on auto - - -numthry.h -pow_mod.h -reducer.h - - - -def_powm.h - - - -dsa_gen.cpp -jacobi.cpp -make_prm.cpp -mp_numth.cpp -numthry.cpp -pow_mod.cpp -powm_fw.cpp -powm_mnt.cpp -primes.cpp -reducer.cpp -ressol.cpp - - - -algo_factory -bigint -hash -libstate -rng - diff --git a/src/botan/src/math/numbertheory/jacobi.cpp b/src/botan/src/math/numbertheory/jacobi.cpp deleted file mode 100644 index fcccc80e5..000000000 --- a/src/botan/src/math/numbertheory/jacobi.cpp +++ /dev/null @@ -1,53 +0,0 @@ -/* -* Jacobi Function -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include - -namespace Botan { - -/* -* Calculate the Jacobi symbol -*/ -s32bit jacobi(const BigInt& a, const BigInt& n) - { - if(a.is_negative()) - throw Invalid_Argument("jacobi: first argument must be non-negative"); - if(n.is_even() || n < 2) - throw Invalid_Argument("jacobi: second argument must be odd and > 1"); - - BigInt x = a, y = n; - s32bit J = 1; - - while(y > 1) - { - x %= y; - if(x > y / 2) - { - x = y - x; - if(y % 4 == 3) - J = -J; - } - if(x.is_zero()) - return 0; - - size_t shifts = low_zero_bits(x); - x >>= shifts; - if(shifts % 2) - { - word y_mod_8 = y % 8; - if(y_mod_8 == 3 || y_mod_8 == 5) - J = -J; - } - - if(x % 4 == 3 && y % 4 == 3) - J = -J; - std::swap(x, y); - } - return J; - } - -} diff --git a/src/botan/src/math/numbertheory/make_prm.cpp b/src/botan/src/math/numbertheory/make_prm.cpp deleted file mode 100644 index 4fb3f908c..000000000 --- a/src/botan/src/math/numbertheory/make_prm.cpp +++ /dev/null @@ -1,100 +0,0 @@ -/* -* Prime Generation -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -/* -* Generate a random prime -*/ -BigInt random_prime(RandomNumberGenerator& rng, - size_t bits, const BigInt& coprime, - size_t equiv, size_t modulo) - { - if(bits <= 1) - throw Invalid_Argument("random_prime: Can't make a prime of " + - to_string(bits) + " bits"); - else if(bits == 2) - return ((rng.next_byte() % 2) ? 2 : 3); - else if(bits == 3) - return ((rng.next_byte() % 2) ? 5 : 7); - else if(bits == 4) - return ((rng.next_byte() % 2) ? 11 : 13); - - if(coprime <= 0) - throw Invalid_Argument("random_prime: coprime must be > 0"); - if(modulo % 2 == 1 || modulo == 0) - throw Invalid_Argument("random_prime: Invalid modulo value"); - if(equiv >= modulo || equiv % 2 == 0) - throw Invalid_Argument("random_prime: equiv must be < modulo, and odd"); - - while(true) - { - BigInt p(rng, bits); - - // Force lowest and two top bits on - p.set_bit(bits - 1); - p.set_bit(bits - 2); - p.set_bit(0); - - if(p % modulo != equiv) - p += (modulo - p % modulo) + equiv; - - const size_t sieve_size = std::min(bits / 2, PRIME_TABLE_SIZE); - SecureVector sieve(sieve_size); - - for(size_t j = 0; j != sieve.size(); ++j) - sieve[j] = p % PRIMES[j]; - - size_t counter = 0; - while(true) - { - if(counter == 4096 || p.bits() > bits) - break; - - bool passes_sieve = true; - ++counter; - p += modulo; - - if(p.bits() > bits) - break; - - for(size_t j = 0; j != sieve.size(); ++j) - { - sieve[j] = (sieve[j] + modulo) % PRIMES[j]; - if(sieve[j] == 0) - passes_sieve = false; - } - - if(!passes_sieve || gcd(p - 1, coprime) != 1) - continue; - if(check_prime(p, rng)) - return p; - } - } - } - -/* -* Generate a random safe prime -*/ -BigInt random_safe_prime(RandomNumberGenerator& rng, size_t bits) - { - if(bits <= 64) - throw Invalid_Argument("random_safe_prime: Can't make a prime of " + - to_string(bits) + " bits"); - - BigInt p; - do - p = (random_prime(rng, bits - 1) << 1) + 1; - while(!check_prime(p, rng)); - return p; - } - -} diff --git a/src/botan/src/math/numbertheory/mp_numth.cpp b/src/botan/src/math/numbertheory/mp_numth.cpp deleted file mode 100644 index 23623b5f0..000000000 --- a/src/botan/src/math/numbertheory/mp_numth.cpp +++ /dev/null @@ -1,71 +0,0 @@ -/* -* Fused and Important MP Algorithms -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -namespace Botan { - -/* -* Square a BigInt -*/ -BigInt square(const BigInt& x) - { - const size_t x_sw = x.sig_words(); - - BigInt z(BigInt::Positive, round_up(2*x_sw, 16)); - SecureVector workspace(z.size()); - - bigint_sqr(z.get_reg(), z.size(), workspace, - x.data(), x.size(), x_sw); - return z; - } - -/* -* Multiply-Add Operation -*/ -BigInt mul_add(const BigInt& a, const BigInt& b, const BigInt& c) - { - if(c.is_negative() || c.is_zero()) - throw Invalid_Argument("mul_add: Third argument must be > 0"); - - BigInt::Sign sign = BigInt::Positive; - if(a.sign() != b.sign()) - sign = BigInt::Negative; - - const size_t a_sw = a.sig_words(); - const size_t b_sw = b.sig_words(); - const size_t c_sw = c.sig_words(); - - BigInt r(sign, std::max(a.size() + b.size(), c_sw) + 1); - SecureVector workspace(r.size()); - - bigint_mul(r.get_reg(), r.size(), workspace, - a.data(), a.size(), a_sw, - b.data(), b.size(), b_sw); - const size_t r_size = std::max(r.sig_words(), c_sw); - bigint_add2(r.get_reg(), r_size, c.data(), c_sw); - return r; - } - -/* -* Subtract-Multiply Operation -*/ -BigInt sub_mul(const BigInt& a, const BigInt& b, const BigInt& c) - { - if(a.is_negative() || b.is_negative()) - throw Invalid_Argument("sub_mul: First two arguments must be >= 0"); - - BigInt r = a; - r -= b; - r *= c; - return r; - } - -} diff --git a/src/botan/src/math/numbertheory/numthry.cpp b/src/botan/src/math/numbertheory/numthry.cpp deleted file mode 100644 index 535ca6772..000000000 --- a/src/botan/src/math/numbertheory/numthry.cpp +++ /dev/null @@ -1,314 +0,0 @@ -/* -* Number Theory Functions -* (C) 1999-2011 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -namespace Botan { - -namespace { - -/* -* Miller-Rabin Primality Tester -*/ -class MillerRabin_Test - { - public: - bool is_witness(const BigInt& nonce); - MillerRabin_Test(const BigInt& num); - private: - BigInt n, r, n_minus_1; - size_t s; - Fixed_Exponent_Power_Mod pow_mod; - Modular_Reducer reducer; - }; - -/* -* Miller-Rabin Test, as described in Handbook of Applied Cryptography -* section 4.24 -*/ -bool MillerRabin_Test::is_witness(const BigInt& a) - { - if(a < 2 || a >= n_minus_1) - throw Invalid_Argument("Bad size for nonce in Miller-Rabin test"); - - BigInt y = pow_mod(a); - if(y == 1 || y == n_minus_1) - return false; - - for(size_t i = 1; i != s; ++i) - { - y = reducer.square(y); - - if(y == 1) // found a non-trivial square root - return true; - - if(y == n_minus_1) // -1, trivial square root, so give up - return false; - } - - // If we reached here then n fails the Fermat test - return true; - } - -/* -* Miller-Rabin Constructor -*/ -MillerRabin_Test::MillerRabin_Test(const BigInt& num) - { - if(num.is_even() || num < 3) - throw Invalid_Argument("MillerRabin_Test: Invalid number for testing"); - - n = num; - n_minus_1 = n - 1; - s = low_zero_bits(n_minus_1); - r = n_minus_1 >> s; - - pow_mod = Fixed_Exponent_Power_Mod(r, n); - reducer = Modular_Reducer(n); - } - -/* -* Miller-Rabin Iterations -*/ -size_t miller_rabin_test_iterations(size_t bits, size_t level) - { - struct mapping { size_t bits; size_t verify_iter; size_t check_iter; }; - - static const mapping tests[] = { - { 50, 55, 25 }, - { 100, 38, 22 }, - { 160, 32, 18 }, - { 163, 31, 17 }, - { 168, 30, 16 }, - { 177, 29, 16 }, - { 181, 28, 15 }, - { 185, 27, 15 }, - { 190, 26, 15 }, - { 195, 25, 14 }, - { 201, 24, 14 }, - { 208, 23, 14 }, - { 215, 22, 13 }, - { 222, 21, 13 }, - { 231, 20, 13 }, - { 241, 19, 12 }, - { 252, 18, 12 }, - { 264, 17, 12 }, - { 278, 16, 11 }, - { 294, 15, 10 }, - { 313, 14, 9 }, - { 334, 13, 8 }, - { 360, 12, 8 }, - { 392, 11, 7 }, - { 430, 10, 7 }, - { 479, 9, 6 }, - { 542, 8, 6 }, - { 626, 7, 5 }, - { 746, 6, 4 }, - { 926, 5, 3 }, - { 1232, 4, 2 }, - { 1853, 3, 2 }, - { 0, 0, 0 } - }; - - for(size_t i = 0; tests[i].bits; ++i) - { - if(bits <= tests[i].bits) - { - if(level >= 2) - return tests[i].verify_iter; - else if(level == 1) - return tests[i].check_iter; - else if(level == 0) - return std::max(tests[i].check_iter / 4, 1); - } - } - - return level > 0 ? 2 : 1; // for large inputs - } - -} - -/* -* Return the number of 0 bits at the end of n -*/ -size_t low_zero_bits(const BigInt& n) - { - size_t low_zero = 0; - - if(n.is_positive() && n.is_nonzero()) - { - for(size_t i = 0; i != n.size(); ++i) - { - word x = n[i]; - - if(x) - { - low_zero += ctz(x); - break; - } - else - low_zero += BOTAN_MP_WORD_BITS; - } - } - - return low_zero; - } - -/* -* Calculate the GCD -*/ -BigInt gcd(const BigInt& a, const BigInt& b) - { - if(a.is_zero() || b.is_zero()) return 0; - if(a == 1 || b == 1) return 1; - - BigInt x = a, y = b; - x.set_sign(BigInt::Positive); - y.set_sign(BigInt::Positive); - size_t shift = std::min(low_zero_bits(x), low_zero_bits(y)); - - x >>= shift; - y >>= shift; - - while(x.is_nonzero()) - { - x >>= low_zero_bits(x); - y >>= low_zero_bits(y); - if(x >= y) { x -= y; x >>= 1; } - else { y -= x; y >>= 1; } - } - - return (y << shift); - } - -/* -* Calculate the LCM -*/ -BigInt lcm(const BigInt& a, const BigInt& b) - { - return ((a * b) / gcd(a, b)); - } - -/* -* Find the Modular Inverse -*/ -BigInt inverse_mod(const BigInt& n, const BigInt& mod) - { - if(mod.is_zero()) - throw BigInt::DivideByZero(); - if(mod.is_negative() || n.is_negative()) - throw Invalid_Argument("inverse_mod: arguments must be non-negative"); - - if(n.is_zero() || (n.is_even() && mod.is_even())) - return 0; - - BigInt x = mod, y = n, u = mod, v = n; - BigInt A = 1, B = 0, C = 0, D = 1; - - while(u.is_nonzero()) - { - size_t zero_bits = low_zero_bits(u); - u >>= zero_bits; - for(size_t i = 0; i != zero_bits; ++i) - { - if(A.is_odd() || B.is_odd()) - { A += y; B -= x; } - A >>= 1; B >>= 1; - } - - zero_bits = low_zero_bits(v); - v >>= zero_bits; - for(size_t i = 0; i != zero_bits; ++i) - { - if(C.is_odd() || D.is_odd()) - { C += y; D -= x; } - C >>= 1; D >>= 1; - } - - if(u >= v) { u -= v; A -= C; B -= D; } - else { v -= u; C -= A; D -= B; } - } - - if(v != 1) - return 0; - - while(D.is_negative()) D += mod; - while(D >= mod) D -= mod; - - return D; - } - -/* -* Modular Exponentiation -*/ -BigInt power_mod(const BigInt& base, const BigInt& exp, const BigInt& mod) - { - Power_Mod pow_mod(mod); - pow_mod.set_base(base); - pow_mod.set_exponent(exp); - return pow_mod.execute(); - } - -/* -* Test for primaility using Miller-Rabin -*/ -bool primality_test(const BigInt& n, - RandomNumberGenerator& rng, - size_t level) - { - const size_t PREF_NONCE_BITS = 128; - - if(n == 2) - return true; - if(n <= 1 || n.is_even()) - return false; - - // Fast path testing for small numbers (<= 65521) - if(n <= PRIMES[PRIME_TABLE_SIZE-1]) - { - const word num = n.word_at(0); - - for(size_t i = 0; PRIMES[i]; ++i) - { - if(num == PRIMES[i]) - return true; - if(num < PRIMES[i]) - return false; - } - - return false; - } - - if(level > 2) - level = 2; - - const size_t NONCE_BITS = std::min(n.bits() - 2, PREF_NONCE_BITS); - - MillerRabin_Test mr(n); - - if(mr.is_witness(2)) - return false; - - const size_t tests = miller_rabin_test_iterations(n.bits(), level); - - for(size_t i = 0; i != tests; ++i) - { - BigInt nonce; - while(nonce < 2 || nonce >= (n-1)) - nonce.randomize(rng, NONCE_BITS); - - if(mr.is_witness(nonce)) - return false; - } - - return true; - } - -} diff --git a/src/botan/src/math/numbertheory/numthry.h b/src/botan/src/math/numbertheory/numthry.h deleted file mode 100644 index 750fbc78e..000000000 --- a/src/botan/src/math/numbertheory/numthry.h +++ /dev/null @@ -1,229 +0,0 @@ -/* -* Number Theory Functions -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_NUMBER_THEORY_H__ -#define BOTAN_NUMBER_THEORY_H__ - -#include -#include -#include - -namespace Botan { - -/** -* Fused multiply-add -* @param a an integer -* @param b an integer -* @param c an integer -* @return (a*b)+c -*/ -BigInt BOTAN_DLL mul_add(const BigInt& a, - const BigInt& b, - const BigInt& c); - -/** -* Fused subtract-multiply -* @param a an integer -* @param b an integer -* @param c an integer -* @return (a-b)*c -*/ -BigInt BOTAN_DLL sub_mul(const BigInt& a, - const BigInt& b, - const BigInt& c); - -/** -* Return the absolute value -* @param n an integer -* @return absolute value of n -*/ -inline BigInt abs(const BigInt& n) { return n.abs(); } - -/** -* Compute the greatest common divisor -* @param x a positive integer -* @param y a positive integer -* @return gcd(x,y) -*/ -BigInt BOTAN_DLL gcd(const BigInt& x, const BigInt& y); - -/** -* Least common multiple -* @param x a positive integer -* @param y a positive integer -* @return z, smallest integer such that z % x == 0 and z % y == 0 -*/ -BigInt BOTAN_DLL lcm(const BigInt& x, const BigInt& y); - -/** -* @param x an integer -* @return (x*x) -*/ -BigInt BOTAN_DLL square(const BigInt& x); - -/** -* Modular inversion -* @param x a positive integer -* @param modulus a positive integer -* @return y st (x*y) % modulus == 1 -*/ -BigInt BOTAN_DLL inverse_mod(const BigInt& x, - const BigInt& modulus); - -/** -* Compute the Jacobi symbol. If n is prime, this is equivalent -* to the Legendre symbol. -* @see http://mathworld.wolfram.com/JacobiSymbol.html -* -* @param a is a non-negative integer -* @param n is an odd integer > 1 -* @return (n / m) -*/ -s32bit BOTAN_DLL jacobi(const BigInt& a, - const BigInt& n); - -/** -* Modular exponentation -* @param b an integer base -* @param x a positive exponent -* @param m a positive modulus -* @return (b^x) % m -*/ -BigInt BOTAN_DLL power_mod(const BigInt& b, - const BigInt& x, - const BigInt& m); - -/** -* Compute the square root of x modulo a prime using the -* Shanks-Tonnelli algorithm -* -* @param x the input -* @param p the prime -* @return y such that (y*y)%p == x, or -1 if no such integer -*/ -BigInt BOTAN_DLL ressol(const BigInt& x, const BigInt& p); - -/** -* @param x an integer -* @return count of the zero bits in x, or, equivalently, the largest -* value of n such that 2^n divides x evently -*/ -size_t BOTAN_DLL low_zero_bits(const BigInt& x); - -/** -* Primality Testing -* @param n a positive integer to test for primality -* @param rng a random number generator -* @param level how hard to test -* @return true if all primality tests passed, otherwise false -*/ -bool BOTAN_DLL primality_test(const BigInt& n, - RandomNumberGenerator& rng, - size_t level = 1); - -/** -* Quickly check for primality -* @param n a positive integer to test for primality -* @param rng a random number generator -* @return true if all primality tests passed, otherwise false -*/ -inline bool quick_check_prime(const BigInt& n, RandomNumberGenerator& rng) - { return primality_test(n, rng, 0); } - -/** -* Check for primality -* @param n a positive integer to test for primality -* @param rng a random number generator -* @return true if all primality tests passed, otherwise false -*/ -inline bool check_prime(const BigInt& n, RandomNumberGenerator& rng) - { return primality_test(n, rng, 1); } - -/** -* Verify primality - this function is slow but useful if you want to -* ensure that a possibly malicious entity did not provide you with -* something that 'looks like' a prime -* @param n a positive integer to test for primality -* @param rng a random number generator -* @return true if all primality tests passed, otherwise false -*/ -inline bool verify_prime(const BigInt& n, RandomNumberGenerator& rng) - { return primality_test(n, rng, 2); } - -/** -* Randomly generate a prime -* @param rng a random number generator -* @param bits how large the resulting prime should be in bits -* @param coprime a positive integer the result should be coprime to -* @param equiv a non-negative number that the result should be - equivalent to modulo equiv_mod -* @param equiv_mod the modulus equiv should be checked against -* @return random prime with the specified criteria -*/ -BigInt BOTAN_DLL random_prime(RandomNumberGenerator& rng, - size_t bits, const BigInt& coprime = 1, - size_t equiv = 1, size_t equiv_mod = 2); - -/** -* Return a 'safe' prime, of the form p=2*q+1 with q prime -* @param rng a random number generator -* @param bits is how long the resulting prime should be -* @return prime randomly chosen from safe primes of length bits -*/ -BigInt BOTAN_DLL random_safe_prime(RandomNumberGenerator& rng, - size_t bits); - -class Algorithm_Factory; - -/** -* Generate DSA parameters using the FIPS 186 kosherizer -* @param rng a random number generator -* @param af an algorithm factory -* @param p_out where the prime p will be stored -* @param q_out where the prime q will be stored -* @param pbits how long p will be in bits -* @param qbits how long q will be in bits -* @return random seed used to generate this parameter set -*/ -SecureVector BOTAN_DLL -generate_dsa_primes(RandomNumberGenerator& rng, - Algorithm_Factory& af, - BigInt& p_out, BigInt& q_out, - size_t pbits, size_t qbits); - -/** -* Generate DSA parameters using the FIPS 186 kosherizer -* @param rng a random number generator -* @param af an algorithm factory -* @param p_out where the prime p will be stored -* @param q_out where the prime q will be stored -* @param pbits how long p will be in bits -* @param qbits how long q will be in bits -* @param seed the seed used to generate the parameters -* @return true if seed generated a valid DSA parameter set, otherwise - false. p_out and q_out are only valid if true was returned. -*/ -bool BOTAN_DLL -generate_dsa_primes(RandomNumberGenerator& rng, - Algorithm_Factory& af, - BigInt& p_out, BigInt& q_out, - size_t pbits, size_t qbits, - const MemoryRegion& seed); - -/** -* The size of the PRIMES[] array -*/ -const size_t PRIME_TABLE_SIZE = 6541; - -/** -* A const array of all primes less than 65535 -*/ -extern const u16bit BOTAN_DLL PRIMES[]; - -} - -#endif diff --git a/src/botan/src/math/numbertheory/pow_mod.cpp b/src/botan/src/math/numbertheory/pow_mod.cpp deleted file mode 100644 index 82f731ba6..000000000 --- a/src/botan/src/math/numbertheory/pow_mod.cpp +++ /dev/null @@ -1,213 +0,0 @@ -/* -* Modular Exponentiation Proxy -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -/* -* Power_Mod Constructor -*/ -Power_Mod::Power_Mod(const BigInt& n, Usage_Hints hints) - { - core = 0; - set_modulus(n, hints); - hints = NO_HINTS; - } - -/* -* Power_Mod Copy Constructor -*/ -Power_Mod::Power_Mod(const Power_Mod& other) - { - core = 0; - hints = other.hints; - if(other.core) - core = other.core->copy(); - } - -/* -* Power_Mod Assignment Operator -*/ -Power_Mod& Power_Mod::operator=(const Power_Mod& other) - { - delete core; - core = 0; - if(other.core) - core = other.core->copy(); - return (*this); - } - -/* -* Power_Mod Destructor -*/ -Power_Mod::~Power_Mod() - { - delete core; - } - -/* -* Set the modulus -*/ -void Power_Mod::set_modulus(const BigInt& n, Usage_Hints hints) const - { - delete core; - core = 0; - - if(n != 0) - { - Algorithm_Factory::Engine_Iterator i(global_state().algorithm_factory()); - - while(const Engine* engine = i.next()) - { - core = engine->mod_exp(n, hints); - - if(core) - break; - } - - if(!core) - throw Lookup_Error("Power_Mod: Unable to find a working engine"); - } - } - -/* -* Set the base -*/ -void Power_Mod::set_base(const BigInt& b) const - { - if(b.is_zero() || b.is_negative()) - throw Invalid_Argument("Power_Mod::set_base: arg must be > 0"); - - if(!core) - throw Internal_Error("Power_Mod::set_base: core was NULL"); - core->set_base(b); - } - -/* -* Set the exponent -*/ -void Power_Mod::set_exponent(const BigInt& e) const - { - if(e.is_negative()) - throw Invalid_Argument("Power_Mod::set_exponent: arg must be > 0"); - - if(!core) - throw Internal_Error("Power_Mod::set_exponent: core was NULL"); - core->set_exponent(e); - } - -/* -* Compute the result -*/ -BigInt Power_Mod::execute() const - { - if(!core) - throw Internal_Error("Power_Mod::execute: core was NULL"); - return core->execute(); - } - -/* -* Try to choose a good window size -*/ -size_t Power_Mod::window_bits(size_t exp_bits, size_t, - Power_Mod::Usage_Hints hints) - { - static const size_t wsize[][2] = { - { 1434, 7 }, - { 539, 6 }, - { 197, 4 }, - { 70, 3 }, - { 25, 2 }, - { 0, 0 } - }; - - size_t window_bits = 1; - - if(exp_bits) - { - for(size_t j = 0; wsize[j][0]; ++j) - { - if(exp_bits >= wsize[j][0]) - { - window_bits += wsize[j][1]; - break; - } - } - } - - if(hints & Power_Mod::BASE_IS_FIXED) - window_bits += 2; - if(hints & Power_Mod::EXP_IS_LARGE) - ++window_bits; - - return window_bits; - } - -namespace { - -/* -* Choose potentially useful hints -*/ -Power_Mod::Usage_Hints choose_base_hints(const BigInt& b, const BigInt& n) - { - if(b == 2) - return Power_Mod::Usage_Hints(Power_Mod::BASE_IS_2 | - Power_Mod::BASE_IS_SMALL); - - const size_t b_bits = b.bits(); - const size_t n_bits = n.bits(); - - if(b_bits < n_bits / 32) - return Power_Mod::BASE_IS_SMALL; - if(b_bits > n_bits / 4) - return Power_Mod::BASE_IS_LARGE; - - return Power_Mod::NO_HINTS; - } - -/* -* Choose potentially useful hints -*/ -Power_Mod::Usage_Hints choose_exp_hints(const BigInt& e, const BigInt& n) - { - const size_t e_bits = e.bits(); - const size_t n_bits = n.bits(); - - if(e_bits < n_bits / 32) - return Power_Mod::BASE_IS_SMALL; - if(e_bits > n_bits / 4) - return Power_Mod::BASE_IS_LARGE; - return Power_Mod::NO_HINTS; - } - -} - -/* -* Fixed_Exponent_Power_Mod Constructor -*/ -Fixed_Exponent_Power_Mod::Fixed_Exponent_Power_Mod(const BigInt& e, - const BigInt& n, - Usage_Hints hints) : - Power_Mod(n, Usage_Hints(hints | EXP_IS_FIXED | choose_exp_hints(e, n))) - { - set_exponent(e); - } - -/* -* Fixed_Base_Power_Mod Constructor -*/ -Fixed_Base_Power_Mod::Fixed_Base_Power_Mod(const BigInt& b, const BigInt& n, - Usage_Hints hints) : - Power_Mod(n, Usage_Hints(hints | BASE_IS_FIXED | choose_base_hints(b, n))) - { - set_base(b); - } - -} diff --git a/src/botan/src/math/numbertheory/pow_mod.h b/src/botan/src/math/numbertheory/pow_mod.h deleted file mode 100644 index 9857c1833..000000000 --- a/src/botan/src/math/numbertheory/pow_mod.h +++ /dev/null @@ -1,100 +0,0 @@ -/* -* Modular Exponentiator -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_POWER_MOD_H__ -#define BOTAN_POWER_MOD_H__ - -#include - -namespace Botan { - -/** -* Modular Exponentiator Interface -*/ -class BOTAN_DLL Modular_Exponentiator - { - public: - virtual void set_base(const BigInt&) = 0; - virtual void set_exponent(const BigInt&) = 0; - virtual BigInt execute() const = 0; - virtual Modular_Exponentiator* copy() const = 0; - virtual ~Modular_Exponentiator() {} - }; - -/** -* Modular Exponentiator Proxy -*/ -class BOTAN_DLL Power_Mod - { - public: - - enum Usage_Hints { - NO_HINTS = 0x0000, - - BASE_IS_FIXED = 0x0001, - BASE_IS_SMALL = 0x0002, - BASE_IS_LARGE = 0x0004, - BASE_IS_2 = 0x0008, - - EXP_IS_FIXED = 0x0100, - EXP_IS_SMALL = 0x0200, - EXP_IS_LARGE = 0x0400 - }; - - /* - * Try to choose a good window size - */ - static size_t window_bits(size_t exp_bits, size_t base_bits, - Power_Mod::Usage_Hints hints); - - void set_modulus(const BigInt&, Usage_Hints = NO_HINTS) const; - void set_base(const BigInt&) const; - void set_exponent(const BigInt&) const; - - BigInt execute() const; - - Power_Mod& operator=(const Power_Mod&); - - Power_Mod(const BigInt& = 0, Usage_Hints = NO_HINTS); - Power_Mod(const Power_Mod&); - virtual ~Power_Mod(); - private: - mutable Modular_Exponentiator* core; - Usage_Hints hints; - }; - -/** -* Fixed Exponent Modular Exponentiator Proxy -*/ -class BOTAN_DLL Fixed_Exponent_Power_Mod : public Power_Mod - { - public: - BigInt operator()(const BigInt& b) const - { set_base(b); return execute(); } - - Fixed_Exponent_Power_Mod() {} - Fixed_Exponent_Power_Mod(const BigInt&, const BigInt&, - Usage_Hints = NO_HINTS); - }; - -/** -* Fixed Base Modular Exponentiator Proxy -*/ -class BOTAN_DLL Fixed_Base_Power_Mod : public Power_Mod - { - public: - BigInt operator()(const BigInt& e) const - { set_exponent(e); return execute(); } - - Fixed_Base_Power_Mod() {} - Fixed_Base_Power_Mod(const BigInt&, const BigInt&, - Usage_Hints = NO_HINTS); - }; - -} - -#endif diff --git a/src/botan/src/math/numbertheory/powm_fw.cpp b/src/botan/src/math/numbertheory/powm_fw.cpp deleted file mode 100644 index 8c6d7b65d..000000000 --- a/src/botan/src/math/numbertheory/powm_fw.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/* -* Fixed Window Exponentiation -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -/* -* Set the exponent -*/ -void Fixed_Window_Exponentiator::set_exponent(const BigInt& e) - { - exp = e; - } - -/* -* Set the base -*/ -void Fixed_Window_Exponentiator::set_base(const BigInt& base) - { - window_bits = Power_Mod::window_bits(exp.bits(), base.bits(), hints); - - g.resize((1 << window_bits)); - g[0] = 1; - g[1] = base; - - for(size_t i = 2; i != g.size(); ++i) - g[i] = reducer.multiply(g[i-1], g[0]); - } - -/* -* Compute the result -*/ -BigInt Fixed_Window_Exponentiator::execute() const - { - const size_t exp_nibbles = (exp.bits() + window_bits - 1) / window_bits; - - BigInt x = 1; - - for(size_t i = exp_nibbles; i > 0; --i) - { - for(size_t j = 0; j != window_bits; ++j) - x = reducer.square(x); - - const u32bit nibble = exp.get_substring(window_bits*(i-1), window_bits); - - x = reducer.multiply(x, g[nibble]); - } - return x; - } - -/* -* Fixed_Window_Exponentiator Constructor -*/ -Fixed_Window_Exponentiator::Fixed_Window_Exponentiator(const BigInt& n, - Power_Mod::Usage_Hints hints) - { - reducer = Modular_Reducer(n); - this->hints = hints; - window_bits = 0; - } - -} diff --git a/src/botan/src/math/numbertheory/powm_mnt.cpp b/src/botan/src/math/numbertheory/powm_mnt.cpp deleted file mode 100644 index d3845194c..000000000 --- a/src/botan/src/math/numbertheory/powm_mnt.cpp +++ /dev/null @@ -1,149 +0,0 @@ -/* -* Montgomery Exponentiation -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -/* -* Set the exponent -*/ -void Montgomery_Exponentiator::set_exponent(const BigInt& exp) - { - this->exp = exp; - exp_bits = exp.bits(); - } - -/* -* Set the base -*/ -void Montgomery_Exponentiator::set_base(const BigInt& base) - { - window_bits = Power_Mod::window_bits(exp.bits(), base.bits(), hints); - - g.resize((1 << window_bits)); - - SecureVector z(2 * (mod_words + 1)); - SecureVector workspace(z.size()); - - g[0] = 1; - - bigint_monty_mul(&z[0], z.size(), - g[0].data(), g[0].size(), g[0].sig_words(), - R2.data(), R2.size(), R2.sig_words(), - modulus.data(), mod_words, mod_prime, - &workspace[0]); - - g[0].assign(&z[0], mod_words + 1); - - g[1] = (base >= modulus) ? (base % modulus) : base; - - bigint_monty_mul(&z[0], z.size(), - g[1].data(), g[1].size(), g[1].sig_words(), - R2.data(), R2.size(), R2.sig_words(), - modulus.data(), mod_words, mod_prime, - &workspace[0]); - - g[1].assign(&z[0], mod_words + 1); - - const BigInt& x = g[1]; - const size_t x_sig = x.sig_words(); - - for(size_t i = 1; i != g.size(); ++i) - { - const BigInt& y = g[i-1]; - const size_t y_sig = y.sig_words(); - - zeroise(z); - bigint_monty_mul(&z[0], z.size(), - x.data(), x.size(), x_sig, - y.data(), y.size(), y_sig, - modulus.data(), mod_words, mod_prime, - &workspace[0]); - - g[i].assign(&z[0], mod_words + 1); - } - } - -/* -* Compute the result -*/ -BigInt Montgomery_Exponentiator::execute() const - { - const size_t exp_nibbles = (exp_bits + window_bits - 1) / window_bits; - - BigInt x = R_mod; - SecureVector z(2 * (mod_words + 1)); - SecureVector workspace(2 * (mod_words + 1)); - - for(size_t i = exp_nibbles; i > 0; --i) - { - for(size_t k = 0; k != window_bits; ++k) - { - zeroise(z); - - bigint_monty_sqr(&z[0], z.size(), - x.data(), x.size(), x.sig_words(), - modulus.data(), mod_words, mod_prime, - &workspace[0]); - - x.assign(&z[0], mod_words + 1); - } - - const u32bit nibble = exp.get_substring(window_bits*(i-1), window_bits); - - const BigInt& y = g[nibble]; - - zeroise(z); - bigint_monty_mul(&z[0], z.size(), - x.data(), x.size(), x.sig_words(), - y.data(), y.size(), y.sig_words(), - modulus.data(), mod_words, mod_prime, - &workspace[0]); - - x.assign(&z[0], mod_words + 1); - } - - x.get_reg().resize(2*mod_words+1); - - bigint_monty_redc(&x[0], x.size(), - modulus.data(), mod_words, mod_prime, - &workspace[0]); - - x.get_reg().resize(mod_words+1); - - return x; - } - -/* -* Montgomery_Exponentiator Constructor -*/ -Montgomery_Exponentiator::Montgomery_Exponentiator(const BigInt& mod, - Power_Mod::Usage_Hints hints) - { - // Montgomery reduction only works for positive odd moduli - if(!mod.is_positive() || mod.is_even()) - throw Invalid_Argument("Montgomery_Exponentiator: invalid modulus"); - - window_bits = 0; - this->hints = hints; - modulus = mod; - exp_bits = 0; - - mod_words = modulus.sig_words(); - - BigInt r(BigInt::Power2, mod_words * BOTAN_MP_WORD_BITS); - mod_prime = (((r * inverse_mod(r, mod)) - 1) / mod).word_at(0); - - R_mod = r % modulus; - - R2 = (R_mod * R_mod) % modulus; - } - -} diff --git a/src/botan/src/math/numbertheory/primes.cpp b/src/botan/src/math/numbertheory/primes.cpp deleted file mode 100644 index a0c0f0093..000000000 --- a/src/botan/src/math/numbertheory/primes.cpp +++ /dev/null @@ -1,609 +0,0 @@ -/* -* Small Primes Table -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include - -namespace Botan { - -const u16bit PRIMES[PRIME_TABLE_SIZE+1] = { - 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, - 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, - 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, - 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, - 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, - 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, - 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, - 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, - 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, - 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, - 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, - 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, - 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, - 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, - 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, - 991, 997, 1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049, 1051, - 1061, 1063, 1069, 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, - 1129, 1151, 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, - 1223, 1229, 1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291, - 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373, 1381, - 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451, 1453, 1459, - 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511, 1523, 1531, 1543, - 1549, 1553, 1559, 1567, 1571, 1579, 1583, 1597, 1601, 1607, 1609, - 1613, 1619, 1621, 1627, 1637, 1657, 1663, 1667, 1669, 1693, 1697, - 1699, 1709, 1721, 1723, 1733, 1741, 1747, 1753, 1759, 1777, 1783, - 1787, 1789, 1801, 1811, 1823, 1831, 1847, 1861, 1867, 1871, 1873, - 1877, 1879, 1889, 1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, - 1979, 1987, 1993, 1997, 1999, 2003, 2011, 2017, 2027, 2029, 2039, - 2053, 2063, 2069, 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129, - 2131, 2137, 2141, 2143, 2153, 2161, 2179, 2203, 2207, 2213, 2221, - 2237, 2239, 2243, 2251, 2267, 2269, 2273, 2281, 2287, 2293, 2297, - 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357, 2371, 2377, 2381, - 2383, 2389, 2393, 2399, 2411, 2417, 2423, 2437, 2441, 2447, 2459, - 2467, 2473, 2477, 2503, 2521, 2531, 2539, 2543, 2549, 2551, 2557, - 2579, 2591, 2593, 2609, 2617, 2621, 2633, 2647, 2657, 2659, 2663, - 2671, 2677, 2683, 2687, 2689, 2693, 2699, 2707, 2711, 2713, 2719, - 2729, 2731, 2741, 2749, 2753, 2767, 2777, 2789, 2791, 2797, 2801, - 2803, 2819, 2833, 2837, 2843, 2851, 2857, 2861, 2879, 2887, 2897, - 2903, 2909, 2917, 2927, 2939, 2953, 2957, 2963, 2969, 2971, 2999, - 3001, 3011, 3019, 3023, 3037, 3041, 3049, 3061, 3067, 3079, 3083, - 3089, 3109, 3119, 3121, 3137, 3163, 3167, 3169, 3181, 3187, 3191, - 3203, 3209, 3217, 3221, 3229, 3251, 3253, 3257, 3259, 3271, 3299, - 3301, 3307, 3313, 3319, 3323, 3329, 3331, 3343, 3347, 3359, 3361, - 3371, 3373, 3389, 3391, 3407, 3413, 3433, 3449, 3457, 3461, 3463, - 3467, 3469, 3491, 3499, 3511, 3517, 3527, 3529, 3533, 3539, 3541, - 3547, 3557, 3559, 3571, 3581, 3583, 3593, 3607, 3613, 3617, 3623, - 3631, 3637, 3643, 3659, 3671, 3673, 3677, 3691, 3697, 3701, 3709, - 3719, 3727, 3733, 3739, 3761, 3767, 3769, 3779, 3793, 3797, 3803, - 3821, 3823, 3833, 3847, 3851, 3853, 3863, 3877, 3881, 3889, 3907, - 3911, 3917, 3919, 3923, 3929, 3931, 3943, 3947, 3967, 3989, 4001, - 4003, 4007, 4013, 4019, 4021, 4027, 4049, 4051, 4057, 4073, 4079, - 4091, 4093, 4099, 4111, 4127, 4129, 4133, 4139, 4153, 4157, 4159, - 4177, 4201, 4211, 4217, 4219, 4229, 4231, 4241, 4243, 4253, 4259, - 4261, 4271, 4273, 4283, 4289, 4297, 4327, 4337, 4339, 4349, 4357, - 4363, 4373, 4391, 4397, 4409, 4421, 4423, 4441, 4447, 4451, 4457, - 4463, 4481, 4483, 4493, 4507, 4513, 4517, 4519, 4523, 4547, 4549, - 4561, 4567, 4583, 4591, 4597, 4603, 4621, 4637, 4639, 4643, 4649, - 4651, 4657, 4663, 4673, 4679, 4691, 4703, 4721, 4723, 4729, 4733, - 4751, 4759, 4783, 4787, 4789, 4793, 4799, 4801, 4813, 4817, 4831, - 4861, 4871, 4877, 4889, 4903, 4909, 4919, 4931, 4933, 4937, 4943, - 4951, 4957, 4967, 4969, 4973, 4987, 4993, 4999, 5003, 5009, 5011, - 5021, 5023, 5039, 5051, 5059, 5077, 5081, 5087, 5099, 5101, 5107, - 5113, 5119, 5147, 5153, 5167, 5171, 5179, 5189, 5197, 5209, 5227, - 5231, 5233, 5237, 5261, 5273, 5279, 5281, 5297, 5303, 5309, 5323, - 5333, 5347, 5351, 5381, 5387, 5393, 5399, 5407, 5413, 5417, 5419, - 5431, 5437, 5441, 5443, 5449, 5471, 5477, 5479, 5483, 5501, 5503, - 5507, 5519, 5521, 5527, 5531, 5557, 5563, 5569, 5573, 5581, 5591, - 5623, 5639, 5641, 5647, 5651, 5653, 5657, 5659, 5669, 5683, 5689, - 5693, 5701, 5711, 5717, 5737, 5741, 5743, 5749, 5779, 5783, 5791, - 5801, 5807, 5813, 5821, 5827, 5839, 5843, 5849, 5851, 5857, 5861, - 5867, 5869, 5879, 5881, 5897, 5903, 5923, 5927, 5939, 5953, 5981, - 5987, 6007, 6011, 6029, 6037, 6043, 6047, 6053, 6067, 6073, 6079, - 6089, 6091, 6101, 6113, 6121, 6131, 6133, 6143, 6151, 6163, 6173, - 6197, 6199, 6203, 6211, 6217, 6221, 6229, 6247, 6257, 6263, 6269, - 6271, 6277, 6287, 6299, 6301, 6311, 6317, 6323, 6329, 6337, 6343, - 6353, 6359, 6361, 6367, 6373, 6379, 6389, 6397, 6421, 6427, 6449, - 6451, 6469, 6473, 6481, 6491, 6521, 6529, 6547, 6551, 6553, 6563, - 6569, 6571, 6577, 6581, 6599, 6607, 6619, 6637, 6653, 6659, 6661, - 6673, 6679, 6689, 6691, 6701, 6703, 6709, 6719, 6733, 6737, 6761, - 6763, 6779, 6781, 6791, 6793, 6803, 6823, 6827, 6829, 6833, 6841, - 6857, 6863, 6869, 6871, 6883, 6899, 6907, 6911, 6917, 6947, 6949, - 6959, 6961, 6967, 6971, 6977, 6983, 6991, 6997, 7001, 7013, 7019, - 7027, 7039, 7043, 7057, 7069, 7079, 7103, 7109, 7121, 7127, 7129, - 7151, 7159, 7177, 7187, 7193, 7207, 7211, 7213, 7219, 7229, 7237, - 7243, 7247, 7253, 7283, 7297, 7307, 7309, 7321, 7331, 7333, 7349, - 7351, 7369, 7393, 7411, 7417, 7433, 7451, 7457, 7459, 7477, 7481, - 7487, 7489, 7499, 7507, 7517, 7523, 7529, 7537, 7541, 7547, 7549, - 7559, 7561, 7573, 7577, 7583, 7589, 7591, 7603, 7607, 7621, 7639, - 7643, 7649, 7669, 7673, 7681, 7687, 7691, 7699, 7703, 7717, 7723, - 7727, 7741, 7753, 7757, 7759, 7789, 7793, 7817, 7823, 7829, 7841, - 7853, 7867, 7873, 7877, 7879, 7883, 7901, 7907, 7919, 7927, 7933, - 7937, 7949, 7951, 7963, 7993, 8009, 8011, 8017, 8039, 8053, 8059, - 8069, 8081, 8087, 8089, 8093, 8101, 8111, 8117, 8123, 8147, 8161, - 8167, 8171, 8179, 8191, 8209, 8219, 8221, 8231, 8233, 8237, 8243, - 8263, 8269, 8273, 8287, 8291, 8293, 8297, 8311, 8317, 8329, 8353, - 8363, 8369, 8377, 8387, 8389, 8419, 8423, 8429, 8431, 8443, 8447, - 8461, 8467, 8501, 8513, 8521, 8527, 8537, 8539, 8543, 8563, 8573, - 8581, 8597, 8599, 8609, 8623, 8627, 8629, 8641, 8647, 8663, 8669, - 8677, 8681, 8689, 8693, 8699, 8707, 8713, 8719, 8731, 8737, 8741, - 8747, 8753, 8761, 8779, 8783, 8803, 8807, 8819, 8821, 8831, 8837, - 8839, 8849, 8861, 8863, 8867, 8887, 8893, 8923, 8929, 8933, 8941, - 8951, 8963, 8969, 8971, 8999, 9001, 9007, 9011, 9013, 9029, 9041, - 9043, 9049, 9059, 9067, 9091, 9103, 9109, 9127, 9133, 9137, 9151, - 9157, 9161, 9173, 9181, 9187, 9199, 9203, 9209, 9221, 9227, 9239, - 9241, 9257, 9277, 9281, 9283, 9293, 9311, 9319, 9323, 9337, 9341, - 9343, 9349, 9371, 9377, 9391, 9397, 9403, 9413, 9419, 9421, 9431, - 9433, 9437, 9439, 9461, 9463, 9467, 9473, 9479, 9491, 9497, 9511, - 9521, 9533, 9539, 9547, 9551, 9587, 9601, 9613, 9619, 9623, 9629, - 9631, 9643, 9649, 9661, 9677, 9679, 9689, 9697, 9719, 9721, 9733, - 9739, 9743, 9749, 9767, 9769, 9781, 9787, 9791, 9803, 9811, 9817, - 9829, 9833, 9839, 9851, 9857, 9859, 9871, 9883, 9887, 9901, 9907, - 9923, 9929, 9931, 9941, 9949, 9967, 9973, 10007, 10009, 10037, 10039, -10061, 10067, 10069, 10079, 10091, 10093, 10099, 10103, 10111, 10133, 10139, -10141, 10151, 10159, 10163, 10169, 10177, 10181, 10193, 10211, 10223, 10243, -10247, 10253, 10259, 10267, 10271, 10273, 10289, 10301, 10303, 10313, 10321, -10331, 10333, 10337, 10343, 10357, 10369, 10391, 10399, 10427, 10429, 10433, -10453, 10457, 10459, 10463, 10477, 10487, 10499, 10501, 10513, 10529, 10531, -10559, 10567, 10589, 10597, 10601, 10607, 10613, 10627, 10631, 10639, 10651, -10657, 10663, 10667, 10687, 10691, 10709, 10711, 10723, 10729, 10733, 10739, -10753, 10771, 10781, 10789, 10799, 10831, 10837, 10847, 10853, 10859, 10861, -10867, 10883, 10889, 10891, 10903, 10909, 10937, 10939, 10949, 10957, 10973, -10979, 10987, 10993, 11003, 11027, 11047, 11057, 11059, 11069, 11071, 11083, -11087, 11093, 11113, 11117, 11119, 11131, 11149, 11159, 11161, 11171, 11173, -11177, 11197, 11213, 11239, 11243, 11251, 11257, 11261, 11273, 11279, 11287, -11299, 11311, 11317, 11321, 11329, 11351, 11353, 11369, 11383, 11393, 11399, -11411, 11423, 11437, 11443, 11447, 11467, 11471, 11483, 11489, 11491, 11497, -11503, 11519, 11527, 11549, 11551, 11579, 11587, 11593, 11597, 11617, 11621, -11633, 11657, 11677, 11681, 11689, 11699, 11701, 11717, 11719, 11731, 11743, -11777, 11779, 11783, 11789, 11801, 11807, 11813, 11821, 11827, 11831, 11833, -11839, 11863, 11867, 11887, 11897, 11903, 11909, 11923, 11927, 11933, 11939, -11941, 11953, 11959, 11969, 11971, 11981, 11987, 12007, 12011, 12037, 12041, -12043, 12049, 12071, 12073, 12097, 12101, 12107, 12109, 12113, 12119, 12143, -12149, 12157, 12161, 12163, 12197, 12203, 12211, 12227, 12239, 12241, 12251, -12253, 12263, 12269, 12277, 12281, 12289, 12301, 12323, 12329, 12343, 12347, -12373, 12377, 12379, 12391, 12401, 12409, 12413, 12421, 12433, 12437, 12451, -12457, 12473, 12479, 12487, 12491, 12497, 12503, 12511, 12517, 12527, 12539, -12541, 12547, 12553, 12569, 12577, 12583, 12589, 12601, 12611, 12613, 12619, -12637, 12641, 12647, 12653, 12659, 12671, 12689, 12697, 12703, 12713, 12721, -12739, 12743, 12757, 12763, 12781, 12791, 12799, 12809, 12821, 12823, 12829, -12841, 12853, 12889, 12893, 12899, 12907, 12911, 12917, 12919, 12923, 12941, -12953, 12959, 12967, 12973, 12979, 12983, 13001, 13003, 13007, 13009, 13033, -13037, 13043, 13049, 13063, 13093, 13099, 13103, 13109, 13121, 13127, 13147, -13151, 13159, 13163, 13171, 13177, 13183, 13187, 13217, 13219, 13229, 13241, -13249, 13259, 13267, 13291, 13297, 13309, 13313, 13327, 13331, 13337, 13339, -13367, 13381, 13397, 13399, 13411, 13417, 13421, 13441, 13451, 13457, 13463, -13469, 13477, 13487, 13499, 13513, 13523, 13537, 13553, 13567, 13577, 13591, -13597, 13613, 13619, 13627, 13633, 13649, 13669, 13679, 13681, 13687, 13691, -13693, 13697, 13709, 13711, 13721, 13723, 13729, 13751, 13757, 13759, 13763, -13781, 13789, 13799, 13807, 13829, 13831, 13841, 13859, 13873, 13877, 13879, -13883, 13901, 13903, 13907, 13913, 13921, 13931, 13933, 13963, 13967, 13997, -13999, 14009, 14011, 14029, 14033, 14051, 14057, 14071, 14081, 14083, 14087, -14107, 14143, 14149, 14153, 14159, 14173, 14177, 14197, 14207, 14221, 14243, -14249, 14251, 14281, 14293, 14303, 14321, 14323, 14327, 14341, 14347, 14369, -14387, 14389, 14401, 14407, 14411, 14419, 14423, 14431, 14437, 14447, 14449, -14461, 14479, 14489, 14503, 14519, 14533, 14537, 14543, 14549, 14551, 14557, -14561, 14563, 14591, 14593, 14621, 14627, 14629, 14633, 14639, 14653, 14657, -14669, 14683, 14699, 14713, 14717, 14723, 14731, 14737, 14741, 14747, 14753, -14759, 14767, 14771, 14779, 14783, 14797, 14813, 14821, 14827, 14831, 14843, -14851, 14867, 14869, 14879, 14887, 14891, 14897, 14923, 14929, 14939, 14947, -14951, 14957, 14969, 14983, 15013, 15017, 15031, 15053, 15061, 15073, 15077, -15083, 15091, 15101, 15107, 15121, 15131, 15137, 15139, 15149, 15161, 15173, -15187, 15193, 15199, 15217, 15227, 15233, 15241, 15259, 15263, 15269, 15271, -15277, 15287, 15289, 15299, 15307, 15313, 15319, 15329, 15331, 15349, 15359, -15361, 15373, 15377, 15383, 15391, 15401, 15413, 15427, 15439, 15443, 15451, -15461, 15467, 15473, 15493, 15497, 15511, 15527, 15541, 15551, 15559, 15569, -15581, 15583, 15601, 15607, 15619, 15629, 15641, 15643, 15647, 15649, 15661, -15667, 15671, 15679, 15683, 15727, 15731, 15733, 15737, 15739, 15749, 15761, -15767, 15773, 15787, 15791, 15797, 15803, 15809, 15817, 15823, 15859, 15877, -15881, 15887, 15889, 15901, 15907, 15913, 15919, 15923, 15937, 15959, 15971, -15973, 15991, 16001, 16007, 16033, 16057, 16061, 16063, 16067, 16069, 16073, -16087, 16091, 16097, 16103, 16111, 16127, 16139, 16141, 16183, 16187, 16189, -16193, 16217, 16223, 16229, 16231, 16249, 16253, 16267, 16273, 16301, 16319, -16333, 16339, 16349, 16361, 16363, 16369, 16381, 16411, 16417, 16421, 16427, -16433, 16447, 16451, 16453, 16477, 16481, 16487, 16493, 16519, 16529, 16547, -16553, 16561, 16567, 16573, 16603, 16607, 16619, 16631, 16633, 16649, 16651, -16657, 16661, 16673, 16691, 16693, 16699, 16703, 16729, 16741, 16747, 16759, -16763, 16787, 16811, 16823, 16829, 16831, 16843, 16871, 16879, 16883, 16889, -16901, 16903, 16921, 16927, 16931, 16937, 16943, 16963, 16979, 16981, 16987, -16993, 17011, 17021, 17027, 17029, 17033, 17041, 17047, 17053, 17077, 17093, -17099, 17107, 17117, 17123, 17137, 17159, 17167, 17183, 17189, 17191, 17203, -17207, 17209, 17231, 17239, 17257, 17291, 17293, 17299, 17317, 17321, 17327, -17333, 17341, 17351, 17359, 17377, 17383, 17387, 17389, 17393, 17401, 17417, -17419, 17431, 17443, 17449, 17467, 17471, 17477, 17483, 17489, 17491, 17497, -17509, 17519, 17539, 17551, 17569, 17573, 17579, 17581, 17597, 17599, 17609, -17623, 17627, 17657, 17659, 17669, 17681, 17683, 17707, 17713, 17729, 17737, -17747, 17749, 17761, 17783, 17789, 17791, 17807, 17827, 17837, 17839, 17851, -17863, 17881, 17891, 17903, 17909, 17911, 17921, 17923, 17929, 17939, 17957, -17959, 17971, 17977, 17981, 17987, 17989, 18013, 18041, 18043, 18047, 18049, -18059, 18061, 18077, 18089, 18097, 18119, 18121, 18127, 18131, 18133, 18143, -18149, 18169, 18181, 18191, 18199, 18211, 18217, 18223, 18229, 18233, 18251, -18253, 18257, 18269, 18287, 18289, 18301, 18307, 18311, 18313, 18329, 18341, -18353, 18367, 18371, 18379, 18397, 18401, 18413, 18427, 18433, 18439, 18443, -18451, 18457, 18461, 18481, 18493, 18503, 18517, 18521, 18523, 18539, 18541, -18553, 18583, 18587, 18593, 18617, 18637, 18661, 18671, 18679, 18691, 18701, -18713, 18719, 18731, 18743, 18749, 18757, 18773, 18787, 18793, 18797, 18803, -18839, 18859, 18869, 18899, 18911, 18913, 18917, 18919, 18947, 18959, 18973, -18979, 19001, 19009, 19013, 19031, 19037, 19051, 19069, 19073, 19079, 19081, -19087, 19121, 19139, 19141, 19157, 19163, 19181, 19183, 19207, 19211, 19213, -19219, 19231, 19237, 19249, 19259, 19267, 19273, 19289, 19301, 19309, 19319, -19333, 19373, 19379, 19381, 19387, 19391, 19403, 19417, 19421, 19423, 19427, -19429, 19433, 19441, 19447, 19457, 19463, 19469, 19471, 19477, 19483, 19489, -19501, 19507, 19531, 19541, 19543, 19553, 19559, 19571, 19577, 19583, 19597, -19603, 19609, 19661, 19681, 19687, 19697, 19699, 19709, 19717, 19727, 19739, -19751, 19753, 19759, 19763, 19777, 19793, 19801, 19813, 19819, 19841, 19843, -19853, 19861, 19867, 19889, 19891, 19913, 19919, 19927, 19937, 19949, 19961, -19963, 19973, 19979, 19991, 19993, 19997, 20011, 20021, 20023, 20029, 20047, -20051, 20063, 20071, 20089, 20101, 20107, 20113, 20117, 20123, 20129, 20143, -20147, 20149, 20161, 20173, 20177, 20183, 20201, 20219, 20231, 20233, 20249, -20261, 20269, 20287, 20297, 20323, 20327, 20333, 20341, 20347, 20353, 20357, -20359, 20369, 20389, 20393, 20399, 20407, 20411, 20431, 20441, 20443, 20477, -20479, 20483, 20507, 20509, 20521, 20533, 20543, 20549, 20551, 20563, 20593, -20599, 20611, 20627, 20639, 20641, 20663, 20681, 20693, 20707, 20717, 20719, -20731, 20743, 20747, 20749, 20753, 20759, 20771, 20773, 20789, 20807, 20809, -20849, 20857, 20873, 20879, 20887, 20897, 20899, 20903, 20921, 20929, 20939, -20947, 20959, 20963, 20981, 20983, 21001, 21011, 21013, 21017, 21019, 21023, -21031, 21059, 21061, 21067, 21089, 21101, 21107, 21121, 21139, 21143, 21149, -21157, 21163, 21169, 21179, 21187, 21191, 21193, 21211, 21221, 21227, 21247, -21269, 21277, 21283, 21313, 21317, 21319, 21323, 21341, 21347, 21377, 21379, -21383, 21391, 21397, 21401, 21407, 21419, 21433, 21467, 21481, 21487, 21491, -21493, 21499, 21503, 21517, 21521, 21523, 21529, 21557, 21559, 21563, 21569, -21577, 21587, 21589, 21599, 21601, 21611, 21613, 21617, 21647, 21649, 21661, -21673, 21683, 21701, 21713, 21727, 21737, 21739, 21751, 21757, 21767, 21773, -21787, 21799, 21803, 21817, 21821, 21839, 21841, 21851, 21859, 21863, 21871, -21881, 21893, 21911, 21929, 21937, 21943, 21961, 21977, 21991, 21997, 22003, -22013, 22027, 22031, 22037, 22039, 22051, 22063, 22067, 22073, 22079, 22091, -22093, 22109, 22111, 22123, 22129, 22133, 22147, 22153, 22157, 22159, 22171, -22189, 22193, 22229, 22247, 22259, 22271, 22273, 22277, 22279, 22283, 22291, -22303, 22307, 22343, 22349, 22367, 22369, 22381, 22391, 22397, 22409, 22433, -22441, 22447, 22453, 22469, 22481, 22483, 22501, 22511, 22531, 22541, 22543, -22549, 22567, 22571, 22573, 22613, 22619, 22621, 22637, 22639, 22643, 22651, -22669, 22679, 22691, 22697, 22699, 22709, 22717, 22721, 22727, 22739, 22741, -22751, 22769, 22777, 22783, 22787, 22807, 22811, 22817, 22853, 22859, 22861, -22871, 22877, 22901, 22907, 22921, 22937, 22943, 22961, 22963, 22973, 22993, -23003, 23011, 23017, 23021, 23027, 23029, 23039, 23041, 23053, 23057, 23059, -23063, 23071, 23081, 23087, 23099, 23117, 23131, 23143, 23159, 23167, 23173, -23189, 23197, 23201, 23203, 23209, 23227, 23251, 23269, 23279, 23291, 23293, -23297, 23311, 23321, 23327, 23333, 23339, 23357, 23369, 23371, 23399, 23417, -23431, 23447, 23459, 23473, 23497, 23509, 23531, 23537, 23539, 23549, 23557, -23561, 23563, 23567, 23581, 23593, 23599, 23603, 23609, 23623, 23627, 23629, -23633, 23663, 23669, 23671, 23677, 23687, 23689, 23719, 23741, 23743, 23747, -23753, 23761, 23767, 23773, 23789, 23801, 23813, 23819, 23827, 23831, 23833, -23857, 23869, 23873, 23879, 23887, 23893, 23899, 23909, 23911, 23917, 23929, -23957, 23971, 23977, 23981, 23993, 24001, 24007, 24019, 24023, 24029, 24043, -24049, 24061, 24071, 24077, 24083, 24091, 24097, 24103, 24107, 24109, 24113, -24121, 24133, 24137, 24151, 24169, 24179, 24181, 24197, 24203, 24223, 24229, -24239, 24247, 24251, 24281, 24317, 24329, 24337, 24359, 24371, 24373, 24379, -24391, 24407, 24413, 24419, 24421, 24439, 24443, 24469, 24473, 24481, 24499, -24509, 24517, 24527, 24533, 24547, 24551, 24571, 24593, 24611, 24623, 24631, -24659, 24671, 24677, 24683, 24691, 24697, 24709, 24733, 24749, 24763, 24767, -24781, 24793, 24799, 24809, 24821, 24841, 24847, 24851, 24859, 24877, 24889, -24907, 24917, 24919, 24923, 24943, 24953, 24967, 24971, 24977, 24979, 24989, -25013, 25031, 25033, 25037, 25057, 25073, 25087, 25097, 25111, 25117, 25121, -25127, 25147, 25153, 25163, 25169, 25171, 25183, 25189, 25219, 25229, 25237, -25243, 25247, 25253, 25261, 25301, 25303, 25307, 25309, 25321, 25339, 25343, -25349, 25357, 25367, 25373, 25391, 25409, 25411, 25423, 25439, 25447, 25453, -25457, 25463, 25469, 25471, 25523, 25537, 25541, 25561, 25577, 25579, 25583, -25589, 25601, 25603, 25609, 25621, 25633, 25639, 25643, 25657, 25667, 25673, -25679, 25693, 25703, 25717, 25733, 25741, 25747, 25759, 25763, 25771, 25793, -25799, 25801, 25819, 25841, 25847, 25849, 25867, 25873, 25889, 25903, 25913, -25919, 25931, 25933, 25939, 25943, 25951, 25969, 25981, 25997, 25999, 26003, -26017, 26021, 26029, 26041, 26053, 26083, 26099, 26107, 26111, 26113, 26119, -26141, 26153, 26161, 26171, 26177, 26183, 26189, 26203, 26209, 26227, 26237, -26249, 26251, 26261, 26263, 26267, 26293, 26297, 26309, 26317, 26321, 26339, -26347, 26357, 26371, 26387, 26393, 26399, 26407, 26417, 26423, 26431, 26437, -26449, 26459, 26479, 26489, 26497, 26501, 26513, 26539, 26557, 26561, 26573, -26591, 26597, 26627, 26633, 26641, 26647, 26669, 26681, 26683, 26687, 26693, -26699, 26701, 26711, 26713, 26717, 26723, 26729, 26731, 26737, 26759, 26777, -26783, 26801, 26813, 26821, 26833, 26839, 26849, 26861, 26863, 26879, 26881, -26891, 26893, 26903, 26921, 26927, 26947, 26951, 26953, 26959, 26981, 26987, -26993, 27011, 27017, 27031, 27043, 27059, 27061, 27067, 27073, 27077, 27091, -27103, 27107, 27109, 27127, 27143, 27179, 27191, 27197, 27211, 27239, 27241, -27253, 27259, 27271, 27277, 27281, 27283, 27299, 27329, 27337, 27361, 27367, -27397, 27407, 27409, 27427, 27431, 27437, 27449, 27457, 27479, 27481, 27487, -27509, 27527, 27529, 27539, 27541, 27551, 27581, 27583, 27611, 27617, 27631, -27647, 27653, 27673, 27689, 27691, 27697, 27701, 27733, 27737, 27739, 27743, -27749, 27751, 27763, 27767, 27773, 27779, 27791, 27793, 27799, 27803, 27809, -27817, 27823, 27827, 27847, 27851, 27883, 27893, 27901, 27917, 27919, 27941, -27943, 27947, 27953, 27961, 27967, 27983, 27997, 28001, 28019, 28027, 28031, -28051, 28057, 28069, 28081, 28087, 28097, 28099, 28109, 28111, 28123, 28151, -28163, 28181, 28183, 28201, 28211, 28219, 28229, 28277, 28279, 28283, 28289, -28297, 28307, 28309, 28319, 28349, 28351, 28387, 28393, 28403, 28409, 28411, -28429, 28433, 28439, 28447, 28463, 28477, 28493, 28499, 28513, 28517, 28537, -28541, 28547, 28549, 28559, 28571, 28573, 28579, 28591, 28597, 28603, 28607, -28619, 28621, 28627, 28631, 28643, 28649, 28657, 28661, 28663, 28669, 28687, -28697, 28703, 28711, 28723, 28729, 28751, 28753, 28759, 28771, 28789, 28793, -28807, 28813, 28817, 28837, 28843, 28859, 28867, 28871, 28879, 28901, 28909, -28921, 28927, 28933, 28949, 28961, 28979, 29009, 29017, 29021, 29023, 29027, -29033, 29059, 29063, 29077, 29101, 29123, 29129, 29131, 29137, 29147, 29153, -29167, 29173, 29179, 29191, 29201, 29207, 29209, 29221, 29231, 29243, 29251, -29269, 29287, 29297, 29303, 29311, 29327, 29333, 29339, 29347, 29363, 29383, -29387, 29389, 29399, 29401, 29411, 29423, 29429, 29437, 29443, 29453, 29473, -29483, 29501, 29527, 29531, 29537, 29567, 29569, 29573, 29581, 29587, 29599, -29611, 29629, 29633, 29641, 29663, 29669, 29671, 29683, 29717, 29723, 29741, -29753, 29759, 29761, 29789, 29803, 29819, 29833, 29837, 29851, 29863, 29867, -29873, 29879, 29881, 29917, 29921, 29927, 29947, 29959, 29983, 29989, 30011, -30013, 30029, 30047, 30059, 30071, 30089, 30091, 30097, 30103, 30109, 30113, -30119, 30133, 30137, 30139, 30161, 30169, 30181, 30187, 30197, 30203, 30211, -30223, 30241, 30253, 30259, 30269, 30271, 30293, 30307, 30313, 30319, 30323, -30341, 30347, 30367, 30389, 30391, 30403, 30427, 30431, 30449, 30467, 30469, -30491, 30493, 30497, 30509, 30517, 30529, 30539, 30553, 30557, 30559, 30577, -30593, 30631, 30637, 30643, 30649, 30661, 30671, 30677, 30689, 30697, 30703, -30707, 30713, 30727, 30757, 30763, 30773, 30781, 30803, 30809, 30817, 30829, -30839, 30841, 30851, 30853, 30859, 30869, 30871, 30881, 30893, 30911, 30931, -30937, 30941, 30949, 30971, 30977, 30983, 31013, 31019, 31033, 31039, 31051, -31063, 31069, 31079, 31081, 31091, 31121, 31123, 31139, 31147, 31151, 31153, -31159, 31177, 31181, 31183, 31189, 31193, 31219, 31223, 31231, 31237, 31247, -31249, 31253, 31259, 31267, 31271, 31277, 31307, 31319, 31321, 31327, 31333, -31337, 31357, 31379, 31387, 31391, 31393, 31397, 31469, 31477, 31481, 31489, -31511, 31513, 31517, 31531, 31541, 31543, 31547, 31567, 31573, 31583, 31601, -31607, 31627, 31643, 31649, 31657, 31663, 31667, 31687, 31699, 31721, 31723, -31727, 31729, 31741, 31751, 31769, 31771, 31793, 31799, 31817, 31847, 31849, -31859, 31873, 31883, 31891, 31907, 31957, 31963, 31973, 31981, 31991, 32003, -32009, 32027, 32029, 32051, 32057, 32059, 32063, 32069, 32077, 32083, 32089, -32099, 32117, 32119, 32141, 32143, 32159, 32173, 32183, 32189, 32191, 32203, -32213, 32233, 32237, 32251, 32257, 32261, 32297, 32299, 32303, 32309, 32321, -32323, 32327, 32341, 32353, 32359, 32363, 32369, 32371, 32377, 32381, 32401, -32411, 32413, 32423, 32429, 32441, 32443, 32467, 32479, 32491, 32497, 32503, -32507, 32531, 32533, 32537, 32561, 32563, 32569, 32573, 32579, 32587, 32603, -32609, 32611, 32621, 32633, 32647, 32653, 32687, 32693, 32707, 32713, 32717, -32719, 32749, 32771, 32779, 32783, 32789, 32797, 32801, 32803, 32831, 32833, -32839, 32843, 32869, 32887, 32909, 32911, 32917, 32933, 32939, 32941, 32957, -32969, 32971, 32983, 32987, 32993, 32999, 33013, 33023, 33029, 33037, 33049, -33053, 33071, 33073, 33083, 33091, 33107, 33113, 33119, 33149, 33151, 33161, -33179, 33181, 33191, 33199, 33203, 33211, 33223, 33247, 33287, 33289, 33301, -33311, 33317, 33329, 33331, 33343, 33347, 33349, 33353, 33359, 33377, 33391, -33403, 33409, 33413, 33427, 33457, 33461, 33469, 33479, 33487, 33493, 33503, -33521, 33529, 33533, 33547, 33563, 33569, 33577, 33581, 33587, 33589, 33599, -33601, 33613, 33617, 33619, 33623, 33629, 33637, 33641, 33647, 33679, 33703, -33713, 33721, 33739, 33749, 33751, 33757, 33767, 33769, 33773, 33791, 33797, -33809, 33811, 33827, 33829, 33851, 33857, 33863, 33871, 33889, 33893, 33911, -33923, 33931, 33937, 33941, 33961, 33967, 33997, 34019, 34031, 34033, 34039, -34057, 34061, 34123, 34127, 34129, 34141, 34147, 34157, 34159, 34171, 34183, -34211, 34213, 34217, 34231, 34253, 34259, 34261, 34267, 34273, 34283, 34297, -34301, 34303, 34313, 34319, 34327, 34337, 34351, 34361, 34367, 34369, 34381, -34403, 34421, 34429, 34439, 34457, 34469, 34471, 34483, 34487, 34499, 34501, -34511, 34513, 34519, 34537, 34543, 34549, 34583, 34589, 34591, 34603, 34607, -34613, 34631, 34649, 34651, 34667, 34673, 34679, 34687, 34693, 34703, 34721, -34729, 34739, 34747, 34757, 34759, 34763, 34781, 34807, 34819, 34841, 34843, -34847, 34849, 34871, 34877, 34883, 34897, 34913, 34919, 34939, 34949, 34961, -34963, 34981, 35023, 35027, 35051, 35053, 35059, 35069, 35081, 35083, 35089, -35099, 35107, 35111, 35117, 35129, 35141, 35149, 35153, 35159, 35171, 35201, -35221, 35227, 35251, 35257, 35267, 35279, 35281, 35291, 35311, 35317, 35323, -35327, 35339, 35353, 35363, 35381, 35393, 35401, 35407, 35419, 35423, 35437, -35447, 35449, 35461, 35491, 35507, 35509, 35521, 35527, 35531, 35533, 35537, -35543, 35569, 35573, 35591, 35593, 35597, 35603, 35617, 35671, 35677, 35729, -35731, 35747, 35753, 35759, 35771, 35797, 35801, 35803, 35809, 35831, 35837, -35839, 35851, 35863, 35869, 35879, 35897, 35899, 35911, 35923, 35933, 35951, -35963, 35969, 35977, 35983, 35993, 35999, 36007, 36011, 36013, 36017, 36037, -36061, 36067, 36073, 36083, 36097, 36107, 36109, 36131, 36137, 36151, 36161, -36187, 36191, 36209, 36217, 36229, 36241, 36251, 36263, 36269, 36277, 36293, -36299, 36307, 36313, 36319, 36341, 36343, 36353, 36373, 36383, 36389, 36433, -36451, 36457, 36467, 36469, 36473, 36479, 36493, 36497, 36523, 36527, 36529, -36541, 36551, 36559, 36563, 36571, 36583, 36587, 36599, 36607, 36629, 36637, -36643, 36653, 36671, 36677, 36683, 36691, 36697, 36709, 36713, 36721, 36739, -36749, 36761, 36767, 36779, 36781, 36787, 36791, 36793, 36809, 36821, 36833, -36847, 36857, 36871, 36877, 36887, 36899, 36901, 36913, 36919, 36923, 36929, -36931, 36943, 36947, 36973, 36979, 36997, 37003, 37013, 37019, 37021, 37039, -37049, 37057, 37061, 37087, 37097, 37117, 37123, 37139, 37159, 37171, 37181, -37189, 37199, 37201, 37217, 37223, 37243, 37253, 37273, 37277, 37307, 37309, -37313, 37321, 37337, 37339, 37357, 37361, 37363, 37369, 37379, 37397, 37409, -37423, 37441, 37447, 37463, 37483, 37489, 37493, 37501, 37507, 37511, 37517, -37529, 37537, 37547, 37549, 37561, 37567, 37571, 37573, 37579, 37589, 37591, -37607, 37619, 37633, 37643, 37649, 37657, 37663, 37691, 37693, 37699, 37717, -37747, 37781, 37783, 37799, 37811, 37813, 37831, 37847, 37853, 37861, 37871, -37879, 37889, 37897, 37907, 37951, 37957, 37963, 37967, 37987, 37991, 37993, -37997, 38011, 38039, 38047, 38053, 38069, 38083, 38113, 38119, 38149, 38153, -38167, 38177, 38183, 38189, 38197, 38201, 38219, 38231, 38237, 38239, 38261, -38273, 38281, 38287, 38299, 38303, 38317, 38321, 38327, 38329, 38333, 38351, -38371, 38377, 38393, 38431, 38447, 38449, 38453, 38459, 38461, 38501, 38543, -38557, 38561, 38567, 38569, 38593, 38603, 38609, 38611, 38629, 38639, 38651, -38653, 38669, 38671, 38677, 38693, 38699, 38707, 38711, 38713, 38723, 38729, -38737, 38747, 38749, 38767, 38783, 38791, 38803, 38821, 38833, 38839, 38851, -38861, 38867, 38873, 38891, 38903, 38917, 38921, 38923, 38933, 38953, 38959, -38971, 38977, 38993, 39019, 39023, 39041, 39043, 39047, 39079, 39089, 39097, -39103, 39107, 39113, 39119, 39133, 39139, 39157, 39161, 39163, 39181, 39191, -39199, 39209, 39217, 39227, 39229, 39233, 39239, 39241, 39251, 39293, 39301, -39313, 39317, 39323, 39341, 39343, 39359, 39367, 39371, 39373, 39383, 39397, -39409, 39419, 39439, 39443, 39451, 39461, 39499, 39503, 39509, 39511, 39521, -39541, 39551, 39563, 39569, 39581, 39607, 39619, 39623, 39631, 39659, 39667, -39671, 39679, 39703, 39709, 39719, 39727, 39733, 39749, 39761, 39769, 39779, -39791, 39799, 39821, 39827, 39829, 39839, 39841, 39847, 39857, 39863, 39869, -39877, 39883, 39887, 39901, 39929, 39937, 39953, 39971, 39979, 39983, 39989, -40009, 40013, 40031, 40037, 40039, 40063, 40087, 40093, 40099, 40111, 40123, -40127, 40129, 40151, 40153, 40163, 40169, 40177, 40189, 40193, 40213, 40231, -40237, 40241, 40253, 40277, 40283, 40289, 40343, 40351, 40357, 40361, 40387, -40423, 40427, 40429, 40433, 40459, 40471, 40483, 40487, 40493, 40499, 40507, -40519, 40529, 40531, 40543, 40559, 40577, 40583, 40591, 40597, 40609, 40627, -40637, 40639, 40693, 40697, 40699, 40709, 40739, 40751, 40759, 40763, 40771, -40787, 40801, 40813, 40819, 40823, 40829, 40841, 40847, 40849, 40853, 40867, -40879, 40883, 40897, 40903, 40927, 40933, 40939, 40949, 40961, 40973, 40993, -41011, 41017, 41023, 41039, 41047, 41051, 41057, 41077, 41081, 41113, 41117, -41131, 41141, 41143, 41149, 41161, 41177, 41179, 41183, 41189, 41201, 41203, -41213, 41221, 41227, 41231, 41233, 41243, 41257, 41263, 41269, 41281, 41299, -41333, 41341, 41351, 41357, 41381, 41387, 41389, 41399, 41411, 41413, 41443, -41453, 41467, 41479, 41491, 41507, 41513, 41519, 41521, 41539, 41543, 41549, -41579, 41593, 41597, 41603, 41609, 41611, 41617, 41621, 41627, 41641, 41647, -41651, 41659, 41669, 41681, 41687, 41719, 41729, 41737, 41759, 41761, 41771, -41777, 41801, 41809, 41813, 41843, 41849, 41851, 41863, 41879, 41887, 41893, -41897, 41903, 41911, 41927, 41941, 41947, 41953, 41957, 41959, 41969, 41981, -41983, 41999, 42013, 42017, 42019, 42023, 42043, 42061, 42071, 42073, 42083, -42089, 42101, 42131, 42139, 42157, 42169, 42179, 42181, 42187, 42193, 42197, -42209, 42221, 42223, 42227, 42239, 42257, 42281, 42283, 42293, 42299, 42307, -42323, 42331, 42337, 42349, 42359, 42373, 42379, 42391, 42397, 42403, 42407, -42409, 42433, 42437, 42443, 42451, 42457, 42461, 42463, 42467, 42473, 42487, -42491, 42499, 42509, 42533, 42557, 42569, 42571, 42577, 42589, 42611, 42641, -42643, 42649, 42667, 42677, 42683, 42689, 42697, 42701, 42703, 42709, 42719, -42727, 42737, 42743, 42751, 42767, 42773, 42787, 42793, 42797, 42821, 42829, -42839, 42841, 42853, 42859, 42863, 42899, 42901, 42923, 42929, 42937, 42943, -42953, 42961, 42967, 42979, 42989, 43003, 43013, 43019, 43037, 43049, 43051, -43063, 43067, 43093, 43103, 43117, 43133, 43151, 43159, 43177, 43189, 43201, -43207, 43223, 43237, 43261, 43271, 43283, 43291, 43313, 43319, 43321, 43331, -43391, 43397, 43399, 43403, 43411, 43427, 43441, 43451, 43457, 43481, 43487, -43499, 43517, 43541, 43543, 43573, 43577, 43579, 43591, 43597, 43607, 43609, -43613, 43627, 43633, 43649, 43651, 43661, 43669, 43691, 43711, 43717, 43721, -43753, 43759, 43777, 43781, 43783, 43787, 43789, 43793, 43801, 43853, 43867, -43889, 43891, 43913, 43933, 43943, 43951, 43961, 43963, 43969, 43973, 43987, -43991, 43997, 44017, 44021, 44027, 44029, 44041, 44053, 44059, 44071, 44087, -44089, 44101, 44111, 44119, 44123, 44129, 44131, 44159, 44171, 44179, 44189, -44201, 44203, 44207, 44221, 44249, 44257, 44263, 44267, 44269, 44273, 44279, -44281, 44293, 44351, 44357, 44371, 44381, 44383, 44389, 44417, 44449, 44453, -44483, 44491, 44497, 44501, 44507, 44519, 44531, 44533, 44537, 44543, 44549, -44563, 44579, 44587, 44617, 44621, 44623, 44633, 44641, 44647, 44651, 44657, -44683, 44687, 44699, 44701, 44711, 44729, 44741, 44753, 44771, 44773, 44777, -44789, 44797, 44809, 44819, 44839, 44843, 44851, 44867, 44879, 44887, 44893, -44909, 44917, 44927, 44939, 44953, 44959, 44963, 44971, 44983, 44987, 45007, -45013, 45053, 45061, 45077, 45083, 45119, 45121, 45127, 45131, 45137, 45139, -45161, 45179, 45181, 45191, 45197, 45233, 45247, 45259, 45263, 45281, 45289, -45293, 45307, 45317, 45319, 45329, 45337, 45341, 45343, 45361, 45377, 45389, -45403, 45413, 45427, 45433, 45439, 45481, 45491, 45497, 45503, 45523, 45533, -45541, 45553, 45557, 45569, 45587, 45589, 45599, 45613, 45631, 45641, 45659, -45667, 45673, 45677, 45691, 45697, 45707, 45737, 45751, 45757, 45763, 45767, -45779, 45817, 45821, 45823, 45827, 45833, 45841, 45853, 45863, 45869, 45887, -45893, 45943, 45949, 45953, 45959, 45971, 45979, 45989, 46021, 46027, 46049, -46051, 46061, 46073, 46091, 46093, 46099, 46103, 46133, 46141, 46147, 46153, -46171, 46181, 46183, 46187, 46199, 46219, 46229, 46237, 46261, 46271, 46273, -46279, 46301, 46307, 46309, 46327, 46337, 46349, 46351, 46381, 46399, 46411, -46439, 46441, 46447, 46451, 46457, 46471, 46477, 46489, 46499, 46507, 46511, -46523, 46549, 46559, 46567, 46573, 46589, 46591, 46601, 46619, 46633, 46639, -46643, 46649, 46663, 46679, 46681, 46687, 46691, 46703, 46723, 46727, 46747, -46751, 46757, 46769, 46771, 46807, 46811, 46817, 46819, 46829, 46831, 46853, -46861, 46867, 46877, 46889, 46901, 46919, 46933, 46957, 46993, 46997, 47017, -47041, 47051, 47057, 47059, 47087, 47093, 47111, 47119, 47123, 47129, 47137, -47143, 47147, 47149, 47161, 47189, 47207, 47221, 47237, 47251, 47269, 47279, -47287, 47293, 47297, 47303, 47309, 47317, 47339, 47351, 47353, 47363, 47381, -47387, 47389, 47407, 47417, 47419, 47431, 47441, 47459, 47491, 47497, 47501, -47507, 47513, 47521, 47527, 47533, 47543, 47563, 47569, 47581, 47591, 47599, -47609, 47623, 47629, 47639, 47653, 47657, 47659, 47681, 47699, 47701, 47711, -47713, 47717, 47737, 47741, 47743, 47777, 47779, 47791, 47797, 47807, 47809, -47819, 47837, 47843, 47857, 47869, 47881, 47903, 47911, 47917, 47933, 47939, -47947, 47951, 47963, 47969, 47977, 47981, 48017, 48023, 48029, 48049, 48073, -48079, 48091, 48109, 48119, 48121, 48131, 48157, 48163, 48179, 48187, 48193, -48197, 48221, 48239, 48247, 48259, 48271, 48281, 48299, 48311, 48313, 48337, -48341, 48353, 48371, 48383, 48397, 48407, 48409, 48413, 48437, 48449, 48463, -48473, 48479, 48481, 48487, 48491, 48497, 48523, 48527, 48533, 48539, 48541, -48563, 48571, 48589, 48593, 48611, 48619, 48623, 48647, 48649, 48661, 48673, -48677, 48679, 48731, 48733, 48751, 48757, 48761, 48767, 48779, 48781, 48787, -48799, 48809, 48817, 48821, 48823, 48847, 48857, 48859, 48869, 48871, 48883, -48889, 48907, 48947, 48953, 48973, 48989, 48991, 49003, 49009, 49019, 49031, -49033, 49037, 49043, 49057, 49069, 49081, 49103, 49109, 49117, 49121, 49123, -49139, 49157, 49169, 49171, 49177, 49193, 49199, 49201, 49207, 49211, 49223, -49253, 49261, 49277, 49279, 49297, 49307, 49331, 49333, 49339, 49363, 49367, -49369, 49391, 49393, 49409, 49411, 49417, 49429, 49433, 49451, 49459, 49463, -49477, 49481, 49499, 49523, 49529, 49531, 49537, 49547, 49549, 49559, 49597, -49603, 49613, 49627, 49633, 49639, 49663, 49667, 49669, 49681, 49697, 49711, -49727, 49739, 49741, 49747, 49757, 49783, 49787, 49789, 49801, 49807, 49811, -49823, 49831, 49843, 49853, 49871, 49877, 49891, 49919, 49921, 49927, 49937, -49939, 49943, 49957, 49991, 49993, 49999, 50021, 50023, 50033, 50047, 50051, -50053, 50069, 50077, 50087, 50093, 50101, 50111, 50119, 50123, 50129, 50131, -50147, 50153, 50159, 50177, 50207, 50221, 50227, 50231, 50261, 50263, 50273, -50287, 50291, 50311, 50321, 50329, 50333, 50341, 50359, 50363, 50377, 50383, -50387, 50411, 50417, 50423, 50441, 50459, 50461, 50497, 50503, 50513, 50527, -50539, 50543, 50549, 50551, 50581, 50587, 50591, 50593, 50599, 50627, 50647, -50651, 50671, 50683, 50707, 50723, 50741, 50753, 50767, 50773, 50777, 50789, -50821, 50833, 50839, 50849, 50857, 50867, 50873, 50891, 50893, 50909, 50923, -50929, 50951, 50957, 50969, 50971, 50989, 50993, 51001, 51031, 51043, 51047, -51059, 51061, 51071, 51109, 51131, 51133, 51137, 51151, 51157, 51169, 51193, -51197, 51199, 51203, 51217, 51229, 51239, 51241, 51257, 51263, 51283, 51287, -51307, 51329, 51341, 51343, 51347, 51349, 51361, 51383, 51407, 51413, 51419, -51421, 51427, 51431, 51437, 51439, 51449, 51461, 51473, 51479, 51481, 51487, -51503, 51511, 51517, 51521, 51539, 51551, 51563, 51577, 51581, 51593, 51599, -51607, 51613, 51631, 51637, 51647, 51659, 51673, 51679, 51683, 51691, 51713, -51719, 51721, 51749, 51767, 51769, 51787, 51797, 51803, 51817, 51827, 51829, -51839, 51853, 51859, 51869, 51871, 51893, 51899, 51907, 51913, 51929, 51941, -51949, 51971, 51973, 51977, 51991, 52009, 52021, 52027, 52051, 52057, 52067, -52069, 52081, 52103, 52121, 52127, 52147, 52153, 52163, 52177, 52181, 52183, -52189, 52201, 52223, 52237, 52249, 52253, 52259, 52267, 52289, 52291, 52301, -52313, 52321, 52361, 52363, 52369, 52379, 52387, 52391, 52433, 52453, 52457, -52489, 52501, 52511, 52517, 52529, 52541, 52543, 52553, 52561, 52567, 52571, -52579, 52583, 52609, 52627, 52631, 52639, 52667, 52673, 52691, 52697, 52709, -52711, 52721, 52727, 52733, 52747, 52757, 52769, 52783, 52807, 52813, 52817, -52837, 52859, 52861, 52879, 52883, 52889, 52901, 52903, 52919, 52937, 52951, -52957, 52963, 52967, 52973, 52981, 52999, 53003, 53017, 53047, 53051, 53069, -53077, 53087, 53089, 53093, 53101, 53113, 53117, 53129, 53147, 53149, 53161, -53171, 53173, 53189, 53197, 53201, 53231, 53233, 53239, 53267, 53269, 53279, -53281, 53299, 53309, 53323, 53327, 53353, 53359, 53377, 53381, 53401, 53407, -53411, 53419, 53437, 53441, 53453, 53479, 53503, 53507, 53527, 53549, 53551, -53569, 53591, 53593, 53597, 53609, 53611, 53617, 53623, 53629, 53633, 53639, -53653, 53657, 53681, 53693, 53699, 53717, 53719, 53731, 53759, 53773, 53777, -53783, 53791, 53813, 53819, 53831, 53849, 53857, 53861, 53881, 53887, 53891, -53897, 53899, 53917, 53923, 53927, 53939, 53951, 53959, 53987, 53993, 54001, -54011, 54013, 54037, 54049, 54059, 54083, 54091, 54101, 54121, 54133, 54139, -54151, 54163, 54167, 54181, 54193, 54217, 54251, 54269, 54277, 54287, 54293, -54311, 54319, 54323, 54331, 54347, 54361, 54367, 54371, 54377, 54401, 54403, -54409, 54413, 54419, 54421, 54437, 54443, 54449, 54469, 54493, 54497, 54499, -54503, 54517, 54521, 54539, 54541, 54547, 54559, 54563, 54577, 54581, 54583, -54601, 54617, 54623, 54629, 54631, 54647, 54667, 54673, 54679, 54709, 54713, -54721, 54727, 54751, 54767, 54773, 54779, 54787, 54799, 54829, 54833, 54851, -54869, 54877, 54881, 54907, 54917, 54919, 54941, 54949, 54959, 54973, 54979, -54983, 55001, 55009, 55021, 55049, 55051, 55057, 55061, 55073, 55079, 55103, -55109, 55117, 55127, 55147, 55163, 55171, 55201, 55207, 55213, 55217, 55219, -55229, 55243, 55249, 55259, 55291, 55313, 55331, 55333, 55337, 55339, 55343, -55351, 55373, 55381, 55399, 55411, 55439, 55441, 55457, 55469, 55487, 55501, -55511, 55529, 55541, 55547, 55579, 55589, 55603, 55609, 55619, 55621, 55631, -55633, 55639, 55661, 55663, 55667, 55673, 55681, 55691, 55697, 55711, 55717, -55721, 55733, 55763, 55787, 55793, 55799, 55807, 55813, 55817, 55819, 55823, -55829, 55837, 55843, 55849, 55871, 55889, 55897, 55901, 55903, 55921, 55927, -55931, 55933, 55949, 55967, 55987, 55997, 56003, 56009, 56039, 56041, 56053, -56081, 56087, 56093, 56099, 56101, 56113, 56123, 56131, 56149, 56167, 56171, -56179, 56197, 56207, 56209, 56237, 56239, 56249, 56263, 56267, 56269, 56299, -56311, 56333, 56359, 56369, 56377, 56383, 56393, 56401, 56417, 56431, 56437, -56443, 56453, 56467, 56473, 56477, 56479, 56489, 56501, 56503, 56509, 56519, -56527, 56531, 56533, 56543, 56569, 56591, 56597, 56599, 56611, 56629, 56633, -56659, 56663, 56671, 56681, 56687, 56701, 56711, 56713, 56731, 56737, 56747, -56767, 56773, 56779, 56783, 56807, 56809, 56813, 56821, 56827, 56843, 56857, -56873, 56891, 56893, 56897, 56909, 56911, 56921, 56923, 56929, 56941, 56951, -56957, 56963, 56983, 56989, 56993, 56999, 57037, 57041, 57047, 57059, 57073, -57077, 57089, 57097, 57107, 57119, 57131, 57139, 57143, 57149, 57163, 57173, -57179, 57191, 57193, 57203, 57221, 57223, 57241, 57251, 57259, 57269, 57271, -57283, 57287, 57301, 57329, 57331, 57347, 57349, 57367, 57373, 57383, 57389, -57397, 57413, 57427, 57457, 57467, 57487, 57493, 57503, 57527, 57529, 57557, -57559, 57571, 57587, 57593, 57601, 57637, 57641, 57649, 57653, 57667, 57679, -57689, 57697, 57709, 57713, 57719, 57727, 57731, 57737, 57751, 57773, 57781, -57787, 57791, 57793, 57803, 57809, 57829, 57839, 57847, 57853, 57859, 57881, -57899, 57901, 57917, 57923, 57943, 57947, 57973, 57977, 57991, 58013, 58027, -58031, 58043, 58049, 58057, 58061, 58067, 58073, 58099, 58109, 58111, 58129, -58147, 58151, 58153, 58169, 58171, 58189, 58193, 58199, 58207, 58211, 58217, -58229, 58231, 58237, 58243, 58271, 58309, 58313, 58321, 58337, 58363, 58367, -58369, 58379, 58391, 58393, 58403, 58411, 58417, 58427, 58439, 58441, 58451, -58453, 58477, 58481, 58511, 58537, 58543, 58549, 58567, 58573, 58579, 58601, -58603, 58613, 58631, 58657, 58661, 58679, 58687, 58693, 58699, 58711, 58727, -58733, 58741, 58757, 58763, 58771, 58787, 58789, 58831, 58889, 58897, 58901, -58907, 58909, 58913, 58921, 58937, 58943, 58963, 58967, 58979, 58991, 58997, -59009, 59011, 59021, 59023, 59029, 59051, 59053, 59063, 59069, 59077, 59083, -59093, 59107, 59113, 59119, 59123, 59141, 59149, 59159, 59167, 59183, 59197, -59207, 59209, 59219, 59221, 59233, 59239, 59243, 59263, 59273, 59281, 59333, -59341, 59351, 59357, 59359, 59369, 59377, 59387, 59393, 59399, 59407, 59417, -59419, 59441, 59443, 59447, 59453, 59467, 59471, 59473, 59497, 59509, 59513, -59539, 59557, 59561, 59567, 59581, 59611, 59617, 59621, 59627, 59629, 59651, -59659, 59663, 59669, 59671, 59693, 59699, 59707, 59723, 59729, 59743, 59747, -59753, 59771, 59779, 59791, 59797, 59809, 59833, 59863, 59879, 59887, 59921, -59929, 59951, 59957, 59971, 59981, 59999, 60013, 60017, 60029, 60037, 60041, -60077, 60083, 60089, 60091, 60101, 60103, 60107, 60127, 60133, 60139, 60149, -60161, 60167, 60169, 60209, 60217, 60223, 60251, 60257, 60259, 60271, 60289, -60293, 60317, 60331, 60337, 60343, 60353, 60373, 60383, 60397, 60413, 60427, -60443, 60449, 60457, 60493, 60497, 60509, 60521, 60527, 60539, 60589, 60601, -60607, 60611, 60617, 60623, 60631, 60637, 60647, 60649, 60659, 60661, 60679, -60689, 60703, 60719, 60727, 60733, 60737, 60757, 60761, 60763, 60773, 60779, -60793, 60811, 60821, 60859, 60869, 60887, 60889, 60899, 60901, 60913, 60917, -60919, 60923, 60937, 60943, 60953, 60961, 61001, 61007, 61027, 61031, 61043, -61051, 61057, 61091, 61099, 61121, 61129, 61141, 61151, 61153, 61169, 61211, -61223, 61231, 61253, 61261, 61283, 61291, 61297, 61331, 61333, 61339, 61343, -61357, 61363, 61379, 61381, 61403, 61409, 61417, 61441, 61463, 61469, 61471, -61483, 61487, 61493, 61507, 61511, 61519, 61543, 61547, 61553, 61559, 61561, -61583, 61603, 61609, 61613, 61627, 61631, 61637, 61643, 61651, 61657, 61667, -61673, 61681, 61687, 61703, 61717, 61723, 61729, 61751, 61757, 61781, 61813, -61819, 61837, 61843, 61861, 61871, 61879, 61909, 61927, 61933, 61949, 61961, -61967, 61979, 61981, 61987, 61991, 62003, 62011, 62017, 62039, 62047, 62053, -62057, 62071, 62081, 62099, 62119, 62129, 62131, 62137, 62141, 62143, 62171, -62189, 62191, 62201, 62207, 62213, 62219, 62233, 62273, 62297, 62299, 62303, -62311, 62323, 62327, 62347, 62351, 62383, 62401, 62417, 62423, 62459, 62467, -62473, 62477, 62483, 62497, 62501, 62507, 62533, 62539, 62549, 62563, 62581, -62591, 62597, 62603, 62617, 62627, 62633, 62639, 62653, 62659, 62683, 62687, -62701, 62723, 62731, 62743, 62753, 62761, 62773, 62791, 62801, 62819, 62827, -62851, 62861, 62869, 62873, 62897, 62903, 62921, 62927, 62929, 62939, 62969, -62971, 62981, 62983, 62987, 62989, 63029, 63031, 63059, 63067, 63073, 63079, -63097, 63103, 63113, 63127, 63131, 63149, 63179, 63197, 63199, 63211, 63241, -63247, 63277, 63281, 63299, 63311, 63313, 63317, 63331, 63337, 63347, 63353, -63361, 63367, 63377, 63389, 63391, 63397, 63409, 63419, 63421, 63439, 63443, -63463, 63467, 63473, 63487, 63493, 63499, 63521, 63527, 63533, 63541, 63559, -63577, 63587, 63589, 63599, 63601, 63607, 63611, 63617, 63629, 63647, 63649, -63659, 63667, 63671, 63689, 63691, 63697, 63703, 63709, 63719, 63727, 63737, -63743, 63761, 63773, 63781, 63793, 63799, 63803, 63809, 63823, 63839, 63841, -63853, 63857, 63863, 63901, 63907, 63913, 63929, 63949, 63977, 63997, 64007, -64013, 64019, 64033, 64037, 64063, 64067, 64081, 64091, 64109, 64123, 64151, -64153, 64157, 64171, 64187, 64189, 64217, 64223, 64231, 64237, 64271, 64279, -64283, 64301, 64303, 64319, 64327, 64333, 64373, 64381, 64399, 64403, 64433, -64439, 64451, 64453, 64483, 64489, 64499, 64513, 64553, 64567, 64577, 64579, -64591, 64601, 64609, 64613, 64621, 64627, 64633, 64661, 64663, 64667, 64679, -64693, 64709, 64717, 64747, 64763, 64781, 64783, 64793, 64811, 64817, 64849, -64853, 64871, 64877, 64879, 64891, 64901, 64919, 64921, 64927, 64937, 64951, -64969, 64997, 65003, 65011, 65027, 65029, 65033, 65053, 65063, 65071, 65089, -65099, 65101, 65111, 65119, 65123, 65129, 65141, 65147, 65167, 65171, 65173, -65179, 65183, 65203, 65213, 65239, 65257, 65267, 65269, 65287, 65293, 65309, -65323, 65327, 65353, 65357, 65371, 65381, 65393, 65407, 65413, 65419, 65423, -65437, 65447, 65449, 65479, 65497, 65519, 65521, 0 }; - -} diff --git a/src/botan/src/math/numbertheory/reducer.cpp b/src/botan/src/math/numbertheory/reducer.cpp deleted file mode 100644 index 466996e99..000000000 --- a/src/botan/src/math/numbertheory/reducer.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/* -* Modular Reducer -* (C) 1999-2011 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -namespace Botan { - -/* -* Modular_Reducer Constructor -*/ -Modular_Reducer::Modular_Reducer(const BigInt& mod) - { - if(mod <= 0) - throw Invalid_Argument("Modular_Reducer: modulus must be positive"); - - modulus = mod; - mod_words = modulus.sig_words(); - - modulus_2 = Botan::square(modulus); - - mu = BigInt(BigInt::Power2, 2 * MP_WORD_BITS * mod_words) / modulus; - } - -/* -* Barrett Reduction -*/ -BigInt Modular_Reducer::reduce(const BigInt& x) const - { - if(mod_words == 0) - throw Invalid_State("Modular_Reducer: Never initalized"); - - if(x.cmp(modulus, false) < 0) - { - if(x.is_negative()) - return x + modulus; // make positive - return x; - } - else if(x.cmp(modulus_2, false) < 0) - { - BigInt t1 = x; - t1.set_sign(BigInt::Positive); - t1 >>= (MP_WORD_BITS * (mod_words - 1)); - t1 *= mu; - - t1 >>= (MP_WORD_BITS * (mod_words + 1)); - t1 *= modulus; - - t1.mask_bits(MP_WORD_BITS * (mod_words + 1)); - - BigInt t2 = x; - t2.set_sign(BigInt::Positive); - t2.mask_bits(MP_WORD_BITS * (mod_words + 1)); - - t2 -= t1; - - if(t2.is_negative()) - { - BigInt b_to_k1(BigInt::Power2, MP_WORD_BITS * (mod_words + 1)); - t2 += b_to_k1; - } - - while(t2 >= modulus) - t2 -= modulus; - - if(x.is_positive()) - return t2; - else - return (modulus - t2); - } - else - { - // too big, fall back to normal division - return (x % modulus); - } - } - -} diff --git a/src/botan/src/math/numbertheory/reducer.h b/src/botan/src/math/numbertheory/reducer.h deleted file mode 100644 index 76712074c..000000000 --- a/src/botan/src/math/numbertheory/reducer.h +++ /dev/null @@ -1,61 +0,0 @@ -/* -* Modular Reducer -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MODULAR_REDUCER_H__ -#define BOTAN_MODULAR_REDUCER_H__ - -#include - -namespace Botan { - -/** -* Modular Reducer (using Barrett's technique) -*/ -class BOTAN_DLL Modular_Reducer - { - public: - const BigInt& get_modulus() const { return modulus; } - - BigInt reduce(const BigInt& x) const; - - /** - * Multiply mod p - * @param x - * @param y - * @return (x * y) % p - */ - BigInt multiply(const BigInt& x, const BigInt& y) const - { return reduce(x * y); } - - /** - * Square mod p - * @param x - * @return (x * x) % p - */ - BigInt square(const BigInt& x) const - { return reduce(Botan::square(x)); } - - /** - * Cube mod p - * @param x - * @return (x * x * x) % p - */ - BigInt cube(const BigInt& x) const - { return multiply(x, this->square(x)); } - - bool initialized() const { return (mod_words != 0); } - - Modular_Reducer() { mod_words = 0; } - Modular_Reducer(const BigInt& mod); - private: - BigInt modulus, modulus_2, mu; - size_t mod_words; - }; - -} - -#endif diff --git a/src/botan/src/math/numbertheory/ressol.cpp b/src/botan/src/math/numbertheory/ressol.cpp deleted file mode 100644 index 2e01406f8..000000000 --- a/src/botan/src/math/numbertheory/ressol.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/* -* Shanks-Tonnelli (RESSOL) -* (C) 2007-2008 Falko Strenzke, FlexSecure GmbH -* (C) 2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -namespace Botan { - -/* -* Shanks-Tonnelli algorithm -*/ -BigInt ressol(const BigInt& a, const BigInt& p) - { - if(a < 0) - throw Invalid_Argument("ressol(): a to solve for must be positive"); - if(p <= 1) - throw Invalid_Argument("ressol(): prime must be > 1"); - - if(a == 0) - return 0; - if(p == 2) - return a; - - if(jacobi(a, p) != 1) // not a quadratic residue - return -BigInt(1); - - if(p % 4 == 3) - return power_mod(a, ((p+1) >> 2), p); - - size_t s = low_zero_bits(p - 1); - BigInt q = p >> s; - - q -= 1; - q >>= 1; - - Modular_Reducer mod_p(p); - - BigInt r = power_mod(a, q, p); - BigInt n = mod_p.multiply(a, mod_p.square(r)); - r = mod_p.multiply(r, a); - - if(n == 1) - return r; - - // find random non quadratic residue z - BigInt z = 2; - while(jacobi(z, p) == 1) // while z quadratic residue - ++z; - - BigInt c = power_mod(z, (q << 1) + 1, p); - - while(n > 1) - { - q = n; - - size_t i = 0; - while(q != 1) - { - q = mod_p.square(q); - ++i; - } - - if(s <= i) - return -BigInt(1); - - c = power_mod(c, BigInt(BigInt::Power2, s-i-1), p); - r = mod_p.multiply(r, c); - c = mod_p.square(c); - n = mod_p.multiply(n, c); - s = i; - } - - return r; - } - -} diff --git a/src/botan/src/mutex/info.txt b/src/botan/src/mutex/info.txt deleted file mode 100644 index af4cf9bb3..000000000 --- a/src/botan/src/mutex/info.txt +++ /dev/null @@ -1,5 +0,0 @@ -define MUTEX_WRAPPERS - - -mutex.h - diff --git a/src/botan/src/mutex/mutex.h b/src/botan/src/mutex/mutex.h deleted file mode 100644 index f209466d5..000000000 --- a/src/botan/src/mutex/mutex.h +++ /dev/null @@ -1,71 +0,0 @@ -/* -* Mutex -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MUTEX_H__ -#define BOTAN_MUTEX_H__ - -#include - -namespace Botan { - -/** -* Mutex Base Class -*/ -class Mutex - { - public: - /** - * Lock the mutex - */ - virtual void lock() = 0; - - /** - * Unlock the mutex - */ - virtual void unlock() = 0; - virtual ~Mutex() {} - }; - -/** -* Mutex Factory -*/ -class Mutex_Factory - { - public: - /** - * @return newly allocated mutex - */ - virtual Mutex* make() = 0; - - virtual ~Mutex_Factory() {} - }; - -/** -* Mutex Holding Class for RAII -*/ -class Mutex_Holder - { - public: - /** - * Hold onto a mutex until we leave scope - * @param m the mutex to lock - */ - Mutex_Holder(Mutex* m) : mux(m) - { - if(!mux) - throw Invalid_Argument("Mutex_Holder: Argument was NULL"); - mux->lock(); - } - - ~Mutex_Holder() { mux->unlock(); } - private: - Mutex* mux; - }; - -} - -#endif diff --git a/src/botan/src/mutex/noop_mutex/info.txt b/src/botan/src/mutex/noop_mutex/info.txt deleted file mode 100644 index 16670b1dd..000000000 --- a/src/botan/src/mutex/noop_mutex/info.txt +++ /dev/null @@ -1,9 +0,0 @@ -define MUTEX_NOOP - - -mux_noop.cpp - - - -mux_noop.h - diff --git a/src/botan/src/mutex/noop_mutex/mux_noop.cpp b/src/botan/src/mutex/noop_mutex/mux_noop.cpp deleted file mode 100644 index 18151274a..000000000 --- a/src/botan/src/mutex/noop_mutex/mux_noop.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/* -* No-Op Mutex Factory -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include - -namespace Botan { - -/* -* No-Op Mutex Factory -*/ -Mutex* Noop_Mutex_Factory::make() - { - class Noop_Mutex : public Mutex - { - public: - class Mutex_State_Error : public Internal_Error - { - public: - Mutex_State_Error(const std::string& where) : - Internal_Error("Noop_Mutex::" + where + ": " + - "Mutex is already " + where + "ed") {} - }; - - void lock() - { - if(locked) - throw Mutex_State_Error("lock"); - locked = true; - } - - void unlock() - { - if(!locked) - throw Mutex_State_Error("unlock"); - locked = false; - } - - Noop_Mutex() { locked = false; } - private: - bool locked; - }; - - return new Noop_Mutex; - } - -} diff --git a/src/botan/src/mutex/noop_mutex/mux_noop.h b/src/botan/src/mutex/noop_mutex/mux_noop.h deleted file mode 100644 index 20989a635..000000000 --- a/src/botan/src/mutex/noop_mutex/mux_noop.h +++ /dev/null @@ -1,26 +0,0 @@ -/* -* No-Op Mutex Factory -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_NOOP_MUTEX_FACTORY_H__ -#define BOTAN_NOOP_MUTEX_FACTORY_H__ - -#include - -namespace Botan { - -/** -* No-Op Mutex Factory -*/ -class Noop_Mutex_Factory : public Mutex_Factory - { - public: - Mutex* make(); - }; - -} - -#endif diff --git a/src/botan/src/mutex/pthreads/info.txt b/src/botan/src/mutex/pthreads/info.txt deleted file mode 100644 index 1d826b61c..000000000 --- a/src/botan/src/mutex/pthreads/info.txt +++ /dev/null @@ -1,29 +0,0 @@ -define MUTEX_PTHREAD - - -mux_pthr.cpp - - - -mux_pthr.h - - - -all!qnx,freebsd,dragonfly,openbsd,netbsd -> pthread - - - -aix -cygwin -darwin -freebsd -dragonfly -hpux -irix -linux -netbsd -openbsd -qnx -solaris -tru64 - diff --git a/src/botan/src/mutex/pthreads/mux_pthr.cpp b/src/botan/src/mutex/pthreads/mux_pthr.cpp deleted file mode 100644 index 165132239..000000000 --- a/src/botan/src/mutex/pthreads/mux_pthr.cpp +++ /dev/null @@ -1,58 +0,0 @@ -/* -* Pthread Mutex -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -#ifndef _POSIX_C_SOURCE - #define _POSIX_C_SOURCE 199506 -#endif - -#include - -namespace Botan { - -/* -* Pthread Mutex Factory -*/ -Mutex* Pthread_Mutex_Factory::make() - { - - class Pthread_Mutex : public Mutex - { - public: - void lock() - { - if(pthread_mutex_lock(&mutex) != 0) - throw Invalid_State("Pthread_Mutex::lock: Error occured"); - } - - void unlock() - { - if(pthread_mutex_unlock(&mutex) != 0) - throw Invalid_State("Pthread_Mutex::unlock: Error occured"); - } - - Pthread_Mutex() - { - if(pthread_mutex_init(&mutex, 0) != 0) - throw Invalid_State("Pthread_Mutex: initialization failed"); - } - - ~Pthread_Mutex() - { - if(pthread_mutex_destroy(&mutex) != 0) - throw Invalid_State("~Pthread_Mutex: mutex is still locked"); - } - private: - pthread_mutex_t mutex; - }; - - return new Pthread_Mutex(); - } - -} diff --git a/src/botan/src/mutex/pthreads/mux_pthr.h b/src/botan/src/mutex/pthreads/mux_pthr.h deleted file mode 100644 index 5cecd09ad..000000000 --- a/src/botan/src/mutex/pthreads/mux_pthr.h +++ /dev/null @@ -1,26 +0,0 @@ -/* -* Pthread Mutex -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MUTEX_PTHREAD_H__ -#define BOTAN_MUTEX_PTHREAD_H__ - -#include - -namespace Botan { - -/** -* Pthread Mutex Factory -*/ -class Pthread_Mutex_Factory : public Mutex_Factory - { - public: - Mutex* make(); - }; - -} - -#endif diff --git a/src/botan/src/mutex/win32_crit_section/info.txt b/src/botan/src/mutex/win32_crit_section/info.txt deleted file mode 100644 index d90b8b64b..000000000 --- a/src/botan/src/mutex/win32_crit_section/info.txt +++ /dev/null @@ -1,15 +0,0 @@ -define MUTEX_WIN32 - - -mux_win32.cpp - - - -mux_win32.h - - - -cygwin -windows -mingw - diff --git a/src/botan/src/mutex/win32_crit_section/mux_win32.cpp b/src/botan/src/mutex/win32_crit_section/mux_win32.cpp deleted file mode 100644 index fa6051798..000000000 --- a/src/botan/src/mutex/win32_crit_section/mux_win32.cpp +++ /dev/null @@ -1,34 +0,0 @@ -/* -* Win32 Mutex -* (C) 2006 Luca Piccarreta -* 2006-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -namespace Botan { - -/* -* Win32 Mutex Factory -*/ -Mutex* Win32_Mutex_Factory::make() - { - class Win32_Mutex : public Mutex - { - public: - void lock() { EnterCriticalSection(&mutex); } - void unlock() { LeaveCriticalSection(&mutex); } - - Win32_Mutex() { InitializeCriticalSection(&mutex); } - ~Win32_Mutex() { DeleteCriticalSection(&mutex); } - private: - CRITICAL_SECTION mutex; - }; - - return new Win32_Mutex(); - } - -} diff --git a/src/botan/src/mutex/win32_crit_section/mux_win32.h b/src/botan/src/mutex/win32_crit_section/mux_win32.h deleted file mode 100644 index 2aa51e18b..000000000 --- a/src/botan/src/mutex/win32_crit_section/mux_win32.h +++ /dev/null @@ -1,26 +0,0 @@ -/* -* Win32 Mutex -* (C) 2006 Luca Piccarreta -* 2006-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MUTEX_WIN32_H__ -#define BOTAN_MUTEX_WIN32_H__ - -#include - -namespace Botan { - -/** -* Win32 Mutex Factory -*/ -class Win32_Mutex_Factory : public Mutex_Factory - { - public: - Mutex* make(); - }; -} - -#endif diff --git a/src/botan/src/pbe/get_pbe.cpp b/src/botan/src/pbe/get_pbe.cpp deleted file mode 100644 index 3217101ef..000000000 --- a/src/botan/src/pbe/get_pbe.cpp +++ /dev/null @@ -1,130 +0,0 @@ -/* -* PBE Retrieval -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include - -#if defined(BOTAN_HAS_PBE_PKCS_V15) - #include -#endif - -#if defined(BOTAN_HAS_PBE_PKCS_V20) - #include -#endif - -namespace Botan { - -/* -* Get an encryption PBE, set new parameters -*/ -PBE* get_pbe(const std::string& algo_spec) - { - SCAN_Name request(algo_spec); - - const std::string pbe = request.algo_name(); - std::string digest_name = request.arg(0); - const std::string cipher = request.arg(1); - - std::vector cipher_spec = split_on(cipher, '/'); - if(cipher_spec.size() != 2) - throw Invalid_Argument("PBE: Invalid cipher spec " + cipher); - - const std::string cipher_algo = global_state().deref_alias(cipher_spec[0]); - const std::string cipher_mode = cipher_spec[1]; - - if(cipher_mode != "CBC") - throw Invalid_Argument("PBE: Invalid cipher mode " + cipher); - - Algorithm_Factory& af = global_state().algorithm_factory(); - - const BlockCipher* block_cipher = af.prototype_block_cipher(cipher_algo); - if(!block_cipher) - throw Algorithm_Not_Found(cipher_algo); - - const HashFunction* hash_function = af.prototype_hash_function(digest_name); - if(!hash_function) - throw Algorithm_Not_Found(digest_name); - - if(request.arg_count() != 2) - throw Invalid_Algorithm_Name(algo_spec); - -#if defined(BOTAN_HAS_PBE_PKCS_V15) - if(pbe == "PBE-PKCS5v15") - return new PBE_PKCS5v15(block_cipher->clone(), - hash_function->clone(), - ENCRYPTION); -#endif - -#if defined(BOTAN_HAS_PBE_PKCS_V20) - if(pbe == "PBE-PKCS5v20") - return new PBE_PKCS5v20(block_cipher->clone(), - hash_function->clone()); -#endif - - throw Algorithm_Not_Found(algo_spec); - } - -/* -* Get a decryption PBE, decode parameters -*/ -PBE* get_pbe(const OID& pbe_oid, DataSource& params) - { - SCAN_Name request(OIDS::lookup(pbe_oid)); - - const std::string pbe = request.algo_name(); - -#if defined(BOTAN_HAS_PBE_PKCS_V15) - if(pbe == "PBE-PKCS5v15") - { - if(request.arg_count() != 2) - throw Invalid_Algorithm_Name(request.as_string()); - - std::string digest_name = request.arg(0); - const std::string cipher = request.arg(1); - - std::vector cipher_spec = split_on(cipher, '/'); - if(cipher_spec.size() != 2) - throw Invalid_Argument("PBE: Invalid cipher spec " + cipher); - - const std::string cipher_algo = global_state().deref_alias(cipher_spec[0]); - const std::string cipher_mode = cipher_spec[1]; - - if(cipher_mode != "CBC") - throw Invalid_Argument("PBE: Invalid cipher mode " + cipher); - - Algorithm_Factory& af = global_state().algorithm_factory(); - - const BlockCipher* block_cipher = af.prototype_block_cipher(cipher_algo); - if(!block_cipher) - throw Algorithm_Not_Found(cipher_algo); - - const HashFunction* hash_function = - af.prototype_hash_function(digest_name); - - if(!hash_function) - throw Algorithm_Not_Found(digest_name); - - PBE* pbe = new PBE_PKCS5v15(block_cipher->clone(), - hash_function->clone(), - DECRYPTION); - pbe->decode_params(params); - return pbe; - } -#endif - -#if defined(BOTAN_HAS_PBE_PKCS_V20) - if(pbe == "PBE-PKCS5v20") - return new PBE_PKCS5v20(params); -#endif - - throw Algorithm_Not_Found(pbe_oid.as_string()); - } - -} diff --git a/src/botan/src/pbe/get_pbe.h b/src/botan/src/pbe/get_pbe.h deleted file mode 100644 index 73c53497c..000000000 --- a/src/botan/src/pbe/get_pbe.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -* PBE Lookup -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_LOOKUP_PBE_H__ -#define BOTAN_LOOKUP_PBE_H__ - -#include -#include - -namespace Botan { - -/** -* Factory function for PBEs. -* @param algo_spec the name of the PBE algorithm to retrieve -* @return pointer to a PBE with randomly created parameters -*/ -BOTAN_DLL PBE* get_pbe(const std::string& algo_spec); - -/** -* Factory function for PBEs. -* @param pbe_oid the oid of the desired PBE -* @param params a DataSource providing the DER encoded parameters to use -* @return pointer to the PBE with the specified parameters -*/ -BOTAN_DLL PBE* get_pbe(const OID& pbe_oid, - DataSource& params); - -} - -#endif diff --git a/src/botan/src/pbe/info.txt b/src/botan/src/pbe/info.txt deleted file mode 100644 index b45c8f9f4..000000000 --- a/src/botan/src/pbe/info.txt +++ /dev/null @@ -1,7 +0,0 @@ -define PASSWORD_BASED_ENCRYPTION - - -filters -libstate -oid_lookup - diff --git a/src/botan/src/pbe/pbe.h b/src/botan/src/pbe/pbe.h deleted file mode 100644 index 9add98872..000000000 --- a/src/botan/src/pbe/pbe.h +++ /dev/null @@ -1,57 +0,0 @@ -/* -* PBE -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_PBE_BASE_H__ -#define BOTAN_PBE_BASE_H__ - -#include -#include -#include -#include - -namespace Botan { - -/** -* Password Based Encryption (PBE) Filter. -*/ -class BOTAN_DLL PBE : public Filter - { - public: - /** - * Set this filter's key. - * @param pw the password to be used for the encryption - */ - virtual void set_key(const std::string& pw) = 0; - - /** - * Create a new random salt value and set the default iterations value. - * @param rng a random number generator - */ - virtual void new_params(RandomNumberGenerator& rng) = 0; - - /** - * DER encode the params (the number of iterations and the salt value) - * @return encoded params - */ - virtual MemoryVector encode_params() const = 0; - - /** - * Decode params and use them inside this Filter. - * @param src a data source to read the encoded params from - */ - virtual void decode_params(DataSource& src) = 0; - - /** - * Get this PBE's OID. - * @return object identifier - */ - virtual OID get_oid() const = 0; - }; - -} - -#endif diff --git a/src/botan/src/pbkdf/info.txt b/src/botan/src/pbkdf/info.txt deleted file mode 100644 index d991577f7..000000000 --- a/src/botan/src/pbkdf/info.txt +++ /dev/null @@ -1,3 +0,0 @@ - -algo_base - diff --git a/src/botan/src/pbkdf/pbkdf.h b/src/botan/src/pbkdf/pbkdf.h deleted file mode 100644 index e951b5673..000000000 --- a/src/botan/src/pbkdf/pbkdf.h +++ /dev/null @@ -1,53 +0,0 @@ -/* -* PBKDF -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_PBKDF_H__ -#define BOTAN_PBKDF_H__ - -#include -#include - -namespace Botan { - -/** -* Base class for PBKDF (password based key derivation function) -* implementations. Converts a password into a key using a salt -* and iterated hashing to make brute force attacks harder. -*/ -class BOTAN_DLL PBKDF : public Algorithm - { - public: - - /** - * @return new instance of this same algorithm - */ - virtual PBKDF* clone() const = 0; - - void clear() {} - - /** - * Derive a key from a passphrase - * @param output_len the desired length of the key to produce - * @param passphrase the password to derive the key from - * @param salt a randomly chosen salt - * @param salt_len length of salt in bytes - * @param iterations the number of iterations to use (use 10K or more) - */ - virtual OctetString derive_key(size_t output_len, - const std::string& passphrase, - const byte salt[], size_t salt_len, - size_t iterations) const = 0; - }; - -/** -* For compatability with 1.8 -*/ -typedef PBKDF S2K; - -} - -#endif diff --git a/src/botan/src/pk_pad/eme.cpp b/src/botan/src/pk_pad/eme.cpp deleted file mode 100644 index cfdaa240d..000000000 --- a/src/botan/src/pk_pad/eme.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/* -* EME Base Class -* (C) 1999-2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include - -namespace Botan { - -/* -* Encode a message -*/ -SecureVector EME::encode(const byte msg[], size_t msg_len, - size_t key_bits, - RandomNumberGenerator& rng) const - { - return pad(msg, msg_len, key_bits, rng); - } - -/* -* Encode a message -*/ -SecureVector EME::encode(const MemoryRegion& msg, - size_t key_bits, - RandomNumberGenerator& rng) const - { - return pad(&msg[0], msg.size(), key_bits, rng); - } - -/* -* Decode a message -*/ -SecureVector EME::decode(const byte msg[], size_t msg_len, - size_t key_bits) const - { - return unpad(msg, msg_len, key_bits); - } - -/* -* Decode a message -*/ -SecureVector EME::decode(const MemoryRegion& msg, - size_t key_bits) const - { - return unpad(&msg[0], msg.size(), key_bits); - } - -} diff --git a/src/botan/src/pk_pad/eme.h b/src/botan/src/pk_pad/eme.h deleted file mode 100644 index 4e89ef9d3..000000000 --- a/src/botan/src/pk_pad/eme.h +++ /dev/null @@ -1,102 +0,0 @@ -/* -* EME Classes -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_PUBKEY_EME_ENCRYPTION_PAD_H__ -#define BOTAN_PUBKEY_EME_ENCRYPTION_PAD_H__ - -#include -#include - -namespace Botan { - -/** -* Encoding Method for Encryption -*/ -class BOTAN_DLL EME - { - public: - /** - * Return the maximum input size in bytes we can support - * @param keybits the size of the key in bits - * @return upper bound of input in bytes - */ - virtual size_t maximum_input_size(size_t keybits) const = 0; - - /** - * Encode an input - * @param in the plaintext - * @param in_length length of plaintext in bytes - * @param key_length length of the key in bits - * @param rng a random number generator - * @return encoded plaintext - */ - SecureVector encode(const byte in[], - size_t in_length, - size_t key_length, - RandomNumberGenerator& rng) const; - - /** - * Encode an input - * @param in the plaintext - * @param key_length length of the key in bits - * @param rng a random number generator - * @return encoded plaintext - */ - SecureVector encode(const MemoryRegion& in, - size_t key_length, - RandomNumberGenerator& rng) const; - - /** - * Decode an input - * @param in the encoded plaintext - * @param in_length length of encoded plaintext in bytes - * @param key_length length of the key in bits - * @return plaintext - */ - SecureVector decode(const byte in[], - size_t in_length, - size_t key_length) const; - - /** - * Decode an input - * @param in the encoded plaintext - * @param key_length length of the key in bits - * @return plaintext - */ - SecureVector decode(const MemoryRegion& in, - size_t key_length) const; - - virtual ~EME() {} - private: - /** - * Encode an input - * @param in the plaintext - * @param in_length length of plaintext in bytes - * @param key_length length of the key in bits - * @param rng a random number generator - * @return encoded plaintext - */ - virtual SecureVector pad(const byte in[], - size_t in_length, - size_t key_length, - RandomNumberGenerator& rng) const = 0; - - /** - * Decode an input - * @param in the encoded plaintext - * @param in_length length of encoded plaintext in bytes - * @param key_length length of the key in bits - * @return plaintext - */ - virtual SecureVector unpad(const byte in[], - size_t in_length, - size_t key_length) const = 0; - }; - -} - -#endif diff --git a/src/botan/src/pk_pad/emsa.h b/src/botan/src/pk_pad/emsa.h deleted file mode 100644 index e943fc5eb..000000000 --- a/src/botan/src/pk_pad/emsa.h +++ /dev/null @@ -1,60 +0,0 @@ -/* -* EMSA Classes -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_PUBKEY_EMSA_H__ -#define BOTAN_PUBKEY_EMSA_H__ - -#include -#include - -namespace Botan { - -/** -* Encoding Method for Signatures, Appendix -*/ -class BOTAN_DLL EMSA - { - public: - /** - * Add more data to the signature computation - * @param input some data - * @param length length of input in bytes - */ - virtual void update(const byte input[], size_t length) = 0; - - /** - * @return raw hash - */ - virtual SecureVector raw_data() = 0; - - /** - * Return the encoding of a message - * @param msg the result of raw_data() - * @param output_bits the desired output bit size - * @param rng a random number generator - * @return encoded signature - */ - virtual SecureVector encoding_of(const MemoryRegion& msg, - size_t output_bits, - RandomNumberGenerator& rng) = 0; - - /** - * Verify the encoding - * @param coded the received (coded) message representative - * @param raw the computed (local, uncoded) message representative - * @param key_bits the size of the key in bits - * @return true if coded is a valid encoding of raw, otherwise false - */ - virtual bool verify(const MemoryRegion& coded, - const MemoryRegion& raw, - size_t key_bits) = 0; - virtual ~EMSA() {} - }; - -} - -#endif diff --git a/src/botan/src/pk_pad/info.txt b/src/botan/src/pk_pad/info.txt deleted file mode 100644 index 19e15f8bd..000000000 --- a/src/botan/src/pk_pad/info.txt +++ /dev/null @@ -1,8 +0,0 @@ -define PK_PADDING - -load_on auto - - -alloc -rng - diff --git a/src/botan/src/pubkey/blinding.cpp b/src/botan/src/pubkey/blinding.cpp deleted file mode 100644 index c4c0e3b6e..000000000 --- a/src/botan/src/pubkey/blinding.cpp +++ /dev/null @@ -1,49 +0,0 @@ -/* -* Blinding for public key operations -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -namespace Botan { - -/* -* Blinder Constructor -*/ -Blinder::Blinder(const BigInt& e, const BigInt& d, const BigInt& n) - { - if(e < 1 || d < 1 || n < 1) - throw Invalid_Argument("Blinder: Arguments too small"); - - reducer = Modular_Reducer(n); - this->e = e; - this->d = d; - } - -/* -* Blind a number -*/ -BigInt Blinder::blind(const BigInt& i) const - { - if(!reducer.initialized()) - return i; - - e = reducer.square(e); - d = reducer.square(d); - return reducer.multiply(i, e); - } - -/* -* Unblind a number -*/ -BigInt Blinder::unblind(const BigInt& i) const - { - if(!reducer.initialized()) - return i; - return reducer.multiply(i, d); - } - -} diff --git a/src/botan/src/pubkey/blinding.h b/src/botan/src/pubkey/blinding.h deleted file mode 100644 index 712030e4d..000000000 --- a/src/botan/src/pubkey/blinding.h +++ /dev/null @@ -1,46 +0,0 @@ -/* -* Blinding for public key operations -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_BLINDER_H__ -#define BOTAN_BLINDER_H__ - -#include -#include - -namespace Botan { - -/** -* Blinding Function Object -*/ -class BOTAN_DLL Blinder - { - public: - BigInt blind(const BigInt& x) const; - BigInt unblind(const BigInt& x) const; - - bool initialized() const { return reducer.initialized(); } - - Blinder() {} - - /** - * Construct a blinder - * @param mask the forward (blinding) mask - * @param inverse_mask the inverse of mask (depends on algo) - * @param modulus of the group operations are performed in - */ - Blinder(const BigInt& mask, - const BigInt& inverse_mask, - const BigInt& modulus); - - private: - Modular_Reducer reducer; - mutable BigInt e, d; - }; - -} - -#endif diff --git a/src/botan/src/pubkey/info.txt b/src/botan/src/pubkey/info.txt deleted file mode 100644 index 5f36f63c4..000000000 --- a/src/botan/src/pubkey/info.txt +++ /dev/null @@ -1,43 +0,0 @@ -define PUBLIC_KEY_CRYPTO - - -blinding.cpp -pk_algs.cpp -pk_keys.cpp -pkcs8.cpp -pubkey.cpp -pubkey_enums.cpp -workfactor.cpp -x509_key.cpp - - - -blinding.h -pk_keys.h -pk_ops.h -pkcs8.h -pubkey.h -pubkey_enums.h -x509_key.h - - - -pk_algs.h -workfactor.h - - - -alloc -asn1 -bigint -engine -filters -kdf -libstate -oid_lookup -pbe -pem -pk_pad -rng -algo_base - diff --git a/src/botan/src/pubkey/pk_algs.cpp b/src/botan/src/pubkey/pk_algs.cpp deleted file mode 100644 index 9b3218ac4..000000000 --- a/src/botan/src/pubkey/pk_algs.cpp +++ /dev/null @@ -1,160 +0,0 @@ -/* -* PK Key -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -#if defined(BOTAN_HAS_RSA) - #include -#endif - -#if defined(BOTAN_HAS_DSA) - #include -#endif - -#if defined(BOTAN_HAS_DIFFIE_HELLMAN) - #include -#endif - -#if defined(BOTAN_HAS_ECDSA) - #include -#endif - -#if defined(BOTAN_HAS_GOST_34_10_2001) - #include -#endif - -#if defined(BOTAN_HAS_NYBERG_RUEPPEL) - #include -#endif - -#if defined(BOTAN_HAS_RW) - #include -#endif - -#if defined(BOTAN_HAS_ELGAMAL) - #include -#endif - -#if defined(BOTAN_HAS_ECDH) - #include -#endif - -namespace Botan { - -Public_Key* make_public_key(const AlgorithmIdentifier& alg_id, - const MemoryRegion& key_bits) - { - const std::string alg_name = OIDS::lookup(alg_id.oid); - if(alg_name == "") - throw Decoding_Error("Unknown algorithm OID: " + alg_id.oid.as_string()); - -#if defined(BOTAN_HAS_RSA) - if(alg_name == "RSA") - return new RSA_PublicKey(alg_id, key_bits); -#endif - -#if defined(BOTAN_HAS_RW) - if(alg_name == "RW") - return new RW_PublicKey(alg_id, key_bits); -#endif - -#if defined(BOTAN_HAS_DSA) - if(alg_name == "DSA") - return new DSA_PublicKey(alg_id, key_bits); -#endif - -#if defined(BOTAN_HAS_DIFFIE_HELLMAN) - if(alg_name == "DH") - return new DH_PublicKey(alg_id, key_bits); -#endif - -#if defined(BOTAN_HAS_NYBERG_RUEPPEL) - if(alg_name == "NR") - return new NR_PublicKey(alg_id, key_bits); -#endif - -#if defined(BOTAN_HAS_ELGAMAL) - if(alg_name == "ElGamal") - return new ElGamal_PublicKey(alg_id, key_bits); -#endif - -#if defined(BOTAN_HAS_ECDSA) - if(alg_name == "ECDSA") - return new ECDSA_PublicKey(alg_id, key_bits); -#endif - -#if defined(BOTAN_HAS_GOST_34_10_2001) - if(alg_name == "GOST-34.10") - return new GOST_3410_PublicKey(alg_id, key_bits); -#endif - -#if defined(BOTAN_HAS_ECDH) - if(alg_name == "ECDH") - return new ECDH_PublicKey(alg_id, key_bits); -#endif - - return 0; - } - -Private_Key* make_private_key(const AlgorithmIdentifier& alg_id, - const MemoryRegion& key_bits, - RandomNumberGenerator& rng) - { - const std::string alg_name = OIDS::lookup(alg_id.oid); - if(alg_name == "") - throw Decoding_Error("Unknown algorithm OID: " + alg_id.oid.as_string()); - -#if defined(BOTAN_HAS_RSA) - if(alg_name == "RSA") - return new RSA_PrivateKey(alg_id, key_bits, rng); -#endif - -#if defined(BOTAN_HAS_RW) - if(alg_name == "RW") - return new RW_PrivateKey(alg_id, key_bits, rng); -#endif - -#if defined(BOTAN_HAS_DSA) - if(alg_name == "DSA") - return new DSA_PrivateKey(alg_id, key_bits, rng); -#endif - -#if defined(BOTAN_HAS_DIFFIE_HELLMAN) - if(alg_name == "DH") - return new DH_PrivateKey(alg_id, key_bits, rng); -#endif - -#if defined(BOTAN_HAS_NYBERG_RUEPPEL) - if(alg_name == "NR") - return new NR_PrivateKey(alg_id, key_bits, rng); -#endif - -#if defined(BOTAN_HAS_ELGAMAL) - if(alg_name == "ElGamal") - return new ElGamal_PrivateKey(alg_id, key_bits, rng); -#endif - -#if defined(BOTAN_HAS_ECDSA) - if(alg_name == "ECDSA") - return new ECDSA_PrivateKey(alg_id, key_bits); -#endif - -#if defined(BOTAN_HAS_GOST_34_10_2001) - if(alg_name == "GOST-34.10") - return new GOST_3410_PrivateKey(alg_id, key_bits); -#endif - -#if defined(BOTAN_HAS_ECDH) - if(alg_name == "ECDH") - return new ECDH_PrivateKey(alg_id, key_bits); -#endif - - return 0; - } - -} diff --git a/src/botan/src/pubkey/pk_algs.h b/src/botan/src/pubkey/pk_algs.h deleted file mode 100644 index a1e65cb3d..000000000 --- a/src/botan/src/pubkey/pk_algs.h +++ /dev/null @@ -1,24 +0,0 @@ -/* -* PK Key Factory -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_PK_KEY_FACTORY_H__ -#define BOTAN_PK_KEY_FACTORY_H__ - -#include - -namespace Botan { - -Public_Key* make_public_key(const AlgorithmIdentifier& alg_id, - const MemoryRegion& key_bits); - -Private_Key* make_private_key(const AlgorithmIdentifier& alg_id, - const MemoryRegion& key_bits, - RandomNumberGenerator& rng); - -} - -#endif diff --git a/src/botan/src/pubkey/pk_keys.cpp b/src/botan/src/pubkey/pk_keys.cpp deleted file mode 100644 index c19c676ab..000000000 --- a/src/botan/src/pubkey/pk_keys.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -* PK Key Types -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -/* -* Default OID access -*/ -OID Public_Key::get_oid() const - { - try { - return OIDS::lookup(algo_name()); - } - catch(Lookup_Error) - { - throw Lookup_Error("PK algo " + algo_name() + " has no defined OIDs"); - } - } - -/* -* Run checks on a loaded public key -*/ -void Public_Key::load_check(RandomNumberGenerator& rng) const - { - if(!check_key(rng, BOTAN_PUBLIC_KEY_STRONG_CHECKS_ON_LOAD)) - throw Invalid_Argument(algo_name() + ": Invalid public key"); - } - -/* -* Run checks on a loaded private key -*/ -void Private_Key::load_check(RandomNumberGenerator& rng) const - { - if(!check_key(rng, BOTAN_PRIVATE_KEY_STRONG_CHECKS_ON_LOAD)) - throw Invalid_Argument(algo_name() + ": Invalid private key"); - } - -/* -* Run checks on a generated private key -*/ -void Private_Key::gen_check(RandomNumberGenerator& rng) const - { - if(!check_key(rng, BOTAN_PRIVATE_KEY_STRONG_CHECKS_ON_GENERATE)) - throw Self_Test_Failure(algo_name() + " private key generation failed"); - } - -} diff --git a/src/botan/src/pubkey/pk_keys.h b/src/botan/src/pubkey/pk_keys.h deleted file mode 100644 index 770949b59..000000000 --- a/src/botan/src/pubkey/pk_keys.h +++ /dev/null @@ -1,138 +0,0 @@ -/* -* PK Key Types -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_PK_KEYS_H__ -#define BOTAN_PK_KEYS_H__ - -#include -#include -#include -#include - -namespace Botan { - -/** -* Public Key Base Class. -*/ -class BOTAN_DLL Public_Key - { - public: - /** - * Get the name of the underlying public key scheme. - * @return name of the public key scheme - */ - virtual std::string algo_name() const = 0; - - /** - * Get the OID of the underlying public key scheme. - * @return OID of the public key scheme - */ - virtual OID get_oid() const; - - /** - * Test the key values for consistency. - * @param rng rng to use - * @param strong whether to perform strong and lengthy version - * of the test - * @return true if the test is passed - */ - virtual bool check_key(RandomNumberGenerator& rng, - bool strong) const = 0; - - /** - * Find out the number of message parts supported by this scheme. - * @return number of message parts - */ - virtual size_t message_parts() const { return 1; } - - /** - * Find out the message part size supported by this scheme/key. - * @return size of the message parts in bits - */ - virtual size_t message_part_size() const { return 0; } - - /** - * Get the maximum message size in bits supported by this public key. - * @return maximum message size in bits - */ - virtual size_t max_input_bits() const = 0; - - /** - * @return X.509 AlgorithmIdentifier for this key - */ - virtual AlgorithmIdentifier algorithm_identifier() const = 0; - - /** - * @return X.509 subject key encoding for this key object - */ - virtual MemoryVector x509_subject_public_key() const = 0; - - virtual ~Public_Key() {} - protected: - /** - * Self-test after loading a key - * @param rng a random number generator - */ - virtual void load_check(RandomNumberGenerator& rng) const; - }; - -/** -* Private Key Base Class -*/ -class BOTAN_DLL Private_Key : public virtual Public_Key - { - public: - /** - * @return PKCS #8 private key encoding for this key object - */ - virtual MemoryVector pkcs8_private_key() const = 0; - - /** - * @return PKCS #8 AlgorithmIdentifier for this key - * Might be different from the X.509 identifier, but normally is not - */ - virtual AlgorithmIdentifier pkcs8_algorithm_identifier() const - { return algorithm_identifier(); } - - protected: - /** - * Self-test after loading a key - * @param rng a random number generator - */ - void load_check(RandomNumberGenerator& rng) const; - - /** - * Self-test after generating a key - * @param rng a random number generator - */ - void gen_check(RandomNumberGenerator& rng) const; - }; - -/** -* PK Secret Value Derivation Key -*/ -class BOTAN_DLL PK_Key_Agreement_Key : public virtual Private_Key - { - public: - /* - * @return public component of this key - */ - virtual MemoryVector public_value() const = 0; - - virtual ~PK_Key_Agreement_Key() {} - }; - -/* -* Typedefs -*/ -typedef PK_Key_Agreement_Key PK_KA_Key; -typedef Public_Key X509_PublicKey; -typedef Private_Key PKCS8_PrivateKey; - -} - -#endif diff --git a/src/botan/src/pubkey/pk_ops.h b/src/botan/src/pubkey/pk_ops.h deleted file mode 100644 index 51543cd33..000000000 --- a/src/botan/src/pubkey/pk_ops.h +++ /dev/null @@ -1,163 +0,0 @@ -/* -* PK Operation Types -* (C) 2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_PK_OPERATIONS_H__ -#define BOTAN_PK_OPERATIONS_H__ - -#include -#include - -namespace Botan { - -namespace PK_Ops { - -/** -* Public key encryption interface -*/ -class BOTAN_DLL Encryption - { - public: - virtual size_t max_input_bits() const = 0; - - virtual SecureVector encrypt(const byte msg[], size_t msg_len, - RandomNumberGenerator& rng) = 0; - - virtual ~Encryption() {} - }; - -/** -* Public key decryption interface -*/ -class BOTAN_DLL Decryption - { - public: - virtual size_t max_input_bits() const = 0; - - virtual SecureVector decrypt(const byte msg[], - size_t msg_len) = 0; - - virtual ~Decryption() {} - }; - -/** -* Public key signature creation interface -*/ -class BOTAN_DLL Signature - { - public: - /** - * Find out the number of message parts supported by this scheme. - * @return number of message parts - */ - virtual size_t message_parts() const { return 1; } - - /** - * Find out the message part size supported by this scheme/key. - * @return size of the message parts - */ - virtual size_t message_part_size() const { return 0; } - - /** - * Get the maximum message size in bits supported by this public key. - * @return maximum message in bits - */ - virtual size_t max_input_bits() const = 0; - - /* - * Perform a signature operation - * @param msg the message - * @param msg_len the length of msg in bytes - * @param rng a random number generator - */ - virtual SecureVector sign(const byte msg[], size_t msg_len, - RandomNumberGenerator& rng) = 0; - - virtual ~Signature() {} - }; - -/** -* Public key signature verification interface -*/ -class BOTAN_DLL Verification - { - public: - /** - * Get the maximum message size in bits supported by this public key. - * @return maximum message in bits - */ - virtual size_t max_input_bits() const = 0; - - /** - * Find out the number of message parts supported by this scheme. - * @return number of message parts - */ - virtual size_t message_parts() const { return 1; } - - /** - * Find out the message part size supported by this scheme/key. - * @return size of the message parts - */ - virtual size_t message_part_size() const { return 0; } - - /** - * @return boolean specifying if this key type supports message - * recovery and thus if you need to call verify() or verify_mr() - */ - virtual bool with_recovery() const = 0; - - /* - * Perform a signature check operation - * @param msg the message - * @param msg_len the length of msg in bytes - * @param sig the signature - * @param sig_len the length of sig in bytes - * @returns if signature is a valid one for message - */ - virtual bool verify(const byte[], size_t, - const byte[], size_t) - { - throw Invalid_State("Message recovery required"); - } - - /* - * Perform a signature operation (with message recovery) - * Only call this if with_recovery() returns true - * @param msg the message - * @param msg_len the length of msg in bytes - * @returns recovered message - */ - virtual SecureVector verify_mr(const byte[], - size_t) - { - throw Invalid_State("Message recovery not supported"); - } - - virtual ~Verification() {} - }; - -/** -* A generic key agreement Operation (eg DH or ECDH) -*/ -class BOTAN_DLL Key_Agreement - { - public: - /* - * Perform a key agreement operation - * @param w the other key value - * @param w_len the length of w in bytes - * @returns the agreed key - */ - virtual SecureVector agree(const byte w[], size_t w_len) = 0; - - virtual ~Key_Agreement() {} - }; - -} - -} - -#endif diff --git a/src/botan/src/pubkey/pkcs8.cpp b/src/botan/src/pubkey/pkcs8.cpp deleted file mode 100644 index 16440b648..000000000 --- a/src/botan/src/pubkey/pkcs8.cpp +++ /dev/null @@ -1,259 +0,0 @@ -/* -* PKCS #8 -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace Botan { - -namespace PKCS8 { - -namespace { - -/* -* Get info from an EncryptedPrivateKeyInfo -*/ -SecureVector PKCS8_extract(DataSource& source, - AlgorithmIdentifier& pbe_alg_id) - { - SecureVector key_data; - - BER_Decoder(source) - .start_cons(SEQUENCE) - .decode(pbe_alg_id) - .decode(key_data, OCTET_STRING) - .verify_end(); - - return key_data; - } - -/* -* PEM decode and/or decrypt a private key -*/ -SecureVector PKCS8_decode(DataSource& source, const User_Interface& ui, - AlgorithmIdentifier& pk_alg_id) - { - AlgorithmIdentifier pbe_alg_id; - SecureVector key_data, key; - bool is_encrypted = true; - - try { - if(ASN1::maybe_BER(source) && !PEM_Code::matches(source)) - key_data = PKCS8_extract(source, pbe_alg_id); - else - { - std::string label; - key_data = PEM_Code::decode(source, label); - if(label == "PRIVATE KEY") - is_encrypted = false; - else if(label == "ENCRYPTED PRIVATE KEY") - { - DataSource_Memory key_source(key_data); - key_data = PKCS8_extract(key_source, pbe_alg_id); - } - else - throw PKCS8_Exception("Unknown PEM label " + label); - } - - if(key_data.empty()) - throw PKCS8_Exception("No key data found"); - } - catch(Decoding_Error) - { - throw Decoding_Error("PKCS #8 private key decoding failed"); - } - - if(!is_encrypted) - key = key_data; - - const size_t MAX_TRIES = 3; - - size_t tries = 0; - while(true) - { - try { - if(MAX_TRIES && tries >= MAX_TRIES) - break; - - if(is_encrypted) - { - DataSource_Memory params(pbe_alg_id.parameters); - std::auto_ptr pbe(get_pbe(pbe_alg_id.oid, params)); - - User_Interface::UI_Result result = User_Interface::OK; - const std::string passphrase = - ui.get_passphrase("PKCS #8 private key", source.id(), result); - - if(result == User_Interface::CANCEL_ACTION) - break; - - pbe->set_key(passphrase); - Pipe decryptor(pbe.release()); - - decryptor.process_msg(key_data); - key = decryptor.read_all(); - } - - BER_Decoder(key) - .start_cons(SEQUENCE) - .decode_and_check(0, "Unknown PKCS #8 version number") - .decode(pk_alg_id) - .decode(key, OCTET_STRING) - .discard_remaining() - .end_cons(); - - break; - } - catch(Decoding_Error) - { - ++tries; - } - } - - if(key.empty()) - throw Decoding_Error("PKCS #8 private key decoding failed"); - return key; - } - -} - -/* -* BER encode a PKCS #8 private key, unencrypted -*/ -SecureVector BER_encode(const Private_Key& key) - { - const size_t PKCS8_VERSION = 0; - - return DER_Encoder() - .start_cons(SEQUENCE) - .encode(PKCS8_VERSION) - .encode(key.pkcs8_algorithm_identifier()) - .encode(key.pkcs8_private_key(), OCTET_STRING) - .end_cons() - .get_contents(); - } - -/* -* PEM encode a PKCS #8 private key, unencrypted -*/ -std::string PEM_encode(const Private_Key& key) - { - return PEM_Code::encode(PKCS8::BER_encode(key), "PRIVATE KEY"); - } - -/* -* BER encode a PKCS #8 private key, encrypted -*/ -SecureVector BER_encode(const Private_Key& key, - RandomNumberGenerator& rng, - const std::string& pass, - const std::string& pbe_algo) - { - const std::string DEFAULT_PBE = "PBE-PKCS5v20(SHA-1,AES-256/CBC)"; - - std::auto_ptr pbe(get_pbe(((pbe_algo != "") ? pbe_algo : DEFAULT_PBE))); - - pbe->new_params(rng); - pbe->set_key(pass); - - AlgorithmIdentifier pbe_algid(pbe->get_oid(), pbe->encode_params()); - - Pipe key_encrytor(pbe.release()); - key_encrytor.process_msg(PKCS8::BER_encode(key)); - - return DER_Encoder() - .start_cons(SEQUENCE) - .encode(pbe_algid) - .encode(key_encrytor.read_all(), OCTET_STRING) - .end_cons() - .get_contents(); - } - -/* -* PEM encode a PKCS #8 private key, encrypted -*/ -std::string PEM_encode(const Private_Key& key, - RandomNumberGenerator& rng, - const std::string& pass, - const std::string& pbe_algo) - { - if(pass == "") - return PEM_encode(key); - - return PEM_Code::encode(PKCS8::BER_encode(key, rng, pass, pbe_algo), - "ENCRYPTED PRIVATE KEY"); - } - -/* -* Extract a private key and return it -*/ -Private_Key* load_key(DataSource& source, - RandomNumberGenerator& rng, - const User_Interface& ui) - { - AlgorithmIdentifier alg_id; - SecureVector pkcs8_key = PKCS8_decode(source, ui, alg_id); - - const std::string alg_name = OIDS::lookup(alg_id.oid); - if(alg_name == "" || alg_name == alg_id.oid.as_string()) - throw PKCS8_Exception("Unknown algorithm OID: " + - alg_id.oid.as_string()); - - return make_private_key(alg_id, pkcs8_key, rng); - } - -/* -* Extract a private key and return it -*/ -Private_Key* load_key(const std::string& fsname, - RandomNumberGenerator& rng, - const User_Interface& ui) - { - DataSource_Stream source(fsname, true); - return PKCS8::load_key(source, rng, ui); - } - -/* -* Extract a private key and return it -*/ -Private_Key* load_key(DataSource& source, - RandomNumberGenerator& rng, - const std::string& pass) - { - return PKCS8::load_key(source, rng, User_Interface(pass)); - } - -/* -* Extract a private key and return it -*/ -Private_Key* load_key(const std::string& fsname, - RandomNumberGenerator& rng, - const std::string& pass) - { - return PKCS8::load_key(fsname, rng, User_Interface(pass)); - } - -/* -* Make a copy of this private key -*/ -Private_Key* copy_key(const Private_Key& key, - RandomNumberGenerator& rng) - { - DataSource_Memory source(PEM_encode(key)); - return PKCS8::load_key(source, rng); - } - -} - -} diff --git a/src/botan/src/pubkey/pkcs8.h b/src/botan/src/pubkey/pkcs8.h deleted file mode 100644 index 00607b329..000000000 --- a/src/botan/src/pubkey/pkcs8.h +++ /dev/null @@ -1,179 +0,0 @@ -/* -* PKCS #8 -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_PKCS8_H__ -#define BOTAN_PKCS8_H__ - -#include -#include - -namespace Botan { - -/** -* PKCS #8 General Exception -*/ -struct BOTAN_DLL PKCS8_Exception : public Decoding_Error - { - PKCS8_Exception(const std::string& error) : - Decoding_Error("PKCS #8: " + error) {} - }; - -/** -* This namespace contains functions for handling PKCS #8 private keys -*/ -namespace PKCS8 { - -/** -* BER encode a private key -* @param key the private key to encode -* @return BER encoded key -*/ -BOTAN_DLL SecureVector BER_encode(const Private_Key& key); - -/** -* Get a string containing a PEM encoded private key. -* @param key the key to encode -* @return encoded key -*/ -BOTAN_DLL std::string PEM_encode(const Private_Key& key); - -/** -* Encrypt a key using PKCS #8 encryption -* @param key the key to encode -* @param rng the rng to use -* @param pass the password to use for encryption -* @param pbe_algo the name of the desired password-based encryption - algorithm; if empty ("") a reasonable (portable/secure) - default will be chosen. -* @return encrypted key in binary BER form -*/ -BOTAN_DLL SecureVector BER_encode(const Private_Key& key, - RandomNumberGenerator& rng, - const std::string& pass, - const std::string& pbe_algo = ""); - -/** -* Get a string containing a PEM encoded private key, encrypting it with a -* password. -* @param key the key to encode -* @param rng the rng to use -* @param pass the password to use for encryption -* @param pbe_algo the name of the desired password-based encryption - algorithm; if empty ("") a reasonable (portable/secure) - default will be chosen. -* @return encrypted key in PEM form -*/ -BOTAN_DLL std::string PEM_encode(const Private_Key& key, - RandomNumberGenerator& rng, - const std::string& pass, - const std::string& pbe_algo = ""); - - -/** -* Encode a private key into a pipe. -* @deprecated Use PEM_encode or BER_encode instead -* -* @param key the private key to encode -* @param pipe the pipe to feed the encoded key into -* @param encoding the encoding type to use -*/ -BOTAN_DEPRECATED("Use PEM_encode or BER_encode") -inline void encode(const Private_Key& key, - Pipe& pipe, - X509_Encoding encoding = PEM) - { - if(encoding == PEM) - pipe.write(PKCS8::PEM_encode(key)); - else - pipe.write(PKCS8::BER_encode(key)); - } - -/** -* Encode and encrypt a private key into a pipe. -* @deprecated Use PEM_encode or BER_encode instead -* -* @param key the private key to encode -* @param pipe the pipe to feed the encoded key into -* @param pass the password to use for encryption -* @param rng the rng to use -* @param pbe_algo the name of the desired password-based encryption - algorithm; if empty ("") a reasonable (portable/secure) - default will be chosen. -* @param encoding the encoding type to use -*/ -BOTAN_DEPRECATED("Use PEM_encode or BER_encode") -inline void encrypt_key(const Private_Key& key, - Pipe& pipe, - RandomNumberGenerator& rng, - const std::string& pass, - const std::string& pbe_algo = "", - X509_Encoding encoding = PEM) - { - if(encoding == PEM) - pipe.write(PKCS8::PEM_encode(key, rng, pass, pbe_algo)); - else - pipe.write(PKCS8::BER_encode(key, rng, pass, pbe_algo)); - } - -/** -* Load a key from a data source. -* @param source the data source providing the encoded key -* @param rng the rng to use -* @param ui the user interface to be used for passphrase dialog -* @return loaded private key object -*/ -BOTAN_DLL Private_Key* load_key(DataSource& source, - RandomNumberGenerator& rng, - const User_Interface& ui); - -/** Load a key from a data source. -* @param source the data source providing the encoded key -* @param rng the rng to use -* @param pass the passphrase to decrypt the key. Provide an empty -* string if the key is not encoded. -* @return loaded private key object -*/ -BOTAN_DLL Private_Key* load_key(DataSource& source, - RandomNumberGenerator& rng, - const std::string& pass = ""); - -/** -* Load a key from a file. -* @param filename the path to the file containing the encoded key -* @param rng the rng to use -* @param ui the user interface to be used for passphrase dialog -* @return loaded private key object -*/ -BOTAN_DLL Private_Key* load_key(const std::string& filename, - RandomNumberGenerator& rng, - const User_Interface& ui); - -/** Load a key from a file. -* @param filename the path to the file containing the encoded key -* @param rng the rng to use -* @param pass the passphrase to decrypt the key. Provide an empty -* string if the key is not encoded. -* @return loaded private key object -*/ -BOTAN_DLL Private_Key* load_key(const std::string& filename, - RandomNumberGenerator& rng, - const std::string& pass = ""); - -/** -* Copy an existing encoded key object. -* @param key the key to copy -* @param rng the rng to use -* @return new copy of the key -*/ -BOTAN_DLL Private_Key* copy_key(const Private_Key& key, - RandomNumberGenerator& rng); - -} - -} - -#endif diff --git a/src/botan/src/pubkey/pubkey.cpp b/src/botan/src/pubkey/pubkey.cpp deleted file mode 100644 index 23f652265..000000000 --- a/src/botan/src/pubkey/pubkey.cpp +++ /dev/null @@ -1,391 +0,0 @@ -/* -* Public Key Base -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace Botan { - -/* -* PK_Encryptor_EME Constructor -*/ -PK_Encryptor_EME::PK_Encryptor_EME(const Public_Key& key, - const std::string& eme_name) - { - Algorithm_Factory::Engine_Iterator i(global_state().algorithm_factory()); - - op = 0; - - while(const Engine* engine = i.next()) - { - op = engine->get_encryption_op(key); - if(op) - break; - } - - if(!op) - throw Lookup_Error("Encryption with " + key.algo_name() + " not supported"); - - eme = (eme_name == "Raw") ? 0 : get_eme(eme_name); - } - -/* -* Encrypt a message -*/ -SecureVector -PK_Encryptor_EME::enc(const byte in[], - size_t length, - RandomNumberGenerator& rng) const - { - if(eme) - { - SecureVector encoded = - eme->encode(in, length, op->max_input_bits(), rng); - - if(8*(encoded.size() - 1) + high_bit(encoded[0]) > op->max_input_bits()) - throw Invalid_Argument("PK_Encryptor_EME: Input is too large"); - - return op->encrypt(&encoded[0], encoded.size(), rng); - } - else - { - if(8*(length - 1) + high_bit(in[0]) > op->max_input_bits()) - throw Invalid_Argument("PK_Encryptor_EME: Input is too large"); - - return op->encrypt(&in[0], length, rng); - } - } - -/* -* Return the max size, in bytes, of a message -*/ -size_t PK_Encryptor_EME::maximum_input_size() const - { - if(!eme) - return (op->max_input_bits() / 8); - else - return eme->maximum_input_size(op->max_input_bits()); - } - -/* -* PK_Decryptor_EME Constructor -*/ -PK_Decryptor_EME::PK_Decryptor_EME(const Private_Key& key, - const std::string& eme_name) - { - Algorithm_Factory::Engine_Iterator i(global_state().algorithm_factory()); - - op = 0; - - while(const Engine* engine = i.next()) - { - op = engine->get_decryption_op(key); - if(op) - break; - } - - if(!op) - throw Lookup_Error("Decryption with " + key.algo_name() + " not supported"); - - eme = (eme_name == "Raw") ? 0 : get_eme(eme_name); - } - -/* -* Decrypt a message -*/ -SecureVector PK_Decryptor_EME::dec(const byte msg[], - size_t length) const - { - try { - SecureVector decrypted = op->decrypt(msg, length); - if(eme) - return eme->decode(decrypted, op->max_input_bits()); - else - return decrypted; - } - catch(Invalid_Argument) - { - throw Decoding_Error("PK_Decryptor_EME: Input is invalid"); - } - } - -/* -* PK_Signer Constructor -*/ -PK_Signer::PK_Signer(const Private_Key& key, - const std::string& emsa_name, - Signature_Format format, - Fault_Protection prot) - { - Algorithm_Factory::Engine_Iterator i(global_state().algorithm_factory()); - - op = 0; - verify_op = 0; - - while(const Engine* engine = i.next()) - { - if(!op) - op = engine->get_signature_op(key); - - if(!verify_op && prot == ENABLE_FAULT_PROTECTION) - verify_op = engine->get_verify_op(key); - - if(op && (verify_op || prot == DISABLE_FAULT_PROTECTION)) - break; - } - - if(!op || (!verify_op && prot == ENABLE_FAULT_PROTECTION)) - throw Lookup_Error("Signing with " + key.algo_name() + " not supported"); - - emsa = get_emsa(emsa_name); - sig_format = format; - } - -/* -* Sign a message -*/ -SecureVector PK_Signer::sign_message(const byte msg[], size_t length, - RandomNumberGenerator& rng) - { - update(msg, length); - return signature(rng); - } - -/* -* Add more to the message to be signed -*/ -void PK_Signer::update(const byte in[], size_t length) - { - emsa->update(in, length); - } - -/* -* Check the signature we just created, to help prevent fault attacks -*/ -bool PK_Signer::self_test_signature(const MemoryRegion& msg, - const MemoryRegion& sig) const - { - if(!verify_op) - return true; // checking disabled, assume ok - - if(verify_op->with_recovery()) - { - SecureVector recovered = - verify_op->verify_mr(&sig[0], sig.size()); - - if(msg.size() > recovered.size()) - { - size_t extra_0s = msg.size() - recovered.size(); - - for(size_t i = 0; i != extra_0s; ++i) - if(msg[i] != 0) - return false; - - return same_mem(&msg[extra_0s], &recovered[0], recovered.size()); - } - - return (recovered == msg); - } - else - return verify_op->verify(&msg[0], msg.size(), - &sig[0], sig.size()); - } - -/* -* Create a signature -*/ -SecureVector PK_Signer::signature(RandomNumberGenerator& rng) - { - SecureVector encoded = emsa->encoding_of(emsa->raw_data(), - op->max_input_bits(), - rng); - - SecureVector plain_sig = op->sign(&encoded[0], encoded.size(), rng); - - BOTAN_ASSERT(self_test_signature(encoded, plain_sig), - "PK_Signer consistency check failed"); - - if(op->message_parts() == 1 || sig_format == IEEE_1363) - return plain_sig; - - if(sig_format == DER_SEQUENCE) - { - if(plain_sig.size() % op->message_parts()) - throw Encoding_Error("PK_Signer: strange signature size found"); - const size_t SIZE_OF_PART = plain_sig.size() / op->message_parts(); - - std::vector sig_parts(op->message_parts()); - for(size_t j = 0; j != sig_parts.size(); ++j) - sig_parts[j].binary_decode(&plain_sig[SIZE_OF_PART*j], SIZE_OF_PART); - - return DER_Encoder() - .start_cons(SEQUENCE) - .encode_list(sig_parts) - .end_cons() - .get_contents(); - } - else - throw Encoding_Error("PK_Signer: Unknown signature format " + - to_string(sig_format)); - } - -/* -* PK_Verifier Constructor -*/ -PK_Verifier::PK_Verifier(const Public_Key& key, - const std::string& emsa_name, - Signature_Format format) - { - Algorithm_Factory::Engine_Iterator i(global_state().algorithm_factory()); - - op = 0; - - while(const Engine* engine = i.next()) - { - op = engine->get_verify_op(key); - if(op) - break; - } - - if(!op) - throw Lookup_Error("Verification with " + key.algo_name() + " not supported"); - - emsa = get_emsa(emsa_name); - sig_format = format; - } - -/* -* Set the signature format -*/ -void PK_Verifier::set_input_format(Signature_Format format) - { - if(op->message_parts() == 1 && format != IEEE_1363) - throw Invalid_State("PK_Verifier: This algorithm always uses IEEE 1363"); - sig_format = format; - } - -/* -* Verify a message -*/ -bool PK_Verifier::verify_message(const byte msg[], size_t msg_length, - const byte sig[], size_t sig_length) - { - update(msg, msg_length); - return check_signature(sig, sig_length); - } - -/* -* Append to the message -*/ -void PK_Verifier::update(const byte in[], size_t length) - { - emsa->update(in, length); - } - -/* -* Check a signature -*/ -bool PK_Verifier::check_signature(const byte sig[], size_t length) - { - try { - if(sig_format == IEEE_1363) - return validate_signature(emsa->raw_data(), sig, length); - else if(sig_format == DER_SEQUENCE) - { - BER_Decoder decoder(sig, length); - BER_Decoder ber_sig = decoder.start_cons(SEQUENCE); - - size_t count = 0; - SecureVector real_sig; - while(ber_sig.more_items()) - { - BigInt sig_part; - ber_sig.decode(sig_part); - real_sig += BigInt::encode_1363(sig_part, op->message_part_size()); - ++count; - } - - if(count != op->message_parts()) - throw Decoding_Error("PK_Verifier: signature size invalid"); - - return validate_signature(emsa->raw_data(), - &real_sig[0], real_sig.size()); - } - else - throw Decoding_Error("PK_Verifier: Unknown signature format " + - to_string(sig_format)); - } - catch(Invalid_Argument) { return false; } - } - -/* -* Verify a signature -*/ -bool PK_Verifier::validate_signature(const MemoryRegion& msg, - const byte sig[], size_t sig_len) - { - if(op->with_recovery()) - { - SecureVector output_of_key = op->verify_mr(sig, sig_len); - return emsa->verify(output_of_key, msg, op->max_input_bits()); - } - else - { - Null_RNG rng; - - SecureVector encoded = - emsa->encoding_of(msg, op->max_input_bits(), rng); - - return op->verify(&encoded[0], encoded.size(), sig, sig_len); - } - } - -/* -* PK_Key_Agreement Constructor -*/ -PK_Key_Agreement::PK_Key_Agreement(const PK_Key_Agreement_Key& key, - const std::string& kdf_name) - { - Algorithm_Factory::Engine_Iterator i(global_state().algorithm_factory()); - - op = 0; - - while(const Engine* engine = i.next()) - { - op = engine->get_key_agreement_op(key); - if(op) - break; - } - - if(!op) - throw Lookup_Error("Key agreement with " + key.algo_name() + " not supported"); - - kdf = (kdf_name == "Raw") ? 0 : get_kdf(kdf_name); - } - -SymmetricKey PK_Key_Agreement::derive_key(size_t key_len, const byte in[], - size_t in_len, const byte params[], - size_t params_len) const - { - SecureVector z = op->agree(in, in_len); - - if(!kdf) - return z; - - return kdf->derive_key(key_len, z, params, params_len); - } - -} diff --git a/src/botan/src/pubkey/pubkey.h b/src/botan/src/pubkey/pubkey.h deleted file mode 100644 index cd813dc65..000000000 --- a/src/botan/src/pubkey/pubkey.h +++ /dev/null @@ -1,450 +0,0 @@ -/* -* Public Key Interface -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_PUBKEY_H__ -#define BOTAN_PUBKEY_H__ - -#include -#include -#include -#include -#include -#include -#include - -namespace Botan { - -/** -* The two types of signature format supported by Botan. -*/ -enum Signature_Format { IEEE_1363, DER_SEQUENCE }; - -/** -* Enum marking if protection against fault attacks should be used -*/ -enum Fault_Protection { - ENABLE_FAULT_PROTECTION, - DISABLE_FAULT_PROTECTION -}; - -/** -* Public Key Encryptor -*/ -class BOTAN_DLL PK_Encryptor - { - public: - - /** - * Encrypt a message. - * @param in the message as a byte array - * @param length the length of the above byte array - * @param rng the random number source to use - * @return encrypted message - */ - SecureVector encrypt(const byte in[], size_t length, - RandomNumberGenerator& rng) const - { - return enc(in, length, rng); - } - - /** - * Encrypt a message. - * @param in the message - * @param rng the random number source to use - * @return encrypted message - */ - SecureVector encrypt(const MemoryRegion& in, - RandomNumberGenerator& rng) const - { - return enc(&in[0], in.size(), rng); - } - - /** - * Return the maximum allowed message size in bytes. - * @return maximum message size in bytes - */ - virtual size_t maximum_input_size() const = 0; - - PK_Encryptor() {} - virtual ~PK_Encryptor() {} - private: - PK_Encryptor(const PK_Encryptor&) {} - PK_Encryptor& operator=(const PK_Encryptor&) { return *this; } - - virtual SecureVector enc(const byte[], size_t, - RandomNumberGenerator&) const = 0; - }; - -/** -* Public Key Decryptor -*/ -class BOTAN_DLL PK_Decryptor - { - public: - /** - * Decrypt a ciphertext. - * @param in the ciphertext as a byte array - * @param length the length of the above byte array - * @return decrypted message - */ - SecureVector decrypt(const byte in[], size_t length) const - { - return dec(in, length); - } - - /** - * Decrypt a ciphertext. - * @param in the ciphertext - * @return decrypted message - */ - SecureVector decrypt(const MemoryRegion& in) const - { - return dec(&in[0], in.size()); - } - - PK_Decryptor() {} - virtual ~PK_Decryptor() {} - private: - PK_Decryptor(const PK_Decryptor&) {} - PK_Decryptor& operator=(const PK_Decryptor&) { return *this; } - - virtual SecureVector dec(const byte[], size_t) const = 0; - }; - -/** -* Public Key Signer. Use the sign_message() functions for small -* messages. Use multiple calls update() to process large messages and -* generate the signature by finally calling signature(). -*/ -class BOTAN_DLL PK_Signer - { - public: - /** - * Sign a message. - * @param in the message to sign as a byte array - * @param length the length of the above byte array - * @param rng the rng to use - * @return signature - */ - SecureVector sign_message(const byte in[], size_t length, - RandomNumberGenerator& rng); - - /** - * Sign a message. - * @param in the message to sign - * @param rng the rng to use - * @return signature - */ - SecureVector sign_message(const MemoryRegion& in, - RandomNumberGenerator& rng) - { return sign_message(&in[0], in.size(), rng); } - - /** - * Add a message part (single byte). - * @param in the byte to add - */ - void update(byte in) { update(&in, 1); } - - /** - * Add a message part. - * @param in the message part to add as a byte array - * @param length the length of the above byte array - */ - void update(const byte in[], size_t length); - - /** - * Add a message part. - * @param in the message part to add - */ - void update(const MemoryRegion& in) { update(&in[0], in.size()); } - - /** - * Get the signature of the so far processed message (provided by the - * calls to update()). - * @param rng the rng to use - * @return signature of the total message - */ - SecureVector signature(RandomNumberGenerator& rng); - - /** - * Set the output format of the signature. - * @param format the signature format to use - */ - void set_output_format(Signature_Format format) { sig_format = format; } - - /** - * Construct a PK Signer. - * @param key the key to use inside this signer - * @param emsa the EMSA to use - * An example would be "EMSA1(SHA-224)". - * @param format the signature format to use - * @param prot says if fault protection should be enabled - */ - PK_Signer(const Private_Key& key, - const std::string& emsa, - Signature_Format format = IEEE_1363, - Fault_Protection prot = ENABLE_FAULT_PROTECTION); - - ~PK_Signer() { delete op; delete verify_op; delete emsa; } - private: - bool self_test_signature(const MemoryRegion& msg, - const MemoryRegion& sig) const; - - PK_Signer(const PK_Signer&) {} - PK_Signer& operator=(const PK_Signer&) { return *this; } - - PK_Ops::Signature* op; - PK_Ops::Verification* verify_op; - EMSA* emsa; - Signature_Format sig_format; - }; - -/** -* Public Key Verifier. Use the verify_message() functions for small -* messages. Use multiple calls update() to process large messages and -* verify the signature by finally calling check_signature(). -*/ -class BOTAN_DLL PK_Verifier - { - public: - /** - * Verify a signature. - * @param msg the message that the signature belongs to, as a byte array - * @param msg_length the length of the above byte array msg - * @param sig the signature as a byte array - * @param sig_length the length of the above byte array sig - * @return true if the signature is valid - */ - bool verify_message(const byte msg[], size_t msg_length, - const byte sig[], size_t sig_length); - /** - * Verify a signature. - * @param msg the message that the signature belongs to - * @param sig the signature - * @return true if the signature is valid - */ - bool verify_message(const MemoryRegion& msg, - const MemoryRegion& sig) - { - return verify_message(&msg[0], msg.size(), - &sig[0], sig.size()); - } - - /** - * Add a message part (single byte) of the message corresponding to the - * signature to be verified. - * @param in the byte to add - */ - void update(byte in) { update(&in, 1); } - - /** - * Add a message part of the message corresponding to the - * signature to be verified. - * @param msg_part the new message part as a byte array - * @param length the length of the above byte array - */ - void update(const byte msg_part[], size_t length); - - /** - * Add a message part of the message corresponding to the - * signature to be verified. - * @param in the new message part - */ - void update(const MemoryRegion& in) - { update(&in[0], in.size()); } - - /** - * Check the signature of the buffered message, i.e. the one build - * by successive calls to update. - * @param sig the signature to be verified as a byte array - * @param length the length of the above byte array - * @return true if the signature is valid, false otherwise - */ - bool check_signature(const byte sig[], size_t length); - - /** - * Check the signature of the buffered message, i.e. the one build - * by successive calls to update. - * @param sig the signature to be verified - * @return true if the signature is valid, false otherwise - */ - bool check_signature(const MemoryRegion& sig) - { - return check_signature(&sig[0], sig.size()); - } - - /** - * Set the format of the signatures fed to this verifier. - * @param format the signature format to use - */ - void set_input_format(Signature_Format format); - - /** - * Construct a PK Verifier. - * @param pub_key the public key to verify against - * @param emsa the EMSA to use (eg "EMSA3(SHA-1)") - * @param format the signature format to use - */ - PK_Verifier(const Public_Key& pub_key, - const std::string& emsa, - Signature_Format format = IEEE_1363); - - ~PK_Verifier() { delete op; delete emsa; } - private: - PK_Verifier(const PK_Verifier&) {} - PK_Verifier& operator=(const PK_Verifier&) { return *this; } - - bool validate_signature(const MemoryRegion& msg, - const byte sig[], size_t sig_len); - - PK_Ops::Verification* op; - EMSA* emsa; - Signature_Format sig_format; - }; - -/** -* Key used for key agreement -*/ -class BOTAN_DLL PK_Key_Agreement - { - public: - - /* - * Perform Key Agreement Operation - * @param key_len the desired key output size - * @param in the other parties key - * @param in_len the length of in in bytes - * @param params extra derivation params - * @param params_len the length of params in bytes - */ - SymmetricKey derive_key(size_t key_len, - const byte in[], - size_t in_len, - const byte params[], - size_t params_len) const; - - /* - * Perform Key Agreement Operation - * @param key_len the desired key output size - * @param in the other parties key - * @param in_len the length of in in bytes - * @param params extra derivation params - * @param params_len the length of params in bytes - */ - SymmetricKey derive_key(size_t key_len, - const MemoryRegion& in, - const byte params[], - size_t params_len) const - { - return derive_key(key_len, &in[0], in.size(), - params, params_len); - } - - /* - * Perform Key Agreement Operation - * @param key_len the desired key output size - * @param in the other parties key - * @param in_len the length of in in bytes - * @param params extra derivation params - */ - SymmetricKey derive_key(size_t key_len, - const byte in[], size_t in_len, - const std::string& params = "") const - { - return derive_key(key_len, in, in_len, - reinterpret_cast(params.data()), - params.length()); - } - - /* - * Perform Key Agreement Operation - * @param key_len the desired key output size - * @param in the other parties key - * @param params extra derivation params - */ - SymmetricKey derive_key(size_t key_len, - const MemoryRegion& in, - const std::string& params = "") const - { - return derive_key(key_len, &in[0], in.size(), - reinterpret_cast(params.data()), - params.length()); - } - - /** - * Construct a PK Key Agreement. - * @param key the key to use - * @param kdf name of the KDF to use (or 'Raw' for no KDF) - */ - PK_Key_Agreement(const PK_Key_Agreement_Key& key, - const std::string& kdf); - - ~PK_Key_Agreement() { delete op; delete kdf; } - private: - PK_Key_Agreement(const PK_Key_Agreement_Key&) {} - PK_Key_Agreement& operator=(const PK_Key_Agreement&) { return *this; } - - PK_Ops::Key_Agreement* op; - KDF* kdf; - }; - -/** -* Encryption with an MR algorithm and an EME. -*/ -class BOTAN_DLL PK_Encryptor_EME : public PK_Encryptor - { - public: - size_t maximum_input_size() const; - - /** - * Construct an instance. - * @param key the key to use inside the decryptor - * @param eme the EME to use - */ - PK_Encryptor_EME(const Public_Key& key, - const std::string& eme); - - ~PK_Encryptor_EME() { delete op; delete eme; } - private: - SecureVector enc(const byte[], size_t, - RandomNumberGenerator& rng) const; - - PK_Ops::Encryption* op; - const EME* eme; - }; - -/** -* Decryption with an MR algorithm and an EME. -*/ -class BOTAN_DLL PK_Decryptor_EME : public PK_Decryptor - { - public: - /** - * Construct an instance. - * @param key the key to use inside the encryptor - * @param eme the EME to use - */ - PK_Decryptor_EME(const Private_Key& key, - const std::string& eme); - - ~PK_Decryptor_EME() { delete op; delete eme; } - private: - SecureVector dec(const byte[], size_t) const; - - PK_Ops::Decryption* op; - const EME* eme; - }; - -/* -* Typedefs for compatability with 1.8 -*/ -typedef PK_Encryptor_EME PK_Encryptor_MR_with_EME; -typedef PK_Decryptor_EME PK_Decryptor_MR_with_EME; - -} - -#endif diff --git a/src/botan/src/pubkey/pubkey_enums.cpp b/src/botan/src/pubkey/pubkey_enums.cpp deleted file mode 100644 index 90d835814..000000000 --- a/src/botan/src/pubkey/pubkey_enums.cpp +++ /dev/null @@ -1,42 +0,0 @@ -/* -* KeyUsage -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include - -namespace Botan { - -namespace BER { - -/* -* Decode a BER encoded KeyUsage -*/ -void decode(BER_Decoder& source, Key_Constraints& key_usage) - { - BER_Object obj = source.get_next_object(); - - if(obj.type_tag != BIT_STRING || obj.class_tag != UNIVERSAL) - throw BER_Bad_Tag("Bad tag for usage constraint", - obj.type_tag, obj.class_tag); - if(obj.value.size() != 2 && obj.value.size() != 3) - throw BER_Decoding_Error("Bad size for BITSTRING in usage constraint"); - if(obj.value[0] >= 8) - throw BER_Decoding_Error("Invalid unused bits in usage constraint"); - - const byte mask = (0xFF << obj.value[0]); - obj.value[obj.value.size()-1] &= mask; - - u16bit usage = 0; - for(size_t j = 1; j != obj.value.size(); ++j) - usage = (obj.value[j] << 8) | usage; - - key_usage = Key_Constraints(usage); - } - -} - -} diff --git a/src/botan/src/pubkey/pubkey_enums.h b/src/botan/src/pubkey/pubkey_enums.h deleted file mode 100644 index 99f804e0a..000000000 --- a/src/botan/src/pubkey/pubkey_enums.h +++ /dev/null @@ -1,71 +0,0 @@ -/* -* Enumerations -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_ENUMS_H__ -#define BOTAN_ENUMS_H__ - -#include - -namespace Botan { - -/** -* X.509v3 Key Constraints. -*/ -enum Key_Constraints { - NO_CONSTRAINTS = 0, - DIGITAL_SIGNATURE = 32768, - NON_REPUDIATION = 16384, - KEY_ENCIPHERMENT = 8192, - DATA_ENCIPHERMENT = 4096, - KEY_AGREEMENT = 2048, - KEY_CERT_SIGN = 1024, - CRL_SIGN = 512, - ENCIPHER_ONLY = 256, - DECIPHER_ONLY = 128 -}; - -/** -* BER Decoding Function for key constraints -*/ -namespace BER { - -void BOTAN_DLL decode(BER_Decoder&, Key_Constraints&); - -} - -/** -* X.509v2 CRL Reason Code. -*/ -enum CRL_Code { - UNSPECIFIED = 0, - KEY_COMPROMISE = 1, - CA_COMPROMISE = 2, - AFFILIATION_CHANGED = 3, - SUPERSEDED = 4, - CESSATION_OF_OPERATION = 5, - CERTIFICATE_HOLD = 6, - REMOVE_FROM_CRL = 8, - PRIVLEDGE_WITHDRAWN = 9, - AA_COMPROMISE = 10, - - DELETE_CRL_ENTRY = 0xFF00, - OCSP_GOOD = 0xFF01, - OCSP_UNKNOWN = 0xFF02 -}; - -/* -* Various Other Enumerations -*/ - -/** -* The two types of X509 encoding supported by Botan. -*/ -enum X509_Encoding { RAW_BER, PEM }; - -} - -#endif diff --git a/src/botan/src/pubkey/workfactor.cpp b/src/botan/src/pubkey/workfactor.cpp deleted file mode 100644 index 72ba75cf9..000000000 --- a/src/botan/src/pubkey/workfactor.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/* -* Public Key Work Factor Functions -* (C) 1999-2007,2012 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -size_t dl_work_factor(size_t bits) - { - /* - Based on GNFS work factors. Constant is 1.43 times the asymptotic - value; I'm not sure but I believe that came from a paper on 'real - world' runtimes, but I don't remember where now. - - Sample return values: - |512| -> 64 - |1024| -> 86 - |1536| -> 102 - |2048| -> 116 - |3072| -> 138 - |4096| -> 155 - |8192| -> 206 - - For DL algos, we use an exponent of twice the size of the result; - the assumption is that an arbitrary discrete log on a group of size - bits would take about 2^n effort, and thus using an exponent of - size 2^(2*n) implies that all available attacks are about as easy - (as e.g Pollard's kangaroo algorithm can compute the DL in sqrt(x) - operations) while minimizing the exponent size for performance - reasons. - */ - - const size_t MIN_WORKFACTOR = 64; - - // approximates natural logarithm of p - const double log_p = bits / 1.4426; - - const double strength = - 2.76 * std::pow(log_p, 1.0/3.0) * std::pow(std::log(log_p), 2.0/3.0); - - return std::max(static_cast(strength), MIN_WORKFACTOR); - } - -} diff --git a/src/botan/src/pubkey/workfactor.h b/src/botan/src/pubkey/workfactor.h deleted file mode 100644 index 179b580e7..000000000 --- a/src/botan/src/pubkey/workfactor.h +++ /dev/null @@ -1,24 +0,0 @@ -/* -* Public Key Work Factor Functions -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_WORKFACTOR_H__ -#define BOTAN_WORKFACTOR_H__ - -#include - -namespace Botan { - -/** -* Estimate work factor for discrete logarithm -* @param prime_group_size size of the group in bits -* @return estimated security level for this group -*/ -size_t dl_work_factor(size_t prime_group_size); - -} - -#endif diff --git a/src/botan/src/pubkey/x509_key.cpp b/src/botan/src/pubkey/x509_key.cpp deleted file mode 100644 index 4714b1285..000000000 --- a/src/botan/src/pubkey/x509_key.cpp +++ /dev/null @@ -1,138 +0,0 @@ -/* -* X.509 Public Key -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace Botan { - -namespace X509 { - -MemoryVector BER_encode(const Public_Key& key) - { - return DER_Encoder() - .start_cons(SEQUENCE) - .encode(key.algorithm_identifier()) - .encode(key.x509_subject_public_key(), BIT_STRING) - .end_cons() - .get_contents(); - } - -/* -* PEM encode a X.509 public key -*/ -std::string PEM_encode(const Public_Key& key) - { - return PEM_Code::encode(X509::BER_encode(key), - "PUBLIC KEY"); - } - -/* -* Extract a public key and return it -*/ -Public_Key* load_key(DataSource& source) - { - try { - AlgorithmIdentifier alg_id; - MemoryVector key_bits; - - if(ASN1::maybe_BER(source) && !PEM_Code::matches(source)) - { - BER_Decoder(source) - .start_cons(SEQUENCE) - .decode(alg_id) - .decode(key_bits, BIT_STRING) - .verify_end() - .end_cons(); - } - else - { - DataSource_Memory ber( - PEM_Code::decode_check_label(source, "PUBLIC KEY") - ); - - BER_Decoder(ber) - .start_cons(SEQUENCE) - .decode(alg_id) - .decode(key_bits, BIT_STRING) - .verify_end() - .end_cons(); - } - - if(key_bits.empty()) - throw Decoding_Error("X.509 public key decoding failed"); - - return make_public_key(alg_id, key_bits); - } - catch(Decoding_Error) - { - throw Decoding_Error("X.509 public key decoding failed"); - } - } - -/* -* Extract a public key and return it -*/ -Public_Key* load_key(const std::string& fsname) - { - DataSource_Stream source(fsname, true); - return X509::load_key(source); - } - -/* -* Extract a public key and return it -*/ -Public_Key* load_key(const MemoryRegion& mem) - { - DataSource_Memory source(mem); - return X509::load_key(source); - } - -/* -* Make a copy of this public key -*/ -Public_Key* copy_key(const Public_Key& key) - { - DataSource_Memory source(PEM_encode(key)); - return X509::load_key(source); - } - -/* -* Find the allowable key constraints -*/ -Key_Constraints find_constraints(const Public_Key& pub_key, - Key_Constraints limits) - { - const std::string name = pub_key.algo_name(); - - size_t constraints = 0; - - if(name == "DH" || name == "ECDH") - constraints |= KEY_AGREEMENT; - - if(name == "RSA" || name == "ElGamal") - constraints |= KEY_ENCIPHERMENT | DATA_ENCIPHERMENT; - - if(name == "RSA" || name == "RW" || name == "NR" || - name == "DSA" || name == "ECDSA") - constraints |= DIGITAL_SIGNATURE | NON_REPUDIATION; - - if(limits) - constraints &= limits; - - return Key_Constraints(constraints); - } - -} - -} diff --git a/src/botan/src/pubkey/x509_key.h b/src/botan/src/pubkey/x509_key.h deleted file mode 100644 index 3fdee8cde..000000000 --- a/src/botan/src/pubkey/x509_key.h +++ /dev/null @@ -1,101 +0,0 @@ -/* -* X.509 Public Key -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_X509_PUBLIC_KEY_H__ -#define BOTAN_X509_PUBLIC_KEY_H__ - -#include -#include -#include -#include -#include - -namespace Botan { - -/** -* This namespace contains functions for handling X.509 public keys -*/ -namespace X509 { - -/** -* BER encode a key -* @param key the public key to encode -* @return BER encoding of this key -*/ -BOTAN_DLL MemoryVector BER_encode(const Public_Key& key); - -/** -* PEM encode a public key into a string. -* @param key the key to encode -* @return PEM encoded key -*/ -BOTAN_DLL std::string PEM_encode(const Public_Key& key); - -/** -* Create a public key from a data source. -* @param source the source providing the DER or PEM encoded key -* @return new public key object -*/ -BOTAN_DLL Public_Key* load_key(DataSource& source); - -/** -* Create a public key from a file -* @param filename pathname to the file to load -* @return new public key object -*/ -BOTAN_DLL Public_Key* load_key(const std::string& filename); - -/** -* Create a public key from a memory region. -* @param enc the memory region containing the DER or PEM encoded key -* @return new public key object -*/ -BOTAN_DLL Public_Key* load_key(const MemoryRegion& enc); - -/** -* Copy a key. -* @param key the public key to copy -* @return new public key object -*/ -BOTAN_DLL Public_Key* copy_key(const Public_Key& key); - -/** -* Create the key constraints for a specific public key. -* @param pub_key the public key from which the basic set of -* constraints to be placed in the return value is derived -* @param limits additional limits that will be incorporated into the -* return value -* @return combination of key type specific constraints and -* additional limits -*/ -BOTAN_DLL Key_Constraints find_constraints(const Public_Key& pub_key, - Key_Constraints limits); - -/** -* Encode a key into a pipe. -* @deprecated Use PEM_encode or BER_encode instead -* -* @param key the public key to encode -* @param pipe the pipe to feed the encoded key into -* @param encoding the encoding type to use -*/ -BOTAN_DEPRECATED("Use PEM_encode or BER_encode") -inline void encode(const Public_Key& key, - Pipe& pipe, - X509_Encoding encoding = PEM) - { - if(encoding == PEM) - pipe.write(X509::PEM_encode(key)); - else - pipe.write(X509::BER_encode(key)); - } - -} - -} - -#endif diff --git a/src/botan/src/rng/auto_rng/auto_rng.h b/src/botan/src/rng/auto_rng/auto_rng.h deleted file mode 100644 index 520323e3e..000000000 --- a/src/botan/src/rng/auto_rng/auto_rng.h +++ /dev/null @@ -1,47 +0,0 @@ -/* -* Auto Seeded RNG -* (C) 2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_AUTO_SEEDING_RNG_H__ -#define BOTAN_AUTO_SEEDING_RNG_H__ - -#include -#include -#include - -namespace Botan { - -/** -* An automatically seeded PRNG -*/ -class BOTAN_DLL AutoSeeded_RNG : public RandomNumberGenerator - { - public: - void randomize(byte out[], size_t len) - { rng->randomize(out, len); } - - bool is_seeded() const { return rng->is_seeded(); } - - void clear() { rng->clear(); } - - std::string name() const { return rng->name(); } - - void reseed(size_t poll_bits = 256) { rng->reseed(poll_bits); } - - void add_entropy_source(EntropySource* es) - { rng->add_entropy_source(es); } - - void add_entropy(const byte in[], size_t len) - { rng->add_entropy(in, len); } - - AutoSeeded_RNG() { rng = &global_state().global_rng(); } - private: - RandomNumberGenerator* rng; - }; - -} - -#endif diff --git a/src/botan/src/rng/auto_rng/info.txt b/src/botan/src/rng/auto_rng/info.txt deleted file mode 100644 index 6f98a65f4..000000000 --- a/src/botan/src/rng/auto_rng/info.txt +++ /dev/null @@ -1,5 +0,0 @@ -define AUTO_SEEDING_RNG - - -libstate - diff --git a/src/botan/src/rng/hmac_rng/hmac_rng.cpp b/src/botan/src/rng/hmac_rng/hmac_rng.cpp deleted file mode 100644 index efcc5c37e..000000000 --- a/src/botan/src/rng/hmac_rng/hmac_rng.cpp +++ /dev/null @@ -1,228 +0,0 @@ -/* -* HMAC_RNG -* (C) 2008-2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include - -namespace Botan { - -namespace { - -void hmac_prf(MessageAuthenticationCode* prf, - MemoryRegion& K, - u32bit& counter, - const std::string& label) - { - prf->update(K); - prf->update(label); - prf->update_be(counter); - prf->update_be(get_nanoseconds_clock()); - prf->final(&K[0]); - - ++counter; - } - -} - -/* -* Generate a buffer of random bytes -*/ -void HMAC_RNG::randomize(byte out[], size_t length) - { - if(!is_seeded()) - throw PRNG_Unseeded(name()); - - /* - HMAC KDF as described in E-t-E, using a CTXinfo of "rng" - */ - while(length) - { - hmac_prf(prf, K, counter, "rng"); - - const size_t copied = std::min(K.size(), length); - - copy_mem(out, &K[0], copied); - out += copied; - length -= copied; - - output_since_reseed += copied; - - if(output_since_reseed >= BOTAN_RNG_MAX_OUTPUT_BEFORE_RESEED) - reseed(BOTAN_RNG_RESEED_POLL_BITS); - } - } - -/* -* Poll for entropy and reset the internal keys -*/ -void HMAC_RNG::reseed(size_t poll_bits) - { - /* - Using the terminology of E-t-E, XTR is the MAC function (normally - HMAC) seeded with XTS (below) and we form SKM, the key material, by - fast polling each source, and then slow polling as many as we think - we need (in the following loop), and feeding all of the poll - results, along with any optional user input, along with, finally, - feedback of the current PRK value, into the extractor function. - */ - - Entropy_Accumulator_BufferedComputation accum(*extractor, poll_bits); - - if(!entropy_sources.empty()) - { - size_t poll_attempt = 0; - - while(!accum.polling_goal_achieved() && poll_attempt < poll_bits) - { - const size_t src_idx = poll_attempt % entropy_sources.size(); - entropy_sources[src_idx]->poll(accum); - ++poll_attempt; - } - } - - /* - * It is necessary to feed forward poll data. Otherwise, a good poll - * (collecting a large amount of conditional entropy) followed by a - * bad one (collecting little) would be unsafe. Do this by - * generating new PRF outputs using the previous key and feeding - * them into the extractor function. - * - * Cycle the RNG once (CTXinfo="rng"), then generate a new PRF - * output using the CTXinfo "reseed". Provide these values as input - * to the extractor function. - */ - hmac_prf(prf, K, counter, "rng"); - extractor->update(K); // K is the CTXinfo=rng PRF output - - hmac_prf(prf, K, counter, "reseed"); - extractor->update(K); // K is the CTXinfo=reseed PRF output - - /* Now derive the new PRK using everything that has been fed into - the extractor, and set the PRF key to that */ - prf->set_key(extractor->final()); - - // Now generate a new PRF output to use as the XTS extractor salt - hmac_prf(prf, K, counter, "xts"); - extractor->set_key(K); - - // Reset state - zeroise(K); - counter = 0; - output_since_reseed = 0; - - /* - Consider ourselves seeded once we've collected an estimated 128 bits of - entropy in a single poll. - */ - if(seeded == false && accum.bits_collected() >= 128) - seeded = true; - } - -void HMAC_RNG::add_entropy(const byte input[], size_t length) - { - // Add user-supplied whatever to the extractor input, and then reseed - - extractor->update(input, length); - reseed(BOTAN_RNG_RESEED_POLL_BITS); - } - -/* -* Add another entropy source to the list -*/ -void HMAC_RNG::add_entropy_source(EntropySource* src) - { - entropy_sources.push_back(src); - } - -/* -* Clear memory of sensitive data -*/ -void HMAC_RNG::clear() - { - extractor->clear(); - prf->clear(); - zeroise(K); - counter = 0; - output_since_reseed = 0; - seeded = false; - } - -/* -* Return the name of this type -*/ -std::string HMAC_RNG::name() const - { - return "HMAC_RNG(" + extractor->name() + "," + prf->name() + ")"; - } - -/* -* HMAC_RNG Constructor -*/ -HMAC_RNG::HMAC_RNG(MessageAuthenticationCode* extractor_mac, - MessageAuthenticationCode* prf_mac) : - extractor(extractor_mac), prf(prf_mac) - { - if(!prf->valid_keylength(extractor->output_length()) || - !extractor->valid_keylength(prf->output_length())) - throw Invalid_Argument("HMAC_RNG: Bad algo combination " + - extractor->name() + " and " + - prf->name()); - - // First PRF inputs are all zero, as specified in section 2 - K.resize(prf->output_length()); - - counter = 0; - output_since_reseed = 0; - seeded = false; - - /* - Normally we want to feedback PRF output into the input to the - extractor function to ensure a single bad poll does not damage the - RNG, but obviously that is meaningless to do on the first poll. - - We will want to use the PRF before we set the first key (in - reseed), and it is a pain to keep track if it is set or - not. Since the first time it doesn't matter anyway, just set the - PRF key to constant zero: randomize() will not produce output - unless is_seeded() returns true, and that will only be the case if - the estimated entropy counter is high enough. That variable is only - set when a reseeding is performed. - */ - MemoryVector prf_key(extractor->output_length()); - prf->set_key(prf_key); - - /* - Use PRF("Botan HMAC_RNG XTS") as the intitial XTS key. - - This will be used during the first extraction sequence; XTS values - after this one are generated using the PRF. - - If I understand the E-t-E paper correctly (specifically Section 4), - using this fixed extractor key is safe to do. - */ - extractor->set_key(prf->process("Botan HMAC_RNG XTS")); - } - -/* -* HMAC_RNG Destructor -*/ -HMAC_RNG::~HMAC_RNG() - { - delete extractor; - delete prf; - - std::for_each(entropy_sources.begin(), entropy_sources.end(), - del_fun()); - - counter = 0; - } - -} diff --git a/src/botan/src/rng/hmac_rng/hmac_rng.h b/src/botan/src/rng/hmac_rng/hmac_rng.h deleted file mode 100644 index ce23c96e6..000000000 --- a/src/botan/src/rng/hmac_rng/hmac_rng.h +++ /dev/null @@ -1,61 +0,0 @@ -/* -* HMAC RNG -* (C) 2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_HMAC_RNG_H__ -#define BOTAN_HMAC_RNG_H__ - -#include -#include -#include - -namespace Botan { - -/** -HMAC_RNG - based on the design described in "On Extract-then-Expand -Key Derivation Functions and an HMAC-based KDF" by Hugo Krawczyk -(henceforce, 'E-t-E') - -However it actually can be parameterized with any two MAC functions, -not restricted to HMAC (this variation is also described in Krawczyk's -paper), for instance one could use HMAC(SHA-512) as the extractor -and CMAC(AES-256) as the PRF. -*/ -class BOTAN_DLL HMAC_RNG : public RandomNumberGenerator - { - public: - void randomize(byte buf[], size_t len); - bool is_seeded() const { return seeded; } - void clear(); - std::string name() const; - - void reseed(size_t poll_bits); - void add_entropy_source(EntropySource* es); - void add_entropy(const byte[], size_t); - - /** - * @param extractor a MAC used for extracting the entropy - * @param prf a MAC used as a PRF using HKDF construction - */ - HMAC_RNG(MessageAuthenticationCode* extractor, - MessageAuthenticationCode* prf); - - ~HMAC_RNG(); - private: - MessageAuthenticationCode* extractor; - MessageAuthenticationCode* prf; - - std::vector entropy_sources; - bool seeded; - - SecureVector K, io_buffer; - size_t output_since_reseed; - u32bit counter; - }; - -} - -#endif diff --git a/src/botan/src/rng/hmac_rng/info.txt b/src/botan/src/rng/hmac_rng/info.txt deleted file mode 100644 index 5facd4aae..000000000 --- a/src/botan/src/rng/hmac_rng/info.txt +++ /dev/null @@ -1,5 +0,0 @@ -define HMAC_RNG - - -mac - diff --git a/src/botan/src/rng/info.txt b/src/botan/src/rng/info.txt deleted file mode 100644 index 4c88ba382..000000000 --- a/src/botan/src/rng/info.txt +++ /dev/null @@ -1,3 +0,0 @@ - -entropy - diff --git a/src/botan/src/rng/rng.cpp b/src/botan/src/rng/rng.cpp deleted file mode 100644 index aa9b73ff3..000000000 --- a/src/botan/src/rng/rng.cpp +++ /dev/null @@ -1,38 +0,0 @@ -/* -* Random Number Generator Base -* (C) 1999-2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include - -#if defined(BOTAN_HAS_AUTO_SEEDING_RNG) - #include -#endif - -namespace Botan { - -/* -* Get a single random byte -*/ -byte RandomNumberGenerator::next_byte() - { - byte out; - this->randomize(&out, 1); - return out; - } - -/* -* Create and seed a new RNG object -*/ -RandomNumberGenerator* RandomNumberGenerator::make_rng() - { -#if defined(BOTAN_HAS_AUTO_SEEDING_RNG) - return new AutoSeeded_RNG; -#endif - - throw Algorithm_Not_Found("RandomNumberGenerator::make_rng - no RNG found"); - } - -} diff --git a/src/botan/src/rng/rng.h b/src/botan/src/rng/rng.h deleted file mode 100644 index c078ef08f..000000000 --- a/src/botan/src/rng/rng.h +++ /dev/null @@ -1,115 +0,0 @@ -/* -* RandomNumberGenerator -* (C) 1999-2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_RANDOM_NUMBER_GENERATOR_H__ -#define BOTAN_RANDOM_NUMBER_GENERATOR_H__ - -#include -#include -#include - -namespace Botan { - -/** -* This class represents a random number (RNG) generator object. -*/ -class BOTAN_DLL RandomNumberGenerator - { - public: - /** - * Create a seeded and active RNG object for general application use - */ - static RandomNumberGenerator* make_rng(); - - /** - * Randomize a byte array. - * @param output the byte array to hold the random output. - * @param length the length of the byte array output. - */ - virtual void randomize(byte output[], size_t length) = 0; - - /** - * Return a random vector - * @param bytes number of bytes in the result - * @return randomized vector of length bytes - */ - SecureVector random_vec(size_t bytes) - { - SecureVector output(bytes); - randomize(&output[0], output.size()); - return output; - } - - /** - * Return a random byte - * @return random byte - */ - byte next_byte(); - - /** - * Check whether this RNG is seeded. - * @return true if this RNG was already seeded, false otherwise. - */ - virtual bool is_seeded() const { return true; } - - /** - * Clear all internally held values of this RNG. - */ - virtual void clear() = 0; - - /** - * Return the name of this object - */ - virtual std::string name() const = 0; - - /** - * Seed this RNG using the entropy sources it contains. - * @param bits_to_collect is the number of bits of entropy to - attempt to gather from the entropy sources - */ - virtual void reseed(size_t bits_to_collect) = 0; - - /** - * Add this entropy source to the RNG object - * @param source the entropy source which will be retained and used by RNG - */ - virtual void add_entropy_source(EntropySource* source) = 0; - - /** - * Add entropy to this RNG. - * @param in a byte array containg the entropy to be added - * @param length the length of the byte array in - */ - virtual void add_entropy(const byte in[], size_t length) = 0; - - RandomNumberGenerator() {} - virtual ~RandomNumberGenerator() {} - private: - RandomNumberGenerator(const RandomNumberGenerator&) {} - RandomNumberGenerator& operator=(const RandomNumberGenerator&) - { return (*this); } - }; - -/** -* Null/stub RNG - fails if you try to use it for anything -*/ -class BOTAN_DLL Null_RNG : public RandomNumberGenerator - { - public: - void randomize(byte[], size_t) { throw PRNG_Unseeded("Null_RNG"); } - void clear() {} - std::string name() const { return "Null_RNG"; } - - void reseed(size_t) {} - bool is_seeded() const { return false; } - void add_entropy(const byte[], size_t) {} - void add_entropy_source(EntropySource* es) { delete es; } - }; - -} - -#endif diff --git a/src/botan/src/stream/info.txt b/src/botan/src/stream/info.txt deleted file mode 100644 index c242b47e7..000000000 --- a/src/botan/src/stream/info.txt +++ /dev/null @@ -1,5 +0,0 @@ -define STREAM_CIPHER - - -algo_base - diff --git a/src/botan/src/stream/stream_cipher.cpp b/src/botan/src/stream/stream_cipher.cpp deleted file mode 100644 index 7dbd3e2e3..000000000 --- a/src/botan/src/stream/stream_cipher.cpp +++ /dev/null @@ -1,24 +0,0 @@ -/* -* Stream Cipher -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include - -namespace Botan { - -void StreamCipher::set_iv(const byte[], size_t iv_len) - { - if(iv_len) - throw Invalid_Argument("The stream cipher " + name() + - " does not support resyncronization"); - } - -bool StreamCipher::valid_iv_length(size_t iv_len) const - { - return (iv_len == 0); - } - -} diff --git a/src/botan/src/stream/stream_cipher.h b/src/botan/src/stream/stream_cipher.h deleted file mode 100644 index 301e71f07..000000000 --- a/src/botan/src/stream/stream_cipher.h +++ /dev/null @@ -1,58 +0,0 @@ -/* -* Stream Cipher -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_STREAM_CIPHER_H__ -#define BOTAN_STREAM_CIPHER_H__ - -#include - -namespace Botan { - -/** -* Base class for all stream ciphers -*/ -class BOTAN_DLL StreamCipher : public SymmetricAlgorithm - { - public: - /** - * Encrypt or decrypt a message - * @param in the plaintext - * @param out the byte array to hold the output, i.e. the ciphertext - * @param len the length of both in and out in bytes - */ - virtual void cipher(const byte in[], byte out[], size_t len) = 0; - - /** - * Encrypt or decrypt a message - * @param buf the plaintext / ciphertext - * @param len the length of buf in bytes - */ - void cipher1(byte buf[], size_t len) - { cipher(buf, buf, len); } - - /** - * Resync the cipher using the IV - * @param iv the initialization vector - * @param iv_len the length of the IV in bytes - */ - virtual void set_iv(const byte iv[], size_t iv_len); - - /** - * @param iv_len the length of the IV in bytes - * @return if the length is valid for this algorithm - */ - virtual bool valid_iv_length(size_t iv_len) const; - - /** - * Get a new object representing the same algorithm as *this - */ - virtual StreamCipher* clone() const = 0; - }; - -} - -#endif diff --git a/src/botan/src/tests/outdata/dompar_private.pkcs8.pem b/src/botan/src/tests/outdata/dompar_private.pkcs8.pem deleted file mode 100644 index 73da7f9ac..000000000 --- a/src/botan/src/tests/outdata/dompar_private.pkcs8.pem +++ /dev/null @@ -1,7 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIHHAgEAMIGkBgcqhkjOPQIBMIGYAgEBMCAGByqGSM49AQECFQD///////////// -////////f////zAsBBT/////////////////////f////AQUHJe+/FS9eotlrPif -gdTUrcVl+kUEKQRKlrVojvVzKEZkaYlow4u5E8v8giOmKFUxaJR9WdzJEgQjUTd6 -xfsyAhUBAAAAAAAAAAAAAfTI+Seu08p1IlcCAQEEGzAZAgEBBBTnft9wkqtTJQUZ -XE6++DD1+85oog== ------END PRIVATE KEY----- diff --git a/src/botan/src/tests/outdata/rsa_private.pkcs8.pem b/src/botan/src/tests/outdata/rsa_private.pkcs8.pem deleted file mode 100644 index 9fd6cae87..000000000 --- a/src/botan/src/tests/outdata/rsa_private.pkcs8.pem +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBANYcEoSK4UfRTpt4 -7jnMykJVJ+AXxezheGyfsE1OmtCwP8bvm7zJTV5UUwbvm+s+n3PiZ0o9CzCo3Oor -CpZW2qIa9EVdBtt3Ag/MkMcokjACaTbIs+Zl+Rwlhs6gc6Jss2qGNT3ROr1Alp1Q -kcIk7B2+mF8MEyivpkPVUBEqmUjpAgMBAAECgYAMGy0SiKNpcw9XBpzaW0w3Y8cR -VRQdoKJgFUe7w0fz00yz3qHyEs7DWJC+PxI+7aed6Y1YuwAKObi4q9jZfHfi9n8Y -9xBEfnJu4dA8zuEAVjJo+oQ66VAR0Rgg3fxiwe7LG58b6dHY58ppvI8FDKQZN32D -nYYtAJjd1KDZ8Nj3VQJBANYu05BINS5zK/u3+pPD7y8kLxkfRHoC4U6dWMSQ37NE -iDsVXv/nXxH/LKTeCrmh2mm2cRffxJRLdncnV6OIKHUCQQD/6ZWZAc7CFWeCW62M -X4qN0n4KCGyBLNOn1B8e4u8ODBKJs1F5jXD2rJEUSllGJY9ZAAsSEMz56My/FBSw -T7AlAkEAp6bBvcd3sWM/g2qQfse42pqlLzH1ZNgKSoIJsNuB7w3u4Oiqkv8lwK2P -4YFYvdN+Zo8DWV+zvSyQj1ZBWGVE3QJBAJnE7inRBz5hhB+1HJPTOLq89xTqOOBp -YghfEhAKBeBn6p+pCtTB41WlHUuW3QukN/0fZIeHZtLnSleqJkBGsa0CQQCLOcbR -GdybUbd2b8bTR1GiIReDQzWqg1aDJHO1KlbePX3W3V0mDoemmmBd6DgO4j1anFjB -tnANoHR5V3kzHdNm ------END PRIVATE KEY----- diff --git a/src/botan/src/tests/outdata/wo_dompar_private.pkcs8.pem b/src/botan/src/tests/outdata/wo_dompar_private.pkcs8.pem deleted file mode 100644 index 39ce408e1..000000000 --- a/src/botan/src/tests/outdata/wo_dompar_private.pkcs8.pem +++ /dev/null @@ -1,7 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIHHAgEAMIGkBgcqhkjOPQIBMIGYAgEBMCAGByqGSM49AQECFQD///////////// -////////f////zAsBBT/////////////////////f////AQUHJe+/FS9eotlrPif -gdTUrcVl+kUEKQRKlrVojvVzKEZkaYlow4u5E8v8giOmKFUxaJR9WdzJEgQjUTd6 -xfsyAhUBAAAAAAAAAAAAAfTI+Seu08p1IlcCAQEEGzAZAgEBBBRYhRG3UWBdx8Ch -CeUvkzw1mb/Aqw== ------END PRIVATE KEY----- diff --git a/src/botan/src/utils/asm_x86_32/asm_x86_32.h b/src/botan/src/utils/asm_x86_32/asm_x86_32.h deleted file mode 100644 index d5482c419..000000000 --- a/src/botan/src/utils/asm_x86_32/asm_x86_32.h +++ /dev/null @@ -1,128 +0,0 @@ -/* -* Assembly Macros for 32-bit x86 -* (C) 1999-2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_ASM_MACROS_X86_32_H__ -#define BOTAN_ASM_MACROS_X86_32_H__ - -/* -* General/Global Macros -*/ -#define ALIGN .p2align 4,,15 - -#define START_LISTING(FILENAME) \ - .file #FILENAME; \ - .text; \ - ALIGN; - -#if defined(__ELF__) -.section .note.GNU-stack,"",%progbits -#endif - -/* -* Function Definitions -*/ -#define START_FUNCTION(func_name) \ - ALIGN; \ - .global func_name; \ - .type func_name,@function; \ -func_name: - -#define END_FUNCTION(func_name) \ - ret - -/* -* Loop Control -*/ -#define START_LOOP(LABEL) \ - ALIGN; \ - LABEL##_LOOP: - -#define LOOP_UNTIL_EQ(REG, NUM, LABEL) \ - cmpl IMM(NUM), REG; \ - jne LABEL##_LOOP - -#define LOOP_UNTIL_LT(REG, NUM, LABEL) \ - cmpl IMM(NUM), REG; \ - jge LABEL##_LOOP - -/* - Conditional Jumps -*/ -#define JUMP_IF_ZERO(REG, LABEL) \ - cmpl IMM(0), REG; \ - jz LABEL - -#define JUMP_IF_LT(REG, NUM, LABEL) \ - cmpl IMM(NUM), REG; \ - jl LABEL - -/* -* Register Names -*/ -#define EAX %eax -#define EBX %ebx -#define ECX %ecx -#define EDX %edx -#define EBP %ebp -#define EDI %edi -#define ESI %esi -#define ESP %esp - -/* -* Memory Access Operations -*/ -#define ARRAY1(REG, NUM) (NUM)(REG) -#define ARRAY4(REG, NUM) 4*(NUM)(REG) -#define ARRAY4_INDIRECT(BASE, OFFSET, NUM) 4*(NUM)(BASE,OFFSET,4) -#define ARG(NUM) 4*(PUSHED) + ARRAY4(ESP, NUM) - -#define ASSIGN(TO, FROM) movl FROM, TO -#define ASSIGN_BYTE(TO, FROM) movzbl FROM, TO - -#define PUSH(REG) pushl REG -#define POP(REG) popl REG - -#define SPILL_REGS() \ - PUSH(EBP) ; \ - PUSH(EDI) ; \ - PUSH(ESI) ; \ - PUSH(EBX) - -#define RESTORE_REGS() \ - POP(EBX) ; \ - POP(ESI) ; \ - POP(EDI) ; \ - POP(EBP) - -/* -* ALU Operations -*/ -#define IMM(VAL) $VAL - -#define ADD(TO, FROM) addl FROM, TO -#define ADD_IMM(TO, NUM) ADD(TO, IMM(NUM)) -#define ADD_W_CARRY(TO1, TO2, FROM) addl FROM, TO1; adcl IMM(0), TO2; -#define SUB_IMM(TO, NUM) subl IMM(NUM), TO -#define ADD2_IMM(TO, FROM, NUM) leal NUM(FROM), TO -#define ADD3_IMM(TO, FROM, NUM) leal NUM(TO,FROM,1), TO -#define MUL(REG) mull REG - -#define SHL_IMM(REG, SHIFT) shll IMM(SHIFT), REG -#define SHR_IMM(REG, SHIFT) shrl IMM(SHIFT), REG -#define SHL2_3(TO, FROM) leal 0(,FROM,8), TO - -#define XOR(TO, FROM) xorl FROM, TO -#define AND(TO, FROM) andl FROM, TO -#define OR(TO, FROM) orl FROM, TO -#define NOT(REG) notl REG -#define ZEROIZE(REG) XOR(REG, REG) - -#define ROTL_IMM(REG, NUM) roll IMM(NUM), REG -#define ROTR_IMM(REG, NUM) rorl IMM(NUM), REG -#define BSWAP(REG) bswapl REG - -#endif diff --git a/src/botan/src/utils/asm_x86_32/info.txt b/src/botan/src/utils/asm_x86_32/info.txt deleted file mode 100644 index 21244968f..000000000 --- a/src/botan/src/utils/asm_x86_32/info.txt +++ /dev/null @@ -1,28 +0,0 @@ -load_on dep - - -asm_x86_32.h - - - -x86_32 - - -# ELF systems - -linux -freebsd -dragonfly -netbsd -openbsd -solaris - - - -gcc -icc - - - -asm_engine - diff --git a/src/botan/src/utils/asm_x86_64/asm_x86_64.h b/src/botan/src/utils/asm_x86_64/asm_x86_64.h deleted file mode 100644 index 7abc1f392..000000000 --- a/src/botan/src/utils/asm_x86_64/asm_x86_64.h +++ /dev/null @@ -1,127 +0,0 @@ -/* -* Assembly Macros for 64-bit x86 -* (C) 1999-2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_ASM_MACROS_X86_64_H__ -#define BOTAN_ASM_MACROS_X86_64_H__ - -/* -* General/Global Macros -*/ -#define ALIGN .p2align 4,,15 - -#define START_LISTING(FILENAME) \ - .file #FILENAME; \ - .text; \ - ALIGN; - -#if defined(__ELF__) -.section .note.GNU-stack,"",%progbits -#endif - -/* -* Function Definitions -*/ -#define START_FUNCTION(func_name) \ - ALIGN; \ - .global func_name; \ - .type func_name,@function; \ -func_name: - -#define END_FUNCTION(func_name) \ - ret - -/* -* Conditional Jumps -*/ -#define JUMP_IF_ZERO(REG, LABEL) \ - cmp IMM(0), REG; \ - jz LABEL - -#define JUMP_IF_LT(REG, NUM, LABEL) \ - cmp IMM(NUM), REG; \ - jl LABEL - -/* -* Register Names -*/ -#define R0 %rax -#define R1 %rbx -#define R2 %rcx -#define R2_32 %ecx -#define R3 %rdx -#define R3_32 %edx -#define R4 %rsp -#define R5 %rbp -#define R6 %rsi -#define R6_32 %esi -#define R7 %rdi -#define R8 %r8 -#define R9 %r9 -#define R9_32 %r9d -#define R10 %r10 -#define R11 %r11 -#define R12 %r12 -#define R13 %r13 -#define R14 %r14 -#define R15 %r15 -#define R16 %r16 - -#define ARG_1 R7 -#define ARG_2 R6 -#define ARG_2_32 R6_32 -#define ARG_3 R3 -#define ARG_3_32 R3_32 -#define ARG_4 R2 -#define ARG_4_32 R2_32 -#define ARG_5 R8 -#define ARG_6 R9 -#define ARG_6_32 R9_32 - -#define TEMP_1 R10 -#define TEMP_2 R11 -#define TEMP_3 ARG_6 -#define TEMP_4 ARG_5 -#define TEMP_5 ARG_4 -#define TEMP_5_32 ARG_4_32 -#define TEMP_6 ARG_3 -#define TEMP_7 ARG_2 -#define TEMP_8 ARG_1 -#define TEMP_9 R0 - -/* -* Memory Access Operations -*/ -#define ARRAY8(REG, NUM) 8*(NUM)(REG) -#define ARRAY4(REG, NUM) 4*(NUM)(REG) - -#define ASSIGN(TO, FROM) mov FROM, TO - -/* -* ALU Operations -*/ -#define IMM(VAL) $VAL - -#define ADD(TO, FROM) add FROM, TO -#define ADD_LAST_CARRY(REG) adc IMM(0), REG -#define ADD_IMM(TO, NUM) ADD(TO, IMM(NUM)) -#define ADD_W_CARRY(TO1, TO2, FROM) add FROM, TO1; adc IMM(0), TO2; -#define SUB_IMM(TO, NUM) sub IMM(NUM), TO -#define MUL(REG) mul REG - -#define XOR(TO, FROM) xor FROM, TO -#define AND(TO, FROM) and FROM, TO -#define OR(TO, FROM) or FROM, TO -#define NOT(REG) not REG -#define ZEROIZE(REG) XOR(REG, REG) - -#define RETURN_VALUE_IS(V) ASSIGN(%rax, V) - -#define ROTL_IMM(REG, NUM) rol IMM(NUM), REG -#define ROTR_IMM(REG, NUM) ror IMM(NUM), REG -#define ADD3_IMM(TO, FROM, NUM) lea NUM(TO,FROM,1), TO - -#endif diff --git a/src/botan/src/utils/asm_x86_64/info.txt b/src/botan/src/utils/asm_x86_64/info.txt deleted file mode 100644 index 3173f3b14..000000000 --- a/src/botan/src/utils/asm_x86_64/info.txt +++ /dev/null @@ -1,27 +0,0 @@ -load_on dep - - -asm_x86_64.h - - - -x86_64 - - - -clang -gcc -icc - - -# ELF systems - -linux -netbsd -openbsd -solaris - - - -asm_engine - diff --git a/src/botan/src/utils/assert.cpp b/src/botan/src/utils/assert.cpp deleted file mode 100644 index 29af831d8..000000000 --- a/src/botan/src/utils/assert.cpp +++ /dev/null @@ -1,35 +0,0 @@ -/* -* Runtime assertion checking -* (C) 2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -void assertion_failure(const char* expr_str, - const char* msg, - const char* func, - const char* file, - int line) - { - std::ostringstream format; - - format << "Assertion " << expr_str << " failed "; - - if(msg) - format << "(" << msg << ") "; - - if(func) - format << "in " << func << " "; - - format << "@" << file << ":" << line; - - throw Internal_Error(format.str()); - } - -} diff --git a/src/botan/src/utils/assert.h b/src/botan/src/utils/assert.h deleted file mode 100644 index 67ca665e3..000000000 --- a/src/botan/src/utils/assert.h +++ /dev/null @@ -1,59 +0,0 @@ -/* -* Runtime assertion checking -* (C) 2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_ASSERTION_CHECKING_H__ -#define BOTAN_ASSERTION_CHECKING_H__ - -namespace Botan { - -void assertion_failure(const char* expr_str, - const char* msg, - const char* func, - const char* file, - int line); - -#define BOTAN_ASSERT(expr, msg) \ - do { \ - if(!(expr)) \ - Botan::assertion_failure(#expr, \ - msg, \ - BOTAN_ASSERT_FUNCTION, \ - __FILE__, \ - __LINE__); \ - } while(0) - -#define BOTAN_ASSERT_EQUAL(value1, value2, msg) \ - do { \ - if(value1 != value2) \ - Botan::assertion_failure(#value1 " == " #value2, \ - msg, \ - BOTAN_ASSERT_FUNCTION, \ - __FILE__, \ - __LINE__); \ - } while(0) - -/* -* Unfortunately getting the function name from the preprocessor -* isn't standard in C++98 (C++0x uses C99's __func__) -*/ -#if defined(BOTAN_BUILD_COMPILER_IS_GCC) || \ - defined(BOTAN_BUILD_COMPILER_IS_CLANG) || \ - defined(BOTAN_BUILD_COMPILER_IS_INTEL) - - #define BOTAN_ASSERT_FUNCTION __PRETTY_FUNCTION__ - -#elif defined(BOTAN_BUILD_COMPILER_IS_MSVC) - - #define BOTAN_ASSERT_FUNCTION __FUNCTION__ - -#else - #define BOTAN_ASSERT_FUNCTION ((const char*)0) -#endif - -} - -#endif diff --git a/src/botan/src/utils/bit_ops.h b/src/botan/src/utils/bit_ops.h deleted file mode 100644 index af7f07a05..000000000 --- a/src/botan/src/utils/bit_ops.h +++ /dev/null @@ -1,103 +0,0 @@ -/* -* Bit/Word Operations -* (C) 1999-2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_BIT_OPS_H__ -#define BOTAN_BIT_OPS_H__ - -#include - -namespace Botan { - -/** -* Power of 2 test. T should be an unsigned integer type -* @param arg an integer value -* @return true iff arg is 2^n for some n > 0 -*/ -template -inline bool power_of_2(T arg) - { - return ((arg != 0 && arg != 1) && ((arg & (arg-1)) == 0)); - } - -/** -* Return the index of the highest set bit -* T is an unsigned integer type -* @param n an integer value -* @return index of the highest set bit in n -*/ -template -inline size_t high_bit(T n) - { - for(size_t i = 8*sizeof(T); i > 0; --i) - if((n >> (i - 1)) & 0x01) - return i; - return 0; - } - -/** -* Return the index of the lowest set bit -* T is an unsigned integer type -* @param n an integer value -* @return index of the lowest set bit in n -*/ -template -inline size_t low_bit(T n) - { - for(size_t i = 0; i != 8*sizeof(T); ++i) - if((n >> i) & 0x01) - return (i + 1); - return 0; - } - -/** -* Return the number of significant bytes in n -* @param n an integer value -* @return number of significant bytes in n -*/ -template -inline size_t significant_bytes(T n) - { - for(size_t i = 0; i != sizeof(T); ++i) - if(get_byte(i, n)) - return sizeof(T)-i; - return 0; - } - -/** -* Compute Hamming weights -* @param n an integer value -* @return number of bits in n set to 1 -*/ -template -inline size_t hamming_weight(T n) - { - const byte NIBBLE_WEIGHTS[] = { - 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 }; - - size_t weight = 0; - for(size_t i = 0; i != 2*sizeof(T); ++i) - weight += NIBBLE_WEIGHTS[(n >> (4*i)) & 0x0F]; - return weight; - } - -/** -* Count the trailing zero bits in n -* @param n an integer value -* @return maximum x st 2^x divides n -*/ -template -inline size_t ctz(T n) - { - for(size_t i = 0; i != 8*sizeof(T); ++i) - if((n >> i) & 0x01) - return i; - return 8*sizeof(T); - } - -} - -#endif diff --git a/src/botan/src/utils/bswap.h b/src/botan/src/utils/bswap.h deleted file mode 100644 index 9d2c9bc28..000000000 --- a/src/botan/src/utils/bswap.h +++ /dev/null @@ -1,142 +0,0 @@ -/* -* Byte Swapping Operations -* (C) 1999-2011 Jack Lloyd -* (C) 2007 Yves Jerschow -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_BYTE_SWAP_H__ -#define BOTAN_BYTE_SWAP_H__ - -#include -#include - -#if defined(BOTAN_TARGET_CPU_HAS_SSE2) && !defined(BOTAN_NO_SSE_INTRINSICS) - #include -#endif - -namespace Botan { - -/** -* Swap a 16 bit integer -*/ -inline u16bit reverse_bytes(u16bit val) - { - return rotate_left(val, 8); - } - -/** -* Swap a 32 bit integer -*/ -inline u32bit reverse_bytes(u32bit val) - { -#if BOTAN_GCC_VERSION >= 430 && !defined(BOTAN_TARGET_CPU_IS_ARM_FAMILY) - /* - GCC intrinsic added in 4.3, works for a number of CPUs - - However avoid under ARM, as it branches to a function in libgcc - instead of generating inline asm, so slower even than the generic - rotate version below. - */ - return __builtin_bswap32(val); - -#elif BOTAN_USE_GCC_INLINE_ASM && defined(BOTAN_TARGET_CPU_IS_X86_FAMILY) - - // GCC-style inline assembly for x86 or x86-64 - asm("bswapl %0" : "=r" (val) : "0" (val)); - return val; - -#elif BOTAN_USE_GCC_INLINE_ASM && defined(BOTAN_TARGET_CPU_IS_ARM_FAMILY) - - asm ("eor r3, %1, %1, ror #16\n\t" - "bic r3, r3, #0x00FF0000\n\t" - "mov %0, %1, ror #8\n\t" - "eor %0, %0, r3, lsr #8" - : "=r" (val) - : "0" (val) - : "r3", "cc"); - - return val; - -#elif defined(_MSC_VER) && defined(BOTAN_TARGET_ARCH_IS_X86_32) - - // Visual C++ inline asm for 32-bit x86, by Yves Jerschow - __asm mov eax, val; - __asm bswap eax; - -#else - - // Generic implementation - return (rotate_right(val, 8) & 0xFF00FF00) | - (rotate_left (val, 8) & 0x00FF00FF); - -#endif - } - -/** -* Swap a 64 bit integer -*/ -inline u64bit reverse_bytes(u64bit val) - { -#if BOTAN_GCC_VERSION >= 430 - - // GCC intrinsic added in 4.3, works for a number of CPUs - return __builtin_bswap64(val); - -#elif BOTAN_USE_GCC_INLINE_ASM && defined(BOTAN_TARGET_ARCH_IS_X86_64) - // GCC-style inline assembly for x86-64 - asm("bswapq %0" : "=r" (val) : "0" (val)); - return val; - -#else - /* Generic implementation. Defined in terms of 32-bit bswap so any - * optimizations in that version can help here (particularly - * useful for 32-bit x86). - */ - - u32bit hi = static_cast(val >> 32); - u32bit lo = static_cast(val); - - hi = reverse_bytes(hi); - lo = reverse_bytes(lo); - - return (static_cast(lo) << 32) | hi; -#endif - } - -/** -* Swap 4 Ts in an array -*/ -template -inline void bswap_4(T x[4]) - { - x[0] = reverse_bytes(x[0]); - x[1] = reverse_bytes(x[1]); - x[2] = reverse_bytes(x[2]); - x[3] = reverse_bytes(x[3]); - } - -#if defined(BOTAN_TARGET_CPU_HAS_SSE2) && !defined(BOTAN_NO_SSE_INTRINSICS) - -/** -* Swap 4 u32bits in an array using SSE2 shuffle instructions -*/ -template<> -inline void bswap_4(u32bit x[4]) - { - __m128i T = _mm_loadu_si128(reinterpret_cast(x)); - - T = _mm_shufflehi_epi16(T, _MM_SHUFFLE(2, 3, 0, 1)); - T = _mm_shufflelo_epi16(T, _MM_SHUFFLE(2, 3, 0, 1)); - - T = _mm_or_si128(_mm_srli_epi16(T, 8), _mm_slli_epi16(T, 8)); - - _mm_storeu_si128(reinterpret_cast<__m128i*>(x), T); - } - -#endif - -} - -#endif diff --git a/src/botan/src/utils/charset.cpp b/src/botan/src/utils/charset.cpp deleted file mode 100644 index 8e20e6492..000000000 --- a/src/botan/src/utils/charset.cpp +++ /dev/null @@ -1,201 +0,0 @@ -/* -* Character Set Handling -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -namespace Botan { - -namespace Charset { - -namespace { - -/* -* Convert from UCS-2 to ISO 8859-1 -*/ -std::string ucs2_to_latin1(const std::string& ucs2) - { - if(ucs2.size() % 2 == 1) - throw Decoding_Error("UCS-2 string has an odd number of bytes"); - - std::string latin1; - - for(size_t i = 0; i != ucs2.size(); i += 2) - { - const byte c1 = ucs2[i]; - const byte c2 = ucs2[i+1]; - - if(c1 != 0) - throw Decoding_Error("UCS-2 has non-Latin1 characters"); - - latin1 += static_cast(c2); - } - - return latin1; - } - -/* -* Convert from UTF-8 to ISO 8859-1 -*/ -std::string utf8_to_latin1(const std::string& utf8) - { - std::string iso8859; - - size_t position = 0; - while(position != utf8.size()) - { - const byte c1 = static_cast(utf8[position++]); - - if(c1 <= 0x7F) - iso8859 += static_cast(c1); - else if(c1 >= 0xC0 && c1 <= 0xC7) - { - if(position == utf8.size()) - throw Decoding_Error("UTF-8: sequence truncated"); - - const byte c2 = static_cast(utf8[position++]); - const byte iso_char = ((c1 & 0x07) << 6) | (c2 & 0x3F); - - if(iso_char <= 0x7F) - throw Decoding_Error("UTF-8: sequence longer than needed"); - - iso8859 += static_cast(iso_char); - } - else - throw Decoding_Error("UTF-8: Unicode chars not in Latin1 used"); - } - - return iso8859; - } - -/* -* Convert from ISO 8859-1 to UTF-8 -*/ -std::string latin1_to_utf8(const std::string& iso8859) - { - std::string utf8; - for(size_t i = 0; i != iso8859.size(); ++i) - { - const byte c = static_cast(iso8859[i]); - - if(c <= 0x7F) - utf8 += static_cast(c); - else - { - utf8 += static_cast((0xC0 | (c >> 6))); - utf8 += static_cast((0x80 | (c & 0x3F))); - } - } - return utf8; - } - -} - -/* -* Perform character set transcoding -*/ -std::string transcode(const std::string& str, - Character_Set to, Character_Set from) - { - if(to == LOCAL_CHARSET) - to = LATIN1_CHARSET; - if(from == LOCAL_CHARSET) - from = LATIN1_CHARSET; - - if(to == from) - return str; - - if(from == LATIN1_CHARSET && to == UTF8_CHARSET) - return latin1_to_utf8(str); - if(from == UTF8_CHARSET && to == LATIN1_CHARSET) - return utf8_to_latin1(str); - if(from == UCS2_CHARSET && to == LATIN1_CHARSET) - return ucs2_to_latin1(str); - - throw Invalid_Argument("Unknown transcoding operation from " + - to_string(from) + " to " + to_string(to)); - } - -/* -* Check if a character represents a digit -*/ -bool is_digit(char c) - { - if(c == '0' || c == '1' || c == '2' || c == '3' || c == '4' || - c == '5' || c == '6' || c == '7' || c == '8' || c == '9') - return true; - return false; - } - -/* -* Check if a character represents whitespace -*/ -bool is_space(char c) - { - if(c == ' ' || c == '\t' || c == '\n' || c == '\r') - return true; - return false; - } - -/* -* Convert a character to a digit -*/ -byte char2digit(char c) - { - switch(c) - { - case '0': return 0; - case '1': return 1; - case '2': return 2; - case '3': return 3; - case '4': return 4; - case '5': return 5; - case '6': return 6; - case '7': return 7; - case '8': return 8; - case '9': return 9; - } - - throw Invalid_Argument("char2digit: Input is not a digit character"); - } - -/* -* Convert a digit to a character -*/ -char digit2char(byte b) - { - switch(b) - { - case 0: return '0'; - case 1: return '1'; - case 2: return '2'; - case 3: return '3'; - case 4: return '4'; - case 5: return '5'; - case 6: return '6'; - case 7: return '7'; - case 8: return '8'; - case 9: return '9'; - } - - throw Invalid_Argument("digit2char: Input is not a digit"); - } - -/* -* Case-insensitive character comparison -*/ -bool caseless_cmp(char a, char b) - { - return (std::tolower(static_cast(a)) == - std::tolower(static_cast(b))); - } - -} - -} diff --git a/src/botan/src/utils/charset.h b/src/botan/src/utils/charset.h deleted file mode 100644 index afb11733b..000000000 --- a/src/botan/src/utils/charset.h +++ /dev/null @@ -1,46 +0,0 @@ -/* -* Character Set Handling -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_CHARSET_H__ -#define BOTAN_CHARSET_H__ - -#include -#include - -namespace Botan { - -/** -* The different charsets (nominally) supported by Botan. -*/ -enum Character_Set { - LOCAL_CHARSET, - UCS2_CHARSET, - UTF8_CHARSET, - LATIN1_CHARSET -}; - -namespace Charset { - -/* -* Character Set Handling -*/ -std::string BOTAN_DLL transcode(const std::string& str, - Character_Set to, - Character_Set from); - -bool BOTAN_DLL is_digit(char c); -bool BOTAN_DLL is_space(char c); -bool BOTAN_DLL caseless_cmp(char x, char y); - -byte BOTAN_DLL char2digit(char c); -char BOTAN_DLL digit2char(byte b); - -} - -} - -#endif diff --git a/src/botan/src/utils/cpuid.cpp b/src/botan/src/utils/cpuid.cpp deleted file mode 100644 index f6581f09c..000000000 --- a/src/botan/src/utils/cpuid.cpp +++ /dev/null @@ -1,216 +0,0 @@ -/* -* Runtime CPU detection -* (C) 2009-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -#if defined(BOTAN_TARGET_CPU_IS_PPC_FAMILY) - -#if defined(BOTAN_TARGET_OS_IS_DARWIN) - #include -#endif - -#if defined(BOTAN_TARGET_OS_IS_OPENBSD) - #include - #include - #include -#endif - -#endif - -#if defined(BOTAN_TARGET_CPU_IS_X86_FAMILY) - -#if defined(BOTAN_BUILD_COMPILER_IS_MSVC) - - #include - #define CALL_CPUID(type, out) do { __cpuid((int*)out, type); } while(0) - -#elif defined(BOTAN_BUILD_COMPILER_IS_INTEL) - - #include - #define CALL_CPUID(type, out) do { __cpuid(out, type); } while(0) - -#elif defined(BOTAN_BUILD_COMPILER_IS_GCC) && (BOTAN_GCC_VERSION >= 430) - - // Only available starting in GCC 4.3 - #include - -namespace { - - /* - * Prevent inlining to work around GCC bug 44174 - */ - void __attribute__((__noinline__)) call_gcc_cpuid(Botan::u32bit type, - Botan::u32bit out[4]) - { - __get_cpuid(type, out, out+1, out+2, out+3); - } - - #define CALL_CPUID call_gcc_cpuid - -} - -#elif defined(BOTAN_TARGET_ARCH_IS_X86_64) && \ - (defined(BOTAN_BUILD_COMPILER_IS_CLANG) || defined(BOTAN_BUILD_COMPILER_IS_GCC)) - - /* - * We can't safely use this on x86-32 as some 32-bit ABIs use ebx as - * a PIC register, and in theory there are some x86-32s still out - * there that don't support cpuid at all; it requires strange - * contortions to detect them. - */ - - #define CALL_CPUID(type, out) \ - asm("cpuid\n\t" : "=a" (out[0]), "=b" (out[1]), "=c" (out[2]), "=d" (out[3]) \ - : "0" (type)) - -#else - #warning "No method of calling CPUID for this compiler" -#endif - -#endif - -#ifndef CALL_CPUID - // In all other cases, just zeroize the supposed cpuid output - #define CALL_CPUID(type, out) \ - do { out[0] = out[1] = out[2] = out[3] = 0; } while(0); -#endif - -namespace Botan { - -u64bit CPUID::x86_processor_flags = 0; -size_t CPUID::cache_line = 32; -bool CPUID::altivec_capable = false; - -namespace { - -u32bit get_x86_cache_line_size() - { - const u32bit INTEL_CPUID[3] = { 0x756E6547, 0x6C65746E, 0x49656E69 }; - const u32bit AMD_CPUID[3] = { 0x68747541, 0x444D4163, 0x69746E65 }; - - u32bit cpuid[4] = { 0 }; - CALL_CPUID(0, cpuid); - - if(same_mem(cpuid + 1, INTEL_CPUID, 3)) - { - CALL_CPUID(1, cpuid); - return 8 * get_byte(2, cpuid[1]); - } - else if(same_mem(cpuid + 1, AMD_CPUID, 3)) - { - CALL_CPUID(0x80000005, cpuid); - return get_byte(3, cpuid[2]); - } - else - return 32; // default cache line guess - } - -#if defined(BOTAN_TARGET_CPU_IS_PPC_FAMILY) - -bool altivec_check_sysctl() - { -#if defined(BOTAN_TARGET_OS_IS_DARWIN) || defined(BOTAN_TARGET_OS_IS_OPENBSD) - -#if defined(BOTAN_TARGET_OS_IS_OPENBSD) - int sels[2] = { CTL_MACHDEP, CPU_ALTIVEC }; -#else - // From Apple's docs - int sels[2] = { CTL_HW, HW_VECTORUNIT }; -#endif - int vector_type = 0; - size_t length = sizeof(vector_type); - int error = sysctl(sels, 2, &vector_type, &length, NULL, 0); - - if(error == 0 && vector_type > 0) - return true; -#endif - - return false; - } - -bool altivec_check_pvr_emul() - { - bool altivec_capable = false; - -#if defined(BOTAN_TARGET_OS_IS_LINUX) || defined(BOTAN_TARGET_OS_IS_NETBSD) - - /* - On PowerPC, MSR 287 is PVR, the Processor Version Number - Normally it is only accessible to ring 0, but Linux and NetBSD - (others, too, maybe?) will trap and emulate it for us. - - PVR identifiers for various AltiVec enabled CPUs. Taken from - PearPC and Linux sources, mostly. - */ - - const u16bit PVR_G4_7400 = 0x000C; - const u16bit PVR_G5_970 = 0x0039; - const u16bit PVR_G5_970FX = 0x003C; - const u16bit PVR_G5_970MP = 0x0044; - const u16bit PVR_G5_970GX = 0x0045; - const u16bit PVR_POWER6 = 0x003E; - const u16bit PVR_POWER7 = 0x003F; - const u16bit PVR_CELL_PPU = 0x0070; - - // Motorola produced G4s with PVR 0x800[0123C] (at least) - const u16bit PVR_G4_74xx_24 = 0x800; - - u32bit pvr = 0; - - asm volatile("mfspr %0, 287" : "=r" (pvr)); - - // Top 16 bit suffice to identify model - pvr >>= 16; - - altivec_capable |= (pvr == PVR_G4_7400); - altivec_capable |= ((pvr >> 4) == PVR_G4_74xx_24); - altivec_capable |= (pvr == PVR_G5_970); - altivec_capable |= (pvr == PVR_G5_970FX); - altivec_capable |= (pvr == PVR_G5_970MP); - altivec_capable |= (pvr == PVR_G5_970GX); - altivec_capable |= (pvr == PVR_POWER6); - altivec_capable |= (pvr == PVR_POWER7); - altivec_capable |= (pvr == PVR_CELL_PPU); -#endif - - return altivec_capable; - } - -#endif - -} - -void CPUID::initialize() - { - u32bit cpuid[4] = { 0 }; - CALL_CPUID(1, cpuid); - - x86_processor_flags = (static_cast(cpuid[2]) << 32) | cpuid[3]; - -#if defined(BOTAN_TARGET_ARCH_IS_X86_64) - /* - * If we don't have access to CPUID, we can still safely assume that - * any x86-64 processor has SSE2. - */ - if(x86_processor_flags == 0) - x86_processor_flags |= (1 << CPUID_SSE2_BIT); -#endif - - cache_line = get_x86_cache_line_size(); - - altivec_capable = false; - -#if defined(BOTAN_TARGET_CPU_IS_PPC_FAMILY) - if(altivec_check_sysctl() || altivec_check_pvr_emul()) - altivec_capable = true; -#endif - } - -} diff --git a/src/botan/src/utils/cpuid.h b/src/botan/src/utils/cpuid.h deleted file mode 100644 index cdc6417ec..000000000 --- a/src/botan/src/utils/cpuid.h +++ /dev/null @@ -1,121 +0,0 @@ -/* -* Runtime CPU detection -* (C) 2009-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_CPUID_H__ -#define BOTAN_CPUID_H__ - -#include - -namespace Botan { - -/** -* A class handling runtime CPU feature detection -*/ -class BOTAN_DLL CPUID - { - public: - /** - * Probe the CPU and see what extensions are supported - */ - static void initialize(); - - /** - * Return a best guess of the cache line size - */ - static size_t cache_line_size() { return cache_line; } - - /** - * Check if the processor supports RDTSC - */ - static bool has_rdtsc() - { return x86_processor_flags_has(CPUID_RDTSC_BIT); } - - /** - * Check if the processor supports SSE2 - */ - static bool has_sse2() - { return x86_processor_flags_has(CPUID_SSE2_BIT); } - - /** - * Check if the processor supports SSSE3 - */ - static bool has_ssse3() - { return x86_processor_flags_has(CPUID_SSSE3_BIT); } - - /** - * Check if the processor supports SSE4.1 - */ - static bool has_sse41() - { return x86_processor_flags_has(CPUID_SSE41_BIT); } - - /** - * Check if the processor supports SSE4.2 - */ - static bool has_sse42() - { return x86_processor_flags_has(CPUID_SSE42_BIT); } - - /** - * Check if the processor supports extended AVX vector instructions - */ - static bool has_avx() - { return x86_processor_flags_has(CPUID_AVX_BIT); } - - /** - * Check if the processor supports AES-NI - */ - static bool has_aes_ni() - { return x86_processor_flags_has(CPUID_AESNI_BIT); } - - /** - * Check if the processor supports PCMULUDQ - */ - static bool has_pcmuludq() - { return x86_processor_flags_has(CPUID_PCMUL_BIT); } - - /** - * Check if the processor supports MOVBE - */ - static bool has_movbe() - { return x86_processor_flags_has(CPUID_MOVBE_BIT); } - - /** - * Check if the processor supports RDRAND - */ - static bool has_rdrand() - { return x86_processor_flags_has(CPUID_RDRAND_BIT); } - - /** - * Check if the processor supports AltiVec/VMX - */ - static bool has_altivec() { return altivec_capable; } - private: - enum CPUID_bits { - CPUID_RDTSC_BIT = 4, - CPUID_SSE2_BIT = 26, - CPUID_PCMUL_BIT = 33, - CPUID_SSSE3_BIT = 41, - CPUID_SSE41_BIT = 51, - CPUID_SSE42_BIT = 52, - CPUID_MOVBE_BIT = 54, - CPUID_AESNI_BIT = 57, - CPUID_AVX_BIT = 60, - CPUID_RDRAND_BIT = 62 - }; - - static bool x86_processor_flags_has(u64bit bit) - { - return ((x86_processor_flags >> bit) & 1); - } - - static u64bit x86_processor_flags; - static size_t cache_line; - static bool altivec_capable; - }; - -} - -#endif diff --git a/src/botan/src/utils/exceptn.h b/src/botan/src/utils/exceptn.h deleted file mode 100644 index 3797a5478..000000000 --- a/src/botan/src/utils/exceptn.h +++ /dev/null @@ -1,193 +0,0 @@ -/* -* Exceptions -* (C) 1999-2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_EXCEPTION_H__ -#define BOTAN_EXCEPTION_H__ - -#include -#include -#include -#include -#include - -namespace Botan { - -typedef std::runtime_error Exception; -typedef std::invalid_argument Invalid_Argument; - -/** -* Invalid_State Exception -*/ -struct BOTAN_DLL Invalid_State : public Exception - { - Invalid_State(const std::string& err) : - Exception(err) - {} - }; - -/** -* Lookup_Error Exception -*/ -struct BOTAN_DLL Lookup_Error : public Exception - { - Lookup_Error(const std::string& err) : - Exception(err) - {} - }; - -/** -* Internal_Error Exception -*/ -struct BOTAN_DLL Internal_Error : public Exception - { - Internal_Error(const std::string& err) : - Exception("Internal error: " + err) - {} - }; - -/** -* Invalid_Key_Length Exception -*/ -struct BOTAN_DLL Invalid_Key_Length : public Invalid_Argument - { - Invalid_Key_Length(const std::string& name, size_t length) : - Invalid_Argument(name + " cannot accept a key of length " + - to_string(length)) - {} - }; - -/** -* Invalid_Block_Size Exception -*/ -struct BOTAN_DLL Invalid_Block_Size : public Invalid_Argument - { - Invalid_Block_Size(const std::string& mode, - const std::string& pad) : - Invalid_Argument("Padding method " + pad + - " cannot be used with " + mode) - {} - }; - -/** -* Invalid_IV_Length Exception -*/ -struct BOTAN_DLL Invalid_IV_Length : public Invalid_Argument - { - Invalid_IV_Length(const std::string& mode, size_t bad_len) : - Invalid_Argument("IV length " + to_string(bad_len) + - " is invalid for " + mode) - {} - }; - -/** -* PRNG_Unseeded Exception -*/ -struct BOTAN_DLL PRNG_Unseeded : public Invalid_State - { - PRNG_Unseeded(const std::string& algo) : - Invalid_State("PRNG not seeded: " + algo) - {} - }; - -/** -* Policy_Violation Exception -*/ -struct BOTAN_DLL Policy_Violation : public Invalid_State - { - Policy_Violation(const std::string& err) : - Invalid_State("Policy violation: " + err) - {} - }; - -/** -* Algorithm_Not_Found Exception -*/ -struct BOTAN_DLL Algorithm_Not_Found : public Lookup_Error - { - Algorithm_Not_Found(const std::string& name) : - Lookup_Error("Could not find any algorithm named \"" + name + "\"") - {} - }; - -/** -* Invalid_Algorithm_Name Exception -*/ -struct BOTAN_DLL Invalid_Algorithm_Name : public Invalid_Argument - { - Invalid_Algorithm_Name(const std::string& name): - Invalid_Argument("Invalid algorithm name: " + name) - {} - }; - -/** -* Encoding_Error Exception -*/ -struct BOTAN_DLL Encoding_Error : public Invalid_Argument - { - Encoding_Error(const std::string& name) : - Invalid_Argument("Encoding error: " + name) {} - }; - -/** -* Decoding_Error Exception -*/ -struct BOTAN_DLL Decoding_Error : public Invalid_Argument - { - Decoding_Error(const std::string& name) : - Invalid_Argument("Decoding error: " + name) {} - }; - -/** -* Integrity_Failure Exception -*/ -struct BOTAN_DLL Integrity_Failure : public Exception - { - Integrity_Failure(const std::string& msg) : - Exception("Integrity failure: " + msg) {} - }; - -/** -* Invalid_OID Exception -*/ -struct BOTAN_DLL Invalid_OID : public Decoding_Error - { - Invalid_OID(const std::string& oid) : - Decoding_Error("Invalid ASN.1 OID: " + oid) {} - }; - -/** -* Stream_IO_Error Exception -*/ -struct BOTAN_DLL Stream_IO_Error : public Exception - { - Stream_IO_Error(const std::string& err) : - Exception("I/O error: " + err) - {} - }; - -/** -* Self Test Failure Exception -*/ -struct BOTAN_DLL Self_Test_Failure : public Internal_Error - { - Self_Test_Failure(const std::string& err) : - Internal_Error("Self test failed: " + err) - {} - }; - -/** -* Memory Allocation Exception -*/ -struct BOTAN_DLL Memory_Exhaustion : public std::bad_alloc - { - const char* what() const throw() - { return "Ran out of memory, allocation failed"; } - }; - -} - -#endif diff --git a/src/botan/src/utils/get_byte.h b/src/botan/src/utils/get_byte.h deleted file mode 100644 index 6f8ef2632..000000000 --- a/src/botan/src/utils/get_byte.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -* Read out bytes -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_GET_BYTE_H__ -#define BOTAN_GET_BYTE_H__ - -#include - -namespace Botan { - -/** -* Byte extraction -* @param byte_num which byte to extract, 0 == highest byte -* @param input the value to extract from -* @return byte byte_num of input -*/ -template inline byte get_byte(size_t byte_num, T input) - { - return static_cast( - input >> ((sizeof(T)-1-(byte_num&(sizeof(T)-1))) << 3) - ); - } - -} - -#endif diff --git a/src/botan/src/utils/info.txt b/src/botan/src/utils/info.txt deleted file mode 100644 index fcf16bd5a..000000000 --- a/src/botan/src/utils/info.txt +++ /dev/null @@ -1,44 +0,0 @@ -define UTIL_FUNCTIONS - -load_on always - - -assert.cpp -charset.cpp -cpuid.cpp -mlock.cpp -parsing.cpp -time.cpp -ui.cpp -version.cpp - - - -assert.h -bit_ops.h -mlock.h -prefetch.h -rounding.h -stl_util.h -xor_buf.h - - - -bswap.h -charset.h -cpuid.h -exceptn.h -loadstor.h -mem_ops.h -parsing.h -rotate.h -time.h -types.h -ui.h -version.h -get_byte.h - - - -linux,tru64 -> rt - diff --git a/src/botan/src/utils/loadstor.h b/src/botan/src/utils/loadstor.h deleted file mode 100644 index 29e00592a..000000000 --- a/src/botan/src/utils/loadstor.h +++ /dev/null @@ -1,627 +0,0 @@ -/* -* Load/Store Operators -* (C) 1999-2007 Jack Lloyd -* 2007 Yves Jerschow -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_LOAD_STORE_H__ -#define BOTAN_LOAD_STORE_H__ - -#include -#include -#include -#include - -#if BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK - -#if defined(BOTAN_TARGET_CPU_IS_BIG_ENDIAN) - -#define BOTAN_ENDIAN_N2B(x) (x) -#define BOTAN_ENDIAN_B2N(x) (x) - -#define BOTAN_ENDIAN_N2L(x) reverse_bytes(x) -#define BOTAN_ENDIAN_L2N(x) reverse_bytes(x) - -#elif defined(BOTAN_TARGET_CPU_IS_LITTLE_ENDIAN) - -#define BOTAN_ENDIAN_N2L(x) (x) -#define BOTAN_ENDIAN_L2N(x) (x) - -#define BOTAN_ENDIAN_N2B(x) reverse_bytes(x) -#define BOTAN_ENDIAN_B2N(x) reverse_bytes(x) - -#endif - -#endif - -namespace Botan { - -/** -* Make a u16bit from two bytes -* @param i0 the first byte -* @param i1 the second byte -* @return i0 || i1 -*/ -inline u16bit make_u16bit(byte i0, byte i1) - { - return ((static_cast(i0) << 8) | i1); - } - -/** -* Make a u32bit from four bytes -* @param i0 the first byte -* @param i1 the second byte -* @param i2 the third byte -* @param i3 the fourth byte -* @return i0 || i1 || i2 || i3 -*/ -inline u32bit make_u32bit(byte i0, byte i1, byte i2, byte i3) - { - return ((static_cast(i0) << 24) | - (static_cast(i1) << 16) | - (static_cast(i2) << 8) | - (static_cast(i3))); - } - -/** -* Make a u32bit from eight bytes -* @param i0 the first byte -* @param i1 the second byte -* @param i2 the third byte -* @param i3 the fourth byte -* @param i4 the fifth byte -* @param i5 the sixth byte -* @param i6 the seventh byte -* @param i7 the eighth byte -* @return i0 || i1 || i2 || i3 || i4 || i5 || i6 || i7 -*/ -inline u64bit make_u64bit(byte i0, byte i1, byte i2, byte i3, - byte i4, byte i5, byte i6, byte i7) - { - return ((static_cast(i0) << 56) | - (static_cast(i1) << 48) | - (static_cast(i2) << 40) | - (static_cast(i3) << 32) | - (static_cast(i4) << 24) | - (static_cast(i5) << 16) | - (static_cast(i6) << 8) | - (static_cast(i7))); - } - -/** -* Load a big-endian word -* @param in a pointer to some bytes -* @param off an offset into the array -* @return off'th T of in, as a big-endian value -*/ -template -inline T load_be(const byte in[], size_t off) - { - in += off * sizeof(T); - T out = 0; - for(size_t i = 0; i != sizeof(T); ++i) - out = (out << 8) | in[i]; - return out; - } - -/** -* Load a little-endian word -* @param in a pointer to some bytes -* @param off an offset into the array -* @return off'th T of in, as a litte-endian value -*/ -template -inline T load_le(const byte in[], size_t off) - { - in += off * sizeof(T); - T out = 0; - for(size_t i = 0; i != sizeof(T); ++i) - out = (out << 8) | in[sizeof(T)-1-i]; - return out; - } - -/** -* Load a big-endian u16bit -* @param in a pointer to some bytes -* @param off an offset into the array -* @return off'th u16bit of in, as a big-endian value -*/ -template<> -inline u16bit load_be(const byte in[], size_t off) - { -#if BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK - return BOTAN_ENDIAN_N2B(*(reinterpret_cast(in) + off)); -#else - in += off * sizeof(u16bit); - return make_u16bit(in[0], in[1]); -#endif - } - -/** -* Load a little-endian u16bit -* @param in a pointer to some bytes -* @param off an offset into the array -* @return off'th u16bit of in, as a little-endian value -*/ -template<> -inline u16bit load_le(const byte in[], size_t off) - { -#if BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK - return BOTAN_ENDIAN_N2L(*(reinterpret_cast(in) + off)); -#else - in += off * sizeof(u16bit); - return make_u16bit(in[1], in[0]); -#endif - } - -/** -* Load a big-endian u32bit -* @param in a pointer to some bytes -* @param off an offset into the array -* @return off'th u32bit of in, as a big-endian value -*/ -template<> -inline u32bit load_be(const byte in[], size_t off) - { -#if BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK - return BOTAN_ENDIAN_N2B(*(reinterpret_cast(in) + off)); -#else - in += off * sizeof(u32bit); - return make_u32bit(in[0], in[1], in[2], in[3]); -#endif - } - -/** -* Load a little-endian u32bit -* @param in a pointer to some bytes -* @param off an offset into the array -* @return off'th u32bit of in, as a little-endian value -*/ -template<> -inline u32bit load_le(const byte in[], size_t off) - { -#if BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK - return BOTAN_ENDIAN_N2L(*(reinterpret_cast(in) + off)); -#else - in += off * sizeof(u32bit); - return make_u32bit(in[3], in[2], in[1], in[0]); -#endif - } - -/** -* Load a big-endian u64bit -* @param in a pointer to some bytes -* @param off an offset into the array -* @return off'th u64bit of in, as a big-endian value -*/ -template<> -inline u64bit load_be(const byte in[], size_t off) - { -#if BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK - return BOTAN_ENDIAN_N2B(*(reinterpret_cast(in) + off)); -#else - in += off * sizeof(u64bit); - return make_u64bit(in[0], in[1], in[2], in[3], - in[4], in[5], in[6], in[7]); -#endif - } - -/** -* Load a little-endian u64bit -* @param in a pointer to some bytes -* @param off an offset into the array -* @return off'th u64bit of in, as a little-endian value -*/ -template<> -inline u64bit load_le(const byte in[], size_t off) - { -#if BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK - return BOTAN_ENDIAN_N2L(*(reinterpret_cast(in) + off)); -#else - in += off * sizeof(u64bit); - return make_u64bit(in[7], in[6], in[5], in[4], - in[3], in[2], in[1], in[0]); -#endif - } - -/** -* Load two little-endian words -* @param in a pointer to some bytes -* @param x0 where the first word will be written -* @param x1 where the second word will be written -*/ -template -inline void load_le(const byte in[], T& x0, T& x1) - { - x0 = load_le(in, 0); - x1 = load_le(in, 1); - } - -/** -* Load four little-endian words -* @param in a pointer to some bytes -* @param x0 where the first word will be written -* @param x1 where the second word will be written -* @param x2 where the third word will be written -* @param x3 where the fourth word will be written -*/ -template -inline void load_le(const byte in[], - T& x0, T& x1, T& x2, T& x3) - { - x0 = load_le(in, 0); - x1 = load_le(in, 1); - x2 = load_le(in, 2); - x3 = load_le(in, 3); - } - -/** -* Load eight little-endian words -* @param in a pointer to some bytes -* @param x0 where the first word will be written -* @param x1 where the second word will be written -* @param x2 where the third word will be written -* @param x3 where the fourth word will be written -* @param x4 where the fifth word will be written -* @param x5 where the sixth word will be written -* @param x6 where the seventh word will be written -* @param x7 where the eighth word will be written -*/ -template -inline void load_le(const byte in[], - T& x0, T& x1, T& x2, T& x3, - T& x4, T& x5, T& x6, T& x7) - { - x0 = load_le(in, 0); - x1 = load_le(in, 1); - x2 = load_le(in, 2); - x3 = load_le(in, 3); - x4 = load_le(in, 4); - x5 = load_le(in, 5); - x6 = load_le(in, 6); - x7 = load_le(in, 7); - } - -/** -* Load a variable number of little-endian words -* @param out the output array of words -* @param in the input array of bytes -* @param count how many words are in in -*/ -template -inline void load_le(T out[], - const byte in[], - size_t count) - { -#if defined(BOTAN_TARGET_CPU_HAS_KNOWN_ENDIANNESS) - std::memcpy(out, in, sizeof(T)*count); - -#if defined(BOTAN_TARGET_CPU_IS_BIG_ENDIAN) - const size_t blocks = count - (count % 4); - const size_t left = count - blocks; - - for(size_t i = 0; i != blocks; i += 4) - bswap_4(out + i); - - for(size_t i = 0; i != left; ++i) - out[blocks+i] = reverse_bytes(out[blocks+i]); -#endif - -#else - for(size_t i = 0; i != count; ++i) - out[i] = load_le(in, i); -#endif - } - -/** -* Load two big-endian words -* @param in a pointer to some bytes -* @param x0 where the first word will be written -* @param x1 where the second word will be written -*/ -template -inline void load_be(const byte in[], T& x0, T& x1) - { - x0 = load_be(in, 0); - x1 = load_be(in, 1); - } - -/** -* Load four big-endian words -* @param in a pointer to some bytes -* @param x0 where the first word will be written -* @param x1 where the second word will be written -* @param x2 where the third word will be written -* @param x3 where the fourth word will be written -*/ -template -inline void load_be(const byte in[], - T& x0, T& x1, T& x2, T& x3) - { - x0 = load_be(in, 0); - x1 = load_be(in, 1); - x2 = load_be(in, 2); - x3 = load_be(in, 3); - } - -/** -* Load eight big-endian words -* @param in a pointer to some bytes -* @param x0 where the first word will be written -* @param x1 where the second word will be written -* @param x2 where the third word will be written -* @param x3 where the fourth word will be written -* @param x4 where the fifth word will be written -* @param x5 where the sixth word will be written -* @param x6 where the seventh word will be written -* @param x7 where the eighth word will be written -*/ -template -inline void load_be(const byte in[], - T& x0, T& x1, T& x2, T& x3, - T& x4, T& x5, T& x6, T& x7) - { - x0 = load_be(in, 0); - x1 = load_be(in, 1); - x2 = load_be(in, 2); - x3 = load_be(in, 3); - x4 = load_be(in, 4); - x5 = load_be(in, 5); - x6 = load_be(in, 6); - x7 = load_be(in, 7); - } - -/** -* Load a variable number of big-endian words -* @param out the output array of words -* @param in the input array of bytes -* @param count how many words are in in -*/ -template -inline void load_be(T out[], - const byte in[], - size_t count) - { -#if defined(BOTAN_TARGET_CPU_HAS_KNOWN_ENDIANNESS) - std::memcpy(out, in, sizeof(T)*count); - -#if defined(BOTAN_TARGET_CPU_IS_LITTLE_ENDIAN) - const size_t blocks = count - (count % 4); - const size_t left = count - blocks; - - for(size_t i = 0; i != blocks; i += 4) - bswap_4(out + i); - - for(size_t i = 0; i != left; ++i) - out[blocks+i] = reverse_bytes(out[blocks+i]); -#endif - -#else - for(size_t i = 0; i != count; ++i) - out[i] = load_be(in, i); -#endif - } - -/** -* Store a big-endian u16bit -* @param in the input u16bit -* @param out the byte array to write to -*/ -inline void store_be(u16bit in, byte out[2]) - { -#if BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK - *reinterpret_cast(out) = BOTAN_ENDIAN_B2N(in); -#else - out[0] = get_byte(0, in); - out[1] = get_byte(1, in); -#endif - } - -/** -* Store a little-endian u16bit -* @param in the input u16bit -* @param out the byte array to write to -*/ -inline void store_le(u16bit in, byte out[2]) - { -#if BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK - *reinterpret_cast(out) = BOTAN_ENDIAN_L2N(in); -#else - out[0] = get_byte(1, in); - out[1] = get_byte(0, in); -#endif - } - -/** -* Store a big-endian u32bit -* @param in the input u32bit -* @param out the byte array to write to -*/ -inline void store_be(u32bit in, byte out[4]) - { -#if BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK - *reinterpret_cast(out) = BOTAN_ENDIAN_B2N(in); -#else - out[0] = get_byte(0, in); - out[1] = get_byte(1, in); - out[2] = get_byte(2, in); - out[3] = get_byte(3, in); -#endif - } - -/** -* Store a little-endian u32bit -* @param in the input u32bit -* @param out the byte array to write to -*/ -inline void store_le(u32bit in, byte out[4]) - { -#if BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK - *reinterpret_cast(out) = BOTAN_ENDIAN_L2N(in); -#else - out[0] = get_byte(3, in); - out[1] = get_byte(2, in); - out[2] = get_byte(1, in); - out[3] = get_byte(0, in); -#endif - } - -/** -* Store a big-endian u64bit -* @param in the input u64bit -* @param out the byte array to write to -*/ -inline void store_be(u64bit in, byte out[8]) - { -#if BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK - *reinterpret_cast(out) = BOTAN_ENDIAN_B2N(in); -#else - out[0] = get_byte(0, in); - out[1] = get_byte(1, in); - out[2] = get_byte(2, in); - out[3] = get_byte(3, in); - out[4] = get_byte(4, in); - out[5] = get_byte(5, in); - out[6] = get_byte(6, in); - out[7] = get_byte(7, in); -#endif - } - -/** -* Store a little-endian u64bit -* @param in the input u64bit -* @param out the byte array to write to -*/ -inline void store_le(u64bit in, byte out[8]) - { -#if BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK - *reinterpret_cast(out) = BOTAN_ENDIAN_L2N(in); -#else - out[0] = get_byte(7, in); - out[1] = get_byte(6, in); - out[2] = get_byte(5, in); - out[3] = get_byte(4, in); - out[4] = get_byte(3, in); - out[5] = get_byte(2, in); - out[6] = get_byte(1, in); - out[7] = get_byte(0, in); -#endif - } - -/** -* Store two little-endian words -* @param out the output byte array -* @param x0 the first word -* @param x1 the second word -*/ -template -inline void store_le(byte out[], T x0, T x1) - { - store_le(x0, out + (0 * sizeof(T))); - store_le(x1, out + (1 * sizeof(T))); - } - -/** -* Store two big-endian words -* @param out the output byte array -* @param x0 the first word -* @param x1 the second word -*/ -template -inline void store_be(byte out[], T x0, T x1) - { - store_be(x0, out + (0 * sizeof(T))); - store_be(x1, out + (1 * sizeof(T))); - } - -/** -* Store four little-endian words -* @param out the output byte array -* @param x0 the first word -* @param x1 the second word -* @param x2 the third word -* @param x3 the fourth word -*/ -template -inline void store_le(byte out[], T x0, T x1, T x2, T x3) - { - store_le(x0, out + (0 * sizeof(T))); - store_le(x1, out + (1 * sizeof(T))); - store_le(x2, out + (2 * sizeof(T))); - store_le(x3, out + (3 * sizeof(T))); - } - -/** -* Store four big-endian words -* @param out the output byte array -* @param x0 the first word -* @param x1 the second word -* @param x2 the third word -* @param x3 the fourth word -*/ -template -inline void store_be(byte out[], T x0, T x1, T x2, T x3) - { - store_be(x0, out + (0 * sizeof(T))); - store_be(x1, out + (1 * sizeof(T))); - store_be(x2, out + (2 * sizeof(T))); - store_be(x3, out + (3 * sizeof(T))); - } - -/** -* Store eight little-endian words -* @param out the output byte array -* @param x0 the first word -* @param x1 the second word -* @param x2 the third word -* @param x3 the fourth word -* @param x4 the fifth word -* @param x5 the sixth word -* @param x6 the seventh word -* @param x7 the eighth word -*/ -template -inline void store_le(byte out[], T x0, T x1, T x2, T x3, - T x4, T x5, T x6, T x7) - { - store_le(x0, out + (0 * sizeof(T))); - store_le(x1, out + (1 * sizeof(T))); - store_le(x2, out + (2 * sizeof(T))); - store_le(x3, out + (3 * sizeof(T))); - store_le(x4, out + (4 * sizeof(T))); - store_le(x5, out + (5 * sizeof(T))); - store_le(x6, out + (6 * sizeof(T))); - store_le(x7, out + (7 * sizeof(T))); - } - -/** -* Store eight big-endian words -* @param out the output byte array -* @param x0 the first word -* @param x1 the second word -* @param x2 the third word -* @param x3 the fourth word -* @param x4 the fifth word -* @param x5 the sixth word -* @param x6 the seventh word -* @param x7 the eighth word -*/ -template -inline void store_be(byte out[], T x0, T x1, T x2, T x3, - T x4, T x5, T x6, T x7) - { - store_be(x0, out + (0 * sizeof(T))); - store_be(x1, out + (1 * sizeof(T))); - store_be(x2, out + (2 * sizeof(T))); - store_be(x3, out + (3 * sizeof(T))); - store_be(x4, out + (4 * sizeof(T))); - store_be(x5, out + (5 * sizeof(T))); - store_be(x6, out + (6 * sizeof(T))); - store_be(x7, out + (7 * sizeof(T))); - } - -} - -#endif diff --git a/src/botan/src/utils/mem_ops.h b/src/botan/src/utils/mem_ops.h deleted file mode 100644 index fc59c90d6..000000000 --- a/src/botan/src/utils/mem_ops.h +++ /dev/null @@ -1,69 +0,0 @@ -/* -* Memory Operations -* (C) 1999-2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MEMORY_OPS_H__ -#define BOTAN_MEMORY_OPS_H__ - -#include -#include - -namespace Botan { - -/** -* Copy memory -* @param out the destination array -* @param in the source array -* @param n the number of elements of in/out -*/ -template inline void copy_mem(T* out, const T* in, size_t n) - { - std::memmove(out, in, sizeof(T)*n); - } - -/** -* Zeroize memory -* @param ptr a pointer to an array -* @param n the number of Ts pointed to by ptr -*/ -template inline void clear_mem(T* ptr, size_t n) - { - if(n) // avoid glibc warning if n == 0 - std::memset(ptr, 0, sizeof(T)*n); - } - -/** -* Set memory to a fixed value -* @param ptr a pointer to an array -* @param n the number of Ts pointed to by ptr -* @param val the value to set each byte to -*/ -template -inline void set_mem(T* ptr, size_t n, byte val) - { - std::memset(ptr, val, sizeof(T)*n); - } - -/** -* Memory comparison, input insensitive -* @param p1 a pointer to an array -* @param p2 a pointer to another array -* @param n the number of Ts in p1 and p2 -* @return true iff p1[i] == p2[i] forall i in [0...n) -*/ -template inline bool same_mem(const T* p1, const T* p2, size_t n) - { - bool is_same = true; - - for(size_t i = 0; i != n; ++i) - is_same &= (p1[i] == p2[i]); - - return is_same; - } - -} - -#endif diff --git a/src/botan/src/utils/mlock.cpp b/src/botan/src/utils/mlock.cpp deleted file mode 100644 index 800425665..000000000 --- a/src/botan/src/utils/mlock.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -* Memory Locking Functions -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include - -#if defined(BOTAN_TARGET_OS_HAS_POSIX_MLOCK) - #include - #include -#elif defined(BOTAN_TARGET_OS_HAS_WIN32_VIRTUAL_LOCK) - #include -#endif - -namespace Botan { - -bool has_mlock() - { - byte buf[4096]; - if(!lock_mem(&buf, sizeof(buf))) - return false; - unlock_mem(&buf, sizeof(buf)); - return true; - } - -/* -* Lock an area of memory into RAM -*/ -bool lock_mem(void* ptr, size_t bytes) - { -#if defined(BOTAN_TARGET_OS_HAS_POSIX_MLOCK) - return (::mlock(static_cast(ptr), bytes) == 0); -#elif defined(BOTAN_TARGET_OS_HAS_WIN32_VIRTUAL_LOCK) - return (::VirtualLock(ptr, bytes) != 0); -#else - return false; -#endif - } - -/* -* Unlock a previously locked region of memory -*/ -void unlock_mem(void* ptr, size_t bytes) - { -#if defined(BOTAN_TARGET_OS_HAS_POSIX_MLOCK) - ::munlock(static_cast(ptr), bytes); -#elif defined(BOTAN_TARGET_OS_HAS_WIN32_VIRTUAL_LOCK) - ::VirtualUnlock(ptr, bytes); -#endif - } - -} diff --git a/src/botan/src/utils/mlock.h b/src/botan/src/utils/mlock.h deleted file mode 100644 index 88788472d..000000000 --- a/src/botan/src/utils/mlock.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -* Memory Locking Functions -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_MLOCK_H__ -#define BOTAN_MLOCK_H__ - -#include - -namespace Botan { - -/** -* Check if we can at least potentially lock memory -*/ -bool has_mlock(); - -/** -* Lock memory into RAM if possible -* @param addr the start of the memory block -* @param length the length of the memory block in bytes -* @returns true if successful, false otherwise -*/ -bool lock_mem(void* addr, size_t length); - -/** -* Unlock memory locked with lock_mem() -* @param addr the start of the memory block -* @param length the length of the memory block in bytes -*/ -void unlock_mem(void* addr, size_t length); - -} - -#endif diff --git a/src/botan/src/utils/parsing.cpp b/src/botan/src/utils/parsing.cpp deleted file mode 100644 index 9ec00040c..000000000 --- a/src/botan/src/utils/parsing.cpp +++ /dev/null @@ -1,291 +0,0 @@ -/* -* Parser Functions -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include - -namespace Botan { - -/* -* Convert a string into an integer -*/ -u32bit to_u32bit(const std::string& number) - { - u32bit n = 0; - - for(std::string::const_iterator i = number.begin(); i != number.end(); ++i) - { - const u32bit OVERFLOW_MARK = 0xFFFFFFFF / 10; - - if(*i == ' ') - continue; - - byte digit = Charset::char2digit(*i); - - if((n > OVERFLOW_MARK) || (n == OVERFLOW_MARK && digit > 5)) - throw Decoding_Error("to_u32bit: Integer overflow"); - n *= 10; - n += digit; - } - return n; - } - -/* -* Convert an integer into a string -*/ -std::string to_string(u64bit n, size_t min_len) - { - std::string lenstr; - if(n) - { - while(n > 0) - { - lenstr = Charset::digit2char(n % 10) + lenstr; - n /= 10; - } - } - else - lenstr = "0"; - - while(lenstr.size() < min_len) - lenstr = "0" + lenstr; - - return lenstr; - } - -/* -* Convert a string into a time duration -*/ -u32bit timespec_to_u32bit(const std::string& timespec) - { - if(timespec == "") - return 0; - - const char suffix = timespec[timespec.size()-1]; - std::string value = timespec.substr(0, timespec.size()-1); - - u32bit scale = 1; - - if(Charset::is_digit(suffix)) - value += suffix; - else if(suffix == 's') - scale = 1; - else if(suffix == 'm') - scale = 60; - else if(suffix == 'h') - scale = 60 * 60; - else if(suffix == 'd') - scale = 24 * 60 * 60; - else if(suffix == 'y') - scale = 365 * 24 * 60 * 60; - else - throw Decoding_Error("timespec_to_u32bit: Bad input " + timespec); - - return scale * to_u32bit(value); - } - -/* -* Parse a SCAN-style algorithm name -*/ -std::vector parse_algorithm_name(const std::string& namex) - { - if(namex.find('(') == std::string::npos && - namex.find(')') == std::string::npos) - return std::vector(1, namex); - - std::string name = namex, substring; - std::vector elems; - size_t level = 0; - - elems.push_back(name.substr(0, name.find('('))); - name = name.substr(name.find('(')); - - for(std::string::const_iterator i = name.begin(); i != name.end(); ++i) - { - char c = *i; - - if(c == '(') - ++level; - if(c == ')') - { - if(level == 1 && i == name.end() - 1) - { - if(elems.size() == 1) - elems.push_back(substring.substr(1)); - else - elems.push_back(substring); - return elems; - } - - if(level == 0 || (level == 1 && i != name.end() - 1)) - throw Invalid_Algorithm_Name(namex); - --level; - } - - if(c == ',' && level == 1) - { - if(elems.size() == 1) - elems.push_back(substring.substr(1)); - else - elems.push_back(substring); - substring.clear(); - } - else - substring += c; - } - - if(substring != "") - throw Invalid_Algorithm_Name(namex); - - return elems; - } - -/* -* Split the string on slashes -*/ -std::vector split_on(const std::string& str, char delim) - { - std::vector elems; - if(str == "") return elems; - - std::string substr; - for(std::string::const_iterator i = str.begin(); i != str.end(); ++i) - { - if(*i == delim) - { - if(substr != "") - elems.push_back(substr); - substr.clear(); - } - else - substr += *i; - } - - if(substr == "") - throw Invalid_Argument("Unable to split string: " + str); - elems.push_back(substr); - - return elems; - } - -/* -* Parse an ASN.1 OID string -*/ -std::vector parse_asn1_oid(const std::string& oid) - { - std::string substring; - std::vector oid_elems; - - for(std::string::const_iterator i = oid.begin(); i != oid.end(); ++i) - { - char c = *i; - - if(c == '.') - { - if(substring == "") - throw Invalid_OID(oid); - oid_elems.push_back(to_u32bit(substring)); - substring.clear(); - } - else - substring += c; - } - - if(substring == "") - throw Invalid_OID(oid); - oid_elems.push_back(to_u32bit(substring)); - - if(oid_elems.size() < 2) - throw Invalid_OID(oid); - - return oid_elems; - } - -/* -* X.500 String Comparison -*/ -bool x500_name_cmp(const std::string& name1, const std::string& name2) - { - std::string::const_iterator p1 = name1.begin(); - std::string::const_iterator p2 = name2.begin(); - - while((p1 != name1.end()) && Charset::is_space(*p1)) ++p1; - while((p2 != name2.end()) && Charset::is_space(*p2)) ++p2; - - while(p1 != name1.end() && p2 != name2.end()) - { - if(Charset::is_space(*p1)) - { - if(!Charset::is_space(*p2)) - return false; - - while((p1 != name1.end()) && Charset::is_space(*p1)) ++p1; - while((p2 != name2.end()) && Charset::is_space(*p2)) ++p2; - - if(p1 == name1.end() && p2 == name2.end()) - return true; - } - - if(!Charset::caseless_cmp(*p1, *p2)) - return false; - ++p1; - ++p2; - } - - while((p1 != name1.end()) && Charset::is_space(*p1)) ++p1; - while((p2 != name2.end()) && Charset::is_space(*p2)) ++p2; - - if((p1 != name1.end()) || (p2 != name2.end())) - return false; - return true; - } - -/* -* Convert a decimal-dotted string to binary IP -*/ -u32bit string_to_ipv4(const std::string& str) - { - std::vector parts = split_on(str, '.'); - - if(parts.size() != 4) - throw Decoding_Error("Invalid IP string " + str); - - u32bit ip = 0; - - for(size_t i = 0; i != parts.size(); ++i) - { - u32bit octet = to_u32bit(parts[i]); - - if(octet > 255) - throw Decoding_Error("Invalid IP string " + str); - - ip = (ip << 8) | (octet & 0xFF); - } - - return ip; - } - -/* -* Convert an IP address to decimal-dotted string -*/ -std::string ipv4_to_string(u32bit ip) - { - std::string str; - - for(size_t i = 0; i != sizeof(ip); ++i) - { - if(i) - str += "."; - str += to_string(get_byte(i, ip)); - } - - return str; - } - -} diff --git a/src/botan/src/utils/parsing.h b/src/botan/src/utils/parsing.h deleted file mode 100644 index 12370bf2b..000000000 --- a/src/botan/src/utils/parsing.h +++ /dev/null @@ -1,88 +0,0 @@ -/* -* Parser Functions -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_PARSER_H__ -#define BOTAN_PARSER_H__ - -#include -#include -#include - -namespace Botan { - -/** -* Parse a SCAN-style algorithm name -* @param scan_name the name -* @return the name components -*/ -BOTAN_DLL std::vector -parse_algorithm_name(const std::string& scan_name); - -/** -* Split a string -* @param str the input string -* @param delim the delimitor -* @return string split by delim -*/ -BOTAN_DLL std::vector split_on( - const std::string& str, char delim); - -/** -* Parse an ASN.1 OID -* @param oid the OID in string form -* @return OID components -*/ -BOTAN_DLL std::vector parse_asn1_oid(const std::string& oid); - -/** -* Compare two names using the X.509 comparison algorithm -* @param name1 the first name -* @param name2 the second name -* @return true if name1 is the same as name2 by the X.509 comparison rules -*/ -BOTAN_DLL bool x500_name_cmp(const std::string& name1, - const std::string& name2); - -/** -* Convert a number to a string -* @param n the integer to convert to a string -* @param min_len the min length of the output string -* @return n convert to a string -*/ -BOTAN_DLL std::string to_string(u64bit n, size_t min_len = 0); - -/** -* Convert a string to a number -* @param str the string to convert -* @return number value of the string -*/ -BOTAN_DLL u32bit to_u32bit(const std::string& str); - -/** -* Convert a time specification to a number -* @param timespec the time specification -* @return number of seconds represented by timespec -*/ -BOTAN_DLL u32bit timespec_to_u32bit(const std::string& timespec); - -/** -* Convert a string representation of an IPv4 address to a number -* @param ip_str the string representation -* @return integer IPv4 address -*/ -BOTAN_DLL u32bit string_to_ipv4(const std::string& ip_str); - -/** -* Convert an IPv4 address to a string -* @param ip_addr the IPv4 address to convert -* @return string representation of the IPv4 address -*/ -BOTAN_DLL std::string ipv4_to_string(u32bit ip_addr); - -} - -#endif diff --git a/src/botan/src/utils/prefetch.h b/src/botan/src/utils/prefetch.h deleted file mode 100644 index 66024e5ce..000000000 --- a/src/botan/src/utils/prefetch.h +++ /dev/null @@ -1,39 +0,0 @@ -/* -* Prefetching Operations -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_PREFETCH_H__ -#define BOTAN_PREFETCH_H__ - -#include - -namespace Botan { - -template -inline void prefetch_readonly(const T* addr, size_t length) - { -#if defined(__GNUG__) - const size_t Ts_per_cache_line = CPUID::cache_line_size() / sizeof(T); - - for(size_t i = 0; i <= length; i += Ts_per_cache_line) - __builtin_prefetch(addr + i, 0); -#endif - } - -template -inline void prefetch_readwrite(const T* addr, size_t length) - { -#if defined(__GNUG__) - const size_t Ts_per_cache_line = CPUID::cache_line_size() / sizeof(T); - - for(size_t i = 0; i <= length; i += Ts_per_cache_line) - __builtin_prefetch(addr + i, 1); -#endif - } - -} - -#endif diff --git a/src/botan/src/utils/rotate.h b/src/botan/src/utils/rotate.h deleted file mode 100644 index 2593010b4..000000000 --- a/src/botan/src/utils/rotate.h +++ /dev/null @@ -1,43 +0,0 @@ -/* -* Word Rotation Operations -* (C) 1999-2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_WORD_ROTATE_H__ -#define BOTAN_WORD_ROTATE_H__ - -#include - -namespace Botan { - -/** -* Bit rotation left -* @param input the input word -* @param rot the number of bits to rotate -* @return input rotated left by rot bits -*/ -template inline T rotate_left(T input, size_t rot) - { - if(rot == 0) - return input; - return static_cast((input << rot) | (input >> (8*sizeof(T)-rot)));; - } - -/** -* Bit rotation right -* @param input the input word -* @param rot the number of bits to rotate -* @return input rotated right by rot bits -*/ -template inline T rotate_right(T input, size_t rot) - { - if(rot == 0) - return input; - return static_cast((input >> rot) | (input << (8*sizeof(T)-rot))); - } - -} - -#endif diff --git a/src/botan/src/utils/rounding.h b/src/botan/src/utils/rounding.h deleted file mode 100644 index c77ab9b52..000000000 --- a/src/botan/src/utils/rounding.h +++ /dev/null @@ -1,43 +0,0 @@ -/* -* Integer Rounding Functions -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_ROUNDING_H__ -#define BOTAN_ROUNDING_H__ - -#include - -namespace Botan { - -/** -* Round up -* @param n an integer -* @param align_to the alignment boundary -* @return n rounded up to a multiple of align_to -*/ -template -inline T round_up(T n, T align_to) - { - if(n % align_to || n == 0) - n += align_to - (n % align_to); - return n; - } - -/** -* Round down -* @param n an integer -* @param align_to the alignment boundary -* @return n rounded down to a multiple of align_to -*/ -template -inline T round_down(T n, T align_to) - { - return (n - (n % align_to)); - } - -} - -#endif diff --git a/src/botan/src/utils/stl_util.h b/src/botan/src/utils/stl_util.h deleted file mode 100644 index 0e0617d5b..000000000 --- a/src/botan/src/utils/stl_util.h +++ /dev/null @@ -1,89 +0,0 @@ -/* -* STL Utility Functions -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_STL_UTIL_H__ -#define BOTAN_STL_UTIL_H__ - -#include - -namespace Botan { - -/** -* Copy-on-Predicate Algorithm -* @param current the first iterator value -* @param end the final iterator value -* @param dest an output iterator -* @param copy_p the predicate -*/ -template -OutputIterator copy_if(InputIterator current, InputIterator end, - OutputIterator dest, Predicate copy_p) - { - while(current != end) - { - if(copy_p(*current)) - *dest++ = *current; - ++current; - } - return dest; - } - -/** -* Searching through a std::map -* @param mapping the map to search -* @param key is what to look for -* @param null_result is the value to return if key is not in mapping -* @return mapping[key] or null_result -*/ -template -inline V search_map(const std::map& mapping, - const K& key, - const V& null_result = V()) - { - typename std::map::const_iterator i = mapping.find(key); - if(i == mapping.end()) - return null_result; - return i->second; - } - -/** -* Function adaptor for delete operation -*/ -template -class del_fun : public std::unary_function - { - public: - void operator()(T* ptr) { delete ptr; } - }; - -/** -* Delete the second half of a pair of objects -*/ -template -void delete2nd(Pair& pair) - { - delete pair.second; - } - -/** -* Insert a key/value pair into a multimap -*/ -template -void multimap_insert(std::multimap& multimap, - const K& key, const V& value) - { -#if defined(BOTAN_BUILD_COMPILER_IS_SUN_STUDIO) - // Work around a strange bug in Sun Studio - multimap.insert(std::make_pair(key, value)); -#else - multimap.insert(std::make_pair(key, value)); -#endif - } - -} - -#endif diff --git a/src/botan/src/utils/time.cpp b/src/botan/src/utils/time.cpp deleted file mode 100644 index 65e808c04..000000000 --- a/src/botan/src/utils/time.cpp +++ /dev/null @@ -1,125 +0,0 @@ -/* -* Time Functions -* (C) 1999-2010 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -#if defined(BOTAN_TARGET_OS_HAS_WIN32_GET_SYSTEMTIME) - #include -#endif - -#if defined(BOTAN_TARGET_OS_HAS_GETTIMEOFDAY) - #include -#endif - -#if defined(BOTAN_TARGET_OS_HAS_CLOCK_GETTIME) - - #ifndef _POSIX_C_SOURCE - #define _POSIX_C_SOURCE 199309 - #endif - - #include - - #ifndef CLOCK_REALTIME - #define CLOCK_REALTIME 0 - #endif - -#endif - -namespace Botan { - -namespace { - -/* -* Combine a two time values into a single one -*/ -u64bit combine_timers(u32bit seconds, u32bit parts, u32bit parts_hz) - { - static const u64bit NANOSECONDS_UNITS = 1000000000; - - u64bit res = seconds * NANOSECONDS_UNITS; - res += parts * (NANOSECONDS_UNITS / parts_hz); - return res; - } - -std::tm do_gmtime(time_t time_val) - { - std::tm tm; - -#if defined(BOTAN_TARGET_OS_HAS_GMTIME_S) - gmtime_s(&tm, &time_val); // Windows -#elif defined(BOTAN_TARGET_OS_HAS_GMTIME_R) - gmtime_r(&time_val, &tm); // Unix/SUSv2 -#else - std::tm* tm_p = std::gmtime(&time_val); - if (tm_p == 0) - throw Encoding_Error("time_t_to_tm could not convert"); - tm = *tm_p; -#endif - - return tm; - } - -} - -/* -* Get the system clock -*/ -u64bit system_time() - { - return static_cast(std::time(0)); - } - -/* -* Convert a time_point to a calendar_point -*/ -calendar_point calendar_value(u64bit a_time_t) - { - std::tm tm = do_gmtime(static_cast(a_time_t)); - - return calendar_point(tm.tm_year + 1900, - tm.tm_mon + 1, - tm.tm_mday, - tm.tm_hour, - tm.tm_min, - tm.tm_sec); - } - -u64bit get_nanoseconds_clock() - { -#if defined(BOTAN_TARGET_OS_HAS_CLOCK_GETTIME) - - struct ::timespec tv; - ::clock_gettime(CLOCK_REALTIME, &tv); - return combine_timers(tv.tv_sec, tv.tv_nsec, 1000000000); - -#elif defined(BOTAN_TARGET_OS_HAS_GETTIMEOFDAY) - - struct ::timeval tv; - ::gettimeofday(&tv, 0); - return combine_timers(tv.tv_sec, tv.tv_usec, 1000000); - -#elif defined(BOTAN_TARGET_OS_HAS_WIN32_GET_SYSTEMTIME) - - // Returns time since January 1, 1601 in 100-ns increments - ::FILETIME tv; - ::GetSystemTimeAsFileTime(&tv); - u64bit tstamp = (static_cast(tv.dwHighDateTime) << 32) | - tv.dwLowDateTime; - - return (tstamp * 100); // Scale to 1 nanosecond units - -#else - - return combine_timers(static_cast(std::time(0)), - std::clock(), CLOCKS_PER_SEC); - -#endif - } - -} diff --git a/src/botan/src/utils/time.h b/src/botan/src/utils/time.h deleted file mode 100644 index fcc956df2..000000000 --- a/src/botan/src/utils/time.h +++ /dev/null @@ -1,71 +0,0 @@ -/* -* Time Functions -* (C) 1999-2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_TIME_H__ -#define BOTAN_TIME_H__ - -#include - -namespace Botan { - -/** -* Struct representing a particular date and time -*/ -struct BOTAN_DLL calendar_point - { - /** The year */ - u32bit year; - - /** The month, 1 through 12 for Jan to Dec */ - byte month; - - /** The day of the month, 1 through 31 (or 28 or 30 based on month */ - byte day; - - /** Hour in 24-hour form, 0 to 23 */ - byte hour; - - /** Minutes in the hour, 0 to 60 */ - byte minutes; - - /** Seconds in the minute, 0 to 60, but might be slightly - larger to deal with leap seconds on some systems - */ - byte seconds; - - /** - * Initialize a calendar_point - * @param y the year - * @param mon the month - * @param d the day - * @param h the hour - * @param min the minute - * @param sec the second - */ - calendar_point(u32bit y, byte mon, byte d, byte h, byte min, byte sec) : - year(y), month(mon), day(d), hour(h), minutes(min), seconds(sec) {} - }; - -/** -* @param time_point a time point from the system clock -* @return calendar_point object representing this time point -*/ -BOTAN_DLL calendar_point calendar_value(u64bit time_point); - -/** -* @return seconds resolution timestamp, unknown epoch -*/ -BOTAN_DLL u64bit system_time(); - -/** -* @return nanoseconds resolution timestamp, unknown epoch -*/ -BOTAN_DLL u64bit get_nanoseconds_clock(); - -} - -#endif diff --git a/src/botan/src/utils/types.h b/src/botan/src/utils/types.h deleted file mode 100644 index 61a55368c..000000000 --- a/src/botan/src/utils/types.h +++ /dev/null @@ -1,66 +0,0 @@ -/* -* Low Level Types -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_TYPES_H__ -#define BOTAN_TYPES_H__ - -#include -#include - -/** -* The primary namespace for the botan library -*/ -namespace Botan { - -/** -* Typedef representing an unsigned 8-bit quantity -*/ -typedef unsigned char byte; - -/** -* Typedef representing an unsigned 16-bit quantity -*/ -typedef unsigned short u16bit; - -/** -* Typedef representing an unsigned 32-bit quantity -*/ -typedef unsigned int u32bit; - -/** -* Typedef representing a signed 32-bit quantity -*/ -typedef signed int s32bit; - -/** -* Typedef representing an unsigned 64-bit quantity -*/ -#if defined(_MSC_VER) || defined(__BORLANDC__) - typedef unsigned __int64 u64bit; -#elif defined(__KCC) - typedef unsigned __long_long u64bit; -#elif defined(__GNUG__) - __extension__ typedef unsigned long long u64bit; -#else - typedef unsigned long long u64bit; -#endif - -/** -* A default buffer size; typically a memory page -*/ -static const size_t DEFAULT_BUFFERSIZE = BOTAN_DEFAULT_BUFFER_SIZE; - -} - -namespace Botan_types { - -using Botan::byte; -using Botan::u32bit; - -} - -#endif diff --git a/src/botan/src/utils/ui.cpp b/src/botan/src/utils/ui.cpp deleted file mode 100644 index e6c3430ff..000000000 --- a/src/botan/src/utils/ui.cpp +++ /dev/null @@ -1,36 +0,0 @@ -/* -* User Interface -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include - -namespace Botan { - -/* -* Get a passphrase from the user -*/ -std::string User_Interface::get_passphrase(const std::string&, - const std::string&, - UI_Result& action) const - { - action = OK; - - if(!first_try) - action = CANCEL_ACTION; - - return preset_passphrase; - } - -/* -* User_Interface Constructor -*/ -User_Interface::User_Interface(const std::string& preset) : - preset_passphrase(preset) - { - first_try = true; - } - -} diff --git a/src/botan/src/utils/ui.h b/src/botan/src/utils/ui.h deleted file mode 100644 index f69bb2c6d..000000000 --- a/src/botan/src/utils/ui.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -* User Interface -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_UI_H__ -#define BOTAN_UI_H__ - -#include -#include - -namespace Botan { - -/** -* User Interface -* Only really used for callbacks for PKCS #8 decryption -*/ -class BOTAN_DLL User_Interface - { - public: - enum UI_Result { OK, CANCEL_ACTION }; - - virtual std::string get_passphrase(const std::string&, - const std::string&, - UI_Result&) const; - User_Interface(const std::string& = ""); - virtual ~User_Interface() {} - protected: - std::string preset_passphrase; - mutable bool first_try; - }; - -} - -#endif diff --git a/src/botan/src/utils/version.cpp b/src/botan/src/utils/version.cpp deleted file mode 100644 index d886587fd..000000000 --- a/src/botan/src/utils/version.cpp +++ /dev/null @@ -1,53 +0,0 @@ -/* -* Version Information -* (C) 1999-2011 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include - -namespace Botan { - -/* - These are intentionally compiled rather than inlined, so an - application running against a shared library can test the true - version they are running against. -*/ - -/* -* Return the version as a string -*/ -std::string version_string() - { -#define QUOTE(name) #name -#define STR(macro) QUOTE(macro) - - return "Botan " STR(BOTAN_VERSION_MAJOR) "." - STR(BOTAN_VERSION_MINOR) "." - STR(BOTAN_VERSION_PATCH) " (" - -#if (BOTAN_VERSION_DATESTAMP == 0) - "unreleased version" -#else - "released " STR(BOTAN_VERSION_DATESTAMP) -#endif - ", revision " BOTAN_VERSION_VC_REVISION - ", distribution " BOTAN_DISTRIBUTION_INFO ")"; - -#undef STR -#undef QUOTE - } - -u32bit version_datestamp() { return BOTAN_VERSION_DATESTAMP; } - -/* -* Return parts of the version as integers -*/ -u32bit version_major() { return BOTAN_VERSION_MAJOR; } -u32bit version_minor() { return BOTAN_VERSION_MINOR; } -u32bit version_patch() { return BOTAN_VERSION_PATCH; } - -} diff --git a/src/botan/src/utils/version.h b/src/botan/src/utils/version.h deleted file mode 100644 index 219c261a5..000000000 --- a/src/botan/src/utils/version.h +++ /dev/null @@ -1,72 +0,0 @@ -/* -* Version Information -* (C) 1999-2011 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_VERSION_H__ -#define BOTAN_VERSION_H__ - -#include -#include - -namespace Botan { - -/* -* Get information describing the version -*/ - -/** -* Get a human-readable string identifying the version of Botan. -* No particular format should be assumed. -* @return version string -*/ -BOTAN_DLL std::string version_string(); - -/** -* Return the date this version of botan was released, in an integer of -* the form YYYYMMDD. For instance a version released on May 21, 2013 -* would return the integer 20130521. If the currently running version -* is not an official release, this function will return 0 instead. -* -* @return release date, or zero if unreleased -*/ -BOTAN_DLL u32bit version_datestamp(); - -/** -* Get the major version number. -* @return major version number -*/ -BOTAN_DLL u32bit version_major(); - -/** -* Get the minor version number. -* @return minor version number -*/ -BOTAN_DLL u32bit version_minor(); - -/** -* Get the patch number. -* @return patch number -*/ -BOTAN_DLL u32bit version_patch(); - -/* -* Macros for compile-time version checks -*/ -#define BOTAN_VERSION_CODE_FOR(a,b,c) ((a << 16) | (b << 8) | (c)) - -/** -* Compare using BOTAN_VERSION_CODE_FOR, as in -* # if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,8,0) -* # error "Botan version too old" -* # endif -*/ -#define BOTAN_VERSION_CODE BOTAN_VERSION_CODE_FOR(BOTAN_VERSION_MAJOR, \ - BOTAN_VERSION_MINOR, \ - BOTAN_VERSION_PATCH) - -} - -#endif diff --git a/src/botan/src/utils/xor_buf.h b/src/botan/src/utils/xor_buf.h deleted file mode 100644 index 3c96dea70..000000000 --- a/src/botan/src/utils/xor_buf.h +++ /dev/null @@ -1,75 +0,0 @@ -/* -* XOR operations -* (C) 1999-2008 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_XOR_BUF_H__ -#define BOTAN_XOR_BUF_H__ - -#include - -namespace Botan { - -/** -* XOR arrays. Postcondition out[i] = in[i] ^ out[i] forall i = 0...length -* @param out the input/output buffer -* @param in the read-only input buffer -* @param length the length of the buffers -*/ -inline void xor_buf(byte out[], const byte in[], size_t length) - { - while(length >= 8) - { -#if BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK - *reinterpret_cast(out) ^= *reinterpret_cast(in); -#else - out[0] ^= in[0]; out[1] ^= in[1]; - out[2] ^= in[2]; out[3] ^= in[3]; - out[4] ^= in[4]; out[5] ^= in[5]; - out[6] ^= in[6]; out[7] ^= in[7]; -#endif - - out += 8; in += 8; length -= 8; - } - - for(size_t i = 0; i != length; ++i) - out[i] ^= in[i]; - } - -/** -* XOR arrays. Postcondition out[i] = in[i] ^ in2[i] forall i = 0...length -* @param out the output buffer -* @param in the first input buffer -* @param in2 the second output buffer -* @param length the length of the three buffers -*/ -inline void xor_buf(byte out[], - const byte in[], - const byte in2[], - size_t length) - { - while(length >= 8) - { -#if BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK - *reinterpret_cast(out) = - *reinterpret_cast(in) ^ - *reinterpret_cast(in2); -#else - out[0] = in[0] ^ in2[0]; out[1] = in[1] ^ in2[1]; - out[2] = in[2] ^ in2[2]; out[3] = in[3] ^ in2[3]; - out[4] = in[4] ^ in2[4]; out[5] = in[5] ^ in2[5]; - out[6] = in[6] ^ in2[6]; out[7] = in[7] ^ in2[7]; -#endif - - in += 8; in2 += 8; out += 8; length -= 8; - } - - for(size_t i = 0; i != length; ++i) - out[i] = in[i] ^ in2[i]; - } - -} - -#endif diff --git a/src/botan/src/wrap/perl-xs/Botan.pm b/src/botan/src/wrap/perl-xs/Botan.pm deleted file mode 100644 index ac4ad91fb..000000000 --- a/src/botan/src/wrap/perl-xs/Botan.pm +++ /dev/null @@ -1,117 +0,0 @@ -package Botan; - -use strict; -use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $AUTOLOAD); - -require DynaLoader; -require AutoLoader; -use Carp; - -@ISA = qw(DynaLoader); -$VERSION = '0.01'; - -@EXPORT_OK = qw( - NONE - IGNORE_WS - FULL_CHECK -); - -%EXPORT_TAGS = ( - 'all' => [ @EXPORT_OK ], - 'decoder_checking' => [ qw( - NONE - IGNORE_WS - FULL_CHECK - )], - -); - - -sub AUTOLOAD -{ - # This AUTOLOAD is used to 'autoload' constants from the constant() - # XS function. If a constant is not found then control is passed - # to the AUTOLOAD in AutoLoader. - - my $constname = $AUTOLOAD; - $constname =~ s/.*:://; - croak '& not defined' if $constname eq 'constant'; -# my $val = constant($constname, @_ ? $_[0] : 0); - my $val = constant($constname); - if ($! != 0) { - if ( $! =~ /Invalid/ ) - { - $AutoLoader::AUTOLOAD = $AUTOLOAD; - goto &AutoLoader::AUTOLOAD; - } - else - { - croak "Your vendor has not defined Botan symbol $constname"; - } - } - no strict 'refs'; - *$AUTOLOAD = sub { $val }; - goto &$AUTOLOAD; -} - - -bootstrap Botan $VERSION; - -# to setup inheritance... - -package Botan::Filter; -use vars qw(@ISA); -@ISA = qw(); - -package Botan::Chain; -use vars qw(@ISA); -@ISA = qw( Botan::Filter ); - -package Botan::Fork; -use vars qw(@ISA); -@ISA = qw( Botan::Filter ); - -package Botan::Hex_Encoder; -use vars qw(@ISA); -@ISA = qw( Botan::Filter ); - -package Botan::Hex_Decoder; -use vars qw(@ISA); -@ISA = qw( Botan::Filter ); - -package Botan::Base64_Decoder; -use vars qw(@ISA); -@ISA = qw( Botan::Filter ); - -package Botan::Base64_Encoder; -use vars qw(@ISA); -@ISA = qw( Botan::Filter ); - - -package Botan; - -1; -__END__ - -=head1 NAME - -Botan - Perl extension for access to Botan ... - -=head1 SYNOPSIS - - use Botan; - blah blah blah - -=head1 DESCRIPTION - -Blah blah blah. - -=head1 AUTHOR - -Vaclav Ovsik - -=head1 SEE ALSO - -Bla - -=cut diff --git a/src/botan/src/wrap/perl-xs/Botan.xs b/src/botan/src/wrap/perl-xs/Botan.xs deleted file mode 100644 index fc0c00ff5..000000000 --- a/src/botan/src/wrap/perl-xs/Botan.xs +++ /dev/null @@ -1,827 +0,0 @@ -#ifdef __cplusplus -extern "C" { -#endif - -#include "EXTERN.h" -#include "perl.h" -#include "XSUB.h" - -#ifdef __cplusplus -} -#endif - -#include -#include -#include -#include -#include -#include -#include - - -/* xsubpp converts ':' to '_' in typemap. We create our types without ':' */ - -typedef Botan::ASN1_String Botan__ASN1_String; -typedef Botan::AlgorithmIdentifier Botan__AlgorithmIdentifier; -typedef Botan::AlternativeName Botan__AlternativeName; -typedef Botan::Attribute Botan__Attribute; -typedef Botan::Base64_Decoder Botan__Base64_Decoder; -typedef Botan::Base64_Encoder Botan__Base64_Encoder; -typedef Botan::Chain Botan__Chain; -typedef Botan::Certificate_Extension Botan__Extension; -typedef Botan::Filter Botan__Filter; -typedef Botan::Fork Botan__Fork; -typedef Botan::Hex_Decoder Botan__Hex_Decoder; -typedef Botan::Hex_Encoder Botan__Hex_Encoder; -typedef Botan::OID Botan__OID; -typedef Botan::Pipe Botan__Pipe; -typedef Botan::X509_Certificate Botan__X509_Certificate; -typedef Botan::X509_DN Botan__X509_DN; -typedef Botan::X509_Time Botan__X509_Time; -typedef Botan::u32bit Botan__u32bit; - - -/* Types to keep track of destruction C++ objects passed - * into other objects... - * An Botan object is deleted by his parent object into which is passed, - * e.g. some Filter is deleted when his Pipe is destructed. We must - * track this and not to delete object again in Perls destructor. - */ - -class ObjectInfo -{ -private: - I32 d_signature; - bool d_del; -public: - static I32 const SIGNVAL = 0x696a626f; - ObjectInfo() : d_signature(SIGNVAL), - d_del(true) {}; - ~ObjectInfo() {}; - void set_delete(bool del = true) { d_del = del; }; - void set_delete_no() { set_delete(false); }; - void set_delete_yes() { set_delete(true); }; - bool should_delete() const { return d_del; }; -}; - -/* Constant object in initial state - template */ - -ObjectInfo const oi_init; - - -/* Botan library initializer ... */ - -Botan::LibraryInitializer botan_init; - - - -/*============================================================================*/ - -MODULE = Botan PACKAGE = Botan - -PROTOTYPES: ENABLE - -void -constant(char *name) - CODE: - using namespace Botan; - errno = 0; - switch (name[0]) - { - case 'F': - if ( strEQ(name, "FULL_CHECK") ) - XSRETURN_IV( FULL_CHECK ); // Decoder_Checking enum - break; - case 'I': - if ( strEQ(name, "IGNORE_WS") ) - XSRETURN_IV( IGNORE_WS ); // Decoder_Checking enum - break; - case 'N': - if ( strEQ(name, "NONE") ) - XSRETURN_IV( NONE ); // Decoder_Checking enum - break; - } - errno = EINVAL; - XSRETURN_UNDEF; - - -# =========================== Botan::Chain ========================== - -MODULE = Botan PACKAGE = Botan::Chain - -Botan__Chain * -Botan__Chain::new(f1 = 0, f2 = 0, f3 = 0, f4 = 0) - Botan__Filter *f1; - Botan__Filter *f2; - Botan__Filter *f3; - Botan__Filter *f4; - PREINIT: - ObjectInfo *f1_oi; - ObjectInfo *f2_oi; - ObjectInfo *f3_oi; - ObjectInfo *f4_oi; - CODE: - try { - RETVAL = new Botan__Chain(f1, f2, f3, f4); - if ( f1 ) f1_oi->set_delete_no(); - if ( f2 ) f2_oi->set_delete_no(); - if ( f3 ) f3_oi->set_delete_no(); - if ( f4 ) f4_oi->set_delete_no(); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -void -Botan__Chain::DESTROY() - PREINIT: - ObjectInfo *THIS_oi; - CODE: - if ( THIS_oi->should_delete() ) - try { - delete THIS; - } - catch (const std::exception &e) { - croak(e.what()); - } - - -# =========================== Botan::Fork ========================== - -MODULE = Botan PACKAGE = Botan::Fork - -Botan__Fork * -Botan__Fork::new(f1 = 0, f2 = 0, f3 = 0, f4 = 0) - Botan__Filter *f1; - Botan__Filter *f2; - Botan__Filter *f3; - Botan__Filter *f4; - PREINIT: - ObjectInfo *f1_oi; - ObjectInfo *f2_oi; - ObjectInfo *f3_oi; - ObjectInfo *f4_oi; - CODE: - try { - RETVAL = new Botan__Fork(f1, f2, f3, f4); - if ( f1 ) f1_oi->set_delete_no(); - if ( f2 ) f2_oi->set_delete_no(); - if ( f3 ) f3_oi->set_delete_no(); - if ( f4 ) f4_oi->set_delete_no(); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -void -Botan__Fork::DESTROY() - PREINIT: - ObjectInfo *THIS_oi; - CODE: - if ( THIS_oi->should_delete() ) - try { - delete THIS; - } - catch (const std::exception &e) { - croak(e.what()); - } - - -# ============================ Botan::Base64_Decoder ============================ - -MODULE = Botan PACKAGE = Botan::Base64_Decoder - -Botan__Base64_Decoder * -Botan__Base64_Decoder::new(checking = Botan::NONE) - int checking; - CODE: - try { - using namespace Botan; - RETVAL = new Base64_Decoder((Decoder_Checking)checking); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -void -Botan__Base64_Decoder::DESTROY() - PREINIT: - ObjectInfo *THIS_oi; - CODE: - if ( THIS_oi->should_delete() ) - try { - delete THIS; - } - catch (const std::exception &e) { - croak(e.what()); - } - - -# =========================== Botan::Base64_Encoder ========================== - -MODULE = Botan PACKAGE = Botan::Base64_Encoder - -Botan__Base64_Encoder * -Botan__Base64_Encoder::new(breaks = false, length = 72) - bool breaks; - Botan__u32bit length; - CODE: - try { - RETVAL = new Botan__Base64_Encoder(breaks, length); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -void -Botan__Base64_Encoder::DESTROY() - PREINIT: - ObjectInfo *THIS_oi; - CODE: - if ( THIS_oi->should_delete() ) - try { - delete THIS; - } - catch (const std::exception &e) { - croak(e.what()); - } - - -# ============================ Botan::Hex_Decoder ============================ - -MODULE = Botan PACKAGE = Botan::Hex_Decoder - -Botan__Hex_Decoder * -Botan__Hex_Decoder::new(checking = Botan::NONE) - int checking; - CODE: - try { - using namespace Botan; - RETVAL = new Hex_Decoder((Decoder_Checking)checking); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -void -Botan__Hex_Decoder::DESTROY() - PREINIT: - ObjectInfo *THIS_oi; - CODE: - if ( THIS_oi->should_delete() ) - try { - delete THIS; - } - catch (const std::exception &e) { - croak(e.what()); - } - - -# ============================ Botan::Hex_Encoder ============================ - -MODULE = Botan PACKAGE = Botan::Hex_Encoder - -Botan__Hex_Encoder * -Botan__Hex_Encoder::new(breaks = false, length = 72, lcase = false) - bool breaks; - Botan__u32bit length; - bool lcase; - CODE: - try { - using Botan::Hex_Encoder; - RETVAL = new Hex_Encoder(breaks, length, - lcase ? Hex_Encoder::Lowercase : Hex_Encoder::Uppercase); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -void -Botan__Hex_Encoder::DESTROY() - PREINIT: - ObjectInfo *THIS_oi; - CODE: - if ( THIS_oi->should_delete() ) - try { - delete THIS; - } - catch (const std::exception &e) { - croak(e.what()); - } - - -# ================================ Botan::OID ================================ - -MODULE = Botan PACKAGE = Botan::OID - -Botan__OID * -Botan__OID::new(s) - char *s; - CODE: - try { - RETVAL = new Botan__OID(s); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -void -Botan__OID::DESTROY() - CODE: - try { - delete THIS; - } - catch (const std::exception &e) { - croak(e.what()); - } - -char * -Botan__OID::as_string() - CODE: - try { - RETVAL = const_cast(THIS->as_string().c_str()); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - - -# ================================ Botan::OIDS ================================ - -MODULE = Botan PACKAGE = Botan::OIDS - -void -add_oid(oid, name) - Botan__OID *oid; - char *name; - CODE: - try { - Botan::OIDS::add_oid(*oid, name); - } - catch (const std::exception &e) { - croak(e.what()); - } - -char * -lookup_by_oid(oid) - Botan__OID *oid; - CODE: - try { - RETVAL = const_cast(Botan::OIDS::lookup(*oid).c_str()); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -Botan__OID * -lookup_by_name(name) - char *name; - CODE: - try { - RETVAL = new Botan__OID(Botan::OIDS::lookup(name)); - } - catch (const std::exception &e) { - croak(e.what()); - } - char const * CLASS = "Botan::OID"; - OUTPUT: - RETVAL - -int -have_oid(name) - char *name; - CODE: - try { - RETVAL = Botan::OIDS::have_oid(name); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - - -# ================================ Botan::Pipe ================================ - -MODULE = Botan PACKAGE = Botan::Pipe - -Botan__Pipe * -Botan__Pipe::new(...) - CODE: - for (I32 i = 1; i < items; i++) - { - if ( !sv_isobject(ST(i)) || (SvTYPE(SvRV(ST(i))) != SVt_PVMG) ) - croak("Botan::Pipe::new() -- arg %u is not " - "a blessed SV reference", i +1); - if ( !sv_derived_from(ST(i), "Botan::Filter") ) - croak("Botan::Pipe::new() -- arg %u is not " - "an object derived from Botan::Filter", i +1); - MAGIC *mg = mg_find(SvRV(ST(i)), '~'); - if ( mg == 0 - || mg->mg_len != sizeof(ObjectInfo) - || *(I32 *)(mg->mg_ptr) != ObjectInfo::SIGNVAL ) - croak("Botan::Pipe::new() -- arg %u has no " - "valid private magic data (ObjectInfo)", i +1); - } - try { - RETVAL = new Botan__Pipe(); - for (I32 i = 1; i < items; i++) - { - SV *osv = (SV *)SvRV(ST(i)); - ObjectInfo *oi = (ObjectInfo *)(mg_find(osv, '~')->mg_ptr); - RETVAL->append((Botan__Filter *)(SvIV(osv))); - oi->set_delete_no(); - } - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -void -Botan__Pipe::DESTROY() - PREINIT: - ObjectInfo *THIS_oi; - CODE: - try { - delete THIS; - } - catch (const std::exception &e) { - croak(e.what()); - } - -void -Botan__Pipe::write(s) - SV *s; - PREINIT: - ObjectInfo *THIS_oi; - CODE: - STRLEN len; - char *ptr = SvPV(s, len); - try { - THIS->write((unsigned char *)ptr, len); - } - catch (const std::exception &e) { - croak(e.what()); - } - -void -Botan__Pipe::process_msg(s) - SV *s; - PREINIT: - ObjectInfo *THIS_oi; - CODE: - STRLEN len; - char *ptr = SvPV(s, len); - try { - THIS->process_msg((unsigned char *)ptr, len); - } - catch (const std::exception &e) { - croak(e.what()); - } - -Botan__u32bit -Botan__Pipe::remaining(msgno = Botan::Pipe::DEFAULT_MESSAGE) - Botan__u32bit msgno; - PREINIT: - ObjectInfo *THIS_oi; - CODE: - try { - RETVAL = THIS->remaining(msgno); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -SV * -Botan__Pipe::read(len = 0xFFFFFFFF, msgno = Botan::Pipe::DEFAULT_MESSAGE) - Botan__u32bit len; - Botan__u32bit msgno; - PREINIT: - ObjectInfo *THIS_oi; - CODE: - try { - if ( len > THIS->remaining(msgno) ) - len = THIS->remaining(msgno); - RETVAL = NEWSV(0, len); - SvPOK_on(RETVAL); - if ( len > 0 ) - SvCUR_set(RETVAL, THIS->read((unsigned char *)SvPVX(RETVAL), - len, msgno)); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -SV * -Botan__Pipe::peek(len = 0xFFFFFFFF, offset = 0, \ - msgno = Botan::Pipe::DEFAULT_MESSAGE) - Botan__u32bit len; - Botan__u32bit offset; - Botan__u32bit msgno; - PREINIT: - ObjectInfo *THIS_oi; - CODE: - try { - if ( len > THIS->remaining(msgno) ) - len = THIS->remaining(msgno); - RETVAL = NEWSV(0, len); - SvPOK_on(RETVAL); - if ( len > 0 ) - SvCUR_set(RETVAL, THIS->peek((unsigned char *)SvPVX(RETVAL), - len, offset, msgno)); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -Botan__u32bit -Botan__Pipe::default_msg() - PREINIT: - ObjectInfo *THIS_oi; - CODE: - try { - RETVAL = THIS->default_msg(); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -void -Botan__Pipe::set_default_msg(msgno) - Botan__u32bit msgno; - PREINIT: - ObjectInfo *THIS_oi; - CODE: - try { - THIS->set_default_msg(msgno); - } - catch (const std::exception &e) { - croak(e.what()); - } - -Botan__u32bit -Botan__Pipe::message_count() - PREINIT: - ObjectInfo *THIS_oi; - CODE: - try { - RETVAL = THIS->message_count(); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -bool -Botan__Pipe::end_of_data() - PREINIT: - ObjectInfo *THIS_oi; - CODE: - try { - RETVAL = THIS->end_of_data(); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -void -Botan__Pipe::start_msg() - PREINIT: - ObjectInfo *THIS_oi; - CODE: - try { - THIS->start_msg(); - } - catch (const std::exception &e) { - croak(e.what()); - } - -void -Botan__Pipe::end_msg() - PREINIT: - ObjectInfo *THIS_oi; - CODE: - try { - THIS->end_msg(); - } - catch (const std::exception &e) { - croak(e.what()); - } - -void -Botan__Pipe::reset() - PREINIT: - ObjectInfo *THIS_oi; - CODE: - try { - THIS->reset(); - } - catch (const std::exception &e) { - croak(e.what()); - } - - -# ========================== Botan::X509_Certificate ========================== - -MODULE = Botan PACKAGE = Botan::X509_Certificate - -Botan__X509_Certificate * -Botan__X509_Certificate::new(char *fn) - CODE: - try { - RETVAL = new Botan__X509_Certificate(fn); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -void -Botan__X509_Certificate::DESTROY() - CODE: - try { - delete THIS; - } - catch (const std::exception &e) { - croak(e.what()); - } - -unsigned int -Botan__X509_Certificate::x509_version() - CODE: - try { - RETVAL = THIS->x509_version(); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -char * -Botan__X509_Certificate::start_time() - CODE: - try { - RETVAL = const_cast(THIS->start_time().c_str()); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -char * -Botan__X509_Certificate::end_time() - CODE: - try { - RETVAL = const_cast(THIS->end_time().c_str()); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -char * -Botan__X509_Certificate::subject_info(char *info) - CODE: - try { - std::vector s = THIS->subject_info(info); - - if(s.size() > 0) - RETVAL = const_cast(s[0].c_str()); - else - RETVAL = "err"; - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -char * -Botan__X509_Certificate::issuer_info(char *info) - CODE: - try { - std::vector s = THIS->subject_info(info); - - if(s.size() > 0) - RETVAL = const_cast(s[0].c_str()); - else - RETVAL = "err"; - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -Botan__X509_DN * -Botan__X509_Certificate::subject_dn() - CODE: - try { - RETVAL = new Botan__X509_DN(THIS->subject_dn()); - } - catch (const std::exception &e) { - croak(e.what()); - } - char const * CLASS = "Botan::X509_DN"; - OUTPUT: - RETVAL - -Botan__X509_DN * -Botan__X509_Certificate::issuer_dn() - CODE: - try { - RETVAL = new Botan__X509_DN(THIS->issuer_dn()); - } - catch (const std::exception &e) { - croak(e.what()); - } - char const * CLASS = "Botan::X509_DN"; - OUTPUT: - RETVAL - - -# ============================== Botan::X509_DN ============================== - -MODULE = Botan PACKAGE = Botan::X509_DN - -Botan__X509_DN * -Botan__X509_DN::new() - CODE: - try { - RETVAL = new Botan__X509_DN(); - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL - -void -Botan__X509_DN::DESTROY() - CODE: - try { - delete THIS; - } - catch (const std::exception &e) { - croak(e.what()); - } - -AV * -Botan__X509_DN::get_attributes() - CODE: - try { - using namespace std; - using namespace Botan; - - typedef multimap::const_iterator rdn_iter; - - multimap const &atrmmap = THIS->get_attributes(); - RETVAL = newAV(); - for(rdn_iter i = atrmmap.begin(); i != atrmmap.end(); i++) - { - string const &atr = i->first.as_string(); - string const &val = i->second; - av_push(RETVAL, newSVpvn(atr.c_str(), atr.length())); - av_push(RETVAL, newSVpvn(val.c_str(), val.length())); - } - } - catch (const std::exception &e) { - croak(e.what()); - } - OUTPUT: - RETVAL diff --git a/src/botan/src/wrap/perl-xs/Changes b/src/botan/src/wrap/perl-xs/Changes deleted file mode 100644 index 5f32b0c63..000000000 --- a/src/botan/src/wrap/perl-xs/Changes +++ /dev/null @@ -1,4 +0,0 @@ -Revision history for Perl extension to Botan. - -0.01 Fri, 20 Feb 2004 15:10:50 +0100 - - first version diff --git a/src/botan/src/wrap/perl-xs/MANIFEST b/src/botan/src/wrap/perl-xs/MANIFEST deleted file mode 100644 index b9d8454d6..000000000 --- a/src/botan/src/wrap/perl-xs/MANIFEST +++ /dev/null @@ -1,15 +0,0 @@ -Botan.pm -Botan.xs -Changes -MANIFEST -Makefile.PL -data/ca.cert.der -data/ca.cert.pem -t/base64.t -t/filt.t -t/hex.t -t/oid.t -t/pipe.t -t/testutl.pl -t/x509cert.t -typemap diff --git a/src/botan/src/wrap/perl-xs/Makefile.PL b/src/botan/src/wrap/perl-xs/Makefile.PL deleted file mode 100644 index 82b926fb6..000000000 --- a/src/botan/src/wrap/perl-xs/Makefile.PL +++ /dev/null @@ -1,29 +0,0 @@ -use ExtUtils::MakeMaker; - -my ($cc, $cflags, $lids); -if ( $^O eq 'MSWin32' ) -{ -# $cflags = ''; -# $libs = ':nosearch -lgdi32 -llibeay32'; -} -else -{ - $cc = 'g++'; - $cflags = $Config::Config{ccflags} . ' -Wno-write-strings -fexceptions ' . qx( botan-config-1.10 --cflags ); - $libs = qx( botan-config-1.10 --libs ); -} - -WriteMakefile( - 'NAME' => 'Botan', - 'DISTNAME' => 'Botan-XS', - 'VERSION_FROM' => 'Botan.pm', # finds $VERSION - 'XSOPT' => '-C++', - 'CC' => $cc, - 'LD' => '$(CC)', - 'CCFLAGS' => $cflags, - 'LIBS' => [ $libs ], - 'OPTIMIZE' => '-g', -# 'clean' => { -# 'FILES' => 'neco.p12 rnd', -# }, -); diff --git a/src/botan/src/wrap/perl-xs/data/ca.cert.der b/src/botan/src/wrap/perl-xs/data/ca.cert.der deleted file mode 100644 index d6ed8aeaf..000000000 Binary files a/src/botan/src/wrap/perl-xs/data/ca.cert.der and /dev/null differ diff --git a/src/botan/src/wrap/perl-xs/data/ca.cert.pem b/src/botan/src/wrap/perl-xs/data/ca.cert.pem deleted file mode 100644 index 012913b26..000000000 --- a/src/botan/src/wrap/perl-xs/data/ca.cert.pem +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICxDCCAi2gAwIBAgIBEjANBgkqhkiG9w0BAQUFADBSMQswCQYDVQQGEwJDWjER -MA8GA1UEChMISUNaIGEucy4xGDAWBgNVBAMTD1Rlc3QgcHJpbWFyeSBDQTEWMBQG -CSqGSIb3DQEJARYHY2FAaS5jejAeFw0wMDA4MjAyMTQ4MDBaFw0wMjA4MTAyMTQ4 -MDBaME8xCzAJBgNVBAYTAkNaMREwDwYDVQQKEwhJQ1ogYS5zLjEVMBMGA1UEAxMM -VGVzdCBzaWduIENBMRYwFAYJKoZIhvcNAQkBFgdjYUBpLmN6MIGfMA0GCSqGSIb3 -DQEBAQUAA4GNADCBiQKBgQCo2GReNqwU0/8bZZua5hgYaVHvD9QAmfILNXD25jRk -C8lqe5m/GzbmftSUso5HyUy1t+qzvRDTmxK8uRn0P00Mqj9gjwF8PGQvZE/FrDF7 -rta9GCcH4n2GfQ0iexlhRZW44AfOD4HCgq38Z0bzBclsvUslBWe1AT+S5+chZ5Wb -UwIDAQABo4GsMIGpMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFLXqc1b1DOfGehii -k4Z+/ih9BYZmMHoGA1UdIwRzMHGAFL7x2ToS4RDAbDJu4fHnzzGjfGmgoVakVDBS -MQswCQYDVQQGEwJDWjERMA8GA1UEChMISUNaIGEucy4xGDAWBgNVBAMTD1Rlc3Qg -cHJpbWFyeSBDQTEWMBQGCSqGSIb3DQEJARYHY2FAaS5jeoIBADANBgkqhkiG9w0B -AQUFAAOBgQAKD9ku9kKXUGhSw8KuWJXTnEsIUzDtgmREBEUOtEvGfU45vogWN7ZL -9fQZ1deywN4RJ4T5ZTTcCTPodOdG+IXLJ+uPn/m9iQ/D86c3GKS3yx4JNAn5PH1m -qLsMYVjbFD2uREZQsqbg3RT6L1D8+oK0pN379u3bD6oJx/qa7+F4Jg== ------END CERTIFICATE----- diff --git a/src/botan/src/wrap/perl-xs/t/base64.t b/src/botan/src/wrap/perl-xs/t/base64.t deleted file mode 100644 index f0973e13e..000000000 --- a/src/botan/src/wrap/perl-xs/t/base64.t +++ /dev/null @@ -1,273 +0,0 @@ -# vim: set ft=perl: -# Before `make install' is performed this script should be runnable with -# `make test'. After `make install' it should work as `perl test.pl' - -######################### We start with some black magic to print on failure. - -# Change 1..1 below to 1..last_test_to_print . -# (It may become useful if the test is moved to ./t subdirectory.) - -BEGIN { $| = 1; print "1..24\n"; } -END { print "not ok 1\n" unless $loaded; } - -require 't/testutl.pl'; -use Botan; - -$loaded = 1; -print "ok 1\n"; - -######################### End of black magic. - -# Insert your test code below (better if it prints "ok 13" -# (correspondingly "not ok 13") depending on the success of chunk 13 -# of the test code): - -use strict; - -# Data prep - -my $botan_lic_b64_garbage = <<'EOF'; -Q29weXJpZ2h0IChDKSAxOTk5LTIwMDQgVGhlIEJvdGFuIFByb2plY3QuIEFsbCBy__ì¹ -aWdodHMgcmVzZXJ2ZWQuCgpSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj$$*: -ZSBhbmQgYmluYXJ5IGZvcm1zLCBmb3IgYW55IHVzZSwgd2l0aCBvciB3aXRob3V0!@#$%^&*( -Cm1vZGlmaWNhdGlvbiwgaXMgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv[\] -bGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CgoxLiBSZWRpc3RyaWJ1dGlvbnMg'~` -b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBu() -b3RpY2UsIHRoaXMKbGlzdCBvZiBjb25kaXRpb25zLCBhbmQgdGhlIGZvbGxvd2lu -ZyBkaXNjbGFpbWVyLgoKMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt -IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAp0aGlz -IGxpc3Qgb2YgY29uZGl0aW9ucywgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l -ciBpbiB0aGUgZG9jdW1lbnRhdGlvbgphbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy_,^ -b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KClRISVMgU09GVFdBUkUgSVMg{|}~~~~~ -UFJPVklERUQgQlkgVEhFIEFVVEhPUihTKSAiQVMgSVMiIEFORCBBTlkgRVhQUkVT~~~~~~~~ -UyBPUiBJTVBMSUVECldBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J__:; -VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCk1FUkNIQU5UQUJJTElU -WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIEFSRSBESVND -TEFJTUVELgoKSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUihTKSBPUiBDT05U -UklCVVRPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsCklORElSRUNULCBJ -TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg -REFNQUdFUyAoSU5DTFVESU5HLApCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN -RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF -LApEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP -V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GCkxJQUJJTElUWSwgV0hF -VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D -TFVESU5HIE5FR0xJR0VOQ0UKT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX -QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRgpBRFZJ -U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K -EOF - -my $botan_lic_b64_ws = $botan_lic_b64_garbage; -$botan_lic_b64_ws =~ s/[^A-Za-z0-9+\/= \n]//g; - -my $botan_lic_b64 = $botan_lic_b64_ws; -$botan_lic_b64 =~ s/[ \n]//g; - - -my $botan_lic = <<'EOF'; -Copyright (C) 1999-2004 The Botan Project. All rights reserved. - -Redistribution and use in source and binary forms, for any use, with or without -modification, is permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this -list of conditions, and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions, and the following disclaimer in the documentation -and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) "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(S) OR CONTRIBUTOR(S) 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. -EOF - - -# Decoder... - -my $f; - -eval { $f = Botan::Base64_Decoder->new(&Botan::NONE); }; -print "not " if $@ || !defined $f; -print "ok 2\n"; - -my $dec; -eval { $dec = Botan::Pipe->new($f); }; -print "not " if $@ || !defined $dec; -print "ok 3\n"; - -eval { $f = Botan::Base64_Decoder->new(&Botan::IGNORE_WS); }; -print "not " if $@ || !defined $f; -print "ok 4\n"; - -my $dec_is; -eval { $dec_is = Botan::Pipe->new($f); }; -print "not " if $@ || !defined $dec_is; -print "ok 5\n"; - -eval { $f = Botan::Base64_Decoder->new(&Botan::FULL_CHECK); }; -print "not " if $@ || !defined $f; -print "ok 6\n"; - -my $dec_fc; -eval { $dec_fc = Botan::Pipe->new($f); }; -print "not " if $@ || !defined $dec_fc; -print "ok 7\n"; - - -# Testing clean base64 input - -my $data; - -undef $data; -eval { - $dec->process_msg($botan_lic_b64); - $data = $dec->read(); -}; - -print "not " if $@ || $data ne $botan_lic; -print "ok 8\n"; - -undef $data; -eval { - $dec_is->process_msg($botan_lic_b64); - $data = $dec_is->read(); -}; - -print "not " if $@ || $data ne $botan_lic; -print "ok 9\n"; - -undef $data; -eval { - $dec_fc->process_msg($botan_lic_b64); - $data = $dec_fc->read(); -}; - -print "not " if $@ || $data ne $botan_lic; -print "ok 10\n"; - - -# Testing base64 input with whitespaces - -undef $data; -eval { - $dec->process_msg($botan_lic_b64_ws); - $dec->set_default_msg(1); - $data = $dec->read(); -}; - -print "not " if $@ || $data ne $botan_lic; -print "ok 11\n"; - -undef $data; -eval { - $dec_is->process_msg($botan_lic_b64_ws); - $dec_is->set_default_msg(1); - $data = $dec_is->read(); -}; - -print "not " if $@ || $data ne $botan_lic; -print "ok 12\n"; - -undef $data; -eval { - $dec_fc->process_msg($botan_lic_b64_ws); - $dec_fc->set_default_msg(1); - $data = $dec_fc->read(); -}; - -print "not " unless $@ && !defined $data; -print "ok 13\n"; - - -# Testing base64 input with garbage - -undef $data; -eval { - $dec->process_msg($botan_lic_b64_garbage); - $dec->set_default_msg(2); - $data = $dec->read(); -}; - -print "not " if $@ || $data ne $botan_lic; -print "ok 14\n"; - -undef $data; -eval { - $dec_is->process_msg($botan_lic_b64_garbage); - $dec_is->set_default_msg(2); - $data = $dec_is->read(); -}; - -print "not " unless $@ && !defined $data; -print "ok 15\n"; - -undef $data; -eval { - $dec_fc->process_msg($botan_lic_b64_garbage); - $dec_fc->set_default_msg(2); - $data = $dec_fc->read(); -}; - -print "not " unless $@ && !defined $data; -print "ok 16\n"; - - -# Encoder... - -eval { $f = Botan::Base64_Encoder->new(); }; -print "not " if $@ || !defined $f; -print "ok 17\n"; - -my $enc; -eval { $enc = Botan::Pipe->new($f); }; -print "not " if $@ || !defined $enc; -print "ok 18\n"; - -eval { $f = Botan::Base64_Encoder->new(1, 5); }; -print "not " if $@ || !defined $f; -print "ok 19\n"; - -my $enc2; -eval { $enc2 = Botan::Pipe->new($f); }; -print "not " if $@ || !defined $enc2; -print "ok 20\n"; - -undef $data; -eval { - $enc->process_msg("Hello\n"); - $data = $enc->read(); -}; -print "not " if $@ || $data ne "SGVsbG8K"; -print "ok 21\n"; - -undef $data; -eval { - $enc2->process_msg("Hello\n"); - $data = $enc2->read(); -}; -print "not " if $@ || $data ne "SGVsb\nG8K\n"; -print "ok 22\n"; - - -# Encoder with decoder... - -my $p; -eval { - $p = Botan::Pipe->new( - Botan::Base64_Encoder->new(), - Botan::Base64_Decoder->new(), - ); -}; -print "not " if $@ || !defined $p; -print "ok 23\n"; - -print "not " unless random_message_ok($p); -print "ok 24\n"; diff --git a/src/botan/src/wrap/perl-xs/t/filt.t b/src/botan/src/wrap/perl-xs/t/filt.t deleted file mode 100644 index 2a7b4c8ba..000000000 --- a/src/botan/src/wrap/perl-xs/t/filt.t +++ /dev/null @@ -1,56 +0,0 @@ -# vim: set ft=perl: -# Before `make install' is performed this script should be runnable with -# `make test'. After `make install' it should work as `perl test.pl' - -######################### We start with some black magic to print on failure. - -# Change 1..1 below to 1..last_test_to_print . -# (It may become useful if the test is moved to ./t subdirectory.) - -BEGIN { $| = 1; print "1..5\n"; } -END { print "not ok 1\n" unless $loaded; } - -use Botan; - -$loaded = 1; -print "ok 1\n"; - -######################### End of black magic. - -# Insert your test code below (better if it prints "ok 13" -# (correspondingly "not ok 13") depending on the success of chunk 13 -# of the test code): - -use strict; - -my $pipe = Botan::Pipe->new(Botan::Hex_Encoder->new()); - -print "not " unless $pipe; -print "ok 2\n"; - -$pipe->process_msg('FOO'); - -print "not " if $pipe->read() ne '464F4F'; -print "ok 3\n"; - -$pipe = Botan::Pipe->new(Botan::Hex_Encoder->new(0, 0, 1)); - -print "not " unless $pipe; -print "ok 4\n"; - -$pipe->process_msg('FOO'); - -print "not " if $pipe->read() ne '464f4f'; -print "ok 5\n"; - - - - - - -#my $pipe = Botan::Pipe->new(Botan::Base64_Encoder->new()); -#$pipe->process_msg('FOO'); -# -#print "not " if $pipe->read() ne 'Rk9P'; -#print "ok 4\n"; - diff --git a/src/botan/src/wrap/perl-xs/t/hex.t b/src/botan/src/wrap/perl-xs/t/hex.t deleted file mode 100644 index 6f447b25c..000000000 --- a/src/botan/src/wrap/perl-xs/t/hex.t +++ /dev/null @@ -1,256 +0,0 @@ -# vim: set ft=perl: -# Before `make install' is performed this script should be runnable with -# `make test'. After `make install' it should work as `perl test.pl' - -######################### We start with some black magic to print on failure. - -# Change 1..1 below to 1..last_test_to_print . -# (It may become useful if the test is moved to ./t subdirectory.) - -BEGIN { $| = 1; print "1..24\n"; } -END { print "not ok 1\n" unless $loaded; } - -require 't/testutl.pl'; -use Botan; - -$loaded = 1; -print "ok 1\n"; - -######################### End of black magic. - -# Insert your test code below (better if it prints "ok 13" -# (correspondingly "not ok 13") depending on the success of chunk 13 -# of the test code): - -use strict; - -# Data prep - -my ($hex, $hex_ws, $hex_garbage); -while ( $_ = ) -{ - $hex_garbage .= $_; - s/[^[:xdigit:][:space:]]//g; - $hex_ws .= $_; - s/[^[:xdigit:]]//g; - $hex .= $_; -} -my $data_test = pack("H*", $hex); - -# Decoder... - -my $f; - -eval { $f = Botan::Hex_Decoder->new(&Botan::NONE); }; -print "not " if $@ || !defined $f; -print "ok 2\n"; - -my $dec; -eval { $dec = Botan::Pipe->new($f); }; -print "not " if $@ || !defined $dec; -print "ok 3\n"; - -eval { $f = Botan::Hex_Decoder->new(&Botan::IGNORE_WS); }; -print "not " if $@ || !defined $f; -print "ok 4\n"; - -my $dec_is; -eval { $dec_is = Botan::Pipe->new($f); }; -print "not " if $@ || !defined $dec_is; -print "ok 5\n"; - -eval { $f = Botan::Hex_Decoder->new(&Botan::FULL_CHECK); }; -print "not " if $@ || !defined $f; -print "ok 6\n"; - -my $dec_fc; -eval { $dec_fc = Botan::Pipe->new($f); }; -print "not " if $@ || !defined $dec_fc; -print "ok 7\n"; - - -# Testing clean hexadecimal input - -my $data; - -undef $data; -eval { - $dec->process_msg($hex); - $data = $dec->read(); -}; - -print "not " if $@ || $data ne $data_test; -print "ok 8\n"; - -undef $data; -eval { - $dec_is->process_msg($hex); - $data = $dec_is->read(); -}; - -print "not " if $@ || $data ne $data_test; -print "ok 9\n"; - -undef $data; -eval { - $dec_fc->process_msg($hex); - $data = $dec_fc->read(); -}; - -print "not " if $@ || $data ne $data_test; -print "ok 10\n"; - - -# Testing hexadecimal input with whitespaces - -undef $data; -eval { - $dec->process_msg($hex_ws); - $dec->set_default_msg(1); - $data = $dec->read(); -}; - -print "not " if $@ || $data ne $data_test; -print "ok 11\n"; - -undef $data; -eval { - $dec_is->process_msg($hex_ws); - $dec_is->set_default_msg(1); - $data = $dec_is->read(); -}; - -print "not " if $@ || $data ne $data_test; -print "ok 12\n"; - -undef $data; -eval { - $dec_fc->process_msg($hex_ws); - $dec_fc->set_default_msg(1); - $data = $dec_fc->read(); -}; - -print "not " unless $@ && !defined $data; -print "ok 13\n"; - - -# Testing hexadecimal input with garbage - -undef $data; -eval { - $dec->process_msg($hex_garbage); - $dec->set_default_msg(2); - $data = $dec->read(); -}; - -print "not " if $@ || $data ne $data_test; -print "ok 14\n"; - -undef $data; -eval { - $dec_is->process_msg($hex_garbage); - $dec_is->set_default_msg(2); - $data = $dec_is->read(); -}; - -print "not " unless $@ && !defined $data; -print "ok 15\n"; - -undef $data; -eval { - $dec_fc->process_msg($hex_garbage); - $dec_fc->set_default_msg(2); - $data = $dec_fc->read(); -}; - -print "not " unless $@ && !defined $data; -print "ok 16\n"; - - -# Encoder... - -eval { $f = Botan::Hex_Encoder->new(); }; -print "not " if $@ || !defined $f; -print "ok 17\n"; - -my $enc; -eval { $enc = Botan::Pipe->new($f); }; -print "not " if $@ || !defined $enc; -print "ok 18\n"; - -eval { $f = Botan::Hex_Encoder->new(1, 5, 1); }; -print "not " if $@ || !defined $f; -print "ok 19\n"; - -my $enc2; -eval { $enc2 = Botan::Pipe->new($f); }; -print "not " if $@ || !defined $enc2; -print "ok 20\n"; - -undef $data; -eval { - $enc->process_msg("Hello\n"); - $data = $enc->read(); -}; -print "not " if $@ || $data ne "48656C6C6F0A"; -print "ok 21\n"; - -undef $data; -eval { - $enc2->process_msg("Hello\n"); - $data = $enc2->read(); -}; -print "not " if $@ || $data ne "48656\nc6c6f\n0a\n"; -print "ok 22\n"; - - -# Encoder with decoder... - -my $p; -eval { - $p = Botan::Pipe->new( - Botan::Hex_Encoder->new(), - Botan::Hex_Decoder->new(), - ); -}; -print "not " if $@ || !defined $p; -print "ok 23\n"; - -print "not " unless random_message_ok($p); -print "ok 24\n"; - - - -__DATA__ -cb13 4a4d 7522 1fd3 c6f6 7786 d04b 3043 ..JMu"....w..K.. -4552 4bcf 4d2b 9d71 0cfe 4d6a 1caf bcfd .RK.M+.q..Mj.... -8f91 6151 ff85 e900 7e6a bafc 15e9 ae51 ...Q....~j.....Q -b14b 7210 bb40 5958 2b82 d49e b808 68a5 .Kr..@YX+.....h. -7945 9dec f686 9b98 989e 826d 8088 6ee7 y..........m..n. -d066 1eac 8c34 c461 bb54 7726 87ab d681 .........Tw&.... -a0be 52e5 1128 0cf2 759e cb2d e690 4ed9 ..R..(..u..-..N. -7e88 bda7 2523 4a0f 185a 02b1 f898 fc41 ~...%#J..Z...... -dd48 fa87 945d 7611 b8c9 a50a 2de2 b670 .H...]v.....-..p -0056 c8be 2cbb e7d0 1e70 4a3d 79f0 dce9 .V..,....pJ=y... -b57f 154b 2b3a db73 f086 de11 9f3e 1641 ...K+:.s.....>.. -3a28 8b9b bb0f 682b 80db b791 89e0 62c0 :(....h+........ -7204 db97 5432 2eb0 a04e f38e 809f 7223 r...T....N....r# -912e e552 1452 6dd2 e09f dd06 c715 7c1a ...R.Rm.......|. -fe3d d6cc b6d0 a17a 27d7 4327 4e43 8af3 .=.....z'..'N... -6eb5 e9f8 bfe9 34c3 6636 8243 358f 966d n..............m -7d87 d17b 5c37 6acb 4972 f4ec 6806 bbde }..{\.j.Ir..h... -2689 a019 a9e2 4101 7fe2 de72 bc03 eb5e &..........r...^ -b699 2d6b f8cd a08e 6e01 edfc a81a 94b6 ..-k....n....... -9073 15fb efb2 c8d9 9f85 6633 85f1 e9d0 .s.............. -20ce 578b ab9d 2e51 b947 69bf fba5 82c6 .W....Q.Gi..... -2ed0 dd36 d679 a399 7db3 8a0d cdef 0eda .....y..}....... -e761 e7f1 5b17 3f67 0c83 215a eddf 9d2a ....[.?g..!Z...* -5e70 0a77 c92e 94e1 a82b fd7c f10a 894f ^p.w.....+.|...O -2955 f0e8 7398 f409 2040 b797 da03 a5a6 )U..s... @...... -7ba4 c3c9 2659 b9f7 6a56 e17a b481 983f {...&Y..jV.z...? -00ed 3cc8 5a22 ad5c b6e0 3566 d717 35a6 ..<.Z".\........ -1523 4104 de63 477e fd24 68e5 e816 98df .#....G~.$h..... -1747 417e db72 a76a be5b b9dc 3dfb 2d05 .G.~.r.j.[..=.-. -d27f e597 eafc 9a29 15c5 792d 9c88 9aea .......)..y-.... -485e e431 96c3 7723 da6d 28b2 477a fd12 H^....w#.m(.Gz.. -e645 5dcd 7d5a d8b4 7acc 10b2 b41a e11d ..].}Z..z....... diff --git a/src/botan/src/wrap/perl-xs/t/oid.t b/src/botan/src/wrap/perl-xs/t/oid.t deleted file mode 100644 index 66204541f..000000000 --- a/src/botan/src/wrap/perl-xs/t/oid.t +++ /dev/null @@ -1,45 +0,0 @@ -# vim: set ft=perl: -# Before `make install' is performed this script should be runnable with -# `make test'. After `make install' it should work as `perl test.pl' - -######################### We start with some black magic to print on failure. - -# Change 1..1 below to 1..last_test_to_print . -# (It may become useful if the test is moved to ./t subdirectory.) - -BEGIN { $| = 1; print "1..6\n"; } -END { print "not ok 1\n" unless $loaded; } - -use Botan; - -$loaded = 1; -print "ok 1\n"; - -######################### End of black magic. - -# Insert your test code below (better if it prints "ok 13" -# (correspondingly "not ok 13") depending on the success of chunk 13 -# of the test code): - -use strict; - -print "not " unless Botan::OIDS::have_oid('X520.CommonName'); -print "ok 2\n"; - -my $oid_c = Botan::OID->new('2.5.4.3'); -print "not " if Botan::OIDS::lookup_by_oid($oid_c) ne 'X520.CommonName'; -print "ok 3\n"; - -my $oid_x = Botan::OIDS::lookup_by_name('X520.CommonName'); -print "not " if $oid_x->as_string() ne '2.5.4.3'; -print "ok 4\n"; - -my $oid_foo_num = '1.2.3.4.5.6.7.8.9.10.11.12.13.14.15'; -my $oid_foo = Botan::OID->new($oid_foo_num); -print "not " if Botan::OIDS::lookup_by_oid($oid_foo) ne $oid_foo_num; -print "ok 5\n"; - -Botan::OIDS::add_oid($oid_foo, 'Zito.Foo'); - -print "not " if Botan::OIDS::lookup_by_oid($oid_foo) ne 'Zito.Foo'; -print "ok 6\n"; diff --git a/src/botan/src/wrap/perl-xs/t/pipe.t b/src/botan/src/wrap/perl-xs/t/pipe.t deleted file mode 100644 index f850d8519..000000000 --- a/src/botan/src/wrap/perl-xs/t/pipe.t +++ /dev/null @@ -1,98 +0,0 @@ -# vim: set ft=perl: -# Before `make install' is performed this script should be runnable with -# `make test'. After `make install' it should work as `perl test.pl' - -######################### We start with some black magic to print on failure. - -# Change 1..1 below to 1..last_test_to_print . -# (It may become useful if the test is moved to ./t subdirectory.) - -BEGIN { $| = 1; print "1..20\n"; } -END { print "not ok 1\n" unless $loaded; } - -use Botan; - -$loaded = 1; -print "ok 1\n"; - -######################### End of black magic. - -# Insert your test code below (better if it prints "ok 13" -# (correspondingly "not ok 13") depending on the success of chunk 13 -# of the test code): - -use strict; - -my $pipe = Botan::Pipe->new(); - -print "not " unless $pipe; -print "ok 2\n"; - -$pipe->start_msg(); -$pipe->write('Hello world'); -$pipe->end_msg(); - -print "not " if $pipe->message_count() != 1; -print "ok 3\n"; - -print "not " if $pipe->remaining() != 11; -print "ok 4\n"; - -print "not " if $pipe->end_of_data(); -print "ok 5\n"; - -print "not " if $pipe->read() ne 'Hello world'; -print "ok 6\n"; - -print "not " if $pipe->remaining() != 0; -print "ok 7\n"; - -print "not " unless $pipe->end_of_data(); -print "ok 8\n"; - -$pipe->process_msg('Hello world'); - -print "not " if $pipe->message_count() != 2; -print "ok 9\n"; - -my $msg_num = $pipe->message_count() -1; - -print "not " if $pipe->read(5, $msg_num) ne 'Hello'; -print "ok 10\n"; - -print "not " if $pipe->read(6, $msg_num) ne ' world'; -print "ok 11\n"; - -print "not " if $pipe->remaining() != 0; -print "ok 12\n"; - -print "not " unless $pipe->end_of_data(); -print "ok 13\n"; - -$pipe->process_msg("The\0string\0with\0null\0chars\0"); -$msg_num = $pipe->message_count() -1; - -print "not " if $pipe->read(80, $msg_num) ne "The\0string\0with\0null\0chars\0"; -print "ok 14\n"; - -$pipe->process_msg('FOO BAR'); -$pipe->set_default_msg($pipe->message_count() -1); - -print "not " if $pipe->peek(3) ne 'FOO'; -print "ok 15\n"; - -print "not " if $pipe->peek(3, 4) ne 'BAR'; -print "ok 16\n"; - -print "not " if $pipe->peek() ne 'FOO BAR'; -print "ok 17\n"; - -print "not " if $pipe->read() ne 'FOO BAR'; -print "ok 18\n"; - -print "not " if $pipe->remaining() != 0; -print "ok 19\n"; - -print "not " unless $pipe->end_of_data(); -print "ok 20\n"; - diff --git a/src/botan/src/wrap/perl-xs/t/testutl.pl b/src/botan/src/wrap/perl-xs/t/testutl.pl deleted file mode 100644 index add6f6a45..000000000 --- a/src/botan/src/wrap/perl-xs/t/testutl.pl +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/perl - -sub random_message_ok -{ - my ($pipe, $iter, $chunkmax) = @_; - $iter = 100 unless defined $iter; - $chunkmax = 300 unless defined $chunkmax; - eval { - my $input = ''; - $pipe->start_msg(); - for(my $i = 0; $i < $iter; $i++) - { - my $chunk = ''; - my $chunklen = int(rand($chunkmax)); - $chunk .= pack("C", int(rand(256))) while $chunklen--; - $input .= $chunk; - $pipe->write($chunk); - } - $pipe->end_msg(); - my $msg_num = $pipe->message_count() -1; - my $output = $pipe->read(0xFFFFFFFF, $msg_num); - return $input eq $output; - }; -} - -1; diff --git a/src/botan/src/wrap/perl-xs/t/x509cert.t b/src/botan/src/wrap/perl-xs/t/x509cert.t deleted file mode 100644 index 2a943aeac..000000000 --- a/src/botan/src/wrap/perl-xs/t/x509cert.t +++ /dev/null @@ -1,42 +0,0 @@ -# vim: set ft=perl: -# Before `make install' is performed this script should be runnable with -# `make test'. After `make install' it should work as `perl test.pl' - -######################### We start with some black magic to print on failure. - -# Change 1..1 below to 1..last_test_to_print . -# (It may become useful if the test is moved to ./t subdirectory.) - -BEGIN { $| = 1; print "1..4\n"; } -END { print "not ok 1\n" unless $loaded; } - -use Botan; - -$loaded = 1; -print "ok 1\n"; - -######################### End of black magic. - -# Insert your test code below (better if it prints "ok 13" -# (correspondingly "not ok 13") depending on the success of chunk 13 -# of the test code): - -use strict; - -my $cert = Botan::X509_Certificate->new('data/ca.cert.der'); - -print "not " if $cert->x509_version() != 3; -print "ok 2\n"; - -print "not " if $cert->start_time() ne '2000/8/20 21:48:00 UTC'; -print "ok 3\n"; - -print "not " if $cert->end_time() ne '2002/8/10 21:48:00 UTC'; -print "ok 4\n"; - -#my $subject = $cert->subject_dn()->get_attributes(); -#print STDERR "subject=", join(',', @{$subject}), "\n"; -# -#my $issuer = $cert->issuer_dn()->get_attributes(); -#print STDERR "issuer=", join(',', @{$issuer}), "\n"; -# diff --git a/src/botan/src/wrap/perl-xs/typemap b/src/botan/src/wrap/perl-xs/typemap deleted file mode 100644 index d7403d40d..000000000 --- a/src/botan/src/wrap/perl-xs/typemap +++ /dev/null @@ -1,62 +0,0 @@ -TYPEMAP - -Botan__ASN1_String * O_OBJECT -Botan__AlgorithmIdentifier * O_OBJECT -Botan__AlternativeName * O_OBJECT -Botan__Attribute * O_OBJECT -Botan__Base64_Decoder * O_EXTOBJECT -Botan__Base64_Encoder * O_EXTOBJECT -Botan__Chain * O_EXTOBJECT -Botan__Extension * O_OBJECT -Botan__Filter * O_EXTOBJECT -Botan__Fork * O_EXTOBJECT -Botan__Hex_Decoder * O_EXTOBJECT -Botan__Hex_Encoder * O_EXTOBJECT -Botan__OID * O_OBJECT -Botan__Pipe * O_OBJECT -Botan__X509_Certificate * O_OBJECT -Botan__X509_DN * O_OBJECT -Botan__X509_Time * O_OBJECT -Botan__u32bit T_UV - - -###################################################################### -OUTPUT - -# The Perl object is blessed into 'CLASS', which should be a -# char* having the name of the package for the blessing. -O_OBJECT - sv_setref_pv($arg, CLASS, (void*)$var); - -O_EXTOBJECT - sv_setref_pv($arg, CLASS, (void*)$var); - sv_magic(SvRV($arg), 0, '~', (char *)&oi_init, sizeof(oi_init)); - - -###################################################################### -INPUT - -O_OBJECT - if ( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) ) - $var = ($type)SvIV((SV*)SvRV( $arg )); - else - croak(\"${Package}::$func_name() -- \" - \"$var is not a blessed SV reference\"); - -# The pointer variable "ObjectInfo *${var}_oi;" must be declared -# in PREINIT section. I don't know how to emit this declaration safely here. -O_EXTOBJECT - if ( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) ) - $var = ($type)SvIV((SV*)SvRV($arg)); - else - croak(\"${Package}::$func_name() -- \" - \"$var is not a blessed SV reference\"); - { - MAGIC *mg = mg_find(SvRV($arg), '~'); - if ( mg == 0 - || mg->mg_len != sizeof(ObjectInfo) - || *(I32 *)(mg->mg_ptr) != ObjectInfo::SIGNVAL ) - croak(\"${Package}::$func_name() -- \" - \"private magic data for $var invalid\"); - ${var}_oi = (ObjectInfo *)(mg->mg_ptr); - } diff --git a/src/botan/src/wrap/python/__init__.py b/src/botan/src/wrap/python/__init__.py deleted file mode 100644 index 2df9a456f..000000000 --- a/src/botan/src/wrap/python/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -from _botan import * - -# Initialize the library when the module is imported -init = LibraryInitializer() diff --git a/src/botan/src/wrap/python/core.cpp b/src/botan/src/wrap/python/core.cpp deleted file mode 100644 index 7dac7be7f..000000000 --- a/src/botan/src/wrap/python/core.cpp +++ /dev/null @@ -1,232 +0,0 @@ -/* -* Boost.Python module definition -* (C) 1999-2007 Jack Lloyd -*/ - -#include -#include -#include -#include -#include -#include -using namespace Botan; - -#include "python_botan.h" - -class Py_Cipher - { - public: - Py_Cipher(std::string algo_name, std::string direction, - std::string key); - - std::string cipher_noiv(const std::string& text); - - std::string cipher(const std::string& text, - const std::string& iv); - - std::string name() const { return algo_name; } - private: - std::string algo_name; - Keyed_Filter* filter; - Pipe pipe; - }; - -std::string Py_Cipher::cipher(const std::string& input, - const std::string& iv_str) - { - if(iv_str.size()) - { - const byte* iv_bytes = reinterpret_cast(iv_str.data()); - u32bit iv_len = iv_str.size(); - filter->set_iv(InitializationVector(iv_bytes, iv_len)); - } - - pipe.process_msg(input); - return pipe.read_all_as_string(Pipe::LAST_MESSAGE); - } - -// For IV-less algorithms -std::string Py_Cipher::cipher_noiv(const std::string& input) - { - pipe.process_msg(input); - return pipe.read_all_as_string(Pipe::LAST_MESSAGE); - } - -Py_Cipher::Py_Cipher(std::string algo_name, - std::string direction, - std::string key_str) - { - const byte* key_bytes = reinterpret_cast(key_str.data()); - u32bit key_len = key_str.size(); - - Cipher_Dir dir; - - if(direction == "encrypt") - dir = ENCRYPTION; - else if(direction == "decrypt") - dir = DECRYPTION; - else - throw std::invalid_argument("Bad cipher direction " + direction); - - filter = get_cipher(algo_name, dir); - filter->set_key(SymmetricKey(key_bytes, key_len)); - pipe.append(filter); - } - -class Py_HashFunction - { - public: - Py_HashFunction(const std::string& algo_name) - { - hash = get_hash(algo_name); - } - - ~Py_HashFunction() { delete hash; } - - void update(const std::string& input) - { - hash->update(input); - } - - std::string final() - { - std::string out(output_length(), 0); - hash->final(reinterpret_cast(&out[0])); - return out; - } - - std::string name() const - { - return hash->name(); - } - - u32bit output_length() const - { - return hash->output_length(); - } - - private: - HashFunction* hash; - }; - -class Py_MAC - { - public: - - Py_MAC(const std::string& name, const std::string& key_str) - { - mac = get_mac(name); - - mac->set_key(reinterpret_cast(key_str.data()), - key_str.size()); - } - - ~Py_MAC() { delete mac; } - - u32bit output_length() const { return mac->output_length(); } - - std::string name() const { return mac->name(); } - - void update(const std::string& in) { mac->update(in); } - - std::string final() - { - std::string out(output_length(), 0); - mac->final(reinterpret_cast(&out[0])); - return out; - } - private: - MessageAuthenticationCode* mac; - }; - -std::string cryptobox_encrypt(const std::string& in, - const std::string& passphrase, - Python_RandomNumberGenerator& rng) - { - const byte* in_bytes = reinterpret_cast(in.data()); - - return CryptoBox::encrypt(in_bytes, in.size(), - passphrase, rng.get_underlying_rng()); - } - -std::string cryptobox_decrypt(const std::string& in, - const std::string& passphrase) - { - const byte* in_bytes = reinterpret_cast(in.data()); - - return CryptoBox::decrypt(in_bytes, in.size(), - passphrase); - } - -std::string python_pbkdf2(const std::string& passphrase, - const std::string& salt, - u32bit iterations, - u32bit output_size, - const std::string& hash_fn) - { - PKCS5_PBKDF2 pbkdf2(new HMAC(get_hash(hash_fn))); - - return make_string( - pbkdf2.derive_key(output_size, - passphrase, - reinterpret_cast(salt.data()), - salt.size(), - iterations).bits_of()); - } - -std::string python_kdf2(const std::string& param, - const std::string& masterkey, - u32bit outputlength) - { - std::auto_ptr kdf(get_kdf("KDF2(SHA-1)")); - - return make_string( - kdf->derive_key(outputlength, - reinterpret_cast(masterkey.data()), - masterkey.length(), - param)); - } - -BOOST_PYTHON_MODULE(_botan) - { - python::class_("LibraryInitializer") - .def(python::init< python::optional >()); - - python::class_("RandomNumberGenerator") - .def(python::init<>()) - .def("__str__", &Python_RandomNumberGenerator::name) - .def("name", &Python_RandomNumberGenerator::name) - .def("reseed", &Python_RandomNumberGenerator::reseed) - .def("add_entropy", &Python_RandomNumberGenerator::add_entropy) - .def("gen_random_byte", &Python_RandomNumberGenerator::gen_random_byte) - .def("gen_random", &Python_RandomNumberGenerator::gen_random); - - python::class_ - ("Cipher", python::init()) - .def("name", &Py_Cipher::name) - .def("cipher", &Py_Cipher::cipher) - .def("cipher", &Py_Cipher::cipher_noiv); - - python::class_ - ("HashFunction", python::init()) - .def("update", &Py_HashFunction::update) - .def("final", &Py_HashFunction::final) - .def("name", &Py_HashFunction::name) - .def("output_length", &Py_HashFunction::output_length); - - python::class_ - ("MAC", python::init()) - .def("update", &Py_MAC::update) - .def("final", &Py_MAC::final) - .def("name", &Py_MAC::name) - .def("output_length", &Py_MAC::output_length); - - python::def("cryptobox_encrypt", cryptobox_encrypt); - python::def("cryptobox_decrypt", cryptobox_decrypt); - python::def("pbkdf2", python_pbkdf2); - python::def("derive_key", python_kdf2); - - export_filters(); - export_rsa(); - export_x509(); - } diff --git a/src/botan/src/wrap/python/filter.cpp b/src/botan/src/wrap/python/filter.cpp deleted file mode 100644 index e329ed708..000000000 --- a/src/botan/src/wrap/python/filter.cpp +++ /dev/null @@ -1,177 +0,0 @@ -/* -* Boost.Python module definition -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -using namespace boost::python; - -#include -#include -using namespace Botan; - -class Py_Filter : public Filter - { - public: - virtual void write_str(const std::string&) = 0; - - std::string name() const { return "Py_Filter_FIXME"; } - - void write(const byte data[], size_t length) - { - write_str(std::string((const char*)data, length)); - } - - void send_str(const std::string& str) - { - send((const byte*)str.data(), str.length()); - } - }; - -class FilterWrapper : public Py_Filter, public wrapper - { - public: - void start_msg() - { - if(override start_msg = this->get_override("start_msg")) - start_msg(); - } - - void end_msg() - { - if(override end_msg = this->get_override("end_msg")) - end_msg(); - } - - void default_start_msg() {} - void default_end_msg() {} - - virtual void write_str(const std::string& str) - { - this->get_override("write")(str); - } - }; - -Filter* return_or_raise(Filter* filter, const std::string& name) - { - if(filter) - return filter; - throw Invalid_Argument("Filter " + name + " could not be found"); - } - -Filter* make_filter1(const std::string& name) - { - Filter* filter = 0; - - if(have_hash(name)) filter = new Hash_Filter(name); - else if(name == "Hex_Encoder") filter = new Hex_Encoder; - else if(name == "Hex_Decoder") filter = new Hex_Decoder; - else if(name == "Base64_Encoder") filter = new Base64_Encoder; - else if(name == "Base64_Decoder") filter = new Base64_Decoder; - - return return_or_raise(filter, name); - } - -Filter* make_filter2(const std::string& name, - const SymmetricKey& key) - { - Filter* filter = 0; - - if(have_mac(name)) - filter = new MAC_Filter(name, key); - else if(have_stream_cipher(name)) - filter = new StreamCipher_Filter(name, key); - - return return_or_raise(filter, name); - } - -// FIXME: add new wrapper for Keyed_Filter here -Filter* make_filter3(const std::string& name, - const SymmetricKey& key, - Cipher_Dir direction) - { - return return_or_raise( - get_cipher(name, key, direction), - name); - } - -Filter* make_filter4(const std::string& name, - const SymmetricKey& key, - const InitializationVector& iv, - Cipher_Dir direction) - { - return return_or_raise( - get_cipher(name, key, iv, direction), - name); - } - -void append_filter(Pipe& pipe, std::auto_ptr filter) - { - pipe.append(filter.get()); - filter.release(); - } - -void prepend_filter(Pipe& pipe, std::auto_ptr filter) - { - pipe.prepend(filter.get()); - filter.release(); - } - -void do_send(std::auto_ptr filter, const std::string& data) - { - filter->send_str(data); - } - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(rallas_ovls, read_all_as_string, 0, 1) - -void export_filters() - { - class_, boost::noncopyable> - ("__Internal_FilterObj", no_init); - - def("make_filter", make_filter1, - return_value_policy()); - def("make_filter", make_filter2, - return_value_policy()); - def("make_filter", make_filter3, - return_value_policy()); - def("make_filter", make_filter4, - return_value_policy()); - - // This might not work - Pipe will delete the filter, but Python - // might have allocated the space with malloc() or who-knows-what -> bad - class_, - bases, boost::noncopyable> - ("FilterObj") - .def("write", pure_virtual(&Py_Filter::write_str)) - .def("send", &do_send) - .def("start_msg", &Filter::start_msg, &FilterWrapper::default_start_msg) - .def("end_msg", &Filter::end_msg, &FilterWrapper::default_end_msg); - - implicitly_convertible, - std::auto_ptr >(); - - void (Pipe::*pipe_write_str)(const std::string&) = &Pipe::write; - void (Pipe::*pipe_process_str)(const std::string&) = &Pipe::process_msg; - - class_("PipeObj") - .def(init<>()) - /* - .def_readonly("LAST_MESSAGE", &Pipe::LAST_MESSAGE) - .def_readonly("DEFAULT_MESSAGE", &Pipe::DEFAULT_MESSAGE) - */ - .add_property("default_msg", &Pipe::default_msg, &Pipe::set_default_msg) - .add_property("msg_count", &Pipe::message_count) - .def("append", append_filter) - .def("prepend", prepend_filter) - .def("reset", &Pipe::reset) - .def("pop", &Pipe::pop) - .def("end_of_data", &Pipe::end_of_data) - .def("start_msg", &Pipe::start_msg) - .def("end_msg", &Pipe::end_msg) - .def("write", pipe_write_str) - .def("process_msg", pipe_process_str) - .def("read_all", &Pipe::read_all_as_string, rallas_ovls()); - } diff --git a/src/botan/src/wrap/python/python_botan.h b/src/botan/src/wrap/python/python_botan.h deleted file mode 100644 index a7a2e505e..000000000 --- a/src/botan/src/wrap/python/python_botan.h +++ /dev/null @@ -1,84 +0,0 @@ -/* -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_BOOST_PYTHON_COMMON_H__ -#define BOTAN_BOOST_PYTHON_COMMON_H__ - -#include -#include -#include -using namespace Botan; - -#include -namespace python = boost::python; - -extern void export_filters(); -extern void export_rsa(); -extern void export_x509(); - -class Bad_Size : public Exception - { - public: - Bad_Size(u32bit got, u32bit expected) : - Exception("Bad size detected in Python/C++ conversion layer: got " + - to_string(got) + " bytes, expected " + to_string(expected)) - {} - }; - -inline std::string make_string(const byte input[], u32bit length) - { - return std::string((const char*)input, length); - } - -inline std::string make_string(const MemoryRegion& in) - { - return make_string(in.begin(), in.size()); - } - -inline void string2binary(const std::string& from, byte to[], u32bit expected) - { - if(from.size() != expected) - throw Bad_Size(from.size(), expected); - std::memcpy(to, from.data(), expected); - } - -template -inline python::object get_owner(T* me) - { - return python::object( - python::handle<>( - python::borrowed(python::detail::wrapper_base_::get_owner(*me)))); - } - -class Python_RandomNumberGenerator - { - public: - Python_RandomNumberGenerator() - { rng = RandomNumberGenerator::make_rng(); } - ~Python_RandomNumberGenerator() { delete rng; } - - std::string name() const { return rng->name(); } - - void reseed() { rng->reseed(192); } - - int gen_random_byte() { return rng->next_byte(); } - - std::string gen_random(int n) - { - std::string s(n, 0); - rng->randomize(reinterpret_cast(&s[0]), n); - return s; - } - - void add_entropy(const std::string& in) - { rng->add_entropy(reinterpret_cast(in.c_str()), in.length()); } - - RandomNumberGenerator& get_underlying_rng() { return *rng; } - private: - RandomNumberGenerator* rng; - }; - -#endif diff --git a/src/botan/src/wrap/python/rsa.cpp b/src/botan/src/wrap/python/rsa.cpp deleted file mode 100644 index dc6053503..000000000 --- a/src/botan/src/wrap/python/rsa.cpp +++ /dev/null @@ -1,223 +0,0 @@ -/* -* Boost.Python module definition -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -using namespace Botan; - -#include "python_botan.h" -#include - -std::string bigint2str(const BigInt& n) - { - std::ostringstream out; - out << n; - return out.str(); - } - -class Py_RSA_PrivateKey - { - public: - Py_RSA_PrivateKey(std::string pem_str, - Python_RandomNumberGenerator& rng, - std::string pass); - Py_RSA_PrivateKey(std::string pem_str, - Python_RandomNumberGenerator& rng); - - Py_RSA_PrivateKey(u32bit bits, Python_RandomNumberGenerator& rng); - ~Py_RSA_PrivateKey() { delete rsa_key; } - - std::string to_string() const - { - return PKCS8::PEM_encode(*rsa_key); - } - - std::string to_ber() const - { - SecureVector bits = PKCS8::BER_encode(*rsa_key); - - return std::string(reinterpret_cast(&bits[0]), - bits.size()); - } - - std::string get_N() const { return bigint2str(get_bigint_N()); } - std::string get_E() const { return bigint2str(get_bigint_E()); } - - const BigInt& get_bigint_N() const { return rsa_key->get_n(); } - const BigInt& get_bigint_E() const { return rsa_key->get_e(); } - - std::string decrypt(const std::string& in, - const std::string& padding); - - std::string sign(const std::string& in, - const std::string& padding, - Python_RandomNumberGenerator& rng); - private: - RSA_PrivateKey* rsa_key; - }; - -std::string Py_RSA_PrivateKey::decrypt(const std::string& in, - const std::string& padding) - { - PK_Decryptor_EME dec(*rsa_key, padding); - - const byte* in_bytes = reinterpret_cast(in.data()); - - return make_string(dec.decrypt(in_bytes, in.size())); - } - -std::string Py_RSA_PrivateKey::sign(const std::string& in, - const std::string& padding, - Python_RandomNumberGenerator& rng) - { - PK_Signer sign(*rsa_key, padding); - const byte* in_bytes = reinterpret_cast(in.data()); - sign.update(in_bytes, in.size()); - return make_string(sign.signature(rng.get_underlying_rng())); - } - -Py_RSA_PrivateKey::Py_RSA_PrivateKey(u32bit bits, - Python_RandomNumberGenerator& rng) - { - rsa_key = new RSA_PrivateKey(rng.get_underlying_rng(), bits); - } - -Py_RSA_PrivateKey::Py_RSA_PrivateKey(std::string pem_str, - Python_RandomNumberGenerator& rng) - { - DataSource_Memory in(pem_str); - - Private_Key* pkcs8_key = - PKCS8::load_key(in, - rng.get_underlying_rng()); - - rsa_key = dynamic_cast(pkcs8_key); - - if(!rsa_key) - throw std::invalid_argument("Key is not an RSA key"); - } - -Py_RSA_PrivateKey::Py_RSA_PrivateKey(std::string pem_str, - Python_RandomNumberGenerator& rng, - std::string passphrase) - { - DataSource_Memory in(pem_str); - - Private_Key* pkcs8_key = - PKCS8::load_key(in, - rng.get_underlying_rng(), - passphrase); - - rsa_key = dynamic_cast(pkcs8_key); - - if(!rsa_key) - throw std::invalid_argument("Key is not an RSA key"); - } - -class Py_RSA_PublicKey - { - public: - Py_RSA_PublicKey(std::string pem_str); - Py_RSA_PublicKey(const Py_RSA_PrivateKey&); - ~Py_RSA_PublicKey() { delete rsa_key; } - - std::string get_N() const { return bigint2str(get_bigint_N()); } - std::string get_E() const { return bigint2str(get_bigint_E()); } - - const BigInt& get_bigint_N() const { return rsa_key->get_n(); } - const BigInt& get_bigint_E() const { return rsa_key->get_e(); } - - std::string to_string() const - { - return X509::PEM_encode(*rsa_key); - } - - std::string to_ber() const - { - SecureVector bits = X509::BER_encode(*rsa_key); - - return std::string(reinterpret_cast(&bits[0]), - bits.size()); - } - - std::string encrypt(const std::string& in, - const std::string& padding, - Python_RandomNumberGenerator& rng); - - bool verify(const std::string& in, - const std::string& padding, - const std::string& signature); - private: - RSA_PublicKey* rsa_key; - }; - -Py_RSA_PublicKey::Py_RSA_PublicKey(const Py_RSA_PrivateKey& priv) - { - rsa_key = new RSA_PublicKey(priv.get_bigint_N(), priv.get_bigint_E()); - } - -Py_RSA_PublicKey::Py_RSA_PublicKey(std::string pem_str) - { - DataSource_Memory in(pem_str); - Public_Key* x509_key = X509::load_key(in); - - rsa_key = dynamic_cast(x509_key); - - if(!rsa_key) - throw std::invalid_argument("Key is not an RSA key"); - } - -std::string Py_RSA_PublicKey::encrypt(const std::string& in, - const std::string& padding, - Python_RandomNumberGenerator& rng) - { - PK_Encryptor_EME enc(*rsa_key, padding); - - const byte* in_bytes = reinterpret_cast(in.data()); - - return make_string(enc.encrypt(in_bytes, in.size(), - rng.get_underlying_rng())); - } - -bool Py_RSA_PublicKey::verify(const std::string& in, - const std::string& signature, - const std::string& padding) - { - PK_Verifier ver(*rsa_key, padding); - - const byte* in_bytes = reinterpret_cast(in.data()); - const byte* sig_bytes = reinterpret_cast(signature.data()); - - ver.update(in_bytes, in.size()); - return ver.check_signature(sig_bytes, signature.size()); - } - -void export_rsa() - { - python::class_ - ("RSA_PublicKey", python::init()) - .def(python::init()) - .def("to_string", &Py_RSA_PublicKey::to_string) - .def("to_ber", &Py_RSA_PublicKey::to_ber) - .def("encrypt", &Py_RSA_PublicKey::encrypt) - .def("verify", &Py_RSA_PublicKey::verify) - .def("get_N", &Py_RSA_PublicKey::get_N) - .def("get_E", &Py_RSA_PublicKey::get_E); - - python::class_ - ("RSA_PrivateKey", python::init()) - .def(python::init()) - .def(python::init()) - .def("to_string", &Py_RSA_PrivateKey::to_string) - .def("to_ber", &Py_RSA_PrivateKey::to_ber) - .def("decrypt", &Py_RSA_PrivateKey::decrypt) - .def("sign", &Py_RSA_PrivateKey::sign) - .def("get_N", &Py_RSA_PrivateKey::get_N) - .def("get_E", &Py_RSA_PrivateKey::get_E); - } diff --git a/src/botan/src/wrap/python/x509.cpp b/src/botan/src/wrap/python/x509.cpp deleted file mode 100644 index 4c248890d..000000000 --- a/src/botan/src/wrap/python/x509.cpp +++ /dev/null @@ -1,127 +0,0 @@ -/* -* Boost.Python module definition -* (C) 2009 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include -#include -#include -#include -#include -#include -using namespace Botan; - -#include -namespace python = boost::python; - -template -class vector_to_list - { - public: - static PyObject* convert(const std::vector& in) - { - python::list out; - typename std::vector::const_iterator i = in.begin(); - while(i != in.end()) - { - out.append(*i); - ++i; - } - return python::incref(out.ptr()); - } - - vector_to_list() - { - python::to_python_converter, vector_to_list >(); - } - }; - -template -class memvec_to_hexstr - { - public: - static PyObject* convert(const T& in) - { - Pipe pipe(new Hex_Encoder); - pipe.process_msg(in); - std::string result = pipe.read_all_as_string(); - return python::incref(python::str(result).ptr()); - } - - memvec_to_hexstr() - { - python::to_python_converter >(); - } - }; - -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(add_cert_ols, add_cert, 1, 2) -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(validate_cert_ols, validate_cert, 1, 2) - -void export_x509() - { - vector_to_list(); - vector_to_list(); - memvec_to_hexstr >(); - - python::class_ - ("X509_Certificate", python::init()) - .def(python::self == python::self) - .def(python::self != python::self) - .add_property("version", &X509_Certificate::x509_version) - .add_property("is_CA", &X509_Certificate::is_CA_cert) - .add_property("self_signed", &X509_Certificate::is_self_signed) - .add_property("pathlimit", &X509_Certificate::path_limit) - .add_property("as_pem", &X509_Object::PEM_encode) - .def("start_time", &X509_Certificate::start_time) - .def("end_time", &X509_Certificate::end_time) - .def("subject_info", &X509_Certificate::subject_info) - .def("issuer_info", &X509_Certificate::issuer_info) - .def("ex_constraints", &X509_Certificate::ex_constraints) - .def("policies", &X509_Certificate::policies) - .def("subject_key_id", &X509_Certificate::subject_key_id) - .def("authority_key_id", &X509_Certificate::authority_key_id); - - python::class_ - ("X509_CRL", python::init()) - .add_property("as_pem", &X509_Object::PEM_encode); - - python::enum_("verify_result") - .value("verified", VERIFIED) - .value("unknown_x509_error", UNKNOWN_X509_ERROR) - .value("cannot_establish_trust", CANNOT_ESTABLISH_TRUST) - .value("cert_chain_too_long", CERT_CHAIN_TOO_LONG) - .value("signature_error", SIGNATURE_ERROR) - .value("policy_error", POLICY_ERROR) - .value("invalid_usage", INVALID_USAGE) - .value("cert_format_error", CERT_FORMAT_ERROR) - .value("cert_issuer_not_found", CERT_ISSUER_NOT_FOUND) - .value("cert_not_yet_valid", CERT_NOT_YET_VALID) - .value("cert_has_expired", CERT_HAS_EXPIRED) - .value("cert_is_revoked", CERT_IS_REVOKED) - .value("crl_format_error", CRL_FORMAT_ERROR) - .value("crl_issuer_not_found", CRL_ISSUER_NOT_FOUND) - .value("crl_not_yet_valid", CRL_NOT_YET_VALID) - .value("crl_has_expired", CRL_HAS_EXPIRED) - .value("ca_cert_cannot_sign", CA_CERT_CANNOT_SIGN) - .value("ca_cert_not_for_cert_issuer", CA_CERT_NOT_FOR_CERT_ISSUER) - .value("ca_cert_not_for_crl_issuer", CA_CERT_NOT_FOR_CRL_ISSUER); - - python::enum_("cert_usage") - .value("any", X509_Store::ANY) - .value("tls_server", X509_Store::TLS_SERVER) - .value("tls_client", X509_Store::TLS_CLIENT) - .value("code_signing", X509_Store::CODE_SIGNING) - .value("email_protection", X509_Store::EMAIL_PROTECTION) - .value("time_stamping", X509_Store::TIME_STAMPING) - .value("crl_signing", X509_Store::CRL_SIGNING); - - { - python::scope in_class = - python::class_("X509_Store") - .def("add_cert", &X509_Store::add_cert, add_cert_ols()) - .def("validate", &X509_Store::validate_cert, validate_cert_ols()) - .def("add_crl", &X509_Store::add_crl); - } - } diff --git a/src/botan/src/wrap/sqlite/codec.cpp b/src/botan/src/wrap/sqlite/codec.cpp deleted file mode 100644 index 70519ccfa..000000000 --- a/src/botan/src/wrap/sqlite/codec.cpp +++ /dev/null @@ -1,203 +0,0 @@ -/* - * Codec class for SQLite3 encryption codec. - * (C) 2010 Olivier de Gaalon - * - * Distributed under the terms of the Botan license - */ - -#include "codec.h" -#include - -Codec::Codec(void *db) -{ - InitializeCodec(db); -} - -Codec::Codec(const Codec *other, void *db) -{ - //Only used to copy main db key for an attached db - InitializeCodec(db); - m_hasReadKey = other->m_hasReadKey; - m_hasWriteKey = other->m_hasWriteKey; - m_readKey = other->m_readKey; - m_ivReadKey = other->m_ivReadKey; - m_writeKey = other->m_writeKey; - m_ivWriteKey = other->m_ivWriteKey; -} - -void Codec::InitializeCodec(void *db) -{ - m_hasReadKey = false; - m_hasWriteKey = false; - m_db = db; - - try - { - m_encipherFilter = get_cipher(BLOCK_CIPHER_STR, ENCRYPTION); - m_decipherFilter = get_cipher(BLOCK_CIPHER_STR, DECRYPTION); - m_cmac = new MAC_Filter(MAC_STR); - m_encipherPipe.append(m_encipherFilter); - m_decipherPipe.append(m_decipherFilter); - m_macPipe.append(m_cmac); - } - catch(Botan::Exception e) - { - m_botanErrorMsg = e.what(); - } -} - -void Codec::GenerateWriteKey(const char *userPassword, int passwordLength) -{ - try - { -#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,4) - PBKDF *pbkdf = get_pbkdf(PBKDF_STR); - SymmetricKey masterKey = - pbkdf->derive_key(KEY_SIZE + IV_DERIVATION_KEY_SIZE, std::string(userPassword, passwordLength), - (const byte*)SALT_STR.c_str(), SALT_SIZE, PBKDF_ITERATIONS); -#elif BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,8,0) - S2K* s2k = get_s2k(PBKDF_STR); - s2k->set_iterations(PBKDF_ITERATIONS); - s2k->change_salt((const byte*)SALT_STR.c_str(), SALT_SIZE); - - SymmetricKey masterKey = - s2k->derive_key(KEY_SIZE + IV_DERIVATION_KEY_SIZE, std::string(userPassword, passwordLength)); -#else -#error "This code requires botan 1.8 or newer" -#endif - m_writeKey = SymmetricKey(masterKey.bits_of(), KEY_SIZE); - m_ivWriteKey = SymmetricKey(masterKey.bits_of() + KEY_SIZE, IV_DERIVATION_KEY_SIZE); - - m_hasWriteKey = true; - } - catch(Botan::Exception e) - { - m_botanErrorMsg = e.what(); - } -} - -void Codec::DropWriteKey() -{ - m_hasWriteKey = false; -} - -void Codec::SetReadIsWrite() -{ - m_readKey = m_writeKey; - m_ivReadKey = m_ivWriteKey; - m_hasReadKey = m_hasWriteKey; -} - -void Codec::SetWriteIsRead() -{ - m_writeKey = m_readKey; - m_ivWriteKey = m_ivReadKey; - m_hasWriteKey = m_hasReadKey; -} - -unsigned char* Codec::Encrypt(int page, unsigned char *data, bool useWriteKey) -{ - memcpy(m_page, data, m_pageSize); - - try - { - m_encipherFilter->set_key(useWriteKey ? m_writeKey : m_readKey); - m_encipherFilter->set_iv(GetIVForPage(page, useWriteKey)); - m_encipherPipe.process_msg(m_page, m_pageSize); - m_encipherPipe.read(m_page, m_encipherPipe.remaining(Pipe::LAST_MESSAGE), Pipe::LAST_MESSAGE); - } - catch(Botan::Exception e) - { - m_botanErrorMsg = e.what(); - } - - return m_page; //return location of newly ciphered data -} - -void Codec::Decrypt(int page, unsigned char *data) -{ - try - { - m_decipherFilter->set_key(m_readKey); - m_decipherFilter->set_iv(GetIVForPage(page, false)); - m_decipherPipe.process_msg(data, m_pageSize); - m_decipherPipe.read(data, m_decipherPipe.remaining(Pipe::LAST_MESSAGE), Pipe::LAST_MESSAGE); - } - catch(Botan::Exception e) - { - m_botanErrorMsg = e.what(); - } -} - -InitializationVector Codec::GetIVForPage(u32bit page, bool useWriteKey) -{ - try - { - static unsigned char *intiv[4]; - store_le(page, (byte*)intiv); - m_cmac->set_key(useWriteKey ? m_ivWriteKey : m_ivReadKey); - m_macPipe.process_msg((byte*)intiv, 4); - return m_macPipe.read_all(Pipe::LAST_MESSAGE); - } - catch(Botan::Exception e) - { - m_botanErrorMsg = e.what(); - } -} - -const char* Codec::GetAndResetError() -{ - const char *message = m_botanErrorMsg; - m_botanErrorMsg = 0; - return message; -} - -#include "codec_c_interface.h" - -void InitializeBotan() { - LibraryInitializer::initialize(); -} -void* InitializeNewCodec(void *db) { - return new Codec(db); -} -void* InitializeFromOtherCodec(const void *otherCodec, void *db) { - return new Codec((Codec*)otherCodec, db); -} -void GenerateWriteKey(void *codec, const char *userPassword, int passwordLength) { - ((Codec*)codec)->GenerateWriteKey(userPassword, passwordLength); -} -void DropWriteKey(void *codec) { - ((Codec*)codec)->DropWriteKey(); -} -void SetWriteIsRead(void *codec) { - ((Codec*)codec)->SetWriteIsRead(); -} -void SetReadIsWrite(void *codec) { - ((Codec*)codec)->SetReadIsWrite(); -} -unsigned char* Encrypt(void *codec, int page, unsigned char *data, Bool useWriteKey) { - return ((Codec*)codec)->Encrypt(page, data, useWriteKey); -} -void Decrypt(void *codec, int page, unsigned char *data) { - ((Codec*)codec)->Decrypt(page, data); -} -void SetPageSize(void *codec, int pageSize) { - ((Codec*)codec)->SetPageSize(pageSize); -} -Bool HasReadKey(void *codec) { - return ((Codec*)codec)->HasReadKey(); -} -Bool HasWriteKey(void *codec) { - return ((Codec*)codec)->HasWriteKey(); -} -void* GetDB(void *codec) { - return ((Codec*)codec)->GetDB(); -} -const char* GetAndResetError(void *codec) -{ - return ((Codec*)codec)->GetAndResetError(); -} -void DeleteCodec(void *codec) { - Codec *deleteThisCodec = (Codec*)codec; - delete deleteThisCodec; -} diff --git a/src/botan/src/wrap/sqlite/codec.h b/src/botan/src/wrap/sqlite/codec.h deleted file mode 100644 index 2f94bcc59..000000000 --- a/src/botan/src/wrap/sqlite/codec.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Codec class for SQLite3 encryption codec. - * (C) 2010 Olivier de Gaalon - * - * Distributed under the terms of the Botan license - */ - -#ifndef _CODEC_H_ -#define _CODEC_H_ - -#include -#include -#include - -using namespace std; -using namespace Botan; - -/*These constants can be used to tweak the codec behavior as follows - *Note that once you've encrypted a database with these settings, - *recompiling with any different settings will give you a library that - *cannot read that database, even given the same passphrase.*/ - -//BLOCK_CIPHER_STR: Cipher and mode used for encrypting the database -//make sure to add "/NoPadding" for modes that use padding schemes -const string BLOCK_CIPHER_STR = "Twofish/XTS"; - -//PBKDF_STR: Key derivation function used to derive both the encryption -//and IV derivation keys from the given database passphrase -const string PBKDF_STR = "PBKDF2(SHA-160)"; - -//SALT_STR: Hard coded salt used to derive the key from the passphrase. -const string SALT_STR = "&g#nB'9]"; - -//SALT_SIZE: Size of the salt in bytes (as given in SALT_STR) -const int SALT_SIZE = 64/8; //64 bit, 8 byte salt - -//MAC_STR: CMAC used to derive the IV that is used for db page -//encryption -const string MAC_STR = "CMAC(Twofish)"; - -//PBKDF_ITERATIONS: Number of hash iterations used in the key derivation -//process. -const int PBKDF_ITERATIONS = 10000; - -//KEY_SIZE: Size of the encryption key. Note that XTS splits the key -//between two ciphers, so if you're using XTS, double the intended key -//size. (ie, "AES-128/XTS" should have a 256 bit KEY_SIZE) -const int KEY_SIZE = 512/8; //512 bit, 64 byte key. (256 bit XTS key) - -//IV_DERIVATION_KEY_SIZE: Size of the key used with the CMAC (MAC_STR) -//above. -const int IV_DERIVATION_KEY_SIZE = 256/8; //256 bit, 32 byte key - -//This is definited in sqlite.h and very unlikely to change -#define SQLITE_MAX_PAGE_SIZE 32768 - -class Codec -{ -public: - Codec(void *db); - Codec(const Codec* other, void *db); - - void GenerateWriteKey(const char *userPassword, int passwordLength); - void DropWriteKey(); - void SetWriteIsRead(); - void SetReadIsWrite(); - - unsigned char* Encrypt(int page, unsigned char *data, bool useWriteKey); - void Decrypt(int page, unsigned char *data); - - void SetPageSize(int pageSize) { m_pageSize = pageSize; } - - bool HasReadKey() { return m_hasReadKey; } - bool HasWriteKey() { return m_hasWriteKey; } - void* GetDB() { return m_db; } - const char* GetAndResetError(); - -private: - bool m_hasReadKey; - bool m_hasWriteKey; - - SymmetricKey - m_readKey, - m_writeKey, - m_ivReadKey, - m_ivWriteKey; - - Pipe - m_encipherPipe, - m_decipherPipe, - m_macPipe; - - Keyed_Filter *m_encipherFilter; - Keyed_Filter *m_decipherFilter; - MAC_Filter *m_cmac; - - int m_pageSize; - unsigned char m_page[SQLITE_MAX_PAGE_SIZE]; - void *m_db; - const char *m_botanErrorMsg; - - InitializationVector GetIVForPage(u32bit page, bool useWriteKey); - void InitializeCodec(void *db); -}; - -#endif diff --git a/src/botan/src/wrap/sqlite/codec_c_interface.h b/src/botan/src/wrap/sqlite/codec_c_interface.h deleted file mode 100644 index 1d8c8706f..000000000 --- a/src/botan/src/wrap/sqlite/codec_c_interface.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Encryption codec class C interface - * (C) 2010 Olivier de Gaalon - * - * Distributed under the terms of the Botan license - */ - -#ifndef _CODEC_C_INTERFACE_H_ -#define _CODEC_C_INTERFACE_H_ - -#ifdef __cplusplus -typedef unsigned char Bool; -#endif - -#ifdef __cplusplus -extern "C" -#endif -void InitializeBotan(); - -#ifdef __cplusplus -extern "C" -#endif -void* InitializeNewCodec(void *db); - -#ifdef __cplusplus -extern "C" -#endif -void* InitializeFromOtherCodec(const void *otherCodec, void *db); - -#ifdef __cplusplus -extern "C" -#endif -void GenerateWriteKey(void *codec, const char *userPassword, int passwordLength); - -#ifdef __cplusplus -extern "C" -#endif -void DropWriteKey(void *codec); - -#ifdef __cplusplus -extern "C" -#endif -void SetWriteIsRead(void *codec); - -#ifdef __cplusplus -extern "C" -#endif -void SetReadIsWrite(void *codec); - -#ifdef __cplusplus -extern "C" -#endif -unsigned char* Encrypt(void *codec, int page, unsigned char *data, Bool useWriteKey); - -#ifdef __cplusplus -extern "C" -#endif -void Decrypt(void *codec, int page, unsigned char *data); - -#ifdef __cplusplus -extern "C" -#endif -void SetPageSize(void *codec, int pageSize); - -#ifdef __cplusplus -extern "C" -#endif -Bool HasReadKey(void *codec); - -#ifdef __cplusplus -extern "C" -#endif -Bool HasWriteKey(void *codec); - -#ifdef __cplusplus -extern "C" -#endif -void* GetDB(void *codec); - -#ifdef __cplusplus -extern "C" -#endif -const char* GetAndResetError(void *codec); - -#ifdef __cplusplus -extern "C" -#endif -void DeleteCodec(void *codec); - -#endif \ No newline at end of file diff --git a/src/botan/src/wrap/sqlite/codecext.c b/src/botan/src/wrap/sqlite/codecext.c deleted file mode 100644 index e32d60dc2..000000000 --- a/src/botan/src/wrap/sqlite/codecext.c +++ /dev/null @@ -1,242 +0,0 @@ -/* - * Encryption codec implementation - * (C) 2010 Olivier de Gaalon - * - * Distributed under the terms of the Botan license - */ - -#ifndef SQLITE_OMIT_DISKIO -#ifdef SQLITE_HAS_CODEC - -#include "codec_c_interface.h" - -Bool HandleError(void *pCodec) -{ - const char *error = GetAndResetError(pCodec); - if (error) { - sqlite3Error((sqlite3*)GetDB(pCodec), SQLITE_ERROR, "Botan Error: %s", error); - return 1; - } - return 0; -} - -// Guessing that "see" is related to SQLite Encryption Extension" (the semi-official, for-pay, encryption codec) -// Just as useful for initializing Botan. -void sqlite3_activate_see(const char *info) -{ - InitializeBotan(); -} - -// Free the encryption codec, called from pager.c (address passed in sqlite3PagerSetCodec) -void sqlite3PagerFreeCodec(void *pCodec) -{ - if (pCodec) - DeleteCodec(pCodec); -} - -// Report the page size to the codec, called from pager.c (address passed in sqlite3PagerSetCodec) -void sqlite3CodecSizeChange(void *pCodec, int pageSize, int nReserve) -{ - SetPageSize(pCodec, pageSize); -} - -// Encrypt/Decrypt functionality, called by pager.c -void* sqlite3Codec(void *pCodec, void *data, Pgno nPageNum, int nMode) -{ - if (pCodec == NULL) //Db not encrypted - return data; - - switch(nMode) - { - case 0: // Undo a "case 7" journal file encryption - case 2: // Reload a page - case 3: // Load a page - if (HasReadKey(pCodec)) - Decrypt(pCodec, nPageNum, (unsigned char*) data); - break; - case 6: // Encrypt a page for the main database file - if (HasWriteKey(pCodec)) - data = Encrypt(pCodec, nPageNum, (unsigned char*) data, 1); - break; - case 7: // Encrypt a page for the journal file - /* - *Under normal circumstances, the readkey is the same as the writekey. However, - *when the database is being rekeyed, the readkey is not the same as the writekey. - *(The writekey is the "destination key" for the rekey operation and the readkey - *is the key the db is currently encrypted with) - *Therefore, for case 7, when the rollback is being written, always encrypt using - *the database's readkey, which is guaranteed to be the same key that was used to - *read and write the original data. - */ - if (HasReadKey(pCodec)) - data = Encrypt(pCodec, nPageNum, (unsigned char*) data, 0); - break; - } - - HandleError(pCodec); - - return data; -} - -int sqlite3CodecAttach(sqlite3 *db, int nDb, const void *zKey, int nKey) -{ - void *pCodec; - - if (zKey == NULL || nKey <= 0) - { - // No key specified, could mean either use the main db's encryption or no encryption - if (nDb != 0 && nKey < 0) - { - //Is an attached database, therefore use the key of main database, if main database is encrypted - void *pMainCodec = sqlite3PagerGetCodec(sqlite3BtreePager(db->aDb[0].pBt)); - if (pMainCodec != NULL) - { - pCodec = InitializeFromOtherCodec(pMainCodec, db); - sqlite3PagerSetCodec(sqlite3BtreePager(db->aDb[nDb].pBt), - sqlite3Codec, - sqlite3CodecSizeChange, - sqlite3PagerFreeCodec, pCodec); - } - } - } - else - { - // Key specified, setup encryption key for database - pCodec = InitializeNewCodec(db); - GenerateWriteKey(pCodec, (const char*) zKey, nKey); - SetReadIsWrite(pCodec); - sqlite3PagerSetCodec(sqlite3BtreePager(db->aDb[nDb].pBt), - sqlite3Codec, - sqlite3CodecSizeChange, - sqlite3PagerFreeCodec, pCodec); - } - - if (HandleError(pCodec)) - return SQLITE_ERROR; - - return SQLITE_OK; -} - -void sqlite3CodecGetKey(sqlite3* db, int nDb, void **zKey, int *nKey) -{ - // The unencrypted password is not stored for security reasons - // therefore always return NULL - *zKey = NULL; - *nKey = -1; -} - -int sqlite3_key(sqlite3 *db, const void *zKey, int nKey) -{ - // The key is only set for the main database, not the temp database - return sqlite3CodecAttach(db, 0, zKey, nKey); -} - -int sqlite3_rekey(sqlite3 *db, const void *zKey, int nKey) -{ - // Changes the encryption key for an existing database. - int rc = SQLITE_ERROR; - Btree *pbt = db->aDb[0].pBt; - Pager *pPager = sqlite3BtreePager(pbt); - void *pCodec = sqlite3PagerGetCodec(pPager); - - if ((zKey == NULL || nKey == 0) && pCodec == NULL) - { - // Database not encrypted and key not specified. Do nothing - return SQLITE_OK; - } - - if (pCodec == NULL) - { - // Database not encrypted, but key specified. Encrypt database - pCodec = InitializeNewCodec(db); - GenerateWriteKey(pCodec, (const char*) zKey, nKey); - - if (HandleError(pCodec)) - return SQLITE_ERROR; - - sqlite3PagerSetCodec(pPager, sqlite3Codec, sqlite3CodecSizeChange, sqlite3PagerFreeCodec, pCodec); - } - else if (zKey == NULL || nKey == 0) - { - // Database encrypted, but key not specified. Decrypt database - // Keep read key, drop write key - DropWriteKey(pCodec); - } - else - { - // Database encrypted and key specified. Re-encrypt database with new key - // Keep read key, change write key to new key - GenerateWriteKey(pCodec, (const char*) zKey, nKey); - if (HandleError(pCodec)) - return SQLITE_ERROR; - } - - // Start transaction - rc = sqlite3BtreeBeginTrans(pbt, 1); - if (rc == SQLITE_OK) - { - // Rewrite all pages using the new encryption key (if specified) - int nPageCount = -1; - sqlite3PagerPagecount(pPager, &nPageCount); - Pgno nPage = (Pgno) nPageCount; - - Pgno nSkip = PAGER_MJ_PGNO(pPager); - DbPage *pPage; - - Pgno n; - for (n = 1; rc == SQLITE_OK && n <= nPage; n++) - { - if (n == nSkip) - continue; - - rc = sqlite3PagerGet(pPager, n, &pPage); - - if (!rc) - { - rc = sqlite3PagerWrite(pPage); - sqlite3PagerUnref(pPage); - } - else - sqlite3Error(db, SQLITE_ERROR, "%s", "Error while rekeying database page. Transaction Canceled."); - } - } - else - sqlite3Error(db, SQLITE_ERROR, "%s", "Error beginning rekey transaction. Make sure that the current encryption key is correct."); - - if (rc == SQLITE_OK) - { - // All good, commit - rc = sqlite3BtreeCommit(pbt); - - if (rc == SQLITE_OK) - { - //Database rekeyed and committed successfully, update read key - if (HasWriteKey(pCodec)) - SetReadIsWrite(pCodec); - else //No write key == no longer encrypted - sqlite3PagerSetCodec(pPager, NULL, NULL, NULL, NULL); - } - else - { - //FIXME: can't trigger this, not sure if rollback is needed, reference implementation didn't rollback - sqlite3Error(db, SQLITE_ERROR, "%s", "Could not commit rekey transaction."); - } - } - else - { - // Rollback, rekey failed - sqlite3BtreeRollback(pbt, SQLITE_ERROR); - - // go back to read key - if (HasReadKey(pCodec)) - SetWriteIsRead(pCodec); - else //Database wasn't encrypted to start with - sqlite3PagerSetCodec(pPager, NULL, NULL, NULL, NULL); - } - - return rc; -} - -#endif // SQLITE_HAS_CODEC - -#endif // SQLITE_OMIT_DISKIO diff --git a/src/botan/src/wrap/sqlite/readme.txt b/src/botan/src/wrap/sqlite/readme.txt deleted file mode 100644 index 4971fd44b..000000000 --- a/src/botan/src/wrap/sqlite/readme.txt +++ /dev/null @@ -1,35 +0,0 @@ -Build instructions for BotanSqlite3 ---- - -Requirements: - 1. Botan 1.9.0 or later - 2. SQLite3 amalgamation source, version 3.7.12.1 or later (previous versions may work, some will need minor changes) - - -Building: - -1. Extract sqlite3 amalgamation to a directory and add BotanSqlite3 source files - - If desired, codec.h can be modified to tweak the encryption algothrithms and parameters. (Defaults to Twofish/XTS with 256 bit key) - -2. Apply the patch "sqlite3.diff": - $ patch -p0 < sqlite3-amalgamation.patch - - If the patching fails for some reason (ie, changes in SQLite3), it should be trivial to do it manually. - -3. Compile the sqlite3 library with Botan encryption support: - $ gcc -c sqlite3.c -o botansqlite3.o && gcc -c codec.cpp -o codec.o `pkg-config --cflags botan-1.10` && ar rcs libbotansqlite3.a botansqlite3.o codec.o - - (replace "botan-1.10" with appropriate version) - -Testing: - -1. Build the test: - $ g++ test_sqlite.cpp -o test_sqlite `botan-config-1.10 --libs` ./libbotansqlite3.a - - (replace botan-config-1.10 w/ appropriate version) - -2. Run the test - $ ./test_sqlite - -3. Look for "All seems good" diff --git a/src/botan/src/wrap/sqlite/test_sqlite.cpp b/src/botan/src/wrap/sqlite/test_sqlite.cpp deleted file mode 100644 index a516fd82b..000000000 --- a/src/botan/src/wrap/sqlite/test_sqlite.cpp +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Quick and dirty test for SQLite3 encryption codec. - * (C) 2010 Olivier de Gaalon - * - * Distributed under the terms of the Botan license - */ - -#define SQLITE_HAS_CODEC 1 - -#include -#include - -namespace SQL -{ - const char * CREATE_TABLE_TEST = - "create table 'test' (id INTEGER PRIMARY KEY, name TEXT, creationtime TEXT);"; - const char * CREATE_TABLE_TEST2 = - "create table 'test2' (id INTEGER PRIMARY KEY, name TEXT, creationtime TEXT);"; - const char * INSERT_INTO_TEST = - "INSERT INTO test (name, creationtime) VALUES ('widget', '1st time');\ - INSERT INTO test (name, creationtime) VALUES ('widget', '2nd time');\ - INSERT INTO test (name, creationtime) VALUES ('widget', '3rd time');\ - INSERT INTO test (name, creationtime) VALUES ('widget', '4th time');\ - INSERT INTO test (name, creationtime) VALUES ('widget', '5th time');"; - const char * INSERT_INTO_TEST2 = - "INSERT INTO test2 (name, creationtime) VALUES ('widget2', '1st time2');\ - INSERT INTO test2 (name, creationtime) VALUES ('widget2', '2nd time2');\ - INSERT INTO test2 (name, creationtime) VALUES ('widget2', '3rd time2');\ - INSERT INTO test2 (name, creationtime) VALUES ('widget2', '4th time2');\ - INSERT INTO test2 (name, creationtime) VALUES ('widget2', '5th time2');"; - const char * SELECT_FROM_TEST = - "SELECT * FROM test;"; - const char * SELECT_FROM_TEST2 = - "SELECT * FROM test2;"; -}; - -static int callback(void *NotUsed, int argc, char **argv, char **azColName){ - int i; - fprintf(stderr, "\t"); - for(i=0; i& input) { + CHash256 h256; + CSHA512 h512; + CRIPEMD160 h160; + std::vector out; - Botan::Keccak_1600 kk(256); - kk.update(input.data(), input.size()); - out.resize(32); - kk.final(&out[0]); - uint256 h(out); - return h; + out.resize(h512.OUTPUT_SIZE); + + std::vector out_small; + out_small.resize(h160.OUTPUT_SIZE); + + h256.Write(input.data(), input.size()); + h256.Finalize(&out[0]); + h256.Reset(); + + h512.Write(out.data(), h256.OUTPUT_SIZE); + h512.Finalize(&out[0]); + + + h160.Write(out.data(), h512.OUTPUT_SIZE / 2); + h160.Finalize(&out_small[0]); + h160.Reset(); + + h256.Write(out_small.data(), h160.OUTPUT_SIZE); + + h160.Write(out.data() + h512.OUTPUT_SIZE / 2, h512.OUTPUT_SIZE / 2); + h160.Finalize(&out_small[0]); + + out.resize(h256.OUTPUT_SIZE); + h256.Write(out_small.data(), h160.OUTPUT_SIZE); + h256.Finalize(&out[0]); + + uint256 result(out); + return result; } unsigned int MurmurHash3(unsigned int nHashSeed, const std::vector& vDataToHash) diff --git a/src/test/miner_tests.cpp b/src/test/miner_tests.cpp index f73f641d9..f8e0ccf20 100644 --- a/src/test/miner_tests.cpp +++ b/src/test/miner_tests.cpp @@ -93,17 +93,17 @@ struct { };*/ const unsigned int nonces[] = { - 25847, 24375, 15084, 43119, 32778, 18489, 72464, 3066, 21699, 148524, - 11755, 75956, 20849, 21954, 35157, 145272, 248297, 4826, 33638, 23323, - 67779, 132944, 18863, 56090, 198531, 12291, 139396, 58208, 45077, 5032, - 60910, 160315, 28228, 52228, 56715, 185713, 41299, 9809, 12440, 44195, - 174243, 74222, 2824, 31928, 57317, 2301, 56474, 38742, 206678, 241219, - 230802, 700108, 340728, 94773, 190539, 422314, 165285, 241662, 126464, 655554, - 105922, 220360, 92001, 465473, 283326, 337895, 130951, 143184, 32737, 20130, - 396207, 962689, 568567, 111795, 494699, 82970, 7992, 715083, 46184, 118701, - 406960, 201220, 672245, 111503, 20150, 269794, 218458, 443980, 67694, 253945, - 75069, 183171, 629799, 126886, 23608, 633958, 419889, 30723, 206984, 2290215, - 104632, 2612510, 274546, 394861, 230744, 353025, 1291707, 1953717, 1471195, 94639, + 336984, 142281, 190844, 28794, 60108, 38620, 50265, 1467, 51047, 5744, + 3125, 3088, 1463, 38012, 136014, 82442, 108217, 67261, 164429, 295896, + 5625, 33163, 18912, 17233, 33394, 31250, 90162, 83127, 31836, 245670, + 49024, 5885, 121125, 13475, 27802, 92250, 94286, 15970, 11536, 225728, + 139479, 120543, 125802, 2277, 29409, 188078, 44811, 777656, 739940, 463139, + 98442, 199176, 257878, 1071941, 201178, 3749, 103041, 184443, 32931, 95584, + 170413, 218370, 215087, 795280, 232087, 74312, 551792, 105084, 93228, 202816, + 142542, 309855, 83512, 136555, 514030, 246349, 687104, 210446, 58494, 164980, + 20188, 615074, 73461, 755562, 268257, 119909, 146341, 201954, 169429, 138541, + 56238, 211463, 94796, 264180, 46875, 20947, 2127286, 1343640, 481679, 565494, + 309051, 191932, 570553, 968624, 3807762, 281065, 1186138, 1168816, 231340, 715540, }; CBlockIndex CreateBlockIndex(int nHeight) @@ -166,7 +166,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity) txFirst.push_back(new CTransaction(pblock->vtx[0])); pblock->hashMerkleRoot = BlockMerkleRoot(*pblock); pblock->nNonce = nonces[i]; - /*bool fFound = false; +/* bool fFound = false; for (int j = 0; !fFound; j++) { pblock->nNonce = j; diff --git a/src/test/powhash_tests.cpp b/src/test/powhash_tests.cpp deleted file mode 100644 index 7d897fc78..000000000 --- a/src/test/powhash_tests.cpp +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (c) 2016 LBRY, Inc -// Distributed under the BSD 2-Clause License, see the accompanying -// file COPYING or https://opensource.org/licenses/BSD-2-Clause - -#include -#include -#include "hash.h" -#include "uint256.h" -#include "test/test_bitcoin.h" -#include "chainparams.h" -#include "botan/skein_512.h" -#include "botan/keccak.h" -#include "utilstrencodings.h" - -BOOST_FIXTURE_TEST_SUITE(powhash_tests, TestingSetup) - -BOOST_AUTO_TEST_CASE(test_skein_hashes) -{ - const int num_hashes = 1; - const std::string hash_inputs[num_hashes] = {"0000000000000000000000000000000000000000000000000000000000000000"}; - const std::string hash_outputs[num_hashes] = {"ecc5ea6dc8b5eb26f8a98730f11e6a38cf634328325fdfe263a44d45130295ca17168acab2ed32c6449c93986e8a3866ed715504680ca7358eb2ae7ceef0a749"}; - std::vector vIn; - vIn.resize(32); - std::vector vOut; - vOut.resize(64); - std::vector vExpectedOut; - vExpectedOut.resize(64); - for (int i = 0; i < num_hashes; ++i) - { - vIn = ParseHex(hash_inputs[i]); - vExpectedOut = ParseHex(hash_outputs[i]); - std::reverse(vExpectedOut.begin(), vExpectedOut.end()); - Botan::Skein_512 sk; - sk.update(&vIn[0], 32); - sk.final(&vOut[0]); - BOOST_CHECK(vExpectedOut == vOut); - } -} - -BOOST_AUTO_TEST_CASE(test_keccak_hashes) -{ - const int num_hashes = 1; - const std::string hash_inputs[num_hashes] = {"0000000000000000000000000000000000000000000000000000000000000000"}; - const std::string hash_outputs[num_hashes] = {"63e5f30e16932f36f608404895bca64bc86f3888a94503d6a8628b54d9ec0d29"}; - std::vector vIn; - vIn.resize(32); - std::vector vOut; - vOut.resize(32); - std::vector vExpectedOut; - vExpectedOut.resize(32); - for (int i = 0; i < num_hashes; ++i) - { - vIn = ParseHex(hash_inputs[i]); - vExpectedOut = ParseHex(hash_outputs[i]); - std::reverse(vExpectedOut.begin(), vExpectedOut.end()); - Botan::Keccak_1600 kk(256); - kk.update(&vIn[0], 32); - kk.final(&vOut[0]); - BOOST_CHECK(vExpectedOut == vOut); - } -} - -BOOST_AUTO_TEST_SUITE_END() -