From b5020fac5760e66707e6f6fd11a3295137221db1 Mon Sep 17 00:00:00 2001 From: Dimitry Date: Wed, 12 Sep 2018 15:59:06 +0300 Subject: REVERT in CREATE2 --- .../CreateMessageReverted_d0g0v0Filler.json | 78 ++++++++++++++++++++ .../CreateMessageReverted_d0g1v0Filler.json | 84 ++++++++++++++++++++++ .../RevertInCreateInInit_d0g0v0Filler.json | 80 +++++++++++++++++++++ .../stCreate2/RevertOpcodeCreate_d0g0v0Filler.json | 79 ++++++++++++++++++++ .../stCreate2/RevertOpcodeCreate_d0g1v0Filler.json | 76 ++++++++++++++++++++ .../RevertOpcodeInCreateReturns_d0g0v0Filler.json | 79 ++++++++++++++++++++ 6 files changed, 476 insertions(+) create mode 100644 src/BlockchainTestsFiller/GeneralStateTests/stCreate2/CreateMessageReverted_d0g0v0Filler.json create mode 100644 src/BlockchainTestsFiller/GeneralStateTests/stCreate2/CreateMessageReverted_d0g1v0Filler.json create mode 100644 src/BlockchainTestsFiller/GeneralStateTests/stCreate2/RevertInCreateInInit_d0g0v0Filler.json create mode 100644 src/BlockchainTestsFiller/GeneralStateTests/stCreate2/RevertOpcodeCreate_d0g0v0Filler.json create mode 100644 src/BlockchainTestsFiller/GeneralStateTests/stCreate2/RevertOpcodeCreate_d0g1v0Filler.json create mode 100644 src/BlockchainTestsFiller/GeneralStateTests/stCreate2/RevertOpcodeInCreateReturns_d0g0v0Filler.json (limited to 'src/BlockchainTestsFiller') diff --git a/src/BlockchainTestsFiller/GeneralStateTests/stCreate2/CreateMessageReverted_d0g0v0Filler.json b/src/BlockchainTestsFiller/GeneralStateTests/stCreate2/CreateMessageReverted_d0g0v0Filler.json new file mode 100644 index 000000000..d286a72a4 --- /dev/null +++ b/src/BlockchainTestsFiller/GeneralStateTests/stCreate2/CreateMessageReverted_d0g0v0Filler.json @@ -0,0 +1,78 @@ +{ + "CreateMessageReverted_d0g0v0" : { + "_info" : { + "comment" : "CreateMessageReverted for CREATE2" + }, + "blocks" : [ + { + "blockHeaderPremine" : { + "difficulty" : "0x020000", + "gasLimit" : "0xe8d4a51000", + "timestamp" : "0x03e8", + "updatePoW" : "1" + }, + "transactions" : [ + { + "data" : "0x", + "gasLimit" : "0x013880", + "gasPrice" : "0x01", + "nonce" : "0x00", + "r" : "0x3e4ddcb559b4c358085b4c41e9e74eddd69ad16c5ebc31886b47e09ac659de4d", + "s" : "0x23ce841244548b3f85069dc64b90b846e717ffc3e6f47e953f38f72787f7600b", + "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "v" : "0x1c", + "value" : "0x64" + } + ], + "uncleHeaders" : [ + ] + } + ], + "expect" : [ + { + "network" : "Constantinople", + "result" : { + "0x244fe9a7867edcc140245e775071fbfe6ebedbae" : { + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + } + } + } + ], + "genesisBlockHeader" : { + "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "coinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "difficulty" : "131072", + "extraData" : "0x42", + "gasLimit" : "0xe8d4a51000", + "gasUsed" : "0", + "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "nonce" : "0x0102030405060708", + "number" : "0", + "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000", + "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a", + "timestamp" : "0x03b6", + "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + "pre" : { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0493e0", + "code" : "", + "nonce" : "0x00", + "storage" : { + } + }, + "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x00", + "code" : "0x69600c600055600d6001556000526000600a60166000f5", + "nonce" : "0x00", + "storage" : { + } + } + }, + "sealEngine" : "NoProof" + } +} \ No newline at end of file diff --git a/src/BlockchainTestsFiller/GeneralStateTests/stCreate2/CreateMessageReverted_d0g1v0Filler.json b/src/BlockchainTestsFiller/GeneralStateTests/stCreate2/CreateMessageReverted_d0g1v0Filler.json new file mode 100644 index 000000000..e15bee289 --- /dev/null +++ b/src/BlockchainTestsFiller/GeneralStateTests/stCreate2/CreateMessageReverted_d0g1v0Filler.json @@ -0,0 +1,84 @@ +{ + "CreateMessageReverted_d0g1v0" : { + "_info" : { + "comment" : "CreateMessageReverted for CREATE2" + }, + "blocks" : [ + { + "blockHeaderPremine" : { + "difficulty" : "0x020000", + "gasLimit" : "0xe8d4a51000", + "timestamp" : "0x03e8", + "updatePoW" : "1" + }, + "transactions" : [ + { + "data" : "0x", + "gasLimit" : "0x0249f0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "r" : "0x96ce5e9ce5c3ce45b5012bca58ad99cf985c78a039a3ca3a560365824f16ae95", + "s" : "0x2ccb4e955b0e7c73cfe82787b0c4295109e131840c43a664b363b3caff619a6e", + "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "v" : "0x1b", + "value" : "0x64" + } + ], + "uncleHeaders" : [ + ] + } + ], + "expect" : [ + { + "network" : "Constantinople", + "result" : { + "0x244fe9a7867edcc140245e775071fbfe6ebedbae" : { + "balance" : "0x00", + "nonce" : "0x01", + "storage" : { + "0x00" : "0x0c", + "0x01" : "0x0d" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + } + } + } + ], + "genesisBlockHeader" : { + "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "coinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "difficulty" : "131072", + "extraData" : "0x42", + "gasLimit" : "0xe8d4a51000", + "gasUsed" : "0", + "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "nonce" : "0x0102030405060708", + "number" : "0", + "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000", + "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a", + "timestamp" : "0x03b6", + "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + "pre" : { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0493e0", + "code" : "", + "nonce" : "0x00", + "storage" : { + } + }, + "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x00", + "code" : "0x69600c600055600d6001556000526000600a60166000f5", + "nonce" : "0x00", + "storage" : { + } + } + }, + "sealEngine" : "NoProof" + } +} \ No newline at end of file diff --git a/src/BlockchainTestsFiller/GeneralStateTests/stCreate2/RevertInCreateInInit_d0g0v0Filler.json b/src/BlockchainTestsFiller/GeneralStateTests/stCreate2/RevertInCreateInInit_d0g0v0Filler.json new file mode 100644 index 000000000..34e136e53 --- /dev/null +++ b/src/BlockchainTestsFiller/GeneralStateTests/stCreate2/RevertInCreateInInit_d0g0v0Filler.json @@ -0,0 +1,80 @@ +{ + "RevertInCreateInInit_d0g0v0" : { + "_info" : { + "comment" : "RevertInCreateInInit for CREATE2" + }, + "blocks" : [ + { + "blockHeaderPremine" : { + "difficulty" : "0x020000", + "gasLimit" : "0x0a00000000", + "timestamp" : "0x03e8", + "updatePoW" : "1" + }, + "transactions" : [ + { + "data" : "0x30506000600c80602460003960006000f5503d6000556020600060003e600051600155006211223360005260206000fd", + "gasLimit" : "0x0a00000000", + "gasPrice" : "0x01", + "nonce" : "0x00", + "r" : "0x78f220ad907e6fae34cdcaa3b0b1765e26c506d0ee724fac793fa124bcbdb053", + "s" : "0x04262c7e50ad6240f6b8cfe4ec3f273e71de0ff81996d453e1c79ca112ad5827", + "to" : "", + "v" : "0x1b", + "value" : "0x00" + } + ], + "uncleHeaders" : [ + ] + } + ], + "expect" : [ + { + "network" : "Constantinople", + "result" : { + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "storage" : { + "0x00" : "0x20", + "0x01" : "0x112233" + } + } + } + } + ], + "genesisBlockHeader" : { + "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "coinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "difficulty" : "131072", + "extraData" : "0x42", + "gasLimit" : "0x0a00000000", + "gasUsed" : "0", + "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "nonce" : "0x0102030405060708", + "number" : "0", + "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000", + "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a", + "timestamp" : "0x03b6", + "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + "pre" : { + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x00", + "code" : "", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x6400000000", + "code" : "", + "nonce" : "0x00", + "storage" : { + } + } + }, + "sealEngine" : "NoProof" + } +} \ No newline at end of file diff --git a/src/BlockchainTestsFiller/GeneralStateTests/stCreate2/RevertOpcodeCreate_d0g0v0Filler.json b/src/BlockchainTestsFiller/GeneralStateTests/stCreate2/RevertOpcodeCreate_d0g0v0Filler.json new file mode 100644 index 000000000..b67425958 --- /dev/null +++ b/src/BlockchainTestsFiller/GeneralStateTests/stCreate2/RevertOpcodeCreate_d0g0v0Filler.json @@ -0,0 +1,79 @@ +{ + "RevertOpcodeCreate_d0g0v0" : { + "_info" : { + "comment" : "RevertOpcodeCreate for CREATE2" + }, + "blocks" : [ + { + "blockHeaderPremine" : { + "difficulty" : "0x020000", + "gasLimit" : "0x989680", + "timestamp" : "0x03e8", + "updatePoW" : "1" + }, + "transactions" : [ + { + "data" : "0x600160005560016000fe6011600155", + "gasLimit" : "0x0704e0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "r" : "0x817f0565657dfb3c1ac27e92eb3b785b8451ab6b01916a9df24c4623eca4a420", + "s" : "0x5afe4c23c8da174642c5ebf7ef647ae90f0bab87d31b1a817ba034003d350332", + "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "v" : "0x1b", + "value" : "0x00" + } + ], + "uncleHeaders" : [ + ] + } + ], + "expect" : [ + { + "network" : "Constantinople", + "result" : { + "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + "0x00" : "0x0c" + } + } + } + } + ], + "genesisBlockHeader" : { + "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "coinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "difficulty" : "131072", + "extraData" : "0x42", + "gasLimit" : "0x989680", + "gasUsed" : "0", + "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "nonce" : "0x0102030405060708", + "number" : "0", + "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000", + "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a", + "timestamp" : "0x03b6", + "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + "pre" : { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xe8d4a51000", + "code" : "", + "nonce" : "0x00", + "storage" : { + } + }, + "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01", + "code" : "0x6e600160005560016000fd60116001556000526000600f60116001f5600155600c600055", + "nonce" : "0x00", + "storage" : { + } + } + }, + "sealEngine" : "NoProof" + } +} \ No newline at end of file diff --git a/src/BlockchainTestsFiller/GeneralStateTests/stCreate2/RevertOpcodeCreate_d0g1v0Filler.json b/src/BlockchainTestsFiller/GeneralStateTests/stCreate2/RevertOpcodeCreate_d0g1v0Filler.json new file mode 100644 index 000000000..d5498bb82 --- /dev/null +++ b/src/BlockchainTestsFiller/GeneralStateTests/stCreate2/RevertOpcodeCreate_d0g1v0Filler.json @@ -0,0 +1,76 @@ +{ + "RevertOpcodeCreate_d0g1v0" : { + "_info" : { + "comment" : "RevertOpcodeCreate for CREATE2" + }, + "blocks" : [ + { + "blockHeaderPremine" : { + "difficulty" : "0x020000", + "gasLimit" : "0x989680", + "timestamp" : "0x03e8", + "updatePoW" : "1" + }, + "transactions" : [ + { + "data" : "0x600160005560016000fe6011600155", + "gasLimit" : "0x011170", + "gasPrice" : "0x01", + "nonce" : "0x00", + "r" : "0x8cf1c95021ba82caf65e283687f3089cdcfeb55b8bff25d36d902bc6d989911d", + "s" : "0x5c232f85f4187001617f88537508f48f925b6dbe384958293486893b3cdd88ff", + "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "v" : "0x1b", + "value" : "0x00" + } + ], + "uncleHeaders" : [ + ] + } + ], + "expect" : [ + { + "network" : "Constantinople", + "result" : { + "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x00" + } + } + } + ], + "genesisBlockHeader" : { + "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "coinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "difficulty" : "131072", + "extraData" : "0x42", + "gasLimit" : "0x989680", + "gasUsed" : "0", + "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "nonce" : "0x0102030405060708", + "number" : "0", + "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000", + "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a", + "timestamp" : "0x03b6", + "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + "pre" : { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xe8d4a51000", + "code" : "", + "nonce" : "0x00", + "storage" : { + } + }, + "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01", + "code" : "0x6e600160005560016000fd60116001556000526000600f60116001f5600155600c600055", + "nonce" : "0x00", + "storage" : { + } + } + }, + "sealEngine" : "NoProof" + } +} \ No newline at end of file diff --git a/src/BlockchainTestsFiller/GeneralStateTests/stCreate2/RevertOpcodeInCreateReturns_d0g0v0Filler.json b/src/BlockchainTestsFiller/GeneralStateTests/stCreate2/RevertOpcodeInCreateReturns_d0g0v0Filler.json new file mode 100644 index 000000000..d606fbe8c --- /dev/null +++ b/src/BlockchainTestsFiller/GeneralStateTests/stCreate2/RevertOpcodeInCreateReturns_d0g0v0Filler.json @@ -0,0 +1,79 @@ +{ + "RevertOpcodeInCreateReturns_d0g0v0" : { + "_info" : { + "comment" : "RevertOpcodeInCreateReturns for CREATE2" + }, + "blocks" : [ + { + "blockHeaderPremine" : { + "difficulty" : "0x020000", + "gasLimit" : "0x0a00000000", + "timestamp" : "0x03e8", + "updatePoW" : "1" + }, + "transactions" : [ + { + "data" : "0x", + "gasLimit" : "0x0a00000000", + "gasPrice" : "0x01", + "nonce" : "0x00", + "r" : "0x3b6c2d4d0d9d0abf4d624a6f2930e213789e9c00f679a9afa996fb4bd27cb507", + "s" : "0x24a40d7f4cf44278ac739ecf9eeba61554646709142d968ed1c555be138a3ea2", + "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "v" : "0x1b", + "value" : "0x00" + } + ], + "uncleHeaders" : [ + ] + } + ], + "expect" : [ + { + "network" : "Constantinople", + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x20" + } + } + } + } + ], + "genesisBlockHeader" : { + "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "coinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "difficulty" : "131072", + "extraData" : "0x42", + "gasLimit" : "0x0a00000000", + "gasUsed" : "0", + "mixHash" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "nonce" : "0x0102030405060708", + "number" : "0", + "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000", + "receiptTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "stateRoot" : "0xf99eb1626cfa6db435c0836235942d7ccaa935f1ae247d3f1c21e495685f903a", + "timestamp" : "0x03b6", + "transactionsTrie" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "uncleHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + "pre" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x00", + "code" : "0x6000600c80601560003960006000f5503d600055006211223360005260206000fd", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x6400000000", + "code" : "", + "nonce" : "0x00", + "storage" : { + } + } + }, + "sealEngine" : "NoProof" + } +} \ No newline at end of file -- cgit v1.2.3