Skip to content

Commit

Permalink
test: regenerate EffectHash test vectors, check in CI
Browse files Browse the repository at this point in the history
  • Loading branch information
redshiftzero committed Oct 31, 2024
1 parent 89b81c2 commit cc42d8a
Show file tree
Hide file tree
Showing 302 changed files with 4,509 additions and 4,143 deletions.
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
use std::fs::File;

use decaf377::{Fq, Fr};
use decaf377_rdsa::{SigningKey, SpendAuth, VerificationKey, VerificationKeyBytes};
use ed25519_consensus::SigningKey as Ed25519SigningKey;
use ibc_proto::ics23::CommitmentProof;
use ibc_types::core::{
channel::{msgs::MsgRecvPacket, packet::Sequence, ChannelId, Packet, PortId},
client::Height,
Expand Down Expand Up @@ -38,6 +37,7 @@ use penumbra_governance::{
};
use penumbra_ibc::IbcRelay;
use penumbra_keys::keys::{Bip44Path, SeedPhrase, SpendKey};
use penumbra_keys::test_keys::SEED_PHRASE;
use penumbra_keys::{Address, FullViewingKey};
use penumbra_num::Amount;
use penumbra_proto::DomainType;
Expand All @@ -53,6 +53,8 @@ use proptest::strategy::ValueTree;
use proptest::test_runner::{Config, TestRunner};
use rand_core::OsRng;
use std::io::Write;
use std::str::FromStr;
use std::{fs::File, io::Read};
use tendermint;

fn amount_strategy() -> impl Strategy<Value = Amount> {
Expand Down Expand Up @@ -324,13 +326,16 @@ fn ibc_action_strategy() -> impl Strategy<Value = IbcRelay> {
chan_on_a: ChannelId::default(),
port_on_b: PortId::default(),
chan_on_b: ChannelId::default(),
data: vec![],
data: vec![0u8; 100],
timeout_height_on_b: ibc_types::core::channel::TimeoutHeight::At(
Height::new(revision_number, revision_height).expect("test value"),
),
timeout_timestamp_on_b: Timestamp::now(),
},
proof_commitment_on_a: MerkleProof { proofs: vec![] },
// this can't be empty
proof_commitment_on_a: MerkleProof {
proofs: vec![CommitmentProof::default()],
},
proof_height_on_a: Height::new(revision_number, revision_height)
.expect("test value"),
signer: src.to_string(),
Expand Down Expand Up @@ -666,15 +671,15 @@ fn transaction_plan_strategy(fvk: &FullViewingKey) -> impl Strategy<Value = Tran
}

#[test]
#[ignore]
fn generate_transaction_signing_test_vectors() {
// Run this to regenerate the `EffectHash` test vectors. Ignored by default.
let mut runner = TestRunner::new(Config::default());
let test_vectors_dir = "tests/signing_test_vectors";
std::fs::create_dir_all(test_vectors_dir).expect("failed to create test vectors dir");

let rng = OsRng;

for i in 0..100 {
let seed_phrase = SeedPhrase::generate(rng);
let seed_phrase = SeedPhrase::from_str(SEED_PHRASE).expect("test seed phrase is valid");
let sk = SpendKey::from_seed_phrase_bip44(seed_phrase, &Bip44Path::new(0));
let fvk = sk.full_viewing_key();
let value_tree = transaction_plan_strategy(fvk)
Expand Down Expand Up @@ -714,3 +719,35 @@ fn generate_transaction_signing_test_vectors() {
.expect("Failed to write hash file");
}
}

#[test]
fn effect_hash_test_vectors() {
// This parses the transaction plan, computes the effect hash, and verifies that it
// matches the expected effect hash.
let test_vectors_dir = "tests/signing_test_vectors";
let seed_phrase = SeedPhrase::from_str(SEED_PHRASE).expect("test seed phrase is valid");
let sk = SpendKey::from_seed_phrase_bip44(seed_phrase, &Bip44Path::new(0));
let fvk = sk.full_viewing_key();

for i in 0..100 {
let proto_file_path = format!("{}/transaction_plan_{}.proto", test_vectors_dir, i);
let mut proto_file = File::open(&proto_file_path).expect("Failed to open Protobuf file");
let mut transaction_plan_encoded = Vec::<u8>::new();
proto_file
.read_to_end(&mut transaction_plan_encoded)
.expect("Failed to read Protobuf file");
let transaction_plan = TransactionPlan::decode(&transaction_plan_encoded[..])
.expect("should be able to decode transaction plan");
let effect_hash_hex = hex::encode(
transaction_plan
.effect_hash(fvk)
.expect("should be able to compute effect hash")
.0,
);

let hash_file_path = format!("{}/effect_hash_{}.txt", test_vectors_dir, i);
let expected_effect_hash = std::fs::read_to_string(&hash_file_path)
.expect("should be able to read expected effect hash");
assert_eq!(effect_hash_hex, expected_effect_hash);
}
}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
7214ba4135e94dc83457e3862a5bb97005a4c6bed8caed27273589d9a4ad9c793d5cdb1684e1a9e983ccb0be015d763397fe9b2a1338b199aaed33fae1ea3865
9e73992b95b90d5cb6e67e0d111214d6473902cb32151baf9fee37480ae3841c6d30d64323b26f51b91db797369fa6f099e8ae900211e0376fa77c52ca59771e
Original file line number Diff line number Diff line change
@@ -1 +1 @@
343c72af2878a709a7fcb91ad1e079ae7bcb14d8225cebd45dd078b0836d73f026c9c5cf3a67a87b6222a82d577d0a647435b76ce47d318b5b5188ef5b3c1bb3
a29371cb3627441e0d1938399f6cf630829bb722c475bbf69db08cadb652d12f067cf2b5a8ca9792bf940b0899b1897dfda338b1dbcd09c5160e795bbc3b6361
Original file line number Diff line number Diff line change
@@ -1 +1 @@
e8ce2b186fcb5c8cc60975d75f94758ef39debed6c270cf7801798791f1e087d28af605ea440e4f480d4f6e0e4b6211e37044587919c469cc91fd5cc52d2a4ca
bf1468170ef936887f9e861f10e55b5b189c79dc323eecc38ecf89186455280b0b6377356fe1948f31809d921714f08a1218e2aa5fe039a95f2dfeec50a79396
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1315cd1b85d5919359b316483cebf9c4ef3fab4122d427932ab078a44990a1e0508f0db3243ba164a022807687099e9cc0176f13827525c11591ed14290706e6
ce462753553b47ef87a246e01c7481661dad7dfb4310d31c8406df180437d0110f0d15d3d102fdb016c7a700ca0eed0b0d8ecce354937801fb85ea8cc1f3c44e
Original file line number Diff line number Diff line change
@@ -1 +1 @@
07a809f3c19a04338ffe43505dcb4967d54c6ed5e76bc01a830d79f6d64b347363ca93170108705caf4db641d8c4224d3229c083d6ff3d7cffe65a42b4989463
2cd8be2841ab2d84ca3651058441aa9516fd11a3bd273a8e6ff7368e23ced5d7535eac3ec9c51d3e5bf0b034accbdacdd6a5bd1c49ec389b1fcc9ec793887903
Original file line number Diff line number Diff line change
@@ -1 +1 @@
bc8e33783663adff6843336295f4f70485889cb0b9669e8d2652561cc7f44b66df521166de32587daeba68821c2706d21af9fe34231361e87606929d1b63f0a0
809e2b176709aed953224d16e3aab487f37660bce1f48b1376aa13c657cf4648e09381b6fb17e7b025a4cddf848a73138b7d979debde1cd804008c09ac8e9316
Original file line number Diff line number Diff line change
@@ -1 +1 @@
962c6dc1a60442df45f137c0a07b6d71f662fa586312c2bf027b3ff0a1dbcb4443a371653da54af64c696f9fd0fd02a893a073f67af17a0795ede00fc060cdea
2e0b87b60f276f08899fa9be690d733bd949138d768d81680950935af7fcd46acfefa661b74eefcc42e5e37109323587145e77fc2d0e83faba08209ae05ff907
Original file line number Diff line number Diff line change
@@ -1 +1 @@
545bde9d0c1b1a847ba3a0ee59cd1fc9d3f9b133af5d5f77188d6a13782263bb56c8390961f062c93bdb7c23e2d12db95e49f1bde8cf3defeaf70ad22e6f2129
7f1de934b32d6d846fa7c0cad6e40012039b633837f98a57878c9d08e5df3769a7bf54b82f1bf2973a785b2dad9d3dafc889da66cc30ee7556c597af1f927a8e
Original file line number Diff line number Diff line change
@@ -1 +1 @@
e9ef4f04985f7b5d5dd4b17ff061b75b803d2ce622ee0a153051356950d69cdac1a4edd761f281107b511700ddd45bd6ee7f74e40d298aa5eb63d8aaa906f231
69b9d287cf63fdbdce8a940adcdcbf4166dc01dbb8f45e1c4eccb02d1f932fd4ff6f8196f37ea07387dc23010f53e4d55cb9cd2f8efeb28d28bc9cbcd721ed58
Original file line number Diff line number Diff line change
@@ -1 +1 @@
143c2933158bea3acaf2b142dd2afaaa3e1921f02d222c623e22379da0d37a7c9fb0bee70f8702b8501ade369f3227f47644992e5ba7d72943ca2af8fd6511a6
5ffbd0c46efb39f9d685613ba32902f6ad1e624e43067c341aef4ea5312c86e36da50301fa2272e3eec3e7ba1601036a4e8a39ae44dd6db7debe03016ae4f3e6
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1be233080d1f264ab36af1cc9a35518839278fd2ecb9f53d9fdfa9f49f1c8f46f564d7115e67845360dbf3bed87b0e9dc96452d417a556b73f99a045c85cb930
3fb12b16b36925001b89b083052796fb2652e9ef22389f115a65a211f6411d519c7e8e2c1442681b8591151efe2bfcf56b1e28788796619ab16c03da937cfd46
Original file line number Diff line number Diff line change
@@ -1 +1 @@
87d2ad0c3aa31550d40982c2ae27edf105e9a8760ee4e7707830798fd7bdb7e6b761e74e998a9b6a4c41fdcf7e80791dedb25c73361d4ad20ef2c9c43764d35f
546017f17576f94b4b2359c8a73ee4d46f77daf1f309fb26bd5e8649338a135b5d1c1fd10ec9c326f95a91b22fff23dc8c27e380cc780550c16533c7ee03547a
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ee471c1341925dd9c85305807b0b4a9a920ccec17b8542583c9a5e8479ba09d6858a6cec5285de6040c689d309aaa4b34afa745580dca0257f75a2044c31acd7
e4460f3c5068ac4e4d077da569745073b66f4ea32d62cb3c329813135ebc389aecadfbdab4fb6f36c5bad55c154c4cd6daeca8672bae8933580839bb9639a717
Original file line number Diff line number Diff line change
@@ -1 +1 @@
f0bb2ca8b881e79d6d67410b6f71c1942c04d8e91f7544f38579b377bde06f0fa61ee00ec00e168b7b7694f2402e1d854839bd148433f6d06b20cfcc892ac6bb
dfe0bb6c511b1e504cb39b615f321f444732c249e564d53f14575fbf47a204bdef390aaf3c0f7b230f1818c1d5ad12120d2119eb856798d5de1a0f4ab1d4b20b
Original file line number Diff line number Diff line change
@@ -1 +1 @@
87cab3de77eb07f289fa81d44621a7d665b0cb63f0fe66384c152cc59b2028cab935aea012c12594a0a118d6c310c9fb77fea7d9775af51f0847b8c2cc67dcbf
b27ef3fb5d60dfe6414de303bcb4792223945572c4167ec0d1c0de6bdeb88bd7d270dd03b34a6b2c244f58e98cf8dffb5348a259635002469ae02fed1aa2401a
Original file line number Diff line number Diff line change
@@ -1 +1 @@
373d77d786014c741c9783faf8f36d73b1e650e7bf315987f194a8ad5c0efe0ff1cf17f3e53f847918d12523cc48b94a8639b3b7d52f8f35b80039bc2b764f3c
af167c0dbbb3daa0f9cb289fb3cdd7e11c2acd09d93111d36bbb8370e685747ab677d91813ed24e5e7466122b331e2a21399fbd204c1d9e7b31f5c9d335b71cc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2273f4d0616372055809d057ee23e3e48b1841000826e8086d3bb0c533406618902f800d14022f2bb0af2f3747b8a06a5aa54ed2cb181aee463638a8b30490dc
e97f01590e58dd68fa5708250d9e8667db1241c3000aa7e4e1839d30b7988c65f8d438957d89d755c3c4f1fe35908c705d97cf3d237002287ab5059574393270
Original file line number Diff line number Diff line change
@@ -1 +1 @@
876ffd889f42db169b16c3bb894313b95e89ae7fe815016286354267d23fee52b4d1d955efe4cc8ca76d17c34bff5ac135287f936c202ad4b1742a7c2abd6213
a1c704853d82d4dec1287ffcdbc68cb2e84309525fc148f10092d1824e30ab15679171f2ab81a71d8891cccb8a7f6abdbae5505ab80ce80343f8cc411ad55162
Original file line number Diff line number Diff line change
@@ -1 +1 @@
cf8deafd0e468dab92ad47bbf005caed1d5e9fd3c33ba9b1555fd66a4c1ad40958e0cf6be54ed6ab3333eed28712301a7e88a48c3bccce9006513076f8266aaf
507fb0aec0310a59261302a5e50ae8df2cdd8e4073d21201e1bf7ca5cb54e4a8f85b6033174919e7811dafce5cc83e968826b0cb8eb037b78c4dc248123d1331
Original file line number Diff line number Diff line change
@@ -1 +1 @@
49adfe6a2486912da1b50a23867698f694ae3b8f0918dee663eba51b8308d2b52b19e3737851120a392b673fbd3d5540d05139911eff70e5a21ae9fcf455a92b
91d7d9b5e761ea32d02fff8bf0d0eb3cd70af80af2ae01009308c282a13163de68c8911f22f61399cc543cf3a03f31c725f973ef54e8c341a70412c392c8d5fb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8382748506ac3b3f0885210be2e256672925de1d238b45400a7cbdcfb292fc6659d1a8b9f286c4167e73e85fb7b2fd7e5e47030817a2f8d80849e1937bb4ff67
8e2bceb912bb2b69089d5348e0e2a1e472e10f34c96ece0f3ee1c63929c6a983e110a7c0917dec3b64d8c0389c642de023baecbf01ce74b7bdf077ecb236aba8
Original file line number Diff line number Diff line change
@@ -1 +1 @@
cedfedcb7bfcf66298afaec87ddee9d129df68a2c72e9dbbaff5845b5fd793e54a2feaff5b192a38c00765a5d67dd24ffc03302cb80bb1d7bc6d95e7ec95a215
e7e2888bb68215390a053e84530fe3c99f723e5710ee4c2c841c41cf1d01c038569177fd063c2ba31d974d3c21039920c9b533e8c40173e2beb65853f014470b
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3d3e464e051c0967715c688ecdb68f79b34e322e83c4e28b812987eb89ec1878f80d5d5aa34bdf812240672e7409853c7ed62adc3c92ed8942203079dde23662
c300f0a663c828f2b34a16af4387d007b51598348f9f89cdd38a6d2da5f45d5d84287c7df592f064ff33133c9456afdba115a769c8d69d9928d0a81e9d6a9d23
Original file line number Diff line number Diff line change
@@ -1 +1 @@
eaf407c2213b45316801bf34507523c777cc12ecc647a9c9a0121eca02325524bf369f8471571fea10de01de1046f55f18b1e873352cb07442ec9bfc45018042
38e3833889cd54dda12b577933dcc36d5679e399bed7c0b94d8e9e17c2651d95e70e201b81d376341ad76c136989805ba936cb9e62b62136b6710f81a51cafc8
Original file line number Diff line number Diff line change
@@ -1 +1 @@
6b6330736ff9310a1946b53a53545645798e0279fb56ede06416be565b4d8e08a71c0148f9d34edc4e9d4f2c73c7c9fffd568317d4c4f58282b1b411255f797c
dab12cb667e33b0064b735dd0dd7237ff6b6e4ecef5fb0e9e413f9beec2cc2d70a0a2e1ef31292fa4df3385f26ccb7077b73915530a43805e71245834add315c
Original file line number Diff line number Diff line change
@@ -1 +1 @@
c001a0446b85b459637167b5dbc8b02808f6b7c71d7aa336a41bb4745340f8ad4969e8114070014b96f1e11e82c01aa6880c375bd32c6aac4f9468790a74c814
9eb0ff68c2281870c1738caa57d29b0198012759e1a0eec9b52c0c666ea3e90e5bbfc454c711fccca2bf2e55c91be48f208259d9f616548e2765628132f93ab8
Original file line number Diff line number Diff line change
@@ -1 +1 @@
692e4bd1ed1f2ad4d81443bf87960abb799935951acb8d924cfd785b309e18eec7cac5f2ffd125ed8d3e686ef26c24b34993c1911c7197095932f56d2ab80e34
3762a00f04f7cc8fa41aeddaa28baef78800801581540436c651ed68e53f8816c30c88d923227e54717833479b0cb6a4762061a64cf49bbe2a037631f35340ec
Original file line number Diff line number Diff line change
@@ -1 +1 @@
575f2d4c73667e90339f414274691980a16655181b6924c1f55fd4aba439129c346d84f3986f500fd58b5c1d7eb86af1e6bc4764b0661144e23fe7a4dbecf621
16d67249c208a6807b6aa74f650f718dabb02696ca4cd4234a99313c13aeea0d58a086e266db3272972b40a7ed0de6ce102ecf6070da1255c2ebb94d39ed6cb0
Original file line number Diff line number Diff line change
@@ -1 +1 @@
d9b8f22e27874fd285bb8f318f2361ca4534c4297a995938429561b5baae592f4ddc2d6ba08f1c98852366a24cf6d2d70426acb7fa6c5447b99cc411552dc0e2
6d5ac8b140d9b5fadd1397104ea05c34a88607130acd4946e6acc88010eec7c7e56b4edbef91107cea1641b0a35eeb0ea5310630e9add59c4f655746bb2d47a1
Original file line number Diff line number Diff line change
@@ -1 +1 @@
e261157457422d5a959518b18d153b7cfe9e7f338468a0f8abfd637ae516a1b9b9d3174f1a5437e9553323dcd37d793313b3552bf353c45a7e45b966d19fa2c8
f0eeff0095d519be0843af4625742dc1516e5f8a8ece7bd4fb246e1149ccdf0e4bcbd556a53458b01c742c291488cf574c9ebe89991712aec3bb3ef056e2b7ee
Original file line number Diff line number Diff line change
@@ -1 +1 @@
362af3bbd4c1563fbb4082e4a829b71dd5dec526c4a44d954391bea06e0514a7be291e341c28701705d6e19bbb9f74e2124e31179531a4b4c1d447ae2e85dd56
909d6e657ca5e03ee7fee8edfdfb651d233528716eb38664f9f281c05ea74f995706809d3d4bcfb48c5446f722f10ba0d3bcfba6dcbca5358bb251b790bcb4c4
Original file line number Diff line number Diff line change
@@ -1 +1 @@
e8f1118a35d9e9058fc36bff920e6f6565c0e668718564b8491041c3040c0b44d1c4a41c5e3e2a6343c7660bc07481bc6c4ab3a3a9511736974116e9682a99a5
0e9fb80f112cf8058a30b3bfc3c9ae7a4e2809e5d4d99f4555eee506b4d226b7c7d8cec6ca9b1288564b4718b497ab97784789434e03003103e3be6d416a6cc1
Original file line number Diff line number Diff line change
@@ -1 +1 @@
d8639c4c398e5e4a4a8b51fa181c7f1435298aece6054f60e64a49536353f0708d3a665f4c9e36cbe11e7ae821cf6803bc9402084b282ee99724862474ce58c9
1452b5729be2e4050d58a4452873dc90c316367f0cff6567cb3b7522cdcdc89fa1632559142f48d51e86bcdf948c8328e6240282292b18933f7dfabae7849d54
Original file line number Diff line number Diff line change
@@ -1 +1 @@
667a680120a5d44ee4334ffe9f619d98cf8d8736f350d99d1adfe84301a197f70eb3686eea9af1dec464dfd884676d955479463cf48d6d3abff94cc195b61767
315713693488a6048f23099ec9b85bf9ddc12a912c920745b355627d9e682862b518cae29e5333d69d259c16ef8f5d4f1c8368bce2cd2c395eff620fbbd0da43
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8320d4af9ae1f5045ff47cdaf6e75508e6d8197b2d7148ca322bcdc860defb7733aa37dee61adff4141cf46185ae62163cc46c93287e4b478a12a521157ae932
e1b0bf57b4f98bc6d43a0276d26d7261e6c6a95bac927dac95e36b67b4891d5eefdcdbc2b646575e566e5148166bf1e9d9c1f37b5737941183080ef587f7cc9f
Original file line number Diff line number Diff line change
@@ -1 +1 @@
365e5f36d8dddea1ada0a6eabb8ba8177efd2a8c3636ab19dc307e97cee902ccbd7ebc1c05e42e56b2ada75c871fe9320abbd6d4d45149f22034133cd7db7db0
edf7089cb08bbf91e1b719d3ec2003277925b9a9d253b8985e6bb55b21d84129641fc5c6bb036d4595b3eda9f9b9a4a9e416889f98391f27fb1c82f671f5f959
Original file line number Diff line number Diff line change
@@ -1 +1 @@
aae26cdd8535f7b8704127c95c1282cfde0a225f22faa3bd989c2d399c3b18d4e91151f349f75a53d66ef173bc1e9683e24f5207dae108f7bb97e399f117d5d8
81476307c5227bf5fc1a5e6894b4b2ff5c6fb4feab1abe6be29f4d4dad7d867eae0498e7c423cfa427483bfba990f26e78fbf45d18920233d12b89d44fed14cc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
4f595b0dfc0c192d0361046ec6778842c64061f8cfc72bca49d7da6a887a3e334dc06cfaf1f1d675dd639ca007cbd31c531d938232d8f93ae483d5873375da93
928292972397812d1df67f6438b04bb185ca953ad6b8e71c0c558d34e60947172bbb0baa6ba803bab66169b0023ad82bafe8c1d3ac3502b54215b39cec66ebae
Original file line number Diff line number Diff line change
@@ -1 +1 @@
b7385318deba74e4757af669421e46663bc5bed352b8c876a0d3b46cd0d225b85a7521b2a69b9259b85cc7d9dc8a87b9f4bcadaef823a2af6114558b58d55102
9c794cbc9b48f25e2e0669240accb516761abe9c5c1a0b8efdafbca248aa4796cb729965355b348aa48c9e50c58993d65593c55faba00afdc623e213bdc66143
Original file line number Diff line number Diff line change
@@ -1 +1 @@
e41f5991cacbaeb07eb69d79c3ff0b1f315a73d28a1de9c487fddf05debd6ecfb2063709b3b3011831ec89ae7905b998e9ccf81cad9b1493104b09266147e006
a640df95ba3f1301bec45e49ed99f439b5f58c831a20c3275e97b1949dc98ae390788b13f119ef11018cd1d055ef8098b15637ff47c04a91228ea47f322691eb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ccbbca5892d4c1a9cc426f642c692afe9701c5a2ddeaaab28600ebc42abc0e95f49ed110da2cd0026bca0fb6f5c14be2dafca6754339d0563f535c8fdf0edc4b
090a3261cb11cde58e7f7be2f54336cf142918713537ae7b6dcef0cd14ef563f7c2765d56a380bb33e2bc9ab89fd3cda6749240412b25df439f1a658965aee71
Original file line number Diff line number Diff line change
@@ -1 +1 @@
90839a141f05fe2e2194786906e4acd7c07b7940e57a01ba579881cca31dc8023436baa7d429244a45fcc5bd216b84a01d9eca3a18aa6343efb75f8d803e0abf
264526b00ee9983fb65770d93cb4103ecd4b56b34cbe1d0a2afcbf19224c5fcae08362fec63020d5d67b7c8a6aabba7bb80cdcef7295bf8065781645e48d55a3
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ee34e433967a781622de6849ae687c0d6ecdc96b29dc016bd1dc6d52afabee332a64ee75644fb2117c19912e69d8fc31d8802e481a01caf4226645829b5bc8dd
6cd5bc7761a077d46a1fa37c3191df6c4ba38b0cbbaf190bc1a7e9fa900e369f1c31ceab32dc0479d27daad3163d20f1630fee6ac7dd7fb5b4f17ac9fd04b53a
Original file line number Diff line number Diff line change
@@ -1 +1 @@
4bd478f423fe5531f162b0445d72403eef3d7f6243d2ae7a8d9bca8bfce243ef27136026c2da987cd4675ebedfc65f25e3efeab3db18cde7761cf1c5cc0194e4
7970bba9f22cb7ae8a9129d07eae124db1343be40a70a01280d1162f7324b74e137b7c792f7bc411b2a0964291df27eb77da940cbaee62c3dcf83160ef5d8c6d
Original file line number Diff line number Diff line change
@@ -1 +1 @@
30bfcaf5b39a6b71f488d76236e241a54397db1549408839443109b6a387fe77f01e1bc9f702a718fe90ebcbc586861d41205e64f939b22e8005ab7997bf9cd8
e310717d8fc6a54de17aadb828132413995a688be186487ea48a8cf1a754a33c121dea4edcbc989863d730eb6258704285c09562eb206e1fbcf24675862adf72
Original file line number Diff line number Diff line change
@@ -1 +1 @@
b2730c16b6b818afc716c92b9b1f7057ec51ddc42edb91a8a630ffff0bec5295adf1cf6c28d3b8ce74dddad411dc2c291aed1e50b65fbc1b13233142195facca
ef60123290ebd67ab8f02e54c8b3b7e0b56a783acce7f9db2c4c4042ab7dc757ae36391b13e8f537b4ed6a904661229e94e2f85fa2e16ed6d7367606d6f094f2
Original file line number Diff line number Diff line change
@@ -1 +1 @@
f36f2f7091eeb9480456f1fefdd4a8089b93185c46151a80d623c130597f0e1db8cf3a44ec6f59f68b7ad666c93c4a1b4521ec948478621f440fa1ab4dde3aba
be9e30233325c98ea883e6a8066111cc254a11326bba13b206fac8ce490da13ea099fcf62b6f7ba2a49e198f1de4acedfbaa2cbfec09755d416f3fe0d36ea3ff
Original file line number Diff line number Diff line change
@@ -1 +1 @@
e6939cf5db4fba5e7d6a1e1b80bc950b967badf5ba62a93ad503f95ca1fd8a1793f0d94e82149dc2a9cf1abca57cc0e16e507c0475c2f03204d58f47aa563e71
131b45d707e6e5087e0ee60cf847b9d2f9171fbf949715fc0df1a5c69e8fed4f0120e1067f61abb6730cb21b663b31c384c080de47b75213c491c46b048f09eb
Loading

0 comments on commit cc42d8a

Please sign in to comment.