diff --git a/CHANGELOG.md b/CHANGELOG.md index 1bdf94e55..c30b02e64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] ### Added - [\#295](https://github.com/Manta-Network/manta-rs/pull/295) Transaction data retrieving methods for the signer. +- [\#297](https://github.com/Manta-Network/manta-rs/pull/297) Add trusted setup verification tools, update manta-parameters ### Changed - [\#293](https://github.com/Manta-Network/manta-rs/pull/293) Add decimals argument to AssetMetadata display diff --git a/manta-parameters/Cargo.toml b/manta-parameters/Cargo.toml index 2a5b4909b..d5c5c09cd 100644 --- a/manta-parameters/Cargo.toml +++ b/manta-parameters/Cargo.toml @@ -37,7 +37,7 @@ std = ["anyhow?/std"] [dependencies] anyhow = { version = "1.0.66", optional = true, default-features = false } attohttpc = { version = "0.22.0", optional = true } -blake3 = { version = "1.3.1", default-features = false } +blake3 = { version = "1.3.3", default-features = false } git2 = { version = "0.15.0", optional = true, default-features = false } [dev-dependencies] @@ -48,7 +48,7 @@ walkdir = { version = "2.3.2", default-features = false } [build-dependencies] anyhow = { version = "1.0.66", default-features = false, features = ["std"] } -blake3 = { version = "1.3.1", default-features = false, features = ["std"] } +blake3 = { version = "1.3.3", default-features = false, features = ["std"] } gitignore = { version = "1.0.7", default-features = false } hex = { version = "0.4.3", default-features = false, features = ["std"] } walkdir = { version = "2.3.2", default-features = false } diff --git a/manta-parameters/build.rs b/manta-parameters/build.rs index 4615f6803..a999210b5 100644 --- a/manta-parameters/build.rs +++ b/manta-parameters/build.rs @@ -17,6 +17,7 @@ //! Manta Parameters Build Script use anyhow::{anyhow, bail, ensure, Result}; +use core::fmt::Display; use hex::FromHex; use std::{ collections::{HashMap, HashSet}, @@ -86,16 +87,34 @@ where Ok(fs::write(path.with_extension("checksum"), checksum)?) } -/// Compiles a raw binary file by checking its BLAKE3 checksum with the `checksums` map and copying -/// the data and checksum to the `out_dir`. +/// Loads a local file from `source` and reads it's checksum from `checksums`. #[inline] -fn compile_dat(source: &Path, out_dir: &Path, checksums: &ChecksumMap) -> Result<()> { +fn load_local_file( + source: &Path, + checksums: &ChecksumMap, +) -> Result<(Checksum, Vec, Checksum)> { let checksum = get_checksum(checksums, source)?; let data = fs::read(source)?; let found_checksum = blake3::hash(&data); + Ok((checksum, data, found_checksum.into())) +} + +/// Ensures that the `found_checksum` and `checksum` are equal for `data`, and if so writes the +/// checksum to the `out_dir` directory. +#[inline] +fn validate_and_save_checksum( + source: &Path, + out_dir: &Path, + checksum: Checksum, + data: D, + found_checksum: Checksum, +) -> Result<()> +where + D: Display, +{ ensure!( found_checksum == checksum, - "Checksum did not match for {:?}. Expected: {:?}, Found: {:?}. Data: {:?}", + "Checksum did not match for {:?}. Expected: {:?}, Found: {:?}. Data: \n\n{}", source, hex::encode(checksum), found_checksum, @@ -107,6 +126,27 @@ fn compile_dat(source: &Path, out_dir: &Path, checksums: &ChecksumMap) -> Result Ok(()) } +/// Compiles a local binary file by checking its BLAKE3 checksum with the `checksums` map and copying +/// the data and checksum to the `out_dir`. +#[inline] +fn compile_local_binary_file(source: &Path, out_dir: &Path, checksums: &ChecksumMap) -> Result<()> { + let (checksum, data, found_checksum) = load_local_file(source, checksums)?; + let hex_data = hex::encode(data); + println!("Binary Data for: {}\n\n{hex_data}", source.display()); + validate_and_save_checksum(source, out_dir, checksum, hex_data, found_checksum) +} + +/// Compiles a local text file by checking its BLAKE3 checksum with the `checksums` map and copying +/// the data and checksum to the `out_dir`. +#[allow(dead_code)] // FIXME: For some reason `.txt` files aren't working on windows. +#[inline] +fn compile_local_text_file(source: &Path, out_dir: &Path, checksums: &ChecksumMap) -> Result<()> { + let (checksum, data, found_checksum) = load_local_file(source, checksums)?; + let string_data = String::from_utf8_lossy(&data); + println!("Text String for {}: \n\n{string_data}", source.display()); + validate_and_save_checksum(source, out_dir, checksum, string_data, found_checksum) +} + /// Compiles a Git LFS file by writing its checksum to the `out_dir`. #[inline] fn compile_lfs(source: &Path, out_dir: &Path, checksums: &ChecksumMap) -> Result<()> { @@ -182,9 +222,12 @@ fn main() -> Result<()> { if !path.is_dir() && !should_ignore(path, &ignore_table)? { match path.extension() { Some(extension) => match extension.to_str() { - Some("dat") => compile_dat(path, &out_dir, &checksums)?, + Some("dat") => compile_local_binary_file(path, &out_dir, &checksums)?, + // FIXME: This should work, but for some reason hashing is broken on windows. + // + // Some("txt") => compile_local_text_file(path, &out_dir, &checksums)?, Some("lfs") => compile_lfs(path, &out_dir, &checksums)?, - Some("md") => {} + Some("md") | Some("txt") => {} _ => bail!("Unsupported data file extension: {}.", path.display()), }, _ => bail!("All data files must have an extension: {}.", path.display()), diff --git a/manta-parameters/data.checkfile b/manta-parameters/data.checkfile index 480538043..57b4af6fe 100644 --- a/manta-parameters/data.checkfile +++ b/manta-parameters/data.checkfile @@ -1,18 +1,35 @@ -af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 data/pay/testnet/parameters/address-partition-function.dat -65a28898c6f1a27a05682cee72bca89885fb7c27b63153971a5c657dfb246a83 data/pay/testnet/parameters/group-generator.dat -677ddceec2b7758b127381550f2d88a1c82624f4669b656d0167250823a35f58 data/pay/testnet/parameters/incoming-base-encryption-scheme.dat -af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 data/pay/testnet/parameters/light-incoming-base-encryption-scheme.dat -d0e90f772d44b0c4b1fb9ed9cd785d8d5451c5ac6ad77a9617c923e7a45a686b data/pay/testnet/parameters/nullifier-commitment-scheme.dat -af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 data/pay/testnet/parameters/outgoing-base-encryption-scheme.dat -af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 data/pay/testnet/parameters/schnorr-hash-function.dat -d9a787351d03f048494160a90c9895b629f34a5ef12129e937d23f4adef73b97 data/pay/testnet/parameters/utxo-accumulator-item-hash.dat -4211fceef3834f077b71618d9424001df63570542175c83d79a8a7010737554e data/pay/testnet/parameters/utxo-accumulator-model.dat -60e7b366b0e15324263942d29bc1649190b4882987a03fa2a9e4fd21ab6e777a data/pay/testnet/parameters/utxo-commitment-scheme.dat -4211fceef3834f077b71618d9424001df63570542175c83d79a8a7010737554e data/pay/testnet/parameters/viewing-key-derivation-function.dat -7e25d965b4255d8192fdfd6f2c1719e281f308eb7721f6b8cb1b60a169acd9a6 data/pay/testnet/proving/private-transfer.lfs -6302dcbfcd2c40c034bbd35dcf6fe3344e83c572ed9ef673b2154fa6c06c4924 data/pay/testnet/proving/to-private.lfs -438b1971a521ea950cb0fa2cc10c94e54aad88c798736db9d1daf7abad7641f5 data/pay/testnet/proving/to-public.lfs -6ab2557f70f5583779f7cbcd27e73e66f8fcb5704ab21792a4126e89cc15b793 data/pay/testnet/verifying/private-transfer.dat -5e2e618e067c9414fed3ca5b570f8f2b33c9a0a42b925dc723f6fdfdd7436c5c data/pay/testnet/verifying/to-private.dat -d1467307aa8b51b26fb0247eede05cdb3a8d94a3db2a5939f5e181da6024a9a5 data/pay/testnet/verifying/to-public.dat +af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 data/archive/testnet/parameters/address-partition-function.dat +65a28898c6f1a27a05682cee72bca89885fb7c27b63153971a5c657dfb246a83 data/archive/testnet/parameters/group-generator.dat +677ddceec2b7758b127381550f2d88a1c82624f4669b656d0167250823a35f58 data/archive/testnet/parameters/incoming-base-encryption-scheme.dat +af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 data/archive/testnet/parameters/light-incoming-base-encryption-scheme.dat +d0e90f772d44b0c4b1fb9ed9cd785d8d5451c5ac6ad77a9617c923e7a45a686b data/archive/testnet/parameters/nullifier-commitment-scheme.dat +af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 data/archive/testnet/parameters/outgoing-base-encryption-scheme.dat +af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 data/archive/testnet/parameters/schnorr-hash-function.dat +d9a787351d03f048494160a90c9895b629f34a5ef12129e937d23f4adef73b97 data/archive/testnet/parameters/utxo-accumulator-item-hash.dat +4211fceef3834f077b71618d9424001df63570542175c83d79a8a7010737554e data/archive/testnet/parameters/utxo-accumulator-model.dat +60e7b366b0e15324263942d29bc1649190b4882987a03fa2a9e4fd21ab6e777a data/archive/testnet/parameters/utxo-commitment-scheme.dat +4211fceef3834f077b71618d9424001df63570542175c83d79a8a7010737554e data/archive/testnet/parameters/viewing-key-derivation-function.dat +7e25d965b4255d8192fdfd6f2c1719e281f308eb7721f6b8cb1b60a169acd9a6 data/archive/testnet/proving/private-transfer.lfs +6302dcbfcd2c40c034bbd35dcf6fe3344e83c572ed9ef673b2154fa6c06c4924 data/archive/testnet/proving/to-private.lfs +438b1971a521ea950cb0fa2cc10c94e54aad88c798736db9d1daf7abad7641f5 data/archive/testnet/proving/to-public.lfs +6ab2557f70f5583779f7cbcd27e73e66f8fcb5704ab21792a4126e89cc15b793 data/archive/testnet/verifying/private-transfer.dat +5e2e618e067c9414fed3ca5b570f8f2b33c9a0a42b925dc723f6fdfdd7436c5c data/archive/testnet/verifying/to-private.dat +d1467307aa8b51b26fb0247eede05cdb3a8d94a3db2a5939f5e181da6024a9a5 data/archive/testnet/verifying/to-public.dat +af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 data/pay/parameters/address-partition-function.dat +65a28898c6f1a27a05682cee72bca89885fb7c27b63153971a5c657dfb246a83 data/pay/parameters/group-generator.dat +677ddceec2b7758b127381550f2d88a1c82624f4669b656d0167250823a35f58 data/pay/parameters/incoming-base-encryption-scheme.dat +af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 data/pay/parameters/light-incoming-base-encryption-scheme.dat +d0e90f772d44b0c4b1fb9ed9cd785d8d5451c5ac6ad77a9617c923e7a45a686b data/pay/parameters/nullifier-commitment-scheme.dat +af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 data/pay/parameters/outgoing-base-encryption-scheme.dat +af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 data/pay/parameters/schnorr-hash-function.dat +d9a787351d03f048494160a90c9895b629f34a5ef12129e937d23f4adef73b97 data/pay/parameters/utxo-accumulator-item-hash.dat +4211fceef3834f077b71618d9424001df63570542175c83d79a8a7010737554e data/pay/parameters/utxo-accumulator-model.dat +60e7b366b0e15324263942d29bc1649190b4882987a03fa2a9e4fd21ab6e777a data/pay/parameters/utxo-commitment-scheme.dat +4211fceef3834f077b71618d9424001df63570542175c83d79a8a7010737554e data/pay/parameters/viewing-key-derivation-function.dat +607db6514075bd2be038dcbad897dda52b07d3d87c75477560207de88773c748 data/pay/proving/private-transfer.lfs +eef0801ca4f5cba1d38af88264217b002c12e3b4e428b340e916a7513c161738 data/pay/proving/to-private.lfs +fdd8c77c83965f69ddbf33efdab3b396dd7cc8cd073a76482864ca505ce50853 data/pay/proving/to-public.lfs +6c5255a77a6a06fcf5ed556348432860129b7f30e74e41cf5b7109a6208bdd81 data/pay/verifying/private-transfer.dat +543bc8711ba68e306660a33c37e630513e4bf341d2e7c6bb5171432571c3c95a data/pay/verifying/to-private.dat +967013d7798b4963612143d57a66d5fe5e8afa709eb69c4d274bca99b6e9be96 data/pay/verifying/to-public.dat 25d2368d77dc834774504ca9b001fd4b5926c24c51e87f8e208db5fe40040075 data/ppot/round72powers19.lfs diff --git a/manta-parameters/data/pay/testnet/parameters/address-partition-function.dat b/manta-parameters/data/archive/testnet/parameters/address-partition-function.dat similarity index 100% rename from manta-parameters/data/pay/testnet/parameters/address-partition-function.dat rename to manta-parameters/data/archive/testnet/parameters/address-partition-function.dat diff --git a/manta-parameters/data/pay/testnet/parameters/group-generator.dat b/manta-parameters/data/archive/testnet/parameters/group-generator.dat similarity index 100% rename from manta-parameters/data/pay/testnet/parameters/group-generator.dat rename to manta-parameters/data/archive/testnet/parameters/group-generator.dat diff --git a/manta-parameters/data/pay/testnet/parameters/incoming-base-encryption-scheme.dat b/manta-parameters/data/archive/testnet/parameters/incoming-base-encryption-scheme.dat similarity index 100% rename from manta-parameters/data/pay/testnet/parameters/incoming-base-encryption-scheme.dat rename to manta-parameters/data/archive/testnet/parameters/incoming-base-encryption-scheme.dat diff --git a/manta-parameters/data/pay/testnet/parameters/light-incoming-base-encryption-scheme.dat b/manta-parameters/data/archive/testnet/parameters/light-incoming-base-encryption-scheme.dat similarity index 100% rename from manta-parameters/data/pay/testnet/parameters/light-incoming-base-encryption-scheme.dat rename to manta-parameters/data/archive/testnet/parameters/light-incoming-base-encryption-scheme.dat diff --git a/manta-parameters/data/pay/testnet/parameters/nullifier-commitment-scheme.dat b/manta-parameters/data/archive/testnet/parameters/nullifier-commitment-scheme.dat similarity index 100% rename from manta-parameters/data/pay/testnet/parameters/nullifier-commitment-scheme.dat rename to manta-parameters/data/archive/testnet/parameters/nullifier-commitment-scheme.dat diff --git a/manta-parameters/data/pay/testnet/parameters/outgoing-base-encryption-scheme.dat b/manta-parameters/data/archive/testnet/parameters/outgoing-base-encryption-scheme.dat similarity index 100% rename from manta-parameters/data/pay/testnet/parameters/outgoing-base-encryption-scheme.dat rename to manta-parameters/data/archive/testnet/parameters/outgoing-base-encryption-scheme.dat diff --git a/manta-parameters/data/pay/testnet/parameters/schnorr-hash-function.dat b/manta-parameters/data/archive/testnet/parameters/schnorr-hash-function.dat similarity index 100% rename from manta-parameters/data/pay/testnet/parameters/schnorr-hash-function.dat rename to manta-parameters/data/archive/testnet/parameters/schnorr-hash-function.dat diff --git a/manta-parameters/data/pay/testnet/parameters/utxo-accumulator-item-hash.dat b/manta-parameters/data/archive/testnet/parameters/utxo-accumulator-item-hash.dat similarity index 100% rename from manta-parameters/data/pay/testnet/parameters/utxo-accumulator-item-hash.dat rename to manta-parameters/data/archive/testnet/parameters/utxo-accumulator-item-hash.dat diff --git a/manta-parameters/data/pay/testnet/parameters/utxo-accumulator-model.dat b/manta-parameters/data/archive/testnet/parameters/utxo-accumulator-model.dat similarity index 100% rename from manta-parameters/data/pay/testnet/parameters/utxo-accumulator-model.dat rename to manta-parameters/data/archive/testnet/parameters/utxo-accumulator-model.dat diff --git a/manta-parameters/data/pay/testnet/parameters/utxo-commitment-scheme.dat b/manta-parameters/data/archive/testnet/parameters/utxo-commitment-scheme.dat similarity index 100% rename from manta-parameters/data/pay/testnet/parameters/utxo-commitment-scheme.dat rename to manta-parameters/data/archive/testnet/parameters/utxo-commitment-scheme.dat diff --git a/manta-parameters/data/pay/testnet/parameters/viewing-key-derivation-function.dat b/manta-parameters/data/archive/testnet/parameters/viewing-key-derivation-function.dat similarity index 100% rename from manta-parameters/data/pay/testnet/parameters/viewing-key-derivation-function.dat rename to manta-parameters/data/archive/testnet/parameters/viewing-key-derivation-function.dat diff --git a/manta-parameters/data/pay/testnet/proving/private-transfer.lfs b/manta-parameters/data/archive/testnet/proving/private-transfer.lfs similarity index 100% rename from manta-parameters/data/pay/testnet/proving/private-transfer.lfs rename to manta-parameters/data/archive/testnet/proving/private-transfer.lfs diff --git a/manta-parameters/data/pay/testnet/proving/to-private.lfs b/manta-parameters/data/archive/testnet/proving/to-private.lfs similarity index 100% rename from manta-parameters/data/pay/testnet/proving/to-private.lfs rename to manta-parameters/data/archive/testnet/proving/to-private.lfs diff --git a/manta-parameters/data/pay/testnet/proving/to-public.lfs b/manta-parameters/data/archive/testnet/proving/to-public.lfs similarity index 100% rename from manta-parameters/data/pay/testnet/proving/to-public.lfs rename to manta-parameters/data/archive/testnet/proving/to-public.lfs diff --git a/manta-parameters/data/pay/testnet/verifying/private-transfer.dat b/manta-parameters/data/archive/testnet/verifying/private-transfer.dat similarity index 100% rename from manta-parameters/data/pay/testnet/verifying/private-transfer.dat rename to manta-parameters/data/archive/testnet/verifying/private-transfer.dat diff --git a/manta-parameters/data/pay/testnet/verifying/to-private.dat b/manta-parameters/data/archive/testnet/verifying/to-private.dat similarity index 100% rename from manta-parameters/data/pay/testnet/verifying/to-private.dat rename to manta-parameters/data/archive/testnet/verifying/to-private.dat diff --git a/manta-parameters/data/pay/testnet/verifying/to-public.dat b/manta-parameters/data/archive/testnet/verifying/to-public.dat similarity index 100% rename from manta-parameters/data/pay/testnet/verifying/to-public.dat rename to manta-parameters/data/archive/testnet/verifying/to-public.dat diff --git a/manta-parameters/data/pay/README.md b/manta-parameters/data/pay/README.md new file mode 100644 index 000000000..1277b3b16 --- /dev/null +++ b/manta-parameters/data/pay/README.md @@ -0,0 +1,14 @@ +# MantaPay Parameters + +The parameters in this directory are the current parameters of the MantaPay protocol, namely the proving and verifying keys for Groth16 proofs and base parameters for crytographic hash functions and accumulators. + +Whenever these change the old parameters should be moved to their own directory within `manta-parameters/data/archive` and the new parameters should be placed here at `manta-parameters/data/pay`. The descriptions below should be updated to reflect the changes. + +## Current Parameters + +The current parameters are the result of the MantaPay trusted setup ceremony after 4,382 rounds of contribution. The list of contribution hashes can be found at `manta-parameters/data/pay/trusted-setup/contribution_hashes.txt`. These keys were computed relative to the base parameters for cryptographic hash functions and accumulators found in `manta-parameters/pay/parameters`, which were randomly sampled. + +## Archived Parameters + +### Testnet +The parameters in `manta-parameters/data/archive/testnet` are those used for the Dolphin testnet v3. The base parameters for cryptographic hash functions and accumulators were randomly sampled. The Groth16 proving and verifying keys were computed relative to these base parameters and one round of randomly sampled contribution. These proving and verifying keys are not secure for use in production. \ No newline at end of file diff --git a/manta-parameters/data/pay/parameters/address-partition-function.dat b/manta-parameters/data/pay/parameters/address-partition-function.dat new file mode 100644 index 000000000..e69de29bb diff --git a/manta-parameters/data/pay/parameters/group-generator.dat b/manta-parameters/data/pay/parameters/group-generator.dat new file mode 100644 index 000000000..363be5410 --- /dev/null +++ b/manta-parameters/data/pay/parameters/group-generator.dat @@ -0,0 +1,2 @@ +ÍŸìÂö¥ÿ'ÉøëíAÉ|@‘· +ÖŽX"‘þ÷»®²¤ \ No newline at end of file diff --git a/manta-parameters/data/pay/parameters/incoming-base-encryption-scheme.dat b/manta-parameters/data/pay/parameters/incoming-base-encryption-scheme.dat new file mode 100644 index 000000000..b2501e1fe Binary files /dev/null and b/manta-parameters/data/pay/parameters/incoming-base-encryption-scheme.dat differ diff --git a/manta-parameters/data/pay/parameters/light-incoming-base-encryption-scheme.dat b/manta-parameters/data/pay/parameters/light-incoming-base-encryption-scheme.dat new file mode 100644 index 000000000..e69de29bb diff --git a/manta-parameters/data/pay/parameters/nullifier-commitment-scheme.dat b/manta-parameters/data/pay/parameters/nullifier-commitment-scheme.dat new file mode 100644 index 000000000..994b6fc76 Binary files /dev/null and b/manta-parameters/data/pay/parameters/nullifier-commitment-scheme.dat differ diff --git a/manta-parameters/data/pay/parameters/outgoing-base-encryption-scheme.dat b/manta-parameters/data/pay/parameters/outgoing-base-encryption-scheme.dat new file mode 100644 index 000000000..e69de29bb diff --git a/manta-parameters/data/pay/parameters/schnorr-hash-function.dat b/manta-parameters/data/pay/parameters/schnorr-hash-function.dat new file mode 100644 index 000000000..e69de29bb diff --git a/manta-parameters/data/pay/parameters/utxo-accumulator-item-hash.dat b/manta-parameters/data/pay/parameters/utxo-accumulator-item-hash.dat new file mode 100644 index 000000000..b056bff3f Binary files /dev/null and b/manta-parameters/data/pay/parameters/utxo-accumulator-item-hash.dat differ diff --git a/manta-parameters/data/pay/parameters/utxo-accumulator-model.dat b/manta-parameters/data/pay/parameters/utxo-accumulator-model.dat new file mode 100644 index 000000000..2bc256aa6 Binary files /dev/null and b/manta-parameters/data/pay/parameters/utxo-accumulator-model.dat differ diff --git a/manta-parameters/data/pay/parameters/utxo-commitment-scheme.dat b/manta-parameters/data/pay/parameters/utxo-commitment-scheme.dat new file mode 100644 index 000000000..b4179455b Binary files /dev/null and b/manta-parameters/data/pay/parameters/utxo-commitment-scheme.dat differ diff --git a/manta-parameters/data/pay/parameters/viewing-key-derivation-function.dat b/manta-parameters/data/pay/parameters/viewing-key-derivation-function.dat new file mode 100644 index 000000000..2bc256aa6 Binary files /dev/null and b/manta-parameters/data/pay/parameters/viewing-key-derivation-function.dat differ diff --git a/manta-parameters/data/pay/proving/private-transfer.lfs b/manta-parameters/data/pay/proving/private-transfer.lfs new file mode 100644 index 000000000..32bfdb598 --- /dev/null +++ b/manta-parameters/data/pay/proving/private-transfer.lfs @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:582e61d9afff4098173c2dbc9ddd49b6465d7ddb308fef71ec4cbf74504dfdaa +size 15450928 diff --git a/manta-parameters/data/pay/proving/to-private.lfs b/manta-parameters/data/pay/proving/to-private.lfs new file mode 100644 index 000000000..d46b527e4 --- /dev/null +++ b/manta-parameters/data/pay/proving/to-private.lfs @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ec4fc2c346ff975a0fe718cc5cdf362e480546c4706c3902f79600a319b609b +size 3690160 diff --git a/manta-parameters/data/pay/proving/to-public.lfs b/manta-parameters/data/pay/proving/to-public.lfs new file mode 100644 index 000000000..1394f27b4 --- /dev/null +++ b/manta-parameters/data/pay/proving/to-public.lfs @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa8ba795dcc9a678bb01c3e9c6da202d6d10bf3f0fb1122def93b93cc659f4e2 +size 11040176 diff --git a/manta-parameters/data/pay/trusted-setup/contribution_hashes.txt b/manta-parameters/data/pay/trusted-setup/contribution_hashes.txt new file mode 100644 index 000000000..4619bbbd5 --- /dev/null +++ b/manta-parameters/data/pay/trusted-setup/contribution_hashes.txt @@ -0,0 +1,4382 @@ +a04e0ec86d8b09dad258c404d561470b Contribution 1 +ce7ad4cc00b9ed517f4d5dcbb60ae5d1 Contribution 2 +30d7909e30248517e0f805522c59a25f Contribution 3 +2686841e4cb660c032228efd4784939c Contribution 4 +2656c69ba184a56be5c1a6c23e453945 Contribution 5 +e84ca9561ebdb939dbb3a0a1e6a26750 Contribution 6 +737b2ea3b25ffc86edaae2bcf60292b9 Contribution 7 +c95157ac8907bfd32458201efdf6d93b Contribution 8 +c3689124c208a7f75700fef610ccafe7 Contribution 9 +1e8eb34e1c8fff56b48754416b1bacf3 Contribution 10 +9987a67f007b9433158a0f17d6901f05 Contribution 11 +e5ff68e36eb142385ddb218d466c6ccb Contribution 12 +4d57ea266de595f8e79405b28b322407 Contribution 13 +321786e447491d86b9eabcd69f76aee4 Contribution 14 +a91540f009c6a6f77d09249f0152f17a Contribution 15 +4a2d0f62d00d8304b061ab6f33b0a050 Contribution 16 +295b897345944daeed9ef0061f428c62 Contribution 17 +0b6846696880418eccf62c60884eccb2 Contribution 18 +fb3ef9cfe628beab0f70cdc4d35c8cfd Contribution 19 +3218f7c0958e6cc4cb90c2f49c7574df Contribution 20 +469855f8807432b4f2202d1158e25800 Contribution 21 +57b37a039e4e925980518042c2556b15 Contribution 22 +463f54009adc0b52d85ba1c62cca06da Contribution 23 +45e92f7f1ad22fb0ee2691a8fa505222 Contribution 24 +17a520fe29769e2a686f2e16c20ea5e3 Contribution 25 +51f950f83d1f22094edcf40a2fd7965d Contribution 26 +f848c21d6a2525f742593c6c432037fd Contribution 27 +28a645e17d323cd8d75eba958a9e5190 Contribution 28 +4160e0e034b68a80b501608f9c930aba Contribution 29 +89cfdc108d194dff186b73b49d6bc418 Contribution 30 +3961f25a14ca16accc05b15b7e0f3325 Contribution 31 +3b1426601e0338b0432803d364fc1131 Contribution 32 +5aae8476c4c9ad51c6854f6cef1aa6e6 Contribution 33 +45b64540397f47354cc70273dbdf1cd3 Contribution 34 +f2ef660d055302a6405ed51a8e1e9ecb Contribution 35 +63a028ed342e0ff29da85e1aa0bf0647 Contribution 36 +15ad8858d67f7e61ce844d4655128d76 Contribution 37 +bcef8c3bf3e284fc85c9e0848c9063ce Contribution 38 +48cf08bd137422a83651dd76520f6088 Contribution 39 +53ce2a44b2f50ed540737e394b10e016 Contribution 40 +048e69cb37e4003e8a724ae517166567 Contribution 41 +a708fbcd6391b8c0cd979b076da21013 Contribution 42 +84d66cc4a9d31084e1d100f64b6c22ce Contribution 43 +fed76ef89903a727246618a56a2ed20c Contribution 44 +1bd160e25f7f52af14343acaffc8717a Contribution 45 +4b1db8a4626e1881c067461c45083f00 Contribution 46 +1c0f1da3a9ad7303cf86b352495c4a65 Contribution 47 +25e3177e0b2c2cabd7ecbf5a7dbfcc42 Contribution 48 +e093b95c92fdce133733fe7b893c16a9 Contribution 49 +38814afc59b9efa994d4109fcc3cfa99 Contribution 50 +8ffacba8f790aeda9c8dba772f39897b Contribution 51 +365465cd86de6ba796caea21c3b12748 Contribution 52 +9ac7c4e08a7be731ad37ba8e964aaac4 Contribution 53 +9e2ffe846b31c6aa19d9cb215dab400c Contribution 54 +930244263c1d8c2e820fc15f6c5e1f9f Contribution 55 +99b5bb3f705c565149647334a067aa13 Contribution 56 +0f6cd9982f5beb725b79fd6c482fe71a Contribution 57 +6e2ecb0c3f9e800f2321cb22e498a127 Contribution 58 +0d2b20df18d0f349603e568e9f068ad5 Contribution 59 +60a35690b4486b5337b58d74a78502f3 Contribution 60 +dbe23d5174212634b4382d9552b22d9c Contribution 61 +dafbc8d9d5ac51b6929fee6152db2dc5 Contribution 62 +71524d334cf27b568a89aaae64378c8b Contribution 63 +698bbce9f905dd47d0abb67ce23e984b Contribution 64 +cddea2094aa448fc314c2de2c116d0e7 Contribution 65 +09ca4322b9251ebb715118f142bf53ba Contribution 66 +340521f78a6567a94d5dfa78d03e0240 Contribution 67 +bd811037ca36692d7fa73a5e2b9910b4 Contribution 68 +99a44355d78de0e7a0c5f517b1ac94f7 Contribution 69 +0771f8db71cc7bdacfe2bc28a3e0969b Contribution 70 +f2342c965df557fbee165b0dbbbd14bd Contribution 71 +1b0e1c36a62ace44c61ba0d9b8eeaee8 Contribution 72 +8b40dad6e9784c7763cb07d9489848d1 Contribution 73 +84f6a0b931d7af02784a82300f4b283d Contribution 74 +27cbd79e05bab3c733d1482f19ccd1f8 Contribution 75 +2335419b9475cd930beb2a36a38da2f5 Contribution 76 +46d7ceba0dcf7072745068354d6043fc Contribution 77 +1c86921ef5c616c2a70933dd332b38ce Contribution 78 +17d1a7ae54b5deb837e5fdc47b8338db Contribution 79 +06660c6994902501a79ec93de9492b13 Contribution 80 +2e1f7ea59f3cbf822fb366a50821a53b Contribution 81 +1d96ed87cb2d6b4a7490e6252b1002fc Contribution 82 +66a5ff60c2700696edc424854d9cfb30 Contribution 83 +d252e21ad3c7198f640ccbaa15cabe6b Contribution 84 +d33defd5d6cc9f74f6644c05579bf8d6 Contribution 85 +71d58c9c978786ae51901836536daf5b Contribution 86 +08b96e57ba0373ca6421c9a075a8471f Contribution 87 +94eadd6657acc7c51ecbc01b986ff471 Contribution 88 +6d50852533287bd0092e315e51cd55ce Contribution 89 +4dc0c0036a9731c0158d5a82a129d0d5 Contribution 90 +d1e374960536c7babfd029d9c1ea0aa6 Contribution 91 +7fc52524bc878295bef2788abe49ea27 Contribution 92 +3d5df36ff88f8ef3191ff7b1e6bec0d0 Contribution 93 +22132e40c1aea017bb45a62fe4899132 Contribution 94 +382675d3b06db758d6c39757dc551ce0 Contribution 95 +d7af8c47070cdb3ca27f1710f8b11087 Contribution 96 +833f291ce8281d991edd47bdf2adfbc7 Contribution 97 +f76a34c7e79cb73ad5a70b1a7199942f Contribution 98 +0bd86d91f3e62551fe9cc82783e81ff5 Contribution 99 +c99f1dcd6bf24feb2b7bad4dce1ecfc8 Contribution 100 +801f215389cab8c842bd68715aaa9aa0 Contribution 101 +9fb1364eb2602962086780c45cf914fe Contribution 102 +45b9ea91a077c7f34f9fec47f71fa756 Contribution 103 +fc87ac4270a275602c46f1f35ce2378f Contribution 104 +52a9e18ed4f83509f75d70adb2a9cc87 Contribution 105 +a577af2b470bea2d053261cc4f4a80fc Contribution 106 +b67559d95b0469c221a344cc7e7f4710 Contribution 107 +aacecb43544bd8f7d3115920d1642ec7 Contribution 108 +74952616d24c1d079e0e294814f19121 Contribution 109 +a17cb9f0afc5c16d2929c3545eca9f30 Contribution 110 +dbb3fa492ccd57744d6807d7a317f9c9 Contribution 111 +37bff9b563b9779a5ffe76823c1802f0 Contribution 112 +e34e338716646949d18bb35bc08cc0d6 Contribution 113 +08d5daa0458be8d42e61375749a30edb Contribution 114 +53dc502f736b56390d735a158e6f1f44 Contribution 115 +615d33de359675930468954c1fc0b90a Contribution 116 +827526546721ce2bd0d33581675a7d0c Contribution 117 +25c0aa31c47bdc1ff90a8da6114b2b81 Contribution 118 +0be1f1d15d8673d54f864d581074ff13 Contribution 119 +0bc8097f6b94f5f95bca581ab6064cab Contribution 120 +31d94d802aa9a71072aa9ee77d87cd80 Contribution 121 +d43ce2c41035644c97995cc38881f557 Contribution 122 +6a2a3fa1cac1918437858415a40b1cdf Contribution 123 +f3bbb17ea69e2a1f7422756f0d2d6016 Contribution 124 +6e4c4429b5d32ce19c85246a0a249875 Contribution 125 +21fac2874225676e87bbd10ae2bad6c3 Contribution 126 +cfc09953255b0efe1a0d46d2faa97803 Contribution 127 +6f30da07bdbad3f200e93f62273f749f Contribution 128 +ca569e5655eef354ec3ffbc491cadb9c Contribution 129 +6ce03498198b2fee69841f7b1f1e382c Contribution 130 +3fb1c528772fbb556ec2e140743d9219 Contribution 131 +369046e89a3baecf301f3eb3ed8b359d Contribution 132 +a14332aa56e2a58e6d05410bc3ba60fb Contribution 133 +79e1df4099805d5c9b7e9113b4f1b4fa Contribution 134 +d2b0b27065905b31f3a5c4acd7752dfa Contribution 135 +6c045d1b7e55b717c6643386a8306d15 Contribution 136 +4fcce38efe0761e4e53e27c8c284e3a5 Contribution 137 +4d2b5bbfe65db0fb8331505f38f72bbe Contribution 138 +4051a58472730692986d22ba2bf34df2 Contribution 139 +f47b6cdbb5c29a302aaf8b03e18db9e6 Contribution 140 +2e2d16fafb1e16875b7ed64358d06b1e Contribution 141 +669a7c9ae6cfd14bde97544f14b8c6b9 Contribution 142 +5bc2ad79dfa35ba0a76e890059bb7f19 Contribution 143 +0a9e666a2a5b09b97dfd91042cc1e670 Contribution 144 +8a655b894e7904d52a066690ce4c7921 Contribution 145 +2f963b1e12aef4d4313f3af97a0632a3 Contribution 146 +798bbf5cac79901449447c3ce2c365da Contribution 147 +932f79f85ff19400b008c8d8f30c51e5 Contribution 148 +e7bf02e7454cfdaa2b7d36750a1c8fe0 Contribution 149 +5a83b76f3aaf9655386ada4101f2a065 Contribution 150 +a4a532b99d6e3ffc96775dfcbcbc92cb Contribution 151 +0c49040c4f5ecedd47edee29ad12fc22 Contribution 152 +8ae7f554a0ab5b6eb90116576bfd7d89 Contribution 153 +cc04bf05aa454534c5922adef400d5d1 Contribution 154 +9c4cd469cb3b6e09c98ea7c18db2c8ba Contribution 155 +1663ad1ebc1e7eb0a3f56fef170dd054 Contribution 156 +884289fc6a91d1bfebfacd3997223904 Contribution 157 +8a0980ce2f46860133d28ca31bb9e905 Contribution 158 +684eb527803fc7ad733d5aedbffe32b8 Contribution 159 +7c66faad885d5993b1872f9380168faa Contribution 160 +c377f4c490eb47cb4338bd1cf6073a0e Contribution 161 +1c33ee4a24aafd0d7d8a644bdfe99601 Contribution 162 +bf8280ea4fdf69ad28ed7e6ae22d0b5d Contribution 163 +cfa44ce6c9c14f3c8f21faf0b05dbe0f Contribution 164 +65e424bd9ade38622e9f0279516f47ff Contribution 165 +d4998f5d3bb8428f349c1a68dd0801d2 Contribution 166 +933ca2625c6d94375880628d856f48bd Contribution 167 +81058520e1cc4778274c9ad4dfee19f7 Contribution 168 +09f2d0cac6d7afb4b4c17f64dd1f3880 Contribution 169 +9698d5136fdee752979e03d9369f88ff Contribution 170 +c09922d7017ca64f9da7683942f6a746 Contribution 171 +84f44d3d928b0b227553308becc1a3b6 Contribution 172 +2794ddb7de2b508e714294295bcfadf1 Contribution 173 +a2fefeb64f734032016b552f298d5cf5 Contribution 174 +c2633e6a06c7753d01b026361fef1d82 Contribution 175 +b42b6120060362ecd94bb59427e45c00 Contribution 176 +ad1d74cfb6d60fa3f5dda72c7cfe40a5 Contribution 177 +c022bba9456955b40c8cb81ab53466e4 Contribution 178 +19084f287cb576b314e45c72d496b977 Contribution 179 +9ff94df7223f243c312448953adecd1a Contribution 180 +a3a4c66315886da23339e7b198dc5513 Contribution 181 +0bdb6b03d20f3e0d75e7dd5dc60a0336 Contribution 182 +ff8010b0c2b648c3a0c0d8f5832da6b9 Contribution 183 +9f3b5f946492a725516ba6b36501b121 Contribution 184 +029dcf46616d9cd4e9f197b5e590aca2 Contribution 185 +2623652e175db578a4ce2ebc8a9d452f Contribution 186 +665fefe17dc47fe8dd658c6e2657bf00 Contribution 187 +de1249bafe87e6c9837b19b07e7f4424 Contribution 188 +17921cc580dbab98665af7ad7938019f Contribution 189 +29f1c6be56935543acd42ed1d43b4315 Contribution 190 +33216d512f3ffc0fa032c101c3711c9d Contribution 191 +7eb8d18c5bb539e6f3a1efa7cf8cb0ff Contribution 192 +ebb36030170b6a68637857b34cce4a7b Contribution 193 +f6ad5eb57f35eea8de7be6dc300831bc Contribution 194 +f5c871a3f97d3457e3204d6e68eab061 Contribution 195 +016eac3485848d6cecbcdda78f0d38b7 Contribution 196 +c6a765637f64ce817853be9011118fdc Contribution 197 +d708bcd9ef75109c4a504acf8c56c7e5 Contribution 198 +59af74b2121dc94e14ba602eedcbb318 Contribution 199 +2d5355dbb9dc126a5049cb823919ec99 Contribution 200 +454cacb4e185182f29fff52a6e568fd6 Contribution 201 +992cb88dba43e8ca8dea62d670e29da1 Contribution 202 +d44da305a0118a66e29f1ad3dcb3cf54 Contribution 203 +dbbdee3778239ae1faf872d0dae1a372 Contribution 204 +c9dfe4d59f692f57de6ea2302a9cb118 Contribution 205 +d78425cec15c4fdc5a8b5d680c4f0b09 Contribution 206 +ed88bd81d6f6c75f77c31ca9904e31e5 Contribution 207 +43e4762c4788d1c171d8b51bfc5e8de0 Contribution 208 +071118b24b769c799c6763d6edb6472f Contribution 209 +7a1589ecaa97b87f506f246568d72201 Contribution 210 +243fdb22b832ed260d137552315c09ed Contribution 211 +030ec47e64daff58ce81c92ab2216142 Contribution 212 +cc799ad4698450a873dc13078d2f68ed Contribution 213 +6913484e7e39cf54180df7714c7374fb Contribution 214 +513164b056f95940e3026757511318a4 Contribution 215 +b1ab864aaf06e96bf34f640d667e7822 Contribution 216 +bfd40c5192ffc6e8cb66a02a469f5c74 Contribution 217 +ff67f157c94c720677c52a23b817856e Contribution 218 +ff4c608753e962a9187d267183bdc0cc Contribution 219 +018f88ff04831419bc6c4d70ae4e89dc Contribution 220 +8c4e6356f680fc1d98a4455a19915f1f Contribution 221 +dd8c1652194a37330f0b32d2162fc04d Contribution 222 +e94c48311dfbcb85b902bf451cb9111e Contribution 223 +6a2786b25abbcc95e4ea49f016b0a0b6 Contribution 224 +a3a663123421fb8ab9059a31a80bc718 Contribution 225 +c55290e7c3c32fd7ce1e86679a2e1009 Contribution 226 +3818d86c0af568d3a5f0a052af42cbe6 Contribution 227 +44c7719243ea0e205af69e27b06ff1fe Contribution 228 +2741c1ae90c4ffaf5ee07ada4378c0ee Contribution 229 +d171ae3158a7d21eec37ccedda57cafe Contribution 230 +67068320bd8cbbd2e69c4925a306936b Contribution 231 +e52a6200e4f8a5edf6d71a7519fcd95b Contribution 232 +9c1c19ebf2eba0888990d1a3f853f187 Contribution 233 +81b30808330083cfc4c3fb53d68e323f Contribution 234 +462722048bcd65e200e9e06688f1f5b3 Contribution 235 +fd85bbe7e5aac276808409d066cc51d4 Contribution 236 +7f00f3f7d7908534266e7c86ef03c3de Contribution 237 +0619852c2488cbab8187461e1c6e3317 Contribution 238 +ee91fc8a50ca287847390a6a6bd1d223 Contribution 239 +3fea15e80c4cfc996737fe16183a3abb Contribution 240 +8c44794a41e59017ae740fd13f5d214f Contribution 241 +cb48e4b978a7d717a56ad9f34fefd16b Contribution 242 +fb52527cca76a4eb624b4921c1a17c9b Contribution 243 +50a3a1460ea9af37b7a6b723d7fed6c7 Contribution 244 +0594879684424c634daaa2d18eb80dad Contribution 245 +c08c2e53848d54a242b5331cc8eb5196 Contribution 246 +1b0ed3055d2c6b9069dfa14d19473528 Contribution 247 +90166c8830509acca18a1fec7420af48 Contribution 248 +9491ee37181f65aa6c4954f11105004d Contribution 249 +07074ea7d9d4163660575ab043d76b85 Contribution 250 +338611c1e8f12d6e6f252519e1ffbdbb Contribution 251 +eb7ed09ecc69836c924d42f070798aa8 Contribution 252 +24125bae90ac6da52faee5819f915eff Contribution 253 +04764d606a49d78392048821cb36ce39 Contribution 254 +e9a311f2c6b35e6f28316f3cb7a1b3cb Contribution 255 +4cdb07f9bdd897e9403ba75589e7fe88 Contribution 256 +f501f34edaee3fe967e328180cc9b334 Contribution 257 +6dc1aa45cc09968a440935eef9a9d379 Contribution 258 +88c32b9cccb4385a0004b2468b286011 Contribution 259 +0a54e9b6c5758d27de79f7e497c0af4a Contribution 260 +20c986a919361aa0ca18388f351bbe11 Contribution 261 +dfbced6da7d4456407f049287401443d Contribution 262 +a19215bebec2be1702ef3ba38d7e5e1e Contribution 263 +55f08cbeaf9d85269d89f7731c3e6ed9 Contribution 264 +2e740ca1f527f5c9e44cfb618404853f Contribution 265 +0df6d703503a2e2db57c6609f67c1460 Contribution 266 +f641d4fc27fd390db13d86a98aff9f2f Contribution 267 +a2777a477d4be6db663aac26162f7346 Contribution 268 +0d46c5b959040bbc15a7566070fd9c18 Contribution 269 +0753d708cb84678a85cc8547dd4dcf6b Contribution 270 +8ce8419c7528bf69a0f56fea194524cf Contribution 271 +ff801a1cd4217c33b6676443d1e6bbe0 Contribution 272 +7df13e1271d8d2829ca908a329da89d3 Contribution 273 +d9bb94ea849ebcd5321a1841a5146cbb Contribution 274 +6b2c95780944d9398a87b93b1ea73655 Contribution 275 +755f108c9e22c82e488ec485bb77cd22 Contribution 276 +86dfee39c4b7992513082956d1ec4f35 Contribution 277 +ce04eaa4f0fc5eb22f7353c4217c585a Contribution 278 +0771ad8c5e2add2a1892648586e65fb7 Contribution 279 +e7109ddec1317bef1f39242b25bbbc20 Contribution 280 +9bfdbebab7f9887fad34d60eb0208dd4 Contribution 281 +3c5a08b4d412bd7f0d2a7c06a84e4430 Contribution 282 +40a8254c87781484a4eeecb4979b2077 Contribution 283 +e292db8c5b226e47dcee7857d0406087 Contribution 284 +3f56826ab136f43d6bf72bb3cf0fea71 Contribution 285 +16f2190c36f078c2f17873e6cc8a41c9 Contribution 286 +ddd3764cf2391911d51dae48041c3f17 Contribution 287 +fb3467626ba91eb70e7e2918a2262be5 Contribution 288 +ac26a5e53874a8b0ab1aa3eecfb071ca Contribution 289 +3c587ebb539d3939a31e0cc927d3f6c5 Contribution 290 +e8f9d195ef22aac6b2f3d4ce705e8a31 Contribution 291 +9618d42aa349ef58fdbc39fb693bfa65 Contribution 292 +60a49dbfb1af61c6bc2439ecda4b154b Contribution 293 +edaa520f655c32d7943ff16e5eb5a05e Contribution 294 +fcfc35496511d6a183c95a495695c953 Contribution 295 +599322147a8a7040ee1e650e09b42c71 Contribution 296 +621c6897d9755a1589ecd3b2bf685fa0 Contribution 297 +5ed40ded70e6e3bf314862387b0ba86a Contribution 298 +2c0f6ac0b7a83b46b7e9113e8fd69eaf Contribution 299 +2a908fdcbbc0165383c1ff7da3eeccef Contribution 300 +00c2daf0ecb36464cf3bd572a25aa875 Contribution 301 +0022c364c77df06a3c65de4a32395f8f Contribution 302 +9184abf279db47d1e17b7bca686f404c Contribution 303 +bed954f5dfeb88ac7eb910c3b179c8f9 Contribution 304 +e7bfb3d3f71fc992136f48aeb10fd158 Contribution 305 +b64eaab6880f7c86cdf509ca6e93f921 Contribution 306 +69c12ee021fad28154cf963b9c1df1f5 Contribution 307 +f78069497a48f0f6e2abd26b81f02186 Contribution 308 +2ebffc03ed857ee1159e85278bb2159e Contribution 309 +f6b4758274b4082958795240147bb719 Contribution 310 +d4b2c61a8c45e0cd22a4575f814ddd33 Contribution 311 +645eaaa6cf55e9fd17147cb6293e6f6a Contribution 312 +e0e8c858e50c3534d5002fbc708417b9 Contribution 313 +727977c671b473957ac05337032dbfb3 Contribution 314 +e3fcb5b48b90a4649944f4692025e926 Contribution 315 +2ac883e9b8333cd2d6e6aa6acb5e0c13 Contribution 316 +0578ed84765c2be7aea623a4e3b73f67 Contribution 317 +063568a84e9527850d560bcf88ef404c Contribution 318 +00c98833ea2091ed951454e58211cae9 Contribution 319 +a5f3c2c6458e0ac2f32b6ec5bb68a470 Contribution 320 +f968a176b11b6fa1e207357f61f4a3ec Contribution 321 +01007562af3cec3b64ccd30a74e809fe Contribution 322 +d9404f106c57cf54fa45b2cd419d3b69 Contribution 323 +8050ac19e6231cbb6d42bd459d5852a3 Contribution 324 +a1101dbf3f9ed7b285fc075df296a5aa Contribution 325 +6821c57b7db57e29dc6a874e456d59e6 Contribution 326 +e3c116a45ba70e24f9a763c74a711acb Contribution 327 +b41053084aac04b7fe27bc95884ec21a Contribution 328 +21e69031379871939892c35844ea3668 Contribution 329 +2f4fd72cc300042fccc9eeaec4b7cfb5 Contribution 330 +0caf8a8db715684a524a3d42506431b9 Contribution 331 +eaceacbfc6aff469e9ab3ce15c67dfa0 Contribution 332 +1a9c3a1d1e794a5d806273026d6277b0 Contribution 333 +fba7c6e8415059499d2fecb8e0b5c2bf Contribution 334 +b9657b7fed2291af79d3217f4b44d434 Contribution 335 +1c7b029d984aa473c753560142170b33 Contribution 336 +bb5cabd82254480d4fd6aa8c20ff8e3f Contribution 337 +e7a35b89afe27b2d515d6cb51fe3da61 Contribution 338 +2974e234dd26f905b515b73986bf8329 Contribution 339 +8a66d7b8858b3e377ee6b467d5b124f1 Contribution 340 +0c3c5d3c8ad76c52d80c3949bd341bd7 Contribution 341 +92c07d1035e5fe07b670aba0718395c7 Contribution 342 +26cbe476af25c0dca79701eee6a96137 Contribution 343 +7ac9993797fdd7b009ffc6c24210e201 Contribution 344 +3d50864723ff4353e6b1199e4627ce03 Contribution 345 +5364d8839e76cfec38f0d39044466af0 Contribution 346 +fb7c98d0b6dd304f47b7b8a049b2d69f Contribution 347 +66a11316ca44f2d603751d1e4e1379bb Contribution 348 +0bc60f80b07d7b4cd91327abc7d4014c Contribution 349 +2123fdecad3e87089f35818f49630cd4 Contribution 350 +7c0c071010518138ab4548fac11008fd Contribution 351 +e5a8fa119c368ac7180622063c3ff334 Contribution 352 +7ec023aa97a5205bc93372aef32ece91 Contribution 353 +b215088a0ee7de06ae686000291c7e6d Contribution 354 +d2e8d06164c9b9f3899e46f7e817a02b Contribution 355 +e15ead125931dfbb27876b95b3983b05 Contribution 356 +5cc933bfe9b1b2abac89dbda26e74eb1 Contribution 357 +a63f814f7211b219c153feb2daa6bd37 Contribution 358 +193f2c02fb804eba03a41603327acdd9 Contribution 359 +d0fa2913b68518ceb56d891a22b28d17 Contribution 360 +a04f2998d6cb65a756c72a3f4176da34 Contribution 361 +b871a8fb036f241b06985a65c12d15e1 Contribution 362 +e9f354d7adf91291dc945a5e0dc59014 Contribution 363 +1379daa823b4fef382e6020322c28d9d Contribution 364 +f490c11f711034c4046f94d803aa3fa9 Contribution 365 +0eb9e7bc72e2a7331d5b41208b1ca1df Contribution 366 +d6604b179a1d5100825def06fb58b8f4 Contribution 367 +5b0ccfb52898711560149008ede28da0 Contribution 368 +6bddb0730c751bc76f00d7a7d9fbe2ae Contribution 369 +3efbd608573f9bc813b2aa2ee84b37c7 Contribution 370 +3c10b1b71cd0ad7985510aa624ecdffb Contribution 371 +db51f2dd487d06adf44e6ef89921cc95 Contribution 372 +f8ec3bef60e724492dc284515df50a96 Contribution 373 +c21f0468a936406cf19c12c8c2cf8934 Contribution 374 +c697af33653b81986103ef4bfb70bd16 Contribution 375 +98043459d3fef94f423fb66a6af91911 Contribution 376 +6374aa9897382c0f5ba34cf212dbd202 Contribution 377 +be4f6028c32e487cc414b1c676152894 Contribution 378 +d1b3c76dc0c78678ade7561a73768c73 Contribution 379 +9208ac784090703e3450d2ec0ded6fc1 Contribution 380 +735973dd731a0b30c69864de6e2fd7ec Contribution 381 +3c54f4cd29dca3acbe42091ac9228a54 Contribution 382 +da310338477fe5d71efb84b9e9509e3f Contribution 383 +864db37bf7fa5388e7572b48b02d9fdb Contribution 384 +d5179786a05bba0812a5c548de277401 Contribution 385 +4f6e953b33bb5c4b3d60b9914ec019b2 Contribution 386 +0e73766e4cb0fb9a8fc9611246cd097b Contribution 387 +7c976932304e9490f6a17fb279373181 Contribution 388 +e22de0adcda5fa941bd1c53c981eb2cf Contribution 389 +bd50801e0205f3196453dbd7bcdef025 Contribution 390 +ae2259817b213a50ecd44e4a9bea41d2 Contribution 391 +79c7aca0fbe8962890df90056a08eadb Contribution 392 +aad3aab010e68286a2907c457fe2234c Contribution 393 +bd047ff1caea2d84461129ec920f8cbe Contribution 394 +670f23bb594bf4d2e6526d039ae6726a Contribution 395 +abec84d8be134f82b7ce07a9d40705f9 Contribution 396 +318a8dd59348a59eaecf5144ce67e5c1 Contribution 397 +4a074aec1241973fadd7406483a02bc9 Contribution 398 +d7ed0ce34ff906822ff9129e9e613e39 Contribution 399 +9714caf74eb168980cebcf3804d38508 Contribution 400 +775b073b3e7e81f9f180b0f7d894db6a Contribution 401 +4cfaa027d7232771c4a2dc06282c9672 Contribution 402 +501d53500dc9a91dbe897f013d68c30d Contribution 403 +21bf0610e2ae3a40caf8b93bb0ad69e4 Contribution 404 +c5a2a04a03d261d58c8740b16f791d31 Contribution 405 +8d9564304d1c0a34a98adbcfa77aff77 Contribution 406 +ca8132c6cb904606f77b40267e05c7d4 Contribution 407 +78303acc24513b4b8d8accb5efbb2356 Contribution 408 +b75e5f711256a86f971156de775c1ba2 Contribution 409 +c7588dd43497e534ff3709a9bccc2df8 Contribution 410 +8592900661c30cd7f9aed15a2edc0668 Contribution 411 +58fb7490a4dec4cb0447c392280bf149 Contribution 412 +d458b15de443ec261dffa2990a0c68d2 Contribution 413 +60dc431924b0e2a2f621fd113856b29f Contribution 414 +cdbecdaee3b3b4673ef20ff2f2166122 Contribution 415 +66567b342485906409623220bdc8c7ab Contribution 416 +ccae4eb52a027085eacabaf0a458b1fa Contribution 417 +53df132c6f0697d85d581fe49d576ad4 Contribution 418 +83678ef4f0a47de2da0d51d0e138c97c Contribution 419 +b1f5e68906c20f35e372d5c7ea47b8dc Contribution 420 +1cddb8c44864429f81b41f9345b8db4c Contribution 421 +69a4ca582a30d799948eeaca84d47bc1 Contribution 422 +3ca8a3b8d58c6296df3f4ea981fa2d87 Contribution 423 +ac706b601318a5d5ee97289134c468d9 Contribution 424 +d038a9257b13917e7a6168cda2cc1246 Contribution 425 +b617f6f7d4ae249d0943317daeecab0e Contribution 426 +cbd69f528cb9e9b2283ea5e1915bd637 Contribution 427 +68e6065914d55d2b491807701f966d05 Contribution 428 +ae819105ecc30c9f9e32be9b836fe2e5 Contribution 429 +f7af5196086a0b408881c4adac098424 Contribution 430 +997c763bb1f390c66b02543cc5fbb5d3 Contribution 431 +8f80c85429dc89b2d0d0d7abb150dfac Contribution 432 +e3bc5561ccc300c4330f10fe6d87e4db Contribution 433 +bfe1382ac00539a462cef5efe15a4506 Contribution 434 +ad90bdde87b06bae67141c3c8d50f4ee Contribution 435 +2078019730be196dfc63fb6069a1d787 Contribution 436 +ca94d528fd604637669bdff3d96aeab0 Contribution 437 +df771542633e769853093ebc700bba30 Contribution 438 +d7bb485ffa7f2329645c8eb5b0673895 Contribution 439 +e04bf3c8555044c0cd62258ca069fcfb Contribution 440 +163fb5bb0a23972a2e447809f1ee5eb4 Contribution 441 +33982996c9ddc26a030d5eb908f44a9b Contribution 442 +f1372c5f80c18db1526a0e04dcac9046 Contribution 443 +528bfc2604bde449c8b01280c74a08b3 Contribution 444 +2b72094b11653a0076f5899a1f6673d0 Contribution 445 +3f59e3315a31f2b5912d9fe355978b3b Contribution 446 +047ff911d9e3975b2817e05eac7d0b2b Contribution 447 +75107892abbac0ab86af1285997f639b Contribution 448 +8e24c2bc542be1b4f80d81fc0185d77b Contribution 449 +fd6bc1b337301be01efa10a71ec9ad1c Contribution 450 +8194bbbc7f51287a78f31067897d5282 Contribution 451 +1721d421e54cdefe3426bc363049c3f9 Contribution 452 +6721b575375693c6353d16f2b1704bb2 Contribution 453 +f8effe6c0b4c04ddc8806bcb4f79d047 Contribution 454 +70adb5408e7df7378ae1ad0cf27337a9 Contribution 455 +0f219d2211e499efee53ef8e13611aa3 Contribution 456 +350fa2ab72810efe1d030ba2d7c10568 Contribution 457 +692424da1230024b3c7659d3db1895ea Contribution 458 +5090bcbe21c10974556a1c7ce9836f30 Contribution 459 +9dccb49f9bb3d5ed88784a9dfe03e3fe Contribution 460 +5a4cb5de99ebf21d4d431ed9cb57b854 Contribution 461 +b9fc2bfd4b0047fcdf99d555ab89ea30 Contribution 462 +22ad8a65354e51f93c8f360e26410b27 Contribution 463 +3c8995b391b6b32da9286ebe8f402580 Contribution 464 +cb77c84ad367e471258ce23dbfad96c7 Contribution 465 +761ce80fadf314b2ba9f1a593b08e965 Contribution 466 +435f3887ff39e0096d110c3a9c0d51a6 Contribution 467 +045c14dc29cbad630009fc771b3c3976 Contribution 468 +f4b0db174aa4835edba7e2245267e476 Contribution 469 +47b9cbff954c48fdede35422d31098b8 Contribution 470 +05fb60f8d3d936fb87c7275c9be3467f Contribution 471 +8db1592866a599b27c61f8eace26cd23 Contribution 472 +0743293352be07a0e22b0e2ed74190de Contribution 473 +af6ce2421fa85203ef605859a09a6f04 Contribution 474 +cef15d091056b984fff94030353d17ee Contribution 475 +02f6b0904311e72f3cb55eb94c60521f Contribution 476 +50bd3d06d5793f7d4bc563942cafc99e Contribution 477 +a73de45436b9f728d1a1e3ec2bdbdfaf Contribution 478 +33011edbb4ed5be695a4f7a479f7bc6c Contribution 479 +cccdc8e19e49b3097d63bfe2ce8763cc Contribution 480 +df0e1a6de06671bf55b574ed7b0d4415 Contribution 481 +902b6432bc93bef74d310ccf160f0506 Contribution 482 +8b730326ce65a81a3ff24155b568ab2f Contribution 483 +83b21b6154499730d9db3eee4d4554e4 Contribution 484 +b9da52de926cb1b1d82aa53b85a6e438 Contribution 485 +0fa6af6fd66da288808d6ed4368c7813 Contribution 486 +34468eaa36ec14ed006a5afc7f388d71 Contribution 487 +823d895e0286fe1105b6acddcd667023 Contribution 488 +e02c1f6f51ab33058e5b6da9104b9933 Contribution 489 +a8ddc9f8cbc1dcd4a5dcce3a5c9a4ef1 Contribution 490 +e312704ef6b6474813142e5cd0fddeaa Contribution 491 +4e2864ba0551390d1aa7f700ef08ab86 Contribution 492 +57d0c57dfbce6c5b48849bd5aacbb3ab Contribution 493 +9081f571ec8671cf94fc2712a3cec6bb Contribution 494 +3e032aeaa8c169eef040c30bca3c2082 Contribution 495 +da2edd2fc6e67a71cbcb729cd002f43e Contribution 496 +bdeb6d1aa9f5c0a9e863c62b5f28e023 Contribution 497 +0a75d0ac29751ad3334bbea2a93c6a2b Contribution 498 +4559e8d8e648466c9053678e3038e902 Contribution 499 +0e8b577b5164385bf84a95daa39c32c4 Contribution 500 +360c9207e92e201e65dc5c22cd28fd9d Contribution 501 +67813c5c6cea0ecffde6b14a6b468707 Contribution 502 +c91de184f42cd082c81c233aacddc33d Contribution 503 +fa73876b928bc75e94e10fed7517c949 Contribution 504 +9428fd7e919862dad8f0483a417a27f0 Contribution 505 +50f300e842ad22041df8750bec35d16b Contribution 506 +32a6d8d7ca3c0e243aa9a13ec18e0ee2 Contribution 507 +4eec4e1ff662e796e8066d93a42b15c3 Contribution 508 +e49a7de78cbcd6b25307feddcd0fce6e Contribution 509 +633994bdf9446b8bde8b5a95de9d26c3 Contribution 510 +054d113a4357569223048f160fde0276 Contribution 511 +88f48a876d5d2951d8a3c479b1c105bd Contribution 512 +baac95a100a47ae744cae85ce161d6f7 Contribution 513 +80c5f0023afeb4825a7e39f94bf4e77b Contribution 514 +79801d96e4cdd6cd9c317912cd2dd508 Contribution 515 +b6300e77e0352e6e2f92974afc5dd061 Contribution 516 +30eee983aa9e26cd46c99aa004b79851 Contribution 517 +95d013ed7579603eabd7b3d083cb5c53 Contribution 518 +261da0597f860cc15201bd05ea407f3a Contribution 519 +6953efabae0bd0e07584a51558b1eb86 Contribution 520 +e609c220c94280caa9cc6e5e93b1a9f1 Contribution 521 +fac74668a45e7803ac4c616d3435f049 Contribution 522 +2e4651e2ae8f5f70606fb28118467140 Contribution 523 +8aad6de603bb6af987170e773713b235 Contribution 524 +b8000ec468dc32ad8f934d70ee46a264 Contribution 525 +14075f0e7ff755bca8e1daecc643ac8e Contribution 526 +81ca95eda4b15923ca7a0b87be69bbbd Contribution 527 +4b4958d15d0cf3043853ce8a8baa7375 Contribution 528 +72958c93747713f7c0c6afdee2c52364 Contribution 529 +e03ffdfc000d235200abe52f790c1705 Contribution 530 +d8b31cd2682b9c11c302931a58126bf8 Contribution 531 +42d2c289f6317bd263775bcb849c772a Contribution 532 +3dd47a0b22715f7fd201d2142bae56e1 Contribution 533 +e80edee78da5506d42d49f42538cbf4f Contribution 534 +7c06299331ce5bf5a6a6549c87fbb421 Contribution 535 +90a7d5e8823a42f1588d72f6111af824 Contribution 536 +ba9031e7a2452c248169f2bd02f29af3 Contribution 537 +961ec25540734d29e49a9376d99caeab Contribution 538 +98568accac62f469e128dc4b0f49865c Contribution 539 +9ffb20e36c52a7a187d752dd2eafa7e2 Contribution 540 +c92b881e6c1dd3c78804ddb1da46ad6a Contribution 541 +ebb7072d0b14241be14e07509501089e Contribution 542 +c1cf1ce3d16c18ef7fc7752109059caa Contribution 543 +edd442c95f4b86836005dbbdf2ee56a7 Contribution 544 +45d41c1c7ef6855b03b3bc006126ba54 Contribution 545 +460c7fce4cd2cb8ee006918f8c02e8aa Contribution 546 +d34b8e7ab6222df3f7631f958f81e7be Contribution 547 +345e7b838fff844802b5bd52becda8f9 Contribution 548 +26c612b934cc632ce4beb09f49e96b3b Contribution 549 +82e325dd86132ee3262b4eb3210f802e Contribution 550 +23e496f8f6200f75f66a8aac7080ff3b Contribution 551 +83e31ab2eee2c644c1a01febc163e4a1 Contribution 552 +7086552402393bfc2130dfed998bda17 Contribution 553 +9901c65e846f797842dd55bcdea492b8 Contribution 554 +bce38940218181115cef9053ae262116 Contribution 555 +a4f8462c9f7dc1da2507c02a27b3d8b2 Contribution 556 +29432756418da5c6d42d08bb8680b722 Contribution 557 +d3906708fc03aa95f9cfcf1cdbbb59aa Contribution 558 +df6d09f39a4388aabdf836b6b5d055d0 Contribution 559 +f0c57f07ea5fe05d62cfda4078fd7d3d Contribution 560 +58bd87bf03cde209b4760883fac8beb9 Contribution 561 +37798b40279603f31823947c9258fbe3 Contribution 562 +3b280a90b70d3cbe3742ef6b27ebea64 Contribution 563 +61aedc6369340f2f821e53978e8d1e3a Contribution 564 +c9ddcf655e2b7f20825742d21b91392f Contribution 565 +4aaf0558bc1cdae96c24911e097fdba3 Contribution 566 +fcc27a56012c898955f4974a1b9081b1 Contribution 567 +ccc1a398d36c743fd51481bc5eeca40e Contribution 568 +d04fe481830b94d808ea9679bae3bb67 Contribution 569 +7cd0b4234ef263a095779d0da7b9c81d Contribution 570 +0fa3bb27593b5c7a485ba6c1b615488c Contribution 571 +5f3d58ab19433537bdd70e0274d17c50 Contribution 572 +cf0596302566803e8ec4088b5be27b9f Contribution 573 +4ce03218c7536de2df8c2d6990b0fbb2 Contribution 574 +b2b4c8625e9a770a5f16602c3064b913 Contribution 575 +9c72ba65d78642cad8302f55106df685 Contribution 576 +0ea101bf56c4011a421f22a76ad2f58f Contribution 577 +32fd04c914066940bcb0788d5908079e Contribution 578 +4287771ba8f32f371486b846e48326c1 Contribution 579 +77ccf53bdd9a30ef8283b4f94e12efe4 Contribution 580 +e532e92eb36917b822a2a98483ac4ba3 Contribution 581 +67f2f5607322c5e4869e0e9ad520cd5f Contribution 582 +fe46872b397309d285aac76a2953af7d Contribution 583 +36e80ebb2cc53191141999c7a86dd42d Contribution 584 +bee58360f3301a7ff7cc64cae32a9b0b Contribution 585 +8669c793841370dcf5fceebddb70d438 Contribution 586 +9463b795d2bef891967b5cf5813dc212 Contribution 587 +1dc1782e2c8eb22dd27c64e204e183bf Contribution 588 +854af942b5c7d426b7d3cc584b0fc713 Contribution 589 +61a07c8f7e4402c7fa303e2774f7273c Contribution 590 +9e262431414502c0eeabf3b96e8843ab Contribution 591 +26e01002dd8ef5faebbac3e2fb10cb76 Contribution 592 +039e752dc405bb84fe2e3907e6df313d Contribution 593 +cd605431accdabdc3c1af71ddadd38c4 Contribution 594 +81a62f86aefb8b18cafb90684c8f049b Contribution 595 +0edd8ede7f2a170d1cf69648d733a43c Contribution 596 +9e1ba7ac080a7eb2a39786bd94d04075 Contribution 597 +9cfc27de483cf74cd9b0c8653539a6f8 Contribution 598 +2ceeb23c5bebdc533539583f0ca2b98a Contribution 599 +98d4d899b7a78bd373a6bd15e977f5ae Contribution 600 +651208d0512bfc45f2317bb003374c49 Contribution 601 +6d976f7a3465ca7b3d67be96d1d55c3c Contribution 602 +c406e4ff76b280b1255e4ab965569c93 Contribution 603 +49e66d724ddaa578e0b376f92418660a Contribution 604 +2914468b3322c30e02f321d4c9245f21 Contribution 605 +528886e57ac2c7e15bea16f0334e7aab Contribution 606 +a7fdfcf5fbc3149d62d8d71e97e4cfba Contribution 607 +930a6e61919da5e01a6cd74c12c200e8 Contribution 608 +77da85520e3121eb23261011b8f5a87c Contribution 609 +926a68b2b8d9611f3044ceb407f0a932 Contribution 610 +f90a68584c812eb6cdcd99b4b99e7003 Contribution 611 +8a0840c91e1f82c038f3ceeb17f2387e Contribution 612 +54d68fac1a32ff660e6689f00fe1b982 Contribution 613 +2f85011b782680e02d091b523ad7593b Contribution 614 +abfe49ef75250d2052b8507fe0a90041 Contribution 615 +8ef9b634d9d661403fe1854a98bb3a5f Contribution 616 +c563994c129c3b51c6b9d1f8bfd01644 Contribution 617 +80aa699de98d5f0f3c53bd253c775865 Contribution 618 +0cec38ca9dcb08ff954670f254a5a4dd Contribution 619 +5a99dda5ebaec20ae18e92d97d079fe1 Contribution 620 +d81457b9eb655f2e3e60fdfc0e006fe0 Contribution 621 +ab5a78795807e6cc55204bbbbcf0f820 Contribution 622 +d3940c75c892e4c674441e1c78d87e49 Contribution 623 +6c3ce0554679b9155ee94dfbccae564c Contribution 624 +64f16f7d9a19fb40fdd27d2933b08642 Contribution 625 +29b9e4d9006f6b0596ad0cf398b7cf5c Contribution 626 +8af62252b7430b58c806f47198f7d21a Contribution 627 +ae4cb809812d82b7fc605d10c10a5a7b Contribution 628 +c52cd11aa9f12a1301c83ee278f78a32 Contribution 629 +d42a49a2857c4b1c90c1295c184bb136 Contribution 630 +8f4f65baafeca74f252636baabb70f43 Contribution 631 +cfa9994acd6681a98e96735e8d9a948f Contribution 632 +df6e8dc209a56fe56891152ef21a3145 Contribution 633 +43b8c9312a51184d9cb7e73adb9f3e5a Contribution 634 +704c8d7a8efdfe0b39c60ddbf74822c5 Contribution 635 +0ba19771766f9d0e495388255bd00fcc Contribution 636 +44c86fc48aa3c3d37d10702e5c297af5 Contribution 637 +5ea71bdb3770b1a74e4b7f8bf65073e2 Contribution 638 +ee406b6a098ae0c59d0ca5338d188214 Contribution 639 +6c684c708a6bf72fa9c57af2a757aea0 Contribution 640 +adbb3fa2ba818a952812e417ac9ff542 Contribution 641 +8513877c69ca88af0fac60964568ff96 Contribution 642 +5830c43845db91998f2321a08041fba5 Contribution 643 +65172bc12466e376ae21441148ebec88 Contribution 644 +7396ed20275c6b3e4169d5d6ae43eb2f Contribution 645 +0575167d3f8e80e8434ef97e2aa255f1 Contribution 646 +bc367976b4364d2e715116380f9fcdeb Contribution 647 +bc5da4607b980e31d71b33ef6fe01dcb Contribution 648 +3896423f4900971002d12a5c8e3f2eb2 Contribution 649 +8af182bac281c44e52e4d38729a32957 Contribution 650 +6c41ae537a50730762a1e3f40f1e8468 Contribution 651 +69bb34082b069822c03ef87bd44a2ad3 Contribution 652 +a24498d1f112a98ecaf3458226ee9152 Contribution 653 +0da8dc8cb78cd9e05be481b7dd0b1479 Contribution 654 +954dd25b3734d8bc65184e24c80b8876 Contribution 655 +a44e57badef72c6b9fc743ceb8bab91d Contribution 656 +da04ee3af954455a22d930c47dc48db7 Contribution 657 +df528435c39e54029a33b954772a84c1 Contribution 658 +39f2202127707dd20e6693261edf97d1 Contribution 659 +0dbef1ffbb977d435376b9b91794704a Contribution 660 +4a44b1553a32e83f95503cdfcebf5a24 Contribution 661 +6ea3fe930e90b7c6a97ccdf09026f68b Contribution 662 +809ae85750b68fe59a2cc12850edcfe0 Contribution 663 +b517ee350b9ae872749033126f278d08 Contribution 664 +e8f5902fbf58731044420ab697107e32 Contribution 665 +4d6967e5289883b7696a757b27abcd16 Contribution 666 +b1753ecfd4106f92d193a05e665aefdd Contribution 667 +26ce2e6fc41d96cee156b24da9efcf35 Contribution 668 +ef68f5990e8c4bbed0ca9b5c6f77ed8c Contribution 669 +5761ad23f33b9f980170477b948d31f8 Contribution 670 +ac2a25dbee68f77cfbd6aa23ad48b75d Contribution 671 +def8a085f6cea39440393477a3540f7f Contribution 672 +fbc81eb7532be9e99ec9451751a9decf Contribution 673 +f96825c061ebfb1f556e5df76f0c4c15 Contribution 674 +65a01cb3ccbeec0c7f045061d9d1f83e Contribution 675 +c6ce4ff5bb91d8e7cb80d599b9d11145 Contribution 676 +5cbb5025839ad9278ab504c06e98ce07 Contribution 677 +a916bec23ebe73e1ee6753579023ff5c Contribution 678 +83d11cf18089ed2f39b0402487989de9 Contribution 679 +13d5903618c8bb509e5f0912af20d426 Contribution 680 +9060c2a5dca3c21a5dfad1e00bc03049 Contribution 681 +0022bcc66b85bf54f259cb5948db70cc Contribution 682 +a09bcff8375e7483047c85a9d9980c26 Contribution 683 +7f2ba2519459a63dc29d2e8e25491ece Contribution 684 +58843bcb56305532a71400eeea6ecb53 Contribution 685 +f28ad407c42cf0732ad1990c97ecf3cb Contribution 686 +05c3c86f573abf732c7920e256dd24de Contribution 687 +738a87161f1e9f71e82a03b5dcfd8dbf Contribution 688 +efeb0e743230f8076a856b35134fe1df Contribution 689 +480aa33d26724d6cbfccac5b71d85e3c Contribution 690 +d6e5769c1f0d6eb6b15d00e903633b52 Contribution 691 +fe285db08aa4fb44ca122bd82e0a663e Contribution 692 +380cf2484008a2f0a09a086895d6a031 Contribution 693 +3c98aad0786c67133192a88d1b9b03fc Contribution 694 +11dc78b9db9e90293b4b1bfb45207967 Contribution 695 +fb93b3aa772b52a49d0090d601ee28e8 Contribution 696 +88fdaa4bd0d20a99e5d3d455b74468ac Contribution 697 +eb56ad77e04c9753047a743d0778445b Contribution 698 +967b83bb7e9c965b11f628524e27a6cd Contribution 699 +b5922459f5614d5990bb20306d5cb3d6 Contribution 700 +5979c54d25c53187370bba75acffaa1b Contribution 701 +695302ff3bc584d3cd6f9db8a89195b2 Contribution 702 +fc00f9e1f17497959a4f88fafc95a31c Contribution 703 +f87e14ff9c06b12c9cd0cdcb8e595a92 Contribution 704 +9cf6f7d12de7023c875f3d11e9568755 Contribution 705 +492da4038581c4c78034840a8cd518a9 Contribution 706 +bd1ad377d5199d4851d8c57585b27be0 Contribution 707 +b39ec9e23911b8d81395c3624ef928f9 Contribution 708 +42a293892d09d82460e96a9fc97024ee Contribution 709 +dd1b862109c82385819469df56f72f3c Contribution 710 +8154e5b571a9ba0f1087d17e29a0db55 Contribution 711 +f4771cc9dbd21118d249a1adc4cdbd96 Contribution 712 +88ce3feeec96aef397171909600e0e73 Contribution 713 +5ea21d647c00edb081f77cc39cc72760 Contribution 714 +e2970a55e8d642890ee6f0b8fe54ee4f Contribution 715 +e524feb838383199500301ff41f14f69 Contribution 716 +cc346fefc0f3e7f880d3b63a8579730c Contribution 717 +a51ba3d2508fc094dee9b85530624568 Contribution 718 +7ad6b03c97f997ea0a057f85f68234ea Contribution 719 +cbd94a660a49e63473baced8c6adcb1f Contribution 720 +654edb055e8d5eb54a4de728c31b04a0 Contribution 721 +f1819af5d099024bb471c17cff526e49 Contribution 722 +94829796982d9400f715ebae85fca519 Contribution 723 +4eb05db304ff920148031c8d419b3786 Contribution 724 +de76f9ed2ebe9555237da8632be52130 Contribution 725 +4ecebed0cb511f1df57eb1482eda305e Contribution 726 +0ee062985f18c103786cf6fb14f6cc63 Contribution 727 +c0de21f0207b110027ee456edd409c96 Contribution 728 +a72f8bb802bf79a2beafeec3f4a54629 Contribution 729 +729e4f719fd8be308dfc6cddb94eb9d2 Contribution 730 +9df987eb7034f2ef6f7932bd894cd05c Contribution 731 +65e3065462286703da92a94677bd73ca Contribution 732 +0ccda607df572b676197c6780bc34e1a Contribution 733 +a0df8331be7fecb9f32b257b3927130c Contribution 734 +675d3aa7d0df932b62599756b10fa277 Contribution 735 +69b7458841ccfd8b4e9e1619fc7ee50a Contribution 736 +9f10950d3f3e6065136782f71dfb9862 Contribution 737 +f2e7ddcb6d5f669ea3166e6e6e7d1e00 Contribution 738 +397ee073ca542c5e61398ad6fcc71ad9 Contribution 739 +15335b4de6ee548af49634946a97fe5d Contribution 740 +f240e0b9f21788b09a54bf5b9e49a3a1 Contribution 741 +ffecbcd83896b20300782eb45cf32675 Contribution 742 +84639b972de03b963982144dcf99851f Contribution 743 +33bb4aabf970008baf5afa63c126d18e Contribution 744 +4841ee3802a1804143a44fc158110f59 Contribution 745 +aa292405ea4c5edb6ff8e3d1353e1450 Contribution 746 +795c0c44cec8ae972318cdda25ea7ad9 Contribution 747 +639d526da04c7a9d3c7dd699107824fd Contribution 748 +4f60112d47dd7101a2a92ffd90919459 Contribution 749 +4b9fb87e58767e3cebb0ad95638aa057 Contribution 750 +395a75dc08e460ce0f71f43299a51917 Contribution 751 +a48fd9db461958331ec6b296f3e11fc4 Contribution 752 +b55c1cb27f95c47db5a3796acab24b47 Contribution 753 +8d3563ce621a073c89f1a3b39ae2dbc0 Contribution 754 +e85da705bd64ab53b243b239df4ff85c Contribution 755 +0e8973df50505bf0428b1cb4932a7ed4 Contribution 756 +b668d1cad777897c2c07ea4bab98cf64 Contribution 757 +e30ec1a04b542dab83c9aad9a7d6c398 Contribution 758 +f802aec37460705bdda7a4459cd31a7c Contribution 759 +623d651db65c587347e3ba551a62bdbc Contribution 760 +65823821f580361d6cb4a4a1b2e89df4 Contribution 761 +80310c306ac0ee422e8dd05f0e64e4d6 Contribution 762 +b2506926675964326f933bad92da4c3e Contribution 763 +cc73bd1ffadee878aeeb551e171907ca Contribution 764 +03097c21ffdfeada31892c73647aea63 Contribution 765 +1f30adbdf20df18e6bb7de8e39224b53 Contribution 766 +76648d1fd975e4764cebf402fd34ef3d Contribution 767 +09dd42dc494e5e39276491c3e30a590d Contribution 768 +9d3e704957a26df74d64cddd8ffaa38e Contribution 769 +55eee876e37f17fafa9b4a569c8ca9d5 Contribution 770 +306c569537b6b1517c98405d908ac7d1 Contribution 771 +289d43f3c5b0b24897d1ef89bbc339d2 Contribution 772 +59e60715763d9561c9ceb6fea8b265b7 Contribution 773 +44427557ea99fe41e8023383c671b3ec Contribution 774 +2c17a3a9dd9c54aa8d0b1f453cc84ce2 Contribution 775 +b00192d2a3addafef96f861bd0a198d4 Contribution 776 +aff6ab2fc3c840fa6a4dede9ca209294 Contribution 777 +9d9650e2319cc5f9aa942cd5459ea7ac Contribution 778 +00a1edab3f35aeee522e6f73cc38aee4 Contribution 779 +7aad5828ca2cbfffd0676639a2bef676 Contribution 780 +554109e62694de170fe7b9b8617906d3 Contribution 781 +705bb064af992a37509e450b1a63d2c4 Contribution 782 +6a6ed8ade16bb882f3faa2be16995f5f Contribution 783 +de34f4185d6df911a5b5b5ddb32bebe4 Contribution 784 +e3c4e12b82c038a48bdef74601d183c7 Contribution 785 +5df4b89cb04e92433e4337b80192dbe4 Contribution 786 +45ec114d61a5968da4df549a6b11da5c Contribution 787 +0e77e0e584abe5a00c9b21e87bff7ffc Contribution 788 +5a39c3ba34b82f85d08c7748806bdd2c Contribution 789 +c6b4d5abe5496631bfcdb2507569fb86 Contribution 790 +1620d4c787487438ae9e92f11b30519f Contribution 791 +bf2e078b33b387f13c1e137d80893086 Contribution 792 +990d43aa189c259c649dd02ff6bc0cca Contribution 793 +81d54b158a50e645d7bad88db635a637 Contribution 794 +ff860037ff133f5f8867eb9bccc73c1f Contribution 795 +19ee551a33cdf2467a95925bd7baba56 Contribution 796 +65acd0934161a3b41cf343f49f4b7c73 Contribution 797 +fc2a90bdadf8053703101848d121599f Contribution 798 +16c1756f8cea8d228f5aceee2c50190d Contribution 799 +8d0cb0dc7abea7574e282c30e2932039 Contribution 800 +10635c715a257dd481dd75dbeb114e95 Contribution 801 +72ad3f1e662f8ba3c8fd9a00d8547322 Contribution 802 +f501a49797f241fe737e817e9a854c1f Contribution 803 +7f01ca5f36e7f44a160b6fb5e698b500 Contribution 804 +acde2124db90dfe95db0a1b44c11433f Contribution 805 +c89c9fc7d3cba588e84f849d186aba34 Contribution 806 +8859b57732d80b38f6e6cf0061dd34be Contribution 807 +91997c68cc2365752b2d3a80c0963d84 Contribution 808 +e0bf4dc40bee2be58b4a6f02743db1a6 Contribution 809 +aad50f67bca468b2ec59183ca84307ac Contribution 810 +a51bd4b12768134a4bc0eebd98d0f5c2 Contribution 811 +4a42057c65de699dd5f94a280597ec9c Contribution 812 +5ed790305d4a4e6f860aeded591460ba Contribution 813 +46c5395e46260c099cd986c9209504a6 Contribution 814 +9a0deb6ea8cf2ab785afd8375bec557f Contribution 815 +be5b0d03e009827a1e443873409ae784 Contribution 816 +fb6dbd58aff727acc4caf983d97f01f7 Contribution 817 +33732f21dac0ad5c4e8f9b4f9bb55732 Contribution 818 +7379b964eb935490895bcc0b488cae60 Contribution 819 +e91ec2c9d0e78ab6ec3959340b4c77e6 Contribution 820 +6af11862849762ef397c72c36dbb2f49 Contribution 821 +c4109023cc390ff1ab4026d736a3e35c Contribution 822 +09329570eb9f10f7fcfc796330af02f8 Contribution 823 +306cc893b31c95aa2fc408a786a21907 Contribution 824 +c9c019907ebf207081a57e3dffab5129 Contribution 825 +0f153085acdf4ebd442d2c7b89fd4498 Contribution 826 +c7a53850b08f4c3e1e08694e429896f2 Contribution 827 +dfab203291eea507d356e450375025e0 Contribution 828 +82f6cc9eda7f1a4853da917425baa7b2 Contribution 829 +ee19e63e7b7c802cf7962b343dd1cf90 Contribution 830 +b8ec5d57b37165e2c275842998b8bf61 Contribution 831 +17b2f4a2d84682896afae144d75bf3ee Contribution 832 +892ae0cddcd62a0b35b4bc7dfa6933eb Contribution 833 +e151b3df09efbf5ea40a64be4bbdbb49 Contribution 834 +a3c4a512cc2437effe5d637819592be0 Contribution 835 +e2e3a2fcea069a9bd46d4495a6f9ee1c Contribution 836 +aeacf2b890ac0ac3db47447846d995e7 Contribution 837 +7bdada2ce95de2843a69d34de3527526 Contribution 838 +a539acc241aaae3de8e881ad65ae7d7d Contribution 839 +58800d2316fc63d2a245eb4612df2422 Contribution 840 +2f1a5a4cac01eac645efd0bb25c948b3 Contribution 841 +9fd9c38531d5fc62c5fc604c3fdee279 Contribution 842 +e43cb914519e24bd2009ce16d11e6575 Contribution 843 +97e1a95ab75f3d099a1a1a2ab5147452 Contribution 844 +f13a9fe4311d458e5dd9ca1951621ad8 Contribution 845 +bdd50608037b22a1f2503d653704f0fd Contribution 846 +19b4be9f628c9638a03f3b3b8cf21662 Contribution 847 +0a1e7397b992bfd02b7de9f4e23f526d Contribution 848 +bc342b1f1a1a3bb8ff7bcd6f6869236e Contribution 849 +4c94bdd414b22df9e810acdddaa0199f Contribution 850 +0d915d5e800ad3ae3b58310cd6710fd3 Contribution 851 +91d5c0cc43699e573981a7d4e9189db5 Contribution 852 +e8999ee982fb9b8eeb059a658b750d7f Contribution 853 +8690ca08ea336e0820676d065671981a Contribution 854 +ad58259a5420b4b35467b0dc6c779ba9 Contribution 855 +f18c246886cd31b648bf56283de22211 Contribution 856 +56dbcb37aab19bbd5fedf4ac337895bd Contribution 857 +14b3cee1de3b0696be39c2bef6325471 Contribution 858 +ab0584d5f7537312c79630897ca64c44 Contribution 859 +5ef3402b8b1aca61fca2762d176c7a7e Contribution 860 +7e0173ebfeb86a5cf3e6f38d1fda5e6f Contribution 861 +ddcb3c8b972a9233f6a8cf5d7986bae0 Contribution 862 +fc14298a7c89686255cc297f70dc4a4b Contribution 863 +9e53e748988c67e071ac6be8228a136c Contribution 864 +f7f127f83109d509547a0af295aa7c52 Contribution 865 +ae697745546b8b2f79831d0a2dc63168 Contribution 866 +d4857877a3b92f85977a6eb685b22bf8 Contribution 867 +5ce858826ca47037a5077b0b2db95345 Contribution 868 +2eca51bdea982093e6cfe722d2a46f78 Contribution 869 +0fee6479d53b0dd4b3d4ca7e939d111e Contribution 870 +d3b753e58a48689ffb558cdd3eec3f1d Contribution 871 +c46f711deb954a76c986e142f5026eb8 Contribution 872 +652d9348c81e437b05f3106ca679cbee Contribution 873 +d32aa324968001deba22a7dd028885f0 Contribution 874 +8c9336800c2215b6271f546e5bfc9874 Contribution 875 +6f3971674fed428598df854a679b92c5 Contribution 876 +e6677f2e10814b6fb772d116252af430 Contribution 877 +4fb0fb2d1afff420a7cbc7787bbcbb5d Contribution 878 +a9d11fb07e1d940ff3e424c7e0bc8a76 Contribution 879 +d3c63b55f675c0df96ffabdaabbc381f Contribution 880 +ed06f7a6fdadc7704ad2bda0bb7f5773 Contribution 881 +0252c2054371a96d21bc1227a26170f5 Contribution 882 +cbdbaafb0ce1e9374c04187367d455bf Contribution 883 +9489a5f3af42b9d5ff857f0fe3add2cc Contribution 884 +cad4c681d000ee954fd4976e3a139732 Contribution 885 +4a4b3f6461666b164a918e7e5b72d51a Contribution 886 +b1062c2af35db33fe88ab0f16ea2ee63 Contribution 887 +a9ad202af674c6d1d8b43f3308799772 Contribution 888 +bab06913aa74248c307565fa35a7fd74 Contribution 889 +e2a6ca6374eac4a4f6020f65f38fbab9 Contribution 890 +5dad644fa9fc1a58840fb7f548f227bd Contribution 891 +a47c868772b214348eb1a2b1a8c3116e Contribution 892 +e322d522565033d3268e06e1ecd0904e Contribution 893 +68e42c00b97d6c2dcc7c57ab5eaa3c2e Contribution 894 +e96ab5f12e8a003216f114f431fdd371 Contribution 895 +e9cc673b6382e5d13730588c0d8c5229 Contribution 896 +734ba261f45acd64a56fb7b0e5b41f00 Contribution 897 +898b3f0a62d304a3a0c7d2738a9fbf1c Contribution 898 +85d8650e46c703a7b0825e7f5d7a9097 Contribution 899 +1438c1af45d0626ed8eef22e4b625baf Contribution 900 +b194c6c12203978b969a13f967e93b9b Contribution 901 +b36e322e0701b30a206409b8a0fb26af Contribution 902 +a0cfba8adcae1361eb7372ce1d5e78c2 Contribution 903 +65e324599fd132f26e90087da80ac335 Contribution 904 +4c00a0ebdbabc4c657cd210553c7e4a6 Contribution 905 +cc7b909d6a05633fe7e1891b36c7e6f7 Contribution 906 +7781a47b547480fe86c6bbfb1d05680f Contribution 907 +3d42a0bcbe70727b9e5501e56a55100e Contribution 908 +5231a042f854f3c4577d25bc60be529f Contribution 909 +98d6c4a2844c31dff21ef6f072465782 Contribution 910 +7d9919de523883d66a96556f6bc690bd Contribution 911 +00e3ca08508c27835e22885f4bbd7080 Contribution 912 +9c2143894b2e518b0b6e64b0d2bf7307 Contribution 913 +c86e6a59b8a6f5abe3ca089f52bd8d85 Contribution 914 +67a6ca1d6fce8a229d5f011dd388403a Contribution 915 +d0b7ffa632ba2070b5386c2a89af8d4d Contribution 916 +562d65d2c04839384d49714c170885c2 Contribution 917 +e7832649819211b57e6940514971f1b2 Contribution 918 +d9df7e72d5a43ff40af986a7ee171292 Contribution 919 +c4a6903497416beed1b2dbb38d4a77b7 Contribution 920 +d1bb09d7fa376d52f5771e9f15e87aa2 Contribution 921 +e08b5820454d4f31b055ff3dcc20888e Contribution 922 +820979808709a9bf7b4c0785914f5f50 Contribution 923 +265c2103a9754c35b355cc69a8e08d91 Contribution 924 +41f1aa1ef872dd43ff8f0127177376bc Contribution 925 +d14c94174e51005b2c3e0532aefb79f6 Contribution 926 +d86d0f1a8656ef968476dc79aa1e834a Contribution 927 +74b91d0963e0a1112caeeb0fa7f56ea6 Contribution 928 +7a07ece60202266484cabbebd475b5dd Contribution 929 +bc60a88cc8f262f04355645319d969ff Contribution 930 +51e0c30ce1a36fdbb68152089934ebbf Contribution 931 +8cc66a9b93faa2c48db43af0281565af Contribution 932 +03167e2ef88ecd17aa6796b3fd01397e Contribution 933 +3137ed080436e78c07fef7b19410a9fd Contribution 934 +1ca46bd668ad38892aa6980e02df1967 Contribution 935 +cdd0823bd51058ecc4fbdaea0bc63508 Contribution 936 +9f48fec787d288f6252d419ea5aad7e7 Contribution 937 +52ced75ce09b494c3e672a17d1bc1db8 Contribution 938 +1df5f0947d7598c03140ee9e115235f3 Contribution 939 +93fd55e2a56f4c57f1401d0684113c8b Contribution 940 +f24c7c134f4a2d67d92ca1965160631a Contribution 941 +72d8e9834ee1fe080ad7ff25bb08c261 Contribution 942 +c5a0f05541e1b3711a55d3ca31491e4c Contribution 943 +40aca3ab8704f8bd531608c2a505238c Contribution 944 +711421d7da720d93ba2c57b148bedcea Contribution 945 +5dffb872f7d00930b621ec53255d230f Contribution 946 +40527176c7847728019fa2e8dea7a969 Contribution 947 +9aded31694ef83f1e4c2b34d8aeb4154 Contribution 948 +e68eec428e9a1e8940c5270fb84ef7a9 Contribution 949 +6b274a109e321c990a849f687ed52564 Contribution 950 +203c745f55e12830092815ed4d75d8ac Contribution 951 +0cb855c72b94839ff3624ff46508ade2 Contribution 952 +d1279711cd0d2a737b83354461c1d99f Contribution 953 +465e2673a9cade82be51bddd06873830 Contribution 954 +25459865ebdccbcfc3caa5396aaa5086 Contribution 955 +437b0b2f223f411a00b15ae2d15aa1d3 Contribution 956 +f61d52580eccd55ef3c38264e979aa73 Contribution 957 +17bffd24be343229929b451a72f3900b Contribution 958 +fb947351ed98598c94f9bd3638251c11 Contribution 959 +5178db412b6da1fa04aa99deb9df961e Contribution 960 +0e626cb3406a3f91f0ecdb9961d9097f Contribution 961 +8e9be76965eba88ff42248613cdb3cf4 Contribution 962 +972ad0510529a7f24621c2968d3f7b72 Contribution 963 +f38aa72cca3f6896121ee7d36d0d6ca5 Contribution 964 +7bb4dc7d693264eb4c4fad28f0441dce Contribution 965 +4ff733fbbff815bd70be83bbe427be87 Contribution 966 +3173335da0f03db9f335bb1b535c7138 Contribution 967 +62ed82f538eda767ccb11743c8e4b09d Contribution 968 +d57c4208310919ca7bb0d13fcb2da6e7 Contribution 969 +e5959c7a21467d479118bcdd401a63b4 Contribution 970 +e7a152d798bc91607eb136a0b0c8126d Contribution 971 +50439ac7bf40319c5ad204f696cf39d0 Contribution 972 +ce6ab6a8fda885b2bc05465a0db65ead Contribution 973 +8d5770ba3334e69d0022dbc08dc63a18 Contribution 974 +f36075f4f30fc98d0aa4ef2bfe6accd8 Contribution 975 +c65e626b41a639d92dc1c1ba7a8e8ada Contribution 976 +9eb4c6d2e72310e24844547444ca6e36 Contribution 977 +da297a879161fe65a600cce09dc1fa07 Contribution 978 +fa071d57a27e0711c3f511f6f669fab2 Contribution 979 +b96d5c12c582be9af2849800d72e69b3 Contribution 980 +3b57bba59599aedff04735290a443a6b Contribution 981 +a213f1541a3df846f3a483cb172d4e35 Contribution 982 +867e2099ae4b09d11c034d36ade844fd Contribution 983 +453b1b1bd54c30b91ef17356f6f1bd60 Contribution 984 +7a1e11f4266e0f3640825f6f6dde6cc3 Contribution 985 +d1d2c5cc6e4f5ae16aef1fadf17dd701 Contribution 986 +46f69557df20e12643136586dd83c30a Contribution 987 +cf06bbe3bd06d127c059805d05e3ff61 Contribution 988 +fe685ce5c33bf6e4308000e2319ad7b1 Contribution 989 +83d266bac53afea710e99ed1ca4f4254 Contribution 990 +bbeaa0b0ff32071c9374c706ff1b288a Contribution 991 +0e674a387cfd50223ecd9554322b9257 Contribution 992 +6b5606cd099e4aa1ca117ea1ef7722f6 Contribution 993 +f9e5a0a9b61823b3c6eb9c1e60929d95 Contribution 994 +124a4529618746a611aee20b17235421 Contribution 995 +a12131e1448a0aa1dd43ee3a0d27fa57 Contribution 996 +6c5a2e9199255cd01472252ad8b63d32 Contribution 997 +cd5f1e03f6fad28b21c28180bc07442e Contribution 998 +31bbd8792a97b1c7a469ebce256bd1bc Contribution 999 +d63fb482314423e646bdb4d98af187a9 Contribution 1000 +5e59b262cd4b0741173178a1c0367088 Contribution 1001 +09067b79cc3e5b0137dfa50cd178e977 Contribution 1002 +53220325ce0c343ccdc8ab0c33cfe30c Contribution 1003 +db5f7e963ee36f7fc6355aac5b441f7a Contribution 1004 +771d7b6df4526fd63d6d8215de968352 Contribution 1005 +677424e49480ffbde6f688acf9ba8a33 Contribution 1006 +bff4444041d444f09a65faa829db274e Contribution 1007 +48cb03ea5eec6f0971d6367b80ade3b0 Contribution 1008 +eeb0fab6b8eb1d38d002182515f10d09 Contribution 1009 +351d332716df632231605d20b450bdd0 Contribution 1010 +e4c2fe01dd1306512fcb5e5b73fa6c65 Contribution 1011 +78374a9febe330f7b7cd1605b56eba50 Contribution 1012 +ca16359a85e8fd57a21112e1e19d240d Contribution 1013 +d07aff75b71397de0235a947b47ad977 Contribution 1014 +146d985f53052848bb24134e7064c7be Contribution 1015 +acd2963e3d2ee02b0bc23c834683691b Contribution 1016 +b7aefe11cdc1056e39a14aa44863b2c1 Contribution 1017 +17ba60825fc0ad5e207c5d67e460db28 Contribution 1018 +2a5c9be41ca1660bbd38a67da7782b40 Contribution 1019 +4d3ff3e49c8e0f7a3472ac91b2184ec0 Contribution 1020 +95f2d15951956503b0e4c507dce0a969 Contribution 1021 +541710ed4a4a96b270ef6286d89dded9 Contribution 1022 +f34004510876a6e382c8679436469f88 Contribution 1023 +7d2d48770f317c46f9f1b70de7e3c90c Contribution 1024 +a15549323b61dde4d1cd224d61be1cad Contribution 1025 +1edcb5f43faa65c384a66f815b310965 Contribution 1026 +09cd19200619c77d7a8b6347f471b56b Contribution 1027 +a9c16f175ba1364bb656a5a271080f32 Contribution 1028 +24c63530019ee371c981a8848bfd3814 Contribution 1029 +671046e827dad385eda67dc4a6974e91 Contribution 1030 +b5d0a34bd1df9a0e2c4e8f713fcbca0e Contribution 1031 +7b9b5f77c8ab58004e4a564bca20f19f Contribution 1032 +1cb0f6fca06955a4c1c41ae91b294750 Contribution 1033 +c4031095544b8d715484d52d66583f80 Contribution 1034 +abc8967ca62851d7521b1814194cb968 Contribution 1035 +5ea1fd86d3589beaf6684c9a3424cd4f Contribution 1036 +0942f192aec9132e959782fa1aa0549f Contribution 1037 +9e9230f6f832e42b72a3e28eff3b701e Contribution 1038 +56ebd799e1ab6c0fc4aa02533f294467 Contribution 1039 +81736f6c688181b049aff966b3125c7e Contribution 1040 +3d47f563179a7e1e0c9cd7b192c7e2cc Contribution 1041 +b364d73ff17fa333fa4973534c6b3ebd Contribution 1042 +2d80dc82368f3efb550b73a2a9a595e3 Contribution 1043 +fd4669db36abc47b765d0fbc9bdb570a Contribution 1044 +1380790f21fa44cd90c0536f14ea352c Contribution 1045 +95f8b81eb98c645c48c4fad973fb857a Contribution 1046 +3607b0dc8aaa7f29d7031fd8f469bef6 Contribution 1047 +823fba543e9d8649d44da707386cf0d0 Contribution 1048 +6d44be61acab9fdf2164fdd2265082ea Contribution 1049 +0fc7312f9239454f7e0ff23f28714b96 Contribution 1050 +b82bac96f1dc4d4440d20e8d404137b4 Contribution 1051 +3bfd2a851dc2a2da30339db423df7a49 Contribution 1052 +d46e228cf07745255d8af1ac4b7155d8 Contribution 1053 +09f54e4cb7b0098132921b26a36b454c Contribution 1054 +be37caf5583dbaa7960d1de2251edd80 Contribution 1055 +398d798c0a0f18f36233e2535848b795 Contribution 1056 +0a557da84527e19257b3a9019166a551 Contribution 1057 +be2f705fd417f549c5956275867d7b5e Contribution 1058 +369fe6d97ed5ed2f01fecf98918f99ea Contribution 1059 +16facb55dcfeb89be645b924c3bc5f6f Contribution 1060 +624f5089f9aee8f4a2c424833ce2191d Contribution 1061 +0c4fd518a2e2848b07839446e718326e Contribution 1062 +ca540c599e62f74a53d78123a2229df8 Contribution 1063 +ae88e2c507c722b747ae4614339263ee Contribution 1064 +87c64efa5e94330cd71a1149927f9a5c Contribution 1065 +426126997c5d320b86a95783dbf68794 Contribution 1066 +2809509be036f91412f8b97201439ce9 Contribution 1067 +2bca1a92e1c3d0b86386b8b8adb2cfe1 Contribution 1068 +14582e0aa6badf03501ed9207da859b2 Contribution 1069 +252a2ac860b21b25a49e32a0f91e180c Contribution 1070 +351325e614c5ca40e3bdf00837df82e4 Contribution 1071 +f06b4062696fa56d54a7c0657f7efe67 Contribution 1072 +6da06331bc646f49ee1f034bbf05109d Contribution 1073 +3251ad23193306815625ce46d6902704 Contribution 1074 +398d489416caf4e6c341f4aa62fe0123 Contribution 1075 +d5ad268c3429d05c3ed6f88e7d30b7a0 Contribution 1076 +078774adff78390a2343410f705e3a0b Contribution 1077 +a31feda7ab4c2f671c1e0d1768736931 Contribution 1078 +1a29850c1a7b1019df9a1b8d35a216da Contribution 1079 +745b266438bd2a28dd3ffd9f9a8792cf Contribution 1080 +4c9d69942a3054a1d68964ad8e66c93a Contribution 1081 +34227aa7e7853acbda3b6f493c174566 Contribution 1082 +d5853b2f3c1fd555a491ecc204308f30 Contribution 1083 +ca083e6bd11b0269d8f1a9eb9db101dc Contribution 1084 +b45064b93ae1fa438a39672db5d39ef3 Contribution 1085 +53052d3f68ab5bbc4ce05d49fa0dfc2a Contribution 1086 +15ba722dbef120f9214386a20728eb79 Contribution 1087 +831bd145f9578e899e668c62ebc40902 Contribution 1088 +05092c2b43b9483b790e924a15685d8d Contribution 1089 +b0ba1e6fc7e9ddfbe982048fb674941d Contribution 1090 +a5cba2713fcde74f0b994cb746e5a705 Contribution 1091 +73a1d3cf6c793b7814791e931b03d22a Contribution 1092 +d596fe8a446d018318c08e3696b991ae Contribution 1093 +89932177fa078c939cb3b3a607fc80e9 Contribution 1094 +a1f3d8e12c7ca40e632fff1ef4259b04 Contribution 1095 +4cc18de92e79d95e3f1ed34836e665f9 Contribution 1096 +bb27981c8d8b4ce57822beda5ae92748 Contribution 1097 +a721264270b180e1d18274a78224d76a Contribution 1098 +b05f0b4a394a8b7982839028819039b8 Contribution 1099 +b4c13454b0247c0c06a851918f011a9b Contribution 1100 +e688e581814df7f98ec168018124f910 Contribution 1101 +5ce2d77751283bf7a684e1492417d18e Contribution 1102 +d6496984410558175aee309119cde272 Contribution 1103 +97d5f681640730a74a8c970478194b82 Contribution 1104 +e6e0038b6c6ea2a28f896de338bb11c1 Contribution 1105 +a6c99a5832581c0257c83f85cc8afd85 Contribution 1106 +0fb93eb008d28ba29be8c2021921101b Contribution 1107 +72489cc0c723bff5b1fdfa6aa4aca30b Contribution 1108 +c7f867c61993f3c2f1ce0a756c91651b Contribution 1109 +f1778946236db73a8e287f491e7e54ff Contribution 1110 +117a007f90bcaaf1cded0c66acb309c2 Contribution 1111 +fd1b6815ebbd46641b016d4d2e7b38a0 Contribution 1112 +f6447c8a23f08ad07facc4a69e5abebb Contribution 1113 +b2da825cbe784a293852460af40777af Contribution 1114 +f48fb7e48c810a1236c18eb4c4644b4b Contribution 1115 +156a6f0ab9ba3cad7fa3b613d56044e8 Contribution 1116 +be044856115f26af85095da8b23e2e89 Contribution 1117 +b5a0e4d97118876ef78543d3ea260a15 Contribution 1118 +976a86bf52f6feb35992a20705b64e21 Contribution 1119 +a1805ac2813cfa4f24cef74854588f5b Contribution 1120 +2d4a5f2d34cee927e188acb0f82c7256 Contribution 1121 +ad55d5694e67d40dd15557a08818621f Contribution 1122 +0f801220ab8b0b2d92fd4e24ee82acaf Contribution 1123 +d2ebd92edd4119e61b87c9637625f72b Contribution 1124 +b89bccf9e8903c2040ace2828a8b5f08 Contribution 1125 +eb5aa13dc484a7b4c1d929b51fa3dc4f Contribution 1126 +ead72dbb5bf4e7d6d0e8758d7b027ad3 Contribution 1127 +91743018efb33e21abb800f6e320ae15 Contribution 1128 +e69b74c7bdfe211f4558cecc3bff8219 Contribution 1129 +08371db3a31e8add82a7366d324f0a55 Contribution 1130 +3746c0fcccb505f1f68adcea1651e192 Contribution 1131 +61b4ce81afff5fa933097b01be910863 Contribution 1132 +0e013e49f71567a7276986e47561c41b Contribution 1133 +fba53548ffba8101ade6e6dd569f1f3b Contribution 1134 +a65b308b14da0c4f152456900d24ef67 Contribution 1135 +016cd7fd9794d3ef49031cb2872a317a Contribution 1136 +b307f92a0708eb8238b10da980295246 Contribution 1137 +fee05d7c1f918d8d698568f939d83ff7 Contribution 1138 +495c49960375e8eb3d62ceafdb277097 Contribution 1139 +ae03e1642ec5ab2f56d5caa642eab68d Contribution 1140 +fcf87e4f981f949bd2bd84fbd6084660 Contribution 1141 +e88fb36371994244a832670498bac329 Contribution 1142 +04373acf6646b8fca5aad3376a39cfb9 Contribution 1143 +f8d2d8f1b3a57a1ccb2c25d2eaf4a9fa Contribution 1144 +46efa973bc8504f8d937d41ff277a9c3 Contribution 1145 +4f69394487a7de8cce63e3be922a855a Contribution 1146 +1403b6a381f2ff778e210da802d05dd9 Contribution 1147 +7b3b335f7f775be4a2c7816d252ead8f Contribution 1148 +58e7cb3fb679924cd8b3ce1c333d99e6 Contribution 1149 +f40532d33f75e19b1c3f8feab0c8a0b8 Contribution 1150 +5bb8c6edc22bbe46043ae38073f65fce Contribution 1151 +c310fb5c928f55f7c074db84c43969f5 Contribution 1152 +1243ae34941114104bee8a0d7d137eb4 Contribution 1153 +a9ac83c2773d969cdb7817746f4f5a15 Contribution 1154 +8c6587888aad4f2c199664bee8ee02ed Contribution 1155 +9ac3cf95392302e664543dcd7efc3a25 Contribution 1156 +a08bb7ece69e86528b7f333f3a932842 Contribution 1157 +6f7215e8c39a3d7ac535e9abf7a74d08 Contribution 1158 +15a3bf991f74fbb4ac5c710ed7a610d8 Contribution 1159 +2f2d9263f59d50d726ca89a714700ebc Contribution 1160 +ed003c9d6d0c50b0ca7e17aa16b2ab6d Contribution 1161 +caa64aeba9b733c39b8ef7253fde05b1 Contribution 1162 +f231b889f33ae2284e9bcc1da5624234 Contribution 1163 +7570262c44d1f6c95742e74590a5e22b Contribution 1164 +eed3c8aef311674bcaa741435ac3f619 Contribution 1165 +6b7b5b27191153b6a3e6c5cc2837b991 Contribution 1166 +3f6f02539b3c610889299a60ea8f87a4 Contribution 1167 +8ebc3933c38f5bf0b493c3b4137d7393 Contribution 1168 +1807a910929ccc0d631394e63e9f1d4c Contribution 1169 +f9b596ddb8c1fca7c1cfd6094f34503b Contribution 1170 +4b5124199ae318fa54cb4b3234fbeccb Contribution 1171 +c99003f3b7254074774fe1e6d1ccd457 Contribution 1172 +dad71d290c52b45eeb115a4bd6bcc12d Contribution 1173 +4ef985c32052f872a86eca906c152cd1 Contribution 1174 +8ded8bf1c24522e324853075db54e648 Contribution 1175 +e0bde70ca8ceaa36f8ecf26614ba4460 Contribution 1176 +b7244a1f711bf37fc99c8a83379f301f Contribution 1177 +90ce89e5bb5c580a701bacf3b959d290 Contribution 1178 +3498c2d8e20704726d55ce0435cebd2a Contribution 1179 +421929c2960396f29704ec62b30eb2f4 Contribution 1180 +6688b068177681236ad1aa2b5266ea82 Contribution 1181 +926488d2440ecb41f69b842786c6b7b6 Contribution 1182 +7c059be9549f690c4876d909e6947ffc Contribution 1183 +03324ffbcc26eeaa1f6c0a8db0a9d4ae Contribution 1184 +47aca03b0fd4083139cea4562ac84a03 Contribution 1185 +0185fd2fee9d63ce9c1525c05d614863 Contribution 1186 +e95b58340e2e7a06a59420ca2f1ac886 Contribution 1187 +fc64b60e73ae488bbbc55857a59602dc Contribution 1188 +fdb57328eb520b8a279a0fbcd95486b4 Contribution 1189 +1f38b9960280461a89036e381e83ac29 Contribution 1190 +4138ee91a18cfa651f06f258d133898f Contribution 1191 +c46233ece51917a82730e0ba929d6526 Contribution 1192 +a1e50b4eb4da751dfba50d525d57c153 Contribution 1193 +226e7ae3059fac736edf59c26c3dd983 Contribution 1194 +803a462ce442b4b66018c076a907d79c Contribution 1195 +f1b1c2c67505fc78400fa81c42990323 Contribution 1196 +c6543a5fcb257bd9d835a60e5a4905ca Contribution 1197 +8e05870864eff536ff1fd873fbc96ea5 Contribution 1198 +ef1095d5eaf02b9d188cc0d8d173e51e Contribution 1199 +28e1084b76ace08f2b68ab98bc32e6a7 Contribution 1200 +be511ce73eeb6032787b4dc9c1c10831 Contribution 1201 +d01de084e7db34349b5a5d1f5a6838cf Contribution 1202 +5f58ca19d6f0f4888eb92b02376514c5 Contribution 1203 +aa52c3c46e9fb7de8cc673ac1c6346ca Contribution 1204 +35501290d857b011d4dd14a3c63d2fdb Contribution 1205 +8ef9a56075f403f2cd133f2a50e08d41 Contribution 1206 +44cb961497f125dc41858a5e23f4cfc6 Contribution 1207 +be975e48bc91212610003d3de984ce33 Contribution 1208 +6fe27b0411ccde3b8e85e9ebf761a727 Contribution 1209 +814db918ba5297ffcd3807be3ff18eb1 Contribution 1210 +c6f7f4352b28847b972fda8fdf854994 Contribution 1211 +d324cfdb72c68713dd2d6ff26e579ed9 Contribution 1212 +304ba267b97665c3b6256a1e2fced723 Contribution 1213 +c853985993a10f36e7b4bfc29f51332a Contribution 1214 +e38fc755464c6d50bd5592ff4dbb84df Contribution 1215 +3a25cc256552d530dee8f2fd23a8236e Contribution 1216 +a905abb6ed780c1e2246cc6a53bfb171 Contribution 1217 +992752e60d6e41f097a88146e2fc728e Contribution 1218 +f68ba64bd9ea74276b937f1c07df486d Contribution 1219 +3238dbd578e9258b509ff3425c19c785 Contribution 1220 +0637f0b77d6957ed0b778f5eb2b82248 Contribution 1221 +b15cafe9417200c04ea6b4ab6075cfdd Contribution 1222 +d0f87e13425ecc44bfc8cb9843651b06 Contribution 1223 +3b0c8b1d822d29c6c5c3d6d65b5904e1 Contribution 1224 +c96ff066e91c40d52747f802185f48fa Contribution 1225 +7fbe3310f9623ff55b8b218715934fdb Contribution 1226 +477bc374792f34500b03e73cf8eff426 Contribution 1227 +8b97d5e62b120466c2120dada18bceaf Contribution 1228 +8d0f8f2deab6129ea4555c06e70c6657 Contribution 1229 +ddc920d1a895ccb46717ad2f3ce62688 Contribution 1230 +94e31e9d641cbd08e2e77a1cdfeef063 Contribution 1231 +246bc1be78f3381ca63ad8bc6268239d Contribution 1232 +1bbc7c2371294a8b6eeae500c9824177 Contribution 1233 +33197bc385bc152bd3a2cd12eb3c693d Contribution 1234 +bb30173e359eb848c0adfed5e557a767 Contribution 1235 +19c6423d20ae40668a9af319c148a39e Contribution 1236 +b52fcad34258f55b7b448b53cf1b9dde Contribution 1237 +41e945a74306c2eb55364ad375ef4ace Contribution 1238 +b1689b2d0df3081beeb89f537a29a3e8 Contribution 1239 +9210fb2953779292fa611bfbe5ed287e Contribution 1240 +794a56328863b8a86e0e6a010fefd11f Contribution 1241 +0e361131c9c8bbe483aee826b9d0a28c Contribution 1242 +579ef12d7bb694e6a474a3791e239d3a Contribution 1243 +5a3a077cd22bf8118355eb14154ca384 Contribution 1244 +50b70916afd015b905bd88e1b53e047e Contribution 1245 +362a8e247b401ed88424c073e25f4f5a Contribution 1246 +a7959a53f6a6dc675f55897900f12079 Contribution 1247 +bca932309cf88db7d1b61c806ea3ab15 Contribution 1248 +a07be1ef3647599144725edfe7c52c10 Contribution 1249 +87b7d6dfd8e7a28f323fa1ee3bad4da9 Contribution 1250 +b659eb8bf64e9323d3f030d7b04522ea Contribution 1251 +6f7463333817297fd3d980d2eee04f92 Contribution 1252 +c2dd3b57be6eb1a5184a103cc6dee674 Contribution 1253 +6b2a1f313f544602c6b19a10133da511 Contribution 1254 +99141cc7137c7fe0181ec566c58febf7 Contribution 1255 +c36114e9ae51d94f099c473b0b76a4a7 Contribution 1256 +479e2011b7455fc1390256559a689684 Contribution 1257 +57f55f11cb4d111b09e6558bebc7d1e1 Contribution 1258 +40ddf90312b063841ee7a14c7953217e Contribution 1259 +768edda1c3fab28416d8c6aa82594e71 Contribution 1260 +094b44174c79f105aa73a45589132775 Contribution 1261 +3343e492218d14b61afc7d48484f9f46 Contribution 1262 +a7d23fbd5f38343f91a4daa34f9ead8f Contribution 1263 +72a802676ed5d5b50fbfaa9a9b37ceb4 Contribution 1264 +6210b75e15fa7b5f8f4cde99e1c4fcc5 Contribution 1265 +db0d46a184bd9047587885cf3e05de4c Contribution 1266 +00855d1ff70d54ed343563fb1bab45fc Contribution 1267 +745f7018363978756b470ac5423769c6 Contribution 1268 +b65e1eb5b8dc959587b9d92d5bfdcec8 Contribution 1269 +ef4de5c5a19adeca58ad15d8baabcb62 Contribution 1270 +90cb4899c06feb38b1937bda123e79b2 Contribution 1271 +b0384667e8e7f41e2bf492880facca98 Contribution 1272 +84f79e7a723efbce43d6c7ca47a7c311 Contribution 1273 +e331e19d00731c68b3a08171bcd7716d Contribution 1274 +31f140c8a2360f08b966746ee4e47879 Contribution 1275 +2b390c4d7f49f2bce0b82f444ed69032 Contribution 1276 +5c5dafc2fb0c3244f37504baac4df5ec Contribution 1277 +01b4aa1c555f64311e80a9287da69cfe Contribution 1278 +9cdd6a2719cef8390ebdf97b8bf4f49d Contribution 1279 +63e6620c224b98821fd60f0dc73416b5 Contribution 1280 +72b04313b6165eca7af29c26c69accca Contribution 1281 +2aa5cb067f12e8f1edaaed775431fc19 Contribution 1282 +543f2053dea362c9b0f14b850a876f51 Contribution 1283 +19541f38a95f06b7455c5072a5dc1cf3 Contribution 1284 +32ec00e4114493c5c0dbf03412c61ccf Contribution 1285 +da6fccc482494e6a0c047dc480add2a6 Contribution 1286 +0ef6a801b2f46ca2122d2a5962df880c Contribution 1287 +d97d4e1d50a641dfecb752fa541c9b79 Contribution 1288 +5a2c4c0630f9ecefd07423e1fe2866d2 Contribution 1289 +72077f01c10b0d6c6ccd0b7adb684ddc Contribution 1290 +5826c240e4a5b9bc3a3de61259b28cd6 Contribution 1291 +eae6b8d28b0916545b508ba1e639edeb Contribution 1292 +2b82c57b567882a547cb15cfd5f639e3 Contribution 1293 +ac2e616081a606b0f023b27d8185c4ab Contribution 1294 +e11073b2cff9b7c8eea1a2ef6585d4e4 Contribution 1295 +aebbb986242d8800f7df4bd03bad7baf Contribution 1296 +d2f9ac4b11a2dd76940742cee3c4e776 Contribution 1297 +de62a923065dcada213fd03fc2fe6d8e Contribution 1298 +60036d5920e607903459ebf1c70dae63 Contribution 1299 +1dd8ff474b9a99b83ddb81564542c8b2 Contribution 1300 +1f8e6b573bdbe18c513e5b5fe5b33740 Contribution 1301 +81a93d973a60026c244085b2a8174b60 Contribution 1302 +aaae84ccf795185696272bc5d824b43e Contribution 1303 +c8a6eb4ea0927ad344bf908f7979eb39 Contribution 1304 +2887ff6c7974ec993408565f0513f6ff Contribution 1305 +a531ad47eb52200e30325781542749ad Contribution 1306 +d46480d2b5de13f2e462e49948e017cc Contribution 1307 +251975e95c4d5252fe4f4b04ba3845e3 Contribution 1308 +13ae269189d47c2179d8df1e9cfd0e6a Contribution 1309 +b03455865e3485f65588c8fcc30027ee Contribution 1310 +391edadf74a765fe625e16ab15b7c05d Contribution 1311 +e1230069775ec061d78bd98ff8cc8186 Contribution 1312 +94ac47232d34f3a9772124aaa59a2d38 Contribution 1313 +af3413ffa891177e66cb1753e70fd8bc Contribution 1314 +02c4aeb9ac6d0b4e4882655755172a3d Contribution 1315 +4570ee0592f5a895dae6e72912c85562 Contribution 1316 +e7be9054c263f9cbc9219517e8ad131d Contribution 1317 +cc1d1ada5bc16c9147309c0b8cd14bc4 Contribution 1318 +7cb392c2fadbe2a9ba531fb883f2457a Contribution 1319 +3c1e25136b3f86d94deb890a91901611 Contribution 1320 +9b93e8bfb5209b788575a1c18a4367eb Contribution 1321 +ca968bfc702b802b24d2149fbc99157a Contribution 1322 +eed37ef43bcc6873761bf8c89d69e19c Contribution 1323 +b3e973a9d11010480c24024e6b51d949 Contribution 1324 +ab3a9a7b9138d5212ba9837bd2e8bb3b Contribution 1325 +af3dcf9e5e3314da889fb1ee980a3006 Contribution 1326 +80112f223cece6345c5ee4f774f87ddf Contribution 1327 +a0c35584d114f69fff0b416cbcea99f2 Contribution 1328 +05a580e4f864e51cb62da955cc6c6b3d Contribution 1329 +f59a68128741f01a55e960b0893e071a Contribution 1330 +4197b8bccce50264d6e5c342aa68831f Contribution 1331 +22afe47890632d218ad7072872916190 Contribution 1332 +58cb2d60dd720fa71234fda95413b828 Contribution 1333 +393724c5085a9be44c32f4aacec797c6 Contribution 1334 +aacd4ad7745cfa3d988ff36b3c1d8faa Contribution 1335 +29fdd796b760da8c8c7f3684943462e4 Contribution 1336 +e6d540801eff4eef76052efb5cecfc5e Contribution 1337 +919ae7b91af7dbf5181d0e54b7381b5c Contribution 1338 +031b133eb0129f928a5668aabd67663b Contribution 1339 +7a20aee0296ea8e05a4d3def29ec1096 Contribution 1340 +b14fe0499826ada507b8bcf42b1a8ed6 Contribution 1341 +ed8e38be7b48890622db7515d9da4feb Contribution 1342 +88f6129c72ac7ba8b261655723a6f9f1 Contribution 1343 +e3fb8ed40bec34cd7875c4e11018b197 Contribution 1344 +526302249c2e25e912c01fd05e8d6a83 Contribution 1345 +0c107d4ff980a87a5d9592222acbac0a Contribution 1346 +476c47070a1ad0c11f1c7b0e4f0f9899 Contribution 1347 +61638dbb85022f5711fa907bc87673ca Contribution 1348 +9568fc1c808a78db562263973c1a0c90 Contribution 1349 +e7f1d4906af665e254ed8e85349cc38e Contribution 1350 +a40121c4ef5d7826a2744d367c088759 Contribution 1351 +da12708fdb94188475ffd0c74b294904 Contribution 1352 +56529e6ba0e2e42a0e129e847c767dc7 Contribution 1353 +92b51138db94a2401a9755e3351fa312 Contribution 1354 +3ef645f3fa3bc3eaf8fb060e58865366 Contribution 1355 +990b3d91db8f208a928ca843fb8fdc36 Contribution 1356 +bf68ca819734cbc572f1193329efea1f Contribution 1357 +5ed809f91b39ed2d0e1ab95dc60f4543 Contribution 1358 +38ae005a2f75f7f1f57b084a396638cc Contribution 1359 +cf1f3ce65752980bfbdf7881a305a274 Contribution 1360 +9c5999b129b7497b2608e262f4955693 Contribution 1361 +09264f09d1f7cdd36c3ddd5c2d5fc6cd Contribution 1362 +b10e7eb176b9c312fc3cd63b594847df Contribution 1363 +40df7bc2466ba61c9e50e5f6c20c1382 Contribution 1364 +623eb3c43cf406a97b2225134f2b309e Contribution 1365 +b69f038598c2eea2e2ff936244032f05 Contribution 1366 +d7d81856d78e9416f4ce942d48f05d34 Contribution 1367 +08b98ce57fe692ea2c7077819235c384 Contribution 1368 +c59fba3f7f4191a355fe4d227c70bb01 Contribution 1369 +91c7aaf8407fdb5e0407160b74ae855e Contribution 1370 +f6f4989ddc3c2dbd4a12f3eb1648f16b Contribution 1371 +a148075ed790d1fb2cd2d2cf9236a913 Contribution 1372 +e781604a7cba22143e68a4c2230db9d0 Contribution 1373 +1697d3aeaa1664d17241055100825dea Contribution 1374 +b67b1391f56e372fbd3ae996545cd840 Contribution 1375 +6f615a8208e9de36097552ae4c7ecfd7 Contribution 1376 +00f8839d69cfec424e847f969ef142b9 Contribution 1377 +e826160f58545486edbdb1b6cfa66628 Contribution 1378 +5386697cf935e4a280c55ee1bb510246 Contribution 1379 +8b5d7667c4caaac8c1e7748e57b5cae1 Contribution 1380 +0c7d0d060303b55b73cf2cc9c07166bb Contribution 1381 +d3ad3b5a5008aea22d17e6f85e20b27d Contribution 1382 +2d524705ec37560b74611e9c01e07cfd Contribution 1383 +e80f27617f621bccd14a7ae4bf7052bf Contribution 1384 +647d6962f7e43441bf323361e235403c Contribution 1385 +96b1989dd13ad54a436c3316a09e6579 Contribution 1386 +5adca0b5a267f394d1f7c4b569648615 Contribution 1387 +77cc5bded698d0b6f6b8533d3537d193 Contribution 1388 +88b60b31863333f29698509e176664f7 Contribution 1389 +2575ba97a32559b4c247a6389f7daec0 Contribution 1390 +4b20a8ffef62435a0a06126f3528fc11 Contribution 1391 +c0701d05fd15e88e32d1133bc02f6de0 Contribution 1392 +08d649d4ec0c0ab3899d882f9eb13808 Contribution 1393 +d7fd04c91ae789c4954a8a229f01c919 Contribution 1394 +eefa1b120ced6e7025c36ec6db6cc7ac Contribution 1395 +09f7a154bf8b8370c41b6be8bc808339 Contribution 1396 +7f0eecd9741e68404c28776e157ce55e Contribution 1397 +b9f14aa73f114daa92813f12a7cf6021 Contribution 1398 +b1906ecb53f74cbdb06d3ea0253634ca Contribution 1399 +c38c15ba45127766637857170db9e215 Contribution 1400 +4dad632216133b6b218231563b43e2fb Contribution 1401 +262c251f411c6fa3127e3031ed844561 Contribution 1402 +d3ea6575ccda5cc0bbc4504af581a55b Contribution 1403 +d9e9a518d2bdf651e990cf7472d57ba4 Contribution 1404 +4638cc981f76bbaec928a45726021b06 Contribution 1405 +77384c43551d4df90d71eb03ea89d7a6 Contribution 1406 +ea12f6f4847fa53ea36fd27748ca566b Contribution 1407 +299b9e0913a441e8326dc199ab5eaef4 Contribution 1408 +f52e2ca21f569125d63a83ef91c6b3d5 Contribution 1409 +d695c3a57c2b980b86a4f1417132cd78 Contribution 1410 +fd5a1999d4ed73f98e1d5083b30e69c7 Contribution 1411 +829ba06213ab99496420ea5d07dc07ac Contribution 1412 +3fe41fbe507d4c6454330311e9a93a92 Contribution 1413 +a4cb948016139bdd4b17fe8cbf7cd119 Contribution 1414 +6774e3691930bdc24942e2fb849edbe6 Contribution 1415 +c009abc43e66f7a692dd47747237fa12 Contribution 1416 +3dc681838d74585e11df64ed3074a2cb Contribution 1417 +66a3ed2490586e848b09bff8526a2d1d Contribution 1418 +16eda0f364643c6a8a7cab52060ba96e Contribution 1419 +8a8001d512954e4fbd3d6b3bb15be07c Contribution 1420 +f9a4af1c073f568554ae96e849fd9f9a Contribution 1421 +b42f93812524683f6279c6c7e8020f82 Contribution 1422 +f1dd19861033cd57e7a270a0a7a16218 Contribution 1423 +0cb35a1014c0eef002a80a2bb8c8c6ad Contribution 1424 +52700573b398787c017b0e6829144cda Contribution 1425 +3359ad59e3749eab0e1d86437b8c8a63 Contribution 1426 +bc9c21c11b56c061e040eee991782395 Contribution 1427 +4eacc6806acaa8bc2e79209c4cadad0b Contribution 1428 +fe60ebc5958e7a99162c8a103a0d4d76 Contribution 1429 +26e15556c3e574d444da0c0ce03f6f95 Contribution 1430 +86ecc0e7c2723808efb7c63e8ff16759 Contribution 1431 +33a122a6711bd1fb434a7095dd68edcc Contribution 1432 +a967e00f4ddb5ff905d0cd0f35b9a248 Contribution 1433 +917c25a4ae0c5e923ee029dd8cc15a39 Contribution 1434 +bdc5f0ba52daad7103b56f2967677ddf Contribution 1435 +6a66fefc5141566f8197cc4c26ab33f5 Contribution 1436 +44210fd764ad0b34affd2d8d1b4f5b34 Contribution 1437 +46468654312a52168f825766f07bc780 Contribution 1438 +2d3cf0d3ad9e9ea35bbc76a8524f846b Contribution 1439 +1d8c46ccf73ace0deca02fe5ad48d362 Contribution 1440 +f60b713684845394b6db323ef11ab647 Contribution 1441 +1b3248b95a654cb1b7a32b4d78868686 Contribution 1442 +1c8b4b00281cb50267ad2838589461f2 Contribution 1443 +04757f39df0516cc9345960d3003ec4e Contribution 1444 +d887ee2338bf3d84f01d1fb8c5ed602e Contribution 1445 +fe40768f87f9be7690c0b20d725d6684 Contribution 1446 +fecd33f3f65ae248e78bf0da7988ef91 Contribution 1447 +6e824b514282bc372646ea2e119c2cc7 Contribution 1448 +a55805eb7fe87ccf73ea4fb96067c002 Contribution 1449 +e51fe683b944b5a0543c7ccbe2b323e4 Contribution 1450 +280b40b10db0dfbb4d0be38cb1df2f9f Contribution 1451 +c7b5f7db1ccaea5b0eaaf87ac7a03559 Contribution 1452 +b75fc10f8507ad6262d42402d9b19ace Contribution 1453 +2c66d081d137c7d01460e87a00aebb0c Contribution 1454 +db42678998c8a57eb076d6433a461535 Contribution 1455 +29d763d0b0ed37bf96f9cba2b74c41c5 Contribution 1456 +611cf9c6e159ae6aa38a5dd7c81916e5 Contribution 1457 +c09a4f663d882b9746cc3a435744e95f Contribution 1458 +38b550daf768ed3ab3ff9cffbf89a1df Contribution 1459 +c873c5bd04a37819c73abc791ed9c97c Contribution 1460 +4e3869b4dcf9900d719c1d2b62520d4d Contribution 1461 +554a2251401a8e110cac769b4893b791 Contribution 1462 +29068e5b92975e315178f7f3ac40723f Contribution 1463 +74745d721a37da5828a07772c98f93fd Contribution 1464 +01bf65ffa284730b25a621b78e06df36 Contribution 1465 +987dc44368e946138c42c11e32aad438 Contribution 1466 +a7eb6719621e235bd2b6219f3ac08367 Contribution 1467 +b3e798da90a89e22e7ac32db45dc4450 Contribution 1468 +2a1621a093ee2a83e441652c460db8af Contribution 1469 +8384cc432e9083d6c377e7bd7798e51d Contribution 1470 +5f7bc1d4b41c19cd0fc81e520378238b Contribution 1471 +f5b8f2fe5dc5ce1cb9b8056aae033401 Contribution 1472 +b94dc0f84f5754588168d1e67d142c60 Contribution 1473 +694b14190960177c5276b00673188f27 Contribution 1474 +dc4ce044f3ce5590e9d04b19550c20a6 Contribution 1475 +e0a621ad6efe715c732c9f6990758027 Contribution 1476 +ec610f0636f6716cfa524c4acee7f7ba Contribution 1477 +4ef186907808afcb3ab6b7205a153e42 Contribution 1478 +a5b07f078f39f9a1be5a8050b8b554a4 Contribution 1479 +5a10fc0aa15f2cce1ddb48f75334ed90 Contribution 1480 +29861b70e22f0a4333cd7fdcbac6c4aa Contribution 1481 +3c41defde1647949e6421e6db2a02765 Contribution 1482 +7886a6bc1afb10ab1077b3a6fa99be8d Contribution 1483 +55e6f02672748d466c08953d4ca19dea Contribution 1484 +80d71749fdd233eadf7a9edb7e0fc4c0 Contribution 1485 +f63171985bd8a45de80caa97eae33696 Contribution 1486 +62c73d4de19cc2ea35b7824a3686a20b Contribution 1487 +b94276f6461b92856032d2d9b2a01969 Contribution 1488 +a1317a8b5fb34553ac112fee979338e0 Contribution 1489 +8b39058b25276c1159d1f26248477246 Contribution 1490 +7c5a40e92e5abe77f1704c0e07078fc0 Contribution 1491 +dd05f8fcea94cdb5b9dc4d93d3c20fb8 Contribution 1492 +d6518797173efc7745ea35f4fb3193d0 Contribution 1493 +1b387ee167df416b7d27ab0b1ab0d075 Contribution 1494 +65d8d43d1b7c3c4a49b525f71d545a75 Contribution 1495 +0c4f222b94bf459180c088a5902a6709 Contribution 1496 +0424a8ceeac77609385fa4daa63bcaca Contribution 1497 +47cc9c0f03ca947a410e6de789f0565d Contribution 1498 +4984334e1de7591f575a0516a4b270b7 Contribution 1499 +993cd1db280acdf4db825c061251b456 Contribution 1500 +35f70642fd68875c90f247cca3f33a4e Contribution 1501 +1c69ed1963715c0486d0bec263e6eb37 Contribution 1502 +019b1f081b67a1e04d629eea3bf3bb9f Contribution 1503 +097452059e1a2ae5244077149dbca2f6 Contribution 1504 +79d2b5a3f31816dddc1ad05b79409b9f Contribution 1505 +2978ca800313a898149f10a18b54c67d Contribution 1506 +c89dec95deb94a5baf3a340e613af9a6 Contribution 1507 +d6067ae805c7eada45ceaab04bfa1c76 Contribution 1508 +f217160d7da0cfd764364dc67c65a2e4 Contribution 1509 +570f5e2f93e971dab04e3bcfe84e5b93 Contribution 1510 +f4492bd2cd5c74c61d8855791656b2d1 Contribution 1511 +58ac5038bc1837467d134d5f09f67313 Contribution 1512 +46178dc3075a52037240295005bd463d Contribution 1513 +62601d1fecd5c0a844ba48ee523feae5 Contribution 1514 +fcde52aca16a65605c32b8331850bf88 Contribution 1515 +76df6a49d7b09cb00e1032736337f5fa Contribution 1516 +a9200417448c416b9336a44bfae5a24f Contribution 1517 +69aa7bac5725ddf40ebaa4ae2d2396fc Contribution 1518 +01745e97f6136bfa8db5f036b1957fb9 Contribution 1519 +1e818fb57755fccb4103ec3d2aefb20e Contribution 1520 +914de3577058701b3dd51e4c5c770ada Contribution 1521 +33ec6046d00691ef9d7c0edb0a1731f2 Contribution 1522 +27f941851f368e016a1165e5b92bbe92 Contribution 1523 +5ef4b47f0293c0d5daccc1f981ec2369 Contribution 1524 +8a4499b1b5de5f4640f63b8f59aa0754 Contribution 1525 +5a2e8f04a9c663568df83d2f795a51b8 Contribution 1526 +14b8caf414457100b59a08a03b2c9494 Contribution 1527 +6f0768aebc875287362cc92702d62bdc Contribution 1528 +5e52b1868ca3551f33cd19b6a071ae11 Contribution 1529 +2cd82082c200b26ff37ddeb9b8e49951 Contribution 1530 +e2265074eaf8ef7fd17b08ed0806de08 Contribution 1531 +039e04ec69ad8fbefd35dcca7426e23e Contribution 1532 +70feed827e2172554addbeb5b2f59d9a Contribution 1533 +e1138257f4e923f851ca78238b2b6415 Contribution 1534 +da6a5202378644acba9d7d9351ce86a4 Contribution 1535 +f6b4b1f69026bf463548bcc16b10d74e Contribution 1536 +3182733c77e8f15a5db4a751ca9974ae Contribution 1537 +cd959cc37c9deebb3e17cf913959a9aa Contribution 1538 +9563e38b03455f3b03e951c743caf267 Contribution 1539 +f3364a8a317d2c71ee56fb2b5fb24382 Contribution 1540 +1862b5aab524b160815b7d2e5d96f13a Contribution 1541 +f0ebfc9176c39102c0639ac666a86aa6 Contribution 1542 +8465154168a67194517326cecbf210d2 Contribution 1543 +cfb1ba928d61359ce97373a49843bb13 Contribution 1544 +1f4330da6e71942a955d89939589450e Contribution 1545 +74fda0fd17a0cf1e7ab39ef9b2f0b9ff Contribution 1546 +118814fa2f18f5a0d1409c5a8cd84608 Contribution 1547 +5afc0c4e221d28b36646148079a08119 Contribution 1548 +8418ee8c5a8271df90e94e41581a0760 Contribution 1549 +6aa873f8f54a388c701bde24ac9a661a Contribution 1550 +951fe47021f996044453fadd57de95e2 Contribution 1551 +ce408b21b87161ad901f53ed1cff11ae Contribution 1552 +18bc46f1fa244b3daf583a23e03e25ad Contribution 1553 +269631f0c95cd8351dbd7beb0ab76531 Contribution 1554 +a757644b000afdf0b32707e14b5240d2 Contribution 1555 +97d6edd5c3606dd2b5629cd4dc1efd9a Contribution 1556 +c9bf4e7902e2e2bd3b278d04a65d525b Contribution 1557 +923dc4185ed744af6b25ab7db2315959 Contribution 1558 +91b033ed571880aca718f8f06493cd56 Contribution 1559 +d1a329bcbfbfeb883ef61e70c256aef3 Contribution 1560 +eedb1ddaa9bfc4d095b42d096a565997 Contribution 1561 +ab79933dd0921362d9152c64445d2e59 Contribution 1562 +8602014b7bb55227d379c79c141edcbf Contribution 1563 +8105a4feee6164f254b5a92f0a964ea5 Contribution 1564 +969abc46637b53c75b5dd322be5c0bed Contribution 1565 +d4625f8bbc9e2034c27b9f425317efcc Contribution 1566 +7ce9dcf67908cc52108b55600a0efba2 Contribution 1567 +f544c93a18c020af22dc51a5858fd53d Contribution 1568 +0d3dc67e9b3410d9d61775a9db653fa2 Contribution 1569 +ae940bbd02b4986ea232afb955587ed4 Contribution 1570 +1aa6e4a3f82b0b31678b89eb7eee19fd Contribution 1571 +e65d860b1d390de66e072e1f4dd6a8b2 Contribution 1572 +c4612494dd99d58dfe391de334de270b Contribution 1573 +f1982e256c1061cfb14eacd14215b7f8 Contribution 1574 +d34536f57ebc84233aa63fc2b9301f18 Contribution 1575 +cb4fa7e7f4277f4113d596df09aa0512 Contribution 1576 +ce878e31a5fab4f05a857cbcfd5c13cc Contribution 1577 +5c49046bb787e18b1985d1756285f395 Contribution 1578 +de54755fb2fc66e74cbbba670a766a37 Contribution 1579 +d528eddabed9a8e6556dda874213fd1a Contribution 1580 +5a965518ac7692fa5519ba670cab33d0 Contribution 1581 +3909ea4ebb0c53de36b3e08fe1a622d7 Contribution 1582 +26edd4b584f85e8274c6908d2ce83c99 Contribution 1583 +bd9c02e15f95b445e5f79dc7c5b9b98c Contribution 1584 +a46b7f65c31e6c4f798512f54bf23108 Contribution 1585 +13326e5db24ba6fbfbb60a9cc721deec Contribution 1586 +4f7bfb39cd7c2c3dc1909eefd16413e8 Contribution 1587 +2b68c0d16ae5ae541b8bc2baab633a40 Contribution 1588 +fca88dc15d04ffc36194e289dddc94de Contribution 1589 +5968e484a5d2d7f18e3222e5b72cca83 Contribution 1590 +58081a3ec4d304f989445c1576a5686f Contribution 1591 +dba3f72874e2ecafa757e7696fe1dc7d Contribution 1592 +42374992a37c5900b122cbf7510bf0a2 Contribution 1593 +c06ed4671a4efb4fa33c72f27970cb18 Contribution 1594 +c966486f87f2b2426476c881fbe7e0ce Contribution 1595 +6eb2c2803561bf8c0c454311462050ef Contribution 1596 +e255df34ab5f91e51dad7bf50bd44a6e Contribution 1597 +41395875c7462facee8669ef24bb520d Contribution 1598 +5bb50c2da4e418c8dcbbb05892ffb84d Contribution 1599 +e821e2521bad8904f9f117594f037fed Contribution 1600 +6576d426f1d60925d2b281fad370923d Contribution 1601 +ab527ce475492b12a4d8d5c5f5a43bb1 Contribution 1602 +90fadfacf4f82c2e56fe827c3bf8c15c Contribution 1603 +c255a08cf1157dfb71c8b58745510ef8 Contribution 1604 +16baceaeae27694441c15c02b3ee3078 Contribution 1605 +fa08c98c23ad6c963400effa56349ae9 Contribution 1606 +bd90ec9d7fb36e3561d886b3b8a1b6f5 Contribution 1607 +8ab3f94d874ff7bc47781de64aaf299e Contribution 1608 +6041b53099edf28c679c6f0a6ac4de2a Contribution 1609 +a619e8453b04c2459cc93229adbc8b6e Contribution 1610 +82207a855b37a98c98e776c709111e88 Contribution 1611 +a39df255af6578f2ef9ee39edf1f06fe Contribution 1612 +2974526420c41cb207bb16227c1b3b3f Contribution 1613 +9d81edb77cf6faa84fc3998a4d154b5e Contribution 1614 +9c06387fc1c30b1768f6b256a3205bc0 Contribution 1615 +11bbac3363f019593a067f10577f518e Contribution 1616 +0ff8ec0673c78b156d91510445751f96 Contribution 1617 +e682db3272c66f9eee9bb91022b5899d Contribution 1618 +f7aacf2e750ed258e09d39c7c543ec3b Contribution 1619 +30c34971d9828569e42e898f48ec2b98 Contribution 1620 +b8a0f44a7ad816a8ac8d27e604f29c36 Contribution 1621 +18f626ee89bb94e9b571c99137af3565 Contribution 1622 +0851b458a8738ef6a1ab6303b5c159b0 Contribution 1623 +7bdff38801e8d57a57a201d231149d95 Contribution 1624 +8e184fed2157f1d80ee2934fdb1a4cd7 Contribution 1625 +c8a5eca197f2b9975923b711895556db Contribution 1626 +a8e5cdbfc3056dbe4a516956a2adfed7 Contribution 1627 +7f7d474fc569747d0e369173892800df Contribution 1628 +b00d13a18b4d87d7b4907ef783a423d1 Contribution 1629 +b8e8452365e8d032461717ef0b2eea22 Contribution 1630 +ada20e34acc7ecb50ce430c8a78117cc Contribution 1631 +e6fc0ad4ff13779465ffaa469464e251 Contribution 1632 +26758461d763a5271c5ff0e0ada63f85 Contribution 1633 +05c3c5d589bba3ce9a8eca13562ccb03 Contribution 1634 +c4ee6a96b9be785a47d410efa82c4123 Contribution 1635 +d0b9d100f582727bf07d78e998320f97 Contribution 1636 +2af1cd9593e828125dda54b31cc267ea Contribution 1637 +6bb56effa04797675ea86e52f33b1f07 Contribution 1638 +8e2de302c5a4c5ac8ad357ee12afb4a2 Contribution 1639 +a2816d36f119dd4412f60ddbd34949c3 Contribution 1640 +469a70684e675fd52416c48a15487135 Contribution 1641 +6dd6a4a6100efdd553fe018301b20b50 Contribution 1642 +645f729b65e2a54bb971c73432bfc970 Contribution 1643 +133f7b49c892584f8558ef102db546ec Contribution 1644 +9c606ad29b7e5abcdc6f55620009d07c Contribution 1645 +39b9c7db67fe59a7fe4e6f89c69939c6 Contribution 1646 +bdec291178627223cc01d7aa377838cf Contribution 1647 +d85fd68410d9d64726ae2f384a7a3664 Contribution 1648 +a48b813ce065dc3baa79e62ce771f927 Contribution 1649 +4e113297e3840a47a1b1ee250b77fc8d Contribution 1650 +8a7c3c2aa687e3b1bcd19b57629af8bf Contribution 1651 +85653c1eb410a41d561e3cdefa411593 Contribution 1652 +8174287fa47520e633f44fa84d07cf9f Contribution 1653 +2826b72d281dc599b3367eba679b5aa1 Contribution 1654 +f2b719cff26b0de1f32818aeb8510e81 Contribution 1655 +326d43a56287e3ea28fdb90295ac2ef7 Contribution 1656 +2c2ebcd9e25ba64c5b82d1107be372a4 Contribution 1657 +63d7d593597de2ddf957094bfbefa48e Contribution 1658 +0cfe2c3553d755afacc9145c6bfe7bd5 Contribution 1659 +c76bb77cf6cbdf64527137cfe5989047 Contribution 1660 +dc0b72c779de3bc5552f4f906f9c30fb Contribution 1661 +d59df0471707651b84bb08800134ebd9 Contribution 1662 +c4fb46df73c9d7b82502d6b852dfeb39 Contribution 1663 +68e0d3d708125848462fb00774d0e420 Contribution 1664 +4cd40636701a28733505757d29e0ff18 Contribution 1665 +6dd125ca61d37c2078146f8065ebbcbb Contribution 1666 +dc35d88fa319be8543f50a22865ad548 Contribution 1667 +d2e3c0de38e22b0de482a8598123873d Contribution 1668 +d37709246bba94241fb52305a2e61b40 Contribution 1669 +73dd6d0a77657721037fc2ee5fb0ab70 Contribution 1670 +7ec40bd493f14b9acf2c2e0c505e2a17 Contribution 1671 +a5b0372a8b3e7f50eb3be35dbb5b8503 Contribution 1672 +791a23ba41316dcd5a82f1843a9cb3d9 Contribution 1673 +e02e04391acecf8e28105f99b2277dc3 Contribution 1674 +42d28d38412b135a2468bb51666f3974 Contribution 1675 +f54d76b57334feaf31d31409fdb8b463 Contribution 1676 +391ac4a3696967fe36fb6c78b72a8c81 Contribution 1677 +a8508a866fc835d43770feea587fc65f Contribution 1678 +2aed343c79d9df33e08e26bd94c9b89d Contribution 1679 +c13ad13882f4d3f7b03518795cd74a6d Contribution 1680 +11dd78a0b7c79da855848101b7241bbc Contribution 1681 +029f8ad5845faec0feb46b60d81e4587 Contribution 1682 +7aa23509e989e9971063612d8d47dca3 Contribution 1683 +b5225492bbc977b66359468101797808 Contribution 1684 +580d1a3e8c6bc65d279feb62dbd2668c Contribution 1685 +aab1f9bb81a26878da4b1476b5ea28ed Contribution 1686 +8c6c5852c782b294620a86e4e58808c0 Contribution 1687 +f74a8dd2a0260ddc013c71a46c438237 Contribution 1688 +29e5855de8a985c59f15b06c95a7435b Contribution 1689 +905054e9778fd05d3011887a3e7ee4d4 Contribution 1690 +461cf56e2e9708b2a776dc3c39d214e2 Contribution 1691 +40395561e5f7581cc8ee642aa96ae1ac Contribution 1692 +df28f36666035cec0c3c8126b38bbba5 Contribution 1693 +d0ae8710acb3c8e0bbb2fdc8941f8236 Contribution 1694 +4e7f5243532e68028603e48559ea1e35 Contribution 1695 +676361df7a97463a61eee748e4f0c9ea Contribution 1696 +1e0b8d9f9468df486c41b0f2f300d93a Contribution 1697 +431f448be8d0d313e8f0b91b6928b132 Contribution 1698 +5d55cdbfd6c413c6bf02d2cee67daf68 Contribution 1699 +65895ecf6ac548a5d4671d181ef3b1cd Contribution 1700 +845f143e7e6e3030dba94e2340cb1964 Contribution 1701 +ae7a354f623fb750ef8378694a25a739 Contribution 1702 +1ab712fb368abe4114fc15f29d10bbdf Contribution 1703 +da993c0e46fbf594fd544bf6240f1b12 Contribution 1704 +e07e72fcb8ee1ae4eb690a9b73ee783b Contribution 1705 +d4ac4fa25d5a49067f8ea944c2d0cda9 Contribution 1706 +729c76fe759b795f982cc0d1c739a9ae Contribution 1707 +f63ac97ef253db93d3528262044a3948 Contribution 1708 +be15a8500d23d30cc6a1da0f8f580e53 Contribution 1709 +c08093d666276957d7c52a8ca82283ca Contribution 1710 +c3eb52ddc30ae5617a29e54445e5061b Contribution 1711 +a1d2dd04c46d6560acf16c281ac36e0b Contribution 1712 +66afa91930559781b669880290b79751 Contribution 1713 +399022089d49a8fb86d6843a0118f7de Contribution 1714 +84fcf0c900b09e8ffb341aedfc2a8e16 Contribution 1715 +83a3732d2b3981fd50e329ed8cca64c6 Contribution 1716 +6afa8041ddaa3f480797daca5923fadf Contribution 1717 +32ea6dd882cd203967f40df9f737bd5e Contribution 1718 +075f24ec977b9f3458d901dad87b6d64 Contribution 1719 +34f0b085bab39ad92054617015e765c1 Contribution 1720 +e56d355140e432a29f53126d607fa222 Contribution 1721 +ca41c7d257cfea6f60dc056af3f89214 Contribution 1722 +2b5af6b47fa452c2a56eb6924f28f886 Contribution 1723 +959ade0ee8cf22be471e8c63d4b56258 Contribution 1724 +5be7f194fd596aa1a19a7e2942bc3569 Contribution 1725 +52b1edc2e0cf4cff5c2d75a4d0de0ef7 Contribution 1726 +bb9352e1fc031a54f49deae873221722 Contribution 1727 +6e62176ced8efd1a3b2726b446d8bd86 Contribution 1728 +9b701c86b9be1476fe6df386a7716025 Contribution 1729 +b6006e728825191f7005697acf9a6145 Contribution 1730 +7284824547b15ca64952ffdef7eaca95 Contribution 1731 +141f5837dbfdfec1bd1ae8cc257dd5bf Contribution 1732 +63cf9bef5af0b16f19a127038f968237 Contribution 1733 +79ae39992a5d57533c443fbf575975f8 Contribution 1734 +049f97631d011d1faa688da77138a047 Contribution 1735 +f537328479a6bef049daea363d41866b Contribution 1736 +645ca1ca44e5ee9cbccb6e5acbd4074a Contribution 1737 +7df5c08381dffac3ef79c233e829e25a Contribution 1738 +3763c3b5c49dcf290b683c528c3abec3 Contribution 1739 +b05726c23ab311a99f7475670067c86b Contribution 1740 +e8fd1e9d586af54261c197e7ef211db8 Contribution 1741 +57e23000d9ef7544f1012dc0ad03c2ec Contribution 1742 +b4f9d3c70394cd811295b85b3c89ee7d Contribution 1743 +82cd376ffd0c65de8d48c273449be54d Contribution 1744 +e4bfa86e8ea2b9a7a877d03b55cdc851 Contribution 1745 +02a9b3df14e9ead04022bab63e25887b Contribution 1746 +dce8c462313c399ce5c486efd44185ad Contribution 1747 +1258f07bf61ac5d868c0b8c210324aa1 Contribution 1748 +2612ee5aaff8864c995746517d40a08e Contribution 1749 +4d30e08adacb605ec88500870ce7038b Contribution 1750 +aa24ff360b5f0029b4fc3f34027ac417 Contribution 1751 +32f766ee6d12d728c9fb857c73a3e203 Contribution 1752 +aa5c6c3816676de7f9febcb0a9b2321b Contribution 1753 +27265450fd654cc1b27a872b7fb17c4b Contribution 1754 +5802bf6ee05ee896c4a57a32a3a3eccb Contribution 1755 +34c12199a71962ecec3c1ba7e52c03c4 Contribution 1756 +a96e80d22cbbeedf46503cd6feb3088d Contribution 1757 +d0c385df5fd1516a3c77ffd3789e679a Contribution 1758 +460423c132108b29e5e348ea47d8d933 Contribution 1759 +c84e21e4f08a8c439c995dfaee451bd7 Contribution 1760 +bbd5f65cf1d3dd9f387a28671c0fa31a Contribution 1761 +e927397b7032af808e084df0d8e2ed20 Contribution 1762 +fbf5b560b312378da404ea5a2b419355 Contribution 1763 +64900953accece2b1bcefef36a6c9876 Contribution 1764 +550a6af1c2bf314f41b4d63184e8bab4 Contribution 1765 +825d41a054d8fe4cafb80decb9bee0f4 Contribution 1766 +9f51469770d5fb4fe1783d54ce51c981 Contribution 1767 +f8b900c91048aa65e50181c961b45315 Contribution 1768 +dc6103c141d091e87cc382457f812476 Contribution 1769 +8d48437f3d2a40e6efeb1dee07366b18 Contribution 1770 +32f556bfe97c5d7f7d1c13da11eab503 Contribution 1771 +ca07611d98b25311b8d1cab76304f2cc Contribution 1772 +4062271b53c220a3fbf2bf8acf48a6d5 Contribution 1773 +c78e1358a50ee96c38035c25dd00bfd3 Contribution 1774 +7d4d284c790d6df71d40b0e10d83f5b6 Contribution 1775 +d259eddca4791c886b7ac8da63cc14c7 Contribution 1776 +7aa91d31db9c53815718b7ffaccd4c77 Contribution 1777 +2ad82bfb71cd450196124c80f92b0749 Contribution 1778 +f4eb111a44903f92b7ceb0f63d10dadd Contribution 1779 +b4cf6eaedbc9e3d602cb73b2d141cf00 Contribution 1780 +6193bbee5eb31548f4b2656865923cd7 Contribution 1781 +6be7ffebd4550ece5401ad36d8cc44b8 Contribution 1782 +7eab22f54a28c3e9ac7ba18433b544fe Contribution 1783 +c0900ca5331cc85c0d7a3de0a45d656e Contribution 1784 +23895dffe07751ee42361d7bff3a7e8b Contribution 1785 +8e04c4f0fe2d8ae508406f87071bf72a Contribution 1786 +e4e283912e3725ca332a9a8e161821d5 Contribution 1787 +1446e9e562ddb718fb9338023b5a92cc Contribution 1788 +d2c6ce0ca227618504e19d2ac8c1fcdb Contribution 1789 +f2f42e2be9d8ec92046162bf4c73cc7d Contribution 1790 +425e5d60e54f3bc915d5c281dd7b4f66 Contribution 1791 +3aa48e59bb66b8d5509a9763e249028c Contribution 1792 +76078fc66d6b01f0bd6a6e4bc8bf4e1c Contribution 1793 +0ab5f780ae97d33067b7195d88181db6 Contribution 1794 +2613d66fde210fd3a0fa0161e03cf0af Contribution 1795 +af01c96626378695c2eb3265c8fe50f3 Contribution 1796 +d20c141de931f17d63c0bc11cb042732 Contribution 1797 +48fa598e841180bdb2d34bee13c14481 Contribution 1798 +4d8b108c94b9ba4841c69483b153cead Contribution 1799 +c595997f1cbec15f9c747f3ea62a51f6 Contribution 1800 +3769bf60af3044bd0b31c511a769a2cb Contribution 1801 +adb85a0cb71e3f6d07bc8294bac06258 Contribution 1802 +e012ccf865d6e6d437e6ab0226297ab8 Contribution 1803 +18756aca395a79b4e28e10b099fb8a01 Contribution 1804 +102d6b0a226500697986b5fff91c69d4 Contribution 1805 +971d01b82e5c2ca4f4244a30dd189152 Contribution 1806 +4f1e6b60a40f5fcaa3ee36eb53ef8cdf Contribution 1807 +f2c19250a658ed391a03836fa2d453eb Contribution 1808 +c37e7bd63d72bb2c5b10e1b75bfa4306 Contribution 1809 +048f095bdf05dbafe3ca099661529695 Contribution 1810 +31b4bf94ba6bd920ae57ef477d6efe8f Contribution 1811 +9ad630e2a1ad53a44b963fb3a2080b51 Contribution 1812 +cbcdb37f2eeda0722d8dc5b2183c1b77 Contribution 1813 +c4f6cbb614116ef225a1b2f736c68332 Contribution 1814 +514fe000a9b0da3349cc319e8b107b21 Contribution 1815 +811480dbb58bc3506171aa7d2cb75618 Contribution 1816 +6ca5e1aa452d778b069c11e10d27bda7 Contribution 1817 +72aedf15435bb14a5f9e0a609365fc72 Contribution 1818 +5b2997a744b7983504eb169ecada4f8f Contribution 1819 +14299fddcb5129ddd9dfaf750d95ac0d Contribution 1820 +c174627d0a1c0b24dcfe62195fae3ebf Contribution 1821 +0e984a98b734fd90b5d312bf4a585201 Contribution 1822 +a4cbf568ddad7a3fe012075e410239fe Contribution 1823 +0c188b47b8b0196bdcc180473748aa9f Contribution 1824 +905efe0912e70ec003f6f6ceb7607ca1 Contribution 1825 +540132663b133ddd01d39964066cdec0 Contribution 1826 +093f611b1a2a5b5eb3690d9180c4a978 Contribution 1827 +535167d0302fbeb9e6684db28c712d91 Contribution 1828 +430ec2536c9f250a2008973edfacdd8f Contribution 1829 +0ef837ebda1967c7db73e569ff011b96 Contribution 1830 +779bfa963b42b1354b76287bcb621ffc Contribution 1831 +ebbb1ffd094cf8466ebe80db96ec0104 Contribution 1832 +f3ae60b70678289e1cb15aeeb7b969ea Contribution 1833 +659e43fcf0fbc1afbc1a3c9cafea4bac Contribution 1834 +4bd8bede35c6299fc08957e573ef52d4 Contribution 1835 +3a1f2865d7f8e59f0c96492db2e15829 Contribution 1836 +ab34cdbe668feb625579d317ebdde7fc Contribution 1837 +66b99da4110fd5999eeec6aab9cafaf8 Contribution 1838 +b03bc8ba19bddc3f0c9fdb2f555b4dcc Contribution 1839 +33fef201ce0e90e26b099e424b1a4ed6 Contribution 1840 +c4d03ba52ff90a68226ad6dafd5b8c65 Contribution 1841 +8b27adeda64f204d1b22d08946cfc60b Contribution 1842 +10a5b5e7281f506121b7aa3c7ddda515 Contribution 1843 +25cbd6080e22d083473ba5f32a20ff56 Contribution 1844 +afb7deadd1fc222af4de9eb70d28eb91 Contribution 1845 +bfb794f70cf1d12cc9765d369dba2ff1 Contribution 1846 +fa12875c3c155e2ddc05992523305884 Contribution 1847 +8e86c8583c1f36b52e4260436f789081 Contribution 1848 +95449adc7d8d158037c8f89b9d0dab79 Contribution 1849 +e3300c6fba2f1c7e7f4865ebc6c37032 Contribution 1850 +15507842b84f3644b3890b4858920967 Contribution 1851 +8fad80c3cf65ee095fd0a4137b52b227 Contribution 1852 +5bc63e5dd48d4527d16b7bcc8c01f475 Contribution 1853 +e429aeebd92886988c3001afda2b6532 Contribution 1854 +89be6c8b00c33a9e587ae007c249f153 Contribution 1855 +8760f6aa759e773d78f05fece9ee7b90 Contribution 1856 +f9dcb18054a5ed8f2deca38d8a3bc79d Contribution 1857 +503d3b7850c08676dba30828ecb8ed01 Contribution 1858 +281d595649fc35f7220f05339352a030 Contribution 1859 +21a165104214dbd7d90848d964e7f5bf Contribution 1860 +73c997e38f96031e946691ec172538db Contribution 1861 +fde98100b8cf8d0292be7c3cd64e3d30 Contribution 1862 +7f839932399bbcdc71e87cdc7d1c67fb Contribution 1863 +02fa68d3a4463fa4f18418940a417aa2 Contribution 1864 +e3c763662b6f082ac94bb51951aa71c8 Contribution 1865 +06eb2b730ff05c391145b531c1a41b39 Contribution 1866 +ff523c90fb1d51964ad20aa0d8444f0e Contribution 1867 +03dc5d43cd6791fc28e7c8a7eba7a292 Contribution 1868 +451efe61f4784b651dff9913f741d795 Contribution 1869 +afce796edd1ce4da982146bb880f98ef Contribution 1870 +71d313f13dbfad46ce0f6284f986d2a4 Contribution 1871 +ccc03d59bc98ce21974e5cdc9c88e03c Contribution 1872 +5302a8cf2d4ac2e891185e091cc5853b Contribution 1873 +c4cd50e03778ada732ac89940dc9d98b Contribution 1874 +5fef65bd3ddbf62bad0f99ca701990b5 Contribution 1875 +44bef1133569c30b421b5735b74d1437 Contribution 1876 +d1f46960472586fe1d0bd2f3780fe842 Contribution 1877 +3eed881541fa946db28b2cc3e5512cc3 Contribution 1878 +44b429530eb81af6a2b00d2f26b4a7e1 Contribution 1879 +7a1f2baf39db9cb8264ae53a07d4a631 Contribution 1880 +a0e57ff544095a1de8da4dc5b2f1a05c Contribution 1881 +b2a62dd773bc96f1be84fdeafbae0051 Contribution 1882 +71685b9f76de9fbca347f2d69e2e8ef9 Contribution 1883 +6599be3e02e155aafc9189267a9f4917 Contribution 1884 +df562ad6d04f857c4e3e5af1727ad9df Contribution 1885 +40b5f2f9b08328316bfdc4ac10a9f161 Contribution 1886 +fd21354f9b8f96200c3aa36f545a9937 Contribution 1887 +b9832357cd591e07dedc8148083b30f6 Contribution 1888 +dcc7ec25d4f97d35cd3146e4a3e893a9 Contribution 1889 +c23b06b19f2fc5943f82e818e9fec37a Contribution 1890 +7dac784f7f8a50821e3dfa9c49186c17 Contribution 1891 +e5da10affd0265b813f89fab4c2fa5ba Contribution 1892 +85b47228759a02ca3fda2332ba6be628 Contribution 1893 +865ae492dca48c6134e8be2c7950330e Contribution 1894 +1a9939e5471893bc8fa463d51a8ca6ff Contribution 1895 +daef7e50c8490c6d2663c9eb1371407f Contribution 1896 +0039cfb841be7774673e7ffb30c6fe88 Contribution 1897 +ca2d79c3c7f04d228d3d2f538a3a2914 Contribution 1898 +ccad63b7c0888fb22dafb37e6398947a Contribution 1899 +cb14bf5ff91323f16f66ebd1aba02881 Contribution 1900 +b8be559491353243b8d64e4e68529a70 Contribution 1901 +e2786ccc9e9becc75df89ba5a6cf8758 Contribution 1902 +f8e3ed21c6b99c67f685eb08774bec1b Contribution 1903 +62e8df53a20514c14a867a27da5218d8 Contribution 1904 +8bb7d0c2f3edf1dd06a6fe1ddf3f6e35 Contribution 1905 +5c226fbce6a7ce7f36e9b48840335ba1 Contribution 1906 +97b619dcf434b7823e07affb31a4a180 Contribution 1907 +a64910ac719c59e4169b2a6081ce9e66 Contribution 1908 +d56458cf252d6adcf8a129225b371af8 Contribution 1909 +e2a730c56d3d11227dfc0512f22cfe2b Contribution 1910 +200acce2fec01eba7da7c39d3d85a8ea Contribution 1911 +ba927981e24cbc0f7daefc97d6105672 Contribution 1912 +2b652ec5fcccd95067b2e3c18ff36c05 Contribution 1913 +d276ff8af4c15a9c7f53a8b0def70857 Contribution 1914 +eecf70535385aac9b2fe1c8132ab3a08 Contribution 1915 +0f7ca3018d834df35773c277f7f2a5f6 Contribution 1916 +c0e1d3a19711717d58bdd5473b939890 Contribution 1917 +97745dd01d6da7af1a0ae684fb612751 Contribution 1918 +fb82ba8ded0b489b931c5fa76fa8607f Contribution 1919 +174420862fdc8c14c73ca50dda010696 Contribution 1920 +a64064139c33148153d2883911b80c3c Contribution 1921 +64bc3876d20bdda0db84a21b4df521c1 Contribution 1922 +87d8f05c76fd8862825cd62a49eaa830 Contribution 1923 +ff52ab935a95a0fdb6c024802e8194c1 Contribution 1924 +e95b58218a6f0fd6c624a34a9fc372a0 Contribution 1925 +cd44e499265ff3c9bc3e1a2d7ba830e0 Contribution 1926 +21650b8f44fc4e83dfe5ac9956b7e971 Contribution 1927 +771465ecd1c1dd0d18b4ed14efc33252 Contribution 1928 +72b984f2ea937dbbfde0941b9590dd1b Contribution 1929 +4d0cb55c8275dc6ad5a7fc9e2864b559 Contribution 1930 +91dc51e0de08622fd26023171904d357 Contribution 1931 +d8d5079d1b0f543a8891a0be55d5b6d1 Contribution 1932 +5655144c65b45b662428e0b27619dc08 Contribution 1933 +392ebb8d129c4ef6440d0862ff7f2aed Contribution 1934 +10e029c6df83d2057c8b002245689dc3 Contribution 1935 +a531696d41d4bd934f0fb7cbce45770c Contribution 1936 +bf5d80d99f7358e85404520edb7a3796 Contribution 1937 +fd7509c0c98269cab3974e96210815f7 Contribution 1938 +47cef9084244fd585d85e0845bdd52ff Contribution 1939 +0ba2eb82e89f34ed9576278d777bb465 Contribution 1940 +3df71436ee7a8627bc44f37c1d9fd407 Contribution 1941 +8c27355128418364e7953a9ad0f4740d Contribution 1942 +5aaabfaaf9f0d637c9f4067f5e24dcb4 Contribution 1943 +12b94a832f16e464f90f9f5a65173e70 Contribution 1944 +125aac30f168fcc607a5538f02f110b8 Contribution 1945 +8da396cb50f0b888aa5cc94a2a185b21 Contribution 1946 +112b8861aacd829c6c9b733fc1df7943 Contribution 1947 +ba2a7332d16111a093262c56e0460d41 Contribution 1948 +0b9d647583f89edf2e7c0af7ac490500 Contribution 1949 +fc55489651dd597385c68d152bff1f84 Contribution 1950 +3904f92b887bc6522d7e65180c6b0494 Contribution 1951 +b68e0b55a9cb56f9bbb40592fba9777e Contribution 1952 +8aad7ba3ddf35725f47ace8fb8980299 Contribution 1953 +1b713cc14afdc166d2827be19526453e Contribution 1954 +63bd922f538d58295653e5b3d2c56909 Contribution 1955 +edf2748c93f62a4b27fd97f5fe522c34 Contribution 1956 +cf6b8e7b7c180108410e548dfd9560b0 Contribution 1957 +c4be3e3761c093d771fce0321748d938 Contribution 1958 +13c10ef2236629f0ddaa6e971b0ab3b0 Contribution 1959 +265c7fcfce239bfbe60de48e9facb032 Contribution 1960 +8f07a7c284ef735957fc0caa952dc497 Contribution 1961 +2eca8cc4277d8399a7447a9bf7007001 Contribution 1962 +58e406f13dd1ebcdec1e0548a9a41da1 Contribution 1963 +5fe38cdbc73ea7baa40c057cc5cca72c Contribution 1964 +86724da39f552fab629b1934ae76909c Contribution 1965 +62bd8489ad467690aaed87140cc0c62b Contribution 1966 +bc5d54d95fffb4a7a6091ca4eb843c61 Contribution 1967 +15a5509f5aa39505d18fc3644f509ed2 Contribution 1968 +18e9bf4ff9756474060c733baeecf452 Contribution 1969 +c553457964597ca5ca9104d0b94c59e5 Contribution 1970 +781de90f2a16a8ceb82ebdd6f48ebd68 Contribution 1971 +b520d6de471ba321e37d2154cb8e4ec5 Contribution 1972 +0ac469015ccc85d8ac92bbc815e3ee46 Contribution 1973 +410544153c5bf97697f549b743078cff Contribution 1974 +765d1ba35a7795ad4d7dfc5ef92ffac4 Contribution 1975 +b5d1f2ce323a331d11d02699f6230cb2 Contribution 1976 +d0005194d418fa3867d6320c4ed8cdbf Contribution 1977 +d1ce3ef6b95804d8a2dbaa01f61bc0b0 Contribution 1978 +4d1eb991f500abbe781b09d406b45333 Contribution 1979 +b028da0b57f43c26bf1808acf937df41 Contribution 1980 +b5582b2f4b984054489075103966dd3e Contribution 1981 +c5cdf9c72861fcdaa167f0528200ac1b Contribution 1982 +328674dee800b4b720abd39a43af916a Contribution 1983 +cfdf5770f0844816102870d4f536b42f Contribution 1984 +fa6c8cd48b763cbc9eb2bee0a903ef5e Contribution 1985 +2cc3c87adacb60400d83a80691e8748b Contribution 1986 +d758ba918d96d2813b783a21a18756ed Contribution 1987 +10353240da15ccae4f7f1017b52ad802 Contribution 1988 +7448936da128faf9c20f833a61cd3873 Contribution 1989 +9b2201f9588a3b491010f91c90cbcc4c Contribution 1990 +5a7116bc74fec5c2a6c709ed08a312c7 Contribution 1991 +4769aff19566037e51c391a2daf9c3b6 Contribution 1992 +115b89ce829041546d83b9f9d932d849 Contribution 1993 +717d7ab74c0eb3b9e4289308e04d8ced Contribution 1994 +1e54d66d03a1f33bb18c301eccdcd6fb Contribution 1995 +0f218c51f687db3fb58965572f358315 Contribution 1996 +b41a8f59d1c931151283c707b11e229c Contribution 1997 +ebb44de4ca36876db1bcb08e0d433d7a Contribution 1998 +5ad95a508f2bb42237ab15373d1011fa Contribution 1999 +721fdf6ceb8ce3dc8c1148b4d2a38c08 Contribution 2000 +00d589dc785c2260106c928a498a6de3 Contribution 2001 +d44dea71f52f3402e4af7ac09e1d5986 Contribution 2002 +6acb1964f6d5a9fcebb0e7bfd495f36b Contribution 2003 +d006c74dc97847d9567d07360f0832b3 Contribution 2004 +5a1e9dfc1e285a46b72bd284eccbdd9f Contribution 2005 +cfe9c20bd8dddf40865091de46c9e41d Contribution 2006 +ef830bfc32a4a20d4b5518222981e31f Contribution 2007 +84270f69791c879716260a0222d12fac Contribution 2008 +c03ff4d9bddea0a34db062386b6b6821 Contribution 2009 +f751b68438477640e089eba82c74b73c Contribution 2010 +53ea997ce666869bc6c4cc8653a5ec7a Contribution 2011 +c6ec78d7c87847f4015e390056d38f7f Contribution 2012 +13a8d1b754bbd14cdc1c6e9db24947c0 Contribution 2013 +3d3d41da8dd4b51a6489b04ce7eca64c Contribution 2014 +66daeb10629c6ebc2be957ccbc3691a3 Contribution 2015 +65678815d825c486fdc9427418dbacd8 Contribution 2016 +874ba2866e2ed4059ea80845aa58bfc1 Contribution 2017 +9261f4ac96c91f0deaa75387e87d6567 Contribution 2018 +a4d11fcc8f214994ca3aa4b65f796379 Contribution 2019 +5a04c73666921311aa6d65b74355e4fb Contribution 2020 +80a9ba4181862f1f0e306cd82057c40a Contribution 2021 +05b37b074d2be14b1c4e511dfb0b79ee Contribution 2022 +edbe16dc4da3e4a0406fadfc67d30bce Contribution 2023 +8d6a9ee75763a89fd451823e291ca642 Contribution 2024 +0134d95342dfd71b1bad5758c8cafae7 Contribution 2025 +9b75fca8eb5efb04e1d1355fc4de2050 Contribution 2026 +8a8668c2cc90ec45d033ebdb7edc2ccc Contribution 2027 +c739f81f41ad15ce6bcde0c3e0bd4892 Contribution 2028 +e831249ac90694e350185fffe4f7ad01 Contribution 2029 +4d8b8f02d0b6ab213cff9e3c561f1668 Contribution 2030 +6d80dbdde971fbad579c484bcf2b173a Contribution 2031 +c7fadc03e17de8c4df4f6198bacd7a4f Contribution 2032 +cd3e2529d0ca69c29d9a3c909698526b Contribution 2033 +d9782fc75f33e6ce0000fcf98c3cfe67 Contribution 2034 +4820f8758b9eb787979fbdc542d16648 Contribution 2035 +92e3f0376d58cb344a15811ff42d1573 Contribution 2036 +b7b886f4c96350432ce6594082686c4d Contribution 2037 +aefd445add83ed060aa826e2e95dea9c Contribution 2038 +74c37595390f31580a12e2d0ca292b1d Contribution 2039 +311e8f280c6fc5d46f7e482224bbdfa1 Contribution 2040 +2c53af12d9345b3df54c7be1283bc10f Contribution 2041 +747e0862ac7f2cbb46b47dc7321aa7ba Contribution 2042 +0e1438e9235e2875104a643ebbaaf016 Contribution 2043 +4823f1a6597e10f21d1284435c721b36 Contribution 2044 +5f57c9b27eea795ee909ec50118c9603 Contribution 2045 +497916c8a74d25e3eac77050377d851b Contribution 2046 +198499b67bbd1361ce1b4b2275decf80 Contribution 2047 +8b2110d844af16faefa384e9a3e84f19 Contribution 2048 +73b6aea5743a1c2f286d3210f51d57a2 Contribution 2049 +19695222d3dedbae67931fbccf3b8ed3 Contribution 2050 +1cf18d5eba3a4e1182e7b553d38926cf Contribution 2051 +54cf62b8eab468bec5369d687dae50a0 Contribution 2052 +1e86ae275c5bfc7c359dbb6f805e17aa Contribution 2053 +7e69c3fc3a3c715742d7973e6e7b2a50 Contribution 2054 +3d34a6744a5314b818af027809fe4a67 Contribution 2055 +1654bba4a9ef83648d24f1888bcb9022 Contribution 2056 +1e084b07e73d958261c4a578fb993c6f Contribution 2057 +a9238ff8c398a3741ea2ccaa5b05b90e Contribution 2058 +a09726c0eb89c01a4161c9c117c62bc6 Contribution 2059 +e76b9c9f9b1fc14dc46124f6df824b7f Contribution 2060 +0e84e13652e19d5654b5e9217ecf6e4f Contribution 2061 +dde25e547f4fbc5c0c7ce33f5ae0f956 Contribution 2062 +87d525a6e9b4f5eeb5e0754ce9ffdbb3 Contribution 2063 +70c8521b6820acc66a8c77897d699e2c Contribution 2064 +a4b60e2da28511af9cc9fb60cdf0469c Contribution 2065 +b6a54f5be87429e3e4af1e194dd1474f Contribution 2066 +5ee3400f1eaef13d2eeee153be142ee4 Contribution 2067 +2d706a0bbc3556943a4470f7c2310140 Contribution 2068 +bc4e43a93bb580593731d34dc3d76a9b Contribution 2069 +f0944bf0ec1384f265d79be982973f4a Contribution 2070 +4a851dc0ed5a2541ac4341468746d005 Contribution 2071 +71607b131dc3060b009ff26995ac3d98 Contribution 2072 +6faa81efc0a6d0a19201916465b06285 Contribution 2073 +9fe9d50ec2e6c43d966fac0d0408efca Contribution 2074 +82c6ceab8d063ca47716a5b29a9b67af Contribution 2075 +81d3538736127a0303a2d25ab97389ab Contribution 2076 +efcdbc30404cee2a2f7ea4a1a589e891 Contribution 2077 +e5d7d30966a72a8b78c7a9dc32d9e85d Contribution 2078 +c859efd548f82a693dd626ff6b6df0ef Contribution 2079 +223b1670e52004b33af13a1b2e5f8fb5 Contribution 2080 +2b635ebdc46c60fd4f0b4331521c9238 Contribution 2081 +aa36fec91b5ff126565e5b72910dd54e Contribution 2082 +117e7873e21201ef9b71748c605ff905 Contribution 2083 +f30c19be01340252b56449ceb3271f27 Contribution 2084 +d4aeda11a1386d86c70b8adffa83fae6 Contribution 2085 +33a8d5727803fa0bb7ebc603325574ae Contribution 2086 +c1c9d83cb06ea82c99b89ade46391c0e Contribution 2087 +ccc3b71f5c7d9dc7ffaa1bfc2a7fbd07 Contribution 2088 +e5fe635f91640cf70bfb4a9b7202c632 Contribution 2089 +d050d481702fe3c7894d61d5e9b4046a Contribution 2090 +fbd0bac110794642200794c7a14308a1 Contribution 2091 +9b0b6f0e27c1cd5ec228f752ba755f5c Contribution 2092 +944ff8b8329c5eca73646ce45f86d622 Contribution 2093 +9c6c7844f50c584da297d9b9bc79dac5 Contribution 2094 +611f68e70f178ed5d39c3e1f315a8c7b Contribution 2095 +4eed3ccab78d3a42d4c60c76a7120eb6 Contribution 2096 +81341e25f3dd677555faffe126e84cd6 Contribution 2097 +5116c50488201b6f2c3756e4fd025282 Contribution 2098 +24c9390aed619fabb408339e441e50cf Contribution 2099 +20dd27540c76b0564003e2bee8cea112 Contribution 2100 +35632ee27bc872ce5d20c6f7465ed123 Contribution 2101 +137b6d6dcbb4152072de4d873d3cd809 Contribution 2102 +c233a865c226e0461df40ff53dbad903 Contribution 2103 +a5f029a13d8585a1909bada05e08e73b Contribution 2104 +39654652396e3b18b637952596a4af3f Contribution 2105 +05c2ec0536a3c10a84c9e9131e84d15b Contribution 2106 +aa55ecd3e5b33798ea5eefc8b3633a45 Contribution 2107 +13e8a63f061f9d3d4502dea96697b246 Contribution 2108 +04888c609730957afd313987916a0f30 Contribution 2109 +919091c0ba319476bdd60ea6aa539c88 Contribution 2110 +3fe01615daf86646667d0dda9276f4f3 Contribution 2111 +b4483c35e0b5993b1dbdaf39822df951 Contribution 2112 +0bf1416e189a3dfa4935ddded2628d9e Contribution 2113 +158607935ead8e342341561892647dd0 Contribution 2114 +608b59f12e20dc27ea08ec2dd0437dff Contribution 2115 +27ef6bc94a0324ac2997f0d19e28ed1c Contribution 2116 +eb04f1dce41f92c3640da6de49eb273a Contribution 2117 +5c93bb4b048471af8dfe10893cf03ab0 Contribution 2118 +ad6cc43415dd9b3c28d52ea62d34690b Contribution 2119 +be063e25045660ad1fe818123610f50a Contribution 2120 +ba24b64ccddfdc989dd7e5a8d3024d60 Contribution 2121 +a93df87d6b9fc3f70897af612e497246 Contribution 2122 +61cb6a1609f52f562446ffb7511c2831 Contribution 2123 +88c901a0de5c4b255648feb6a2e09ca9 Contribution 2124 +2624ee27f06b04d73920a9dd1f72e6f5 Contribution 2125 +e2f56dbb8750a4448c2f34c3344434ef Contribution 2126 +7e37fe874265b40a78477c34a7e2141d Contribution 2127 +378b464a9ff046818e34e7120a8a3cbf Contribution 2128 +88a947030fd2b878e5bac0ea7bdc9331 Contribution 2129 +4e06732af8cb7e6c810776cb53e2c86b Contribution 2130 +f1e9da09d340158a1c410d03000e3c2f Contribution 2131 +2e399a242ae768d19d73f99a149b3e8f Contribution 2132 +170401238188b6153c6a1d20934a9b39 Contribution 2133 +acf90c4090c26116e95137fa6aa5136b Contribution 2134 +173756689aefdd360317e48ea3da1bda Contribution 2135 +6f0b47ccf529420019bbdd073534f8ca Contribution 2136 +a2c621640d16d4d5d259a55eff7dd280 Contribution 2137 +9f51ff026e586ee89b23f7452e78bfa9 Contribution 2138 +3fb31c8d890597a584d86ccb6c50bdbe Contribution 2139 +18e9734f40c630058774e15b428d26f0 Contribution 2140 +a893c2cdfac8aa4e45b928c3012254b7 Contribution 2141 +15e3da3039c6e261acad5da07c94afd4 Contribution 2142 +8556077f18664d2415e03dd16c3803e6 Contribution 2143 +0c90b704d1b352aad053291505ab1df0 Contribution 2144 +5b28bd43f073c445470e8cee51681152 Contribution 2145 +3d429075d52fd7c5ef5984dd712bb987 Contribution 2146 +2ef405288eff9a14c6b98dceb61a1c4f Contribution 2147 +c0983d6f6e94ac842a09991bfbee78a0 Contribution 2148 +4b7bf0e8fccac0b0d9bf2234178791d9 Contribution 2149 +72ba1352a909765f528cc427faf68f65 Contribution 2150 +97cbe131bf46144d6c757ed2581e0fb9 Contribution 2151 +144f873b72412ca897a99c504e7da010 Contribution 2152 +adaf4a3189354c17710453b1250a1ff7 Contribution 2153 +5fd4c58aaf0ea1281c3d8df1be96a28a Contribution 2154 +5fc3fcc278f54d4cb46b165aeb0055c8 Contribution 2155 +7ce41f015ec5ec5e754fce507a5d6aab Contribution 2156 +4fe3728c82380296dff151e1a6dc7439 Contribution 2157 +5ebd95285f1e876e8b1b9fd6a1b93f35 Contribution 2158 +c83a73569b9280257705a31d55e87c62 Contribution 2159 +2ee7c583d360104f4caef29a2aebc592 Contribution 2160 +abfde5db77a064e60d9cc306c2b2eaf5 Contribution 2161 +22910f696d840a487ce35acb6c93be21 Contribution 2162 +7925c6f6d89c511072478cdb68bb2788 Contribution 2163 +69cab642db8188359880fa1a3c8e3014 Contribution 2164 +1c4a38d123bf26d9b6805951b5e87c58 Contribution 2165 +a3b20aa1b52e2a3fb9b4fba4c906b3a0 Contribution 2166 +58c421990406a136bd416c13af202609 Contribution 2167 +d002a67c175efe748582c3b9257ed24b Contribution 2168 +85f6053adb5196eca9435fb7fc2c6d50 Contribution 2169 +487b3ba19d2f3b0d5971e61065058647 Contribution 2170 +0719e38187c6be1c8fe1fe79662d08dc Contribution 2171 +7fdb9a877f88476b47d0f6cacb6d49b9 Contribution 2172 +9f9a4641da8237dca46472ed38b4eb3c Contribution 2173 +957196a3280e4e8282ea93e995456334 Contribution 2174 +457a3622bb801b9ad239f7b966c99d8a Contribution 2175 +d97d97dc78b6c24422e834bb84dee43d Contribution 2176 +ba6c867c21977d4408b6ef3ca5cd823f Contribution 2177 +93678fc3729464e1d0252575c8df51a9 Contribution 2178 +4164db56f843dfb6d5b57f99472c9b08 Contribution 2179 +6f9ebf58fc7a6959cfb1dd41aae42fa4 Contribution 2180 +ebbaa9c91e48e2eb74b13a2c0b3c09ef Contribution 2181 +1e925817b37d506b66dbb2052b4851ff Contribution 2182 +80ce0c29e5e67180a5f8e2003f0776d8 Contribution 2183 +a4293b1a7f94333d6300813ae148f832 Contribution 2184 +0cbd26a4ea04c0db4492c4fe9196e45c Contribution 2185 +f7a4759143fc5899c9c25b7c02bcb16f Contribution 2186 +bbc4694f558ff89348514397f5fb9140 Contribution 2187 +f153079062b2c10a546645821758f173 Contribution 2188 +8045b233c351b05900d13c3a26f7d693 Contribution 2189 +947b6b72e7d793e46b347474cf9e98f7 Contribution 2190 +f2beb4439c11ad8609d11718b8d83161 Contribution 2191 +619787b8d3787fb901f807992829a49d Contribution 2192 +4a2aa8546f9f7546191689da73dcd6af Contribution 2193 +e94c13c6470f1b07586024397e73c936 Contribution 2194 +f5210e651193e7fca0bdef127e57ac53 Contribution 2195 +5e123edd9bc7f38ea99801431677d656 Contribution 2196 +f657edfc9022597fb252a5b986788088 Contribution 2197 +483de4a2f1ba73d91f9f2a70768d12aa Contribution 2198 +938562d6a7240be94361c376d3e22843 Contribution 2199 +82ed42e301231772e9aec8c5e428fcee Contribution 2200 +70b1fcce0335d0993ab4ed3c55fa142d Contribution 2201 +c90f39b3b706849b6fed7fe1d2a7c31e Contribution 2202 +d87285a1457a8e9ccec355eab41942f1 Contribution 2203 +edfadc2445862e4dc6e33054e8a0a521 Contribution 2204 +8a0dfafa996de2816431aa3a518e626d Contribution 2205 +f47aa36c7371d979ee839af9df4178fc Contribution 2206 +d1681391da77bba7190a0418c87ffb72 Contribution 2207 +729af30f7758aad413fb4dd9e2c638cf Contribution 2208 +c095121bf6c7a1ce2a4c850ac6c323f6 Contribution 2209 +e0b9e885890f012054de5841536c0e7b Contribution 2210 +451b34d5c14b249c069dbb5d94a540a4 Contribution 2211 +13637cda03ee13e1dbd47cc63cb31507 Contribution 2212 +eb120164923c3fa939b5b93e6664c88b Contribution 2213 +1438675149a686feb8e452cfe1b7b646 Contribution 2214 +3412a25dfdf364b126f16f5bb75fd32e Contribution 2215 +62376933189c9b9f307c9e7f46208186 Contribution 2216 +91fb94f3ecfcbeae43cd7524e95a5b0b Contribution 2217 +dcb3e6623cf595b8c97c3552eed23e25 Contribution 2218 +eb3779ef38d6953259a3f7aef2357093 Contribution 2219 +c54e18a743c27cfac7bae0792fcda7ec Contribution 2220 +4da02896fdf93c0f976f34fc625c58cd Contribution 2221 +f95655206e8b0a697dd9732cff812c6b Contribution 2222 +bd961a5c2a612f8b0e150793d2e07d2d Contribution 2223 +fcc0f6946ad355094eaa5bccb1e4f8b6 Contribution 2224 +4bbc3c9a05c5011d30686aeed154acde Contribution 2225 +95f397aba64fe7bbb48838751607d417 Contribution 2226 +587357b2416aa7188f7df5728d9e53bc Contribution 2227 +4244e40385796c67d3343015d5301a6a Contribution 2228 +9d1a632a06374f8e153c817a59c342c4 Contribution 2229 +787b7d5beead3200e59d8799ac645e23 Contribution 2230 +16aa708158d209b2e52643f0ef1e2098 Contribution 2231 +a8520e830f9450ae69570be377a0640c Contribution 2232 +c56a5d70f7b650ceb1ecda04fe3e42ec Contribution 2233 +ccd3f09266d5a8f8aa426f4676fe820a Contribution 2234 +addb42cc2bde26c9f7dae64d2d97c0f4 Contribution 2235 +340ca562e43addcfaa0a113033d99001 Contribution 2236 +677367be33cb53f0b43faeaaaf420332 Contribution 2237 +8ebcf7c8341c673fc0e65130f9226c6a Contribution 2238 +fa8ce72b8c75b427d7e57453d014d3e3 Contribution 2239 +c869bb8d76e0f157e78d4e62fd08a137 Contribution 2240 +a0cc888ab8db4de8e92e5afcf14091f9 Contribution 2241 +2ff1641eb651ca8fa5992a48c7073d62 Contribution 2242 +4e23d87beb08f1de71cc365c08a7dc50 Contribution 2243 +d0e3de20b33b9c370c77eb2b6f71411d Contribution 2244 +dc9adb41d0dacf68ecfabbaefb6d78cc Contribution 2245 +ab0a1ac48b103d2c5682c702769683bc Contribution 2246 +4fca6b80aae8e8a0c1493a32ffe82778 Contribution 2247 +540351606ce7f31f6620addc4d52f4f8 Contribution 2248 +6f044cf71e86b5768618b0f075099e46 Contribution 2249 +c424aeae571df4f43c1f96dc410797ea Contribution 2250 +1e818328bf93a5c0844d884b83d281c5 Contribution 2251 +0610fa432edb19b40311c56ce493bb25 Contribution 2252 +27b1face0cb634e1fe299ab80ec3ffb1 Contribution 2253 +9f94706f83df520dd0384227d5162ebf Contribution 2254 +34b66868deceb602133ed0832b8372db Contribution 2255 +904726cd065aa482f8647dc33ee47e38 Contribution 2256 +c43ec2ea26bd87b506e87780619c3dc4 Contribution 2257 +ee4b56fa40a554d40e1b5bcd953c35ee Contribution 2258 +39dffde3b1aaa2f6570144d0b24da4fa Contribution 2259 +4c3ff0e0a32208216f0b66659adf91c8 Contribution 2260 +603d02fb704f6eaa04781030469916f4 Contribution 2261 +32417289d24bf9affd14f08470582478 Contribution 2262 +d837b622c7f0a29a21676c6ba7020519 Contribution 2263 +3bf613ea84dd97f5b1e911dacec106e7 Contribution 2264 +1092b3a5fdb306d3067f60416de2d5e3 Contribution 2265 +b611d0ea0befbf595db318b4239f6288 Contribution 2266 +aab38d1d76694f46e92cfff9b04b1798 Contribution 2267 +df9797d8f1e54d689af01be9869b47e2 Contribution 2268 +201fb4b9cbc1289e1b22e49ba915765b Contribution 2269 +83b8b5d9c3ffa67266782d2f59607e45 Contribution 2270 +8ec3b52d91960a7e09d177d660c86684 Contribution 2271 +b6328ec439d360de7eee054427a67268 Contribution 2272 +7ea820549a9b79bff2eda81f882260b3 Contribution 2273 +876f992d4d06fc5645c49df7718eb2f8 Contribution 2274 +ff17c728ba64ec2fad57bd033bb348c6 Contribution 2275 +fe082cf80c7c0376ef1f8133f21a65f7 Contribution 2276 +2bf6be12ff6ce961e379d9571526298f Contribution 2277 +f40aa90db596b214b1bb4ad63aaba5ff Contribution 2278 +ac233b53ba253881f8e6041c4a2f4def Contribution 2279 +9ff4ebef5e5653fa96a00c5311cc44f0 Contribution 2280 +86cd6f87a14b691800b556e8c27d8f48 Contribution 2281 +9f511d22b6898d5073d8f55ff821dc24 Contribution 2282 +a2f30ccc48b363cd4e81cfde9930d0c0 Contribution 2283 +33bf3507a9ce02ec68ca8b50c877298d Contribution 2284 +bcfc876ea6ed6a97df24bc647110a3d0 Contribution 2285 +acce1ae36232f5e19aa8fffd6440931d Contribution 2286 +5e57aeda797d30c3ae2eefd83abb4573 Contribution 2287 +bb26590f5353dd9019c76253161dfec1 Contribution 2288 +d6dda2a3f4f63a60f4d90521392b88e9 Contribution 2289 +4ad8d35e73d03917cc000fde5a73c062 Contribution 2290 +870b6c68ad0e08542657055b1a5db27b Contribution 2291 +b914ac09e5d037bafc4a92495c83cc34 Contribution 2292 +643ef8cd74356d49beda1e72a206146d Contribution 2293 +ca7d7cdb6b40c81fdc16d381047b7314 Contribution 2294 +ccd72620dcb27e2cb2eb3fe9ad9161c5 Contribution 2295 +cdcf0749c464e81159e1a7ba7c7223a1 Contribution 2296 +a68255bd91ee10afac76585f6be00c6b Contribution 2297 +ac9b46c65f4e591a24d3f3b3558ffc79 Contribution 2298 +ec774dcc1c404f6705c616c155433cd8 Contribution 2299 +fdfca2a35393477c3a7bab7be9f657c8 Contribution 2300 +6fa8e143c2778e86ec98de6047c5fb25 Contribution 2301 +3dd05c14398f3ddf2d6d0c27dfb9c07d Contribution 2302 +e3839e7b08effcc36ae3ecff38bc72b8 Contribution 2303 +ad7113161f3aa53c4fc93fbce23c2b8f Contribution 2304 +0646d86961b69dc79780296011206ef9 Contribution 2305 +c1693628828fbf5d7c2e5576535f38e4 Contribution 2306 +57ca8e60f44a7e5d89de50e5fc36b4ef Contribution 2307 +13baef47c3228ba626eac99815b76fa8 Contribution 2308 +2f8155f71704dac719191604dcabdb17 Contribution 2309 +5cdd212c9852cf789ec184e9f02a58e8 Contribution 2310 +14c0f37bec2b5f51666a1cf2476c35a3 Contribution 2311 +8b1a88f84d6b72942f939bef66ce2dad Contribution 2312 +e03a3618a87d0b84b4eb98f0fdb6bdc5 Contribution 2313 +67ccaae3e092dbb2dbfebc71710c62af Contribution 2314 +d9ab5008e1287f79a00ef31bdbbf14ea Contribution 2315 +69c234c6c6ca55cc5d8006e2149b9777 Contribution 2316 +230811e164397030632e1feb1db7b9f5 Contribution 2317 +9e17bbf6a5cc4e58f42b6efe3788c166 Contribution 2318 +4da7ad6ccde6505e320e1f12e0d3efe3 Contribution 2319 +e2ea12a87bdcb69ee8e289f137563c4c Contribution 2320 +484f9014740f9d75c4351b8c3b8c1c74 Contribution 2321 +d7f956586e5da682560ec24c5a8f8447 Contribution 2322 +bc2ac02ddf888e595dd527a97dd0ef1e Contribution 2323 +a26d0054b0eb438f6ebb9fe43bebb4a2 Contribution 2324 +c1600dcae5838673d56f377715e315cb Contribution 2325 +346e8a0095c1af6fb39c5c980838e22a Contribution 2326 +5c036bc981bc56d9e910edabc7cebe20 Contribution 2327 +46cac26a05fb0e8ea7ac278028fac95d Contribution 2328 +43248f37ad7e9c535a6a31844c8a6904 Contribution 2329 +a1146d67205656d609d32dbf2f91e08a Contribution 2330 +5b2a156c140ae20021b2a8e03ba99659 Contribution 2331 +81a75c5c101dc60ff611908067e0f161 Contribution 2332 +b215b94036545e575d1824b11361a482 Contribution 2333 +a3dd821fa748da5cc26925b16533e1d6 Contribution 2334 +1bcdc6db418e6517d82dbe4a7653b8f9 Contribution 2335 +fd187d908b20472e1c59d0f0602a8535 Contribution 2336 +772a53a8917ed1249178ac5118c8d96a Contribution 2337 +74c8900b7940ffa70561010a03f56965 Contribution 2338 +5f84a11658a18f9ef55a5d54f80e64eb Contribution 2339 +26cea327f83b42933237cee5546823fe Contribution 2340 +7798328fda2dcdedc56bc8800fcc046e Contribution 2341 +c4b86632484e6029cda62209a7780ed9 Contribution 2342 +09db402fea3d064a97627315070b61a2 Contribution 2343 +5229129171a8799ea89341ad5594adc5 Contribution 2344 +7410e1d5b2a4684574ddab494a076097 Contribution 2345 +6446918ec4c8a33572043919f8c0375b Contribution 2346 +27d27e49fa808aab548dbdd8056945fa Contribution 2347 +4e0141217a7f1beaa2c0435422d2131e Contribution 2348 +44c8aeab030ee1deca8cc2553755b678 Contribution 2349 +d2cfd306603d253daf6731f866f39e8f Contribution 2350 +8063fd5c746e5d0675e0c79fc5a72958 Contribution 2351 +0d2640107e6de9bcfec1cdfb1388bbdb Contribution 2352 +aa828a9730751203867ceb25ba97d068 Contribution 2353 +e76681005a9b0a33896feb4248a34155 Contribution 2354 +3759db61d5329f05b3e7fdb87ff6dc40 Contribution 2355 +c9c201ffe5f508f60e157251efb122b3 Contribution 2356 +d79770463ae60a1310077cda64d85b6c Contribution 2357 +73da083b9105b0b0644e4cb3afaaa805 Contribution 2358 +be4409df8a30050d09720a90cacc7703 Contribution 2359 +e2a3332c9d3b1e4cad308aa0a73ee1c5 Contribution 2360 +188ffe4c38313051a9276cbcf9311c85 Contribution 2361 +3e89ed0052842c666821ba2b6d2efd22 Contribution 2362 +a6e695d597f1883303856b52fd1aeb3e Contribution 2363 +b323863ab3475135a3b817468fae637e Contribution 2364 +7fad23e62c6b018578ad94e836029a3b Contribution 2365 +744c7adc0b64c787495260536753b2b1 Contribution 2366 +75891852be807e9d1631c4cada8d6c89 Contribution 2367 +1714d33f8d3d54363c66c6f14c1d36e1 Contribution 2368 +a5a598363304bb3aca0fe09b5d32b358 Contribution 2369 +739c7f59f184dbfe531c2f4d1d7180f8 Contribution 2370 +4d3d18dd4e667475e1ac89ef3a7c00ea Contribution 2371 +9cfac0bea7fe76ea7116ddef8447dfdc Contribution 2372 +a565f9ad52e1b8d76f9070153edcef42 Contribution 2373 +0e83e8d714111ce0105b36f7a56c61d3 Contribution 2374 +af7294ed72f22c51d568fc910c1a67ed Contribution 2375 +bc229ca4c921bb171cff41204e95b57d Contribution 2376 +955283dee7ca4cb4b6448f3ffbc830e6 Contribution 2377 +80f1042a2f976bf93d103022ef86c7e0 Contribution 2378 +889dcd5473fa2971898cef03e6009c68 Contribution 2379 +5ed2bf64250765c162dae8f3f645f883 Contribution 2380 +fbe4d8f5220dbf181ce654ecc0085443 Contribution 2381 +d544f14961c33e9afe9223927b081a42 Contribution 2382 +f311f4c21c8193b0947288568d0f5cf9 Contribution 2383 +bb09973c923691946248b9c1ad7ebf59 Contribution 2384 +6ba3d3417b07f582e61db4c9eb2ac805 Contribution 2385 +a20f5f1d80ff4be399c4193b592dc615 Contribution 2386 +e017dc45cab06706cb7bc995da681a0d Contribution 2387 +d8ee084eaee168a1ea67b6a94781e2f2 Contribution 2388 +d8c26ef7717cc7afa3188d1a03c49905 Contribution 2389 +ae8db7f4d5a1b95a74078a7a448989a0 Contribution 2390 +d4bec860b5f376ee3ee4f619c25a0dba Contribution 2391 +730e7ca59a12de6619ba892612a0c038 Contribution 2392 +f5fb7612700a96cc0c7faf764ae668fb Contribution 2393 +7d44af0c12a56459c92f82c190bac11b Contribution 2394 +008b56ac19fa2ffc9b88dfbbbd363b28 Contribution 2395 +57841f73c39e87792a80d6aa08f563b0 Contribution 2396 +54c2ea10613d74481dbbf78f7c31d53f Contribution 2397 +20c4a0312904961f33ac403c7fb4f5b5 Contribution 2398 +eaaa88a8fd68b1a2235ee4509b0eb83e Contribution 2399 +6963fb0c21d6bc50293816585d791969 Contribution 2400 +3704e78d022bc63d6cac056ce4e888e9 Contribution 2401 +d0fb5130fb11fc1c6a22842329474853 Contribution 2402 +a7dbb4605a37790595cb7dfd496e7812 Contribution 2403 +98a5be6a823c9274e70e022bb41cbd1d Contribution 2404 +59b6b6f7a615569e2eab46f897c5deba Contribution 2405 +cc554937d88e9008ba2f2267af331034 Contribution 2406 +ec8ab3588cba81e021da01f2821b006e Contribution 2407 +7613c362f58491459d0a5f2940abdd28 Contribution 2408 +c5fbbfae8c33f41d54647f2ab48eb773 Contribution 2409 +33ffee353f59b012cbdd80a326620df2 Contribution 2410 +27c82655c0f62c3b9c83a651f1c9f8f0 Contribution 2411 +c0a50e24612060c2464c6b2d92da49e4 Contribution 2412 +bbec9c57e7db7cc87ec11e40d34b2eb5 Contribution 2413 +431830836878324821be3692949a813a Contribution 2414 +ae0cec835d9af2f2b55782f2f359f6d2 Contribution 2415 +eb987ed879f5ed0ca115d39acb0bd394 Contribution 2416 +6b2f2e6c8b1259b223f99d499061b164 Contribution 2417 +216896241cdc10e428f93230f60660a4 Contribution 2418 +c69e48a5e068c0d0737c142d2154f105 Contribution 2419 +575a2cdd3817fa29b0ae17ee93b56c54 Contribution 2420 +227bfb6e62ea8688278b9aa4f05ab360 Contribution 2421 +fa97c9b3a070e975970cffd78762ee9e Contribution 2422 +8fea21d92a6dce19c0fed1f3b160159d Contribution 2423 +a03344f298cd4200f9da33e67ea30131 Contribution 2424 +d152536bf59be84a973207cc6b74305f Contribution 2425 +db2de6a4f235fb8a8ea98c34863c92dc Contribution 2426 +5cfe9a83b2a10e4005e7b12f43c3861a Contribution 2427 +1b48e31a8434be629c1516a56323afb0 Contribution 2428 +2e005c3a690a84982ec16da2a642c3e4 Contribution 2429 +8475e005e941f7bd383cd8f6dff3a6ef Contribution 2430 +a699fab3161d4ab28caec899c7660c84 Contribution 2431 +76eadb6ead1cf8bb557826c2024885ab Contribution 2432 +aca392e271adba9c77d3c263026d88ce Contribution 2433 +22c81448be4a1bc25f5712557cac73f8 Contribution 2434 +acfc37c01e9463112ae3fd0f3e599727 Contribution 2435 +d8c83dfeab82cc66310c4676842cc134 Contribution 2436 +372852ac27c194fbc4317456b5340989 Contribution 2437 +095d0c6f51fc1d76b2a4c3d75e30c13b Contribution 2438 +578422d3b9a93a01e3fa44c3b2341b56 Contribution 2439 +a028cbf22348209aa33fc3ee9b7f4b0a Contribution 2440 +48cdcc7da80186143ff82ca1b330e6a5 Contribution 2441 +e304703dbd73529ad02e0d8b387e2539 Contribution 2442 +c746f727927f77692c59fc9418261d3d Contribution 2443 +ed9c6bb8587f12440c81d5e5d0723ea3 Contribution 2444 +d23f93b459eb1a4712e47240b837ad81 Contribution 2445 +77a3efa0642ac4b1fcede144308909bc Contribution 2446 +6beb9e6a7e03c60e5b3b954ebad34073 Contribution 2447 +203bd27c57c056d9a1f7ab2304eaaf7d Contribution 2448 +af6e8c642550a4202d88544e0b56a80f Contribution 2449 +d07e738ea25f69613a60451b6d08a127 Contribution 2450 +51a0b83be54a4a463e9356df2c75bfbb Contribution 2451 +4b1c4c6412f2c6d0f4088322da638669 Contribution 2452 +eb6631f5d396dd1c74848817d5f994b7 Contribution 2453 +eecf610be438f5d944f8dc54be293618 Contribution 2454 +1cf85bf3ca4131941097c22a9fee76ed Contribution 2455 +65937126073dfc62f1ed681501f073ee Contribution 2456 +51b17fb03501e5173d6238a1a783cc10 Contribution 2457 +58c32990d5bc314149b589f18ba9cdae Contribution 2458 +b82e28a983e5b0245f07821ad715d0ec Contribution 2459 +1eb532e1a479ae86dcb2a65693491787 Contribution 2460 +627ded0bb7bac260c6d5773953c2335c Contribution 2461 +00dc42f8084d9bdcb14ea12ae1a66c07 Contribution 2462 +b5bad2a13785110cecf3f1ea96665b83 Contribution 2463 +2d0a6e411463db349bc3a79e861ba7e4 Contribution 2464 +ec75fa333aa3a3bab4ad09b8e8a6f217 Contribution 2465 +96a7a734d81ec1e205d019b1deb20c19 Contribution 2466 +3669874cc2348e6dc708db115a2531be Contribution 2467 +1007379f34ec1e7105aed812b5ca6c8a Contribution 2468 +81b117dbcdfc4eb4a82a496b10bcc5e9 Contribution 2469 +89f7991220e2c3d68a248dde61ca818a Contribution 2470 +3e0f8017d6baff904105280b48086537 Contribution 2471 +ce69190de2f6f50fe569aebb63418e3c Contribution 2472 +c3db4d9fe03f7e1e23f877e8828be52f Contribution 2473 +0cb3cfd3a6adb054da9afbbd479e48a4 Contribution 2474 +8c10936b842c1864c26e553c2ca00c6d Contribution 2475 +b6ed3433d88a8f73a1fee1ef3729e22a Contribution 2476 +2de4efb989c7d2ebaf62abe5e37ee087 Contribution 2477 +2b20b03d83fb7c8051852e43adcad39c Contribution 2478 +584bb3fa49280f459773aad871897580 Contribution 2479 +91c99862e1e151230d3780606ee4211e Contribution 2480 +54ff880037348b78e0bf6ccbc089f433 Contribution 2481 +19fc68bb6b9e4d3703ac83d224b3885f Contribution 2482 +14ceaa15cd49c35ae8bc276087105158 Contribution 2483 +b099bf855a6374824875c478091c0d93 Contribution 2484 +470135ad8bd88411cc64e02f2ca09c91 Contribution 2485 +0525604f520b14354d4f0947bd3ac5c2 Contribution 2486 +067f0680ec1055fa8348cd769fc76d09 Contribution 2487 +5e75125258ec3d4b46e0a4b35ad36daa Contribution 2488 +ccb4ba4949714a3f4a647fe258844f65 Contribution 2489 +2fbf0e040404fe62ab59389425665b5e Contribution 2490 +7eb4dcd03292de7ad532b4300b4d954f Contribution 2491 +0a7b72e15737a8a8bed4acfeac6733f3 Contribution 2492 +9c77d80b8803c95621f1ed95fc570934 Contribution 2493 +13712f085065bbedd8495a9293346757 Contribution 2494 +290cd4cdce36bf9c1b730ba8e29827f7 Contribution 2495 +20d715e002fa2710318af707d49c17e6 Contribution 2496 +665ce7fe2870b7a2c3646fc879cee32c Contribution 2497 +c619d8d8ed07d55f8e898fcc1e211594 Contribution 2498 +a63ea661005db33c6589950e2dbbe506 Contribution 2499 +2a3aaf00bc94c4f48719d94fe9f8c8d4 Contribution 2500 +e1550582466417a54a82a2f7e1bba25b Contribution 2501 +a609810d02bf98f5fa915a92a1b92af0 Contribution 2502 +527c1febf085cbc5a36b31e4afe5e0d3 Contribution 2503 +ac6f096b4e9f9542cd1308088b3b53a6 Contribution 2504 +4c7d600f5cb18aa4dd73a523daa471e2 Contribution 2505 +bba5b058793a5619f362131c6f6126b9 Contribution 2506 +2755614a42dda3218b40d2ca91612164 Contribution 2507 +febba03673f6a7dbe5e81241b52234ac Contribution 2508 +6d6b82f61386450c56d7780b1a0c62c3 Contribution 2509 +6cea488459d4b71f6d15afd27b418ca3 Contribution 2510 +bee7f418b35ae04c33460c72eba9af2f Contribution 2511 +db97479aed6b6e2472ddc26c84119e3d Contribution 2512 +70f139b7692eb435f04f0f9af3afd1d9 Contribution 2513 +df2a90e1e41ffd62765af1279a9a8a84 Contribution 2514 +cb5218accd4fc3d639d639f3c43355c0 Contribution 2515 +36af9e43fc99f1fcba5ff8f283f7d123 Contribution 2516 +ed02f74e8fb2161fa82256928efcff51 Contribution 2517 +42e5ea41426ebb35165c33fdcc7958fb Contribution 2518 +3e46af29f6b0316d05fcb4ade768f648 Contribution 2519 +e0bc506f37b46afdc6a6eff0348cbc35 Contribution 2520 +0ec2228fac9d4d24ddcb15c85848b7e5 Contribution 2521 +ff30394f6f6a72ef60216c7bcf1b4b0d Contribution 2522 +4d02cfedca8af22a3f0d4cf7d57eade7 Contribution 2523 +2e07a47b11c0a6a176e4cb2ba564fd23 Contribution 2524 +d3efd16242e9d04fb157d73b40e2683e Contribution 2525 +afbbae098dea5ab8b23af79970537a03 Contribution 2526 +053c66fa386e9bd52519086e08476333 Contribution 2527 +3c6f376d45263aa0694062458cbbcddd Contribution 2528 +783d433a534f455703ed17431cc8873c Contribution 2529 +df6d6e3d04a5550cb5cebe790db8cd7f Contribution 2530 +9da675b950a01ddbd0d3759cb3c54175 Contribution 2531 +f0026322867a280271dd1cfdf7d9babc Contribution 2532 +1b1332102b5bb7c4d2216b39395d262a Contribution 2533 +6659c47e6bc0783590496a5731f1cdc6 Contribution 2534 +5adc8931a0a19a57824e281ac96646d5 Contribution 2535 +a76a646d5f6e79329d535af3d406f853 Contribution 2536 +eb3305059d7c1c334b55b0321192e39d Contribution 2537 +5c1677472c4431690695218e65fff0f9 Contribution 2538 +e3425516d794998cac8e6cb1269fa83d Contribution 2539 +54977bac3efb9f3f20b001d94f339163 Contribution 2540 +b7ae0afed91d2c25ff292477cd946a59 Contribution 2541 +e42b2bd81f50da23f4ed848cd7984408 Contribution 2542 +dff64e291dc3725466310bf1f7b5bb5b Contribution 2543 +b245a6ebf4476aa476aff08f010d1814 Contribution 2544 +8ed914012fd161b3e5d43b41fce98fae Contribution 2545 +2e0daefdefaf367be395fed8aa97666b Contribution 2546 +12f0cfea4f44dd6344f8d2ead1eb73f2 Contribution 2547 +462b8a8b67df5aa7d8fa0b257133b02b Contribution 2548 +3e56120676e79bb3ab58cdf7d7303325 Contribution 2549 +92adcd9d4d36b36abdf27605b740681e Contribution 2550 +45838cd0599750f2ee001662bcfe954b Contribution 2551 +5d05735e016cded8603a3e206d9fa7ec Contribution 2552 +6399ef3486122ce542fe58801d712ca3 Contribution 2553 +a6df391c646b445ddcadeeb4dfc04aae Contribution 2554 +2c1e27a8b104fcb347b6cced3f185d97 Contribution 2555 +cdbf0e5691c5e02a4a4e0c78ca541794 Contribution 2556 +e828006a048c13663149fbf7a70ecdda Contribution 2557 +eb9003d55071b4caec9f77b202900ede Contribution 2558 +8e03d5844040d4601374ccda03d2f000 Contribution 2559 +674eec5566de3b49b57d46da5fa39b6a Contribution 2560 +f9377b79eaaf1a114a90aa9c3dd3cc87 Contribution 2561 +33e317a2ebe6cda6b6010db3ba56ee86 Contribution 2562 +b3eafae0d67309a7b3138a97ceba364c Contribution 2563 +33b2e0842ca8e33bb893f043ffc8242a Contribution 2564 +db54d7c79b728a2ab69205b5319653ed Contribution 2565 +d264a7d528c2087a146d85fd013b499f Contribution 2566 +63822111bcd82c4056b4b9dc50a3257c Contribution 2567 +9201ae9776097b43d0d98942ba7b830a Contribution 2568 +0f0c7cc84a77800c954cba691064ce28 Contribution 2569 +6c52679ddefcd6a3b59b0e7b910dd33f Contribution 2570 +d2cdc20beea216cf622e2ac9fe25ca90 Contribution 2571 +72fc6e88a1260874695f792a20c5c61a Contribution 2572 +f4350bab6ba243c96c8c4b315db042ac Contribution 2573 +8a7cbc98abb87c0fa35e352485e2bda4 Contribution 2574 +90b8ca0da56a2c5f05229ced5b44838c Contribution 2575 +0bee52b44c1a9820ea7ffcd8f072cc79 Contribution 2576 +8d787e9aa9a36beff054891cfcbef367 Contribution 2577 +b01c0e119bb5c20a7def41e90775fb42 Contribution 2578 +0cda772bb6fadfb88fdbd592ddd835f8 Contribution 2579 +0a47898700af144a6beed576840489cc Contribution 2580 +e9cb4207d10034b215da31a5e9a0c8f7 Contribution 2581 +67f32c054d98b7c818ed37773b452359 Contribution 2582 +6a2dc18ba59f13f52cd800cb66718c4a Contribution 2583 +6df126bed86f581954971d7d3b03ddef Contribution 2584 +3d9662c5d62ff1e6a023c64977ef5e2e Contribution 2585 +54c251495cffdc6b37920d07d60f1214 Contribution 2586 +7b102cd1f618f715d8484f808920e04f Contribution 2587 +239d574e1796d16a01095254318dcb57 Contribution 2588 +5bbadcf7554302cd9e560099e06c2a9e Contribution 2589 +79ac4fc5310d29abd29c95ad97ce4810 Contribution 2590 +11d68a691db00e3ec36265077218a962 Contribution 2591 +ee938f5712eaa5a67433cede6c8b6075 Contribution 2592 +605bd577a65bc2a3f01f4094c7b8aa27 Contribution 2593 +e9cab50de56583303d614f527c99fb90 Contribution 2594 +b0914b7904606031910ae54dd6fb5b8d Contribution 2595 +003b0f5478385b59942151a772d0e848 Contribution 2596 +bd48fdfe620c7a6e83384708baa843d9 Contribution 2597 +3de1511b2a07d116d3f09d2fcd39d957 Contribution 2598 +ac77c3409f5b274409c0762f38e6b250 Contribution 2599 +bb3d69fa261631614dd3030c3ff4e374 Contribution 2600 +c05c2f5feb4e77438c91ac8019896f72 Contribution 2601 +3b8eccba76a6af1347355a0fa266e454 Contribution 2602 +9f07be5fbe31184ccfb47287c2a1b173 Contribution 2603 +318992db3ea02dc9ec7a75d05f18fc57 Contribution 2604 +42d9160fa2349bd4dd5c48d882e3fa4d Contribution 2605 +51a889af465deca1c9002e4138137df5 Contribution 2606 +270491fa3f48593922255c10f220127c Contribution 2607 +af7086403f52ef7acd15cf02c8417e9b Contribution 2608 +929b1a1d496dc72d85fe23c6f15c6f6b Contribution 2609 +b79ff11f16a56c1a854f725458f5622b Contribution 2610 +69a2c040694438495beb9ff1c9df7873 Contribution 2611 +aa0242fe96401ca5ff5101e1db69fd23 Contribution 2612 +ae0139b3aec3167dfe0d3759bb0c0e01 Contribution 2613 +9d19bd8302f3bf00eb3edbd4eedb45a6 Contribution 2614 +5c6cd31924680ffd1bee303c82c8a6d2 Contribution 2615 +d03980d045fefea2e7814ee51af4bce7 Contribution 2616 +d5694f43da1f28f2978760d9e17c6a0e Contribution 2617 +aaef42bcea86763797b7184b338210a9 Contribution 2618 +607c42f2126ec9cf5e72f3624b5ca064 Contribution 2619 +75dd4ea5c89314e8cd906275d04e79fd Contribution 2620 +b4f356af3f9e03e944c9ca608e18d7b9 Contribution 2621 +0b2caeebc98fb479c518c18f77e7c93f Contribution 2622 +b7313ddda319d1808d63e9b6d2e0aebe Contribution 2623 +88c4b7ff7eef9fb2d05b08c10c23a7aa Contribution 2624 +181e7345a8d45da78faac1c7f2780feb Contribution 2625 +be0199ac353109bb725eccd4f78846c5 Contribution 2626 +a4e6709a1c855b41c09bb836e3e30837 Contribution 2627 +48fae7e04179fda4065ba5d366a96ca8 Contribution 2628 +bcc5c1442f6435e0e30abcee30a4c4fb Contribution 2629 +28348b1032a710d907d9d06be95d7366 Contribution 2630 +f7ef6bc15fa019ea163fa2acffc8ce32 Contribution 2631 +e0dfb176228191fdbc439c058c233596 Contribution 2632 +80f038d2e36d24a7023b89fe79fd000a Contribution 2633 +e354bc487df4bb3f856d371ec5735610 Contribution 2634 +e039fde656d8f5a46b064d50fad996b9 Contribution 2635 +0111e10055f0d2be0236e46b9f230f4d Contribution 2636 +0d3b6cce05cf6447d35022f46e6b95c8 Contribution 2637 +e492a67d80898563d1b6152701918403 Contribution 2638 +9b1da0b0c0f9a63fdb75223a4515b106 Contribution 2639 +051f64610982124843393ef8b37685da Contribution 2640 +5c02b6a056bf21703fae8d6adcb25578 Contribution 2641 +167a3bf441bdff8c5e0e918fbae452ff Contribution 2642 +6e2b95ff552f7d31731a8220497bdee8 Contribution 2643 +4dd2dc2c572721a294d146f78f10f2b1 Contribution 2644 +adfe00649ba705ece678731af39d5806 Contribution 2645 +6ab2e422d33d33d9ad3d488ace620d3d Contribution 2646 +938ab194bc11b904f225442464aceadb Contribution 2647 +ddd9a8bc8f571f55e3fe2b5d646b8d59 Contribution 2648 +d93552c0dff7be7a42d49ce3ed35660c Contribution 2649 +4fc86cec1a6a5410f1b12b93a3fda204 Contribution 2650 +7da5c1d6df1fce65866d1f6ce50f8eac Contribution 2651 +89ed5760ef2faf4e757825f081e44684 Contribution 2652 +3513b272febc2a0c08d64379004412bb Contribution 2653 +eb83cfa73000b1ac424e7fe16ae13235 Contribution 2654 +53beaab2dce94baf9d59b6f6b201f279 Contribution 2655 +a36578650028a86ef05f52c072e732af Contribution 2656 +e5f2627fa3dce8cd9ab4f401f322f210 Contribution 2657 +b8e9e5afe07e3a43690a9e29e6c361cb Contribution 2658 +c2fabbe96d6b7b157e222ca570a2ad0e Contribution 2659 +5fe48180fa288c009b10821bee193def Contribution 2660 +1f16bac20a172bfeb8f98b9fad70a180 Contribution 2661 +8e80935eb157771137cad28184bcea7c Contribution 2662 +3770fe46a4235768a5deb3c243bc76c5 Contribution 2663 +10f573ceca855c5992ddaf498c99afc0 Contribution 2664 +d3063dafbb862da2e19f3590aec459ce Contribution 2665 +aa397526dab1768cb8d636c4f4aa276b Contribution 2666 +906d890ee2dd4de517167b61c49df41c Contribution 2667 +529316d55a319f5d091090538e523b70 Contribution 2668 +2bfab43116f543e46a61e8d57a091c8c Contribution 2669 +aaee1f4d3ba12e64453d48fc6672d251 Contribution 2670 +c34456ec91aee59ac8d631c0c7f6b5b6 Contribution 2671 +fce11a31e9c67424506a483c3349b0b8 Contribution 2672 +d58e7fc3e4c12a12830c57ab902a5f87 Contribution 2673 +6536bf6559e2df18f71c221e3e1ffeaa Contribution 2674 +febe4077facd342c79986240f85ce351 Contribution 2675 +19521cbdfd3e4039fed28f2be4ef8bfe Contribution 2676 +16f241b5ae610dd179bb120d742b2f67 Contribution 2677 +dabd778d3ac368813ce6eee60fea1fd8 Contribution 2678 +9aae8f5d9516c7c46fbcf602cdcd4170 Contribution 2679 +430f6992dee595e96978b1ff906ecb59 Contribution 2680 +a4e7cae726d40c51be2915f242abc942 Contribution 2681 +f27b3ea2555e0ab1a266ce5d77250d9d Contribution 2682 +978182a0494c1b6cc857049ab511c779 Contribution 2683 +10d32c03a58bd5eaa3566573e22c96e7 Contribution 2684 +1170e213bf2c0b02cbd4c9e1ae631c45 Contribution 2685 +369e63d93805c7bebb0219fefd9eae2c Contribution 2686 +1c9d9fe3d8ba35205316b58ad3c91960 Contribution 2687 +03f3eafe8762bfd5fec80fe15fca09c4 Contribution 2688 +d9f24fa8c04301b3c8ac562d13cb82e6 Contribution 2689 +83c150ff688195b22995d5c41c7a956e Contribution 2690 +967cd29d432e9792dbe6f52aa228c006 Contribution 2691 +725d1f2645ef602e4b0b5ff4735f6ef9 Contribution 2692 +3aa185ce66c130f3213ff26ab8572fc8 Contribution 2693 +dec5f7871301936ebf36c84b32f52fbf Contribution 2694 +fa3cd65b9191f2c8d9802941348fe5f6 Contribution 2695 +4494fec5ea736303d03b59d93aec16e1 Contribution 2696 +524112f834ee5ba6946663e677a97dee Contribution 2697 +8b43e4019d5c8825f951209e056e966f Contribution 2698 +0362b3e714b531afb2b40b16acaff0a1 Contribution 2699 +17fcaef6f6f64a4de9d92ec9c6eb0da5 Contribution 2700 +4d8663ad4e8d2e3d40d72ce31e1c3310 Contribution 2701 +65e43e729220705086f0f7dee0f5f506 Contribution 2702 +a6ff8e72058f15f438474db4961a1f6e Contribution 2703 +17ed0815f15c477bc9dfdf8e01fc282a Contribution 2704 +9f3b6b89800232773519c8283797e613 Contribution 2705 +b172cac2cc49d5094dc1ea28bd61ad8a Contribution 2706 +76f19f3cd4ee6edcab9c1680eb7d3fb4 Contribution 2707 +f20d987c3a98c3acd14f90367b001ba8 Contribution 2708 +319b98502176b04d835f14ee8deac6b7 Contribution 2709 +61b92f3abe5786b69693479d42c67391 Contribution 2710 +6f30ec447fb478a87f900793a3f0dc3a Contribution 2711 +1733e2b6771d932627549de82ca95faa Contribution 2712 +b00321a2826edb3cb365eb6662bc38d8 Contribution 2713 +91c1f138bc8571a0dd310056156edcaf Contribution 2714 +12cf34ffe2474854cf1a9083acc44298 Contribution 2715 +c987e441e551bfbcf33b4328c0639aa0 Contribution 2716 +1fb64fdf8dc4c2b41849cf3c14f4166d Contribution 2717 +783c2cdf5159fe6aa5720eaf4b4060ac Contribution 2718 +a0ad5f178f5d2a96ce2af211dd1f2b2a Contribution 2719 +8d785e7d9ae75d04f504083ea4c260be Contribution 2720 +dfb0b9098ec3a817e27f1924b86b3f59 Contribution 2721 +4b9852821de037835ec404a545d857d3 Contribution 2722 +9bf7e5e883127b5efa919383fd3af443 Contribution 2723 +c6f8357cc627f629549d42c94b05974e Contribution 2724 +2b40f397079210d020a64cacd2bbefb3 Contribution 2725 +940cb5f64801768d17330f644d4cdd9d Contribution 2726 +bd2ca96828a0ec4cfa899118653d01f7 Contribution 2727 +301b54a8bb91166f78e18fc5b0e1cbe4 Contribution 2728 +cc37b17a39b7b4545c9b9fe19f7733a1 Contribution 2729 +5f7f5d64d24909e0e99409ea50677114 Contribution 2730 +85823d7fa4c373219ec74057539afb48 Contribution 2731 +6f264276fc645e232e516b8e38c7b27b Contribution 2732 +ca46f284bb42b950261000e79adcc938 Contribution 2733 +94e4e85098413de36c61678cb863ad1c Contribution 2734 +5ea009acb9640a7288164416f33b28ec Contribution 2735 +430828021617a57c4830f6aea11bd108 Contribution 2736 +facb62ff71e8da470a602d9350c54274 Contribution 2737 +3a4ebfb3333612603922e361095dd3cc Contribution 2738 +25066e05c452e752ebb43eca1691bc1b Contribution 2739 +bc8c8d0fc06215b6d25a4378a882d7ef Contribution 2740 +2e2f334862db374cd210cabd78354a11 Contribution 2741 +467a3a9b9b1fa40ef5767d95e7ff9934 Contribution 2742 +b0363edd164dac302527d048b85263e9 Contribution 2743 +4cc7b748e932f353f7c151251120388f Contribution 2744 +ad58bf8060a5f3324cf1af87fa8702c4 Contribution 2745 +54d0313e1b59817061cf96282da4130a Contribution 2746 +943a7e1c3d7fc485d77f6dc8eab71750 Contribution 2747 +a339dd41fb4d89dee9bd093e934c50c6 Contribution 2748 +448f2cadabe993fd1cb9c7e7d6d9d137 Contribution 2749 +36c0056a4b7e906af7a925b4124b0c55 Contribution 2750 +96427e682004128a33f09cabf97951ed Contribution 2751 +5aec568022eb054aa83990e266c9eeb2 Contribution 2752 +a7c1780deb09b7407e1bae9047e053a3 Contribution 2753 +16f8dc19c693c38056d944b347f0a638 Contribution 2754 +1c03dce3a8525adc0598d254d48945bf Contribution 2755 +7c9b990b6ff340f93c4f5b6ab37a7e3f Contribution 2756 +05fdf0658c1bf3d18f762f1e66ccc7e7 Contribution 2757 +64af703f51daa0eb4cb6f985af5e1647 Contribution 2758 +4d4900ca659c18d132b49da18b421f02 Contribution 2759 +acf25d19962ef97d73ceba18e14a2397 Contribution 2760 +5fb31eb64cbaa486770be811fe76fdac Contribution 2761 +4d7a74fc4890cf8152221c58583b3c9f Contribution 2762 +d76d035148116a6d5f8a8d5170c02940 Contribution 2763 +f7994e189089f4e453eab24579a80498 Contribution 2764 +b21e1aca24d38abcb3351bb827a47363 Contribution 2765 +708ab460e50954be3d2d2ebd222c41e6 Contribution 2766 +29a304b51d8ada7ae66749d37b69f9fd Contribution 2767 +319ef1ba76cd4b2d6f7b399c74039172 Contribution 2768 +9edd7153da5d3c15610018e9528f5d9c Contribution 2769 +9b6bcfb5897fd4e47f6ddd31689c3005 Contribution 2770 +537984021f7de3e94b5cd1aef3630138 Contribution 2771 +e0476b06189ba6dd44c406be56e3a217 Contribution 2772 +6e2f380a9ac7ab7e84bc6e2a3d881eb6 Contribution 2773 +59d0ce50570091a267aba2b04c7f3226 Contribution 2774 +28001b1283a018e89fcfc1d094ad6541 Contribution 2775 +0262111c74bbbaadc6b5412a5849769d Contribution 2776 +e8fd31f6ecd59ec05f81e2fff5a9c3c9 Contribution 2777 +60ced1392acc4eec14afb2e6753008a9 Contribution 2778 +7e6edf94cf37c4277baa8977257f8e66 Contribution 2779 +79df09751c945812652c5f3913de5b37 Contribution 2780 +15ca501bf7123f27ae6e1f8e0cac7283 Contribution 2781 +d5f15e403c2e8b29b95761982d2f5b21 Contribution 2782 +6c899cedf76ab0a6c9eb5a683a41c64b Contribution 2783 +6fa7812046c532b0bce5aed5971f9256 Contribution 2784 +1afa75b5793ccacc1c8733530f741d0a Contribution 2785 +43e2f7877d20bfeee1e929a7c22c00f2 Contribution 2786 +f7ffe388fbd0938060abcb63347b10c4 Contribution 2787 +c03d7ecdf9b25c09223bfe7f31fc3aeb Contribution 2788 +22cdea2051a53a1a02ce7387f3f7dda3 Contribution 2789 +6888f65ffbc038112712d7ce19919eac Contribution 2790 +86664ca1114116982c29dabacbdcc70c Contribution 2791 +79061f750aae1ea8aea34cc78b7788eb Contribution 2792 +c95aaf0a3b59d31d06319a6dd51ea61a Contribution 2793 +ca7b332436ebb6419cef8d73226ee208 Contribution 2794 +23b2446ca36aa466d1c6e29ce2f68cb1 Contribution 2795 +2d71a0b6b71247fc2d26a073911f9073 Contribution 2796 +1a3082b1af89a42e7cd71355bb2eb676 Contribution 2797 +d8806cd861be611509e5774990ce0666 Contribution 2798 +889e38f6fabd5c902da1525442d84c23 Contribution 2799 +78487b8045282d8219dd08db5e796d0f Contribution 2800 +5f7846e0554a86b5b770f2f1f6e11bab Contribution 2801 +0155231afbeba548fe6f07675d2e3526 Contribution 2802 +0599e5a6bfb4b9d2173a61aae1437772 Contribution 2803 +bbafc0a2cf8694d2c6929c392aa00f73 Contribution 2804 +6a28a145fb4e15f0b189506665fc60a3 Contribution 2805 +31cf1b206655d6956723057c842e552c Contribution 2806 +4399ec8fa933b3ebce192a44a1d4747d Contribution 2807 +449a93331271e13760e5c0bbaffe2977 Contribution 2808 +9a3ffb45dc5deea29c7d74c158ee80ca Contribution 2809 +9deb7ce41db3149e091c30b12d1ab618 Contribution 2810 +2ae6d07c9a3b8aeff118dd07a3b3e27e Contribution 2811 +fc0c09d511dc9a792e645e8edcfef6f5 Contribution 2812 +10d327febb19aa223035d979a83aa4fc Contribution 2813 +b55902a31369129f1fa7a89dd44b1614 Contribution 2814 +21b8061e76ad77b3136dfa3d60cc7a5f Contribution 2815 +49689b910f87a11b01a053c53e0fe484 Contribution 2816 +1fd63e897cc6b75da5c9039061482688 Contribution 2817 +95443e863a94a2486ab87a07ed7a59a4 Contribution 2818 +1d2df8150f79503af47272358472467c Contribution 2819 +f1053e8a433c85f16a5be1d8085f52c6 Contribution 2820 +2ca218cb618ee7f8c12b01d3ba099276 Contribution 2821 +cd61488125fb874a7d18fca5c19bdeb7 Contribution 2822 +399d3a53e8e269b26bf98120dd0861e5 Contribution 2823 +215f48cbe9e4d44a1692110a64d62f3a Contribution 2824 +d7a9e8280d186fbb7f001361b89b7ae5 Contribution 2825 +ed386ebd6ce9da6e5a02f657321db833 Contribution 2826 +d5d650629f3c2c18c657e6b671494cdc Contribution 2827 +583ee83e2db2615eb2298bb4a7004cb0 Contribution 2828 +4f294f9e5288d2d7d7adadb4eb7ee39d Contribution 2829 +57e94e529244b91a03cb6ac2fd6f2041 Contribution 2830 +700c2c05ba4954886e081cce50726438 Contribution 2831 +136acaaa2cbc54feb7f970d317c8f380 Contribution 2832 +d44413d06e87738ea47c7efc5b07e138 Contribution 2833 +78a1064cc4ead448f9c5c29f2228b6a8 Contribution 2834 +92b44e51468c1dd79daccc8f9a3cf231 Contribution 2835 +1974237e0ac87fa5efd2580e8a071b07 Contribution 2836 +8d301a9d19ce1c2305008b4395c3479e Contribution 2837 +3291fadc11678baae61cf1a527e4d496 Contribution 2838 +4204deadb791ca13bd9a40ee7a5954ab Contribution 2839 +8a40766096ced917704adfe546aefb27 Contribution 2840 +0c4abbc104a363329c87c8d936fc24ba Contribution 2841 +a6cf98008d54919cffc846e83d16c5e6 Contribution 2842 +5192e9bfc1e698484159eba735e0d901 Contribution 2843 +25e5d1c401e1aa302ef226fdd2841585 Contribution 2844 +c8e0ad6e536541b0f1c989e90d2ed6fe Contribution 2845 +c9e91849b7dfd41088480e536773ffa3 Contribution 2846 +2ec5ee7416053e02780bb019c3f2f4c2 Contribution 2847 +770c4d9f7b31307b18c18473534f200f Contribution 2848 +9a01e4aa6f2a6e6b0802f2a3f780a808 Contribution 2849 +aead5fc1f74ae35a8c18a26becc81e03 Contribution 2850 +b8827aa2fb1567aac3de73ee3db6a442 Contribution 2851 +20254c41c04cede61c3b2bc47372c70d Contribution 2852 +556021b91ef43f3316622ddcc2bf82d1 Contribution 2853 +8014dd2fc9e0d05cbdb52f9f08c54dff Contribution 2854 +6875d0e819196709e656dc4d20e4a731 Contribution 2855 +b037bf64a00ab6b42663347722e29ddc Contribution 2856 +743eaabd27c90626a81526e13cebed07 Contribution 2857 +8589d0419abc5f908ad01c33ba2e96f9 Contribution 2858 +24a24f0e7eed37e5dee2aacd9dc69696 Contribution 2859 +c671eafd66c514b881f33cd44a60e6b8 Contribution 2860 +80400d5769843c8d97f5ceb439f9a4d7 Contribution 2861 +4cb1e68a1875899edc0118dfb2401168 Contribution 2862 +569ada37065e80a4a75f7f87aa302f5e Contribution 2863 +34db080c4b26e171faf28133ce6419a3 Contribution 2864 +10ffd05d81a72ad8d9830af3c4ceb77c Contribution 2865 +5dca57d3b21f032e230b9893cbf9e046 Contribution 2866 +38409037f5cf957342de82a38994fbfe Contribution 2867 +095b1308aa9e2c087148814797f4e67c Contribution 2868 +0f4a471f88cf94f2ba3d82346a356d23 Contribution 2869 +79ce5664c479eb13bae035579cb78ba5 Contribution 2870 +d08e2b920e51cfd6abfd9f7cda73eca5 Contribution 2871 +27bdb939c46540a1f1349b91575dc5e8 Contribution 2872 +a341bf1667ac3106232b95a5b34aa09e Contribution 2873 +a4ff59a8b0d8ce66a028f595969985bf Contribution 2874 +7594cae501703ba5598666d56bb0b13b Contribution 2875 +95538ea979a3b17eaa5f038332a8b33a Contribution 2876 +4537febe5e2e7217595f744c3ccfe08d Contribution 2877 +9f6577899734832d21a41648fd0efbcb Contribution 2878 +3427efd2e8a641e7249b3b4f78209068 Contribution 2879 +07e77fd3457d9b2d389d0f28b47519e2 Contribution 2880 +f015a61dd6f9a4d6c46a71ec6d9f659b Contribution 2881 +62252cdb1092f910991f75b83a7ecb4a Contribution 2882 +f09a0afa2e5ef96d921f172ca938dfaf Contribution 2883 +b47e4fa8a45991dddb1ee71e6219a0f9 Contribution 2884 +0ef1b986f51f63b839d244530c861ee9 Contribution 2885 +c117db20db5a79c220dfb333efb94a16 Contribution 2886 +6497a989bf5ef5a03e666a983aa7cfea Contribution 2887 +6a8f78d64f9f6a9bc78211547a8ac893 Contribution 2888 +3c7823ddb996e50af53b4c0da7f56796 Contribution 2889 +d57fb4de08f55427cccbd639f18520f5 Contribution 2890 +0631efca2172611f2e6ab85458676898 Contribution 2891 +752d97fcac3731e4eb0be47e5c852759 Contribution 2892 +03d35c9bd8139eb8510315ddc0cc2d31 Contribution 2893 +756d3accb2bdae9b399ffa1a394a3d09 Contribution 2894 +8fc7a8ff915c2c8f7145a175b20bdb33 Contribution 2895 +701988c60282267d2706351edac4d912 Contribution 2896 +d291d9d507aacc4624d482925d8facdc Contribution 2897 +1c9b663bd85049c2ddc4e62c0cc31dde Contribution 2898 +f38ce7491cdfb9a2a05ab5a41fc766f0 Contribution 2899 +5ca5940c4a3cbec19e44a5ec776db5e2 Contribution 2900 +75350fc92da7eb08a3412035c9bc5044 Contribution 2901 +49ccdc221884bb04c65b4828af66c384 Contribution 2902 +6a9dfdcd29617a598e7e184becfa33e2 Contribution 2903 +b24bf2d6e5afce6095e5477cdad9922a Contribution 2904 +5110a521616c5dc85fad4afa70a1985a Contribution 2905 +69b97138d28e544cf51e7365fbdc847f Contribution 2906 +67e42ed4fad72da62f83075205aeda83 Contribution 2907 +bb69314a963433e985db1ac14c4072a5 Contribution 2908 +bea2437b95752a274f333b3f9fe40ca1 Contribution 2909 +b7fe378725304e6729a82a980ce84bc7 Contribution 2910 +9b16e45f4b882ace60bbf84306fc8d13 Contribution 2911 +ed7edebd7eef9d1b36a1d2ba74adb4df Contribution 2912 +4037cf374ccd9ec267d7cead2e648bd8 Contribution 2913 +1f6931b140af0d27e09088abd412030a Contribution 2914 +d9264fe23d7e1a75890ac531187de712 Contribution 2915 +3df1933b818bf359198ac79fa573ed60 Contribution 2916 +475b4179e9703d8cb99ca54fd7863109 Contribution 2917 +b1ea850f755a9a2cfebfd508f1340162 Contribution 2918 +bf3881ad59fcedfd39c5f553b94c3605 Contribution 2919 +eefced4b04d9344acfca18a5c6dc423a Contribution 2920 +07902b870fd4c2c044d3092b05004841 Contribution 2921 +b113f4cabc8e63d68b461ebc6f23ccd7 Contribution 2922 +d05b44a597dac949e224d2a72e9d8742 Contribution 2923 +923ec1c25b53f663500e2cc2796cb99a Contribution 2924 +19d08535971f5b00053690b2bb8db857 Contribution 2925 +920086076e5fc3a02e1498ec8b642739 Contribution 2926 +d21888ee1d27e2401a0aa9f03841570b Contribution 2927 +ec592603e1c402af97f541902f99d5cc Contribution 2928 +beb92b53c0acb2f12e794fc2b1db1f23 Contribution 2929 +d6856a4571bae296ce6ed7ccf90666d5 Contribution 2930 +4a1bddcc5b32895a7cb3194e1d356b2a Contribution 2931 +483d5507855289eeb3c03cde91a5f810 Contribution 2932 +f0e238dbc09d660fa4af7bda1c9304fa Contribution 2933 +b8339edaa9aa0a6ece2dcff4d42842b5 Contribution 2934 +ee92239128aa7e9dc6123314a9141cba Contribution 2935 +477098f5e72b08320da14a19ab4fb50e Contribution 2936 +c8b590903c221b9e9284eb53ff394a51 Contribution 2937 +433758d076a3a8142823004712fc8155 Contribution 2938 +e8511e5b71214bc68ded0a194942549f Contribution 2939 +2dcaa5df7b7900fd74d3710132d42b8d Contribution 2940 +dce67a4b870797a23e24c55ad772f919 Contribution 2941 +393bf16339f2dbf7226a4e6ba6fc1a52 Contribution 2942 +e5653b0359cbc5f021c91d6f0cb0d08d Contribution 2943 +091f03bbc789d229ed31f0b1af392d69 Contribution 2944 +920ca9694f886899e973030fdf903c54 Contribution 2945 +0d6fe34463d1b924a8bee6c4a6137ebf Contribution 2946 +6d503c474b0ade539b73385e7a6c2968 Contribution 2947 +4a0950534f0c7d12e42faad79a0d27ad Contribution 2948 +a8eadea45100dd6c8317c120ba1f755c Contribution 2949 +62d34b1e5024cce1cca10dc06e83168f Contribution 2950 +bf94d6066dde0fb2948b3ba60bbea1cb Contribution 2951 +f8f7461df51ab26cb7b507e0ce498cbc Contribution 2952 +0d1ea43900a76581513a4d4455479e83 Contribution 2953 +e1e4ec31f2cb7019e288427dd22f1e85 Contribution 2954 +a340c0ccd01762b4a4642be246503964 Contribution 2955 +8a177c34ac5878a724bbdb08552e9ddd Contribution 2956 +833b29931d90bd074c455e87793354a6 Contribution 2957 +aeab15282bd3120b5461d591fcc1a1f4 Contribution 2958 +fbf3a55fa00b518ccd07f3adf8ae3fe8 Contribution 2959 +8e13712198eb7af8a47929d27e066ee3 Contribution 2960 +e5317a3e0eba34129bb1f105f36b644e Contribution 2961 +020b252b5d03ccab69cf93d98ca06d28 Contribution 2962 +46957c25183baaf4299b5d3dc72963f5 Contribution 2963 +cdf12d8e878e7116130e9c0b630be14a Contribution 2964 +e1d25a8b1c0d33d689c3bba30e72bbae Contribution 2965 +856895c6685cb143b6d925e5033c3249 Contribution 2966 +8cfb8f8b5a98396ad0b4613103efa7ed Contribution 2967 +61fa3c3fdd3384fa458a71b6f73a165f Contribution 2968 +28078cc2ed3caad4449c19591e55ce6e Contribution 2969 +201a1dd40067be85855fe6cc3847b220 Contribution 2970 +fb59cf02a39af627bc48fbdc191c3fc3 Contribution 2971 +a57435918f2d4806792cf1309f51e82b Contribution 2972 +6f358908e37200daf410d45316f927a7 Contribution 2973 +dca02156d10bc8053cb47831e7dedb64 Contribution 2974 +fa03ab9e971a809a280d81ada186fc6b Contribution 2975 +0078cf7c8d0dbfe7d4deab9513ca2f22 Contribution 2976 +b284f07cfdf7fe9803b3b998da55875b Contribution 2977 +a1ed8a80e81fa859b69e2d0c18797917 Contribution 2978 +99e61a83076a5f244ad059bafca6a615 Contribution 2979 +b45ae5f8c5fd69447442bb60b1730338 Contribution 2980 +cb9cb6b56af62febf7803f5993641975 Contribution 2981 +14ffd32e4bd74b2df3a9d732d8d02f7c Contribution 2982 +0963510040cb5e52a99f0e4f0e81be31 Contribution 2983 +18f4df673cb25fcbaebfc795a92aafc1 Contribution 2984 +e42e5395ac75b163c701c6b19e6e313b Contribution 2985 +02cba6ac5fbbc1fe25e86d20eb856d66 Contribution 2986 +a4b2ae5d4cd9425a28d1566a052429d8 Contribution 2987 +c5a4844b6803af817a059e6a95975122 Contribution 2988 +10884df82b9ff883bcbf8f76fd088fbe Contribution 2989 +b85cbd66a1366ab8b7eb18004030304b Contribution 2990 +4add52734097847c29c4e93ad5c3c8f0 Contribution 2991 +bb74e88dc722f8dcb087505b58336283 Contribution 2992 +aa4be943d9c31df29ec00531e4aea44f Contribution 2993 +918292a276bad2554b68c57f1a5d3f43 Contribution 2994 +9b5b66d201e239b51b86c4868275092b Contribution 2995 +1fdc2dc12b083fa6ffc5add29353419f Contribution 2996 +c453ec8972d0bfd3075c74d2d546f8d7 Contribution 2997 +a5186afa163818a613558240aec57b5b Contribution 2998 +d28156f0cf0d3fbf5fba3a97370f2687 Contribution 2999 +669884e4592355516128cb2ae239ad93 Contribution 3000 +7af722d463ab1fd2b809cf3a6b183491 Contribution 3001 +7bc94ebb4e693dd0b75b7994aa452139 Contribution 3002 +34d150480a8e62f666395394839d9430 Contribution 3003 +feef17c19b55fb36ebb3e1c089430362 Contribution 3004 +cff83b34c1aee5bb86a42d95b2077595 Contribution 3005 +1bb9800a50191763350629106422c422 Contribution 3006 +d6c06711b4ade7332cacb4ba2de99358 Contribution 3007 +2d40390d7471b7eb9f58cd87beeed7a0 Contribution 3008 +2c4c1a8d1b8992f3b9433ada08a26021 Contribution 3009 +00661b2279442ffc720d5b5e46b12c10 Contribution 3010 +4f49e329f9146eeaddbcccf6f950e42e Contribution 3011 +3467c35eb786216037d283a916a3f650 Contribution 3012 +36f03f27353bdeae662bed79bba79058 Contribution 3013 +419ccab9cc8118b1e5cd3e1dfb2eaa26 Contribution 3014 +66b862c23f4929824e7bcfa8eb6ce270 Contribution 3015 +943a40ed044bd045526b93b87130a016 Contribution 3016 +4ba13c6b9233a13c321972f199860357 Contribution 3017 +920720921501c174b36ddaf54ab31c17 Contribution 3018 +d66e321ce38eafc9ddb19cda158e9c99 Contribution 3019 +1137ac16536855bb4f42ff8d1b22a660 Contribution 3020 +3e76acd2eb702d003cfbc7fe4dc4d93c Contribution 3021 +9dead9ef608e5004d962082e525e6f7d Contribution 3022 +f272ed52953512c3cdbd2c727c5689aa Contribution 3023 +7a6d3883d51cd4ceb1086199be287e36 Contribution 3024 +92880454bb245545142201b9b3375ed9 Contribution 3025 +e32b920d7b736ec5d669fd6836329f85 Contribution 3026 +531acbf4c08380f5ae1da18090b704de Contribution 3027 +da60ddf295c3ddeb465f71441dc88818 Contribution 3028 +6c3e7a78f18cd0d281ba249f34b81d5c Contribution 3029 +5b55a17b5e85a3539071e14f1d0f9e65 Contribution 3030 +c073c25a48c3691e79c6d2862a277ff4 Contribution 3031 +e44e642f2f9463297b02b107b9260d65 Contribution 3032 +995812b74259e37256a1069418a0ed3b Contribution 3033 +ee6b00bc3119ac48c954761ece5a287b Contribution 3034 +d6b9f86e87ea10c8f0d6b96bc9f8717e Contribution 3035 +f2ee960c7033eb98f3f65f1479d447e8 Contribution 3036 +0c85f93ec2691b8b5d1ddd1b09df08bb Contribution 3037 +5507549b047689b08fb4e0b2a23c6700 Contribution 3038 +f66cdec660218f2706e88452881c7b11 Contribution 3039 +d9fe0ed38ae43fcd36b6a106c12d0edb Contribution 3040 +f6afcce5836d114c0b64d63f15f10a74 Contribution 3041 +b63210757a2c9bdebdf3de1a4bb224eb Contribution 3042 +f14a1142676b38b1225004c2f2d2f6ef Contribution 3043 +b6f53f35cc5a6545c3ebe66cc884e749 Contribution 3044 +c17bdd756b776ad75c6c217064d88f98 Contribution 3045 +d2912f102a79d2bc93fe013074ccc4a3 Contribution 3046 +ee23b0bbd0aceb3de9143a239d7e7e23 Contribution 3047 +edc7013037e050b9e26c98e6b609b1df Contribution 3048 +3987b05d062b76e7e032774b4e70c3c3 Contribution 3049 +a7dfe69a8398cdc2bbb6bd39f04f877f Contribution 3050 +e82328d425ee76922378ea3212270819 Contribution 3051 +8e3e5138eabdb6d5d8962ffec05044bd Contribution 3052 +43df881a765876ae9802768ec54574c5 Contribution 3053 +fbb650106b4c8701af1cb7e3cec2fb71 Contribution 3054 +b9d3abf1b24eca73dbf8b329d32c291c Contribution 3055 +5795071f7953b201923739baca52a462 Contribution 3056 +e5c10157f256f75aaf7f182936f01832 Contribution 3057 +e80483df5b5419b96e7277d7332ea1a6 Contribution 3058 +d9cd0f3ef84c8f168202968cdf1629bb Contribution 3059 +931c70dbe036ea48a65933cb6537629e Contribution 3060 +1af0f9b0495aa3d879f21a0304b29911 Contribution 3061 +9f91edb38ef4c555243aad64fc3fe3cc Contribution 3062 +9da64fbc754265b25d60691706714c9a Contribution 3063 +4119b840ad1833913cfccdbba4779ba2 Contribution 3064 +1e3c9449d9125241a77fae40c9ef42e5 Contribution 3065 +37513c5736f484e0321b4ec1c07c0a39 Contribution 3066 +76b7bcfcd25e37b6acb54af5ae6d9eda Contribution 3067 +c72e313ebe2b063a0189900ad8c032a0 Contribution 3068 +891aed6adcdbcc59267346d254113fdd Contribution 3069 +7f8c092034585007c5dc47b9114fd627 Contribution 3070 +03416a7f70dcfbfaf77f8815bdf4bc90 Contribution 3071 +abfa8ecda99ef21c89349867e209feea Contribution 3072 +40d0ea1b963048ec137a2195c43ef234 Contribution 3073 +f02bc08dd82a67808da6d60766e7c45a Contribution 3074 +6468cd502ac725aae14bf0e6c126d1b9 Contribution 3075 +d27a0266f9dd99dc3b70d5fc1f78a0be Contribution 3076 +9eca150738e99581cf19950a12cc95a5 Contribution 3077 +8b40205c206ad236b5879fa069fa042d Contribution 3078 +214455aefb2a2c18a59d0e13dcd52c9f Contribution 3079 +d0520ae1bbe3e236d97fe7aa4a685d0d Contribution 3080 +e7b4c6707fcec463aea58b0f64311332 Contribution 3081 +f0d8d7c750026226806d92e7991cff13 Contribution 3082 +89b9718fa9a930fbeb99c4e3bf56b572 Contribution 3083 +c543b2e095f14b9ffdea978989dbc18b Contribution 3084 +db381728f0f491511d9591e590830e81 Contribution 3085 +9509b516610e2cbf12e8d4cf748ee9c3 Contribution 3086 +e56d35d2c2fd27b0c7e0c0c7ad36b2fc Contribution 3087 +8db9d5dd639d91c6bf1711c683d25ec3 Contribution 3088 +9a23ca9a067e0aa7231acb587129422a Contribution 3089 +7662c2f9f053232e473c138676a0cff7 Contribution 3090 +f7a66a7d2bb63687580d7581c9a94cba Contribution 3091 +fb3db466308a42218bf4c8b0e7cee33b Contribution 3092 +c5997a431e3e629ddeec8fd06adf1dc4 Contribution 3093 +9ec51b4e946d83c957708e6d5c6df9f7 Contribution 3094 +d347d945c0ff2a2da1d31c72da225fbc Contribution 3095 +5109a524274b7a5be492d867c93aa9cd Contribution 3096 +fb690997f94d446eca3cea080117cf80 Contribution 3097 +011c906767be573ed274e5f41278d8e3 Contribution 3098 +701e7470d743b073341b3f3d10077063 Contribution 3099 +8a1d35d7a0d57f5071f6456c0d76920e Contribution 3100 +ce7b594df4f2546aecb9e7e730199634 Contribution 3101 +9d3f634267ee99ba8a2411b29468a1b2 Contribution 3102 +d037cb335b8810b6daec33769e428d3b Contribution 3103 +ef14f663df8df0a36fe98d96d0896d3a Contribution 3104 +4e17bef162112938f31c0961a6bca038 Contribution 3105 +71817409cbfdbd81c8fe67fa7d2c6a97 Contribution 3106 +5da43f356baaa33685d48eadeacb4799 Contribution 3107 +9d142943f4ff39997e9ff2d471e5fc72 Contribution 3108 +e233fb60c807edefb6c35257bb85295d Contribution 3109 +7dc9469d0a939ec5408c1c32f4782135 Contribution 3110 +e8f9e96d9e4c3d51270337969f7b95ac Contribution 3111 +9bfdb7dce1902b1069cee491e4dd2607 Contribution 3112 +2b258a261a95e5960d5a44bfb4573745 Contribution 3113 +96d4e768cd9f1482b0322717016575a0 Contribution 3114 +f15a0ecc50ab175844bc04b1c556e36b Contribution 3115 +b9967c3268cc0d3f56743ea10d87a39b Contribution 3116 +2330e88c505b267f9b2d0091d6a0f5f3 Contribution 3117 +ffbc4e3363063d6392ee6314bbafaf96 Contribution 3118 +2512e23f3f848b4ac2f8f8054840ae34 Contribution 3119 +09348a1dedc65db4ceb49c221a31d8ab Contribution 3120 +6a1504d97e90707620cfbd5be765791a Contribution 3121 +d55bf064925808718eed0efbddc08f34 Contribution 3122 +912aa16c511a41c92c4275fae8e4ac36 Contribution 3123 +2df1b7767c864c5266c65dcfe45d1c70 Contribution 3124 +0748e9547ae5d237e1f2d39f64b763fd Contribution 3125 +3e8d3cffe9cd87dd2fc649dbcff80e16 Contribution 3126 +43fe579d7df0c5e2c21b9095ef0f4997 Contribution 3127 +bd8165198a599039a3ee654a60847f70 Contribution 3128 +e81b9e2e40c6cec4c3cd3233474723f9 Contribution 3129 +8733a418123378fa3396162956a7fec9 Contribution 3130 +7c60c9afca05ff7b2b2c3ddf630552da Contribution 3131 +d3cffd288fa9ff2ddfdd6701557b481a Contribution 3132 +f0ece850a4c9bc6393d10de6d3b3eb21 Contribution 3133 +eeb2c598dc2f3d8d40f3eb37e28bf540 Contribution 3134 +e12e3204344ebf7eb8602c5a09c104a3 Contribution 3135 +db1911c57ecc3dd8204af9a43af23205 Contribution 3136 +75cdb3c66f286c5d4bfa6adfb0fb3ec3 Contribution 3137 +01fa54818d4c09fd7d50d4ae34f3e382 Contribution 3138 +7098e84d1ce728929299c44833c80d5f Contribution 3139 +1a8c941b0dd63880484c0b5344d50c03 Contribution 3140 +09c133a708a31e19bc3715fec2782b44 Contribution 3141 +0949e6ea843689531adb69c9c7ff6e02 Contribution 3142 +bf24087d0cd4233b38e10832ee598e38 Contribution 3143 +53e20f938a5ccf041529d39d081d2fbb Contribution 3144 +8f576a7d4dda2561758a217c867b06b6 Contribution 3145 +b24fafefa60a0e41dbd0157fbe582c89 Contribution 3146 +e3ba110b276ce4899ba72a2d3ce2cc9f Contribution 3147 +fd3c0481c73166b89ed01e2ec9d4146e Contribution 3148 +8d140973ae82d0e2884b232058e3e9ec Contribution 3149 +a36cb86ff6a9ba33758df21407d31194 Contribution 3150 +6c57df340862a5676be6435ccd8c36bd Contribution 3151 +ca0b3015e008cd04fa164ec3efc2aa0f Contribution 3152 +72f02a5f95141bb99767e9afbacd3579 Contribution 3153 +5c9f24ecb04d4d8c43121ab89defee6e Contribution 3154 +f19ed0478e24939a2bb35c11a7f416a3 Contribution 3155 +6ef07c8f71df8d87705630c2813a5b4f Contribution 3156 +b466f86500d145b516820a17b1655b04 Contribution 3157 +865cd3f0e4f2ed70e56e840cb35498ed Contribution 3158 +623645d987fa7722a5d0abf8927e74b4 Contribution 3159 +aedfd3a0f5f8d4cf7a0ac802f056d428 Contribution 3160 +f002b2d77e40fa147eb1717608fa2372 Contribution 3161 +48dafdb5cc5bda4a794bea08ec9d88eb Contribution 3162 +d0fc88730e54a4e15526c650386a27cd Contribution 3163 +b70f8b739fa6f9da9279278d9cd8ded9 Contribution 3164 +9bb77ded110ccb90edc219b043798daf Contribution 3165 +8214c505370f5bd32589904502240883 Contribution 3166 +80136e89e5d0df074fada5dd2da476cd Contribution 3167 +80c55602e42ee95a4a7353f47d0dfb80 Contribution 3168 +201b5f00bc847ddbbeb32fd36912c7e6 Contribution 3169 +9be0a9e1762111f1bb3a8e995210dee7 Contribution 3170 +d948a5d5660895806e543bf829bc8266 Contribution 3171 +00fb9e024a268ff0e93cdde31e8a9193 Contribution 3172 +dfd75a7ac06d46f59ab3bfffc687cf01 Contribution 3173 +f75bfd663e65d6ba0373d5e1aadb5b48 Contribution 3174 +f5e8ee06a34fe8b1fb37ed9784be317b Contribution 3175 +ba8d76d91841d4fe5c9a2be1f6e36ddc Contribution 3176 +11700e291f956ded4558d280cb747911 Contribution 3177 +77c89ebd2097e213a2e8c0076ea982c4 Contribution 3178 +0e38fba9c5fd1a007c9bdb187897b5f4 Contribution 3179 +c8dac70e32a48fd2f2a75c4f96b1e9b1 Contribution 3180 +73cfc282c4851454abb950c2775b7d77 Contribution 3181 +95b46312be6467353b4318eb2cd6c0c2 Contribution 3182 +023b8635a6e77ccc36bfbad6e0e5ac53 Contribution 3183 +81b92d1f49563571b6530bbd007122af Contribution 3184 +3ac9207e5c5672c19704121272031fb6 Contribution 3185 +a5f1d0899a7eebf8d905014081f61fad Contribution 3186 +39c70846567d8aeead41f19d1e567dc4 Contribution 3187 +43391d72b5578c43080f6726f98018c0 Contribution 3188 +286a0035844ea7b4fc6de6567c4cb052 Contribution 3189 +6a125fd747dfe0cb1cf743bcbc37a8bf Contribution 3190 +d3d20c8f907d14e71b2cc86d272035a5 Contribution 3191 +2bf1fb347b58066cb4ac39b3bd31cf27 Contribution 3192 +0562f7f9221bbb9efcfebc1fd66160f9 Contribution 3193 +6450e3f2a7cf3fb10f7d2260b3a8b1f6 Contribution 3194 +922165518c97192919890139b64975ae Contribution 3195 +4bdf2773a403b4c4f9751cff18315f53 Contribution 3196 +d1706328b52f82b24ec25fc47b6b36f0 Contribution 3197 +8994336b076012b6c5ac456f6def356b Contribution 3198 +edc5c0fbf262cf8dd40bd65e0fb8c4c0 Contribution 3199 +be516151e8798d95afd5290534323bd0 Contribution 3200 +68aa1d5c07e413e7b0290f684fd56224 Contribution 3201 +2abc1748b0f16386608594a8a1e12171 Contribution 3202 +a248c3ffae4b3729c791f8f128ca3434 Contribution 3203 +811590ce2516dd1224902cd219b8d631 Contribution 3204 +5b6a784a246ba4f5cbfbfb6f11683244 Contribution 3205 +670f9b5b2aa2861995cc7214168d2fd2 Contribution 3206 +c8a21ae306aa0cd86573c7888d0228b4 Contribution 3207 +75bd335cffc9962560dd7bdad16a0f1e Contribution 3208 +3ec03b2519b8ca0029ed1836cb1c1f5a Contribution 3209 +c7209febc52328714845a911699ac751 Contribution 3210 +c5184a23390f41ccf92ad7c3959c767d Contribution 3211 +e7551c7a3abb85c8b4adfaf3bab55483 Contribution 3212 +4f89c7c09209fac0ad1e3516b3d0c158 Contribution 3213 +be5bfa9b0b2758030108ea707f94b36e Contribution 3214 +b42f9874a00a0bbce31a06e1e1053820 Contribution 3215 +dfd0975e24923622930670267fea5ab0 Contribution 3216 +87c3cfe58400a853d21e2c5364bad0f0 Contribution 3217 +e61b30c9fa76ddb9ffd1d35c934a2851 Contribution 3218 +6c9a87854f6f175142a72c1beeed37b8 Contribution 3219 +f6cc176c7eab794ab8a9876174a62c23 Contribution 3220 +dae3a7a77849cbd3d0304092f9ae2972 Contribution 3221 +4965fa081e2bb4d71c0032937b1366d1 Contribution 3222 +ce3cb7e920097746b6fa6385cb9e1fad Contribution 3223 +7e6c2ed5df7254b65ac2c6e753eb72a6 Contribution 3224 +eea4e1d07455b2b6da9fe5d198ef2084 Contribution 3225 +ff74ed01c0bdb9e75290722d44de1c02 Contribution 3226 +6be4bcd2afe774a666b4628b28e855c7 Contribution 3227 +f1d63ebfeced696b5bfae5e54c8e260f Contribution 3228 +a7bd42c9be5b91fca96763d9c058580e Contribution 3229 +ba3768849271e2ae1ecded05566cb433 Contribution 3230 +39c5fea33866cb7e7c90c8b3ccb7379b Contribution 3231 +431d936f9d8ab09778cf3331fee3af4b Contribution 3232 +a196b9847fcd957e92302607d74ee6c1 Contribution 3233 +a67a43c1face5f7d9fd40b38dff59888 Contribution 3234 +4eced59c29c77141ba95012a8be29bc7 Contribution 3235 +2404b3c8d69eb1fafe69166a5a459dbe Contribution 3236 +6d03bdee2b49d2a086edc723cdb7644f Contribution 3237 +634c812a50cbb49568d1c2d2fceb737e Contribution 3238 +476da9834847d5b52086b266ab5fec1f Contribution 3239 +5fd03b11889d1a05837a33911a5856f1 Contribution 3240 +c15e4ee2e9248b4dded34fed0bced2c9 Contribution 3241 +75e6cdbf89cd9a4cab50731e7fc92cd8 Contribution 3242 +a0902964f80ac135e9d4b11d7e69f98a Contribution 3243 +bde05599d15b166ec82cdaf7214941fc Contribution 3244 +ffd29beaf49986347fbac34628dc50a4 Contribution 3245 +a24577c60b06b13b84c1713891d896bb Contribution 3246 +96348327de3eda68b3d18d77f07f1c8c Contribution 3247 +d0d4754c9b1177fdb7828f178cc75cbb Contribution 3248 +0b7f7f89ac6847b0eed81b4bf3d2a331 Contribution 3249 +fad83ac573301efd077fb5793ced103f Contribution 3250 +88425e8a357ced3ce8417101ba5331d1 Contribution 3251 +b3f0c5a916705eb3f9fa29b1a254a1f8 Contribution 3252 +5fb2e0ed1ceacd311d22a8c21c9c5ad6 Contribution 3253 +0e3c3437b849f68699532126d575bfba Contribution 3254 +353269b3884674a0f8a7b31d7460881b Contribution 3255 +e40bd51181e6265e33c05c40708dcf73 Contribution 3256 +b5d69f113268950e3e218cb1ec12f4db Contribution 3257 +d5e4a52ff390147558b7262fa216ac0b Contribution 3258 +f08e9c2317ba05835c65fed1a3ab1736 Contribution 3259 +cf2f65877f9633cfe8532f725db2ec39 Contribution 3260 +7d613155f5d8f736f07a6180be3bd0ca Contribution 3261 +f7b9b622c6633376c4311f2531d0ad64 Contribution 3262 +9f5c8c91fff4fb7ebcc466a534548f4d Contribution 3263 +90a1e38aba5054f5bd46aa7e36bc96c6 Contribution 3264 +77318ce59906a978a99a41b0e36db39d Contribution 3265 +c04e5810e887b717d887dff1b3bd85d3 Contribution 3266 +b646eb7921a00b3b5c6cd99a509acafa Contribution 3267 +e6c70f53560a8f5ea96e234f3990c01e Contribution 3268 +e6cce1ba2d10e6d6d910462fa606914a Contribution 3269 +30a7326dcd58dc2c82296dbadaa81e89 Contribution 3270 +ff90404e8046cd4052227d4917d9cb97 Contribution 3271 +a88678fecd5672f7c8de5d53af2f1cba Contribution 3272 +56d3c50b42155ddd13b3dfb31e799223 Contribution 3273 +060ad3ec0a955aa0156b51a9b5b80b7b Contribution 3274 +e825ece4170492ae2f2e734abcbb648e Contribution 3275 +c045201bcd3de3938714db525967e643 Contribution 3276 +eb2860fe756921cbf7ee6a1d3001c13a Contribution 3277 +65ae453e96c5525246f3945a26c459a5 Contribution 3278 +b04e3f291391cbad54e9edac1a6d639c Contribution 3279 +2ecc61ac4737b7f2dda7950f5ef26fdc Contribution 3280 +a23d33931085aef1875d7d06e61f1e18 Contribution 3281 +4d5c6fa4e8eec7fa5d8b4392144f9dd8 Contribution 3282 +bc84562c8982640050547b8c878934d5 Contribution 3283 +3d28fa648046ac1e1906e7d2adec1677 Contribution 3284 +47b2cd8b41468c8b76d0599a260f636a Contribution 3285 +0722982ff35259c769d1871f2153a0c4 Contribution 3286 +f51b56c1588fb06a79479c7fdd0fce48 Contribution 3287 +fad6d883f2ac265839ba839cbe462a51 Contribution 3288 +a82e9e1d3361ace7eb76b594a4e43fd8 Contribution 3289 +30867a11a3d98cb576d5b0162b023284 Contribution 3290 +be5442ec1b8f46072234a049817b9add Contribution 3291 +7c3f7a49b6b9c14b72b6c9fad9c34208 Contribution 3292 +c211e7247db680d8e93ed5b9803c95d0 Contribution 3293 +fefcece683901672f579a0796a585893 Contribution 3294 +27970edc27f61090a2274bcabcee7996 Contribution 3295 +90ef55f50a9def9e238086b6489ec6e5 Contribution 3296 +e09ec36ecc13e4a72bdb5a52d1549a45 Contribution 3297 +6b0dd7f0d5fe3bbe6b895b93dfac2482 Contribution 3298 +b80ade7b4893b07732eb6faccba0a140 Contribution 3299 +984f45e7a09b935f5160981a38307d59 Contribution 3300 +ea9fe84c4fa9705850d9e0f6b2f5933d Contribution 3301 +e33eaa47031abc5bcbc17b37ca17e604 Contribution 3302 +9bd7d83260a1438210b9135fe7bd180a Contribution 3303 +416f99be13ded22e5e4903a89637ba96 Contribution 3304 +f90cbee63fe4e908f09e20d47219af24 Contribution 3305 +d5eebff73364fae08041b5dd0a32e1e0 Contribution 3306 +c4e207c0c6b81b8bc4c0dd95b6338dfa Contribution 3307 +ae7484cc2de249bb0cd383a21212eef3 Contribution 3308 +2a420adbe8f5dd0f6736e529091ee482 Contribution 3309 +8449704035d800af4b2b80b4af417a7e Contribution 3310 +982ba98eaa325f7594a52269ae669011 Contribution 3311 +91d402a0d72924e3fc925f65b98162d4 Contribution 3312 +31da96967f0278376e01f8383a03fc74 Contribution 3313 +bb35e4623ea3dc43e8952b5af416b996 Contribution 3314 +0c3b5867224d1b4235fd5a5efac847df Contribution 3315 +5cb4126f7cbbcbedac4c1776f09ab2cc Contribution 3316 +ff04b5000b93b1a5c1836baa41840c87 Contribution 3317 +037f99ac757541e8bd9c0b550c62b973 Contribution 3318 +a4eef5f312daa8916e71f2af0b69982e Contribution 3319 +7afa951d5d9ea02cc7246a0a5dbc916e Contribution 3320 +77d8e0782a5c91feda85a2ea218ac7b1 Contribution 3321 +166097c06bdfacfa15037a1bfd95e52a Contribution 3322 +555688a94bb12ca9a470f1e2d1e4b2cb Contribution 3323 +004e7714397a5043ce9e8488ca9475be Contribution 3324 +3dc370e430c63ae1fb5036282362dd7f Contribution 3325 +8d474c63b414d3cad38fd8064beb93c4 Contribution 3326 +89de781c644dfbbe7d232cb1c550ab11 Contribution 3327 +3242d4eaacc4e42bd674cb94552105f9 Contribution 3328 +eb22f829a3dce78021761bda3bb2fd1b Contribution 3329 +f00e84bccb26967f7ff62fc852792e21 Contribution 3330 +d2d59f829940aa40ba2207d231ec236b Contribution 3331 +b9bb0844d41e4bee46f80359632e46e7 Contribution 3332 +e783e8cd534fbb5508828b362ca42459 Contribution 3333 +ca59a5986a282639d76383c5fb8036dc Contribution 3334 +51bb410b104ff53692611e5400df9fb0 Contribution 3335 +f9fd43f71cc38bd244663d0bd2a912f8 Contribution 3336 +495924bcab7eed8e67c51e1f123c793f Contribution 3337 +148fe8b794487fccc5c47a9eb5b8d8e2 Contribution 3338 +960fc1b98c0bb9cfa7f2836a2c4dbfb9 Contribution 3339 +76bd7904986442afaf6fa4149963318c Contribution 3340 +995e0a1499d67f8c413d939426635318 Contribution 3341 +a99cb22bbb4558b3650b60b9a8b45eb7 Contribution 3342 +8c34f71c4aeefcf337afeef72a390d72 Contribution 3343 +97624726000d2fe577b4fe2522b01e5f Contribution 3344 +19de128bb0ba85d5fafeff3feb2c79c9 Contribution 3345 +18c7af386020a0f311de72dca7191f23 Contribution 3346 +de67caa76146a3454891103d842e9b12 Contribution 3347 +0851e983df3b6cf7d536206565a02160 Contribution 3348 +8da5c3e078693780f3f0af3890cfa7eb Contribution 3349 +bca708cd49e77116a0cf23d081af445f Contribution 3350 +14d87ca9715c6cf836844b07c2003f6f Contribution 3351 +bb17ef6baccab3d513d52c7ccab61743 Contribution 3352 +69767cf7bccd76cfb01029759cefa0dc Contribution 3353 +caa161d84ddc667554150b4fb78ef08b Contribution 3354 +564692a82d708a97b985c6ea886fe61f Contribution 3355 +50230e3503b27f630cbcba4463b93a4e Contribution 3356 +cb2d74f7ff9fd84ef64cf8922f3be622 Contribution 3357 +d6244f5da5f356fb92aa60e09eddf41f Contribution 3358 +f2a717f2ebf0cfe81b74cfaed0f8ee48 Contribution 3359 +846d93827ffaa5f1e4f2a4499032d616 Contribution 3360 +95efb2d9db7ad3284016430d574ce1a4 Contribution 3361 +7d01bd53b608de00abc27b16363765ac Contribution 3362 +9451975cffd83d530b1eb6234e020d0d Contribution 3363 +e83429e4b310dcaef900df70a6daed34 Contribution 3364 +6baa09fd46f1ee97b6db6771627414fc Contribution 3365 +e6cb9f9a3f8c3f725d3fd66d82606339 Contribution 3366 +31cced36972dcd312259b61e95fb6e23 Contribution 3367 +d01cad457c6384ad747c488ec061726a Contribution 3368 +a50d60e6bdb08a428458bd6096163df5 Contribution 3369 +1caaaba343adab1f5e252f3cc9693951 Contribution 3370 +fb53ad1a5129c4d555375e016c9edc7b Contribution 3371 +ca8e5db9d78aec0bbc3203b7759934d1 Contribution 3372 +647bb6ab1094d3c4b19081c8172e1323 Contribution 3373 +a37a10a4c7c9f690efaa37436a39a9a9 Contribution 3374 +665b468cbc88d4144d326650d828353d Contribution 3375 +5b0baa8e18381848d757df1907b8c3f8 Contribution 3376 +acb38045e50076a7c30d52c2c7b5cf64 Contribution 3377 +f785d87a60a5743e45956f355b512893 Contribution 3378 +8182a43f17e5889c1867cbf05b4ecafb Contribution 3379 +42801418dd0e8e4d2a7e5a34cefb1136 Contribution 3380 +cd0a369ea089c74d1e8f0e011b6f5a30 Contribution 3381 +f428b1925509ecca0a1bb3a3198e2fb2 Contribution 3382 +85be40cf714da7c0ce6f5d123e30e0cf Contribution 3383 +c087feb19cd1ac5ec0300b2368e55492 Contribution 3384 +2c922d81c50ef9a2fed46ced066a830b Contribution 3385 +afa8baafdb576e09e6e2395a5164859f Contribution 3386 +62ceac5bd68921f57ed6b46c560a79b8 Contribution 3387 +92ad5ff38151c7fa6f76f401186d9fe7 Contribution 3388 +3b40c5a04c004a96f9918f14c0548ab2 Contribution 3389 +35165a07ef2044cd047de1bc539988a1 Contribution 3390 +2e43769fdf5044d9cb00c183fb5f6580 Contribution 3391 +016d9b6e4bfe106168c87f02c55febfd Contribution 3392 +fcc7937c45597be9f871af540ff29956 Contribution 3393 +b6ab71f68d9e08ed98eef20f2dde2ada Contribution 3394 +b9655556e047366804291f80ac5eb43d Contribution 3395 +4084fb0331fabc7595a09459b8bae473 Contribution 3396 +69a2df689a5aeea6332efffe4f42f9c1 Contribution 3397 +84db7090de978ea08d10c1ac010f549f Contribution 3398 +7addb2b372b17e16c0652b6cd1a73014 Contribution 3399 +acf4d84b0d4ce70af35f71e6f0f2658f Contribution 3400 +0f84cb048229d7220fa6fea5b1071b8e Contribution 3401 +21c993a29b6cf14374e7885b0f428bb9 Contribution 3402 +f01928b9e1a464704ef1119a60e9078c Contribution 3403 +e67b7dcc50173ae85538b1ff62f00da3 Contribution 3404 +ac7ac2a6155fc01a60c82c7d1baf77d9 Contribution 3405 +6ac7f1bd5f98e06c6ac592bd6ccda748 Contribution 3406 +192c535670e559de73c72bafdd0eed69 Contribution 3407 +131c4848fa14cc3ce6776b349001f4b0 Contribution 3408 +70658a9a18bd09aa3f5f995a203fbbe1 Contribution 3409 +988a44dd898f43c7b749a75d17910f9a Contribution 3410 +14972b8053affe3168499ee7be4c3ad6 Contribution 3411 +8bd121d4bee11884e9c1da426569b527 Contribution 3412 +4244ae253f27746044b8db51fd1733fc Contribution 3413 +203b05852ee2909e1b901cd2f06fa677 Contribution 3414 +9a1c755779ec281a38d7ab1608eb0524 Contribution 3415 +cd757c69092530b09f7cbed5fd17fda3 Contribution 3416 +9a89b9d09a915b5775df11605341c3cd Contribution 3417 +5a1ff46a59e76598fb4f6245e3d29b7a Contribution 3418 +4f1f3d83c62c8d8474e49b8c73c7d042 Contribution 3419 +0f3403409ab4111f05162563918d90aa Contribution 3420 +f9e9529baaf68c745530f786f2171981 Contribution 3421 +6919f849eb359efa65e3c0c697e0c6ca Contribution 3422 +dd8096ac08b8786e778174bfd0bf6bcd Contribution 3423 +ed739ba351a7571e5fffe1a729b749b7 Contribution 3424 +cbe74163abf421b228d8061c8540af93 Contribution 3425 +f6430dbc1013b0b70bc2202b78285bac Contribution 3426 +5ec48e023cbbc57af4668ad59c3aed4e Contribution 3427 +569e2151dc0b8a9e109338491c69ffe2 Contribution 3428 +44d3f4f23ad81e7b4d43f83b3c1926f5 Contribution 3429 +13333d0231257db6dc7dfffcf7dc0cf1 Contribution 3430 +773de77fc6fb319f8e12c3856a664863 Contribution 3431 +bd0b196417c9b28d16b7fc2540a2a64b Contribution 3432 +2284f495b46e5574ea670b8112f3182c Contribution 3433 +38e7d674a8e1b3d566244faa19f7aae1 Contribution 3434 +a87bac203d471c01671a509384719ca6 Contribution 3435 +18842864e786909a536d0b0e069cf0ec Contribution 3436 +389964e41b1b0ced80f4da72b30e2f9d Contribution 3437 +7df8bef1340d9e2d8073310103d0a53e Contribution 3438 +1f75748bd3c5be1204494c43ad9fd608 Contribution 3439 +f242fbaa048446d062e9089786699152 Contribution 3440 +dc4c3064d43dc5c5c47716858d1e007e Contribution 3441 +a81cff6a098fb02e99d96978f6b928a2 Contribution 3442 +166e4e36eaee3b2f84bdc88a40cd0783 Contribution 3443 +4dc1b400f01f69d02a402118a72ea3c0 Contribution 3444 +e690a98d4b152ea2f912a668c97ab083 Contribution 3445 +8ee900ed33e633996ae14619c4400364 Contribution 3446 +097750d801a8c1bc520a2d1ea01a8487 Contribution 3447 +1e058193fc8c8a6b0c93f69025668e11 Contribution 3448 +a5c451420a32cd6265b3446d2dd44bca Contribution 3449 +8d214d22cb4c418efd6593547fd9fd87 Contribution 3450 +1882b9be6f6ae1aa88b6ac10d222dd40 Contribution 3451 +ed6d34fc58368ec62e9f6fc3371891b3 Contribution 3452 +08efff2e34b34b66635c93c427ce72c0 Contribution 3453 +68a7d4ecceb9fc2d22eec0a50500882a Contribution 3454 +c1a15240e68013b3f33eea6432170c16 Contribution 3455 +a111971a3310f4d0b47359a060af0984 Contribution 3456 +dcabdb1c70eac1257df1bc333c377e4a Contribution 3457 +bb19faca996108ee26841b8f2c3f2680 Contribution 3458 +82a279017809ee29b1ab0f98bd881d10 Contribution 3459 +49efafcd7ea052f6e40384ac7d579f36 Contribution 3460 +a9e11b1e7340bd4f66ea1b3064dffa1f Contribution 3461 +1be097788a3819ea8ef26ec14a2d1c92 Contribution 3462 +fb27ce2d553d732eeb8ae2b184a26f4f Contribution 3463 +dd2bd01c7f0290f0a888b8df27474c94 Contribution 3464 +08e91ee286001d146519ec636eeeb209 Contribution 3465 +81248b5a609d9cb72bfbb1c283eea2fa Contribution 3466 +9996b2726c9f31da2a32271f9db82622 Contribution 3467 +206dd66ec2be07fb2566f43fa840da53 Contribution 3468 +03bb7f3a6b98c86599bdb2cf2162b44a Contribution 3469 +73993f1c356c8762218ef4d929f7bd3e Contribution 3470 +b17182bd50b4cd4fa0c629312fb9c20f Contribution 3471 +b3cd23d1dc606d2a1b62aa64363ba24a Contribution 3472 +0e72e8aac0ad3ef769d43ead25c2481f Contribution 3473 +f800ef71b46e490928d32b9d04cc63d7 Contribution 3474 +eea567c9131fab96c94ae123bd51d6ac Contribution 3475 +54f7a5987c4eebef196df098842ebffb Contribution 3476 +f6157a05d39b8d7044c4c359c320549f Contribution 3477 +5a50c9671472e3df15e2ebcbcd7c4c69 Contribution 3478 +a2c946b7af17377e33972c0bfe469889 Contribution 3479 +66f9eff23f0ae137ef7e2642915ac987 Contribution 3480 +f0c4695861c7fed9a3affcad240abb80 Contribution 3481 +e2fea2fb2d8c4a543e9db2e07ea487d1 Contribution 3482 +b387339cb80a5e1ffa3d092da01ec4d4 Contribution 3483 +9957274cbfec8db53cf88d222abdd6a3 Contribution 3484 +02c11af49020f34abe0fd58e8bd56ab1 Contribution 3485 +97770401a73851fe310acad44d823843 Contribution 3486 +1d06d19db777918a05530ad3ad23c4ce Contribution 3487 +82f5f391150e24b1cd199688ea9a0f23 Contribution 3488 +ad93c867fa1d7efb6c1d317db09da2ad Contribution 3489 +bf213e51b0c3a74dc2e060814e9f64e6 Contribution 3490 +b26ccc6764ded3f0a8e3d46a889000f4 Contribution 3491 +c675d84e533e4a5d2ef651eeab5496f0 Contribution 3492 +1a6e91b784129e16c5d4d42d9469d333 Contribution 3493 +40f4e53d0757971cba579ccfc2388c5f Contribution 3494 +af8a9cf3c9cc5ce87049f1c63316a6d3 Contribution 3495 +043da59b31dc45e67173b8bbb0788db9 Contribution 3496 +dd584c1f9240ae0728be85f6a7e645f9 Contribution 3497 +5f5644ea449ff86c60f1a18bcc1e8295 Contribution 3498 +40b0679f0e3cd2d72eefee655d8b50c6 Contribution 3499 +1bfce1a15a7946002828257b848e32fb Contribution 3500 +d0d48eb92abc28010c5133a1e8a81815 Contribution 3501 +8e3c93cd286be99117e5a0a94da165b2 Contribution 3502 +6e97e11f08728205b428a7b1a8621575 Contribution 3503 +2ed726a7f04bd795fbb3fc14536133cc Contribution 3504 +96873965767cd215a28e2ed198a264b1 Contribution 3505 +54a973c164cf2184710d1944231d2f9d Contribution 3506 +f2beb59749d8862b5b390867b30ba060 Contribution 3507 +8f81fe2113f215f95ada8962a39feaea Contribution 3508 +850024fe3b73a4d8f33ab62344e48676 Contribution 3509 +c8270b6426a995df6c723d70f9497906 Contribution 3510 +1ab703804d69c330aa32b269c380ab2b Contribution 3511 +c0588976b71d76733f65646182cd05fd Contribution 3512 +6d4911cace89995df328d86ff8234343 Contribution 3513 +73785640f30c26e63851fc9deff02082 Contribution 3514 +9ea9de8a4fb29f93fb37dac701d46991 Contribution 3515 +2387f41762d32b9b731911dae3f0487d Contribution 3516 +43ed6f618439a73b454aed8f39f55876 Contribution 3517 +4e92c3581a5ec01c088982060809d447 Contribution 3518 +e5ec3b777f1348964ce6c5aad16c4ef4 Contribution 3519 +5f20b66d75bc19fbc838e209c7ab1aee Contribution 3520 +d0098ca1c078bbf3585b755535601e45 Contribution 3521 +5c752ddf8fa63554657df03806be51ca Contribution 3522 +292ab59b9ce1b9afa4764361353f2003 Contribution 3523 +02c556f994c4f501543e3476ef0c2fc6 Contribution 3524 +a8f68e8ef950922de408c6d4968a7a8d Contribution 3525 +d23f31cb93eac70195f1fe4daf3b6c27 Contribution 3526 +157d9ba94d0ebae494c8a3ab0a7d8658 Contribution 3527 +41c3728f139421cb75af0ac204aae6b0 Contribution 3528 +5ba6873e27a5bd99d352ceac9fa8a9a3 Contribution 3529 +c35a983d8c4ea3d6a0ffb484bf5f527b Contribution 3530 +720a50800d0cb59b5530ee3636c0933b Contribution 3531 +5e1c9c2b06e984a720e4e73e103a69a9 Contribution 3532 +769fc61b721ebcb16d999713caa04cba Contribution 3533 +5ae356bdcc5f5ce54f73c7a8044296bc Contribution 3534 +ed91e3789dfde441217eb35c5c162fdc Contribution 3535 +8673910ff70e3e1ebeb1c5f14bb10e9c Contribution 3536 +c66adbdf61607fd71cd6431e90b64ff4 Contribution 3537 +47d02978c56f9cf3f0c220290c3d4d71 Contribution 3538 +774a3408bdf4feb50341995cdc8638f6 Contribution 3539 +d4ca177075e7d6616021b002f4bc7f5c Contribution 3540 +7d988aef4bf1948cad38f14671637775 Contribution 3541 +24360aaa2157e333ae0bc88762ee032d Contribution 3542 +72958bd82903bfbb33cea4b6fd3294b4 Contribution 3543 +aff71e96ed116721667d945d34d3724a Contribution 3544 +e407c455cbf6689b983f8b87cec99d2b Contribution 3545 +b029fad82aa9491a0f0af4d1aea369b8 Contribution 3546 +1350a24afe0714ea61fb89f33bfe1904 Contribution 3547 +53c9debb7822acdab96a84525e80c4f4 Contribution 3548 +d61cb17e18f2d48fa8a4e4c3bccaa836 Contribution 3549 +24b12724137f391a30400c4a40493dff Contribution 3550 +9b70b89d02301257b2c48fe451d3dadf Contribution 3551 +87e441a77d442c428674b73b1ffe005d Contribution 3552 +7bab869af5b9b6807d222ffe180e9b26 Contribution 3553 +821d39b31b92cd4d1c1cd1296c7de02f Contribution 3554 +e929c8a64b13f4a1906aaf7e775e6313 Contribution 3555 +f69ce91dc9cf938e401eed00114edae6 Contribution 3556 +65249aad0b1b473ae06022640b238948 Contribution 3557 +fbf21bed3a12b6db6f89ea2a458adc9e Contribution 3558 +7fbff60f22ed07c6ed75fece9577b48f Contribution 3559 +87952a9d6c0abed62cbaa6351a4073f4 Contribution 3560 +88e823cad74ae58de2e9dd17e29dfe78 Contribution 3561 +2cf498bd7d59ffd5d424bceacb614cc7 Contribution 3562 +85f58758adb2a080a3c4f8d5fa03b0db Contribution 3563 +81ef11b37a8884d4933368f1a4e04469 Contribution 3564 +2f2aa99926cf51037aa394d17941ff54 Contribution 3565 +0375177c6c5ee7589c4469d355286e38 Contribution 3566 +93facf4512602733e3c416ca68e4f692 Contribution 3567 +c65bfb1597251763ff8f76a2dd44bc51 Contribution 3568 +ed90bddd246172d22d043ebaacf0a987 Contribution 3569 +0be2c61ac8b208d7244ed28248ce1a26 Contribution 3570 +e6cd681d55e3e292c702c6e3cc357c27 Contribution 3571 +4bf257dfea286d3345e2161d0ebbc0b1 Contribution 3572 +97798f2fc012008645c9a2307740064f Contribution 3573 +ef6282df6869d7c24c69b8d4374759d4 Contribution 3574 +bc9a9ba9cf3a46eb043c4d29755ea8dc Contribution 3575 +75c95bdde4c6e861920fffa6deafc9a2 Contribution 3576 +179ceae243ff9aca03f291fc595d3aa7 Contribution 3577 +4ae3684fc9b801bdca606f1c1e17848f Contribution 3578 +0bdb40df2d38ee9f990eb522934e4eda Contribution 3579 +2c676797d80cc3bb6a7a1407d110359b Contribution 3580 +1228ecb568c78067d4b06b64ad419bed Contribution 3581 +507bd141e43e80c4634b8aa59c37cb59 Contribution 3582 +ee03d40786e5719570e1cabcdff67e9b Contribution 3583 +1b64e909203da19b1df7c2f49f0fdd7f Contribution 3584 +c9028b772d480a44b97d84996356018c Contribution 3585 +7a6bd29693707402bc45c3aedc52f411 Contribution 3586 +50c92b3de2e4d8be3705071ec2f63962 Contribution 3587 +cc14dfd1b8536f120a4affcb107fd7c9 Contribution 3588 +2a21b201b318e7bdd9427dd55f887411 Contribution 3589 +e418e5d1a58e40503fbf2f6c080af6e5 Contribution 3590 +005c8993228fa38d6831c73a50c1345d Contribution 3591 +0383e37f1915e1adbcb688166afdcea5 Contribution 3592 +b6139efcefbfd120d0dffeb61f32260f Contribution 3593 +ec5e4a75e2023e39a512dc9d40265ae2 Contribution 3594 +e3818489ce9f1b97bc47d51cda678691 Contribution 3595 +6e66b7b2f8a658be5cdd6b3f66f0845a Contribution 3596 +807100883a4d5433eb5b6bfdca87e284 Contribution 3597 +9916a4527bd8307119fb656c53fec004 Contribution 3598 +1c66e88da7dfc1d9f181f1a05de614ef Contribution 3599 +c73112dc5b6012d7c13d8b67d1382eaf Contribution 3600 +d3ae65b01c9b7e2c578ff681eae4c89d Contribution 3601 +f5a2dc7d3b14be5dc32d6da9022c2b15 Contribution 3602 +de24a287f75cbeca8c4f66ee64e306d4 Contribution 3603 +bd8f8d99a3d701238a39e340ed011afa Contribution 3604 +7ef9d7e645e93d8d25f5a2bb4d40aa77 Contribution 3605 +02d1d85b0ed19ae02e78ad10617f18a8 Contribution 3606 +a0e7f6391f51b952416cad6aa0f7f386 Contribution 3607 +6e9735609e3e66cf1eaa10dd0771c9ab Contribution 3608 +cf1818d49a5a7e3cb00f408ca32b0dea Contribution 3609 +a0b458c4713306bbcc54fd9175ecb86d Contribution 3610 +9478370e2a7e30504b059ac8ff03109e Contribution 3611 +ee68f5aef5cf06ca4394294ff4f37885 Contribution 3612 +bfac7fd6ebee62ad9ee28de7384540ef Contribution 3613 +e3b5b54b4b73220a3378fcd17339c70f Contribution 3614 +c5725e479a833dcd7bbbc3a904ab195f Contribution 3615 +19803ff85a5dde26674d3f4f2d8b3818 Contribution 3616 +7c6b73999511311a580a185e5e301e67 Contribution 3617 +6fe8c449133b792d4d18ec189d85a05e Contribution 3618 +d561f57675b955863b88d9deed5e05e7 Contribution 3619 +a560241d5f36c8e476e6db7df7ead33a Contribution 3620 +a129de9bcce651dbcefb3760d1578286 Contribution 3621 +799ffed97bfd34ef8c9d6996406317c8 Contribution 3622 +cccc07002c10e8ed22fabd9b8fb8911f Contribution 3623 +60a844b9ff22089955977c97e534a294 Contribution 3624 +68cbc95d3f4742a1f55fb13df002af1c Contribution 3625 +78c82ce398e194b5712416662b0c8f73 Contribution 3626 +1d3de5a32590659e77282bf59f6e2aa5 Contribution 3627 +4a1d36200d25efbd86b23c449ac0ac0f Contribution 3628 +9ad6ad31bc8b9f0a02c3510b2ec6c972 Contribution 3629 +9d50026cbaf1cda426b86f64a7060c7b Contribution 3630 +e7985403a69194f812f653e01f665c28 Contribution 3631 +7bede80e9baf02189ba0a0037d43b13b Contribution 3632 +f42d91674ee72ced2f1c4958c5a71e6d Contribution 3633 +aef464103fc769185593c579e187283e Contribution 3634 +65e6d9f9886086c33fc828d14bb5f6bc Contribution 3635 +1855dae7db9a7cd965ef8e4dc89c556b Contribution 3636 +70980ca7d7d7ddb0b16ee2be855e0aab Contribution 3637 +69d5425eee8ee834a439b8b533fcd45b Contribution 3638 +91819b51cde7745237ad9ef70e4af26c Contribution 3639 +dd009b984d784dff2d6a5a8d41deef80 Contribution 3640 +e8c3133ab80f7daee3c5e07557c0db02 Contribution 3641 +f58c9605a6597b7bb0992c0948736148 Contribution 3642 +f4ebb28912ce5dd5ff9d901164155040 Contribution 3643 +9446f460c089fa315e01870de83a52dc Contribution 3644 +d739e5c1e5aec05947950f483b4021ad Contribution 3645 +e12461cdab9a9e0f013aac26a7d2f056 Contribution 3646 +902f10b78ea2d02aea1c8fdfc97baf99 Contribution 3647 +da00954107b221d96e1e6d5f9ee7246c Contribution 3648 +b9534c276660197f5979e5b3376cf407 Contribution 3649 +7ccdd6cf60e39cbaac0dae1ca1c395c4 Contribution 3650 +b3bd23ab2eaec82c8981c4a81abe62f4 Contribution 3651 +5fae9a8f1f95ad609ed211a755c9507c Contribution 3652 +c79795954ecf8c6dab4f36e895000132 Contribution 3653 +6a9d64a8ac5aa55d84b8f7eb988ee3ba Contribution 3654 +332098d17d9732d74827c350ed9a824e Contribution 3655 +ca50860fbea59848ee08f6102fbe7c3a Contribution 3656 +82387342cd1bfa25f22676b7f1c84edb Contribution 3657 +8403f043621b5584f24e9490e8c600f9 Contribution 3658 +854aa4a92a4a1ff845f7ae46450cf942 Contribution 3659 +ddf94eab7d4de9183a3884e81cc766d8 Contribution 3660 +a78355af07393eccb08654dbe11ced6f Contribution 3661 +9a9fef602b686177c6f9e79063c5cee2 Contribution 3662 +6c9f5c27084fbcd809d10a9ebbc41c24 Contribution 3663 +dccbf0c41ae7dc37599b824d09a214a4 Contribution 3664 +406a83db3762586b4ec62e0af57c793c Contribution 3665 +dca845bcf29b21d0f74dd02773544e84 Contribution 3666 +a947d3b0346a66c0581d707f1cd4256a Contribution 3667 +064f9c149acc9fb83b1e798c1e2f1ebd Contribution 3668 +8a39173d284370b8f948f437acb11b37 Contribution 3669 +50e1175a187ea511624a7e1bd6a67b82 Contribution 3670 +1e7ad8d35aa86e578f016df8f267f329 Contribution 3671 +566c92e046645e5dca2f9428c9a66bb0 Contribution 3672 +8486e462f9bc10957fa9dfc21653b73e Contribution 3673 +0efc715e46758baaee56f1691d63f7ad Contribution 3674 +85900aa118418b305937b99c2fe49634 Contribution 3675 +bb5051bcd22db3a309be4f0f8cd0728d Contribution 3676 +22cad0c63aa3df6a3597319caf647eef Contribution 3677 +9c04918745a95c41f8a83b4dd120fcb9 Contribution 3678 +bfb96daa6777b4aad8bb14d6b4d1bba3 Contribution 3679 +4bf64298cdf934df23665c001b20b008 Contribution 3680 +dd81a5bcc304f81bc83848b8a704c746 Contribution 3681 +96a057897fd0fffe2eb1a56940b4bfb0 Contribution 3682 +fcba7dc52231d5c5f9aab819477b5ba1 Contribution 3683 +b09d3e4b19d4ad89c08546cb6f185a69 Contribution 3684 +cf96b4d02e4343ed305e7ecfee9e3fe5 Contribution 3685 +4ac0f4e92e6cdff8661d31c1818db921 Contribution 3686 +6bfff4c129c1808f756a6678b146b9ac Contribution 3687 +510ebe864a3a07ac0cd72ddd5a8c18f1 Contribution 3688 +c15d32fa0a87cf038aefde20142a681f Contribution 3689 +4fe575906947533da7c30f59beb60e7d Contribution 3690 +dc6e7d6cf8583a225de65d84798960c5 Contribution 3691 +0fde079dd398a44a789313d8463cb3be Contribution 3692 +901591a7c0eaacb787905cf2e234bf91 Contribution 3693 +bd6ac65a3c981b4c73e92ca19e7f166e Contribution 3694 +9c989ba95af20cbe6a835f42f7335fac Contribution 3695 +8a89abd4a7f1dbe5b8f66e2e95bde1c3 Contribution 3696 +0250129d8f57c77fe86a10179c24c744 Contribution 3697 +dcb89363b399160fc54f222b7625b0d8 Contribution 3698 +3625ef79f50fc3263c5bcca33b58d68d Contribution 3699 +dbd56bfbdc5317317bd8f915ca6de263 Contribution 3700 +fd551ece2061696bb8e3078e59fb379d Contribution 3701 +c89772102becf8f6e4290ab8b36d1cc1 Contribution 3702 +84f55ebb7314e9538c3e22015f9175f3 Contribution 3703 +4f8d917167bb6940ee5a6d48c9566955 Contribution 3704 +78376e015a687574d755036e9c0a8fec Contribution 3705 +4962725ff93d0eb9d0790ba159163c69 Contribution 3706 +97cd860b9e4ba21d0a94215a8d705115 Contribution 3707 +570d09b653a747cb5e75018956c7bad7 Contribution 3708 +c0e326be25327c483b718e502bd5c12f Contribution 3709 +4cefebce1e8f8159eac462868e7729b9 Contribution 3710 +f43c0363bb0ffbebdccbd4a5888701fa Contribution 3711 +283554a4e3cfd22d2c99af3e98ee64f5 Contribution 3712 +e0a52a64369871b81b94116aef9a9dbf Contribution 3713 +11bb02c80f24abb8a3d8e14eea44f7b0 Contribution 3714 +a7b22efbf16bea935c1c573077d5b375 Contribution 3715 +9d825aa4f0393dc3fcb830f9c9d9d356 Contribution 3716 +cbcc8f30e60f32fee7f44b4e20dd8067 Contribution 3717 +ca607d829c5a41aa50cc25b4580539ae Contribution 3718 +c286f348b80e8533865d0f5ca0248756 Contribution 3719 +03dfa3941663134c222a14657d33920d Contribution 3720 +ae8e44461007731a6caa57ec84582537 Contribution 3721 +7d68cd2ec9467b7fee42c3b67ae513da Contribution 3722 +7cf6ad63929759147a0da4a6e9327938 Contribution 3723 +9644a6c5459e010473ac4a56a21c2dac Contribution 3724 +9fb9ec942eafd2d37dcfa1c049791f7b Contribution 3725 +97b5c566800ed5d4945cccb3b0fb4e8b Contribution 3726 +fe5f3f095204317efa7c9baa8cb45f92 Contribution 3727 +b1c083053be45d499de7d6d3fa27439f Contribution 3728 +746940f7b698e03c741b2a1ae713d98b Contribution 3729 +f23986e8ef30fece648e1d61dc3326d8 Contribution 3730 +62933bd3c749aff8d3cb8078f8282051 Contribution 3731 +a4054215581ee97d732ef72845daa25a Contribution 3732 +f298e7a2045c79d2498b874a05a04900 Contribution 3733 +85d359d683f55f4791c355b32f5f522e Contribution 3734 +6543bbb8a5542a12d911f155c8ad30db Contribution 3735 +85f855fe6c92cab05e69827b76afc4c6 Contribution 3736 +85552fed808d43be631edb0cbe02fd88 Contribution 3737 +e6fa6e8759faaf371e46be606bdb5af1 Contribution 3738 +93f2550c6ac5983d5d7e8f4127b909a0 Contribution 3739 +c3c91a2f21bc935ed01715e50db8eb7c Contribution 3740 +0b2e2534d6a9b04945aa7eff04baa566 Contribution 3741 +a5e91813ad2ffac7f2f0d58f2cc7b6bd Contribution 3742 +223fa230fb0125e26365c2bdb3233b3b Contribution 3743 +8d4abc981917fd1ebaf7849ff8de716d Contribution 3744 +b96eba2fe88f0ed882d8627902dfc5c8 Contribution 3745 +32314291f425f8f2fd565d08ae47db96 Contribution 3746 +6e6bcd6508acd49d70228341a2e11db3 Contribution 3747 +a1d520cec8c5df07abe8d291cb4cd77d Contribution 3748 +93a876a97d36dedce908c89eb3bb7ca0 Contribution 3749 +1a25d7b7f50cb00b27377fdb8b856e91 Contribution 3750 +6e21b0b9e3bde51a5243b6c806c9b7aa Contribution 3751 +ad279de9195c034ce5f323ebb4d1ec40 Contribution 3752 +34329b9162f85257e619b0e841c352b0 Contribution 3753 +b2e12ecd9cf5250a8c7dbd7dc60de8eb Contribution 3754 +6a83197bcbbe8cc15ee827ad14db6cf0 Contribution 3755 +dbf7272702a1d535fc425c3482b3ec24 Contribution 3756 +a2d3b7754accf3cd21502882547aef60 Contribution 3757 +8c337d2c293b452182eb90b7810c3692 Contribution 3758 +6415d074758edeadcc46c9c17cf10927 Contribution 3759 +823e43d6c96a1fbe04b3876e06f9733b Contribution 3760 +95198d029419561150ba56eeaac6d94c Contribution 3761 +e6000c79901352717f317bf5449046aa Contribution 3762 +37c25e84db01390b7f7f07febbe68d3a Contribution 3763 +de89b9808f6bbf54e242fbc36c862ad0 Contribution 3764 +a7578866955eb7b6eea4af0340a1760e Contribution 3765 +21227ec9b1696d5f537752be8487c9b6 Contribution 3766 +56eead65e3bdd52ce4eb46246466419f Contribution 3767 +35e12de27fb3089c19f16a390610115b Contribution 3768 +7c4b1fd280e48e5ad816f3aa9fda764c Contribution 3769 +a742b487cb99771ab7757b4a18c04012 Contribution 3770 +f1a7c5573091e5cee2a1e9f2fd698649 Contribution 3771 +531954298ded7db9c144dfeffb6d1550 Contribution 3772 +6f868ebf8a6e7de4ef71c165d305f602 Contribution 3773 +eec43b6bd5aa757cb442918bafa41b6b Contribution 3774 +afdb6d8c8f2fb2ab19b2eacb7616727b Contribution 3775 +f2ae37f71b9cbb737ba06a41450b3085 Contribution 3776 +9fbe0d6d0996cca1ab228120b151d651 Contribution 3777 +f415097760853239226f6b8e9d6782fa Contribution 3778 +7aa059656867588c017c960e1cf2c5eb Contribution 3779 +acadfebbcb78c3119bedac5cd9feb9b0 Contribution 3780 +6ec0f72b8480584e557eefeb3a824de3 Contribution 3781 +57ca3c98211bbb716d61e6899a63770e Contribution 3782 +224ce97fb36b673c1ce38e5ae6d0c9ba Contribution 3783 +e819efdda5d6e29e9d23866b2082ca9f Contribution 3784 +dc220645de619f7bdae2a299e9cbf334 Contribution 3785 +be62ec49dfbe6bdc94aeab800f3c1fc4 Contribution 3786 +144cc2ae70052ec371deed45fa8c1497 Contribution 3787 +af9df7333fbab510061218b3f336e30f Contribution 3788 +14236f06fe87fa15e80b56594440bb76 Contribution 3789 +bc24fee6e4f09fc12cdf956c24919f9e Contribution 3790 +6ec556d09c2b6685cc072dfedfab0cd7 Contribution 3791 +c17f87dc35aa4dd5d90806e89b55f13b Contribution 3792 +94f6485bb30b9beb48ee9e5b2106811d Contribution 3793 +9d42277a5387cc8c779a694b38d9d80a Contribution 3794 +7b8c66ad6e0c47b883b114bd30ac907b Contribution 3795 +d263ad2140c6eb6824b79586859cb0e3 Contribution 3796 +5fc1dbcdcce2b0e0b32f0e001af73ade Contribution 3797 +7f2812bf27b5fe0a147210d583423365 Contribution 3798 +381d1ca09ff8d88f8e57bb545c518920 Contribution 3799 +5c7480637e3e18593e8dd8e9fbd8d435 Contribution 3800 +5dc017799a91a229e3dc4b8db15ae868 Contribution 3801 +8d3b4a64c3af290d1c10eaa9e864dfa7 Contribution 3802 +acc22d5076b365d13bf1768aa808a241 Contribution 3803 +7c6dee17abbcf6ecdc1e7ed7b7ef4308 Contribution 3804 +351037c1478cac631f067a5971f09bf6 Contribution 3805 +a53582817a10f3a1cb8ba21e694bc183 Contribution 3806 +9a5061caefe39ff385a2039babf1786b Contribution 3807 +91aa1773ce81dfed14c7e3b0d092bec5 Contribution 3808 +89328d69fab1be8e0605fa7e2a8e26db Contribution 3809 +fc42d3add25cdb5405fd7d17497f097a Contribution 3810 +545157569d4517ea4b92c7d959e7af8d Contribution 3811 +27c5a7cf4382500c25ab18f488a92784 Contribution 3812 +7ddd2791d33e2aea54b37ca097e8e7f1 Contribution 3813 +0ac79ba8cc9c30df3d1b995c2633fae1 Contribution 3814 +ac4bcd41f15f5e093ce968bbc225275b Contribution 3815 +9fb87537e2c0052357f09153a3739661 Contribution 3816 +bc78605a4baf10000ce69bd7c278fad0 Contribution 3817 +8fbb221eb7238be41305d0d505a2bf80 Contribution 3818 +c6a8e97bd368b39ff0fd97f5cfc04220 Contribution 3819 +ff07f7d76fb457b4bf95ee9b6bb9928a Contribution 3820 +17270ba4ad7dc3627199426533d7cf91 Contribution 3821 +938d4585b2f5e0fbb241bc1bbb6e41e9 Contribution 3822 +50946ed8aa07abfb38a606a1f92e11b9 Contribution 3823 +d646fdde288e411a257b72b1e761f738 Contribution 3824 +29051409a573caa3eee73675cd262253 Contribution 3825 +c4724adcff17cce91597eb99c6ecf2ee Contribution 3826 +c737f7e09cfe66ee052cbd84120784f0 Contribution 3827 +b0fe7bcca594e2ddf6806ed1b4efc151 Contribution 3828 +ea053a7bcd7b66ac480947a6f8abd8dc Contribution 3829 +123166cf241530a301c2a63fd8e3c939 Contribution 3830 +458cefdca29ae91309b7b7d34bb3c0b6 Contribution 3831 +6c5a3035276b9650eb96296d49d5e44e Contribution 3832 +3510ab9bc4c2b1bb1bc5571e667ec2e2 Contribution 3833 +ae920adcc97b9424d6609adad404a711 Contribution 3834 +3167a483bffaae057ff92e459a2654fd Contribution 3835 +3ac8a6ecf2bb8989fd2d9ed16097c5f0 Contribution 3836 +31bf6a8b512188965086ebe7309bda48 Contribution 3837 +f1e59d7378c66539bf5f43757e5419c0 Contribution 3838 +570b7799d57afe34b34607b34084c0db Contribution 3839 +5a1dadd158dbc68a47dd149b2b4b80e6 Contribution 3840 +413c492bfadb90e38dcdcfec69bb0247 Contribution 3841 +afa3e6fc77a6654d2387236840afd285 Contribution 3842 +00d2bb217e369e5a04a07604bae19159 Contribution 3843 +62ae26ca21d9944d41654ce8071a8fcf Contribution 3844 +e31fb619b1ba92309eb488c51c1769df Contribution 3845 +24b0fb5e0d8db28af8564343e3bf4aa4 Contribution 3846 +1536e896a34831e21922c9323f728d1f Contribution 3847 +c238f8c7876c11a894449f8e8af90194 Contribution 3848 +7ee6fb303727500329708a0eb86c6454 Contribution 3849 +7dc151a9ffa30fc391bbbc892d2801c7 Contribution 3850 +4e6df8fe2e9a2fde5830577742b48311 Contribution 3851 +f4e92f7587412cf41bb3f74ee14a56d3 Contribution 3852 +7bb419ee8b9cf41aa35da50ba84d5279 Contribution 3853 +475950a212b2cb230287404718b18b34 Contribution 3854 +fd7b75e33d036798ab4e1b06caa0ed9d Contribution 3855 +64f32007b5fba4291fb8df6cee38babd Contribution 3856 +c642f4e6f5c80bf74b035e74930dffc6 Contribution 3857 +bae747746ca240bc797870ddfd26e517 Contribution 3858 +b3d940bb68830a77255abf1fd25a7dbc Contribution 3859 +0073ebeb443c26b7fe6f30ec07213fce Contribution 3860 +f892dbea099fa3aab77197bf3cd1357e Contribution 3861 +de0f0177405b767d025b5355574b38ee Contribution 3862 +8716d71e13bfe4f32a9cd81544d37e79 Contribution 3863 +e52dc7803b51e53bcbe7ec42ac6c5722 Contribution 3864 +bd06ef02edb25cf0625091b16612c5e4 Contribution 3865 +0b28b147e7c9e8ce1440961ced4447b7 Contribution 3866 +9c29fa1aa0ba72748d3d2714cdfe40cb Contribution 3867 +5fa89c29f0cb89fd2b64a1fb80bae4db Contribution 3868 +fae133b419eecb6d94f20c5f6ac5255c Contribution 3869 +318952529c220191b2d4cbce305040cc Contribution 3870 +fb9c06cc7a08b32abdbbd19220177b72 Contribution 3871 +3fbdb9e6ed0a5ac22968badb95e831fb Contribution 3872 +0f60555f5ab4b7788ba64f9fbc1aeaa6 Contribution 3873 +db8a580964cb845479d1ea6ea691d2c1 Contribution 3874 +862f2775d881d4990279fc58e472f035 Contribution 3875 +535c123f9e61c080886fc1891c11285a Contribution 3876 +5194cc85c068179bdeed1dab8e034df6 Contribution 3877 +d725f533df674978d371d47b08e99803 Contribution 3878 +d7fe1bb940b2776cabd93b5aab09b86d Contribution 3879 +5274388752099a4643858595dbbafcb1 Contribution 3880 +d3824584680464d778c11e8670126cd6 Contribution 3881 +f2ae3ccf11a7a4477485b0e515ec515a Contribution 3882 +e6019a5d25b6970e00ef2c8a8e636d39 Contribution 3883 +2e652c1c97c500607d00d3f26c1aab2c Contribution 3884 +ab587b2b84996813b479873382f33bbb Contribution 3885 +3d79aacbb7683048beec743bd3b3fc6d Contribution 3886 +5e79700c18d6cc20a3e0b6c51b1411b3 Contribution 3887 +af05777ca2f3bf5c6b09bfcb25b0cc88 Contribution 3888 +5157742cfd6a8687acc93c8c3e49e8e9 Contribution 3889 +baeb11d0c4acc1ed6f584284dc18441f Contribution 3890 +ba9144e1a5aaa2799ae7d845fc204395 Contribution 3891 +ce5fdd898fb14f4bc69d258d0cb851c8 Contribution 3892 +03b5f9c6c62562a5794c2d505864f491 Contribution 3893 +241783841be2861b4a813c38605aa906 Contribution 3894 +99aad1aec65c177eaee999d24cfae4de Contribution 3895 +fea4fcbadb5c3a586fc0184e621f6396 Contribution 3896 +8f75345b14db532451163a71bf02ba9b Contribution 3897 +dc26cf1bb1ce890e44bc69a06dce0619 Contribution 3898 +572c342c29db9e05ae6cc3e5a4059703 Contribution 3899 +0b54ba1da2989c5978e2c72736138a3d Contribution 3900 +7803bace9560a44958c946d86ae33461 Contribution 3901 +d6ba0748c1393f88bca1f22e45adff6a Contribution 3902 +a226fc0e6d6652d1f34d13340dae3ace Contribution 3903 +58173a530128584279655b7a9902b9d3 Contribution 3904 +88e1fc1589e2c644830983dad4bc18cd Contribution 3905 +b6170026aa33176141c1df14156aa2fa Contribution 3906 +a9e57c8199b1356fa86d5e9ea2beb08b Contribution 3907 +a714cf21cfe5873daa2b6550bbd75d3b Contribution 3908 +f81a40ed57faed23a2638d518a4292a5 Contribution 3909 +bace7df0f5ed5193db2d619e860d49d9 Contribution 3910 +3e877e5fecc46f96969c51aa86514a08 Contribution 3911 +f6a0c3245acd3629c063a25d00481049 Contribution 3912 +4570d31cc6a935ca7d0f9e75caae6f13 Contribution 3913 +742888580787852740e86e7d36b4d46b Contribution 3914 +cad3cffb3f379499b6b85883ddfe9a2a Contribution 3915 +f499013af9a08ffa0a6eae51dfc27281 Contribution 3916 +58c81c1db9d0b1d8adf935e62f037297 Contribution 3917 +05fb74a983f56b709847e284c92807a2 Contribution 3918 +9dd050c056b5150945165ea641905466 Contribution 3919 +f75604afefc893d96c7f1760a15a1b80 Contribution 3920 +87f4f6ab5d3ac5b7996b6b86911ee9c2 Contribution 3921 +a9834a7ac255f267e141b443a008d2e1 Contribution 3922 +fe286adf269ea66421a58e5d841eb9c2 Contribution 3923 +85de4735249981d0171e6000339947d0 Contribution 3924 +fa6c949d4730a13fb04bf275fd2c2301 Contribution 3925 +f558e2a1e059d321d71eb1cd931b5629 Contribution 3926 +4df78f192d31207be266dcc3cbf00516 Contribution 3927 +0896199cb2fef8f0fecae996e5ab813f Contribution 3928 +431984a7831f8fe193bc5d4f6589cc44 Contribution 3929 +ba29604ad235b5cd402cd4536f72476f Contribution 3930 +db040e28ac233f4339382d690ce56011 Contribution 3931 +2997775193af64da66f2bd4c66fa7f6c Contribution 3932 +4857b2b06d36cf1292e6fbdcbda9a5d6 Contribution 3933 +a1687abc21eb4cc6301b831dfd4d6125 Contribution 3934 +38c84cd2644f11ec3c47fab8506443f6 Contribution 3935 +959fbe515ed23e95006551cdfad7d665 Contribution 3936 +a8f5896ae5488acf11a9d00d379b630b Contribution 3937 +90c33518bdecf28ce46b7dd4f569c262 Contribution 3938 +6bad9563f44201ad58f11916ac1195b5 Contribution 3939 +db42d45af8a754b56628c5df0ab1c04c Contribution 3940 +c9dcdb91ecac7e9f020992a0669863ed Contribution 3941 +3422ad7ca6f189b64a81eed16dc7ae59 Contribution 3942 +90868fa6835d7bae1b0b30e856834d37 Contribution 3943 +fa1f14106366d0e84c7e2fed8a7c60e3 Contribution 3944 +fa146b6246e065497f639dda26808d7c Contribution 3945 +30bb1c8d17d846c258b306579693b000 Contribution 3946 +c0531d5e9647c2b8cf02f77c4b23fdb5 Contribution 3947 +ae30f4e2dd400fe3c98389e019dcacf1 Contribution 3948 +5c6a764040d7a99bb81b968f0b84acaa Contribution 3949 +8f192a382034d635b6630aedf0dc1d17 Contribution 3950 +5fae0a93e591acfe9d19776670d77b5d Contribution 3951 +9d2db27d913440c92acbd650c57b0492 Contribution 3952 +9b66a3aa452ce8f8524569a55702e387 Contribution 3953 +bc66c04b20d27929edf09872a0e5d3ca Contribution 3954 +40895ac1b87f9bb0ddd6f23b13906a89 Contribution 3955 +24781460a93c430c2f7af35023a2acd9 Contribution 3956 +c4fd5d39af94d34b96fa1db484068459 Contribution 3957 +89be1c23c6ae7e6bd37546491c586239 Contribution 3958 +232a7ffc6c5b1aef189bc05aa9041c63 Contribution 3959 +87ba152b300c7c0c90c41b518c2ece6c Contribution 3960 +2c77d21a4caceea5fe728a03ecf7fdc5 Contribution 3961 +71f168e52fcce76eace647ca36fd0f20 Contribution 3962 +feee072e093294909e11d2e884785346 Contribution 3963 +27cfb6cd5b2238c0d432bc2f6564c244 Contribution 3964 +95819d47f62d837fea905d63aff8e13f Contribution 3965 +43d316460868ba0a94ddab8c2ab015c6 Contribution 3966 +8025e08c791e3f9b1ac1ea0a0245be1a Contribution 3967 +52098c5d104a94626e38b550e02c8e26 Contribution 3968 +9799c4d66823190719dacd8c862d4041 Contribution 3969 +1651a255d7c54fe9f6ff4021ee4f2c5d Contribution 3970 +9b4c2262d7dbdfeb704e2145b4cb035b Contribution 3971 +94ef9dea33842497a536c65ce9162ab3 Contribution 3972 +0b99e20bb802218c569a88ebbe2f3c58 Contribution 3973 +a334ae458a0df23794bf011b35d181d1 Contribution 3974 +902e3ca129c23a9ca463bfeecbbc4359 Contribution 3975 +5df197774f17b3794ead026c55562b70 Contribution 3976 +508d2b4d6669cc6da117064b9535e674 Contribution 3977 +782d91fa2117beef2dafd6645349a386 Contribution 3978 +3b893a83aba9f4bf8155b2c04549749a Contribution 3979 +bc8db37937901a0158392447bbba0cc7 Contribution 3980 +db660b446a5a62425a2f6f89c6300137 Contribution 3981 +41356ef8e0ee3ac019beeac03e7f18f9 Contribution 3982 +d45c916343f09919e66eb071f0efc9fc Contribution 3983 +3844c82f0afcd078dbc13506fb142cea Contribution 3984 +1195f9283762d5556da0680a42f1b6f9 Contribution 3985 +d5121dc1c7ded18ee9a119531bd44b26 Contribution 3986 +ba707ad8b53f60d8ec1b9e346a9f28e8 Contribution 3987 +988afd71a9fea6f036790465b4d249fc Contribution 3988 +e1a945eb300e99560bf48e0ddc2e13f9 Contribution 3989 +7f7746edbb5fbb1e8e633b074be303b7 Contribution 3990 +ba691ea682ec1007cf745b47afbe12ba Contribution 3991 +5a298c602399f20572d3f98967af0d63 Contribution 3992 +97e739cd0a9255335a54bc0642849310 Contribution 3993 +83101d1ff7fea0c934334ed3d6bbda7f Contribution 3994 +3e5158187961269475c1db8ca4de20b3 Contribution 3995 +30fb0ef3509f85f9c1835e5f56692cec Contribution 3996 +a59fab9bcf470426d308dc07b023f45a Contribution 3997 +51ed83bc1f1744d3a629b170ea77b617 Contribution 3998 +8866a022367e13c1567370437f4a6444 Contribution 3999 +d9a42cafc4636f48d2d76d8937a674e3 Contribution 4000 +bd2f140c3e60698d3c2885fbf4d85d53 Contribution 4001 +51062a68cf1090d99a15f7817cc3b587 Contribution 4002 +be8d59d47668f98ea95c55eaa05f127a Contribution 4003 +1d7f8cd4f3ebfb0619989aef27b21613 Contribution 4004 +368529c94fab25af8e05804313e1a3ca Contribution 4005 +0026473196616e690f86780585217bab Contribution 4006 +f6e69cb4af98442adbc2cd701be5fb12 Contribution 4007 +e285c17ca9c7269bb75c8876ac4b813f Contribution 4008 +cff7c07f7f2e50df3870a0ae4b9a4251 Contribution 4009 +27e779ee3ef1894bbad0aea53ccd8003 Contribution 4010 +86589ebe857479479b643163e7733961 Contribution 4011 +e7c840f05f71ca692d006e6e379e4519 Contribution 4012 +e3ef3f58eac31ed055d66cb3d6abb7d9 Contribution 4013 +5fcf46dec884b2908ed1fd6497ed1545 Contribution 4014 +f6a9ade28e1a83cdbf252247b7ac97cf Contribution 4015 +2346aa9c998d82b08a3c8628603357da Contribution 4016 +e9bcd35bcf19866d5ac2a9a248700f0a Contribution 4017 +2457d8d5d6a8e2433e5bb9502e5d6e45 Contribution 4018 +ca4a26d8cafbc6be9d120d8d4d910721 Contribution 4019 +ac738c651d31404faafef52836e6d138 Contribution 4020 +571307c4e34b06846176a033ac040f93 Contribution 4021 +79a9496323dc15d2288838089e7c2d5e Contribution 4022 +5198cfab8ef1aef168445a7f0fc10daf Contribution 4023 +e6a083bcb2ff56c5c2e4ab124196093a Contribution 4024 +b7b9cd7440bf6af37cf44fdb825195a2 Contribution 4025 +08c64dabd62b15a83c9a1feee1dc365a Contribution 4026 +2a3538cc274420d93cf3fe9b3f303acc Contribution 4027 +b751887ed673fdd50384c5f966137abf Contribution 4028 +42aec88adceffac87b71a797cefcb3ee Contribution 4029 +41da787dba854c01c50dadfb627e4a57 Contribution 4030 +e072c8051eb9fa8f271f8be3b6e4dc79 Contribution 4031 +0a9b7ef2b6d42b140ba16b1beb3d6588 Contribution 4032 +6d3dd9e705c29c8e393879e6ef4719a7 Contribution 4033 +d5ca257db238e447829477d96ac35456 Contribution 4034 +0e9700e23ca44d8300eb805ff0bc9981 Contribution 4035 +77348cb4194d099c624ff827a39e9c75 Contribution 4036 +360bb12cac8ed2f1e385e50ddbe45242 Contribution 4037 +4fac099b872f83f851741727964ad393 Contribution 4038 +d6356ecaef5d72ab0d901a7f6acdee54 Contribution 4039 +6648faefd779db02cff3de6470e34163 Contribution 4040 +f4f31a1695406cd5c096b4d99128b010 Contribution 4041 +89a0ccaa715841405604ca65d59e3b2b Contribution 4042 +1dcc1c52f70fe2f2f81d4c76fa8015fa Contribution 4043 +7a3064e6092248e02d870e8b9999a8ee Contribution 4044 +20fc1aec68983d9c906daf7334719b3a Contribution 4045 +e4f85f2346c87960c45c3defa7bb397c Contribution 4046 +73681d491936f10a9b581aadfaa97e3e Contribution 4047 +45992006f085912ac3857187bf42de1e Contribution 4048 +f11bede252a23f6f84d2bdd0f8705a2a Contribution 4049 +8a4099858a89e47f5d0a252252b2cc2a Contribution 4050 +0dfab3fa5e9713a015e72d78ba227690 Contribution 4051 +9c768461b04d7f9a59357ee007c2c7cd Contribution 4052 +859821ad4318df7ff36ad453e2ed0d63 Contribution 4053 +a2a72b393ba21c7d680ca379eb63cd18 Contribution 4054 +a0df1480d2eb13e460f12563010b7ff8 Contribution 4055 +f5955c057bbc827dcdf0fdf5b28794e4 Contribution 4056 +b03edd78a93ee43b015a1e19d0079b80 Contribution 4057 +6dfa6db37728b107fc6c5dc7f785a05e Contribution 4058 +67e5d78ac180d886da00ae4a4be746f2 Contribution 4059 +18d73986ea46a6856c5bb7f1a7d670b3 Contribution 4060 +e71cc9897377aca22613345eeee8b9b9 Contribution 4061 +684b7c3846e1343dfa1e4757c4f04d40 Contribution 4062 +97bdc0a706a98c04653bd03d8d446b5f Contribution 4063 +f16cdcd36a9387000584ae5dc3cb58cb Contribution 4064 +6c2ae43e2694fa35848db518a7b791d7 Contribution 4065 +9b7291de053bde5dbfc69c6a57f89bdd Contribution 4066 +bdb34d7f9b1b12d1fd47ed28f05d873c Contribution 4067 +bd466cd65f2bc93c004c635e2a4e5790 Contribution 4068 +8b7a3d40f2e6406191a1162590d00e71 Contribution 4069 +322bda7d72acbe324ca2c15658522c6d Contribution 4070 +3a18577a97ba41f3df7756efab9513d2 Contribution 4071 +b3d5582193db3338b0d09b1959a0b879 Contribution 4072 +ab5e47080f5a96bc922a2aae47f47b6f Contribution 4073 +d6363517e6a7082b205deb7fa580eb3a Contribution 4074 +6b925e64329fe15264d2886ddd235449 Contribution 4075 +78dc2000ab8b4a91424c3e4052a2b16c Contribution 4076 +0bb6c120bbc2dd7c9cc67f413e1aef99 Contribution 4077 +d7af612e05f43629ae88cf84665c903d Contribution 4078 +d949bcecc1e2fd6a063cceccfcd6bde6 Contribution 4079 +aafa70ca2800b0e01ad37f80815df158 Contribution 4080 +839214f6ee24ed9c015d0c674a873872 Contribution 4081 +b0fab9d5e04d1dc7711254da6d726ee4 Contribution 4082 +9c0464039c0f800f4f786d523725b874 Contribution 4083 +0d17487fea680e457c572de4f7223446 Contribution 4084 +7875c6eda29de5c16aa7eb93cb91cc4c Contribution 4085 +54f3ac5d9980cdc110325115d08cbcd6 Contribution 4086 +4afa307b3b20322603438229cd699731 Contribution 4087 +d063e57e9f53669e2b73847c34022281 Contribution 4088 +e25feda1449348988852d71660cb3f22 Contribution 4089 +33c9b737a6f5da1a8bc643b53efa1490 Contribution 4090 +cd514c949f6c701696db0592f0ada278 Contribution 4091 +a8a5cdf1d9fa7023e8f7375909a96366 Contribution 4092 +5d3242432e13aa474af804f229e64e1a Contribution 4093 +497f08855b43543f9a43824e39dfda7c Contribution 4094 +b97ffe1ad3a3be8e9555e5ce62cbccea Contribution 4095 +5063fa07e6950bdebe8e57736061afa2 Contribution 4096 +a198c54e65dee7d001d3ea0ba2252671 Contribution 4097 +83b13b633d812dc1858c1311d6fd1cc5 Contribution 4098 +b102b9436b1cf9507f26a85e7d307a78 Contribution 4099 +46f83959b9488f5fca0b0db2880c5090 Contribution 4100 +d9facd470952aa02aa87c8c051363325 Contribution 4101 +3a77ad79f8f726ea479ab2ef96bdcf33 Contribution 4102 +71b7e05615822e7118a031a1f130ccb5 Contribution 4103 +b9f0c1995591647f864a6cb70e3367c6 Contribution 4104 +f603527f097d92049ba37e239e98dee4 Contribution 4105 +7806be46fec211b61c47ef804e356f77 Contribution 4106 +8c0a2107efbcff14e745a0a52f756b2e Contribution 4107 +cdff15d0db3a7bd1d866e3018648d96b Contribution 4108 +9cbcc099038342c2dac1a43d8dc0d5df Contribution 4109 +056d45010a1c401ed97d9549947f407a Contribution 4110 +83e40e8c9394086b08845975585a5873 Contribution 4111 +9f592b0af1a84f4c53f2b3658cfe0975 Contribution 4112 +2f4635cfb79349502c220e84e931dffc Contribution 4113 +d2173afe47d4d74940dac497e4d2c6ac Contribution 4114 +b98bbf034e4e2c07559d59558a5efef6 Contribution 4115 +770576c7707853b5ae4bb99c3bd08304 Contribution 4116 +080f611bce96d0c4c1017ab3203bce1e Contribution 4117 +53d2ac2815e2f91b8a4c596c52808280 Contribution 4118 +bda01aa1fba24618d7a140cbd89d5a4d Contribution 4119 +d31c68a4237b1ed58155658e4cbd6636 Contribution 4120 +b0d2d062cedb6e4d6d370db5d946cc66 Contribution 4121 +4e76ce06c6d606df65f2066bd017fb22 Contribution 4122 +203835b6898435c6ab1601549a7e0ccf Contribution 4123 +3fa57a906965fb4f3b2be122b35a5236 Contribution 4124 +5234eac4832b1198c0a8e34ee72f7bda Contribution 4125 +6a8857c7f47ea2bef41586328dd9040b Contribution 4126 +11e54f2d1262e60f3261dcff68731b4e Contribution 4127 +7c205713502279b5e76788e82bfd70a2 Contribution 4128 +75b1ee35104bf6934883d71768f3671e Contribution 4129 +8645a99aad88e303f222a38abba3caf4 Contribution 4130 +525bff01887e297d1b5b4c1aa61d2b3c Contribution 4131 +552e0548e86921c2b6fbf2f6a080c76c Contribution 4132 +fcd61da9c500ee17ee01a0756ea91a46 Contribution 4133 +ff453d557ce3ac25d1b0dc77a959ee86 Contribution 4134 +b2728d44f5976509e01bf31fbd64e54d Contribution 4135 +a4d0d0578dc6ba5b7090da3055fb905f Contribution 4136 +523d984aeb0b8a90d69f96a6a6a4b8d6 Contribution 4137 +08d0af7f41085360dd65588beaa1a225 Contribution 4138 +4c25b27cc2cb1b9cda078f29a1d85999 Contribution 4139 +aeeeeb7815fe1158aeb31bafbd5ab324 Contribution 4140 +dba84a1f472798414b9816713ccf76a7 Contribution 4141 +fd1bd206a021f1a9a7ee81713c24f21d Contribution 4142 +737b64cf6b630af3e25da64e984d8b3e Contribution 4143 +d75a91e99479e5bf54afe72e411c202b Contribution 4144 +74dc7dd34591f8c9c32cd095f0807d78 Contribution 4145 +99da5602a926e5b5d845ac5b7769e939 Contribution 4146 +c09e6915badefcc80e1c9a223437caec Contribution 4147 +5e5f14cc0b93f3f9d41eec4353be0a2c Contribution 4148 +8a3e09a93aaa4d793784c362aac08e97 Contribution 4149 +1e76f1a266badb06c56be6730f9d0b56 Contribution 4150 +0bcd57959c84a0948dc10b88d1eab640 Contribution 4151 +7a78dc4a1b70145d2948aa48e5b9e126 Contribution 4152 +6ae600e17328361d930c4a3bb727ef9d Contribution 4153 +6dd16e2d83eb68e45510c198befbcbc6 Contribution 4154 +5c13b877499192ed2e1ba3fb090b53d2 Contribution 4155 +7d0dc5a530bb66de06d487fc90dbabbc Contribution 4156 +093a47539e687ef42cf463919cc7e61c Contribution 4157 +7a1b07debfb9170e62b400963473751b Contribution 4158 +147f554d20f1bc94537a629670923c71 Contribution 4159 +0ef1b30e0a98137eadcf306566026d83 Contribution 4160 +4ec698977a366c13fea7f7a3a5e5d5e1 Contribution 4161 +e7ae32dac97c5e25bb7a001d3ced2807 Contribution 4162 +242301c9ce7095689b9b3ea07b39b34e Contribution 4163 +5d3159c27f885dc884d9c06167287422 Contribution 4164 +da4dcaa9e503313e1d56c492cad0f669 Contribution 4165 +f54f92a75db99ff482ebcfb8de70e9f7 Contribution 4166 +47d8acb56459c8123b9b3cc83ce7385d Contribution 4167 +ef1ddb6657de5e04cc4208ad940d7771 Contribution 4168 +87a159a871fe7a912153987e7bc26868 Contribution 4169 +d18d19f2560493bd684f3fbf8435151e Contribution 4170 +86b4d88faaa16f6c215a8e3353e4b734 Contribution 4171 +0f6d91e10948f0b56f76111bd728aa17 Contribution 4172 +66f2d28beed7936ce409aee0835178a0 Contribution 4173 +ec4323271db2802531874f9aef645c96 Contribution 4174 +728618ad09715c906a3226bdd5abb24b Contribution 4175 +43d7d55ad7c2f9a0b10a243173f989d5 Contribution 4176 +4b395c6406547c4d501e0b374531e017 Contribution 4177 +40b19551cbc7ada38dce6c44b3811eb8 Contribution 4178 +7e4cc5d45dde1562d5ef4682f8b79e91 Contribution 4179 +9dd7a2930e2c9903860a67c4894b9bee Contribution 4180 +7b700ae2b88790cb842dd4fa3cd1cf4a Contribution 4181 +a163fd23e0109a80da254607261d5c78 Contribution 4182 +230cadfc790ea978452850b1f404a175 Contribution 4183 +d32f9eef8f65381b4303cc941057a4db Contribution 4184 +7fd3f1276808820cdd6b5d98d3e4b5e1 Contribution 4185 +81ce2d196fb9519e9b6ce5ed1eaff0d9 Contribution 4186 +97ee4126a453ebd2d9e9b01753ca4280 Contribution 4187 +8bacb42fc33d42511b6770fdcc066f6e Contribution 4188 +78ec4214a922725f6a6bad25c1ff223c Contribution 4189 +c30ed8efd68b5b1d1c8236926b7c93ad Contribution 4190 +c4c932257c49068cef79e74b537e768a Contribution 4191 +39e23b25b26e542ab07edb6306cb5b94 Contribution 4192 +878addf4f9b9ff2671ed6431283f1719 Contribution 4193 +b0ab5940b5684d519a5a1fcb88790bcc Contribution 4194 +cd067abbd37ca52bb90d4b59c5650297 Contribution 4195 +7e47b3070b781c83a141ddbefc1e2c8c Contribution 4196 +643f84ec676dcdc767738330d8aecd01 Contribution 4197 +85973b5049cd978935f29c525c0cda08 Contribution 4198 +d514bced0d0ff5b2a362d3767576407a Contribution 4199 +25d340b13eaf8900b09fc4a0d25b639c Contribution 4200 +306d9e1b8ed10b126fa285e4fcd295ee Contribution 4201 +5bcf9ee18d49b64acbb466d29499b3dc Contribution 4202 +9b56e0f22ad8d4497bb49908fa455d07 Contribution 4203 +dac962b7e1d34fcadc34d7dc29bd267f Contribution 4204 +7b4c9e80ad1a2f684dedb94f5e6ead02 Contribution 4205 +6902c6938a80292a486acd50c824710f Contribution 4206 +383ad595ed939fa392cc5d095cac19f7 Contribution 4207 +085a5b6ccb6022dd09cea669da18aa90 Contribution 4208 +384267cc603aa1e23624e8b7fb4688f3 Contribution 4209 +e6c456e768bcb6f5ef51a33e045a4a79 Contribution 4210 +83104a1f4081feb63e1e2d85754c195b Contribution 4211 +be9af08781f4b703ef7c1fb6b2139cac Contribution 4212 +09c0d755dd31e47556d2e13b0be4638a Contribution 4213 +285c904957f44404538d4fb58c9c5e35 Contribution 4214 +dd92caedfe312cb006c839dbc95bcffa Contribution 4215 +e8235a61c188a8f4311fd53d40fb96fa Contribution 4216 +fae09992f97b1766dbfff5d83f1997b6 Contribution 4217 +17862527cb6469644ca0433e2c2328a4 Contribution 4218 +94967d92f9e4ffecaa2d8c67beea0d08 Contribution 4219 +7fa1f66e96466de694c3b125f2de416c Contribution 4220 +b1b484230ac46d61687ba980e5ee5d5a Contribution 4221 +f776c44a3bc41a6833f786b42c38963d Contribution 4222 +4644c8e1c03ee88459a6b25d54797586 Contribution 4223 +145208f19d7ab60dc200cbbd928609de Contribution 4224 +626774c79365090140fd0e71da463cd7 Contribution 4225 +1de776e936c4046ec36398fb1aa1fabd Contribution 4226 +a1554b51396eccf0d37ad6bc415f0f5e Contribution 4227 +d55ced8a37998aaf10ede859354b1ec5 Contribution 4228 +f19b1c53b8e0ed1b4c2b6b66cd4f219f Contribution 4229 +6e1594a1083e2ef9d50acbc91ac70e3c Contribution 4230 +376ac90c4985317fdfa51aed0599e68d Contribution 4231 +d891d2035924c14e375843da0e4d9be6 Contribution 4232 +562a7f8a1c7a3b03671d4be154116b41 Contribution 4233 +fa46058f623430911ef56f768d0e10a7 Contribution 4234 +e217143d2b6d12ad3323ff57e671f661 Contribution 4235 +787241244a620d42c5037d854a5bc3ab Contribution 4236 +802b7a6eaac62b13eec91faecdc933b6 Contribution 4237 +2a37f4611511e0f5fcbd88911ded699f Contribution 4238 +83e760a9beaeafe7a1ee27f5a796cb74 Contribution 4239 +c8e103fe3b6b643746e5d334a6e5a236 Contribution 4240 +cc721dc1b38d27269872447a38c44cd8 Contribution 4241 +49bead3944398b7db7bbe0a2e89270e0 Contribution 4242 +4aa606cf9473cec1315c83a04af4c1c6 Contribution 4243 +fa34f760c49c4b8829af4f13a7c80359 Contribution 4244 +4c61434f39501beb099a692e7a3ee97a Contribution 4245 +837ac17e912c3c64743c6f5037a4481c Contribution 4246 +826d7aa6a1de7649dd4c1c8ce6bab99b Contribution 4247 +c64eefb641a9c0836e64cd772bdaca58 Contribution 4248 +28aaaad75063389a657f1dbc05529489 Contribution 4249 +acf79222c15e7e1511ddc2fda4329cd7 Contribution 4250 +4e3a5eec11ef46630d77ee2bb022977b Contribution 4251 +2c0643e1bc69188a4fa378671aa8de78 Contribution 4252 +9a600e490ff462a44cb45738e31dc028 Contribution 4253 +eb384874426abb0fe41c8f279e55070f Contribution 4254 +b99791eebb8095674710e9f0e2333883 Contribution 4255 +5f7d4f24fcecaeb92d3cc0fd8336d152 Contribution 4256 +f7be942b3ec241ca4566c39fd3d95e1c Contribution 4257 +d4351c6a91248947a25169ec2efcc461 Contribution 4258 +78865216a71c5ad341a712074d737b06 Contribution 4259 +3b72bd395a9c85a11cb52b39fd3330e1 Contribution 4260 +776d1ac53bd07ff2603d647c599a1b4c Contribution 4261 +8233d4e6fb6fcfc6b54f96f356956866 Contribution 4262 +44ed9e7c15db96def3b979a7a4a8d855 Contribution 4263 +671bbf96e0d52a8d23550d3dd491806f Contribution 4264 +4e4e374ab33b3b1333fd0ce736803511 Contribution 4265 +5f25308442813e4cf7f1b2e65eef3de4 Contribution 4266 +a3911a391c133e647b21371b19a00ac0 Contribution 4267 +84e8b5d98fd2dd806c58aa57de40a776 Contribution 4268 +f5b6a9735931309c1baf113628d7bb95 Contribution 4269 +bc45f09ab8c91ba538f718f9fff8d556 Contribution 4270 +c3813ba22fe63c33aa560dcee2329268 Contribution 4271 +e0e779c3e7560603529b3dd7958b60cb Contribution 4272 +38953a1c076d4c675bfec5c7f9c88582 Contribution 4273 +7d3bd856246d4129689911ff8c542e87 Contribution 4274 +55ec17d7873279f81abe97f3eb3e06ab Contribution 4275 +d96cdc9a9a019619dcc378146d1f2ad6 Contribution 4276 +f6e4b961703a489dcaa15fcf7478c254 Contribution 4277 +c6ed1e2c22b57da9c87ce2e47b4a7b6c Contribution 4278 +4a2c1dbf4271dff7e839bc8520191eaf Contribution 4279 +5c24ba350eec8b6a7d5d43c36b9d5d46 Contribution 4280 +a729e44789c7759f8a588a1df19504e5 Contribution 4281 +31f76ab42f348035bcae2091da17c420 Contribution 4282 +4342c9108b6c07e8b1d85c799324eb05 Contribution 4283 +1848746398d62a4f6269a4159f3ab834 Contribution 4284 +e40b7525cefeb879733ebfea2a7641ac Contribution 4285 +b695b30b8b5e3dcc671040e5b7e7dc0b Contribution 4286 +8c268c0bfd7b016b55ad376d294f9cff Contribution 4287 +8c8ba7f1a5b823fb38d1d2f8180f96f2 Contribution 4288 +c794cc1fea5295daf712c91f1d36bd85 Contribution 4289 +7ef289cf00e782c26a56bb26ff39db97 Contribution 4290 +33ff9bffed95c28bd7b439a23821ad6a Contribution 4291 +d34b2d1e04092e8e52554266c69f5b1e Contribution 4292 +eb8477e8a35e037706594be15086585c Contribution 4293 +d03c85ec21f9e59ac52c25bfe5ffe0bf Contribution 4294 +5eee21ee803c0da6f428d074abd261d3 Contribution 4295 +6e4163f8307077a293f89838c616a29b Contribution 4296 +34245743befe2d57d40862c902264b9b Contribution 4297 +00b5b254768eeae487efb130fae7b26b Contribution 4298 +2e3c2c4cd0581912f205595f512bf346 Contribution 4299 +6711739858d5f8393c5c98ee4316181f Contribution 4300 +ae7c0df8b33e83b5ee5427091b48a29b Contribution 4301 +bf40ee86b8a1829a395558e969f865c6 Contribution 4302 +b063fe05982c57c5a741ec3bf86947f1 Contribution 4303 +501d4c76b5c900717d7b28023d12b0ef Contribution 4304 +f3fad8367cde9003979b5c9debad82d1 Contribution 4305 +3f14aec2ce342cff7955776e36951ed7 Contribution 4306 +ffb371cc3b051bcac2be77177f1b56ff Contribution 4307 +eb5174dfa1169b83873fcdcd677df1d8 Contribution 4308 +c572728a9ca94775aa3ff8b768b8dfb4 Contribution 4309 +38a60312e3eadae5333602fc7efe8db0 Contribution 4310 +75eb2d20ed1266330a04b39edf007ed3 Contribution 4311 +bfa22b0411937cdb8ee6872e562b43e3 Contribution 4312 +ecce87c1231a99e5cbbeb7a93123b8fd Contribution 4313 +1b3a8a15d2c17d38215ff043ff79f7e5 Contribution 4314 +20ca8514c0410cb0ca9c9c0f29151dd7 Contribution 4315 +bad145e1e84e5e1acfa819ff3bfc06b8 Contribution 4316 +6024e0cbc6041d23c08fdc7e0cde7697 Contribution 4317 +1ac69bf680a2987f969742e080ddd857 Contribution 4318 +d44548c14d7c12fe331c3cde4b9e6a6e Contribution 4319 +4a2e38cb76b7d19a12d767811f839d79 Contribution 4320 +e039310e1e7926ce0c71e3627b7a8295 Contribution 4321 +dacdfabac8fcb94599e3f8348b68282b Contribution 4322 +41f97295e6ddc16b98b7cb34e3d51307 Contribution 4323 +dce1eb7e848ae0ebb9e83eaded05bd73 Contribution 4324 +d8843d13dedbb9f594bcac7b8c4f4def Contribution 4325 +96c06618a4d22ac660c3f840f092814c Contribution 4326 +5f387443579d0bbd198289671d49db3c Contribution 4327 +0d6bfb4dc863b3a235995027923abc67 Contribution 4328 +7b38b61df5dae014e15c31a53ec2817b Contribution 4329 +fe0e75a9d18a58e4156f61797c863878 Contribution 4330 +3fafc65f29fa379e1bde53a90855e3b0 Contribution 4331 +7d15d61594fed4b3383e886388606fbf Contribution 4332 +cf52df3b2a07f17719591d5db38198ae Contribution 4333 +1cbbe17624a6c4838f7303597b55810f Contribution 4334 +8dc98423f6c124999067de13c902a63d Contribution 4335 +51497236bfa444b4e1e168976aa3b309 Contribution 4336 +92bc09c461dd7cff1789b6a7d4785f8d Contribution 4337 +fefa4bc4460ffc33179cdac59d15d2ed Contribution 4338 +7aa7eabd4d5ca7e163d98166e5ad7b49 Contribution 4339 +0210c988e924e3f20e50c1b0ba048b61 Contribution 4340 +4a792078d1cc0376a8d88c77659d5082 Contribution 4341 +2c68c2f926b053f00bcf8a691b9cd527 Contribution 4342 +e0affafaaf3291c5ecc53ab2882b0002 Contribution 4343 +d03208d96ff3f8a96953feab85275fc4 Contribution 4344 +b2cd5a9763d594ff0add08f78b0fe795 Contribution 4345 +780b7570316750037432675b7acfeb79 Contribution 4346 +ccca34c31287a32a2f80960c35b396f3 Contribution 4347 +58b420be0e4dd01a598bf1b03c094c55 Contribution 4348 +6852e538c47eba7d58175871de09a472 Contribution 4349 +58deeb831b9edd89a77bac8c12b18dd5 Contribution 4350 +92176daddc90da4dd1c4f1470f0a02ef Contribution 4351 +9a36d1c5f2365baf2d9ed2705945f015 Contribution 4352 +008bd478921cbea27fae504466848c77 Contribution 4353 +71d2a2ce6c56be2196a692bee1e71d39 Contribution 4354 +279273bb671cc8ec2dda498bca7b5f5d Contribution 4355 +36dd8f17865579ca855978de2fc049d5 Contribution 4356 +3a4d0e333751b7e664ad3b3d37d34ea5 Contribution 4357 +baad728da8893d906ffafcbab73e7cc9 Contribution 4358 +a344bcfdd855ad9c838b647ee638c761 Contribution 4359 +53ea4fb1b21ca2e2ff34c5285654b979 Contribution 4360 +1ddddc51511f3cbd412831c361adcb6f Contribution 4361 +a668e1fc897a669d915bb87971869a3c Contribution 4362 +7b3045dd5321958b236586472e67d50e Contribution 4363 +9d73f7b71deb4190d162cc00efb1465a Contribution 4364 +f4624fd67ac63b80acbb48e777375324 Contribution 4365 +f7c98995393e77818602cd6fcdbab227 Contribution 4366 +fdf02eaf89101caa65793597a455d8ae Contribution 4367 +823cc83dd944954c6270f201b7ff86f8 Contribution 4368 +21cd9a0c230ae11562b0650a8d67c139 Contribution 4369 +aeebd8c823f6d91d60ca14d574344d66 Contribution 4370 +c451cb1355c2f779b3a9bd50cb4900e2 Contribution 4371 +c332856e95c971152f9ce46ec96e8f13 Contribution 4372 +482ca94f2f9fd5e9a523223d566bfd28 Contribution 4373 +4be2f128b0046930f439b3559539aaaa Contribution 4374 +8b60b07a791b79f37692179c5009ad74 Contribution 4375 +8b8c49d9b68703e817daec67b3b60d8d Contribution 4376 +f62955724d9f8a362c172619c514ffbc Contribution 4377 +de8af4726d7a60e94f863fc28099c267 Contribution 4378 +eff34d9da104c04e21888ae81f3971ff Contribution 4379 +5d895460728265f7cbca9e9c27b501b4 Contribution 4380 +56be8700766fe15627b2cd0e9b09bfb9 Contribution 4381 +0eacfa32487477f2297494513e9b2e47 Contribution 4382 \ No newline at end of file diff --git a/manta-parameters/data/pay/verifying/private-transfer.dat b/manta-parameters/data/pay/verifying/private-transfer.dat new file mode 100644 index 000000000..b6da02ac4 Binary files /dev/null and b/manta-parameters/data/pay/verifying/private-transfer.dat differ diff --git a/manta-parameters/data/pay/verifying/to-private.dat b/manta-parameters/data/pay/verifying/to-private.dat new file mode 100644 index 000000000..20a50f5cc Binary files /dev/null and b/manta-parameters/data/pay/verifying/to-private.dat differ diff --git a/manta-parameters/data/pay/verifying/to-public.dat b/manta-parameters/data/pay/verifying/to-public.dat new file mode 100644 index 000000000..1f36db29f Binary files /dev/null and b/manta-parameters/data/pay/verifying/to-public.dat differ diff --git a/manta-parameters/src/lib.rs b/manta-parameters/src/lib.rs index 4d04b1c22..e28c18a41 100644 --- a/manta-parameters/src/lib.rs +++ b/manta-parameters/src/lib.rs @@ -312,104 +312,101 @@ macro_rules! define_lfs { /// Concrete Parameters for Manta Pay pub mod pay { - /// Testnet Data - pub mod testnet { - /// Parameters - pub mod parameters { - define_dat!( - GroupGenerator, - "Group Generator", - "pay/testnet/parameters/group-generator", - ); - define_dat!( - UtxoCommitmentScheme, - "UTXO Commitment Scheme Parameters", - "pay/testnet/parameters/utxo-commitment-scheme", - ); - define_dat!( - IncomingBaseEncryptionScheme, - "Incoming Base Encryption Scheme Parameters", - "pay/testnet/parameters/incoming-base-encryption-scheme", - ); - define_dat!( - LightIncomingBaseEncryptionScheme, - "Light Incoming Base Encryption Scheme Parameters", - "pay/testnet/parameters/light-incoming-base-encryption-scheme", - ); - define_dat!( - ViewingKeyDerivationFunction, - "Viewing Key Derivation Function Parameters", - "pay/testnet/parameters/viewing-key-derivation-function", - ); - define_dat!( - UtxoAccumulatorItemHash, - "UTXO Accumulator Item Hash Parameters", - "pay/testnet/parameters/utxo-accumulator-item-hash", - ); - define_dat!( - NullifierCommitmentScheme, - "Nullifier Commitment Scheme Parameters", - "pay/testnet/parameters/nullifier-commitment-scheme", - ); - define_dat!( - OutgoingBaseEncryptionScheme, - "Outgoing Base Encryption Scheme Parameters", - "pay/testnet/parameters/outgoing-base-encryption-scheme", - ); - define_dat!( - AddressPartitionFunction, - "Address Partition Function", - "pay/testnet/parameters/address-partition-function", - ); - define_dat!( - SchnorrHashFunction, - "Schnorr Hash Function Parameters", - "pay/testnet/parameters/schnorr-hash-function", - ); - define_dat!( - UtxoAccumulatorModel, - "UTXO Accumulator Model Parameters", - "pay/testnet/parameters/utxo-accumulator-model", - ); - } + /// Parameters + pub mod parameters { + define_dat!( + GroupGenerator, + "Group Generator", + "pay/parameters/group-generator", + ); + define_dat!( + UtxoCommitmentScheme, + "UTXO Commitment Scheme Parameters", + "pay/parameters/utxo-commitment-scheme", + ); + define_dat!( + IncomingBaseEncryptionScheme, + "Incoming Base Encryption Scheme Parameters", + "pay/parameters/incoming-base-encryption-scheme", + ); + define_dat!( + LightIncomingBaseEncryptionScheme, + "Light Incoming Base Encryption Scheme Parameters", + "pay/parameters/light-incoming-base-encryption-scheme", + ); + define_dat!( + ViewingKeyDerivationFunction, + "Viewing Key Derivation Function Parameters", + "pay/parameters/viewing-key-derivation-function", + ); + define_dat!( + UtxoAccumulatorItemHash, + "UTXO Accumulator Item Hash Parameters", + "pay/parameters/utxo-accumulator-item-hash", + ); + define_dat!( + NullifierCommitmentScheme, + "Nullifier Commitment Scheme Parameters", + "pay/parameters/nullifier-commitment-scheme", + ); + define_dat!( + OutgoingBaseEncryptionScheme, + "Outgoing Base Encryption Scheme Parameters", + "pay/parameters/outgoing-base-encryption-scheme", + ); + define_dat!( + AddressPartitionFunction, + "Address Partition Function", + "pay/parameters/address-partition-function", + ); + define_dat!( + SchnorrHashFunction, + "Schnorr Hash Function Parameters", + "pay/parameters/schnorr-hash-function", + ); + define_dat!( + UtxoAccumulatorModel, + "UTXO Accumulator Model Parameters", + "pay/parameters/utxo-accumulator-model", + ); + } - /// Zero-Knowledge Proof System Proving Data - pub mod proving { - define_lfs!( - ToPrivate, - "ToPrivate Proving Context", - "pay/testnet/proving/to-private", - ); - define_lfs!( - PrivateTransfer, - "Private Transfer Proving Context", - "pay/testnet/proving/private-transfer", - ); - define_lfs!( - ToPublic, - "ToPublic Proving Context", - "pay/testnet/proving/to-public", - ); - } + /// Zero-Knowledge Proof System Proving Data + pub mod proving { + define_lfs!( + ToPrivate, + "ToPrivate Proving Context", + "pay/proving/to-private", + ); + define_lfs!( + PrivateTransfer, + "Private Transfer Proving Context", + "pay/proving/private-transfer", + ); + define_lfs!( + ToPublic, + "ToPublic Proving Context", + "pay/proving/to-public", + ); + } - /// Zero-Knowledge Proof System Verifying Data - pub mod verifying { - define_dat!( - ToPrivate, - "ToPrivate Verifying Context", - "pay/testnet/verifying/to-private" - ); - define_dat!( - PrivateTransfer, - "Private Transfer Verifying Context", - "pay/testnet/verifying/private-transfer" - ); - define_dat!( - ToPublic, - "ToPublic Verifying Context", - "pay/testnet/verifying/to-public" - ); - } + /// Zero-Knowledge Proof System Verifying Data + pub mod verifying { + define_dat!( + ToPrivate, + "ToPrivate Verifying Context", + "pay/verifying/to-private" + ); + define_dat!( + PrivateTransfer, + "Private Transfer Verifying Context", + "pay/verifying/private-transfer" + ); + define_dat!( + ToPublic, + "ToPublic Verifying Context", + "pay/verifying/to-public" + ); } } diff --git a/manta-pay/src/bin/simulation.rs b/manta-pay/src/bin/simulation.rs index e2242f524..ba3b0d5af 100644 --- a/manta-pay/src/bin/simulation.rs +++ b/manta-pay/src/bin/simulation.rs @@ -17,22 +17,16 @@ //! Manta Pay Simulation use clap::{error::ErrorKind, CommandFactory, Parser}; -use manta_accounting::transfer::canonical::generate_context; -use manta_crypto::rand::{OsRng, Rand}; -use manta_pay::{config::FullParametersRef, simulation::Simulation}; +use manta_crypto::rand::OsRng; +use manta_pay::{parameters::load_parameters, simulation::Simulation}; /// Runs the Manta Pay simulation. pub fn main() { let simulation = Simulation::parse(); let mut rng = OsRng; - let parameters = rng.gen(); - let utxo_accumulator_model = rng.gen(); - let (proving_context, verifying_context) = generate_context( - &(), - FullParametersRef::new(¶meters, &utxo_accumulator_model), - &mut rng, - ) - .expect("Failed to generate contexts."); + let directory = tempfile::tempdir().expect("Unable to generate temporary test directory."); + let (proving_context, verifying_context, parameters, utxo_accumulator_model) = + load_parameters(directory.path()).expect("Unable to load parameters"); match tokio::runtime::Builder::new_multi_thread() .worker_threads(6) .build() diff --git a/manta-pay/src/parameters.rs b/manta-pay/src/parameters.rs index 01755679f..68ff8f021 100644 --- a/manta-pay/src/parameters.rs +++ b/manta-pay/src/parameters.rs @@ -138,13 +138,13 @@ pub fn load_parameters( #[inline] pub fn load_proving_context(directory: &Path) -> MultiProvingContext { let to_private_path = directory.join("to-private.dat"); - manta_parameters::pay::testnet::proving::ToPrivate::download(&to_private_path) + manta_parameters::pay::proving::ToPrivate::download(&to_private_path) .expect("Unable to download ToPrivate proving context."); let private_transfer_path = directory.join("private-transfer.dat"); - manta_parameters::pay::testnet::proving::PrivateTransfer::download(&private_transfer_path) + manta_parameters::pay::proving::PrivateTransfer::download(&private_transfer_path) .expect("Unable to download PrivateTransfer proving context."); let to_public_path = directory.join("to-public.dat"); - manta_parameters::pay::testnet::proving::ToPublic::download(&to_public_path) + manta_parameters::pay::proving::ToPublic::download(&to_public_path) .expect("Unable to download ToPublic proving context."); decode_proving_context(&to_private_path, &private_transfer_path, &to_public_path) } @@ -160,15 +160,13 @@ pub fn load_proving_context(directory: &Path) -> MultiProvingContext { #[inline] pub fn try_load_proving_context(directory: &Path) -> MultiProvingContext { let to_private_path = directory.join("to-private.dat"); - manta_parameters::pay::testnet::proving::ToPrivate::download_if_invalid(&to_private_path) + manta_parameters::pay::proving::ToPrivate::download_if_invalid(&to_private_path) .expect("Unable to download ToPrivate proving context."); let private_transfer_path = directory.join("private-transfer.dat"); - manta_parameters::pay::testnet::proving::PrivateTransfer::download_if_invalid( - &private_transfer_path, - ) - .expect("Unable to download PrivateTransfer proving context."); + manta_parameters::pay::proving::PrivateTransfer::download_if_invalid(&private_transfer_path) + .expect("Unable to download PrivateTransfer proving context."); let to_public_path = directory.join("to-public.dat"); - manta_parameters::pay::testnet::proving::ToPublic::download_if_invalid(&to_public_path) + manta_parameters::pay::proving::ToPublic::download_if_invalid(&to_public_path) .expect("Unable to download ToPublic proving context."); decode_proving_context(&to_private_path, &private_transfer_path, &to_public_path) } @@ -204,8 +202,7 @@ pub fn decode_proving_context( #[inline] pub fn load_to_private_verifying_context() -> VerifyingContext { VerifyingContext::decode( - manta_parameters::pay::testnet::verifying::ToPrivate::get() - .expect("Checksum did not match."), + manta_parameters::pay::verifying::ToPrivate::get().expect("Checksum did not match."), ) .expect("Unable to decode To-Private verifying context.") } @@ -214,8 +211,7 @@ pub fn load_to_private_verifying_context() -> VerifyingContext { #[inline] pub fn load_private_transfer_verifying_context() -> VerifyingContext { VerifyingContext::decode( - manta_parameters::pay::testnet::verifying::PrivateTransfer::get() - .expect("Checksum did not match."), + manta_parameters::pay::verifying::PrivateTransfer::get().expect("Checksum did not match."), ) .expect("Unable to decode PrivateTransfer verifying context.") } @@ -224,8 +220,7 @@ pub fn load_private_transfer_verifying_context() -> VerifyingContext { #[inline] pub fn load_to_public_verifying_context() -> VerifyingContext { VerifyingContext::decode( - manta_parameters::pay::testnet::verifying::ToPublic::get() - .expect("Checksum did not match."), + manta_parameters::pay::verifying::ToPublic::get().expect("Checksum did not match."), ) .expect("Unable to decode ToPublic verifying context.") } @@ -244,7 +239,7 @@ where /// Loads the transfer [`Parameters`] from [`manta_parameters`]. #[inline] pub fn load_transfer_parameters() -> Parameters { - use manta_parameters::pay::testnet::parameters::*; + use manta_parameters::pay::parameters::*; Parameters { base: BaseParameters { group_generator: load_get_object::(), @@ -268,7 +263,7 @@ pub fn load_transfer_parameters() -> Parameters { #[inline] pub fn load_utxo_accumulator_model() -> UtxoAccumulatorModel { UtxoAccumulatorModel::decode( - manta_parameters::pay::testnet::parameters::UtxoAccumulatorModel::get() + manta_parameters::pay::parameters::UtxoAccumulatorModel::get() .expect("Checksum did not match."), ) .expect("Unable to decode UTXO_ACCUMULATOR_MODEL.") diff --git a/manta-trusted-setup/Cargo.toml b/manta-trusted-setup/Cargo.toml index df4186c64..65ac04f46 100644 --- a/manta-trusted-setup/Cargo.toml +++ b/manta-trusted-setup/Cargo.toml @@ -28,6 +28,14 @@ maintenance = { status = "actively-developed" } name = "groth16_phase2_client" required-features = ["clap", "ppot-client", "reqwest", "tokio"] +[[bin]] +name = "groth16_phase2_prepare" +required-features = ["clap", "memmap", "ppot-client", "serde", "tokio"] + +[[bin]] +name = "groth16_phase2_verifier" +required-features = ["clap", "memmap", "ppot-client", "reqwest", "tokio"] + [features] # Bincode for Message Signing bincode = ["dep:bincode", "serde"] @@ -91,6 +99,7 @@ derivative = { version = "2.2.0", default-features = false, features = ["use_cor dialoguer = { version = "0.10.2", optional = true, default-features = false } hex = { version = "0.4.3", optional = true, default-features = false } manta-crypto = { path = "../manta-crypto", default-features = false, features = ["arkworks", "getrandom", "rand_chacha", "dalek"] } +manta-pay = { path = "../manta-pay", default-features = false, features = ["groth16", "parameters"] } manta-util = { path = "../manta-util", default-features = false } memmap = { version = "0.7.0", optional = true, default-features = false } parking_lot = { version = "0.12.1", optional = true, default-features = false } diff --git a/manta-trusted-setup/README.md b/manta-trusted-setup/README.md index bc3a59b6e..33ed1bb6a 100644 --- a/manta-trusted-setup/README.md +++ b/manta-trusted-setup/README.md @@ -1,48 +1,90 @@ -# manta-trusted-setup +# MantaPay Trusted Setup -For support, please contact us on [Discord](https://discord.gg/AZTZvK7X). +From November 28, 2022 to December 29, 2022, Manta Network held a trusted setup ceremony to generate the Groth16 proving keys for the Manta Pay protocol circuits. With 4,382 individual contributions, this was the largest trusted setup thus far in web 3 history. -This guide explains how to install and run the client from source code. Users who do not wish to inspect the source code themselves are encouraged to follow the instructions for a quick download [here](https://docs.manta.network/docs/guides/TrustedSetup). The remainder of this guide assumes that the user wishes to install from source code. +The results of the ceremony are now available to the public for verification. We have provided the full ceremony history, including all contribution hashes, the state of the proving keys after each contribution, and the validity proofs that each contribution was made according to the multi-party computation (MPC) protocol. By verifying this chain of proofs, users can be certain that the Manta Pay proving keys are the result of a MPC and carry the 1-of-N security guarantee provided by the MPC protocol. For a layperson's explanation of this MPC, see [here](https://docs.manta.network/docs/concepts/TrustedSetup); for a technical description of the protocol, see [here](https://github.com/Manta-Network/spec/blob/feat/trusted-setup/trusted-setup/spec.pdf). The design is a modification of [this protocol](https://eprint.iacr.org/2017/1050). -To build the trusted setup client from source code you will need the Rust compiler. If you do not have this installed, follow the OS-specific instructions [here](https://www.rust-lang.org/tools/install). If you already have Rust installed make sure you are using the latest version by running the `rustup update` command. +We have provided tools to help users to verify the ceremony results. The remainder of this document explains how to use these tools. -## Installation -After installing Rust, clone this repository to your computer. Open a terminal, navigate to the folder where you wish to install the client, and use the command -```sh -git clone https://github.com/Manta-Network/manta-rs.git +# Trust Assumptions + +"Ceremony verification" can mean many things depending on the level of trust a user has in the ceremony coordinators. The more a user trusts Manta Network, the less rigorously they may wish to verify the ceremony results. We will explain these varying levels of rigor in order from most to least trust. Note that more rigorous levels of verification require more resources and expertise. + +## Total Trust: No Verification + +If you have total trust in the Manta Network team then you can simply use the network without verifying the ceremony results. This is a bit like stepping on a bus without checking that the driver has a license and is what the vast majority of users will do. + +## High Trust: Hash Checks Only + +We have published a list of contribution hashes [here](https://github.com/Manta-Network/manta-rs/blob/feat/ts_verifier/manta-trusted-setup/contribution_hashes.txt). These hashes are commitments to each of the 4,382 ceremony contributions. If you trust that Manta has correctly computed these hashes from the ceremony transcript, then it is sufficient to check that the hashes in this list match the published claims from ceremony participants. For example, you or someone you trust may have announced their contribution via twitter: + +![tweet](./docs/contribution_hash_announcement.png) + +To check whether this contribution is included in the final proving key, you can check its contribution hash against the published list. Of course, this assumes that the list was computed correctly. + +## Medium Trust: Contribution Proof Checks + +Instead of trusting that Manta created the contribution hash list correctly, you can generate it yourself from the ceremony data. The ceremony data contains all intermediate states and cryptographic proofs that each contribution obeyed the MPC protocol. Before demonstrating how to verify this data, let us carefully explain the trust assumptions: + +This level of verification checks that each state of the MPC is built from the last according to the MPC protocol. However, it does *not* check that the genesis state of the MPC was computed correctly from a Phase 1 KZG trusted setup and the Manta Pay circuit description. That is, you are trusting that Manta generated the initial proving keys correctly from a secure set of KZG parameters. If you use the verification tool we provide, you are also trusting that it is written correctly; the [source code](https://github.com/Manta-Network/manta-rs/blob/feat/ts_verifier/manta-trusted-setup/src/bin/groth16_phase2_verifier.rs) is yours to examine, of course. + +To perform this level of verification, clone this branch of the repository and download all the ceremony data to some directory. +
+Download Instructions + +The ceremony data is currently hosted on an AWS s3 bucket and can be downloaded using the AWS CLI. See [here](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) for instructions on downloading the AWS CLI. The command +``` +aws s3 sync s3://trusted-setup-data-backup /local/path ``` +Will download all the ceremony data to the directory specified by `/local/path`. Note that this is a little under 140 Gb of data. +
-## Registration -To use the client for registration: open a terminal, navigate to the folder where you downloaded the client, and use the command -```sh -cargo run --release --package manta-trusted-setup --all-features --bin groth16_phase2_client register +After downloading the ceremony data, use the following command to initiate the verification process: +``` +cargo run --release --package manta-trusted-setup --all-features --bin groth16_phase2_verifier -- local/path 0 ``` -You will see a screen like this ![register](./docs/ts_guide_register.png) +The `local/path` argument should be replaced by the path to the directory where you have downloaded the ceremony data. The `0` argument indicates that you wish to begin verification at round 0 of the ceremony. If for some reason you wish to verify the ceremony data during multiple sessions, this argument can be used to start the verification from round `n` of the ceremony (see Resource-Constrained Instructions below). + +This process will generate four new files in the directory containing ceremony data. These consist of three auxiliary files containing the challenge hashes for contributions to the three individual Manta Pay circuits as well as one file containing the overall contribution hashes. It is this last file (`contribution_hashes.txt`) that contains the hashes that were announced by participants, as in the above tweet. + +If the process terminates without error then all contribution proofs were valid, *i.e.* the ceremony obeyed the MPC protocol and the proving keys are secure as long as at least 1 of the 4,382 participants contributed honestly. The hashes in `contribution_hashes.txt` can be compared to those provided in the previous section. + +Note that this process may take a long time (about 15 hrs on 32 Gb RAM AWS c6i.4xlarge instance). + +
+Resource-constrained Instructions + +If you do not have disk space for all 140 Gb of ceremony data then it is possible to verify a subset of the ceremony rounds. See the AWS CLI [instructions](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-using.html) to download the `state`, `proof`, and `challenge` files for those rounds that you wish to verify and use the starting round argument of the verification command to start verification from the desired round. The verifier will process as many rounds as it can find in the directory, starting from the specified round. It will create an output file containing the contribution hashes for the rounds it verified. -The output contains a link (green) that leads you to our registration form. Here you may answer some optional questions, then submit the form to complete your registration. +In this way one can verify the entire ceremony in batches of a manageable size. Each round of the ceremony is about 32 Mb of data. -Take note of the secret passphrase displayed in red. Save this secret phrase somewhere safe and do not share it with anyone. Without this secret you will not be able to participate in the ceremony. You are now registered; please wait until the ceremony begins to proceed to the next step. You will be notified by email when the ceremony is about to begin. +Note that the verification tool will not automatically manage these files for multiple verification sessions. That is, it will overwrite existing contribution hash files. You are responsible for managing these files. +
-> **NOTE**: There may be some lag between when you submit your registration info and when it has been uploaded to the server -- we perform some manual screening to prevent abuse. +## Low Trust: Initial State Check -## Contribution -At any time when the ceremony is open, you may contribute using the same client you already installed. Open a terminal, navigate to the folder where you downloaded the client, and use the command +In addition to checking the contribution proofs as above, a user may wish to check that the ceremony's genesis state was computed correctly. This requires computing the genesis state from Phase 1 KZG parameters and the circuit descriptions. + +The Phase 1 used in this ceremony was Round 72 of the Perpetual Powers of Tau (PPoT) ceremony. These parameters may be downloaded [here](https://ppot.blob.core.windows.net/public/challenge_0072). Note that due to the large size of the PPoT ceremony this file is approximately 100 Gb. + +The genesis state can then be computed using the following command: ```sh -cargo run --release --package manta-trusted-setup --all-features --bin groth16_phase2_client contribute +cargo run --release --package manta-trusted-setup --all-features --bin groth16_phase2_prepare path_to_challenge_0072 path_to_directory ``` -You will first be prompted for the passphrase you generated above: -![receiving](./docs/ts_guide_secret_prompt.png) +The `path_to_challenge_0072` is a path to the file containing the PPoT round 72 file; the `path_to_directory` is a path to an output directory where the genesis state will be placed. The process takes about 5 minutes (on an M1 Mac with 16 Gb RAM). + +This generates the initial MPC state and challenge files. Move these to the directory containing all ceremony data to replace the genesis state and challenge with the one you just generated, then perform the check from the previous section. + +This level of verification completely eliminates trust in the ceremony coordinator (Manta Network), but still implies trust in the security of the PPoT Phase 1 parameters used. + +## No Trust: PPoT Check (the most hardcore) + +To eliminate trust in the PPoT ceremony, one must also verify the contribution proofs for the first 72 rounds of PPoT. This is quite an endeavor, as that corresponds to about 7 Tb of data that must be downloaded and checked. -After entering your secret, you will see a screen like this ![queue](./docs/ts_guide_queue.png) -Most likely you will have to wait in a queue; this is because there are many participants in the ceremony and only one can contribute at a time. Do not take any action. Just leave this terminal open until the process completes. +There is a shortcut, however: rather than checking the full parameter set for each round of PPoT, one can check only as many powers as are needed to form the Manta Pay proving keys. This is only $2^{19}$ powers, as opposed to the full $2^{28}$ generated by PPoT. This reduces the verification cost by a factor of about 500 by performing far fewer scalar multiplications. Note however that challenge hashes still must be computed using the full parameter sets, so there is no way to avoid downloading all 7 Tb of parameters. -When you reach the front of the queue you will begin downloading data from the server: -![receiving](./docs/ts_guide_receiving.png) +Manta performed this cheaper verification using tools that can be found in [this repository](https://github.com/Manta-Network/ppot-verifier). We concluded that all the powers of tau needed to generate our proving keys were computed according to the phase 1 MPC protocol, and are thus secure as long as at least 1 of the 72 PPoT participants was honest. -Then the client will begin computing your contribution. Once this is complete, the result will be sent to the server: -![awaiting](./docs/ts_guide_awaiting_confirmation.png) -The server will check the validity of your contribution. This may take a few minutes. Do not leave this process until you receive confirmation. +For the full PPoT data see [here](https://github.com/weijiekoh/perpetualpowersoftau). -Once your contribution has been checked you will receive a confirmation message from the server: -![success](./docs/ts_guide_success.png) -Please finish your contribution by tweeting the message we provided (or posting to other public forums). While this step is not strictly necessary, it improves the security of the ceremony by creating a public record of your participation. \ No newline at end of file +For another PPoT verification tool, see Kobi Gurkan's [repository](https://github.com/kobigurk/phase2-bn254/tree/powers_28). \ No newline at end of file diff --git a/manta-trusted-setup/docs/contribution_hash_announcement.png b/manta-trusted-setup/docs/contribution_hash_announcement.png new file mode 100644 index 000000000..ff7a5d58e Binary files /dev/null and b/manta-trusted-setup/docs/contribution_hash_announcement.png differ diff --git a/manta-trusted-setup/docs/ts_guide_awaiting_confirmation.png b/manta-trusted-setup/docs/ts_guide_awaiting_confirmation.png deleted file mode 100644 index f4ab640df..000000000 Binary files a/manta-trusted-setup/docs/ts_guide_awaiting_confirmation.png and /dev/null differ diff --git a/manta-trusted-setup/docs/ts_guide_queue.png b/manta-trusted-setup/docs/ts_guide_queue.png deleted file mode 100644 index 11dddf28d..000000000 Binary files a/manta-trusted-setup/docs/ts_guide_queue.png and /dev/null differ diff --git a/manta-trusted-setup/docs/ts_guide_receiving.png b/manta-trusted-setup/docs/ts_guide_receiving.png deleted file mode 100644 index 7216ff13f..000000000 Binary files a/manta-trusted-setup/docs/ts_guide_receiving.png and /dev/null differ diff --git a/manta-trusted-setup/docs/ts_guide_register.png b/manta-trusted-setup/docs/ts_guide_register.png deleted file mode 100644 index e90e3f17d..000000000 Binary files a/manta-trusted-setup/docs/ts_guide_register.png and /dev/null differ diff --git a/manta-trusted-setup/docs/ts_guide_secret_prompt.png b/manta-trusted-setup/docs/ts_guide_secret_prompt.png deleted file mode 100644 index f2b945129..000000000 Binary files a/manta-trusted-setup/docs/ts_guide_secret_prompt.png and /dev/null differ diff --git a/manta-trusted-setup/docs/ts_guide_success.png b/manta-trusted-setup/docs/ts_guide_success.png deleted file mode 100644 index 6aee1b7ba..000000000 Binary files a/manta-trusted-setup/docs/ts_guide_success.png and /dev/null differ diff --git a/manta-trusted-setup/src/bin/groth16_phase2_prepare.rs b/manta-trusted-setup/src/bin/groth16_phase2_prepare.rs new file mode 100644 index 000000000..0887a6bf0 --- /dev/null +++ b/manta-trusted-setup/src/bin/groth16_phase2_prepare.rs @@ -0,0 +1,54 @@ +// Copyright 2019-2022 Manta Network. +// This file is part of manta-rs. +// +// manta-rs is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// manta-rs is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with manta-rs. If not, see . + +//! Trusted Setup Ceremony Preparation +//! Given Phase 1 parameters and circuit descriptions, prepares files +//! needed for a server to act as ceremony coordinator. +//! NOTE: This saves an empty registry file which is used by the coordinator +//! server; this file can be ignored for ceremony verification. + +use clap::Parser; +use manta_trusted_setup::groth16::ceremony::{ + config::ppot::{Config, Record, Registry}, + coordinator::prepare, + CeremonyError, +}; +use std::path::PathBuf; + +/// Preparer CLI +#[derive(Debug, Parser)] +pub struct Arguments { + /// Path to a set of phase 1 KZG parameters + phase_one_param_path: PathBuf, + + /// Destination for output + recovery_directory: PathBuf, +} + +impl Arguments { + /// Prepares for phase 2 ceremony + #[inline] + pub fn run(self) -> Result<(), CeremonyError> { + prepare::(self.phase_one_param_path, self.recovery_directory); + Ok(()) + } +} + +fn main() { + Arguments::parse() + .run() + .expect("Preparation error occurred"); +} diff --git a/manta-trusted-setup/src/bin/groth16_phase2_verifier.rs b/manta-trusted-setup/src/bin/groth16_phase2_verifier.rs new file mode 100644 index 000000000..7c4d754fb --- /dev/null +++ b/manta-trusted-setup/src/bin/groth16_phase2_verifier.rs @@ -0,0 +1,220 @@ +// Copyright 2019-2022 Manta Network. +// This file is part of manta-rs. +// +// manta-rs is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// manta-rs is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with manta-rs. If not, see . + +//! Trusted Setup Ceremony Verifier + +use clap::Parser; +use core::fmt::Debug; +use manta_trusted_setup::{ + ceremony::util::deserialize_from_file, + groth16::{ + ceremony::{ + config::ppot::Config, message::ContributeResponse, server::filename_format, Ceremony, + CeremonyError, UnexpectedError, + }, + mpc::{util::extract_keys, verify_transform, Proof, State}, + }, +}; +use manta_util::Array; +use std::{ + fs::File, + io::{BufRead, BufReader, Write}, + path::{Path, PathBuf}, + time::{Duration, Instant}, +}; + +/// Verification CLI +#[derive(Debug, Parser)] +pub struct Arguments { + /// Directory containing ceremony transcript + path: String, + + /// Starting round for verification + start: u64, +} + +impl Arguments { + /// Runs a server. + #[inline] + pub fn run(self) -> Result<(), CeremonyError> { + let path = PathBuf::from(self.path); + verify_ceremony(&path, self.start)?; + println!("Computing contribution hashes."); + contribution_hashes(&path); + println!( + "Verification complete. Contribution hashes were written to {:?}", + path.join("contribution_hashes.txt") + ); + Ok(()) + } +} + +fn main() { + Arguments::parse().run().unwrap(); +} + +fn verify_ceremony(path: &Path, start: u64) -> Result<(), CeremonyError> +where + C: Ceremony>, +{ + // Need to read from files, so get circuit names + let names: Vec = + deserialize_from_file(path.join(r"circuit_names")).expect("Circuit names file is missing."); + println!("Will verify contributions to {names:?}"); + // Keep track of verification times + let mut verification_times = Vec::::new(); + + // Check each circuit + for name in names.clone() { + println!("Checking contributions to circuit {}", name.clone()); + let mut challenge_output = + File::create(path.join(format!("{}_computed_challenges", name.clone()))) + .expect("Unable to create output file"); + let mut round = start; + let now = Instant::now(); + // Load starting round + let mut state: State = deserialize_from_file(filename_format( + path, + name.clone(), + "state".to_string(), + start, + )) + .map_err(|e| { + CeremonyError::Unexpected(UnexpectedError::Serialization { + message: format!("{e:?}"), + }) + })?; + let mut challenge: C::Challenge = deserialize_from_file(filename_format( + path, + name.clone(), + "challenge".to_string(), + start, + )) + .map_err(|e| { + CeremonyError::Unexpected(UnexpectedError::Serialization { + message: format!("{e:?}"), + }) + })?; + + // Check until no more files are found + loop { + round += 1; + let proof_result: Result, _> = deserialize_from_file(filename_format( + path, + name.clone(), + "proof".to_string(), + round, + )); + let next_state_result: Result, _> = deserialize_from_file(filename_format( + path, + name.clone(), + "state".to_string(), + round, + )); + match (proof_result, next_state_result) { + (Ok(proof), Ok(next_state)) => { + if round % 50 == 0 { + println!("Verifying round {round}"); + } + (challenge, state) = verify_transform(&challenge, &state, next_state, proof) + .map_err(|e| { + println!("Encountered error {e:?} in round {round}"); + CeremonyError::BadRequest + })?; + writeln!(challenge_output, "{} round {round}", hex::encode(challenge)) + .expect("Unable to write challenge hash to file"); + } + _ => { + println!("Writing final {name} prover and verifier key to file."); + extract_keys(&path.join("foo"), name.clone(), Some(state)) + .expect("Key extraction error"); + break; + } + } + } + + verification_times.push(now.elapsed()); + println!( + "Checked {} contributions to {name} in {:?}", + round - 1, + now.elapsed() + ); + } + println!("All checks successful."); + for (name, time) in names.iter().zip(verification_times.iter()) { + println!("Verified contributions to {name} in {time:?}"); + } + Ok(()) +} + +/// Combines the challenge hashes from each individual circuit to form the overall +/// contribution hash that participants published as a commitment to their +/// contribution. +fn contribution_hashes(path: &Path) { + let private_transfer_challenges = BufReader::new( + File::open(path.join("private_transfer_computed_challenges")).expect("Unable to open file"), + ) + .lines(); + let to_private_challenges = BufReader::new( + File::open(path.join("to_private_computed_challenges")).expect("Unable to open file"), + ) + .lines(); + let to_public_challenges = BufReader::new( + File::open(path.join("to_public_computed_challenges")).expect("Unable to open file"), + ) + .lines(); + let mut output = + File::create(path.join("contribution_hashes.txt")).expect("Unable to create output file"); + + for ((private_transfer, to_private), to_public) in private_transfer_challenges + .zip(to_private_challenges) + .zip(to_public_challenges) + { + match ((private_transfer, to_private), to_public) { + ((Ok(private_transfer), Ok(to_private)), Ok(to_public)) => { + // Hashes were written as "hash_as_hex round n" + let private_transfer: Vec<&str> = private_transfer.split(' ').collect(); + let to_private: Vec<&str> = to_private.split(' ').collect(); + let to_public: Vec<&str> = to_public.split(' ').collect(); + // Check that all hashes correspond to same contribution round: + assert_eq!(to_private[2], to_public[2]); + assert_eq!(to_private[2], private_transfer[2]); + let index = to_private[2] + .parse::() + .expect("Unexpected value for round number"); + + let contribution_response = ContributeResponse:: { + index, + challenge: Vec::>::from([ + Array::from_vec(hex::decode(to_private[0]).unwrap()), + Array::from_vec(hex::decode(to_public[0]).unwrap()), + Array::from_vec(hex::decode(private_transfer[0]).unwrap()), + ]), + }; + let contribution_hash = + ::contribution_hash(&contribution_response); + writeln!( + output, + "{} round {}", + hex::encode(contribution_hash), + private_transfer[2] + ) + .expect("Unable to write challenge hash to file"); + } + _ => println!("Read error occurred"), + } + } +} diff --git a/manta-trusted-setup/src/groth16/ceremony/client.rs b/manta-trusted-setup/src/groth16/ceremony/client.rs index a21820e2a..a2cfc63f7 100644 --- a/manta-trusted-setup/src/groth16/ceremony/client.rs +++ b/manta-trusted-setup/src/groth16/ceremony/client.rs @@ -124,10 +124,11 @@ where where T: Serialize, { - let signed_message = self - .signer - .sign(message) - .map_err(|_| CeremonyError::Unexpected(UnexpectedError::Serialization))?; + let signed_message = self.signer.sign(message).map_err(|e| { + CeremonyError::Unexpected(UnexpectedError::Serialization { + message: format!("{e:?}"), + }) + })?; self.signer.increment_nonce(); Ok(signed_message) } diff --git a/manta-trusted-setup/src/groth16/ceremony/config/ppot.rs b/manta-trusted-setup/src/groth16/ceremony/config/ppot.rs index 33b5daa62..94989db5a 100644 --- a/manta-trusted-setup/src/groth16/ceremony/config/ppot.rs +++ b/manta-trusted-setup/src/groth16/ceremony/config/ppot.rs @@ -58,6 +58,10 @@ use manta_crypto::{ rand::{ChaCha20Rng, OsRng, Rand, SeedableRng}, signature, }; +use manta_pay::{ + config::{FullParametersRef, PrivateTransfer, ToPrivate, ToPublic}, + parameters::{load_transfer_parameters, load_utxo_accumulator_model}, +}; use manta_util::{ into_array_unchecked, serde::{de::DeserializeOwned, Deserialize, Serialize}, @@ -718,18 +722,32 @@ impl Ceremony for Config { } } -impl Circuits for Config { +impl Circuits<::Scalar> for Config { #[inline] fn circuits() -> Vec<(R1CS<::Scalar>, String)> { - let mut circuits = Vec::new(); - // - // Placeholder: - for i in 0..3 { - let mut cs = R1CS::for_contexts(); - dummy_circuit(&mut cs); - circuits.push((cs, format!("dummy_{i}"))); - } - circuits + vec![ + ( + ToPrivate::unknown_constraints(FullParametersRef::new( + &load_transfer_parameters(), + &load_utxo_accumulator_model(), + )), + "to_private".to_string(), + ), + ( + ToPublic::unknown_constraints(FullParametersRef::new( + &load_transfer_parameters(), + &load_utxo_accumulator_model(), + )), + "to_public".to_string(), + ), + ( + PrivateTransfer::unknown_constraints(FullParametersRef::new( + &load_transfer_parameters(), + &load_utxo_accumulator_model(), + )), + "private_transfer".to_string(), + ), + ] } } diff --git a/manta-trusted-setup/src/groth16/ceremony/coordinator.rs b/manta-trusted-setup/src/groth16/ceremony/coordinator.rs index 1eb1071f5..e93359a81 100644 --- a/manta-trusted-setup/src/groth16/ceremony/coordinator.rs +++ b/manta-trusted-setup/src/groth16/ceremony/coordinator.rs @@ -19,16 +19,34 @@ use crate::{ ceremony::{ participant::{Participant, Priority}, - registry::Registry, + registry::{self, Registry}, signature::{Nonce, SignedMessage}, + util::serialize_into_file, }, groth16::{ - ceremony::{Ceremony, CeremonyError, Metadata, Queue, Round, UnexpectedError}, - mpc::{verify_transform, Proof, State}, + ceremony::{ + server::filename_format, Ceremony, CeremonyError, Circuits, Configuration, Metadata, + Queue, Round, UnexpectedError, + }, + kzg, + kzg::Accumulator, + mpc, + mpc::{verify_transform, Proof, ProvingKeyHasher, State}, + ppot::serialization::{read_subaccumulator, Compressed}, }, + mpc::ChallengeType, }; -use core::mem; -use manta_util::{time::lock::Timed, BoxArray}; +use core::{fmt::Debug, mem}; +use manta_crypto::arkworks::{ + bn254::{G1Affine, G2Affine}, + pairing::Pairing, + relations::r1cs::ConstraintSynthesizer, +}; +use manta_util::{time::lock::Timed, Array, BoxArray}; +use std::{fs::OpenOptions, path::PathBuf, time::Instant}; + +#[cfg(feature = "csv")] +use crate::ceremony::registry::csv::Record; #[cfg(feature = "serde")] use manta_util::serde::{Deserialize, Serialize}; @@ -280,3 +298,123 @@ where Ok(()) } } + +/// Given Phase 1 accumulator and circuit description, +/// compute initial `State`, `Challenge`. +pub fn initialize( + powers: &Accumulator, + cs: S, +) -> (::Challenge, State) +where + C: Ceremony + kzg::Configuration + kzg::Size + mpc::ProvingKeyHasher, + >::Output: Into<::Challenge>, // TODO Is this weird? + S: ConstraintSynthesizer, +{ + let state = + mpc::initialize(powers, cs).expect("Should form proving key from circuit description"); + let challenge = >::hash(&state.0); + (challenge.into(), state) +} + +/// Prepare by initalizing each circuit's prover key, challenge hash and saving +/// to file. Creates a `_registry_0` file containing an empty registry. +/// TODO: Generalize ProvingKeyHasher Output type and curves. +pub fn prepare(phase_one_param_path: PathBuf, target_path: PathBuf) +where + C: Ceremony + + Configuration + + kzg::Configuration + + kzg::Size + + mpc::ProvingKeyHasher + + Circuits<::Scalar>, + C: mpc::ProvingKeyHasher, + C: ChallengeType>, + C: Pairing, // TODO: Generalize or make part of a config + R: Default + Registry + Serialize, + R: registry::Configuration< + Identifier = C::Identifier, + Participant = C::Participant, + Registry = R, + >, + R: Debug, + T: Record, + T::Error: Debug, + C::Identifier: Debug + Copy, +{ + use memmap::MmapOptions; + + let file = OpenOptions::new() + .read(true) + .open(phase_one_param_path) + .expect("Unable to open phase 1 parameter file in this directory"); + // SAFETY: This is only safe when other processes are not modifying the memory-mapped file. + let reader = unsafe { + MmapOptions::new() + .map(&file) + .expect("unable to create memory map for input") + }; + let powers = read_subaccumulator(&reader, Compressed::No) + .expect("Cannot read Phase 1 accumulator from file"); + + let round_number = 0u64; + let mut names = Vec::new(); + for (circuit, name) in C::circuits().into_iter() { + println!("Creating proving key for {name}"); + let now = Instant::now(); + names.push(name.clone()); + let (challenge, state): (::Challenge, State) = + initialize(&powers, circuit); + + serialize_into_file( + OpenOptions::new().write(true).truncate(true).create(true), // TODO: Change to create_new for production. `prepare` should only be called once + &filename_format( + &target_path, + name.clone(), + "state".to_string(), + round_number, + ), + &state, + ) + .expect("Writing state to disk should succeed."); + + serialize_into_file( + OpenOptions::new().write(true).truncate(true).create(true), + &filename_format( + &target_path, + name.clone(), + "challenge".to_string(), + round_number, + ), + &challenge, + ) + .expect("Writing challenge to disk should succeed."); + println!("Computed proving key for {name} in {:?}", now.elapsed()); + } + + serialize_into_file( + OpenOptions::new().write(true).truncate(true).create(true), + &target_path.join(r"circuit_names"), + &names, + ) + .expect("Writing circuit names to disk should succeed."); + + serialize_into_file( + OpenOptions::new().write(true).truncate(true).create(true), + &target_path.join(r"round_number"), + &round_number, + ) + .expect("Must serialize round number to file"); + + let registry = R::default(); + serialize_into_file( + OpenOptions::new().write(true).truncate(true).create(true), + &filename_format( + &target_path, + "".to_string(), + "registry".to_string(), + round_number, + ), + ®istry, + ) + .expect("Writing registry to disk should succeed."); +} diff --git a/manta-trusted-setup/src/groth16/ceremony/mod.rs b/manta-trusted-setup/src/groth16/ceremony/mod.rs index eba61ab1d..5b15a79dd 100644 --- a/manta-trusted-setup/src/groth16/ceremony/mod.rs +++ b/manta-trusted-setup/src/groth16/ceremony/mod.rs @@ -31,7 +31,7 @@ use core::{ fmt::{self, Debug, Display}, time::Duration, }; -use manta_crypto::arkworks::{constraint::R1CS, pairing::Pairing}; +use manta_crypto::arkworks::{constraint::R1CS, ff::PrimeField, pairing::Pairing}; use manta_util::{ collections::vec_deque::MultiVecDeque, serde::{Deserialize, Serialize}, @@ -85,12 +85,12 @@ pub trait Ceremony: Configuration + SignatureScheme { } /// Specifies R1CS circuit descriptions and names for a ceremony. -pub trait Circuits +pub trait Circuits where - C: Ceremony, + F: PrimeField, { /// Returns representations of the circuits used in this ceremony, each named. - fn circuits() -> Vec<(R1CS, String)>; + fn circuits() -> Vec<(R1CS, String)>; } /// Parallel Round Alias @@ -238,7 +238,10 @@ where #[derive(Debug)] pub enum UnexpectedError { /// Serialization Error - Serialization, + Serialization { + /// Optional Error Message Display String + message: String, + }, /// Failed to generate a valid Contribution FailedContribution, diff --git a/manta-trusted-setup/src/groth16/ceremony/server.rs b/manta-trusted-setup/src/groth16/ceremony/server.rs index 0acfbc731..acd8d1c19 100644 --- a/manta-trusted-setup/src/groth16/ceremony/server.rs +++ b/manta-trusted-setup/src/groth16/ceremony/server.rs @@ -88,10 +88,11 @@ where Coordinator: DeserializeOwned, { Ok(Self { - coordinator: Arc::new(Mutex::new( - deserialize_from_file(path) - .map_err(|_| CeremonyError::Unexpected(UnexpectedError::Serialization))?, - )), + coordinator: Arc::new(Mutex::new(deserialize_from_file(path).map_err(|e| { + CeremonyError::Unexpected(UnexpectedError::Serialization { + message: format!("{e:?}"), + }) + })?)), recovery_directory, }) } @@ -162,8 +163,24 @@ where .join(format!("transcript{}.data", coordinator.round())), &coordinator.deref(), ) - .map_err(|_| CeremonyError::Unexpected(UnexpectedError::Serialization))?; + .map_err(|e| { + CeremonyError::Unexpected(UnexpectedError::Serialization { + message: format!("{e:?}"), + }) + })?; println!("{} participants have contributed.", coordinator.round()); Ok(()) } } + +/// Filename formatting for saving/recovering server. The `kind` may be +/// `state`, `challenge`, `proof`, `registry`. For `registry` the `name` +/// should be "". +pub fn filename_format( + folder_path: &Path, + name: String, + kind: String, + round_number: u64, +) -> PathBuf { + folder_path.join(format!("{name}_{kind}_{round_number}")) +} diff --git a/manta-trusted-setup/src/groth16/mpc.rs b/manta-trusted-setup/src/groth16/mpc.rs index 95e598451..8be448809 100644 --- a/manta-trusted-setup/src/groth16/mpc.rs +++ b/manta-trusted-setup/src/groth16/mpc.rs @@ -342,7 +342,7 @@ where /// Initialize [`State`] using the KZG accumulator `powers` and the given `constraint_system`. #[inline] -pub fn initialize(powers: Accumulator, constraint_system: S) -> Result, Error> +pub fn initialize(powers: &Accumulator, constraint_system: S) -> Result, Error> where C: kzg::Configuration, S: ConstraintSynthesizer, @@ -549,3 +549,69 @@ where } Ok(()) } + +/// Utilities for Serialization and I/O +#[cfg(all(feature = "bincode", feature = "std", feature = "tokio"))] +#[cfg_attr( + doc_cfg, + doc(cfg(all(feature = "bincode", feature = "std", feature = "tokio"))) +)] +pub mod util { + use super::*; + use crate::{ceremony::util::deserialize_from_file, groth16::ceremony::UnexpectedError}; + use manta_crypto::arkworks::serialize::CanonicalSerialize; + use std::{fs::OpenOptions, path::Path}; + + /// Extracts prover key and verifier key from state located at `path` and writes + /// them to a file according to the provided `name`. The new files are located + /// in the same directory as `path`. + /// The state can be passed in as an argument instead of being read from the path. + pub fn extract_keys( + path: &Path, + name: String, + state: Option>, + ) -> Result<(), UnexpectedError> + where + C: Configuration, + { + let mut pk_file = OpenOptions::new() + .write(true) + .create(true) + .open( + path.parent() + .expect("Path has no parent") + .join(format!("{name}_pk")), + ) + .map_err(|_| UnexpectedError::Serialization { + message: "Unable to create file at desired location.".to_string(), + })?; + let mut vk_file = OpenOptions::new() + .write(true) + .create(true) + .open( + path.parent() + .expect("Path has no parent") + .join(format!("{name}_vk")), + ) + .map_err(|_| UnexpectedError::Serialization { + message: "Unable to create file at desired location.".to_string(), + })?; + let state: State = match state { + Some(state) => state, + None => deserialize_from_file(path).map_err(|_| UnexpectedError::Serialization { + message: "Unable to deserialize state at provided path".to_string(), + })?, + }; + CanonicalSerialize::serialize_uncompressed(&state.0, &mut pk_file).map_err(|_| { + UnexpectedError::Serialization { + message: "Unable to serialize prover key.".to_string(), + } + })?; + CanonicalSerialize::serialize_uncompressed(&state.0.vk, &mut vk_file).map_err(|_| { + UnexpectedError::Serialization { + message: "Unable to serialize prover key.".to_string(), + } + })?; + Ok(()) + } +} diff --git a/manta-trusted-setup/src/groth16/test/mod.rs b/manta-trusted-setup/src/groth16/test/mod.rs index 145b5d16c..6756af2ed 100644 --- a/manta-trusted-setup/src/groth16/test/mod.rs +++ b/manta-trusted-setup/src/groth16/test/mod.rs @@ -221,7 +221,7 @@ pub fn dummy_circuit(cs: &mut R1CS) { pub fn dummy_prover_key() -> ProvingKey { let mut cs = R1CS::for_contexts(); dummy_circuit(&mut cs); - initialize(dummy_phase_one_trusted_setup(), cs).unwrap().0 + initialize(&dummy_phase_one_trusted_setup(), cs).unwrap().0 } /// Proves and verifies a R1CS circuit with proving key `pk` and a random number generator `rng`.